{
  "version": 3,
  "sources": ["../../../../node_modules/ieee754/index.js", "../../../../node_modules/ms/index.js", "../../../../node_modules/debug/src/common.js", "../../../../node_modules/debug/src/browser.js", "../../../../node_modules/has-flag/index.js", "../../../../node_modules/supports-color/index.js", "../../../../node_modules/debug/src/node.js", "../../../../node_modules/debug/src/index.js", "../../../../node_modules/mime-db/db.json", "../../../../node_modules/mime-db/index.js", "../../../../node_modules/mime-types/mimeScore.js", "../../../../node_modules/mime-types/index.js", "../../../../node_modules/p-map/index.js", "../../../../node_modules/is-promise/index.js", "../../../../node_modules/any-observable/loader.js", "../../../../node_modules/any-observable/register.js", "../../../../node_modules/any-observable/index.js", "../../../../node_modules/@samverschueren/stream-to-observable/index.js", "../../../../node_modules/rxjs/src/internal/util/isFunction.ts", "../../../../node_modules/rxjs/src/internal/config.ts", "../../../../node_modules/rxjs/src/internal/util/hostReportError.ts", "../../../../node_modules/rxjs/src/internal/Observer.ts", "../../../../node_modules/rxjs/src/internal/util/isArray.ts", "../../../../node_modules/rxjs/src/internal/util/isObject.ts", "../../../../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "../../../../node_modules/rxjs/src/internal/Subscription.ts", "../../../../node_modules/rxjs/src/internal/symbol/rxSubscriber.ts", "../../../../node_modules/rxjs/src/internal/Subscriber.ts", "../../../../node_modules/rxjs/src/internal/util/canReportError.ts", "../../../../node_modules/rxjs/src/internal/util/toSubscriber.ts", "../../../../node_modules/rxjs/src/internal/symbol/observable.ts", "../../../../node_modules/rxjs/src/internal/util/identity.ts", "../../../../node_modules/rxjs/src/internal/util/pipe.ts", "../../../../node_modules/rxjs/src/internal/Observable.ts", "../../../../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "../../../../node_modules/rxjs/src/internal/SubjectSubscription.ts", "../../../../node_modules/rxjs/src/internal/Subject.ts", "../../../../node_modules/rxjs/src/internal/operators/refCount.ts", "../../../../node_modules/rxjs/src/internal/observable/ConnectableObservable.ts", "../../../../node_modules/rxjs/src/internal/operators/groupBy.ts", "../../../../node_modules/rxjs/src/internal/BehaviorSubject.ts", "../../../../node_modules/rxjs/src/internal/scheduler/Action.ts", "../../../../node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "../../../../node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "../../../../node_modules/rxjs/src/internal/Scheduler.ts", "../../../../node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "../../../../node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "../../../../node_modules/rxjs/src/internal/scheduler/queue.ts", "../../../../node_modules/rxjs/src/internal/observable/empty.ts", "../../../../node_modules/rxjs/src/internal/util/isScheduler.ts", "../../../../node_modules/rxjs/src/internal/util/subscribeToArray.ts", "../../../../node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "../../../../node_modules/rxjs/src/internal/observable/fromArray.ts", "../../../../node_modules/rxjs/src/internal/observable/of.ts", "../../../../node_modules/rxjs/src/internal/observable/throwError.ts", "../../../../node_modules/rxjs/src/internal/Notification.ts", "../../../../node_modules/rxjs/src/internal/operators/observeOn.ts", "../../../../node_modules/rxjs/src/internal/ReplaySubject.ts", "../../../../node_modules/rxjs/src/internal/AsyncSubject.ts", "../../../../node_modules/rxjs/src/internal/util/Immediate.ts", "../../../../node_modules/rxjs/src/internal/scheduler/AsapAction.ts", "../../../../node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts", "../../../../node_modules/rxjs/src/internal/scheduler/asap.ts", "../../../../node_modules/rxjs/src/internal/scheduler/async.ts", "../../../../node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "../../../../node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "../../../../node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "../../../../node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts", "../../../../node_modules/rxjs/src/internal/util/noop.ts", "../../../../node_modules/rxjs/src/internal/util/isObservable.ts", "../../../../node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts", "../../../../node_modules/rxjs/src/internal/util/EmptyError.ts", "../../../../node_modules/rxjs/src/internal/util/TimeoutError.ts", "../../../../node_modules/rxjs/src/internal/operators/map.ts", "../../../../node_modules/rxjs/src/internal/observable/bindCallback.ts", "../../../../node_modules/rxjs/src/internal/observable/bindNodeCallback.ts", "../../../../node_modules/rxjs/src/internal/OuterSubscriber.ts", "../../../../node_modules/rxjs/src/internal/InnerSubscriber.ts", "../../../../node_modules/rxjs/src/internal/util/subscribeToPromise.ts", "../../../../node_modules/rxjs/src/internal/symbol/iterator.ts", "../../../../node_modules/rxjs/src/internal/util/subscribeToIterable.ts", "../../../../node_modules/rxjs/src/internal/util/subscribeToObservable.ts", "../../../../node_modules/rxjs/src/internal/util/isArrayLike.ts", "../../../../node_modules/rxjs/src/internal/util/isPromise.ts", "../../../../node_modules/rxjs/src/internal/util/subscribeTo.ts", "../../../../node_modules/rxjs/src/internal/util/subscribeToResult.ts", "../../../../node_modules/rxjs/src/internal/observable/combineLatest.ts", "../../../../node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "../../../../node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "../../../../node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "../../../../node_modules/rxjs/src/internal/util/isInteropObservable.ts", "../../../../node_modules/rxjs/src/internal/util/isIterable.ts", "../../../../node_modules/rxjs/src/internal/scheduled/scheduled.ts", "../../../../node_modules/rxjs/src/internal/observable/from.ts", "../../../../node_modules/rxjs/src/internal/innerSubscribe.ts", "../../../../node_modules/rxjs/src/internal/operators/mergeMap.ts", "../../../../node_modules/rxjs/src/internal/operators/mergeAll.ts", "../../../../node_modules/rxjs/src/internal/operators/concatAll.ts", "../../../../node_modules/rxjs/src/internal/observable/concat.ts", "../../../../node_modules/rxjs/src/internal/observable/defer.ts", "../../../../node_modules/rxjs/src/internal/observable/forkJoin.ts", "../../../../node_modules/rxjs/src/internal/observable/fromEvent.ts", "../../../../node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "../../../../node_modules/rxjs/src/internal/observable/generate.ts", "../../../../node_modules/rxjs/src/internal/observable/iif.ts", "../../../../node_modules/rxjs/src/internal/util/isNumeric.ts", "../../../../node_modules/rxjs/src/internal/observable/interval.ts", "../../../../node_modules/rxjs/src/internal/observable/merge.ts", "../../../../node_modules/rxjs/src/internal/observable/never.ts", "../../../../node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts", "../../../../node_modules/rxjs/src/internal/observable/pairs.ts", "../../../../node_modules/rxjs/src/internal/util/not.ts", "../../../../node_modules/rxjs/src/internal/operators/filter.ts", "../../../../node_modules/rxjs/src/internal/observable/partition.ts", "../../../../node_modules/rxjs/src/internal/observable/race.ts", "../../../../node_modules/rxjs/src/internal/observable/range.ts", "../../../../node_modules/rxjs/src/internal/observable/timer.ts", "../../../../node_modules/rxjs/src/internal/observable/using.ts", "../../../../node_modules/rxjs/src/internal/observable/zip.ts", "../../../../node_modules/rxjs/src/index.ts", "../../../../node_modules/listr-silent-renderer/index.js", "../../../../node_modules/listr-verbose-renderer/node_modules/escape-string-regexp/index.js", "../../../../node_modules/listr-verbose-renderer/node_modules/figures/index.js", "../../../../node_modules/mimic-fn/index.js", "../../../../node_modules/onetime/index.js", "../../../../node_modules/signal-exit/signals.js", "../../../../node_modules/signal-exit/index.js", "../../../../node_modules/restore-cursor/index.js", "../../../../node_modules/cli-cursor/index.js", "../../../../node_modules/listr-verbose-renderer/node_modules/color-name/index.js", "../../../../node_modules/listr-verbose-renderer/node_modules/color-convert/conversions.js", "../../../../node_modules/listr-verbose-renderer/node_modules/color-convert/route.js", "../../../../node_modules/listr-verbose-renderer/node_modules/color-convert/index.js", "../../../../node_modules/listr-verbose-renderer/node_modules/ansi-styles/index.js", "../../../../node_modules/listr-verbose-renderer/node_modules/has-flag/index.js", "../../../../node_modules/listr-verbose-renderer/node_modules/supports-color/index.js", "../../../../node_modules/listr-verbose-renderer/node_modules/chalk/templates.js", "../../../../node_modules/listr-verbose-renderer/node_modules/chalk/index.js", "../../../../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js", "../../../../node_modules/date-fns/is_date/index.js", "../../../../node_modules/date-fns/parse/index.js", "../../../../node_modules/date-fns/start_of_year/index.js", "../../../../node_modules/date-fns/start_of_day/index.js", "../../../../node_modules/date-fns/difference_in_calendar_days/index.js", "../../../../node_modules/date-fns/get_day_of_year/index.js", "../../../../node_modules/date-fns/start_of_week/index.js", "../../../../node_modules/date-fns/start_of_iso_week/index.js", "../../../../node_modules/date-fns/get_iso_year/index.js", "../../../../node_modules/date-fns/start_of_iso_year/index.js", "../../../../node_modules/date-fns/get_iso_week/index.js", "../../../../node_modules/date-fns/is_valid/index.js", "../../../../node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js", "../../../../node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js", "../../../../node_modules/date-fns/locale/en/build_format_locale/index.js", "../../../../node_modules/date-fns/locale/en/index.js", "../../../../node_modules/date-fns/format/index.js", "../../../../node_modules/listr-verbose-renderer/lib/utils.js", "../../../../node_modules/listr-verbose-renderer/index.js", "../../../../node_modules/ansi-escapes/index.js", "../../../../node_modules/wrap-ansi/node_modules/ansi-regex/index.js", "../../../../node_modules/wrap-ansi/node_modules/strip-ansi/index.js", "../../../../node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js", "../../../../node_modules/wrap-ansi/node_modules/string-width/index.js", "../../../../node_modules/wrap-ansi/index.js", "../../../../node_modules/log-update/index.js", "../../../../node_modules/listr-update-renderer/node_modules/escape-string-regexp/index.js", "../../../../node_modules/listr-update-renderer/node_modules/ansi-styles/index.js", "../../../../node_modules/listr-update-renderer/node_modules/ansi-regex/index.js", "../../../../node_modules/listr-update-renderer/node_modules/strip-ansi/index.js", "../../../../node_modules/has-ansi/node_modules/ansi-regex/index.js", "../../../../node_modules/has-ansi/index.js", "../../../../node_modules/listr-update-renderer/node_modules/supports-color/index.js", "../../../../node_modules/listr-update-renderer/node_modules/chalk/index.js", "../../../../node_modules/object-assign/index.js", "../../../../node_modules/figures/node_modules/escape-string-regexp/index.js", "../../../../node_modules/figures/index.js", "../../../../node_modules/indent-string/index.js", "../../../../node_modules/slice-ansi/index.js", "../../../../node_modules/string-width/node_modules/ansi-regex/index.js", "../../../../node_modules/string-width/node_modules/strip-ansi/index.js", "../../../../node_modules/code-point-at/index.js", "../../../../node_modules/number-is-nan/index.js", "../../../../node_modules/is-fullwidth-code-point/index.js", "../../../../node_modules/string-width/index.js", "../../../../node_modules/cli-truncate/index.js", "../../../../node_modules/log-symbols/node_modules/escape-string-regexp/index.js", "../../../../node_modules/log-symbols/node_modules/ansi-styles/index.js", "../../../../node_modules/log-symbols/node_modules/ansi-regex/index.js", "../../../../node_modules/log-symbols/node_modules/strip-ansi/index.js", "../../../../node_modules/log-symbols/node_modules/supports-color/index.js", "../../../../node_modules/log-symbols/node_modules/chalk/index.js", "../../../../node_modules/log-symbols/index.js", "../../../../node_modules/elegant-spinner/index.js", "../../../../node_modules/listr-update-renderer/lib/utils.js", "../../../../node_modules/listr-update-renderer/index.js", "../../../../node_modules/listr/lib/renderer.js", "../../../../node_modules/listr/lib/state.js", "../../../../node_modules/is-stream/index.js", "../../../../node_modules/symbol-observable/lib/ponyfill.js", "../../../../node_modules/symbol-observable/lib/index.js", "../../../../node_modules/is-observable/index.js", "../../../../node_modules/listr/lib/utils.js", "../../../../node_modules/listr/lib/listr-error.js", "../../../../node_modules/listr/lib/task.js", "../../../../node_modules/listr/lib/task-wrapper.js", "../../../../node_modules/listr/index.js", "../../src/commands/build.ts", "../../src/commands/deploy.ts", "../../src/constants/deploy.constants.ts", "../../src/utils/cmd.utils.ts", "../../src/utils/cmd.windows.utils.ts", "../../src/services/deploy.hook.services.ts", "../../src/services/deploy.prepare.services.ts", "../../../../node_modules/file-type/index.js", "../../../../node_modules/strtok3/lib/index.js", "../../../../node_modules/peek-readable/lib/Errors.js", "../../../../node_modules/peek-readable/lib/Deferred.js", "../../../../node_modules/peek-readable/lib/AbstractStreamReader.js", "../../../../node_modules/peek-readable/lib/StreamReader.js", "../../../../node_modules/peek-readable/lib/WebStreamReader.js", "../../../../node_modules/peek-readable/lib/WebStreamByobReader.js", "../../../../node_modules/peek-readable/lib/WebStreamDefaultReader.js", "../../../../node_modules/peek-readable/lib/WebStreamReaderFactory.js", "../../../../node_modules/strtok3/lib/AbstractTokenizer.js", "../../../../node_modules/strtok3/lib/ReadStreamTokenizer.js", "../../../../node_modules/strtok3/lib/BufferTokenizer.js", "../../../../node_modules/strtok3/lib/core.js", "../../../../node_modules/strtok3/lib/FileTokenizer.js", "../../../../node_modules/token-types/lib/index.js", "../../../../node_modules/fflate/esm/index.mjs", "../../../../node_modules/@tokenizer/inflate/lib/index.js", "../../../../node_modules/@tokenizer/inflate/lib/ZipToken.js", "../../../../node_modules/uint8array-extras/index.js", "../../../../node_modules/file-type/util.js", "../../../../node_modules/file-type/supported.js", "../../../../node_modules/file-type/core.js", "../../node_modules/balanced-match/index.js", "../../node_modules/brace-expansion/index.js", "../../node_modules/minimatch/src/assert-valid-pattern.ts", "../../node_modules/minimatch/src/brace-expressions.ts", "../../node_modules/minimatch/src/unescape.ts", "../../node_modules/minimatch/src/ast.ts", "../../node_modules/minimatch/src/escape.ts", "../../node_modules/minimatch/src/index.ts", "../../src/utils/compress.utils.ts", "../../src/utils/deploy.utils.ts", "../../src/utils/fs.utils.ts", "../../src/services/proposals.services.ts", "../../src/services/upload.services.ts", "../../src/utils/format.utils.ts", "../../src/services/deploy.proposal.services.ts", "../../src/commands/publish.ts", "../../src/utils/args.utils.ts", "../../src/utils/download.utils.ts", "../../src/utils/pkg.utils.ts", "../../src/utils/prompt.utils.ts"],
  "sourcesContent": ["/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n  options = options || {};\n  var type = typeof val;\n  if (type === 'string' && val.length > 0) {\n    return parse(val);\n  } else if (type === 'number' && isFinite(val)) {\n    return options.long ? fmtLong(val) : fmtShort(val);\n  }\n  throw new Error(\n    'val is not a non-empty string or a valid number. val=' +\n      JSON.stringify(val)\n  );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = String(str);\n  if (str.length > 100) {\n    return;\n  }\n  var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n    str\n  );\n  if (!match) {\n    return;\n  }\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'weeks':\n    case 'week':\n    case 'w':\n      return n * w;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n    default:\n      return undefined;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n  var msAbs = Math.abs(ms);\n  if (msAbs >= d) {\n    return Math.round(ms / d) + 'd';\n  }\n  if (msAbs >= h) {\n    return Math.round(ms / h) + 'h';\n  }\n  if (msAbs >= m) {\n    return Math.round(ms / m) + 'm';\n  }\n  if (msAbs >= s) {\n    return Math.round(ms / s) + 's';\n  }\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n  var msAbs = Math.abs(ms);\n  if (msAbs >= d) {\n    return plural(ms, msAbs, d, 'day');\n  }\n  if (msAbs >= h) {\n    return plural(ms, msAbs, h, 'hour');\n  }\n  if (msAbs >= m) {\n    return plural(ms, msAbs, m, 'minute');\n  }\n  if (msAbs >= s) {\n    return plural(ms, msAbs, s, 'second');\n  }\n  return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n  var isPlural = msAbs >= n * 1.5;\n  return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n *   $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = `  ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "{\n  \"application/1d-interleaved-parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/3gpdash-qoe-report+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/3gpp-ims+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/3gpphal+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/3gpphalforms+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/a2l\": {\n    \"source\": \"iana\"\n  },\n  \"application/ace+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/ace+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ace-groupcomm+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/ace-trl+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/activemessage\": {\n    \"source\": \"iana\"\n  },\n  \"application/activity+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/aif+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/aif+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-cdni+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-cdnifilter+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-costmap+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-costmapfilter+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-directory+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-endpointcost+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-endpointcostparams+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-endpointprop+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-endpointpropparams+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-error+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-networkmap+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-networkmapfilter+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-propmap+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-propmapparams+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-tips+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-tipsparams+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-updatestreamcontrol+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-updatestreamparams+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/aml\": {\n    \"source\": \"iana\"\n  },\n  \"application/andrew-inset\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ez\"]\n  },\n  \"application/appinstaller\": {\n    \"compressible\": false,\n    \"extensions\": [\"appinstaller\"]\n  },\n  \"application/applefile\": {\n    \"source\": \"iana\"\n  },\n  \"application/applixware\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aw\"]\n  },\n  \"application/appx\": {\n    \"compressible\": false,\n    \"extensions\": [\"appx\"]\n  },\n  \"application/appxbundle\": {\n    \"compressible\": false,\n    \"extensions\": [\"appxbundle\"]\n  },\n  \"application/at+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/atf\": {\n    \"source\": \"iana\"\n  },\n  \"application/atfx\": {\n    \"source\": \"iana\"\n  },\n  \"application/atom+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"atom\"]\n  },\n  \"application/atomcat+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"atomcat\"]\n  },\n  \"application/atomdeleted+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"atomdeleted\"]\n  },\n  \"application/atomicmail\": {\n    \"source\": \"iana\"\n  },\n  \"application/atomsvc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"atomsvc\"]\n  },\n  \"application/atsc-dwd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dwd\"]\n  },\n  \"application/atsc-dynamic-event-message\": {\n    \"source\": \"iana\"\n  },\n  \"application/atsc-held+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"held\"]\n  },\n  \"application/atsc-rdt+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/atsc-rsat+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rsat\"]\n  },\n  \"application/atxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/auth-policy+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/automationml-aml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"aml\"]\n  },\n  \"application/automationml-amlx+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"amlx\"]\n  },\n  \"application/bacnet-xdd+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/batch-smtp\": {\n    \"source\": \"iana\"\n  },\n  \"application/bdoc\": {\n    \"compressible\": false,\n    \"extensions\": [\"bdoc\"]\n  },\n  \"application/beep+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/bufr\": {\n    \"source\": \"iana\"\n  },\n  \"application/c2pa\": {\n    \"source\": \"iana\"\n  },\n  \"application/calendar+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/calendar+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xcs\"]\n  },\n  \"application/call-completion\": {\n    \"source\": \"iana\"\n  },\n  \"application/cals-1840\": {\n    \"source\": \"iana\"\n  },\n  \"application/captive+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/cbor-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/cccex\": {\n    \"source\": \"iana\"\n  },\n  \"application/ccmp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ccxml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ccxml\"]\n  },\n  \"application/cda+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/cdfx+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"cdfx\"]\n  },\n  \"application/cdmi-capability\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmia\"]\n  },\n  \"application/cdmi-container\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmic\"]\n  },\n  \"application/cdmi-domain\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmid\"]\n  },\n  \"application/cdmi-object\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmio\"]\n  },\n  \"application/cdmi-queue\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmiq\"]\n  },\n  \"application/cdni\": {\n    \"source\": \"iana\"\n  },\n  \"application/ce+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/cea\": {\n    \"source\": \"iana\"\n  },\n  \"application/cea-2018+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cellml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cfw\": {\n    \"source\": \"iana\"\n  },\n  \"application/cid-edhoc+cbor-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/city+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/city+json-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/clr\": {\n    \"source\": \"iana\"\n  },\n  \"application/clue+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/clue_info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cms\": {\n    \"source\": \"iana\"\n  },\n  \"application/cnrp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/coap-eap\": {\n    \"source\": \"iana\"\n  },\n  \"application/coap-group+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/coap-payload\": {\n    \"source\": \"iana\"\n  },\n  \"application/commonground\": {\n    \"source\": \"iana\"\n  },\n  \"application/concise-problem-details+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/conference-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cose\": {\n    \"source\": \"iana\"\n  },\n  \"application/cose-key\": {\n    \"source\": \"iana\"\n  },\n  \"application/cose-key-set\": {\n    \"source\": \"iana\"\n  },\n  \"application/cose-x509\": {\n    \"source\": \"iana\"\n  },\n  \"application/cpl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"cpl\"]\n  },\n  \"application/csrattrs\": {\n    \"source\": \"iana\"\n  },\n  \"application/csta+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cstadata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/csvm+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cu-seeme\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cu\"]\n  },\n  \"application/cwl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cwl\"]\n  },\n  \"application/cwl+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cwl+yaml\": {\n    \"source\": \"iana\"\n  },\n  \"application/cwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/cybercash\": {\n    \"source\": \"iana\"\n  },\n  \"application/dart\": {\n    \"compressible\": true\n  },\n  \"application/dash+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mpd\"]\n  },\n  \"application/dash-patch+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mpp\"]\n  },\n  \"application/dashdelta\": {\n    \"source\": \"iana\"\n  },\n  \"application/davmount+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"davmount\"]\n  },\n  \"application/dca-rft\": {\n    \"source\": \"iana\"\n  },\n  \"application/dcd\": {\n    \"source\": \"iana\"\n  },\n  \"application/dec-dx\": {\n    \"source\": \"iana\"\n  },\n  \"application/dialog-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dicom\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dcm\"]\n  },\n  \"application/dicom+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dicom+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dii\": {\n    \"source\": \"iana\"\n  },\n  \"application/dit\": {\n    \"source\": \"iana\"\n  },\n  \"application/dns\": {\n    \"source\": \"iana\"\n  },\n  \"application/dns+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dns-message\": {\n    \"source\": \"iana\"\n  },\n  \"application/docbook+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"dbk\"]\n  },\n  \"application/dots+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/dpop+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/dskpp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dssc+der\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dssc\"]\n  },\n  \"application/dssc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xdssc\"]\n  },\n  \"application/dvcs\": {\n    \"source\": \"iana\"\n  },\n  \"application/eat+cwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/eat+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/eat-bun+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/eat-bun+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/eat-ucs+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/eat-ucs+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ecmascript\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"ecma\"]\n  },\n  \"application/edhoc+cbor-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/edi-consent\": {\n    \"source\": \"iana\"\n  },\n  \"application/edi-x12\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/edifact\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/efi\": {\n    \"source\": \"iana\"\n  },\n  \"application/elm+json\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/elm+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.cap+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.comment+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.control+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.deviceinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.ecall.msd\": {\n    \"source\": \"iana\"\n  },\n  \"application/emergencycalldata.legacyesn+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.providerinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.serviceinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.subscriberinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.veds+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emma+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"emma\"]\n  },\n  \"application/emotionml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"emotionml\"]\n  },\n  \"application/encaprtp\": {\n    \"source\": \"iana\"\n  },\n  \"application/entity-statement+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/epp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/epub+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"epub\"]\n  },\n  \"application/eshop\": {\n    \"source\": \"iana\"\n  },\n  \"application/exi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"exi\"]\n  },\n  \"application/expect-ct-report+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/express\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"exp\"]\n  },\n  \"application/fastinfoset\": {\n    \"source\": \"iana\"\n  },\n  \"application/fastsoap\": {\n    \"source\": \"iana\"\n  },\n  \"application/fdf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fdf\"]\n  },\n  \"application/fdt+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"fdt\"]\n  },\n  \"application/fhir+json\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/fhir+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/fido.trusted-apps+json\": {\n    \"compressible\": true\n  },\n  \"application/fits\": {\n    \"source\": \"iana\"\n  },\n  \"application/flexfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/font-sfnt\": {\n    \"source\": \"iana\"\n  },\n  \"application/font-tdpfr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pfr\"]\n  },\n  \"application/font-woff\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/framework-attributes+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/geo+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"geojson\"]\n  },\n  \"application/geo+json-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/geopackage+sqlite3\": {\n    \"source\": \"iana\"\n  },\n  \"application/geopose+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/geoxacml+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/geoxacml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/gltf-buffer\": {\n    \"source\": \"iana\"\n  },\n  \"application/gml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"gml\"]\n  },\n  \"application/gnap-binding-jws\": {\n    \"source\": \"iana\"\n  },\n  \"application/gnap-binding-jwsd\": {\n    \"source\": \"iana\"\n  },\n  \"application/gnap-binding-rotation-jws\": {\n    \"source\": \"iana\"\n  },\n  \"application/gnap-binding-rotation-jwsd\": {\n    \"source\": \"iana\"\n  },\n  \"application/gpx+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"gpx\"]\n  },\n  \"application/grib\": {\n    \"source\": \"iana\"\n  },\n  \"application/gxf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gxf\"]\n  },\n  \"application/gzip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"gz\"]\n  },\n  \"application/h224\": {\n    \"source\": \"iana\"\n  },\n  \"application/held+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/hjson\": {\n    \"extensions\": [\"hjson\"]\n  },\n  \"application/hl7v2+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/http\": {\n    \"source\": \"iana\"\n  },\n  \"application/hyperstudio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"stk\"]\n  },\n  \"application/ibe-key-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ibe-pkg-reply+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ibe-pp-data\": {\n    \"source\": \"iana\"\n  },\n  \"application/iges\": {\n    \"source\": \"iana\"\n  },\n  \"application/im-iscomposing+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/index\": {\n    \"source\": \"iana\"\n  },\n  \"application/index.cmd\": {\n    \"source\": \"iana\"\n  },\n  \"application/index.obj\": {\n    \"source\": \"iana\"\n  },\n  \"application/index.response\": {\n    \"source\": \"iana\"\n  },\n  \"application/index.vnd\": {\n    \"source\": \"iana\"\n  },\n  \"application/inkml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ink\",\"inkml\"]\n  },\n  \"application/iotp\": {\n    \"source\": \"iana\"\n  },\n  \"application/ipfix\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ipfix\"]\n  },\n  \"application/ipp\": {\n    \"source\": \"iana\"\n  },\n  \"application/isup\": {\n    \"source\": \"iana\"\n  },\n  \"application/its+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"its\"]\n  },\n  \"application/java-archive\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"jar\",\"war\",\"ear\"]\n  },\n  \"application/java-serialized-object\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"ser\"]\n  },\n  \"application/java-vm\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"class\"]\n  },\n  \"application/javascript\": {\n    \"source\": \"apache\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"js\"]\n  },\n  \"application/jf2feed+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jose\": {\n    \"source\": \"iana\"\n  },\n  \"application/jose+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jrd+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jscalendar+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jscontact+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/json\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"json\",\"map\"]\n  },\n  \"application/json-patch+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/json-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/json5\": {\n    \"extensions\": [\"json5\"]\n  },\n  \"application/jsonml+json\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"jsonml\"]\n  },\n  \"application/jsonpath\": {\n    \"source\": \"iana\"\n  },\n  \"application/jwk+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jwk-set+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jwk-set+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/kpml-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/kpml-response+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ld+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"jsonld\"]\n  },\n  \"application/lgr+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"lgr\"]\n  },\n  \"application/link-format\": {\n    \"source\": \"iana\"\n  },\n  \"application/linkset\": {\n    \"source\": \"iana\"\n  },\n  \"application/linkset+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/load-control+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/logout+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/lost+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"lostxml\"]\n  },\n  \"application/lostsync+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/lpf+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/lxf\": {\n    \"source\": \"iana\"\n  },\n  \"application/mac-binhex40\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hqx\"]\n  },\n  \"application/mac-compactpro\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cpt\"]\n  },\n  \"application/macwriteii\": {\n    \"source\": \"iana\"\n  },\n  \"application/mads+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mads\"]\n  },\n  \"application/manifest+json\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"webmanifest\"]\n  },\n  \"application/marc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mrc\"]\n  },\n  \"application/marcxml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mrcx\"]\n  },\n  \"application/mathematica\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ma\",\"nb\",\"mb\"]\n  },\n  \"application/mathml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mathml\"]\n  },\n  \"application/mathml-content+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mathml-presentation+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-associated-procedure-description+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-deregister+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-envelope+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-msk+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-msk-response+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-protection-description+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-reception-report+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-register+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-register-response+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-schedule+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-user-service-description+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbox\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mbox\"]\n  },\n  \"application/media-policy-dataset+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mpf\"]\n  },\n  \"application/media_control+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mediaservercontrol+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mscml\"]\n  },\n  \"application/merge-patch+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/metalink+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"metalink\"]\n  },\n  \"application/metalink4+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"meta4\"]\n  },\n  \"application/mets+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mets\"]\n  },\n  \"application/mf4\": {\n    \"source\": \"iana\"\n  },\n  \"application/mikey\": {\n    \"source\": \"iana\"\n  },\n  \"application/mipc\": {\n    \"source\": \"iana\"\n  },\n  \"application/missing-blocks+cbor-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/mmt-aei+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"maei\"]\n  },\n  \"application/mmt-usd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"musd\"]\n  },\n  \"application/mods+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mods\"]\n  },\n  \"application/moss-keys\": {\n    \"source\": \"iana\"\n  },\n  \"application/moss-signature\": {\n    \"source\": \"iana\"\n  },\n  \"application/mosskey-data\": {\n    \"source\": \"iana\"\n  },\n  \"application/mosskey-request\": {\n    \"source\": \"iana\"\n  },\n  \"application/mp21\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"m21\",\"mp21\"]\n  },\n  \"application/mp4\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mp4\",\"mpg4\",\"mp4s\",\"m4p\"]\n  },\n  \"application/mpeg4-generic\": {\n    \"source\": \"iana\"\n  },\n  \"application/mpeg4-iod\": {\n    \"source\": \"iana\"\n  },\n  \"application/mpeg4-iod-xmt\": {\n    \"source\": \"iana\"\n  },\n  \"application/mrb-consumer+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mrb-publish+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/msc-ivr+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/msc-mixer+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/msix\": {\n    \"compressible\": false,\n    \"extensions\": [\"msix\"]\n  },\n  \"application/msixbundle\": {\n    \"compressible\": false,\n    \"extensions\": [\"msixbundle\"]\n  },\n  \"application/msword\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"doc\",\"dot\"]\n  },\n  \"application/mud+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/multipart-core\": {\n    \"source\": \"iana\"\n  },\n  \"application/mxf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxf\"]\n  },\n  \"application/n-quads\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nq\"]\n  },\n  \"application/n-triples\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nt\"]\n  },\n  \"application/nasdata\": {\n    \"source\": \"iana\"\n  },\n  \"application/news-checkgroups\": {\n    \"source\": \"iana\",\n    \"charset\": \"US-ASCII\"\n  },\n  \"application/news-groupinfo\": {\n    \"source\": \"iana\",\n    \"charset\": \"US-ASCII\"\n  },\n  \"application/news-transmission\": {\n    \"source\": \"iana\"\n  },\n  \"application/nlsml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/node\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cjs\"]\n  },\n  \"application/nss\": {\n    \"source\": \"iana\"\n  },\n  \"application/oauth-authz-req+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/oblivious-dns-message\": {\n    \"source\": \"iana\"\n  },\n  \"application/ocsp-request\": {\n    \"source\": \"iana\"\n  },\n  \"application/ocsp-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/octet-stream\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n  },\n  \"application/oda\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oda\"]\n  },\n  \"application/odm+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/odx\": {\n    \"source\": \"iana\"\n  },\n  \"application/oebps-package+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"opf\"]\n  },\n  \"application/ogg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"ogx\"]\n  },\n  \"application/ohttp-keys\": {\n    \"source\": \"iana\"\n  },\n  \"application/omdoc+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"omdoc\"]\n  },\n  \"application/onenote\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\",\"one\",\"onea\"]\n  },\n  \"application/opc-nodeset+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/oscore\": {\n    \"source\": \"iana\"\n  },\n  \"application/oxps\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oxps\"]\n  },\n  \"application/p21\": {\n    \"source\": \"iana\"\n  },\n  \"application/p21+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/p2p-overlay+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"relo\"]\n  },\n  \"application/parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/passport\": {\n    \"source\": \"iana\"\n  },\n  \"application/patch-ops-error+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xer\"]\n  },\n  \"application/pdf\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"pdf\"]\n  },\n  \"application/pdx\": {\n    \"source\": \"iana\"\n  },\n  \"application/pem-certificate-chain\": {\n    \"source\": \"iana\"\n  },\n  \"application/pgp-encrypted\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"pgp\"]\n  },\n  \"application/pgp-keys\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"asc\"]\n  },\n  \"application/pgp-signature\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sig\",\"asc\"]\n  },\n  \"application/pics-rules\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"prf\"]\n  },\n  \"application/pidf+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/pidf-diff+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/pkcs10\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"p10\"]\n  },\n  \"application/pkcs12\": {\n    \"source\": \"iana\"\n  },\n  \"application/pkcs7-mime\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"p7m\",\"p7c\"]\n  },\n  \"application/pkcs7-signature\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"p7s\"]\n  },\n  \"application/pkcs8\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"p8\"]\n  },\n  \"application/pkcs8-encrypted\": {\n    \"source\": \"iana\"\n  },\n  \"application/pkix-attr-cert\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ac\"]\n  },\n  \"application/pkix-cert\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cer\"]\n  },\n  \"application/pkix-crl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"crl\"]\n  },\n  \"application/pkix-pkipath\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pkipath\"]\n  },\n  \"application/pkixcmp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pki\"]\n  },\n  \"application/pls+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"pls\"]\n  },\n  \"application/poc-settings+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/postscript\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ai\",\"eps\",\"ps\"]\n  },\n  \"application/ppsp-tracker+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/private-token-issuer-directory\": {\n    \"source\": \"iana\"\n  },\n  \"application/private-token-request\": {\n    \"source\": \"iana\"\n  },\n  \"application/private-token-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/problem+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/problem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/provenance+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"provx\"]\n  },\n  \"application/provided-claims+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.alvestrand.titrax-sheet\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.cww\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cww\"]\n  },\n  \"application/prs.cyn\": {\n    \"source\": \"iana\",\n    \"charset\": \"7-BIT\"\n  },\n  \"application/prs.hpub+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/prs.implied-document+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/prs.implied-executable\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.implied-object+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/prs.implied-object+json-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.implied-object+yaml\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.implied-structure\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.mayfile\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.nprend\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.plucker\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.rdf-xml-crypt\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.vcfbzip2\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.xsf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xsf\"]\n  },\n  \"application/pskc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"pskcxml\"]\n  },\n  \"application/pvd+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/qsig\": {\n    \"source\": \"iana\"\n  },\n  \"application/raml+yaml\": {\n    \"compressible\": true,\n    \"extensions\": [\"raml\"]\n  },\n  \"application/raptorfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/rdap+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/rdf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rdf\",\"owl\"]\n  },\n  \"application/reginfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rif\"]\n  },\n  \"application/relax-ng-compact-syntax\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rnc\"]\n  },\n  \"application/remote-printing\": {\n    \"source\": \"apache\"\n  },\n  \"application/reputon+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/resolve-response+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/resource-lists+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rl\"]\n  },\n  \"application/resource-lists-diff+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rld\"]\n  },\n  \"application/rfc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/riscos\": {\n    \"source\": \"iana\"\n  },\n  \"application/rlmi+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/rls-services+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rs\"]\n  },\n  \"application/route-apd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rapd\"]\n  },\n  \"application/route-s-tsid+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sls\"]\n  },\n  \"application/route-usd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rusd\"]\n  },\n  \"application/rpki-checklist\": {\n    \"source\": \"iana\"\n  },\n  \"application/rpki-ghostbusters\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gbr\"]\n  },\n  \"application/rpki-manifest\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mft\"]\n  },\n  \"application/rpki-publication\": {\n    \"source\": \"iana\"\n  },\n  \"application/rpki-roa\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"roa\"]\n  },\n  \"application/rpki-signed-tal\": {\n    \"source\": \"iana\"\n  },\n  \"application/rpki-updown\": {\n    \"source\": \"iana\"\n  },\n  \"application/rsd+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"rsd\"]\n  },\n  \"application/rss+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"rss\"]\n  },\n  \"application/rtf\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rtf\"]\n  },\n  \"application/rtploopback\": {\n    \"source\": \"iana\"\n  },\n  \"application/rtx\": {\n    \"source\": \"iana\"\n  },\n  \"application/samlassertion+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/samlmetadata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sarif+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sarif-external-properties+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sbe\": {\n    \"source\": \"iana\"\n  },\n  \"application/sbml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sbml\"]\n  },\n  \"application/scaip+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/scim+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/scvp-cv-request\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"scq\"]\n  },\n  \"application/scvp-cv-response\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"scs\"]\n  },\n  \"application/scvp-vp-request\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spq\"]\n  },\n  \"application/scvp-vp-response\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spp\"]\n  },\n  \"application/sdp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sdp\"]\n  },\n  \"application/secevent+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/senml+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/senml+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/senml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"senmlx\"]\n  },\n  \"application/senml-etch+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/senml-etch+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/senml-exi\": {\n    \"source\": \"iana\"\n  },\n  \"application/sensml+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/sensml+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sensml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sensmlx\"]\n  },\n  \"application/sensml-exi\": {\n    \"source\": \"iana\"\n  },\n  \"application/sep+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sep-exi\": {\n    \"source\": \"iana\"\n  },\n  \"application/session-info\": {\n    \"source\": \"iana\"\n  },\n  \"application/set-payment\": {\n    \"source\": \"iana\"\n  },\n  \"application/set-payment-initiation\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"setpay\"]\n  },\n  \"application/set-registration\": {\n    \"source\": \"iana\"\n  },\n  \"application/set-registration-initiation\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"setreg\"]\n  },\n  \"application/sgml\": {\n    \"source\": \"iana\"\n  },\n  \"application/sgml-open-catalog\": {\n    \"source\": \"iana\"\n  },\n  \"application/shf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"shf\"]\n  },\n  \"application/sieve\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"siv\",\"sieve\"]\n  },\n  \"application/simple-filter+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/simple-message-summary\": {\n    \"source\": \"iana\"\n  },\n  \"application/simplesymbolcontainer\": {\n    \"source\": \"iana\"\n  },\n  \"application/sipc\": {\n    \"source\": \"iana\"\n  },\n  \"application/slate\": {\n    \"source\": \"iana\"\n  },\n  \"application/smil\": {\n    \"source\": \"apache\"\n  },\n  \"application/smil+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"smi\",\"smil\"]\n  },\n  \"application/smpte336m\": {\n    \"source\": \"iana\"\n  },\n  \"application/soap+fastinfoset\": {\n    \"source\": \"iana\"\n  },\n  \"application/soap+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sparql-query\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rq\"]\n  },\n  \"application/sparql-results+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"srx\"]\n  },\n  \"application/spdx+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/spirits-event+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sql\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sql\"]\n  },\n  \"application/srgs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gram\"]\n  },\n  \"application/srgs+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"grxml\"]\n  },\n  \"application/sru+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sru\"]\n  },\n  \"application/ssdl+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"ssdl\"]\n  },\n  \"application/sslkeylogfile\": {\n    \"source\": \"iana\"\n  },\n  \"application/ssml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ssml\"]\n  },\n  \"application/st2110-41\": {\n    \"source\": \"iana\"\n  },\n  \"application/stix+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/stratum\": {\n    \"source\": \"iana\"\n  },\n  \"application/swid+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/swid+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"swidtag\"]\n  },\n  \"application/tamp-apex-update\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-apex-update-confirm\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-community-update\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-community-update-confirm\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-error\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-sequence-adjust\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-sequence-adjust-confirm\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-status-query\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-status-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-update\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-update-confirm\": {\n    \"source\": \"iana\"\n  },\n  \"application/tar\": {\n    \"compressible\": true\n  },\n  \"application/taxii+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/td+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/tei+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"tei\",\"teicorpus\"]\n  },\n  \"application/tetra_isi\": {\n    \"source\": \"iana\"\n  },\n  \"application/thraud+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"tfi\"]\n  },\n  \"application/timestamp-query\": {\n    \"source\": \"iana\"\n  },\n  \"application/timestamp-reply\": {\n    \"source\": \"iana\"\n  },\n  \"application/timestamped-data\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tsd\"]\n  },\n  \"application/tlsrpt+gzip\": {\n    \"source\": \"iana\"\n  },\n  \"application/tlsrpt+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/tm+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/tnauthlist\": {\n    \"source\": \"iana\"\n  },\n  \"application/toc+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/token-introspection+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/toml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"toml\"]\n  },\n  \"application/trickle-ice-sdpfrag\": {\n    \"source\": \"iana\"\n  },\n  \"application/trig\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"trig\"]\n  },\n  \"application/trust-chain+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/trust-mark+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/trust-mark-delegation+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/ttml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ttml\"]\n  },\n  \"application/tve-trigger\": {\n    \"source\": \"iana\"\n  },\n  \"application/tzif\": {\n    \"source\": \"iana\"\n  },\n  \"application/tzif-leap\": {\n    \"source\": \"iana\"\n  },\n  \"application/ubjson\": {\n    \"compressible\": false,\n    \"extensions\": [\"ubj\"]\n  },\n  \"application/uccs+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/ujcs+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ulpfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/urc-grpsheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/urc-ressheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rsheet\"]\n  },\n  \"application/urc-targetdesc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"td\"]\n  },\n  \"application/urc-uisocketdesc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vc+cose\": {\n    \"source\": \"iana\"\n  },\n  \"application/vc+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vcard+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vcard+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vemmi\": {\n    \"source\": \"iana\"\n  },\n  \"application/vividence.scriptfile\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.1000minds.decision-model+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"1km\"]\n  },\n  \"application/vnd.1ob\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp-prose+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp-prose-pc3a+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp-prose-pc3ach+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp-prose-pc3ch+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp-prose-pc8+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp-v2x-local-service-information\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.5gnas\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.5gsa2x\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.5gsa2x-local-service-information\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.5gsv2x\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.5gsv2x-local-service-information\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.access-transfer-events+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.bsf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.crs+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.current-location-discovery+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.gmop+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.gtpc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.interworking-data\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.lpp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.mc-signalling-ear\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-payload\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.mcdata-regroup+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-service-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-signalling\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-location-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-regroup+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-service-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-signed+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-regroup+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mid-call+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.ngap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.pfcp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.pic-bw-large\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"plb\"]\n  },\n  \"application/vnd.3gpp.pic-bw-small\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"psb\"]\n  },\n  \"application/vnd.3gpp.pic-bw-var\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pvb\"]\n  },\n  \"application/vnd.3gpp.pinapp-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.s1ap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.seal-group-doc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.seal-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.seal-location-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.seal-mbms-usage-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.seal-network-qos-management-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.seal-ue-config-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.seal-unicast-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.seal-user-profile-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.sms\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.sms+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.srvcc-ext+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.srvcc-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.state-and-event-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.ussd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.v2x\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.vae-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp2.sms\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp2.tcap\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tcap\"]\n  },\n  \"application/vnd.3lightssoftware.imagescal\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3m.post-it-notes\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pwn\"]\n  },\n  \"application/vnd.accpac.simply.aso\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"aso\"]\n  },\n  \"application/vnd.accpac.simply.imp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"imp\"]\n  },\n  \"application/vnd.acm.addressxfer+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.acm.chatbot+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.acucobol\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"acu\"]\n  },\n  \"application/vnd.acucorp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"atc\",\"acutc\"]\n  },\n  \"application/vnd.adobe.air-application-installer-package+zip\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"air\"]\n  },\n  \"application/vnd.adobe.flash.movie\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.adobe.formscentral.fcdt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fcdt\"]\n  },\n  \"application/vnd.adobe.fxp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fxp\",\"fxpl\"]\n  },\n  \"application/vnd.adobe.partial-upload\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.adobe.xdp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xdp\"]\n  },\n  \"application/vnd.adobe.xfdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xfdf\"]\n  },\n  \"application/vnd.aether.imp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.afplinedata\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.afplinedata-pagedef\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.cmoca-cmresource\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.foca-charset\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.foca-codedfont\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.foca-codepage\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-cmtable\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-formdef\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-mediummap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-objectcontainer\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-overlay\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-pagesegment\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.age\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"age\"]\n  },\n  \"application/vnd.ah-barcode\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.ahead.space\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ahead\"]\n  },\n  \"application/vnd.airzip.filesecure.azf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"azf\"]\n  },\n  \"application/vnd.airzip.filesecure.azs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"azs\"]\n  },\n  \"application/vnd.amadeus+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.amazon.ebook\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"azw\"]\n  },\n  \"application/vnd.amazon.mobi8-ebook\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.americandynamics.acc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"acc\"]\n  },\n  \"application/vnd.amiga.ami\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ami\"]\n  },\n  \"application/vnd.amundsen.maze+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.android.ota\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.android.package-archive\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"apk\"]\n  },\n  \"application/vnd.anki\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.anser-web-certificate-issue-initiation\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cii\"]\n  },\n  \"application/vnd.anser-web-funds-transfer-initiation\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fti\"]\n  },\n  \"application/vnd.antix.game-component\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"atx\"]\n  },\n  \"application/vnd.apache.arrow.file\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apache.arrow.stream\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apache.parquet\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apache.thrift.binary\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apache.thrift.compact\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apache.thrift.json\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apexlang\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.api+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.aplextor.warrp+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.apothekende.reservation+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.apple.installer+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mpkg\"]\n  },\n  \"application/vnd.apple.keynote\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"key\"]\n  },\n  \"application/vnd.apple.mpegurl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"m3u8\"]\n  },\n  \"application/vnd.apple.numbers\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"numbers\"]\n  },\n  \"application/vnd.apple.pages\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pages\"]\n  },\n  \"application/vnd.apple.pkpass\": {\n    \"compressible\": false,\n    \"extensions\": [\"pkpass\"]\n  },\n  \"application/vnd.arastra.swi\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.aristanetworks.swi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"swi\"]\n  },\n  \"application/vnd.artisan+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.artsquare\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.astraea-software.iota\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"iota\"]\n  },\n  \"application/vnd.audiograph\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"aep\"]\n  },\n  \"application/vnd.autodesk.fbx\": {\n    \"extensions\": [\"fbx\"]\n  },\n  \"application/vnd.autopackage\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.avalon+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.avistar+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.balsamiq.bmml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"bmml\"]\n  },\n  \"application/vnd.balsamiq.bmpr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.banana-accounting\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bbf.usp.error\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bbf.usp.msg\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bbf.usp.msg+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.bekitzur-stech+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.belightsoft.lhzd+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.belightsoft.lhzl+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.bint.med-content\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.biopax.rdf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.blink-idb-value-wrapper\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.blueice.multipass\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpm\"]\n  },\n  \"application/vnd.bluetooth.ep.oob\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bluetooth.le.oob\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bmi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"bmi\"]\n  },\n  \"application/vnd.bpf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bpf3\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.businessobjects\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rep\"]\n  },\n  \"application/vnd.byu.uapi+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.bzip3\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.c3voc.schedule+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cab-jscript\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.canon-cpdl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.canon-lips\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.capasystems-pg+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cendio.thinlinc.clientconf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.century-systems.tcp_stream\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.chemdraw+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"cdxml\"]\n  },\n  \"application/vnd.chess-pgn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.chipnuts.karaoke-mmd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mmd\"]\n  },\n  \"application/vnd.ciedi\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cinderella\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdy\"]\n  },\n  \"application/vnd.cirpack.isdn-ext\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.citationstyles.style+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"csl\"]\n  },\n  \"application/vnd.claymore\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cla\"]\n  },\n  \"application/vnd.cloanto.rp9\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rp9\"]\n  },\n  \"application/vnd.clonk.c4group\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n  },\n  \"application/vnd.cluetrust.cartomobile-config\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"c11amc\"]\n  },\n  \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"c11amz\"]\n  },\n  \"application/vnd.cncf.helm.chart.content.v1.tar+gzip\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cncf.helm.chart.provenance.v1.prov\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cncf.helm.config.v1+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.coffeescript\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.document\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.document-template\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.presentation\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.presentation-template\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.spreadsheet\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collection+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.collection.doc+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.collection.next+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.comicbook+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.comicbook-rar\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.commerce-battelle\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.commonspace\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"csp\"]\n  },\n  \"application/vnd.contact.cmsg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdbcmsg\"]\n  },\n  \"application/vnd.coreos.ignition+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cosmocaller\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cmc\"]\n  },\n  \"application/vnd.crick.clicker\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkx\"]\n  },\n  \"application/vnd.crick.clicker.keyboard\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkk\"]\n  },\n  \"application/vnd.crick.clicker.palette\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkp\"]\n  },\n  \"application/vnd.crick.clicker.template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkt\"]\n  },\n  \"application/vnd.crick.clicker.wordbank\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkw\"]\n  },\n  \"application/vnd.criticaltools.wbs+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wbs\"]\n  },\n  \"application/vnd.cryptii.pipe+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.crypto-shade-file\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cryptomator.encrypted\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cryptomator.vault\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ctc-posml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pml\"]\n  },\n  \"application/vnd.ctct.ws+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cups-pdf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cups-postscript\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cups-ppd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ppd\"]\n  },\n  \"application/vnd.cups-raster\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cups-raw\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.curl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.curl.car\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"car\"]\n  },\n  \"application/vnd.curl.pcurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pcurl\"]\n  },\n  \"application/vnd.cyan.dean.root+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cybank\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cyclonedx+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cyclonedx+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.d2l.coursepackage1p0+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.d3m-dataset\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.d3m-problem\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dart\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dart\"]\n  },\n  \"application/vnd.data-vision.rdz\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rdz\"]\n  },\n  \"application/vnd.datalog\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.datapackage+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dataresource+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dbf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dbf\"]\n  },\n  \"application/vnd.dcmp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dcmp\"]\n  },\n  \"application/vnd.debian.binary-package\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dece.data\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n  },\n  \"application/vnd.dece.ttml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"uvt\",\"uvvt\"]\n  },\n  \"application/vnd.dece.unspecified\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvx\",\"uvvx\"]\n  },\n  \"application/vnd.dece.zip\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvz\",\"uvvz\"]\n  },\n  \"application/vnd.denovo.fcselayout-link\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fe_launch\"]\n  },\n  \"application/vnd.desmume.movie\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dm.delegation+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dna\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dna\"]\n  },\n  \"application/vnd.document+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dolby.mlp\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mlp\"]\n  },\n  \"application/vnd.dolby.mobile.1\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dolby.mobile.2\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.doremir.scorecloud-binary-document\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dpgraph\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dpg\"]\n  },\n  \"application/vnd.dreamfactory\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dfac\"]\n  },\n  \"application/vnd.drive+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ds-keypoint\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"kpxx\"]\n  },\n  \"application/vnd.dtg.local\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dtg.local.flash\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dtg.local.html\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ait\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ait\"]\n  },\n  \"application/vnd.dvb.dvbisl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.dvbj\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.esgcontainer\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcdftnotifaccess\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcesgaccess\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcesgaccess2\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcesgpdd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcroaming\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.iptv.alfec-base\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.iptv.alfec-enhancement\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.notif-aggregate-root+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-container+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-generic+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-ia-msglist+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-init+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.pfr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.service\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"svc\"]\n  },\n  \"application/vnd.dxr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dynageo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"geo\"]\n  },\n  \"application/vnd.dzr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.easykaraoke.cdgdownload\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecdis-update\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecip.rlp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.eclipse.ditto+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ecowin.chart\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mag\"]\n  },\n  \"application/vnd.ecowin.filerequest\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecowin.fileupdate\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecowin.series\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecowin.seriesrequest\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecowin.seriesupdate\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.efi.img\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.efi.iso\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.eln+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.emclient.accessrequest+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.enliven\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nml\"]\n  },\n  \"application/vnd.enphase.envoy\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.eprints.data+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.epson.esf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"esf\"]\n  },\n  \"application/vnd.epson.msf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"msf\"]\n  },\n  \"application/vnd.epson.quickanime\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qam\"]\n  },\n  \"application/vnd.epson.salt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"slt\"]\n  },\n  \"application/vnd.epson.ssf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ssf\"]\n  },\n  \"application/vnd.ericsson.quickcall\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.erofs\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.espass-espass+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.eszigno3+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"es3\",\"et3\"]\n  },\n  \"application/vnd.etsi.aoc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.asic-e+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.etsi.asic-s+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.etsi.cug+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvcommand+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvdiscovery+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvprofile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvsad-bc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvsad-cod+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvsad-npvr+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvservice+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvsync+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvueprofile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.mcid+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.mheg5\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.pstn+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.sci+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.simservs+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.timestamp-token\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.etsi.tsl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.tsl.der\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.eu.kasparian.car+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.eudora.data\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.evolv.ecig.profile\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.evolv.ecig.settings\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.evolv.ecig.theme\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.exstream-empower+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.exstream-package\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ezpix-album\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ez2\"]\n  },\n  \"application/vnd.ezpix-package\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ez3\"]\n  },\n  \"application/vnd.f-secure.mobile\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.familysearch.gedcom+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.fastcopy-disk-image\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fdf\"]\n  },\n  \"application/vnd.fdsn.mseed\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mseed\"]\n  },\n  \"application/vnd.fdsn.seed\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"seed\",\"dataless\"]\n  },\n  \"application/vnd.fdsn.stationxml+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"XML-BASED\",\n    \"compressible\": true\n  },\n  \"application/vnd.ffsns\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ficlab.flb+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.filmit.zfc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fints\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.firemonkeys.cloudcell\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.flographit\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gph\"]\n  },\n  \"application/vnd.fluxtime.clip\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ftc\"]\n  },\n  \"application/vnd.font-fontforge-sfd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.framemaker\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n  },\n  \"application/vnd.freelog.comic\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.frogans.fnc\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fnc\"]\n  },\n  \"application/vnd.frogans.ltf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ltf\"]\n  },\n  \"application/vnd.fsc.weblaunch\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fsc\"]\n  },\n  \"application/vnd.fujifilm.fb.docuworks\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujifilm.fb.docuworks.binder\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujifilm.fb.docuworks.container\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujifilm.fb.jfi+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.fujitsu.oasys\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oas\"]\n  },\n  \"application/vnd.fujitsu.oasys2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oa2\"]\n  },\n  \"application/vnd.fujitsu.oasys3\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oa3\"]\n  },\n  \"application/vnd.fujitsu.oasysgp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fg5\"]\n  },\n  \"application/vnd.fujitsu.oasysprs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"bh2\"]\n  },\n  \"application/vnd.fujixerox.art-ex\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujixerox.art4\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujixerox.ddd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ddd\"]\n  },\n  \"application/vnd.fujixerox.docuworks\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xdw\"]\n  },\n  \"application/vnd.fujixerox.docuworks.binder\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xbd\"]\n  },\n  \"application/vnd.fujixerox.docuworks.container\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujixerox.hbpl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fut-misnet\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.futoin+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.futoin+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.fuzzysheet\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fzs\"]\n  },\n  \"application/vnd.ga4gh.passport+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.genomatix.tuxedo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"txd\"]\n  },\n  \"application/vnd.genozip\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.gentics.grd+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.gentoo.catmetadata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.gentoo.ebuild\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.gentoo.eclass\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.gentoo.gpkg\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.gentoo.manifest\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.gentoo.pkgmetadata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.gentoo.xpak\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.geo+json\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/vnd.geocube+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/vnd.geogebra.file\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ggb\"]\n  },\n  \"application/vnd.geogebra.pinboard\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.geogebra.slides\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ggs\"]\n  },\n  \"application/vnd.geogebra.tool\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ggt\"]\n  },\n  \"application/vnd.geometry-explorer\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gex\",\"gre\"]\n  },\n  \"application/vnd.geonext\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gxt\"]\n  },\n  \"application/vnd.geoplan\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"g2w\"]\n  },\n  \"application/vnd.geospace\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"g3w\"]\n  },\n  \"application/vnd.gerber\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.globalplatform.card-content-mgt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.globalplatform.card-content-mgt-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.gmx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gmx\"]\n  },\n  \"application/vnd.gnu.taler.exchange+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.gnu.taler.merchant+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.google-apps.audio\": {},\n  \"application/vnd.google-apps.document\": {\n    \"compressible\": false,\n    \"extensions\": [\"gdoc\"]\n  },\n  \"application/vnd.google-apps.drawing\": {\n    \"compressible\": false,\n    \"extensions\": [\"gdraw\"]\n  },\n  \"application/vnd.google-apps.drive-sdk\": {\n    \"compressible\": false\n  },\n  \"application/vnd.google-apps.file\": {},\n  \"application/vnd.google-apps.folder\": {\n    \"compressible\": false\n  },\n  \"application/vnd.google-apps.form\": {\n    \"compressible\": false,\n    \"extensions\": [\"gform\"]\n  },\n  \"application/vnd.google-apps.fusiontable\": {},\n  \"application/vnd.google-apps.jam\": {\n    \"compressible\": false,\n    \"extensions\": [\"gjam\"]\n  },\n  \"application/vnd.google-apps.mail-layout\": {},\n  \"application/vnd.google-apps.map\": {\n    \"compressible\": false,\n    \"extensions\": [\"gmap\"]\n  },\n  \"application/vnd.google-apps.photo\": {},\n  \"application/vnd.google-apps.presentation\": {\n    \"compressible\": false,\n    \"extensions\": [\"gslides\"]\n  },\n  \"application/vnd.google-apps.script\": {\n    \"compressible\": false,\n    \"extensions\": [\"gscript\"]\n  },\n  \"application/vnd.google-apps.shortcut\": {},\n  \"application/vnd.google-apps.site\": {\n    \"compressible\": false,\n    \"extensions\": [\"gsite\"]\n  },\n  \"application/vnd.google-apps.spreadsheet\": {\n    \"compressible\": false,\n    \"extensions\": [\"gsheet\"]\n  },\n  \"application/vnd.google-apps.unknown\": {},\n  \"application/vnd.google-apps.video\": {},\n  \"application/vnd.google-earth.kml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"kml\"]\n  },\n  \"application/vnd.google-earth.kmz\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"kmz\"]\n  },\n  \"application/vnd.gov.sk.e-form+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/vnd.gov.sk.e-form+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xdcf\"]\n  },\n  \"application/vnd.gpxsee.map+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.grafeq\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gqf\",\"gqs\"]\n  },\n  \"application/vnd.gridmp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.groove-account\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gac\"]\n  },\n  \"application/vnd.groove-help\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ghf\"]\n  },\n  \"application/vnd.groove-identity-message\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gim\"]\n  },\n  \"application/vnd.groove-injector\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"grv\"]\n  },\n  \"application/vnd.groove-tool-message\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gtm\"]\n  },\n  \"application/vnd.groove-tool-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tpl\"]\n  },\n  \"application/vnd.groove-vcard\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vcg\"]\n  },\n  \"application/vnd.hal+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hal+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"hal\"]\n  },\n  \"application/vnd.handheld-entertainment+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"zmm\"]\n  },\n  \"application/vnd.hbci\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hbci\"]\n  },\n  \"application/vnd.hc+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hcl-bireports\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.hdt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.heroku+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hhe.lesson-player\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"les\"]\n  },\n  \"application/vnd.hp-hpgl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hpgl\"]\n  },\n  \"application/vnd.hp-hpid\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hpid\"]\n  },\n  \"application/vnd.hp-hps\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hps\"]\n  },\n  \"application/vnd.hp-jlyt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jlt\"]\n  },\n  \"application/vnd.hp-pcl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pcl\"]\n  },\n  \"application/vnd.hp-pclxl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pclxl\"]\n  },\n  \"application/vnd.hsl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.httphone\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.hydrostatix.sof-data\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sfd-hdstx\"]\n  },\n  \"application/vnd.hyper+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hyper-item+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hyperdrive+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hzn-3d-crossword\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ibm.afplinedata\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.ibm.electronic-media\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ibm.minipay\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpy\"]\n  },\n  \"application/vnd.ibm.modcap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n  },\n  \"application/vnd.ibm.rights-management\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"irm\"]\n  },\n  \"application/vnd.ibm.secure-container\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sc\"]\n  },\n  \"application/vnd.iccprofile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"icc\",\"icm\"]\n  },\n  \"application/vnd.ieee.1905\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.igloader\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"igl\"]\n  },\n  \"application/vnd.imagemeter.folder+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.imagemeter.image+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.immervision-ivp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ivp\"]\n  },\n  \"application/vnd.immervision-ivu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ivu\"]\n  },\n  \"application/vnd.ims.imsccv1p1\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ims.imsccv1p2\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ims.imsccv1p3\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ims.lis.v2.result+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolproxy+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolsettings+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.informedcontrol.rms+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.informix-visionary\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.infotech.project\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.infotech.project+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.innopath.wamp.notification\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.insors.igm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"igm\"]\n  },\n  \"application/vnd.intercon.formnet\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xpw\",\"xpx\"]\n  },\n  \"application/vnd.intergeo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"i2g\"]\n  },\n  \"application/vnd.intertrust.digibox\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.intertrust.nncp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.intu.qbo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qbo\"]\n  },\n  \"application/vnd.intu.qfx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qfx\"]\n  },\n  \"application/vnd.ipfs.ipns-record\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ipld.car\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ipld.dag-cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ipld.dag-json\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ipld.raw\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.iptc.g2.catalogitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.conceptitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.newsitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.newsmessage+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.packageitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.planningitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ipunplugged.rcprofile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rcprofile\"]\n  },\n  \"application/vnd.irepository.package+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"irp\"]\n  },\n  \"application/vnd.is-xpr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xpr\"]\n  },\n  \"application/vnd.isac.fcs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fcs\"]\n  },\n  \"application/vnd.iso11783-10+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.jam\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jam\"]\n  },\n  \"application/vnd.japannet-directory-service\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-jpnstore-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-payment-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-registration\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-registration-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-setstore-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-verification\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-verification-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.jcp.javame.midlet-rms\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rms\"]\n  },\n  \"application/vnd.jisp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jisp\"]\n  },\n  \"application/vnd.joost.joda-archive\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"joda\"]\n  },\n  \"application/vnd.jsk.isdn-ngn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.kahootz\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ktz\",\"ktr\"]\n  },\n  \"application/vnd.kde.karbon\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"karbon\"]\n  },\n  \"application/vnd.kde.kchart\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"chrt\"]\n  },\n  \"application/vnd.kde.kformula\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kfo\"]\n  },\n  \"application/vnd.kde.kivio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"flw\"]\n  },\n  \"application/vnd.kde.kontour\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kon\"]\n  },\n  \"application/vnd.kde.kpresenter\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kpr\",\"kpt\"]\n  },\n  \"application/vnd.kde.kspread\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ksp\"]\n  },\n  \"application/vnd.kde.kword\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kwd\",\"kwt\"]\n  },\n  \"application/vnd.kdl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.kenameaapp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"htke\"]\n  },\n  \"application/vnd.keyman.kmp+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.keyman.kmx\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.kidspiration\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kia\"]\n  },\n  \"application/vnd.kinar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kne\",\"knp\"]\n  },\n  \"application/vnd.koan\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n  },\n  \"application/vnd.kodak-descriptor\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sse\"]\n  },\n  \"application/vnd.las\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.las.las+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.las.las+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"lasxml\"]\n  },\n  \"application/vnd.laszip\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ldev.productlicensing\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.leap+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.liberty-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.llamagraphics.life-balance.desktop\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"lbd\"]\n  },\n  \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"lbe\"]\n  },\n  \"application/vnd.logipipe.circuit+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.loom\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.lotus-1-2-3\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"123\"]\n  },\n  \"application/vnd.lotus-approach\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"apr\"]\n  },\n  \"application/vnd.lotus-freelance\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pre\"]\n  },\n  \"application/vnd.lotus-notes\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nsf\"]\n  },\n  \"application/vnd.lotus-organizer\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"org\"]\n  },\n  \"application/vnd.lotus-screencam\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"scm\"]\n  },\n  \"application/vnd.lotus-wordpro\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"lwp\"]\n  },\n  \"application/vnd.macports.portpkg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"portpkg\"]\n  },\n  \"application/vnd.mapbox-vector-tile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mvt\"]\n  },\n  \"application/vnd.marlin.drm.actiontoken+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.marlin.drm.conftoken+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.marlin.drm.license+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.marlin.drm.mdcf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mason+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.maxar.archive.3tz+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.maxmind.maxmind-db\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mcd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mcd\"]\n  },\n  \"application/vnd.mdl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mdl-mbsdf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.medcalcdata\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mc1\"]\n  },\n  \"application/vnd.mediastation.cdkey\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdkey\"]\n  },\n  \"application/vnd.medicalholodeck.recordxr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.meridian-slingshot\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mermaid\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mfer\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mwf\"]\n  },\n  \"application/vnd.mfmp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mfm\"]\n  },\n  \"application/vnd.micro+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.micrografx.flo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"flo\"]\n  },\n  \"application/vnd.micrografx.igx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"igx\"]\n  },\n  \"application/vnd.microsoft.portable-executable\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.microsoft.windows.thumbnail-cache\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.miele+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.mif\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mif\"]\n  },\n  \"application/vnd.minisoft-hp3000-save\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mobius.daf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"daf\"]\n  },\n  \"application/vnd.mobius.dis\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dis\"]\n  },\n  \"application/vnd.mobius.mbk\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mbk\"]\n  },\n  \"application/vnd.mobius.mqy\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mqy\"]\n  },\n  \"application/vnd.mobius.msl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"msl\"]\n  },\n  \"application/vnd.mobius.plc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"plc\"]\n  },\n  \"application/vnd.mobius.txf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"txf\"]\n  },\n  \"application/vnd.modl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mophun.application\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpn\"]\n  },\n  \"application/vnd.mophun.certificate\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpc\"]\n  },\n  \"application/vnd.motorola.flexsuite\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.adsi\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.fis\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.gotap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.kmr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.ttc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.wem\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.iprm\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mozilla.xul+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xul\"]\n  },\n  \"application/vnd.ms-3mfdocument\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-artgalry\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cil\"]\n  },\n  \"application/vnd.ms-asf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-cab-compressed\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cab\"]\n  },\n  \"application/vnd.ms-color.iccprofile\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.ms-excel\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n  },\n  \"application/vnd.ms-excel.addin.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xlam\"]\n  },\n  \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xlsb\"]\n  },\n  \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xlsm\"]\n  },\n  \"application/vnd.ms-excel.template.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xltm\"]\n  },\n  \"application/vnd.ms-fontobject\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"eot\"]\n  },\n  \"application/vnd.ms-htmlhelp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"chm\"]\n  },\n  \"application/vnd.ms-ims\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ims\"]\n  },\n  \"application/vnd.ms-lrm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"lrm\"]\n  },\n  \"application/vnd.ms-office.activex+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-officetheme\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"thmx\"]\n  },\n  \"application/vnd.ms-opentype\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-outlook\": {\n    \"compressible\": false,\n    \"extensions\": [\"msg\"]\n  },\n  \"application/vnd.ms-package.obfuscated-opentype\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.ms-pki.seccat\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cat\"]\n  },\n  \"application/vnd.ms-pki.stl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"stl\"]\n  },\n  \"application/vnd.ms-playready.initiator+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-powerpoint\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n  },\n  \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ppam\"]\n  },\n  \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pptm\"]\n  },\n  \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sldm\"]\n  },\n  \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ppsm\"]\n  },\n  \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"potm\"]\n  },\n  \"application/vnd.ms-printdevicecapabilities+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-printing.printticket+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-printschematicket+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-project\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpp\",\"mpt\"]\n  },\n  \"application/vnd.ms-tnef\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-visio.viewer\": {\n    \"extensions\": [\"vdx\"]\n  },\n  \"application/vnd.ms-windows.devicepairing\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-windows.nwprinting.oob\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-windows.printerpairing\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-windows.wsd.oob\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-wmdrm.lic-resp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-wmdrm.meter-resp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-word.document.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"docm\"]\n  },\n  \"application/vnd.ms-word.template.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dotm\"]\n  },\n  \"application/vnd.ms-works\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n  },\n  \"application/vnd.ms-wpl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wpl\"]\n  },\n  \"application/vnd.ms-xpsdocument\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"xps\"]\n  },\n  \"application/vnd.msa-disk-image\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mseq\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mseq\"]\n  },\n  \"application/vnd.msgpack\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.msign\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.multiad.creator\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.multiad.creator.cif\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.music-niff\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.musician\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mus\"]\n  },\n  \"application/vnd.muvee.style\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"msty\"]\n  },\n  \"application/vnd.mynfc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"taglet\"]\n  },\n  \"application/vnd.nacamar.ybrid+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nato.bindingdataobject+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nato.bindingdataobject+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nato.bindingdataobject+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"bdo\"]\n  },\n  \"application/vnd.nato.openxmlformats-package.iepd+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.ncd.control\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ncd.reference\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nearst.inv+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nebumind.line\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nervana\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.netfpx\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.neurolanguage.nlu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nlu\"]\n  },\n  \"application/vnd.nimn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nintendo.nitro.rom\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nintendo.snes.rom\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nitf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ntf\",\"nitf\"]\n  },\n  \"application/vnd.noblenet-directory\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nnd\"]\n  },\n  \"application/vnd.noblenet-sealer\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nns\"]\n  },\n  \"application/vnd.noblenet-web\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nnw\"]\n  },\n  \"application/vnd.nokia.catalogs\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.conml+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.conml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.iptv.config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.isds-radio-presets\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.landmark+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.landmark+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.landmarkcollection+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.n-gage.ac+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ac\"]\n  },\n  \"application/vnd.nokia.n-gage.data\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ngdat\"]\n  },\n  \"application/vnd.nokia.n-gage.symbian.install\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"n-gage\"]\n  },\n  \"application/vnd.nokia.ncd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.pcd+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.pcd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.radio-preset\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rpst\"]\n  },\n  \"application/vnd.nokia.radio-presets\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rpss\"]\n  },\n  \"application/vnd.novadigm.edm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"edm\"]\n  },\n  \"application/vnd.novadigm.edx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"edx\"]\n  },\n  \"application/vnd.novadigm.ext\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ext\"]\n  },\n  \"application/vnd.ntt-local.content-share\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ntt-local.file-transfer\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ntt-local.ogw_remote-access\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ntt-local.sip-ta_remote\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oai.workflows\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oai.workflows+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oai.workflows+yaml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oasis.opendocument.base\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oasis.opendocument.chart\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odc\"]\n  },\n  \"application/vnd.oasis.opendocument.chart-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"otc\"]\n  },\n  \"application/vnd.oasis.opendocument.database\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"odb\"]\n  },\n  \"application/vnd.oasis.opendocument.formula\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odf\"]\n  },\n  \"application/vnd.oasis.opendocument.formula-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odft\"]\n  },\n  \"application/vnd.oasis.opendocument.graphics\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"odg\"]\n  },\n  \"application/vnd.oasis.opendocument.graphics-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"otg\"]\n  },\n  \"application/vnd.oasis.opendocument.image\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odi\"]\n  },\n  \"application/vnd.oasis.opendocument.image-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oti\"]\n  },\n  \"application/vnd.oasis.opendocument.presentation\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"odp\"]\n  },\n  \"application/vnd.oasis.opendocument.presentation-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"otp\"]\n  },\n  \"application/vnd.oasis.opendocument.spreadsheet\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"ods\"]\n  },\n  \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ots\"]\n  },\n  \"application/vnd.oasis.opendocument.text\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"odt\"]\n  },\n  \"application/vnd.oasis.opendocument.text-master\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odm\"]\n  },\n  \"application/vnd.oasis.opendocument.text-master-template\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oasis.opendocument.text-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ott\"]\n  },\n  \"application/vnd.oasis.opendocument.text-web\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oth\"]\n  },\n  \"application/vnd.obn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ocf+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oci.image.manifest.v1+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oftn.l10n+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.contentaccessdownload+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.contentaccessstreaming+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.cspg-hexbinary\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oipf.dae.svg+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.dae.xhtml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.pae.gem\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oipf.spdiscovery+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.spdlist+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.ueprofile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.userprofile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.olpc-sugar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xo\"]\n  },\n  \"application/vnd.oma-scws-config\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma-scws-http-request\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma-scws-http-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.drm-trigger+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.imd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.ltkm\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.notification+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.provisioningtrigger\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.sgboot\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.sgdd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.sgdu\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.simple-symbol-container\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.sprov+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.stkm\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.cab-address-book+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.cab-feature-handler+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.cab-pcc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.cab-subs-invite+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.cab-user-prefs+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.dcd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.dcdc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.dd2+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dd2\"]\n  },\n  \"application/vnd.oma.drm.risd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.group-usage-list+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.lwm2m+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.lwm2m+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.lwm2m+tlv\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.pal+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.final-report+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.groups+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.push\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.scidm.messages+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.xcap-directory+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.omads-email+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.omads-file+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.omads-folder+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.omaloc-supl-init\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepager\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertamp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertamx\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertat\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertatp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertatx\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onvif.metadata\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openblox.game+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"obgx\"]\n  },\n  \"application/vnd.openblox.game-binary\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openeye.oeb\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openofficeorg.extension\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"oxt\"]\n  },\n  \"application/vnd.openstreetmap.data+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"osm\"]\n  },\n  \"application/vnd.opentimestamps.ots\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openvpi.dspx+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"pptx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sldx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ppsx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"potx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"xlsx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xltx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"docx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dotx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-package.core-properties+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-package.relationships+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oracle.resource+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.orange.indata\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.osa.netdeploy\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.osgeo.mapguide.package\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mgp\"]\n  },\n  \"application/vnd.osgi.bundle\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.osgi.dp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dp\"]\n  },\n  \"application/vnd.osgi.subsystem\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"esa\"]\n  },\n  \"application/vnd.otps.ct-kip+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oxli.countgraph\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.pagerduty+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.palm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n  },\n  \"application/vnd.panoply\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.paos.xml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.patentdive\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.patientecommsdoc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.pawaafile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"paw\"]\n  },\n  \"application/vnd.pcos\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.pg.format\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"str\"]\n  },\n  \"application/vnd.pg.osasli\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ei6\"]\n  },\n  \"application/vnd.piaccess.application-licence\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.picsel\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"efif\"]\n  },\n  \"application/vnd.pmi.widget\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wg\"]\n  },\n  \"application/vnd.poc.group-advertisement+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.pocketlearn\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"plf\"]\n  },\n  \"application/vnd.powerbuilder6\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pbd\"]\n  },\n  \"application/vnd.powerbuilder6-s\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.powerbuilder7\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.powerbuilder7-s\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.powerbuilder75\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.powerbuilder75-s\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.preminet\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.previewsystems.box\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"box\"]\n  },\n  \"application/vnd.procrate.brushset\": {\n    \"extensions\": [\"brushset\"]\n  },\n  \"application/vnd.procreate.brush\": {\n    \"extensions\": [\"brush\"]\n  },\n  \"application/vnd.procreate.dream\": {\n    \"extensions\": [\"drm\"]\n  },\n  \"application/vnd.proteus.magazine\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mgz\"]\n  },\n  \"application/vnd.psfs\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.pt.mundusmundi\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.publishare-delta-tree\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qps\"]\n  },\n  \"application/vnd.pvi.ptid1\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ptid\"]\n  },\n  \"application/vnd.pwg-multiplexed\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.pwg-xhtml-print+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xhtm\"]\n  },\n  \"application/vnd.qualcomm.brew-app-res\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.quarantainenet\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.quark.quarkxpress\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n  },\n  \"application/vnd.quobject-quoxdocument\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.radisys.moml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit-conf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit-conn+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit-dialog+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit-stream+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-conf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-base+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-group+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-speech+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-transform+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.rainstor.data\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.rapid\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.rar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rar\"]\n  },\n  \"application/vnd.realvnc.bed\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"bed\"]\n  },\n  \"application/vnd.recordare.musicxml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxl\"]\n  },\n  \"application/vnd.recordare.musicxml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"musicxml\"]\n  },\n  \"application/vnd.relpipe\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.renlearn.rlprint\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.resilient.logic\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.restful+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.rig.cryptonote\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cryptonote\"]\n  },\n  \"application/vnd.rim.cod\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cod\"]\n  },\n  \"application/vnd.rn-realmedia\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"rm\"]\n  },\n  \"application/vnd.rn-realmedia-vbr\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"rmvb\"]\n  },\n  \"application/vnd.route66.link66+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"link66\"]\n  },\n  \"application/vnd.rs-274x\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ruckus.download\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.s3sms\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sailingtracker.track\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"st\"]\n  },\n  \"application/vnd.sar\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sbm.cid\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sbm.mid2\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.scribus\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.3df\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.csf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.doc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.eml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.mht\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.net\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.ppt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.tiff\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.xls\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealedmedia.softseal.html\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealedmedia.softseal.pdf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.seemail\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"see\"]\n  },\n  \"application/vnd.seis+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.sema\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sema\"]\n  },\n  \"application/vnd.semd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"semd\"]\n  },\n  \"application/vnd.semf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"semf\"]\n  },\n  \"application/vnd.shade-save-file\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.shana.informed.formdata\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ifm\"]\n  },\n  \"application/vnd.shana.informed.formtemplate\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"itp\"]\n  },\n  \"application/vnd.shana.informed.interchange\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"iif\"]\n  },\n  \"application/vnd.shana.informed.package\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ipk\"]\n  },\n  \"application/vnd.shootproof+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.shopkick+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.shp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.shx\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sigrok.session\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.simtech-mindmapper\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"twd\",\"twds\"]\n  },\n  \"application/vnd.siren+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.sketchometry\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.smaf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mmf\"]\n  },\n  \"application/vnd.smart.notebook\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.smart.teacher\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"teacher\"]\n  },\n  \"application/vnd.smintio.portals.archive\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.snesdev-page-table\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.software602.filler.form+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"fo\"]\n  },\n  \"application/vnd.software602.filler.form-xml-zip\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.solent.sdkm+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sdkm\",\"sdkd\"]\n  },\n  \"application/vnd.spotfire.dxp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dxp\"]\n  },\n  \"application/vnd.spotfire.sfs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sfs\"]\n  },\n  \"application/vnd.sqlite3\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sss-cod\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sss-dtf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sss-ntf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.stardivision.calc\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sdc\"]\n  },\n  \"application/vnd.stardivision.draw\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sda\"]\n  },\n  \"application/vnd.stardivision.impress\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sdd\"]\n  },\n  \"application/vnd.stardivision.math\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"smf\"]\n  },\n  \"application/vnd.stardivision.writer\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sdw\",\"vor\"]\n  },\n  \"application/vnd.stardivision.writer-global\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sgl\"]\n  },\n  \"application/vnd.stepmania.package\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"smzip\"]\n  },\n  \"application/vnd.stepmania.stepchart\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sm\"]\n  },\n  \"application/vnd.street-stream\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sun.wadl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wadl\"]\n  },\n  \"application/vnd.sun.xml.calc\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxc\"]\n  },\n  \"application/vnd.sun.xml.calc.template\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"stc\"]\n  },\n  \"application/vnd.sun.xml.draw\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxd\"]\n  },\n  \"application/vnd.sun.xml.draw.template\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"std\"]\n  },\n  \"application/vnd.sun.xml.impress\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxi\"]\n  },\n  \"application/vnd.sun.xml.impress.template\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sti\"]\n  },\n  \"application/vnd.sun.xml.math\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxm\"]\n  },\n  \"application/vnd.sun.xml.writer\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxw\"]\n  },\n  \"application/vnd.sun.xml.writer.global\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxg\"]\n  },\n  \"application/vnd.sun.xml.writer.template\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"stw\"]\n  },\n  \"application/vnd.sus-calendar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sus\",\"susp\"]\n  },\n  \"application/vnd.svd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"svd\"]\n  },\n  \"application/vnd.swiftview-ics\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sybyl.mol2\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sycle+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.syft+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.symbian.install\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sis\",\"sisx\"]\n  },\n  \"application/vnd.syncml+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"xsm\"]\n  },\n  \"application/vnd.syncml.dm+wbxml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"extensions\": [\"bdm\"]\n  },\n  \"application/vnd.syncml.dm+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"xdm\"]\n  },\n  \"application/vnd.syncml.dm.notification\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.syncml.dmddf+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.syncml.dmddf+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"ddf\"]\n  },\n  \"application/vnd.syncml.dmtnds+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.syncml.dmtnds+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.syncml.ds.notification\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.tableschema+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.tao.intent-module-archive\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tao\"]\n  },\n  \"application/vnd.tcpdump.pcap\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n  },\n  \"application/vnd.think-cell.ppttc+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.tmd.mediaflex.api+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.tml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.tmobile-livetv\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tmo\"]\n  },\n  \"application/vnd.tri.onesource\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.trid.tpt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tpt\"]\n  },\n  \"application/vnd.triscape.mxs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxs\"]\n  },\n  \"application/vnd.trueapp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tra\"]\n  },\n  \"application/vnd.truedoc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ubisoft.webplayer\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ufdl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ufd\",\"ufdl\"]\n  },\n  \"application/vnd.uic.osdm+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.uiq.theme\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"utz\"]\n  },\n  \"application/vnd.umajin\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"umj\"]\n  },\n  \"application/vnd.unity\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"unityweb\"]\n  },\n  \"application/vnd.uoml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"uoml\",\"uo\"]\n  },\n  \"application/vnd.uplanet.alert\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.alert-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.bearer-choice\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.bearer-choice-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.cacheop\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.cacheop-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.channel\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.channel-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.list\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.list-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.listcmd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.listcmd-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.signal\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uri-map\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.valve.source.material\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vcx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vcx\"]\n  },\n  \"application/vnd.vd-study\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vectorworks\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vel+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.veraison.tsm-report+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.veraison.tsm-report+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.verimatrix.vcas\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.veritone.aion+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.veryant.thin\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ves.encrypted\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vidsoft.vidconference\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.visio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\",\"vsdx\",\"vtx\"]\n  },\n  \"application/vnd.visionary\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vis\"]\n  },\n  \"application/vnd.vividence.scriptfile\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vocalshaper.vsp4\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vsf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vsf\"]\n  },\n  \"application/vnd.wap.sic\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wap.slc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wap.wbxml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"extensions\": [\"wbxml\"]\n  },\n  \"application/vnd.wap.wmlc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wmlc\"]\n  },\n  \"application/vnd.wap.wmlscriptc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wmlsc\"]\n  },\n  \"application/vnd.wasmflow.wafl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.webturbo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wtb\"]\n  },\n  \"application/vnd.wfa.dpp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wfa.p2p\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wfa.wsc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.windows.devicepairing\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wmc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wmf.bootstrap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wolfram.mathematica\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wolfram.mathematica.package\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wolfram.player\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nbp\"]\n  },\n  \"application/vnd.wordlift\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wordperfect\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wpd\"]\n  },\n  \"application/vnd.wqd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wqd\"]\n  },\n  \"application/vnd.wrq-hp3000-labelled\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wt.stf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"stf\"]\n  },\n  \"application/vnd.wv.csp+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wv.csp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.wv.ssp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.xacml+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.xara\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xar\"]\n  },\n  \"application/vnd.xarin.cpj\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xecrets-encrypted\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xfdl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xfdl\"]\n  },\n  \"application/vnd.xfdl.webform\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmi+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.xmpie.cpkg\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmpie.dpkg\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmpie.plan\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmpie.ppkg\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmpie.xlim\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yamaha.hv-dic\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hvd\"]\n  },\n  \"application/vnd.yamaha.hv-script\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hvs\"]\n  },\n  \"application/vnd.yamaha.hv-voice\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hvp\"]\n  },\n  \"application/vnd.yamaha.openscoreformat\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"osf\"]\n  },\n  \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"osfpvg\"]\n  },\n  \"application/vnd.yamaha.remote-setup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yamaha.smaf-audio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"saf\"]\n  },\n  \"application/vnd.yamaha.smaf-phrase\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spf\"]\n  },\n  \"application/vnd.yamaha.through-ngn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yamaha.tunnel-udpencap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yaoweme\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yellowriver-custom-menu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cmp\"]\n  },\n  \"application/vnd.zul\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"zir\",\"zirz\"]\n  },\n  \"application/vnd.zzazz.deck+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"zaz\"]\n  },\n  \"application/voicexml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"vxml\"]\n  },\n  \"application/voucher-cms+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/voucher-jws+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vp+cose\": {\n    \"source\": \"iana\"\n  },\n  \"application/vp+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vq-rtcpxr\": {\n    \"source\": \"iana\"\n  },\n  \"application/wasm\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wasm\"]\n  },\n  \"application/watcherinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wif\"]\n  },\n  \"application/webpush-options+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/whoispp-query\": {\n    \"source\": \"iana\"\n  },\n  \"application/whoispp-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/widget\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wgt\"]\n  },\n  \"application/winhlp\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"hlp\"]\n  },\n  \"application/wita\": {\n    \"source\": \"iana\"\n  },\n  \"application/wordperfect5.1\": {\n    \"source\": \"iana\"\n  },\n  \"application/wsdl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wsdl\"]\n  },\n  \"application/wspolicy+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wspolicy\"]\n  },\n  \"application/x-7z-compressed\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"7z\"]\n  },\n  \"application/x-abiword\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"abw\"]\n  },\n  \"application/x-ace-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ace\"]\n  },\n  \"application/x-amf\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-apple-diskimage\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"dmg\"]\n  },\n  \"application/x-arj\": {\n    \"compressible\": false,\n    \"extensions\": [\"arj\"]\n  },\n  \"application/x-authorware-bin\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n  },\n  \"application/x-authorware-map\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aam\"]\n  },\n  \"application/x-authorware-seg\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aas\"]\n  },\n  \"application/x-bcpio\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"bcpio\"]\n  },\n  \"application/x-bdoc\": {\n    \"compressible\": false,\n    \"extensions\": [\"bdoc\"]\n  },\n  \"application/x-bittorrent\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"torrent\"]\n  },\n  \"application/x-blender\": {\n    \"extensions\": [\"blend\"]\n  },\n  \"application/x-blorb\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"blb\",\"blorb\"]\n  },\n  \"application/x-bzip\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"bz\"]\n  },\n  \"application/x-bzip2\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"bz2\",\"boz\"]\n  },\n  \"application/x-cbr\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n  },\n  \"application/x-cdlink\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"vcd\"]\n  },\n  \"application/x-cfs-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cfs\"]\n  },\n  \"application/x-chat\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"chat\"]\n  },\n  \"application/x-chess-pgn\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pgn\"]\n  },\n  \"application/x-chrome-extension\": {\n    \"extensions\": [\"crx\"]\n  },\n  \"application/x-cocoa\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"cco\"]\n  },\n  \"application/x-compress\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-compressed\": {\n    \"extensions\": [\"rar\"]\n  },\n  \"application/x-conference\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"nsc\"]\n  },\n  \"application/x-cpio\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cpio\"]\n  },\n  \"application/x-csh\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"csh\"]\n  },\n  \"application/x-deb\": {\n    \"compressible\": false\n  },\n  \"application/x-debian-package\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"deb\",\"udeb\"]\n  },\n  \"application/x-dgc-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"dgc\"]\n  },\n  \"application/x-director\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n  },\n  \"application/x-doom\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wad\"]\n  },\n  \"application/x-dtbncx+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"ncx\"]\n  },\n  \"application/x-dtbook+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"dtb\"]\n  },\n  \"application/x-dtbresource+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"res\"]\n  },\n  \"application/x-dvi\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"dvi\"]\n  },\n  \"application/x-envoy\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"evy\"]\n  },\n  \"application/x-eva\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"eva\"]\n  },\n  \"application/x-font-bdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"bdf\"]\n  },\n  \"application/x-font-dos\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-framemaker\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-ghostscript\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gsf\"]\n  },\n  \"application/x-font-libgrx\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-linux-psf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"psf\"]\n  },\n  \"application/x-font-pcf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pcf\"]\n  },\n  \"application/x-font-snf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"snf\"]\n  },\n  \"application/x-font-speedo\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-sunos-news\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-type1\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n  },\n  \"application/x-font-vfont\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-freearc\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"arc\"]\n  },\n  \"application/x-futuresplash\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"spl\"]\n  },\n  \"application/x-gca-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gca\"]\n  },\n  \"application/x-glulx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ulx\"]\n  },\n  \"application/x-gnumeric\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gnumeric\"]\n  },\n  \"application/x-gramps-xml\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gramps\"]\n  },\n  \"application/x-gtar\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gtar\"]\n  },\n  \"application/x-gzip\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-hdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"hdf\"]\n  },\n  \"application/x-httpd-php\": {\n    \"compressible\": true,\n    \"extensions\": [\"php\"]\n  },\n  \"application/x-install-instructions\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"install\"]\n  },\n  \"application/x-ipynb+json\": {\n    \"compressible\": true,\n    \"extensions\": [\"ipynb\"]\n  },\n  \"application/x-iso9660-image\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"iso\"]\n  },\n  \"application/x-iwork-keynote-sffkey\": {\n    \"extensions\": [\"key\"]\n  },\n  \"application/x-iwork-numbers-sffnumbers\": {\n    \"extensions\": [\"numbers\"]\n  },\n  \"application/x-iwork-pages-sffpages\": {\n    \"extensions\": [\"pages\"]\n  },\n  \"application/x-java-archive-diff\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"jardiff\"]\n  },\n  \"application/x-java-jnlp-file\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"jnlp\"]\n  },\n  \"application/x-javascript\": {\n    \"compressible\": true\n  },\n  \"application/x-keepass2\": {\n    \"extensions\": [\"kdbx\"]\n  },\n  \"application/x-latex\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"latex\"]\n  },\n  \"application/x-lua-bytecode\": {\n    \"extensions\": [\"luac\"]\n  },\n  \"application/x-lzh-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"lzh\",\"lha\"]\n  },\n  \"application/x-makeself\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"run\"]\n  },\n  \"application/x-mie\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mie\"]\n  },\n  \"application/x-mobipocket-ebook\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"prc\",\"mobi\"]\n  },\n  \"application/x-mpegurl\": {\n    \"compressible\": false\n  },\n  \"application/x-ms-application\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"application\"]\n  },\n  \"application/x-ms-shortcut\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"lnk\"]\n  },\n  \"application/x-ms-wmd\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wmd\"]\n  },\n  \"application/x-ms-wmz\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wmz\"]\n  },\n  \"application/x-ms-xbap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xbap\"]\n  },\n  \"application/x-msaccess\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mdb\"]\n  },\n  \"application/x-msbinder\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"obd\"]\n  },\n  \"application/x-mscardfile\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"crd\"]\n  },\n  \"application/x-msclip\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"clp\"]\n  },\n  \"application/x-msdos-program\": {\n    \"extensions\": [\"exe\"]\n  },\n  \"application/x-msdownload\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n  },\n  \"application/x-msmediaview\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n  },\n  \"application/x-msmetafile\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n  },\n  \"application/x-msmoney\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mny\"]\n  },\n  \"application/x-mspublisher\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pub\"]\n  },\n  \"application/x-msschedule\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"scd\"]\n  },\n  \"application/x-msterminal\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"trm\"]\n  },\n  \"application/x-mswrite\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wri\"]\n  },\n  \"application/x-netcdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"nc\",\"cdf\"]\n  },\n  \"application/x-ns-proxy-autoconfig\": {\n    \"compressible\": true,\n    \"extensions\": [\"pac\"]\n  },\n  \"application/x-nzb\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"nzb\"]\n  },\n  \"application/x-perl\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"pl\",\"pm\"]\n  },\n  \"application/x-pilot\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"prc\",\"pdb\"]\n  },\n  \"application/x-pkcs12\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"p12\",\"pfx\"]\n  },\n  \"application/x-pkcs7-certificates\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"p7b\",\"spc\"]\n  },\n  \"application/x-pkcs7-certreqresp\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"p7r\"]\n  },\n  \"application/x-pki-message\": {\n    \"source\": \"iana\"\n  },\n  \"application/x-rar-compressed\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"rar\"]\n  },\n  \"application/x-redhat-package-manager\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"rpm\"]\n  },\n  \"application/x-research-info-systems\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ris\"]\n  },\n  \"application/x-sea\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"sea\"]\n  },\n  \"application/x-sh\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"sh\"]\n  },\n  \"application/x-shar\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"shar\"]\n  },\n  \"application/x-shockwave-flash\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"swf\"]\n  },\n  \"application/x-silverlight-app\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xap\"]\n  },\n  \"application/x-sql\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sql\"]\n  },\n  \"application/x-stuffit\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"sit\"]\n  },\n  \"application/x-stuffitx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sitx\"]\n  },\n  \"application/x-subrip\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"srt\"]\n  },\n  \"application/x-sv4cpio\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sv4cpio\"]\n  },\n  \"application/x-sv4crc\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sv4crc\"]\n  },\n  \"application/x-t3vm-image\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"t3\"]\n  },\n  \"application/x-tads\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gam\"]\n  },\n  \"application/x-tar\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"tar\"]\n  },\n  \"application/x-tcl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"tcl\",\"tk\"]\n  },\n  \"application/x-tex\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"tex\"]\n  },\n  \"application/x-tex-tfm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"tfm\"]\n  },\n  \"application/x-texinfo\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"texinfo\",\"texi\"]\n  },\n  \"application/x-tgif\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"obj\"]\n  },\n  \"application/x-ustar\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ustar\"]\n  },\n  \"application/x-virtualbox-hdd\": {\n    \"compressible\": true,\n    \"extensions\": [\"hdd\"]\n  },\n  \"application/x-virtualbox-ova\": {\n    \"compressible\": true,\n    \"extensions\": [\"ova\"]\n  },\n  \"application/x-virtualbox-ovf\": {\n    \"compressible\": true,\n    \"extensions\": [\"ovf\"]\n  },\n  \"application/x-virtualbox-vbox\": {\n    \"compressible\": true,\n    \"extensions\": [\"vbox\"]\n  },\n  \"application/x-virtualbox-vbox-extpack\": {\n    \"compressible\": false,\n    \"extensions\": [\"vbox-extpack\"]\n  },\n  \"application/x-virtualbox-vdi\": {\n    \"compressible\": true,\n    \"extensions\": [\"vdi\"]\n  },\n  \"application/x-virtualbox-vhd\": {\n    \"compressible\": true,\n    \"extensions\": [\"vhd\"]\n  },\n  \"application/x-virtualbox-vmdk\": {\n    \"compressible\": true,\n    \"extensions\": [\"vmdk\"]\n  },\n  \"application/x-wais-source\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"src\"]\n  },\n  \"application/x-web-app-manifest+json\": {\n    \"compressible\": true,\n    \"extensions\": [\"webapp\"]\n  },\n  \"application/x-www-form-urlencoded\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/x-x509-ca-cert\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"der\",\"crt\",\"pem\"]\n  },\n  \"application/x-x509-ca-ra-cert\": {\n    \"source\": \"iana\"\n  },\n  \"application/x-x509-next-ca-cert\": {\n    \"source\": \"iana\"\n  },\n  \"application/x-xfig\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fig\"]\n  },\n  \"application/x-xliff+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"xlf\"]\n  },\n  \"application/x-xpinstall\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"xpi\"]\n  },\n  \"application/x-xz\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xz\"]\n  },\n  \"application/x-zip-compressed\": {\n    \"extensions\": [\"zip\"]\n  },\n  \"application/x-zmachine\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n  },\n  \"application/x400-bp\": {\n    \"source\": \"iana\"\n  },\n  \"application/xacml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xaml+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"xaml\"]\n  },\n  \"application/xcap-att+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xav\"]\n  },\n  \"application/xcap-caps+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xca\"]\n  },\n  \"application/xcap-diff+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xdf\"]\n  },\n  \"application/xcap-el+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xel\"]\n  },\n  \"application/xcap-error+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xcap-ns+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xns\"]\n  },\n  \"application/xcon-conference-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xcon-conference-info-diff+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xenc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xenc\"]\n  },\n  \"application/xfdf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xfdf\"]\n  },\n  \"application/xhtml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xhtml\",\"xht\"]\n  },\n  \"application/xhtml-voice+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/xliff+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xlf\"]\n  },\n  \"application/xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n  },\n  \"application/xml-dtd\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dtd\"]\n  },\n  \"application/xml-external-parsed-entity\": {\n    \"source\": \"iana\"\n  },\n  \"application/xml-patch+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xmpp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xop+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xop\"]\n  },\n  \"application/xproc+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"xpl\"]\n  },\n  \"application/xslt+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xsl\",\"xslt\"]\n  },\n  \"application/xspf+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"xspf\"]\n  },\n  \"application/xv+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n  },\n  \"application/yaml\": {\n    \"source\": \"iana\"\n  },\n  \"application/yang\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"yang\"]\n  },\n  \"application/yang-data+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/yang-data+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/yang-data+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/yang-patch+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/yang-patch+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/yang-sid+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/yin+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"yin\"]\n  },\n  \"application/zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"zip\"]\n  },\n  \"application/zip+dotlottie\": {\n    \"extensions\": [\"lottie\"]\n  },\n  \"application/zlib\": {\n    \"source\": \"iana\"\n  },\n  \"application/zstd\": {\n    \"source\": \"iana\"\n  },\n  \"audio/1d-interleaved-parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/32kadpcm\": {\n    \"source\": \"iana\"\n  },\n  \"audio/3gpp\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"3gpp\"]\n  },\n  \"audio/3gpp2\": {\n    \"source\": \"iana\"\n  },\n  \"audio/aac\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"adts\",\"aac\"]\n  },\n  \"audio/ac3\": {\n    \"source\": \"iana\"\n  },\n  \"audio/adpcm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"adp\"]\n  },\n  \"audio/amr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"amr\"]\n  },\n  \"audio/amr-wb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/amr-wb+\": {\n    \"source\": \"iana\"\n  },\n  \"audio/aptx\": {\n    \"source\": \"iana\"\n  },\n  \"audio/asc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/atrac-advanced-lossless\": {\n    \"source\": \"iana\"\n  },\n  \"audio/atrac-x\": {\n    \"source\": \"iana\"\n  },\n  \"audio/atrac3\": {\n    \"source\": \"iana\"\n  },\n  \"audio/basic\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"au\",\"snd\"]\n  },\n  \"audio/bv16\": {\n    \"source\": \"iana\"\n  },\n  \"audio/bv32\": {\n    \"source\": \"iana\"\n  },\n  \"audio/clearmode\": {\n    \"source\": \"iana\"\n  },\n  \"audio/cn\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dat12\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dls\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dsr-es201108\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dsr-es202050\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dsr-es202211\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dsr-es202212\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dv\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dvi4\": {\n    \"source\": \"iana\"\n  },\n  \"audio/eac3\": {\n    \"source\": \"iana\"\n  },\n  \"audio/encaprtp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrc-qcp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrc0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrc1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcb0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcb1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcnw\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcnw0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcnw1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcwb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcwb0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcwb1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evs\": {\n    \"source\": \"iana\"\n  },\n  \"audio/flac\": {\n    \"source\": \"iana\"\n  },\n  \"audio/flexfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/fwdred\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g711-0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g719\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g722\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g7221\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g723\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g726-16\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g726-24\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g726-32\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g726-40\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g728\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g729\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g7291\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g729d\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g729e\": {\n    \"source\": \"iana\"\n  },\n  \"audio/gsm\": {\n    \"source\": \"iana\"\n  },\n  \"audio/gsm-efr\": {\n    \"source\": \"iana\"\n  },\n  \"audio/gsm-hr-08\": {\n    \"source\": \"iana\"\n  },\n  \"audio/ilbc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/ip-mr_v2.5\": {\n    \"source\": \"iana\"\n  },\n  \"audio/isac\": {\n    \"source\": \"apache\"\n  },\n  \"audio/l16\": {\n    \"source\": \"iana\"\n  },\n  \"audio/l20\": {\n    \"source\": \"iana\"\n  },\n  \"audio/l24\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"audio/l8\": {\n    \"source\": \"iana\"\n  },\n  \"audio/lpc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/matroska\": {\n    \"source\": \"iana\"\n  },\n  \"audio/melp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/melp1200\": {\n    \"source\": \"iana\"\n  },\n  \"audio/melp2400\": {\n    \"source\": \"iana\"\n  },\n  \"audio/melp600\": {\n    \"source\": \"iana\"\n  },\n  \"audio/mhas\": {\n    \"source\": \"iana\"\n  },\n  \"audio/midi\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n  },\n  \"audio/midi-clip\": {\n    \"source\": \"iana\"\n  },\n  \"audio/mobile-xmf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxmf\"]\n  },\n  \"audio/mp3\": {\n    \"compressible\": false,\n    \"extensions\": [\"mp3\"]\n  },\n  \"audio/mp4\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"m4a\",\"mp4a\",\"m4b\"]\n  },\n  \"audio/mp4a-latm\": {\n    \"source\": \"iana\"\n  },\n  \"audio/mpa\": {\n    \"source\": \"iana\"\n  },\n  \"audio/mpa-robust\": {\n    \"source\": \"iana\"\n  },\n  \"audio/mpeg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n  },\n  \"audio/mpeg4-generic\": {\n    \"source\": \"iana\"\n  },\n  \"audio/musepack\": {\n    \"source\": \"apache\"\n  },\n  \"audio/ogg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n  },\n  \"audio/opus\": {\n    \"source\": \"iana\"\n  },\n  \"audio/parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/pcma\": {\n    \"source\": \"iana\"\n  },\n  \"audio/pcma-wb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/pcmu\": {\n    \"source\": \"iana\"\n  },\n  \"audio/pcmu-wb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/prs.sid\": {\n    \"source\": \"iana\"\n  },\n  \"audio/qcelp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/raptorfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/red\": {\n    \"source\": \"iana\"\n  },\n  \"audio/rtp-enc-aescm128\": {\n    \"source\": \"iana\"\n  },\n  \"audio/rtp-midi\": {\n    \"source\": \"iana\"\n  },\n  \"audio/rtploopback\": {\n    \"source\": \"iana\"\n  },\n  \"audio/rtx\": {\n    \"source\": \"iana\"\n  },\n  \"audio/s3m\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"s3m\"]\n  },\n  \"audio/scip\": {\n    \"source\": \"iana\"\n  },\n  \"audio/silk\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sil\"]\n  },\n  \"audio/smv\": {\n    \"source\": \"iana\"\n  },\n  \"audio/smv-qcp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/smv0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/sofa\": {\n    \"source\": \"iana\"\n  },\n  \"audio/sp-midi\": {\n    \"source\": \"iana\"\n  },\n  \"audio/speex\": {\n    \"source\": \"iana\"\n  },\n  \"audio/t140c\": {\n    \"source\": \"iana\"\n  },\n  \"audio/t38\": {\n    \"source\": \"iana\"\n  },\n  \"audio/telephone-event\": {\n    \"source\": \"iana\"\n  },\n  \"audio/tetra_acelp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/tetra_acelp_bb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/tone\": {\n    \"source\": \"iana\"\n  },\n  \"audio/tsvcis\": {\n    \"source\": \"iana\"\n  },\n  \"audio/uemclip\": {\n    \"source\": \"iana\"\n  },\n  \"audio/ulpfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/usac\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vdvi\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vmr-wb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.3gpp.iufp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.4sb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.audiokoz\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.celp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.cisco.nse\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.cmles.radio-events\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.cns.anp1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.cns.inf1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dece.audio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uva\",\"uvva\"]\n  },\n  \"audio/vnd.digital-winds\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"eol\"]\n  },\n  \"audio/vnd.dlna.adts\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.heaac.1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.heaac.2\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.mlp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.mps\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.pl2\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.pl2x\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.pl2z\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.pulse.1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dra\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dra\"]\n  },\n  \"audio/vnd.dts\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dts\"]\n  },\n  \"audio/vnd.dts.hd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dtshd\"]\n  },\n  \"audio/vnd.dts.uhd\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dvb.file\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.everad.plj\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.hns.audio\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.lucent.voice\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"lvp\"]\n  },\n  \"audio/vnd.ms-playready.media.pya\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pya\"]\n  },\n  \"audio/vnd.nokia.mobile-xmf\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.nortel.vbk\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.nuera.ecelp4800\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ecelp4800\"]\n  },\n  \"audio/vnd.nuera.ecelp7470\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ecelp7470\"]\n  },\n  \"audio/vnd.nuera.ecelp9600\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ecelp9600\"]\n  },\n  \"audio/vnd.octel.sbc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.presonus.multitrack\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.qcelp\": {\n    \"source\": \"apache\"\n  },\n  \"audio/vnd.rhetorex.32kadpcm\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.rip\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rip\"]\n  },\n  \"audio/vnd.rn-realaudio\": {\n    \"compressible\": false\n  },\n  \"audio/vnd.sealedmedia.softseal.mpeg\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.vmx.cvsd\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.wave\": {\n    \"compressible\": false\n  },\n  \"audio/vorbis\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"audio/vorbis-config\": {\n    \"source\": \"iana\"\n  },\n  \"audio/wav\": {\n    \"compressible\": false,\n    \"extensions\": [\"wav\"]\n  },\n  \"audio/wave\": {\n    \"compressible\": false,\n    \"extensions\": [\"wav\"]\n  },\n  \"audio/webm\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"weba\"]\n  },\n  \"audio/x-aac\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"aac\"]\n  },\n  \"audio/x-aiff\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n  },\n  \"audio/x-caf\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"caf\"]\n  },\n  \"audio/x-flac\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"flac\"]\n  },\n  \"audio/x-m4a\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"m4a\"]\n  },\n  \"audio/x-matroska\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mka\"]\n  },\n  \"audio/x-mpegurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"m3u\"]\n  },\n  \"audio/x-ms-wax\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wax\"]\n  },\n  \"audio/x-ms-wma\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wma\"]\n  },\n  \"audio/x-pn-realaudio\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ram\",\"ra\"]\n  },\n  \"audio/x-pn-realaudio-plugin\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"rmp\"]\n  },\n  \"audio/x-realaudio\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"ra\"]\n  },\n  \"audio/x-tta\": {\n    \"source\": \"apache\"\n  },\n  \"audio/x-wav\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wav\"]\n  },\n  \"audio/xm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xm\"]\n  },\n  \"chemical/x-cdx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cdx\"]\n  },\n  \"chemical/x-cif\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cif\"]\n  },\n  \"chemical/x-cmdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cmdf\"]\n  },\n  \"chemical/x-cml\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cml\"]\n  },\n  \"chemical/x-csml\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"csml\"]\n  },\n  \"chemical/x-pdb\": {\n    \"source\": \"apache\"\n  },\n  \"chemical/x-xyz\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xyz\"]\n  },\n  \"font/collection\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ttc\"]\n  },\n  \"font/otf\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"otf\"]\n  },\n  \"font/sfnt\": {\n    \"source\": \"iana\"\n  },\n  \"font/ttf\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ttf\"]\n  },\n  \"font/woff\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"woff\"]\n  },\n  \"font/woff2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"woff2\"]\n  },\n  \"image/aces\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"exr\"]\n  },\n  \"image/apng\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"apng\"]\n  },\n  \"image/avci\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"avci\"]\n  },\n  \"image/avcs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"avcs\"]\n  },\n  \"image/avif\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"avif\"]\n  },\n  \"image/bmp\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"bmp\",\"dib\"]\n  },\n  \"image/cgm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cgm\"]\n  },\n  \"image/dicom-rle\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"drle\"]\n  },\n  \"image/dpx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dpx\"]\n  },\n  \"image/emf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"emf\"]\n  },\n  \"image/fits\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fits\"]\n  },\n  \"image/g3fax\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"g3\"]\n  },\n  \"image/gif\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"gif\"]\n  },\n  \"image/heic\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"heic\"]\n  },\n  \"image/heic-sequence\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"heics\"]\n  },\n  \"image/heif\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"heif\"]\n  },\n  \"image/heif-sequence\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"heifs\"]\n  },\n  \"image/hej2k\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hej2\"]\n  },\n  \"image/ief\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ief\"]\n  },\n  \"image/j2c\": {\n    \"source\": \"iana\"\n  },\n  \"image/jaii\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jaii\"]\n  },\n  \"image/jais\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jais\"]\n  },\n  \"image/jls\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jls\"]\n  },\n  \"image/jp2\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"jp2\",\"jpg2\"]\n  },\n  \"image/jpeg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"jpg\",\"jpeg\",\"jpe\"]\n  },\n  \"image/jph\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jph\"]\n  },\n  \"image/jphc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jhc\"]\n  },\n  \"image/jpm\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"jpm\",\"jpgm\"]\n  },\n  \"image/jpx\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"jpx\",\"jpf\"]\n  },\n  \"image/jxl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxl\"]\n  },\n  \"image/jxr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxr\"]\n  },\n  \"image/jxra\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxra\"]\n  },\n  \"image/jxrs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxrs\"]\n  },\n  \"image/jxs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxs\"]\n  },\n  \"image/jxsc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxsc\"]\n  },\n  \"image/jxsi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxsi\"]\n  },\n  \"image/jxss\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxss\"]\n  },\n  \"image/ktx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ktx\"]\n  },\n  \"image/ktx2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ktx2\"]\n  },\n  \"image/naplps\": {\n    \"source\": \"iana\"\n  },\n  \"image/pjpeg\": {\n    \"compressible\": false,\n    \"extensions\": [\"jfif\"]\n  },\n  \"image/png\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"png\"]\n  },\n  \"image/prs.btif\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"btif\",\"btf\"]\n  },\n  \"image/prs.pti\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pti\"]\n  },\n  \"image/pwg-raster\": {\n    \"source\": \"iana\"\n  },\n  \"image/sgi\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sgi\"]\n  },\n  \"image/svg+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"svg\",\"svgz\"]\n  },\n  \"image/t38\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"t38\"]\n  },\n  \"image/tiff\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"tif\",\"tiff\"]\n  },\n  \"image/tiff-fx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tfx\"]\n  },\n  \"image/vnd.adobe.photoshop\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"psd\"]\n  },\n  \"image/vnd.airzip.accelerator.azv\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"azv\"]\n  },\n  \"image/vnd.clip\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.cns.inf2\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.dece.graphic\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n  },\n  \"image/vnd.djvu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"djvu\",\"djv\"]\n  },\n  \"image/vnd.dvb.subtitle\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sub\"]\n  },\n  \"image/vnd.dwg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dwg\"]\n  },\n  \"image/vnd.dxf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dxf\"]\n  },\n  \"image/vnd.fastbidsheet\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fbs\"]\n  },\n  \"image/vnd.fpx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fpx\"]\n  },\n  \"image/vnd.fst\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fst\"]\n  },\n  \"image/vnd.fujixerox.edmics-mmr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mmr\"]\n  },\n  \"image/vnd.fujixerox.edmics-rlc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rlc\"]\n  },\n  \"image/vnd.globalgraphics.pgb\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.microsoft.icon\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ico\"]\n  },\n  \"image/vnd.mix\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.mozilla.apng\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.ms-dds\": {\n    \"compressible\": true,\n    \"extensions\": [\"dds\"]\n  },\n  \"image/vnd.ms-modi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mdi\"]\n  },\n  \"image/vnd.ms-photo\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wdp\"]\n  },\n  \"image/vnd.net-fpx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"npx\"]\n  },\n  \"image/vnd.pco.b16\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"b16\"]\n  },\n  \"image/vnd.radiance\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.sealed.png\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.sealedmedia.softseal.gif\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.sealedmedia.softseal.jpg\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.svf\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.tencent.tap\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tap\"]\n  },\n  \"image/vnd.valve.source.texture\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vtf\"]\n  },\n  \"image/vnd.wap.wbmp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wbmp\"]\n  },\n  \"image/vnd.xiff\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xif\"]\n  },\n  \"image/vnd.zbrush.pcx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pcx\"]\n  },\n  \"image/webp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"webp\"]\n  },\n  \"image/wmf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wmf\"]\n  },\n  \"image/x-3ds\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"3ds\"]\n  },\n  \"image/x-adobe-dng\": {\n    \"extensions\": [\"dng\"]\n  },\n  \"image/x-cmu-raster\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ras\"]\n  },\n  \"image/x-cmx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cmx\"]\n  },\n  \"image/x-emf\": {\n    \"source\": \"iana\"\n  },\n  \"image/x-freehand\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n  },\n  \"image/x-icon\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"ico\"]\n  },\n  \"image/x-jng\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"jng\"]\n  },\n  \"image/x-mrsid-image\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sid\"]\n  },\n  \"image/x-ms-bmp\": {\n    \"source\": \"nginx\",\n    \"compressible\": true,\n    \"extensions\": [\"bmp\"]\n  },\n  \"image/x-pcx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pcx\"]\n  },\n  \"image/x-pict\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pic\",\"pct\"]\n  },\n  \"image/x-portable-anymap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pnm\"]\n  },\n  \"image/x-portable-bitmap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pbm\"]\n  },\n  \"image/x-portable-graymap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pgm\"]\n  },\n  \"image/x-portable-pixmap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ppm\"]\n  },\n  \"image/x-rgb\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"rgb\"]\n  },\n  \"image/x-tga\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"tga\"]\n  },\n  \"image/x-wmf\": {\n    \"source\": \"iana\"\n  },\n  \"image/x-xbitmap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xbm\"]\n  },\n  \"image/x-xcf\": {\n    \"compressible\": false\n  },\n  \"image/x-xpixmap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xpm\"]\n  },\n  \"image/x-xwindowdump\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xwd\"]\n  },\n  \"message/bhttp\": {\n    \"source\": \"iana\"\n  },\n  \"message/cpim\": {\n    \"source\": \"iana\"\n  },\n  \"message/delivery-status\": {\n    \"source\": \"iana\"\n  },\n  \"message/disposition-notification\": {\n    \"source\": \"iana\",\n    \"extensions\": [\n      \"disposition-notification\"\n    ]\n  },\n  \"message/external-body\": {\n    \"source\": \"iana\"\n  },\n  \"message/feedback-report\": {\n    \"source\": \"iana\"\n  },\n  \"message/global\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"u8msg\"]\n  },\n  \"message/global-delivery-status\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"u8dsn\"]\n  },\n  \"message/global-disposition-notification\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"u8mdn\"]\n  },\n  \"message/global-headers\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"u8hdr\"]\n  },\n  \"message/http\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"message/imdn+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"message/mls\": {\n    \"source\": \"iana\"\n  },\n  \"message/news\": {\n    \"source\": \"apache\"\n  },\n  \"message/ohttp-req\": {\n    \"source\": \"iana\"\n  },\n  \"message/ohttp-res\": {\n    \"source\": \"iana\"\n  },\n  \"message/partial\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"message/rfc822\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"eml\",\"mime\",\"mht\",\"mhtml\"]\n  },\n  \"message/s-http\": {\n    \"source\": \"apache\"\n  },\n  \"message/sip\": {\n    \"source\": \"iana\"\n  },\n  \"message/sipfrag\": {\n    \"source\": \"iana\"\n  },\n  \"message/tracking-status\": {\n    \"source\": \"iana\"\n  },\n  \"message/vnd.si.simp\": {\n    \"source\": \"apache\"\n  },\n  \"message/vnd.wfa.wsc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wsc\"]\n  },\n  \"model/3mf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"3mf\"]\n  },\n  \"model/e57\": {\n    \"source\": \"iana\"\n  },\n  \"model/gltf+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"gltf\"]\n  },\n  \"model/gltf-binary\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"glb\"]\n  },\n  \"model/iges\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"igs\",\"iges\"]\n  },\n  \"model/jt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jt\"]\n  },\n  \"model/mesh\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n  },\n  \"model/mtl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mtl\"]\n  },\n  \"model/obj\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"obj\"]\n  },\n  \"model/prc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"prc\"]\n  },\n  \"model/step\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"step\",\"stp\",\"stpnc\",\"p21\",\"210\"]\n  },\n  \"model/step+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"stpx\"]\n  },\n  \"model/step+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"stpz\"]\n  },\n  \"model/step-xml+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"stpxz\"]\n  },\n  \"model/stl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"stl\"]\n  },\n  \"model/u3d\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"u3d\"]\n  },\n  \"model/vnd.bary\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"bary\"]\n  },\n  \"model/vnd.cld\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cld\"]\n  },\n  \"model/vnd.collada+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dae\"]\n  },\n  \"model/vnd.dwf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dwf\"]\n  },\n  \"model/vnd.flatland.3dml\": {\n    \"source\": \"iana\"\n  },\n  \"model/vnd.gdl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gdl\"]\n  },\n  \"model/vnd.gs-gdl\": {\n    \"source\": \"apache\"\n  },\n  \"model/vnd.gs.gdl\": {\n    \"source\": \"iana\"\n  },\n  \"model/vnd.gtw\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gtw\"]\n  },\n  \"model/vnd.moml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"model/vnd.mts\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mts\"]\n  },\n  \"model/vnd.opengex\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ogex\"]\n  },\n  \"model/vnd.parasolid.transmit.binary\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"x_b\"]\n  },\n  \"model/vnd.parasolid.transmit.text\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"x_t\"]\n  },\n  \"model/vnd.pytha.pyox\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pyo\",\"pyox\"]\n  },\n  \"model/vnd.rosette.annotated-data-model\": {\n    \"source\": \"iana\"\n  },\n  \"model/vnd.sap.vds\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vds\"]\n  },\n  \"model/vnd.usda\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"usda\"]\n  },\n  \"model/vnd.usdz+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"usdz\"]\n  },\n  \"model/vnd.valve.source.compiled-map\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"bsp\"]\n  },\n  \"model/vnd.vtu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vtu\"]\n  },\n  \"model/vrml\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"wrl\",\"vrml\"]\n  },\n  \"model/x3d+binary\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"x3db\",\"x3dbz\"]\n  },\n  \"model/x3d+fastinfoset\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"x3db\"]\n  },\n  \"model/x3d+vrml\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"x3dv\",\"x3dvz\"]\n  },\n  \"model/x3d+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"x3d\",\"x3dz\"]\n  },\n  \"model/x3d-vrml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"x3dv\"]\n  },\n  \"multipart/alternative\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/appledouble\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/byteranges\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/digest\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/encrypted\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/form-data\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/header-set\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/mixed\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/multilingual\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/parallel\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/related\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/report\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/signed\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/vnd.bint.med-plus\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/voice-message\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/x-mixed-replace\": {\n    \"source\": \"iana\"\n  },\n  \"text/1d-interleaved-parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/cache-manifest\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"appcache\",\"manifest\"]\n  },\n  \"text/calendar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ics\",\"ifb\"]\n  },\n  \"text/calender\": {\n    \"compressible\": true\n  },\n  \"text/cmd\": {\n    \"compressible\": true\n  },\n  \"text/coffeescript\": {\n    \"extensions\": [\"coffee\",\"litcoffee\"]\n  },\n  \"text/cql\": {\n    \"source\": \"iana\"\n  },\n  \"text/cql-expression\": {\n    \"source\": \"iana\"\n  },\n  \"text/cql-identifier\": {\n    \"source\": \"iana\"\n  },\n  \"text/css\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"css\"]\n  },\n  \"text/csv\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"csv\"]\n  },\n  \"text/csv-schema\": {\n    \"source\": \"iana\"\n  },\n  \"text/directory\": {\n    \"source\": \"iana\"\n  },\n  \"text/dns\": {\n    \"source\": \"iana\"\n  },\n  \"text/ecmascript\": {\n    \"source\": \"apache\"\n  },\n  \"text/encaprtp\": {\n    \"source\": \"iana\"\n  },\n  \"text/enriched\": {\n    \"source\": \"iana\"\n  },\n  \"text/fhirpath\": {\n    \"source\": \"iana\"\n  },\n  \"text/flexfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/fwdred\": {\n    \"source\": \"iana\"\n  },\n  \"text/gff3\": {\n    \"source\": \"iana\"\n  },\n  \"text/grammar-ref-list\": {\n    \"source\": \"iana\"\n  },\n  \"text/hl7v2\": {\n    \"source\": \"iana\"\n  },\n  \"text/html\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"html\",\"htm\",\"shtml\"]\n  },\n  \"text/jade\": {\n    \"extensions\": [\"jade\"]\n  },\n  \"text/javascript\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"js\",\"mjs\"]\n  },\n  \"text/jcr-cnd\": {\n    \"source\": \"iana\"\n  },\n  \"text/jsx\": {\n    \"compressible\": true,\n    \"extensions\": [\"jsx\"]\n  },\n  \"text/less\": {\n    \"compressible\": true,\n    \"extensions\": [\"less\"]\n  },\n  \"text/markdown\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"md\",\"markdown\"]\n  },\n  \"text/mathml\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"mml\"]\n  },\n  \"text/mdx\": {\n    \"compressible\": true,\n    \"extensions\": [\"mdx\"]\n  },\n  \"text/mizar\": {\n    \"source\": \"iana\"\n  },\n  \"text/n3\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"n3\"]\n  },\n  \"text/parameters\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/plain\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n  },\n  \"text/provenance-notation\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/prs.fallenstein.rst\": {\n    \"source\": \"iana\"\n  },\n  \"text/prs.lines.tag\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dsc\"]\n  },\n  \"text/prs.prop.logic\": {\n    \"source\": \"iana\"\n  },\n  \"text/prs.texi\": {\n    \"source\": \"iana\"\n  },\n  \"text/raptorfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/red\": {\n    \"source\": \"iana\"\n  },\n  \"text/rfc822-headers\": {\n    \"source\": \"iana\"\n  },\n  \"text/richtext\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rtx\"]\n  },\n  \"text/rtf\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rtf\"]\n  },\n  \"text/rtp-enc-aescm128\": {\n    \"source\": \"iana\"\n  },\n  \"text/rtploopback\": {\n    \"source\": \"iana\"\n  },\n  \"text/rtx\": {\n    \"source\": \"iana\"\n  },\n  \"text/sgml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sgml\",\"sgm\"]\n  },\n  \"text/shaclc\": {\n    \"source\": \"iana\"\n  },\n  \"text/shex\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"shex\"]\n  },\n  \"text/slim\": {\n    \"extensions\": [\"slim\",\"slm\"]\n  },\n  \"text/spdx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spdx\"]\n  },\n  \"text/strings\": {\n    \"source\": \"iana\"\n  },\n  \"text/stylus\": {\n    \"extensions\": [\"stylus\",\"styl\"]\n  },\n  \"text/t140\": {\n    \"source\": \"iana\"\n  },\n  \"text/tab-separated-values\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"tsv\"]\n  },\n  \"text/troff\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n  },\n  \"text/turtle\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"extensions\": [\"ttl\"]\n  },\n  \"text/ulpfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/uri-list\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"uri\",\"uris\",\"urls\"]\n  },\n  \"text/vcard\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"vcard\"]\n  },\n  \"text/vnd.a\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.abc\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.ascii-art\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.curl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"curl\"]\n  },\n  \"text/vnd.curl.dcurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"dcurl\"]\n  },\n  \"text/vnd.curl.mcurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mcurl\"]\n  },\n  \"text/vnd.curl.scurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"scurl\"]\n  },\n  \"text/vnd.debian.copyright\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/vnd.dmclientscript\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.dvb.subtitle\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sub\"]\n  },\n  \"text/vnd.esmertec.theme-descriptor\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/vnd.exchangeable\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.familysearch.gedcom\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ged\"]\n  },\n  \"text/vnd.ficlab.flt\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.fly\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fly\"]\n  },\n  \"text/vnd.fmi.flexstor\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"flx\"]\n  },\n  \"text/vnd.gml\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.graphviz\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gv\"]\n  },\n  \"text/vnd.hans\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.hgl\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.in3d.3dml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"3dml\"]\n  },\n  \"text/vnd.in3d.spot\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spot\"]\n  },\n  \"text/vnd.iptc.newsml\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.iptc.nitf\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.latex-z\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.motorola.reflex\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.ms-mediapackage\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.net2phone.commcenter.command\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.radisys.msml-basic-layout\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.senx.warpscript\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.si.uricatalogue\": {\n    \"source\": \"apache\"\n  },\n  \"text/vnd.sosi\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.sun.j2me.app-descriptor\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"extensions\": [\"jad\"]\n  },\n  \"text/vnd.trolltech.linguist\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/vnd.vcf\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.wap.si\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.wap.sl\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.wap.wml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wml\"]\n  },\n  \"text/vnd.wap.wmlscript\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wmls\"]\n  },\n  \"text/vnd.zoo.kcl\": {\n    \"source\": \"iana\"\n  },\n  \"text/vtt\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"vtt\"]\n  },\n  \"text/wgsl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wgsl\"]\n  },\n  \"text/x-asm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"s\",\"asm\"]\n  },\n  \"text/x-c\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n  },\n  \"text/x-component\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"htc\"]\n  },\n  \"text/x-fortran\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n  },\n  \"text/x-gwt-rpc\": {\n    \"compressible\": true\n  },\n  \"text/x-handlebars-template\": {\n    \"extensions\": [\"hbs\"]\n  },\n  \"text/x-java-source\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"java\"]\n  },\n  \"text/x-jquery-tmpl\": {\n    \"compressible\": true\n  },\n  \"text/x-lua\": {\n    \"extensions\": [\"lua\"]\n  },\n  \"text/x-markdown\": {\n    \"compressible\": true,\n    \"extensions\": [\"mkd\"]\n  },\n  \"text/x-nfo\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"nfo\"]\n  },\n  \"text/x-opml\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"opml\"]\n  },\n  \"text/x-org\": {\n    \"compressible\": true,\n    \"extensions\": [\"org\"]\n  },\n  \"text/x-pascal\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"p\",\"pas\"]\n  },\n  \"text/x-processing\": {\n    \"compressible\": true,\n    \"extensions\": [\"pde\"]\n  },\n  \"text/x-sass\": {\n    \"extensions\": [\"sass\"]\n  },\n  \"text/x-scss\": {\n    \"extensions\": [\"scss\"]\n  },\n  \"text/x-setext\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"etx\"]\n  },\n  \"text/x-sfv\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sfv\"]\n  },\n  \"text/x-suse-ymp\": {\n    \"compressible\": true,\n    \"extensions\": [\"ymp\"]\n  },\n  \"text/x-uuencode\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"uu\"]\n  },\n  \"text/x-vcalendar\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"vcs\"]\n  },\n  \"text/x-vcard\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"vcf\"]\n  },\n  \"text/xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xml\"]\n  },\n  \"text/xml-external-parsed-entity\": {\n    \"source\": \"iana\"\n  },\n  \"text/yaml\": {\n    \"compressible\": true,\n    \"extensions\": [\"yaml\",\"yml\"]\n  },\n  \"video/1d-interleaved-parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/3gpp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"3gp\",\"3gpp\"]\n  },\n  \"video/3gpp-tt\": {\n    \"source\": \"iana\"\n  },\n  \"video/3gpp2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"3g2\"]\n  },\n  \"video/av1\": {\n    \"source\": \"iana\"\n  },\n  \"video/bmpeg\": {\n    \"source\": \"iana\"\n  },\n  \"video/bt656\": {\n    \"source\": \"iana\"\n  },\n  \"video/celb\": {\n    \"source\": \"iana\"\n  },\n  \"video/dv\": {\n    \"source\": \"iana\"\n  },\n  \"video/encaprtp\": {\n    \"source\": \"iana\"\n  },\n  \"video/evc\": {\n    \"source\": \"iana\"\n  },\n  \"video/ffv1\": {\n    \"source\": \"iana\"\n  },\n  \"video/flexfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/h261\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"h261\"]\n  },\n  \"video/h263\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"h263\"]\n  },\n  \"video/h263-1998\": {\n    \"source\": \"iana\"\n  },\n  \"video/h263-2000\": {\n    \"source\": \"iana\"\n  },\n  \"video/h264\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"h264\"]\n  },\n  \"video/h264-rcdo\": {\n    \"source\": \"iana\"\n  },\n  \"video/h264-svc\": {\n    \"source\": \"iana\"\n  },\n  \"video/h265\": {\n    \"source\": \"iana\"\n  },\n  \"video/h266\": {\n    \"source\": \"iana\"\n  },\n  \"video/iso.segment\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"m4s\"]\n  },\n  \"video/jpeg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jpgv\"]\n  },\n  \"video/jpeg2000\": {\n    \"source\": \"iana\"\n  },\n  \"video/jpm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"jpm\",\"jpgm\"]\n  },\n  \"video/jxsv\": {\n    \"source\": \"iana\"\n  },\n  \"video/lottie+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"video/matroska\": {\n    \"source\": \"iana\"\n  },\n  \"video/matroska-3d\": {\n    \"source\": \"iana\"\n  },\n  \"video/mj2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mj2\",\"mjp2\"]\n  },\n  \"video/mp1s\": {\n    \"source\": \"iana\"\n  },\n  \"video/mp2p\": {\n    \"source\": \"iana\"\n  },\n  \"video/mp2t\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ts\",\"m2t\",\"m2ts\",\"mts\"]\n  },\n  \"video/mp4\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n  },\n  \"video/mp4v-es\": {\n    \"source\": \"iana\"\n  },\n  \"video/mpeg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n  },\n  \"video/mpeg4-generic\": {\n    \"source\": \"iana\"\n  },\n  \"video/mpv\": {\n    \"source\": \"iana\"\n  },\n  \"video/nv\": {\n    \"source\": \"iana\"\n  },\n  \"video/ogg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"ogv\"]\n  },\n  \"video/parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/pointer\": {\n    \"source\": \"iana\"\n  },\n  \"video/quicktime\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"qt\",\"mov\"]\n  },\n  \"video/raptorfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/raw\": {\n    \"source\": \"iana\"\n  },\n  \"video/rtp-enc-aescm128\": {\n    \"source\": \"iana\"\n  },\n  \"video/rtploopback\": {\n    \"source\": \"iana\"\n  },\n  \"video/rtx\": {\n    \"source\": \"iana\"\n  },\n  \"video/scip\": {\n    \"source\": \"iana\"\n  },\n  \"video/smpte291\": {\n    \"source\": \"iana\"\n  },\n  \"video/smpte292m\": {\n    \"source\": \"iana\"\n  },\n  \"video/ulpfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/vc1\": {\n    \"source\": \"iana\"\n  },\n  \"video/vc2\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.cctv\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.dece.hd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvh\",\"uvvh\"]\n  },\n  \"video/vnd.dece.mobile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvm\",\"uvvm\"]\n  },\n  \"video/vnd.dece.mp4\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.dece.pd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvp\",\"uvvp\"]\n  },\n  \"video/vnd.dece.sd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvs\",\"uvvs\"]\n  },\n  \"video/vnd.dece.video\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvv\",\"uvvv\"]\n  },\n  \"video/vnd.directv.mpeg\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.directv.mpeg-tts\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.dlna.mpeg-tts\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.dvb.file\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dvb\"]\n  },\n  \"video/vnd.fvt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fvt\"]\n  },\n  \"video/vnd.hns.video\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.1dparityfec-1010\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.1dparityfec-2005\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.2dparityfec-1010\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.2dparityfec-2005\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.ttsavc\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.ttsmpeg2\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.motorola.video\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.motorola.videop\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.mpegurl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxu\",\"m4u\"]\n  },\n  \"video/vnd.ms-playready.media.pyv\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pyv\"]\n  },\n  \"video/vnd.nokia.interleaved-multimedia\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.nokia.mp4vr\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.nokia.videovoip\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.objectvideo\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.planar\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.radgamettools.bink\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.radgamettools.smacker\": {\n    \"source\": \"apache\"\n  },\n  \"video/vnd.sealed.mpeg1\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.sealed.mpeg4\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.sealed.swf\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.sealedmedia.softseal.mov\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.uvvu.mp4\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvu\",\"uvvu\"]\n  },\n  \"video/vnd.vivo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"viv\"]\n  },\n  \"video/vnd.youtube.yt\": {\n    \"source\": \"iana\"\n  },\n  \"video/vp8\": {\n    \"source\": \"iana\"\n  },\n  \"video/vp9\": {\n    \"source\": \"iana\"\n  },\n  \"video/webm\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"webm\"]\n  },\n  \"video/x-f4v\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"f4v\"]\n  },\n  \"video/x-fli\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fli\"]\n  },\n  \"video/x-flv\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"flv\"]\n  },\n  \"video/x-m4v\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"m4v\"]\n  },\n  \"video/x-matroska\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n  },\n  \"video/x-mng\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mng\"]\n  },\n  \"video/x-ms-asf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"asf\",\"asx\"]\n  },\n  \"video/x-ms-vob\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"vob\"]\n  },\n  \"video/x-ms-wm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wm\"]\n  },\n  \"video/x-ms-wmv\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"wmv\"]\n  },\n  \"video/x-ms-wmx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wmx\"]\n  },\n  \"video/x-ms-wvx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wvx\"]\n  },\n  \"video/x-msvideo\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"avi\"]\n  },\n  \"video/x-sgi-movie\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"movie\"]\n  },\n  \"video/x-smv\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"smv\"]\n  },\n  \"x-conference/x-cooltalk\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ice\"]\n  },\n  \"x-shader/x-fragment\": {\n    \"compressible\": true\n  },\n  \"x-shader/x-vertex\": {\n    \"compressible\": true\n  }\n}\n", "/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n", "// 'mime-score' back-ported to CommonJS\n\n// Score RFC facets (see https://tools.ietf.org/html/rfc6838#section-3)\nvar FACET_SCORES = {\n  'prs.': 100,\n  'x-': 200,\n  'x.': 300,\n  'vnd.': 400,\n  default: 900\n}\n\n// Score mime source (Logic originally from `jshttp/mime-types` module)\nvar SOURCE_SCORES = {\n  nginx: 10,\n  apache: 20,\n  iana: 40,\n  default: 30 // definitions added by `jshttp/mime-db` project?\n}\n\nvar TYPE_SCORES = {\n  // prefer application/xml over text/xml\n  // prefer application/rtf over text/rtf\n  application: 1,\n\n  // prefer font/woff over application/font-woff\n  font: 2,\n\n  default: 0\n}\n\n/**\n * Get each component of the score for a mime type.  The sum of these is the\n * total score.  The higher the score, the more \"official\" the type.\n */\nmodule.exports = function mimeScore (mimeType, source = 'default') {\n  if (mimeType === 'application/octet-stream') {\n    return 0\n  }\n\n  const [type, subtype] = mimeType.split('/')\n\n  const facet = subtype.replace(/(\\.|x-).*/, '$1')\n\n  const facetScore = FACET_SCORES[facet] || FACET_SCORES.default\n  const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default\n  const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default\n\n  // All else being equal prefer shorter types\n  const lengthScore = 1 - mimeType.length / 100\n\n  return facetScore + sourceScore + typeScore + lengthScore\n}\n", "/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\nvar mimeScore = require('./mimeScore')\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\nexports._extensionConflicts = []\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n  if (!type || typeof type !== 'string') {\n    return false\n  }\n\n  // TODO: use media-typer\n  var match = EXTRACT_TYPE_REGEXP.exec(type)\n  var mime = match && db[match[1].toLowerCase()]\n\n  if (mime && mime.charset) {\n    return mime.charset\n  }\n\n  // default text/* to utf-8\n  if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n    return 'UTF-8'\n  }\n\n  return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n  // TODO: should this even be in this module?\n  if (!str || typeof str !== 'string') {\n    return false\n  }\n\n  var mime = str.indexOf('/') === -1 ? exports.lookup(str) : str\n\n  if (!mime) {\n    return false\n  }\n\n  // TODO: use content-type or other module\n  if (mime.indexOf('charset') === -1) {\n    var charset = exports.charset(mime)\n    if (charset) mime += '; charset=' + charset.toLowerCase()\n  }\n\n  return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n  if (!type || typeof type !== 'string') {\n    return false\n  }\n\n  // TODO: use media-typer\n  var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n  // get extensions\n  var exts = match && exports.extensions[match[1].toLowerCase()]\n\n  if (!exts || !exts.length) {\n    return false\n  }\n\n  return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n  if (!path || typeof path !== 'string') {\n    return false\n  }\n\n  // get the extension (\"ext\" or \".ext\" or full path)\n  var extension = extname('x.' + path)\n    .toLowerCase()\n    .slice(1)\n\n  if (!extension) {\n    return false\n  }\n\n  return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n  Object.keys(db).forEach(function forEachMimeType (type) {\n    var mime = db[type]\n    var exts = mime.extensions\n\n    if (!exts || !exts.length) {\n      return\n    }\n\n    // mime -> extensions\n    extensions[type] = exts\n\n    // extension -> mime\n    for (var i = 0; i < exts.length; i++) {\n      var extension = exts[i]\n      types[extension] = _preferredType(extension, types[extension], type)\n\n      // DELETE (eventually): Capture extension->type maps that change as a\n      // result of switching to mime-score.  This is just to help make reviewing\n      // PR #119 easier, and can be removed once that PR is approved.\n      const legacyType = _preferredTypeLegacy(\n        extension,\n        types[extension],\n        type\n      )\n      if (legacyType !== types[extension]) {\n        exports._extensionConflicts.push([extension, legacyType, types[extension]])\n      }\n    }\n  })\n}\n\n// Resolve type conflict using mime-score\nfunction _preferredType (ext, type0, type1) {\n  var score0 = type0 ? mimeScore(type0, db[type0].source) : 0\n  var score1 = type1 ? mimeScore(type1, db[type1].source) : 0\n\n  return score0 > score1 ? type0 : type1\n}\n\n// Resolve type conflict using pre-mime-score logic\nfunction _preferredTypeLegacy (ext, type0, type1) {\n  var SOURCE_RANK = ['nginx', 'apache', undefined, 'iana']\n\n  var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0\n  var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0\n\n  if (\n    exports.types[extension] !== 'application/octet-stream' &&\n    (score0 > score1 ||\n      (score0 === score1 &&\n        exports.types[extension]?.slice(0, 12) === 'application/'))\n  ) {\n    return type0\n  }\n\n  return score0 > score1 ? type0 : type1\n}\n", "'use strict';\n\nconst pMap = (iterable, mapper, options) => new Promise((resolve, reject) => {\n\toptions = Object.assign({\n\t\tconcurrency: Infinity\n\t}, options);\n\n\tif (typeof mapper !== 'function') {\n\t\tthrow new TypeError('Mapper function is required');\n\t}\n\n\tconst {concurrency} = options;\n\n\tif (!(typeof concurrency === 'number' && concurrency >= 1)) {\n\t\tthrow new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${concurrency}\\` (${typeof concurrency})`);\n\t}\n\n\tconst ret = [];\n\tconst iterator = iterable[Symbol.iterator]();\n\tlet isRejected = false;\n\tlet isIterableDone = false;\n\tlet resolvingCount = 0;\n\tlet currentIndex = 0;\n\n\tconst next = () => {\n\t\tif (isRejected) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextItem = iterator.next();\n\t\tconst i = currentIndex;\n\t\tcurrentIndex++;\n\n\t\tif (nextItem.done) {\n\t\t\tisIterableDone = true;\n\n\t\t\tif (resolvingCount === 0) {\n\t\t\t\tresolve(ret);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tresolvingCount++;\n\n\t\tPromise.resolve(nextItem.value)\n\t\t\t.then(element => mapper(element, i))\n\t\t\t.then(\n\t\t\t\tvalue => {\n\t\t\t\t\tret[i] = value;\n\t\t\t\t\tresolvingCount--;\n\t\t\t\t\tnext();\n\t\t\t\t},\n\t\t\t\terror => {\n\t\t\t\t\tisRejected = true;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t);\n\t};\n\n\tfor (let i = 0; i < concurrency; i++) {\n\t\tnext();\n\n\t\tif (isIterableDone) {\n\t\t\tbreak;\n\t\t}\n\t}\n});\n\nmodule.exports = pMap;\n// TODO: Remove this for the next major release\nmodule.exports.default = pMap;\n", "module.exports = isPromise;\nmodule.exports.default = isPromise;\n\nfunction isPromise(obj) {\n  return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n}\n", "'use strict';\nconst REGISTRATION_KEY = Symbol('@@any-observable/REGISTRATION');\nlet registered = null;\n\nmodule.exports = (global, loadImplementation) => {\n\treturn (implementation, opts) => {\n\t\topts = opts || {};\n\n\t\t// global registration unless explicitly  {global: false} in options (default true)\n\t\tconst registerGlobal = opts.global !== false;\n\n\t\t// Load any previous global registration\n\t\tif (registerGlobal && !registered) {\n\t\t\tregistered = global[REGISTRATION_KEY];\n\t\t}\n\n\t\tif (registered && implementation && registered.implementation !== implementation) {\n\t\t\tthrow new Error(`any-observable already defined as \"${registered.implementation}\". You can only register an implementation before the first call to require('any-observable') and an implementation cannot be changed`);\n\t\t}\n\n\t\tif (!registered) {\n\t\t\t// Use provided implementation\n\t\t\tif (implementation && opts.Observable) {\n\t\t\t\tregistered = {\n\t\t\t\t\tObservable: opts.Observable,\n\t\t\t\t\timplementation\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// Require implementation if implementation is specified but not provided\n\t\t\t\tregistered = loadImplementation(implementation || null);\n\t\t\t}\n\n\t\t\tif (registerGlobal) {\n\t\t\t\t// Register preference globally in case multiple installations\n\t\t\t\tglobal[REGISTRATION_KEY] = registered;\n\t\t\t}\n\t\t}\n\n\t\treturn registered;\n\t};\n};\n", "'use strict';\nmodule.exports = require('./loader')(global, loadImplementation);\n\nfunction loadImplementation(implementation) {\n\tlet impl;\n\n\tif (implementation === 'global.Observable') {\n\t\t// If no implementation or env specified use global.Observable\n\t\timpl = {\n\t\t\tObservable: global.Observable,\n\t\t\timplementation: 'global.Observable'\n\t\t};\n\t} else if (implementation) {\n\t\t// If implementation specified, require it\n\t\tconst lib = require(implementation);\n\n\t\timpl = {\n\t\t\tObservable: lib.Observable || lib.default || lib,\n\t\t\timplementation\n\t\t};\n\t} else {\n\t\t// Try to auto detect implementation. This is non-deterministic\n\t\t// and should prefer other branches, but this is our last chance\n\t\t// to load something without throwing error\n\t\timpl = tryAutoDetect();\n\t}\n\n\tif (!impl) {\n\t\tthrow new Error('Cannot find any-observable implementation nor' +\n\t\t\t' global.Observable. You must install polyfill or call' +\n\t\t\t' require(\"any-observable/register\") with your preferred' +\n\t\t\t' implementation, e.g. require(\"any-observable/register\")(\\'rxjs\\')' +\n\t\t\t' on application load prior to any require(\"any-observable\").');\n\t}\n\n\treturn impl;\n}\n\nfunction tryAutoDetect() {\n\tconst libs = [\n\t\t'rxjs',\n\t\t'zen-observable'\n\t];\n\n\tfor (const lib of libs) {\n\t\ttry {\n\t\t\treturn loadImplementation(lib);\n\t\t} catch (_) {}\n\t}\n\n\treturn null;\n}\n", "'use strict';\nmodule.exports = require('./register')().Observable;\n", "'use strict';\nconst Observable = require('any-observable');\n\nfunction or(option, alternate, required) {\n\tconst result = option === false ? false : option || alternate;\n\n\tif ((required && !result) || (result && typeof result !== 'string')) {\n\t\tthrow new TypeError(alternate + 'Event must be a string.');\n\t}\n\n\treturn result;\n}\n\nmodule.exports = (stream, opts) => {\n\topts = opts || {};\n\n\tlet complete = false;\n\tlet dataListeners = [];\n\tconst awaited = opts.await;\n\tconst dataEvent = or(opts.dataEvent, 'data', true);\n\tconst errorEvent = or(opts.errorEvent, 'error');\n\tconst endEvent = or(opts.endEvent, 'end');\n\n\tfunction cleanup() {\n\t\tcomplete = true;\n\t\tdataListeners.forEach(listener => {\n\t\t\tstream.removeListener(dataEvent, listener);\n\t\t});\n\t\tdataListeners = null;\n\t}\n\n\tconst completion = new Promise((resolve, reject) => {\n\t\tfunction onEnd(result) {\n\t\t\tif (awaited) {\n\t\t\t\tawaited.then(resolve);\n\t\t\t} else {\n\t\t\t\tresolve(result);\n\t\t\t}\n\t\t}\n\n\t\tif (endEvent) {\n\t\t\tstream.once(endEvent, onEnd);\n\t\t} else if (awaited) {\n\t\t\tonEnd();\n\t\t}\n\n\t\tif (errorEvent) {\n\t\t\tstream.once(errorEvent, reject);\n\t\t}\n\n\t\tif (awaited) {\n\t\t\tawaited.catch(reject);\n\t\t}\n\t}).catch(err => {\n\t\tcleanup();\n\t\tthrow err;\n\t}).then(result => {\n\t\tcleanup();\n\t\treturn result;\n\t});\n\n\treturn new Observable(observer => {\n\t\tcompletion\n\t\t\t.then(observer.complete.bind(observer))\n\t\t\t.catch(observer.error.bind(observer));\n\n\t\tif (complete) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst onData = data => {\n\t\t\tobserver.next(data);\n\t\t};\n\n\t\tstream.on(dataEvent, onData);\n\t\tdataListeners.push(onData);\n\n\t\treturn () => {\n\t\t\tstream.removeListener(dataEvent, onData);\n\n\t\t\tif (complete) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst idx = dataListeners.indexOf(onData);\n\n\t\t\tif (idx !== -1) {\n\t\t\t\tdataListeners.splice(idx, 1);\n\t\t\t}\n\t\t};\n\t});\n};\n", "export function isFunction(x: any): x is Function {\n  return typeof x === 'function';\n}\n", "let _enable_super_gross_mode_that_will_cause_bad_things = false;\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like what Promise contructor should used to create Promises\n */\nexport const config = {\n  /**\n   * The promise constructor used by default for methods such as\n   * {@link toPromise} and {@link forEach}\n   */\n  Promise: undefined as PromiseConstructorLike,\n\n  /**\n   * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n   * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n   * call in a try/catch block. It also enables producer interference, a nasty bug\n   * where a multicast can be broken for all observers by a downstream consumer with\n   * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME\n   * FOR MIGRATION REASONS.\n   */\n  set useDeprecatedSynchronousErrorHandling(value: boolean) {\n    if (value) {\n      const error = new Error();\n      console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n    } else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n      console.log('RxJS: Back to a better error behavior. Thank you. <3');\n    }\n    _enable_super_gross_mode_that_will_cause_bad_things = value;\n  },\n\n  get useDeprecatedSynchronousErrorHandling() {\n    return _enable_super_gross_mode_that_will_cause_bad_things;\n  },\n};\n", "/**\n * Throws an error on another job so that it's picked up by the runtime's\n * uncaught error handling mechanism.\n * @param err the error to throw\n */\nexport function hostReportError(err: any) {\n  setTimeout(() => { throw err; }, 0);\n}", "import { Observer } from './types';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\nexport const empty: Observer<any> = {\n  closed: true,\n  next(value: any): void { /* noop */},\n  error(err: any): void {\n    if (config.useDeprecatedSynchronousErrorHandling) {\n      throw err;\n    } else {\n      hostReportError(err);\n    }\n  },\n  complete(): void { /*noop*/ }\n};\n", "export const isArray = (() => Array.isArray || (<T>(x: any): x is T[] => x && typeof x.length === 'number'))();\n", "export function isObject(x: any): x is Object {\n  return x !== null && typeof x === 'object';\n}\n", "export interface UnsubscriptionError extends Error {\n  readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n  new(errors: any[]): UnsubscriptionError;\n}\n\nconst UnsubscriptionErrorImpl = (() => {\n  function UnsubscriptionErrorImpl(this: any, errors: any[]) {\n    Error.call(this);\n    this.message = errors ?\n      `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n  ')}` : '';\n    this.name = 'UnsubscriptionError';\n    this.errors = errors;\n    return this;\n  }\n\n  UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n\n  return UnsubscriptionErrorImpl;\n})();\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = UnsubscriptionErrorImpl as any;", "import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic } from './types';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n  /** @nocollapse */\n  public static EMPTY: Subscription = (function(empty: any) {\n    empty.closed = true;\n    return empty;\n  }(new Subscription()));\n\n  /**\n   * A flag to indicate whether this Subscription has already been unsubscribed.\n   * @type {boolean}\n   */\n  public closed: boolean = false;\n\n  /** @internal */\n  protected _parentOrParents: Subscription | Subscription[] = null;\n  /** @internal */\n  private _subscriptions: SubscriptionLike[] = null;\n\n  /**\n   * @param {function(): void} [unsubscribe] A function describing how to\n   * perform the disposal of resources when the `unsubscribe` method is called.\n   */\n  constructor(unsubscribe?: () => void) {\n    if (unsubscribe) {\n      (this as any)._ctorUnsubscribe = true;\n      (this as any)._unsubscribe = unsubscribe;\n    }\n  }\n\n  /**\n   * Disposes the resources held by the subscription. May, for instance, cancel\n   * an ongoing Observable execution or cancel any other type of work that\n   * started when the Subscription was created.\n   * @return {void}\n   */\n  unsubscribe(): void {\n    let errors: any[];\n\n    if (this.closed) {\n      return;\n    }\n\n    let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = (this as any);\n\n    this.closed = true;\n    this._parentOrParents = null;\n    // null out _subscriptions first so any child subscriptions that attempt\n    // to remove themselves from this subscription will noop\n    this._subscriptions = null;\n\n    if (_parentOrParents instanceof Subscription) {\n      _parentOrParents.remove(this);\n    } else if (_parentOrParents !== null) {\n      for (let index = 0; index < _parentOrParents.length; ++index) {\n        const parent = _parentOrParents[index];\n        parent.remove(this);\n      }\n    }\n\n    if (isFunction(_unsubscribe)) {\n      // It's only possible to null _unsubscribe - to release the reference to\n      // any teardown function passed in the constructor - if the property was\n      // actually assigned in the constructor, as there are some classes that\n      // are derived from Subscriber (which derives from Subscription) that\n      // implement an _unsubscribe method as a mechanism for obtaining\n      // unsubscription notifications and some of those subscribers are\n      // recycled. Also, in some of those subscribers, _unsubscribe switches\n      // from a prototype method to an instance property - see notifyNext in\n      // RetryWhenSubscriber.\n      if (_ctorUnsubscribe) {\n        (this as any)._unsubscribe = undefined;\n      }\n      try {\n        _unsubscribe.call(this);\n      } catch (e) {\n        errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n      }\n    }\n\n    if (isArray(_subscriptions)) {\n      let index = -1;\n      let len = _subscriptions.length;\n\n      while (++index < len) {\n        const sub = _subscriptions[index];\n        if (isObject(sub)) {\n          try {\n            sub.unsubscribe();\n          } catch (e) {\n            errors = errors || [];\n            if (e instanceof UnsubscriptionError) {\n              errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n            } else {\n              errors.push(e);\n            }\n          }\n        }\n      }\n    }\n\n    if (errors) {\n      throw new UnsubscriptionError(errors);\n    }\n  }\n\n  /**\n   * Adds a tear down to be called during the unsubscribe() of this\n   * Subscription. Can also be used to add a child subscription.\n   *\n   * If the tear down being added is a subscription that is already\n   * unsubscribed, is the same reference `add` is being called on, or is\n   * `Subscription.EMPTY`, it will not be added.\n   *\n   * If this subscription is already in an `closed` state, the passed\n   * tear down logic will be executed immediately.\n   *\n   * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.\n   *\n   * @param {TeardownLogic} teardown The additional logic to execute on\n   * teardown.\n   * @return {Subscription} Returns the Subscription used or created to be\n   * added to the inner subscriptions list. This Subscription can be used with\n   * `remove()` to remove the passed teardown logic from the inner subscriptions\n   * list.\n   */\n  add(teardown: TeardownLogic): Subscription {\n    let subscription = (<Subscription>teardown);\n\n    if (!teardown) {\n      return Subscription.EMPTY;\n    }\n\n    switch (typeof teardown) {\n      case 'function':\n        subscription = new Subscription(<(() => void)>teardown);\n      case 'object':\n        if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n          // This also covers the case where `subscription` is `Subscription.EMPTY`, which is always in `closed` state.\n          return subscription;\n        } else if (this.closed) {\n          subscription.unsubscribe();\n          return subscription;\n        } else if (!(subscription instanceof Subscription)) {\n          const tmp = subscription;\n          subscription = new Subscription();\n          subscription._subscriptions = [tmp];\n        }\n        break;\n      default: {\n        throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n      }\n    }\n\n    // Add `this` as parent of `subscription` if that's not already the case.\n    let { _parentOrParents } = subscription;\n    if (_parentOrParents === null) {\n      // If we don't have a parent, then set `subscription._parents` to\n      // the `this`, which is the common case that we optimize for.\n      subscription._parentOrParents = this;\n    } else if (_parentOrParents instanceof Subscription) {\n      if (_parentOrParents === this) {\n        // The `subscription` already has `this` as a parent.\n        return subscription;\n      }\n      // If there's already one parent, but not multiple, allocate an\n      // Array to store the rest of the parent Subscriptions.\n      subscription._parentOrParents = [_parentOrParents, this];\n    } else if (_parentOrParents.indexOf(this) === -1) {\n      // Only add `this` to the _parentOrParents list if it's not already there.\n      _parentOrParents.push(this);\n    } else {\n      // The `subscription` already has `this` as a parent.\n      return subscription;\n    }\n\n    // Optimize for the common case when adding the first subscription.\n    const subscriptions = this._subscriptions;\n    if (subscriptions === null) {\n      this._subscriptions = [subscription];\n    } else {\n      subscriptions.push(subscription);\n    }\n\n    return subscription;\n  }\n\n  /**\n   * Removes a Subscription from the internal list of subscriptions that will\n   * unsubscribe during the unsubscribe process of this Subscription.\n   * @param {Subscription} subscription The subscription to remove.\n   * @return {void}\n   */\n  remove(subscription: Subscription): void {\n    const subscriptions = this._subscriptions;\n    if (subscriptions) {\n      const subscriptionIndex = subscriptions.indexOf(subscription);\n      if (subscriptionIndex !== -1) {\n        subscriptions.splice(subscriptionIndex, 1);\n      }\n    }\n  }\n}\n\nfunction flattenUnsubscriptionErrors(errors: any[]) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n", "/** @deprecated do not use, this is no longer checked by RxJS internals */\nexport const rxSubscriber = (() =>\n  typeof Symbol === 'function'\n    ? Symbol('rxSubscriber')\n    : '@@rxSubscriber_' + Math.random())();\n\n/**\n * @deprecated use rxSubscriber instead\n */\nexport const $$rxSubscriber = rxSubscriber;\n", "import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Observer, PartialObserver, TeardownLogic } from './types';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nexport class Subscriber<T> extends Subscription implements Observer<T> {\n\n  [rxSubscriberSymbol]() { return this; }\n\n  /**\n   * A static factory for a Subscriber, given a (potentially partial) definition\n   * of an Observer.\n   * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n   * @param {function(e: ?any): void} [error] The `error` callback of an\n   * Observer.\n   * @param {function(): void} [complete] The `complete` callback of an\n   * Observer.\n   * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)\n   * Observer represented by the given arguments.\n   * @nocollapse\n   */\n  static create<T>(next?: (x?: T) => void,\n                   error?: (e?: any) => void,\n                   complete?: () => void): Subscriber<T> {\n    const subscriber = new Subscriber(next, error, complete);\n    subscriber.syncErrorThrowable = false;\n    return subscriber;\n  }\n\n  /** @internal */ syncErrorValue: any = null;\n  /** @internal */ syncErrorThrown: boolean = false;\n  /** @internal */ syncErrorThrowable: boolean = false;\n\n  protected isStopped: boolean = false;\n  protected destination: PartialObserver<any> | Subscriber<any>; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n  /**\n   * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n   * defined Observer or a `next` callback function.\n   * @param {function(e: ?any): void} [error] The `error` callback of an\n   * Observer.\n   * @param {function(): void} [complete] The `complete` callback of an\n   * Observer.\n   */\n  constructor(destinationOrNext?: PartialObserver<any> | ((value: T) => void),\n              error?: (e?: any) => void,\n              complete?: () => void) {\n    super();\n\n    switch (arguments.length) {\n      case 0:\n        this.destination = emptyObserver;\n        break;\n      case 1:\n        if (!destinationOrNext) {\n          this.destination = emptyObserver;\n          break;\n        }\n        if (typeof destinationOrNext === 'object') {\n          if (destinationOrNext instanceof Subscriber) {\n            this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n            this.destination = destinationOrNext;\n            destinationOrNext.add(this);\n          } else {\n            this.syncErrorThrowable = true;\n            this.destination = new SafeSubscriber<T>(this, <PartialObserver<any>> destinationOrNext);\n          }\n          break;\n        }\n      default:\n        this.syncErrorThrowable = true;\n        this.destination = new SafeSubscriber<T>(this, <((value: T) => void)> destinationOrNext, error, complete);\n        break;\n    }\n  }\n\n  /**\n   * The {@link Observer} callback to receive notifications of type `next` from\n   * the Observable, with a value. The Observable may call this method 0 or more\n   * times.\n   * @param {T} [value] The `next` value.\n   * @return {void}\n   */\n  next(value?: T): void {\n    if (!this.isStopped) {\n      this._next(value);\n    }\n  }\n\n  /**\n   * The {@link Observer} callback to receive notifications of type `error` from\n   * the Observable, with an attached `Error`. Notifies the Observer that\n   * the Observable has experienced an error condition.\n   * @param {any} [err] The `error` exception.\n   * @return {void}\n   */\n  error(err?: any): void {\n    if (!this.isStopped) {\n      this.isStopped = true;\n      this._error(err);\n    }\n  }\n\n  /**\n   * The {@link Observer} callback to receive a valueless notification of type\n   * `complete` from the Observable. Notifies the Observer that the Observable\n   * has finished sending push-based notifications.\n   * @return {void}\n   */\n  complete(): void {\n    if (!this.isStopped) {\n      this.isStopped = true;\n      this._complete();\n    }\n  }\n\n  unsubscribe(): void {\n    if (this.closed) {\n      return;\n    }\n    this.isStopped = true;\n    super.unsubscribe();\n  }\n\n  protected _next(value: T): void {\n    this.destination.next(value);\n  }\n\n  protected _error(err: any): void {\n    this.destination.error(err);\n    this.unsubscribe();\n  }\n\n  protected _complete(): void {\n    this.destination.complete();\n    this.unsubscribe();\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _unsubscribeAndRecycle(): Subscriber<T> {\n    const {  _parentOrParents } = this;\n    this._parentOrParents = null;\n    this.unsubscribe();\n    this.closed = false;\n    this.isStopped = false;\n    this._parentOrParents = _parentOrParents;\n    return this;\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SafeSubscriber<T> extends Subscriber<T> {\n\n  private _context: any;\n\n  constructor(private _parentSubscriber: Subscriber<T>,\n              observerOrNext?: PartialObserver<T> | ((value: T) => void),\n              error?: (e?: any) => void,\n              complete?: () => void) {\n    super();\n\n    let next: ((value: T) => void);\n    let context: any = this;\n\n    if (isFunction(observerOrNext)) {\n      next = (<((value: T) => void)> observerOrNext);\n    } else if (observerOrNext) {\n      next = (<PartialObserver<T>> observerOrNext).next;\n      error = (<PartialObserver<T>> observerOrNext).error;\n      complete = (<PartialObserver<T>> observerOrNext).complete;\n      if (observerOrNext !== emptyObserver) {\n        context = Object.create(observerOrNext);\n        if (isFunction(context.unsubscribe)) {\n          this.add(<() => void> context.unsubscribe.bind(context));\n        }\n        context.unsubscribe = this.unsubscribe.bind(this);\n      }\n    }\n\n    this._context = context;\n    this._next = next;\n    this._error = error;\n    this._complete = complete;\n  }\n\n  next(value?: T): void {\n    if (!this.isStopped && this._next) {\n      const { _parentSubscriber } = this;\n      if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n        this.__tryOrUnsub(this._next, value);\n      } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n        this.unsubscribe();\n      }\n    }\n  }\n\n  error(err?: any): void {\n    if (!this.isStopped) {\n      const { _parentSubscriber } = this;\n      const { useDeprecatedSynchronousErrorHandling } = config;\n      if (this._error) {\n        if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n          this.__tryOrUnsub(this._error, err);\n          this.unsubscribe();\n        } else {\n          this.__tryOrSetError(_parentSubscriber, this._error, err);\n          this.unsubscribe();\n        }\n      } else if (!_parentSubscriber.syncErrorThrowable) {\n        this.unsubscribe();\n        if (useDeprecatedSynchronousErrorHandling) {\n          throw err;\n        }\n        hostReportError(err);\n      } else {\n        if (useDeprecatedSynchronousErrorHandling) {\n          _parentSubscriber.syncErrorValue = err;\n          _parentSubscriber.syncErrorThrown = true;\n        } else {\n          hostReportError(err);\n        }\n        this.unsubscribe();\n      }\n    }\n  }\n\n  complete(): void {\n    if (!this.isStopped) {\n      const { _parentSubscriber } = this;\n      if (this._complete) {\n        const wrappedComplete = () => this._complete.call(this._context);\n\n        if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n          this.__tryOrUnsub(wrappedComplete);\n          this.unsubscribe();\n        } else {\n          this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n          this.unsubscribe();\n        }\n      } else {\n        this.unsubscribe();\n      }\n    }\n  }\n\n  private __tryOrUnsub(fn: Function, value?: any): void {\n    try {\n      fn.call(this._context, value);\n    } catch (err) {\n      this.unsubscribe();\n      if (config.useDeprecatedSynchronousErrorHandling) {\n        throw err;\n      } else {\n        hostReportError(err);\n      }\n    }\n  }\n\n  private __tryOrSetError(parent: Subscriber<T>, fn: Function, value?: any): boolean {\n    if (!config.useDeprecatedSynchronousErrorHandling) {\n      throw new Error('bad call');\n    }\n    try {\n      fn.call(this._context, value);\n    } catch (err) {\n      if (config.useDeprecatedSynchronousErrorHandling) {\n        parent.syncErrorValue = err;\n        parent.syncErrorThrown = true;\n        return true;\n      } else {\n        hostReportError(err);\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /** @internal This is an internal implementation detail, do not use. */\n  _unsubscribe(): void {\n    const { _parentSubscriber } = this;\n    this._context = null;\n    this._parentSubscriber = null;\n    _parentSubscriber.unsubscribe();\n  }\n}\n", "import { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\n\n/**\n * Determines whether the ErrorObserver is closed or stopped or has a\n * destination that is closed or stopped - in which case errors will\n * need to be reported via a different mechanism.\n * @param observer the observer\n */\nexport function canReportError(observer: Subscriber<any> | Subject<any>): boolean {\n  while (observer) {\n    const { closed, destination, isStopped } = observer as any;\n    if (closed || isStopped) {\n      return false;\n    } else if (destination && destination instanceof Subscriber) {\n      observer = destination;\n    } else {\n      observer = null;\n    }\n  }\n  return true;\n}\n", "import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nimport { PartialObserver } from '../types';\n\nexport function toSubscriber<T>(\n  nextOrObserver?: PartialObserver<T> | ((value: T) => void),\n  error?: (error: any) => void,\n  complete?: () => void): Subscriber<T> {\n\n  if (nextOrObserver) {\n    if (nextOrObserver instanceof Subscriber) {\n      return (<Subscriber<T>> nextOrObserver);\n    }\n\n    if (nextOrObserver[rxSubscriberSymbol]) {\n      return nextOrObserver[rxSubscriberSymbol]();\n    }\n  }\n\n  if (!nextOrObserver && !error && !complete) {\n    return new Subscriber(emptyObserver);\n  }\n\n  return new Subscriber(nextOrObserver, error, complete);\n}\n", "/** Symbol.observable or a string \"@@observable\". Used for interop */\nexport const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n", "export function identity<T>(x: T): T {\n  return x;\n}\n", "import { noop } from './noop';\nimport { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function pipe<T>(): UnaryFunction<T, T>;\nexport function pipe<T, A>(fn1: UnaryFunction<T, A>): UnaryFunction<T, A>;\nexport function pipe<T, A, B>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>): UnaryFunction<T, B>;\nexport function pipe<T, A, B, C>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>): UnaryFunction<T, C>;\nexport function pipe<T, A, B, C, D>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>): UnaryFunction<T, D>;\nexport function pipe<T, A, B, C, D, E>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>): UnaryFunction<T, E>;\nexport function pipe<T, A, B, C, D, E, F>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>): UnaryFunction<T, F>;\nexport function pipe<T, A, B, C, D, E, F, G>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>): UnaryFunction<T, G>;\nexport function pipe<T, A, B, C, D, E, F, G, H>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>): UnaryFunction<T, H>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>, fn9: UnaryFunction<H, I>): UnaryFunction<T, I>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>, fn9: UnaryFunction<H, I>, ...fns: UnaryFunction<any, any>[]): UnaryFunction<T, {}>;\n/* tslint:enable:max-line-length */\n\nexport function pipe(...fns: Array<UnaryFunction<any, any>>): UnaryFunction<any, any> {\n  return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray<T, R>(fns: Array<UnaryFunction<T, R>>): UnaryFunction<T, R> {\n  if (fns.length === 0) {\n    return identity as UnaryFunction<any, any>;\n  }\n\n  if (fns.length === 1) {\n    return fns[0];\n  }\n\n  return function piped(input: T): R {\n    return fns.reduce((prev: any, fn: UnaryFunction<T, R>) => fn(prev), input as any);\n  };\n}\n", "import { Operator } from './Operator';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types';\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { iif } from './observable/iif';\nimport { throwError } from './observable/throwError';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nexport class Observable<T> implements Subscribable<T> {\n\n  /** Internal implementation detail, do not use directly. */\n  public _isScalar: boolean = false;\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  source: Observable<any>;\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  operator: Operator<any, T>;\n\n  /**\n   * @constructor\n   * @param {Function} subscribe the function that is called when the Observable is\n   * initially subscribed to. This function is given a Subscriber, to which new values\n   * can be `next`ed, or an `error` method can be called to raise an error, or\n   * `complete` can be called to notify of a successful completion.\n   */\n  constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic) {\n    if (subscribe) {\n      this._subscribe = subscribe;\n    }\n  }\n\n  // HACK: Since TypeScript inherits static properties too, we have to\n  // fight against TypeScript here so Subject can have a different static create signature\n  /**\n   * Creates a new cold Observable by calling the Observable constructor\n   * @static true\n   * @owner Observable\n   * @method create\n   * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n   * @return {Observable} a new cold observable\n   * @nocollapse\n   * @deprecated use new Observable() instead\n   */\n  static create: Function = <T>(subscribe?: (subscriber: Subscriber<T>) => TeardownLogic) => {\n    return new Observable<T>(subscribe);\n  }\n\n  /**\n   * Creates a new Observable, with this Observable as the source, and the passed\n   * operator defined as the new observable's operator.\n   * @method lift\n   * @param {Operator} operator the operator defining the operation to take on the observable\n   * @return {Observable} a new observable with the Operator applied\n   */\n  lift<R>(operator: Operator<T, R>): Observable<R> {\n    const observable = new Observable<R>();\n    observable.source = this;\n    observable.operator = operator;\n    return observable;\n  }\n\n  subscribe(observer?: PartialObserver<T>): Subscription;\n  /** @deprecated Use an observer instead of a complete callback */\n  subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\n  /** @deprecated Use an observer instead of an error callback */\n  subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\n  /** @deprecated Use an observer instead of a complete callback */\n  subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription;\n  subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n  /**\n   * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n   *\n   * <span class=\"informal\">Use it when you have all these Observables, but still nothing is happening.</span>\n   *\n   * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n   * might be for example a function that you passed to Observable's constructor, but most of the time it is\n   * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n   * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n   * the thought.\n   *\n   * Apart from starting the execution of an Observable, this method allows you to listen for values\n   * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n   * of the following ways.\n   *\n   * The first way is creating an object that implements {@link Observer} interface. It should have methods\n   * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n   * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n   * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n   * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n   * do anything, you can simply omit it. Note however, if the `error` method is not provided, all errors will\n   * be left uncaught.\n   *\n   * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n   * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n   * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of Observer,\n   * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n   * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n   * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n   *\n   * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n   * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n   * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n   * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n   *\n   * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n   * It is an Observable itself that decides when these functions will be called. For example {@link of}\n   * by default emits all its values synchronously. Always check documentation for how given Observable\n   * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n   *\n   * ## Example\n   * ### Subscribe with an Observer\n   * ```ts\n   * import { of } from 'rxjs';\n   *\n   * const sumObserver = {\n   *   sum: 0,\n   *   next(value) {\n   *     console.log('Adding: ' + value);\n   *     this.sum = this.sum + value;\n   *   },\n   *   error() {\n   *     // We actually could just remove this method,\n   *     // since we do not really care about errors right now.\n   *   },\n   *   complete() {\n   *     console.log('Sum equals: ' + this.sum);\n   *   }\n   * };\n   *\n   * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n   *   .subscribe(sumObserver);\n   *\n   * // Logs:\n   * // \"Adding: 1\"\n   * // \"Adding: 2\"\n   * // \"Adding: 3\"\n   * // \"Sum equals: 6\"\n   * ```\n   *\n   * ### Subscribe with functions\n   * ```ts\n   * import { of } from 'rxjs'\n   *\n   * let sum = 0;\n   *\n   * of(1, 2, 3).subscribe(\n   *   value => {\n   *     console.log('Adding: ' + value);\n   *     sum = sum + value;\n   *   },\n   *   undefined,\n   *   () => console.log('Sum equals: ' + sum)\n   * );\n   *\n   * // Logs:\n   * // \"Adding: 1\"\n   * // \"Adding: 2\"\n   * // \"Adding: 3\"\n   * // \"Sum equals: 6\"\n   * ```\n   *\n   * ### Cancel a subscription\n   * ```ts\n   * import { interval } from 'rxjs';\n   *\n   * const subscription = interval(1000).subscribe(\n   *   num => console.log(num),\n   *   undefined,\n   *   () => {\n   *     // Will not be called, even when cancelling subscription.\n   *     console.log('completed!');\n   *   }\n   * );\n   *\n   * setTimeout(() => {\n   *   subscription.unsubscribe();\n   *   console.log('unsubscribed!');\n   * }, 2500);\n   *\n   * // Logs:\n   * // 0 after 1s\n   * // 1 after 2s\n   * // \"unsubscribed!\" after 2.5s\n   * ```\n   *\n   * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n   *  or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n   *  Observable.\n   * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n   *  the error will be thrown as unhandled.\n   * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n   * @return {ISubscription} a subscription reference to the registered handlers\n   * @method subscribe\n   */\n  subscribe(observerOrNext?: PartialObserver<T> | ((value: T) => void),\n            error?: (error: any) => void,\n            complete?: () => void): Subscription {\n\n    const { operator } = this;\n    const sink = toSubscriber(observerOrNext, error, complete);\n\n    if (operator) {\n      sink.add(operator.call(sink, this.source));\n    } else {\n      sink.add(\n        this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n        this._subscribe(sink) :\n        this._trySubscribe(sink)\n      );\n    }\n\n    if (config.useDeprecatedSynchronousErrorHandling) {\n      if (sink.syncErrorThrowable) {\n        sink.syncErrorThrowable = false;\n        if (sink.syncErrorThrown) {\n          throw sink.syncErrorValue;\n        }\n      }\n    }\n\n    return sink;\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _trySubscribe(sink: Subscriber<T>): TeardownLogic {\n    try {\n      return this._subscribe(sink);\n    } catch (err) {\n      if (config.useDeprecatedSynchronousErrorHandling) {\n        sink.syncErrorThrown = true;\n        sink.syncErrorValue = err;\n      }\n      if (canReportError(sink)) {\n        sink.error(err);\n      } else {\n        console.warn(err);\n      }\n    }\n  }\n\n  /**\n   * @method forEach\n   * @param {Function} next a handler for each value emitted by the observable\n   * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise\n   * @return {Promise} a promise that either resolves on observable completion or\n   *  rejects with the handled error\n   */\n  forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void> {\n    promiseCtor = getPromiseCtor(promiseCtor);\n\n    return new promiseCtor<void>((resolve, reject) => {\n      // Must be declared in a separate statement to avoid a ReferenceError when\n      // accessing subscription below in the closure due to Temporal Dead Zone.\n      let subscription: Subscription;\n      subscription = this.subscribe((value) => {\n        try {\n          next(value);\n        } catch (err) {\n          reject(err);\n          if (subscription) {\n            subscription.unsubscribe();\n          }\n        }\n      }, reject, resolve);\n    }) as Promise<void>;\n  }\n\n  /** @internal This is an internal implementation detail, do not use. */\n  _subscribe(subscriber: Subscriber<any>): TeardownLogic {\n    const { source } = this;\n    return source && source.subscribe(subscriber);\n  }\n\n  // `if` and `throw` are special snow flakes, the compiler sees them as reserved words. Deprecated in\n  // favor of iif and throwError functions.\n  /**\n   * @nocollapse\n   * @deprecated In favor of iif creation function: import { iif } from 'rxjs';\n   */\n  static if: typeof iif;\n  /**\n   * @nocollapse\n   * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs';\n   */\n  static throw: typeof throwError;\n\n  /**\n   * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n   * @method Symbol.observable\n   * @return {Observable} this instance of the observable\n   */\n  [Symbol_observable]() {\n    return this;\n  }\n\n  /* tslint:disable:max-line-length */\n  pipe(): Observable<T>;\n  pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n  pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;\n  pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;\n  pipe<A, B, C, D>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>): Observable<D>;\n  pipe<A, B, C, D, E>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>): Observable<E>;\n  pipe<A, B, C, D, E, F>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>): Observable<F>;\n  pipe<A, B, C, D, E, F, G>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>): Observable<G>;\n  pipe<A, B, C, D, E, F, G, H>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>): Observable<H>;\n  pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>): Observable<I>;\n  pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>, ...operations: OperatorFunction<any, any>[]): Observable<{}>;\n  /* tslint:enable:max-line-length */\n\n  /**\n   * Used to stitch together functional operators into a chain.\n   * @method pipe\n   * @return {Observable} the Observable result of all of the operators having\n   * been called in the order they were passed in.\n   *\n   * ### Example\n   * ```ts\n   * import { interval } from 'rxjs';\n   * import { map, filter, scan } from 'rxjs/operators';\n   *\n   * interval(1000)\n   *   .pipe(\n   *     filter(x => x % 2 === 0),\n   *     map(x => x + x),\n   *     scan((acc, x) => acc + x)\n   *   )\n   *   .subscribe(x => console.log(x))\n   * ```\n   */\n  pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {\n    if (operations.length === 0) {\n      return this as any;\n    }\n\n    return pipeFromArray(operations)(this);\n  }\n\n  /* tslint:disable:max-line-length */\n  toPromise<T>(this: Observable<T>): Promise<T>;\n  toPromise<T>(this: Observable<T>, PromiseCtor: typeof Promise): Promise<T>;\n  toPromise<T>(this: Observable<T>, PromiseCtor: PromiseConstructorLike): Promise<T>;\n  /* tslint:enable:max-line-length */\n\n  toPromise(promiseCtor?: PromiseConstructorLike): Promise<T> {\n    promiseCtor = getPromiseCtor(promiseCtor);\n\n    return new promiseCtor((resolve, reject) => {\n      let value: any;\n      this.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value));\n    }) as Promise<T>;\n  }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n  if (!promiseCtor) {\n    promiseCtor = config.Promise || Promise;\n  }\n\n  if (!promiseCtor) {\n    throw new Error('no Promise impl found');\n  }\n\n  return promiseCtor;\n}\n", "export interface ObjectUnsubscribedError extends Error {\n}\n\nexport interface ObjectUnsubscribedErrorCtor {\n  new(): ObjectUnsubscribedError;\n}\n\nconst ObjectUnsubscribedErrorImpl = (() => {\n  function ObjectUnsubscribedErrorImpl(this: any) {\n    Error.call(this);\n    this.message = 'object unsubscribed';\n    this.name = 'ObjectUnsubscribedError';\n    return this;\n  }\n\n  ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n\n  return ObjectUnsubscribedErrorImpl;\n})();\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = ObjectUnsubscribedErrorImpl as any;", "import { Subject } from './Subject';\nimport { Observer } from './types';\nimport { Subscription } from './Subscription';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SubjectSubscription<T> extends Subscription {\n  closed: boolean = false;\n\n  constructor(public subject: Subject<T>, public subscriber: Observer<T>) {\n    super();\n  }\n\n  unsubscribe() {\n    if (this.closed) {\n      return;\n    }\n\n    this.closed = true;\n\n    const subject = this.subject;\n    const observers = subject.observers;\n\n    this.subject = null;\n\n    if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n      return;\n    }\n\n    const subscriberIndex = observers.indexOf(this.subscriber);\n\n    if (subscriberIndex !== -1) {\n      observers.splice(subscriberIndex, 1);\n    }\n  }\n}\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\n\n/**\n * @class SubjectSubscriber<T>\n */\nexport class SubjectSubscriber<T> extends Subscriber<T> {\n  constructor(protected destination: Subject<T>) {\n    super(destination);\n  }\n}\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n *\n * @class Subject<T>\n */\nexport class Subject<T> extends Observable<T> implements SubscriptionLike {\n\n  [rxSubscriberSymbol]() {\n    return new SubjectSubscriber(this);\n  }\n\n  observers: Observer<T>[] = [];\n\n  closed = false;\n\n  isStopped = false;\n\n  hasError = false;\n\n  thrownError: any = null;\n\n  constructor() {\n    super();\n  }\n\n  /**@nocollapse\n   * @deprecated use new Subject() instead\n  */\n  static create: Function = <T>(destination: Observer<T>, source: Observable<T>): AnonymousSubject<T> => {\n    return new AnonymousSubject<T>(destination, source);\n  }\n\n  lift<R>(operator: Operator<T, R>): Observable<R> {\n    const subject = new AnonymousSubject(this, this);\n    subject.operator = <any>operator;\n    return <any>subject;\n  }\n\n  next(value?: T) {\n    if (this.closed) {\n      throw new ObjectUnsubscribedError();\n    }\n    if (!this.isStopped) {\n      const { observers } = this;\n      const len = observers.length;\n      const copy = observers.slice();\n      for (let i = 0; i < len; i++) {\n        copy[i].next(value);\n      }\n    }\n  }\n\n  error(err: any) {\n    if (this.closed) {\n      throw new ObjectUnsubscribedError();\n    }\n    this.hasError = true;\n    this.thrownError = err;\n    this.isStopped = true;\n    const { observers } = this;\n    const len = observers.length;\n    const copy = observers.slice();\n    for (let i = 0; i < len; i++) {\n      copy[i].error(err);\n    }\n    this.observers.length = 0;\n  }\n\n  complete() {\n    if (this.closed) {\n      throw new ObjectUnsubscribedError();\n    }\n    this.isStopped = true;\n    const { observers } = this;\n    const len = observers.length;\n    const copy = observers.slice();\n    for (let i = 0; i < len; i++) {\n      copy[i].complete();\n    }\n    this.observers.length = 0;\n  }\n\n  unsubscribe() {\n    this.isStopped = true;\n    this.closed = true;\n    this.observers = null;\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _trySubscribe(subscriber: Subscriber<T>): TeardownLogic {\n    if (this.closed) {\n      throw new ObjectUnsubscribedError();\n    } else {\n      return super._trySubscribe(subscriber);\n    }\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _subscribe(subscriber: Subscriber<T>): Subscription {\n    if (this.closed) {\n      throw new ObjectUnsubscribedError();\n    } else if (this.hasError) {\n      subscriber.error(this.thrownError);\n      return Subscription.EMPTY;\n    } else if (this.isStopped) {\n      subscriber.complete();\n      return Subscription.EMPTY;\n    } else {\n      this.observers.push(subscriber);\n      return new SubjectSubscription(this, subscriber);\n    }\n  }\n\n  /**\n   * Creates a new Observable with this Subject as the source. You can do this\n   * to create customize Observer-side logic of the Subject and conceal it from\n   * code that uses the Observable.\n   * @return {Observable} Observable that the Subject casts to\n   */\n  asObservable(): Observable<T> {\n    const observable = new Observable<T>();\n    (<any>observable).source = this;\n    return observable;\n  }\n}\n\n/**\n * @class AnonymousSubject<T>\n */\nexport class AnonymousSubject<T> extends Subject<T> {\n  constructor(protected destination?: Observer<T>, source?: Observable<T>) {\n    super();\n    this.source = source;\n  }\n\n  next(value: T) {\n    const { destination } = this;\n    if (destination && destination.next) {\n      destination.next(value);\n    }\n  }\n\n  error(err: any) {\n    const { destination } = this;\n    if (destination && destination.error) {\n      this.destination.error(err);\n    }\n  }\n\n  complete() {\n    const { destination } = this;\n    if (destination && destination.complete) {\n      this.destination.complete();\n    }\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _subscribe(subscriber: Subscriber<T>): Subscription {\n    const { source } = this;\n    if (source) {\n      return this.source.subscribe(subscriber);\n    } else {\n      return Subscription.EMPTY;\n    }\n  }\n}\n", "import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { Observable } from '../Observable';\n\n/**\n * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way\n * you can connect to it.\n *\n * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if\n * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it\n * unsubscribes from the source. This way you can make sure that everything before the *published*\n * refCount has only a single subscription independently of the number of subscribers to the target\n * observable.\n *\n * Note that using the {@link share} operator is exactly the same as using the *publish* operator\n * (making the observable hot) and the *refCount* operator in a sequence.\n *\n * ![](refCount.png)\n *\n * ## Example\n *\n * In the following example there are two intervals turned into connectable observables\n * by using the *publish* operator. The first one uses the *refCount* operator, the\n * second one does not use it. You will notice that a connectable observable does nothing\n * until you call its connect function.\n *\n * ```ts\n * import { interval } from 'rxjs';\n * import { tap, publish, refCount } from 'rxjs/operators';\n *\n * // Turn the interval observable into a ConnectableObservable (hot)\n * const refCountInterval = interval(400).pipe(\n *   tap((num) => console.log(`refCount ${num}`)),\n *   publish(),\n *   refCount()\n * );\n *\n * const publishedInterval = interval(400).pipe(\n *   tap((num) => console.log(`publish ${num}`)),\n *   publish()\n * );\n *\n * refCountInterval.subscribe();\n * refCountInterval.subscribe();\n * // 'refCount 0' -----> 'refCount 1' -----> etc\n * // All subscriptions will receive the same value and the tap (and\n * // every other operator) before the publish operator will be executed\n * // only once per event independently of the number of subscriptions.\n *\n * publishedInterval.subscribe();\n * // Nothing happens until you call .connect() on the observable.\n * ```\n *\n * @see {@link ConnectableObservable}\n * @see {@link share}\n * @see {@link publish}\n */\nexport function refCount<T>(): MonoTypeOperatorFunction<T> {\n  return function refCountOperatorFunction(source: ConnectableObservable<T>): Observable<T> {\n    return source.lift(new RefCountOperator(source));\n  } as MonoTypeOperatorFunction<T>;\n}\n\nclass RefCountOperator<T> implements Operator<T, T> {\n  constructor(private connectable: ConnectableObservable<T>) {\n  }\n  call(subscriber: Subscriber<T>, source: any): TeardownLogic {\n\n    const { connectable } = this;\n    (<any> connectable)._refCount++;\n\n    const refCounter = new RefCountSubscriber(subscriber, connectable);\n    const subscription = source.subscribe(refCounter);\n\n    if (!refCounter.closed) {\n      (<any> refCounter).connection = connectable.connect();\n    }\n\n    return subscription;\n  }\n}\n\nclass RefCountSubscriber<T> extends Subscriber<T> {\n\n  private connection: Subscription;\n\n  constructor(destination: Subscriber<T>,\n              private connectable: ConnectableObservable<T>) {\n    super(destination);\n  }\n\n  protected _unsubscribe() {\n\n    const { connectable } = this;\n    if (!connectable) {\n      this.connection = null;\n      return;\n    }\n\n    this.connectable = null;\n    const refCount = (<any> connectable)._refCount;\n    if (refCount <= 0) {\n      this.connection = null;\n      return;\n    }\n\n    (<any> connectable)._refCount = refCount - 1;\n    if (refCount > 1) {\n      this.connection = null;\n      return;\n    }\n\n    ///\n    // Compare the local RefCountSubscriber's connection Subscription to the\n    // connection Subscription on the shared ConnectableObservable. In cases\n    // where the ConnectableObservable source synchronously emits values, and\n    // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n    // execution continues to here before the RefCountOperator has a chance to\n    // supply the RefCountSubscriber with the shared connection Subscription.\n    // For example:\n    // ```\n    // range(0, 10).pipe(\n    //   publish(),\n    //   refCount(),\n    //   take(5),\n    // )\n    // .subscribe();\n    // ```\n    // In order to account for this case, RefCountSubscriber should only dispose\n    // the ConnectableObservable's shared connection Subscription if the\n    // connection Subscription exists, *and* either:\n    //   a. RefCountSubscriber doesn't have a reference to the shared connection\n    //      Subscription yet, or,\n    //   b. RefCountSubscriber's connection Subscription reference is identical\n    //      to the shared connection Subscription\n    ///\n    const { connection } = this;\n    const sharedConnection = (<any> connectable)._connection;\n    this.connection = null;\n\n    if (sharedConnection && (!connection || sharedConnection === connection)) {\n      sharedConnection.unsubscribe();\n    }\n  }\n}\n", "import { Subject, SubjectSubscriber } from '../Subject';\nimport { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { TeardownLogic } from '../types';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\n\n/**\n * @class ConnectableObservable<T>\n */\nexport class ConnectableObservable<T> extends Observable<T> {\n\n  protected _subject: Subject<T>;\n  protected _refCount: number = 0;\n  protected _connection: Subscription;\n  /** @internal */\n  _isComplete = false;\n\n  constructor(public source: Observable<T>,\n              protected subjectFactory: () => Subject<T>) {\n    super();\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _subscribe(subscriber: Subscriber<T>) {\n    return this.getSubject().subscribe(subscriber);\n  }\n\n  protected getSubject(): Subject<T> {\n    const subject = this._subject;\n    if (!subject || subject.isStopped) {\n      this._subject = this.subjectFactory();\n    }\n    return this._subject;\n  }\n\n  connect(): Subscription {\n    let connection = this._connection;\n    if (!connection) {\n      this._isComplete = false;\n      connection = this._connection = new Subscription();\n      connection.add(this.source\n        .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n      if (connection.closed) {\n        this._connection = null;\n        connection = Subscription.EMPTY;\n      }\n    }\n    return connection;\n  }\n\n  refCount(): Observable<T> {\n    return higherOrderRefCount()(this) as Observable<T>;\n  }\n}\n\nexport const connectableObservableDescriptor: PropertyDescriptorMap = (() => {\n  const connectableProto = <any>ConnectableObservable.prototype;\n  return {\n    operator: { value: null as null },\n    _refCount: { value: 0, writable: true },\n    _subject: { value: null as null, writable: true },\n    _connection: { value: null as null, writable: true },\n    _subscribe: { value: connectableProto._subscribe },\n    _isComplete: { value: connectableProto._isComplete, writable: true },\n    getSubject: { value: connectableProto.getSubject },\n    connect: { value: connectableProto.connect },\n    refCount: { value: connectableProto.refCount }\n  };\n})();\n\nclass ConnectableSubscriber<T> extends SubjectSubscriber<T> {\n  constructor(destination: Subject<T>,\n              private connectable: ConnectableObservable<T>) {\n    super(destination);\n  }\n  protected _error(err: any): void {\n    this._unsubscribe();\n    super._error(err);\n  }\n  protected _complete(): void {\n    this.connectable._isComplete = true;\n    this._unsubscribe();\n    super._complete();\n  }\n  protected _unsubscribe() {\n    const connectable = <any>this.connectable;\n    if (connectable) {\n      this.connectable = null;\n      const connection = connectable._connection;\n      connectable._refCount = 0;\n      connectable._subject = null;\n      connectable._connection = null;\n      if (connection) {\n        connection.unsubscribe();\n      }\n    }\n  }\n}\n\nclass RefCountOperator<T> implements Operator<T, T> {\n  constructor(private connectable: ConnectableObservable<T>) {\n  }\n  call(subscriber: Subscriber<T>, source: any): TeardownLogic {\n\n    const { connectable } = this;\n    (<any> connectable)._refCount++;\n\n    const refCounter = new RefCountSubscriber(subscriber, connectable);\n    const subscription = source.subscribe(refCounter);\n\n    if (!refCounter.closed) {\n      (<any> refCounter).connection = connectable.connect();\n    }\n\n    return subscription;\n  }\n}\n\nclass RefCountSubscriber<T> extends Subscriber<T> {\n\n  private connection: Subscription;\n\n  constructor(destination: Subscriber<T>,\n              private connectable: ConnectableObservable<T>) {\n    super(destination);\n  }\n\n  protected _unsubscribe() {\n\n    const { connectable } = this;\n    if (!connectable) {\n      this.connection = null;\n      return;\n    }\n\n    this.connectable = null;\n    const refCount = (<any> connectable)._refCount;\n    if (refCount <= 0) {\n      this.connection = null;\n      return;\n    }\n\n    (<any> connectable)._refCount = refCount - 1;\n    if (refCount > 1) {\n      this.connection = null;\n      return;\n    }\n\n    ///\n    // Compare the local RefCountSubscriber's connection Subscription to the\n    // connection Subscription on the shared ConnectableObservable. In cases\n    // where the ConnectableObservable source synchronously emits values, and\n    // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n    // execution continues to here before the RefCountOperator has a chance to\n    // supply the RefCountSubscriber with the shared connection Subscription.\n    // For example:\n    // ```\n    // range(0, 10).pipe(\n    //   publish(),\n    //   refCount(),\n    //   take(5),\n    // ).subscribe();\n    // ```\n    // In order to account for this case, RefCountSubscriber should only dispose\n    // the ConnectableObservable's shared connection Subscription if the\n    // connection Subscription exists, *and* either:\n    //   a. RefCountSubscriber doesn't have a reference to the shared connection\n    //      Subscription yet, or,\n    //   b. RefCountSubscriber's connection Subscription reference is identical\n    //      to the shared connection Subscription\n    ///\n    const { connection } = this;\n    const sharedConnection = (<any> connectable)._connection;\n    this.connection = null;\n\n    if (sharedConnection && (!connection || sharedConnection === connection)) {\n      sharedConnection.unsubscribe();\n    }\n  }\n}\n", "import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subject } from '../Subject';\nimport { OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function groupBy<T, K>(keySelector: (value: T) => K): OperatorFunction<T, GroupedObservable<K, T>>;\nexport function groupBy<T, K>(keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable<K, T>) => Observable<any>): OperatorFunction<T, GroupedObservable<K, T>>;\nexport function groupBy<T, K, R>(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>): OperatorFunction<T, GroupedObservable<K, R>>;\nexport function groupBy<T, K, R>(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>, subjectSelector?: () => Subject<R>): OperatorFunction<T, GroupedObservable<K, R>>;\n/* tslint:enable:max-line-length */\n\n/**\n * Groups the items emitted by an Observable according to a specified criterion,\n * and emits these grouped items as `GroupedObservables`, one\n * {@link GroupedObservable} per group.\n *\n * ![](groupBy.png)\n *\n * When the Observable emits an item, a key is computed for this item with the keySelector function.\n *\n * If a {@link GroupedObservable} for this key exists, this {@link GroupedObservable} emits. Elsewhere, a new\n * {@link GroupedObservable} for this key is created and emits.\n *\n * A {@link GroupedObservable} represents values belonging to the same group represented by a common key. The common\n * key is available as the key field of a {@link GroupedObservable} instance.\n *\n * The elements emitted by {@link GroupedObservable}s are by default the items emitted by the Observable, or elements\n * returned by the elementSelector function.\n *\n * ## Examples\n *\n * ### Group objects by id and return as array\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { mergeMap, groupBy, reduce } from 'rxjs/operators';\n *\n * of(\n *   {id: 1, name: 'JavaScript'},\n *   {id: 2, name: 'Parcel'},\n *   {id: 2, name: 'webpack'},\n *   {id: 1, name: 'TypeScript'},\n *   {id: 3, name: 'TSLint'}\n * ).pipe(\n *   groupBy(p => p.id),\n *   mergeMap((group$) => group$.pipe(reduce((acc, cur) => [...acc, cur], []))),\n * )\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // [ { id: 1, name: 'JavaScript'},\n * //   { id: 1, name: 'TypeScript'} ]\n * //\n * // [ { id: 2, name: 'Parcel'},\n * //   { id: 2, name: 'webpack'} ]\n * //\n * // [ { id: 3, name: 'TSLint'} ]\n * ```\n *\n * ### Pivot data on the id field\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { groupBy, map, mergeMap, reduce } from 'rxjs/operators';\n *\n * of(\n *   { id: 1, name: 'JavaScript' },\n *   { id: 2, name: 'Parcel' },\n *   { id: 2, name: 'webpack' },\n *   { id: 1, name: 'TypeScript' },\n *   { id: 3, name: 'TSLint' }\n * )\n *   .pipe(\n *     groupBy(p => p.id, p => p.name),\n *     mergeMap(group$ =>\n *       group$.pipe(reduce((acc, cur) => [...acc, cur], [`${group$.key}`]))\n *     ),\n *     map(arr => ({ id: parseInt(arr[0], 10), values: arr.slice(1) }))\n *  )\n *  .subscribe(p => console.log(p));\n *\n * // displays:\n * // { id: 1, values: [ 'JavaScript', 'TypeScript' ] }\n * // { id: 2, values: [ 'Parcel', 'webpack' ] }\n * // { id: 3, values: [ 'TSLint' ] }\n * ```\n *\n * @param {function(value: T): K} keySelector A function that extracts the key\n * for each item.\n * @param {function(value: T): R} [elementSelector] A function that extracts the\n * return element for each item.\n * @param {function(grouped: GroupedObservable<K,R>): Observable<any>} [durationSelector]\n * A function that returns an Observable to determine how long each group should\n * exist.\n * @return {Observable<GroupedObservable<K,R>>} An Observable that emits\n * GroupedObservables, each of which corresponds to a unique key value and each\n * of which emits those items from the source Observable that share that key\n * value.\n * @method groupBy\n * @owner Observable\n */\nexport function groupBy<T, K, R>(keySelector: (value: T) => K,\n                                 elementSelector?: ((value: T) => R) | void,\n                                 durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>,\n                                 subjectSelector?: () => Subject<R>): OperatorFunction<T, GroupedObservable<K, R>> {\n  return (source: Observable<T>) =>\n    source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n}\n\nexport interface RefCountSubscription {\n  count: number;\n  unsubscribe: () => void;\n  closed: boolean;\n  attemptedToUnsubscribe: boolean;\n}\n\nclass GroupByOperator<T, K, R> implements Operator<T, GroupedObservable<K, R>> {\n  constructor(private keySelector: (value: T) => K,\n              private elementSelector?: ((value: T) => R) | void,\n              private durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>,\n              private subjectSelector?: () => Subject<R>) {\n  }\n\n  call(subscriber: Subscriber<GroupedObservable<K, R>>, source: any): any {\n    return source.subscribe(new GroupBySubscriber(\n      subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector\n    ));\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass GroupBySubscriber<T, K, R> extends Subscriber<T> implements RefCountSubscription {\n  private groups: Map<K, Subject<T | R>> = null;\n  public attemptedToUnsubscribe: boolean = false;\n  public count: number = 0;\n\n  constructor(destination: Subscriber<GroupedObservable<K, R>>,\n              private keySelector: (value: T) => K,\n              private elementSelector?: ((value: T) => R) | void,\n              private durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>,\n              private subjectSelector?: () => Subject<R>) {\n    super(destination);\n  }\n\n  protected _next(value: T): void {\n    let key: K;\n    try {\n      key = this.keySelector(value);\n    } catch (err) {\n      this.error(err);\n      return;\n    }\n\n    this._group(value, key);\n  }\n\n  private _group(value: T, key: K) {\n    let groups = this.groups;\n\n    if (!groups) {\n      groups = this.groups = new Map<K, Subject<T | R>>();\n    }\n\n    let group = groups.get(key);\n\n    let element: R;\n    if (this.elementSelector) {\n      try {\n        element = this.elementSelector(value);\n      } catch (err) {\n        this.error(err);\n      }\n    } else {\n      element = <any>value;\n    }\n\n    if (!group) {\n      group = (this.subjectSelector ? this.subjectSelector() : new Subject<R>()) as Subject<T | R>;\n      groups.set(key, group);\n      const groupedObservable = new GroupedObservable(key, group, this);\n      this.destination.next(groupedObservable);\n      if (this.durationSelector) {\n        let duration: any;\n        try {\n          duration = this.durationSelector(new GroupedObservable<K, R>(key, <Subject<R>>group));\n        } catch (err) {\n          this.error(err);\n          return;\n        }\n        this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n      }\n    }\n\n    if (!group.closed) {\n      group.next(element);\n    }\n  }\n\n  protected _error(err: any): void {\n    const groups = this.groups;\n    if (groups) {\n      groups.forEach((group, key) => {\n        group.error(err);\n      });\n\n      groups.clear();\n    }\n    this.destination.error(err);\n  }\n\n  protected _complete(): void {\n    const groups = this.groups;\n    if (groups) {\n      groups.forEach((group, key) => {\n        group.complete();\n      });\n\n      groups.clear();\n    }\n    this.destination.complete();\n  }\n\n  removeGroup(key: K): void {\n    this.groups.delete(key);\n  }\n\n  unsubscribe() {\n    if (!this.closed) {\n      this.attemptedToUnsubscribe = true;\n      if (this.count === 0) {\n        super.unsubscribe();\n      }\n    }\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass GroupDurationSubscriber<K, T> extends Subscriber<T> {\n  constructor(private key: K,\n              private group: Subject<T>,\n              private parent: GroupBySubscriber<any, K, T | any>) {\n    super(group);\n  }\n\n  protected _next(value: T): void {\n    this.complete();\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _unsubscribe() {\n    const { parent, key } = this;\n    this.key = this.parent = null;\n    if (parent) {\n      parent.removeGroup(key);\n    }\n  }\n}\n\n/**\n * An Observable representing values belonging to the same group represented by\n * a common key. The values emitted by a GroupedObservable come from the source\n * Observable. The common key is available as the field `key` on a\n * GroupedObservable instance.\n *\n * @class GroupedObservable<K, T>\n */\nexport class GroupedObservable<K, T> extends Observable<T> {\n  /** @deprecated Do not construct this type. Internal use only */\n  constructor(public key: K,\n              private groupSubject: Subject<T>,\n              private refCountSubscription?: RefCountSubscription) {\n    super();\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _subscribe(subscriber: Subscriber<T>) {\n    const subscription = new Subscription();\n    const { refCountSubscription, groupSubject } = this;\n    if (refCountSubscription && !refCountSubscription.closed) {\n      subscription.add(new InnerRefCountSubscription(refCountSubscription));\n    }\n    subscription.add(groupSubject.subscribe(subscriber));\n    return subscription;\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass InnerRefCountSubscription extends Subscription {\n  constructor(private parent: RefCountSubscription) {\n    super();\n    parent.count++;\n  }\n\n  unsubscribe() {\n    const parent = this.parent;\n    if (!parent.closed && !this.closed) {\n      super.unsubscribe();\n      parent.count -= 1;\n      if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n        parent.unsubscribe();\n      }\n    }\n  }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { SubscriptionLike } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject<T>\n */\nexport class BehaviorSubject<T> extends Subject<T> {\n\n  constructor(private _value: T) {\n    super();\n  }\n\n  get value(): T {\n    return this.getValue();\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _subscribe(subscriber: Subscriber<T>): Subscription {\n    const subscription = super._subscribe(subscriber);\n    if (subscription && !(<SubscriptionLike>subscription).closed) {\n      subscriber.next(this._value);\n    }\n    return subscription;\n  }\n\n  getValue(): T {\n    if (this.hasError) {\n      throw this.thrownError;\n    } else if (this.closed) {\n      throw new ObjectUnsubscribedError();\n    } else {\n      return this._value;\n    }\n  }\n\n  next(value: T): void {\n    super.next(this._value = value);\n  }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n *   new (scheduler: Scheduler, work: (state?: T) => void);\n *   schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nexport class Action<T> extends Subscription {\n  constructor(scheduler: Scheduler, work: (this: SchedulerAction<T>, state?: T) => void) {\n    super();\n  }\n  /**\n   * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n   * some context object, `state`. May happen at some point in the future,\n   * according to the `delay` parameter, if specified.\n   * @param {T} [state] Some contextual data that the `work` function uses when\n   * called by the Scheduler.\n   * @param {number} [delay] Time to wait before executing the work, where the\n   * time unit is implicit and defined by the Scheduler.\n   * @return {void}\n   */\n  public schedule(state?: T, delay: number = 0): Subscription {\n    return this;\n  }\n}\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AsyncAction<T> extends Action<T> {\n\n  public id: any;\n  public state: T;\n  public delay: number;\n  protected pending: boolean = false;\n\n  constructor(protected scheduler: AsyncScheduler,\n              protected work: (this: SchedulerAction<T>, state?: T) => void) {\n    super(scheduler, work);\n  }\n\n  public schedule(state?: T, delay: number = 0): Subscription {\n\n    if (this.closed) {\n      return this;\n    }\n\n    // Always replace the current state with the new state.\n    this.state = state;\n\n    const id = this.id;\n    const scheduler = this.scheduler;\n\n    //\n    // Important implementation note:\n    //\n    // Actions only execute once by default, unless rescheduled from within the\n    // scheduled callback. This allows us to implement single and repeat\n    // actions via the same code path, without adding API surface area, as well\n    // as mimic traditional recursion but across asynchronous boundaries.\n    //\n    // However, JS runtimes and timers distinguish between intervals achieved by\n    // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n    // serial `setTimeout` calls can be individually delayed, which delays\n    // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n    // guarantee the interval callback will be invoked more precisely to the\n    // interval period, regardless of load.\n    //\n    // Therefore, we use `setInterval` to schedule single and repeat actions.\n    // If the action reschedules itself with the same delay, the interval is not\n    // canceled. If the action doesn't reschedule, or reschedules with a\n    // different delay, the interval will be canceled after scheduled callback\n    // execution.\n    //\n    if (id != null) {\n      this.id = this.recycleAsyncId(scheduler, id, delay);\n    }\n\n    // Set the pending flag indicating that this action has been scheduled, or\n    // has recursively rescheduled itself.\n    this.pending = true;\n\n    this.delay = delay;\n    // If this action has already an async Id, don't request a new one.\n    this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n\n    return this;\n  }\n\n  protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay: number = 0): any {\n    return setInterval(scheduler.flush.bind(scheduler, this), delay);\n  }\n\n  protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay: number = 0): any {\n    // If this action is rescheduled with the same delay time, don't clear the interval id.\n    if (delay !== null && this.delay === delay && this.pending === false) {\n      return id;\n    }\n    // Otherwise, if the action's delay time is different from the current delay,\n    // or the action has been rescheduled before it's executed, clear the interval id\n    clearInterval(id);\n    return undefined;\n  }\n\n  /**\n   * Immediately executes this action and the `work` it contains.\n   * @return {any}\n   */\n  public execute(state: T, delay: number): any {\n\n    if (this.closed) {\n      return new Error('executing a cancelled action');\n    }\n\n    this.pending = false;\n    const error = this._execute(state, delay);\n    if (error) {\n      return error;\n    } else if (this.pending === false && this.id != null) {\n      // Dequeue if the action didn't reschedule itself. Don't call\n      // unsubscribe(), because the action could reschedule later.\n      // For example:\n      // ```\n      // scheduler.schedule(function doWork(counter) {\n      //   /* ... I'm a busy worker bee ... */\n      //   var originalAction = this;\n      //   /* wait 100ms before rescheduling the action */\n      //   setTimeout(function () {\n      //     originalAction.schedule(counter + 1);\n      //   }, 100);\n      // }, 1000);\n      // ```\n      this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n    }\n  }\n\n  protected _execute(state: T, delay: number): any {\n    let errored: boolean = false;\n    let errorValue: any = undefined;\n    try {\n      this.work(state);\n    } catch (e) {\n      errored = true;\n      errorValue = !!e && e || new Error(e);\n    }\n    if (errored) {\n      this.unsubscribe();\n      return errorValue;\n    }\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _unsubscribe() {\n\n    const id = this.id;\n    const scheduler = this.scheduler;\n    const actions = scheduler.actions;\n    const index = actions.indexOf(this);\n\n    this.work  = null;\n    this.state = null;\n    this.pending = false;\n    this.scheduler = null;\n\n    if (index !== -1) {\n      actions.splice(index, 1);\n    }\n\n    if (id != null) {\n      this.id = this.recycleAsyncId(scheduler, id, null);\n    }\n\n    this.delay = null;\n  }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class QueueAction<T> extends AsyncAction<T> {\n\n  constructor(protected scheduler: QueueScheduler,\n              protected work: (this: SchedulerAction<T>, state?: T) => void) {\n    super(scheduler, work);\n  }\n\n  public schedule(state?: T, delay: number = 0): Subscription {\n    if (delay > 0) {\n      return super.schedule(state, delay);\n    }\n    this.delay = delay;\n    this.state = state;\n    this.scheduler.flush(this);\n    return this;\n  }\n\n  public execute(state: T, delay: number): any {\n    return (delay > 0 || this.closed) ?\n      super.execute(state, delay) :\n      this._execute(state, delay) ;\n  }\n\n  protected requestAsyncId(scheduler: QueueScheduler, id?: any, delay: number = 0): any {\n    // If delay exists and is greater than 0, or if the delay is null (the\n    // action wasn't rescheduled) but was originally scheduled as an async\n    // action, then recycle as an async action.\n    if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n      return super.requestAsyncId(scheduler, id, delay);\n    }\n    // Otherwise flush the scheduler starting with this action.\n    return scheduler.flush(this);\n  }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n *   now(): number;\n *   schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}\n */\nexport class Scheduler implements SchedulerLike {\n\n  /**\n   * Note: the extra arrow function wrapper is to make testing by overriding\n   * Date.now easier.\n   * @nocollapse\n   */\n  public static now: () => number = () => Date.now();\n\n  constructor(private SchedulerAction: typeof Action,\n              now: () => number = Scheduler.now) {\n    this.now = now;\n  }\n\n  /**\n   * A getter method that returns a number representing the current time\n   * (at the time this function was called) according to the scheduler's own\n   * internal clock.\n   * @return {number} A number that represents the current time. May or may not\n   * have a relation to wall-clock time. May or may not refer to a time unit\n   * (e.g. milliseconds).\n   */\n  public now: () => number;\n\n  /**\n   * Schedules a function, `work`, for execution. May happen at some point in\n   * the future, according to the `delay` parameter, if specified. May be passed\n   * some context object, `state`, which will be passed to the `work` function.\n   *\n   * The given arguments will be processed an stored as an Action object in a\n   * queue of actions.\n   *\n   * @param {function(state: ?T): ?Subscription} work A function representing a\n   * task, or some unit of work to be executed by the Scheduler.\n   * @param {number} [delay] Time to wait before executing the work, where the\n   * time unit is implicit and defined by the Scheduler itself.\n   * @param {T} [state] Some contextual data that the `work` function uses when\n   * called by the Scheduler.\n   * @return {Subscription} A subscription in order to be able to unsubscribe\n   * the scheduled work.\n   */\n  public schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription {\n    return new this.SchedulerAction<T>(this, work).schedule(state, delay);\n  }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport class AsyncScheduler extends Scheduler {\n  public static delegate?: Scheduler;\n  public actions: Array<AsyncAction<any>> = [];\n  /**\n   * A flag to indicate whether the Scheduler is currently executing a batch of\n   * queued actions.\n   * @type {boolean}\n   * @deprecated internal use only\n   */\n  public active: boolean = false;\n  /**\n   * An internal ID used to track the latest asynchronous task such as those\n   * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n   * others.\n   * @type {any}\n   * @deprecated internal use only\n   */\n  public scheduled: any = undefined;\n\n  constructor(SchedulerAction: typeof Action,\n              now: () => number = Scheduler.now) {\n    super(SchedulerAction, () => {\n      if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n        return AsyncScheduler.delegate.now();\n      } else {\n        return now();\n      }\n    });\n  }\n\n  public schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription {\n    if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n      return AsyncScheduler.delegate.schedule(work, delay, state);\n    } else {\n      return super.schedule(work, delay, state);\n    }\n  }\n\n  public flush(action: AsyncAction<any>): void {\n\n    const {actions} = this;\n\n    if (this.active) {\n      actions.push(action);\n      return;\n    }\n\n    let error: any;\n    this.active = true;\n\n    do {\n      if (error = action.execute(action.state, action.delay)) {\n        break;\n      }\n    } while (action = actions.shift()); // exhaust the scheduler queue\n\n    this.active = false;\n\n    if (error) {\n      while (action = actions.shift()) {\n        action.unsubscribe();\n      }\n      throw error;\n    }\n  }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * <span class=\"informal\">Put every next task on a queue, instead of executing it immediately</span>\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n *   queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n *   console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n *   if (state !== 0) {\n *     console.log('before', state);\n *     this.schedule(state - 1); // `this` references currently executing Action,\n *                               // which we reschedule with new state\n *     console.log('after', state);\n *   }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated renamed. Use {@link queueScheduler}\n */\nexport const queue = queueScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * The same Observable instance returned by any call to {@link empty} without a\n * `scheduler`. It is preferrable to use this over `empty()`.\n */\nexport const EMPTY = new Observable<never>(subscriber => subscriber.complete());\n\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * <span class=\"informal\">Just emits 'complete', and nothing else.\n * </span>\n *\n * ![](empty.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the complete notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then complete\n * ```ts\n * import { empty } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * const result = empty().pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * ### Map and flatten only odd numbers to the sequence 'a', 'b', 'c'\n * ```ts\n * import { empty, interval, of } from 'rxjs';\n * import { mergeMap } from 'rxjs/operators';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n *   mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : empty()),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval eg(0,1,2,3,...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1 print abc\n * // if x % 2 is not equal to 1 nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link never}\n * @see {@link of}\n * @see {@link throwError}\n *\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @return An \"empty\" Observable: emits only the complete\n * notification.\n * @deprecated Deprecated in favor of using {@link EMPTY} constant, or {@link scheduled} (e.g. `scheduled([], scheduler)`)\n */\nexport function empty(scheduler?: SchedulerLike) {\n  return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n  return new Observable<never>(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n  return value && typeof (<any>value).schedule === 'function';\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Subscribes to an ArrayLike with a subscriber\n * @param array The array or array-like to subscribe to\n */\nexport const subscribeToArray = <T>(array: ArrayLike<T>) => (subscriber: Subscriber<T>) => {\n  for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n    subscriber.next(array[i]);\n  }\n  subscriber.complete();\n};\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike) {\n  return new Observable<T>(subscriber => {\n    const sub = new Subscription();\n    let i = 0;\n    sub.add(scheduler.schedule(function () {\n      if (i === input.length) {\n        subscriber.complete();\n        return;\n      }\n      subscriber.next(input[i++]);\n      if (!subscriber.closed) {\n        sub.add(this.schedule());\n      }\n    }));\n    return sub;\n  });\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\n\nexport function fromArray<T>(input: ArrayLike<T>, scheduler?: SchedulerLike) {\n  if (!scheduler) {\n    return new Observable<T>(subscribeToArray(input));\n  } else {\n    return scheduleArray(input, scheduler);\n  }\n}\n", "import { SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { Observable } from '../Observable';\nimport { scheduleArray } from '../scheduled/scheduleArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of<T>(a: T, scheduler: SchedulerLike): Observable<T>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of<T, T2>(a: T, b: T2, scheduler: SchedulerLike): Observable<T | T2>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of<T, T2, T3>(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable<T | T2 | T3>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike):\n  Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike):\n  Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike):\n  Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;\nexport function of<T>(...args: (T | SchedulerLike)[]): Observable<T>;\n\n// TODO(benlesh): Update the typings for this when we can switch to TS 3.x\nexport function of<T>(a: T): Observable<T>;\nexport function of<T, T2>(a: T, b: T2): Observable<T | T2>;\nexport function of<T, T2, T3>(a: T, b: T2, c: T3): Observable<T | T2 | T3>;\nexport function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4): Observable<T | T2 | T3 | T4>;\nexport function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5): Observable<T | T2 | T3 | T4 | T5>;\nexport function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable<T | T2 | T3 | T4 | T5 | T6>;\nexport function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7):\n  Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;\nexport function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8):\n  Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;\nexport function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9):\n  Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;\nexport function of<T>(...args: T[]): Observable<T>;\n/* tslint:enable:max-line-length */\n\n/**\n * Converts the arguments to an observable sequence.\n *\n * <span class=\"informal\">Each argument becomes a `next` notification.</span>\n *\n * ![](of.png)\n *\n * Unlike {@link from}, it does not do any flattening and emits each argument in whole\n * as a separate `next` notification.\n *\n * ## Examples\n *\n * Emit the values `10, 20, 30`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of(10, 20, 30)\n * .subscribe(\n *   next => console.log('next:', next),\n *   err => console.log('error:', err),\n *   () => console.log('the end'),\n * );\n * // result:\n * // 'next: 10'\n * // 'next: 20'\n * // 'next: 30'\n *\n * ```\n *\n * Emit the array `[1,2,3]`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of([1,2,3])\n * .subscribe(\n *   next => console.log('next:', next),\n *   err => console.log('error:', err),\n *   () => console.log('the end'),\n * );\n * // result:\n * // 'next: [1,2,3]'\n * ```\n *\n * @see {@link from}\n * @see {@link range}\n *\n * @param {...T} values A comma separated list of arguments you want to be emitted\n * @return {Observable} An Observable that emits the arguments\n * described above and then completes.\n * @method of\n * @owner Observable\n */\n\nexport function of<T>(...args: Array<T | SchedulerLike>): Observable<T> {\n  let scheduler = args[args.length - 1] as SchedulerLike;\n  if (isScheduler(scheduler)) {\n    args.pop();\n    return scheduleArray(args as T[], scheduler);\n  } else {\n    return fromArray(args as T[]);\n  }\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits an error notification.\n *\n * <span class=\"informal\">Just emits 'error', and nothing else.\n * </span>\n *\n * ![](throw.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the error notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then emit an error\n * ```ts\n * import { throwError, concat, of } from 'rxjs';\n *\n * const result = concat(of(7), throwError(new Error('oops!')));\n * result.subscribe(x => console.log(x), e => console.error(e));\n *\n * // Logs:\n * // 7\n * // Error: oops!\n * ```\n *\n * ---\n *\n * ### Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 2\n * ```ts\n * import { throwError, interval, of } from 'rxjs';\n * import { mergeMap } from 'rxjs/operators';\n *\n * interval(1000).pipe(\n *   mergeMap(x => x === 2\n *     ? throwError('Twos are bad')\n *     : of('a', 'b', 'c')\n *   ),\n * ).subscribe(x => console.log(x), e => console.error(e));\n *\n * // Logs:\n * // a\n * // b\n * // c\n * // a\n * // b\n * // c\n * // Twos are bad\n * ```\n *\n * @see {@link Observable}\n * @see {@link empty}\n * @see {@link never}\n * @see {@link of}\n *\n * @param {any} error The particular Error to pass to the error notification.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emission of the error notification.\n * @return {Observable} An error Observable: emits only the error notification\n * using the given error argument.\n * @static true\n * @name throwError\n * @owner Observable\n */\nexport function throwError(error: any, scheduler?: SchedulerLike): Observable<never> {\n  if (!scheduler) {\n    return new Observable(subscriber => subscriber.error(error));\n  } else {\n    return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n  }\n}\n\ninterface DispatchArg {\n  error: any;\n  subscriber: Subscriber<any>;\n}\n\nfunction dispatch({ error, subscriber }: DispatchArg) {\n  subscriber.error(error);\n}\n", "import { PartialObserver } from './types';\nimport { Observable } from './Observable';\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nimport { deprecate } from 'util';\n\n// TODO: When this enum is removed, replace it with a type alias. See #4556.\n/**\n * @deprecated NotificationKind is deprecated as const enums are not compatible with isolated modules. Use a string literal instead.\n */\nexport enum NotificationKind {\n  NEXT = 'N',\n  ERROR = 'E',\n  COMPLETE = 'C',\n}\n\n/**\n * Represents a push-based event or value that an {@link Observable} can emit.\n * This class is particularly useful for operators that manage notifications,\n * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and\n * others. Besides wrapping the actual delivered value, it also annotates it\n * with metadata of, for instance, what type of push message it is (`next`,\n * `error`, or `complete`).\n *\n * @see {@link materialize}\n * @see {@link dematerialize}\n * @see {@link observeOn}\n *\n * @class Notification<T>\n */\nexport class Notification<T> {\n  hasValue: boolean;\n\n  constructor(public kind: 'N' | 'E' | 'C', public value?: T, public error?: any) {\n    this.hasValue = kind === 'N';\n  }\n\n  /**\n   * Delivers to the given `observer` the value wrapped by this Notification.\n   * @param {Observer} observer\n   * @return\n   */\n  observe(observer: PartialObserver<T>): any {\n    switch (this.kind) {\n      case 'N':\n        return observer.next && observer.next(this.value);\n      case 'E':\n        return observer.error && observer.error(this.error);\n      case 'C':\n        return observer.complete && observer.complete();\n    }\n  }\n\n  /**\n   * Given some {@link Observer} callbacks, deliver the value represented by the\n   * current Notification to the correctly corresponding callback.\n   * @param {function(value: T): void} next An Observer `next` callback.\n   * @param {function(err: any): void} [error] An Observer `error` callback.\n   * @param {function(): void} [complete] An Observer `complete` callback.\n   * @return {any}\n   */\n  do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any {\n    const kind = this.kind;\n    switch (kind) {\n      case 'N':\n        return next && next(this.value);\n      case 'E':\n        return error && error(this.error);\n      case 'C':\n        return complete && complete();\n    }\n  }\n\n  /**\n   * Takes an Observer or its individual callback functions, and calls `observe`\n   * or `do` methods accordingly.\n   * @param {Observer|function(value: T): void} nextOrObserver An Observer or\n   * the `next` callback.\n   * @param {function(err: any): void} [error] An Observer `error` callback.\n   * @param {function(): void} [complete] An Observer `complete` callback.\n   * @return {any}\n   */\n  accept(nextOrObserver: PartialObserver<T> | ((value: T) => void), error?: (err: any) => void, complete?: () => void) {\n    if (nextOrObserver && typeof (<PartialObserver<T>>nextOrObserver).next === 'function') {\n      return this.observe(<PartialObserver<T>>nextOrObserver);\n    } else {\n      return this.do(<(value: T) => void>nextOrObserver, error, complete);\n    }\n  }\n\n  /**\n   * Returns a simple Observable that just delivers the notification represented\n   * by this Notification instance.\n   * @return {any}\n   */\n  toObservable(): Observable<T> {\n    const kind = this.kind;\n    switch (kind) {\n      case 'N':\n        return of(this.value);\n      case 'E':\n        return throwError(this.error);\n      case 'C':\n        return empty();\n    }\n    throw new Error('unexpected notification kind value');\n  }\n\n  private static completeNotification: Notification<any> = new Notification('C');\n  private static undefinedValueNotification: Notification<any> = new Notification('N', undefined);\n\n  /**\n   * A shortcut to create a Notification instance of the type `next` from a\n   * given value.\n   * @param {T} value The `next` value.\n   * @return {Notification<T>} The \"next\" Notification representing the\n   * argument.\n   * @nocollapse\n   */\n  static createNext<T>(value: T): Notification<T> {\n    if (typeof value !== 'undefined') {\n      return new Notification('N', value);\n    }\n    return Notification.undefinedValueNotification;\n  }\n\n  /**\n   * A shortcut to create a Notification instance of the type `error` from a\n   * given error.\n   * @param {any} [err] The `error` error.\n   * @return {Notification<T>} The \"error\" Notification representing the\n   * argument.\n   * @nocollapse\n   */\n  static createError<T>(err?: any): Notification<T> {\n    return new Notification('E', undefined, err);\n  }\n\n  /**\n   * A shortcut to create a Notification instance of the type `complete`.\n   * @return {Notification<any>} The valueless \"complete\" Notification.\n   * @nocollapse\n   */\n  static createComplete(): Notification<any> {\n    return Notification.completeNotification;\n  }\n}\n", "import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Notification } from '../Notification';\nimport { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n *\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * <span class=\"informal\">Ensure a specific scheduler is used, from outside of an Observable.</span>\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * ## Example\n * Ensure values in subscribe are called just before browser repaint.\n * ```ts\n * import { interval } from 'rxjs';\n * import { observeOn } from 'rxjs/operators';\n *\n * const intervals = interval(10);                // Intervals are scheduled\n *                                                // with async scheduler by default...\n * intervals.pipe(\n *   observeOn(animationFrameScheduler),          // ...but we will observe on animationFrame\n * )                                              // scheduler to ensure smooth animation.\n * .subscribe(val => {\n *   someDiv.style.height = val + 'px';\n * });\n * ```\n *\n * @see {@link delay}\n *\n * @param {SchedulerLike} scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return {Observable<T>} Observable that emits the same notifications as the source Observable,\n * but with provided scheduler.\n *\n * @method observeOn\n * @owner Observable\n */\nexport function observeOn<T>(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction<T> {\n  return function observeOnOperatorFunction(source: Observable<T>): Observable<T> {\n    return source.lift(new ObserveOnOperator(scheduler, delay));\n  };\n}\n\nexport class ObserveOnOperator<T> implements Operator<T, T> {\n  constructor(private scheduler: SchedulerLike, private delay: number = 0) {\n  }\n\n  call(subscriber: Subscriber<T>, source: any): TeardownLogic {\n    return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ObserveOnSubscriber<T> extends Subscriber<T> {\n  /** @nocollapse */\n  static dispatch(this: SchedulerAction<ObserveOnMessage>, arg: ObserveOnMessage) {\n    const { notification, destination } = arg;\n    notification.observe(destination);\n    this.unsubscribe();\n  }\n\n  constructor(destination: Subscriber<T>,\n              private scheduler: SchedulerLike,\n              private delay: number = 0) {\n    super(destination);\n  }\n\n  private scheduleMessage(notification: Notification<any>): void {\n    const destination = this.destination as Subscription;\n    destination.add(this.scheduler.schedule(\n      ObserveOnSubscriber.dispatch,\n      this.delay,\n      new ObserveOnMessage(notification, this.destination)\n    ));\n  }\n\n  protected _next(value: T): void {\n    this.scheduleMessage(Notification.createNext(value));\n  }\n\n  protected _error(err: any): void {\n    this.scheduleMessage(Notification.createError(err));\n    this.unsubscribe();\n  }\n\n  protected _complete(): void {\n    this.scheduleMessage(Notification.createComplete());\n    this.unsubscribe();\n  }\n}\n\nexport class ObserveOnMessage {\n  constructor(public notification: Notification<any>,\n              public destination: PartialObserver<any>) {\n  }\n}\n", "import { Subject } from './Subject';\nimport { SchedulerLike } from './types';\nimport { queue } from './scheduler/queue';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\n/**\n * A variant of Subject that \"replays\" or emits old values to new subscribers.\n * It buffers a set number of values and will emit those values immediately to\n * any new subscribers in addition to emitting new values to existing subscribers.\n *\n * @class ReplaySubject<T>\n */\nexport class ReplaySubject<T> extends Subject<T> {\n  private _events: (ReplayEvent<T> | T)[] = [];\n  private _bufferSize: number;\n  private _windowTime: number;\n  private _infiniteTimeWindow: boolean = false;\n\n  constructor(bufferSize: number = Number.POSITIVE_INFINITY,\n              windowTime: number = Number.POSITIVE_INFINITY,\n              private scheduler?: SchedulerLike) {\n    super();\n    this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n    this._windowTime = windowTime < 1 ? 1 : windowTime;\n\n    if (windowTime === Number.POSITIVE_INFINITY) {\n      this._infiniteTimeWindow = true;\n      this.next = this.nextInfiniteTimeWindow;\n    } else {\n      this.next = this.nextTimeWindow;\n    }\n  }\n\n  private nextInfiniteTimeWindow(value: T): void {\n    if (!this.isStopped) {\n      const _events = this._events;\n      _events.push(value);\n      // Since this method is invoked in every next() call than the buffer\n      // can overgrow the max size only by one item\n      if (_events.length > this._bufferSize) {\n        _events.shift();\n      }\n    }\n    super.next(value);\n  }\n\n  private nextTimeWindow(value: T): void {\n    if (!this.isStopped) {\n      this._events.push(new ReplayEvent(this._getNow(), value));\n      this._trimBufferThenGetEvents();\n    }\n    super.next(value);\n  }\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _subscribe(subscriber: Subscriber<T>): Subscription {\n    // When `_infiniteTimeWindow === true` then the buffer is already trimmed\n    const _infiniteTimeWindow = this._infiniteTimeWindow;\n    const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n    const scheduler = this.scheduler;\n    const len = _events.length;\n    let subscription: Subscription;\n\n    if (this.closed) {\n      throw new ObjectUnsubscribedError();\n    } else if (this.isStopped || this.hasError) {\n      subscription = Subscription.EMPTY;\n    } else {\n      this.observers.push(subscriber);\n      subscription = new SubjectSubscription(this, subscriber);\n    }\n\n    if (scheduler) {\n      subscriber.add(subscriber = new ObserveOnSubscriber<T>(subscriber, scheduler));\n    }\n\n    if (_infiniteTimeWindow) {\n      for (let i = 0; i < len && !subscriber.closed; i++) {\n        subscriber.next(<T>_events[i]);\n      }\n    } else {\n      for (let i = 0; i < len && !subscriber.closed; i++) {\n        subscriber.next((<ReplayEvent<T>>_events[i]).value);\n      }\n    }\n\n    if (this.hasError) {\n      subscriber.error(this.thrownError);\n    } else if (this.isStopped) {\n      subscriber.complete();\n    }\n\n    return subscription;\n  }\n\n  _getNow(): number {\n    return (this.scheduler || queue).now();\n  }\n\n  private _trimBufferThenGetEvents(): ReplayEvent<T>[] {\n    const now = this._getNow();\n    const _bufferSize = this._bufferSize;\n    const _windowTime = this._windowTime;\n    const _events = <ReplayEvent<T>[]>this._events;\n\n    const eventsCount = _events.length;\n    let spliceCount = 0;\n\n    // Trim events that fall out of the time window.\n    // Start at the front of the list. Break early once\n    // we encounter an event that falls within the window.\n    while (spliceCount < eventsCount) {\n      if ((now - _events[spliceCount].time) < _windowTime) {\n        break;\n      }\n      spliceCount++;\n    }\n\n    if (eventsCount > _bufferSize) {\n      spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n    }\n\n    if (spliceCount > 0) {\n      _events.splice(0, spliceCount);\n    }\n\n    return _events;\n  }\n\n}\n\nclass ReplayEvent<T> {\n  constructor(public time: number, public value: T) {\n  }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that only emits a value when it completes. It will emit\n * its latest value to all its observers on completion.\n *\n * @class AsyncSubject<T>\n */\nexport class AsyncSubject<T> extends Subject<T> {\n  private value: T = null;\n  private hasNext: boolean = false;\n  private hasCompleted: boolean = false;\n\n  /** @deprecated This is an internal implementation detail, do not use. */\n  _subscribe(subscriber: Subscriber<any>): Subscription {\n    if (this.hasError) {\n      subscriber.error(this.thrownError);\n      return Subscription.EMPTY;\n    } else if (this.hasCompleted && this.hasNext) {\n      subscriber.next(this.value);\n      subscriber.complete();\n      return Subscription.EMPTY;\n    }\n    return super._subscribe(subscriber);\n  }\n\n  next(value: T): void {\n    if (!this.hasCompleted) {\n      this.value = value;\n      this.hasNext = true;\n    }\n  }\n\n  error(error: any): void {\n    if (!this.hasCompleted) {\n      super.error(error);\n    }\n  }\n\n  complete(): void {\n    this.hasCompleted = true;\n    if (this.hasNext) {\n      super.next(this.value);\n    }\n    super.complete();\n  }\n}\n", "let nextHandle = 1;\nconst RESOLVED = (() => Promise.resolve())();\nconst activeHandles: { [key: number]: any } = {};\n\n/**\n * Finds the handle in the list of active handles, and removes it.\n * Returns `true` if found, `false` otherwise. Used both to clear\n * Immediate scheduled tasks, and to identify if a task should be scheduled.\n */\nfunction findAndClearHandle(handle: number): boolean {\n  if (handle in activeHandles) {\n    delete activeHandles[handle];\n    return true;\n  }\n  return false;\n}\n\n/**\n * Helper functions to schedule and unschedule microtasks.\n */\nexport const Immediate = {\n  setImmediate(cb: () => void): number {\n    const handle = nextHandle++;\n    activeHandles[handle] = true;\n    RESOLVED.then(() => findAndClearHandle(handle) && cb());\n    return handle;\n  },\n\n  clearImmediate(handle: number): void {\n    findAndClearHandle(handle);\n  },\n};\n\n/**\n * Used for internal testing purposes only. Do not export from library.\n */\nexport const TestTools = {\n  pending() {\n    return Object.keys(activeHandles).length;\n  }\n};\n", "import { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nimport { AsapScheduler } from './AsapScheduler';\nimport { SchedulerAction } from '../types';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AsapAction<T> extends AsyncAction<T> {\n\n  constructor(protected scheduler: AsapScheduler,\n              protected work: (this: SchedulerAction<T>, state?: T) => void) {\n    super(scheduler, work);\n  }\n\n  protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\n    // If delay is greater than 0, request as an async action.\n    if (delay !== null && delay > 0) {\n      return super.requestAsyncId(scheduler, id, delay);\n    }\n    // Push the action to the end of the scheduler queue.\n    scheduler.actions.push(this);\n    // If a microtask has already been scheduled, don't schedule another\n    // one. If a microtask hasn't been scheduled yet, schedule one now. Return\n    // the current scheduled microtask id.\n    return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(\n      scheduler.flush.bind(scheduler, null)\n    ));\n  }\n  protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\n    // If delay exists and is greater than 0, or if the delay is null (the\n    // action wasn't rescheduled) but was originally scheduled as an async\n    // action, then recycle as an async action.\n    if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n      return super.recycleAsyncId(scheduler, id, delay);\n    }\n    // If the scheduler queue is empty, cancel the requested microtask and\n    // set the scheduled flag to undefined so the next AsapAction will schedule\n    // its own.\n    if (scheduler.actions.length === 0) {\n      Immediate.clearImmediate(id);\n      scheduler.scheduled = undefined;\n    }\n    // Return undefined so the action knows to request a new async id if it's rescheduled.\n    return undefined;\n  }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AsapScheduler extends AsyncScheduler {\n  public flush(action?: AsyncAction<any>): void {\n\n    this.active = true;\n    this.scheduled = undefined;\n\n    const {actions} = this;\n    let error: any;\n    let index: number = -1;\n    let count: number = actions.length;\n    action = action || actions.shift();\n\n    do {\n      if (error = action.execute(action.state, action.delay)) {\n        break;\n      }\n    } while (++index < count && (action = actions.shift()));\n\n    this.active = false;\n\n    if (error) {\n      while (++index < count && (action = actions.shift())) {\n        action.unsubscribe();\n      }\n      throw error;\n    }\n  }\n}\n", "import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\n\n/**\n *\n * Asap Scheduler\n *\n * <span class=\"informal\">Perform task as fast as it can be performed asynchronously</span>\n *\n * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task\n * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing\n * code to end and then it will try to execute given task as fast as possible.\n *\n * `asap` scheduler will do its best to minimize time between end of currently executing code\n * and start of scheduled task. This makes it best candidate for performing so called \"deferring\".\n * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves\n * some (although minimal) unwanted delay.\n *\n * Note that using `asap` scheduler does not necessarily mean that your task will be first to process\n * after currently executing code. In particular, if some task was also scheduled with `asap` before,\n * that task will execute first. That being said, if you need to schedule task asynchronously, but\n * as soon as possible, `asap` scheduler is your best bet.\n *\n * ## Example\n * Compare async and asap scheduler<\n * ```ts\n * import { asapScheduler, asyncScheduler } from 'rxjs';\n *\n * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first...\n * asapScheduler.schedule(() => console.log('asap'));\n *\n * // Logs:\n * // \"asap\"\n * // \"async\"\n * // ... but 'asap' goes first!\n * ```\n */\nexport const asapScheduler = new AsapScheduler(AsapAction);\n\n/**\n * @deprecated renamed. Use {@link asapScheduler}\n */\nexport const asap = asapScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * <span class=\"informal\">Schedule task as if you used setTimeout(task, duration)</span>\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n *   console.log(state);\n *   this.schedule(state + 1, 1000); // `this` references currently executing Action,\n *                                   // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated renamed. Use {@link asyncScheduler}\n */\nexport const async = asyncScheduler;", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AnimationFrameAction<T> extends AsyncAction<T> {\n\n  constructor(protected scheduler: AnimationFrameScheduler,\n              protected work: (this: SchedulerAction<T>, state?: T) => void) {\n    super(scheduler, work);\n  }\n\n  protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {\n    // If delay is greater than 0, request as an async action.\n    if (delay !== null && delay > 0) {\n      return super.requestAsyncId(scheduler, id, delay);\n    }\n    // Push the action to the end of the scheduler queue.\n    scheduler.actions.push(this);\n    // If an animation frame has already been requested, don't request another\n    // one. If an animation frame hasn't been requested yet, request one. Return\n    // the current animation frame request id.\n    return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(\n      () => scheduler.flush(null)));\n  }\n  protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {\n    // If delay exists and is greater than 0, or if the delay is null (the\n    // action wasn't rescheduled) but was originally scheduled as an async\n    // action, then recycle as an async action.\n    if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n      return super.recycleAsyncId(scheduler, id, delay);\n    }\n    // If the scheduler queue is empty, cancel the requested animation frame and\n    // set the scheduled flag to undefined so the next AnimationFrameAction will\n    // request its own.\n    if (scheduler.actions.length === 0) {\n      cancelAnimationFrame(id);\n      scheduler.scheduled = undefined;\n    }\n    // Return undefined so the action knows to request a new async id if it's rescheduled.\n    return undefined;\n  }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n  public flush(action?: AsyncAction<any>): void {\n\n    this.active = true;\n    this.scheduled = undefined;\n\n    const {actions} = this;\n    let error: any;\n    let index: number = -1;\n    let count: number = actions.length;\n    action = action || actions.shift();\n\n    do {\n      if (error = action.execute(action.state, action.delay)) {\n        break;\n      }\n    } while (++index < count && (action = actions.shift()));\n\n    this.active = false;\n\n    if (error) {\n      while (++index < count && (action = actions.shift())) {\n        action.unsubscribe();\n      }\n      throw error;\n    }\n  }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * <span class=\"informal\">Perform task when `window.requestAnimationFrame` would fire</span>\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html: <div style=\"background: #0ff;\"></div>\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n *   div.style.height = height + \"px\";\n *\n *   this.schedule(height + 1);  // `this` references currently executing Action,\n *                               // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated renamed. Use {@link animationFrameScheduler}\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { SchedulerAction } from '../types';\n\nexport class VirtualTimeScheduler extends AsyncScheduler {\n\n  protected static frameTimeFactor: number = 10;\n\n  public frame: number = 0;\n  public index: number = -1;\n\n  constructor(SchedulerAction: typeof AsyncAction = VirtualAction as any,\n              public maxFrames: number = Number.POSITIVE_INFINITY) {\n    super(SchedulerAction, () => this.frame);\n  }\n\n  /**\n   * Prompt the Scheduler to execute all of its queued actions, therefore\n   * clearing its queue.\n   * @return {void}\n   */\n  public flush(): void {\n\n    const {actions, maxFrames} = this;\n    let error: any, action: AsyncAction<any>;\n\n    while ((action = actions[0]) && action.delay <= maxFrames) {\n      actions.shift();\n      this.frame = action.delay;\n\n      if (error = action.execute(action.state, action.delay)) {\n        break;\n      }\n    }\n\n    if (error) {\n      while (action = actions.shift()) {\n        action.unsubscribe();\n      }\n      throw error;\n    }\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @nodoc\n */\nexport class VirtualAction<T> extends AsyncAction<T> {\n\n  protected active: boolean = true;\n\n  constructor(protected scheduler: VirtualTimeScheduler,\n              protected work: (this: SchedulerAction<T>, state?: T) => void,\n              protected index: number = scheduler.index += 1) {\n    super(scheduler, work);\n    this.index = scheduler.index = index;\n  }\n\n  public schedule(state?: T, delay: number = 0): Subscription {\n    if (!this.id) {\n      return super.schedule(state, delay);\n    }\n    this.active = false;\n    // If an action is rescheduled, we save allocations by mutating its state,\n    // pushing it to the end of the scheduler queue, and recycling the action.\n    // But since the VirtualTimeScheduler is used for testing, VirtualActions\n    // must be immutable so they can be inspected later.\n    const action = new VirtualAction(this.scheduler, this.work);\n    this.add(action);\n    return action.schedule(state, delay);\n  }\n\n  protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {\n    this.delay = scheduler.frame + delay;\n    const {actions} = scheduler;\n    actions.push(this);\n    (actions as Array<VirtualAction<T>>).sort(VirtualAction.sortActions);\n    return true;\n  }\n\n  protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {\n    return undefined;\n  }\n\n  protected _execute(state: T, delay: number): any {\n    if (this.active === true) {\n      return super._execute(state, delay);\n    }\n  }\n\n  public static sortActions<T>(a: VirtualAction<T>, b: VirtualAction<T>) {\n    if (a.delay === b.delay) {\n      if (a.index === b.index) {\n        return 0;\n      } else if (a.index > b.index) {\n        return 1;\n      } else {\n        return -1;\n      }\n    } else if (a.delay > b.delay) {\n      return 1;\n    } else {\n      return -1;\n    }\n  }\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\n\n/**\n * Tests to see if the object is an RxJS {@link Observable}\n * @param obj the object to test\n */\nexport function isObservable<T>(obj: any): obj is Observable<T> {\n  return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n", "export interface ArgumentOutOfRangeError extends Error {\n}\n\nexport interface ArgumentOutOfRangeErrorCtor {\n  new(): ArgumentOutOfRangeError;\n}\n\nconst ArgumentOutOfRangeErrorImpl = (() => {\n  function ArgumentOutOfRangeErrorImpl(this: any) {\n    Error.call(this);\n    this.message = 'argument out of range';\n    this.name = 'ArgumentOutOfRangeError';\n    return this;\n  }\n\n  ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n\n  return ArgumentOutOfRangeErrorImpl;\n})();\n\n/**\n * An error thrown when an element was queried at a certain index of an\n * Observable, but no such index or position exists in that sequence.\n *\n * @see {@link elementAt}\n * @see {@link take}\n * @see {@link takeLast}\n *\n * @class ArgumentOutOfRangeError\n */\nexport const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor = ArgumentOutOfRangeErrorImpl as any;", "export interface EmptyError extends Error {\n}\n\nexport interface EmptyErrorCtor {\n  new(): EmptyError;\n}\n\nconst EmptyErrorImpl = (() => {\n  function EmptyErrorImpl(this: any) {\n    Error.call(this);\n    this.message = 'no elements in sequence';\n    this.name = 'EmptyError';\n    return this;\n  }\n\n  EmptyErrorImpl.prototype = Object.create(Error.prototype);\n\n  return EmptyErrorImpl;\n})();\n\n/**\n * An error thrown when an Observable or a sequence was queried but has no\n * elements.\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link single}\n *\n * @class EmptyError\n */\nexport const EmptyError: EmptyErrorCtor = EmptyErrorImpl as any;", "export interface TimeoutError extends Error {\n}\n\nexport interface TimeoutErrorCtor {\n  new(): TimeoutError;\n}\n\nconst TimeoutErrorImpl = (() => {\n  function TimeoutErrorImpl(this: any) {\n    Error.call(this);\n    this.message = 'Timeout has occurred';\n    this.name = 'TimeoutError';\n    return this;\n  }\n\n  TimeoutErrorImpl.prototype = Object.create(Error.prototype);\n\n  return TimeoutErrorImpl;\n})();\n\n/**\n * An error thrown when duetime elapses.\n *\n * @see {@link operators/timeout}\n *\n * @class TimeoutError\n */\nexport const TimeoutError: TimeoutErrorCtor = TimeoutErrorImpl as any;\n", "import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * <span class=\"informal\">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.</span>\n *\n * ![](map.png)\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * ## Example\n * Map every click to the clientX position of that click\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return {Observable<R>} An Observable that emits the values from the source\n * Observable transformed by the given `project` function.\n * @method map\n * @owner Observable\n */\nexport function map<T, R>(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction<T, R> {\n  return function mapOperation(source: Observable<T>): Observable<R> {\n    if (typeof project !== 'function') {\n      throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n    }\n    return source.lift(new MapOperator(project, thisArg));\n  };\n}\n\nexport class MapOperator<T, R> implements Operator<T, R> {\n  constructor(private project: (value: T, index: number) => R, private thisArg: any) {\n  }\n\n  call(subscriber: Subscriber<R>, source: any): any {\n    return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MapSubscriber<T, R> extends Subscriber<T> {\n  count: number = 0;\n  private thisArg: any;\n\n  constructor(destination: Subscriber<R>,\n              private project: (value: T, index: number) => R,\n              thisArg: any) {\n    super(destination);\n    this.thisArg = thisArg || this;\n  }\n\n  // NOTE: This looks unoptimized, but it's actually purposefully NOT\n  // using try/catch optimizations.\n  protected _next(value: T) {\n    let result: R;\n    try {\n      result = this.project.call(this.thisArg, value, this.count++);\n    } catch (err) {\n      this.destination.error(err);\n      return;\n    }\n    this.destination.next(result);\n  }\n}\n", "import { SchedulerLike, SchedulerAction } from '../types';\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\n\n// tslint:disable:max-line-length\n/** @deprecated resultSelector is no longer supported, use a mapping function. */\nexport function bindCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;\n\nexport function bindCallback<R1, R2, R3, R4>(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): () => Observable<any[]>;\nexport function bindCallback<R1, R2, R3>(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport function bindCallback<R1, R2>(callbackFunc: (callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport function bindCallback<R1>(callbackFunc: (callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable<R1>;\nexport function bindCallback(callbackFunc: (callback: () => any) => any, scheduler?: SchedulerLike): () => Observable<void>;\n\nexport function bindCallback<A1, R1, R2, R3, R4>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<any[]>;\nexport function bindCallback<A1, R1, R2, R3>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport function bindCallback<A1, R1, R2>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport function bindCallback<A1, R1>(callbackFunc: (arg1: A1, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<R1>;\nexport function bindCallback<A1>(callbackFunc: (arg1: A1, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<void>;\n\nexport function bindCallback<A1, A2, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<any[]>;\nexport function bindCallback<A1, A2, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport function bindCallback<A1, A2, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport function bindCallback<A1, A2, R1>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<R1>;\nexport function bindCallback<A1, A2>(callbackFunc: (arg1: A1, arg2: A2, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<void>;\n\nexport function bindCallback<A1, A2, A3, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<any[]>;\nexport function bindCallback<A1, A2, A3, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport function bindCallback<A1, A2, A3, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport function bindCallback<A1, A2, A3, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<R1>;\nexport function bindCallback<A1, A2, A3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<void>;\n\nexport function bindCallback<A1, A2, A3, A4, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<any[]>;\nexport function bindCallback<A1, A2, A3, A4, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport function bindCallback<A1, A2, A3, A4, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport function bindCallback<A1, A2, A3, A4, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<R1>;\nexport function bindCallback<A1, A2, A3, A4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<void>;\n\nexport function bindCallback<A1, A2, A3, A4, A5, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<any[]>;\nexport function bindCallback<A1, A2, A3, A4, A5, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport function bindCallback<A1, A2, A3, A4, A5, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport function bindCallback<A1, A2, A3, A4, A5, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<R1>;\nexport function bindCallback<A1, A2, A3, A4, A5>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<void>;\n\nexport function bindCallback<A, R>(callbackFunc: (...args: Array<A | ((result: R) => any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable<R>;\nexport function bindCallback<A, R>(callbackFunc: (...args: Array<A | ((...results: R[]) => any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable<R[]>;\n\nexport function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;\n\n// tslint:enable:max-line-length\n\n/**\n * Converts a callback API to a function that returns an Observable.\n *\n * <span class=\"informal\">Give it a function `f` of type `f(x, callback)` and\n * it will return a function `g` that when called as `g(x)` will output an\n * Observable.</span>\n *\n * `bindCallback` is not an operator because its input and output are not\n * Observables. The input is a function `func` with some parameters. The\n * last parameter must be a callback function that `func` calls when it is\n * done.\n *\n * The output of `bindCallback` is a function that takes the same parameters\n * as `func`, except the last one (the callback). When the output function\n * is called with arguments it will return an Observable. If function `func`\n * calls its callback with one argument, the Observable will emit that value.\n * If on the other hand the callback is called with multiple values the resulting\n * Observable will emit an array with said values as arguments.\n *\n * It is **very important** to remember that input function `func` is not called\n * when the output function is, but rather when the Observable returned by the output\n * function is subscribed. This means if `func` makes an AJAX request, that request\n * will be made every time someone subscribes to the resulting Observable, but not before.\n *\n * The last optional parameter - `scheduler` - can be used to control when the call\n * to `func` happens after someone subscribes to Observable, as well as when results\n * passed to callback will be emitted. By default, the subscription to an Observable calls `func`\n * synchronously, but using {@link asyncScheduler} as the last parameter will defer the call to `func`,\n * just like wrapping the call in `setTimeout` with a timeout of `0` would. If you were to use the async Scheduler\n * and call `subscribe` on the output Observable, all function calls that are currently executing\n * will end before `func` is invoked.\n *\n * By default, results passed to the callback are emitted immediately after `func` invokes the callback.\n * In particular, if the callback is called synchronously, then the subscription of the resulting Observable\n * will call the `next` function synchronously as well.  If you want to defer that call,\n * you may use {@link asyncScheduler} just as before.  This means that by using `Scheduler.async` you can\n * ensure that `func` always calls its callback asynchronously, thus avoiding terrifying Zalgo.\n *\n * Note that the Observable created by the output function will always emit a single value\n * and then complete immediately. If `func` calls the callback multiple times, values from subsequent\n * calls will not appear in the stream. If you need to listen for multiple calls,\n *  you probably want to use {@link fromEvent} or {@link fromEventPattern} instead.\n *\n * If `func` depends on some context (`this` property) and is not already bound, the context of `func`\n * will be the context that the output function has at call time. In particular, if `func`\n * is called as a method of some objec and if `func` is not already bound, in order to preserve the context\n * it is recommended that the context of the output function is set to that object as well.\n *\n * If the input function calls its callback in the \"node style\" (i.e. first argument to callback is\n * optional error parameter signaling whether the call failed or not), {@link bindNodeCallback}\n * provides convenient error handling and probably is a better choice.\n * `bindCallback` will treat such functions the same as any other and error parameters\n * (whether passed or not) will always be interpreted as regular callback argument.\n *\n * ## Examples\n *\n * ### Convert jQuery's getJSON to an Observable API\n * ```ts\n * import { bindCallback } from 'rxjs';\n * import * as jQuery from 'jquery';\n *\n * // Suppose we have jQuery.getJSON('/my/url', callback)\n * const getJSONAsObservable = bindCallback(jQuery.getJSON);\n * const result = getJSONAsObservable('/my/url');\n * result.subscribe(x => console.log(x), e => console.error(e));\n * ```\n *\n * ### Receive an array of arguments passed to a callback\n * ```ts\n * import { bindCallback } from 'rxjs';\n *\n * const someFunction = (a, b, c) => {\n *   console.log(a); // 5\n *   console.log(b); // 'some string'\n *   console.log(c); // {someProperty: 'someValue'}\n * };\n *\n * const boundSomeFunction = bindCallback(someFunction);\n * boundSomeFunction().subscribe(values => {\n *   console.log(values) // [5, 'some string', {someProperty: 'someValue'}]\n * });\n * ```\n *\n * ### Compare behaviour with and without async Scheduler\n * ```ts\n * import { bindCallback } from 'rxjs';\n *\n * function iCallMyCallbackSynchronously(cb) {\n *   cb();\n * }\n *\n * const boundSyncFn = bindCallback(iCallMyCallbackSynchronously);\n * const boundAsyncFn = bindCallback(iCallMyCallbackSynchronously, null, Rx.Scheduler.async);\n *\n * boundSyncFn().subscribe(() => console.log('I was sync!'));\n * boundAsyncFn().subscribe(() => console.log('I was async!'));\n * console.log('This happened...');\n *\n * // Logs:\n * // I was sync!\n * // This happened...\n * // I was async!\n * ```\n *\n * ### Use bindCallback on an object method\n * ```ts\n * import { bindCallback } from 'rxjs';\n *\n * const boundMethod = bindCallback(someObject.methodWithCallback);\n * boundMethod.call(someObject) // make sure methodWithCallback has access to someObject\n * .subscribe(subscriber);\n * ```\n *\n * @see {@link bindNodeCallback}\n * @see {@link from}\n *\n * @param {function} func A function with a callback as the last parameter.\n * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the\n * callbacks.\n * @return {function(...params: *): Observable} A function which returns the\n * Observable that delivers the same values the callback would deliver.\n * @name bindCallback\n */\nexport function bindCallback<T>(\n  callbackFunc: Function,\n  resultSelector?: Function|SchedulerLike,\n  scheduler?: SchedulerLike\n): (...args: any[]) => Observable<T> {\n  if (resultSelector) {\n    if (isScheduler(resultSelector)) {\n      scheduler = resultSelector;\n    } else {\n      // DEPRECATED PATH\n      return (...args: any[]) => bindCallback(callbackFunc, scheduler)(...args).pipe(\n        map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)),\n      );\n    }\n  }\n\n  return function (this: any, ...args: any[]): Observable<T> {\n    const context = this;\n    let subject: AsyncSubject<T>;\n    const params = {\n      context,\n      subject,\n      callbackFunc,\n      scheduler,\n    };\n    return new Observable<T>(subscriber => {\n      if (!scheduler) {\n        if (!subject) {\n          subject = new AsyncSubject<T>();\n          const handler = (...innerArgs: any[]) => {\n            subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n            subject.complete();\n          };\n\n          try {\n            callbackFunc.apply(context, [...args, handler]);\n          } catch (err) {\n            if (canReportError(subject)) {\n              subject.error(err);\n            } else {\n              console.warn(err);\n            }\n          }\n        }\n        return subject.subscribe(subscriber);\n      } else {\n        const state: DispatchState<T> = {\n          args, subscriber, params,\n        };\n        return scheduler.schedule<DispatchState<T>>(dispatch, 0, state);\n      }\n    });\n  };\n}\n\ninterface DispatchState<T> {\n  args: any[];\n  subscriber: Subscriber<T>;\n  params: ParamsContext<T>;\n}\n\ninterface ParamsContext<T> {\n  callbackFunc: Function;\n  scheduler: SchedulerLike;\n  context: any;\n  subject: AsyncSubject<T>;\n}\n\nfunction dispatch<T>(this: SchedulerAction<DispatchState<T>>, state: DispatchState<T>) {\n  const self = this;\n  const { args, subscriber, params } = state;\n  const { callbackFunc, context, scheduler } = params;\n  let { subject } = params;\n  if (!subject) {\n    subject = params.subject = new AsyncSubject<T>();\n\n    const handler = (...innerArgs: any[]) => {\n      const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n      this.add(scheduler.schedule<NextState<T>>(dispatchNext, 0, { value, subject }));\n    };\n\n    try {\n      callbackFunc.apply(context, [...args, handler]);\n    } catch (err) {\n      subject.error(err);\n    }\n  }\n\n  this.add(subject.subscribe(subscriber));\n}\n\ninterface NextState<T> {\n  subject: AsyncSubject<T>;\n  value: T;\n}\n\nfunction dispatchNext<T>(this: SchedulerAction<NextState<T>>, state: NextState<T>) {\n  const { value, subject } = state;\n  subject.next(value);\n  subject.complete();\n}\n\ninterface ErrorState<T> {\n  subject: AsyncSubject<T>;\n  err: any;\n}\n\nfunction dispatchError<T>(this: SchedulerAction<ErrorState<T>>, state: ErrorState<T>) {\n  const { err, subject } = state;\n  subject.error(err);\n}\n", "import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { Subscriber } from '../Subscriber';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport function bindNodeCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;\n\nexport function bindNodeCallback<R1, R2, R3, R4>(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport function bindNodeCallback<R1, R2, R3>(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback<R1, R2>(callbackFunc: (callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport function bindNodeCallback<R1>(callbackFunc: (callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable<R1>;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any) => any) => any, scheduler?: SchedulerLike): () => Observable<void>;\n\nexport function bindNodeCallback<A1, R1, R2, R3, R4>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport function bindNodeCallback<A1, R1, R2, R3>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback<A1, R1, R2>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport function bindNodeCallback<A1, R1>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<R1>;\nexport function bindNodeCallback<A1>(callbackFunc: (arg1: A1, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<void>;\n\nexport function bindNodeCallback<A1, A2, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport function bindNodeCallback<A1, A2, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback<A1, A2, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport function bindNodeCallback<A1, A2, R1>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<R1>;\nexport function bindNodeCallback<A1, A2>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<void>;\n\nexport function bindNodeCallback<A1, A2, A3, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport function bindNodeCallback<A1, A2, A3, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback<A1, A2, A3, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport function bindNodeCallback<A1, A2, A3, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<R1>;\nexport function bindNodeCallback<A1, A2, A3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<void>;\n\nexport function bindNodeCallback<A1, A2, A3, A4, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport function bindNodeCallback<A1, A2, A3, A4, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback<A1, A2, A3, A4, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport function bindNodeCallback<A1, A2, A3, A4, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<R1>;\nexport function bindNodeCallback<A1, A2, A3, A4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<void>;\n\nexport function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport function bindNodeCallback<A1, A2, A3, A4, A5, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<R1>;\nexport function bindNodeCallback<A1, A2, A3, A4, A5>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<void>; /* tslint:enable:max-line-length */\n\nexport function bindNodeCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\n/**\n * Converts a Node.js-style callback API to a function that returns an\n * Observable.\n *\n * <span class=\"informal\">It's just like {@link bindCallback}, but the\n * callback is expected to be of type `callback(error, result)`.</span>\n *\n * `bindNodeCallback` is not an operator because its input and output are not\n * Observables. The input is a function `func` with some parameters, but the\n * last parameter must be a callback function that `func` calls when it is\n * done. The callback function is expected to follow Node.js conventions,\n * where the first argument to the callback is an error object, signaling\n * whether call was successful. If that object is passed to callback, it means\n * something went wrong.\n *\n * The output of `bindNodeCallback` is a function that takes the same\n * parameters as `func`, except the last one (the callback). When the output\n * function is called with arguments, it will return an Observable.\n * If `func` calls its callback with error parameter present, Observable will\n * error with that value as well. If error parameter is not passed, Observable will emit\n * second parameter. If there are more parameters (third and so on),\n * Observable will emit an array with all arguments, except first error argument.\n *\n * Note that `func` will not be called at the same time output function is,\n * but rather whenever resulting Observable is subscribed. By default call to\n * `func` will happen synchronously after subscription, but that can be changed\n * with proper `scheduler` provided as optional third parameter. {@link SchedulerLike}\n * can also control when values from callback will be emitted by Observable.\n * To find out more, check out documentation for {@link bindCallback}, where\n * {@link SchedulerLike} works exactly the same.\n *\n * As in {@link bindCallback}, context (`this` property) of input function will be set to context\n * of returned function, when it is called.\n *\n * After Observable emits value, it will complete immediately. This means\n * even if `func` calls callback again, values from second and consecutive\n * calls will never appear on the stream. If you need to handle functions\n * that call callbacks multiple times, check out {@link fromEvent} or\n * {@link fromEventPattern} instead.\n *\n * Note that `bindNodeCallback` can be used in non-Node.js environments as well.\n * \"Node.js-style\" callbacks are just a convention, so if you write for\n * browsers or any other environment and API you use implements that callback style,\n * `bindNodeCallback` can be safely used on that API functions as well.\n *\n * Remember that Error object passed to callback does not have to be an instance\n * of JavaScript built-in `Error` object. In fact, it does not even have to an object.\n * Error parameter of callback function is interpreted as \"present\", when value\n * of that parameter is truthy. It could be, for example, non-zero number, non-empty\n * string or boolean `true`. In all of these cases resulting Observable would error\n * with that value. This means usually regular style callbacks will fail very often when\n * `bindNodeCallback` is used. If your Observable errors much more often then you\n * would expect, check if callback really is called in Node.js-style and, if not,\n * switch to {@link bindCallback} instead.\n *\n * Note that even if error parameter is technically present in callback, but its value\n * is falsy, it still won't appear in array emitted by Observable.\n *\n * ## Examples\n * ###  Read a file from the filesystem and get the data as an Observable\n * ```ts\n * import * as fs from 'fs';\n * const readFileAsObservable = bindNodeCallback(fs.readFile);\n * const result = readFileAsObservable('./roadNames.txt', 'utf8');\n * result.subscribe(x => console.log(x), e => console.error(e));\n * ```\n *\n * ### Use on function calling callback with multiple arguments\n * ```ts\n * someFunction((err, a, b) => {\n *   console.log(err); // null\n *   console.log(a); // 5\n *   console.log(b); // \"some string\"\n * });\n * const boundSomeFunction = bindNodeCallback(someFunction);\n * boundSomeFunction()\n * .subscribe(value => {\n *   console.log(value); // [5, \"some string\"]\n * });\n * ```\n *\n * ### Use on function calling callback in regular style\n * ```ts\n * someFunction(a => {\n *   console.log(a); // 5\n * });\n * const boundSomeFunction = bindNodeCallback(someFunction);\n * boundSomeFunction()\n * .subscribe(\n *   value => {}             // never gets called\n *   err => console.log(err) // 5\n * );\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link from}\n *\n * @param {function} func Function with a Node.js-style callback as the last parameter.\n * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the\n * callbacks.\n * @return {function(...params: *): Observable} A function which returns the\n * Observable that delivers the same values the Node.js callback would\n * deliver.\n * @name bindNodeCallback\n */\nexport function bindNodeCallback<T>(\n  callbackFunc: Function,\n  resultSelector: Function|SchedulerLike,\n  scheduler?: SchedulerLike\n): (...args: any[]) => Observable<T> {\n\n  if (resultSelector) {\n    if (isScheduler(resultSelector)) {\n      scheduler = resultSelector;\n    } else {\n      // DEPRECATED PATH\n      return (...args: any[]) => bindNodeCallback(callbackFunc, scheduler)(...args).pipe(\n        map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n      );\n    }\n  }\n\n  return function(this: any, ...args: any[]): Observable<T> {\n    const params: ParamsState<T> = {\n      subject: undefined,\n      args,\n      callbackFunc,\n      scheduler,\n      context: this,\n    };\n    return new Observable<T>(subscriber => {\n      const { context } = params;\n      let { subject } = params;\n      if (!scheduler) {\n        if (!subject) {\n          subject = params.subject = new AsyncSubject<T>();\n          const handler = (...innerArgs: any[]) => {\n            const err = innerArgs.shift();\n\n            if (err) {\n              subject.error(err);\n              return;\n            }\n\n            subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n            subject.complete();\n          };\n\n          try {\n            callbackFunc.apply(context, [...args, handler]);\n          } catch (err) {\n            if (canReportError(subject)) {\n              subject.error(err);\n            } else {\n              console.warn(err);\n            }\n          }\n        }\n        return subject.subscribe(subscriber);\n      } else {\n        return scheduler.schedule<DispatchState<T>>(dispatch, 0, { params, subscriber, context });\n      }\n    });\n  };\n}\n\ninterface DispatchState<T> {\n  subscriber: Subscriber<T>;\n  context: any;\n  params: ParamsState<T>;\n}\n\ninterface ParamsState<T> {\n  callbackFunc: Function;\n  args: any[];\n  scheduler: SchedulerLike;\n  subject: AsyncSubject<T>;\n  context: any;\n}\n\nfunction dispatch<T>(this: SchedulerAction<DispatchState<T>>, state: DispatchState<T>) {\n  const { params, subscriber, context } = state;\n  const { callbackFunc, args, scheduler } = params;\n  let subject = params.subject;\n\n  if (!subject) {\n    subject = params.subject = new AsyncSubject<T>();\n\n    const handler = (...innerArgs: any[]) => {\n      const err = innerArgs.shift();\n      if (err) {\n        this.add(scheduler.schedule<DispatchErrorArg<T>>(dispatchError, 0, { err, subject }));\n      } else {\n        const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n        this.add(scheduler.schedule<DispatchNextArg<T>>(dispatchNext, 0, { value, subject }));\n      }\n    };\n\n    try {\n      callbackFunc.apply(context, [...args, handler]);\n    } catch (err) {\n      this.add(scheduler.schedule<DispatchErrorArg<T>>(dispatchError, 0, { err, subject }));\n    }\n  }\n\n  this.add(subject.subscribe(subscriber));\n}\n\ninterface DispatchNextArg<T> {\n  subject: AsyncSubject<T>;\n  value: T;\n}\n\nfunction dispatchNext<T>(arg: DispatchNextArg<T>) {\n  const { value, subject } = arg;\n  subject.next(value);\n  subject.complete();\n}\n\ninterface DispatchErrorArg<T> {\n  subject: AsyncSubject<T>;\n  err: any;\n}\n\nfunction dispatchError<T>(arg: DispatchErrorArg<T>) {\n  const { err, subject } = arg;\n  subject.error(err);\n}\n", "import { Subscriber } from './Subscriber';\nimport { InnerSubscriber } from './InnerSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class OuterSubscriber<T, R> extends Subscriber<T> {\n  notifyNext(outerValue: T, innerValue: R,\n             outerIndex: number, innerIndex: number,\n             innerSub: InnerSubscriber<T, R>): void {\n    this.destination.next(innerValue);\n  }\n\n  notifyError(error: any, innerSub: InnerSubscriber<T, R>): void {\n    this.destination.error(error);\n  }\n\n  notifyComplete(innerSub: InnerSubscriber<T, R>): void {\n    this.destination.complete();\n  }\n}\n", "import { Subscriber } from './Subscriber';\nimport { OuterSubscriber } from './OuterSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class InnerSubscriber<T, R> extends Subscriber<R> {\n  private index = 0;\n\n  constructor(private parent: OuterSubscriber<T, R>, public outerValue: T, public outerIndex: number) {\n    super();\n  }\n\n  protected _next(value: R): void {\n    this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n  }\n\n  protected _error(error: any): void {\n    this.parent.notifyError(error, this);\n    this.unsubscribe();\n  }\n\n  protected _complete(): void {\n    this.parent.notifyComplete(this);\n    this.unsubscribe();\n  }\n}\n", "import { Subscriber } from '../Subscriber';\nimport { hostReportError } from './hostReportError';\n\nexport const subscribeToPromise = <T>(promise: PromiseLike<T>) => (subscriber: Subscriber<T>) => {\n  promise.then(\n    (value) => {\n      if (!subscriber.closed) {\n        subscriber.next(value);\n        subscriber.complete();\n      }\n    },\n    (err: any) => subscriber.error(err)\n  )\n  .then(null, hostReportError);\n  return subscriber;\n};\n", "export function getSymbolIterator(): symbol {\n  if (typeof Symbol !== 'function' || !Symbol.iterator) {\n    return '@@iterator' as any;\n  }\n\n  return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n\n/**\n * @deprecated use {@link iterator} instead\n */\nexport const $$iterator = iterator;\n", "import { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\n\nexport const subscribeToIterable = <T>(iterable: Iterable<T>) => (subscriber: Subscriber<T>) => {\n  const iterator = (iterable as any)[Symbol_iterator]();\n\n  do {\n    let item: IteratorResult<T>;\n    try {\n      item = iterator.next();\n    } catch (err) {\n      subscriber.error(err);\n      return subscriber;\n    }\n    if (item.done) {\n      subscriber.complete();\n      break;\n    }\n    subscriber.next(item.value);\n    if (subscriber.closed) {\n      break;\n    }\n  } while (true);\n\n  // Finalize the iterator if it happens to be a Generator\n  if (typeof iterator.return === 'function') {\n    subscriber.add(() => {\n      if (iterator.return) {\n        iterator.return();\n      }\n    });\n  }\n\n  return subscriber;\n};\n", "import { Subscriber } from '../Subscriber';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\n/**\n * Subscribes to an object that implements Symbol.observable with the given\n * Subscriber.\n * @param obj An object that implements Symbol.observable\n */\nexport const subscribeToObservable = <T>(obj: any) => (subscriber: Subscriber<T>) => {\n  const obs = obj[Symbol_observable]();\n  if (typeof obs.subscribe !== 'function') {\n    // Should be caught by observable subscribe function error handling.\n    throw new TypeError('Provided object does not correctly implement Symbol.observable');\n  } else {\n    return obs.subscribe(subscriber);\n  }\n};\n", "export const isArrayLike = (<T>(x: any): x is ArrayLike<T> => x && typeof x.length === 'number' && typeof x !== 'function');", "/**\n * Tests to see if the object is an ES2015 (ES6) Promise\n * @see {@link https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects}\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike<any> {\n  return !!value && typeof (<any>value).subscribe !== 'function' && typeof (value as any).then === 'function';\n}\n", "import { ObservableInput } from '../types';\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { Subscription } from '../Subscription';\nimport { Subscriber } from '../Subscriber';\n\nexport const subscribeTo = <T>(result: ObservableInput<T>): (subscriber: Subscriber<T>) => Subscription | void => {\n  if (!!result && typeof result[Symbol_observable] === 'function') {\n    return subscribeToObservable(result as any);\n  } else if (isArrayLike(result)) {\n    return subscribeToArray(result);\n  } else if (isPromise(result)) {\n    return subscribeToPromise(result as Promise<any>);\n  } else if (!!result && typeof result[Symbol_iterator] === 'function') {\n    return subscribeToIterable(result as any);\n  } else {\n    const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n    const msg = `You provided ${value} where a stream was expected.`\n      + ' You can provide an Observable, Promise, Array, or Iterable.';\n    throw new TypeError(msg);\n  }\n};\n", "import { Subscription } from '../Subscription';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { Subscriber } from '../Subscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\n\nexport function subscribeToResult<T, R>(\n  outerSubscriber: OuterSubscriber<T, R>,\n  result: any,\n  outerValue: undefined,\n  outerIndex: undefined,\n  innerSubscriber: InnerSubscriber<T, R>\n): Subscription | undefined;\n\nexport function subscribeToResult<T, R>(\n  outerSubscriber: OuterSubscriber<T, R>,\n  result: any,\n  outerValue?: T,\n  outerIndex?: number\n): Subscription | undefined;\n\nexport function subscribeToResult<T, R>(\n  outerSubscriber: OuterSubscriber<T, R>,\n  result: any,\n  outerValue?: T,\n  outerIndex?: number,\n  innerSubscriber: Subscriber<R> = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)\n): Subscription | undefined {\n  if (innerSubscriber.closed) {\n    return undefined;\n  }\n  if (result instanceof Observable) {\n    return result.subscribe(innerSubscriber);\n  }\n  return subscribeTo(result)(innerSubscriber) as Subscription;\n}\n", "import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { isScheduler  } from '../util/isScheduler';\nimport { isArray  } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { Operator } from '../Operator';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\n\nconst NONE = {};\n\n/* tslint:disable:max-line-length */\n\n// If called with a single array, it \"auto-spreads\" the array, with result selector\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, R>(sources: [O1], resultSelector: (v1: ObservedValueOf<O1>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(sources: [O1, O2], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(sources: [O1, O2, O3], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4, O5], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4, O5, O6], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O extends ObservableInput<any>, R>(sources: O[], resultSelector: (...args: ObservedValueOf<O>[]) => R, scheduler?: SchedulerLike): Observable<R>;\n\n// standard call, but with a result selector\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, R>(v1: O1, resultSelector: (v1: ObservedValueOf<O1>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R, scheduler?: SchedulerLike): Observable<R>;\n\n// With a scheduler (deprecated)\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<O1 extends ObservableInput<any>>(sources: [O1], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(sources: [O1, O2], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(sources: [O1, O2, O3], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(sources: [O1, O2, O3, O4], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5, O6], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<O extends ObservableInput<any>>(sources: O[], scheduler: SchedulerLike): Observable<ObservedValueOf<O>[]>;\n\n// Best case\nexport function combineLatest<O1 extends ObservableInput<any>>(sources: [O1]): Observable<[ObservedValueOf<O1>]>;\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(sources: [O1, O2]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(sources: [O1, O2, O3]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(sources: [O1, O2, O3, O4]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5, O6]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\nexport function combineLatest<O extends ObservableInput<any>>(sources: O[]): Observable<ObservedValueOf<O>[]>;\n\n// Standard calls\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest<O1 extends ObservableInput<any>>(v1: O1, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\n\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest<O extends ObservableInput<any>>(...observables: O[]): Observable<any[]>;\n\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest<O extends ObservableInput<any>, R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;\n\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest<O extends ObservableInput<any>, R>(array: O[], resultSelector: (...values: ObservedValueOf<O>[]) => R, scheduler?: SchedulerLike): Observable<R>;\n\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<O extends ObservableInput<any>>(...observables: Array<O | SchedulerLike>): Observable<any[]>;\n\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<O extends ObservableInput<any>, R>(...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R) | SchedulerLike>): Observable<R>;\n\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R) | SchedulerLike>): Observable<R>;\n/* tslint:enable:max-line-length */\n\n/**\n * Combines multiple Observables to create an Observable whose values are\n * calculated from the latest values of each of its input Observables.\n *\n * <span class=\"informal\">Whenever any input Observable emits a value, it\n * computes a formula using the latest values from all the inputs, then emits\n * the output of that formula.</span>\n *\n * ![](combineLatest.png)\n *\n * `combineLatest` combines the values from all the Observables passed as\n * arguments. This is done by subscribing to each Observable in order and,\n * whenever any Observable emits, collecting an array of the most recent\n * values from each Observable. So if you pass `n` Observables to operator,\n * returned Observable will always emit an array of `n` values, in order\n * corresponding to order of passed Observables (value from the first Observable\n * on the first place and so on).\n *\n * Static version of `combineLatest` accepts either an array of Observables\n * or each Observable can be put directly as an argument. Note that array of\n * Observables is good choice, if you don't know beforehand how many Observables\n * you will combine. Passing empty array will result in Observable that\n * completes immediately.\n *\n * To ensure output array has always the same length, `combineLatest` will\n * actually wait for all input Observables to emit at least once,\n * before it starts emitting results. This means if some Observable emits\n * values before other Observables started emitting, all these values but the last\n * will be lost. On the other hand, if some Observable does not emit a value but\n * completes, resulting Observable will complete at the same moment without\n * emitting anything, since it will be now impossible to include value from\n * completed Observable in resulting array. Also, if some input Observable does\n * not emit any value and never completes, `combineLatest` will also never emit\n * and never complete, since, again, it will wait for all streams to emit some\n * value.\n *\n * If at least one Observable was passed to `combineLatest` and all passed Observables\n * emitted something, resulting Observable will complete when all combined\n * streams complete. So even if some Observable completes, result of\n * `combineLatest` will still emit values when other Observables do. In case\n * of completed Observable, its value from now on will always be the last\n * emitted value. On the other hand, if any Observable errors, `combineLatest`\n * will error immediately as well, and all other Observables will be unsubscribed.\n *\n * `combineLatest` accepts as optional parameter `project` function, which takes\n * as arguments all values that would normally be emitted by resulting Observable.\n * `project` can return any kind of value, which will be then emitted by Observable\n * instead of default array. Note that `project` does not take as argument that array\n * of values, but values themselves. That means default `project` can be imagined\n * as function that takes all its arguments and puts them into an array.\n *\n * ## Examples\n * ### Combine two timer Observables\n * ```ts\n * import { combineLatest, timer } from 'rxjs';\n *\n * const firstTimer = timer(0, 1000); // emit 0, 1, 2... after every second, starting from now\n * const secondTimer = timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now\n * const combinedTimers = combineLatest(firstTimer, secondTimer);\n * combinedTimers.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0] after 0.5s\n * // [1, 0] after 1s\n * // [1, 1] after 1.5s\n * // [2, 1] after 2s\n * ```\n *\n * ### Combine an array of Observables\n * ```ts\n * import { combineLatest, of } from 'rxjs';\n * import { delay, starWith } from 'rxjs/operators';\n *\n * const observables = [1, 5, 10].map(\n *   n => of(n).pipe(\n *     delay(n * 1000),   // emit 0 and then emit n after n seconds\n *     startWith(0),\n *   )\n * );\n * const combined = combineLatest(observables);\n * combined.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0, 0] immediately\n * // [1, 0, 0] after 1s\n * // [1, 5, 0] after 5s\n * // [1, 5, 10] after 10s\n * ```\n *\n *\n * ### Use project function to dynamically calculate the Body-Mass Index\n * ```ts\n * import { combineLatest, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * const weight = of(70, 72, 76, 79, 75);\n * const height = of(1.76, 1.77, 1.78);\n * const bmi = combineLatest(weight, height).pipe(\n *   map(([w, h]) => w / (h * h)),\n * );\n * bmi.subscribe(x => console.log('BMI is ' + x));\n *\n * // With output to console:\n * // BMI is 24.212293388429753\n * // BMI is 23.93948099205209\n * // BMI is 23.671253629592222\n * ```\n *\n * @see {@link combineAll}\n * @see {@link merge}\n * @see {@link withLatestFrom}\n *\n * @param {ObservableInput} observable1 An input Observable to combine with other Observables.\n * @param {ObservableInput} observable2 An input Observable to combine with other Observables.\n * More than one input Observables may be given as arguments\n * or an array of Observables may be given as the first argument.\n * @param {function} [project] An optional function to project the values from\n * the combined latest values into a new value on the output Observable.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to\n * each input Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n */\nexport function combineLatest<O extends ObservableInput<any>, R>(\n  ...observables: (O | ((...values: ObservedValueOf<O>[]) => R) | SchedulerLike)[]\n): Observable<R> {\n  let resultSelector: ((...values: Array<any>) => R) | undefined =  undefined;\n  let scheduler: SchedulerLike|undefined = undefined;\n\n  if (isScheduler(observables[observables.length - 1])) {\n    scheduler = observables.pop() as SchedulerLike;\n  }\n\n  if (typeof observables[observables.length - 1] === 'function') {\n    resultSelector = observables.pop() as (...values: Array<any>) => R;\n  }\n\n  // if the first and only other argument besides the resultSelector is an array\n  // assume it's been called with `combineLatest([obs1, obs2, obs3], resultSelector)`\n  if (observables.length === 1 && isArray(observables[0])) {\n    observables = observables[0] as any;\n  }\n\n  return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\n\nexport class CombineLatestOperator<T, R> implements Operator<T, R> {\n  constructor(private resultSelector?: (...values: Array<any>) => R) {\n  }\n\n  call(subscriber: Subscriber<R>, source: any): any {\n    return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class CombineLatestSubscriber<T, R> extends OuterSubscriber<T, R> {\n  private active: number = 0;\n  private values: any[] = [];\n  private observables: any[] = [];\n  private toRespond?: number;\n\n  constructor(destination: Subscriber<R>, private resultSelector?: (...values: Array<any>) => R) {\n    super(destination);\n  }\n\n  protected _next(observable: any) {\n    this.values.push(NONE);\n    this.observables.push(observable);\n  }\n\n  protected _complete() {\n    const observables = this.observables;\n    const len = observables.length;\n    if (len === 0) {\n      this.destination.complete!();\n    } else {\n      this.active = len;\n      this.toRespond = len;\n      for (let i = 0; i < len; i++) {\n        const observable = observables[i];\n        this.add(subscribeToResult(this, observable, undefined, i));\n      }\n    }\n  }\n\n  notifyComplete(unused: Subscriber<R>): void {\n    if ((this.active -= 1) === 0) {\n      this.destination.complete!();\n    }\n  }\n\n  notifyNext(_outerValue: T, innerValue: R,\n             outerIndex: number): void {\n    const values = this.values;\n    const oldVal = values[outerIndex];\n    const toRespond = !this.toRespond\n      ? 0\n      : oldVal === NONE ? --this.toRespond : this.toRespond;\n    values[outerIndex] = innerValue;\n\n    if (toRespond === 0) {\n      if (this.resultSelector) {\n        this._tryResultSelector(values);\n      } else {\n        this.destination.next!(values.slice());\n      }\n    }\n  }\n\n  private _tryResultSelector(values: any[]) {\n    let result: any;\n    try {\n      result = this.resultSelector!.apply(this, values);\n    } catch (err) {\n      this.destination.error!(err);\n      return;\n    }\n    this.destination.next!(result);\n  }\n}\n", "import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { InteropObservable, SchedulerLike, Subscribable } from '../types';\n\nexport function scheduleObservable<T>(input: InteropObservable<T>, scheduler: SchedulerLike) {\n  return new Observable<T>(subscriber => {\n    const sub = new Subscription();\n    sub.add(scheduler.schedule(() => {\n      const observable: Subscribable<T> = input[Symbol_observable]();\n      sub.add(observable.subscribe({\n        next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n        error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n        complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n      }));\n    }));\n    return sub;\n  });\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike) {\n  return new Observable<T>(subscriber => {\n    const sub = new Subscription();\n    sub.add(scheduler.schedule(() => input.then(\n      value => {\n        sub.add(scheduler.schedule(() => {\n          subscriber.next(value);\n          sub.add(scheduler.schedule(() => subscriber.complete()));\n        }));\n      },\n      err => {\n        sub.add(scheduler.schedule(() => subscriber.error(err)));\n      }\n    )));\n    return sub;\n  });\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\n\nexport function scheduleIterable<T>(input: Iterable<T>, scheduler: SchedulerLike) {\n  if (!input) {\n    throw new Error('Iterable cannot be null');\n  }\n  return new Observable<T>(subscriber => {\n    const sub = new Subscription();\n    let iterator: Iterator<T>;\n    sub.add(() => {\n      // Finalize generators\n      if (iterator && typeof iterator.return === 'function') {\n        iterator.return();\n      }\n    });\n    sub.add(scheduler.schedule(() => {\n      iterator = input[Symbol_iterator]();\n      sub.add(scheduler.schedule(function () {\n        if (subscriber.closed) {\n          return;\n        }\n        let value: T;\n        let done: boolean;\n        try {\n          const result = iterator.next();\n          value = result.value;\n          done = result.done;\n        } catch (err) {\n          subscriber.error(err);\n          return;\n        }\n        if (done) {\n          subscriber.complete();\n        } else {\n          subscriber.next(value);\n          this.schedule();\n        }\n      }));\n    }));\n    return sub;\n  });\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable<any> {\n  return input && typeof input[Symbol_observable] === 'function';\n}\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable<any> {\n  return input && typeof input[Symbol_iterator] === 'function';\n}\n", "import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { ObservableInput, SchedulerLike, Observable } from 'rxjs';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\n\n/**\n * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions\n * are scheduled on the provided scheduler.\n *\n * @see from\n * @see of\n *\n * @param input The observable, array, promise, iterable, etc you would like to schedule\n * @param scheduler The scheduler to use to schedule the subscription and emissions from\n * the returned observable.\n */\nexport function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T> {\n  if (input != null) {\n    if (isInteropObservable(input)) {\n      return scheduleObservable(input, scheduler);\n    } else if (isPromise(input)) {\n      return schedulePromise(input, scheduler);\n    } else if (isArrayLike(input)) {\n      return scheduleArray(input, scheduler);\n    }  else if (isIterable(input) || typeof input === 'string') {\n      return scheduleIterable(input, scheduler);\n    }\n  }\n\n  throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n", "import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { scheduled } from '../scheduled/scheduled';\n\nexport function from<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;\n/** @deprecated use {@link scheduled} instead. */\nexport function from<O extends ObservableInput<any>>(input: O, scheduler: SchedulerLike): Observable<ObservedValueOf<O>>;\n\n/**\n * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object.\n *\n * <span class=\"informal\">Converts almost anything to an Observable.</span>\n *\n * ![](from.png)\n *\n * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable\" target=\"_blank\">iterable</a>\n * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated\n * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be\n * converted through this operator.\n *\n * ## Examples\n *\n * ### Converts an array to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n *\n * const array = [10, 20, 30];\n * const result = from(array);\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 10\n * // 20\n * // 30\n * ```\n *\n * ---\n *\n * ### Convert an infinite iterable (from a generator) to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * function* generateDoubles(seed) {\n *    let i = seed;\n *    while (true) {\n *      yield i;\n *      i = 2 * i; // double it\n *    }\n * }\n *\n * const iterator = generateDoubles(3);\n * const result = from(iterator).pipe(take(10));\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 3\n * // 6\n * // 12\n * // 24\n * // 48\n * // 96\n * // 192\n * // 384\n * // 768\n * // 1536\n * ```\n *\n * ---\n *\n * ### With async scheduler\n *\n * ```ts\n * import { from, asyncScheduler } from 'rxjs';\n *\n * console.log('start');\n *\n * const array = [10, 20, 30];\n * const result = from(array, asyncScheduler);\n *\n * result.subscribe(x => console.log(x));\n *\n * console.log('end');\n *\n * // Logs:\n * // start\n * // end\n * // 10\n * // 20\n * // 30\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link fromEventPattern}\n *\n * @param {ObservableInput<T>} A subscription object, a Promise, an Observable-like,\n * an Array, an iterable, or an array-like object to be converted.\n * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values.\n * @return {Observable<T>}\n * @name from\n * @owner Observable\n */\nexport function from<T>(input: ObservableInput<T>, scheduler?: SchedulerLike): Observable<T> {\n  if (!scheduler) {\n    if (input instanceof Observable) {\n      return input;\n    }\n    return new Observable<T>(subscribeTo(input));\n  } else {\n    return scheduled(input, scheduler);\n  }\n}\n", "/** @prettier */\nimport { Subscription } from './Subscription';\nimport { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\n\ninterface SimpleOuterSubscriberLike<T> {\n  /**\n   * A handler for inner next notifications from the inner subscription\n   * @param innerValue the value nexted by the inner producer\n   */\n  notifyNext(innerValue: T): void;\n  /**\n   * A handler for inner error notifications from the inner subscription\n   * @param err the error from the inner producer\n   */\n  notifyError(err: any): void;\n  /**\n   * A handler for inner complete notifications from the inner subscription.\n   */\n  notifyComplete(): void;\n}\n\nexport class SimpleInnerSubscriber<T> extends Subscriber<T> {\n  constructor(private parent: SimpleOuterSubscriberLike<any>) {\n    super();\n  }\n\n  protected _next(value: T): void {\n    this.parent.notifyNext(value);\n  }\n\n  protected _error(error: any): void {\n    this.parent.notifyError(error);\n    this.unsubscribe();\n  }\n\n  protected _complete(): void {\n    this.parent.notifyComplete();\n    this.unsubscribe();\n  }\n}\n\nexport class ComplexInnerSubscriber<T, R> extends Subscriber<R> {\n  constructor(private parent: ComplexOuterSubscriber<T, R>, public outerValue: T, public outerIndex: number) {\n    super();\n  }\n\n  protected _next(value: R): void {\n    this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n  }\n\n  protected _error(error: any): void {\n    this.parent.notifyError(error);\n    this.unsubscribe();\n  }\n\n  protected _complete(): void {\n    this.parent.notifyComplete(this);\n    this.unsubscribe();\n  }\n}\n\nexport class SimpleOuterSubscriber<T, R> extends Subscriber<T> implements SimpleOuterSubscriberLike<R> {\n  notifyNext(innerValue: R): void {\n    this.destination.next(innerValue);\n  }\n\n  notifyError(err: any): void {\n    this.destination.error(err);\n  }\n\n  notifyComplete(): void {\n    this.destination.complete();\n  }\n}\n\n/**\n * DO NOT USE (formerly \"OuterSubscriber\")\n * TODO: We want to refactor this and remove it. It is retaining values it shouldn't for long\n * periods of time.\n */\nexport class ComplexOuterSubscriber<T, R> extends Subscriber<T> {\n  /**\n   * @param _outerValue Used by: bufferToggle, delayWhen, windowToggle\n   * @param innerValue Used by: subclass default, combineLatest, race, bufferToggle, windowToggle, withLatestFrom\n   * @param _outerIndex Used by: combineLatest, race, withLatestFrom\n   * @param _innerSub Used by: delayWhen\n   */\n  notifyNext(_outerValue: T, innerValue: R, _outerIndex: number, _innerSub: ComplexInnerSubscriber<T, R>): void {\n    this.destination.next(innerValue);\n  }\n\n  notifyError(error: any): void {\n    this.destination.error(error);\n  }\n\n  /**\n   * @param _innerSub Used by: race, bufferToggle, delayWhen, windowToggle, windowWhen\n   */\n  notifyComplete(_innerSub: ComplexInnerSubscriber<T, R>): void {\n    this.destination.complete();\n  }\n}\n\nexport function innerSubscribe(result: any, innerSubscriber: Subscriber<any>): Subscription | undefined {\n  if (innerSubscriber.closed) {\n    return undefined;\n  }\n  if (result instanceof Observable) {\n    return result.subscribe(innerSubscriber);\n  }\n  let subscription: Subscription;\n  try {\n    subscription = subscribeTo(result)(innerSubscriber) as Subscription;\n  } catch (error) {\n    innerSubscriber.error(error);\n  }\n  return subscription;\n}\n", "import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\nexport function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.</span>\n *\n * ![](mergeMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * ## Example\n * Map and flatten each letter to an Observable ticking every 1 second\n * ```ts\n * import { of, interval } from 'rxjs';\n * import { mergeMap, map } from 'rxjs/operators';\n *\n * const letters = of('a', 'b', 'c');\n * const result = letters.pipe(\n *   mergeMap(x => interval(1000).pipe(map(i => x+i))),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a,b,c with respective ascending integers\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional deprecated `resultSelector`) to each item\n * emitted by the source Observable and merging the results of the Observables\n * obtained from this transformation.\n */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector?: ((outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R) | number,\n  concurrent: number = Number.POSITIVE_INFINITY\n): OperatorFunction<T, ObservedValueOf<O>|R> {\n  if (typeof resultSelector === 'function') {\n    // DEPRECATED PATH\n    return (source: Observable<T>) => source.pipe(\n      mergeMap((a, i) => from(project(a, i)).pipe(\n        map((b: any, ii: number) => resultSelector(a, b, i, ii)),\n      ), concurrent)\n    );\n  } else if (typeof resultSelector === 'number') {\n    concurrent = resultSelector;\n  }\n  return (source: Observable<T>) => source.lift(new MergeMapOperator(project, concurrent));\n}\n\nexport class MergeMapOperator<T, R> implements Operator<T, R> {\n  constructor(private project: (value: T, index: number) => ObservableInput<R>,\n              private concurrent: number = Number.POSITIVE_INFINITY) {\n  }\n\n  call(observer: Subscriber<R>, source: any): any {\n    return source.subscribe(new MergeMapSubscriber(\n      observer, this.project, this.concurrent\n    ));\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class MergeMapSubscriber<T, R> extends SimpleOuterSubscriber<T, R> {\n  private hasCompleted: boolean = false;\n  private buffer: T[] = [];\n  private active: number = 0;\n  protected index: number = 0;\n\n  constructor(destination: Subscriber<R>,\n              private project: (value: T, index: number) => ObservableInput<R>,\n              private concurrent: number = Number.POSITIVE_INFINITY) {\n    super(destination);\n  }\n\n  protected _next(value: T): void {\n    if (this.active < this.concurrent) {\n      this._tryNext(value);\n    } else {\n      this.buffer.push(value);\n    }\n  }\n\n  protected _tryNext(value: T) {\n    let result: ObservableInput<R>;\n    const index = this.index++;\n    try {\n      result = this.project(value, index);\n    } catch (err) {\n      this.destination.error!(err);\n      return;\n    }\n    this.active++;\n    this._innerSub(result);\n  }\n\n  private _innerSub(ish: ObservableInput<R>): void {\n    const innerSubscriber = new SimpleInnerSubscriber(this);\n    const destination = this.destination as Subscription;\n    destination.add(innerSubscriber);\n    const innerSubscription = innerSubscribe(ish, innerSubscriber);\n    // The returned subscription will usually be the subscriber that was\n    // passed. However, interop subscribers will be wrapped and for\n    // unsubscriptions to chain correctly, the wrapper needs to be added, too.\n    if (innerSubscription !== innerSubscriber) {\n      destination.add(innerSubscription);\n    }\n  }\n\n  protected _complete(): void {\n    this.hasCompleted = true;\n    if (this.active === 0 && this.buffer.length === 0) {\n      this.destination.complete!();\n    }\n    this.unsubscribe();\n  }\n\n  notifyNext(innerValue: R): void {\n    this.destination.next!(innerValue);\n  }\n\n  notifyComplete(): void {\n    const buffer = this.buffer;\n    this.active--;\n    if (buffer.length > 0) {\n      this._next(buffer.shift()!);\n    } else if (this.active === 0 && this.hasCompleted) {\n      this.destination.complete!();\n    }\n  }\n}\n\n/**\n * @deprecated renamed. Use {@link mergeMap}\n */\nexport const flatMap = mergeMap;", "\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nimport { OperatorFunction, ObservableInput } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables.</span>\n *\n * ![](mergeAll.png)\n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n * Spawn a new interval Observable for each click event, and blend their outputs as one Observable\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { map, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(map((ev) => interval(1000)));\n * const firstOrder = higherOrder.pipe(mergeAll());\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { take, map, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n *   map((ev) => interval(1000).pipe(take(10))),\n * );\n * const firstOrder = higherOrder.pipe(mergeAll(2));\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits values coming from all the\n * inner Observables emitted by the source Observable.\n * @method mergeAll\n * @owner Observable\n */\nexport function mergeAll<T>(concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction<ObservableInput<T>, T> {\n  return mergeMap(identity, concurrent);\n}\n", "\nimport { mergeAll } from './mergeAll';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function concatAll<T>(): OperatorFunction<ObservableInput<T>, T>;\nexport function concatAll<R>(): OperatorFunction<any, R>;\n\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.</span>\n *\n * ![](concatAll.png)\n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n *\n * For each click event, tick every second from 0 to 3, with no concurrency\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { map, take, concatAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n *   map(ev => interval(1000).pipe(take(4))),\n * );\n * const firstOrder = higherOrder.pipe(concatAll());\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaust}\n * @see {@link mergeAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable emitting values from all the inner\n * Observables concatenated.\n * @method concatAll\n * @owner Observable\n */\nexport function concatAll<T>(): OperatorFunction<ObservableInput<T>, T> {\n  return mergeAll<T>(1);\n}\n", "import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { of } from './of';\nimport { from } from './from';\nimport { concatAll } from '../operators/concatAll';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat<O1 extends ObservableInput<any>>(v1: O1, scheduler: SchedulerLike): Observable<ObservedValueOf<O1>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5> | ObservedValueOf<O6>>;\n\nexport function concat<O1 extends ObservableInput<any>>(v1: O1): Observable<ObservedValueOf<O1>>;\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2): Observable<ObservedValueOf<O1> | ObservedValueOf<O2>>;\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3>>;\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4>>;\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5>>;\nexport function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5> | ObservedValueOf<O6>>;\nexport function concat<O extends ObservableInput<any>>(...observables: O[]): Observable<ObservedValueOf<O>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat<O extends ObservableInput<any>>(...observables: (O | SchedulerLike)[]): Observable<ObservedValueOf<O>>;\nexport function concat<R>(...observables: ObservableInput<any>[]): Observable<R>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat<R>(...observables: (ObservableInput<any> | SchedulerLike)[]): Observable<R>;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which sequentially emits all values from given\n * Observable and then moves on to the next.\n *\n * <span class=\"informal\">Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.</span>\n *\n * ![](concat.png)\n *\n * `concat` joins multiple Observables together, by subscribing to them one at a time and\n * merging their results into the output Observable. You can pass either an array of\n * Observables, or put them directly as arguments. Passing an empty array will result\n * in Observable that completes immediately.\n *\n * `concat` will subscribe to first input Observable and emit all its values, without\n * changing or affecting them in any way. When that Observable completes, it will\n * subscribe to then next Observable passed and, again, emit its values. This will be\n * repeated, until the operator runs out of Observables. When last input Observable completes,\n * `concat` will complete as well. At any given moment only one Observable passed to operator\n * emits values. If you would like to emit values from passed Observables concurrently, check out\n * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,\n * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.\n *\n * Note that if some input Observable never completes, `concat` will also never complete\n * and Observables following the one that did not complete will never be subscribed. On the other\n * hand, if some Observable simply completes immediately after it is subscribed, it will be\n * invisible for `concat`, which will just move on to the next Observable.\n *\n * If any Observable in chain errors, instead of passing control to the next Observable,\n * `concat` will error immediately as well. Observables that would be subscribed after\n * the one that emitted error, never will.\n *\n * If you pass to `concat` the same Observable many times, its stream of values\n * will be \"replayed\" on every subscription, which means you can repeat given Observable\n * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,\n * you can always use {@link repeat}.\n *\n * ## Examples\n * ### Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10\n * ```ts\n * import { concat, interval, range } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer = interval(1000).pipe(take(4));\n * const sequence = range(1, 10);\n * const result = concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n * ```\n *\n * ### Concatenate 3 Observables\n * ```ts\n * import { concat, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n *\n * const result = concat(timer1, timer2, timer3);\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n * ```\n *\n * ### Concatenate the same Observable to repeat it\n * ```ts\n * import { concat, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer = interval(1000).pipe(take(2));\n *\n * concat(timer, timer) // concatenating the same Observable!\n * .subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('...and it is done!')\n * );\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 0 after 3s\n * // 1 after 4s\n * // \"...and it is done!\" also after 4s\n * ```\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link startWith}\n * @see {@link endWith}\n *\n * @param {ObservableInput} input1 An input Observable to concatenate with others.\n * @param {ObservableInput} input2 An input Observable to concatenate with others.\n * More than one input Observables may be given as argument.\n * @param {SchedulerLike} [scheduler=null] An optional {@link SchedulerLike} to schedule each\n * Observable subscription on.\n * @return {Observable} All values of each passed Observable merged into a\n * single Observable, in order, in serial fashion.\n * @static true\n * @name concat\n * @owner Observable\n */\nexport function concat<O extends ObservableInput<any>, R>(...observables: Array<O | SchedulerLike>): Observable<ObservedValueOf<O> | R> {\n  return concatAll<R>()(of(...observables));\n}\n", "import { Observable } from '../Observable';\nimport { SubscribableOrPromise, ObservedValueOf, ObservableInput } from '../types';\nimport { from } from './from'; // lol\nimport { empty } from './empty';\n\n/**\n * Creates an Observable that, on subscribe, calls an Observable factory to\n * make an Observable for each new Observer.\n *\n * <span class=\"informal\">Creates the Observable lazily, that is, only when it\n * is subscribed.\n * </span>\n *\n * ![](defer.png)\n *\n * `defer` allows you to create the Observable only when the Observer\n * subscribes, and create a fresh Observable for each Observer. It waits until\n * an Observer subscribes to it, and then it generates an Observable,\n * typically with an Observable factory function. It does this afresh for each\n * subscriber, so although each subscriber may think it is subscribing to the\n * same Observable, in fact each subscriber gets its own individual\n * Observable.\n *\n * ## Example\n * ### Subscribe to either an Observable of clicks or an Observable of interval, at random\n * ```ts\n * import { defer, fromEvent, interval } from 'rxjs';\n *\n * const clicksOrInterval = defer(function () {\n *   return Math.random() > 0.5\n *     ? fromEvent(document, 'click')\n *     : interval(1000);\n * });\n * clicksOrInterval.subscribe(x => console.log(x));\n *\n * // Results in the following behavior:\n * // If the result of Math.random() is greater than 0.5 it will listen\n * // for clicks anywhere on the \"document\"; when document is clicked it\n * // will log a MouseEvent object to the console. If the result is less\n * // than 0.5 it will emit ascending numbers, one every second(1000ms).\n * ```\n *\n * @see {@link Observable}\n *\n * @param {function(): SubscribableOrPromise} observableFactory The Observable\n * factory function to invoke for each Observer that subscribes to the output\n * Observable. May also return a Promise, which will be converted on the fly\n * to an Observable.\n * @return {Observable} An Observable whose Observers' subscriptions trigger\n * an invocation of the given Observable factory function.\n * @static true\n * @name defer\n * @owner Observable\n */\nexport function defer<R extends ObservableInput<any> | void>(observableFactory: () => R): Observable<ObservedValueOf<R>> {\n  return new Observable<ObservedValueOf<R>>(subscriber => {\n    let input: R | void;\n    try {\n      input = observableFactory();\n    } catch (err) {\n      subscriber.error(err);\n      return undefined;\n    }\n    const source = input ? from(input as ObservableInput<ObservedValueOf<R>>) : empty();\n    return source.subscribe(subscriber);\n  });\n}\n", "import { Observable } from '../Observable';\nimport { ObservableInput, ObservedValuesFromArray, ObservedValueOf, SubscribableOrPromise } from '../types';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { isObservable } from '../util/isObservable';\nimport { from } from './from';\n\n/* tslint:disable:max-line-length */\n\n// forkJoin(a$, b$, c$)\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin<T>(v1: SubscribableOrPromise<T>): Observable<[T]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>): Observable<[T, T2]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<[T, T2, T3]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<[T, T2, T3, T4]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<[T, T2, T3, T4, T5]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<[T, T2, T3, T4, T5, T6]>;\n\n// forkJoin([a$, b$, c$]);\n// TODO(benlesh): Uncomment for TS 3.0\n// export function forkJoin(sources: []): Observable<never>;\nexport function forkJoin<A>(sources: [ObservableInput<A>]): Observable<[A]>;\nexport function forkJoin<A, B>(sources: [ObservableInput<A>, ObservableInput<B>]): Observable<[A, B]>;\nexport function forkJoin<A, B, C>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>]): Observable<[A, B, C]>;\nexport function forkJoin<A, B, C, D>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>]): Observable<[A, B, C, D]>;\nexport function forkJoin<A, B, C, D, E>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>]): Observable<[A, B, C, D, E]>;\nexport function forkJoin<A, B, C, D, E, F>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>, ObservableInput<F>]): Observable<[A, B, C, D, E, F]>;\nexport function forkJoin<A extends ObservableInput<any>[]>(sources: A): Observable<ObservedValuesFromArray<A>[]>;\n\n// forkJoin({})\nexport function forkJoin(sourcesObject: {}): Observable<never>;\nexport function forkJoin<T, K extends keyof T>(sourcesObject: T): Observable<{ [K in keyof T]: ObservedValueOf<T[K]> }>;\n\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport function forkJoin(...args: Array<ObservableInput<any>|Function>): Observable<any>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin<T>(...sources: ObservableInput<T>[]): Observable<T[]>;\n/* tslint:enable:max-line-length */\n\n/**\n * Accepts an `Array` of {@link ObservableInput} or a dictionary `Object` of {@link ObservableInput} and returns\n * an {@link Observable} that emits either an array of values in the exact same order as the passed array,\n * or a dictionary of values in the same shape as the passed dictionary.\n *\n * <span class=\"informal\">Wait for Observables to complete and then combine last values they emitted.</span>\n *\n * ![](forkJoin.png)\n *\n * `forkJoin` is an operator that takes any number of input observables which can be passed either as an array\n * or a dictionary of input observables. If no input observables are provided, resulting stream will complete\n * immediately.\n *\n * `forkJoin` will wait for all passed observables to complete and then it will emit an array or an object with last\n * values from corresponding observables.\n *\n * If you pass an array of `n` observables to the operator, resulting\n * array will have `n` values, where first value is the last thing emitted by the first observable,\n * second value is the last thing emitted by the second observable and so on.\n *\n * If you pass a dictionary of observables to the operator, resulting\n * objects will have the same keys as the dictionary passed, with their last values they've emitted\n * located at the corresponding key.\n *\n * That means `forkJoin` will not emit more than once and it will complete after that. If you need to emit combined\n * values not only at the end of lifecycle of passed observables, but also throughout it, try out {@link combineLatest}\n * or {@link zip} instead.\n *\n * In order for resulting array to have the same length as the number of input observables, whenever any of\n * that observables completes without emitting any value, `forkJoin` will complete at that moment as well\n * and it will not emit anything either, even if it already has some last values from other observables.\n * Conversely, if there is an observable that never completes, `forkJoin` will never complete as well,\n * unless at any point some other observable completes without emitting value, which brings us back to\n * the previous case. Overall, in order for `forkJoin` to emit a value, all observables passed as arguments\n * have to emit something at least once and complete.\n *\n * If any input observable errors at some point, `forkJoin` will error as well and all other observables\n * will be immediately unsubscribed.\n *\n * Optionally `forkJoin` accepts project function, that will be called with values which normally\n * would land in emitted array. Whatever is returned by project function, will appear in output\n * observable instead. This means that default project can be thought of as a function that takes\n * all its arguments and puts them into an array. Note that project function will be called only\n * when output observable is supposed to emit a result.\n *\n * ## Examples\n *\n * ### Use forkJoin with a dictionary of observable inputs\n * ```ts\n * import { forkJoin, of, timer } from 'rxjs';\n *\n * const observable = forkJoin({\n *   foo: of(1, 2, 3, 4),\n *   bar: Promise.resolve(8),\n *   baz: timer(4000),\n * });\n * observable.subscribe({\n *  next: value => console.log(value),\n *  complete: () => console.log('This is how it ends!'),\n * });\n *\n * // Logs:\n * // { foo: 4, bar: 8, baz: 0 } after 4 seconds\n * // \"This is how it ends!\" immediately after\n * ```\n *\n * ### Use forkJoin with an array of observable inputs\n * ```ts\n * import { forkJoin, of } from 'rxjs';\n *\n * const observable = forkJoin([\n *   of(1, 2, 3, 4),\n *   Promise.resolve(8),\n *   timer(4000),\n * ]);\n * observable.subscribe({\n *  next: value => console.log(value),\n *  complete: () => console.log('This is how it ends!'),\n * });\n *\n * // Logs:\n * // [4, 8, 0] after 4 seconds\n * // \"This is how it ends!\" immediately after\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link zip}\n *\n * @param {...ObservableInput} sources Any number of Observables provided either as an array or as an arguments\n * passed directly to the operator.\n * @param {function} [project] Function that takes values emitted by input Observables and returns value\n * that will appear in resulting Observable instead of default array.\n * @return {Observable} Observable emitting either an array of last values emitted by passed Observables\n * or value from project function.\n */\nexport function forkJoin(\n  ...sources: any[]\n): Observable<any> {\n  if (sources.length === 1) {\n    const first = sources[0];\n    if (isArray(first)) {\n      return forkJoinInternal(first, null);\n    }\n    // TODO(benlesh): isObservable check will not be necessary when deprecated path is removed.\n    if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {\n      const keys = Object.keys(first);\n      return forkJoinInternal(keys.map(key => first[key]), keys);\n    }\n  }\n\n  // DEPRECATED PATHS BELOW HERE\n  if (typeof sources[sources.length - 1] === 'function') {\n    const resultSelector = sources.pop() as Function;\n    sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n    return forkJoinInternal(sources, null).pipe(\n      map((args: any[]) => resultSelector(...args))\n    );\n  }\n\n  return forkJoinInternal(sources, null);\n}\n\nfunction forkJoinInternal(sources: ObservableInput<any>[], keys: string[] | null): Observable<any> {\n  return new Observable(subscriber => {\n    const len = sources.length;\n    if (len === 0) {\n      subscriber.complete();\n      return;\n    }\n    const values = new Array(len);\n    let completed = 0;\n    let emitted = 0;\n    for (let i = 0; i < len; i++) {\n      const source = from(sources[i]);\n      let hasValue = false;\n      subscriber.add(source.subscribe({\n        next: value => {\n          if (!hasValue) {\n            hasValue = true;\n            emitted++;\n          }\n          values[i] = value;\n        },\n        error: err => subscriber.error(err),\n        complete: () => {\n          completed++;\n          if (completed === len || !hasValue) {\n            if (emitted === len) {\n              subscriber.next(keys ?\n                keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :\n                values);\n            }\n            subscriber.complete();\n          }\n        }\n      }));\n    }\n  });\n}\n", "import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\n\nconst toString: Function = (() => Object.prototype.toString)();\n\nexport interface NodeStyleEventEmitter {\n  addListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n  removeListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n}\n\nexport type NodeEventHandler = (...args: any[]) => void;\n\n// For APIs that implement `addListener` and `removeListener` methods that may\n// not use the same arguments or return EventEmitter values\n// such as React Native\nexport interface NodeCompatibleEventEmitter {\n  addListener: (eventName: string, handler: NodeEventHandler) => void | {};\n  removeListener: (eventName: string, handler: NodeEventHandler) => void | {};\n}\n\nexport interface JQueryStyleEventEmitter {\n  on: (eventName: string, handler: Function) => void;\n  off: (eventName: string, handler: Function) => void;\n}\n\nexport interface HasEventTargetAddRemove<E> {\n  addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void;\n  removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void;\n}\n\nexport type EventTargetLike<T> = HasEventTargetAddRemove<T> | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter;\n\nexport type FromEventTarget<T> = EventTargetLike<T> | ArrayLike<EventTargetLike<T>>;\n\nexport interface EventListenerOptions {\n  capture?: boolean;\n  passive?: boolean;\n  once?: boolean;\n}\n\nexport interface AddEventListenerOptions extends EventListenerOptions {\n  once?: boolean;\n  passive?: boolean;\n}\n\n/* tslint:disable:max-line-length */\nexport function fromEvent<T>(target: FromEventTarget<T>, eventName: string): Observable<T>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent<T>(target: FromEventTarget<T>, eventName: string, resultSelector: (...args: any[]) => T): Observable<T>;\nexport function fromEvent<T>(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions): Observable<T>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent<T>(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable<T>;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable that emits events of a specific type coming from the\n * given event target.\n *\n * <span class=\"informal\">Creates an Observable from DOM events, or Node.js\n * EventEmitter events or others.</span>\n *\n * ![](fromEvent.png)\n *\n * `fromEvent` accepts as a first argument event target, which is an object with methods\n * for registering event handler functions. As a second argument it takes string that indicates\n * type of event we want to listen for. `fromEvent` supports selected types of event targets,\n * which are described in detail below. If your event target does not match any of the ones listed,\n * you should use {@link fromEventPattern}, which can be used on arbitrary APIs.\n * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event\n * handler functions have different names, but they all accept a string describing event type\n * and function itself, which will be called whenever said event happens.\n *\n * Every time resulting Observable is subscribed, event handler function will be registered\n * to event target on given event type. When that event fires, value\n * passed as a first argument to registered function will be emitted by output Observable.\n * When Observable is unsubscribed, function will be unregistered from event target.\n *\n * Note that if event target calls registered function with more than one argument, second\n * and following arguments will not appear in resulting stream. In order to get access to them,\n * you can pass to `fromEvent` optional project function, which will be called with all arguments\n * passed to event handler. Output Observable will then emit value returned by project function,\n * instead of the usual value.\n *\n * Remember that event targets listed below are checked via duck typing. It means that\n * no matter what kind of object you have and no matter what environment you work in,\n * you can safely use `fromEvent` on that object if it exposes described methods (provided\n * of course they behave as was described above). So for example if Node.js library exposes\n * event target which has the same method names as DOM EventTarget, `fromEvent` is still\n * a good choice.\n *\n * If the API you use is more callback then event handler oriented (subscribed\n * callback function fires only once and thus there is no need to manually\n * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback}\n * instead.\n *\n * `fromEvent` supports following types of event targets:\n *\n * **DOM EventTarget**\n *\n * This is an object with `addEventListener` and `removeEventListener` methods.\n *\n * In the browser, `addEventListener` accepts - apart from event type string and event\n * handler function arguments - optional third parameter, which is either an object or boolean,\n * both used for additional configuration how and when passed function will be called. When\n * `fromEvent` is used with event target of that type, you can provide this values\n * as third parameter as well.\n *\n * **Node.js EventEmitter**\n *\n * An object with `addListener` and `removeListener` methods.\n *\n * **JQuery-style event target**\n *\n * An object with `on` and `off` methods\n *\n * **DOM NodeList**\n *\n * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`.\n *\n * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes\n * it contains and install event handler function in every of them. When returned Observable\n * is unsubscribed, function will be removed from all Nodes.\n *\n * **DOM HtmlCollection**\n *\n * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is\n * installed and removed in each of elements.\n *\n *\n * ## Examples\n * ### Emits clicks happening on the DOM document\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * clicks.subscribe(x => console.log(x));\n *\n * // Results in:\n * // MouseEvent object logged to console every time a click\n * // occurs on the document.\n * ```\n *\n * ### Use addEventListener with capture option\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicksInDocument = fromEvent(document, 'click', true); // note optional configuration parameter\n *                                                              // which will be passed to addEventListener\n * const clicksInDiv = fromEvent(someDivInDocument, 'click');\n *\n * clicksInDocument.subscribe(() => console.log('document'));\n * clicksInDiv.subscribe(() => console.log('div'));\n *\n * // By default events bubble UP in DOM tree, so normally\n * // when we would click on div in document\n * // \"div\" would be logged first and then \"document\".\n * // Since we specified optional `capture` option, document\n * // will catch event when it goes DOWN DOM tree, so console\n * // will log \"document\" and then \"div\".\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n * @see {@link fromEventPattern}\n *\n * @param {FromEventTarget<T>} target The DOM EventTarget, Node.js\n * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to.\n * @param {string} eventName The event name of interest, being emitted by the\n * `target`.\n * @param {EventListenerOptions} [options] Options to pass through to addEventListener\n * @return {Observable<T>}\n * @name fromEvent\n */\nexport function fromEvent<T>(\n  target: FromEventTarget<T>,\n  eventName: string,\n  options?: EventListenerOptions | ((...args: any[]) => T),\n  resultSelector?: ((...args: any[]) => T)\n): Observable<T> {\n\n  if (isFunction(options)) {\n    // DEPRECATED PATH\n    resultSelector = options;\n    options = undefined;\n  }\n  if (resultSelector) {\n    // DEPRECATED PATH\n    return fromEvent<T>(target, eventName, <EventListenerOptions | undefined>options).pipe(\n      map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n    );\n  }\n\n  return new Observable<T>(subscriber => {\n    function handler(e: T) {\n      if (arguments.length > 1) {\n        subscriber.next(Array.prototype.slice.call(arguments));\n      } else {\n        subscriber.next(e);\n      }\n    }\n    setupSubscription(target, eventName, handler, subscriber, options as EventListenerOptions);\n  });\n}\n\nfunction setupSubscription<T>(sourceObj: FromEventTarget<T>, eventName: string,\n                              handler: (...args: any[]) => void, subscriber: Subscriber<T>,\n                              options?: EventListenerOptions) {\n  let unsubscribe: () => void;\n  if (isEventTarget(sourceObj)) {\n    const source = sourceObj;\n    sourceObj.addEventListener(eventName, handler, options);\n    unsubscribe = () => source.removeEventListener(eventName, handler, options);\n  } else if (isJQueryStyleEventEmitter(sourceObj)) {\n    const source = sourceObj;\n    sourceObj.on(eventName, handler);\n    unsubscribe = () => source.off(eventName, handler);\n  } else if (isNodeStyleEventEmitter(sourceObj)) {\n    const source = sourceObj;\n    sourceObj.addListener(eventName, handler as NodeEventHandler);\n    unsubscribe = () => source.removeListener(eventName, handler as NodeEventHandler);\n  } else if (sourceObj && (sourceObj as any).length) {\n    for (let i = 0, len = (sourceObj as any).length; i < len; i++) {\n      setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n    }\n  } else {\n    throw new TypeError('Invalid event target');\n  }\n\n  subscriber.add(unsubscribe);\n}\n\nfunction isNodeStyleEventEmitter(sourceObj: any): sourceObj is NodeStyleEventEmitter {\n  return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\n\nfunction isJQueryStyleEventEmitter(sourceObj: any): sourceObj is JQueryStyleEventEmitter {\n  return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\n\nfunction isEventTarget(sourceObj: any): sourceObj is HasEventTargetAddRemove<any> {\n  return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n", "import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { NodeEventHandler } from './fromEvent';\nimport { map } from '../operators/map';\n\n/* tslint:disable:max-line-length */\nexport function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable<T>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable<T>;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable from an arbitrary API for registering event handlers.\n *\n * <span class=\"informal\">When that method for adding event handler was something {@link fromEvent}\n * was not prepared for.</span>\n *\n * ![](fromEventPattern.png)\n *\n * `fromEventPattern` allows you to convert into an Observable any API that supports registering handler functions\n * for events. It is similar to {@link fromEvent}, but far\n * more flexible. In fact, all use cases of {@link fromEvent} could be easily handled by\n * `fromEventPattern` (although in slightly more verbose way).\n *\n * This operator accepts as a first argument an `addHandler` function, which will be injected with\n * handler parameter. That handler is actually an event handler function that you now can pass\n * to API expecting it. `addHandler` will be called whenever Observable\n * returned by the operator is subscribed, so registering handler in API will not\n * necessarily happen when `fromEventPattern` is called.\n *\n * After registration, every time an event that we listen to happens,\n * Observable returned by `fromEventPattern` will emit value that event handler\n * function was called with. Note that if event handler was called with more\n * then one argument, second and following arguments will not appear in the Observable.\n *\n * If API you are using allows to unregister event handlers as well, you can pass to `fromEventPattern`\n * another function - `removeHandler` - as a second parameter. It will be injected\n * with the same handler function as before, which now you can use to unregister\n * it from the API. `removeHandler` will be called when consumer of resulting Observable\n * unsubscribes from it.\n *\n * In some APIs unregistering is actually handled differently. Method registering an event handler\n * returns some kind of token, which is later used to identify which function should\n * be unregistered or it itself has method that unregisters event handler.\n * If that is the case with your API, make sure token returned\n * by registering method is returned by `addHandler`. Then it will be passed\n * as a second argument to `removeHandler`, where you will be able to use it.\n *\n * If you need access to all event handler parameters (not only the first one),\n * or you need to transform them in any way, you can call `fromEventPattern` with optional\n * third parameter - project function which will accept all arguments passed to\n * event handler when it is called. Whatever is returned from project function will appear on\n * resulting stream instead of usual event handlers first argument. This means\n * that default project can be thought of as function that takes its first parameter\n * and ignores the rest.\n *\n * ## Example\n * ### Emits clicks happening on the DOM document\n *\n * ```ts\n * import { fromEventPattern } from 'rxjs';\n *\n * function addClickHandler(handler) {\n *   document.addEventListener('click', handler);\n * }\n *\n * function removeClickHandler(handler) {\n *   document.removeEventListener('click', handler);\n * }\n *\n * const clicks = fromEventPattern(\n *   addClickHandler,\n *   removeClickHandler\n * );\n * clicks.subscribe(x => console.log(x));\n *\n * // Whenever you click anywhere in the browser, DOM MouseEvent\n * // object will be logged.\n * ```\n *\n * ## Example\n * ### Use with API that returns cancellation token\n *\n * ```ts\n * import { fromEventPattern } from 'rxjs';\n *\n * const token = someAPI.registerEventHandler(function() {});\n * someAPI.unregisterEventHandler(token); // this APIs cancellation method accepts\n *                                        // not handler itself, but special token.\n *\n * const someAPIObservable = fromEventPattern(\n *   function(handler) { return someAPI.registerEventHandler(handler); }, // Note that we return the token here...\n *   function(handler, token) { someAPI.unregisterEventHandler(token); }  // ...to then use it here.\n * );\n * ```\n *\n * ## Example\n * ### Use with project function\n *\n * ```ts\n * import { fromEventPattern } from 'rxjs';\n *\n * someAPI.registerEventHandler((eventType, eventMessage) => {\n *   console.log(eventType, eventMessage); // Logs \"EVENT_TYPE\" \"EVENT_MESSAGE\" to console.\n * });\n *\n * const someAPIObservable = fromEventPattern(\n *   handler => someAPI.registerEventHandler(handler),\n *   handler => someAPI.unregisterEventHandler(handler)\n *   (eventType, eventMessage) => eventType + \" --- \" + eventMessage // without that function only \"EVENT_TYPE\"\n * );                                                                // would be emitted by the Observable\n *\n * someAPIObservable.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"EVENT_TYPE --- EVENT_MESSAGE\"\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n *\n * @param {function(handler: Function): any} addHandler A function that takes\n * a `handler` function as argument and attaches it somehow to the actual\n * source of events.\n * @param {function(handler: Function, token?: any): void} [removeHandler] A function that\n * takes a `handler` function as an argument and removes it from the event source. If `addHandler`\n * returns some kind of token, `removeHandler` function will have it as a second parameter.\n * @param {function(...args: any): T} [project] A function to\n * transform results. It takes the arguments from the event handler and\n * should return a single value.\n * @return {Observable<T>} Observable which, when an event happens, emits first parameter\n * passed to registered event handler. Alternatively it emits whatever project function returns\n * at that moment.\n * @static true\n * @name fromEventPattern\n * @owner Observable\n */\n\nexport function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any,\n                                    removeHandler?: (handler: NodeEventHandler, signal?: any) => void,\n                                    resultSelector?: (...args: any[]) => T): Observable<T | T[]> {\n\n  if (resultSelector) {\n    // DEPRECATED PATH\n    return fromEventPattern<T>(addHandler, removeHandler).pipe(\n      map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n    );\n  }\n\n  return new Observable<T | T[]>(subscriber => {\n    const handler = (...e: T[]) => subscriber.next(e.length === 1 ? e[0] : e);\n\n    let retValue: any;\n    try {\n      retValue = addHandler(handler);\n    } catch (err) {\n      subscriber.error(err);\n      return undefined;\n    }\n\n    if (!isFunction(removeHandler)) {\n      return undefined;\n    }\n\n    return () => removeHandler(handler, retValue) ;\n  });\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { identity } from '../util/identity';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\n\nexport type ConditionFunc<S> = (state: S) => boolean;\nexport type IterateFunc<S> = (state: S) => S;\nexport type ResultFunc<S, T> = (state: S) => T;\n\ninterface SchedulerState<T, S> {\n  needIterate?: boolean;\n  state: S;\n  subscriber: Subscriber<T>;\n  condition?: ConditionFunc<S>;\n  iterate: IterateFunc<S>;\n  resultSelector: ResultFunc<S, T>;\n}\n\nexport interface GenerateBaseOptions<S> {\n  /**\n   * Initial state.\n   */\n  initialState: S;\n  /**\n   * Condition function that accepts state and returns boolean.\n   * When it returns false, the generator stops.\n   * If not specified, a generator never stops.\n   */\n  condition?: ConditionFunc<S>;\n  /**\n   * Iterate function that accepts state and returns new state.\n   */\n  iterate: IterateFunc<S>;\n  /**\n   * SchedulerLike to use for generation process.\n   * By default, a generator starts immediately.\n   */\n  scheduler?: SchedulerLike;\n}\n\nexport interface GenerateOptions<T, S> extends GenerateBaseOptions<S> {\n  /**\n   * Result selection function that accepts state and returns a value to emit.\n   */\n  resultSelector: ResultFunc<S, T>;\n}\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n *\n * ![](generate.png)\n *\n * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>\n * const res = generate(0, x => x < 10, x => x + 1, x => x);\n *\n * @example <caption>Using asap scheduler, produces sequence of 2, 3, 5, then completes.</caption>\n * const res = generate(1, x => x < 5, x => x * 2, x => x + 1, asap);\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated)\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately.\n * @returns {Observable<T>} The generated sequence.\n */\n  export function generate<T, S>(initialState: S,\n                                 condition: ConditionFunc<S>,\n                                 iterate: IterateFunc<S>,\n                                 resultSelector: ResultFunc<S, T>,\n                                 scheduler?: SchedulerLike): Observable<T>;\n\n/**\n * Generates an Observable by running a state-driven loop\n * that emits an element on each iteration.\n *\n * <span class=\"informal\">Use it instead of nexting values in a for loop.</span>\n *\n * <img src=\"./img/generate.png\" width=\"100%\">\n *\n * `generate` allows you to create stream of values generated with a loop very similar to\n * traditional for loop. First argument of `generate` is a beginning value. Second argument\n * is a function that accepts this value and tests if some condition still holds. If it does,\n * loop continues, if not, it stops. Third value is a function which takes previously defined\n * value and modifies it in some way on each iteration. Note how these three parameters\n * are direct equivalents of three expressions in regular for loop: first expression\n * initializes some state (for example numeric index), second tests if loop can make next\n * iteration (for example if index is lower than 10) and third states how defined value\n * will be modified on every step (index will be incremented by one).\n *\n * Return value of a `generate` operator is an Observable that on each loop iteration\n * emits a value. First, condition function is ran. If it returned true, Observable\n * emits currently stored value (initial value at the first iteration) and then updates\n * that value with iterate function. If at some point condition returned false, Observable\n * completes at that moment.\n *\n * Optionally you can pass fourth parameter to `generate` - a result selector function which allows you\n * to immediately map value that would normally be emitted by an Observable.\n *\n * If you find three anonymous functions in `generate` call hard to read, you can provide\n * single object to the operator instead. That object has properties: `initialState`,\n * `condition`, `iterate` and `resultSelector`, which should have respective values that you\n * would normally pass to `generate`. `resultSelector` is still optional, but that form\n * of calling `generate` allows you to omit `condition` as well. If you omit it, that means\n * condition always holds, so output Observable will never complete.\n *\n * Both forms of `generate` can optionally accept a scheduler. In case of multi-parameter call,\n * scheduler simply comes as a last argument (no matter if there is resultSelector\n * function or not). In case of single-parameter call, you can provide it as a\n * `scheduler` property on object passed to the operator. In both cases scheduler decides when\n * next iteration of the loop will happen and therefore when next value will be emitted\n * by the Observable. For example to ensure that each value is pushed to the observer\n * on separate task in event loop, you could use `async` scheduler. Note that\n * by default (when no scheduler is passed) values are simply emitted synchronously.\n *\n *\n * @example <caption>Use with condition and iterate functions.</caption>\n * const generated = generate(0, x => x < 3, x => x + 1);\n *\n * generated.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1\n * // 2\n * // \"Yo!\"\n *\n *\n * @example <caption>Use with condition, iterate and resultSelector functions.</caption>\n * const generated = generate(0, x => x < 3, x => x + 1, x => x * 1000);\n *\n * generated.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // \"Yo!\"\n *\n *\n * @example <caption>Use with options object.</caption>\n * const generated = generate({\n *   initialState: 0,\n *   condition(value) { return value < 3; },\n *   iterate(value) { return value + 1; },\n *   resultSelector(value) { return value * 1000; }\n * });\n *\n * generated.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // \"Yo!\"\n *\n * @example <caption>Use options object without condition function.</caption>\n * const generated = generate({\n *   initialState: 0,\n *   iterate(value) { return value + 1; },\n *   resultSelector(value) { return value * 1000; }\n * });\n *\n * generated.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('Yo!') // This will never run.\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // 3000\n * // ...and never stops.\n *\n *\n * @see {@link from}\n * @see {@link index/Observable.create}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {function (state: S): T} [resultSelector] Selector function for results produced in the sequence.\n * @param {Scheduler} [scheduler] A {@link Scheduler} on which to run the generator loop. If not provided, defaults to emitting immediately.\n * @return {Observable<T>} The generated sequence.\n */\nexport function generate<S>(initialState: S,\n                            condition: ConditionFunc<S>,\n                            iterate: IterateFunc<S>,\n                            scheduler?: SchedulerLike): Observable<S>;\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition and scheduler.\n *\n * ![](generate.png)\n *\n * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>\n * const res = generate({\n *   initialState: 0,\n *   condition: x => x < 10,\n *   iterate: x => x + 1,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateBaseOptions<S>} options Object that must contain initialState, iterate and might contain condition and scheduler.\n * @returns {Observable<S>} The generated sequence.\n */\nexport function generate<S>(options: GenerateBaseOptions<S>): Observable<S>;\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition, result selector and scheduler.\n *\n * ![](generate.png)\n *\n * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>\n * const res = generate({\n *   initialState: 0,\n *   condition: x => x < 10,\n *   iterate: x => x + 1,\n *   resultSelector: x => x,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateOptions<T, S>} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler.\n * @returns {Observable<T>} The generated sequence.\n */\nexport function generate<T, S>(options: GenerateOptions<T, S>): Observable<T>;\n\nexport function generate<T, S>(initialStateOrOptions: S | GenerateOptions<T, S>,\n                               condition?: ConditionFunc<S>,\n                               iterate?: IterateFunc<S>,\n                               resultSelectorOrObservable?: (ResultFunc<S, T>) | SchedulerLike,\n                               scheduler?: SchedulerLike): Observable<T> {\n\n  let resultSelector: ResultFunc<S, T>;\n  let initialState: S;\n\n  if (arguments.length == 1) {\n    const options = initialStateOrOptions as GenerateOptions<T, S>;\n    initialState = options.initialState;\n    condition = options.condition;\n    iterate = options.iterate;\n    resultSelector = options.resultSelector || identity as ResultFunc<S, T>;\n    scheduler = options.scheduler;\n  } else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n    initialState = initialStateOrOptions as S;\n    resultSelector = identity as ResultFunc<S, T>;\n    scheduler = resultSelectorOrObservable as SchedulerLike;\n  } else {\n    initialState = initialStateOrOptions as S;\n    resultSelector = resultSelectorOrObservable as ResultFunc<S, T>;\n  }\n\n  return new Observable<T>(subscriber => {\n    let state = initialState;\n    if (scheduler) {\n      return scheduler.schedule<SchedulerState<T, S>>(dispatch, 0, {\n        subscriber,\n        iterate,\n        condition,\n        resultSelector,\n        state\n      });\n    }\n\n    do {\n      if (condition) {\n        let conditionResult: boolean;\n        try {\n          conditionResult = condition(state);\n        } catch (err) {\n          subscriber.error(err);\n          return undefined;\n        }\n        if (!conditionResult) {\n          subscriber.complete();\n          break;\n        }\n      }\n      let value: T;\n      try {\n        value = resultSelector(state);\n      } catch (err) {\n        subscriber.error(err);\n        return undefined;\n      }\n      subscriber.next(value);\n      if (subscriber.closed) {\n        break;\n      }\n      try {\n        state = iterate(state);\n      } catch (err) {\n        subscriber.error(err);\n        return undefined;\n      }\n    } while (true);\n\n    return undefined;\n  });\n}\n\nfunction dispatch<T, S>(this: SchedulerAction<SchedulerState<T, S>>, state: SchedulerState<T, S>) {\n  const { subscriber, condition } = state;\n  if (subscriber.closed) {\n    return undefined;\n  }\n  if (state.needIterate) {\n    try {\n      state.state = state.iterate(state.state);\n    } catch (err) {\n      subscriber.error(err);\n      return undefined;\n    }\n  } else {\n    state.needIterate = true;\n  }\n  if (condition) {\n    let conditionResult: boolean;\n    try {\n      conditionResult = condition(state.state);\n    } catch (err) {\n      subscriber.error(err);\n      return undefined;\n    }\n    if (!conditionResult) {\n      subscriber.complete();\n      return undefined;\n    }\n    if (subscriber.closed) {\n      return undefined;\n    }\n  }\n  let value: T;\n  try {\n    value = state.resultSelector(state.state);\n  } catch (err) {\n    subscriber.error(err);\n    return undefined;\n  }\n  if (subscriber.closed) {\n    return undefined;\n  }\n  subscriber.next(value);\n  if (subscriber.closed) {\n    return undefined;\n  }\n  return this.schedule(state);\n}\n", "import { Observable } from '../Observable';\nimport { defer } from './defer';\nimport { EMPTY } from './empty';\nimport { SubscribableOrPromise } from '../types';\n\n/**\n * Decides at subscription time which Observable will actually be subscribed.\n *\n * <span class=\"informal\">`If` statement for Observables.</span>\n *\n * `iif` accepts a condition function and two Observables. When\n * an Observable returned by the operator is subscribed, condition function will be called.\n * Based on what boolean it returns at that moment, consumer will subscribe either to\n * the first Observable (if condition was true) or to the second (if condition was false). Condition\n * function may also not return anything - in that case condition will be evaluated as false and\n * second Observable will be subscribed.\n *\n * Note that Observables for both cases (true and false) are optional. If condition points to an Observable that\n * was left undefined, resulting stream will simply complete immediately. That allows you to, rather\n * than controlling which Observable will be subscribed, decide at runtime if consumer should have access\n * to given Observable or not.\n *\n * If you have more complex logic that requires decision between more than two Observables, {@link defer}\n * will probably be a better choice. Actually `iif` can be easily implemented with {@link defer}\n * and exists only for convenience and readability reasons.\n *\n *\n * ## Examples\n * ### Change at runtime which Observable will be subscribed\n * ```ts\n * import { iif, of } from 'rxjs';\n *\n * let subscribeToFirst;\n * const firstOrSecond = iif(\n *   () => subscribeToFirst,\n *   of('first'),\n *   of('second'),\n * );\n *\n * subscribeToFirst = true;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"first\"\n *\n * subscribeToFirst = false;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"second\"\n *\n * ```\n *\n * ### Control an access to an Observable\n * ```ts\n * let accessGranted;\n * const observableIfYouHaveAccess = iif(\n *   () => accessGranted,\n *   of('It seems you have an access...'), // Note that only one Observable is passed to the operator.\n * );\n *\n * accessGranted = true;\n * observableIfYouHaveAccess.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"It seems you have an access...\"\n * // \"The end\"\n *\n * accessGranted = false;\n * observableIfYouHaveAccess.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"The end\"\n * ```\n *\n * @see {@link defer}\n *\n * @param {function(): boolean} condition Condition which Observable should be chosen.\n * @param {Observable} [trueObservable] An Observable that will be subscribed if condition is true.\n * @param {Observable} [falseObservable] An Observable that will be subscribed if condition is false.\n * @return {Observable} Either first or second Observable, depending on condition.\n * @static true\n * @name iif\n * @owner Observable\n*/\nexport function iif<T = never, F = never>(\n  condition: () => boolean,\n  trueResult: SubscribableOrPromise<T> = EMPTY,\n  falseResult: SubscribableOrPromise<F> = EMPTY\n): Observable<T|F> {\n  return defer(() => condition() ? trueResult : falseResult);\n}\n", "import { isArray } from './isArray';\n\nexport function isNumeric(val: any): val is number | string {\n  // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n  // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n  // subtraction forces infinities to NaN\n  // adding 1 corrects loss of precision from parseFloat (#15100)\n  return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n", "import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { isNumeric } from '../util/isNumeric';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that emits sequential numbers every specified\n * interval of time, on a specified {@link SchedulerLike}.\n *\n * <span class=\"informal\">Emits incremental numbers periodically in time.\n * </span>\n *\n * ![](interval.png)\n *\n * `interval` returns an Observable that emits an infinite sequence of\n * ascending integers, with a constant interval of time of your choosing\n * between those emissions. The first emission is not sent immediately, but\n * only after the first period has passed. By default, this operator uses the\n * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any\n * {@link SchedulerLike} to it.\n *\n * ## Example\n * Emits ascending numbers, one every second (1000ms) up to the number 3\n * ```ts\n * import { interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const numbers = interval(1000);\n *\n * const takeFourNumbers = numbers.pipe(take(4));\n *\n * takeFourNumbers.subscribe(x => console.log('Next: ', x));\n *\n * // Logs:\n * // Next: 0\n * // Next: 1\n * // Next: 2\n * // Next: 3\n * ```\n *\n * @see {@link timer}\n * @see {@link delay}\n *\n * @param {number} [period=0] The interval size in milliseconds (by default)\n * or the time unit determined by the scheduler's clock.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a sequential number each time\n * interval.\n * @static true\n * @name interval\n * @owner Observable\n */\nexport function interval(period = 0,\n                         scheduler: SchedulerLike = async): Observable<number> {\n  if (!isNumeric(period) || period < 0) {\n    period = 0;\n  }\n\n  if (!scheduler || typeof scheduler.schedule !== 'function') {\n    scheduler = async;\n  }\n\n  return new Observable<number>(subscriber => {\n    subscriber.add(\n      scheduler.schedule(dispatch, period, { subscriber, counter: 0, period })\n    );\n    return subscriber;\n  });\n}\n\nfunction dispatch(this: SchedulerAction<IntervalState>, state: IntervalState) {\n  const { subscriber, counter, period } = state;\n  subscriber.next(counter);\n  this.schedule({ subscriber, counter: counter + 1, period }, period);\n}\n\ninterface IntervalState {\n  subscriber: Subscriber<number>;\n  counter: number;\n  period: number;\n}\n", "import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike} from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T>(v1: ObservableInput<T>, scheduler: SchedulerLike): Observable<T>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T>(v1: ObservableInput<T>, concurrent: number, scheduler: SchedulerLike): Observable<T>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, scheduler: SchedulerLike): Observable<T | T2>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler: SchedulerLike): Observable<T | T2 | T3>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;\n\nexport function merge<T>(v1: ObservableInput<T>): Observable<T>;\nexport function merge<T>(v1: ObservableInput<T>, concurrent?: number): Observable<T>;\nexport function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>): Observable<T | T2>;\nexport function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, concurrent?: number): Observable<T | T2>;\nexport function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<T | T2 | T3>;\nexport function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent?: number): Observable<T | T2 | T3>;\nexport function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<T | T2 | T3 | T4>;\nexport function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent?: number): Observable<T | T2 | T3 | T4>;\nexport function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<T | T2 | T3 | T4 | T5>;\nexport function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent?: number): Observable<T | T2 | T3 | T4 | T5>;\nexport function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<T | T2 | T3 | T4 | T5 | T6>;\nexport function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent?: number): Observable<T | T2 | T3 | T4 | T5 | T6>;\nexport function merge<T>(...observables: (ObservableInput<T> | number)[]): Observable<T>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T>(...observables: (ObservableInput<T> | SchedulerLike | number)[]): Observable<T>;\nexport function merge<T, R>(...observables: (ObservableInput<any> | number)[]): Observable<R>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge<T, R>(...observables: (ObservableInput<any> | SchedulerLike | number)[]): Observable<R>;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which concurrently emits all values from every\n * given input Observable.\n *\n * <span class=\"informal\">Flattens multiple Observables together by blending\n * their values into one Observable.</span>\n *\n * ![](merge.png)\n *\n * `merge` subscribes to each given input Observable (as arguments), and simply\n * forwards (without doing any transformation) all the values from all the input\n * Observables to the output Observable. The output Observable only completes\n * once all input Observables have completed. Any error delivered by an input\n * Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n * ### Merge together two Observables: 1s interval and clicks\n * ```ts\n * import { merge, fromEvent, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const timer = interval(1000);\n * const clicksOrTimer = merge(clicks, timer);\n * clicksOrTimer.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // timer will emit ascending values, one every second(1000ms) to console\n * // clicks logs MouseEvents to console everytime the \"document\" is clicked\n * // Since the two streams are merged you see these happening\n * // as they occur.\n * ```\n *\n * ### Merge together 3 Observables, but only 2 run concurrently\n * ```ts\n * import { merge, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n * const concurrent = 2; // the argument\n * const merged = merge(timer1, timer2, timer3, concurrent);\n * merged.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - First timer1 and timer2 will run concurrently\n * // - timer1 will emit a value every 1000ms for 10 iterations\n * // - timer2 will emit a value every 2000ms for 6 iterations\n * // - after timer1 hits its max iteration, timer2 will\n * //   continue, and timer3 will start to run concurrently with timer2\n * // - when timer2 hits its max iteration it terminates, and\n * //   timer3 will continue to emit a value every 500ms until it is complete\n * ```\n *\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n *\n * @param {...ObservableInput} observables Input Observables to merge together.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for managing\n * concurrency of input Observables.\n * @return {Observable} an Observable that emits items that are the result of\n * every input Observable.\n * @static true\n * @name merge\n * @owner Observable\n */\nexport function merge<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike | number>): Observable<R> {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler: SchedulerLike = null;\n  let last: any = observables[observables.length - 1];\n  if (isScheduler(last)) {\n    scheduler = <SchedulerLike>observables.pop();\n    if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n      concurrent = <number>observables.pop();\n    }\n  } else if (typeof last === 'number') {\n    concurrent = <number>observables.pop();\n  }\n\n  if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n    return <Observable<R>>observables[0];\n  }\n\n  return mergeAll<R>(concurrent)(fromArray<any>(observables, scheduler));\n}\n", "import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\n\n/**\n * An Observable that emits no items to the Observer and never completes.\n *\n * ![](never.png)\n *\n * A simple Observable that emits neither values nor errors nor the completion\n * notification. It can be used for testing purposes or for composing with other\n * Observables. Please note that by never emitting a complete notification, this\n * Observable keeps the subscription from being disposed automatically.\n * Subscriptions need to be manually disposed.\n *\n * ##  Example\n * ### Emit the number 7, then never emit anything else (not even complete)\n * ```ts\n * import { NEVER } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * function info() {\n *   console.log('Will not be called');\n * }\n * const result = NEVER.pipe(startWith(7));\n * result.subscribe(x => console.log(x), info, info);\n *\n * ```\n *\n * @see {@link Observable}\n * @see {@link index/EMPTY}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const NEVER = new Observable<never>(noop);\n\n/**\n * @deprecated Deprecated in favor of using {@link NEVER} constant.\n */\nexport function never () {\n  return NEVER;\n}\n", "import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNext<R>(v: ObservableInput<R>): Observable<R>;\nexport function onErrorResumeNext<T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<R>;\nexport function onErrorResumeNext<T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<R>;\nexport function onErrorResumeNext<T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<R>;\nexport function onErrorResumeNext<T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<R>;\n\nexport function onErrorResumeNext<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;\nexport function onErrorResumeNext<R>(array: ObservableInput<any>[]): Observable<R>;\n/* tslint:enable:max-line-length */\n\n/**\n * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one\n * that was passed.\n *\n * <span class=\"informal\">Execute series of Observables no matter what, even if it means swallowing errors.</span>\n *\n * ![](onErrorResumeNext.png)\n *\n * `onErrorResumeNext` Will subscribe to each observable source it is provided, in order.\n * If the source it's subscribed to emits an error or completes, it will move to the next source\n * without error.\n *\n * If `onErrorResumeNext` is provided no arguments, or a single, empty array, it will return {@link index/EMPTY}.\n *\n * `onErrorResumeNext` is basically {@link concat}, only it will continue, even if one of its\n * sources emits an error.\n *\n * Note that there is no way to handle any errors thrown by sources via the result of\n * `onErrorResumeNext`. If you want to handle errors thrown in any given source, you can\n * always use the {@link catchError} operator on them before passing them into `onErrorResumeNext`.\n *\n * ## Example\n * Subscribe to the next Observable after map fails</caption>\n * ```ts\n * import { onErrorResumeNext, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * onErrorResumeNext(\n *  of(1, 2, 3, 0).pipe(\n *    map(x => {\n *      if (x === 0) throw Error();\n *      return 10 / x;\n *    })\n *  ),\n *  of(1, 2, 3),\n * )\n * .subscribe(\n *   val => console.log(val),\n *   err => console.log(err),          // Will never be called.\n *   () => console.log('done'),\n * );\n *\n * // Logs:\n * // 10\n * // 5\n * // 3.3333333333333335\n * // 1\n * // 2\n * // 3\n * // \"done\"\n * ```\n *\n * @see {@link concat}\n * @see {@link catchError}\n *\n * @param {...ObservableInput} sources Observables (or anything that *is* observable) passed either directly or as an array.\n * @return {Observable} An Observable that concatenates all sources, one after the other,\n * ignoring all errors, such that any error causes it to move on to the next source.\n */\nexport function onErrorResumeNext<T, R>(...sources: Array<ObservableInput<any> |\n                                                              Array<ObservableInput<any>> |\n                                                              ((...values: Array<any>) => R)>): Observable<R> {\n\n  if (sources.length === 0) {\n    return EMPTY;\n  }\n\n  const [ first, ...remainder ] = sources;\n\n  if (sources.length === 1 && isArray(first)) {\n    return onErrorResumeNext(...first);\n  }\n\n  return new Observable(subscriber => {\n    const subNext = () => subscriber.add(\n      onErrorResumeNext(...remainder).subscribe(subscriber)\n    );\n\n    return from(first).subscribe({\n      next(value) { subscriber.next(value); },\n      error: subNext,\n      complete: subNext,\n    });\n  });\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n\n/**\n * Convert an object into an Observable of `[key, value]` pairs.\n *\n * <span class=\"informal\">Turn entries of an object into a stream.</span>\n *\n * <img src=\"./img/pairs.png\" width=\"100%\">\n *\n * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each\n * emitted array has exactly two elements - the first is a key from the object\n * and the second is a value corresponding to that key. Keys are extracted from\n * an object via `Object.keys` function, which means that they will be only\n * enumerable keys that are present on an object directly - not ones inherited\n * via prototype chain.\n *\n * By default these arrays are emitted synchronously. To change that you can\n * pass a {@link SchedulerLike} as a second argument to `pairs`.\n *\n * @example <caption>Converts a javascript object to an Observable</caption>\n * ```ts\n * import { pairs } from 'rxjs';\n *\n * const obj = {\n *   foo: 42,\n *   bar: 56,\n *   baz: 78\n * };\n *\n * pairs(obj)\n * .subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('the end!')\n * );\n *\n * // Logs:\n * // [\"foo\", 42],\n * // [\"bar\", 56],\n * // [\"baz\", 78],\n * // \"the end!\"\n * ```\n *\n * @param {Object} obj The object to inspect and turn into an\n * Observable sequence.\n * @param {Scheduler} [scheduler] An optional IScheduler to schedule\n * when resulting Observable will emit values.\n * @returns {(Observable<Array<string|T>>)} An observable sequence of\n * [key, value] pairs from the object.\n */\nexport function pairs<T>(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]> {\n  if (!scheduler) {\n    return new Observable<[string, T]>(subscriber => {\n      const keys = Object.keys(obj);\n      for (let i = 0; i < keys.length && !subscriber.closed; i++) {\n        const key = keys[i];\n        if (obj.hasOwnProperty(key)) {\n          subscriber.next([key, obj[key]]);\n        }\n      }\n      subscriber.complete();\n    });\n  } else {\n    return new Observable<[string, T]>(subscriber => {\n      const keys = Object.keys(obj);\n      const subscription = new Subscription();\n      subscription.add(\n        scheduler.schedule<{ keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }>\n          (dispatch, 0, { keys, index: 0, subscriber, subscription, obj }));\n      return subscription;\n    });\n  }\n}\n\n/** @internal */\nexport function dispatch<T>(this: SchedulerAction<any>,\n                            state: { keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }) {\n  const { keys, index, subscriber, subscription, obj } = state;\n  if (!subscriber.closed) {\n    if (index < keys.length) {\n      const key = keys[index];\n      subscriber.next([key, obj[key]]);\n      subscription.add(this.schedule({ keys, index: index + 1, subscriber, subscription, obj }));\n    } else {\n      subscriber.complete();\n    }\n  }\n}\n", "export function not(pred: Function, thisArg: any): Function {\n  function notPred(): any {\n    return !((<any> notPred).pred.apply((<any> notPred).thisArg, arguments));\n  }\n  (<any> notPred).pred = pred;\n  (<any> notPred).thisArg = thisArg;\n  return notPred;\n}", "import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function filter<T, S extends T>(predicate: (value: T, index: number) => value is S,\n                                       thisArg?: any): OperatorFunction<T, S>;\nexport function filter<T>(predicate: (value: T, index: number) => boolean,\n                          thisArg?: any): MonoTypeOperatorFunction<T>;\n/* tslint:enable:max-line-length */\n\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * <span class=\"informal\">Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.</span>\n *\n * ![](filter.png)\n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * ## Example\n * Emit only click events whose target was a DIV element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { filter } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksOnDivs = clicks.pipe(filter(ev => ev.target.tagName === 'DIV'));\n * clicksOnDivs.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of values from the source that were\n * allowed by the `predicate` function.\n * @method filter\n * @owner Observable\n */\nexport function filter<T>(predicate: (value: T, index: number) => boolean,\n                          thisArg?: any): MonoTypeOperatorFunction<T> {\n  return function filterOperatorFunction(source: Observable<T>): Observable<T> {\n    return source.lift(new FilterOperator(predicate, thisArg));\n  };\n}\n\nclass FilterOperator<T> implements Operator<T, T> {\n  constructor(private predicate: (value: T, index: number) => boolean,\n              private thisArg?: any) {\n  }\n\n  call(subscriber: Subscriber<T>, source: any): TeardownLogic {\n    return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass FilterSubscriber<T> extends Subscriber<T> {\n\n  count: number = 0;\n\n  constructor(destination: Subscriber<T>,\n              private predicate: (value: T, index: number) => boolean,\n              private thisArg: any) {\n    super(destination);\n  }\n\n  // the try catch block below is left specifically for\n  // optimization and perf reasons. a tryCatcher is not necessary here.\n  protected _next(value: T) {\n    let result: any;\n    try {\n      result = this.predicate.call(this.thisArg, value, this.count++);\n    } catch (err) {\n      this.destination.error(err);\n      return;\n    }\n    if (result) {\n      this.destination.next(value);\n    }\n  }\n}\n", "import { not } from '../util/not';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { filter } from '../operators/filter';\nimport { ObservableInput } from '../types';\nimport { Observable } from '../Observable';\n\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * <span class=\"informal\">It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.</span>\n *\n * ![](partition.png)\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * ## Example\n * Partition a set of numbers into odds and evens observables\n * ```ts\n * import { of, partition } from 'rxjs';\n *\n * const observableValues = of(1, 2, 3, 4, 5, 6);\n * const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0);\n *\n * odds$.subscribe(x => console.log('odds', x));\n * evens$.subscribe(x => console.log('evens', x));\n *\n * // Logs:\n * // odds 1\n * // odds 3\n * // odds 5\n * // evens 2\n * // evens 4\n * // evens 6\n * ```\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable<T>, Observable<T>]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n */\nexport function partition<T>(\n  source: ObservableInput<T>,\n  predicate: (value: T, index: number) => boolean,\n  thisArg?: any\n): [Observable<T>, Observable<T>] {\n  return [\n    filter(predicate, thisArg)(new Observable<T>(subscribeTo(source))),\n    filter(not(predicate, thisArg) as any)(new Observable<T>(subscribeTo(source)))\n  ] as [Observable<T>, Observable<T>];\n}\n", "import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { TeardownLogic, ObservableInput } from '../types';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\n// tslint:disable:max-line-length\nexport function race<A>(arg: [ObservableInput<A>]): Observable<A>;\nexport function race<A, B>(arg: [ObservableInput<A>, ObservableInput<B>]): Observable<A | B>;\nexport function race<A, B, C>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>]): Observable<A | B | C>;\nexport function race<A, B, C, D>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>]): Observable<A | B | C | D>;\nexport function race<A, B, C, D, E>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>]): Observable<A | B | C | D | E>;\nexport function race<T>(arg: ObservableInput<T>[]): Observable<T>;\nexport function race(arg: ObservableInput<any>[]): Observable<{}>;\n\nexport function race<A>(a: ObservableInput<A>): Observable<A>;\nexport function race<A, B>(a: ObservableInput<A>, b: ObservableInput<B>): Observable<A | B>;\nexport function race<A, B, C>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>): Observable<A | B | C>;\nexport function race<A, B, C, D>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>): Observable<A | B | C | D>;\nexport function race<A, B, C, D, E>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>, e: ObservableInput<E>): Observable<A | B | C | D | E>;\n// tslint:enable:max-line-length\n\nexport function race<T>(observables: ObservableInput<T>[]): Observable<T>;\nexport function race(observables: ObservableInput<any>[]): Observable<{}>;\nexport function race<T>(...observables: ObservableInput<T>[]): Observable<T>;\nexport function race(...observables: ObservableInput<any>[]): Observable<{}>;\n\n/**\n * Returns an Observable that mirrors the first source Observable to emit an item.\n *\n * ## Example\n * ### Subscribes to the observable that was the first to start emitting.\n *\n * ```ts\n * import { race, interval } from 'rxjs';\n * import { mapTo } from 'rxjs/operators';\n *\n * const obs1 = interval(1000).pipe(mapTo('fast one'));\n * const obs2 = interval(3000).pipe(mapTo('medium one'));\n * const obs3 = interval(5000).pipe(mapTo('slow one'));\n *\n * race(obs3, obs1, obs2)\n * .subscribe(\n *   winner => console.log(winner)\n * );\n *\n * // result:\n * // a series of 'fast one'\n * ```\n *\n * @param {...Observables} ...observables sources used to race for which Observable emits first.\n * @return {Observable} an Observable that mirrors the output of the first Observable to emit an item.\n * @static true\n * @name race\n * @owner Observable\n */\nexport function race<T>(...observables: ObservableInput<any>[]): Observable<T> {\n  // if the only argument is an array, it was most likely called with\n  // `race([obs1, obs2, ...])`\n  if (observables.length === 1) {\n    if (isArray(observables[0])) {\n      observables = observables[0] as Observable<any>[];\n    } else {\n      return observables[0] as Observable<T>;\n    }\n  }\n\n  return fromArray(observables, undefined).lift(new RaceOperator<T>());\n}\n\nexport class RaceOperator<T> implements Operator<T, T> {\n  call(subscriber: Subscriber<T>, source: any): TeardownLogic {\n    return source.subscribe(new RaceSubscriber(subscriber));\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class RaceSubscriber<T> extends OuterSubscriber<T, T> {\n  private hasFirst: boolean = false;\n  private observables: Observable<any>[] = [];\n  private subscriptions: Subscription[] = [];\n\n  constructor(destination: Subscriber<T>) {\n    super(destination);\n  }\n\n  protected _next(observable: any): void {\n    this.observables.push(observable);\n  }\n\n  protected _complete() {\n    const observables = this.observables;\n    const len = observables.length;\n\n    if (len === 0) {\n      this.destination.complete!();\n    } else {\n      for (let i = 0; i < len && !this.hasFirst; i++) {\n        const observable = observables[i];\n        const subscription = subscribeToResult(this, observable, undefined, i)!;\n\n        if (this.subscriptions) {\n          this.subscriptions.push(subscription);\n        }\n        this.add(subscription);\n      }\n      this.observables = null!;\n    }\n  }\n\n  notifyNext(_outerValue: T, innerValue: T,\n             outerIndex: number): void {\n    if (!this.hasFirst) {\n      this.hasFirst = true;\n\n      for (let i = 0; i < this.subscriptions.length; i++) {\n        if (i !== outerIndex) {\n          let subscription = this.subscriptions[i];\n\n          subscription.unsubscribe();\n          this.remove(subscription);\n        }\n      }\n\n      this.subscriptions = null!;\n    }\n\n    this.destination.next!(innerValue);\n  }\n}\n", "import { SchedulerAction, SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\n\n/**\n * Creates an Observable that emits a sequence of numbers within a specified\n * range.\n *\n * <span class=\"informal\">Emits a sequence of numbers in a range.</span>\n *\n * ![](range.png)\n *\n * `range` operator emits a range of sequential integers, in order, where you\n * select the `start` of the range and its `length`. By default, uses no\n * {@link SchedulerLike} and just delivers the notifications synchronously, but may use\n * an optional {@link SchedulerLike} to regulate those deliveries.\n *\n * ## Example\n * Emits the numbers 1 to 10</caption>\n * ```ts\n * import { range } from 'rxjs';\n *\n * const numbers = range(1, 10);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link timer}\n * @see {@link index/interval}\n *\n * @param {number} [start=0] The value of the first integer in the sequence.\n * @param {number} count The number of sequential integers to generate.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emissions of the notifications.\n * @return {Observable} An Observable of numbers that emits a finite range of\n * sequential integers.\n * @static true\n * @name range\n * @owner Observable\n */\nexport function range(start: number = 0,\n                      count?: number,\n                      scheduler?: SchedulerLike): Observable<number> {\n  return new Observable<number>(subscriber => {\n    if (count === undefined) {\n      count = start;\n      start = 0;\n    }\n\n    let index = 0;\n    let current = start;\n\n    if (scheduler) {\n      return scheduler.schedule(dispatch, 0, {\n        index, count, start, subscriber\n      });\n    } else {\n      do {\n        if (index++ >= count) {\n          subscriber.complete();\n          break;\n        }\n        subscriber.next(current++);\n        if (subscriber.closed) {\n          break;\n        }\n      } while (true);\n    }\n\n    return undefined;\n  });\n}\n\n/** @internal */\nexport function dispatch(this: SchedulerAction<any>, state: any) {\n  const { start, index, count, subscriber } = state;\n\n  if (index >= count) {\n    subscriber.complete();\n    return;\n  }\n\n  subscriber.next(start);\n\n  if (subscriber.closed) {\n    return;\n  }\n\n  state.index = index + 1;\n  state.start = start + 1;\n\n  this.schedule(state);\n}\n", "import { Observable } from '../Observable';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that starts emitting after an `dueTime` and\n * emits ever increasing numbers after each `period` of time thereafter.\n *\n * <span class=\"informal\">Its like {@link index/interval}, but you can specify when\n * should the emissions start.</span>\n *\n * ![](timer.png)\n *\n * `timer` returns an Observable that emits an infinite sequence of ascending\n * integers, with a constant interval of time, `period` of your choosing\n * between those emissions. The first emission happens after the specified\n * `dueTime`. The initial delay may be a `Date`. By default, this\n * operator uses the {@link asyncScheduler} {@link SchedulerLike} to provide a notion of time, but you\n * may pass any {@link SchedulerLike} to it. If `period` is not specified, the output\n * Observable emits only one value, `0`. Otherwise, it emits an infinite\n * sequence.\n *\n * ## Examples\n * ### Emits ascending numbers, one every second (1000ms), starting after 3 seconds\n * ```ts\n * import { timer } from 'rxjs';\n *\n * const numbers = timer(3000, 1000);\n * numbers.subscribe(x => console.log(x));\n * ```\n *\n * ### Emits one number after five seconds\n * ```ts\n * import { timer } from 'rxjs';\n *\n * const numbers = timer(5000);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link index/interval}\n * @see {@link delay}\n *\n * @param {number|Date} [dueTime] The initial delay time specified as a Date object or as an integer denoting\n * milliseconds to wait before emitting the first value of 0`.\n * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the\n * subsequent numbers.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a `0` after the\n * `dueTime` and ever increasing numbers after each `period` of time\n * thereafter.\n * @static true\n * @name timer\n * @owner Observable\n */\nexport function timer(dueTime: number | Date = 0,\n                      periodOrScheduler?: number | SchedulerLike,\n                      scheduler?: SchedulerLike): Observable<number> {\n  let period = -1;\n  if (isNumeric(periodOrScheduler)) {\n    period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n  } else if (isScheduler(periodOrScheduler)) {\n    scheduler = periodOrScheduler as any;\n  }\n\n  if (!isScheduler(scheduler)) {\n    scheduler = async;\n  }\n\n  return new Observable(subscriber => {\n    const due = isNumeric(dueTime)\n      ? (dueTime as number)\n      : (+dueTime - scheduler.now());\n\n    return scheduler.schedule(dispatch, due, {\n      index: 0, period, subscriber\n    });\n  });\n}\n\ninterface TimerState {\n  index: number;\n  period: number;\n  subscriber: Subscriber<number>;\n}\n\nfunction dispatch(this: SchedulerAction<TimerState>, state: TimerState) {\n  const { index, period, subscriber } = state;\n  subscriber.next(index);\n\n  if (subscriber.closed) {\n    return;\n  } else if (period === -1) {\n    return subscriber.complete();\n  }\n\n  state.index = index + 1;\n  this.schedule(state, period);\n}\n", "import { Observable } from '../Observable';\nimport { Unsubscribable, ObservableInput } from '../types';\nimport { from } from './from'; // from from from! LAWL\nimport { EMPTY } from './empty';\n\n/**\n * Creates an Observable that uses a resource which will be disposed at the same time as the Observable.\n *\n * <span class=\"informal\">Use it when you catch yourself cleaning up after an Observable.</span>\n *\n * `using` is a factory operator, which accepts two functions. First function returns a disposable resource.\n * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with\n * that object and should return an Observable. That Observable can use resource object during its execution.\n * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor\n * resource object will be shared in any way between subscriptions.\n *\n * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed\n * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output\n * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself,\n * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which\n * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone\n * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make\n * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time.\n *\n * @see {@link defer}\n *\n * @param {function(): ISubscription} resourceFactory A function which creates any resource object\n * that implements `unsubscribe` method.\n * @param {function(resource: ISubscription): Observable<T>} observableFactory A function which\n * creates an Observable, that can use injected resource object.\n * @return {Observable<T>} An Observable that behaves the same as Observable returned by `observableFactory`, but\n * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object.\n */\nexport function using<T>(resourceFactory: () => Unsubscribable | void,\n                         observableFactory: (resource: Unsubscribable | void) => ObservableInput<T> | void): Observable<T> {\n  return new Observable<T>(subscriber => {\n    let resource: Unsubscribable | void;\n\n    try {\n      resource = resourceFactory();\n    } catch (err) {\n      subscriber.error(err);\n      return undefined;\n    }\n\n    let result: ObservableInput<T> | void;\n    try {\n      result = observableFactory(resource);\n    } catch (err) {\n      subscriber.error(err);\n      return undefined;\n    }\n\n    const source = result ? from(result) : EMPTY;\n    const subscription = source.subscribe(subscriber);\n    return () => {\n      subscription.unsubscribe();\n      if (resource) {\n        resource.unsubscribe();\n      }\n    };\n  });\n}\n", "import { Observable } from '../Observable';\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Operator } from '../Operator';\nimport { ObservableInput, PartialObserver, ObservedValueOf } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\n\n/* tslint:disable:max-line-length */\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip<O1 extends ObservableInput<any>, R>(v1: O1, resultSelector: (v1: ObservedValueOf<O1>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R): Observable<R>;\n\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\nexport function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\n\nexport function zip<O extends ObservableInput<any>>(array: O[]): Observable<ObservedValueOf<O>[]>;\nexport function zip<R>(array: ObservableInput<any>[]): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip<O extends ObservableInput<any>, R>(array: O[], resultSelector: (...values: ObservedValueOf<O>[]) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip<R>(array: ObservableInput<any>[], resultSelector: (...values: any[]) => R): Observable<R>;\n\nexport function zip<O extends ObservableInput<any>>(...observables: O[]): Observable<ObservedValueOf<O>[]>;\nexport function zip<O extends ObservableInput<any>, R>(...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R)>): Observable<R>;\nexport function zip<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;\n/* tslint:enable:max-line-length */\n\n/**\n * Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each\n * of its input Observables.\n *\n * If the last parameter is a function, this function is used to compute the created value from the input values.\n * Otherwise, an array of the input values is returned.\n *\n * ## Example\n * Combine age and name from different sources\n * ```ts\n * import { zip, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * let age$ = of<number>(27, 25, 29);\n * let name$ = of<string>('Foo', 'Bar', 'Beer');\n * let isDev$ = of<boolean>(true, true, false);\n *\n * zip(age$, name$, isDev$).pipe(\n *   map(([age, name, isDev]) => ({ age, name, isDev })),\n * )\n * .subscribe(x => console.log(x));\n *\n * // outputs\n * // { age: 27, name: 'Foo', isDev: true }\n * // { age: 25, name: 'Bar', isDev: true }\n * // { age: 29, name: 'Beer', isDev: false }\n * ```\n * @param observables\n * @return {Observable<R>}\n * @static true\n * @name zip\n * @owner Observable\n */\nexport function zip<O extends ObservableInput<any>, R>(\n  ...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R)>\n): Observable<ObservedValueOf<O>[]|R> {\n  const resultSelector = <((...ys: Array<any>) => R)> observables[observables.length - 1];\n  if (typeof resultSelector === 'function') {\n    observables.pop();\n  }\n  return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\n\nexport class ZipOperator<T, R> implements Operator<T, R> {\n\n  resultSelector?: (...values: Array<any>) => R;\n\n  constructor(resultSelector?: (...values: Array<any>) => R) {\n    this.resultSelector = resultSelector;\n  }\n\n  call(subscriber: Subscriber<R>, source: any): any {\n    return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ZipSubscriber<T, R> extends Subscriber<T> {\n  private iterators: LookAheadIterator<any>[] = [];\n  private active = 0;\n\n  constructor(destination: Subscriber<R>,\n              private resultSelector?: (...values: Array<any>) => R,\n              values: any = Object.create(null)) {\n    super(destination);\n    this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined;\n  }\n\n  protected _next(value: any) {\n    const iterators = this.iterators;\n    if (isArray(value)) {\n      iterators.push(new StaticArrayIterator(value));\n    } else if (typeof value[Symbol_iterator] === 'function') {\n      iterators.push(new StaticIterator(value[Symbol_iterator]()));\n    } else {\n      iterators.push(new ZipBufferIterator(this.destination, this, value));\n    }\n  }\n\n  protected _complete() {\n    const iterators = this.iterators;\n    const len = iterators.length;\n\n    this.unsubscribe();\n\n    if (len === 0) {\n      this.destination.complete!();\n      return;\n    }\n\n    this.active = len;\n    for (let i = 0; i < len; i++) {\n      let iterator: ZipBufferIterator<any, any> = <any>iterators[i];\n      if (iterator.stillUnsubscribed) {\n        const destination = this.destination as Subscription;\n        destination.add(iterator.subscribe());\n      } else {\n        this.active--; // not an observable\n      }\n    }\n  }\n\n  notifyInactive() {\n    this.active--;\n    if (this.active === 0) {\n      this.destination.complete!();\n    }\n  }\n\n  checkIterators() {\n    const iterators = this.iterators;\n    const len = iterators.length;\n    const destination = this.destination;\n\n    // abort if not all of them have values\n    for (let i = 0; i < len; i++) {\n      let iterator = iterators[i];\n      if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n        return;\n      }\n    }\n\n    let shouldComplete = false;\n    const args: any[] = [];\n    for (let i = 0; i < len; i++) {\n      let iterator = iterators[i];\n      let result = iterator.next();\n\n      // check to see if it's completed now that you've gotten\n      // the next value.\n      if (iterator.hasCompleted()) {\n        shouldComplete = true;\n      }\n\n      if (result.done) {\n        destination.complete!();\n        return;\n      }\n\n      args.push(result.value);\n    }\n\n    if (this.resultSelector) {\n      this._tryresultSelector(args);\n    } else {\n      destination.next!(args);\n    }\n\n    if (shouldComplete) {\n      destination.complete!();\n    }\n  }\n\n  protected _tryresultSelector(args: any[]) {\n    let result: any;\n    try {\n      result = this.resultSelector!.apply(this, args);\n    } catch (err) {\n      this.destination.error!(err);\n      return;\n    }\n    this.destination.next!(result);\n  }\n}\n\ninterface LookAheadIterator<T> extends Iterator<T> {\n  hasValue(): boolean;\n  hasCompleted(): boolean;\n}\n\nclass StaticIterator<T> implements LookAheadIterator<T> {\n  private nextResult: IteratorResult<T>;\n\n  constructor(private iterator: Iterator<T>) {\n    this.nextResult = iterator.next();\n  }\n\n  hasValue() {\n    return true;\n  }\n\n  next(): IteratorResult<T> {\n    const result = this.nextResult;\n    this.nextResult = this.iterator.next();\n    return result;\n  }\n\n  hasCompleted(): boolean {\n    const nextResult = this.nextResult;\n    return Boolean(nextResult && nextResult.done);\n  }\n}\n\nclass StaticArrayIterator<T> implements LookAheadIterator<T> {\n  private index = 0;\n  private length = 0;\n\n  constructor(private array: T[]) {\n    this.length = array.length;\n  }\n\n  [Symbol_iterator]() {\n    return this;\n  }\n\n  next(value?: any): IteratorResult<T> {\n    const i = this.index++;\n    const array = this.array;\n    return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n  }\n\n  hasValue() {\n    return this.array.length > this.index;\n  }\n\n  hasCompleted() {\n    return this.array.length === this.index;\n  }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ZipBufferIterator<T, R> extends SimpleOuterSubscriber<T, R> implements LookAheadIterator<T> {\n  stillUnsubscribed = true;\n  buffer: T[] = [];\n  isComplete = false;\n\n  constructor(destination: PartialObserver<T>,\n              private parent: ZipSubscriber<T, R>,\n              private observable: Observable<T>) {\n    super(destination);\n  }\n\n  [Symbol_iterator]() {\n    return this;\n  }\n\n  // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next\n  //    this is legit because `next()` will never be called by a subscription in this case.\n  next(): IteratorResult<T> {\n    const buffer = this.buffer;\n    if (buffer.length === 0 && this.isComplete) {\n      return { value: null, done: true };\n    } else {\n      return { value: buffer.shift()!, done: false };\n    }\n  }\n\n  hasValue() {\n    return this.buffer.length > 0;\n  }\n\n  hasCompleted() {\n    return this.buffer.length === 0 && this.isComplete;\n  }\n\n  notifyComplete() {\n    if (this.buffer.length > 0) {\n      this.isComplete = true;\n      this.parent.notifyInactive();\n    } else {\n      this.destination.complete!();\n    }\n  }\n\n  notifyNext(innerValue: any): void {\n    this.buffer.push(innerValue);\n    this.parent.checkIterators();\n  }\n\n  subscribe() {\n    return innerSubscribe(this.observable, new SimpleInnerSubscriber(this));\n  }\n}\n", "/* Observable */\nexport { Observable } from './internal/Observable';\nexport { ConnectableObservable } from './internal/observable/ConnectableObservable';\nexport { GroupedObservable } from './internal/operators/groupBy';\nexport { Operator } from './internal/Operator';\nexport { observable } from './internal/symbol/observable';\n\n/* Subjects */\nexport { Subject } from './internal/Subject';\nexport { BehaviorSubject } from './internal/BehaviorSubject';\nexport { ReplaySubject } from './internal/ReplaySubject';\nexport { AsyncSubject } from './internal/AsyncSubject';\n\n/* Schedulers */\nexport { asap, asapScheduler } from './internal/scheduler/asap';\nexport { async, asyncScheduler } from './internal/scheduler/async';\nexport { queue, queueScheduler } from './internal/scheduler/queue';\nexport { animationFrame, animationFrameScheduler } from './internal/scheduler/animationFrame';\nexport { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';\nexport { Scheduler } from './internal/Scheduler';\n\n/* Subscription */\nexport { Subscription } from './internal/Subscription';\nexport { Subscriber } from './internal/Subscriber';\n\n/* Notification */\nexport { Notification, NotificationKind } from './internal/Notification';\n\n/* Utils */\nexport { pipe } from './internal/util/pipe';\nexport { noop } from './internal/util/noop';\nexport { identity } from './internal/util/identity';\nexport { isObservable } from './internal/util/isObservable';\n\n/* Error types */\nexport { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError';\nexport { EmptyError } from './internal/util/EmptyError';\nexport { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';\nexport { UnsubscriptionError } from './internal/util/UnsubscriptionError';\nexport { TimeoutError } from './internal/util/TimeoutError';\n\n/* Static observable creation exports */\nexport { bindCallback } from './internal/observable/bindCallback';\nexport { bindNodeCallback } from './internal/observable/bindNodeCallback';\nexport { combineLatest } from './internal/observable/combineLatest';\nexport { concat } from './internal/observable/concat';\nexport { defer } from './internal/observable/defer';\nexport { empty } from './internal/observable/empty';\nexport { forkJoin } from './internal/observable/forkJoin';\nexport { from } from './internal/observable/from';\nexport { fromEvent } from './internal/observable/fromEvent';\nexport { fromEventPattern } from './internal/observable/fromEventPattern';\nexport { generate } from './internal/observable/generate';\nexport { iif } from './internal/observable/iif';\nexport { interval } from './internal/observable/interval';\nexport { merge } from './internal/observable/merge';\nexport { never } from './internal/observable/never';\nexport { of } from './internal/observable/of';\nexport { onErrorResumeNext } from './internal/observable/onErrorResumeNext';\nexport { pairs } from './internal/observable/pairs';\nexport { partition } from './internal/observable/partition';\nexport { race } from './internal/observable/race';\nexport { range } from './internal/observable/range';\nexport { throwError } from './internal/observable/throwError';\nexport { timer } from './internal/observable/timer';\nexport { using } from './internal/observable/using';\nexport { zip } from './internal/observable/zip';\nexport { scheduled } from './internal/scheduled/scheduled';\n\n/* Constants */\nexport { EMPTY } from './internal/observable/empty';\nexport { NEVER } from './internal/observable/never';\n\n/* Types */\nexport * from './internal/types';\n\n/* Config */\nexport { config } from './internal/config';\n", "'use strict';\nclass SilentRenderer {\n\tstatic get nonTTY() {\n\t\treturn true;\n\t}\n\trender() { }\n\tend() {\t}\n}\n\nmodule.exports = SilentRenderer;\n", "'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n", "'use strict';\nconst escapeStringRegexp = require('escape-string-regexp');\n\nconst platform = process.platform;\n\nconst main = {\n\ttick: '\u2714',\n\tcross: '\u2716',\n\tstar: '\u2605',\n\tsquare: '\u2587',\n\tsquareSmall: '\u25FB',\n\tsquareSmallFilled: '\u25FC',\n\tplay: '\u25B6',\n\tcircle: '\u25EF',\n\tcircleFilled: '\u25C9',\n\tcircleDotted: '\u25CC',\n\tcircleDouble: '\u25CE',\n\tcircleCircle: '\u24DE',\n\tcircleCross: '\u24E7',\n\tcirclePipe: '\u24BE',\n\tcircleQuestionMark: '?\u20DD',\n\tbullet: '\u25CF',\n\tdot: '\u2024',\n\tline: '\u2500',\n\tellipsis: '\u2026',\n\tpointer: '\u276F',\n\tpointerSmall: '\u203A',\n\tinfo: '\u2139',\n\twarning: '\u26A0',\n\thamburger: '\u2630',\n\tsmiley: '\u32E1',\n\tmustache: '\u0DF4',\n\theart: '\u2665',\n\tarrowUp: '\u2191',\n\tarrowDown: '\u2193',\n\tarrowLeft: '\u2190',\n\tarrowRight: '\u2192',\n\tradioOn: '\u25C9',\n\tradioOff: '\u25EF',\n\tcheckboxOn: '\u2612',\n\tcheckboxOff: '\u2610',\n\tcheckboxCircleOn: '\u24E7',\n\tcheckboxCircleOff: '\u24BE',\n\tquestionMarkPrefix: '?\u20DD',\n\toneHalf: '\u00BD',\n\toneThird: '\u2153',\n\toneQuarter: '\u00BC',\n\toneFifth: '\u2155',\n\toneSixth: '\u2159',\n\toneSeventh: '\u2150',\n\toneEighth: '\u215B',\n\toneNinth: '\u2151',\n\toneTenth: '\u2152',\n\ttwoThirds: '\u2154',\n\ttwoFifths: '\u2156',\n\tthreeQuarters: '\u00BE',\n\tthreeFifths: '\u2157',\n\tthreeEighths: '\u215C',\n\tfourFifths: '\u2158',\n\tfiveSixths: '\u215A',\n\tfiveEighths: '\u215D',\n\tsevenEighths: '\u215E'\n};\n\nconst win = {\n\ttick: '\u221A',\n\tcross: '\u00D7',\n\tstar: '*',\n\tsquare: '\u2588',\n\tsquareSmall: '[ ]',\n\tsquareSmallFilled: '[\u2588]',\n\tplay: '\u25BA',\n\tcircle: '( )',\n\tcircleFilled: '(*)',\n\tcircleDotted: '( )',\n\tcircleDouble: '( )',\n\tcircleCircle: '(\u25CB)',\n\tcircleCross: '(\u00D7)',\n\tcirclePipe: '(\u2502)',\n\tcircleQuestionMark: '(?)',\n\tbullet: '*',\n\tdot: '.',\n\tline: '\u2500',\n\tellipsis: '...',\n\tpointer: '>',\n\tpointerSmall: '\u00BB',\n\tinfo: 'i',\n\twarning: '\u203C',\n\thamburger: '\u2261',\n\tsmiley: '\u263A',\n\tmustache: '\u250C\u2500\u2510',\n\theart: main.heart,\n\tarrowUp: main.arrowUp,\n\tarrowDown: main.arrowDown,\n\tarrowLeft: main.arrowLeft,\n\tarrowRight: main.arrowRight,\n\tradioOn: '(*)',\n\tradioOff: '( )',\n\tcheckboxOn: '[\u00D7]',\n\tcheckboxOff: '[ ]',\n\tcheckboxCircleOn: '(\u00D7)',\n\tcheckboxCircleOff: '( )',\n\tquestionMarkPrefix: '\uFF1F',\n\toneHalf: '1/2',\n\toneThird: '1/3',\n\toneQuarter: '1/4',\n\toneFifth: '1/5',\n\toneSixth: '1/6',\n\toneSeventh: '1/7',\n\toneEighth: '1/8',\n\toneNinth: '1/9',\n\toneTenth: '1/10',\n\ttwoThirds: '2/3',\n\ttwoFifths: '2/5',\n\tthreeQuarters: '3/4',\n\tthreeFifths: '3/5',\n\tthreeEighths: '3/8',\n\tfourFifths: '4/5',\n\tfiveSixths: '5/6',\n\tfiveEighths: '5/8',\n\tsevenEighths: '7/8'\n};\n\nif (platform === 'linux') {\n\t// the main one doesn't look that good on Ubuntu\n\tmain.questionMarkPrefix = '?';\n}\n\nconst figures = platform === 'win32' ? win : main;\n\nconst fn = str => {\n\tif (figures === main) {\n\t\treturn str;\n\t}\n\n\tObject.keys(main).forEach(key => {\n\t\tif (main[key] === figures[key]) {\n\t\t\treturn;\n\t\t}\n\n\t\tstr = str.replace(new RegExp(escapeStringRegexp(main[key]), 'g'), figures[key]);\n\t});\n\n\treturn str;\n};\n\nmodule.exports = Object.assign(fn, figures);\n", "'use strict';\nmodule.exports = (to, from) => {\n\t// TODO: use `Reflect.ownKeys()` when targeting Node.js 6\n\tfor (const prop of Object.getOwnPropertyNames(from).concat(Object.getOwnPropertySymbols(from))) {\n\t\tObject.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));\n\t}\n\n\treturn to;\n};\n", "'use strict';\nconst mimicFn = require('mimic-fn');\n\nmodule.exports = (fn, opts) => {\n\t// TODO: Remove this in v3\n\tif (opts === true) {\n\t\tthrow new TypeError('The second argument is now an options object');\n\t}\n\n\tif (typeof fn !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\topts = opts || {};\n\n\tlet ret;\n\tlet called = false;\n\tconst fnName = fn.displayName || fn.name || '<anonymous>';\n\n\tconst onetime = function () {\n\t\tif (called) {\n\t\t\tif (opts.throw === true) {\n\t\t\t\tthrow new Error(`Function \\`${fnName}\\` can only be called once`);\n\t\t\t}\n\n\t\t\treturn ret;\n\t\t}\n\n\t\tcalled = true;\n\t\tret = fn.apply(this, arguments);\n\t\tfn = null;\n\n\t\treturn ret;\n\t};\n\n\tmimicFn(onetime, fn);\n\n\treturn onetime;\n};\n", "// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems.  Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL.  It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\nmodule.exports = [\n  'SIGABRT',\n  'SIGALRM',\n  'SIGHUP',\n  'SIGINT',\n  'SIGTERM'\n]\n\nif (process.platform !== 'win32') {\n  module.exports.push(\n    'SIGVTALRM',\n    'SIGXCPU',\n    'SIGXFSZ',\n    'SIGUSR2',\n    'SIGTRAP',\n    'SIGSYS',\n    'SIGQUIT',\n    'SIGIOT'\n    // should detect profiler and enable/disable accordingly.\n    // see #21\n    // 'SIGPROF'\n  )\n}\n\nif (process.platform === 'linux') {\n  module.exports.push(\n    'SIGIO',\n    'SIGPOLL',\n    'SIGPWR',\n    'SIGSTKFLT',\n    'SIGUNUSED'\n  )\n}\n", "// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nvar process = global.process\n\nconst processOk = function (process) {\n  return process &&\n    typeof process === 'object' &&\n    typeof process.removeListener === 'function' &&\n    typeof process.emit === 'function' &&\n    typeof process.reallyExit === 'function' &&\n    typeof process.listeners === 'function' &&\n    typeof process.kill === 'function' &&\n    typeof process.pid === 'number' &&\n    typeof process.on === 'function'\n}\n\n// some kind of non-node environment, just no-op\n/* istanbul ignore if */\nif (!processOk(process)) {\n  module.exports = function () {\n    return function () {}\n  }\n} else {\n  var assert = require('assert')\n  var signals = require('./signals.js')\n  var isWin = /^win/i.test(process.platform)\n\n  var EE = require('events')\n  /* istanbul ignore if */\n  if (typeof EE !== 'function') {\n    EE = EE.EventEmitter\n  }\n\n  var emitter\n  if (process.__signal_exit_emitter__) {\n    emitter = process.__signal_exit_emitter__\n  } else {\n    emitter = process.__signal_exit_emitter__ = new EE()\n    emitter.count = 0\n    emitter.emitted = {}\n  }\n\n  // Because this emitter is a global, we have to check to see if a\n  // previous version of this library failed to enable infinite listeners.\n  // I know what you're about to say.  But literally everything about\n  // signal-exit is a compromise with evil.  Get used to it.\n  if (!emitter.infinite) {\n    emitter.setMaxListeners(Infinity)\n    emitter.infinite = true\n  }\n\n  module.exports = function (cb, opts) {\n    /* istanbul ignore if */\n    if (!processOk(global.process)) {\n      return function () {}\n    }\n    assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')\n\n    if (loaded === false) {\n      load()\n    }\n\n    var ev = 'exit'\n    if (opts && opts.alwaysLast) {\n      ev = 'afterexit'\n    }\n\n    var remove = function () {\n      emitter.removeListener(ev, cb)\n      if (emitter.listeners('exit').length === 0 &&\n          emitter.listeners('afterexit').length === 0) {\n        unload()\n      }\n    }\n    emitter.on(ev, cb)\n\n    return remove\n  }\n\n  var unload = function unload () {\n    if (!loaded || !processOk(global.process)) {\n      return\n    }\n    loaded = false\n\n    signals.forEach(function (sig) {\n      try {\n        process.removeListener(sig, sigListeners[sig])\n      } catch (er) {}\n    })\n    process.emit = originalProcessEmit\n    process.reallyExit = originalProcessReallyExit\n    emitter.count -= 1\n  }\n  module.exports.unload = unload\n\n  var emit = function emit (event, code, signal) {\n    /* istanbul ignore if */\n    if (emitter.emitted[event]) {\n      return\n    }\n    emitter.emitted[event] = true\n    emitter.emit(event, code, signal)\n  }\n\n  // { <signal>: <listener fn>, ... }\n  var sigListeners = {}\n  signals.forEach(function (sig) {\n    sigListeners[sig] = function listener () {\n      /* istanbul ignore if */\n      if (!processOk(global.process)) {\n        return\n      }\n      // If there are no other listeners, an exit is coming!\n      // Simplest way: remove us and then re-send the signal.\n      // We know that this will kill the process, so we can\n      // safely emit now.\n      var listeners = process.listeners(sig)\n      if (listeners.length === emitter.count) {\n        unload()\n        emit('exit', null, sig)\n        /* istanbul ignore next */\n        emit('afterexit', null, sig)\n        /* istanbul ignore next */\n        if (isWin && sig === 'SIGHUP') {\n          // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n          // so use a supported signal instead\n          sig = 'SIGINT'\n        }\n        /* istanbul ignore next */\n        process.kill(process.pid, sig)\n      }\n    }\n  })\n\n  module.exports.signals = function () {\n    return signals\n  }\n\n  var loaded = false\n\n  var load = function load () {\n    if (loaded || !processOk(global.process)) {\n      return\n    }\n    loaded = true\n\n    // This is the number of onSignalExit's that are in play.\n    // It's important so that we can count the correct number of\n    // listeners on signals, and don't wait for the other one to\n    // handle it instead of us.\n    emitter.count += 1\n\n    signals = signals.filter(function (sig) {\n      try {\n        process.on(sig, sigListeners[sig])\n        return true\n      } catch (er) {\n        return false\n      }\n    })\n\n    process.emit = processEmit\n    process.reallyExit = processReallyExit\n  }\n  module.exports.load = load\n\n  var originalProcessReallyExit = process.reallyExit\n  var processReallyExit = function processReallyExit (code) {\n    /* istanbul ignore if */\n    if (!processOk(global.process)) {\n      return\n    }\n    process.exitCode = code || /* istanbul ignore next */ 0\n    emit('exit', process.exitCode, null)\n    /* istanbul ignore next */\n    emit('afterexit', process.exitCode, null)\n    /* istanbul ignore next */\n    originalProcessReallyExit.call(process, process.exitCode)\n  }\n\n  var originalProcessEmit = process.emit\n  var processEmit = function processEmit (ev, arg) {\n    if (ev === 'exit' && processOk(global.process)) {\n      /* istanbul ignore else */\n      if (arg !== undefined) {\n        process.exitCode = arg\n      }\n      var ret = originalProcessEmit.apply(this, arguments)\n      /* istanbul ignore next */\n      emit('exit', process.exitCode, null)\n      /* istanbul ignore next */\n      emit('afterexit', process.exitCode, null)\n      /* istanbul ignore next */\n      return ret\n    } else {\n      return originalProcessEmit.apply(this, arguments)\n    }\n  }\n}\n", "'use strict';\nconst onetime = require('onetime');\nconst signalExit = require('signal-exit');\n\nmodule.exports = onetime(() => {\n\tsignalExit(() => {\n\t\tprocess.stderr.write('\\u001b[?25h');\n\t}, {alwaysLast: true});\n});\n", "'use strict';\nconst restoreCursor = require('restore-cursor');\n\nlet hidden = false;\n\nexports.show = stream => {\n\tconst s = stream || process.stderr;\n\n\tif (!s.isTTY) {\n\t\treturn;\n\t}\n\n\thidden = false;\n\ts.write('\\u001b[?25h');\n};\n\nexports.hide = stream => {\n\tconst s = stream || process.stderr;\n\n\tif (!s.isTTY) {\n\t\treturn;\n\t}\n\n\trestoreCursor();\n\thidden = true;\n\ts.write('\\u001b[?25l');\n};\n\nexports.toggle = (force, stream) => {\n\tif (force !== undefined) {\n\t\thidden = force;\n\t}\n\n\tif (hidden) {\n\t\texports.show(stream);\n\t} else {\n\t\texports.hide(stream);\n\t}\n};\n", "'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n", "/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n//       values that give correct `typeof` results).\n//       do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n", "var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n", "var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n", "'use strict';\nconst colorConvert = require('color-convert');\n\nconst wrapAnsi16 = (fn, offset) => function () {\n\tconst code = fn.apply(colorConvert, arguments);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => function () {\n\tconst code = fn.apply(colorConvert, arguments);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => function () {\n\tconst rgb = fn.apply(colorConvert, arguments);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\t\t\tgray: [90, 39],\n\n\t\t\t// Bright color\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Fix humans\n\tstyles.color.grey = styles.color.gray;\n\n\tfor (const groupName of Object.keys(styles)) {\n\t\tconst group = styles[groupName];\n\n\t\tfor (const styleName of Object.keys(group)) {\n\t\t\tconst style = group[styleName];\n\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tObject.defineProperty(styles, 'codes', {\n\t\t\tvalue: codes,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tconst ansi2ansi = n => n;\n\tconst rgb2rgb = (r, g, b) => [r, g, b];\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = {\n\t\tansi: wrapAnsi16(ansi2ansi, 0)\n\t};\n\tstyles.color.ansi256 = {\n\t\tansi256: wrapAnsi256(ansi2ansi, 0)\n\t};\n\tstyles.color.ansi16m = {\n\t\trgb: wrapAnsi16m(rgb2rgb, 0)\n\t};\n\n\tstyles.bgColor.ansi = {\n\t\tansi: wrapAnsi16(ansi2ansi, 10)\n\t};\n\tstyles.bgColor.ansi256 = {\n\t\tansi256: wrapAnsi256(ansi2ansi, 10)\n\t};\n\tstyles.bgColor.ansi16m = {\n\t\trgb: wrapAnsi16m(rgb2rgb, 10)\n\t};\n\n\tfor (let key of Object.keys(colorConvert)) {\n\t\tif (typeof colorConvert[key] !== 'object') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst suite = colorConvert[key];\n\n\t\tif (key === 'ansi16') {\n\t\t\tkey = 'ansi';\n\t\t}\n\n\t\tif ('ansi16' in suite) {\n\t\t\tstyles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);\n\t\t\tstyles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);\n\t\t}\n\n\t\tif ('ansi256' in suite) {\n\t\t\tstyles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);\n\t\t\tstyles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);\n\t\t}\n\n\t\tif ('rgb' in suite) {\n\t\t\tstyles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);\n\t\t\tstyles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);\n\t\t}\n\t}\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n", "'use strict';\nmodule.exports = (flag, argv) => {\n\targv = argv || process.argv;\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst pos = argv.indexOf(prefix + flag);\n\tconst terminatorPos = argv.indexOf('--');\n\treturn pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n", "'use strict';\nconst os = require('os');\nconst hasFlag = require('has-flag');\n\nconst env = process.env;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false')) {\n\tforceColor = false;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n\tforceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(stream) {\n\tif (forceColor === false) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (stream && !stream.isTTY && forceColor !== true) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor ? 1 : 0;\n\n\tif (process.platform === 'win32') {\n\t\t// Node.js 7.5.0 is the first version of Node.js to include a patch to\n\t\t// libuv that enables 256 color output on Windows. Anything earlier and it\n\t\t// won't work. However, here we target Node.js 8 at minimum as it is an LTS\n\t\t// release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows\n\t\t// release that supports 256 colors. Windows 10 build 14931 is the first release\n\t\t// that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(process.versions.node.split('.')[0]) >= 8 &&\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel(process.stdout),\n\tstderr: getSupportLevel(process.stderr)\n};\n", "'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u[a-f\\d]{4}|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u[a-f\\d]{4}|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tif ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, args) {\n\tconst results = [];\n\tconst chunks = args.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tif (!isNaN(chunk)) {\n\t\t\tresults.push(Number(chunk));\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const styleName of Object.keys(enabled)) {\n\t\tif (Array.isArray(enabled[styleName])) {\n\t\t\tif (!(styleName in current)) {\n\t\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t\t}\n\n\t\t\tif (enabled[styleName].length > 0) {\n\t\t\t\tcurrent = current[styleName].apply(current, enabled[styleName]);\n\t\t\t} else {\n\t\t\t\tcurrent = current[styleName];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, tmp) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => {\n\t\tif (escapeChar) {\n\t\t\tchunk.push(unescape(escapeChar));\n\t\t} else if (style) {\n\t\t\tconst str = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(chr);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMsg);\n\t}\n\n\treturn chunks.join('');\n};\n", "'use strict';\nconst escapeStringRegexp = require('escape-string-regexp');\nconst ansiStyles = require('ansi-styles');\nconst stdoutColor = require('supports-color').stdout;\n\nconst template = require('./templates.js');\n\nconst isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');\n\n// `supportsColor.level` \u2192 `ansiStyles.color[name]` mapping\nconst levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];\n\n// `color-convert` models to exclude from the Chalk API due to conflicts and such\nconst skipModels = new Set(['gray']);\n\nconst styles = Object.create(null);\n\nfunction applyOptions(obj, options) {\n\toptions = options || {};\n\n\t// Detect level if not set manually\n\tconst scLevel = stdoutColor ? stdoutColor.level : 0;\n\tobj.level = options.level === undefined ? scLevel : options.level;\n\tobj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;\n}\n\nfunction Chalk(options) {\n\t// We check for this.template here since calling `chalk.constructor()`\n\t// by itself will have a `this` of a previously constructed chalk object\n\tif (!this || !(this instanceof Chalk) || this.template) {\n\t\tconst chalk = {};\n\t\tapplyOptions(chalk, options);\n\n\t\tchalk.template = function () {\n\t\t\tconst args = [].slice.call(arguments);\n\t\t\treturn chalkTag.apply(null, [chalk.template].concat(args));\n\t\t};\n\n\t\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\t\tObject.setPrototypeOf(chalk.template, chalk);\n\n\t\tchalk.template.constructor = Chalk;\n\n\t\treturn chalk.template;\n\t}\n\n\tapplyOptions(this, options);\n}\n\n// Use bright blue on Windows as the normal blue color is illegible\nif (isSimpleWindowsTerm) {\n\tansiStyles.blue.open = '\\u001B[94m';\n}\n\nfor (const key of Object.keys(ansiStyles)) {\n\tansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n\n\tstyles[key] = {\n\t\tget() {\n\t\t\tconst codes = ansiStyles[key];\n\t\t\treturn build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\treturn build.call(this, this._styles || [], true, 'visible');\n\t}\n};\n\nansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');\nfor (const model of Object.keys(ansiStyles.color.ansi)) {\n\tif (skipModels.has(model)) {\n\t\tcontinue;\n\t}\n\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst level = this.level;\n\t\t\treturn function () {\n\t\t\t\tconst open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);\n\t\t\t\tconst codes = {\n\t\t\t\t\topen,\n\t\t\t\t\tclose: ansiStyles.color.close,\n\t\t\t\t\tcloseRe: ansiStyles.color.closeRe\n\t\t\t\t};\n\t\t\t\treturn build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);\n\t\t\t};\n\t\t}\n\t};\n}\n\nansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');\nfor (const model of Object.keys(ansiStyles.bgColor.ansi)) {\n\tif (skipModels.has(model)) {\n\t\tcontinue;\n\t}\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst level = this.level;\n\t\t\treturn function () {\n\t\t\t\tconst open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);\n\t\t\t\tconst codes = {\n\t\t\t\t\topen,\n\t\t\t\t\tclose: ansiStyles.bgColor.close,\n\t\t\t\t\tcloseRe: ansiStyles.bgColor.closeRe\n\t\t\t\t};\n\t\t\t\treturn build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, styles);\n\nfunction build(_styles, _empty, key) {\n\tconst builder = function () {\n\t\treturn applyStyle.apply(builder, arguments);\n\t};\n\n\tbuilder._styles = _styles;\n\tbuilder._empty = _empty;\n\n\tconst self = this;\n\n\tObject.defineProperty(builder, 'level', {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn self.level;\n\t\t},\n\t\tset(level) {\n\t\t\tself.level = level;\n\t\t}\n\t});\n\n\tObject.defineProperty(builder, 'enabled', {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn self.enabled;\n\t\t},\n\t\tset(enabled) {\n\t\t\tself.enabled = enabled;\n\t\t}\n\t});\n\n\t// See below for fix regarding invisible grey/dim combination on Windows\n\tbuilder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';\n\n\t// `__proto__` is used because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tbuilder.__proto__ = proto; // eslint-disable-line no-proto\n\n\treturn builder;\n}\n\nfunction applyStyle() {\n\t// Support varags, but simply cast to string in case there's only one arg\n\tconst args = arguments;\n\tconst argsLen = args.length;\n\tlet str = String(arguments[0]);\n\n\tif (argsLen === 0) {\n\t\treturn '';\n\t}\n\n\tif (argsLen > 1) {\n\t\t// Don't slice `arguments`, it prevents V8 optimizations\n\t\tfor (let a = 1; a < argsLen; a++) {\n\t\t\tstr += ' ' + args[a];\n\t\t}\n\t}\n\n\tif (!this.enabled || this.level <= 0 || !str) {\n\t\treturn this._empty ? '' : str;\n\t}\n\n\t// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,\n\t// see https://github.com/chalk/chalk/issues/58\n\t// If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.\n\tconst originalDim = ansiStyles.dim.open;\n\tif (isSimpleWindowsTerm && this.hasGrey) {\n\t\tansiStyles.dim.open = '';\n\t}\n\n\tfor (const code of this._styles.slice().reverse()) {\n\t\t// Replace any instances already present with a re-opening code\n\t\t// otherwise only the part of the string until said closing code\n\t\t// will be colored, and the rest will simply be 'plain'.\n\t\tstr = code.open + str.replace(code.closeRe, code.open) + code.close;\n\n\t\t// Close the styling before a linebreak and reopen\n\t\t// after next line to fix a bleed issue on macOS\n\t\t// https://github.com/chalk/chalk/pull/92\n\t\tstr = str.replace(/\\r?\\n/g, `${code.close}$&${code.open}`);\n\t}\n\n\t// Reset the original `dim` if we changed it to work around the Windows dimmed gray issue\n\tansiStyles.dim.open = originalDim;\n\n\treturn str;\n}\n\nfunction chalkTag(chalk, strings) {\n\tif (!Array.isArray(strings)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn [].slice.call(arguments, 1).join(' ');\n\t}\n\n\tconst args = [].slice.call(arguments, 2);\n\tconst parts = [strings.raw[0]];\n\n\tfor (let i = 1; i < strings.length; i++) {\n\t\tparts.push(String(args[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'));\n\t\tparts.push(String(strings.raw[i]));\n\t}\n\n\treturn template(chalk, parts.join(''));\n}\n\nObject.defineProperties(Chalk.prototype, styles);\n\nmodule.exports = Chalk(); // eslint-disable-line new-cap\nmodule.exports.supportsColor = stdoutColor;\nmodule.exports.default = module.exports; // For TypeScript\n", "var MILLISECONDS_IN_MINUTE = 60000\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nmodule.exports = function getTimezoneOffsetInMilliseconds (dirtyDate) {\n  var date = new Date(dirtyDate.getTime())\n  var baseTimezoneOffset = date.getTimezoneOffset()\n  date.setSeconds(0, 0)\n  var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE\n\n  return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset\n}\n", "/**\n * @category Common Helpers\n * @summary Is the given argument an instance of Date?\n *\n * @description\n * Is the given argument an instance of Date?\n *\n * @param {*} argument - the argument to check\n * @returns {Boolean} the given argument is an instance of Date\n *\n * @example\n * // Is 'mayonnaise' a Date?\n * var result = isDate('mayonnaise')\n * //=> false\n */\nfunction isDate (argument) {\n  return argument instanceof Date\n}\n\nmodule.exports = isDate\n", "var getTimezoneOffsetInMilliseconds = require('../_lib/getTimezoneOffsetInMilliseconds/index.js')\nvar isDate = require('../is_date/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar parseTokenDateTimeDelimeter = /[T ]/\nvar parseTokenPlainTime = /:/\n\n// year tokens\nvar parseTokenYY = /^(\\d{2})$/\nvar parseTokensYYY = [\n  /^([+-]\\d{2})$/, // 0 additional digits\n  /^([+-]\\d{3})$/, // 1 additional digit\n  /^([+-]\\d{4})$/ // 2 additional digits\n]\n\nvar parseTokenYYYY = /^(\\d{4})/\nvar parseTokensYYYYY = [\n  /^([+-]\\d{4})/, // 0 additional digits\n  /^([+-]\\d{5})/, // 1 additional digit\n  /^([+-]\\d{6})/ // 2 additional digits\n]\n\n// date tokens\nvar parseTokenMM = /^-(\\d{2})$/\nvar parseTokenDDD = /^-?(\\d{3})$/\nvar parseTokenMMDD = /^-?(\\d{2})-?(\\d{2})$/\nvar parseTokenWww = /^-?W(\\d{2})$/\nvar parseTokenWwwD = /^-?W(\\d{2})-?(\\d{1})$/\n\n// time tokens\nvar parseTokenHH = /^(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMM = /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMMSS = /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\n\n// timezone tokens\nvar parseTokenTimezone = /([Z+-].*)$/\nvar parseTokenTimezoneZ = /^(Z)$/\nvar parseTokenTimezoneHH = /^([+-])(\\d{2})$/\nvar parseTokenTimezoneHHMM = /^([+-])(\\d{2}):?(\\d{2})$/\n\n/**\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If all above fails, the function passes the given argument to Date constructor.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {Object} [options] - the object with options\n * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parse('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Parse string '+02014101',\n * // if the additional number of digits in the extended year format is 1:\n * var result = parse('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction parse (argument, dirtyOptions) {\n  if (isDate(argument)) {\n    // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n    return new Date(argument.getTime())\n  } else if (typeof argument !== 'string') {\n    return new Date(argument)\n  }\n\n  var options = dirtyOptions || {}\n  var additionalDigits = options.additionalDigits\n  if (additionalDigits == null) {\n    additionalDigits = DEFAULT_ADDITIONAL_DIGITS\n  } else {\n    additionalDigits = Number(additionalDigits)\n  }\n\n  var dateStrings = splitDateString(argument)\n\n  var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n  var year = parseYearResult.year\n  var restDateString = parseYearResult.restDateString\n\n  var date = parseDate(restDateString, year)\n\n  if (date) {\n    var timestamp = date.getTime()\n    var time = 0\n    var offset\n\n    if (dateStrings.time) {\n      time = parseTime(dateStrings.time)\n    }\n\n    if (dateStrings.timezone) {\n      offset = parseTimezone(dateStrings.timezone) * MILLISECONDS_IN_MINUTE\n    } else {\n      var fullTime = timestamp + time\n      var fullTimeDate = new Date(fullTime)\n\n      offset = getTimezoneOffsetInMilliseconds(fullTimeDate)\n\n      // Adjust time when it's coming from DST\n      var fullTimeDateNextDay = new Date(fullTime)\n      fullTimeDateNextDay.setDate(fullTimeDate.getDate() + 1)\n      var offsetDiff =\n        getTimezoneOffsetInMilliseconds(fullTimeDateNextDay) -\n        getTimezoneOffsetInMilliseconds(fullTimeDate)\n      if (offsetDiff > 0) {\n        offset += offsetDiff\n      }\n    }\n\n    return new Date(timestamp + time + offset)\n  } else {\n    return new Date(argument)\n  }\n}\n\nfunction splitDateString (dateString) {\n  var dateStrings = {}\n  var array = dateString.split(parseTokenDateTimeDelimeter)\n  var timeString\n\n  if (parseTokenPlainTime.test(array[0])) {\n    dateStrings.date = null\n    timeString = array[0]\n  } else {\n    dateStrings.date = array[0]\n    timeString = array[1]\n  }\n\n  if (timeString) {\n    var token = parseTokenTimezone.exec(timeString)\n    if (token) {\n      dateStrings.time = timeString.replace(token[1], '')\n      dateStrings.timezone = token[1]\n    } else {\n      dateStrings.time = timeString\n    }\n  }\n\n  return dateStrings\n}\n\nfunction parseYear (dateString, additionalDigits) {\n  var parseTokenYYY = parseTokensYYY[additionalDigits]\n  var parseTokenYYYYY = parseTokensYYYYY[additionalDigits]\n\n  var token\n\n  // YYYY or \u00B1YYYYY\n  token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString)\n  if (token) {\n    var yearString = token[1]\n    return {\n      year: parseInt(yearString, 10),\n      restDateString: dateString.slice(yearString.length)\n    }\n  }\n\n  // YY or \u00B1YYY\n  token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString)\n  if (token) {\n    var centuryString = token[1]\n    return {\n      year: parseInt(centuryString, 10) * 100,\n      restDateString: dateString.slice(centuryString.length)\n    }\n  }\n\n  // Invalid ISO-formatted year\n  return {\n    year: null\n  }\n}\n\nfunction parseDate (dateString, year) {\n  // Invalid ISO-formatted year\n  if (year === null) {\n    return null\n  }\n\n  var token\n  var date\n  var month\n  var week\n\n  // YYYY\n  if (dateString.length === 0) {\n    date = new Date(0)\n    date.setUTCFullYear(year)\n    return date\n  }\n\n  // YYYY-MM\n  token = parseTokenMM.exec(dateString)\n  if (token) {\n    date = new Date(0)\n    month = parseInt(token[1], 10) - 1\n    date.setUTCFullYear(year, month)\n    return date\n  }\n\n  // YYYY-DDD or YYYYDDD\n  token = parseTokenDDD.exec(dateString)\n  if (token) {\n    date = new Date(0)\n    var dayOfYear = parseInt(token[1], 10)\n    date.setUTCFullYear(year, 0, dayOfYear)\n    return date\n  }\n\n  // YYYY-MM-DD or YYYYMMDD\n  token = parseTokenMMDD.exec(dateString)\n  if (token) {\n    date = new Date(0)\n    month = parseInt(token[1], 10) - 1\n    var day = parseInt(token[2], 10)\n    date.setUTCFullYear(year, month, day)\n    return date\n  }\n\n  // YYYY-Www or YYYYWww\n  token = parseTokenWww.exec(dateString)\n  if (token) {\n    week = parseInt(token[1], 10) - 1\n    return dayOfISOYear(year, week)\n  }\n\n  // YYYY-Www-D or YYYYWwwD\n  token = parseTokenWwwD.exec(dateString)\n  if (token) {\n    week = parseInt(token[1], 10) - 1\n    var dayOfWeek = parseInt(token[2], 10) - 1\n    return dayOfISOYear(year, week, dayOfWeek)\n  }\n\n  // Invalid ISO-formatted date\n  return null\n}\n\nfunction parseTime (timeString) {\n  var token\n  var hours\n  var minutes\n\n  // hh\n  token = parseTokenHH.exec(timeString)\n  if (token) {\n    hours = parseFloat(token[1].replace(',', '.'))\n    return (hours % 24) * MILLISECONDS_IN_HOUR\n  }\n\n  // hh:mm or hhmm\n  token = parseTokenHHMM.exec(timeString)\n  if (token) {\n    hours = parseInt(token[1], 10)\n    minutes = parseFloat(token[2].replace(',', '.'))\n    return (hours % 24) * MILLISECONDS_IN_HOUR +\n      minutes * MILLISECONDS_IN_MINUTE\n  }\n\n  // hh:mm:ss or hhmmss\n  token = parseTokenHHMMSS.exec(timeString)\n  if (token) {\n    hours = parseInt(token[1], 10)\n    minutes = parseInt(token[2], 10)\n    var seconds = parseFloat(token[3].replace(',', '.'))\n    return (hours % 24) * MILLISECONDS_IN_HOUR +\n      minutes * MILLISECONDS_IN_MINUTE +\n      seconds * 1000\n  }\n\n  // Invalid ISO-formatted time\n  return null\n}\n\nfunction parseTimezone (timezoneString) {\n  var token\n  var absoluteOffset\n\n  // Z\n  token = parseTokenTimezoneZ.exec(timezoneString)\n  if (token) {\n    return 0\n  }\n\n  // \u00B1hh\n  token = parseTokenTimezoneHH.exec(timezoneString)\n  if (token) {\n    absoluteOffset = parseInt(token[2], 10) * 60\n    return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n  }\n\n  // \u00B1hh:mm or \u00B1hhmm\n  token = parseTokenTimezoneHHMM.exec(timezoneString)\n  if (token) {\n    absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10)\n    return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n  }\n\n  return 0\n}\n\nfunction dayOfISOYear (isoYear, week, day) {\n  week = week || 0\n  day = day || 0\n  var date = new Date(0)\n  date.setUTCFullYear(isoYear, 0, 4)\n  var fourthOfJanuaryDay = date.getUTCDay() || 7\n  var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n  date.setUTCDate(date.getUTCDate() + diff)\n  return date\n}\n\nmodule.exports = parse\n", "var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear (dirtyDate) {\n  var cleanDate = parse(dirtyDate)\n  var date = new Date(0)\n  date.setFullYear(cleanDate.getFullYear(), 0, 1)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfYear\n", "var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfDay\n", "var startOfDay = require('../start_of_day/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_DAY = 86400000\n\n/**\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n */\nfunction differenceInCalendarDays (dirtyDateLeft, dirtyDateRight) {\n  var startOfDayLeft = startOfDay(dirtyDateLeft)\n  var startOfDayRight = startOfDay(dirtyDateRight)\n\n  var timestampLeft = startOfDayLeft.getTime() -\n    startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n  var timestampRight = startOfDayRight.getTime() -\n    startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n  // Round the number of days to the nearest integer\n  // because the number of milliseconds in a day is not constant\n  // (e.g. it's different in the day of the daylight saving time clock shift)\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY)\n}\n\nmodule.exports = differenceInCalendarDays\n", "var parse = require('../parse/index.js')\nvar startOfYear = require('../start_of_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear (dirtyDate) {\n  var date = parse(dirtyDate)\n  var diff = differenceInCalendarDays(date, startOfYear(date))\n  var dayOfYear = diff + 1\n  return dayOfYear\n}\n\nmodule.exports = getDayOfYear\n", "var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek (dirtyDate, dirtyOptions) {\n  var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n  var date = parse(dirtyDate)\n  var day = date.getDay()\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn\n\n  date.setDate(date.getDate() - diff)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfWeek\n", "var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek (dirtyDate) {\n  return startOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = startOfISOWeek\n", "var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * var result = getISOYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nfunction getISOYear (dirtyDate) {\n  var date = parse(dirtyDate)\n  var year = date.getFullYear()\n\n  var fourthOfJanuaryOfNextYear = new Date(0)\n  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4)\n  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0)\n  var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear)\n\n  var fourthOfJanuaryOfThisYear = new Date(0)\n  fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4)\n  fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0)\n  var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear)\n\n  if (date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1\n  } else if (date.getTime() >= startOfThisYear.getTime()) {\n    return year\n  } else {\n    return year - 1\n  }\n}\n\nmodule.exports = getISOYear\n", "var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOYear (dirtyDate) {\n  var year = getISOYear(dirtyDate)\n  var fourthOfJanuary = new Date(0)\n  fourthOfJanuary.setFullYear(year, 0, 4)\n  fourthOfJanuary.setHours(0, 0, 0, 0)\n  var date = startOfISOWeek(fourthOfJanuary)\n  return date\n}\n\nmodule.exports = startOfISOYear\n", "var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\n\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek (dirtyDate) {\n  var date = parse(dirtyDate)\n  var diff = startOfISOWeek(date).getTime() - startOfISOYear(date).getTime()\n\n  // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1\n}\n\nmodule.exports = getISOWeek\n", "var isDate = require('../is_date/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {Date} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} argument must be an instance of Date\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid (dirtyDate) {\n  if (isDate(dirtyDate)) {\n    return !isNaN(dirtyDate)\n  } else {\n    throw new TypeError(toString.call(dirtyDate) + ' is not an instance of Date')\n  }\n}\n\nmodule.exports = isValid\n", "function buildDistanceInWordsLocale () {\n  var distanceInWordsLocale = {\n    lessThanXSeconds: {\n      one: 'less than a second',\n      other: 'less than {{count}} seconds'\n    },\n\n    xSeconds: {\n      one: '1 second',\n      other: '{{count}} seconds'\n    },\n\n    halfAMinute: 'half a minute',\n\n    lessThanXMinutes: {\n      one: 'less than a minute',\n      other: 'less than {{count}} minutes'\n    },\n\n    xMinutes: {\n      one: '1 minute',\n      other: '{{count}} minutes'\n    },\n\n    aboutXHours: {\n      one: 'about 1 hour',\n      other: 'about {{count}} hours'\n    },\n\n    xHours: {\n      one: '1 hour',\n      other: '{{count}} hours'\n    },\n\n    xDays: {\n      one: '1 day',\n      other: '{{count}} days'\n    },\n\n    aboutXMonths: {\n      one: 'about 1 month',\n      other: 'about {{count}} months'\n    },\n\n    xMonths: {\n      one: '1 month',\n      other: '{{count}} months'\n    },\n\n    aboutXYears: {\n      one: 'about 1 year',\n      other: 'about {{count}} years'\n    },\n\n    xYears: {\n      one: '1 year',\n      other: '{{count}} years'\n    },\n\n    overXYears: {\n      one: 'over 1 year',\n      other: 'over {{count}} years'\n    },\n\n    almostXYears: {\n      one: 'almost 1 year',\n      other: 'almost {{count}} years'\n    }\n  }\n\n  function localize (token, count, options) {\n    options = options || {}\n\n    var result\n    if (typeof distanceInWordsLocale[token] === 'string') {\n      result = distanceInWordsLocale[token]\n    } else if (count === 1) {\n      result = distanceInWordsLocale[token].one\n    } else {\n      result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n    }\n\n    if (options.addSuffix) {\n      if (options.comparison > 0) {\n        return 'in ' + result\n      } else {\n        return result + ' ago'\n      }\n    }\n\n    return result\n  }\n\n  return {\n    localize: localize\n  }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n", "var commonFormatterKeys = [\n  'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',\n  'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',\n  'H', 'HH', 'h', 'hh', 'm', 'mm',\n  's', 'ss', 'S', 'SS', 'SSS',\n  'Z', 'ZZ', 'X', 'x'\n]\n\nfunction buildFormattingTokensRegExp (formatters) {\n  var formatterKeys = []\n  for (var key in formatters) {\n    if (formatters.hasOwnProperty(key)) {\n      formatterKeys.push(key)\n    }\n  }\n\n  var formattingTokens = commonFormatterKeys\n    .concat(formatterKeys)\n    .sort()\n    .reverse()\n  var formattingTokensRegExp = new RegExp(\n    '(\\\\[[^\\\\[]*\\\\])|(\\\\\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'\n  )\n\n  return formattingTokensRegExp\n}\n\nmodule.exports = buildFormattingTokensRegExp\n", "var buildFormattingTokensRegExp = require('../../_lib/build_formatting_tokens_reg_exp/index.js')\n\nfunction buildFormatLocale () {\n  // Note: in English, the names of days of the week and months are capitalized.\n  // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n  // Generally, formatted dates should look like they are in the middle of a sentence,\n  // e.g. in Spanish language the weekdays and months should be in the lowercase.\n  var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n  var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n  var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n  var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n  var meridiemUppercase = ['AM', 'PM']\n  var meridiemLowercase = ['am', 'pm']\n  var meridiemFull = ['a.m.', 'p.m.']\n\n  var formatters = {\n    // Month: Jan, Feb, ..., Dec\n    'MMM': function (date) {\n      return months3char[date.getMonth()]\n    },\n\n    // Month: January, February, ..., December\n    'MMMM': function (date) {\n      return monthsFull[date.getMonth()]\n    },\n\n    // Day of week: Su, Mo, ..., Sa\n    'dd': function (date) {\n      return weekdays2char[date.getDay()]\n    },\n\n    // Day of week: Sun, Mon, ..., Sat\n    'ddd': function (date) {\n      return weekdays3char[date.getDay()]\n    },\n\n    // Day of week: Sunday, Monday, ..., Saturday\n    'dddd': function (date) {\n      return weekdaysFull[date.getDay()]\n    },\n\n    // AM, PM\n    'A': function (date) {\n      return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0]\n    },\n\n    // am, pm\n    'a': function (date) {\n      return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0]\n    },\n\n    // a.m., p.m.\n    'aa': function (date) {\n      return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0]\n    }\n  }\n\n  // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.\n  var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W']\n  ordinalFormatters.forEach(function (formatterToken) {\n    formatters[formatterToken + 'o'] = function (date, formatters) {\n      return ordinal(formatters[formatterToken](date))\n    }\n  })\n\n  return {\n    formatters: formatters,\n    formattingTokensRegExp: buildFormattingTokensRegExp(formatters)\n  }\n}\n\nfunction ordinal (number) {\n  var rem100 = number % 100\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return number + 'st'\n      case 2:\n        return number + 'nd'\n      case 3:\n        return number + 'rd'\n    }\n  }\n  return number + 'th'\n}\n\nmodule.exports = buildFormatLocale\n", "var buildDistanceInWordsLocale = require('./build_distance_in_words_locale/index.js')\nvar buildFormatLocale = require('./build_format_locale/index.js')\n\n/**\n * @category Locales\n * @summary English locale.\n */\nmodule.exports = {\n  distanceInWords: buildDistanceInWordsLocale(),\n  format: buildFormatLocale()\n}\n", "var getDayOfYear = require('../get_day_of_year/index.js')\nvar getISOWeek = require('../get_iso_week/index.js')\nvar getISOYear = require('../get_iso_year/index.js')\nvar parse = require('../parse/index.js')\nvar isValid = require('../is_valid/index.js')\nvar enLocale = require('../locale/en/index.js')\n\n/**\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format.\n *\n * Accepted tokens:\n * | Unit                    | Token | Result examples                  |\n * |-------------------------|-------|----------------------------------|\n * | Month                   | M     | 1, 2, ..., 12                    |\n * |                         | Mo    | 1st, 2nd, ..., 12th              |\n * |                         | MM    | 01, 02, ..., 12                  |\n * |                         | MMM   | Jan, Feb, ..., Dec               |\n * |                         | MMMM  | January, February, ..., December |\n * | Quarter                 | Q     | 1, 2, 3, 4                       |\n * |                         | Qo    | 1st, 2nd, 3rd, 4th               |\n * | Day of month            | D     | 1, 2, ..., 31                    |\n * |                         | Do    | 1st, 2nd, ..., 31st              |\n * |                         | DD    | 01, 02, ..., 31                  |\n * | Day of year             | DDD   | 1, 2, ..., 366                   |\n * |                         | DDDo  | 1st, 2nd, ..., 366th             |\n * |                         | DDDD  | 001, 002, ..., 366               |\n * | Day of week             | d     | 0, 1, ..., 6                     |\n * |                         | do    | 0th, 1st, ..., 6th               |\n * |                         | dd    | Su, Mo, ..., Sa                  |\n * |                         | ddd   | Sun, Mon, ..., Sat               |\n * |                         | dddd  | Sunday, Monday, ..., Saturday    |\n * | Day of ISO week         | E     | 1, 2, ..., 7                     |\n * | ISO week                | W     | 1, 2, ..., 53                    |\n * |                         | Wo    | 1st, 2nd, ..., 53rd              |\n * |                         | WW    | 01, 02, ..., 53                  |\n * | Year                    | YY    | 00, 01, ..., 99                  |\n * |                         | YYYY  | 1900, 1901, ..., 2099            |\n * | ISO week-numbering year | GG    | 00, 01, ..., 99                  |\n * |                         | GGGG  | 1900, 1901, ..., 2099            |\n * | AM/PM                   | A     | AM, PM                           |\n * |                         | a     | am, pm                           |\n * |                         | aa    | a.m., p.m.                       |\n * | Hour                    | H     | 0, 1, ... 23                     |\n * |                         | HH    | 00, 01, ... 23                   |\n * |                         | h     | 1, 2, ..., 12                    |\n * |                         | hh    | 01, 02, ..., 12                  |\n * | Minute                  | m     | 0, 1, ..., 59                    |\n * |                         | mm    | 00, 01, ..., 59                  |\n * | Second                  | s     | 0, 1, ..., 59                    |\n * |                         | ss    | 00, 01, ..., 59                  |\n * | 1/10 of second          | S     | 0, 1, ..., 9                     |\n * | 1/100 of second         | SS    | 00, 01, ..., 99                  |\n * | Millisecond             | SSS   | 000, 001, ..., 999               |\n * | Timezone                | Z     | -01:00, +00:00, ... +12:00       |\n * |                         | ZZ    | -0100, +0000, ..., +1200         |\n * | Seconds timestamp       | X     | 512969520                        |\n * | Milliseconds timestamp  | x     | 512969520900                     |\n *\n * The characters wrapped in square brackets are escaped.\n *\n * The result may vary by locale.\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} [format='YYYY-MM-DDTHH:mm:ss.SSSZ'] - the string of tokens\n * @param {Object} [options] - the object with options\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the formatted date string\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(\n *   new Date(2014, 1, 11),\n *   'MM/DD/YYYY'\n * )\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * var eoLocale = require('date-fns/locale/eo')\n * var result = format(\n *   new Date(2014, 6, 2),\n *   'Do [de] MMMM YYYY',\n *   {locale: eoLocale}\n * )\n * //=> '2-a de julio 2014'\n */\nfunction format (dirtyDate, dirtyFormatStr, dirtyOptions) {\n  var formatStr = dirtyFormatStr ? String(dirtyFormatStr) : 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n  var options = dirtyOptions || {}\n\n  var locale = options.locale\n  var localeFormatters = enLocale.format.formatters\n  var formattingTokensRegExp = enLocale.format.formattingTokensRegExp\n  if (locale && locale.format && locale.format.formatters) {\n    localeFormatters = locale.format.formatters\n\n    if (locale.format.formattingTokensRegExp) {\n      formattingTokensRegExp = locale.format.formattingTokensRegExp\n    }\n  }\n\n  var date = parse(dirtyDate)\n\n  if (!isValid(date)) {\n    return 'Invalid Date'\n  }\n\n  var formatFn = buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp)\n\n  return formatFn(date)\n}\n\nvar formatters = {\n  // Month: 1, 2, ..., 12\n  'M': function (date) {\n    return date.getMonth() + 1\n  },\n\n  // Month: 01, 02, ..., 12\n  'MM': function (date) {\n    return addLeadingZeros(date.getMonth() + 1, 2)\n  },\n\n  // Quarter: 1, 2, 3, 4\n  'Q': function (date) {\n    return Math.ceil((date.getMonth() + 1) / 3)\n  },\n\n  // Day of month: 1, 2, ..., 31\n  'D': function (date) {\n    return date.getDate()\n  },\n\n  // Day of month: 01, 02, ..., 31\n  'DD': function (date) {\n    return addLeadingZeros(date.getDate(), 2)\n  },\n\n  // Day of year: 1, 2, ..., 366\n  'DDD': function (date) {\n    return getDayOfYear(date)\n  },\n\n  // Day of year: 001, 002, ..., 366\n  'DDDD': function (date) {\n    return addLeadingZeros(getDayOfYear(date), 3)\n  },\n\n  // Day of week: 0, 1, ..., 6\n  'd': function (date) {\n    return date.getDay()\n  },\n\n  // Day of ISO week: 1, 2, ..., 7\n  'E': function (date) {\n    return date.getDay() || 7\n  },\n\n  // ISO week: 1, 2, ..., 53\n  'W': function (date) {\n    return getISOWeek(date)\n  },\n\n  // ISO week: 01, 02, ..., 53\n  'WW': function (date) {\n    return addLeadingZeros(getISOWeek(date), 2)\n  },\n\n  // Year: 00, 01, ..., 99\n  'YY': function (date) {\n    return addLeadingZeros(date.getFullYear(), 4).substr(2)\n  },\n\n  // Year: 1900, 1901, ..., 2099\n  'YYYY': function (date) {\n    return addLeadingZeros(date.getFullYear(), 4)\n  },\n\n  // ISO week-numbering year: 00, 01, ..., 99\n  'GG': function (date) {\n    return String(getISOYear(date)).substr(2)\n  },\n\n  // ISO week-numbering year: 1900, 1901, ..., 2099\n  'GGGG': function (date) {\n    return getISOYear(date)\n  },\n\n  // Hour: 0, 1, ... 23\n  'H': function (date) {\n    return date.getHours()\n  },\n\n  // Hour: 00, 01, ..., 23\n  'HH': function (date) {\n    return addLeadingZeros(date.getHours(), 2)\n  },\n\n  // Hour: 1, 2, ..., 12\n  'h': function (date) {\n    var hours = date.getHours()\n    if (hours === 0) {\n      return 12\n    } else if (hours > 12) {\n      return hours % 12\n    } else {\n      return hours\n    }\n  },\n\n  // Hour: 01, 02, ..., 12\n  'hh': function (date) {\n    return addLeadingZeros(formatters['h'](date), 2)\n  },\n\n  // Minute: 0, 1, ..., 59\n  'm': function (date) {\n    return date.getMinutes()\n  },\n\n  // Minute: 00, 01, ..., 59\n  'mm': function (date) {\n    return addLeadingZeros(date.getMinutes(), 2)\n  },\n\n  // Second: 0, 1, ..., 59\n  's': function (date) {\n    return date.getSeconds()\n  },\n\n  // Second: 00, 01, ..., 59\n  'ss': function (date) {\n    return addLeadingZeros(date.getSeconds(), 2)\n  },\n\n  // 1/10 of second: 0, 1, ..., 9\n  'S': function (date) {\n    return Math.floor(date.getMilliseconds() / 100)\n  },\n\n  // 1/100 of second: 00, 01, ..., 99\n  'SS': function (date) {\n    return addLeadingZeros(Math.floor(date.getMilliseconds() / 10), 2)\n  },\n\n  // Millisecond: 000, 001, ..., 999\n  'SSS': function (date) {\n    return addLeadingZeros(date.getMilliseconds(), 3)\n  },\n\n  // Timezone: -01:00, +00:00, ... +12:00\n  'Z': function (date) {\n    return formatTimezone(date.getTimezoneOffset(), ':')\n  },\n\n  // Timezone: -0100, +0000, ... +1200\n  'ZZ': function (date) {\n    return formatTimezone(date.getTimezoneOffset())\n  },\n\n  // Seconds timestamp: 512969520\n  'X': function (date) {\n    return Math.floor(date.getTime() / 1000)\n  },\n\n  // Milliseconds timestamp: 512969520900\n  'x': function (date) {\n    return date.getTime()\n  }\n}\n\nfunction buildFormatFn (formatStr, localeFormatters, formattingTokensRegExp) {\n  var array = formatStr.match(formattingTokensRegExp)\n  var length = array.length\n\n  var i\n  var formatter\n  for (i = 0; i < length; i++) {\n    formatter = localeFormatters[array[i]] || formatters[array[i]]\n    if (formatter) {\n      array[i] = formatter\n    } else {\n      array[i] = removeFormattingTokens(array[i])\n    }\n  }\n\n  return function (date) {\n    var output = ''\n    for (var i = 0; i < length; i++) {\n      if (array[i] instanceof Function) {\n        output += array[i](date, formatters)\n      } else {\n        output += array[i]\n      }\n    }\n    return output\n  }\n}\n\nfunction removeFormattingTokens (input) {\n  if (input.match(/\\[[\\s\\S]/)) {\n    return input.replace(/^\\[|]$/g, '')\n  }\n  return input.replace(/\\\\/g, '')\n}\n\nfunction formatTimezone (offset, delimeter) {\n  delimeter = delimeter || ''\n  var sign = offset > 0 ? '-' : '+'\n  var absOffset = Math.abs(offset)\n  var hours = Math.floor(absOffset / 60)\n  var minutes = absOffset % 60\n  return sign + addLeadingZeros(hours, 2) + delimeter + addLeadingZeros(minutes, 2)\n}\n\nfunction addLeadingZeros (number, targetLength) {\n  var output = Math.abs(number).toString()\n  while (output.length < targetLength) {\n    output = '0' + output\n  }\n  return output\n}\n\nmodule.exports = format\n", "'use strict';\nconst chalk = require('chalk');\nconst format = require('date-fns/format');\n\nexports.log = (options, output) => {\n\tif (options.dateFormat === false) {\n\t\tconsole.log(output);\n\t\treturn;\n\t}\n\n\tconst timestamp = format(new Date(), options.dateFormat);\n\n\tconsole.log(chalk.dim(`[${timestamp}]`) + ` ${output}`);\n};\n", "'use strict';\nconst figures = require('figures');\nconst cliCursor = require('cli-cursor');\nconst utils = require('./lib/utils');\n\nconst renderHelper = (task, event, options) => {\n\tconst log = utils.log.bind(undefined, options);\n\n\tif (event.type === 'STATE') {\n\t\tconst message = task.isPending() ? 'started' : task.state;\n\n\t\tlog(`${task.title} [${message}]`);\n\n\t\tif (task.isSkipped() && task.output) {\n\t\t\tlog(`${figures.arrowRight} ${task.output}`);\n\t\t}\n\t} else if (event.type === 'DATA') {\n\t\tlog(`${figures.arrowRight} ${event.data}`);\n\t} else if (event.type === 'TITLE') {\n\t\tlog(`${task.title} [title changed]`);\n\t}\n};\n\nconst render = (tasks, options) => {\n\tfor (const task of tasks) {\n\t\ttask.subscribe(\n\t\t\tevent => {\n\t\t\t\tif (event.type === 'SUBTASKS') {\n\t\t\t\t\trender(task.subtasks, options);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trenderHelper(task, event, options);\n\t\t\t},\n\t\t\terr => {\n\t\t\t\tconsole.log(err);\n\t\t\t}\n\t\t);\n\t}\n};\n\nclass VerboseRenderer {\n\tconstructor(tasks, options) {\n\t\tthis._tasks = tasks;\n\t\tthis._options = Object.assign({\n\t\t\tdateFormat: 'HH:mm:ss'\n\t\t}, options);\n\t}\n\n\tstatic get nonTTY() {\n\t\treturn true;\n\t}\n\n\trender() {\n\t\tcliCursor.hide();\n\t\trender(this._tasks, this._options);\n\t}\n\n\tend() {\n\t\tcliCursor.show();\n\t}\n}\n\nmodule.exports = VerboseRenderer;\n", "'use strict';\nconst x = module.exports;\nconst ESC = '\\u001B[';\nconst OSC = '\\u001B]';\nconst BEL = '\\u0007';\nconst SEP = ';';\nconst isTerminalApp = process.env.TERM_PROGRAM === 'Apple_Terminal';\n\nx.cursorTo = (x, y) => {\n\tif (typeof x !== 'number') {\n\t\tthrow new TypeError('The `x` argument is required');\n\t}\n\n\tif (typeof y !== 'number') {\n\t\treturn ESC + (x + 1) + 'G';\n\t}\n\n\treturn ESC + (y + 1) + ';' + (x + 1) + 'H';\n};\n\nx.cursorMove = (x, y) => {\n\tif (typeof x !== 'number') {\n\t\tthrow new TypeError('The `x` argument is required');\n\t}\n\n\tlet ret = '';\n\n\tif (x < 0) {\n\t\tret += ESC + (-x) + 'D';\n\t} else if (x > 0) {\n\t\tret += ESC + x + 'C';\n\t}\n\n\tif (y < 0) {\n\t\tret += ESC + (-y) + 'A';\n\t} else if (y > 0) {\n\t\tret += ESC + y + 'B';\n\t}\n\n\treturn ret;\n};\n\nx.cursorUp = count => ESC + (typeof count === 'number' ? count : 1) + 'A';\nx.cursorDown = count => ESC + (typeof count === 'number' ? count : 1) + 'B';\nx.cursorForward = count => ESC + (typeof count === 'number' ? count : 1) + 'C';\nx.cursorBackward = count => ESC + (typeof count === 'number' ? count : 1) + 'D';\n\nx.cursorLeft = ESC + 'G';\nx.cursorSavePosition = ESC + (isTerminalApp ? '7' : 's');\nx.cursorRestorePosition = ESC + (isTerminalApp ? '8' : 'u');\nx.cursorGetPosition = ESC + '6n';\nx.cursorNextLine = ESC + 'E';\nx.cursorPrevLine = ESC + 'F';\nx.cursorHide = ESC + '?25l';\nx.cursorShow = ESC + '?25h';\n\nx.eraseLines = count => {\n\tlet clear = '';\n\n\tfor (let i = 0; i < count; i++) {\n\t\tclear += x.eraseLine + (i < count - 1 ? x.cursorUp() : '');\n\t}\n\n\tif (count) {\n\t\tclear += x.cursorLeft;\n\t}\n\n\treturn clear;\n};\n\nx.eraseEndLine = ESC + 'K';\nx.eraseStartLine = ESC + '1K';\nx.eraseLine = ESC + '2K';\nx.eraseDown = ESC + 'J';\nx.eraseUp = ESC + '1J';\nx.eraseScreen = ESC + '2J';\nx.scrollUp = ESC + 'S';\nx.scrollDown = ESC + 'T';\n\nx.clearScreen = '\\u001Bc';\n\nx.clearTerminal = process.platform === 'win32' ?\n\t`${x.eraseScreen}${ESC}0f` :\n\t// 1. Erases the screen (Only done in case `2` is not supported)\n\t// 2. Erases the whole screen including scrollback buffer\n\t// 3. Moves cursor to the top-left position\n\t// More info: https://www.real-world-systems.com/docs/ANSIcode.html\n\t`${x.eraseScreen}${ESC}3J${ESC}H`;\n\nx.beep = BEL;\n\nx.link = (text, url) => {\n\treturn [\n\t\tOSC,\n\t\t'8',\n\t\tSEP,\n\t\tSEP,\n\t\turl,\n\t\tBEL,\n\t\ttext,\n\t\tOSC,\n\t\t'8',\n\t\tSEP,\n\t\tSEP,\n\t\tBEL\n\t].join('');\n};\n\nx.image = (buf, opts) => {\n\topts = opts || {};\n\n\tlet ret = OSC + '1337;File=inline=1';\n\n\tif (opts.width) {\n\t\tret += `;width=${opts.width}`;\n\t}\n\n\tif (opts.height) {\n\t\tret += `;height=${opts.height}`;\n\t}\n\n\tif (opts.preserveAspectRatio === false) {\n\t\tret += ';preserveAspectRatio=0';\n\t}\n\n\treturn ret + ':' + buf.toString('base64') + BEL;\n};\n\nx.iTerm = {};\n\nx.iTerm.setCwd = cwd => OSC + '50;CurrentDir=' + (cwd || process.cwd()) + BEL;\n", "'use strict';\n\nmodule.exports = () => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[a-zA-Z\\\\d]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PRZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, 'g');\n};\n", "'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input;\n", "'use strict';\n/* eslint-disable yoda */\nmodule.exports = x => {\n\tif (Number.isNaN(x)) {\n\t\treturn false;\n\t}\n\n\t// code points are derived from:\n\t// http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt\n\tif (\n\t\tx >= 0x1100 && (\n\t\t\tx <= 0x115f ||  // Hangul Jamo\n\t\t\tx === 0x2329 || // LEFT-POINTING ANGLE BRACKET\n\t\t\tx === 0x232a || // RIGHT-POINTING ANGLE BRACKET\n\t\t\t// CJK Radicals Supplement .. Enclosed CJK Letters and Months\n\t\t\t(0x2e80 <= x && x <= 0x3247 && x !== 0x303f) ||\n\t\t\t// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A\n\t\t\t(0x3250 <= x && x <= 0x4dbf) ||\n\t\t\t// CJK Unified Ideographs .. Yi Radicals\n\t\t\t(0x4e00 <= x && x <= 0xa4c6) ||\n\t\t\t// Hangul Jamo Extended-A\n\t\t\t(0xa960 <= x && x <= 0xa97c) ||\n\t\t\t// Hangul Syllables\n\t\t\t(0xac00 <= x && x <= 0xd7a3) ||\n\t\t\t// CJK Compatibility Ideographs\n\t\t\t(0xf900 <= x && x <= 0xfaff) ||\n\t\t\t// Vertical Forms\n\t\t\t(0xfe10 <= x && x <= 0xfe19) ||\n\t\t\t// CJK Compatibility Forms .. Small Form Variants\n\t\t\t(0xfe30 <= x && x <= 0xfe6b) ||\n\t\t\t// Halfwidth and Fullwidth Forms\n\t\t\t(0xff01 <= x && x <= 0xff60) ||\n\t\t\t(0xffe0 <= x && x <= 0xffe6) ||\n\t\t\t// Kana Supplement\n\t\t\t(0x1b000 <= x && x <= 0x1b001) ||\n\t\t\t// Enclosed Ideographic Supplement\n\t\t\t(0x1f200 <= x && x <= 0x1f251) ||\n\t\t\t// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane\n\t\t\t(0x20000 <= x && x <= 0x3fffd)\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n", "'use strict';\nconst stripAnsi = require('strip-ansi');\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\n\nmodule.exports = str => {\n\tif (typeof str !== 'string' || str.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstr = stripAnsi(str);\n\n\tlet width = 0;\n\n\tfor (let i = 0; i < str.length; i++) {\n\t\tconst code = str.codePointAt(i);\n\n\t\t// Ignore control characters\n\t\tif (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (code >= 0x300 && code <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Surrogates\n\t\tif (code > 0xFFFF) {\n\t\t\ti++;\n\t\t}\n\n\t\twidth += isFullwidthCodePoint(code) ? 2 : 1;\n\t}\n\n\treturn width;\n};\n", "'use strict';\nconst stringWidth = require('string-width');\nconst stripAnsi = require('strip-ansi');\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B'\n]);\n\nconst END_CODE = 39;\n\nconst ESCAPE_CODES = new Map([\n\t[0, 0],\n\t[1, 22],\n\t[2, 22],\n\t[3, 23],\n\t[4, 24],\n\t[7, 27],\n\t[8, 28],\n\t[9, 29],\n\t[30, 39],\n\t[31, 39],\n\t[32, 39],\n\t[33, 39],\n\t[34, 39],\n\t[35, 39],\n\t[36, 39],\n\t[37, 39],\n\t[90, 39],\n\t[40, 49],\n\t[41, 49],\n\t[42, 49],\n\t[43, 49],\n\t[44, 49],\n\t[45, 49],\n\t[46, 49],\n\t[47, 49]\n]);\n\nconst wrapAnsi = code => `${ESCAPES.values().next().value}[${code}m`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = str => str.split(' ').map(s => stringWidth(s));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, cols) => {\n\tconst arr = Array.from(word);\n\n\tlet insideEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows[rows.length - 1]));\n\n\tfor (const item of arr.entries()) {\n\t\tconst i = item[0];\n\t\tconst char = item[1];\n\t\tconst charLength = stringWidth(char);\n\n\t\tif (visible + charLength <= cols) {\n\t\t\trows[rows.length - 1] += char;\n\t\t} else {\n\t\t\trows.push(char);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(char)) {\n\t\t\tinsideEscape = true;\n\t\t} else if (insideEscape && char === 'm') {\n\t\t\tinsideEscape = false;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (insideEscape) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += charLength;\n\n\t\tif (visible === cols && i < arr.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// The wrap-ansi module can be invoked\n// in either 'hard' or 'soft' wrap mode\n//\n// 'hard' will never allow a string to take up more\n// than cols characters\n//\n// 'soft' allows long words to expand past the column length\nconst exec = (str, cols, opts) => {\n\tconst options = opts || {};\n\n\tif (str.trim() === '') {\n\t\treturn options.trim === false ? str : str.trim();\n\t}\n\n\tlet pre = '';\n\tlet ret = '';\n\tlet escapeCode;\n\n\tconst lengths = wordLengths(str);\n\tconst words = str.split(' ');\n\tconst rows = [''];\n\n\tfor (const item of Array.from(words).entries()) {\n\t\tconst i = item[0];\n\t\tconst word = item[1];\n\n\t\trows[rows.length - 1] = options.trim === false ? rows[rows.length - 1] : rows[rows.length - 1].trim();\n\t\tlet rowLength = stringWidth(rows[rows.length - 1]);\n\n\t\tif (rowLength || word === '') {\n\t\t\tif (rowLength === cols && options.wordWrap === false) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\trows[rows.length - 1] += ' ';\n\t\t\trowLength++;\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is\n\t\t// never allowed to extend past 'cols'\n\t\tif (lengths[i] > cols && options.hard) {\n\t\t\tif (rowLength) {\n\t\t\t\trows.push('');\n\t\t\t}\n\t\t\twrapWord(rows, word, cols);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[i] > cols && rowLength > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < cols) {\n\t\t\t\twrapWord(rows, word, cols);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[i] > cols && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, cols);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tpre = rows.map(r => options.trim === false ? r : r.trim()).join('\\n');\n\n\tfor (const item of Array.from(pre).entries()) {\n\t\tconst i = item[0];\n\t\tconst char = item[1];\n\n\t\tret += char;\n\n\t\tif (ESCAPES.has(char)) {\n\t\t\tconst code = parseFloat(/\\d[^m]*/.exec(pre.slice(i, i + 4)));\n\t\t\tescapeCode = code === END_CODE ? null : code;\n\t\t}\n\n\t\tconst code = ESCAPE_CODES.get(Number(escapeCode));\n\n\t\tif (escapeCode && code) {\n\t\t\tif (pre[i + 1] === '\\n') {\n\t\t\t\tret += wrapAnsi(code);\n\t\t\t} else if (char === '\\n') {\n\t\t\t\tret += wrapAnsi(escapeCode);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ret;\n};\n\n// For each newline, invoke the method separately\nmodule.exports = (str, cols, opts) => {\n\treturn String(str)\n\t\t.normalize()\n\t\t.split('\\n')\n\t\t.map(line => exec(line, cols, opts))\n\t\t.join('\\n');\n};\n", "'use strict';\nconst ansiEscapes = require('ansi-escapes');\nconst cliCursor = require('cli-cursor');\nconst wrapAnsi = require('wrap-ansi');\n\nconst getWidth = stream => {\n\tconst columns = stream.columns;\n\n\tif (!columns) {\n\t\treturn 80;\n\t}\n\n\t// Windows appears to wrap a character early\n\t// I hate Windows so much\n\tif (process.platform === 'win32') {\n\t\treturn columns - 1;\n\t}\n\n\treturn columns;\n};\n\nconst main = (stream, options) => {\n\toptions = Object.assign({\n\t\tshowCursor: false\n\t}, options);\n\n\tlet prevLineCount = 0;\n\n\tconst render = function () {\n\t\tif (!options.showCursor) {\n\t\t\tcliCursor.hide();\n\t\t}\n\n\t\tlet out = [].join.call(arguments, ' ') + '\\n';\n\t\tout = wrapAnsi(out, getWidth(stream), {\n\t\t\ttrim: false,\n\t\t\thard: true,\n\t\t\twordWrap: false\n\t\t});\n\t\tstream.write(ansiEscapes.eraseLines(prevLineCount) + out);\n\t\tprevLineCount = out.split('\\n').length;\n\t};\n\n\trender.clear = () => {\n\t\tstream.write(ansiEscapes.eraseLines(prevLineCount));\n\t\tprevLineCount = 0;\n\t};\n\n\trender.done = () => {\n\t\tprevLineCount = 0;\n\n\t\tif (!options.showCursor) {\n\t\t\tcliCursor.show();\n\t\t}\n\t};\n\n\treturn render;\n};\n\nmodule.exports = main(process.stdout);\nmodule.exports.stderr = main(process.stderr);\nmodule.exports.create = main;\n", "'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n", "'use strict';\n\nfunction assembleStyles () {\n\tvar styles = {\n\t\tmodifiers: {\n\t\t\treset: [0, 0],\n\t\t\tbold: [1, 22], // 21 isn't widely supported and 22 does the same thing\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolors: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\t\t\tgray: [90, 39]\n\t\t},\n\t\tbgColors: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49]\n\t\t}\n\t};\n\n\t// fix humans\n\tstyles.colors.grey = styles.colors.gray;\n\n\tObject.keys(styles).forEach(function (groupName) {\n\t\tvar group = styles[groupName];\n\n\t\tObject.keys(group).forEach(function (styleName) {\n\t\t\tvar style = group[styleName];\n\n\t\t\tstyles[styleName] = group[styleName] = {\n\t\t\t\topen: '\\u001b[' + style[0] + 'm',\n\t\t\t\tclose: '\\u001b[' + style[1] + 'm'\n\t\t\t};\n\t\t});\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t});\n\n\treturn styles;\n}\n\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n", "'use strict';\nmodule.exports = function () {\n\treturn /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;\n};\n", "'use strict';\nvar ansiRegex = require('ansi-regex')();\n\nmodule.exports = function (str) {\n\treturn typeof str === 'string' ? str.replace(ansiRegex, '') : str;\n};\n", "'use strict';\nmodule.exports = function () {\n\treturn /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;\n};\n", "'use strict';\nvar ansiRegex = require('ansi-regex');\nvar re = new RegExp(ansiRegex().source); // remove the `g` flag\nmodule.exports = re.test.bind(re);\n", "'use strict';\nvar argv = process.argv;\n\nvar terminator = argv.indexOf('--');\nvar hasFlag = function (flag) {\n\tflag = '--' + flag;\n\tvar pos = argv.indexOf(flag);\n\treturn pos !== -1 && (terminator !== -1 ? pos < terminator : true);\n};\n\nmodule.exports = (function () {\n\tif ('FORCE_COLOR' in process.env) {\n\t\treturn true;\n\t}\n\n\tif (hasFlag('no-color') ||\n\t\thasFlag('no-colors') ||\n\t\thasFlag('color=false')) {\n\t\treturn false;\n\t}\n\n\tif (hasFlag('color') ||\n\t\thasFlag('colors') ||\n\t\thasFlag('color=true') ||\n\t\thasFlag('color=always')) {\n\t\treturn true;\n\t}\n\n\tif (process.stdout && !process.stdout.isTTY) {\n\t\treturn false;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\treturn true;\n\t}\n\n\tif ('COLORTERM' in process.env) {\n\t\treturn true;\n\t}\n\n\tif (process.env.TERM === 'dumb') {\n\t\treturn false;\n\t}\n\n\tif (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n})();\n", "'use strict';\nvar escapeStringRegexp = require('escape-string-regexp');\nvar ansiStyles = require('ansi-styles');\nvar stripAnsi = require('strip-ansi');\nvar hasAnsi = require('has-ansi');\nvar supportsColor = require('supports-color');\nvar defineProps = Object.defineProperties;\nvar isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(process.env.TERM);\n\nfunction Chalk(options) {\n\t// detect mode if not set manually\n\tthis.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled;\n}\n\n// use bright blue on Windows as the normal blue color is illegible\nif (isSimpleWindowsTerm) {\n\tansiStyles.blue.open = '\\u001b[94m';\n}\n\nvar styles = (function () {\n\tvar ret = {};\n\n\tObject.keys(ansiStyles).forEach(function (key) {\n\t\tansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n\n\t\tret[key] = {\n\t\t\tget: function () {\n\t\t\t\treturn build.call(this, this._styles.concat(key));\n\t\t\t}\n\t\t};\n\t});\n\n\treturn ret;\n})();\n\nvar proto = defineProps(function chalk() {}, styles);\n\nfunction build(_styles) {\n\tvar builder = function () {\n\t\treturn applyStyle.apply(builder, arguments);\n\t};\n\n\tbuilder._styles = _styles;\n\tbuilder.enabled = this.enabled;\n\t// __proto__ is used because we must return a function, but there is\n\t// no way to create a function with a different prototype.\n\t/* eslint-disable no-proto */\n\tbuilder.__proto__ = proto;\n\n\treturn builder;\n}\n\nfunction applyStyle() {\n\t// support varags, but simply cast to string in case there's only one arg\n\tvar args = arguments;\n\tvar argsLen = args.length;\n\tvar str = argsLen !== 0 && String(arguments[0]);\n\n\tif (argsLen > 1) {\n\t\t// don't slice `arguments`, it prevents v8 optimizations\n\t\tfor (var a = 1; a < argsLen; a++) {\n\t\t\tstr += ' ' + args[a];\n\t\t}\n\t}\n\n\tif (!this.enabled || !str) {\n\t\treturn str;\n\t}\n\n\tvar nestedStyles = this._styles;\n\tvar i = nestedStyles.length;\n\n\t// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,\n\t// see https://github.com/chalk/chalk/issues/58\n\t// If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.\n\tvar originalDim = ansiStyles.dim.open;\n\tif (isSimpleWindowsTerm && (nestedStyles.indexOf('gray') !== -1 || nestedStyles.indexOf('grey') !== -1)) {\n\t\tansiStyles.dim.open = '';\n\t}\n\n\twhile (i--) {\n\t\tvar code = ansiStyles[nestedStyles[i]];\n\n\t\t// Replace any instances already present with a re-opening code\n\t\t// otherwise only the part of the string until said closing code\n\t\t// will be colored, and the rest will simply be 'plain'.\n\t\tstr = code.open + str.replace(code.closeRe, code.open) + code.close;\n\t}\n\n\t// Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue.\n\tansiStyles.dim.open = originalDim;\n\n\treturn str;\n}\n\nfunction init() {\n\tvar ret = {};\n\n\tObject.keys(styles).forEach(function (name) {\n\t\tret[name] = {\n\t\t\tget: function () {\n\t\t\t\treturn build.call(this, [name]);\n\t\t\t}\n\t\t};\n\t});\n\n\treturn ret;\n}\n\ndefineProps(Chalk.prototype, init());\n\nmodule.exports = new Chalk();\nmodule.exports.styles = ansiStyles;\nmodule.exports.hasColor = hasAnsi;\nmodule.exports.stripColor = stripAnsi;\nmodule.exports.supportsColor = supportsColor;\n", "/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n", "'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n", "'use strict';\nvar objectAssign = require('object-assign');\nvar escapeStringRegexp = require('escape-string-regexp');\nvar platform = process.platform;\n\nvar main = {\n\ttick: '\u2714',\n\tcross: '\u2716',\n\tstar: '\u2605',\n\tsquare: '\u2587',\n\tsquareSmall: '\u25FB',\n\tsquareSmallFilled: '\u25FC',\n\tplay: '\u25B6',\n\tcircle: '\u25EF',\n\tcircleFilled: '\u25C9',\n\tcircleDotted: '\u25CC',\n\tcircleDouble: '\u25CE',\n\tcircleCircle: '\u24DE',\n\tcircleCross: '\u24E7',\n\tcirclePipe: '\u24BE',\n\tcircleQuestionMark: '?\u20DD',\n\tbullet: '\u25CF',\n\tdot: '\u2024',\n\tline: '\u2500',\n\tellipsis: '\u2026',\n\tpointer: '\u276F',\n\tpointerSmall: '\u203A',\n\tinfo: '\u2139',\n\twarning: '\u26A0',\n\thamburger: '\u2630',\n\tsmiley: '\u32E1',\n\tmustache: '\u0DF4',\n\theart: '\u2665',\n\tarrowUp: '\u2191',\n\tarrowDown: '\u2193',\n\tarrowLeft: '\u2190',\n\tarrowRight: '\u2192',\n\tradioOn: '\u25C9',\n\tradioOff: '\u25EF',\n\tcheckboxOn: '\u2612',\n\tcheckboxOff: '\u2610',\n\tcheckboxCircleOn: '\u24E7',\n\tcheckboxCircleOff: '\u24BE',\n\tquestionMarkPrefix: '?\u20DD',\n\toneHalf: '\u00BD',\n\toneThird: '\u2153',\n\toneQuarter: '\u00BC',\n\toneFifth: '\u2155',\n\toneSixth: '\u2159',\n\toneSeventh: '\u2150',\n\toneEighth: '\u215B',\n\toneNinth: '\u2151',\n\toneTenth: '\u2152',\n\ttwoThirds: '\u2154',\n\ttwoFifths: '\u2156',\n\tthreeQuarters: '\u00BE',\n\tthreeFifths: '\u2157',\n\tthreeEighths: '\u215C',\n\tfourFifths: '\u2158',\n\tfiveSixths: '\u215A',\n\tfiveEighths: '\u215D',\n\tsevenEighths: '\u215E'\n};\n\nvar win = {\n\ttick: '\u221A',\n\tcross: '\u00D7',\n\tstar: '*',\n\tsquare: '\u2588',\n\tsquareSmall: '[ ]',\n\tsquareSmallFilled: '[\u2588]',\n\tplay: '\u25BA',\n\tcircle: '( )',\n\tcircleFilled: '(*)',\n\tcircleDotted: '( )',\n\tcircleDouble: '( )',\n\tcircleCircle: '(\u25CB)',\n\tcircleCross: '(\u00D7)',\n\tcirclePipe: '(\u2502)',\n\tcircleQuestionMark: '(?)',\n\tbullet: '*',\n\tdot: '.',\n\tline: '\u2500',\n\tellipsis: '...',\n\tpointer: '>',\n\tpointerSmall: '\u00BB',\n\tinfo: 'i',\n\twarning: '\u203C',\n\thamburger: '\u2261',\n\tsmiley: '\u263A',\n\tmustache: '\u250C\u2500\u2510',\n\theart: main.heart,\n\tarrowUp: main.arrowUp,\n\tarrowDown: main.arrowDown,\n\tarrowLeft: main.arrowLeft,\n\tarrowRight: main.arrowRight,\n\tradioOn: '(*)',\n\tradioOff: '( )',\n\tcheckboxOn: '[\u00D7]',\n\tcheckboxOff: '[ ]',\n\tcheckboxCircleOn: '(\u00D7)',\n\tcheckboxCircleOff: '( )',\n\tquestionMarkPrefix: '\uFF1F',\n\toneHalf: '1/2',\n\toneThird: '1/3',\n\toneQuarter: '1/4',\n\toneFifth: '1/5',\n\toneSixth: '1/6',\n\toneSeventh: '1/7',\n\toneEighth: '1/8',\n\toneNinth: '1/9',\n\toneTenth: '1/10',\n\ttwoThirds: '2/3',\n\ttwoFifths: '2/5',\n\tthreeQuarters: '3/4',\n\tthreeFifths: '3/5',\n\tthreeEighths: '3/8',\n\tfourFifths: '4/5',\n\tfiveSixths: '5/6',\n\tfiveEighths: '5/8',\n\tsevenEighths: '7/8'\n};\n\nif (platform === 'linux') {\n\t// the main one doesn't look that good on Ubuntu\n\tmain.questionMarkPrefix = '?';\n}\n\nvar figures = platform === 'win32' ? win : main;\n\nvar fn = function (str) {\n\tif (figures === main) {\n\t\treturn str;\n\t}\n\n\tObject.keys(main).forEach(function (key) {\n\t\tif (main[key] === figures[key]) {\n\t\t\treturn;\n\t\t}\n\n\t\tstr = str.replace(new RegExp(escapeStringRegexp(main[key]), 'g'), figures[key]);\n\t});\n\n\treturn str;\n};\n\nmodule.exports = objectAssign(fn, figures);\n", "'use strict';\nmodule.exports = (str, count, opts) => {\n\t// Support older versions: use the third parameter as options.indent\n\t// TODO: Remove the workaround in the next major version\n\tconst options = typeof opts === 'object' ? Object.assign({indent: ' '}, opts) : {indent: opts || ' '};\n\tcount = count === undefined ? 1 : count;\n\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError(`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof str}\\``);\n\t}\n\n\tif (typeof count !== 'number') {\n\t\tthrow new TypeError(`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof count}\\``);\n\t}\n\n\tif (typeof options.indent !== 'string') {\n\t\tthrow new TypeError(`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof options.indent}\\``);\n\t}\n\n\tif (count === 0) {\n\t\treturn str;\n\t}\n\n\tconst regex = options.includeEmptyLines ? /^/mg : /^(?!\\s*$)/mg;\n\treturn str.replace(regex, options.indent.repeat(count));\n}\n;\n", "'use strict';\n\nvar ESCAPES = [\n\t'\\u001b',\n\t'\\u009b'\n];\n\nvar END_CODE = 39;\n\nvar ESCAPE_CODES = {\n\t0: 0,\n\t1: 22,\n\t2: 22,\n\t3: 23,\n\t4: 24,\n\t7: 27,\n\t8: 28,\n\t9: 29,\n\t30: 39,\n\t31: 39,\n\t32: 39,\n\t33: 39,\n\t34: 39,\n\t35: 39,\n\t36: 39,\n\t37: 39,\n\t90: 39,\n\t40: 49,\n\t41: 49,\n\t42: 49,\n\t43: 49,\n\t44: 49,\n\t45: 49,\n\t46: 49,\n\t47: 49\n};\n\nfunction wrapAnsi(code) {\n\treturn ESCAPES[0] + '[' + code + 'm';\n}\n\nmodule.exports = function (str, begin, end) {\n\tend = end || str.length;\n\tvar insideEscape = false;\n\tvar escapeCode;\n\tvar visible = 0;\n\tvar output = '';\n\n\tfor (var i = 0; i < str.length; i++) {\n\t\tvar leftEscape = false;\n\t\tvar x = str[i];\n\n\t\tif (ESCAPES.indexOf(x) !== -1) {\n\t\t\tinsideEscape = true;\n\t\t\tvar code = /[0-9][^m]*/.exec(str.slice(i, i + 4));\n\t\t\tescapeCode = code === END_CODE ? null : code;\n\t\t} else if (insideEscape && x === 'm') {\n\t\t\tinsideEscape = false;\n\t\t\tleftEscape = true;\n\t\t}\n\n\t\tif (!insideEscape && !leftEscape) {\n\t\t\t++visible;\n\t\t}\n\n\t\tif (visible > begin && visible <= end) {\n\t\t\toutput += x;\n\t\t} else if (visible === begin && escapeCode !== undefined && escapeCode !== END_CODE) {\n\t\t\toutput += wrapAnsi(escapeCode);\n\t\t} else if (visible >= end) {\n\t\t\tif (escapeCode !== undefined) {\n\t\t\t\toutput += wrapAnsi(ESCAPE_CODES[escapeCode] || END_CODE);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn output;\n};\n\n", "'use strict';\nmodule.exports = function () {\n\treturn /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;\n};\n", "'use strict';\nvar ansiRegex = require('ansi-regex')();\n\nmodule.exports = function (str) {\n\treturn typeof str === 'string' ? str.replace(ansiRegex, '') : str;\n};\n", "/* eslint-disable babel/new-cap, xo/throw-new-error */\n'use strict';\nmodule.exports = function (str, pos) {\n\tif (str === null || str === undefined) {\n\t\tthrow TypeError();\n\t}\n\n\tstr = String(str);\n\n\tvar size = str.length;\n\tvar i = pos ? Number(pos) : 0;\n\n\tif (Number.isNaN(i)) {\n\t\ti = 0;\n\t}\n\n\tif (i < 0 || i >= size) {\n\t\treturn undefined;\n\t}\n\n\tvar first = str.charCodeAt(i);\n\n\tif (first >= 0xD800 && first <= 0xDBFF && size > i + 1) {\n\t\tvar second = str.charCodeAt(i + 1);\n\n\t\tif (second >= 0xDC00 && second <= 0xDFFF) {\n\t\t\treturn ((first - 0xD800) * 0x400) + second - 0xDC00 + 0x10000;\n\t\t}\n\t}\n\n\treturn first;\n};\n", "'use strict';\nmodule.exports = Number.isNaN || function (x) {\n\treturn x !== x;\n};\n", "'use strict';\nvar numberIsNan = require('number-is-nan');\n\nmodule.exports = function (x) {\n\tif (numberIsNan(x)) {\n\t\treturn false;\n\t}\n\n\t// https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1369\n\n\t// code points are derived from:\n\t// http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt\n\tif (x >= 0x1100 && (\n\t\tx <= 0x115f ||  // Hangul Jamo\n\t\t0x2329 === x || // LEFT-POINTING ANGLE BRACKET\n\t\t0x232a === x || // RIGHT-POINTING ANGLE BRACKET\n\t\t// CJK Radicals Supplement .. Enclosed CJK Letters and Months\n\t\t(0x2e80 <= x && x <= 0x3247 && x !== 0x303f) ||\n\t\t// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A\n\t\t0x3250 <= x && x <= 0x4dbf ||\n\t\t// CJK Unified Ideographs .. Yi Radicals\n\t\t0x4e00 <= x && x <= 0xa4c6 ||\n\t\t// Hangul Jamo Extended-A\n\t\t0xa960 <= x && x <= 0xa97c ||\n\t\t// Hangul Syllables\n\t\t0xac00 <= x && x <= 0xd7a3 ||\n\t\t// CJK Compatibility Ideographs\n\t\t0xf900 <= x && x <= 0xfaff ||\n\t\t// Vertical Forms\n\t\t0xfe10 <= x && x <= 0xfe19 ||\n\t\t// CJK Compatibility Forms .. Small Form Variants\n\t\t0xfe30 <= x && x <= 0xfe6b ||\n\t\t// Halfwidth and Fullwidth Forms\n\t\t0xff01 <= x && x <= 0xff60 ||\n\t\t0xffe0 <= x && x <= 0xffe6 ||\n\t\t// Kana Supplement\n\t\t0x1b000 <= x && x <= 0x1b001 ||\n\t\t// Enclosed Ideographic Supplement\n\t\t0x1f200 <= x && x <= 0x1f251 ||\n\t\t// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane\n\t\t0x20000 <= x && x <= 0x3fffd)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n", "'use strict';\nvar stripAnsi = require('strip-ansi');\nvar codePointAt = require('code-point-at');\nvar isFullwidthCodePoint = require('is-fullwidth-code-point');\n\n// https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1345\nmodule.exports = function (str) {\n\tif (typeof str !== 'string' || str.length === 0) {\n\t\treturn 0;\n\t}\n\n\tvar width = 0;\n\n\tstr = stripAnsi(str);\n\n\tfor (var i = 0; i < str.length; i++) {\n\t\tvar code = codePointAt(str, i);\n\n\t\t// ignore control characters\n\t\tif (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// surrogates\n\t\tif (code >= 0x10000) {\n\t\t\ti++;\n\t\t}\n\n\t\tif (isFullwidthCodePoint(code)) {\n\t\t\twidth += 2;\n\t\t} else {\n\t\t\twidth++;\n\t\t}\n\t}\n\n\treturn width;\n};\n", "'use strict';\nvar sliceAnsi = require('slice-ansi');\nvar stringWidth = require('string-width');\n\nmodule.exports = function (input, columns, options) {\n\toptions = options || {};\n\n\tvar position = options.position || 'end';\n\tvar ellipsis = '\u2026';\n\n\tif (typeof input !== 'string') {\n\t\tthrow new TypeError('Expected `input` to be a string, got ' + typeof input);\n\t}\n\n\tif (typeof columns !== 'number') {\n\t\tthrow new TypeError('Expected `columns` to be a number, got ' + typeof columns);\n\t}\n\n\tif (columns < 1) {\n\t\treturn '';\n\t}\n\n\tif (columns === 1) {\n\t\treturn ellipsis;\n\t}\n\n\tvar length = stringWidth(input);\n\n\tif (length <= columns) {\n\t\treturn input;\n\t}\n\n\tif (position === 'start') {\n\t\treturn ellipsis + sliceAnsi(input, length - columns + 1, length);\n\t} else if (position === 'middle') {\n\t\tvar half = Math.floor(columns / 2);\n\t\treturn sliceAnsi(input, 0, half) + ellipsis + sliceAnsi(input, length - (columns - half) + 1, length);\n\t} else if (position === 'end') {\n\t\treturn sliceAnsi(input, 0, columns - 1) + ellipsis;\n\t}\n\n\tthrow new Error('Expected `options.position` to be either `start`, `middle` or `end`, got ' + position);\n};\n", "'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n", "'use strict';\n\nfunction assembleStyles () {\n\tvar styles = {\n\t\tmodifiers: {\n\t\t\treset: [0, 0],\n\t\t\tbold: [1, 22], // 21 isn't widely supported and 22 does the same thing\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolors: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\t\t\tgray: [90, 39]\n\t\t},\n\t\tbgColors: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49]\n\t\t}\n\t};\n\n\t// fix humans\n\tstyles.colors.grey = styles.colors.gray;\n\n\tObject.keys(styles).forEach(function (groupName) {\n\t\tvar group = styles[groupName];\n\n\t\tObject.keys(group).forEach(function (styleName) {\n\t\t\tvar style = group[styleName];\n\n\t\t\tstyles[styleName] = group[styleName] = {\n\t\t\t\topen: '\\u001b[' + style[0] + 'm',\n\t\t\t\tclose: '\\u001b[' + style[1] + 'm'\n\t\t\t};\n\t\t});\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t});\n\n\treturn styles;\n}\n\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n", "'use strict';\nmodule.exports = function () {\n\treturn /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;\n};\n", "'use strict';\nvar ansiRegex = require('ansi-regex')();\n\nmodule.exports = function (str) {\n\treturn typeof str === 'string' ? str.replace(ansiRegex, '') : str;\n};\n", "'use strict';\nvar argv = process.argv;\n\nvar terminator = argv.indexOf('--');\nvar hasFlag = function (flag) {\n\tflag = '--' + flag;\n\tvar pos = argv.indexOf(flag);\n\treturn pos !== -1 && (terminator !== -1 ? pos < terminator : true);\n};\n\nmodule.exports = (function () {\n\tif ('FORCE_COLOR' in process.env) {\n\t\treturn true;\n\t}\n\n\tif (hasFlag('no-color') ||\n\t\thasFlag('no-colors') ||\n\t\thasFlag('color=false')) {\n\t\treturn false;\n\t}\n\n\tif (hasFlag('color') ||\n\t\thasFlag('colors') ||\n\t\thasFlag('color=true') ||\n\t\thasFlag('color=always')) {\n\t\treturn true;\n\t}\n\n\tif (process.stdout && !process.stdout.isTTY) {\n\t\treturn false;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\treturn true;\n\t}\n\n\tif ('COLORTERM' in process.env) {\n\t\treturn true;\n\t}\n\n\tif (process.env.TERM === 'dumb') {\n\t\treturn false;\n\t}\n\n\tif (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n})();\n", "'use strict';\nvar escapeStringRegexp = require('escape-string-regexp');\nvar ansiStyles = require('ansi-styles');\nvar stripAnsi = require('strip-ansi');\nvar hasAnsi = require('has-ansi');\nvar supportsColor = require('supports-color');\nvar defineProps = Object.defineProperties;\nvar isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(process.env.TERM);\n\nfunction Chalk(options) {\n\t// detect mode if not set manually\n\tthis.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled;\n}\n\n// use bright blue on Windows as the normal blue color is illegible\nif (isSimpleWindowsTerm) {\n\tansiStyles.blue.open = '\\u001b[94m';\n}\n\nvar styles = (function () {\n\tvar ret = {};\n\n\tObject.keys(ansiStyles).forEach(function (key) {\n\t\tansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n\n\t\tret[key] = {\n\t\t\tget: function () {\n\t\t\t\treturn build.call(this, this._styles.concat(key));\n\t\t\t}\n\t\t};\n\t});\n\n\treturn ret;\n})();\n\nvar proto = defineProps(function chalk() {}, styles);\n\nfunction build(_styles) {\n\tvar builder = function () {\n\t\treturn applyStyle.apply(builder, arguments);\n\t};\n\n\tbuilder._styles = _styles;\n\tbuilder.enabled = this.enabled;\n\t// __proto__ is used because we must return a function, but there is\n\t// no way to create a function with a different prototype.\n\t/* eslint-disable no-proto */\n\tbuilder.__proto__ = proto;\n\n\treturn builder;\n}\n\nfunction applyStyle() {\n\t// support varags, but simply cast to string in case there's only one arg\n\tvar args = arguments;\n\tvar argsLen = args.length;\n\tvar str = argsLen !== 0 && String(arguments[0]);\n\n\tif (argsLen > 1) {\n\t\t// don't slice `arguments`, it prevents v8 optimizations\n\t\tfor (var a = 1; a < argsLen; a++) {\n\t\t\tstr += ' ' + args[a];\n\t\t}\n\t}\n\n\tif (!this.enabled || !str) {\n\t\treturn str;\n\t}\n\n\tvar nestedStyles = this._styles;\n\tvar i = nestedStyles.length;\n\n\t// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,\n\t// see https://github.com/chalk/chalk/issues/58\n\t// If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.\n\tvar originalDim = ansiStyles.dim.open;\n\tif (isSimpleWindowsTerm && (nestedStyles.indexOf('gray') !== -1 || nestedStyles.indexOf('grey') !== -1)) {\n\t\tansiStyles.dim.open = '';\n\t}\n\n\twhile (i--) {\n\t\tvar code = ansiStyles[nestedStyles[i]];\n\n\t\t// Replace any instances already present with a re-opening code\n\t\t// otherwise only the part of the string until said closing code\n\t\t// will be colored, and the rest will simply be 'plain'.\n\t\tstr = code.open + str.replace(code.closeRe, code.open) + code.close;\n\t}\n\n\t// Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue.\n\tansiStyles.dim.open = originalDim;\n\n\treturn str;\n}\n\nfunction init() {\n\tvar ret = {};\n\n\tObject.keys(styles).forEach(function (name) {\n\t\tret[name] = {\n\t\t\tget: function () {\n\t\t\t\treturn build.call(this, [name]);\n\t\t\t}\n\t\t};\n\t});\n\n\treturn ret;\n}\n\ndefineProps(Chalk.prototype, init());\n\nmodule.exports = new Chalk();\nmodule.exports.styles = ansiStyles;\nmodule.exports.hasColor = hasAnsi;\nmodule.exports.stripColor = stripAnsi;\nmodule.exports.supportsColor = supportsColor;\n", "'use strict';\nvar chalk = require('chalk');\n\nvar main = {\n\tinfo: chalk.blue('\u2139'),\n\tsuccess: chalk.green('\u2714'),\n\twarning: chalk.yellow('\u26A0'),\n\terror: chalk.red('\u2716')\n};\n\nvar win = {\n\tinfo: chalk.blue('i'),\n\tsuccess: chalk.green('\u221A'),\n\twarning: chalk.yellow('\u203C'),\n\terror: chalk.red('\u00D7')\n};\n\nmodule.exports = process.platform === 'win32' ? win : main;\n", "'use strict';\n\nvar frames = process.platform === 'win32' ?\n\t['-', '\\\\', '|', '/'] :\n\t['\u280B', '\u2819', '\u2839', '\u2838', '\u283C', '\u2834', '\u2826', '\u2827', '\u2807', '\u280F'];\n\nmodule.exports = function () {\n\tvar i = 0;\n\n\treturn function () {\n\t\treturn frames[i = ++i % frames.length];\n\t};\n};\n\nmodule.exports.frames = frames;\n", "'use strict';\nconst chalk = require('chalk');\nconst logSymbols = require('log-symbols');\nconst figures = require('figures');\nconst elegantSpinner = require('elegant-spinner');\n\nconst pointer = chalk.yellow(figures.pointer);\nconst skipped = chalk.yellow(figures.arrowDown);\n\nexports.isDefined = x => x !== null && x !== undefined;\n\nexports.getSymbol = (task, options) => {\n\tif (!task.spinner) {\n\t\ttask.spinner = elegantSpinner();\n\t}\n\n\tif (task.isPending()) {\n\t\treturn options.showSubtasks !== false && task.subtasks.length > 0 ? pointer : chalk.yellow(task.spinner());\n\t}\n\n\tif (task.isCompleted()) {\n\t\treturn logSymbols.success;\n\t}\n\n\tif (task.hasFailed()) {\n\t\treturn task.subtasks.length > 0 ? pointer : logSymbols.error;\n\t}\n\n\tif (task.isSkipped()) {\n\t\treturn skipped;\n\t}\n\n\treturn ' ';\n};\n", "'use strict';\nconst logUpdate = require('log-update');\nconst chalk = require('chalk');\nconst figures = require('figures');\nconst indentString = require('indent-string');\nconst cliTruncate = require('cli-truncate');\nconst stripAnsi = require('strip-ansi');\nconst utils = require('./lib/utils');\n\nconst renderHelper = (tasks, options, level) => {\n\tlevel = level || 0;\n\n\tlet output = [];\n\n\tfor (const task of tasks) {\n\t\tif (task.isEnabled()) {\n\t\t\tconst skipped = task.isSkipped() ? ` ${chalk.dim('[skipped]')}` : '';\n\n\t\t\toutput.push(indentString(` ${utils.getSymbol(task, options)} ${task.title}${skipped}`, level, '  '));\n\n\t\t\tif ((task.isPending() || task.isSkipped() || task.hasFailed()) && utils.isDefined(task.output)) {\n\t\t\t\tlet data = task.output;\n\n\t\t\t\tif (typeof data === 'string') {\n\t\t\t\t\tdata = stripAnsi(data.trim().split('\\n').filter(Boolean).pop());\n\n\t\t\t\t\tif (data === '') {\n\t\t\t\t\t\tdata = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (utils.isDefined(data)) {\n\t\t\t\t\tconst out = indentString(`${figures.arrowRight} ${data}`, level, '  ');\n\t\t\t\t\toutput.push(`   ${chalk.gray(cliTruncate(out, process.stdout.columns - 3))}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ((task.isPending() || task.hasFailed() || options.collapse === false) && (task.hasFailed() || options.showSubtasks !== false) && task.subtasks.length > 0) {\n\t\t\t\toutput = output.concat(renderHelper(task.subtasks, options, level + 1));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join('\\n');\n};\n\nconst render = (tasks, options) => {\n\tlogUpdate(renderHelper(tasks, options));\n};\n\nclass UpdateRenderer {\n\tconstructor(tasks, options) {\n\t\tthis._tasks = tasks;\n\t\tthis._options = Object.assign({\n\t\t\tshowSubtasks: true,\n\t\t\tcollapse: true,\n\t\t\tclearOutput: false\n\t\t}, options);\n\t}\n\n\trender() {\n\t\tif (this._id) {\n\t\t\t// Do not render if we are already rendering\n\t\t\treturn;\n\t\t}\n\n\t\tthis._id = setInterval(() => {\n\t\t\trender(this._tasks, this._options);\n\t\t}, 100);\n\t}\n\n\tend(err) {\n\t\tif (this._id) {\n\t\t\tclearInterval(this._id);\n\t\t\tthis._id = undefined;\n\t\t}\n\n\t\trender(this._tasks, this._options);\n\n\t\tif (this._options.clearOutput && err === undefined) {\n\t\t\tlogUpdate.clear();\n\t\t} else {\n\t\t\tlogUpdate.done();\n\t\t}\n\t}\n}\n\nmodule.exports = UpdateRenderer;\n", "'use strict';\nconst renderers = {\n\tsilent: require('listr-silent-renderer'),\n\tverbose: require('listr-verbose-renderer'),\n\tdefault: require('listr-update-renderer')\n};\n\nconst isRendererSupported = renderer => process.stdout.isTTY === true || renderer.nonTTY === true;\n\nconst getRendererClass = renderer => {\n\tif (typeof renderer === 'string') {\n\t\treturn renderers[renderer] || renderers.default;\n\t}\n\n\treturn typeof renderer === 'function' ? renderer : renderers.default;\n};\n\nexports.getRenderer = (renderer, fallbackRenderer) => {\n\tlet ret = getRendererClass(renderer);\n\n\tif (!isRendererSupported(ret)) {\n\t\tret = getRendererClass(fallbackRenderer);\n\n\t\tif (!ret || !isRendererSupported(ret)) {\n\t\t\tret = renderers.verbose;\n\t\t}\n\t}\n\n\treturn ret;\n};\n", "'use strict';\nconst state = {\n\tPENDING: 0,\n\tCOMPLETED: 1,\n\tFAILED: 2,\n\tSKIPPED: 3\n};\n\nstate.toString = input => {\n\tswitch (input) {\n\t\tcase state.PENDING:\n\t\t\treturn 'pending';\n\t\tcase state.COMPLETED:\n\t\t\treturn 'completed';\n\t\tcase state.FAILED:\n\t\t\treturn 'failed';\n\t\tcase state.SKIPPED:\n\t\t\treturn 'skipped';\n\t\tdefault:\n\t\t\treturn 'unknown';\n\t}\n};\n\nmodule.exports = state;\n", "'use strict';\n\nvar isStream = module.exports = function (stream) {\n\treturn stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function';\n};\n\nisStream.writable = function (stream) {\n\treturn isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object';\n};\n\nisStream.readable = function (stream) {\n\treturn isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object';\n};\n\nisStream.duplex = function (stream) {\n\treturn isStream.writable(stream) && isStream.readable(stream);\n};\n\nisStream.transform = function (stream) {\n\treturn isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object';\n};\n", "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};", "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _ponyfill = require('./ponyfill.js');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root; /* global window */\n\n\nif (typeof self !== 'undefined') {\n  root = self;\n} else if (typeof window !== 'undefined') {\n  root = window;\n} else if (typeof global !== 'undefined') {\n  root = global;\n} else if (typeof module !== 'undefined') {\n  root = module;\n} else {\n  root = Function('return this')();\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;", "'use strict';\nconst symbolObservable = require('symbol-observable').default;\n\nmodule.exports = value => Boolean(value && value[symbolObservable] && value === value[symbolObservable]());\n", "'use strict';\nconst isStream = require('is-stream');\n\n// RxJS@6 symbol (https://github.com/sindresorhus/is-observable/issues/1#issuecomment-387843191)\nconst symbolObservable = typeof Symbol === 'function' && Symbol.observable || '@@observable';\t\t// eslint-disable-line no-mixed-operators\n\nconst isObservable = obj => Boolean(obj && obj[symbolObservable] && obj === obj[symbolObservable]()) || require('is-observable')(obj);\n\nexports.isListr = obj => Boolean(obj && obj.setRenderer && obj.add && obj.run);\nexports.isObservable = obj => isObservable(obj);\nexports.isStream = obj => isStream(obj) && !isObservable(obj);\n", "'use strict';\nclass ListrError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'ListrError';\n\t}\n}\n\nmodule.exports = ListrError;\n", "'use strict';\nconst isPromise = require('is-promise');\nconst streamToObservable = require('@samverschueren/stream-to-observable');\nconst Subject = require('rxjs').Subject;\nconst renderer = require('./renderer');\nconst state = require('./state');\nconst utils = require('./utils');\nconst ListrError = require('./listr-error');\n\nconst defaultSkipFn = () => false;\n\nclass Task extends Subject {\n\tconstructor(listr, task, options) {\n\t\tsuper();\n\n\t\tif (!task) {\n\t\t\tthrow new TypeError('Expected a task');\n\t\t}\n\n\t\tif (typeof task.title !== 'string') {\n\t\t\tthrow new TypeError(`Expected property \\`title\\` to be of type \\`string\\`, got \\`${typeof task.title}\\``);\n\t\t}\n\n\t\tif (typeof task.task !== 'function') {\n\t\t\tthrow new TypeError(`Expected property \\`task\\` to be of type \\`function\\`, got \\`${typeof task.task}\\``);\n\t\t}\n\n\t\tif (task.skip && typeof task.skip !== 'function') {\n\t\t\tthrow new TypeError(`Expected property \\`skip\\` to be of type \\`function\\`, got \\`${typeof task.skip}\\``);\n\t\t}\n\n\t\tif (task.enabled && typeof task.enabled !== 'function') {\n\t\t\tthrow new TypeError(`Expected property \\`enabled\\` to be of type \\`function\\`, got \\`${typeof task.enabled}\\``);\n\t\t}\n\n\t\tthis._listr = listr;\n\t\tthis._options = options || {};\n\t\tthis._subtasks = [];\n\t\tthis._enabledFn = task.enabled;\n\t\tthis._isEnabled = true;\n\n\t\tthis.output = undefined;\n\t\tthis.title = task.title;\n\t\tthis.skip = task.skip || defaultSkipFn;\n\t\tthis.task = task.task;\n\t}\n\n\tget subtasks() {\n\t\treturn this._subtasks;\n\t}\n\n\tset state(state) {\n\t\tthis._state = state;\n\n\t\tthis.next({\n\t\t\ttype: 'STATE'\n\t\t});\n\t}\n\n\tget state() {\n\t\treturn state.toString(this._state);\n\t}\n\n\tcheck(ctx) {\n\t\t// Check if a task is enabled or disabled\n\t\tif (this._state === undefined && this._enabledFn) {\n\t\t\tconst isEnabled = this._enabledFn(ctx);\n\n\t\t\tif (this._isEnabled !== isEnabled) {\n\t\t\t\tthis._isEnabled = isEnabled;\n\n\t\t\t\tthis.next({\n\t\t\t\t\ttype: 'ENABLED',\n\t\t\t\t\tdata: isEnabled\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\thasSubtasks() {\n\t\treturn this._subtasks.length > 0;\n\t}\n\n\tisPending() {\n\t\treturn this._state === state.PENDING;\n\t}\n\n\tisSkipped() {\n\t\treturn this._state === state.SKIPPED;\n\t}\n\n\tisCompleted() {\n\t\treturn this._state === state.COMPLETED;\n\t}\n\n\tisEnabled() {\n\t\treturn this._isEnabled;\n\t}\n\n\thasFailed() {\n\t\treturn this._state === state.FAILED;\n\t}\n\n\trun(context, wrapper) {\n\t\tconst handleResult = result => {\n\t\t\t// Detect the subtask\n\t\t\tif (utils.isListr(result)) {\n\t\t\t\tresult._options = Object.assign(this._options, result._options);\n\n\t\t\t\tresult.exitOnError = result._options.exitOnError;\n\n\t\t\t\tresult.setRenderer(renderer.getRenderer('silent'));\n\t\t\t\tthis._subtasks = result.tasks;\n\n\t\t\t\tthis.next({\n\t\t\t\t\ttype: 'SUBTASKS'\n\t\t\t\t});\n\n\t\t\t\treturn result.run(context);\n\t\t\t}\n\n\t\t\t// Detect stream\n\t\t\tif (utils.isStream(result)) {\n\t\t\t\tresult = streamToObservable(result);\n\t\t\t}\n\n\t\t\t// Detect Observable\n\t\t\tif (utils.isObservable(result)) {\n\t\t\t\tresult = new Promise((resolve, reject) => {\n\t\t\t\t\tresult.subscribe({\n\t\t\t\t\t\tnext: data => {\n\t\t\t\t\t\t\tthis.output = data;\n\n\t\t\t\t\t\t\tthis.next({\n\t\t\t\t\t\t\t\ttype: 'DATA',\n\t\t\t\t\t\t\t\tdata\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: reject,\n\t\t\t\t\t\tcomplete: resolve\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Detect promise\n\t\t\tif (isPromise(result)) {\n\t\t\t\treturn result.then(handleResult);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\n\t\treturn Promise.resolve()\n\t\t\t.then(() => {\n\t\t\t\tthis.state = state.PENDING;\n\t\t\t\treturn this.skip(context);\n\t\t\t})\n\t\t\t.then(skipped => {\n\t\t\t\tif (skipped) {\n\t\t\t\t\tif (typeof skipped === 'string') {\n\t\t\t\t\t\tthis.output = skipped;\n\t\t\t\t\t}\n\t\t\t\t\tthis.state = state.SKIPPED;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\treturn handleResult(this.task(context, wrapper));\n\t\t\t})\n\t\t\t.then(() => {\n\t\t\t\tif (this.isPending()) {\n\t\t\t\t\tthis.state = state.COMPLETED;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.state = state.FAILED;\n\n\t\t\t\tif (error instanceof ListrError) {\n\t\t\t\t\twrapper.report(error);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!this.hasSubtasks()) {\n\t\t\t\t\t// Do not show the message if we have subtasks as the error is already shown in the subtask\n\t\t\t\t\tthis.output = error.message;\n\t\t\t\t}\n\n\t\t\t\tthis.next({\n\t\t\t\t\ttype: 'DATA',\n\t\t\t\t\tdata: error.message\n\t\t\t\t});\n\n\t\t\t\twrapper.report(error);\n\n\t\t\t\tif (this._listr.exitOnError !== false) {\n\t\t\t\t\t// Do not exit when explicitely set to `false`\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(() => {\n\t\t\t\t// Mark the Observable as completed\n\t\t\t\tthis.complete();\n\t\t\t});\n\t}\n}\n\nmodule.exports = Task;\n", "'use strict';\nconst state = require('./state');\nconst ListrError = require('./listr-error');\n\nclass TaskWrapper {\n\tconstructor(task, errors) {\n\t\tthis._task = task;\n\t\tthis._errors = errors;\n\t}\n\n\tset title(title) {\n\t\tthis._task.title = title;\n\n\t\tthis._task.next({\n\t\t\ttype: 'TITLE',\n\t\t\tdata: title\n\t\t});\n\t}\n\n\tset output(data) {\n\t\tthis._task.output = data;\n\n\t\tthis._task.next({\n\t\t\ttype: 'DATA',\n\t\t\tdata\n\t\t});\n\t}\n\n\tget title() {\n\t\treturn this._task.title;\n\t}\n\n\treport(error) {\n\t\tif (error instanceof ListrError) {\n\t\t\tfor (const err of error.errors) {\n\t\t\t\tthis._errors.push(err);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._errors.push(error);\n\t\t}\n\t}\n\n\tskip(message) {\n\t\tif (message && typeof message !== 'string') {\n\t\t\tthrow new TypeError(`Expected \\`message\\` to be of type \\`string\\`, got \\`${typeof message}\\``);\n\t\t}\n\n\t\tif (message) {\n\t\t\tthis._task.output = message;\n\t\t}\n\n\t\tthis._task.state = state.SKIPPED;\n\t}\n\n\trun(ctx) {\n\t\treturn this._task.run(ctx, this);\n\t}\n}\n\nmodule.exports = TaskWrapper;\n", "'use strict';\nconst pMap = require('p-map');\nconst Task = require('./lib/task');\nconst TaskWrapper = require('./lib/task-wrapper');\nconst renderer = require('./lib/renderer');\nconst ListrError = require('./lib/listr-error');\n\nconst runTask = (task, context, errors) => {\n\tif (!task.isEnabled()) {\n\t\treturn Promise.resolve();\n\t}\n\n\treturn new TaskWrapper(task, errors).run(context);\n};\n\nclass Listr {\n\tconstructor(tasks, opts) {\n\t\tif (tasks && !Array.isArray(tasks) && typeof tasks === 'object') {\n\t\t\tif (typeof tasks.title === 'string' && typeof tasks.task === 'function') {\n\t\t\t\tthrow new TypeError('Expected an array of tasks or an options object, got a task object');\n\t\t\t}\n\n\t\t\topts = tasks;\n\t\t\ttasks = [];\n\t\t}\n\n\t\tif (tasks && !Array.isArray(tasks)) {\n\t\t\tthrow new TypeError('Expected an array of tasks');\n\t\t}\n\n\t\tthis._options = Object.assign({\n\t\t\tshowSubtasks: true,\n\t\t\tconcurrent: false,\n\t\t\trenderer: 'default',\n\t\t\tnonTTYRenderer: 'verbose'\n\t\t}, opts);\n\t\tthis._tasks = [];\n\n\t\tthis.concurrency = 1;\n\t\tif (this._options.concurrent === true) {\n\t\t\tthis.concurrency = Infinity;\n\t\t} else if (typeof this._options.concurrent === 'number') {\n\t\t\tthis.concurrency = this._options.concurrent;\n\t\t}\n\n\t\tthis._RendererClass = renderer.getRenderer(this._options.renderer, this._options.nonTTYRenderer);\n\n\t\tthis.exitOnError = this._options.exitOnError;\n\n\t\tthis.add(tasks || []);\n\t}\n\n\t_checkAll(context) {\n\t\tfor (const task of this._tasks) {\n\t\t\ttask.check(context);\n\t\t}\n\t}\n\n\tget tasks() {\n\t\treturn this._tasks;\n\t}\n\n\tsetRenderer(value) {\n\t\tthis._RendererClass = renderer.getRenderer(value);\n\t}\n\n\tadd(task) {\n\t\tconst tasks = Array.isArray(task) ? task : [task];\n\n\t\tfor (const task of tasks) {\n\t\t\tthis._tasks.push(new Task(this, task, this._options));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\trender() {\n\t\tif (!this._renderer) {\n\t\t\tthis._renderer = new this._RendererClass(this._tasks, this._options);\n\t\t}\n\n\t\treturn this._renderer.render();\n\t}\n\n\trun(context) {\n\t\tthis.render();\n\n\t\tcontext = context || Object.create(null);\n\n\t\tconst errors = [];\n\n\t\tthis._checkAll(context);\n\n\t\tconst tasks = pMap(this._tasks, task => {\n\t\t\tthis._checkAll(context);\n\t\t\treturn runTask(task, context, errors);\n\t\t}, {concurrency: this.concurrency});\n\n\t\treturn tasks\n\t\t\t.then(() => {\n\t\t\t\tif (errors.length > 0) {\n\t\t\t\t\tconst err = new ListrError('Something went wrong');\n\t\t\t\t\terr.errors = errors;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\n\t\t\t\tthis._renderer.end();\n\n\t\t\t\treturn context;\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\terror.context = context;\n\t\t\t\tthis._renderer.end(error);\n\t\t\t\tthrow error;\n\t\t\t});\n\t}\n}\n\nmodule.exports = Listr;\n", "import type {Message, Metafile} from 'esbuild';\nimport {rm} from 'node:fs/promises';\n\n/**\n * Builds an ECMAScript module (ESM) bundle for browser use using `esbuild`.\n *\n * This function:\n * - Ensures `esbuild` is available.\n * - Deletes the existing output file if it exists.\n * - Builds the input file with optimizations: minification, tree-shaking, etc.\n * - Returns the esbuild `metafile`, version, and any build errors or warnings.\n *\n * @param {Object} options - Build configuration.\n * @param {string} options.infile - The path to the input file to be bundled.\n * @param {string} options.outfile - The path where the output bundle should be written.\n * @param {Object<string, string>} [options.banner] - Optional banner to prepend to the generated file.\n *\n * @returns {Promise<{\n *   metafile: Metafile,\n *   errors: Message[],\n *   warnings: Message[],\n *   version: string\n * }>} An object containing the esbuild metafile, build errors/warnings, and the version of esbuild used.\n *\n * @throws Will exit the process if `esbuild` is not installed.\n */\nexport const buildEsm = async ({\n  infile,\n  outfile,\n  banner\n}: {\n  infile: string;\n  outfile: string;\n  banner?: {[type: string]: string};\n}): Promise<{\n  metafile: Metafile;\n  errors: Message[];\n  warnings: Message[];\n  version: string;\n}> => {\n  await assertEsbuild();\n\n  const {build, version} = await import('esbuild');\n\n  await rm(outfile, {force: true});\n\n  const {metafile, errors, warnings} = await build({\n    entryPoints: [infile],\n    outfile,\n    bundle: true,\n    minify: true,\n    treeShaking: true,\n    format: 'esm',\n    platform: 'browser',\n    write: true,\n    supported: {\n      'top-level-await': false,\n      'inline-script': false\n    },\n    define: {\n      self: 'globalThis'\n    },\n    metafile: true,\n    banner\n  });\n\n  return {metafile, errors, warnings, version};\n};\n\nconst assertEsbuild = async () => {\n  try {\n    await import('esbuild');\n  } catch (_err: unknown) {\n    console.error(\n      `Esbuild is required to build your functions. Please install it by running: npm i esbuild`\n    );\n    process.exit(1);\n  }\n};\n", "import {toNullable} from '@dfinity/utils';\nimport type {CliConfig} from '@junobuild/config';\nimport {COLLECTION_DAPP} from '../constants/deploy.constants';\nimport {executeHooks} from '../services/deploy.hook.services';\nimport {prepareDeploy as prepareDeployServices} from '../services/deploy.prepare.services';\nimport {deployAndProposeChanges} from '../services/deploy.proposal.services';\nimport {uploadFiles} from '../services/upload.services';\nimport type {\n  DeployParams,\n  DeployResult,\n  DeployResultWithProposal,\n  FileAndPaths,\n  FileDetails,\n  FilePaths,\n  UploadFileWithProposal\n} from '../types/deploy';\nimport type {ProposeChangesParams} from '../types/proposal';\nimport {fullPath} from '../utils/deploy.utils';\n\n/**\n * Executes all configured pre-deploy hooks defined in the Juno configuration.\n *\n * This function is typically run before uploading or deploying any assets to\n * perform validations, code generation, or other preparatory tasks.\n *\n * @param {Object} options - The function parameters.\n * @param {CliConfig} options.config - The full configuration object containing hook definitions.\n * @returns {Promise<void>} Resolves once all predeploy hooks have been executed.\n */\nexport const preDeploy = async ({config: {predeploy}}: {config: CliConfig}) => {\n  await executeHooks(predeploy);\n};\n\n/**\n * Executes all configured post-deploy hooks defined in the Juno configuration.\n *\n * This function is typically run after a successful deployment to perform cleanup,\n * logging, or integration tasks (e.g., sending Slack notifications).\n *\n * @param {Object} options - The function parameters.\n * @param {CliConfig} options.config - The full configuration object containing hook definitions.\n * @returns {Promise<void>} Resolves once all postdeploy hooks have been executed.\n */\nexport const postDeploy = async ({config: {postdeploy}}: {config: CliConfig}) => {\n  await executeHooks(postdeploy);\n};\n\n/**\n * Prepares and uploads dapp assets to a satellite.\n *\n * This function handles:\n * 1. Resolving source files to upload.\n * 2. Verifying that enough memory is available (via `assertMemory`).\n * 3. Uploading all valid files using the provided `uploadFile` function.\n *\n * If no files are detected (e.g., all files are unchanged), the deploy is skipped.\n *\n * @param {Object} options - Deployment options.\n * @param {CliConfig} options.config - The CLI configuration object.\n * @param {ListAssets} options.listAssets - A function to list existing files on the target.\n * @param {Function} [options.assertSourceDirExists] - Optional check to ensure source directory exists.\n * @param {Function} options.assertMemory - A function to ensure enough memory is available.\n * @param {UploadFile} options.uploadFile - A function responsible for uploading a single file.\n *\n * @returns {Promise<DeployResult>} An object containing the result of the deploy:\n *   - `skipped` if no files were found.\n *   - `deployed` and a list of uploaded files if the deploy succeeded.\n */\nexport const deploy = async ({uploadFile, ...rest}: DeployParams): Promise<DeployResult> => {\n  const prepareResult = await prepareDeploy(rest);\n\n  if (prepareResult.result === 'skipped') {\n    return {result: 'skipped'};\n  }\n\n  const {files, sourceAbsolutePath} = prepareResult;\n\n  const sourceFiles = prepareSourceFiles({files, sourceAbsolutePath});\n\n  await uploadFiles({\n    files: sourceFiles,\n    uploadFile,\n    sourceAbsolutePath,\n    collection: COLLECTION_DAPP\n  });\n\n  console.log(`\\n\uD83D\uDE80 Deploy complete!`);\n\n  return {result: 'deployed', files};\n};\n\n/**\n * Prepares and uploads assets as part of a proposal-based workflow.\n *\n * This function:\n * 1. Prepares the list of files to be uploaded.\n * 2. If no files are found (i.e. nothing to upload), the process is skipped.\n * 3. If files exist, uploads them a proposal flow.\n * 4. Optionally commits - apply - the proposal if `autoCommit` is `true`.\n *\n * @param {Object} options - The deployment and proposal options.\n * @param {DeployParams} options.deploy - Deployment-related parameters (file system, memory check, upload function).\n * @param {Object} options.proposal - Proposal-related options.\n * @param {CdnParameters} options.proposal.cdn - Parameters for interacting with the CDN and governance.\n * @param {boolean} options.proposal.autoCommit - If `true`, automatically commits the proposal after submission.\n * @param {boolean} [options.proposal.clearAssets] - Whether to clear existing assets before upload (optional).\n *\n * @returns {Promise<DeployResultWithProposal>} The result of the deployment process:\n *   - `{result: 'skipped'}` if no files were found for upload.\n *   - `{result: 'submitted', files, proposalId}` if the upload and proposal submission succeeded.\n *   - `{result: 'deployed', files, proposalId}` if the upload and proposal was applied automatically committed.\n */\nexport const deployWithProposal = async ({\n  deploy: {uploadFile, ...rest},\n  proposal: {clearAssets, ...restProposal}\n}: {\n  deploy: DeployParams<UploadFileWithProposal>;\n  proposal: Pick<ProposeChangesParams, 'cdn' | 'autoCommit'> & {clearAssets?: boolean};\n}): Promise<DeployResultWithProposal> => {\n  const prepareResult = await prepareDeploy(rest);\n\n  if (prepareResult.result === 'skipped') {\n    return {result: 'skipped'};\n  }\n\n  const {sourceAbsolutePath} = prepareResult;\n\n  const sourceFiles = prepareSourceFiles(prepareResult);\n\n  const result = await deployAndProposeChanges({\n    deploy: {uploadFile, files: sourceFiles, sourceAbsolutePath, collection: COLLECTION_DAPP},\n    proposal: {\n      ...restProposal,\n      proposalType: {\n        AssetsUpgrade: {\n          clear_existing_assets: toNullable(clearAssets)\n        }\n      }\n    }\n  });\n\n  if (result.result === 'deployed') {\n    console.log(`\\n\uD83D\uDE80 Deploy complete!`);\n  }\n\n  return result;\n};\n\nconst prepareDeploy = async ({\n  assertMemory,\n  ...rest\n}: Omit<DeployParams, 'uploadFile'>): Promise<\n  {result: 'skipped'} | {result: 'to-deploy'; files: FileDetails[]; sourceAbsolutePath: string}\n> => {\n  const {files: sourceFiles, sourceAbsolutePath} = await prepareDeployServices(rest);\n\n  if (sourceFiles.length === 0) {\n    console.log('\u26A0\uFE0F  No file changes detected. Upload skipped.');\n\n    return {result: 'skipped'};\n  }\n\n  await assertMemory?.();\n\n  return {\n    result: 'to-deploy',\n    files: sourceFiles,\n    sourceAbsolutePath\n  };\n};\n\nconst prepareSourceFiles = ({\n  files,\n  sourceAbsolutePath\n}: {\n  files: FileDetails[];\n  sourceAbsolutePath: string;\n}): FileAndPaths[] => {\n  const filePaths = (file: FileDetails): FilePaths => {\n    const filePath = file.alternateFile ?? file.file;\n\n    return {\n      fullPath: fullPath({file: filePath, sourceAbsolutePath}),\n      filePath\n    };\n  };\n\n  return files.map((file) => ({file, paths: filePaths(file)}));\n};\n", "export const DEPLOY_DEFAULT_SOURCE = 'build';\nexport const DEPLOY_DEFAULT_IGNORE = [];\nexport const DEPLOY_DEFAULT_ENCODING = [];\nexport const DEPLOY_DEFAULT_GZIP = '**/*.+(css|js|mjs)';\n\nexport const IGNORE_OS_FILES = ['.ds_store', 'thumbs.db'];\nexport const UPLOAD_BATCH_SIZE = 20;\n\nexport const COLLECTION_DAPP = '#dapp';\nexport const COLLECTION_CDN_RELEASES = '#_juno/releases';\n", "import {nonNullish} from '@dfinity/utils';\nimport {\n  spawn as spawnCommand,\n  type ChildProcess,\n  type ChildProcessWithoutNullStreams\n} from 'child_process';\nimport {applyForceShell} from './cmd.windows.utils';\n\nexport const spawn = async ({\n  command,\n  cwd,\n  args,\n  env,\n  stdout,\n  silentOut = false,\n  silentErrors = false\n}: {\n  command: string;\n  cwd?: string;\n  args?: readonly string[];\n  env?: NodeJS.ProcessEnv;\n  stdout?: (output: string) => void;\n  silentOut?: boolean;\n  silentErrors?: boolean;\n}): Promise<number | null> =>\n  // eslint-disable-next-line no-async-promise-executor\n  await new Promise<number | null>(async (resolve, reject) => {\n    const [escapedCommand, escapedArgs, options] = await applyForceShell(command, args ?? [], {\n      shell: true,\n      ...(nonNullish(cwd) && {cwd}),\n      ...(nonNullish(env) && {env})\n    });\n\n    const process: ChildProcessWithoutNullStreams = spawnCommand(\n      escapedCommand,\n      escapedArgs,\n      options\n    );\n\n    process.stdout.on('data', (data) => {\n      if (nonNullish(stdout)) {\n        stdout(`${data}`);\n        return;\n      }\n\n      if (silentOut) {\n        return;\n      }\n\n      console.log(`${data}`);\n    });\n    process.stderr.on('data', (data) => {\n      if (silentErrors) {\n        return;\n      }\n\n      reject(new Error(`${data}`));\n    });\n\n    process.on('close', (code) => {\n      resolve(code);\n    });\n    process.on('error', (err) => {\n      reject(err);\n    });\n  });\n\nexport const execute = async ({\n  command,\n  args,\n  env\n}: {\n  command: string;\n  args?: readonly string[];\n  env?: NodeJS.ProcessEnv;\n}): Promise<number | null> =>\n  // eslint-disable-next-line no-async-promise-executor\n  await new Promise<number | null>(async (resolve) => {\n    const [escapedCommand, escapedArgs, options] = await applyForceShell(command, args ?? [], {\n      stdio: 'inherit',\n      ...(nonNullish(env) && {env})\n    });\n\n    const childProcess: ChildProcess = spawnCommand(escapedCommand, escapedArgs ?? [], options);\n\n    childProcess.on('close', (code) => {\n      if (code === 0) {\n        resolve(code);\n        return;\n      }\n\n      // The child process encountered an error and exited abnormally. Since the child-process passes the error output to the terminal, we also close the CLI process without bubbling up and displaying any specific error.\n      process.exit(1);\n    });\n  });\n", "import {nonNullish} from '@dfinity/utils';\nimport type {SpawnOptions} from 'child_process';\nimport {stat} from 'node:fs/promises';\nimport path from 'node:path';\nimport process from 'node:process';\nimport {URL} from 'node:url';\n\n/**\n * This code is adapted from `nano-spawn`.\n * Source: https://github.com/sindresorhus/nano-spawn\n *\n * It includes logic to ensure proper command execution across platforms,\n * particularly handling shell requirements on Windows.\n *\n * If updating, consider checking for upstream changes in `nano-spawn`.\n */\n\n// When setting `shell: true` under-the-hood, we must manually escape the file and arguments.\n// This ensures arguments are properly split, and prevents command injection.\n// eslint-disable-next-line local-rules/prefer-object-params\nexport const applyForceShell = async <Options extends SpawnOptions>(\n  file: string,\n  commandArguments: readonly string[],\n  options: Options\n): Promise<[string, readonly string[], Options]> =>\n  (await shouldForceShell(file, options))\n    ? [\n        escapeFile(file),\n        commandArguments.map((argument) => escapeArgument(argument)),\n        {...options, shell: true}\n      ]\n    : [file, commandArguments, options];\n\n// On Windows, running most executable files (except *.exe and *.com) requires using a shell.\n// This includes *.cmd and *.bat, which itself includes Node modules binaries.\n// We detect this situation and automatically:\n//  - Set the `shell: true` option\n//  - Escape shell-specific characters\n// eslint-disable-next-line local-rules/prefer-object-params\nconst shouldForceShell = async <Options extends SpawnOptions>(\n  file: string,\n  {shell, cwd, env = process.env}: Options\n): Promise<boolean> => process.platform === 'win32' && !shell && !(await isExe(file, cwd, env));\n\n// Detect whether the executable file is a *.exe or *.com file.\n// Windows allows omitting file extensions (present in the `PATHEXT` environment variable).\n// Therefore we must use the `PATH` environment variable and make `stat` calls to check this.\n// Environment variables are case-insensitive on Windows, so we check both `PATH` and `Path`.\n// eslint-disable-next-line local-rules/prefer-object-params\nconst isExe = async (\n  file: string,\n  cwd: string | URL | undefined,\n  {Path = '', PATH = Path}: NodeJS.ProcessEnv\n): Promise<boolean> =>\n  // If the *.exe or *.com file extension was not omitted.\n  // Windows common file systems are case-insensitive.\n  exeExtensions.some((extension) => file.toLowerCase().endsWith(extension)) ||\n  // Use returned assignment to keep code small\n  (EXE_MEMO[`${file}\\0${cwd}\\0${PATH}`] ??= await mIsExe(file, cwd, PATH));\n\n// Memoize the following function, for performance\nconst EXE_MEMO = {};\n\n// eslint-disable-next-line local-rules/prefer-object-params\nconst mIsExe = async (\n  file: string,\n  cwd: string | URL | undefined,\n  PATH: string\n): Promise<boolean> => {\n  const parts = PATH\n    // `PATH` is ;-separated on Windows\n    .split(path.delimiter)\n    // `PATH` allows leading/trailing ; on Windows\n    .filter(Boolean)\n    // `PATH` parts can be double quoted on Windows\n    .map((part) => part.replace(/^\"(.*)\"$/, '$1'));\n\n  // For performance, parallelize and stop iteration as soon as an *.exe of *.com file is found\n  try {\n    await Promise.all(\n      exeExtensions\n        .flatMap((extension) =>\n          [cwd, ...parts]\n            .filter(nonNullish)\n            .map(\n              (part) =>\n                `${path.resolve(part instanceof URL ? part.toString() : part, file)}${extension}`\n            )\n        )\n        .map(async (possibleFile) => {\n          try {\n            await stat(possibleFile);\n          } catch {\n            return;\n          }\n\n          throw 0;\n        })\n    );\n  } catch {\n    return true;\n  }\n\n  return false;\n};\n\n// Other file extensions require using a shell\nconst exeExtensions = ['.exe', '.com'];\n\n// `cmd.exe` escaping for arguments.\n// Taken from https://github.com/moxystudio/node-cross-spawn\nconst escapeArgument = (argument) =>\n  escapeFile(\n    escapeFile(`\"${argument.replaceAll(/(\\\\*)\"/g, '$1$1\\\\\"').replace(/(\\\\*)$/, '$1$1')}\"`)\n  );\n\n// `cmd.exe` escaping for file and arguments.\nconst escapeFile = (file: string): string => file.replaceAll(/([()\\][%!^\"`<>&|;, *?])/g, '^$1');\n", "import {execute} from '../utils/cmd.utils';\n\nexport const executeHooks = async (hooks?: string[]) => {\n  for (const hook of hooks ?? []) {\n    const [cmd, ...args] = hook.split(' ');\n    await execute({command: cmd, args});\n  }\n};\n", "import {isNullish, nonNullish} from '@dfinity/utils';\nimport type {CliConfig, ENCODING_TYPE} from '@junobuild/config';\nimport crypto from 'crypto';\nimport {fileTypeFromFile} from 'file-type';\nimport mime from 'mime-types';\nimport {minimatch} from 'minimatch';\nimport {readFile} from 'node:fs/promises';\nimport {extname, join} from 'node:path';\nimport {\n  DEPLOY_DEFAULT_ENCODING,\n  DEPLOY_DEFAULT_GZIP,\n  DEPLOY_DEFAULT_IGNORE,\n  DEPLOY_DEFAULT_SOURCE\n} from '../constants/deploy.constants';\nimport type {\n  Asset,\n  FileDetails,\n  FileExtension,\n  ListAssets,\n  PrepareDeployOptions\n} from '../types/deploy';\nimport {gzipFiles} from '../utils/compress.utils';\nimport {fullPath, listSourceFiles} from '../utils/deploy.utils';\n\nexport const prepareDeploy = async ({\n  config,\n  listAssets,\n  assertSourceDirExists,\n  includeAllFiles\n}: {\n  config: CliConfig;\n  listAssets: ListAssets;\n} & PrepareDeployOptions): Promise<{\n  files: FileDetails[];\n  sourceAbsolutePath: string;\n}> => {\n  const {\n    source = DEPLOY_DEFAULT_SOURCE,\n    ignore = DEPLOY_DEFAULT_IGNORE,\n    encoding = DEPLOY_DEFAULT_ENCODING,\n    gzip = DEPLOY_DEFAULT_GZIP\n  } = config;\n\n  const sourceAbsolutePath = join(process.cwd(), source);\n\n  assertSourceDirExists?.(sourceAbsolutePath);\n\n  const files = await listFiles({\n    sourceAbsolutePath,\n    ignore,\n    encoding,\n    gzip,\n    listAssets,\n    includeAllFiles\n  });\n\n  return {\n    files,\n    sourceAbsolutePath\n  };\n};\n\nconst filterFilesToUpload = async ({\n  files,\n  sourceAbsolutePath,\n  listAssets\n}: {\n  files: FileDetails[];\n  sourceAbsolutePath: string;\n  listAssets: ListAssets;\n}): Promise<FileDetails[]> => {\n  const existingAssets = await listAssets({});\n\n  const promises = files.map(\n    async (file: FileDetails) => await fileNeedUpload({file, sourceAbsolutePath, existingAssets})\n  );\n  const results: Array<{file: FileDetails; upload: boolean}> = await Promise.all(promises);\n\n  return results.filter(({upload}) => upload).map(({file}) => file);\n};\n\nconst computeSha256 = async (file: string): Promise<string> => {\n  const buffer = await readFile(file);\n  return crypto.createHash('sha256').update(buffer).digest('base64');\n};\n\nconst fileNeedUpload = async ({\n  file,\n  existingAssets,\n  sourceAbsolutePath\n}: {\n  file: FileDetails;\n  existingAssets: Asset[];\n  sourceAbsolutePath: string;\n}): Promise<{\n  file: FileDetails;\n  upload: boolean;\n}> => {\n  const effectiveFilePath = file.alternateFile ?? file.file;\n\n  const asset = existingAssets.find(\n    ({fullPath: f}) => f === fullPath({file: effectiveFilePath, sourceAbsolutePath})\n  );\n\n  if (isNullish(asset)) {\n    return {file, upload: true};\n  }\n\n  const sha256 = await computeSha256(effectiveFilePath);\n\n  // TODO: current sha256 comparison (NodeJS vs Rust) with Gzip and BR is inaccurate. Therefore we re-upload compressed files only if their corresponding source files have been modified as well.\n  // return {file, upload: sha256 !== asset.encodings[file.encoding ?? 'identity']?.sha256};\n  // TODO: we also always assume the raw encoding is there\n  return {file, upload: sha256 !== asset.encodings.identity?.sha256};\n};\n\nconst listFiles = async ({\n  sourceAbsolutePath,\n  ignore,\n  encoding,\n  gzip,\n  listAssets,\n  includeAllFiles\n}: {\n  sourceAbsolutePath: string;\n} & {listAssets: ListAssets} & Pick<PrepareDeployOptions, 'includeAllFiles'> &\n  Required<Pick<CliConfig, 'ignore' | 'encoding' | 'gzip'>>): Promise<FileDetails[]> => {\n  const sourceFiles = listSourceFiles({sourceAbsolutePath, ignore});\n  const compressedFiles = await gzipFiles({sourceFiles, gzip});\n\n  const files = [...sourceFiles, ...compressedFiles.filter((file) => !sourceFiles.includes(file))];\n\n  // TODO: brotli and zlib naive\n  const mapEncodingType = ({\n    file,\n    ext\n  }: {\n    file: string;\n    ext: FileExtension | undefined;\n  }): ENCODING_TYPE | undefined => {\n    const customEncoding = encoding.find(([pattern, _]) => minimatch(file, pattern));\n\n    if (nonNullish(customEncoding)) {\n      const [_, encodingType] = customEncoding;\n      return encodingType;\n    }\n\n    if (ext === 'Z') {\n      return 'compress';\n    }\n\n    if (ext === 'gz') {\n      return 'gzip';\n    }\n\n    if (extname(file) === '.br') {\n      return 'br';\n    }\n\n    if (extname(file) === '.zlib') {\n      return 'deflate';\n    }\n\n    return undefined;\n  };\n\n  const findAlternateFile = ({\n    file,\n    encodingType\n  }: {\n    file: string;\n    encodingType: ENCODING_TYPE | undefined;\n  }): string | undefined => {\n    if (isNullish(encodingType)) {\n      return undefined;\n    }\n\n    return files.find((sourceFile) => sourceFile === file.replace(extname(file), ''));\n  };\n\n  const mapFiles = async (file: string): Promise<FileDetails> => {\n    const fileType = await fileTypeFromFile(file);\n    const encodingType = mapEncodingType({file, ext: fileType?.ext});\n\n    // The mime-type that matters is the one of the requested file by the browser, not the mime type of the encoding\n    const alternateFile = findAlternateFile({file, encodingType});\n\n    // For some reason the library 'file-type' does not always map the mime type correctly\n    const mimeType = mime.lookup(alternateFile ?? file);\n\n    return {\n      file,\n      alternateFile,\n      mime: typeof mimeType === 'string' ? mimeType : undefined,\n      encoding: encodingType\n    };\n  };\n\n  const encodingFiles: FileDetails[] = await Promise.all(files.map(mapFiles));\n\n  // juno deploy with proposals using clear\n  if (includeAllFiles === true) {\n    return encodingFiles;\n  }\n\n  return await filterFilesToUpload({\n    files: encodingFiles,\n    sourceAbsolutePath,\n    listAssets\n  });\n};\n", "/**\nNode.js specific entry point.\n*/\n\nimport {ReadableStream as WebReadableStream} from 'node:stream/web';\nimport {pipeline, PassThrough, Readable} from 'node:stream';\nimport * as strtok3 from 'strtok3';\nimport {FileTypeParser as DefaultFileTypeParser, reasonableDetectionSizeInBytes} from './core.js';\n\nexport class FileTypeParser extends DefaultFileTypeParser {\n\tasync fromStream(stream) {\n\t\tconst tokenizer = await (stream instanceof WebReadableStream ? strtok3.fromWebStream(stream, this.tokenizerOptions) : strtok3.fromStream(stream, this.tokenizerOptions));\n\t\ttry {\n\t\t\treturn await super.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync fromFile(path) {\n\t\tconst tokenizer = await strtok3.fromFile(path);\n\t\ttry {\n\t\t\treturn await super.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync toDetectionStream(readableStream, options = {}) {\n\t\tif (!(readableStream instanceof Readable)) {\n\t\t\treturn super.toDetectionStream(readableStream, options);\n\t\t}\n\n\t\tconst {sampleSize = reasonableDetectionSizeInBytes} = options;\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadableStream.on('error', reject);\n\n\t\t\treadableStream.once('readable', () => {\n\t\t\t\t(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Set up output stream\n\t\t\t\t\t\tconst pass = new PassThrough();\n\t\t\t\t\t\tconst outputStream = pipeline ? pipeline(readableStream, pass, () => {}) : readableStream.pipe(pass);\n\n\t\t\t\t\t\t// Read the input stream and detect the filetype\n\t\t\t\t\t\tconst chunk = readableStream.read(sampleSize) ?? readableStream.read() ?? new Uint8Array(0);\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tpass.fileType = await this.fromBuffer(chunk);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\t\t\t\tpass.fileType = undefined;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresolve(outputStream);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport async function fileTypeFromFile(path, options) {\n\treturn (new FileTypeParser(options)).fromFile(path, options);\n}\n\nexport async function fileTypeFromStream(stream, options) {\n\treturn (new FileTypeParser(options)).fromStream(stream);\n}\n\nexport async function fileTypeStream(readableStream, options = {}) {\n\treturn new FileTypeParser(options).toDetectionStream(readableStream, options);\n}\n\nexport {\n\tfileTypeFromTokenizer,\n\tfileTypeFromBuffer,\n\tfileTypeFromBlob,\n\tsupportedMimeTypes,\n\tsupportedExtensions,\n} from './core.js';\n", "import { stat as fsStat } from 'node:fs/promises';\nimport { fromStream as coreFromStream } from './core.js';\nimport { FileTokenizer } from \"./FileTokenizer.js\";\nexport { FileTokenizer } from './FileTokenizer.js';\nexport * from './core.js';\n/**\n * Construct ReadStreamTokenizer from given Stream.\n * Will set fileSize, if provided given Stream has set the .path property.\n * @param stream - Node.js Stream.Readable\n * @param options - Pass additional file information to the tokenizer\n * @returns Tokenizer\n */\nexport async function fromStream(stream, options) {\n    const rst = coreFromStream(stream, options);\n    if (stream.path) {\n        const stat = await fsStat(stream.path);\n        rst.fileInfo.path = stream.path;\n        rst.fileInfo.size = stat.size;\n    }\n    return rst;\n}\nexport const fromFile = FileTokenizer.fromFile;\n", "export const defaultMessages = 'End-Of-Stream';\n/**\n * Thrown on read operation of the end of file or stream has been reached\n */\nexport class EndOfStreamError extends Error {\n    constructor() {\n        super(defaultMessages);\n        this.name = \"EndOfStreamError\";\n    }\n}\nexport class AbortError extends Error {\n    constructor(message = \"The operation was aborted\") {\n        super(message);\n        this.name = \"AbortError\";\n    }\n}\n", "export class Deferred {\n    constructor() {\n        this.resolve = () => null;\n        this.reject = () => null;\n        this.promise = new Promise((resolve, reject) => {\n            this.reject = reject;\n            this.resolve = resolve;\n        });\n    }\n}\n", "import { EndOfStreamError, AbortError } from \"./Errors.js\";\nexport class AbstractStreamReader {\n    constructor() {\n        this.endOfStream = false;\n        this.interrupted = false;\n        /**\n         * Store peeked data\n         * @type {Array}\n         */\n        this.peekQueue = [];\n    }\n    async peek(uint8Array, mayBeLess = false) {\n        const bytesRead = await this.read(uint8Array, mayBeLess);\n        this.peekQueue.push(uint8Array.subarray(0, bytesRead)); // Put read data back to peek buffer\n        return bytesRead;\n    }\n    async read(buffer, mayBeLess = false) {\n        if (buffer.length === 0) {\n            return 0;\n        }\n        let bytesRead = this.readFromPeekBuffer(buffer);\n        if (!this.endOfStream) {\n            bytesRead += await this.readRemainderFromStream(buffer.subarray(bytesRead), mayBeLess);\n        }\n        if (bytesRead === 0) {\n            throw new EndOfStreamError();\n        }\n        return bytesRead;\n    }\n    /**\n     * Read chunk from stream\n     * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n     * @returns Number of bytes read\n     */\n    readFromPeekBuffer(buffer) {\n        let remaining = buffer.length;\n        let bytesRead = 0;\n        // consume peeked data first\n        while (this.peekQueue.length > 0 && remaining > 0) {\n            const peekData = this.peekQueue.pop(); // Front of queue\n            if (!peekData)\n                throw new Error('peekData should be defined');\n            const lenCopy = Math.min(peekData.length, remaining);\n            buffer.set(peekData.subarray(0, lenCopy), bytesRead);\n            bytesRead += lenCopy;\n            remaining -= lenCopy;\n            if (lenCopy < peekData.length) {\n                // remainder back to queue\n                this.peekQueue.push(peekData.subarray(lenCopy));\n            }\n        }\n        return bytesRead;\n    }\n    async readRemainderFromStream(buffer, mayBeLess) {\n        let bytesRead = 0;\n        // Continue reading from stream if required\n        while (bytesRead < buffer.length && !this.endOfStream) {\n            if (this.interrupted) {\n                throw new AbortError();\n            }\n            const chunkLen = await this.readFromStream(buffer.subarray(bytesRead), mayBeLess);\n            if (chunkLen === 0)\n                break;\n            bytesRead += chunkLen;\n        }\n        if (!mayBeLess && bytesRead < buffer.length) {\n            throw new EndOfStreamError();\n        }\n        return bytesRead;\n    }\n}\n", "import { AbortError, } from './Errors.js';\nimport { Deferred } from './Deferred.js';\nimport { AbstractStreamReader } from \"./AbstractStreamReader.js\";\n/**\n * Node.js Readable Stream Reader\n * Ref: https://nodejs.org/api/stream.html#readable-streams\n */\nexport class StreamReader extends AbstractStreamReader {\n    constructor(s) {\n        super();\n        this.s = s;\n        /**\n         * Deferred used for postponed read request (as not data is yet available to read)\n         */\n        this.deferred = null;\n        if (!s.read || !s.once) {\n            throw new Error('Expected an instance of stream.Readable');\n        }\n        this.s.once('end', () => {\n            this.endOfStream = true;\n            if (this.deferred) {\n                this.deferred.resolve(0);\n            }\n        });\n        this.s.once('error', err => this.reject(err));\n        this.s.once('close', () => this.abort());\n    }\n    /**\n     * Read chunk from stream\n     * @param buffer Target Uint8Array (or Buffer) to store data read from stream in\n     * @param mayBeLess - If true, may fill the buffer partially\n     * @returns Number of bytes read\n     */\n    async readFromStream(buffer, mayBeLess) {\n        if (buffer.length === 0)\n            return 0;\n        const readBuffer = this.s.read(buffer.length);\n        if (readBuffer) {\n            buffer.set(readBuffer);\n            return readBuffer.length;\n        }\n        const request = {\n            buffer,\n            mayBeLess,\n            deferred: new Deferred()\n        };\n        this.deferred = request.deferred;\n        this.s.once('readable', () => {\n            this.readDeferred(request);\n        });\n        return request.deferred.promise;\n    }\n    /**\n     * Process deferred read request\n     * @param request Deferred read request\n     */\n    readDeferred(request) {\n        const readBuffer = this.s.read(request.buffer.length);\n        if (readBuffer) {\n            request.buffer.set(readBuffer);\n            request.deferred.resolve(readBuffer.length);\n            this.deferred = null;\n        }\n        else {\n            this.s.once('readable', () => {\n                this.readDeferred(request);\n            });\n        }\n    }\n    reject(err) {\n        this.interrupted = true;\n        if (this.deferred) {\n            this.deferred.reject(err);\n            this.deferred = null;\n        }\n    }\n    async abort() {\n        this.reject(new AbortError());\n    }\n    async close() {\n        return this.abort();\n    }\n}\n", "import { AbstractStreamReader } from \"./AbstractStreamReader.js\";\nexport class WebStreamReader extends AbstractStreamReader {\n    constructor(reader) {\n        super();\n        this.reader = reader;\n    }\n    async abort() {\n        return this.close();\n    }\n    async close() {\n        this.reader.releaseLock();\n    }\n}\n", "import { WebStreamReader } from './WebStreamReader.js';\n/**\n * Read from a WebStream using a BYOB reader\n * Reference: https://nodejs.org/api/webstreams.html#class-readablestreambyobreader\n */\nexport class WebStreamByobReader extends WebStreamReader {\n    /**\n     * Read from stream\n     * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n     * @param mayBeLess - If true, may fill the buffer partially\n     * @protected Bytes read\n     */\n    async readFromStream(buffer, mayBeLess) {\n        if (buffer.length === 0)\n            return 0;\n        // @ts-ignore\n        const result = await this.reader.read(new Uint8Array(buffer.length), { min: mayBeLess ? undefined : buffer.length });\n        if (result.done) {\n            this.endOfStream = result.done;\n        }\n        if (result.value) {\n            buffer.set(result.value);\n            return result.value.length;\n        }\n        return 0;\n    }\n}\n", "import { EndOfStreamError } from './Errors.js';\nimport { AbstractStreamReader } from \"./AbstractStreamReader.js\";\nexport class WebStreamDefaultReader extends AbstractStreamReader {\n    constructor(reader) {\n        super();\n        this.reader = reader;\n        this.buffer = null; // Internal buffer to store excess data\n    }\n    /**\n     * Copy chunk to target, and store the remainder in this.buffer\n     */\n    writeChunk(target, chunk) {\n        const written = Math.min(chunk.length, target.length);\n        target.set(chunk.subarray(0, written));\n        // Adjust the remainder of the buffer\n        if (written < chunk.length) {\n            this.buffer = chunk.subarray(written);\n        }\n        else {\n            this.buffer = null;\n        }\n        return written;\n    }\n    /**\n     * Read from stream\n     * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n     * @param mayBeLess - If true, may fill the buffer partially\n     * @protected Bytes read\n     */\n    async readFromStream(buffer, mayBeLess) {\n        if (buffer.length === 0)\n            return 0;\n        let totalBytesRead = 0;\n        // Serve from the internal buffer first\n        if (this.buffer) {\n            totalBytesRead += this.writeChunk(buffer, this.buffer);\n        }\n        // Continue reading from the stream if more data is needed\n        while (totalBytesRead < buffer.length && !this.endOfStream) {\n            const result = await this.reader.read();\n            if (result.done) {\n                this.endOfStream = true;\n                break;\n            }\n            if (result.value) {\n                totalBytesRead += this.writeChunk(buffer.subarray(totalBytesRead), result.value);\n            }\n        }\n        if (totalBytesRead === 0 && this.endOfStream) {\n            throw new EndOfStreamError();\n        }\n        return totalBytesRead;\n    }\n    abort() {\n        this.interrupted = true;\n        return this.reader.cancel();\n    }\n    async close() {\n        await this.abort();\n        this.reader.releaseLock();\n    }\n}\n", "import { WebStreamByobReader } from './WebStreamByobReader.js';\nimport { WebStreamDefaultReader } from './WebStreamDefaultReader.js';\nexport function makeWebStreamReader(stream) {\n    try {\n        const reader = stream.getReader({ mode: \"byob\" });\n        if (reader instanceof ReadableStreamDefaultReader) {\n            // Fallback to default reader in case `mode: byob` is ignored\n            return new WebStreamDefaultReader(reader);\n        }\n        return new WebStreamByobReader(reader);\n    }\n    catch (error) {\n        if (error instanceof TypeError) {\n            // Fallback to default reader in case `mode: byob` rejected by a `TypeError`\n            return new WebStreamDefaultReader(stream.getReader());\n        }\n        throw error;\n    }\n}\n", "import { EndOfStreamError } from 'peek-readable';\n/**\n * Core tokenizer\n */\nexport class AbstractTokenizer {\n    /**\n     * Constructor\n     * @param options Tokenizer options\n     * @protected\n     */\n    constructor(options) {\n        this.numBuffer = new Uint8Array(8);\n        /**\n         * Tokenizer-stream position\n         */\n        this.position = 0;\n        this.onClose = options?.onClose;\n        if (options?.abortSignal) {\n            options.abortSignal.addEventListener('abort', () => {\n                this.abort();\n            });\n        }\n    }\n    /**\n     * Read a token from the tokenizer-stream\n     * @param token - The token to read\n     * @param position - If provided, the desired position in the tokenizer-stream\n     * @returns Promise with token data\n     */\n    async readToken(token, position = this.position) {\n        const uint8Array = new Uint8Array(token.len);\n        const len = await this.readBuffer(uint8Array, { position });\n        if (len < token.len)\n            throw new EndOfStreamError();\n        return token.get(uint8Array, 0);\n    }\n    /**\n     * Peek a token from the tokenizer-stream.\n     * @param token - Token to peek from the tokenizer-stream.\n     * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.\n     * @returns Promise with token data\n     */\n    async peekToken(token, position = this.position) {\n        const uint8Array = new Uint8Array(token.len);\n        const len = await this.peekBuffer(uint8Array, { position });\n        if (len < token.len)\n            throw new EndOfStreamError();\n        return token.get(uint8Array, 0);\n    }\n    /**\n     * Read a numeric token from the stream\n     * @param token - Numeric token\n     * @returns Promise with number\n     */\n    async readNumber(token) {\n        const len = await this.readBuffer(this.numBuffer, { length: token.len });\n        if (len < token.len)\n            throw new EndOfStreamError();\n        return token.get(this.numBuffer, 0);\n    }\n    /**\n     * Read a numeric token from the stream\n     * @param token - Numeric token\n     * @returns Promise with number\n     */\n    async peekNumber(token) {\n        const len = await this.peekBuffer(this.numBuffer, { length: token.len });\n        if (len < token.len)\n            throw new EndOfStreamError();\n        return token.get(this.numBuffer, 0);\n    }\n    /**\n     * Ignore number of bytes, advances the pointer in under tokenizer-stream.\n     * @param length - Number of bytes to ignore\n     * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available\n     */\n    async ignore(length) {\n        if (this.fileInfo.size !== undefined) {\n            const bytesLeft = this.fileInfo.size - this.position;\n            if (length > bytesLeft) {\n                this.position += bytesLeft;\n                return bytesLeft;\n            }\n        }\n        this.position += length;\n        return length;\n    }\n    async close() {\n        await this.abort();\n        await this.onClose?.();\n    }\n    normalizeOptions(uint8Array, options) {\n        if (!this.supportsRandomAccess() && options && options.position !== undefined && options.position < this.position) {\n            throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\n        }\n        return {\n            ...{\n                mayBeLess: false,\n                offset: 0,\n                length: uint8Array.length,\n                position: this.position\n            }, ...options\n        };\n    }\n    abort() {\n        return Promise.resolve(); // Ignore abort signal\n    }\n}\n", "import { AbstractTokenizer } from './AbstractTokenizer.js';\nimport { EndOfStreamError } from 'peek-readable';\nconst maxBufferSize = 256000;\nexport class ReadStreamTokenizer extends AbstractTokenizer {\n    /**\n     * Constructor\n     * @param streamReader stream-reader to read from\n     * @param options Tokenizer options\n     */\n    constructor(streamReader, options) {\n        super(options);\n        this.streamReader = streamReader;\n        this.fileInfo = options?.fileInfo ?? {};\n    }\n    /**\n     * Read buffer from tokenizer\n     * @param uint8Array - Target Uint8Array to fill with data read from the tokenizer-stream\n     * @param options - Read behaviour options\n     * @returns Promise with number of bytes read\n     */\n    async readBuffer(uint8Array, options) {\n        const normOptions = this.normalizeOptions(uint8Array, options);\n        const skipBytes = normOptions.position - this.position;\n        if (skipBytes > 0) {\n            await this.ignore(skipBytes);\n            return this.readBuffer(uint8Array, options);\n        }\n        if (skipBytes < 0) {\n            throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\n        }\n        if (normOptions.length === 0) {\n            return 0;\n        }\n        const bytesRead = await this.streamReader.read(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);\n        this.position += bytesRead;\n        if ((!options || !options.mayBeLess) && bytesRead < normOptions.length) {\n            throw new EndOfStreamError();\n        }\n        return bytesRead;\n    }\n    /**\n     * Peek (read ahead) buffer from tokenizer\n     * @param uint8Array - Uint8Array (or Buffer) to write data to\n     * @param options - Read behaviour options\n     * @returns Promise with number of bytes peeked\n     */\n    async peekBuffer(uint8Array, options) {\n        const normOptions = this.normalizeOptions(uint8Array, options);\n        let bytesRead = 0;\n        if (normOptions.position) {\n            const skipBytes = normOptions.position - this.position;\n            if (skipBytes > 0) {\n                const skipBuffer = new Uint8Array(normOptions.length + skipBytes);\n                bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess });\n                uint8Array.set(skipBuffer.subarray(skipBytes));\n                return bytesRead - skipBytes;\n            }\n            if (skipBytes < 0) {\n                throw new Error('Cannot peek from a negative offset in a stream');\n            }\n        }\n        if (normOptions.length > 0) {\n            try {\n                bytesRead = await this.streamReader.peek(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);\n            }\n            catch (err) {\n                if (options?.mayBeLess && err instanceof EndOfStreamError) {\n                    return 0;\n                }\n                throw err;\n            }\n            if ((!normOptions.mayBeLess) && bytesRead < normOptions.length) {\n                throw new EndOfStreamError();\n            }\n        }\n        return bytesRead;\n    }\n    async ignore(length) {\n        // debug(`ignore ${this.position}...${this.position + length - 1}`);\n        const bufSize = Math.min(maxBufferSize, length);\n        const buf = new Uint8Array(bufSize);\n        let totBytesRead = 0;\n        while (totBytesRead < length) {\n            const remaining = length - totBytesRead;\n            const bytesRead = await this.readBuffer(buf, { length: Math.min(bufSize, remaining) });\n            if (bytesRead < 0) {\n                return bytesRead;\n            }\n            totBytesRead += bytesRead;\n        }\n        return totBytesRead;\n    }\n    abort() {\n        return this.streamReader.abort();\n    }\n    async close() {\n        return this.streamReader.close();\n    }\n    supportsRandomAccess() {\n        return false;\n    }\n}\n", "import { EndOfStreamError } from 'peek-readable';\nimport { AbstractTokenizer } from './AbstractTokenizer.js';\nexport class BufferTokenizer extends AbstractTokenizer {\n    /**\n     * Construct BufferTokenizer\n     * @param uint8Array - Uint8Array to tokenize\n     * @param options Tokenizer options\n     */\n    constructor(uint8Array, options) {\n        super(options);\n        this.uint8Array = uint8Array;\n        this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: uint8Array.length } };\n    }\n    /**\n     * Read buffer from tokenizer\n     * @param uint8Array - Uint8Array to tokenize\n     * @param options - Read behaviour options\n     * @returns {Promise<number>}\n     */\n    async readBuffer(uint8Array, options) {\n        if (options?.position) {\n            this.position = options.position;\n        }\n        const bytesRead = await this.peekBuffer(uint8Array, options);\n        this.position += bytesRead;\n        return bytesRead;\n    }\n    /**\n     * Peek (read ahead) buffer from tokenizer\n     * @param uint8Array\n     * @param options - Read behaviour options\n     * @returns {Promise<number>}\n     */\n    async peekBuffer(uint8Array, options) {\n        const normOptions = this.normalizeOptions(uint8Array, options);\n        const bytes2read = Math.min(this.uint8Array.length - normOptions.position, normOptions.length);\n        if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {\n            throw new EndOfStreamError();\n        }\n        uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read));\n        return bytes2read;\n    }\n    close() {\n        return super.close();\n    }\n    supportsRandomAccess() {\n        return true;\n    }\n    setPosition(position) {\n        this.position = position;\n    }\n}\n", "import { StreamReader, makeWebStreamReader } from 'peek-readable';\nimport { ReadStreamTokenizer } from './ReadStreamTokenizer.js';\nimport { BufferTokenizer } from './BufferTokenizer.js';\nexport { EndOfStreamError, AbortError } from 'peek-readable';\nexport { AbstractTokenizer } from './AbstractTokenizer.js';\n/**\n * Construct ReadStreamTokenizer from given Stream.\n * Will set fileSize, if provided given Stream has set the .path property/\n * @param stream - Read from Node.js Stream.Readable\n * @param options - Tokenizer options\n * @returns ReadStreamTokenizer\n */\nexport function fromStream(stream, options) {\n    const streamReader = new StreamReader(stream);\n    const _options = options ?? {};\n    const chainedClose = _options.onClose;\n    _options.onClose = async () => {\n        await streamReader.close();\n        if (chainedClose) {\n            return chainedClose();\n        }\n    };\n    return new ReadStreamTokenizer(streamReader, _options);\n}\n/**\n * Construct ReadStreamTokenizer from given ReadableStream (WebStream API).\n * Will set fileSize, if provided given Stream has set the .path property/\n * @param webStream - Read from Node.js Stream.Readable (must be a byte stream)\n * @param options - Tokenizer options\n * @returns ReadStreamTokenizer\n */\nexport function fromWebStream(webStream, options) {\n    const webStreamReader = makeWebStreamReader(webStream);\n    const _options = options ?? {};\n    const chainedClose = _options.onClose;\n    _options.onClose = async () => {\n        await webStreamReader.close();\n        if (chainedClose) {\n            return chainedClose();\n        }\n    };\n    return new ReadStreamTokenizer(webStreamReader, _options);\n}\n/**\n * Construct ReadStreamTokenizer from given Buffer.\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Tokenizer options\n * @returns BufferTokenizer\n */\nexport function fromBuffer(uint8Array, options) {\n    return new BufferTokenizer(uint8Array, options);\n}\n", "import { AbstractTokenizer } from './AbstractTokenizer.js';\nimport { EndOfStreamError } from 'peek-readable';\nimport { open as fsOpen } from 'node:fs/promises';\nexport class FileTokenizer extends AbstractTokenizer {\n    /**\n     * Create tokenizer from provided file path\n     * @param sourceFilePath File path\n     */\n    static async fromFile(sourceFilePath) {\n        const fileHandle = await fsOpen(sourceFilePath, 'r');\n        const stat = await fileHandle.stat();\n        return new FileTokenizer(fileHandle, { fileInfo: { path: sourceFilePath, size: stat.size } });\n    }\n    constructor(fileHandle, options) {\n        super(options);\n        this.fileHandle = fileHandle;\n        this.fileInfo = options.fileInfo;\n    }\n    /**\n     * Read buffer from file\n     * @param uint8Array - Uint8Array to write result to\n     * @param options - Read behaviour options\n     * @returns Promise number of bytes read\n     */\n    async readBuffer(uint8Array, options) {\n        const normOptions = this.normalizeOptions(uint8Array, options);\n        this.position = normOptions.position;\n        if (normOptions.length === 0)\n            return 0;\n        const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);\n        this.position += res.bytesRead;\n        if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {\n            throw new EndOfStreamError();\n        }\n        return res.bytesRead;\n    }\n    /**\n     * Peek buffer from file\n     * @param uint8Array - Uint8Array (or Buffer) to write data to\n     * @param options - Read behaviour options\n     * @returns Promise number of bytes read\n     */\n    async peekBuffer(uint8Array, options) {\n        const normOptions = this.normalizeOptions(uint8Array, options);\n        const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);\n        if ((!normOptions.mayBeLess) && res.bytesRead < normOptions.length) {\n            throw new EndOfStreamError();\n        }\n        return res.bytesRead;\n    }\n    async close() {\n        await this.fileHandle.close();\n        return super.close();\n    }\n    setPosition(position) {\n        this.position = position;\n    }\n    supportsRandomAccess() {\n        return true;\n    }\n}\n", "import * as ieee754 from 'ieee754';\n// Primitive types\nfunction dv(array) {\n    return new DataView(array.buffer, array.byteOffset);\n}\n/**\n * 8-bit unsigned integer\n */\nexport const UINT8 = {\n    len: 1,\n    get(array, offset) {\n        return dv(array).getUint8(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setUint8(offset, value);\n        return offset + 1;\n    }\n};\n/**\n * 16-bit unsigned integer, Little Endian byte order\n */\nexport const UINT16_LE = {\n    len: 2,\n    get(array, offset) {\n        return dv(array).getUint16(offset, true);\n    },\n    put(array, offset, value) {\n        dv(array).setUint16(offset, value, true);\n        return offset + 2;\n    }\n};\n/**\n * 16-bit unsigned integer, Big Endian byte order\n */\nexport const UINT16_BE = {\n    len: 2,\n    get(array, offset) {\n        return dv(array).getUint16(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setUint16(offset, value);\n        return offset + 2;\n    }\n};\n/**\n * 24-bit unsigned integer, Little Endian byte order\n */\nexport const UINT24_LE = {\n    len: 3,\n    get(array, offset) {\n        const dataView = dv(array);\n        return dataView.getUint8(offset) + (dataView.getUint16(offset + 1, true) << 8);\n    },\n    put(array, offset, value) {\n        const dataView = dv(array);\n        dataView.setUint8(offset, value & 0xff);\n        dataView.setUint16(offset + 1, value >> 8, true);\n        return offset + 3;\n    }\n};\n/**\n * 24-bit unsigned integer, Big Endian byte order\n */\nexport const UINT24_BE = {\n    len: 3,\n    get(array, offset) {\n        const dataView = dv(array);\n        return (dataView.getUint16(offset) << 8) + dataView.getUint8(offset + 2);\n    },\n    put(array, offset, value) {\n        const dataView = dv(array);\n        dataView.setUint16(offset, value >> 8);\n        dataView.setUint8(offset + 2, value & 0xff);\n        return offset + 3;\n    }\n};\n/**\n * 32-bit unsigned integer, Little Endian byte order\n */\nexport const UINT32_LE = {\n    len: 4,\n    get(array, offset) {\n        return dv(array).getUint32(offset, true);\n    },\n    put(array, offset, value) {\n        dv(array).setUint32(offset, value, true);\n        return offset + 4;\n    }\n};\n/**\n * 32-bit unsigned integer, Big Endian byte order\n */\nexport const UINT32_BE = {\n    len: 4,\n    get(array, offset) {\n        return dv(array).getUint32(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setUint32(offset, value);\n        return offset + 4;\n    }\n};\n/**\n * 8-bit signed integer\n */\nexport const INT8 = {\n    len: 1,\n    get(array, offset) {\n        return dv(array).getInt8(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setInt8(offset, value);\n        return offset + 1;\n    }\n};\n/**\n * 16-bit signed integer, Big Endian byte order\n */\nexport const INT16_BE = {\n    len: 2,\n    get(array, offset) {\n        return dv(array).getInt16(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setInt16(offset, value);\n        return offset + 2;\n    }\n};\n/**\n * 16-bit signed integer, Little Endian byte order\n */\nexport const INT16_LE = {\n    len: 2,\n    get(array, offset) {\n        return dv(array).getInt16(offset, true);\n    },\n    put(array, offset, value) {\n        dv(array).setInt16(offset, value, true);\n        return offset + 2;\n    }\n};\n/**\n * 24-bit signed integer, Little Endian byte order\n */\nexport const INT24_LE = {\n    len: 3,\n    get(array, offset) {\n        const unsigned = UINT24_LE.get(array, offset);\n        return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n    },\n    put(array, offset, value) {\n        const dataView = dv(array);\n        dataView.setUint8(offset, value & 0xff);\n        dataView.setUint16(offset + 1, value >> 8, true);\n        return offset + 3;\n    }\n};\n/**\n * 24-bit signed integer, Big Endian byte order\n */\nexport const INT24_BE = {\n    len: 3,\n    get(array, offset) {\n        const unsigned = UINT24_BE.get(array, offset);\n        return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n    },\n    put(array, offset, value) {\n        const dataView = dv(array);\n        dataView.setUint16(offset, value >> 8);\n        dataView.setUint8(offset + 2, value & 0xff);\n        return offset + 3;\n    }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexport const INT32_BE = {\n    len: 4,\n    get(array, offset) {\n        return dv(array).getInt32(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setInt32(offset, value);\n        return offset + 4;\n    }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexport const INT32_LE = {\n    len: 4,\n    get(array, offset) {\n        return dv(array).getInt32(offset, true);\n    },\n    put(array, offset, value) {\n        dv(array).setInt32(offset, value, true);\n        return offset + 4;\n    }\n};\n/**\n * 64-bit unsigned integer, Little Endian byte order\n */\nexport const UINT64_LE = {\n    len: 8,\n    get(array, offset) {\n        return dv(array).getBigUint64(offset, true);\n    },\n    put(array, offset, value) {\n        dv(array).setBigUint64(offset, value, true);\n        return offset + 8;\n    }\n};\n/**\n * 64-bit signed integer, Little Endian byte order\n */\nexport const INT64_LE = {\n    len: 8,\n    get(array, offset) {\n        return dv(array).getBigInt64(offset, true);\n    },\n    put(array, offset, value) {\n        dv(array).setBigInt64(offset, value, true);\n        return offset + 8;\n    }\n};\n/**\n * 64-bit unsigned integer, Big Endian byte order\n */\nexport const UINT64_BE = {\n    len: 8,\n    get(array, offset) {\n        return dv(array).getBigUint64(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setBigUint64(offset, value);\n        return offset + 8;\n    }\n};\n/**\n * 64-bit signed integer, Big Endian byte order\n */\nexport const INT64_BE = {\n    len: 8,\n    get(array, offset) {\n        return dv(array).getBigInt64(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setBigInt64(offset, value);\n        return offset + 8;\n    }\n};\n/**\n * IEEE 754 16-bit (half precision) float, big endian\n */\nexport const Float16_BE = {\n    len: 2,\n    get(dataView, offset) {\n        return ieee754.read(dataView, offset, false, 10, this.len);\n    },\n    put(dataView, offset, value) {\n        ieee754.write(dataView, value, offset, false, 10, this.len);\n        return offset + this.len;\n    }\n};\n/**\n * IEEE 754 16-bit (half precision) float, little endian\n */\nexport const Float16_LE = {\n    len: 2,\n    get(array, offset) {\n        return ieee754.read(array, offset, true, 10, this.len);\n    },\n    put(array, offset, value) {\n        ieee754.write(array, value, offset, true, 10, this.len);\n        return offset + this.len;\n    }\n};\n/**\n * IEEE 754 32-bit (single precision) float, big endian\n */\nexport const Float32_BE = {\n    len: 4,\n    get(array, offset) {\n        return dv(array).getFloat32(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setFloat32(offset, value);\n        return offset + 4;\n    }\n};\n/**\n * IEEE 754 32-bit (single precision) float, little endian\n */\nexport const Float32_LE = {\n    len: 4,\n    get(array, offset) {\n        return dv(array).getFloat32(offset, true);\n    },\n    put(array, offset, value) {\n        dv(array).setFloat32(offset, value, true);\n        return offset + 4;\n    }\n};\n/**\n * IEEE 754 64-bit (double precision) float, big endian\n */\nexport const Float64_BE = {\n    len: 8,\n    get(array, offset) {\n        return dv(array).getFloat64(offset);\n    },\n    put(array, offset, value) {\n        dv(array).setFloat64(offset, value);\n        return offset + 8;\n    }\n};\n/**\n * IEEE 754 64-bit (double precision) float, little endian\n */\nexport const Float64_LE = {\n    len: 8,\n    get(array, offset) {\n        return dv(array).getFloat64(offset, true);\n    },\n    put(array, offset, value) {\n        dv(array).setFloat64(offset, value, true);\n        return offset + 8;\n    }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, big endian\n */\nexport const Float80_BE = {\n    len: 10,\n    get(array, offset) {\n        return ieee754.read(array, offset, false, 63, this.len);\n    },\n    put(array, offset, value) {\n        ieee754.write(array, value, offset, false, 63, this.len);\n        return offset + this.len;\n    }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, little endian\n */\nexport const Float80_LE = {\n    len: 10,\n    get(array, offset) {\n        return ieee754.read(array, offset, true, 63, this.len);\n    },\n    put(array, offset, value) {\n        ieee754.write(array, value, offset, true, 63, this.len);\n        return offset + this.len;\n    }\n};\n/**\n * Ignore a given number of bytes\n */\nexport class IgnoreType {\n    /**\n     * @param len number of bytes to ignore\n     */\n    constructor(len) {\n        this.len = len;\n    }\n    // ToDo: don't read, but skip data\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    get(array, off) {\n    }\n}\nexport class Uint8ArrayType {\n    constructor(len) {\n        this.len = len;\n    }\n    get(array, offset) {\n        return array.subarray(offset, offset + this.len);\n    }\n}\n/**\n * Consume a fixed number of bytes from the stream and return a string with a specified encoding.\n */\nexport class StringType {\n    constructor(len, encoding) {\n        this.len = len;\n        this.encoding = encoding;\n        this.textDecoder = new TextDecoder(encoding);\n    }\n    get(uint8Array, offset) {\n        return this.textDecoder.decode(uint8Array.subarray(offset, offset + this.len));\n    }\n}\n/**\n * ANSI Latin 1 String\n * Using windows-1252 / ISO 8859-1 decoding\n */\nexport class AnsiStringType {\n    constructor(len) {\n        this.len = len;\n        this.textDecoder = new TextDecoder('windows-1252');\n    }\n    get(uint8Array, offset = 0) {\n        return this.textDecoder.decode(uint8Array.subarray(offset, offset + this.len));\n    }\n}\n", "import { createRequire } from 'module';\nvar require = createRequire('/');\n// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\n// Mediocre shim\nvar Worker;\nvar workerAdd = \";var __w=require('worker_threads');__w.parentPort.on('message',function(m){onmessage({data:m})}),postMessage=function(m,t){__w.parentPort.postMessage(m,t)},close=process.exit;self=global\";\ntry {\n    Worker = require('worker_threads').Worker;\n}\ncatch (e) {\n}\nvar wk = Worker ? function (c, _, msg, transfer, cb) {\n    var done = false;\n    var w = new Worker(c + workerAdd, { eval: true })\n        .on('error', function (e) { return cb(e, null); })\n        .on('message', function (m) { return cb(null, m); })\n        .on('exit', function (c) {\n        if (c && !done)\n            cb(new Error('exited with code ' + c), null);\n    });\n    w.postMessage(msg, transfer);\n    w.terminate = function () {\n        done = true;\n        return Worker.prototype.terminate.call(w);\n    };\n    return w;\n} : function (_, __, ___, ____, cb) {\n    setImmediate(function () { return cb(new Error('async operations unsupported - update to Node 12+ (or Node 10-11 with the --experimental-worker CLI flag)'), null); });\n    var NOP = function () { };\n    return {\n        terminate: NOP,\n        postMessage: NOP\n    };\n};\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n    var b = new u16(31);\n    for (var i = 0; i < 31; ++i) {\n        b[i] = start += 1 << eb[i - 1];\n    }\n    // numbers here are at max 18 bits\n    var r = new i32(b[30]);\n    for (var i = 1; i < 30; ++i) {\n        for (var j = b[i]; j < b[i + 1]; ++j) {\n            r[j] = ((j - b[i]) << 5) | i;\n        }\n    }\n    return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n    // reverse table algorithm from SO\n    var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n    x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n    x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n    rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n    var s = cd.length;\n    // index\n    var i = 0;\n    // u16 \"map\": index -> # of codes with bit length = index\n    var l = new u16(mb);\n    // length of cd must be 288 (total # of codes)\n    for (; i < s; ++i) {\n        if (cd[i])\n            ++l[cd[i] - 1];\n    }\n    // u16 \"map\": index -> minimum code for bit length = index\n    var le = new u16(mb);\n    for (i = 1; i < mb; ++i) {\n        le[i] = (le[i - 1] + l[i - 1]) << 1;\n    }\n    var co;\n    if (r) {\n        // u16 \"map\": index -> number of actual bits, symbol for code\n        co = new u16(1 << mb);\n        // bits to remove for reverser\n        var rvb = 15 - mb;\n        for (i = 0; i < s; ++i) {\n            // ignore 0 lengths\n            if (cd[i]) {\n                // num encoding both symbol and bits read\n                var sv = (i << 4) | cd[i];\n                // free bits\n                var r_1 = mb - cd[i];\n                // start value\n                var v = le[cd[i] - 1]++ << r_1;\n                // m is end value\n                for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n                    // every 16 bit value starting with the code yields the same result\n                    co[rev[v] >> rvb] = sv;\n                }\n            }\n        }\n    }\n    else {\n        co = new u16(s);\n        for (i = 0; i < s; ++i) {\n            if (cd[i]) {\n                co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n            }\n        }\n    }\n    return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n    flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n    flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n    flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n    flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n    fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n    var m = a[0];\n    for (var i = 1; i < a.length; ++i) {\n        if (a[i] > m)\n            m = a[i];\n    }\n    return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n    var o = (p / 8) | 0;\n    return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n    var o = (p / 8) | 0;\n    return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n    if (s == null || s < 0)\n        s = 0;\n    if (e == null || e > v.length)\n        e = v.length;\n    // can't use .constructor in case user-supplied\n    return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n    UnexpectedEOF: 0,\n    InvalidBlockType: 1,\n    InvalidLengthLiteral: 2,\n    InvalidDistance: 3,\n    StreamFinished: 4,\n    NoStreamHandler: 5,\n    InvalidHeader: 6,\n    NoCallback: 7,\n    InvalidUTF8: 8,\n    ExtraFieldTooLong: 9,\n    InvalidDate: 10,\n    FilenameTooLong: 11,\n    StreamFinishing: 12,\n    InvalidZipData: 13,\n    UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n    'unexpected EOF',\n    'invalid block type',\n    'invalid length/literal',\n    'invalid distance',\n    'stream finished',\n    'no stream handler',\n    ,\n    'no callback',\n    'invalid UTF-8 data',\n    'extra field too long',\n    'date not in range 1980-2099',\n    'filename too long',\n    'stream finishing',\n    'invalid zip data'\n    // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n    var e = new Error(msg || ec[ind]);\n    e.code = ind;\n    if (Error.captureStackTrace)\n        Error.captureStackTrace(e, err);\n    if (!nt)\n        throw e;\n    return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n    // source length       dict length\n    var sl = dat.length, dl = dict ? dict.length : 0;\n    if (!sl || st.f && !st.l)\n        return buf || new u8(0);\n    var noBuf = !buf;\n    // have to estimate size\n    var resize = noBuf || st.i != 2;\n    // no state\n    var noSt = st.i;\n    // Assumes roughly 33% compression ratio average\n    if (noBuf)\n        buf = new u8(sl * 3);\n    // ensure buffer can fit at least l elements\n    var cbuf = function (l) {\n        var bl = buf.length;\n        // need to increase size to fit\n        if (l > bl) {\n            // Double or set to necessary, whichever is greater\n            var nbuf = new u8(Math.max(bl * 2, l));\n            nbuf.set(buf);\n            buf = nbuf;\n        }\n    };\n    //  last chunk         bitpos           bytes\n    var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n    // total bits\n    var tbts = sl * 8;\n    do {\n        if (!lm) {\n            // BFINAL - this is only 1 when last chunk is next\n            final = bits(dat, pos, 1);\n            // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n            var type = bits(dat, pos + 1, 3);\n            pos += 3;\n            if (!type) {\n                // go to end of byte boundary\n                var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n                if (t > sl) {\n                    if (noSt)\n                        err(0);\n                    break;\n                }\n                // ensure size\n                if (resize)\n                    cbuf(bt + l);\n                // Copy over uncompressed data\n                buf.set(dat.subarray(s, t), bt);\n                // Get new bitpos, update byte count\n                st.b = bt += l, st.p = pos = t * 8, st.f = final;\n                continue;\n            }\n            else if (type == 1)\n                lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n            else if (type == 2) {\n                //  literal                            lengths\n                var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n                var tl = hLit + bits(dat, pos + 5, 31) + 1;\n                pos += 14;\n                // length+distance tree\n                var ldt = new u8(tl);\n                // code length tree\n                var clt = new u8(19);\n                for (var i = 0; i < hcLen; ++i) {\n                    // use index map to get real code\n                    clt[clim[i]] = bits(dat, pos + i * 3, 7);\n                }\n                pos += hcLen * 3;\n                // code lengths bits\n                var clb = max(clt), clbmsk = (1 << clb) - 1;\n                // code lengths map\n                var clm = hMap(clt, clb, 1);\n                for (var i = 0; i < tl;) {\n                    var r = clm[bits(dat, pos, clbmsk)];\n                    // bits read\n                    pos += r & 15;\n                    // symbol\n                    var s = r >> 4;\n                    // code length to copy\n                    if (s < 16) {\n                        ldt[i++] = s;\n                    }\n                    else {\n                        //  copy   count\n                        var c = 0, n = 0;\n                        if (s == 16)\n                            n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n                        else if (s == 17)\n                            n = 3 + bits(dat, pos, 7), pos += 3;\n                        else if (s == 18)\n                            n = 11 + bits(dat, pos, 127), pos += 7;\n                        while (n--)\n                            ldt[i++] = c;\n                    }\n                }\n                //    length tree                 distance tree\n                var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n                // max length bits\n                lbt = max(lt);\n                // max dist bits\n                dbt = max(dt);\n                lm = hMap(lt, lbt, 1);\n                dm = hMap(dt, dbt, 1);\n            }\n            else\n                err(1);\n            if (pos > tbts) {\n                if (noSt)\n                    err(0);\n                break;\n            }\n        }\n        // Make sure the buffer can hold this + the largest possible addition\n        // Maximum chunk size (practically, theoretically infinite) is 2^17\n        if (resize)\n            cbuf(bt + 131072);\n        var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n        var lpos = pos;\n        for (;; lpos = pos) {\n            // bits read, code\n            var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n            pos += c & 15;\n            if (pos > tbts) {\n                if (noSt)\n                    err(0);\n                break;\n            }\n            if (!c)\n                err(2);\n            if (sym < 256)\n                buf[bt++] = sym;\n            else if (sym == 256) {\n                lpos = pos, lm = null;\n                break;\n            }\n            else {\n                var add = sym - 254;\n                // no extra bits needed if less\n                if (sym > 264) {\n                    // index\n                    var i = sym - 257, b = fleb[i];\n                    add = bits(dat, pos, (1 << b) - 1) + fl[i];\n                    pos += b;\n                }\n                // dist\n                var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n                if (!d)\n                    err(3);\n                pos += d & 15;\n                var dt = fd[dsym];\n                if (dsym > 3) {\n                    var b = fdeb[dsym];\n                    dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n                }\n                if (pos > tbts) {\n                    if (noSt)\n                        err(0);\n                    break;\n                }\n                if (resize)\n                    cbuf(bt + 131072);\n                var end = bt + add;\n                if (bt < dt) {\n                    var shift = dl - dt, dend = Math.min(dt, end);\n                    if (shift + bt < 0)\n                        err(3);\n                    for (; bt < dend; ++bt)\n                        buf[bt] = dict[shift + bt];\n                }\n                for (; bt < end; ++bt)\n                    buf[bt] = buf[bt - dt];\n            }\n        }\n        st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n        if (lm)\n            final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n    } while (!final);\n    // don't reallocate for streams or user buffers\n    return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n    v <<= p & 7;\n    var o = (p / 8) | 0;\n    d[o] |= v;\n    d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n    v <<= p & 7;\n    var o = (p / 8) | 0;\n    d[o] |= v;\n    d[o + 1] |= v >> 8;\n    d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n    // Need extra info to make a tree\n    var t = [];\n    for (var i = 0; i < d.length; ++i) {\n        if (d[i])\n            t.push({ s: i, f: d[i] });\n    }\n    var s = t.length;\n    var t2 = t.slice();\n    if (!s)\n        return { t: et, l: 0 };\n    if (s == 1) {\n        var v = new u8(t[0].s + 1);\n        v[t[0].s] = 1;\n        return { t: v, l: 1 };\n    }\n    t.sort(function (a, b) { return a.f - b.f; });\n    // after i2 reaches last ind, will be stopped\n    // freq must be greater than largest possible number of symbols\n    t.push({ s: -1, f: 25001 });\n    var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n    t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n    // efficient algorithm from UZIP.js\n    // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n    // symbols that combined have high freq, will start processing i2 (high-freq,\n    // non-composite) symbols instead\n    // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n    while (i1 != s - 1) {\n        l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n        r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n        t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n    }\n    var maxSym = t2[0].s;\n    for (var i = 1; i < s; ++i) {\n        if (t2[i].s > maxSym)\n            maxSym = t2[i].s;\n    }\n    // code lengths\n    var tr = new u16(maxSym + 1);\n    // max bits in tree\n    var mbt = ln(t[i1 - 1], tr, 0);\n    if (mbt > mb) {\n        // more algorithms from UZIP.js\n        // TODO: find out how this code works (debt)\n        //  ind    debt\n        var i = 0, dt = 0;\n        //    left            cost\n        var lft = mbt - mb, cst = 1 << lft;\n        t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n        for (; i < s; ++i) {\n            var i2_1 = t2[i].s;\n            if (tr[i2_1] > mb) {\n                dt += cst - (1 << (mbt - tr[i2_1]));\n                tr[i2_1] = mb;\n            }\n            else\n                break;\n        }\n        dt >>= lft;\n        while (dt > 0) {\n            var i2_2 = t2[i].s;\n            if (tr[i2_2] < mb)\n                dt -= 1 << (mb - tr[i2_2]++ - 1);\n            else\n                ++i;\n        }\n        for (; i >= 0 && dt; --i) {\n            var i2_3 = t2[i].s;\n            if (tr[i2_3] == mb) {\n                --tr[i2_3];\n                ++dt;\n            }\n        }\n        mbt = mb;\n    }\n    return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n    return n.s == -1\n        ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n        : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n    var s = c.length;\n    // Note that the semicolon was intentional\n    while (s && !c[--s])\n        ;\n    var cl = new u16(++s);\n    //  ind      num         streak\n    var cli = 0, cln = c[0], cls = 1;\n    var w = function (v) { cl[cli++] = v; };\n    for (var i = 1; i <= s; ++i) {\n        if (c[i] == cln && i != s)\n            ++cls;\n        else {\n            if (!cln && cls > 2) {\n                for (; cls > 138; cls -= 138)\n                    w(32754);\n                if (cls > 2) {\n                    w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n                    cls = 0;\n                }\n            }\n            else if (cls > 3) {\n                w(cln), --cls;\n                for (; cls > 6; cls -= 6)\n                    w(8304);\n                if (cls > 2)\n                    w(((cls - 3) << 5) | 8208), cls = 0;\n            }\n            while (cls--)\n                w(cln);\n            cls = 1;\n            cln = c[i];\n        }\n    }\n    return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n    var l = 0;\n    for (var i = 0; i < cl.length; ++i)\n        l += cf[i] * cl[i];\n    return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n    // no need to write 00 as type: TypedArray defaults to 0\n    var s = dat.length;\n    var o = shft(pos + 2);\n    out[o] = s & 255;\n    out[o + 1] = s >> 8;\n    out[o + 2] = out[o] ^ 255;\n    out[o + 3] = out[o + 1] ^ 255;\n    for (var i = 0; i < s; ++i)\n        out[o + i + 4] = dat[i];\n    return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n    wbits(out, p++, final);\n    ++lf[256];\n    var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n    var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n    var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n    var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n    var lcfreq = new u16(19);\n    for (var i = 0; i < lclt.length; ++i)\n        ++lcfreq[lclt[i] & 31];\n    for (var i = 0; i < lcdt.length; ++i)\n        ++lcfreq[lcdt[i] & 31];\n    var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n    var nlcc = 19;\n    for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n        ;\n    var flen = (bl + 5) << 3;\n    var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n    var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n    if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n        return wfblk(out, p, dat.subarray(bs, bs + bl));\n    var lm, ll, dm, dl;\n    wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n    if (dtlen < ftlen) {\n        lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n        var llm = hMap(lct, mlcb, 0);\n        wbits(out, p, nlc - 257);\n        wbits(out, p + 5, ndc - 1);\n        wbits(out, p + 10, nlcc - 4);\n        p += 14;\n        for (var i = 0; i < nlcc; ++i)\n            wbits(out, p + 3 * i, lct[clim[i]]);\n        p += 3 * nlcc;\n        var lcts = [lclt, lcdt];\n        for (var it = 0; it < 2; ++it) {\n            var clct = lcts[it];\n            for (var i = 0; i < clct.length; ++i) {\n                var len = clct[i] & 31;\n                wbits(out, p, llm[len]), p += lct[len];\n                if (len > 15)\n                    wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n            }\n        }\n    }\n    else {\n        lm = flm, ll = flt, dm = fdm, dl = fdt;\n    }\n    for (var i = 0; i < li; ++i) {\n        var sym = syms[i];\n        if (sym > 255) {\n            var len = (sym >> 18) & 31;\n            wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n            if (len > 7)\n                wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n            var dst = sym & 31;\n            wbits16(out, p, dm[dst]), p += dl[dst];\n            if (dst > 3)\n                wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n        }\n        else {\n            wbits16(out, p, lm[sym]), p += ll[sym];\n        }\n    }\n    wbits16(out, p, lm[256]);\n    return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n    var s = st.z || dat.length;\n    var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n    // writing to this writes to the output buffer\n    var w = o.subarray(pre, o.length - post);\n    var lst = st.l;\n    var pos = (st.r || 0) & 7;\n    if (lvl) {\n        if (pos)\n            w[0] = st.r >> 3;\n        var opt = deo[lvl - 1];\n        var n = opt >> 13, c = opt & 8191;\n        var msk_1 = (1 << plvl) - 1;\n        //    prev 2-byte val map    curr 2-byte val map\n        var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n        var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n        var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n        // 24576 is an arbitrary number of maximum symbols per block\n        // 424 buffer for last block\n        var syms = new i32(25000);\n        // length/literal freq   distance freq\n        var lf = new u16(288), df = new u16(32);\n        //  l/lcnt  exbits  index          l/lind  waitdx          blkpos\n        var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n        for (; i + 2 < s; ++i) {\n            // hash value\n            var hv = hsh(i);\n            // index mod 32768    previous index mod\n            var imod = i & 32767, pimod = head[hv];\n            prev[imod] = pimod;\n            head[hv] = imod;\n            // We always should modify head and prev, but only add symbols if\n            // this data is not yet processed (\"wait\" for wait index)\n            if (wi <= i) {\n                // bytes remaining\n                var rem = s - i;\n                if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n                    pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n                    li = lc_1 = eb = 0, bs = i;\n                    for (var j = 0; j < 286; ++j)\n                        lf[j] = 0;\n                    for (var j = 0; j < 30; ++j)\n                        df[j] = 0;\n                }\n                //  len    dist   chain\n                var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n                if (rem > 2 && hv == hsh(i - dif)) {\n                    var maxn = Math.min(n, rem) - 1;\n                    var maxd = Math.min(32767, i);\n                    // max possible length\n                    // not capped at dif because decompressors implement \"rolling\" index population\n                    var ml = Math.min(258, rem);\n                    while (dif <= maxd && --ch_1 && imod != pimod) {\n                        if (dat[i + l] == dat[i + l - dif]) {\n                            var nl = 0;\n                            for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n                                ;\n                            if (nl > l) {\n                                l = nl, d = dif;\n                                // break out early when we reach \"nice\" (we are satisfied enough)\n                                if (nl > maxn)\n                                    break;\n                                // now, find the rarest 2-byte sequence within this\n                                // length of literals and search for that instead.\n                                // Much faster than just using the start\n                                var mmd = Math.min(dif, nl - 2);\n                                var md = 0;\n                                for (var j = 0; j < mmd; ++j) {\n                                    var ti = i - dif + j & 32767;\n                                    var pti = prev[ti];\n                                    var cd = ti - pti & 32767;\n                                    if (cd > md)\n                                        md = cd, pimod = ti;\n                                }\n                            }\n                        }\n                        // check the previous match\n                        imod = pimod, pimod = prev[imod];\n                        dif += imod - pimod & 32767;\n                    }\n                }\n                // d will be nonzero only when a match was found\n                if (d) {\n                    // store both dist and len data in one int32\n                    // Make sure this is recognized as a len/dist with 28th bit (2^28)\n                    syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n                    var lin = revfl[l] & 31, din = revfd[d] & 31;\n                    eb += fleb[lin] + fdeb[din];\n                    ++lf[257 + lin];\n                    ++df[din];\n                    wi = i + l;\n                    ++lc_1;\n                }\n                else {\n                    syms[li++] = dat[i];\n                    ++lf[dat[i]];\n                }\n            }\n        }\n        for (i = Math.max(i, wi); i < s; ++i) {\n            syms[li++] = dat[i];\n            ++lf[dat[i]];\n        }\n        pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n        if (!lst) {\n            st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n            // shft(pos) now 1 less if pos & 7 != 0\n            pos -= 7;\n            st.h = head, st.p = prev, st.i = i, st.w = wi;\n        }\n    }\n    else {\n        for (var i = st.w || 0; i < s + lst; i += 65535) {\n            // end\n            var e = i + 65535;\n            if (e >= s) {\n                // write final block\n                w[(pos / 8) | 0] = lst;\n                e = s;\n            }\n            pos = wfblk(w, pos + 1, dat.subarray(i, e));\n        }\n        st.i = s;\n    }\n    return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n    var t = new Int32Array(256);\n    for (var i = 0; i < 256; ++i) {\n        var c = i, k = 9;\n        while (--k)\n            c = ((c & 1) && -306674912) ^ (c >>> 1);\n        t[i] = c;\n    }\n    return t;\n})();\n// CRC32\nvar crc = function () {\n    var c = -1;\n    return {\n        p: function (d) {\n            // closures have awful performance\n            var cr = c;\n            for (var i = 0; i < d.length; ++i)\n                cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n            c = cr;\n        },\n        d: function () { return ~c; }\n    };\n};\n// Adler32\nvar adler = function () {\n    var a = 1, b = 0;\n    return {\n        p: function (d) {\n            // closures have awful performance\n            var n = a, m = b;\n            var l = d.length | 0;\n            for (var i = 0; i != l;) {\n                var e = Math.min(i + 2655, l);\n                for (; i < e; ++i)\n                    m += n += d[i];\n                n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n            }\n            a = n, b = m;\n        },\n        d: function () {\n            a %= 65521, b %= 65521;\n            return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n        }\n    };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n    if (!st) {\n        st = { l: 1 };\n        if (opt.dictionary) {\n            var dict = opt.dictionary.subarray(-32768);\n            var newDat = new u8(dict.length + dat.length);\n            newDat.set(dict);\n            newDat.set(dat, dict.length);\n            dat = newDat;\n            st.w = dict.length;\n        }\n    }\n    return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n    var o = {};\n    for (var k in a)\n        o[k] = a[k];\n    for (var k in b)\n        o[k] = b[k];\n    return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n    var dt = fn();\n    var st = fn.toString();\n    var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n    for (var i = 0; i < dt.length; ++i) {\n        var v = dt[i], k = ks[i];\n        if (typeof v == 'function') {\n            fnStr += ';' + k + '=';\n            var st_1 = v.toString();\n            if (v.prototype) {\n                // for global objects\n                if (st_1.indexOf('[native code]') != -1) {\n                    var spInd = st_1.indexOf(' ', 8) + 1;\n                    fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n                }\n                else {\n                    fnStr += st_1;\n                    for (var t in v.prototype)\n                        fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n                }\n            }\n            else\n                fnStr += st_1;\n        }\n        else\n            td[k] = v;\n    }\n    return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n    var tl = [];\n    for (var k in v) {\n        if (v[k].buffer) {\n            tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n        }\n    }\n    return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n    if (!ch[id]) {\n        var fnStr = '', td_1 = {}, m = fns.length - 1;\n        for (var i = 0; i < m; ++i)\n            fnStr = wcln(fns[i], fnStr, td_1);\n        ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n    }\n    var td = mrg({}, ch[id].e);\n    return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n    out: o.size && new u8(o.size),\n    dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n    var w = wrkr(fns, init, id, function (err, dat) {\n        w.terminate();\n        cb(err, dat);\n    });\n    w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n    return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n    strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n    return function (ev) {\n        if (ev.data.length) {\n            strm.push(ev.data[0], ev.data[1]);\n            postMessage([ev.data[0].length]);\n        }\n        else\n            strm.flush();\n    };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n    var t;\n    var w = wrkr(fns, init, id, function (err, dat) {\n        if (err)\n            w.terminate(), strm.ondata.call(strm, err);\n        else if (!Array.isArray(dat))\n            ext(dat);\n        else if (dat.length == 1) {\n            strm.queuedSize -= dat[0];\n            if (strm.ondrain)\n                strm.ondrain(dat[0]);\n        }\n        else {\n            if (dat[1])\n                w.terminate();\n            strm.ondata.call(strm, err, dat[0], dat[1]);\n        }\n    });\n    w.postMessage(opts);\n    strm.queuedSize = 0;\n    strm.push = function (d, f) {\n        if (!strm.ondata)\n            err(5);\n        if (t)\n            strm.ondata(err(4, 0, 1), null, !!f);\n        strm.queuedSize += d.length;\n        w.postMessage([d, t = f], [d.buffer]);\n    };\n    strm.terminate = function () { w.terminate(); };\n    if (flush) {\n        strm.flush = function () { w.postMessage([]); };\n    }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n    for (; v; ++b)\n        d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n    var fn = o.filename;\n    c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n    if (o.mtime != 0)\n        wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n    if (fn) {\n        c[3] = 8;\n        for (var i = 0; i <= fn.length; ++i)\n            c[i + 10] = fn.charCodeAt(i);\n    }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n    if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n        err(6, 'invalid gzip data');\n    var flg = d[3];\n    var st = 10;\n    if (flg & 4)\n        st += (d[10] | d[11] << 8) + 2;\n    for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n        ;\n    return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n    var l = d.length;\n    return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n    var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n    c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n    c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n    if (o.dictionary) {\n        var h = adler();\n        h.p(o.dictionary);\n        wbytes(c, 2, h.d());\n    }\n};\n// zlib start\nvar zls = function (d, dict) {\n    if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n        err(6, 'invalid zlib data');\n    if ((d[1] >> 5 & 1) == +!dict)\n        err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n    return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n    if (typeof opts == 'function')\n        cb = opts, opts = {};\n    this.ondata = cb;\n    return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n    function Deflate(opts, cb) {\n        if (typeof opts == 'function')\n            cb = opts, opts = {};\n        this.ondata = cb;\n        this.o = opts || {};\n        this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n        // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n        // 98304 = 32768 (lookback) + 65536 (common chunk size)\n        this.b = new u8(98304);\n        if (this.o.dictionary) {\n            var dict = this.o.dictionary.subarray(-32768);\n            this.b.set(dict, 32768 - dict.length);\n            this.s.i = 32768 - dict.length;\n        }\n    }\n    Deflate.prototype.p = function (c, f) {\n        this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n    };\n    /**\n     * Pushes a chunk to be deflated\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Deflate.prototype.push = function (chunk, final) {\n        if (!this.ondata)\n            err(5);\n        if (this.s.l)\n            err(4);\n        var endLen = chunk.length + this.s.z;\n        if (endLen > this.b.length) {\n            if (endLen > 2 * this.b.length - 32768) {\n                var newBuf = new u8(endLen & -32768);\n                newBuf.set(this.b.subarray(0, this.s.z));\n                this.b = newBuf;\n            }\n            var split = this.b.length - this.s.z;\n            this.b.set(chunk.subarray(0, split), this.s.z);\n            this.s.z = this.b.length;\n            this.p(this.b, false);\n            this.b.set(this.b.subarray(-32768));\n            this.b.set(chunk.subarray(split), 32768);\n            this.s.z = chunk.length - split + 32768;\n            this.s.i = 32766, this.s.w = 32768;\n        }\n        else {\n            this.b.set(chunk, this.s.z);\n            this.s.z += chunk.length;\n        }\n        this.s.l = final & 1;\n        if (this.s.z > this.s.w + 8191 || final) {\n            this.p(this.b, final || false);\n            this.s.w = this.s.i, this.s.i -= 2;\n        }\n    };\n    /**\n     * Flushes buffered uncompressed data. Useful to immediately retrieve the\n     * deflated output for small inputs.\n     */\n    Deflate.prototype.flush = function () {\n        if (!this.ondata)\n            err(5);\n        if (this.s.l)\n            err(4);\n        this.p(this.b, false);\n        this.s.w = this.s.i, this.s.i -= 2;\n    };\n    return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n    function AsyncDeflate(opts, cb) {\n        astrmify([\n            bDflt,\n            function () { return [astrm, Deflate]; }\n        ], this, StrmOpt.call(this, opts, cb), function (ev) {\n            var strm = new Deflate(ev.data);\n            onmessage = astrm(strm);\n        }, 6, 1);\n    }\n    return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        err(7);\n    return cbify(data, opts, [\n        bDflt,\n    ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n    return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n    function Inflate(opts, cb) {\n        // no StrmOpt here to avoid adding to workerizer\n        if (typeof opts == 'function')\n            cb = opts, opts = {};\n        this.ondata = cb;\n        var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n        this.s = { i: 0, b: dict ? dict.length : 0 };\n        this.o = new u8(32768);\n        this.p = new u8(0);\n        if (dict)\n            this.o.set(dict);\n    }\n    Inflate.prototype.e = function (c) {\n        if (!this.ondata)\n            err(5);\n        if (this.d)\n            err(4);\n        if (!this.p.length)\n            this.p = c;\n        else if (c.length) {\n            var n = new u8(this.p.length + c.length);\n            n.set(this.p), n.set(c, this.p.length), this.p = n;\n        }\n    };\n    Inflate.prototype.c = function (final) {\n        this.s.i = +(this.d = final || false);\n        var bts = this.s.b;\n        var dt = inflt(this.p, this.s, this.o);\n        this.ondata(slc(dt, bts, this.s.b), this.d);\n        this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n        this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n    };\n    /**\n     * Pushes a chunk to be inflated\n     * @param chunk The chunk to push\n     * @param final Whether this is the final chunk\n     */\n    Inflate.prototype.push = function (chunk, final) {\n        this.e(chunk), this.c(final);\n    };\n    return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n    function AsyncInflate(opts, cb) {\n        astrmify([\n            bInflt,\n            function () { return [astrm, Inflate]; }\n        ], this, StrmOpt.call(this, opts, cb), function (ev) {\n            var strm = new Inflate(ev.data);\n            onmessage = astrm(strm);\n        }, 7, 0);\n    }\n    return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        err(7);\n    return cbify(data, opts, [\n        bInflt\n    ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n    return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n    function Gzip(opts, cb) {\n        this.c = crc();\n        this.l = 0;\n        this.v = 1;\n        Deflate.call(this, opts, cb);\n    }\n    /**\n     * Pushes a chunk to be GZIPped\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Gzip.prototype.push = function (chunk, final) {\n        this.c.p(chunk);\n        this.l += chunk.length;\n        Deflate.prototype.push.call(this, chunk, final);\n    };\n    Gzip.prototype.p = function (c, f) {\n        var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n        if (this.v)\n            gzh(raw, this.o), this.v = 0;\n        if (f)\n            wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n        this.ondata(raw, f);\n    };\n    /**\n     * Flushes buffered uncompressed data. Useful to immediately retrieve the\n     * GZIPped output for small inputs.\n     */\n    Gzip.prototype.flush = function () {\n        Deflate.prototype.flush.call(this);\n    };\n    return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n    function AsyncGzip(opts, cb) {\n        astrmify([\n            bDflt,\n            gze,\n            function () { return [astrm, Deflate, Gzip]; }\n        ], this, StrmOpt.call(this, opts, cb), function (ev) {\n            var strm = new Gzip(ev.data);\n            onmessage = astrm(strm);\n        }, 8, 1);\n    }\n    return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        err(7);\n    return cbify(data, opts, [\n        bDflt,\n        gze,\n        function () { return [gzipSync]; }\n    ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n    if (!opts)\n        opts = {};\n    var c = crc(), l = data.length;\n    c.p(data);\n    var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n    return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n    function Gunzip(opts, cb) {\n        this.v = 1;\n        this.r = 0;\n        Inflate.call(this, opts, cb);\n    }\n    /**\n     * Pushes a chunk to be GUNZIPped\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Gunzip.prototype.push = function (chunk, final) {\n        Inflate.prototype.e.call(this, chunk);\n        this.r += chunk.length;\n        if (this.v) {\n            var p = this.p.subarray(this.v - 1);\n            var s = p.length > 3 ? gzs(p) : 4;\n            if (s > p.length) {\n                if (!final)\n                    return;\n            }\n            else if (this.v > 1 && this.onmember) {\n                this.onmember(this.r - p.length);\n            }\n            this.p = p.subarray(s), this.v = 0;\n        }\n        // necessary to prevent TS from using the closure value\n        // This allows for workerization to function correctly\n        Inflate.prototype.c.call(this, final);\n        // process concatenated GZIP\n        if (this.s.f && !this.s.l && !final) {\n            this.v = shft(this.s.p) + 9;\n            this.s = { i: 0 };\n            this.o = new u8(0);\n            this.push(new u8(0), final);\n        }\n    };\n    return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n    function AsyncGunzip(opts, cb) {\n        var _this = this;\n        astrmify([\n            bInflt,\n            guze,\n            function () { return [astrm, Inflate, Gunzip]; }\n        ], this, StrmOpt.call(this, opts, cb), function (ev) {\n            var strm = new Gunzip(ev.data);\n            strm.onmember = function (offset) { return postMessage(offset); };\n            onmessage = astrm(strm);\n        }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n    }\n    return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        err(7);\n    return cbify(data, opts, [\n        bInflt,\n        guze,\n        function () { return [gunzipSync]; }\n    ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n    var st = gzs(data);\n    if (st + 8 > data.length)\n        err(6, 'invalid gzip data');\n    return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n    function Zlib(opts, cb) {\n        this.c = adler();\n        this.v = 1;\n        Deflate.call(this, opts, cb);\n    }\n    /**\n     * Pushes a chunk to be zlibbed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Zlib.prototype.push = function (chunk, final) {\n        this.c.p(chunk);\n        Deflate.prototype.push.call(this, chunk, final);\n    };\n    Zlib.prototype.p = function (c, f) {\n        var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n        if (this.v)\n            zlh(raw, this.o), this.v = 0;\n        if (f)\n            wbytes(raw, raw.length - 4, this.c.d());\n        this.ondata(raw, f);\n    };\n    /**\n     * Flushes buffered uncompressed data. Useful to immediately retrieve the\n     * zlibbed output for small inputs.\n     */\n    Zlib.prototype.flush = function () {\n        Deflate.prototype.flush.call(this);\n    };\n    return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n    function AsyncZlib(opts, cb) {\n        astrmify([\n            bDflt,\n            zle,\n            function () { return [astrm, Deflate, Zlib]; }\n        ], this, StrmOpt.call(this, opts, cb), function (ev) {\n            var strm = new Zlib(ev.data);\n            onmessage = astrm(strm);\n        }, 10, 1);\n    }\n    return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        err(7);\n    return cbify(data, opts, [\n        bDflt,\n        zle,\n        function () { return [zlibSync]; }\n    ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n    if (!opts)\n        opts = {};\n    var a = adler();\n    a.p(data);\n    var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n    return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n    function Unzlib(opts, cb) {\n        Inflate.call(this, opts, cb);\n        this.v = opts && opts.dictionary ? 2 : 1;\n    }\n    /**\n     * Pushes a chunk to be unzlibbed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Unzlib.prototype.push = function (chunk, final) {\n        Inflate.prototype.e.call(this, chunk);\n        if (this.v) {\n            if (this.p.length < 6 && !final)\n                return;\n            this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n        }\n        if (final) {\n            if (this.p.length < 4)\n                err(6, 'invalid zlib data');\n            this.p = this.p.subarray(0, -4);\n        }\n        // necessary to prevent TS from using the closure value\n        // This allows for workerization to function correctly\n        Inflate.prototype.c.call(this, final);\n    };\n    return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n    function AsyncUnzlib(opts, cb) {\n        astrmify([\n            bInflt,\n            zule,\n            function () { return [astrm, Inflate, Unzlib]; }\n        ], this, StrmOpt.call(this, opts, cb), function (ev) {\n            var strm = new Unzlib(ev.data);\n            onmessage = astrm(strm);\n        }, 11, 0);\n    }\n    return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        err(7);\n    return cbify(data, opts, [\n        bInflt,\n        zule,\n        function () { return [unzlibSync]; }\n    ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n    return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n    function Decompress(opts, cb) {\n        this.o = StrmOpt.call(this, opts, cb) || {};\n        this.G = Gunzip;\n        this.I = Inflate;\n        this.Z = Unzlib;\n    }\n    // init substream\n    // overriden by AsyncDecompress\n    Decompress.prototype.i = function () {\n        var _this = this;\n        this.s.ondata = function (dat, final) {\n            _this.ondata(dat, final);\n        };\n    };\n    /**\n     * Pushes a chunk to be decompressed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Decompress.prototype.push = function (chunk, final) {\n        if (!this.ondata)\n            err(5);\n        if (!this.s) {\n            if (this.p && this.p.length) {\n                var n = new u8(this.p.length + chunk.length);\n                n.set(this.p), n.set(chunk, this.p.length);\n            }\n            else\n                this.p = chunk;\n            if (this.p.length > 2) {\n                this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n                    ? new this.G(this.o)\n                    : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n                        ? new this.I(this.o)\n                        : new this.Z(this.o);\n                this.i();\n                this.s.push(this.p, final);\n                this.p = null;\n            }\n        }\n        else\n            this.s.push(chunk, final);\n    };\n    return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n    function AsyncDecompress(opts, cb) {\n        Decompress.call(this, opts, cb);\n        this.queuedSize = 0;\n        this.G = AsyncGunzip;\n        this.I = AsyncInflate;\n        this.Z = AsyncUnzlib;\n    }\n    AsyncDecompress.prototype.i = function () {\n        var _this = this;\n        this.s.ondata = function (err, dat, final) {\n            _this.ondata(err, dat, final);\n        };\n        this.s.ondrain = function (size) {\n            _this.queuedSize -= size;\n            if (_this.ondrain)\n                _this.ondrain(size);\n        };\n    };\n    /**\n     * Pushes a chunk to be decompressed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    AsyncDecompress.prototype.push = function (chunk, final) {\n        this.queuedSize += chunk.length;\n        Decompress.prototype.push.call(this, chunk, final);\n    };\n    return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        err(7);\n    return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n        ? gunzip(data, opts, cb)\n        : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n            ? inflate(data, opts, cb)\n            : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n    return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n        ? gunzipSync(data, opts)\n        : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n            ? inflateSync(data, opts)\n            : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n    for (var k in d) {\n        var val = d[k], n = p + k, op = o;\n        if (Array.isArray(val))\n            op = mrg(o, val[1]), val = val[0];\n        if (val instanceof u8)\n            t[n] = [val, op];\n        else {\n            t[n += '/'] = [new u8(0), op];\n            fltn(val, n, t, o);\n        }\n    }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n    td.decode(et, { stream: true });\n    tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n    for (var r = '', i = 0;;) {\n        var c = d[i++];\n        var eb = (c > 127) + (c > 223) + (c > 239);\n        if (i + eb > d.length)\n            return { s: r, r: slc(d, i - 1) };\n        if (!eb)\n            r += String.fromCharCode(c);\n        else if (eb == 3) {\n            c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n                r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n        }\n        else if (eb & 1)\n            r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n        else\n            r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n    }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n    /**\n     * Creates a UTF-8 decoding stream\n     * @param cb The callback to call whenever data is decoded\n     */\n    function DecodeUTF8(cb) {\n        this.ondata = cb;\n        if (tds)\n            this.t = new TextDecoder();\n        else\n            this.p = et;\n    }\n    /**\n     * Pushes a chunk to be decoded from UTF-8 binary\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    DecodeUTF8.prototype.push = function (chunk, final) {\n        if (!this.ondata)\n            err(5);\n        final = !!final;\n        if (this.t) {\n            this.ondata(this.t.decode(chunk, { stream: true }), final);\n            if (final) {\n                if (this.t.decode().length)\n                    err(8);\n                this.t = null;\n            }\n            return;\n        }\n        if (!this.p)\n            err(4);\n        var dat = new u8(this.p.length + chunk.length);\n        dat.set(this.p);\n        dat.set(chunk, this.p.length);\n        var _a = dutf8(dat), s = _a.s, r = _a.r;\n        if (final) {\n            if (r.length)\n                err(8);\n            this.p = null;\n        }\n        else\n            this.p = r;\n        this.ondata(s, final);\n    };\n    return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n    /**\n     * Creates a UTF-8 decoding stream\n     * @param cb The callback to call whenever data is encoded\n     */\n    function EncodeUTF8(cb) {\n        this.ondata = cb;\n    }\n    /**\n     * Pushes a chunk to be encoded to UTF-8\n     * @param chunk The string data to push\n     * @param final Whether this is the last chunk\n     */\n    EncodeUTF8.prototype.push = function (chunk, final) {\n        if (!this.ondata)\n            err(5);\n        if (this.d)\n            err(4);\n        this.ondata(strToU8(chunk), this.d = final || false);\n    };\n    return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n *               not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n    if (latin1) {\n        var ar_1 = new u8(str.length);\n        for (var i = 0; i < str.length; ++i)\n            ar_1[i] = str.charCodeAt(i);\n        return ar_1;\n    }\n    if (te)\n        return te.encode(str);\n    var l = str.length;\n    var ar = new u8(str.length + (str.length >> 1));\n    var ai = 0;\n    var w = function (v) { ar[ai++] = v; };\n    for (var i = 0; i < l; ++i) {\n        if (ai + 5 > ar.length) {\n            var n = new u8(ai + 8 + ((l - i) << 1));\n            n.set(ar);\n            ar = n;\n        }\n        var c = str.charCodeAt(i);\n        if (c < 128 || latin1)\n            w(c);\n        else if (c < 2048)\n            w(192 | (c >> 6)), w(128 | (c & 63));\n        else if (c > 55295 && c < 57344)\n            c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n                w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n        else\n            w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n    }\n    return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n *               not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n    if (latin1) {\n        var r = '';\n        for (var i = 0; i < dat.length; i += 16384)\n            r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n        return r;\n    }\n    else if (td) {\n        return td.decode(dat);\n    }\n    else {\n        var _a = dutf8(dat), s = _a.s, r = _a.r;\n        if (r.length)\n            err(8);\n        return s;\n    }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n    var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n    var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n    return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n    for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n        ;\n    return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n    var le = 0;\n    if (ex) {\n        for (var k in ex) {\n            var l = ex[k].length;\n            if (l > 65535)\n                err(9);\n            le += l + 4;\n        }\n    }\n    return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n    var fl = fn.length, ex = f.extra, col = co && co.length;\n    var exl = exfl(ex);\n    wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n    if (ce != null)\n        d[b++] = 20, d[b++] = f.os;\n    d[b] = 20, b += 2; // spec compliance? what's that?\n    d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n    d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n    var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n    if (y < 0 || y > 119)\n        err(10);\n    wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n    if (c != -1) {\n        wbytes(d, b, f.crc);\n        wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n        wbytes(d, b + 8, f.size);\n    }\n    wbytes(d, b + 12, fl);\n    wbytes(d, b + 14, exl), b += 16;\n    if (ce != null) {\n        wbytes(d, b, col);\n        wbytes(d, b + 6, f.attrs);\n        wbytes(d, b + 10, ce), b += 14;\n    }\n    d.set(fn, b);\n    b += fl;\n    if (exl) {\n        for (var k in ex) {\n            var exf = ex[k], l = exf.length;\n            wbytes(d, b, +k);\n            wbytes(d, b + 2, l);\n            d.set(exf, b + 4), b += 4 + l;\n        }\n    }\n    if (col)\n        d.set(co, b), b += col;\n    return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n    wbytes(o, b, 0x6054B50); // skip disk\n    wbytes(o, b + 8, c);\n    wbytes(o, b + 10, c);\n    wbytes(o, b + 12, d);\n    wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n    /**\n     * Creates a pass-through stream that can be added to ZIP archives\n     * @param filename The filename to associate with this data stream\n     */\n    function ZipPassThrough(filename) {\n        this.filename = filename;\n        this.c = crc();\n        this.size = 0;\n        this.compression = 0;\n    }\n    /**\n     * Processes a chunk and pushes to the output stream. You can override this\n     * method in a subclass for custom behavior, but by default this passes\n     * the data through. You must call this.ondata(err, chunk, final) at some\n     * point in this method.\n     * @param chunk The chunk to process\n     * @param final Whether this is the last chunk\n     */\n    ZipPassThrough.prototype.process = function (chunk, final) {\n        this.ondata(null, chunk, final);\n    };\n    /**\n     * Pushes a chunk to be added. If you are subclassing this with a custom\n     * compression algorithm, note that you must push data from the source\n     * file only, pre-compression.\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    ZipPassThrough.prototype.push = function (chunk, final) {\n        if (!this.ondata)\n            err(5);\n        this.c.p(chunk);\n        this.size += chunk.length;\n        if (final)\n            this.crc = this.c.d();\n        this.process(chunk, final || false);\n    };\n    return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n    /**\n     * Creates a DEFLATE stream that can be added to ZIP archives\n     * @param filename The filename to associate with this data stream\n     * @param opts The compression options\n     */\n    function ZipDeflate(filename, opts) {\n        var _this = this;\n        if (!opts)\n            opts = {};\n        ZipPassThrough.call(this, filename);\n        this.d = new Deflate(opts, function (dat, final) {\n            _this.ondata(null, dat, final);\n        });\n        this.compression = 8;\n        this.flag = dbf(opts.level);\n    }\n    ZipDeflate.prototype.process = function (chunk, final) {\n        try {\n            this.d.push(chunk, final);\n        }\n        catch (e) {\n            this.ondata(e, null, final);\n        }\n    };\n    /**\n     * Pushes a chunk to be deflated\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    ZipDeflate.prototype.push = function (chunk, final) {\n        ZipPassThrough.prototype.push.call(this, chunk, final);\n    };\n    return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n    /**\n     * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n     * @param filename The filename to associate with this data stream\n     * @param opts The compression options\n     */\n    function AsyncZipDeflate(filename, opts) {\n        var _this = this;\n        if (!opts)\n            opts = {};\n        ZipPassThrough.call(this, filename);\n        this.d = new AsyncDeflate(opts, function (err, dat, final) {\n            _this.ondata(err, dat, final);\n        });\n        this.compression = 8;\n        this.flag = dbf(opts.level);\n        this.terminate = this.d.terminate;\n    }\n    AsyncZipDeflate.prototype.process = function (chunk, final) {\n        this.d.push(chunk, final);\n    };\n    /**\n     * Pushes a chunk to be deflated\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    AsyncZipDeflate.prototype.push = function (chunk, final) {\n        ZipPassThrough.prototype.push.call(this, chunk, final);\n    };\n    return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n    /**\n     * Creates an empty ZIP archive to which files can be added\n     * @param cb The callback to call whenever data for the generated ZIP archive\n     *           is available\n     */\n    function Zip(cb) {\n        this.ondata = cb;\n        this.u = [];\n        this.d = 1;\n    }\n    /**\n     * Adds a file to the ZIP archive\n     * @param file The file stream to add\n     */\n    Zip.prototype.add = function (file) {\n        var _this = this;\n        if (!this.ondata)\n            err(5);\n        // finishing or finished\n        if (this.d & 2)\n            this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n        else {\n            var f = strToU8(file.filename), fl_1 = f.length;\n            var com = file.comment, o = com && strToU8(com);\n            var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n            var hl_1 = fl_1 + exfl(file.extra) + 30;\n            if (fl_1 > 65535)\n                this.ondata(err(11, 0, 1), null, false);\n            var header = new u8(hl_1);\n            wzh(header, 0, file, f, u, -1);\n            var chks_1 = [header];\n            var pAll_1 = function () {\n                for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n                    var chk = chks_2[_i];\n                    _this.ondata(null, chk, false);\n                }\n                chks_1 = [];\n            };\n            var tr_1 = this.d;\n            this.d = 0;\n            var ind_1 = this.u.length;\n            var uf_1 = mrg(file, {\n                f: f,\n                u: u,\n                o: o,\n                t: function () {\n                    if (file.terminate)\n                        file.terminate();\n                },\n                r: function () {\n                    pAll_1();\n                    if (tr_1) {\n                        var nxt = _this.u[ind_1 + 1];\n                        if (nxt)\n                            nxt.r();\n                        else\n                            _this.d = 1;\n                    }\n                    tr_1 = 1;\n                }\n            });\n            var cl_1 = 0;\n            file.ondata = function (err, dat, final) {\n                if (err) {\n                    _this.ondata(err, dat, final);\n                    _this.terminate();\n                }\n                else {\n                    cl_1 += dat.length;\n                    chks_1.push(dat);\n                    if (final) {\n                        var dd = new u8(16);\n                        wbytes(dd, 0, 0x8074B50);\n                        wbytes(dd, 4, file.crc);\n                        wbytes(dd, 8, cl_1);\n                        wbytes(dd, 12, file.size);\n                        chks_1.push(dd);\n                        uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n                        if (tr_1)\n                            uf_1.r();\n                        tr_1 = 1;\n                    }\n                    else if (tr_1)\n                        pAll_1();\n                }\n            };\n            this.u.push(uf_1);\n        }\n    };\n    /**\n     * Ends the process of adding files and prepares to emit the final chunks.\n     * This *must* be called after adding all desired files for the resulting\n     * ZIP file to work properly.\n     */\n    Zip.prototype.end = function () {\n        var _this = this;\n        if (this.d & 2) {\n            this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n            return;\n        }\n        if (this.d)\n            this.e();\n        else\n            this.u.push({\n                r: function () {\n                    if (!(_this.d & 1))\n                        return;\n                    _this.u.splice(-1, 1);\n                    _this.e();\n                },\n                t: function () { }\n            });\n        this.d = 3;\n    };\n    Zip.prototype.e = function () {\n        var bt = 0, l = 0, tl = 0;\n        for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n            var f = _a[_i];\n            tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n        }\n        var out = new u8(tl + 22);\n        for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n            var f = _c[_b];\n            wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n            bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n        }\n        wzf(out, bt, this.u.length, tl, l);\n        this.ondata(null, out, true);\n        this.d = 2;\n    };\n    /**\n     * A method to terminate any internal workers used by the stream. Subsequent\n     * calls to add() will fail.\n     */\n    Zip.prototype.terminate = function () {\n        for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n            var f = _a[_i];\n            f.t();\n        }\n        this.d = 2;\n    };\n    return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        err(7);\n    var r = {};\n    fltn(data, '', r, opts);\n    var k = Object.keys(r);\n    var lft = k.length, o = 0, tot = 0;\n    var slft = lft, files = new Array(lft);\n    var term = [];\n    var tAll = function () {\n        for (var i = 0; i < term.length; ++i)\n            term[i]();\n    };\n    var cbd = function (a, b) {\n        mt(function () { cb(a, b); });\n    };\n    mt(function () { cbd = cb; });\n    var cbf = function () {\n        var out = new u8(tot + 22), oe = o, cdl = tot - o;\n        tot = 0;\n        for (var i = 0; i < slft; ++i) {\n            var f = files[i];\n            try {\n                var l = f.c.length;\n                wzh(out, tot, f, f.f, f.u, l);\n                var badd = 30 + f.f.length + exfl(f.extra);\n                var loc = tot + badd;\n                out.set(f.c, loc);\n                wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n            }\n            catch (e) {\n                return cbd(e, null);\n            }\n        }\n        wzf(out, o, files.length, cdl, oe);\n        cbd(null, out);\n    };\n    if (!lft)\n        cbf();\n    var _loop_1 = function (i) {\n        var fn = k[i];\n        var _a = r[fn], file = _a[0], p = _a[1];\n        var c = crc(), size = file.length;\n        c.p(file);\n        var f = strToU8(fn), s = f.length;\n        var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n        var exl = exfl(p.extra);\n        var compression = p.level == 0 ? 0 : 8;\n        var cbl = function (e, d) {\n            if (e) {\n                tAll();\n                cbd(e, null);\n            }\n            else {\n                var l = d.length;\n                files[i] = mrg(p, {\n                    size: size,\n                    crc: c.d(),\n                    c: d,\n                    f: f,\n                    m: m,\n                    u: s != fn.length || (m && (com.length != ms)),\n                    compression: compression\n                });\n                o += 30 + s + exl + l;\n                tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n                if (!--lft)\n                    cbf();\n            }\n        };\n        if (s > 65535)\n            cbl(err(11, 0, 1), null);\n        if (!compression)\n            cbl(null, file);\n        else if (size < 160000) {\n            try {\n                cbl(null, deflateSync(file, p));\n            }\n            catch (e) {\n                cbl(e, null);\n            }\n        }\n        else\n            term.push(deflate(file, p, cbl));\n    };\n    // Cannot use lft because it can decrease\n    for (var i = 0; i < slft; ++i) {\n        _loop_1(i);\n    }\n    return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n    if (!opts)\n        opts = {};\n    var r = {};\n    var files = [];\n    fltn(data, '', r, opts);\n    var o = 0;\n    var tot = 0;\n    for (var fn in r) {\n        var _a = r[fn], file = _a[0], p = _a[1];\n        var compression = p.level == 0 ? 0 : 8;\n        var f = strToU8(fn), s = f.length;\n        var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n        var exl = exfl(p.extra);\n        if (s > 65535)\n            err(11);\n        var d = compression ? deflateSync(file, p) : file, l = d.length;\n        var c = crc();\n        c.p(file);\n        files.push(mrg(p, {\n            size: file.length,\n            crc: c.d(),\n            c: d,\n            f: f,\n            m: m,\n            u: s != fn.length || (m && (com.length != ms)),\n            o: o,\n            compression: compression\n        }));\n        o += 30 + s + exl + l;\n        tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n    }\n    var out = new u8(tot + 22), oe = o, cdl = tot - o;\n    for (var i = 0; i < files.length; ++i) {\n        var f = files[i];\n        wzh(out, f.o, f, f.f, f.u, f.c.length);\n        var badd = 30 + f.f.length + exfl(f.extra);\n        out.set(f.c, f.o + badd);\n        wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n    }\n    wzf(out, o, files.length, cdl, oe);\n    return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n    function UnzipPassThrough() {\n    }\n    UnzipPassThrough.prototype.push = function (data, final) {\n        this.ondata(null, data, final);\n    };\n    UnzipPassThrough.compression = 0;\n    return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n    /**\n     * Creates a DEFLATE decompression that can be used in ZIP archives\n     */\n    function UnzipInflate() {\n        var _this = this;\n        this.i = new Inflate(function (dat, final) {\n            _this.ondata(null, dat, final);\n        });\n    }\n    UnzipInflate.prototype.push = function (data, final) {\n        try {\n            this.i.push(data, final);\n        }\n        catch (e) {\n            this.ondata(e, null, final);\n        }\n    };\n    UnzipInflate.compression = 8;\n    return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n    /**\n     * Creates a DEFLATE decompression that can be used in ZIP archives\n     */\n    function AsyncUnzipInflate(_, sz) {\n        var _this = this;\n        if (sz < 320000) {\n            this.i = new Inflate(function (dat, final) {\n                _this.ondata(null, dat, final);\n            });\n        }\n        else {\n            this.i = new AsyncInflate(function (err, dat, final) {\n                _this.ondata(err, dat, final);\n            });\n            this.terminate = this.i.terminate;\n        }\n    }\n    AsyncUnzipInflate.prototype.push = function (data, final) {\n        if (this.i.terminate)\n            data = slc(data, 0);\n        this.i.push(data, final);\n    };\n    AsyncUnzipInflate.compression = 8;\n    return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n    /**\n     * Creates a ZIP decompression stream\n     * @param cb The callback to call whenever a file in the ZIP archive is found\n     */\n    function Unzip(cb) {\n        this.onfile = cb;\n        this.k = [];\n        this.o = {\n            0: UnzipPassThrough\n        };\n        this.p = et;\n    }\n    /**\n     * Pushes a chunk to be unzipped\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Unzip.prototype.push = function (chunk, final) {\n        var _this = this;\n        if (!this.onfile)\n            err(5);\n        if (!this.p)\n            err(4);\n        if (this.c > 0) {\n            var len = Math.min(this.c, chunk.length);\n            var toAdd = chunk.subarray(0, len);\n            this.c -= len;\n            if (this.d)\n                this.d.push(toAdd, !this.c);\n            else\n                this.k[0].push(toAdd);\n            chunk = chunk.subarray(len);\n            if (chunk.length)\n                return this.push(chunk, final);\n        }\n        else {\n            var f = 0, i = 0, is = void 0, buf = void 0;\n            if (!this.p.length)\n                buf = chunk;\n            else if (!chunk.length)\n                buf = this.p;\n            else {\n                buf = new u8(this.p.length + chunk.length);\n                buf.set(this.p), buf.set(chunk, this.p.length);\n            }\n            var l = buf.length, oc = this.c, add = oc && this.d;\n            var _loop_2 = function () {\n                var _a;\n                var sig = b4(buf, i);\n                if (sig == 0x4034B50) {\n                    f = 1, is = i;\n                    this_1.d = null;\n                    this_1.c = 0;\n                    var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n                    if (l > i + 30 + fnl + es) {\n                        var chks_3 = [];\n                        this_1.k.unshift(chks_3);\n                        f = 2;\n                        var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n                        var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n                        if (sc_1 == 4294967295) {\n                            _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n                        }\n                        else if (dd)\n                            sc_1 = -1;\n                        i += es;\n                        this_1.c = sc_1;\n                        var d_1;\n                        var file_1 = {\n                            name: fn_1,\n                            compression: cmp_1,\n                            start: function () {\n                                if (!file_1.ondata)\n                                    err(5);\n                                if (!sc_1)\n                                    file_1.ondata(null, et, true);\n                                else {\n                                    var ctr = _this.o[cmp_1];\n                                    if (!ctr)\n                                        file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n                                    d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n                                    d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n                                    for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n                                        var dat = chks_4[_i];\n                                        d_1.push(dat, false);\n                                    }\n                                    if (_this.k[0] == chks_3 && _this.c)\n                                        _this.d = d_1;\n                                    else\n                                        d_1.push(et, true);\n                                }\n                            },\n                            terminate: function () {\n                                if (d_1 && d_1.terminate)\n                                    d_1.terminate();\n                            }\n                        };\n                        if (sc_1 >= 0)\n                            file_1.size = sc_1, file_1.originalSize = su_1;\n                        this_1.onfile(file_1);\n                    }\n                    return \"break\";\n                }\n                else if (oc) {\n                    if (sig == 0x8074B50) {\n                        is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n                        return \"break\";\n                    }\n                    else if (sig == 0x2014B50) {\n                        is = i -= 4, f = 3, this_1.c = 0;\n                        return \"break\";\n                    }\n                }\n            };\n            var this_1 = this;\n            for (; i < l - 4; ++i) {\n                var state_1 = _loop_2();\n                if (state_1 === \"break\")\n                    break;\n            }\n            this.p = et;\n            if (oc < 0) {\n                var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n                if (add)\n                    add.push(dat, !!f);\n                else\n                    this.k[+(f == 2)].push(dat);\n            }\n            if (f & 2)\n                return this.push(buf.subarray(i), final);\n            this.p = buf.subarray(i);\n        }\n        if (final) {\n            if (this.c)\n                err(13);\n            this.p = null;\n        }\n    };\n    /**\n     * Registers a decoder with the stream, allowing for files compressed with\n     * the compression type provided to be expanded correctly\n     * @param decoder The decoder constructor\n     */\n    Unzip.prototype.register = function (decoder) {\n        this.o[decoder.compression] = decoder;\n    };\n    return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        err(7);\n    var term = [];\n    var tAll = function () {\n        for (var i = 0; i < term.length; ++i)\n            term[i]();\n    };\n    var files = {};\n    var cbd = function (a, b) {\n        mt(function () { cb(a, b); });\n    };\n    mt(function () { cbd = cb; });\n    var e = data.length - 22;\n    for (; b4(data, e) != 0x6054B50; --e) {\n        if (!e || data.length - e > 65558) {\n            cbd(err(13, 0, 1), null);\n            return tAll;\n        }\n    }\n    ;\n    var lft = b2(data, e + 8);\n    if (lft) {\n        var c = lft;\n        var o = b4(data, e + 16);\n        var z = o == 4294967295 || c == 65535;\n        if (z) {\n            var ze = b4(data, e - 12);\n            z = b4(data, ze) == 0x6064B50;\n            if (z) {\n                c = lft = b4(data, ze + 32);\n                o = b4(data, ze + 48);\n            }\n        }\n        var fltr = opts && opts.filter;\n        var _loop_3 = function (i) {\n            var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n            o = no;\n            var cbl = function (e, d) {\n                if (e) {\n                    tAll();\n                    cbd(e, null);\n                }\n                else {\n                    if (d)\n                        files[fn] = d;\n                    if (!--lft)\n                        cbd(null, files);\n                }\n            };\n            if (!fltr || fltr({\n                name: fn,\n                size: sc,\n                originalSize: su,\n                compression: c_1\n            })) {\n                if (!c_1)\n                    cbl(null, slc(data, b, b + sc));\n                else if (c_1 == 8) {\n                    var infl = data.subarray(b, b + sc);\n                    // Synchronously decompress under 512KB, or barely-compressed data\n                    if (su < 524288 || sc > 0.8 * su) {\n                        try {\n                            cbl(null, inflateSync(infl, { out: new u8(su) }));\n                        }\n                        catch (e) {\n                            cbl(e, null);\n                        }\n                    }\n                    else\n                        term.push(inflate(infl, { size: su }, cbl));\n                }\n                else\n                    cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n            }\n            else\n                cbl(null, null);\n        };\n        for (var i = 0; i < c; ++i) {\n            _loop_3(i);\n        }\n    }\n    else\n        cbd(null, {});\n    return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n    var files = {};\n    var e = data.length - 22;\n    for (; b4(data, e) != 0x6054B50; --e) {\n        if (!e || data.length - e > 65558)\n            err(13);\n    }\n    ;\n    var c = b2(data, e + 8);\n    if (!c)\n        return {};\n    var o = b4(data, e + 16);\n    var z = o == 4294967295 || c == 65535;\n    if (z) {\n        var ze = b4(data, e - 12);\n        z = b4(data, ze) == 0x6064B50;\n        if (z) {\n            c = b4(data, ze + 32);\n            o = b4(data, ze + 48);\n        }\n    }\n    var fltr = opts && opts.filter;\n    for (var i = 0; i < c; ++i) {\n        var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n        o = no;\n        if (!fltr || fltr({\n            name: fn,\n            size: sc,\n            originalSize: su,\n            compression: c_2\n        })) {\n            if (!c_2)\n                files[fn] = slc(data, b, b + sc);\n            else if (c_2 == 8)\n                files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n            else\n                err(14, 'unknown compression type ' + c_2);\n        }\n    }\n    return files;\n}\n", "import { StringType, UINT32_LE } from 'token-types';\nimport { decompressSync } from 'fflate';\nimport initDebug from 'debug';\nimport { DataDescriptor, EndOfCentralDirectoryRecordToken, FileHeader, LocalFileHeaderToken, Signature } from \"./ZipToken.js\";\nfunction signatureToArray(signature) {\n    const signatureBytes = new Uint8Array(UINT32_LE.len);\n    UINT32_LE.put(signatureBytes, 0, signature);\n    return signatureBytes;\n}\nconst debug = initDebug('tokenizer:inflate');\nconst syncBufferSize = 256 * 1024;\nconst ddSignatureArray = signatureToArray(Signature.DataDescriptor);\nconst eocdSignatureBytes = signatureToArray(Signature.EndOfCentralDirectory);\nexport class ZipHandler {\n    constructor(tokenizer) {\n        this.tokenizer = tokenizer;\n        this.syncBuffer = new Uint8Array(syncBufferSize);\n    }\n    async isZip() {\n        return await this.peekSignature() === Signature.LocalFileHeader;\n    }\n    peekSignature() {\n        return this.tokenizer.peekToken(UINT32_LE);\n    }\n    async findEndOfCentralDirectoryLocator() {\n        const randomReadTokenizer = this.tokenizer;\n        const chunkLength = Math.min(16 * 1024, randomReadTokenizer.fileInfo.size);\n        const buffer = this.syncBuffer.subarray(0, chunkLength);\n        await this.tokenizer.readBuffer(buffer, { position: randomReadTokenizer.fileInfo.size - chunkLength });\n        // Search the buffer from end to beginning for EOCD signature\n        // const signature = 0x06054b50;\n        for (let i = buffer.length - 4; i >= 0; i--) {\n            // Compare 4 bytes directly without calling readUInt32LE\n            if (buffer[i] === eocdSignatureBytes[0] &&\n                buffer[i + 1] === eocdSignatureBytes[1] &&\n                buffer[i + 2] === eocdSignatureBytes[2] &&\n                buffer[i + 3] === eocdSignatureBytes[3]) {\n                return randomReadTokenizer.fileInfo.size - chunkLength + i;\n            }\n        }\n        return -1;\n    }\n    async readCentralDirectory() {\n        if (!this.tokenizer.supportsRandomAccess()) {\n            debug('Cannot reading central-directory without random-read support');\n            return;\n        }\n        debug('Reading central-directory...');\n        const pos = this.tokenizer.position;\n        const offset = await this.findEndOfCentralDirectoryLocator();\n        if (offset > 0) {\n            debug('Central-directory 32-bit signature found');\n            const eocdHeader = await this.tokenizer.readToken(EndOfCentralDirectoryRecordToken, offset);\n            const files = [];\n            this.tokenizer.setPosition(eocdHeader.offsetOfStartOfCd);\n            for (let n = 0; n < eocdHeader.nrOfEntriesOfSize; ++n) {\n                const entry = await this.tokenizer.readToken(FileHeader);\n                if (entry.signature !== Signature.CentralFileHeader) {\n                    throw new Error('Expected Central-File-Header signature');\n                }\n                entry.filename = await this.tokenizer.readToken(new StringType(entry.filenameLength, 'utf-8'));\n                await this.tokenizer.ignore(entry.extraFieldLength);\n                await this.tokenizer.ignore(entry.fileCommentLength);\n                files.push(entry);\n                debug(`Add central-directory file-entry: n=${n + 1}/${files.length}: filename=${files[n].filename}`);\n            }\n            this.tokenizer.setPosition(pos);\n            return files;\n        }\n        this.tokenizer.setPosition(pos);\n    }\n    async unzip(fileCb) {\n        const entries = await this.readCentralDirectory();\n        if (entries) {\n            // Use Central Directory to iterate over files\n            return this.iterateOverCentralDirectory(entries, fileCb);\n        }\n        // Scan Zip files for local-file-header\n        let stop = false;\n        do {\n            const zipHeader = await this.readLocalFileHeader();\n            if (!zipHeader)\n                break;\n            const next = fileCb(zipHeader);\n            stop = !!next.stop;\n            let fileData = undefined;\n            await this.tokenizer.ignore(zipHeader.extraFieldLength);\n            if (zipHeader.dataDescriptor && zipHeader.compressedSize === 0) {\n                const chunks = [];\n                let len = syncBufferSize;\n                debug('Compressed-file-size unknown, scanning for next data-descriptor-signature....');\n                let nextHeaderIndex = -1;\n                while (nextHeaderIndex < 0 && len === syncBufferSize) {\n                    len = await this.tokenizer.peekBuffer(this.syncBuffer, { mayBeLess: true });\n                    nextHeaderIndex = indexOf(this.syncBuffer.subarray(0, len), ddSignatureArray);\n                    const size = nextHeaderIndex >= 0 ? nextHeaderIndex : len;\n                    if (next.handler) {\n                        const data = new Uint8Array(size);\n                        await this.tokenizer.readBuffer(data);\n                        chunks.push(data);\n                    }\n                    else {\n                        // Move position to the next header if found, skip the whole buffer otherwise\n                        await this.tokenizer.ignore(size);\n                    }\n                }\n                debug(`Found data-descriptor-signature at pos=${this.tokenizer.position}`);\n                if (next.handler) {\n                    await this.inflate(zipHeader, mergeArrays(chunks), next.handler);\n                }\n            }\n            else {\n                if (next.handler) {\n                    debug(`Reading compressed-file-data: ${zipHeader.compressedSize} bytes`);\n                    fileData = new Uint8Array(zipHeader.compressedSize);\n                    await this.tokenizer.readBuffer(fileData);\n                    await this.inflate(zipHeader, fileData, next.handler);\n                }\n                else {\n                    debug(`Ignoring compressed-file-data: ${zipHeader.compressedSize} bytes`);\n                    await this.tokenizer.ignore(zipHeader.compressedSize);\n                }\n            }\n            debug(`Reading data-descriptor at pos=${this.tokenizer.position}`);\n            if (zipHeader.dataDescriptor) {\n                // await this.tokenizer.ignore(DataDescriptor.len);\n                const dataDescriptor = await this.tokenizer.readToken(DataDescriptor);\n                if (dataDescriptor.signature !== 0x08074b50) {\n                    throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position - DataDescriptor.len}`);\n                }\n            }\n        } while (!stop);\n    }\n    async iterateOverCentralDirectory(entries, fileCb) {\n        for (const fileHeader of entries) {\n            const next = fileCb(fileHeader);\n            if (next.handler) {\n                this.tokenizer.setPosition(fileHeader.relativeOffsetOfLocalHeader);\n                const zipHeader = await this.readLocalFileHeader();\n                if (zipHeader) {\n                    await this.tokenizer.ignore(zipHeader.extraFieldLength);\n                    const fileData = new Uint8Array(fileHeader.compressedSize);\n                    await this.tokenizer.readBuffer(fileData);\n                    await this.inflate(zipHeader, fileData, next.handler);\n                }\n            }\n            if (next.stop)\n                break;\n        }\n    }\n    inflate(zipHeader, fileData, cb) {\n        if (zipHeader.compressedMethod === 0) {\n            return cb(fileData);\n        }\n        debug(`Decompress filename=${zipHeader.filename}, compressed-size=${fileData.length}`);\n        const uncompressedData = decompressSync(fileData);\n        return cb(uncompressedData);\n    }\n    async readLocalFileHeader() {\n        const signature = await this.tokenizer.peekToken(UINT32_LE);\n        if (signature === Signature.LocalFileHeader) {\n            const header = await this.tokenizer.readToken(LocalFileHeaderToken);\n            header.filename = await this.tokenizer.readToken(new StringType(header.filenameLength, 'utf-8'));\n            return header;\n        }\n        if (signature === Signature.CentralFileHeader) {\n            return false;\n        }\n        if (signature === 0xE011CFD0) {\n            throw new Error('Encrypted ZIP');\n        }\n        throw new Error('Unexpected signature');\n    }\n}\nfunction indexOf(buffer, portion) {\n    const bufferLength = buffer.length;\n    const portionLength = portion.length;\n    // Return -1 if the portion is longer than the buffer\n    if (portionLength > bufferLength)\n        return -1;\n    // Search for the portion in the buffer\n    for (let i = 0; i <= bufferLength - portionLength; i++) {\n        let found = true;\n        for (let j = 0; j < portionLength; j++) {\n            if (buffer[i + j] !== portion[j]) {\n                found = false;\n                break;\n            }\n        }\n        if (found) {\n            return i; // Return the starting offset\n        }\n    }\n    return -1; // Not found\n}\nfunction mergeArrays(chunks) {\n    // Concatenate chunks into a single Uint8Array\n    const totalLength = chunks.reduce((acc, curr) => acc + curr.length, 0);\n    const mergedArray = new Uint8Array(totalLength);\n    let offset = 0;\n    for (const chunk of chunks) {\n        mergedArray.set(chunk, offset);\n        offset += chunk.length;\n    }\n    return mergedArray;\n}\n", "/**\n * Ref https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT\n */\nimport { UINT16_LE, UINT32_LE } from \"token-types\";\nexport const Signature = {\n    LocalFileHeader: 0x04034b50,\n    DataDescriptor: 0x08074b50,\n    CentralFileHeader: 0x02014b50,\n    EndOfCentralDirectory: 0x06054b50\n};\nexport const DataDescriptor = {\n    get(array) {\n        const flags = UINT16_LE.get(array, 6);\n        return {\n            signature: UINT32_LE.get(array, 0),\n            compressedSize: UINT32_LE.get(array, 8),\n            uncompressedSize: UINT32_LE.get(array, 12),\n        };\n    }, len: 16\n};\n/**\n * First part of the ZIP Local File Header\n * Offset | Bytes| Description\n * -------|------+-------------------------------------------------------------------\n *      0 |    4 | Signature (0x04034b50)\n *      4 |    2 | Minimum version needed to extract\n *      6 |    2 | Bit flag\n *      8 |    2 | Compression method\n *     10 |    2 | File last modification time (MS-DOS format)\n *     12 |    2 | File last modification date (MS-DOS format)\n *     14 |    4 | CRC-32 of uncompressed data\n *     18 |    4 | Compressed size\n *     22 |    4 | Uncompressed size\n *     26 |    2 | File name length (n)\n *     28 |    2 | Extra field length (m)\n *     30 |    n | File name\n * 30 + n |    m | Extra field\n */\nexport const LocalFileHeaderToken = {\n    get(array) {\n        const flags = UINT16_LE.get(array, 6);\n        return {\n            signature: UINT32_LE.get(array, 0),\n            minVersion: UINT16_LE.get(array, 4),\n            dataDescriptor: !!(flags & 0x0008),\n            compressedMethod: UINT16_LE.get(array, 8),\n            compressedSize: UINT32_LE.get(array, 18),\n            uncompressedSize: UINT32_LE.get(array, 22),\n            filenameLength: UINT16_LE.get(array, 26),\n            extraFieldLength: UINT16_LE.get(array, 28),\n            filename: null\n        };\n    }, len: 30\n};\n/**\n * 4.3.16  End of central directory record:\n *  end of central dir signature (0x06064b50)                                      4 bytes\n *  number of this disk                                                            2 bytes\n *  number of the disk with the start of the central directory                     2 bytes\n *  total number of entries in the central directory on this disk                  2 bytes\n *  total number of entries in the size of the central directory                   2 bytes\n *  sizeOfTheCentralDirectory                                                      4 bytes\n *  offset of start of central directory with respect to the starting disk number  4 bytes\n *  .ZIP file comment length                                                       2 bytes\n *  .ZIP file comment       (variable size)\n */\nexport const EndOfCentralDirectoryRecordToken = {\n    get(array) {\n        return {\n            signature: UINT32_LE.get(array, 0),\n            nrOfThisDisk: UINT16_LE.get(array, 4),\n            nrOfThisDiskWithTheStart: UINT16_LE.get(array, 6),\n            nrOfEntriesOnThisDisk: UINT16_LE.get(array, 8),\n            nrOfEntriesOfSize: UINT16_LE.get(array, 10),\n            sizeOfCd: UINT32_LE.get(array, 12),\n            offsetOfStartOfCd: UINT32_LE.get(array, 16),\n            zipFileCommentLength: UINT16_LE.get(array, 20),\n        };\n    }, len: 22\n};\n/**\n * File header:\n *    central file header signature   4 bytes   0 (0x02014b50)\n *    version made by                 2 bytes   4\n *    version needed to extract       2 bytes   6\n *    general purpose bit flag        2 bytes   8\n *    compression method              2 bytes  10\n *    last mod file time              2 bytes  12\n *    last mod file date              2 bytes  14\n *    crc-32                          4 bytes  16\n *    compressed size                 4 bytes  20\n *    uncompressed size               4 bytes  24\n *    file name length                2 bytes  28\n *    extra field length              2 bytes  30\n *    file comment length             2 bytes  32\n *    disk number start               2 bytes  34\n *    internal file attributes        2 bytes  36\n *    external file attributes        4 bytes  38\n *    relative offset of local header 4 bytes  42\n */\nexport const FileHeader = {\n    get(array) {\n        const flags = UINT16_LE.get(array, 8);\n        return {\n            signature: UINT32_LE.get(array, 0),\n            minVersion: UINT16_LE.get(array, 6),\n            dataDescriptor: !!(flags & 0x0008),\n            compressedMethod: UINT16_LE.get(array, 10),\n            compressedSize: UINT32_LE.get(array, 20),\n            uncompressedSize: UINT32_LE.get(array, 24),\n            filenameLength: UINT16_LE.get(array, 28),\n            extraFieldLength: UINT16_LE.get(array, 30),\n            fileCommentLength: UINT16_LE.get(array, 32),\n            relativeOffsetOfLocalHeader: UINT32_LE.get(array, 42),\n            filename: null\n        };\n    }, len: 46\n};\n", "const objectToString = Object.prototype.toString;\nconst uint8ArrayStringified = '[object Uint8Array]';\nconst arrayBufferStringified = '[object ArrayBuffer]';\n\nfunction isType(value, typeConstructor, typeStringified) {\n\tif (!value) {\n\t\treturn false;\n\t}\n\n\tif (value.constructor === typeConstructor) {\n\t\treturn true;\n\t}\n\n\treturn objectToString.call(value) === typeStringified;\n}\n\nexport function isUint8Array(value) {\n\treturn isType(value, Uint8Array, uint8ArrayStringified);\n}\n\nfunction isArrayBuffer(value) {\n\treturn isType(value, ArrayBuffer, arrayBufferStringified);\n}\n\nfunction isUint8ArrayOrArrayBuffer(value) {\n\treturn isUint8Array(value) || isArrayBuffer(value);\n}\n\nexport function assertUint8Array(value) {\n\tif (!isUint8Array(value)) {\n\t\tthrow new TypeError(`Expected \\`Uint8Array\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nexport function assertUint8ArrayOrArrayBuffer(value) {\n\tif (!isUint8ArrayOrArrayBuffer(value)) {\n\t\tthrow new TypeError(`Expected \\`Uint8Array\\` or \\`ArrayBuffer\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nexport function toUint8Array(value) {\n\tif (value instanceof ArrayBuffer) {\n\t\treturn new Uint8Array(value);\n\t}\n\n\tif (ArrayBuffer.isView(value)) {\n\t\treturn new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n\t}\n\n\tthrow new TypeError(`Unsupported value, got \\`${typeof value}\\`.`);\n}\n\nexport function concatUint8Arrays(arrays, totalLength) {\n\tif (arrays.length === 0) {\n\t\treturn new Uint8Array(0);\n\t}\n\n\ttotalLength ??= arrays.reduce((accumulator, currentValue) => accumulator + currentValue.length, 0);\n\n\tconst returnValue = new Uint8Array(totalLength);\n\n\tlet offset = 0;\n\tfor (const array of arrays) {\n\t\tassertUint8Array(array);\n\t\treturnValue.set(array, offset);\n\t\toffset += array.length;\n\t}\n\n\treturn returnValue;\n}\n\nexport function areUint8ArraysEqual(a, b) {\n\tassertUint8Array(a);\n\tassertUint8Array(b);\n\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\t// eslint-disable-next-line unicorn/no-for-loop\n\tfor (let index = 0; index < a.length; index++) {\n\t\tif (a[index] !== b[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport function compareUint8Arrays(a, b) {\n\tassertUint8Array(a);\n\tassertUint8Array(b);\n\n\tconst length = Math.min(a.length, b.length);\n\n\tfor (let index = 0; index < length; index++) {\n\t\tconst diff = a[index] - b[index];\n\t\tif (diff !== 0) {\n\t\t\treturn Math.sign(diff);\n\t\t}\n\t}\n\n\t// At this point, all the compared elements are equal.\n\t// The shorter array should come first if the arrays are of different lengths.\n\treturn Math.sign(a.length - b.length);\n}\n\nconst cachedDecoders = {\n\tutf8: new globalThis.TextDecoder('utf8'),\n};\n\nexport function uint8ArrayToString(array, encoding = 'utf8') {\n\tassertUint8ArrayOrArrayBuffer(array);\n\tcachedDecoders[encoding] ??= new globalThis.TextDecoder(encoding);\n\treturn cachedDecoders[encoding].decode(array);\n}\n\nfunction assertString(value) {\n\tif (typeof value !== 'string') {\n\t\tthrow new TypeError(`Expected \\`string\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nconst cachedEncoder = new globalThis.TextEncoder();\n\nexport function stringToUint8Array(string) {\n\tassertString(string);\n\treturn cachedEncoder.encode(string);\n}\n\nfunction base64ToBase64Url(base64) {\n\treturn base64.replaceAll('+', '-').replaceAll('/', '_').replace(/=+$/, '');\n}\n\nfunction base64UrlToBase64(base64url) {\n\treturn base64url.replaceAll('-', '+').replaceAll('_', '/');\n}\n\n// Reference: https://phuoc.ng/collection/this-vs-that/concat-vs-push/\nconst MAX_BLOCK_SIZE = 65_535;\n\nexport function uint8ArrayToBase64(array, {urlSafe = false} = {}) {\n\tassertUint8Array(array);\n\n\tlet base64;\n\n\tif (array.length < MAX_BLOCK_SIZE) {\n\t// Required as `btoa` and `atob` don't properly support Unicode: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n\t\tbase64 = globalThis.btoa(String.fromCodePoint.apply(this, array));\n\t} else {\n\t\tbase64 = '';\n\t\tfor (const value of array) {\n\t\t\tbase64 += String.fromCodePoint(value);\n\t\t}\n\n\t\tbase64 = globalThis.btoa(base64);\n\t}\n\n\treturn urlSafe ? base64ToBase64Url(base64) : base64;\n}\n\nexport function base64ToUint8Array(base64String) {\n\tassertString(base64String);\n\treturn Uint8Array.from(globalThis.atob(base64UrlToBase64(base64String)), x => x.codePointAt(0));\n}\n\nexport function stringToBase64(string, {urlSafe = false} = {}) {\n\tassertString(string);\n\treturn uint8ArrayToBase64(stringToUint8Array(string), {urlSafe});\n}\n\nexport function base64ToString(base64String) {\n\tassertString(base64String);\n\treturn uint8ArrayToString(base64ToUint8Array(base64String));\n}\n\nconst byteToHexLookupTable = Array.from({length: 256}, (_, index) => index.toString(16).padStart(2, '0'));\n\nexport function uint8ArrayToHex(array) {\n\tassertUint8Array(array);\n\n\t// Concatenating a string is faster than using an array.\n\tlet hexString = '';\n\n\t// eslint-disable-next-line unicorn/no-for-loop -- Max performance is critical.\n\tfor (let index = 0; index < array.length; index++) {\n\t\thexString += byteToHexLookupTable[array[index]];\n\t}\n\n\treturn hexString;\n}\n\nconst hexToDecimalLookupTable = {\n\t0: 0,\n\t1: 1,\n\t2: 2,\n\t3: 3,\n\t4: 4,\n\t5: 5,\n\t6: 6,\n\t7: 7,\n\t8: 8,\n\t9: 9,\n\ta: 10,\n\tb: 11,\n\tc: 12,\n\td: 13,\n\te: 14,\n\tf: 15,\n\tA: 10,\n\tB: 11,\n\tC: 12,\n\tD: 13,\n\tE: 14,\n\tF: 15,\n};\n\nexport function hexToUint8Array(hexString) {\n\tassertString(hexString);\n\n\tif (hexString.length % 2 !== 0) {\n\t\tthrow new Error('Invalid Hex string length.');\n\t}\n\n\tconst resultLength = hexString.length / 2;\n\tconst bytes = new Uint8Array(resultLength);\n\n\tfor (let index = 0; index < resultLength; index++) {\n\t\tconst highNibble = hexToDecimalLookupTable[hexString[index * 2]];\n\t\tconst lowNibble = hexToDecimalLookupTable[hexString[(index * 2) + 1]];\n\n\t\tif (highNibble === undefined || lowNibble === undefined) {\n\t\t\tthrow new Error(`Invalid Hex character encountered at position ${index * 2}`);\n\t\t}\n\n\t\tbytes[index] = (highNibble << 4) | lowNibble; // eslint-disable-line no-bitwise\n\t}\n\n\treturn bytes;\n}\n\n/**\n@param {DataView} view\n@returns {number}\n*/\nexport function getUintBE(view) {\n\tconst {byteLength} = view;\n\n\tif (byteLength === 6) {\n\t\treturn (view.getUint16(0) * (2 ** 32)) + view.getUint32(2);\n\t}\n\n\tif (byteLength === 5) {\n\t\treturn (view.getUint8(0) * (2 ** 32)) + view.getUint32(1);\n\t}\n\n\tif (byteLength === 4) {\n\t\treturn view.getUint32(0);\n\t}\n\n\tif (byteLength === 3) {\n\t\treturn (view.getUint8(0) * (2 ** 16)) + view.getUint16(1);\n\t}\n\n\tif (byteLength === 2) {\n\t\treturn view.getUint16(0);\n\t}\n\n\tif (byteLength === 1) {\n\t\treturn view.getUint8(0);\n\t}\n}\n\n/**\n@param {Uint8Array} array\n@param {Uint8Array} value\n@returns {number}\n*/\nexport function indexOf(array, value) {\n\tconst arrayLength = array.length;\n\tconst valueLength = value.length;\n\n\tif (valueLength === 0) {\n\t\treturn -1;\n\t}\n\n\tif (valueLength > arrayLength) {\n\t\treturn -1;\n\t}\n\n\tconst validOffsetLength = arrayLength - valueLength;\n\n\tfor (let index = 0; index <= validOffsetLength; index++) {\n\t\tlet isMatch = true;\n\t\tfor (let index2 = 0; index2 < valueLength; index2++) {\n\t\t\tif (array[index + index2] !== value[index2]) {\n\t\t\t\tisMatch = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (isMatch) {\n\t\t\treturn index;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n@param {Uint8Array} array\n@param {Uint8Array} value\n@returns {boolean}\n*/\nexport function includes(array, value) {\n\treturn indexOf(array, value) !== -1;\n}\n", "import {StringType} from 'token-types';\n\nexport function stringToBytes(string) {\n\treturn [...string].map(character => character.charCodeAt(0)); // eslint-disable-line unicorn/prefer-code-point\n}\n\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Uint8Array} arrayBuffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nexport function tarHeaderChecksumMatches(arrayBuffer, offset = 0) {\n\tconst readSum = Number.parseInt(new StringType(6).get(arrayBuffer, 148).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (Number.isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tlet sum = 8 * 0x20; // Initialize signed bit sum\n\n\tfor (let index = offset; index < offset + 148; index++) {\n\t\tsum += arrayBuffer[index];\n\t}\n\n\tfor (let index = offset + 156; index < offset + 512; index++) {\n\t\tsum += arrayBuffer[index];\n\t}\n\n\treturn readSum === sum;\n}\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexport const uint32SyncSafeToken = {\n\tget: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n\tlen: 4,\n};\n", "export const extensions = [\n\t'jpg',\n\t'png',\n\t'apng',\n\t'gif',\n\t'webp',\n\t'flif',\n\t'xcf',\n\t'cr2',\n\t'cr3',\n\t'orf',\n\t'arw',\n\t'dng',\n\t'nef',\n\t'rw2',\n\t'raf',\n\t'tif',\n\t'bmp',\n\t'icns',\n\t'jxr',\n\t'psd',\n\t'indd',\n\t'zip',\n\t'tar',\n\t'rar',\n\t'gz',\n\t'bz2',\n\t'7z',\n\t'dmg',\n\t'mp4',\n\t'mid',\n\t'mkv',\n\t'webm',\n\t'mov',\n\t'avi',\n\t'mpg',\n\t'mp2',\n\t'mp3',\n\t'm4a',\n\t'oga',\n\t'ogg',\n\t'ogv',\n\t'opus',\n\t'flac',\n\t'wav',\n\t'spx',\n\t'amr',\n\t'pdf',\n\t'epub',\n\t'elf',\n\t'macho',\n\t'exe',\n\t'swf',\n\t'rtf',\n\t'wasm',\n\t'woff',\n\t'woff2',\n\t'eot',\n\t'ttf',\n\t'otf',\n\t'ttc',\n\t'ico',\n\t'flv',\n\t'ps',\n\t'xz',\n\t'sqlite',\n\t'nes',\n\t'crx',\n\t'xpi',\n\t'cab',\n\t'deb',\n\t'ar',\n\t'rpm',\n\t'Z',\n\t'lz',\n\t'cfb',\n\t'mxf',\n\t'mts',\n\t'blend',\n\t'bpg',\n\t'docx',\n\t'pptx',\n\t'xlsx',\n\t'3gp',\n\t'3g2',\n\t'j2c',\n\t'jp2',\n\t'jpm',\n\t'jpx',\n\t'mj2',\n\t'aif',\n\t'qcp',\n\t'odt',\n\t'ods',\n\t'odp',\n\t'xml',\n\t'mobi',\n\t'heic',\n\t'cur',\n\t'ktx',\n\t'ape',\n\t'wv',\n\t'dcm',\n\t'ics',\n\t'glb',\n\t'pcap',\n\t'dsf',\n\t'lnk',\n\t'alias',\n\t'voc',\n\t'ac3',\n\t'm4v',\n\t'm4p',\n\t'm4b',\n\t'f4v',\n\t'f4p',\n\t'f4b',\n\t'f4a',\n\t'mie',\n\t'asf',\n\t'ogm',\n\t'ogx',\n\t'mpc',\n\t'arrow',\n\t'shp',\n\t'aac',\n\t'mp1',\n\t'it',\n\t's3m',\n\t'xm',\n\t'skp',\n\t'avif',\n\t'eps',\n\t'lzh',\n\t'pgp',\n\t'asar',\n\t'stl',\n\t'chm',\n\t'3mf',\n\t'zst',\n\t'jxl',\n\t'vcf',\n\t'jls',\n\t'pst',\n\t'dwg',\n\t'parquet',\n\t'class',\n\t'arj',\n\t'cpio',\n\t'ace',\n\t'avro',\n\t'icc',\n\t'fbx',\n\t'vsdx',\n\t'vtt',\n\t'apk',\n\t'drc',\n\t'lz4',\n\t'potx',\n\t'xltx',\n\t'dotx',\n\t'xltm',\n\t'ott',\n\t'ots',\n\t'otp',\n\t'odg',\n\t'otg',\n\t'xlsm',\n\t'docm',\n\t'dotm',\n\t'potm',\n\t'pptm',\n\t'jar',\n\t'rm',\n\t'ppsm',\n\t'ppsx',\n];\n\nexport const mimeTypes = [\n\t'image/jpeg',\n\t'image/png',\n\t'image/gif',\n\t'image/webp',\n\t'image/flif',\n\t'image/x-xcf',\n\t'image/x-canon-cr2',\n\t'image/x-canon-cr3',\n\t'image/tiff',\n\t'image/bmp',\n\t'image/vnd.ms-photo',\n\t'image/vnd.adobe.photoshop',\n\t'application/x-indesign',\n\t'application/epub+zip',\n\t'application/x-xpinstall',\n\t'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n\t'application/vnd.oasis.opendocument.text',\n\t'application/vnd.oasis.opendocument.spreadsheet',\n\t'application/vnd.oasis.opendocument.presentation',\n\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n\t'application/zip',\n\t'application/x-tar',\n\t'application/x-rar-compressed',\n\t'application/gzip',\n\t'application/x-bzip2',\n\t'application/x-7z-compressed',\n\t'application/x-apple-diskimage',\n\t'application/vnd.apache.arrow.file',\n\t'video/mp4',\n\t'audio/midi',\n\t'video/matroska',\n\t'video/webm',\n\t'video/quicktime',\n\t'video/vnd.avi',\n\t'audio/wav',\n\t'audio/qcelp',\n\t'audio/x-ms-asf',\n\t'video/x-ms-asf',\n\t'application/vnd.ms-asf',\n\t'video/mpeg',\n\t'video/3gpp',\n\t'audio/mpeg',\n\t'audio/mp4', // RFC 4337\n\t'video/ogg',\n\t'audio/ogg',\n\t'audio/ogg; codecs=opus',\n\t'application/ogg',\n\t'audio/flac',\n\t'audio/ape',\n\t'audio/wavpack',\n\t'audio/amr',\n\t'application/pdf',\n\t'application/x-elf',\n\t'application/x-mach-binary',\n\t'application/x-msdownload',\n\t'application/x-shockwave-flash',\n\t'application/rtf',\n\t'application/wasm',\n\t'font/woff',\n\t'font/woff2',\n\t'application/vnd.ms-fontobject',\n\t'font/ttf',\n\t'font/otf',\n\t'font/collection',\n\t'image/x-icon',\n\t'video/x-flv',\n\t'application/postscript',\n\t'application/eps',\n\t'application/x-xz',\n\t'application/x-sqlite3',\n\t'application/x-nintendo-nes-rom',\n\t'application/x-google-chrome-extension',\n\t'application/vnd.ms-cab-compressed',\n\t'application/x-deb',\n\t'application/x-unix-archive',\n\t'application/x-rpm',\n\t'application/x-compress',\n\t'application/x-lzip',\n\t'application/x-cfb',\n\t'application/x-mie',\n\t'application/mxf',\n\t'video/mp2t',\n\t'application/x-blender',\n\t'image/bpg',\n\t'image/j2c',\n\t'image/jp2',\n\t'image/jpx',\n\t'image/jpm',\n\t'image/mj2',\n\t'audio/aiff',\n\t'application/xml',\n\t'application/x-mobipocket-ebook',\n\t'image/heif',\n\t'image/heif-sequence',\n\t'image/heic',\n\t'image/heic-sequence',\n\t'image/icns',\n\t'image/ktx',\n\t'application/dicom',\n\t'audio/x-musepack',\n\t'text/calendar',\n\t'text/vcard',\n\t'text/vtt',\n\t'model/gltf-binary',\n\t'application/vnd.tcpdump.pcap',\n\t'audio/x-dsf', // Non-standard\n\t'application/x.ms.shortcut', // Invented by us\n\t'application/x.apple.alias', // Invented by us\n\t'audio/x-voc',\n\t'audio/vnd.dolby.dd-raw',\n\t'audio/x-m4a',\n\t'image/apng',\n\t'image/x-olympus-orf',\n\t'image/x-sony-arw',\n\t'image/x-adobe-dng',\n\t'image/x-nikon-nef',\n\t'image/x-panasonic-rw2',\n\t'image/x-fujifilm-raf',\n\t'video/x-m4v',\n\t'video/3gpp2',\n\t'application/x-esri-shape',\n\t'audio/aac',\n\t'audio/x-it',\n\t'audio/x-s3m',\n\t'audio/x-xm',\n\t'video/MP1S',\n\t'video/MP2P',\n\t'application/vnd.sketchup.skp',\n\t'image/avif',\n\t'application/x-lzh-compressed',\n\t'application/pgp-encrypted',\n\t'application/x-asar',\n\t'model/stl',\n\t'application/vnd.ms-htmlhelp',\n\t'model/3mf',\n\t'image/jxl',\n\t'application/zstd',\n\t'image/jls',\n\t'application/vnd.ms-outlook',\n\t'image/vnd.dwg',\n\t'application/vnd.apache.parquet',\n\t'application/java-vm',\n\t'application/x-arj',\n\t'application/x-cpio',\n\t'application/x-ace-compressed',\n\t'application/avro',\n\t'application/vnd.iccprofile',\n\t'application/x.autodesk.fbx', // Invented by us\n\t'application/vnd.visio',\n\t'application/vnd.android.package-archive',\n\t'application/vnd.google.draco', // Invented by us\n\t'application/x-lz4', // Invented by us\n\t'application/vnd.openxmlformats-officedocument.presentationml.template',\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n\t'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n\t'application/vnd.ms-excel.template.macroenabled.12',\n\t'application/vnd.oasis.opendocument.text-template',\n\t'application/vnd.oasis.opendocument.spreadsheet-template',\n\t'application/vnd.oasis.opendocument.presentation-template',\n\t'application/vnd.oasis.opendocument.graphics',\n\t'application/vnd.oasis.opendocument.graphics-template',\n\t'application/vnd.ms-excel.sheet.macroenabled.12',\n\t'application/vnd.ms-word.document.macroenabled.12',\n\t'application/vnd.ms-word.template.macroenabled.12',\n\t'application/vnd.ms-powerpoint.template.macroenabled.12',\n\t'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n\t'application/java-archive',\n\t'application/vnd.rn-realmedia',\n];\n", "/**\nPrimary entry point, Node.js specific entry point is index.js\n*/\n\nimport * as Token from 'token-types';\nimport * as strtok3 from 'strtok3/core';\nimport {ZipHandler} from '@tokenizer/inflate';\nimport {getUintBE} from 'uint8array-extras';\nimport {\n\tstringToBytes,\n\ttarHeaderChecksumMatches,\n\tuint32SyncSafeToken,\n} from './util.js';\nimport {extensions, mimeTypes} from './supported.js';\n\nexport const reasonableDetectionSizeInBytes = 4100; // A fair amount of file-types are detectable within this range.\n\nexport async function fileTypeFromStream(stream, options) {\n\treturn new FileTypeParser(options).fromStream(stream);\n}\n\nexport async function fileTypeFromBuffer(input, options) {\n\treturn new FileTypeParser(options).fromBuffer(input);\n}\n\nexport async function fileTypeFromBlob(blob, options) {\n\treturn new FileTypeParser(options).fromBlob(blob);\n}\n\nfunction getFileTypeFromMimeType(mimeType) {\n\tmimeType = mimeType.toLowerCase();\n\tswitch (mimeType) {\n\t\tcase 'application/epub+zip':\n\t\t\treturn {\n\t\t\t\text: 'epub',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.text':\n\t\t\treturn {\n\t\t\t\text: 'odt',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.text-template':\n\t\t\treturn {\n\t\t\t\text: 'ott',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.spreadsheet':\n\t\t\treturn {\n\t\t\t\text: 'ods',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.spreadsheet-template':\n\t\t\treturn {\n\t\t\t\text: 'ots',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.presentation':\n\t\t\treturn {\n\t\t\t\text: 'odp',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.presentation-template':\n\t\t\treturn {\n\t\t\t\text: 'otp',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.graphics':\n\t\t\treturn {\n\t\t\t\text: 'odg',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.graphics-template':\n\t\t\treturn {\n\t\t\t\text: 'otg',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.slideshow':\n\t\t\treturn {\n\t\t\t\text: 'ppsx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n\t\t\treturn {\n\t\t\t\text: 'xlsx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-excel.sheet.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'xlsm',\n\t\t\t\tmime: 'application/vnd.ms-excel.sheet.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.template':\n\t\t\treturn {\n\t\t\t\text: 'xltx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-excel.template.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'xltm',\n\t\t\t\tmime: 'application/vnd.ms-excel.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.slideshow.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'ppsm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n\t\t\treturn {\n\t\t\t\text: 'docx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-word.document.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'docm',\n\t\t\t\tmime: 'application/vnd.ms-word.document.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.template':\n\t\t\treturn {\n\t\t\t\text: 'dotx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-word.template.macroenabledtemplate':\n\t\t\treturn {\n\t\t\t\text: 'dotm',\n\t\t\t\tmime: 'application/vnd.ms-word.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.template':\n\t\t\treturn {\n\t\t\t\text: 'potx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.template.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'potm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n\t\t\treturn {\n\t\t\t\text: 'pptx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.presentation.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'pptm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.ms-visio.drawing':\n\t\t\treturn {\n\t\t\t\text: 'vsdx',\n\t\t\t\tmime: 'application/vnd.visio',\n\t\t\t};\n\t\tcase 'application/vnd.ms-package.3dmanufacturing-3dmodel+xml':\n\t\t\treturn {\n\t\t\t\text: '3mf',\n\t\t\t\tmime: 'model/3mf',\n\t\t\t};\n\t\tdefault:\n\t}\n}\n\nfunction _check(buffer, headers, options) {\n\toptions = {\n\t\toffset: 0,\n\t\t...options,\n\t};\n\n\tfor (const [index, header] of headers.entries()) {\n\t\t// If a bitmask is set\n\t\tif (options.mask) {\n\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\tif (header !== (options.mask[index] & buffer[index + options.offset])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (header !== buffer[index + options.offset]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport async function fileTypeFromTokenizer(tokenizer, options) {\n\treturn new FileTypeParser(options).fromTokenizer(tokenizer);\n}\n\nexport async function fileTypeStream(webStream, options) {\n\treturn new FileTypeParser(options).toDetectionStream(webStream, options);\n}\n\nexport class FileTypeParser {\n\tconstructor(options) {\n\t\tthis.options = {\n\t\t\tmpegOffsetTolerance: 0,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.detectors = [...(options?.customDetectors ?? []),\n\t\t\t{id: 'core', detect: this.detectConfident},\n\t\t\t{id: 'core.imprecise', detect: this.detectImprecise}];\n\t\tthis.tokenizerOptions = {\n\t\t\tabortSignal: options?.signal,\n\t\t};\n\t}\n\n\tasync fromTokenizer(tokenizer) {\n\t\tconst initialPosition = tokenizer.position;\n\n\t\t// Iterate through all file-type detectors\n\t\tfor (const detector of this.detectors) {\n\t\t\tconst fileType = await detector.detect(tokenizer);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\n\t\t\tif (initialPosition !== tokenizer.position) {\n\t\t\t\treturn undefined; // Cannot proceed scanning of the tokenizer is at an arbitrary position\n\t\t\t}\n\t\t}\n\t}\n\n\tasync fromBuffer(input) {\n\t\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) {\n\t\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t\t}\n\n\t\tconst buffer = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n\t\tif (!(buffer?.length > 1)) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.fromTokenizer(strtok3.fromBuffer(buffer, this.tokenizerOptions));\n\t}\n\n\tasync fromBlob(blob) {\n\t\treturn this.fromStream(blob.stream());\n\t}\n\n\tasync fromStream(stream) {\n\t\tconst tokenizer = await strtok3.fromWebStream(stream, this.tokenizerOptions);\n\t\ttry {\n\t\t\treturn await this.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync toDetectionStream(stream, options) {\n\t\tconst {sampleSize = reasonableDetectionSizeInBytes} = options;\n\t\tlet detectedFileType;\n\t\tlet firstChunk;\n\n\t\tconst reader = stream.getReader({mode: 'byob'});\n\t\ttry {\n\t\t\t// Read the first chunk from the stream\n\t\t\tconst {value: chunk, done} = await reader.read(new Uint8Array(sampleSize));\n\t\t\tfirstChunk = chunk;\n\t\t\tif (!done && chunk) {\n\t\t\t\ttry {\n\t\t\t\t\t// Attempt to detect the file type from the chunk\n\t\t\t\t\tdetectedFileType = await this.fromBuffer(chunk.subarray(0, sampleSize));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\t\tthrow error; // Re-throw non-EndOfStreamError\n\t\t\t\t\t}\n\n\t\t\t\t\tdetectedFileType = undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfirstChunk = chunk;\n\t\t} finally {\n\t\t\treader.releaseLock(); // Ensure the reader is released\n\t\t}\n\n\t\t// Create a new ReadableStream to manage locking issues\n\t\tconst transformStream = new TransformStream({\n\t\t\tasync start(controller) {\n\t\t\t\tcontroller.enqueue(firstChunk); // Enqueue the initial chunk\n\t\t\t},\n\t\t\ttransform(chunk, controller) {\n\t\t\t\t// Pass through the chunks without modification\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t});\n\n\t\tconst newStream = stream.pipeThrough(transformStream);\n\t\tnewStream.fileType = detectedFileType;\n\n\t\treturn newStream;\n\t}\n\n\tcheck(header, options) {\n\t\treturn _check(this.buffer, header, options);\n\t}\n\n\tcheckString(header, options) {\n\t\treturn this.check(stringToBytes(header), options);\n\t}\n\n\t// Detections with a high degree of certainty in identifying the correct file type\n\tdetectConfident = async tokenizer => {\n\t\tthis.buffer = new Uint8Array(reasonableDetectionSizeInBytes);\n\n\t\t// Keep reading until EOF if the file size is unknown.\n\t\tif (tokenizer.fileInfo.size === undefined) {\n\t\t\ttokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n\t\t}\n\n\t\tthis.tokenizer = tokenizer;\n\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: 12, mayBeLess: true});\n\n\t\t// -- 2-byte signatures --\n\n\t\tif (this.check([0x42, 0x4D])) {\n\t\t\treturn {\n\t\t\t\text: 'bmp',\n\t\t\t\tmime: 'image/bmp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x0B, 0x77])) {\n\t\t\treturn {\n\t\t\t\text: 'ac3',\n\t\t\t\tmime: 'audio/vnd.dolby.dd-raw',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x78, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'dmg',\n\t\t\t\tmime: 'application/x-apple-diskimage',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4D, 0x5A])) {\n\t\t\treturn {\n\t\t\t\text: 'exe',\n\t\t\t\tmime: 'application/x-msdownload',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x25, 0x21])) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 24, mayBeLess: true});\n\n\t\t\tif (\n\t\t\t\tthis.checkString('PS-Adobe-', {offset: 2})\n\t\t\t\t&& this.checkString(' EPSF-', {offset: 14})\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'eps',\n\t\t\t\t\tmime: 'application/eps',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ps',\n\t\t\t\tmime: 'application/postscript',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x1F, 0xA0])\n\t\t\t|| this.check([0x1F, 0x9D])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'Z',\n\t\t\t\tmime: 'application/x-compress',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC7, 0x71])) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x60, 0xEA])) {\n\t\t\treturn {\n\t\t\t\text: 'arj',\n\t\t\t\tmime: 'application/x-arj',\n\t\t\t};\n\t\t}\n\n\t\t// -- 3-byte signatures --\n\n\t\tif (this.check([0xEF, 0xBB, 0xBF])) { // UTF-8-BOM\n\t\t\t// Strip off UTF-8-BOM\n\t\t\tthis.tokenizer.ignore(3);\n\t\t\treturn this.detectConfident(tokenizer);\n\t\t}\n\n\t\tif (this.check([0x47, 0x49, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'gif',\n\t\t\t\tmime: 'image/gif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0xBC])) {\n\t\t\treturn {\n\t\t\t\text: 'jxr',\n\t\t\t\tmime: 'image/vnd.ms-photo',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x1F, 0x8B, 0x8])) {\n\t\t\treturn {\n\t\t\t\text: 'gz',\n\t\t\t\tmime: 'application/gzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x5A, 0x68])) {\n\t\t\treturn {\n\t\t\t\text: 'bz2',\n\t\t\t\tmime: 'application/x-bzip2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ID3')) {\n\t\t\tawait tokenizer.ignore(6); // Skip ID3 header until the header size\n\t\t\tconst id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);\n\t\t\tif (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {\n\t\t\t\t// Guess file type based on ID3 header for backward compatibility\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(id3HeaderLength);\n\t\t\treturn this.fromTokenizer(tokenizer); // Skip ID3 header, recursion\n\t\t}\n\n\t\t// Musepack, SV7\n\t\tif (this.checkString('MP+')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\t(this.buffer[0] === 0x43 || this.buffer[0] === 0x46)\n\t\t\t&& this.check([0x57, 0x53], {offset: 1})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'swf',\n\t\t\t\tmime: 'application/x-shockwave-flash',\n\t\t\t};\n\t\t}\n\n\t\t// -- 4-byte signatures --\n\n\t\t// Requires a sample size of 4 bytes\n\t\tif (this.check([0xFF, 0xD8, 0xFF])) {\n\t\t\tif (this.check([0xF7], {offset: 3})) { // JPG7/SOF55, indicating a ISO/IEC 14495 / JPEG-LS file\n\t\t\t\treturn {\n\t\t\t\t\text: 'jls',\n\t\t\t\t\tmime: 'image/jls',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'jpg',\n\t\t\t\tmime: 'image/jpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4F, 0x62, 0x6A, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'avro',\n\t\t\t\tmime: 'application/avro',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FLIF')) {\n\t\t\treturn {\n\t\t\t\text: 'flif',\n\t\t\t\tmime: 'image/flif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('8BPS')) {\n\t\t\treturn {\n\t\t\t\text: 'psd',\n\t\t\t\tmime: 'image/vnd.adobe.photoshop',\n\t\t\t};\n\t\t}\n\n\t\t// Musepack, SV8\n\t\tif (this.checkString('MPCK')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FORM')) {\n\t\t\treturn {\n\t\t\t\text: 'aif',\n\t\t\t\tmime: 'audio/aiff',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('icns', {offset: 0})) {\n\t\t\treturn {\n\t\t\t\text: 'icns',\n\t\t\t\tmime: 'image/icns',\n\t\t\t};\n\t\t}\n\n\t\t// Zip-based file formats\n\t\t// Need to be before the `zip` check\n\t\tif (this.check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature\n\t\t\tlet fileType;\n\t\t\tawait new ZipHandler(tokenizer).unzip(zipHeader => {\n\t\t\t\tswitch (zipHeader.filename) {\n\t\t\t\t\tcase 'META-INF/mozilla.rsa':\n\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\text: 'xpi',\n\t\t\t\t\t\t\tmime: 'application/x-xpinstall',\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'META-INF/MANIFEST.MF':\n\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\text: 'jar',\n\t\t\t\t\t\t\tmime: 'application/java-archive',\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'mimetype':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tasync handler(fileData) {\n\t\t\t\t\t\t\t\t// Use TextDecoder to decode the UTF-8 encoded data\n\t\t\t\t\t\t\t\tconst mimeType = new TextDecoder('utf-8').decode(fileData).trim();\n\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase '[Content_Types].xml':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tasync handler(fileData) {\n\t\t\t\t\t\t\t\t// Use TextDecoder to decode the UTF-8 encoded data\n\t\t\t\t\t\t\t\tlet xmlContent = new TextDecoder('utf-8').decode(fileData);\n\t\t\t\t\t\t\t\tconst endPos = xmlContent.indexOf('.main+xml\"');\n\t\t\t\t\t\t\t\tif (endPos === -1) {\n\t\t\t\t\t\t\t\t\tconst mimeType = 'application/vnd.ms-package.3dmanufacturing-3dmodel+xml';\n\t\t\t\t\t\t\t\t\tif (xmlContent.includes(`ContentType=\"${mimeType}\"`)) {\n\t\t\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\txmlContent = xmlContent.slice(0, Math.max(0, endPos));\n\t\t\t\t\t\t\t\t\tconst firstPos = xmlContent.lastIndexOf('\"');\n\t\t\t\t\t\t\t\t\tconst mimeType = xmlContent.slice(Math.max(0, firstPos + 1));\n\t\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (/classes\\d*\\.dex/.test(zipHeader.filename)) {\n\t\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\t\text: 'apk',\n\t\t\t\t\t\t\t\tmime: 'application/vnd.android.package-archive',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn {stop: true};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {};\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn fileType ?? {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('OggS')) {\n\t\t\t// This is an OGG container\n\t\t\tawait tokenizer.ignore(28);\n\t\t\tconst type = new Uint8Array(8);\n\t\t\tawait tokenizer.readBuffer(type);\n\n\t\t\t// Needs to be before `ogg` check\n\t\t\tif (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'opus',\n\t\t\t\t\tmime: 'audio/ogg; codecs=opus',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' theora' in header.\n\t\t\tif (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogv',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01video' in header.\n\t\t\tif (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogm',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' FLAC' in header  https://xiph.org/flac/faq.html\n\t\t\tif (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'oga',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// 'Speex  ' in header https://en.wikipedia.org/wiki/Speex\n\t\t\tif (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'spx',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01vorbis' in header\n\t\t\tif (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogg',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\t\treturn {\n\t\t\t\text: 'ogx',\n\t\t\t\tmime: 'application/ogg',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x50, 0x4B])\n\t\t\t&& (this.buffer[2] === 0x3 || this.buffer[2] === 0x5 || this.buffer[2] === 0x7)\n\t\t\t&& (this.buffer[3] === 0x4 || this.buffer[3] === 0x6 || this.buffer[3] === 0x8)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('MThd')) {\n\t\t\treturn {\n\t\t\t\text: 'mid',\n\t\t\t\tmime: 'audio/midi',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOFF')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff',\n\t\t\t\tmime: 'font/woff',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOF2')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff2',\n\t\t\t\tmime: 'font/woff2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD4, 0xC3, 0xB2, 0xA1]) || this.check([0xA1, 0xB2, 0xC3, 0xD4])) {\n\t\t\treturn {\n\t\t\t\text: 'pcap',\n\t\t\t\tmime: 'application/vnd.tcpdump.pcap',\n\t\t\t};\n\t\t}\n\n\t\t// Sony DSD Stream File (DSF)\n\t\tif (this.checkString('DSD ')) {\n\t\t\treturn {\n\t\t\t\text: 'dsf',\n\t\t\t\tmime: 'audio/x-dsf', // Non-standard\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('LZIP')) {\n\t\t\treturn {\n\t\t\t\text: 'lz',\n\t\t\t\tmime: 'application/x-lzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('fLaC')) {\n\t\t\treturn {\n\t\t\t\text: 'flac',\n\t\t\t\tmime: 'audio/flac',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x50, 0x47, 0xFB])) {\n\t\t\treturn {\n\t\t\t\text: 'bpg',\n\t\t\t\tmime: 'image/bpg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('wvpk')) {\n\t\t\treturn {\n\t\t\t\text: 'wv',\n\t\t\t\tmime: 'audio/wavpack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('%PDF')) {\n\t\t\t// Assume this is just a normal PDF\n\t\t\treturn {\n\t\t\t\text: 'pdf',\n\t\t\t\tmime: 'application/pdf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x61, 0x73, 0x6D])) {\n\t\t\treturn {\n\t\t\t\text: 'wasm',\n\t\t\t\tmime: 'application/wasm',\n\t\t\t};\n\t\t}\n\n\t\t// TIFF, little-endian type\n\t\tif (this.check([0x49, 0x49])) {\n\t\t\tconst fileType = await this.readTiffHeader(false);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\t// TIFF, big-endian type\n\t\tif (this.check([0x4D, 0x4D])) {\n\t\t\tconst fileType = await this.readTiffHeader(true);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MAC ')) {\n\t\t\treturn {\n\t\t\t\text: 'ape',\n\t\t\t\tmime: 'audio/ape',\n\t\t\t};\n\t\t}\n\n\t\t// https://github.com/file/file/blob/master/magic/Magdir/matroska\n\t\tif (this.check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML\n\t\t\tasync function readField() {\n\t\t\t\tconst msb = await tokenizer.peekNumber(Token.UINT8);\n\t\t\t\tlet mask = 0x80;\n\t\t\t\tlet ic = 0; // 0 = A, 1 = B, 2 = C, 3 = D\n\n\t\t\t\twhile ((msb & mask) === 0 && mask !== 0) {\n\t\t\t\t\t++ic;\n\t\t\t\t\tmask >>= 1;\n\t\t\t\t}\n\n\t\t\t\tconst id = new Uint8Array(ic + 1);\n\t\t\t\tawait tokenizer.readBuffer(id);\n\t\t\t\treturn id;\n\t\t\t}\n\n\t\t\tasync function readElement() {\n\t\t\t\tconst idField = await readField();\n\t\t\t\tconst lengthField = await readField();\n\n\t\t\t\tlengthField[0] ^= 0x80 >> (lengthField.length - 1);\n\t\t\t\tconst nrLength = Math.min(6, lengthField.length); // JavaScript can max read 6 bytes integer\n\n\t\t\t\tconst idView = new DataView(idField.buffer);\n\t\t\t\tconst lengthView = new DataView(lengthField.buffer, lengthField.length - nrLength, nrLength);\n\n\t\t\t\treturn {\n\t\t\t\t\tid: getUintBE(idView),\n\t\t\t\t\tlen: getUintBE(lengthView),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tasync function readChildren(children) {\n\t\t\t\twhile (children > 0) {\n\t\t\t\t\tconst element = await readElement();\n\t\t\t\t\tif (element.id === 0x42_82) {\n\t\t\t\t\t\tconst rawValue = await tokenizer.readToken(new Token.StringType(element.len));\n\t\t\t\t\t\treturn rawValue.replaceAll(/\\00.*$/g, ''); // Return DocType\n\t\t\t\t\t}\n\n\t\t\t\t\tawait tokenizer.ignore(element.len); // ignore payload\n\t\t\t\t\t--children;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst re = await readElement();\n\t\t\tconst documentType = await readChildren(re.len);\n\n\t\t\tswitch (documentType) {\n\t\t\t\tcase 'webm':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'webm',\n\t\t\t\t\t\tmime: 'video/webm',\n\t\t\t\t\t};\n\n\t\t\t\tcase 'matroska':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mkv',\n\t\t\t\t\t\tmime: 'video/matroska',\n\t\t\t\t\t};\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('SQLi')) {\n\t\t\treturn {\n\t\t\t\text: 'sqlite',\n\t\t\t\tmime: 'application/x-sqlite3',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\t\treturn {\n\t\t\t\text: 'nes',\n\t\t\t\tmime: 'application/x-nintendo-nes-rom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Cr24')) {\n\t\t\treturn {\n\t\t\t\text: 'crx',\n\t\t\t\tmime: 'application/x-google-chrome-extension',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('MSCF')\n\t\t\t|| this.checkString('ISc(')\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'cab',\n\t\t\t\tmime: 'application/vnd.ms-cab-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\t\treturn {\n\t\t\t\text: 'rpm',\n\t\t\t\tmime: 'application/x-rpm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC5, 0xD0, 0xD3, 0xC6])) {\n\t\t\treturn {\n\t\t\t\text: 'eps',\n\t\t\t\tmime: 'application/eps',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x28, 0xB5, 0x2F, 0xFD])) {\n\t\t\treturn {\n\t\t\t\text: 'zst',\n\t\t\t\tmime: 'application/zstd',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x7F, 0x45, 0x4C, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'elf',\n\t\t\t\tmime: 'application/x-elf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x21, 0x42, 0x44, 0x4E])) {\n\t\t\treturn {\n\t\t\t\text: 'pst',\n\t\t\t\tmime: 'application/vnd.ms-outlook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('PAR1') || this.checkString('PARE')) {\n\t\t\treturn {\n\t\t\t\text: 'parquet',\n\t\t\t\tmime: 'application/vnd.apache.parquet',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ttcf')) {\n\t\t\treturn {\n\t\t\t\text: 'ttc',\n\t\t\t\tmime: 'font/collection',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xCF, 0xFA, 0xED, 0xFE])) {\n\t\t\treturn {\n\t\t\t\text: 'macho',\n\t\t\t\tmime: 'application/x-mach-binary',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x22, 0x4D, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'lz4',\n\t\t\t\tmime: 'application/x-lz4', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'otf',\n\t\t\t\tmime: 'font/otf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('#!AMR')) {\n\t\t\treturn {\n\t\t\t\text: 'amr',\n\t\t\t\tmime: 'audio/amr',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('{\\\\rtf')) {\n\t\t\treturn {\n\t\t\t\text: 'rtf',\n\t\t\t\tmime: 'application/rtf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x46, 0x4C, 0x56, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'flv',\n\t\t\t\tmime: 'video/x-flv',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('IMPM')) {\n\t\t\treturn {\n\t\t\t\text: 'it',\n\t\t\t\tmime: 'audio/x-it',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('-lh0-', {offset: 2})\n\t\t\t|| this.checkString('-lh1-', {offset: 2})\n\t\t\t|| this.checkString('-lh2-', {offset: 2})\n\t\t\t|| this.checkString('-lh3-', {offset: 2})\n\t\t\t|| this.checkString('-lh4-', {offset: 2})\n\t\t\t|| this.checkString('-lh5-', {offset: 2})\n\t\t\t|| this.checkString('-lh6-', {offset: 2})\n\t\t\t|| this.checkString('-lh7-', {offset: 2})\n\t\t\t|| this.checkString('-lzs-', {offset: 2})\n\t\t\t|| this.checkString('-lz4-', {offset: 2})\n\t\t\t|| this.checkString('-lz5-', {offset: 2})\n\t\t\t|| this.checkString('-lhd-', {offset: 2})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'lzh',\n\t\t\t\tmime: 'application/x-lzh-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// MPEG program stream (PS or MPEG-PS)\n\t\tif (this.check([0x00, 0x00, 0x01, 0xBA])) {\n\t\t\t//  MPEG-PS, MPEG-1 Part 1\n\t\t\tif (this.check([0x21], {offset: 4, mask: [0xF1]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .ps, .mpeg\n\t\t\t\t\tmime: 'video/MP1S',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG-PS, MPEG-2 Part 1\n\t\t\tif (this.check([0x44], {offset: 4, mask: [0xC4]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .mpg, .m2p, .vob or .sub\n\t\t\t\t\tmime: 'video/MP2P',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('ITSF')) {\n\t\t\treturn {\n\t\t\t\text: 'chm',\n\t\t\t\tmime: 'application/vnd.ms-htmlhelp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xCA, 0xFE, 0xBA, 0xBE])) {\n\t\t\treturn {\n\t\t\t\text: 'class',\n\t\t\t\tmime: 'application/java-vm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('.RMF')) {\n\t\t\treturn {\n\t\t\t\text: 'rm',\n\t\t\t\tmime: 'application/vnd.rn-realmedia',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.checkString('DRACO')) {\n\t\t\treturn {\n\t\t\t\text: 'drc',\n\t\t\t\tmime: 'application/vnd.google.draco', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\t// -- 6-byte signatures --\n\n\t\tif (this.check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'xz',\n\t\t\t\tmime: 'application/x-xz',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('<?xml ')) {\n\t\t\treturn {\n\t\t\t\text: 'xml',\n\t\t\t\tmime: 'application/xml',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n\t\t\treturn {\n\t\t\t\text: '7z',\n\t\t\t\tmime: 'application/x-7z-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7])\n\t\t\t&& (this.buffer[6] === 0x0 || this.buffer[6] === 0x1)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'rar',\n\t\t\t\tmime: 'application/x-rar-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('solid ')) {\n\t\t\treturn {\n\t\t\t\text: 'stl',\n\t\t\t\tmime: 'model/stl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('AC')) {\n\t\t\tconst version = new Token.StringType(4, 'latin1').get(this.buffer, 2);\n\t\t\tif (version.match('^d*') && version >= 1000 && version <= 1050) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'dwg',\n\t\t\t\t\tmime: 'image/vnd.dwg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('070707')) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\t// -- 7-byte signatures --\n\n\t\tif (this.checkString('BLENDER')) {\n\t\t\treturn {\n\t\t\t\text: 'blend',\n\t\t\t\tmime: 'application/x-blender',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('!<arch>')) {\n\t\t\tawait tokenizer.ignore(8);\n\t\t\tconst string = await tokenizer.readToken(new Token.StringType(13, 'ascii'));\n\t\t\tif (string === 'debian-binary') {\n\t\t\t\treturn {\n\t\t\t\t\text: 'deb',\n\t\t\t\t\tmime: 'application/x-deb',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ar',\n\t\t\t\tmime: 'application/x-unix-archive',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('WEBVTT')\n\t\t\t&&\t(\n\t\t\t\t// One of LF, CR, tab, space, or end of file must follow \"WEBVTT\" per the spec (see `fixture/fixture-vtt-*.vtt` for examples). Note that `\\0` is technically the null character (there is no such thing as an EOF character). However, checking for `\\0` gives us the same result as checking for the end of the stream.\n\t\t\t\t(['\\n', '\\r', '\\t', ' ', '\\0'].some(char7 => this.checkString(char7, {offset: 6}))))\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'vtt',\n\t\t\t\tmime: 'text/vtt',\n\t\t\t};\n\t\t}\n\n\t\t// -- 8-byte signatures --\n\n\t\tif (this.check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t\t// Offset calculated as follows:\n\t\t\t// - 8 bytes: PNG signature\n\t\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\n\t\t\tawait tokenizer.ignore(8); // ignore PNG signature\n\n\t\t\tasync function readChunkHeader() {\n\t\t\t\treturn {\n\t\t\t\t\tlength: await tokenizer.readToken(Token.INT32_BE),\n\t\t\t\t\ttype: await tokenizer.readToken(new Token.StringType(4, 'latin1')),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tdo {\n\t\t\t\tconst chunk = await readChunkHeader();\n\t\t\t\tif (chunk.length < 0) {\n\t\t\t\t\treturn; // Invalid chunk length\n\t\t\t\t}\n\n\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\tcase 'IDAT':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'png',\n\t\t\t\t\t\t\tmime: 'image/png',\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'acTL':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'apng',\n\t\t\t\t\t\t\tmime: 'image/apng',\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tawait tokenizer.ignore(chunk.length + 4); // Ignore chunk-data + CRC\n\t\t\t\t}\n\t\t\t} while (tokenizer.position + 8 < tokenizer.fileInfo.size);\n\n\t\t\treturn {\n\t\t\t\text: 'png',\n\t\t\t\tmime: 'image/png',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'arrow',\n\t\t\t\tmime: 'application/vnd.apache.arrow.file',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'glb',\n\t\t\t\tmime: 'model/gltf-binary',\n\t\t\t};\n\t\t}\n\n\t\t// `mov` format variants\n\t\tif (\n\t\t\tthis.check([0x66, 0x72, 0x65, 0x65], {offset: 4}) // `free`\n\t\t\t|| this.check([0x6D, 0x64, 0x61, 0x74], {offset: 4}) // `mdat` MJPEG\n\t\t\t|| this.check([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) // `moov`\n\t\t\t|| this.check([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mov',\n\t\t\t\tmime: 'video/quicktime',\n\t\t\t};\n\t\t}\n\n\t\t// -- 9-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'orf',\n\t\t\t\tmime: 'image/x-olympus-orf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('gimp xcf ')) {\n\t\t\treturn {\n\t\t\t\text: 'xcf',\n\t\t\t\tmime: 'image/x-xcf',\n\t\t\t};\n\t\t}\n\n\t\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\t\tif (\n\t\t\tthis.checkString('ftyp', {offset: 4})\n\t\t\t&& (this.buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n\t\t) {\n\t\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\t\tconst brandMajor = new Token.StringType(4, 'latin1').get(this.buffer, 8).replace('\\0', ' ').trim();\n\t\t\tswitch (brandMajor) {\n\t\t\t\tcase 'avif':\n\t\t\t\tcase 'avis':\n\t\t\t\t\treturn {ext: 'avif', mime: 'image/avif'};\n\t\t\t\tcase 'mif1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\t\tcase 'msf1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\t\tcase 'heic':\n\t\t\t\tcase 'heix':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\t\tcase 'hevc':\n\t\t\t\tcase 'hevx':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\t\tcase 'qt':\n\t\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\t\tcase 'M4V':\n\t\t\t\tcase 'M4VH':\n\t\t\t\tcase 'M4VP':\n\t\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\t\tcase 'M4P':\n\t\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\t\tcase 'M4B':\n\t\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'M4A':\n\t\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\t\tcase 'F4V':\n\t\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\t\tcase 'F4P':\n\t\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\t\tcase 'F4A':\n\t\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\t\tcase 'F4B':\n\t\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'crx':\n\t\t\t\t\treturn {ext: 'cr3', mime: 'image/x-canon-cr3'};\n\t\t\t\tdefault:\n\t\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t\t}\n\t\t}\n\n\t\t// -- 12-byte signatures --\n\n\t\t// RIFF file format which might be AVI, WAV, QCP, etc\n\t\tif (this.check([0x52, 0x49, 0x46, 0x46])) {\n\t\t\tif (this.checkString('WEBP', {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'webp',\n\t\t\t\t\tmime: 'image/webp',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'avi',\n\t\t\t\t\tmime: 'video/vnd.avi',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'wav',\n\t\t\t\t\tmime: 'audio/wav',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// QLCM, QCP file\n\t\t\tif (this.check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'qcp',\n\t\t\t\t\tmime: 'audio/qcelp',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\t\treturn {\n\t\t\t\text: 'rw2',\n\t\t\t\tmime: 'image/x-panasonic-rw2',\n\t\t\t};\n\t\t}\n\n\t\t// ASF_Header_Object first 80 bytes\n\t\tif (this.check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\t\tasync function readHeader() {\n\t\t\t\tconst guid = new Uint8Array(16);\n\t\t\t\tawait tokenizer.readBuffer(guid);\n\t\t\t\treturn {\n\t\t\t\t\tid: guid,\n\t\t\t\t\tsize: Number(await tokenizer.readToken(Token.UINT64_LE)),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(30);\n\t\t\t// Search for header should be in first 1KB of file.\n\t\t\twhile (tokenizer.position + 24 < tokenizer.fileInfo.size) {\n\t\t\t\tconst header = await readHeader();\n\t\t\t\tlet payload = header.size - 24;\n\t\t\t\tif (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) {\n\t\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\t\tconst typeId = new Uint8Array(16);\n\t\t\t\t\tpayload -= await tokenizer.readBuffer(typeId);\n\n\t\t\t\t\tif (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found audio:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'audio/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found video:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'video/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tawait tokenizer.ignore(payload);\n\t\t\t}\n\n\t\t\t// Default to ASF generic extension\n\t\t\treturn {\n\t\t\t\text: 'asf',\n\t\t\t\tmime: 'application/vnd.ms-asf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\treturn {\n\t\t\t\text: 'ktx',\n\t\t\t\tmime: 'image/ktx',\n\t\t\t};\n\t\t}\n\n\t\tif ((this.check([0x7E, 0x10, 0x04]) || this.check([0x7E, 0x18, 0x04])) && this.check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) {\n\t\t\treturn {\n\t\t\t\text: 'mie',\n\t\t\t\tmime: 'application/x-mie',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) {\n\t\t\treturn {\n\t\t\t\text: 'shp',\n\t\t\t\tmime: 'application/x-esri-shape',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0x4F, 0xFF, 0x51])) {\n\t\t\treturn {\n\t\t\t\text: 'j2c',\n\t\t\t\tmime: 'image/j2c',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t\t// JPEG-2000 family\n\n\t\t\tawait tokenizer.ignore(20);\n\t\t\tconst type = await tokenizer.readToken(new Token.StringType(4, 'ascii'));\n\t\t\tswitch (type) {\n\t\t\t\tcase 'jp2 ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jp2',\n\t\t\t\t\t\tmime: 'image/jp2',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpx ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpx',\n\t\t\t\t\t\tmime: 'image/jpx',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpm ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpm',\n\t\t\t\t\t\tmime: 'image/jpm',\n\t\t\t\t\t};\n\t\t\t\tcase 'mjp2':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mj2',\n\t\t\t\t\t\tmime: 'image/mj2',\n\t\t\t\t\t};\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFF, 0x0A])\n\t\t\t|| this.check([0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x4C, 0x20, 0x0D, 0x0A, 0x87, 0x0A])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'jxl',\n\t\t\t\tmime: 'image/jxl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFE, 0xFF])) { // UTF-16-BOM-LE\n\t\t\tif (this.check([0, 60, 0, 63, 0, 120, 0, 109, 0, 108], {offset: 2})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some unknown text based format\n\t\t}\n\n\t\tif (this.check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) {\n\t\t\t// Detected Microsoft Compound File Binary File (MS-CFB) Format.\n\t\t\treturn {\n\t\t\t\text: 'cfb',\n\t\t\t\tmime: 'application/x-cfb',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 12 to 256.\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\tif (this.check([0x61, 0x63, 0x73, 0x70], {offset: 36})) {\n\t\t\treturn {\n\t\t\t\text: 'icc',\n\t\t\t\tmime: 'application/vnd.iccprofile',\n\t\t\t};\n\t\t}\n\n\t\t// ACE: requires 14 bytes in the buffer\n\t\tif (this.checkString('**ACE', {offset: 7}) && this.checkString('**', {offset: 12})) {\n\t\t\treturn {\n\t\t\t\text: 'ace',\n\t\t\t\tmime: 'application/x-ace-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// -- 15-byte signatures --\n\n\t\tif (this.checkString('BEGIN:')) {\n\t\t\tif (this.checkString('VCARD', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'vcf',\n\t\t\t\t\tmime: 'text/vcard',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.checkString('VCALENDAR', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ics',\n\t\t\t\t\tmime: 'text/calendar',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// `raf` is here just to keep all the raw image detectors together.\n\t\tif (this.checkString('FUJIFILMCCD-RAW')) {\n\t\t\treturn {\n\t\t\t\text: 'raf',\n\t\t\t\tmime: 'image/x-fujifilm-raf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Extended Module:')) {\n\t\t\treturn {\n\t\t\t\text: 'xm',\n\t\t\t\tmime: 'audio/x-xm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Creative Voice File')) {\n\t\t\treturn {\n\t\t\t\text: 'voc',\n\t\t\t\tmime: 'audio/x-voc',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x00, 0x00, 0x00]) && this.buffer.length >= 16) { // Rough & quick check Pickle/ASAR\n\t\t\tconst jsonSize = new DataView(this.buffer.buffer).getUint32(12, true);\n\n\t\t\tif (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {\n\t\t\t\ttry {\n\t\t\t\t\tconst header = new TextDecoder().decode(this.buffer.subarray(16, jsonSize + 16));\n\t\t\t\t\tconst json = JSON.parse(header);\n\t\t\t\t\t// Check if Pickle is ASAR\n\t\t\t\t\tif (json.files) { // Final check, assuring Pickle/ASAR format\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asar',\n\t\t\t\t\t\t\tmime: 'application/x-asar',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\t\treturn {\n\t\t\t\text: 'mxf',\n\t\t\t\tmime: 'application/mxf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('SCRM', {offset: 44})) {\n\t\t\treturn {\n\t\t\t\text: 's3m',\n\t\t\t\tmime: 'audio/x-s3m',\n\t\t\t};\n\t\t}\n\n\t\t// Raw MPEG-2 transport stream (188-byte packets)\n\t\tif (this.check([0x47]) && this.check([0x47], {offset: 188})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\t// Blu-ray Disc Audio-Video (BDAV) MPEG-2 transport stream has 4-byte TP_extra_header before each 188-byte packet\n\t\tif (this.check([0x47], {offset: 4}) && this.check([0x47], {offset: 196})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) {\n\t\t\treturn {\n\t\t\t\text: 'mobi',\n\t\t\t\tmime: 'application/x-mobipocket-ebook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) {\n\t\t\treturn {\n\t\t\t\text: 'dcm',\n\t\t\t\tmime: 'application/dicom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'lnk',\n\t\t\t\tmime: 'application/x.ms.shortcut', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'alias',\n\t\t\t\tmime: 'application/x.apple.alias', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Kaydara FBX Binary  \\u0000')) {\n\t\t\treturn {\n\t\t\t\text: 'fbx',\n\t\t\t\tmime: 'application/x.autodesk.fbx', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x4C, 0x50], {offset: 34})\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x00, 0x01], {offset: 8})\n\t\t\t\t|| this.check([0x01, 0x00, 0x02], {offset: 8})\n\t\t\t\t|| this.check([0x02, 0x00, 0x02], {offset: 8})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'eot',\n\t\t\t\tmime: 'application/vnd.ms-fontobject',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) {\n\t\t\treturn {\n\t\t\t\text: 'indd',\n\t\t\t\tmime: 'application/x-indesign',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 256 to 512\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// Requires a buffer size of 512 bytes\n\t\tif ((this.checkString('ustar', {offset: 257}) && (this.checkString('\\0', {offset: 262}) || this.checkString(' ', {offset: 262})))\n\t\t\t|| (this.check([0, 0, 0, 0, 0, 0], {offset: 257}) && tarHeaderChecksumMatches(this.buffer))) {\n\t\t\treturn {\n\t\t\t\text: 'tar',\n\t\t\t\tmime: 'application/x-tar',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0xFE])) { // UTF-16-BOM-BE\n\t\t\tif (this.check([60, 0, 63, 0, 120, 0, 109, 0, 108, 0], {offset: 2})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0xFF, 0x0E, 0x53, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x68, 0x00, 0x55, 0x00, 0x70, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6C, 0x00], {offset: 2})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'skp',\n\t\t\t\t\tmime: 'application/vnd.sketchup.skp',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some text based format\n\t\t}\n\n\t\tif (this.checkString('-----BEGIN PGP MESSAGE-----')) {\n\t\t\treturn {\n\t\t\t\text: 'pgp',\n\t\t\t\tmime: 'application/pgp-encrypted',\n\t\t\t};\n\t\t}\n\t};\n\t// Detections with limited supporting data, resulting in a higher likelihood of false positives\n\tdetectImprecise = async tokenizer => {\n\t\tthis.buffer = new Uint8Array(reasonableDetectionSizeInBytes);\n\n\t\t// Read initial sample size of 8 bytes\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(8, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\tif (\n\t\t\tthis.check([0x0, 0x0, 0x1, 0xBA])\n\t\t\t|| this.check([0x0, 0x0, 0x1, 0xB3])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mpg',\n\t\t\t\tmime: 'video/mpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ttf',\n\t\t\t\tmime: 'font/ttf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x01, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ico',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x02, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'cur',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\t// Adjust buffer to `mpegOffsetTolerance`\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(2 + this.options.mpegOffsetTolerance, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE)\n\t\tif (this.buffer.length >= (2 + this.options.mpegOffsetTolerance)) {\n\t\t\tfor (let depth = 0; depth <= this.options.mpegOffsetTolerance; ++depth) {\n\t\t\t\tconst type = this.scanMpeg(depth);\n\t\t\t\tif (type) {\n\t\t\t\t\treturn type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tasync readTiffTag(bigEndian) {\n\t\tconst tagId = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tthis.tokenizer.ignore(10);\n\t\tswitch (tagId) {\n\t\t\tcase 50_341:\n\t\t\t\treturn {\n\t\t\t\t\text: 'arw',\n\t\t\t\t\tmime: 'image/x-sony-arw',\n\t\t\t\t};\n\t\t\tcase 50_706:\n\t\t\t\treturn {\n\t\t\t\t\text: 'dng',\n\t\t\t\t\tmime: 'image/x-adobe-dng',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t}\n\t}\n\n\tasync readTiffIFD(bigEndian) {\n\t\tconst numberOfTags = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tfor (let n = 0; n < numberOfTags; ++n) {\n\t\t\tconst fileType = await this.readTiffTag(bigEndian);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffHeader(bigEndian) {\n\t\tconst version = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 2);\n\t\tconst ifdOffset = (bigEndian ? Token.UINT32_BE : Token.UINT32_LE).get(this.buffer, 4);\n\n\t\tif (version === 42) {\n\t\t\t// TIFF file header\n\t\t\tif (ifdOffset >= 6) {\n\t\t\t\tif (this.checkString('CR', {offset: 8})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'cr2',\n\t\t\t\t\t\tmime: 'image/x-canon-cr2',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (ifdOffset >= 8) {\n\t\t\t\t\tconst someId1 = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 8);\n\t\t\t\t\tconst someId2 = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 10);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(someId1 === 0x1C && someId2 === 0xFE)\n\t\t\t\t\t\t|| (someId1 === 0x1F && someId2 === 0x0B)) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'nef',\n\t\t\t\t\t\t\tmime: 'image/x-nikon-nef',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.tokenizer.ignore(ifdOffset);\n\t\t\tconst fileType = await this.readTiffIFD(bigEndian);\n\t\t\treturn fileType ?? {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\n\t\tif (version === 43) {\t// Big TIFF file header\n\t\t\treturn {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\tScan check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE).\n\n\t@param offset - Offset to scan for sync-preamble.\n\t@returns {{ext: string, mime: string}}\n\t*/\n\tscanMpeg(offset) {\n\t\tif (this.check([0xFF, 0xE0], {offset, mask: [0xFF, 0xE0]})) {\n\t\t\tif (this.check([0x10], {offset: offset + 1, mask: [0x16]})) {\n\t\t\t\t// Check for (ADTS) MPEG-2\n\t\t\t\tif (this.check([0x08], {offset: offset + 1, mask: [0x08]})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'aac',\n\t\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Must be (ADTS) MPEG-4\n\t\t\t\treturn {\n\t\t\t\t\text: 'aac',\n\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG 1 or 2 Layer 3 header\n\t\t\t// Check for MPEG layer 3\n\t\t\tif (this.check([0x02], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 2\n\t\t\tif (this.check([0x04], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp2',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 1\n\t\t\tif (this.check([0x06], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp1',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport const supportedExtensions = new Set(extensions);\nexport const supportedMimeTypes = new Set(mimeTypes);\n", "/**\n * @param {string | RegExp} a\n * @param {string | RegExp} b\n * @param {string} str\n */\nexport default function balanced (a, b, str) {\n  if (a instanceof RegExp) a = maybeMatch(a, str)\n  if (b instanceof RegExp) b = maybeMatch(b, str)\n\n  const r = range(a, b, str)\n\n  return (\n    r && {\n      start: r[0],\n      end: r[1],\n      pre: str.slice(0, r[0]),\n      body: str.slice(r[0] + a.length, r[1]),\n      post: str.slice(r[1] + b.length)\n    }\n  )\n}\n\n/**\n * @param {RegExp} reg\n * @param {string} str\n */\nfunction maybeMatch (reg, str) {\n  const m = str.match(reg)\n  return m ? m[0] : null\n}\n\n/**\n * @param {string} a\n * @param {string} b\n * @param {string} str\n */\nexport function range (a, b, str) {\n  let begs, beg, left, right, result\n  let ai = str.indexOf(a)\n  let bi = str.indexOf(b, ai + 1)\n  let i = ai\n\n  if (ai >= 0 && bi > 0) {\n    if (a === b) {\n      return [ai, bi]\n    }\n    begs = []\n    left = str.length\n\n    while (i >= 0 && !result) {\n      if (i === ai) {\n        begs.push(i)\n        ai = str.indexOf(a, i + 1)\n      } else if (begs.length === 1) {\n        result = [begs.pop(), bi]\n      } else {\n        beg = begs.pop()\n        if (beg < left) {\n          left = beg\n          right = bi\n        }\n\n        bi = str.indexOf(b, i + 1)\n      }\n\n      i = ai < bi && ai >= 0 ? ai : bi\n    }\n\n    if (begs.length) {\n      result = [left, right]\n    }\n  }\n\n  return result\n}\n", "import balanced from 'balanced-match'\n\nconst escSlash = '\\0SLASH' + Math.random() + '\\0'\nconst escOpen = '\\0OPEN' + Math.random() + '\\0'\nconst escClose = '\\0CLOSE' + Math.random() + '\\0'\nconst escComma = '\\0COMMA' + Math.random() + '\\0'\nconst escPeriod = '\\0PERIOD' + Math.random() + '\\0'\nconst escSlashPattern = new RegExp(escSlash, 'g')\nconst escOpenPattern = new RegExp(escOpen, 'g')\nconst escClosePattern = new RegExp(escClose, 'g')\nconst escCommaPattern = new RegExp(escComma, 'g')\nconst escPeriodPattern = new RegExp(escPeriod, 'g')\nconst slashPattern = /\\\\\\\\/g\nconst openPattern = /\\\\{/g\nconst closePattern = /\\\\}/g\nconst commaPattern = /\\\\,/g\nconst periodPattern = /\\\\./g\n\n/**\n * @return {number}\n */\nfunction numeric (str) {\n  return !isNaN(str)\n    ? parseInt(str, 10)\n    : str.charCodeAt(0)\n}\n\n/**\n * @param {string} str\n */\nfunction escapeBraces (str) {\n  return str.replace(slashPattern, escSlash)\n    .replace(openPattern, escOpen)\n    .replace(closePattern, escClose)\n    .replace(commaPattern, escComma)\n    .replace(periodPattern, escPeriod)\n}\n\n/**\n * @param {string} str\n */\nfunction unescapeBraces (str) {\n  return str.replace(escSlashPattern, '\\\\')\n    .replace(escOpenPattern, '{')\n    .replace(escClosePattern, '}')\n    .replace(escCommaPattern, ',')\n    .replace(escPeriodPattern, '.')\n}\n\n/**\n * Basically just str.split(\",\"), but handling cases\n * where we have nested braced sections, which should be\n * treated as individual members, like {a,{b,c},d}\n * @param {string} str\n */\nfunction parseCommaParts (str) {\n  if (!str) { return [''] }\n\n  const parts = []\n  const m = balanced('{', '}', str)\n\n  if (!m) { return str.split(',') }\n\n  const { pre, body, post } = m\n  const p = pre.split(',')\n\n  p[p.length - 1] += '{' + body + '}'\n  const postParts = parseCommaParts(post)\n  if (post.length) {\n    p[p.length - 1] += postParts.shift()\n    p.push.apply(p, postParts)\n  }\n\n  parts.push.apply(parts, p)\n\n  return parts\n}\n\n/**\n * @param {string} str\n */\nexport default function expandTop (str) {\n  if (!str) { return [] }\n\n  // I don't know why Bash 4.3 does this, but it does.\n  // Anything starting with {} will have the first two bytes preserved\n  // but *only* at the top level, so {},a}b will not expand to anything,\n  // but a{},b}c will be expanded to [a}c,abc].\n  // One could argue that this is a bug in Bash, but since the goal of\n  // this module is to match Bash's rules, we escape a leading {}\n  if (str.slice(0, 2) === '{}') {\n    str = '\\\\{\\\\}' + str.slice(2)\n  }\n\n  return expand(escapeBraces(str), true).map(unescapeBraces)\n}\n\n/**\n * @param {string} str\n */\nfunction embrace (str) {\n  return '{' + str + '}'\n}\n\n/**\n * @param {string} el\n */\nfunction isPadded (el) {\n  return /^-?0\\d/.test(el)\n}\n\n/**\n * @param {number} i\n * @param {number} y\n */\nfunction lte (i, y) {\n  return i <= y\n}\n\n/**\n * @param {number} i\n * @param {number} y\n */\nfunction gte (i, y) {\n  return i >= y\n}\n\n/**\n * @param {string} str\n * @param {boolean} [isTop]\n */\nfunction expand (str, isTop) {\n  /** @type {string[]} */\n  const expansions = []\n\n  const m = balanced('{', '}', str)\n  if (!m) return [str]\n\n  // no need to expand pre, since it is guaranteed to be free of brace-sets\n  const pre = m.pre\n  const post = m.post.length\n    ? expand(m.post, false)\n    : ['']\n\n  if (/\\$$/.test(m.pre)) {\n    for (let k = 0; k < post.length; k++) {\n      const expansion = pre + '{' + m.body + '}' + post[k]\n      expansions.push(expansion)\n    }\n  } else {\n    const isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body)\n    const isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body)\n    const isSequence = isNumericSequence || isAlphaSequence\n    const isOptions = m.body.indexOf(',') >= 0\n    if (!isSequence && !isOptions) {\n      // {a},b}\n      if (m.post.match(/,(?!,).*\\}/)) {\n        str = m.pre + '{' + m.body + escClose + m.post\n        return expand(str)\n      }\n      return [str]\n    }\n\n    let n\n    if (isSequence) {\n      n = m.body.split(/\\.\\./)\n    } else {\n      n = parseCommaParts(m.body)\n      if (n.length === 1) {\n        // x{{a,b}}y ==> x{a}y x{b}y\n        n = expand(n[0], false).map(embrace)\n        if (n.length === 1) {\n          return post.map(function (p) {\n            return m.pre + n[0] + p\n          })\n        }\n      }\n    }\n\n    // at this point, n is the parts, and we know it's not a comma set\n    // with a single entry.\n    let N\n\n    if (isSequence) {\n      const x = numeric(n[0])\n      const y = numeric(n[1])\n      const width = Math.max(n[0].length, n[1].length)\n      let incr = n.length === 3\n        ? Math.abs(numeric(n[2]))\n        : 1\n      let test = lte\n      const reverse = y < x\n      if (reverse) {\n        incr *= -1\n        test = gte\n      }\n      const pad = n.some(isPadded)\n\n      N = []\n\n      for (let i = x; test(i, y); i += incr) {\n        let c\n        if (isAlphaSequence) {\n          c = String.fromCharCode(i)\n          if (c === '\\\\') { c = '' }\n        } else {\n          c = String(i)\n          if (pad) {\n            const need = width - c.length\n            if (need > 0) {\n              const z = new Array(need + 1).join('0')\n              if (i < 0) { c = '-' + z + c.slice(1) } else { c = z + c }\n            }\n          }\n        }\n        N.push(c)\n      }\n    } else {\n      N = []\n\n      for (let j = 0; j < n.length; j++) {\n        N.push.apply(N, expand(n[j], false))\n      }\n    }\n\n    for (let j = 0; j < N.length; j++) {\n      for (let k = 0; k < post.length; k++) {\n        const expansion = pre + N[j] + post[k]\n        if (!isTop || isSequence || expansion) { expansions.push(expansion) }\n      }\n    }\n  }\n\n  return expansions\n}\n", "const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n  pattern: any\n): asserts pattern is string => {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('invalid pattern')\n  }\n\n  if (pattern.length > MAX_PATTERN_LENGTH) {\n    throw new TypeError('pattern is too long')\n  }\n}\n", "// translate the various posix character classes into unicode properties\n// this works across all unicode locales\n\n// { <posix class>: [<translation>, /u flag required, negated]\nconst posixClasses: { [k: string]: [e: string, u: boolean, n?: boolean] } = {\n  '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n  '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n  '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n  '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n  '[:cntrl:]': ['\\\\p{Cc}', true],\n  '[:digit:]': ['\\\\p{Nd}', true],\n  '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n  '[:lower:]': ['\\\\p{Ll}', true],\n  '[:print:]': ['\\\\p{C}', true],\n  '[:punct:]': ['\\\\p{P}', true],\n  '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n  '[:upper:]': ['\\\\p{Lu}', true],\n  '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n  '[:xdigit:]': ['A-Fa-f0-9', false],\n}\n\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s: string) => s.replace(/[[\\]\\\\-]/g, '\\\\$&')\n// escape all regexp magic characters\nconst regexpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges: string[]): string => ranges.join('')\n\nexport type ParseClassResult = [\n  src: string,\n  uFlag: boolean,\n  consumed: number,\n  hasMagic: boolean\n]\n\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nexport const parseClass = (\n  glob: string,\n  position: number\n): ParseClassResult => {\n  const pos = position\n  /* c8 ignore start */\n  if (glob.charAt(pos) !== '[') {\n    throw new Error('not in a brace expression')\n  }\n  /* c8 ignore stop */\n  const ranges: string[] = []\n  const negs: string[] = []\n\n  let i = pos + 1\n  let sawStart = false\n  let uflag = false\n  let escaping = false\n  let negate = false\n  let endPos = pos\n  let rangeStart = ''\n  WHILE: while (i < glob.length) {\n    const c = glob.charAt(i)\n    if ((c === '!' || c === '^') && i === pos + 1) {\n      negate = true\n      i++\n      continue\n    }\n\n    if (c === ']' && sawStart && !escaping) {\n      endPos = i + 1\n      break\n    }\n\n    sawStart = true\n    if (c === '\\\\') {\n      if (!escaping) {\n        escaping = true\n        i++\n        continue\n      }\n      // escaped \\ char, fall through and treat like normal char\n    }\n    if (c === '[' && !escaping) {\n      // either a posix class, a collation equivalent, or just a [\n      for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n        if (glob.startsWith(cls, i)) {\n          // invalid, [a-[] is fine, but not [a-[:alpha]]\n          if (rangeStart) {\n            return ['$.', false, glob.length - pos, true]\n          }\n          i += cls.length\n          if (neg) negs.push(unip)\n          else ranges.push(unip)\n          uflag = uflag || u\n          continue WHILE\n        }\n      }\n    }\n\n    // now it's just a normal character, effectively\n    escaping = false\n    if (rangeStart) {\n      // throw this range away if it's not valid, but others\n      // can still match.\n      if (c > rangeStart) {\n        ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c))\n      } else if (c === rangeStart) {\n        ranges.push(braceEscape(c))\n      }\n      rangeStart = ''\n      i++\n      continue\n    }\n\n    // now might be the start of a range.\n    // can be either c-d or c-] or c<more...>] or c] at this point\n    if (glob.startsWith('-]', i + 1)) {\n      ranges.push(braceEscape(c + '-'))\n      i += 2\n      continue\n    }\n    if (glob.startsWith('-', i + 1)) {\n      rangeStart = c\n      i += 2\n      continue\n    }\n\n    // not the start of a range, just a single character\n    ranges.push(braceEscape(c))\n    i++\n  }\n\n  if (endPos < i) {\n    // didn't see the end of the class, not a valid class,\n    // but might still be valid as a literal match.\n    return ['', false, 0, false]\n  }\n\n  // if we got no ranges and no negates, then we have a range that\n  // cannot possibly match anything, and that poisons the whole glob\n  if (!ranges.length && !negs.length) {\n    return ['$.', false, glob.length - pos, true]\n  }\n\n  // if we got one positive range, and it's a single character, then that's\n  // not actually a magic pattern, it's just that one literal character.\n  // we should not treat that as \"magic\", we should just return the literal\n  // character. [_] is a perfectly valid way to escape glob magic chars.\n  if (\n    negs.length === 0 &&\n    ranges.length === 1 &&\n    /^\\\\?.$/.test(ranges[0]) &&\n    !negate\n  ) {\n    const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]\n    return [regexpEscape(r), false, endPos - pos, false]\n  }\n\n  const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']'\n  const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']'\n  const comb =\n    ranges.length && negs.length\n      ? '(' + sranges + '|' + snegs + ')'\n      : ranges.length\n      ? sranges\n      : snegs\n\n  return [comb, uflag, endPos - pos, true]\n}\n", "import { MinimatchOptions } from './index.js'\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (\n  s: string,\n  {\n    windowsPathsNoEscape = false,\n  }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n  return windowsPathsNoEscape\n    ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n    : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1')\n}\n", "// parse a single path portion\n\nimport { parseClass } from './brace-expressions.js'\nimport { MinimatchOptions, MMRegExp } from './index.js'\nimport { unescape } from './unescape.js'\n\n// classes [] are handled by the parseClass method\n// for positive extglobs, we sub-parse the contents, and combine,\n// with the appropriate regexp close.\n// for negative extglobs, we sub-parse the contents, but then\n// have to include the rest of the pattern, then the parent, etc.,\n// as the thing that cannot be because RegExp negative lookaheads\n// are different from globs.\n//\n// So for example:\n// a@(i|w!(x|y)z|j)b => ^a(i|w((!?(x|y)zb).*)z|j)b$\n//   1   2 3   4 5 6      1   2    3   46      5 6\n//\n// Assembling the extglob requires not just the negated patterns themselves,\n// but also anything following the negative patterns up to the boundary\n// of the current pattern, plus anything following in the parent pattern.\n//\n//\n// So, first, we parse the string into an AST of extglobs, without turning\n// anything into regexps yet.\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y']}, 'z'], ['j']]}, 'b']\n//\n// Then, for all the negative extglobs, we append whatever comes after in\n// each parent as their tail\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y'], 'z', 'b'}, 'z'], ['j']]}, 'b']\n//\n// Lastly, we turn each of these pieces into a regexp, and join\n//\n//                                 v----- .* because there's more following,\n//                                 v    v  otherwise, .+ because it must be\n//                                 v    v  *something* there.\n// ['^a', {@ ['i', 'w(?:(!?(?:x|y).*zb$).*)z', 'j' ]}, 'b$']\n//   copy what follows into here--^^^^^\n// ['^a', '(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)', 'b$']\n// ['^a(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)b$']\n\nexport type ExtglobType = '!' | '?' | '+' | '*' | '@'\nconst types = new Set<ExtglobType>(['!', '?', '+', '*', '@'])\nconst isExtglobType = (c: string): c is ExtglobType =>\n  types.has(c as ExtglobType)\n\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))'\nconst startNoDot = '(?!\\\\.)'\n\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.'])\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.'])\nconst reSpecials = new Set('().*{}+?[]^$\\\\!')\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// any single thing other than /\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?'\n\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\n\nexport class AST {\n  type: ExtglobType | null\n  readonly #root: AST\n\n  #hasMagic?: boolean\n  #uflag: boolean = false\n  #parts: (string | AST)[] = []\n  readonly #parent?: AST\n  readonly #parentIndex: number\n  #negs: AST[]\n  #filledNegs: boolean = false\n  #options: MinimatchOptions\n  #toString?: string\n  // set to true if it's an extglob with no children\n  // (which really means one child of '')\n  #emptyExt: boolean = false\n\n  constructor(\n    type: ExtglobType | null,\n    parent?: AST,\n    options: MinimatchOptions = {}\n  ) {\n    this.type = type\n    // extglobs are inherently magical\n    if (type) this.#hasMagic = true\n    this.#parent = parent\n    this.#root = this.#parent ? this.#parent.#root : this\n    this.#options = this.#root === this ? options : this.#root.#options\n    this.#negs = this.#root === this ? [] : this.#root.#negs\n    if (type === '!' && !this.#root.#filledNegs) this.#negs.push(this)\n    this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0\n  }\n\n  get hasMagic(): boolean | undefined {\n    /* c8 ignore start */\n    if (this.#hasMagic !== undefined) return this.#hasMagic\n    /* c8 ignore stop */\n    for (const p of this.#parts) {\n      if (typeof p === 'string') continue\n      if (p.type || p.hasMagic) return (this.#hasMagic = true)\n    }\n    // note: will be undefined until we generate the regexp src and find out\n    return this.#hasMagic\n  }\n\n  // reconstructs the pattern\n  toString(): string {\n    if (this.#toString !== undefined) return this.#toString\n    if (!this.type) {\n      return (this.#toString = this.#parts.map(p => String(p)).join(''))\n    } else {\n      return (this.#toString =\n        this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')')\n    }\n  }\n\n  #fillNegs() {\n    /* c8 ignore start */\n    if (this !== this.#root) throw new Error('should only call on root')\n    if (this.#filledNegs) return this\n    /* c8 ignore stop */\n\n    // call toString() once to fill this out\n    this.toString()\n    this.#filledNegs = true\n    let n: AST | undefined\n    while ((n = this.#negs.pop())) {\n      if (n.type !== '!') continue\n      // walk up the tree, appending everthing that comes AFTER parentIndex\n      let p: AST | undefined = n\n      let pp = p.#parent\n      while (pp) {\n        for (\n          let i = p.#parentIndex + 1;\n          !pp.type && i < pp.#parts.length;\n          i++\n        ) {\n          for (const part of n.#parts) {\n            /* c8 ignore start */\n            if (typeof part === 'string') {\n              throw new Error('string part in extglob AST??')\n            }\n            /* c8 ignore stop */\n            part.copyIn(pp.#parts[i])\n          }\n        }\n        p = pp\n        pp = p.#parent\n      }\n    }\n    return this\n  }\n\n  push(...parts: (string | AST)[]) {\n    for (const p of parts) {\n      if (p === '') continue\n      /* c8 ignore start */\n      if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n        throw new Error('invalid part: ' + p)\n      }\n      /* c8 ignore stop */\n      this.#parts.push(p)\n    }\n  }\n\n  toJSON() {\n    const ret: any[] =\n      this.type === null\n        ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n        : [this.type, ...this.#parts.map(p => (p as AST).toJSON())]\n    if (this.isStart() && !this.type) ret.unshift([])\n    if (\n      this.isEnd() &&\n      (this === this.#root ||\n        (this.#root.#filledNegs && this.#parent?.type === '!'))\n    ) {\n      ret.push({})\n    }\n    return ret\n  }\n\n  isStart(): boolean {\n    if (this.#root === this) return true\n    // if (this.type) return !!this.#parent?.isStart()\n    if (!this.#parent?.isStart()) return false\n    if (this.#parentIndex === 0) return true\n    // if everything AHEAD of this is a negation, then it's still the \"start\"\n    const p = this.#parent\n    for (let i = 0; i < this.#parentIndex; i++) {\n      const pp = p.#parts[i]\n      if (!(pp instanceof AST && pp.type === '!')) {\n        return false\n      }\n    }\n    return true\n  }\n\n  isEnd(): boolean {\n    if (this.#root === this) return true\n    if (this.#parent?.type === '!') return true\n    if (!this.#parent?.isEnd()) return false\n    if (!this.type) return this.#parent?.isEnd()\n    // if not root, it'll always have a parent\n    /* c8 ignore start */\n    const pl = this.#parent ? this.#parent.#parts.length : 0\n    /* c8 ignore stop */\n    return this.#parentIndex === pl - 1\n  }\n\n  copyIn(part: AST | string) {\n    if (typeof part === 'string') this.push(part)\n    else this.push(part.clone(this))\n  }\n\n  clone(parent: AST) {\n    const c = new AST(this.type, parent)\n    for (const p of this.#parts) {\n      c.copyIn(p)\n    }\n    return c\n  }\n\n  static #parseAST(\n    str: string,\n    ast: AST,\n    pos: number,\n    opt: MinimatchOptions\n  ): number {\n    let escaping = false\n    let inBrace = false\n    let braceStart = -1\n    let braceNeg = false\n    if (ast.type === null) {\n      // outside of a extglob, append until we find a start\n      let i = pos\n      let acc = ''\n      while (i < str.length) {\n        const c = str.charAt(i++)\n        // still accumulate escapes at this point, but we do ignore\n        // starts that are escaped\n        if (escaping || c === '\\\\') {\n          escaping = !escaping\n          acc += c\n          continue\n        }\n\n        if (inBrace) {\n          if (i === braceStart + 1) {\n            if (c === '^' || c === '!') {\n              braceNeg = true\n            }\n          } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n            inBrace = false\n          }\n          acc += c\n          continue\n        } else if (c === '[') {\n          inBrace = true\n          braceStart = i\n          braceNeg = false\n          acc += c\n          continue\n        }\n\n        if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n          ast.push(acc)\n          acc = ''\n          const ext = new AST(c, ast)\n          i = AST.#parseAST(str, ext, i, opt)\n          ast.push(ext)\n          continue\n        }\n        acc += c\n      }\n      ast.push(acc)\n      return i\n    }\n\n    // some kind of extglob, pos is at the (\n    // find the next | or )\n    let i = pos + 1\n    let part = new AST(null, ast)\n    const parts: AST[] = []\n    let acc = ''\n    while (i < str.length) {\n      const c = str.charAt(i++)\n      // still accumulate escapes at this point, but we do ignore\n      // starts that are escaped\n      if (escaping || c === '\\\\') {\n        escaping = !escaping\n        acc += c\n        continue\n      }\n\n      if (inBrace) {\n        if (i === braceStart + 1) {\n          if (c === '^' || c === '!') {\n            braceNeg = true\n          }\n        } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n          inBrace = false\n        }\n        acc += c\n        continue\n      } else if (c === '[') {\n        inBrace = true\n        braceStart = i\n        braceNeg = false\n        acc += c\n        continue\n      }\n\n      if (isExtglobType(c) && str.charAt(i) === '(') {\n        part.push(acc)\n        acc = ''\n        const ext = new AST(c, part)\n        part.push(ext)\n        i = AST.#parseAST(str, ext, i, opt)\n        continue\n      }\n      if (c === '|') {\n        part.push(acc)\n        acc = ''\n        parts.push(part)\n        part = new AST(null, ast)\n        continue\n      }\n      if (c === ')') {\n        if (acc === '' && ast.#parts.length === 0) {\n          ast.#emptyExt = true\n        }\n        part.push(acc)\n        acc = ''\n        ast.push(...parts, part)\n        return i\n      }\n      acc += c\n    }\n\n    // unfinished extglob\n    // if we got here, it was a malformed extglob! not an extglob, but\n    // maybe something else in there.\n    ast.type = null\n    ast.#hasMagic = undefined\n    ast.#parts = [str.substring(pos - 1)]\n    return i\n  }\n\n  static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n    const ast = new AST(null, undefined, options)\n    AST.#parseAST(pattern, ast, 0, options)\n    return ast\n  }\n\n  // returns the regular expression if there's magic, or the unescaped\n  // string if not.\n  toMMPattern(): MMRegExp | string {\n    // should only be called on root\n    /* c8 ignore start */\n    if (this !== this.#root) return this.#root.toMMPattern()\n    /* c8 ignore stop */\n    const glob = this.toString()\n    const [re, body, hasMagic, uflag] = this.toRegExpSource()\n    // if we're in nocase mode, and not nocaseMagicOnly, then we do\n    // still need a regular expression if we have to case-insensitively\n    // match capital/lowercase characters.\n    const anyMagic =\n      hasMagic ||\n      this.#hasMagic ||\n      (this.#options.nocase &&\n        !this.#options.nocaseMagicOnly &&\n        glob.toUpperCase() !== glob.toLowerCase())\n    if (!anyMagic) {\n      return body\n    }\n\n    const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '')\n    return Object.assign(new RegExp(`^${re}$`, flags), {\n      _src: re,\n      _glob: glob,\n    })\n  }\n\n  get options() {\n    return this.#options\n  }\n\n  // returns the string match, the regexp source, whether there's magic\n  // in the regexp (so a regular expression is required) and whether or\n  // not the uflag is needed for the regular expression (for posix classes)\n  // TODO: instead of injecting the start/end at this point, just return\n  // the BODY of the regexp, along with the start/end portions suitable\n  // for binding the start/end in either a joined full-path makeRe context\n  // (where we bind to (^|/), or a standalone matchPart context (where\n  // we bind to ^, and not /).  Otherwise slashes get duped!\n  //\n  // In part-matching mode, the start is:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n  // - if dots allowed or not possible: ^\n  // - if dots possible and not allowed: ^(?!\\.)\n  // end is:\n  // - if not isEnd(): nothing\n  // - else: $\n  //\n  // In full-path matching mode, we put the slash at the START of the\n  // pattern, so start is:\n  // - if first pattern: same as part-matching mode\n  // - if not isStart(): nothing\n  // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n  // - if dots allowed or not possible: /\n  // - if dots possible and not allowed: /(?!\\.)\n  // end is:\n  // - if last pattern, same as part-matching mode\n  // - else nothing\n  //\n  // Always put the (?:$|/) on negated tails, though, because that has to be\n  // there to bind the end of the negated pattern portion, and it's easier to\n  // just stick it in now rather than try to inject it later in the middle of\n  // the pattern.\n  //\n  // We can just always return the same end, and leave it up to the caller\n  // to know whether it's going to be used joined or in parts.\n  // And, if the start is adjusted slightly, can do the same there:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n  // - if dots allowed or not possible: (?:/|^)\n  // - if dots possible and not allowed: (?:/|^)(?!\\.)\n  //\n  // But it's better to have a simpler binding without a conditional, for\n  // performance, so probably better to return both start options.\n  //\n  // Then the caller just ignores the end if it's not the first pattern,\n  // and the start always gets applied.\n  //\n  // But that's always going to be $ if it's the ending pattern, or nothing,\n  // so the caller can just attach $ at the end of the pattern when building.\n  //\n  // So the todo is:\n  // - better detect what kind of start is needed\n  // - return both flavors of starting pattern\n  // - attach $ at the end of the pattern when creating the actual RegExp\n  //\n  // Ah, but wait, no, that all only applies to the root when the first pattern\n  // is not an extglob. If the first pattern IS an extglob, then we need all\n  // that dot prevention biz to live in the extglob portions, because eg\n  // +(*|.x*) can match .xy but not .yx.\n  //\n  // So, return the two flavors if it's #root and the first child is not an\n  // AST, otherwise leave it to the child AST to handle it, and there,\n  // use the (?:^|/) style of start binding.\n  //\n  // Even simplified further:\n  // - Since the start for a join is eg /(?!\\.) and the start for a part\n  // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n  // or start or whatever) and prepend ^ or / at the Regexp construction.\n  toRegExpSource(\n    allowDot?: boolean\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    const dot = allowDot ?? !!this.#options.dot\n    if (this.#root === this) this.#fillNegs()\n    if (!this.type) {\n      const noEmpty = this.isStart() && this.isEnd()\n      const src = this.#parts\n        .map(p => {\n          const [re, _, hasMagic, uflag] =\n            typeof p === 'string'\n              ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n              : p.toRegExpSource(allowDot)\n          this.#hasMagic = this.#hasMagic || hasMagic\n          this.#uflag = this.#uflag || uflag\n          return re\n        })\n        .join('')\n\n      let start = ''\n      if (this.isStart()) {\n        if (typeof this.#parts[0] === 'string') {\n          // this is the string that will match the start of the pattern,\n          // so we need to protect against dots and such.\n\n          // '.' and '..' cannot match unless the pattern is that exactly,\n          // even if it starts with . or dot:true is set.\n          const dotTravAllowed =\n            this.#parts.length === 1 && justDots.has(this.#parts[0])\n          if (!dotTravAllowed) {\n            const aps = addPatternStart\n            // check if we have a possibility of matching . or ..,\n            // and prevent that.\n            const needNoTrav =\n              // dots are allowed, and the pattern starts with [ or .\n              (dot && aps.has(src.charAt(0))) ||\n              // the pattern starts with \\., and then [ or .\n              (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n              // the pattern starts with \\.\\., and then [ or .\n              (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)))\n            // no need to prevent dots if it can't match a dot, or if a\n            // sub-pattern will be preventing it anyway.\n            const needNoDot = !dot && !allowDot && aps.has(src.charAt(0))\n\n            start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''\n          }\n        }\n      }\n\n      // append the \"end of path portion\" pattern to negation tails\n      let end = ''\n      if (\n        this.isEnd() &&\n        this.#root.#filledNegs &&\n        this.#parent?.type === '!'\n      ) {\n        end = '(?:$|\\\\/)'\n      }\n      const final = start + src + end\n      return [\n        final,\n        unescape(src),\n        (this.#hasMagic = !!this.#hasMagic),\n        this.#uflag,\n      ]\n    }\n\n    // We need to calculate the body *twice* if it's a repeat pattern\n    // at the start, once in nodot mode, then again in dot mode, so a\n    // pattern like *(?) can match 'x.y'\n\n    const repeated = this.type === '*' || this.type === '+'\n    // some kind of extglob\n    const start = this.type === '!' ? '(?:(?!(?:' : '(?:'\n    let body = this.#partsToRegExp(dot)\n\n    if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n      // invalid extglob, has to at least be *something* present, if it's\n      // the entire path portion.\n      const s = this.toString()\n      this.#parts = [s]\n      this.type = null\n      this.#hasMagic = undefined\n      return [s, unescape(this.toString()), false, false]\n    }\n\n    // XXX abstract out this map method\n    let bodyDotAllowed =\n      !repeated || allowDot || dot || !startNoDot\n        ? ''\n        : this.#partsToRegExp(true)\n    if (bodyDotAllowed === body) {\n      bodyDotAllowed = ''\n    }\n    if (bodyDotAllowed) {\n      body = `(?:${body})(?:${bodyDotAllowed})*?`\n    }\n\n    // an empty !() is exactly equivalent to a starNoEmpty\n    let final = ''\n    if (this.type === '!' && this.#emptyExt) {\n      final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty\n    } else {\n      const close =\n        this.type === '!'\n          ? // !() must match something,but !(x) can match ''\n            '))' +\n            (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n            star +\n            ')'\n          : this.type === '@'\n          ? ')'\n          : this.type === '?'\n          ? ')?'\n          : this.type === '+' && bodyDotAllowed\n          ? ')'\n          : this.type === '*' && bodyDotAllowed\n          ? `)?`\n          : `)${this.type}`\n      final = start + body + close\n    }\n    return [\n      final,\n      unescape(body),\n      (this.#hasMagic = !!this.#hasMagic),\n      this.#uflag,\n    ]\n  }\n\n  #partsToRegExp(dot: boolean) {\n    return this.#parts\n      .map(p => {\n        // extglob ASTs should only contain parent ASTs\n        /* c8 ignore start */\n        if (typeof p === 'string') {\n          throw new Error('string type in extglob ast??')\n        }\n        /* c8 ignore stop */\n        // can ignore hasMagic, because extglobs are already always magic\n        const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot)\n        this.#uflag = this.#uflag || uflag\n        return re\n      })\n      .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n      .join('|')\n  }\n\n  static #parseGlob(\n    glob: string,\n    hasMagic: boolean | undefined,\n    noEmpty: boolean = false\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    let escaping = false\n    let re = ''\n    let uflag = false\n    for (let i = 0; i < glob.length; i++) {\n      const c = glob.charAt(i)\n      if (escaping) {\n        escaping = false\n        re += (reSpecials.has(c) ? '\\\\' : '') + c\n        continue\n      }\n      if (c === '\\\\') {\n        if (i === glob.length - 1) {\n          re += '\\\\\\\\'\n        } else {\n          escaping = true\n        }\n        continue\n      }\n      if (c === '[') {\n        const [src, needUflag, consumed, magic] = parseClass(glob, i)\n        if (consumed) {\n          re += src\n          uflag = uflag || needUflag\n          i += consumed - 1\n          hasMagic = hasMagic || magic\n          continue\n        }\n      }\n      if (c === '*') {\n        if (noEmpty && glob === '*') re += starNoEmpty\n        else re += star\n        hasMagic = true\n        continue\n      }\n      if (c === '?') {\n        re += qmark\n        hasMagic = true\n        continue\n      }\n      re += regExpEscape(c)\n    }\n    return [re, unescape(glob), !!hasMagic, uflag]\n  }\n}\n", "import { MinimatchOptions } from './index.js'\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (\n  s: string,\n  {\n    windowsPathsNoEscape = false,\n  }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n  // don't need to escape +@! because we escape the parens\n  // that make those magic, and escaping ! as [!] isn't valid,\n  // because [!]] is a valid glob class meaning not ']'.\n  return windowsPathsNoEscape\n    ? s.replace(/[?*()[\\]]/g, '[$&]')\n    : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n", "import expand from 'brace-expansion'\nimport { assertValidPattern } from './assert-valid-pattern.js'\nimport { AST, ExtglobType } from './ast.js'\nimport { escape } from './escape.js'\nimport { unescape } from './unescape.js'\n\ntype Platform =\n  | 'aix'\n  | 'android'\n  | 'darwin'\n  | 'freebsd'\n  | 'haiku'\n  | 'linux'\n  | 'openbsd'\n  | 'sunos'\n  | 'win32'\n  | 'cygwin'\n  | 'netbsd'\n\nexport interface MinimatchOptions {\n  nobrace?: boolean\n  nocomment?: boolean\n  nonegate?: boolean\n  debug?: boolean\n  noglobstar?: boolean\n  noext?: boolean\n  nonull?: boolean\n  windowsPathsNoEscape?: boolean\n  allowWindowsEscape?: boolean\n  partial?: boolean\n  dot?: boolean\n  nocase?: boolean\n  nocaseMagicOnly?: boolean\n  magicalBraces?: boolean\n  matchBase?: boolean\n  flipNegate?: boolean\n  preserveMultipleSlashes?: boolean\n  optimizationLevel?: number\n  platform?: Platform\n  windowsNoMagicRoot?: boolean\n}\n\nexport const minimatch = (\n  p: string,\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // shortcut: comments match nothing.\n  if (!options.nocomment && pattern.charAt(0) === '#') {\n    return false\n  }\n\n  return new Minimatch(pattern, options).match(p)\n}\n\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/\nconst starDotExtTest = (ext: string) => (f: string) =>\n  !f.startsWith('.') && f.endsWith(ext)\nconst starDotExtTestDot = (ext: string) => (f: string) => f.endsWith(ext)\nconst starDotExtTestNocase = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => !f.startsWith('.') && f.toLowerCase().endsWith(ext)\n}\nconst starDotExtTestNocaseDot = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => f.toLowerCase().endsWith(ext)\n}\nconst starDotStarRE = /^\\*+\\.\\*+$/\nconst starDotStarTest = (f: string) => !f.startsWith('.') && f.includes('.')\nconst starDotStarTestDot = (f: string) =>\n  f !== '.' && f !== '..' && f.includes('.')\nconst dotStarRE = /^\\.\\*+$/\nconst dotStarTest = (f: string) => f !== '.' && f !== '..' && f.startsWith('.')\nconst starRE = /^\\*+$/\nconst starTest = (f: string) => f.length !== 0 && !f.startsWith('.')\nconst starTestDot = (f: string) => f.length !== 0 && f !== '.' && f !== '..'\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/\nconst qmarksTestNocase = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestNocaseDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTest = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTestNoExt = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && !f.startsWith('.')\n}\nconst qmarksTestNoExtDot = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && f !== '.' && f !== '..'\n}\n\n/* c8 ignore start */\nconst defaultPlatform: Platform = (\n  typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n      process.platform\n    : 'posix'\n) as Platform\ntype Sep = '\\\\' | '/'\nconst path: { [k: string]: { sep: Sep } } = {\n  win32: { sep: '\\\\' },\n  posix: { sep: '/' },\n}\n/* c8 ignore stop */\n\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep\nminimatch.sep = sep\n\nexport const GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?'\n\nexport const filter =\n  (pattern: string, options: MinimatchOptions = {}) =>\n  (p: string) =>\n    minimatch(p, pattern, options)\nminimatch.filter = filter\n\nconst ext = (a: MinimatchOptions, b: MinimatchOptions = {}) =>\n  Object.assign({}, a, b)\n\nexport const defaults = (def: MinimatchOptions): typeof minimatch => {\n  if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n    return minimatch\n  }\n\n  const orig = minimatch\n\n  const m = (p: string, pattern: string, options: MinimatchOptions = {}) =>\n    orig(p, pattern, ext(def, options))\n\n  return Object.assign(m, {\n    Minimatch: class Minimatch extends orig.Minimatch {\n      constructor(pattern: string, options: MinimatchOptions = {}) {\n        super(pattern, ext(def, options))\n      }\n      static defaults(options: MinimatchOptions) {\n        return orig.defaults(ext(def, options)).Minimatch\n      }\n    },\n\n    AST: class AST extends orig.AST {\n      /* c8 ignore start */\n      constructor(\n        type: ExtglobType | null,\n        parent?: AST,\n        options: MinimatchOptions = {}\n      ) {\n        super(type, parent, ext(def, options))\n      }\n      /* c8 ignore stop */\n\n      static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n        return orig.AST.fromGlob(pattern, ext(def, options))\n      }\n    },\n\n    unescape: (\n      s: string,\n      options: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n    ) => orig.unescape(s, ext(def, options)),\n\n    escape: (\n      s: string,\n      options: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n    ) => orig.escape(s, ext(def, options)),\n\n    filter: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.filter(pattern, ext(def, options)),\n\n    defaults: (options: MinimatchOptions) => orig.defaults(ext(def, options)),\n\n    makeRe: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.makeRe(pattern, ext(def, options)),\n\n    braceExpand: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.braceExpand(pattern, ext(def, options)),\n\n    match: (list: string[], pattern: string, options: MinimatchOptions = {}) =>\n      orig.match(list, pattern, ext(def, options)),\n\n    sep: orig.sep,\n    GLOBSTAR: GLOBSTAR as typeof GLOBSTAR,\n  })\n}\nminimatch.defaults = defaults\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // Thanks to Yeting Li <https://github.com/yetingli> for\n  // improving this regexp to avoid a ReDOS vulnerability.\n  if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n    // shortcut. no need to expand.\n    return [pattern]\n  }\n\n  return expand(pattern)\n}\nminimatch.braceExpand = braceExpand\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\nexport const makeRe = (pattern: string, options: MinimatchOptions = {}) =>\n  new Minimatch(pattern, options).makeRe()\nminimatch.makeRe = makeRe\n\nexport const match = (\n  list: string[],\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  const mm = new Minimatch(pattern, options)\n  list = list.filter(f => mm.match(f))\n  if (mm.options.nonull && !list.length) {\n    list.push(pattern)\n  }\n  return list\n}\nminimatch.match = match\n\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\nexport type MMRegExp = RegExp & {\n  _src?: string\n  _glob?: string\n}\n\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR\nexport type ParseReturn = ParseReturnFiltered | false\n\nexport class Minimatch {\n  options: MinimatchOptions\n  set: ParseReturnFiltered[][]\n  pattern: string\n\n  windowsPathsNoEscape: boolean\n  nonegate: boolean\n  negate: boolean\n  comment: boolean\n  empty: boolean\n  preserveMultipleSlashes: boolean\n  partial: boolean\n  globSet: string[]\n  globParts: string[][]\n  nocase: boolean\n\n  isWindows: boolean\n  platform: Platform\n  windowsNoMagicRoot: boolean\n\n  regexp: false | null | MMRegExp\n  constructor(pattern: string, options: MinimatchOptions = {}) {\n    assertValidPattern(pattern)\n\n    options = options || {}\n    this.options = options\n    this.pattern = pattern\n    this.platform = options.platform || defaultPlatform\n    this.isWindows = this.platform === 'win32'\n    this.windowsPathsNoEscape =\n      !!options.windowsPathsNoEscape || options.allowWindowsEscape === false\n    if (this.windowsPathsNoEscape) {\n      this.pattern = this.pattern.replace(/\\\\/g, '/')\n    }\n    this.preserveMultipleSlashes = !!options.preserveMultipleSlashes\n    this.regexp = null\n    this.negate = false\n    this.nonegate = !!options.nonegate\n    this.comment = false\n    this.empty = false\n    this.partial = !!options.partial\n    this.nocase = !!this.options.nocase\n    this.windowsNoMagicRoot =\n      options.windowsNoMagicRoot !== undefined\n        ? options.windowsNoMagicRoot\n        : !!(this.isWindows && this.nocase)\n\n    this.globSet = []\n    this.globParts = []\n    this.set = []\n\n    // make the set of regexps etc.\n    this.make()\n  }\n\n  hasMagic(): boolean {\n    if (this.options.magicalBraces && this.set.length > 1) {\n      return true\n    }\n    for (const pattern of this.set) {\n      for (const part of pattern) {\n        if (typeof part !== 'string') return true\n      }\n    }\n    return false\n  }\n\n  debug(..._: any[]) {}\n\n  make() {\n    const pattern = this.pattern\n    const options = this.options\n\n    // empty patterns and comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n      this.comment = true\n      return\n    }\n\n    if (!pattern) {\n      this.empty = true\n      return\n    }\n\n    // step 1: figure out negation, etc.\n    this.parseNegate()\n\n    // step 2: expand braces\n    this.globSet = [...new Set(this.braceExpand())]\n\n    if (options.debug) {\n      this.debug = (...args: any[]) => console.error(...args)\n    }\n\n    this.debug(this.pattern, this.globSet)\n\n    // step 3: now we have a set, so turn each one into a series of\n    // path-portion matching patterns.\n    // These will be regexps, except in the case of \"**\", which is\n    // set to the GLOBSTAR object for globstar behavior,\n    // and will not contain any / characters\n    //\n    // First, we preprocess to make the glob pattern sets a bit simpler\n    // and deduped.  There are some perf-killing patterns that can cause\n    // problems with a glob walk, but we can simplify them down a bit.\n    const rawGlobParts = this.globSet.map(s => this.slashSplit(s))\n    this.globParts = this.preprocess(rawGlobParts)\n    this.debug(this.pattern, this.globParts)\n\n    // glob --> regexps\n    let set = this.globParts.map((s, _, __) => {\n      if (this.isWindows && this.windowsNoMagicRoot) {\n        // check if it's a drive or unc path.\n        const isUNC =\n          s[0] === '' &&\n          s[1] === '' &&\n          (s[2] === '?' || !globMagic.test(s[2])) &&\n          !globMagic.test(s[3])\n        const isDrive = /^[a-z]:/i.test(s[0])\n        if (isUNC) {\n          return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]\n        } else if (isDrive) {\n          return [s[0], ...s.slice(1).map(ss => this.parse(ss))]\n        }\n      }\n      return s.map(ss => this.parse(ss))\n    })\n\n    this.debug(this.pattern, set)\n\n    // filter out everything that didn't compile properly.\n    this.set = set.filter(\n      s => s.indexOf(false) === -1\n    ) as ParseReturnFiltered[][]\n\n    // do not treat the ? in UNC paths as magic\n    if (this.isWindows) {\n      for (let i = 0; i < this.set.length; i++) {\n        const p = this.set[i]\n        if (\n          p[0] === '' &&\n          p[1] === '' &&\n          this.globParts[i][2] === '?' &&\n          typeof p[3] === 'string' &&\n          /^[a-z]:$/i.test(p[3])\n        ) {\n          p[2] = '?'\n        }\n      }\n    }\n\n    this.debug(this.pattern, this.set)\n  }\n\n  // various transforms to equivalent pattern sets that are\n  // faster to process in a filesystem walk.  The goal is to\n  // eliminate what we can, and push all ** patterns as far\n  // to the right as possible, even if it increases the number\n  // of patterns that we have to process.\n  preprocess(globParts: string[][]) {\n    // if we're not in globstar mode, then turn all ** into *\n    if (this.options.noglobstar) {\n      for (let i = 0; i < globParts.length; i++) {\n        for (let j = 0; j < globParts[i].length; j++) {\n          if (globParts[i][j] === '**') {\n            globParts[i][j] = '*'\n          }\n        }\n      }\n    }\n\n    const { optimizationLevel = 1 } = this.options\n\n    if (optimizationLevel >= 2) {\n      // aggressive optimization for the purpose of fs walking\n      globParts = this.firstPhasePreProcess(globParts)\n      globParts = this.secondPhasePreProcess(globParts)\n    } else if (optimizationLevel >= 1) {\n      // just basic optimizations to remove some .. parts\n      globParts = this.levelOneOptimize(globParts)\n    } else {\n      // just collapse multiple ** portions into one\n      globParts = this.adjascentGlobstarOptimize(globParts)\n    }\n\n    return globParts\n  }\n\n  // just get rid of adjascent ** portions\n  adjascentGlobstarOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      let gs: number = -1\n      while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n        let i = gs\n        while (parts[i + 1] === '**') {\n          i++\n        }\n        if (i !== gs) {\n          parts.splice(gs, i - gs)\n        }\n      }\n      return parts\n    })\n  }\n\n  // get rid of adjascent ** and resolve .. portions\n  levelOneOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      parts = parts.reduce((set: string[], part) => {\n        const prev = set[set.length - 1]\n        if (part === '**' && prev === '**') {\n          return set\n        }\n        if (part === '..') {\n          if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n            set.pop()\n            return set\n          }\n        }\n        set.push(part)\n        return set\n      }, [])\n      return parts.length === 0 ? [''] : parts\n    })\n  }\n\n  levelTwoFileOptimize(parts: string | string[]) {\n    if (!Array.isArray(parts)) {\n      parts = this.slashSplit(parts)\n    }\n    let didSomething: boolean = false\n    do {\n      didSomething = false\n      // <pre>/<e>/<rest> -> <pre>/<rest>\n      if (!this.preserveMultipleSlashes) {\n        for (let i = 1; i < parts.length - 1; i++) {\n          const p = parts[i]\n          // don't squeeze out UNC patterns\n          if (i === 1 && p === '' && parts[0] === '') continue\n          if (p === '.' || p === '') {\n            didSomething = true\n            parts.splice(i, 1)\n            i--\n          }\n        }\n        if (\n          parts[0] === '.' &&\n          parts.length === 2 &&\n          (parts[1] === '.' || parts[1] === '')\n        ) {\n          didSomething = true\n          parts.pop()\n        }\n      }\n\n      // <pre>/<p>/../<rest> -> <pre>/<rest>\n      let dd: number = 0\n      while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n        const p = parts[dd - 1]\n        if (p && p !== '.' && p !== '..' && p !== '**') {\n          didSomething = true\n          parts.splice(dd - 1, 2)\n          dd -= 2\n        }\n      }\n    } while (didSomething)\n    return parts.length === 0 ? [''] : parts\n  }\n\n  // First phase: single-pattern processing\n  // <pre> is 1 or more portions\n  // <rest> is 1 or more portions\n  // <p> is any portion other than ., .., '', or **\n  // <e> is . or ''\n  //\n  // **/.. is *brutal* for filesystem walking performance, because\n  // it effectively resets the recursive walk each time it occurs,\n  // and ** cannot be reduced out by a .. pattern part like a regexp\n  // or most strings (other than .., ., and '') can be.\n  //\n  // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>}\n  // <pre>/<e>/<rest> -> <pre>/<rest>\n  // <pre>/<p>/../<rest> -> <pre>/<rest>\n  // **/**/<rest> -> **/<rest>\n  //\n  // **/*/<rest> -> */**/<rest> <== not valid because ** doesn't follow\n  // this WOULD be allowed if ** did follow symlinks, or * didn't\n  firstPhasePreProcess(globParts: string[][]) {\n    let didSomething = false\n    do {\n      didSomething = false\n      // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>}\n      for (let parts of globParts) {\n        let gs: number = -1\n        while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n          let gss: number = gs\n          while (parts[gss + 1] === '**') {\n            // <pre>/**/**/<rest> -> <pre>/**/<rest>\n            gss++\n          }\n          // eg, if gs is 2 and gss is 4, that means we have 3 **\n          // parts, and can remove 2 of them.\n          if (gss > gs) {\n            parts.splice(gs + 1, gss - gs)\n          }\n\n          let next = parts[gs + 1]\n          const p = parts[gs + 2]\n          const p2 = parts[gs + 3]\n          if (next !== '..') continue\n          if (\n            !p ||\n            p === '.' ||\n            p === '..' ||\n            !p2 ||\n            p2 === '.' ||\n            p2 === '..'\n          ) {\n            continue\n          }\n          didSomething = true\n          // edit parts in place, and push the new one\n          parts.splice(gs, 1)\n          const other = parts.slice(0)\n          other[gs] = '**'\n          globParts.push(other)\n          gs--\n        }\n\n        // <pre>/<e>/<rest> -> <pre>/<rest>\n        if (!this.preserveMultipleSlashes) {\n          for (let i = 1; i < parts.length - 1; i++) {\n            const p = parts[i]\n            // don't squeeze out UNC patterns\n            if (i === 1 && p === '' && parts[0] === '') continue\n            if (p === '.' || p === '') {\n              didSomething = true\n              parts.splice(i, 1)\n              i--\n            }\n          }\n          if (\n            parts[0] === '.' &&\n            parts.length === 2 &&\n            (parts[1] === '.' || parts[1] === '')\n          ) {\n            didSomething = true\n            parts.pop()\n          }\n        }\n\n        // <pre>/<p>/../<rest> -> <pre>/<rest>\n        let dd: number = 0\n        while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n          const p = parts[dd - 1]\n          if (p && p !== '.' && p !== '..' && p !== '**') {\n            didSomething = true\n            const needDot = dd === 1 && parts[dd + 1] === '**'\n            const splin = needDot ? ['.'] : []\n            parts.splice(dd - 1, 2, ...splin)\n            if (parts.length === 0) parts.push('')\n            dd -= 2\n          }\n        }\n      }\n    } while (didSomething)\n\n    return globParts\n  }\n\n  // second phase: multi-pattern dedupes\n  // {<pre>/*/<rest>,<pre>/<p>/<rest>} -> <pre>/*/<rest>\n  // {<pre>/<rest>,<pre>/<rest>} -> <pre>/<rest>\n  // {<pre>/**/<rest>,<pre>/<rest>} -> <pre>/**/<rest>\n  //\n  // {<pre>/**/<rest>,<pre>/**/<p>/<rest>} -> <pre>/**/<rest>\n  // ^-- not valid because ** doens't follow symlinks\n  secondPhasePreProcess(globParts: string[][]): string[][] {\n    for (let i = 0; i < globParts.length - 1; i++) {\n      for (let j = i + 1; j < globParts.length; j++) {\n        const matched = this.partsMatch(\n          globParts[i],\n          globParts[j],\n          !this.preserveMultipleSlashes\n        )\n        if (matched) {\n          globParts[i] = []\n          globParts[j] = matched\n          break\n        }\n      }\n    }\n    return globParts.filter(gs => gs.length)\n  }\n\n  partsMatch(\n    a: string[],\n    b: string[],\n    emptyGSMatch: boolean = false\n  ): false | string[] {\n    let ai = 0\n    let bi = 0\n    let result: string[] = []\n    let which: string = ''\n    while (ai < a.length && bi < b.length) {\n      if (a[ai] === b[bi]) {\n        result.push(which === 'b' ? b[bi] : a[ai])\n        ai++\n        bi++\n      } else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n        result.push(a[ai])\n        ai++\n      } else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n        result.push(b[bi])\n        bi++\n      } else if (\n        a[ai] === '*' &&\n        b[bi] &&\n        (this.options.dot || !b[bi].startsWith('.')) &&\n        b[bi] !== '**'\n      ) {\n        if (which === 'b') return false\n        which = 'a'\n        result.push(a[ai])\n        ai++\n        bi++\n      } else if (\n        b[bi] === '*' &&\n        a[ai] &&\n        (this.options.dot || !a[ai].startsWith('.')) &&\n        a[ai] !== '**'\n      ) {\n        if (which === 'a') return false\n        which = 'b'\n        result.push(b[bi])\n        ai++\n        bi++\n      } else {\n        return false\n      }\n    }\n    // if we fall out of the loop, it means they two are identical\n    // as long as their lengths match\n    return a.length === b.length && result\n  }\n\n  parseNegate() {\n    if (this.nonegate) return\n\n    const pattern = this.pattern\n    let negate = false\n    let negateOffset = 0\n\n    for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n      negate = !negate\n      negateOffset++\n    }\n\n    if (negateOffset) this.pattern = pattern.slice(negateOffset)\n    this.negate = negate\n  }\n\n  // set partial to true to test if, for example,\n  // \"/a/b\" matches the start of \"/*/b/*/d\"\n  // Partial means, if you run out of file before you run\n  // out of pattern, then that's fine, as long as all\n  // the parts match.\n  matchOne(file: string[], pattern: ParseReturn[], partial: boolean = false) {\n    const options = this.options\n\n    // UNC paths like //?/X:/... can match X:/... and vice versa\n    // Drive letters in absolute drive or unc paths are always compared\n    // case-insensitively.\n    if (this.isWindows) {\n      const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0])\n      const fileUNC =\n        !fileDrive &&\n        file[0] === '' &&\n        file[1] === '' &&\n        file[2] === '?' &&\n        /^[a-z]:$/i.test(file[3])\n\n      const patternDrive =\n        typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0])\n      const patternUNC =\n        !patternDrive &&\n        pattern[0] === '' &&\n        pattern[1] === '' &&\n        pattern[2] === '?' &&\n        typeof pattern[3] === 'string' &&\n        /^[a-z]:$/i.test(pattern[3])\n\n      const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined\n      const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined\n      if (typeof fdi === 'number' && typeof pdi === 'number') {\n        const [fd, pd]: [string, string] = [file[fdi], pattern[pdi] as string]\n        if (fd.toLowerCase() === pd.toLowerCase()) {\n          pattern[pdi] = fd\n          if (pdi > fdi) {\n            pattern = pattern.slice(pdi)\n          } else if (fdi > pdi) {\n            file = file.slice(fdi)\n          }\n        }\n      }\n    }\n\n    // resolve and reduce . and .. portions in the file as well.\n    // dont' need to do the second phase, because it's only one string[]\n    const { optimizationLevel = 1 } = this.options\n    if (optimizationLevel >= 2) {\n      file = this.levelTwoFileOptimize(file)\n    }\n\n    this.debug('matchOne', this, { file, pattern })\n    this.debug('matchOne', file.length, pattern.length)\n\n    for (\n      var fi = 0, pi = 0, fl = file.length, pl = pattern.length;\n      fi < fl && pi < pl;\n      fi++, pi++\n    ) {\n      this.debug('matchOne loop')\n      var p = pattern[pi]\n      var f = file[fi]\n\n      this.debug(pattern, p, f)\n\n      // should be impossible.\n      // some invalid regexp stuff in the set.\n      /* c8 ignore start */\n      if (p === false) {\n        return false\n      }\n      /* c8 ignore stop */\n\n      if (p === GLOBSTAR) {\n        this.debug('GLOBSTAR', [pattern, p, f])\n\n        // \"**\"\n        // a/**/b/**/c would match the following:\n        // a/b/x/y/z/c\n        // a/x/y/z/b/c\n        // a/b/x/b/x/c\n        // a/b/c\n        // To do this, take the rest of the pattern after\n        // the **, and see if it would match the file remainder.\n        // If so, return success.\n        // If not, the ** \"swallows\" a segment, and try again.\n        // This is recursively awful.\n        //\n        // a/**/b/**/c matching a/b/x/y/z/c\n        // - a matches a\n        // - doublestar\n        //   - matchOne(b/x/y/z/c, b/**/c)\n        //     - b matches b\n        //     - doublestar\n        //       - matchOne(x/y/z/c, c) -> no\n        //       - matchOne(y/z/c, c) -> no\n        //       - matchOne(z/c, c) -> no\n        //       - matchOne(c, c) yes, hit\n        var fr = fi\n        var pr = pi + 1\n        if (pr === pl) {\n          this.debug('** at the end')\n          // a ** at the end will just swallow the rest.\n          // We have found a match.\n          // however, it will not swallow /.x, unless\n          // options.dot is set.\n          // . and .. are *never* matched by **, for explosively\n          // exponential reasons.\n          for (; fi < fl; fi++) {\n            if (\n              file[fi] === '.' ||\n              file[fi] === '..' ||\n              (!options.dot && file[fi].charAt(0) === '.')\n            )\n              return false\n          }\n          return true\n        }\n\n        // ok, let's see if we can swallow whatever we can.\n        while (fr < fl) {\n          var swallowee = file[fr]\n\n          this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n          // XXX remove this slice.  Just pass the start index.\n          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n            this.debug('globstar found match!', fr, fl, swallowee)\n            // found a match.\n            return true\n          } else {\n            // can't swallow \".\" or \"..\" ever.\n            // can only swallow \".foo\" when explicitly asked.\n            if (\n              swallowee === '.' ||\n              swallowee === '..' ||\n              (!options.dot && swallowee.charAt(0) === '.')\n            ) {\n              this.debug('dot detected!', file, fr, pattern, pr)\n              break\n            }\n\n            // ** swallows a segment, and continue.\n            this.debug('globstar swallow a segment, and continue')\n            fr++\n          }\n        }\n\n        // no match was found.\n        // However, in partial mode, we can't say this is necessarily over.\n        /* c8 ignore start */\n        if (partial) {\n          // ran out of file\n          this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n          if (fr === fl) {\n            return true\n          }\n        }\n        /* c8 ignore stop */\n        return false\n      }\n\n      // something other than **\n      // non-magic patterns just have to match exactly\n      // patterns with magic have been turned into regexps.\n      let hit: boolean\n      if (typeof p === 'string') {\n        hit = f === p\n        this.debug('string match', p, f, hit)\n      } else {\n        hit = p.test(f)\n        this.debug('pattern match', p, f, hit)\n      }\n\n      if (!hit) return false\n    }\n\n    // Note: ending in / means that we'll get a final \"\"\n    // at the end of the pattern.  This can only match a\n    // corresponding \"\" at the end of the file.\n    // If the file ends in /, then it can only match a\n    // a pattern that ends in /, unless the pattern just\n    // doesn't have any more for it. But, a/b/ should *not*\n    // match \"a/b/*\", even though \"\" matches against the\n    // [^/]*? pattern, except in partial mode, where it might\n    // simply not be reached yet.\n    // However, a/b/ should still satisfy a/*\n\n    // now either we fell off the end of the pattern, or we're done.\n    if (fi === fl && pi === pl) {\n      // ran out of pattern and filename at the same time.\n      // an exact hit!\n      return true\n    } else if (fi === fl) {\n      // ran out of file, but still had pattern left.\n      // this is ok if we're doing the match as part of\n      // a glob fs traversal.\n      return partial\n    } else if (pi === pl) {\n      // ran out of pattern, still have file left.\n      // this is only acceptable if we're on the very last\n      // empty segment of a file with a trailing slash.\n      // a/* should match a/b/\n      return fi === fl - 1 && file[fi] === ''\n\n      /* c8 ignore start */\n    } else {\n      // should be unreachable.\n      throw new Error('wtf?')\n    }\n    /* c8 ignore stop */\n  }\n\n  braceExpand() {\n    return braceExpand(this.pattern, this.options)\n  }\n\n  parse(pattern: string): ParseReturn {\n    assertValidPattern(pattern)\n\n    const options = this.options\n\n    // shortcuts\n    if (pattern === '**') return GLOBSTAR\n    if (pattern === '') return ''\n\n    // far and away, the most common glob pattern parts are\n    // *, *.*, and *.<ext>  Add a fast check method for those.\n    let m: RegExpMatchArray | null\n    let fastTest: null | ((f: string) => boolean) = null\n    if ((m = pattern.match(starRE))) {\n      fastTest = options.dot ? starTestDot : starTest\n    } else if ((m = pattern.match(starDotExtRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? starDotExtTestNocaseDot\n            : starDotExtTestNocase\n          : options.dot\n          ? starDotExtTestDot\n          : starDotExtTest\n      )(m[1])\n    } else if ((m = pattern.match(qmarksRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? qmarksTestNocaseDot\n            : qmarksTestNocase\n          : options.dot\n          ? qmarksTestDot\n          : qmarksTest\n      )(m)\n    } else if ((m = pattern.match(starDotStarRE))) {\n      fastTest = options.dot ? starDotStarTestDot : starDotStarTest\n    } else if ((m = pattern.match(dotStarRE))) {\n      fastTest = dotStarTest\n    }\n\n    const re = AST.fromGlob(pattern, this.options).toMMPattern()\n    if (fastTest && typeof re === 'object') {\n      // Avoids overriding in frozen environments\n      Reflect.defineProperty(re, 'test', { value: fastTest })\n    }\n    return re\n  }\n\n  makeRe() {\n    if (this.regexp || this.regexp === false) return this.regexp\n\n    // at this point, this.set is a 2d array of partial\n    // pattern strings, or \"**\".\n    //\n    // It's better to use .match().  This function shouldn't\n    // be used, really, but it's pretty convenient sometimes,\n    // when you just want to work with a regex.\n    const set = this.set\n\n    if (!set.length) {\n      this.regexp = false\n      return this.regexp\n    }\n    const options = this.options\n\n    const twoStar = options.noglobstar\n      ? star\n      : options.dot\n      ? twoStarDot\n      : twoStarNoDot\n    const flags = new Set(options.nocase ? ['i'] : [])\n\n    // regexpify non-globstar patterns\n    // if ** is only item, then we just do one twoStar\n    // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n    // if ** is last, append (\\/twoStar|) to previous\n    // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n    // then filter out GLOBSTAR symbols\n    let re = set\n      .map(pattern => {\n        const pp: (string | typeof GLOBSTAR)[] = pattern.map(p => {\n          if (p instanceof RegExp) {\n            for (const f of p.flags.split('')) flags.add(f)\n          }\n          return typeof p === 'string'\n            ? regExpEscape(p)\n            : p === GLOBSTAR\n            ? GLOBSTAR\n            : p._src\n        }) as (string | typeof GLOBSTAR)[]\n        pp.forEach((p, i) => {\n          const next = pp[i + 1]\n          const prev = pp[i - 1]\n          if (p !== GLOBSTAR || prev === GLOBSTAR) {\n            return\n          }\n          if (prev === undefined) {\n            if (next !== undefined && next !== GLOBSTAR) {\n              pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next\n            } else {\n              pp[i] = twoStar\n            }\n          } else if (next === undefined) {\n            pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?'\n          } else if (next !== GLOBSTAR) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next\n            pp[i + 1] = GLOBSTAR\n          }\n        })\n        return pp.filter(p => p !== GLOBSTAR).join('/')\n      })\n      .join('|')\n\n    // need to wrap in parens if we had more than one thing with |,\n    // otherwise only the first will be anchored to ^ and the last to $\n    const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']\n    // must match entire pattern\n    // ending in a * or ** will make it less strict.\n    re = '^' + open + re + close + '$'\n\n    // can match anything, as long as it's not this.\n    if (this.negate) re = '^(?!' + re + ').+$'\n\n    try {\n      this.regexp = new RegExp(re, [...flags].join(''))\n      /* c8 ignore start */\n    } catch (ex) {\n      // should be impossible\n      this.regexp = false\n    }\n    /* c8 ignore stop */\n    return this.regexp\n  }\n\n  slashSplit(p: string) {\n    // if p starts with // on windows, we preserve that\n    // so that UNC paths aren't broken.  Otherwise, any number of\n    // / characters are coalesced into one, unless\n    // preserveMultipleSlashes is set to true.\n    if (this.preserveMultipleSlashes) {\n      return p.split('/')\n    } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n      // add an extra '' for the one we lose\n      return ['', ...p.split(/\\/+/)]\n    } else {\n      return p.split(/\\/+/)\n    }\n  }\n\n  match(f: string, partial = this.partial) {\n    this.debug('match', f, this.pattern)\n    // short-circuit in the case of busted things.\n    // comments, etc.\n    if (this.comment) {\n      return false\n    }\n    if (this.empty) {\n      return f === ''\n    }\n\n    if (f === '/' && partial) {\n      return true\n    }\n\n    const options = this.options\n\n    // windows: need to use /, not \\\n    if (this.isWindows) {\n      f = f.split('\\\\').join('/')\n    }\n\n    // treat the test path as a set of pathparts.\n    const ff = this.slashSplit(f)\n    this.debug(this.pattern, 'split', ff)\n\n    // just ONE of the pattern sets in this.set needs to match\n    // in order for it to be valid.  If negating, then just one\n    // match means that we have failed.\n    // Either way, return on the first hit.\n\n    const set = this.set\n    this.debug(this.pattern, 'set', set)\n\n    // Find the basename of the path by looking for the last non-empty segment\n    let filename: string = ff[ff.length - 1]\n    if (!filename) {\n      for (let i = ff.length - 2; !filename && i >= 0; i--) {\n        filename = ff[i]\n      }\n    }\n\n    for (let i = 0; i < set.length; i++) {\n      const pattern = set[i]\n      let file = ff\n      if (options.matchBase && pattern.length === 1) {\n        file = [filename]\n      }\n      const hit = this.matchOne(file, pattern, partial)\n      if (hit) {\n        if (options.flipNegate) {\n          return true\n        }\n        return !this.negate\n      }\n    }\n\n    // didn't get any hits.  this is success if it's a negative\n    // pattern, failure otherwise.\n    if (options.flipNegate) {\n      return false\n    }\n    return this.negate\n  }\n\n  static defaults(def: MinimatchOptions) {\n    return minimatch.defaults(def).Minimatch\n  }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js'\nexport { escape } from './escape.js'\nexport { unescape } from './unescape.js'\n/* c8 ignore stop */\nminimatch.AST = AST\nminimatch.Minimatch = Minimatch\nminimatch.escape = escape\nminimatch.unescape = unescape\n", "import type {SatelliteConfig} from '@junobuild/config';\nimport {minimatch} from 'minimatch';\nimport {createReadStream, createWriteStream} from 'node:fs';\nimport {Readable} from 'node:stream';\nimport {createGunzip, createGzip} from 'node:zlib';\nimport {DEPLOY_DEFAULT_GZIP} from '../constants/deploy.constants';\n\nexport const gunzipFile = async ({source}: {source: Buffer}): Promise<Buffer> =>\n  await new Promise<Buffer>((resolve, reject) => {\n    const sourceStream = Readable.from(source);\n\n    const chunks: Uint8Array[] = [];\n\n    const gzip = createGunzip();\n\n    sourceStream.pipe(gzip);\n\n    gzip.on('data', (chunk: Uint8Array) => chunks.push(chunk));\n    gzip.on('end', () => {\n      resolve(Buffer.concat(chunks));\n    });\n    gzip.on('error', reject);\n  });\n\nexport const gzipFiles = async ({\n  sourceFiles,\n  gzip\n}: {sourceFiles: string[]} & Required<Pick<SatelliteConfig, 'gzip'>>): Promise<string[]> => {\n  if (gzip === false) {\n    return [];\n  }\n\n  // @ts-expect-error we read json so, it's possible that one provide a boolean that does not match the TS type\n  const pattern = gzip === true ? DEPLOY_DEFAULT_GZIP : gzip;\n\n  const filesToCompress = sourceFiles.filter((file) => minimatch(file, pattern));\n  return await Promise.all(filesToCompress.map(async (source) => await gzipFile({source})));\n};\n\nexport const gzipFile = async ({\n  source,\n  destination\n}: {\n  source: string;\n  destination?: string;\n}): Promise<string> =>\n  await new Promise<string>((resolve, reject) => {\n    const sourceStream = createReadStream(source);\n\n    const destinationPath = destination ?? `${source}.gz`;\n    const destinationStream = createWriteStream(destinationPath);\n\n    const gzip = createGzip();\n\n    sourceStream.pipe(gzip).pipe(destinationStream);\n\n    destinationStream.on('close', () => {\n      resolve(destinationPath);\n    });\n    destinationStream.on('error', reject);\n  });\n\nexport const isGzip = (buffer: Buffer): boolean =>\n  buffer.length > 2 && buffer[0] === 0x1f && buffer[1] === 0x8b;\n", "import type {SatelliteConfig} from '@junobuild/config';\nimport {minimatch} from 'minimatch';\nimport {lstatSync} from 'node:fs';\nimport {basename} from 'node:path';\nimport {IGNORE_OS_FILES} from '../constants/deploy.constants';\nimport {files} from './fs.utils';\n\nexport const fullPath = ({\n  file,\n  sourceAbsolutePath\n}: {\n  file: string;\n  sourceAbsolutePath: string;\n}): string => file.replace(sourceAbsolutePath, '').replace(/\\\\/g, '/');\n\nexport const listSourceFiles = ({\n  sourceAbsolutePath,\n  ignore\n}: {sourceAbsolutePath: string} & Required<Pick<SatelliteConfig, 'ignore'>>): string[] => {\n  const sourceFiles = files(sourceAbsolutePath);\n\n  return sourceFiles.filter((file) => filterFile({file, ignore}));\n};\n\nconst filterFile = ({\n  file,\n  ignore\n}: {file: string} & Required<Pick<SatelliteConfig, 'ignore'>>): boolean => {\n  // File must not be empty >= 0kb\n  if (lstatSync(file).size <= 0) {\n    return false;\n  }\n\n  // Ignore .DS_Store on Mac or Thumbs.db on Windows\n  if (IGNORE_OS_FILES.includes(basename(file).toLowerCase())) {\n    return false;\n  }\n\n  return ignore.find((pattern) => minimatch(file, pattern)) === undefined;\n};\n", "import {lstatSync, readdirSync} from 'node:fs';\nimport {access} from 'node:fs/promises';\nimport {join} from 'node:path';\n\nexport const files = (source: string): string[] =>\n  readdirSync(source).flatMap((file) => {\n    const path = join(source, file);\n    return lstatSync(path).isDirectory() ? files(path) : join(path);\n  });\n\nexport const fileExists = async (path: string): Promise<boolean> => {\n  try {\n    await access(path);\n    return true;\n  } catch (err: unknown) {\n    if (err instanceof Error && 'code' in err && (err as NodeJS.ErrnoException).code === 'ENOENT') {\n      return false;\n    }\n    throw err;\n  }\n};\n\nexport const fileSizeInBytes = (path: string): number => {\n  const {size} = lstatSync(path);\n  return size;\n};\n", "import {fromNullable, isNullish, uint8ArrayToHexString} from '@dfinity/utils';\nimport {commitProposal, initProposal, submitProposal} from '@junobuild/cdn';\nimport type {ProposeChangesParams} from '../types/proposal';\n\n/**\n * Handles a change lifecycle using a proposal workflow, and optionally commits it.\n *\n * This function:\n * 1. Initializes a new change (proposal) in the CDN.\n * 2. Executes the provided `executeChanges` function to upload assets or WASM.\n * 3. If changes were uploaded, submits the proposal.\n * 4. Logs metadata (ID, status, hash).\n * 5. Optionally commits the change if `autoCommit` is `true`.\n *\n * If no changes are detected during deploy, the function exits early.\n *\n * @param {Object} options - The deployment options.\n * @param {ProposalType} options.proposalType - The type of change being proposed (e.g., deploy, upgrade).\n * @param {CdnParameters} options.cdn - Parameters for interacting with the CDN and associated governance.\n * @param {Function} options.executeChanges - A function that performs the actual upload and returns a `DeployResult`.\n *   Receives the generated proposal ID as input.\n * @param {boolean} options.autoCommit - If `true`, the function will also commit the change after submission.\n *\n * @returns {Promise<{proposalId: bigint}>} Resolves once the deployment and optional commit are complete.\n * Returns the proposal ID that was created.\n *\n * @throws {Error} If the SHA256 hash returned from `submitProposal` is `null` or `undefined`.\n */\nexport const proposeChanges = async ({\n  proposalType,\n  cdn,\n  executeChanges,\n  autoCommit\n}: ProposeChangesParams): Promise<{proposalId: bigint}> => {\n  const [proposalId, _] = await initProposal({proposalType, cdn});\n\n  await executeChanges(proposalId);\n\n  const [__, {sha256: proposalSha256, status}] = await submitProposal({\n    cdn,\n    proposalId\n  });\n\n  const sha256 = fromNullable(proposalSha256);\n\n  console.log('\\nChange submitted.\\n');\n  console.log('\uD83C\uDD94 ', Number(proposalId));\n  console.log('\u23F3 ', Object.keys(status)[0] ?? status);\n\n  if (isNullish(sha256)) {\n    console.log('\u274C Hash undefined. This is unexpected.');\n    process.exit(1);\n  }\n\n  console.log('\uD83D\uDD12 ', uint8ArrayToHexString(sha256));\n\n  if (!autoCommit) {\n    return {proposalId};\n  }\n\n  await commitProposal({\n    proposal: {\n      proposal_id: proposalId,\n      sha256\n    },\n    cdn\n  });\n\n  console.log(`\uD83C\uDFAF Change #${proposalId} applied.`);\n\n  return {proposalId};\n};\n", "import {isNullish, nonNullish, notEmptyString} from '@dfinity/utils';\nimport {Blob} from 'buffer';\nimport Listr from 'listr';\nimport {readFile} from 'node:fs/promises';\nimport {basename, relative} from 'node:path';\nimport {\n  type COLLECTION_CDN_RELEASES,\n  type COLLECTION_DAPP,\n  UPLOAD_BATCH_SIZE\n} from '../constants/deploy.constants';\nimport type {FileAndPaths, FileDetails, UploadFile, UploadFileStorage} from '../types/deploy';\nimport {formatBytes} from '../utils/format.utils';\nimport {fileSizeInBytes} from '../utils/fs.utils';\n\nexport const uploadFiles = async ({\n  files: sourceFiles,\n  uploadFile,\n  sourceAbsolutePath,\n  collection\n}: {\n  files: FileAndPaths[];\n  uploadFile: UploadFile;\n  sourceAbsolutePath: string;\n  collection: typeof COLLECTION_DAPP | typeof COLLECTION_CDN_RELEASES;\n}) => {\n  const upload = async ({file, paths}: FileAndPaths): Promise<void> => {\n    await uploadFileToStorage({\n      collection,\n      ...paths,\n      file,\n      uploadFile\n    });\n  };\n\n  await batchUploadFiles({\n    files: sourceFiles,\n    sourceAbsolutePath,\n    upload\n  });\n\n  logSuccess({files: sourceFiles});\n};\n\nconst logSuccess = ({files}: {files: FileAndPaths[]}) => {\n  const {count, size} = files.reduce(\n    ({count, size}, {paths}) => ({\n      count: count + 1,\n      size: size + fileSizeInBytes(paths.filePath)\n    }),\n    {count: 0, size: 0}\n  );\n\n  console.log(`\\n\u2714 ${count} files uploaded (total: ${formatBytes(size)})`);\n};\n\nconst batchUploadFiles = async ({\n  files: sourceFiles,\n  sourceAbsolutePath,\n  upload\n}: {\n  files: FileAndPaths[];\n  sourceAbsolutePath: string;\n  upload: (params: FileAndPaths) => Promise<void>;\n}) => {\n  const uploadFiles = async (groupFiles: FileAndPaths[]) => {\n    // Execute upload UPLOAD_BATCH_SIZE files at a time max preventively to not stress too much the network\n    for (let i = 0; i < groupFiles.length; i += UPLOAD_BATCH_SIZE) {\n      const files = groupFiles.slice(i, i + UPLOAD_BATCH_SIZE);\n\n      const tasks = new Listr<void>(\n        files.map(({file, paths}) => ({\n          title: `Uploading ${relative(sourceAbsolutePath, file.file)}`,\n          task: async () => await upload({file, paths})\n        })),\n        {concurrent: true}\n      );\n\n      await tasks.run();\n    }\n  };\n\n  // TODO: temporary possible race condition fix until Satellite v0.0.13 is published\n  // We must upload the alternative path first to ensure . Friday Oct. 10 2023 I got unexpected race condition while uploading the Astro sample example (file hoisted.8961d9b1.js).\n  await uploadFiles(sourceFiles.filter(({file: {alternateFile}}) => nonNullish(alternateFile)));\n  await uploadFiles(sourceFiles.filter(({file: {alternateFile}}) => isNullish(alternateFile)));\n};\n\nconst uploadFileToStorage = async ({\n  uploadFile,\n  file,\n  fullPath,\n  collection,\n  filePath,\n  token,\n  description\n}: {\n  file: FileDetails;\n  uploadFile: UploadFile;\n  filePath: string;\n} & Pick<\n  UploadFileStorage,\n  'fullPath' | 'collection' | 'token' | 'description'\n>): Promise<void> => {\n  await uploadFile({\n    filename: basename(filePath),\n    fullPath,\n    data: new Blob([await readFile(file.file)]),\n    collection,\n    headers: [\n      ...(file.mime === undefined ? [] : ([['Content-Type', file.mime]] as Array<[string, string]>))\n    ],\n    encoding: file.encoding,\n    ...(nonNullish(token) && notEmptyString(token) && {token}),\n    ...(nonNullish(description) && notEmptyString(description) && {description})\n  });\n};\n", "export const formatBytes = (bytes: number): string => {\n  const unit = bytes >= 1000 ? 'megabyte' : 'kilobyte';\n\n  const formatter = new Intl.NumberFormat('en', {\n    style: 'unit',\n    unit\n  });\n\n  return formatter.format(bytes / (unit === 'megabyte' ? 1_000_000 : 1_000));\n};\n", "import type {COLLECTION_CDN_RELEASES, COLLECTION_DAPP} from '../constants/deploy.constants';\nimport type {\n  DeployParams,\n  DeployResultWithProposal,\n  FileAndPaths,\n  UploadFileStorage,\n  UploadFileWithProposal\n} from '../types/deploy';\nimport type {ProposeChangesParams} from '../types/proposal';\nimport {proposeChanges} from './proposals.services';\nimport {uploadFiles} from './upload.services';\n\nexport const deployAndProposeChanges = async ({\n  deploy: {uploadFile, files, sourceAbsolutePath, collection},\n  proposal: {proposalType, autoCommit, ...proposalRest}\n}: {\n  deploy: Pick<DeployParams<UploadFileWithProposal>, 'uploadFile'> & {\n    files: FileAndPaths[];\n    sourceAbsolutePath: string;\n    collection: typeof COLLECTION_DAPP | typeof COLLECTION_CDN_RELEASES;\n  };\n  proposal: Omit<ProposeChangesParams, 'executeChanges'>;\n}): Promise<DeployResultWithProposal> => {\n  const executeChanges = async (proposalId: bigint): Promise<void> => {\n    const uploadWithProposalId = (params: UploadFileStorage) =>\n      uploadFile({\n        ...params,\n        proposalId\n      });\n\n    await uploadFiles({\n      files,\n      sourceAbsolutePath,\n      collection,\n      uploadFile: uploadWithProposalId\n    });\n  };\n\n  const {proposalId} = await proposeChanges({\n    ...proposalRest,\n    autoCommit,\n    proposalType,\n    executeChanges\n  });\n\n  if (!autoCommit) {\n    return {result: 'submitted', files: files.map((file) => file.file), proposalId};\n  }\n\n  return {result: 'deployed', files: files.map((file) => file.file), proposalId};\n};\n", "import {toNullable} from '@dfinity/utils';\nimport {COLLECTION_CDN_RELEASES} from '../constants/deploy.constants';\nimport {deployAndProposeChanges} from '../services/deploy.proposal.services';\nimport type {DeployResultWithProposal, FileAndPaths} from '../types/deploy';\nimport type {ProposeChangesParams} from '../types/proposal';\nimport type {PublishSatelliteWasmParams} from '../types/publish';\n\n/**\n * Uploads a Satellite WASM file to the CDN as part of a proposal-based deployment.\n *\n * This function performs a memory check (if provided), packages the WASM file,\n * uploads it to the CDN, and submits a proposal for deployment.\n * Optionally, the proposal can be auto-committed if `autoCommit` is true.\n *\n * @param {Object} options - The deployment and proposal configuration.\n * @param {PublishSatelliteWasmParams} options.deploy - Deployment parameters including the upload function, memory assertion, and file paths.\n * @param {Object} options.proposal - Proposal options.\n * @param {CdnParameters} options.proposal.cdn - CDN and governance configuration.\n * @param {boolean} options.proposal.autoCommit - If `true`, the proposal is automatically committed after submission.\n * @param {string} options.proposal.version - The Satellite version to include in the proposal.\n *\n * @returns {Promise<DeployResultWithProposal>} A result object describing the outcome:\n * - `{ result: 'skipped' }` \u2013 No files were found to upload.\n * - `{ result: 'submitted', files, proposalId }` \u2013 Upload and proposal submission succeeded.\n * - `{ result: 'deployed', files, proposalId }` \u2013 Upload succeeded and proposal was auto-committed.\n */\nexport const publishSatelliteWasmWithProposal = async ({\n  publish: {assertMemory, filePath, fullPath, ...restDeploy},\n  proposal: {version, ...restProposal}\n}: {\n  publish: PublishSatelliteWasmParams;\n  proposal: Pick<ProposeChangesParams, 'cdn' | 'autoCommit'> & {version: string};\n}): Promise<DeployResultWithProposal> => {\n  await assertMemory?.();\n\n  const sourceFiles: FileAndPaths[] = [\n    {\n      file: {\n        file: filePath\n      },\n      paths: {\n        filePath,\n        fullPath\n      }\n    }\n  ];\n\n  const result = await deployAndProposeChanges({\n    deploy: {...restDeploy, files: sourceFiles, collection: COLLECTION_CDN_RELEASES},\n    proposal: {\n      ...restProposal,\n      proposalType: {\n        SegmentsDeployment: {\n          satellite_version: toNullable(version),\n          orbiter: toNullable(),\n          mission_control_version: toNullable()\n        }\n      }\n    }\n  });\n\n  if (result.result === 'deployed') {\n    console.log(`\\n\uD83D\uDCE1 Satellite WASM published to CDN.`);\n  }\n\n  return result;\n};\n", "export const hasArgs = ({args, options}: {args?: string[]; options: string[]}): boolean =>\n  args?.find((arg) => options.includes(arg)) !== undefined;\n\nexport const nextArg = ({args, option}: {args?: string[]; option: string}): string | undefined => {\n  const index = (args ?? []).findIndex((arg) => arg === option);\n\n  if (index === -1) {\n    return undefined;\n  }\n\n  return args?.[index + 1];\n};\n", "import {nonNullish} from '@dfinity/utils';\nimport {get as httpGet} from 'http';\nimport {get as httpsGet, type RequestOptions} from 'https';\n\nexport const downloadFromURL = async (url: string | RequestOptions): Promise<Buffer> =>\n  await new Promise((resolve, reject) => {\n    const protocol = typeof url === 'string' ? URL.parse(url)?.protocol : url.protocol;\n    const get = protocol === 'http:' ? httpGet : httpsGet;\n\n    get(url, async (res) => {\n      if (\n        nonNullish(res.statusCode) &&\n        nonNullish(res.headers.location) &&\n        [301, 302].includes(res.statusCode)\n      ) {\n        await downloadFromURL(res.headers.location).then(resolve, reject);\n      }\n\n      const data: Uint8Array[] = [];\n\n      res.on('data', (chunk) => data.push(chunk));\n      res.on('end', () => {\n        resolve(Buffer.concat(data));\n      });\n      res.on('error', reject);\n    });\n  });\n", "import {readFile} from 'node:fs/promises';\nimport type {PackageJson} from '../types/pkg';\n\nexport const readPackageJson = async ({\n  packageJsonPath\n}: {\n  packageJsonPath: string;\n}): Promise<PackageJson> => {\n  const packageJson = await readFile(packageJsonPath, 'utf-8');\n\n  const {dependencies, version, juno, name} = JSON.parse(packageJson) as PackageJson;\n\n  return {\n    name,\n    version,\n    dependencies,\n    juno\n  };\n};\n", "import {isNullish, nonNullish} from '@dfinity/utils';\n\n// In case an answer is replaced by control+c\nexport const assertAnswerCtrlC: (\n  answer: null | undefined | '' | string,\n  message?: string\n  // eslint-disable-next-line local-rules/prefer-object-params\n) => asserts answer is NonNullable<string> = (\n  answer: null | undefined | '' | string,\n  message?: string\n): void => {\n  if (isNullish(answer) || answer === '') {\n    if (nonNullish(message)) {\n      console.error(message);\n    }\n\n    process.exit(1);\n  }\n};\n"],
  "mappings": "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pB,CAMO,IAAME,GAAsB,CAClC,IAAK,CAACC,EAAQN,IAAYM,EAAON,EAAS,CAAC,EAAI,IAAUM,EAAON,EAAS,CAAC,GAAM,EAAOM,EAAON,EAAS,CAAC,GAAM,GAAQM,EAAON,CAAM,GAAM,GACzI,IAAK,CACN,ECvCO,IAAMO,GAAa,CACzB,MACA,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,QACA,MACA,MACA,MACA,OACA,OACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,SACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,IACA,KACA,MACA,MACA,MACA,QACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,MACA,MACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,QACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,MACA,KACA,OACA,MACD,EAEaC,GAAY,CACxB,aACA,YACA,YACA,aACA,aACA,cACA,oBACA,oBACA,aACA,YACA,qBACA,4BACA,yBACA,uBACA,0BACA,0DACA,0CACA,iDACA,kDACA,0EACA,4EACA,oEACA,yEACA,kBACA,oBACA,+BACA,mBACA,sBACA,8BACA,gCACA,oCACA,YACA,aACA,iBACA,aACA,kBACA,gBACA,YACA,cACA,iBACA,iBACA,yBACA,aACA,aACA,aACA,YACA,YACA,YACA,yBACA,kBACA,aACA,YACA,gBACA,YACA,kBACA,oBACA,4BACA,2BACA,gCACA,kBACA,mBACA,YACA,aACA,gCACA,WACA,WACA,kBACA,eACA,cACA,yBACA,kBACA,mBACA,wBACA,iCACA,wCACA,oCACA,oBACA,6BACA,oBACA,yBACA,qBACA,oBACA,oBACA,kBACA,aACA,wBACA,YACA,YACA,YACA,YACA,YACA,YACA,aACA,kBACA,iCACA,aACA,sBACA,aACA,sBACA,aACA,YACA,oBACA,mBACA,gBACA,aACA,WACA,oBACA,+BACA,cACA,4BACA,4BACA,cACA,yBACA,cACA,aACA,sBACA,mBACA,oBACA,oBACA,wBACA,uBACA,cACA,cACA,2BACA,YACA,aACA,cACA,aACA,aACA,aACA,+BACA,aACA,+BACA,4BACA,qBACA,YACA,8BACA,YACA,YACA,mBACA,YACA,6BACA,gBACA,iCACA,sBACA,oBACA,qBACA,+BACA,mBACA,6BACA,6BACA,wBACA,0CACA,+BACA,oBACA,wEACA,uEACA,0EACA,oDACA,mDACA,0DACA,2DACA,8CACA,uDACA,iDACA,mDACA,mDACA,yDACA,6DACA,2BACA,8BACD,EC/UO,IAAMC,GAAiC,KAc9C,SAASC,GAAwBC,EAAU,CAE1C,OADAA,EAAWA,EAAS,YAAY,EACxBA,EAAU,CACjB,IAAK,uBACJ,MAAO,CACN,IAAK,OACL,KAAMA,CACP,EACD,IAAK,0CACJ,MAAO,CACN,IAAK,MACL,KAAMA,CACP,EACD,IAAK,mDACJ,MAAO,CACN,IAAK,MACL,KAAMA,CACP,EACD,IAAK,iDACJ,MAAO,CACN,IAAK,MACL,KAAMA,CACP,EACD,IAAK,0DACJ,MAAO,CACN,IAAK,MACL,KAAMA,CACP,EACD,IAAK,kDACJ,MAAO,CACN,IAAK,MACL,KAAMA,CACP,EACD,IAAK,2DACJ,MAAO,CACN,IAAK,MACL,KAAMA,CACP,EACD,IAAK,8CACJ,MAAO,CACN,IAAK,MACL,KAAMA,CACP,EACD,IAAK,uDACJ,MAAO,CACN,IAAK,MACL,KAAMA,CACP,EACD,IAAK,yEACJ,MAAO,CACN,IAAK,OACL,KAAMA,CACP,EACD,IAAK,oEACJ,MAAO,CACN,IAAK,OACL,KAAMA,CACP,EACD,IAAK,8CACJ,MAAO,CACN,IAAK,OACL,KAAM,gDACP,EACD,IAAK,uEACJ,MAAO,CACN,IAAK,OACL,KAAMA,CACP,EACD,IAAK,iDACJ,MAAO,CACN,IAAK,OACL,KAAM,mDACP,EACD,IAAK,uDACJ,MAAO,CACN,IAAK,OACL,KAAM,yDACP,EACD,IAAK,0EACJ,MAAO,CACN,IAAK,OACL,KAAMA,CACP,EACD,IAAK,gDACJ,MAAO,CACN,IAAK,OACL,KAAM,kDACP,EACD,IAAK,0EACJ,MAAO,CACN,IAAK,OACL,KAAMA,CACP,EACD,IAAK,wDACJ,MAAO,CACN,IAAK,OACL,KAAM,kDACP,EACD,IAAK,wEACJ,MAAO,CACN,IAAK,OACL,KAAMA,CACP,EACD,IAAK,sDACJ,MAAO,CACN,IAAK,OACL,KAAM,wDACP,EACD,IAAK,4EACJ,MAAO,CACN,IAAK,OACL,KAAMA,CACP,EACD,IAAK,0DACJ,MAAO,CACN,IAAK,OACL,KAAM,4DACP,EACD,IAAK,mCACJ,MAAO,CACN,IAAK,OACL,KAAM,uBACP,EACD,IAAK,yDACJ,MAAO,CACN,IAAK,MACL,KAAM,WACP,EACD,QACD,CACD,CAEA,SAASC,GAAOC,EAAQC,EAASC,EAAS,CACzCA,EAAU,CACT,OAAQ,EACR,GAAGA,CACJ,EAEA,OAAW,CAACC,EAAOC,CAAM,IAAKH,EAAQ,QAAQ,EAE7C,GAAIC,EAAQ,MAEX,GAAIE,KAAYF,EAAQ,KAAKC,CAAK,EAAIH,EAAOG,EAAQD,EAAQ,MAAM,GAClE,MAAO,WAEEE,IAAWJ,EAAOG,EAAQD,EAAQ,MAAM,EAClD,MAAO,GAIT,MAAO,EACR,CAUO,IAAMG,GAAN,KAAqB,CAC3B,YAAYC,EAAS,CACpB,KAAK,QAAU,CACd,oBAAqB,EACrB,GAAGA,CACJ,EAEA,KAAK,UAAY,CAAC,GAAIA,GAAS,iBAAmB,CAAC,EAClD,CAAC,GAAI,OAAQ,OAAQ,KAAK,eAAe,EACzC,CAAC,GAAI,iBAAkB,OAAQ,KAAK,eAAe,CAAC,EACrD,KAAK,iBAAmB,CACvB,YAAaA,GAAS,MACvB,CACD,CAEA,MAAM,cAAcC,EAAW,CAC9B,IAAMC,EAAkBD,EAAU,SAGlC,QAAWE,KAAY,KAAK,UAAW,CACtC,IAAMC,EAAW,MAAMD,EAAS,OAAOF,CAAS,EAChD,GAAIG,EACH,OAAOA,EAGR,GAAIF,IAAoBD,EAAU,SACjC,MAEF,CACD,CAEA,MAAM,WAAWI,EAAO,CACvB,GAAI,EAAEA,aAAiB,YAAcA,aAAiB,aACrD,MAAM,IAAI,UAAU,0FAA0F,OAAOA,CAAK,IAAI,EAG/H,IAAMC,EAASD,aAAiB,WAAaA,EAAQ,IAAI,WAAWA,CAAK,EAEzE,GAAMC,GAAQ,OAAS,EAIvB,OAAO,KAAK,cAAsBC,GAAWD,EAAQ,KAAK,gBAAgB,CAAC,CAC5E,CAEA,MAAM,SAASE,EAAM,CACpB,OAAO,KAAK,WAAWA,EAAK,OAAO,CAAC,CACrC,CAEA,MAAM,WAAWC,EAAQ,CACxB,IAAMR,EAAY,MAAcS,GAAcD,EAAQ,KAAK,gBAAgB,EAC3E,GAAI,CACH,OAAO,MAAM,KAAK,cAAcR,CAAS,CAC1C,QAAE,CACD,MAAMA,EAAU,MAAM,CACvB,CACD,CAEA,MAAM,kBAAkBQ,EAAQT,EAAS,CACxC,GAAM,CAAC,WAAAW,EAAaC,EAA8B,EAAIZ,EAClDa,EACAC,EAEEC,EAASN,EAAO,UAAU,CAAC,KAAM,MAAM,CAAC,EAC9C,GAAI,CAEH,GAAM,CAAC,MAAOO,EAAO,KAAAC,CAAI,EAAI,MAAMF,EAAO,KAAK,IAAI,WAAWJ,CAAU,CAAC,EAEzE,GADAG,EAAaE,EACT,CAACC,GAAQD,EACZ,GAAI,CAEHH,EAAmB,MAAM,KAAK,WAAWG,EAAM,SAAS,EAAGL,CAAU,CAAC,CACvE,OAASO,EAAO,CACf,GAAI,EAAEA,aAAyBC,GAC9B,MAAMD,EAGPL,EAAmB,MACpB,CAGDC,EAAaE,CACd,QAAE,CACDD,EAAO,YAAY,CACpB,CAGA,IAAMK,EAAkB,IAAI,gBAAgB,CAC3C,MAAM,MAAMC,EAAY,CACvBA,EAAW,QAAQP,CAAU,CAC9B,EACA,UAAUE,EAAOK,EAAY,CAE5BA,EAAW,QAAQL,CAAK,CACzB,CACD,CAAC,EAEKM,EAAYb,EAAO,YAAYW,CAAe,EACpD,OAAAE,EAAU,SAAWT,EAEdS,CACR,CAEA,MAAMC,EAAQvB,EAAS,CACtB,OAAOwB,GAAO,KAAK,OAAQD,EAAQvB,CAAO,CAC3C,CAEA,YAAYuB,EAAQvB,EAAS,CAC5B,OAAO,KAAK,MAAMyB,GAAcF,CAAM,EAAGvB,CAAO,CACjD,CAGA,gBAAkB,MAAMC,GAAa,CAcpC,GAbA,KAAK,OAAS,IAAI,WAAWW,EAA8B,EAGvDX,EAAU,SAAS,OAAS,SAC/BA,EAAU,SAAS,KAAO,OAAO,kBAGlC,KAAK,UAAYA,EAEjB,MAAMA,EAAU,WAAW,KAAK,OAAQ,CAAC,OAAQ,GAAI,UAAW,EAAI,CAAC,EAIjE,KAAK,MAAM,CAAC,GAAM,EAAI,CAAC,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAI,CAAC,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,wBACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,CAAI,CAAC,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,+BACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,EAAI,CAAC,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,0BACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,EAAI,CAAC,EAG1B,OAFA,MAAMA,EAAU,WAAW,KAAK,OAAQ,CAAC,OAAQ,GAAI,UAAW,EAAI,CAAC,EAGpE,KAAK,YAAY,YAAa,CAAC,OAAQ,CAAC,CAAC,GACtC,KAAK,YAAY,SAAU,CAAC,OAAQ,EAAE,CAAC,EAEnC,CACN,IAAK,MACL,KAAM,iBACP,EAGM,CACN,IAAK,KACL,KAAM,wBACP,EAGD,GACC,KAAK,MAAM,CAAC,GAAM,GAAI,CAAC,GACpB,KAAK,MAAM,CAAC,GAAM,GAAI,CAAC,EAE1B,MAAO,CACN,IAAK,IACL,KAAM,wBACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,GAAI,CAAC,EAC1B,MAAO,CACN,IAAK,OACL,KAAM,oBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAI,CAAC,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAKD,GAAI,KAAK,MAAM,CAAC,IAAM,IAAM,GAAI,CAAC,EAEhC,YAAK,UAAU,OAAO,CAAC,EAChB,KAAK,gBAAgBA,CAAS,EAGtC,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,EAAI,CAAC,EAChC,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAI,CAAC,EAChC,MAAO,CACN,IAAK,MACL,KAAM,oBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,IAAM,CAAG,CAAC,EAC/B,MAAO,CACN,IAAK,KACL,KAAM,kBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAI,CAAC,EAChC,MAAO,CACN,IAAK,MACL,KAAM,qBACP,EAGD,GAAI,KAAK,YAAY,KAAK,EAAG,CAC5B,MAAMA,EAAU,OAAO,CAAC,EACxB,IAAMyB,EAAkB,MAAMzB,EAAU,UAAU0B,EAAmB,EACrE,OAAI1B,EAAU,SAAWyB,EAAkBzB,EAAU,SAAS,KAEtD,CACN,IAAK,MACL,KAAM,YACP,GAGD,MAAMA,EAAU,OAAOyB,CAAe,EAC/B,KAAK,cAAczB,CAAS,EACpC,CAGA,GAAI,KAAK,YAAY,KAAK,EACzB,MAAO,CACN,IAAK,MACL,KAAM,kBACP,EAGD,IACE,KAAK,OAAO,CAAC,IAAM,IAAQ,KAAK,OAAO,CAAC,IAAM,KAC5C,KAAK,MAAM,CAAC,GAAM,EAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,EAEvC,MAAO,CACN,IAAK,MACL,KAAM,+BACP,EAMD,GAAI,KAAK,MAAM,CAAC,IAAM,IAAM,GAAI,CAAC,EAChC,OAAI,KAAK,MAAM,CAAC,GAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,EAC1B,CACN,IAAK,MACL,KAAM,WACP,EAGM,CACN,IAAK,MACL,KAAM,YACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,IAAM,CAAI,CAAC,EACtC,MAAO,CACN,IAAK,OACL,KAAM,kBACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,OACL,KAAM,YACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,2BACP,EAID,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,kBACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,YACP,EAGD,GAAI,KAAK,YAAY,OAAQ,CAAC,OAAQ,CAAC,CAAC,EACvC,MAAO,CACN,IAAK,OACL,KAAM,YACP,EAKD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,EAAK,CAAG,CAAC,EAAG,CACvC,IAAIG,EACJ,aAAM,IAAIwB,GAAW3B,CAAS,EAAE,MAAM4B,GAAa,CAClD,OAAQA,EAAU,SAAU,CAC3B,IAAK,uBACJ,OAAAzB,EAAW,CACV,IAAK,MACL,KAAM,yBACP,EACO,CACN,KAAM,EACP,EACD,IAAK,uBACJ,OAAAA,EAAW,CACV,IAAK,MACL,KAAM,0BACP,EACO,CACN,KAAM,EACP,EACD,IAAK,WACJ,MAAO,CACN,MAAM,QAAQ0B,EAAU,CAEvB,IAAMC,EAAW,IAAI,YAAY,OAAO,EAAE,OAAOD,CAAQ,EAAE,KAAK,EAChE1B,EAAW4B,GAAwBD,CAAQ,CAC5C,EACA,KAAM,EACP,EAED,IAAK,sBACJ,MAAO,CACN,MAAM,QAAQD,EAAU,CAEvB,IAAIG,EAAa,IAAI,YAAY,OAAO,EAAE,OAAOH,CAAQ,EACnDI,EAASD,EAAW,QAAQ,YAAY,EAC9C,GAAIC,IAAW,GAAI,CAClB,IAAMH,EAAW,yDACbE,EAAW,SAAS,gBAAgBF,CAAQ,GAAG,IAClD3B,EAAW4B,GAAwBD,CAAQ,EAE7C,KAAO,CACNE,EAAaA,EAAW,MAAM,EAAG,KAAK,IAAI,EAAGC,CAAM,CAAC,EACpD,IAAMC,EAAWF,EAAW,YAAY,GAAG,EACrCF,EAAWE,EAAW,MAAM,KAAK,IAAI,EAAGE,EAAW,CAAC,CAAC,EAC3D/B,EAAW4B,GAAwBD,CAAQ,CAC5C,CACD,EACA,KAAM,EACP,EACD,QACC,MAAI,kBAAkB,KAAKF,EAAU,QAAQ,GAC5CzB,EAAW,CACV,IAAK,MACL,KAAM,yCACP,EACO,CAAC,KAAM,EAAI,GAGZ,CAAC,CACV,CACD,CAAC,EAEMA,GAAY,CAClB,IAAK,MACL,KAAM,iBACP,CACD,CAEA,GAAI,KAAK,YAAY,MAAM,EAAG,CAE7B,MAAMH,EAAU,OAAO,EAAE,EACzB,IAAMmC,EAAO,IAAI,WAAW,CAAC,EAI7B,OAHA,MAAMnC,EAAU,WAAWmC,CAAI,EAG3BZ,GAAOY,EAAM,CAAC,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAI,CAAC,EACzD,CACN,IAAK,OACL,KAAM,wBACP,EAIGZ,GAAOY,EAAM,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAI,CAAC,EACnD,CACN,IAAK,MACL,KAAM,WACP,EAIGZ,GAAOY,EAAM,CAAC,EAAM,IAAM,IAAM,IAAM,IAAM,IAAM,CAAI,CAAC,EACnD,CACN,IAAK,MACL,KAAM,WACP,EAIGZ,GAAOY,EAAM,CAAC,IAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EACvC,CACN,IAAK,MACL,KAAM,WACP,EAIGZ,GAAOY,EAAM,CAAC,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,EAAI,CAAC,EACnD,CACN,IAAK,MACL,KAAM,WACP,EAIGZ,GAAOY,EAAM,CAAC,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAI,CAAC,EACnD,CACN,IAAK,MACL,KAAM,WACP,EAIM,CACN,IAAK,MACL,KAAM,iBACP,CACD,CAEA,GACC,KAAK,MAAM,CAAC,GAAM,EAAI,CAAC,IACnB,KAAK,OAAO,CAAC,IAAM,GAAO,KAAK,OAAO,CAAC,IAAM,GAAO,KAAK,OAAO,CAAC,IAAM,KACvE,KAAK,OAAO,CAAC,IAAM,GAAO,KAAK,OAAO,CAAC,IAAM,GAAO,KAAK,OAAO,CAAC,IAAM,GAE3E,MAAO,CACN,IAAK,MACL,KAAM,iBACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,YACP,EAGD,GACC,KAAK,YAAY,MAAM,IAEtB,KAAK,MAAM,CAAC,EAAM,EAAM,EAAM,CAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,GAC7C,KAAK,YAAY,OAAQ,CAAC,OAAQ,CAAC,CAAC,GAGxC,MAAO,CACN,IAAK,OACL,KAAM,WACP,EAGD,GACC,KAAK,YAAY,MAAM,IAEtB,KAAK,MAAM,CAAC,EAAM,EAAM,EAAM,CAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,GAC7C,KAAK,YAAY,OAAQ,CAAC,OAAQ,CAAC,CAAC,GAGxC,MAAO,CACN,IAAK,QACL,KAAM,YACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,GAAK,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EAC9E,MAAO,CACN,IAAK,OACL,KAAM,8BACP,EAID,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,aACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,KACL,KAAM,oBACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,OACL,KAAM,YACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,GAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,KACL,KAAM,eACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAE1B,MAAO,CACN,IAAK,MACL,KAAM,iBACP,EAGD,GAAI,KAAK,MAAM,CAAC,EAAM,GAAM,IAAM,GAAI,CAAC,EACtC,MAAO,CACN,IAAK,OACL,KAAM,kBACP,EAID,GAAI,KAAK,MAAM,CAAC,GAAM,EAAI,CAAC,EAAG,CAC7B,IAAMhC,EAAW,MAAM,KAAK,eAAe,EAAK,EAChD,GAAIA,EACH,OAAOA,CAET,CAGA,GAAI,KAAK,MAAM,CAAC,GAAM,EAAI,CAAC,EAAG,CAC7B,IAAMA,EAAW,MAAM,KAAK,eAAe,EAAI,EAC/C,GAAIA,EACH,OAAOA,CAET,CAEA,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAID,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,IAAM,GAAI,CAAC,EAAG,CACzC,eAAeiC,GAAY,CAC1B,IAAMC,EAAM,MAAMrC,EAAU,WAAiBsC,EAAK,EAC9CC,EAAO,IACPC,EAAK,EAET,MAAQH,EAAME,KAAU,GAAKA,IAAS,GACrC,EAAEC,EACFD,IAAS,EAGV,IAAME,EAAK,IAAI,WAAWD,EAAK,CAAC,EAChC,aAAMxC,EAAU,WAAWyC,CAAE,EACtBA,CACR,CAEA,eAAeC,GAAc,CAC5B,IAAMC,EAAU,MAAMP,EAAU,EAC1BQ,EAAc,MAAMR,EAAU,EAEpCQ,EAAY,CAAC,GAAK,KAASA,EAAY,OAAS,EAChD,IAAMC,EAAW,KAAK,IAAI,EAAGD,EAAY,MAAM,EAEzCE,EAAS,IAAI,SAASH,EAAQ,MAAM,EACpCI,EAAa,IAAI,SAASH,EAAY,OAAQA,EAAY,OAASC,EAAUA,CAAQ,EAE3F,MAAO,CACN,GAAIG,GAAUF,CAAM,EACpB,IAAKE,GAAUD,CAAU,CAC1B,CACD,CAEA,eAAeE,EAAaC,EAAU,CACrC,KAAOA,EAAW,GAAG,CACpB,IAAMC,EAAU,MAAMT,EAAY,EAClC,GAAIS,EAAQ,KAAO,MAElB,OADiB,MAAMnD,EAAU,UAAU,IAAUoD,EAAWD,EAAQ,GAAG,CAAC,GAC5D,WAAW,UAAW,EAAE,EAGzC,MAAMnD,EAAU,OAAOmD,EAAQ,GAAG,EAClC,EAAED,CACH,CACD,CAEA,IAAMG,EAAK,MAAMX,EAAY,EAG7B,OAFqB,MAAMO,EAAaI,EAAG,GAAG,EAExB,CACrB,IAAK,OACJ,MAAO,CACN,IAAK,OACL,KAAM,YACP,EAED,IAAK,WACJ,MAAO,CACN,IAAK,MACL,KAAM,gBACP,EAED,QACC,MACF,CACD,CAEA,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,SACL,KAAM,uBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,EAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,gCACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,uCACP,EAGD,GACC,KAAK,YAAY,MAAM,GACpB,KAAK,YAAY,MAAM,EAE1B,MAAO,CACN,IAAK,MACL,KAAM,mCACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,iBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,IAAM,GAAM,GAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,kBACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,GAAM,GAAM,EAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,EAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,4BACP,EAGD,GAAI,KAAK,YAAY,MAAM,GAAK,KAAK,YAAY,MAAM,EACtD,MAAO,CACN,IAAK,UACL,KAAM,gCACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,iBACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EACtC,MAAO,CACN,IAAK,QACL,KAAM,2BACP,EAGD,GAAI,KAAK,MAAM,CAAC,EAAM,GAAM,GAAM,EAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAKD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,GAAM,CAAI,CAAC,EAC5C,MAAO,CACN,IAAK,MACL,KAAM,UACP,EAGD,GAAI,KAAK,YAAY,OAAO,EAC3B,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAGD,GAAI,KAAK,YAAY,QAAQ,EAC5B,MAAO,CACN,IAAK,MACL,KAAM,iBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,CAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,aACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,KACL,KAAM,YACP,EAGD,GACC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GAClC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GACrC,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,EAExC,MAAO,CACN,IAAK,MACL,KAAM,8BACP,EAID,GAAI,KAAK,MAAM,CAAC,EAAM,EAAM,EAAM,GAAI,CAAC,EAAG,CAEzC,GAAI,KAAK,MAAM,CAAC,EAAI,EAAG,CAAC,OAAQ,EAAG,KAAM,CAAC,GAAI,CAAC,CAAC,EAC/C,MAAO,CACN,IAAK,MACL,KAAM,YACP,EAID,GAAI,KAAK,MAAM,CAAC,EAAI,EAAG,CAAC,OAAQ,EAAG,KAAM,CAAC,GAAI,CAAC,CAAC,EAC/C,MAAO,CACN,IAAK,MACL,KAAM,YACP,CAEF,CAEA,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,MACL,KAAM,6BACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EACtC,MAAO,CACN,IAAK,QACL,KAAM,qBACP,EAGD,GAAI,KAAK,YAAY,MAAM,EAC1B,MAAO,CACN,IAAK,KACL,KAAM,8BACP,EAKD,GAAI,KAAK,YAAY,OAAO,EAC3B,MAAO,CACN,IAAK,MACL,KAAM,8BACP,EAKD,GAAI,KAAK,MAAM,CAAC,IAAM,GAAM,IAAM,GAAM,GAAM,CAAI,CAAC,EAClD,MAAO,CACN,IAAK,KACL,KAAM,kBACP,EAGD,GAAI,KAAK,YAAY,QAAQ,EAC5B,MAAO,CACN,IAAK,MACL,KAAM,iBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,IAAM,IAAM,IAAM,GAAM,EAAI,CAAC,EAClD,MAAO,CACN,IAAK,KACL,KAAM,6BACP,EAGD,GACC,KAAK,MAAM,CAAC,GAAM,GAAM,IAAM,GAAM,GAAM,CAAG,CAAC,IAC1C,KAAK,OAAO,CAAC,IAAM,GAAO,KAAK,OAAO,CAAC,IAAM,GAEjD,MAAO,CACN,IAAK,MACL,KAAM,8BACP,EAGD,GAAI,KAAK,YAAY,QAAQ,EAC5B,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAGD,GAAI,KAAK,YAAY,IAAI,EAAG,CAC3B,IAAMC,EAAU,IAAUF,EAAW,EAAG,QAAQ,EAAE,IAAI,KAAK,OAAQ,CAAC,EACpE,GAAIE,EAAQ,MAAM,KAAK,GAAKA,GAAW,KAAQA,GAAW,KACzD,MAAO,CACN,IAAK,MACL,KAAM,eACP,CAEF,CAEA,GAAI,KAAK,YAAY,QAAQ,EAC5B,MAAO,CACN,IAAK,OACL,KAAM,oBACP,EAKD,GAAI,KAAK,YAAY,SAAS,EAC7B,MAAO,CACN,IAAK,QACL,KAAM,uBACP,EAGD,GAAI,KAAK,YAAY,SAAS,EAG7B,OAFA,MAAMtD,EAAU,OAAO,CAAC,EACT,MAAMA,EAAU,UAAU,IAAUoD,EAAW,GAAI,OAAO,CAAC,IAC3D,gBACP,CACN,IAAK,MACL,KAAM,mBACP,EAGM,CACN,IAAK,KACL,KAAM,4BACP,EAGD,GACC,KAAK,YAAY,QAAQ,GAGvB,CAAC;AAAA,EAAM,KAAM,IAAM,IAAK,IAAI,EAAE,KAAKG,GAAS,KAAK,YAAYA,EAAO,CAAC,OAAQ,CAAC,CAAC,CAAC,EAElF,MAAO,CACN,IAAK,MACL,KAAM,UACP,EAKD,GAAI,KAAK,MAAM,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EAAG,CASjE,MAAMvD,EAAU,OAAO,CAAC,EAExB,eAAewD,GAAkB,CAChC,MAAO,CACN,OAAQ,MAAMxD,EAAU,UAAgByD,EAAQ,EAChD,KAAM,MAAMzD,EAAU,UAAU,IAAUoD,EAAW,EAAG,QAAQ,CAAC,CAClE,CACD,CAEA,EAAG,CACF,IAAMrC,EAAQ,MAAMyC,EAAgB,EACpC,GAAIzC,EAAM,OAAS,EAClB,OAGD,OAAQA,EAAM,KAAM,CACnB,IAAK,OACJ,MAAO,CACN,IAAK,MACL,KAAM,WACP,EACD,IAAK,OACJ,MAAO,CACN,IAAK,OACL,KAAM,YACP,EACD,QACC,MAAMf,EAAU,OAAOe,EAAM,OAAS,CAAC,CACzC,CACD,OAASf,EAAU,SAAW,EAAIA,EAAU,SAAS,MAErD,MAAO,CACN,IAAK,MACL,KAAM,WACP,CACD,CAEA,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAM,CAAI,CAAC,EAC9D,MAAO,CACN,IAAK,QACL,KAAM,mCACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,IAAM,GAAM,GAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EAC9D,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAID,GACC,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,GAC7C,KAAK,MAAM,CAAC,IAAM,IAAM,GAAM,GAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,GAChD,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,GAChD,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,EAEnD,MAAO,CACN,IAAK,MACL,KAAM,iBACP,EAKD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAI,CAAC,EACpE,MAAO,CACN,IAAK,MACL,KAAM,qBACP,EAGD,GAAI,KAAK,YAAY,WAAW,EAC/B,MAAO,CACN,IAAK,MACL,KAAM,aACP,EAOD,GACC,KAAK,YAAY,OAAQ,CAAC,OAAQ,CAAC,CAAC,IAChC,KAAK,OAAO,CAAC,EAAI,MAAU,EAC9B,CAGD,IAAM0D,EAAa,IAAUN,EAAW,EAAG,QAAQ,EAAE,IAAI,KAAK,OAAQ,CAAC,EAAE,QAAQ,KAAM,GAAG,EAAE,KAAK,EACjG,OAAQM,EAAY,CACnB,IAAK,OACL,IAAK,OACJ,MAAO,CAAC,IAAK,OAAQ,KAAM,YAAY,EACxC,IAAK,OACJ,MAAO,CAAC,IAAK,OAAQ,KAAM,YAAY,EACxC,IAAK,OACJ,MAAO,CAAC,IAAK,OAAQ,KAAM,qBAAqB,EACjD,IAAK,OACL,IAAK,OACJ,MAAO,CAAC,IAAK,OAAQ,KAAM,YAAY,EACxC,IAAK,OACL,IAAK,OACJ,MAAO,CAAC,IAAK,OAAQ,KAAM,qBAAqB,EACjD,IAAK,KACJ,MAAO,CAAC,IAAK,MAAO,KAAM,iBAAiB,EAC5C,IAAK,MACL,IAAK,OACL,IAAK,OACJ,MAAO,CAAC,IAAK,MAAO,KAAM,aAAa,EACxC,IAAK,MACJ,MAAO,CAAC,IAAK,MAAO,KAAM,WAAW,EACtC,IAAK,MACJ,MAAO,CAAC,IAAK,MAAO,KAAM,WAAW,EACtC,IAAK,MACJ,MAAO,CAAC,IAAK,MAAO,KAAM,aAAa,EACxC,IAAK,MACJ,MAAO,CAAC,IAAK,MAAO,KAAM,WAAW,EACtC,IAAK,MACJ,MAAO,CAAC,IAAK,MAAO,KAAM,WAAW,EACtC,IAAK,MACJ,MAAO,CAAC,IAAK,MAAO,KAAM,WAAW,EACtC,IAAK,MACJ,MAAO,CAAC,IAAK,MAAO,KAAM,WAAW,EACtC,IAAK,MACJ,MAAO,CAAC,IAAK,MAAO,KAAM,mBAAmB,EAC9C,QACC,OAAIA,EAAW,WAAW,IAAI,EACzBA,EAAW,WAAW,KAAK,EACvB,CAAC,IAAK,MAAO,KAAM,aAAa,EAGjC,CAAC,IAAK,MAAO,KAAM,YAAY,EAGhC,CAAC,IAAK,MAAO,KAAM,WAAW,CACvC,CACD,CAKA,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,EAAI,CAAC,EAAG,CACzC,GAAI,KAAK,YAAY,OAAQ,CAAC,OAAQ,CAAC,CAAC,EACvC,MAAO,CACN,IAAK,OACL,KAAM,YACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,EAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,EAC7C,MAAO,CACN,IAAK,MACL,KAAM,eACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,EAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,EACnD,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAID,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,EAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,EACnD,MAAO,CACN,IAAK,MACL,KAAM,aACP,CAEF,CAEA,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,EAAM,GAAM,EAAM,EAAM,EAAM,IAAM,IAAM,IAAM,GAAI,CAAC,EACtF,MAAO,CACN,IAAK,MACL,KAAM,uBACP,EAID,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAI,CAAC,EAAG,CAC7E,eAAeC,GAAa,CAC3B,IAAMC,EAAO,IAAI,WAAW,EAAE,EAC9B,aAAM5D,EAAU,WAAW4D,CAAI,EACxB,CACN,GAAIA,EACJ,KAAM,OAAO,MAAM5D,EAAU,UAAgB6D,EAAS,CAAC,CACxD,CACD,CAIA,IAFA,MAAM7D,EAAU,OAAO,EAAE,EAElBA,EAAU,SAAW,GAAKA,EAAU,SAAS,MAAM,CACzD,IAAMsB,EAAS,MAAMqC,EAAW,EAC5BG,EAAUxC,EAAO,KAAO,GAC5B,GAAIC,GAAOD,EAAO,GAAI,CAAC,IAAM,EAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAI,CAAC,EAAG,CAExH,IAAMyC,EAAS,IAAI,WAAW,EAAE,EAGhC,GAFAD,GAAW,MAAM9D,EAAU,WAAW+D,CAAM,EAExCxC,GAAOwC,EAAQ,CAAC,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,EAAM,IAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EAElH,MAAO,CACN,IAAK,MACL,KAAM,gBACP,EAGD,GAAIxC,GAAOwC,EAAQ,CAAC,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,EAAM,IAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EAElH,MAAO,CACN,IAAK,MACL,KAAM,gBACP,EAGD,KACD,CAEA,MAAM/D,EAAU,OAAO8D,CAAO,CAC/B,CAGA,MAAO,CACN,IAAK,MACL,KAAM,wBACP,CACD,CAEA,GAAI,KAAK,MAAM,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EACtF,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAGD,IAAK,KAAK,MAAM,CAAC,IAAM,GAAM,CAAI,CAAC,GAAK,KAAK,MAAM,CAAC,IAAM,GAAM,CAAI,CAAC,IAAM,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,EAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,EACzH,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,EACnG,MAAO,CACN,IAAK,MACL,KAAM,0BACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,GAAM,IAAM,EAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAGD,GAAI,KAAK,MAAM,CAAC,EAAM,EAAM,EAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAAM,EAAI,CAAC,EAKtF,OAFA,MAAM9D,EAAU,OAAO,EAAE,EACZ,MAAMA,EAAU,UAAU,IAAUoD,EAAW,EAAG,OAAO,CAAC,EACzD,CACb,IAAK,OACJ,MAAO,CACN,IAAK,MACL,KAAM,WACP,EACD,IAAK,OACJ,MAAO,CACN,IAAK,MACL,KAAM,WACP,EACD,IAAK,OACJ,MAAO,CACN,IAAK,MACL,KAAM,WACP,EACD,IAAK,OACJ,MAAO,CACN,IAAK,MACL,KAAM,WACP,EACD,QACC,MACF,CAGD,GACC,KAAK,MAAM,CAAC,IAAM,EAAI,CAAC,GACpB,KAAK,MAAM,CAAC,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAAM,EAAI,CAAC,EAEtF,MAAO,CACN,IAAK,MACL,KAAM,WACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,GAAI,CAAC,EAC1B,OAAI,KAAK,MAAM,CAAC,EAAG,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,IAAK,EAAG,GAAG,EAAG,CAAC,OAAQ,CAAC,CAAC,EAC1D,CACN,IAAK,MACL,KAAM,iBACP,EAGD,OAGD,GAAI,KAAK,MAAM,CAAC,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAI,CAAC,EAE9D,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAMD,GAFA,MAAMpD,EAAU,WAAW,KAAK,OAAQ,CAAC,OAAQ,KAAK,IAAI,IAAKA,EAAU,SAAS,IAAI,EAAG,UAAW,EAAI,CAAC,EAErG,KAAK,MAAM,CAAC,GAAM,GAAM,IAAM,GAAI,EAAG,CAAC,OAAQ,EAAE,CAAC,EACpD,MAAO,CACN,IAAK,MACL,KAAM,4BACP,EAID,GAAI,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,GAAK,KAAK,YAAY,KAAM,CAAC,OAAQ,EAAE,CAAC,EAChF,MAAO,CACN,IAAK,MACL,KAAM,8BACP,EAKD,GAAI,KAAK,YAAY,QAAQ,EAAG,CAC/B,GAAI,KAAK,YAAY,QAAS,CAAC,OAAQ,CAAC,CAAC,EACxC,MAAO,CACN,IAAK,MACL,KAAM,YACP,EAGD,GAAI,KAAK,YAAY,YAAa,CAAC,OAAQ,CAAC,CAAC,EAC5C,MAAO,CACN,IAAK,MACL,KAAM,eACP,CAEF,CAGA,GAAI,KAAK,YAAY,iBAAiB,EACrC,MAAO,CACN,IAAK,MACL,KAAM,sBACP,EAGD,GAAI,KAAK,YAAY,kBAAkB,EACtC,MAAO,CACN,IAAK,KACL,KAAM,YACP,EAGD,GAAI,KAAK,YAAY,qBAAqB,EACzC,MAAO,CACN,IAAK,MACL,KAAM,aACP,EAGD,GAAI,KAAK,MAAM,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,GAAK,KAAK,OAAO,QAAU,GAAI,CACrE,IAAMgE,EAAW,IAAI,SAAS,KAAK,OAAO,MAAM,EAAE,UAAU,GAAI,EAAI,EAEpE,GAAIA,EAAW,IAAM,KAAK,OAAO,QAAUA,EAAW,GACrD,GAAI,CACH,IAAM1C,EAAS,IAAI,YAAY,EAAE,OAAO,KAAK,OAAO,SAAS,GAAI0C,EAAW,EAAE,CAAC,EAG/E,GAFa,KAAK,MAAM1C,CAAM,EAErB,MACR,MAAO,CACN,IAAK,OACL,KAAM,oBACP,CAEF,MAAQ,CAAC,CAEX,CAEA,GAAI,KAAK,MAAM,CAAC,EAAM,GAAM,GAAM,GAAM,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EAClG,MAAO,CACN,IAAK,MACL,KAAM,iBACP,EAGD,GAAI,KAAK,YAAY,OAAQ,CAAC,OAAQ,EAAE,CAAC,EACxC,MAAO,CACN,IAAK,MACL,KAAM,aACP,EAID,GAAI,KAAK,MAAM,CAAC,EAAI,CAAC,GAAK,KAAK,MAAM,CAAC,EAAI,EAAG,CAAC,OAAQ,GAAG,CAAC,EACzD,MAAO,CACN,IAAK,MACL,KAAM,YACP,EAID,GAAI,KAAK,MAAM,CAAC,EAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,GAAK,KAAK,MAAM,CAAC,EAAI,EAAG,CAAC,OAAQ,GAAG,CAAC,EACtE,MAAO,CACN,IAAK,MACL,KAAM,YACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,EAAG,CAAC,OAAQ,EAAE,CAAC,EAC5E,MAAO,CACN,IAAK,OACL,KAAM,gCACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,EAAI,EAAG,CAAC,OAAQ,GAAG,CAAC,EACrD,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAI,CAAC,EACtI,MAAO,CACN,IAAK,MACL,KAAM,2BACP,EAGD,GAAI,KAAK,MAAM,CAAC,GAAM,IAAM,IAAM,IAAM,EAAM,EAAM,EAAM,EAAM,IAAM,GAAM,IAAM,IAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EAC9G,MAAO,CACN,IAAK,QACL,KAAM,2BACP,EAGD,GAAI,KAAK,YAAY,wBAA4B,EAChD,MAAO,CACN,IAAK,MACL,KAAM,4BACP,EAGD,GACC,KAAK,MAAM,CAAC,GAAM,EAAI,EAAG,CAAC,OAAQ,EAAE,CAAC,IAEpC,KAAK,MAAM,CAAC,EAAM,EAAM,CAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,GACvC,KAAK,MAAM,CAAC,EAAM,EAAM,CAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,GAC1C,KAAK,MAAM,CAAC,EAAM,EAAM,CAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,GAG9C,MAAO,CACN,IAAK,MACL,KAAM,+BACP,EAGD,GAAI,KAAK,MAAM,CAAC,EAAM,EAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAI,CAAC,EAC9G,MAAO,CACN,IAAK,OACL,KAAM,wBACP,EAOD,GAHA,MAAMtB,EAAU,WAAW,KAAK,OAAQ,CAAC,OAAQ,KAAK,IAAI,IAAKA,EAAU,SAAS,IAAI,EAAG,UAAW,EAAI,CAAC,EAGpG,KAAK,YAAY,QAAS,CAAC,OAAQ,GAAG,CAAC,IAAM,KAAK,YAAY,KAAM,CAAC,OAAQ,GAAG,CAAC,GAAK,KAAK,YAAY,IAAK,CAAC,OAAQ,GAAG,CAAC,IACzH,KAAK,MAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,CAAC,OAAQ,GAAG,CAAC,GAAKiE,GAAyB,KAAK,MAAM,EACzF,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAGD,GAAI,KAAK,MAAM,CAAC,IAAM,GAAI,CAAC,EAC1B,OAAI,KAAK,MAAM,CAAC,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,CAAC,EAAG,CAAC,OAAQ,CAAC,CAAC,EAC1D,CACN,IAAK,MACL,KAAM,iBACP,EAGG,KAAK,MAAM,CAAC,IAAM,GAAM,GAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,GAAM,EAAM,IAAM,EAAM,GAAM,EAAM,IAAM,EAAM,GAAM,EAAM,GAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,CAAI,EAAG,CAAC,OAAQ,CAAC,CAAC,EACxM,CACN,IAAK,MACL,KAAM,8BACP,EAGD,OAGD,GAAI,KAAK,YAAY,6BAA6B,EACjD,MAAO,CACN,IAAK,MACL,KAAM,2BACP,CAEF,EAEA,gBAAkB,MAAMjE,GAAa,CAMpC,GALA,KAAK,OAAS,IAAI,WAAWW,EAA8B,EAG3D,MAAMX,EAAU,WAAW,KAAK,OAAQ,CAAC,OAAQ,KAAK,IAAI,EAAGA,EAAU,SAAS,IAAI,EAAG,UAAW,EAAI,CAAC,EAGtG,KAAK,MAAM,CAAC,EAAK,EAAK,EAAK,GAAI,CAAC,GAC7B,KAAK,MAAM,CAAC,EAAK,EAAK,EAAK,GAAI,CAAC,EAEnC,MAAO,CACN,IAAK,MACL,KAAM,YACP,EAGD,GAAI,KAAK,MAAM,CAAC,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EAC5C,MAAO,CACN,IAAK,MACL,KAAM,UACP,EAGD,GAAI,KAAK,MAAM,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,cACP,EAGD,GAAI,KAAK,MAAM,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EACtC,MAAO,CACN,IAAK,MACL,KAAM,cACP,EAOD,GAHA,MAAMA,EAAU,WAAW,KAAK,OAAQ,CAAC,OAAQ,KAAK,IAAI,EAAI,KAAK,QAAQ,oBAAqBA,EAAU,SAAS,IAAI,EAAG,UAAW,EAAI,CAAC,EAGtI,KAAK,OAAO,QAAW,EAAI,KAAK,QAAQ,oBAC3C,QAASkE,EAAQ,EAAGA,GAAS,KAAK,QAAQ,oBAAqB,EAAEA,EAAO,CACvE,IAAM/B,EAAO,KAAK,SAAS+B,CAAK,EAChC,GAAI/B,EACH,OAAOA,CAET,CAEF,EAEA,MAAM,YAAYgC,EAAW,CAC5B,IAAMC,EAAQ,MAAM,KAAK,UAAU,UAAUD,EAAkBE,GAAkBC,CAAS,EAE1F,OADA,KAAK,UAAU,OAAO,EAAE,EAChBF,EAAO,CACd,IAAK,OACJ,MAAO,CACN,IAAK,MACL,KAAM,kBACP,EACD,IAAK,OACJ,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EACD,QACD,CACD,CAEA,MAAM,YAAYD,EAAW,CAC5B,IAAMI,EAAe,MAAM,KAAK,UAAU,UAAUJ,EAAkBE,GAAkBC,CAAS,EACjG,QAAS,EAAI,EAAG,EAAIC,EAAc,EAAE,EAAG,CACtC,IAAMpE,EAAW,MAAM,KAAK,YAAYgE,CAAS,EACjD,GAAIhE,EACH,OAAOA,CAET,CACD,CAEA,MAAM,eAAegE,EAAW,CAC/B,IAAMb,GAAWa,EAAkBE,GAAkBC,GAAW,IAAI,KAAK,OAAQ,CAAC,EAC5EE,GAAaL,EAAkBM,GAAkBC,GAAW,IAAI,KAAK,OAAQ,CAAC,EAEpF,GAAIpB,IAAY,GAAI,CAEnB,GAAIkB,GAAa,EAAG,CACnB,GAAI,KAAK,YAAY,KAAM,CAAC,OAAQ,CAAC,CAAC,EACrC,MAAO,CACN,IAAK,MACL,KAAM,mBACP,EAGD,GAAIA,GAAa,EAAG,CACnB,IAAMG,GAAWR,EAAkBE,GAAkBC,GAAW,IAAI,KAAK,OAAQ,CAAC,EAC5EM,GAAWT,EAAkBE,GAAkBC,GAAW,IAAI,KAAK,OAAQ,EAAE,EAEnF,GACEK,IAAY,IAAQC,IAAY,KAC7BD,IAAY,IAAQC,IAAY,GACpC,MAAO,CACN,IAAK,MACL,KAAM,mBACP,CAEF,CACD,CAEA,aAAM,KAAK,UAAU,OAAOJ,CAAS,EACpB,MAAM,KAAK,YAAYL,CAAS,GAC9B,CAClB,IAAK,MACL,KAAM,YACP,CACD,CAEA,GAAIb,IAAY,GACf,MAAO,CACN,IAAK,MACL,KAAM,YACP,CAEF,CAQA,SAASuB,EAAQ,CAChB,GAAI,KAAK,MAAM,CAAC,IAAM,GAAI,EAAG,CAAC,OAAAA,EAAQ,KAAM,CAAC,IAAM,GAAI,CAAC,CAAC,EAAG,CAC3D,GAAI,KAAK,MAAM,CAAC,EAAI,EAAG,CAAC,OAAQA,EAAS,EAAG,KAAM,CAAC,EAAI,CAAC,CAAC,EAExD,OAAI,KAAK,MAAM,CAAC,CAAI,EAAG,CAAC,OAAQA,EAAS,EAAG,KAAM,CAAC,CAAI,CAAC,CAAC,EACjD,CACN,IAAK,MACL,KAAM,WACP,EAIM,CACN,IAAK,MACL,KAAM,WACP,EAKD,GAAI,KAAK,MAAM,CAAC,CAAI,EAAG,CAAC,OAAQA,EAAS,EAAG,KAAM,CAAC,CAAI,CAAC,CAAC,EACxD,MAAO,CACN,IAAK,MACL,KAAM,YACP,EAID,GAAI,KAAK,MAAM,CAAC,CAAI,EAAG,CAAC,OAAQA,EAAS,EAAG,KAAM,CAAC,CAAI,CAAC,CAAC,EACxD,MAAO,CACN,IAAK,MACL,KAAM,YACP,EAID,GAAI,KAAK,MAAM,CAAC,CAAI,EAAG,CAAC,OAAQA,EAAS,EAAG,KAAM,CAAC,CAAI,CAAC,CAAC,EACxD,MAAO,CACN,IAAK,MACL,KAAM,YACP,CAEF,CACD,CACD,EAEaC,GAAsB,IAAI,IAAIC,EAAU,EACxCC,GAAqB,IAAI,IAAIC,EAAS,EtBxyD5C,IAAMC,GAAN,cAA6BA,EAAsB,CACzD,MAAM,WAAWC,EAAQ,CACxB,IAAMC,EAAY,MAAOD,aAAkBE,GAA4BC,GAAcH,EAAQ,KAAK,gBAAgB,EAAYI,GAAWJ,EAAQ,KAAK,gBAAgB,GACtK,GAAI,CACH,OAAO,MAAM,MAAM,cAAcC,CAAS,CAC3C,QAAE,CACD,MAAMA,EAAU,MAAM,CACvB,CACD,CAEA,MAAM,SAASI,EAAM,CACpB,IAAMJ,EAAY,MAAcK,GAASD,CAAI,EAC7C,GAAI,CACH,OAAO,MAAM,MAAM,cAAcJ,CAAS,CAC3C,QAAE,CACD,MAAMA,EAAU,MAAM,CACvB,CACD,CAEA,MAAM,kBAAkBM,EAAgBC,EAAU,CAAC,EAAG,CACrD,GAAI,EAAED,aAA0BE,IAC/B,OAAO,MAAM,kBAAkBF,EAAgBC,CAAO,EAGvD,GAAM,CAAC,WAAAE,EAAaC,EAA8B,EAAIH,EAEtD,OAAO,IAAI,QAAQ,CAACI,EAASC,IAAW,CACvCN,EAAe,GAAG,QAASM,CAAM,EAEjCN,EAAe,KAAK,WAAY,IAAM,EACpC,SAAY,CACZ,GAAI,CAEH,IAAMO,EAAO,IAAIC,GACXC,EAAeC,GAAWA,GAASV,EAAgBO,EAAM,IAAM,CAAC,CAAC,EAAIP,EAAe,KAAKO,CAAI,EAG7FI,EAAQX,EAAe,KAAKG,CAAU,GAAKH,EAAe,KAAK,GAAK,IAAI,WAAW,CAAC,EAC1F,GAAI,CACHO,EAAK,SAAW,MAAM,KAAK,WAAWI,CAAK,CAC5C,OAASC,EAAO,CACXA,aAAyBC,EAC5BN,EAAK,SAAW,OAEhBD,EAAOM,CAAK,CAEd,CAEAP,EAAQI,CAAY,CACrB,OAASG,EAAO,CACfN,EAAOM,CAAK,CACb,CACD,GAAG,CACJ,CAAC,CACF,CAAC,CACF,CACD,EAEA,eAAsBE,GAAiBhB,EAAMG,EAAS,CACrD,OAAQ,IAAIT,GAAeS,CAAO,EAAG,SAASH,EAAMG,CAAO,CAC5D,CDjEA,IAAAc,GAAiB,WwBCF,SAARC,GAA2BC,EAAGC,EAAGC,EAAK,CACvCF,aAAa,SAAQA,EAAIG,GAAWH,EAAGE,CAAG,GAC1CD,aAAa,SAAQA,EAAIE,GAAWF,EAAGC,CAAG,GAE9C,IAAME,EAAIC,GAAML,EAAGC,EAAGC,CAAG,EAEzB,OACEE,GAAK,CACH,MAAOA,EAAE,CAAC,EACV,IAAKA,EAAE,CAAC,EACR,IAAKF,EAAI,MAAM,EAAGE,EAAE,CAAC,CAAC,EACtB,KAAMF,EAAI,MAAME,EAAE,CAAC,EAAIJ,EAAE,OAAQI,EAAE,CAAC,CAAC,EACrC,KAAMF,EAAI,MAAME,EAAE,CAAC,EAAIH,EAAE,MAAM,CACjC,CAEJ,CAMA,SAASE,GAAYG,EAAKJ,EAAK,CAC7B,IAAMK,EAAIL,EAAI,MAAMI,CAAG,EACvB,OAAOC,EAAIA,EAAE,CAAC,EAAI,IACpB,CAOO,SAASF,GAAOL,EAAGC,EAAGC,EAAK,CAChC,IAAIM,EAAMC,EAAKC,EAAMC,EAAOC,EACxBC,EAAKX,EAAI,QAAQF,CAAC,EAClBc,EAAKZ,EAAI,QAAQD,EAAGY,EAAK,CAAC,EAC1BE,EAAIF,EAER,GAAIA,GAAM,GAAKC,EAAK,EAAG,CACrB,GAAId,IAAMC,EACR,MAAO,CAACY,EAAIC,CAAE,EAKhB,IAHAN,EAAO,CAAC,EACRE,EAAOR,EAAI,OAEJa,GAAK,GAAK,CAACH,GACZG,IAAMF,GACRL,EAAK,KAAKO,CAAC,EACXF,EAAKX,EAAI,QAAQF,EAAGe,EAAI,CAAC,GAChBP,EAAK,SAAW,EACzBI,EAAS,CAACJ,EAAK,IAAI,EAAGM,CAAE,GAExBL,EAAMD,EAAK,IAAI,EACXC,EAAMC,IACRA,EAAOD,EACPE,EAAQG,GAGVA,EAAKZ,EAAI,QAAQD,EAAGc,EAAI,CAAC,GAG3BA,EAAIF,EAAKC,GAAMD,GAAM,EAAIA,EAAKC,EAG5BN,EAAK,SACPI,EAAS,CAACF,EAAMC,CAAK,EAEzB,CAEA,OAAOC,CACT,CCxEA,IAAMI,GAAW,UAAY,KAAK,OAAO,EAAI,KACvCC,GAAU,SAAW,KAAK,OAAO,EAAI,KACrCC,GAAW,UAAY,KAAK,OAAO,EAAI,KACvCC,GAAW,UAAY,KAAK,OAAO,EAAI,KACvCC,GAAY,WAAa,KAAK,OAAO,EAAI,KACzCC,GAAkB,IAAI,OAAOL,GAAU,GAAG,EAC1CM,GAAiB,IAAI,OAAOL,GAAS,GAAG,EACxCM,GAAkB,IAAI,OAAOL,GAAU,GAAG,EAC1CM,GAAkB,IAAI,OAAOL,GAAU,GAAG,EAC1CM,GAAmB,IAAI,OAAOL,GAAW,GAAG,EAC5CM,GAAe,QACfC,GAAc,OACdC,GAAe,OACfC,GAAe,OACfC,GAAgB,OAKtB,SAASC,GAASC,EAAK,CACrB,OAAQ,MAAMA,CAAG,EAEbA,EAAI,WAAW,CAAC,EADhB,SAASA,EAAK,EAAE,CAEtB,CAKA,SAASC,GAAcD,EAAK,CAC1B,OAAOA,EAAI,QAAQN,GAAcV,EAAQ,EACtC,QAAQW,GAAaV,EAAO,EAC5B,QAAQW,GAAcV,EAAQ,EAC9B,QAAQW,GAAcV,EAAQ,EAC9B,QAAQW,GAAeV,EAAS,CACrC,CAKA,SAASc,GAAgBF,EAAK,CAC5B,OAAOA,EAAI,QAAQX,GAAiB,IAAI,EACrC,QAAQC,GAAgB,GAAG,EAC3B,QAAQC,GAAiB,GAAG,EAC5B,QAAQC,GAAiB,GAAG,EAC5B,QAAQC,GAAkB,GAAG,CAClC,CAQA,SAASU,GAAiBH,EAAK,CAC7B,GAAI,CAACA,EAAO,MAAO,CAAC,EAAE,EAEtB,IAAMI,EAAQ,CAAC,EACTC,EAAIC,GAAS,IAAK,IAAKN,CAAG,EAEhC,GAAI,CAACK,EAAK,OAAOL,EAAI,MAAM,GAAG,EAE9B,GAAM,CAAE,IAAAO,EAAK,KAAAC,EAAM,KAAAC,CAAK,EAAIJ,EACtBK,EAAIH,EAAI,MAAM,GAAG,EAEvBG,EAAEA,EAAE,OAAS,CAAC,GAAK,IAAMF,EAAO,IAChC,IAAMG,EAAYR,GAAgBM,CAAI,EACtC,OAAIA,EAAK,SACPC,EAAEA,EAAE,OAAS,CAAC,GAAKC,EAAU,MAAM,EACnCD,EAAE,KAAK,MAAMA,EAAGC,CAAS,GAG3BP,EAAM,KAAK,MAAMA,EAAOM,CAAC,EAElBN,CACT,CAKe,SAARQ,GAA4BZ,EAAK,CACtC,OAAKA,GAQDA,EAAI,MAAM,EAAG,CAAC,IAAM,OACtBA,EAAM,SAAWA,EAAI,MAAM,CAAC,GAGvBa,GAAOZ,GAAaD,CAAG,EAAG,EAAI,EAAE,IAAIE,EAAc,GAZtC,CAAC,CAatB,CAKA,SAASY,GAASd,EAAK,CACrB,MAAO,IAAMA,EAAM,GACrB,CAKA,SAASe,GAAUC,EAAI,CACrB,MAAO,SAAS,KAAKA,CAAE,CACzB,CAMA,SAASC,GAAKC,EAAGC,EAAG,CAClB,OAAOD,GAAKC,CACd,CAMA,SAASC,GAAKF,EAAGC,EAAG,CAClB,OAAOD,GAAKC,CACd,CAMA,SAASN,GAAQb,EAAKqB,EAAO,CAE3B,IAAMC,EAAa,CAAC,EAEdjB,EAAIC,GAAS,IAAK,IAAKN,CAAG,EAChC,GAAI,CAACK,EAAG,MAAO,CAACL,CAAG,EAGnB,IAAMO,EAAMF,EAAE,IACRI,EAAOJ,EAAE,KAAK,OAChBQ,GAAOR,EAAE,KAAM,EAAK,EACpB,CAAC,EAAE,EAEP,GAAI,MAAM,KAAKA,EAAE,GAAG,EAClB,QAASkB,EAAI,EAAGA,EAAId,EAAK,OAAQc,IAAK,CACpC,IAAMC,EAAYjB,EAAM,IAAMF,EAAE,KAAO,IAAMI,EAAKc,CAAC,EACnDD,EAAW,KAAKE,CAAS,CAC3B,KACK,CACL,IAAMC,EAAoB,iCAAiC,KAAKpB,EAAE,IAAI,EAChEqB,EAAkB,uCAAuC,KAAKrB,EAAE,IAAI,EACpEsB,EAAaF,GAAqBC,EAClCE,EAAYvB,EAAE,KAAK,QAAQ,GAAG,GAAK,EACzC,GAAI,CAACsB,GAAc,CAACC,EAElB,OAAIvB,EAAE,KAAK,MAAM,YAAY,GAC3BL,EAAMK,EAAE,IAAM,IAAMA,EAAE,KAAOnB,GAAWmB,EAAE,KACnCQ,GAAOb,CAAG,GAEZ,CAACA,CAAG,EAGb,IAAI6B,EACJ,GAAIF,EACFE,EAAIxB,EAAE,KAAK,MAAM,MAAM,UAEvBwB,EAAI1B,GAAgBE,EAAE,IAAI,EACtBwB,EAAE,SAAW,IAEfA,EAAIhB,GAAOgB,EAAE,CAAC,EAAG,EAAK,EAAE,IAAIf,EAAO,EAC/Be,EAAE,SAAW,GACf,OAAOpB,EAAK,IAAI,SAAUC,EAAG,CAC3B,OAAOL,EAAE,IAAMwB,EAAE,CAAC,EAAInB,CACxB,CAAC,EAOP,IAAIoB,EAEJ,GAAIH,EAAY,CACd,IAAMI,EAAIhC,GAAQ8B,EAAE,CAAC,CAAC,EAChBV,EAAIpB,GAAQ8B,EAAE,CAAC,CAAC,EAChBG,EAAQ,KAAK,IAAIH,EAAE,CAAC,EAAE,OAAQA,EAAE,CAAC,EAAE,MAAM,EAC3CI,EAAOJ,EAAE,SAAW,EACpB,KAAK,IAAI9B,GAAQ8B,EAAE,CAAC,CAAC,CAAC,EACtB,EACAK,EAAOjB,GACKE,EAAIY,IAElBE,GAAQ,GACRC,EAAOd,IAET,IAAMe,EAAMN,EAAE,KAAKd,EAAQ,EAE3Be,EAAI,CAAC,EAEL,QAASZ,EAAIa,EAAGG,EAAKhB,EAAGC,CAAC,EAAGD,GAAKe,EAAM,CACrC,IAAIG,EACJ,GAAIV,EACFU,EAAI,OAAO,aAAalB,CAAC,EACrBkB,IAAM,OAAQA,EAAI,YAEtBA,EAAI,OAAOlB,CAAC,EACRiB,EAAK,CACP,IAAME,GAAOL,EAAQI,EAAE,OACvB,GAAIC,GAAO,EAAG,CACZ,IAAMC,EAAI,IAAI,MAAMD,GAAO,CAAC,EAAE,KAAK,GAAG,EAClCnB,EAAI,EAAKkB,EAAI,IAAME,EAAIF,EAAE,MAAM,CAAC,EAAWA,EAAIE,EAAIF,CACzD,CACF,CAEFN,EAAE,KAAKM,CAAC,CACV,CACF,KAAO,CACLN,EAAI,CAAC,EAEL,QAASS,EAAI,EAAGA,EAAIV,EAAE,OAAQU,IAC5BT,EAAE,KAAK,MAAMA,EAAGjB,GAAOgB,EAAEU,CAAC,EAAG,EAAK,CAAC,CAEvC,CAEA,QAASA,EAAI,EAAGA,EAAIT,EAAE,OAAQS,IAC5B,QAAShB,EAAI,EAAGA,EAAId,EAAK,OAAQc,IAAK,CACpC,IAAMC,EAAYjB,EAAMuB,EAAES,CAAC,EAAI9B,EAAKc,CAAC,GACjC,CAACF,GAASM,GAAcH,IAAaF,EAAW,KAAKE,CAAS,CACpE,CAEJ,CAEA,OAAOF,CACT,CCzOO,IAAMkB,GACXC,GAC6B,CAC7B,GAAI,OAAOA,GAAY,SACrB,MAAM,IAAI,UAAU,iBAAiB,EAGvC,GAAIA,EAAQ,OAAS,MACnB,MAAM,IAAI,UAAU,qBAAqB,CAE7C,ECPA,IAAMC,GAAsE,CAC1E,YAAa,CAAC,uBAAwB,EAAI,EAC1C,YAAa,CAAC,gBAAiB,EAAI,EACnC,YAAa,CAAC,cAAyB,EAAK,EAC5C,YAAa,CAAC,aAAc,EAAI,EAChC,YAAa,CAAC,UAAW,EAAI,EAC7B,YAAa,CAAC,UAAW,EAAI,EAC7B,YAAa,CAAC,eAAgB,GAAM,EAAI,EACxC,YAAa,CAAC,UAAW,EAAI,EAC7B,YAAa,CAAC,SAAU,EAAI,EAC5B,YAAa,CAAC,SAAU,EAAI,EAC5B,YAAa,CAAC,wBAAyB,EAAI,EAC3C,YAAa,CAAC,UAAW,EAAI,EAC7B,WAAY,CAAC,8BAA+B,EAAI,EAChD,aAAc,CAAC,YAAa,EAAK,GAK7BC,GAAeC,GAAcA,EAAE,QAAQ,YAAa,MAAM,EAE1DC,GAAgBD,GACpBA,EAAE,QAAQ,2BAA4B,MAAM,EAGxCE,GAAkBC,GAA6BA,EAAO,KAAK,EAAE,EAetDC,GAAa,CACxBC,EACAC,IACoB,CACpB,IAAMC,EAAMD,EAEZ,GAAID,EAAK,OAAOE,CAAG,IAAM,IACvB,MAAM,IAAI,MAAM,2BAA2B,EAG7C,IAAMJ,EAAmB,CAAA,EACnBK,EAAiB,CAAA,EAEnBC,EAAIF,EAAM,EACVG,EAAW,GACXC,EAAQ,GACRC,EAAW,GACXC,EAAS,GACTC,EAASP,EACTQ,EAAa,GACjBC,EAAO,KAAOP,EAAIJ,EAAK,QAAQ,CAC7B,IAAMY,EAAIZ,EAAK,OAAOI,CAAC,EACvB,IAAKQ,IAAM,KAAOA,IAAM,MAAQR,IAAMF,EAAM,EAAG,CAC7CM,EAAS,GACTJ,IACA,QACF,CAEA,GAAIQ,IAAM,KAAOP,GAAY,CAACE,EAAU,CACtCE,EAASL,EAAI,EACb,KACF,CAGA,GADAC,EAAW,GACPO,IAAM,MACJ,CAACL,EAAU,CACbA,EAAW,GACXH,IACA,QACF,CAGF,GAAIQ,IAAM,KAAO,CAACL,GAEhB,OAAW,CAACM,EAAK,CAACC,EAAMC,EAAGC,CAAG,CAAC,IAAK,OAAO,QAAQvB,EAAY,EAC7D,GAAIO,EAAK,WAAWa,EAAKT,CAAC,EAAG,CAE3B,GAAIM,EACF,MAAO,CAAC,KAAM,GAAOV,EAAK,OAASE,EAAK,EAAI,EAE9CE,GAAKS,EAAI,OACLG,EAAKb,EAAK,KAAKW,CAAI,EAClBhB,EAAO,KAAKgB,CAAI,EACrBR,EAAQA,GAASS,EACjB,SAASJ,CACX,EAMJ,GADAJ,EAAW,GACPG,EAAY,CAGVE,EAAIF,EACNZ,EAAO,KAAKJ,GAAYgB,CAAU,EAAI,IAAMhB,GAAYkB,CAAC,CAAC,EACjDA,IAAMF,GACfZ,EAAO,KAAKJ,GAAYkB,CAAC,CAAC,EAE5BF,EAAa,GACbN,IACA,QACF,CAIA,GAAIJ,EAAK,WAAW,KAAMI,EAAI,CAAC,EAAG,CAChCN,EAAO,KAAKJ,GAAYkB,EAAI,GAAG,CAAC,EAChCR,GAAK,EACL,QACF,CACA,GAAIJ,EAAK,WAAW,IAAKI,EAAI,CAAC,EAAG,CAC/BM,EAAaE,EACbR,GAAK,EACL,QACF,CAGAN,EAAO,KAAKJ,GAAYkB,CAAC,CAAC,EAC1BR,GACF,CAEA,GAAIK,EAASL,EAGX,MAAO,CAAC,GAAI,GAAO,EAAG,EAAK,EAK7B,GAAI,CAACN,EAAO,QAAU,CAACK,EAAK,OAC1B,MAAO,CAAC,KAAM,GAAOH,EAAK,OAASE,EAAK,EAAI,EAO9C,GACEC,EAAK,SAAW,GAChBL,EAAO,SAAW,GAClB,SAAS,KAAKA,EAAO,CAAC,CAAC,GACvB,CAACU,EACD,CACA,IAAMS,EAAInB,EAAO,CAAC,EAAE,SAAW,EAAIA,EAAO,CAAC,EAAE,MAAM,EAAE,EAAIA,EAAO,CAAC,EACjE,MAAO,CAACF,GAAaqB,CAAC,EAAG,GAAOR,EAASP,EAAK,EAAK,CACrD,CAEA,IAAMgB,EAAU,KAAOV,EAAS,IAAM,IAAMX,GAAeC,CAAM,EAAI,IAC/DqB,EAAQ,KAAOX,EAAS,GAAK,KAAOX,GAAeM,CAAI,EAAI,IAQjE,MAAO,CANLL,EAAO,QAAUK,EAAK,OAClB,IAAMe,EAAU,IAAMC,EAAQ,IAC9BrB,EAAO,OACPoB,EACAC,EAEQb,EAAOG,EAASP,EAAK,EAAI,CACzC,EC7JO,IAAMkB,GAAW,CACtBC,EACA,CACE,qBAAAC,EAAuB,EAAK,EACsB,CAAA,IAE7CA,EACHD,EAAE,QAAQ,iBAAkB,IAAI,EAChCA,EAAE,QAAQ,4BAA6B,MAAM,EAAE,QAAQ,aAAc,IAAI,ECqB/E,IAAME,GAAQ,IAAI,IAAiB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACtDC,GAAiBC,GACrBF,GAAM,IAAIE,CAAgB,EAMtBC,GAAmB,4BACnBC,GAAa,UAKbC,GAAkB,IAAI,IAAI,CAAC,IAAK,GAAG,CAAC,EAEpCC,GAAW,IAAI,IAAI,CAAC,KAAM,GAAG,CAAC,EAC9BC,GAAa,IAAI,IAAI,iBAAiB,EACtCC,GAAgBC,GACpBA,EAAE,QAAQ,2BAA4B,MAAM,EAGxCC,GAAQ,OAGRC,GAAOD,GAAQ,KAGfE,GAAcF,GAAQ,KAKfG,GAAP,MAAOC,CAAG,CACd,KACSC,GAETC,GACAC,GAAkB,GAClBC,GAA2B,CAAA,EAClBC,GACAC,GACTC,GACAC,GAAuB,GACvBC,GACAC,GAGAC,GAAqB,GAErB,YACEC,EACAC,EACAC,EAA4B,CAAA,EAAE,CAE9B,KAAK,KAAOF,EAERA,IAAM,KAAKV,GAAY,IAC3B,KAAKG,GAAUQ,EACf,KAAKZ,GAAQ,KAAKI,GAAU,KAAKA,GAAQJ,GAAQ,KACjD,KAAKQ,GAAW,KAAKR,KAAU,KAAOa,EAAU,KAAKb,GAAMQ,GAC3D,KAAKF,GAAQ,KAAKN,KAAU,KAAO,CAAA,EAAK,KAAKA,GAAMM,GAC/CK,IAAS,KAAO,CAAC,KAAKX,GAAMO,IAAa,KAAKD,GAAM,KAAK,IAAI,EACjE,KAAKD,GAAe,KAAKD,GAAU,KAAKA,GAAQD,GAAO,OAAS,CAClE,CAEA,IAAI,UAAQ,CAEV,GAAI,KAAKF,KAAc,OAAW,OAAO,KAAKA,GAE9C,QAAWa,KAAK,KAAKX,GACnB,GAAI,OAAOW,GAAM,WACbA,EAAE,MAAQA,EAAE,UAAU,OAAQ,KAAKb,GAAY,GAGrD,OAAO,KAAKA,EACd,CAGA,UAAQ,CACN,OAAI,KAAKQ,KAAc,OAAkB,KAAKA,GACzC,KAAK,KAGA,KAAKA,GACX,KAAK,KAAO,IAAM,KAAKN,GAAO,IAAIW,GAAK,OAAOA,CAAC,CAAC,EAAE,KAAK,GAAG,EAAI,IAHxD,KAAKL,GAAY,KAAKN,GAAO,IAAIW,GAAK,OAAOA,CAAC,CAAC,EAAE,KAAK,EAAE,CAKpE,CAEAC,IAAS,CAEP,GAAI,OAAS,KAAKf,GAAO,MAAM,IAAI,MAAM,0BAA0B,EACnE,GAAI,KAAKO,GAAa,OAAO,KAI7B,KAAK,SAAQ,EACb,KAAKA,GAAc,GACnB,IAAIS,EACJ,KAAQA,EAAI,KAAKV,GAAM,IAAG,GAAK,CAC7B,GAAIU,EAAE,OAAS,IAAK,SAEpB,IAAIF,EAAqBE,EACrBC,EAAKH,EAAEV,GACX,KAAOa,GAAI,CACT,QACMC,EAAIJ,EAAET,GAAe,EACzB,CAACY,EAAG,MAAQC,EAAID,EAAGd,GAAO,OAC1Be,IAEA,QAAWC,KAAQH,EAAEb,GAAQ,CAE3B,GAAI,OAAOgB,GAAS,SAClB,MAAM,IAAI,MAAM,8BAA8B,EAGhDA,EAAK,OAAOF,EAAGd,GAAOe,CAAC,CAAC,CAC1B,CAEFJ,EAAIG,EACJA,EAAKH,EAAEV,EACT,CACF,CACA,OAAO,IACT,CAEA,QAAQgB,EAAuB,CAC7B,QAAWN,KAAKM,EACd,GAAIN,IAAM,GAEV,IAAI,OAAOA,GAAM,UAAY,EAAEA,aAAaf,GAAOe,EAAEV,KAAY,MAC/D,MAAM,IAAI,MAAM,iBAAmBU,CAAC,EAGtC,KAAKX,GAAO,KAAKW,CAAC,EAEtB,CAEA,QAAM,CACJ,IAAMO,EACJ,KAAK,OAAS,KACV,KAAKlB,GAAO,MAAK,EAAG,IAAIW,GAAM,OAAOA,GAAM,SAAWA,EAAIA,EAAE,OAAM,CAAG,EACrE,CAAC,KAAK,KAAM,GAAG,KAAKX,GAAO,IAAIW,GAAMA,EAAU,OAAM,CAAE,CAAC,EAC9D,OAAI,KAAK,QAAO,GAAM,CAAC,KAAK,MAAMO,EAAI,QAAQ,CAAA,CAAE,EAE9C,KAAK,MAAK,IACT,OAAS,KAAKrB,IACZ,KAAKA,GAAMO,IAAe,KAAKH,IAAS,OAAS,MAEpDiB,EAAI,KAAK,CAAA,CAAE,EAENA,CACT,CAEA,SAAO,CACL,GAAI,KAAKrB,KAAU,KAAM,MAAO,GAEhC,GAAI,CAAC,KAAKI,IAAS,QAAO,EAAI,MAAO,GACrC,GAAI,KAAKC,KAAiB,EAAG,MAAO,GAEpC,IAAMS,EAAI,KAAKV,GACf,QAAS,EAAI,EAAG,EAAI,KAAKC,GAAc,IAAK,CAC1C,IAAMY,EAAKH,EAAEX,GAAO,CAAC,EACrB,GAAI,EAAEc,aAAclB,GAAOkB,EAAG,OAAS,KACrC,MAAO,EAEX,CACA,MAAO,EACT,CAEA,OAAK,CAEH,GADI,KAAKjB,KAAU,MACf,KAAKI,IAAS,OAAS,IAAK,MAAO,GACvC,GAAI,CAAC,KAAKA,IAAS,MAAK,EAAI,MAAO,GACnC,GAAI,CAAC,KAAK,KAAM,OAAO,KAAKA,IAAS,MAAK,EAG1C,IAAMkB,EAAK,KAAKlB,GAAU,KAAKA,GAAQD,GAAO,OAAS,EAEvD,OAAO,KAAKE,KAAiBiB,EAAK,CACpC,CAEA,OAAOH,EAAkB,CACnB,OAAOA,GAAS,SAAU,KAAK,KAAKA,CAAI,EACvC,KAAK,KAAKA,EAAK,MAAM,IAAI,CAAC,CACjC,CAEA,MAAMP,EAAW,CACf,IAAMzB,EAAI,IAAIY,EAAI,KAAK,KAAMa,CAAM,EACnC,QAAWE,KAAK,KAAKX,GACnBhB,EAAE,OAAO2B,CAAC,EAEZ,OAAO3B,CACT,CAEA,MAAOoC,GACLC,EACAC,EACAC,EACAC,EAAqB,CAErB,IAAIC,EAAW,GACXC,EAAU,GACVC,EAAa,GACbC,EAAW,GACf,GAAIN,EAAI,OAAS,KAAM,CAErB,IAAIP,EAAIQ,EACJM,EAAM,GACV,KAAOd,EAAIM,EAAI,QAAQ,CACrB,IAAMrC,EAAIqC,EAAI,OAAON,GAAG,EAGxB,GAAIU,GAAYzC,IAAM,KAAM,CAC1ByC,EAAW,CAACA,EACZI,GAAO7C,EACP,QACF,CAEA,GAAI0C,EAAS,CACPX,IAAMY,EAAa,GACjB3C,IAAM,KAAOA,IAAM,OACrB4C,EAAW,IAEJ5C,IAAM,KAAO,EAAE+B,IAAMY,EAAa,GAAKC,KAChDF,EAAU,IAEZG,GAAO7C,EACP,QACF,SAAWA,IAAM,IAAK,CACpB0C,EAAU,GACVC,EAAaZ,EACba,EAAW,GACXC,GAAO7C,EACP,QACF,CAEA,GAAI,CAACwC,EAAI,OAASzC,GAAcC,CAAC,GAAKqC,EAAI,OAAON,CAAC,IAAM,IAAK,CAC3DO,EAAI,KAAKO,CAAG,EACZA,EAAM,GACN,IAAMC,EAAM,IAAIlC,EAAIZ,EAAGsC,CAAG,EAC1BP,EAAInB,EAAIwB,GAAUC,EAAKS,EAAKf,EAAGS,CAAG,EAClCF,EAAI,KAAKQ,CAAG,EACZ,QACF,CACAD,GAAO7C,CACT,CACA,OAAAsC,EAAI,KAAKO,CAAG,EACLd,CACT,CAIA,IAAIA,EAAIQ,EAAM,EACVP,EAAO,IAAIpB,EAAI,KAAM0B,CAAG,EACtBL,EAAe,CAAA,EACjBY,EAAM,GACV,KAAOd,EAAIM,EAAI,QAAQ,CACrB,IAAMrC,EAAIqC,EAAI,OAAON,GAAG,EAGxB,GAAIU,GAAYzC,IAAM,KAAM,CAC1ByC,EAAW,CAACA,EACZI,GAAO7C,EACP,QACF,CAEA,GAAI0C,EAAS,CACPX,IAAMY,EAAa,GACjB3C,IAAM,KAAOA,IAAM,OACrB4C,EAAW,IAEJ5C,IAAM,KAAO,EAAE+B,IAAMY,EAAa,GAAKC,KAChDF,EAAU,IAEZG,GAAO7C,EACP,QACF,SAAWA,IAAM,IAAK,CACpB0C,EAAU,GACVC,EAAaZ,EACba,EAAW,GACXC,GAAO7C,EACP,QACF,CAEA,GAAID,GAAcC,CAAC,GAAKqC,EAAI,OAAON,CAAC,IAAM,IAAK,CAC7CC,EAAK,KAAKa,CAAG,EACbA,EAAM,GACN,IAAMC,EAAM,IAAIlC,EAAIZ,EAAGgC,CAAI,EAC3BA,EAAK,KAAKc,CAAG,EACbf,EAAInB,EAAIwB,GAAUC,EAAKS,EAAKf,EAAGS,CAAG,EAClC,QACF,CACA,GAAIxC,IAAM,IAAK,CACbgC,EAAK,KAAKa,CAAG,EACbA,EAAM,GACNZ,EAAM,KAAKD,CAAI,EACfA,EAAO,IAAIpB,EAAI,KAAM0B,CAAG,EACxB,QACF,CACA,GAAItC,IAAM,IACR,OAAI6C,IAAQ,IAAMP,EAAItB,GAAO,SAAW,IACtCsB,EAAIf,GAAY,IAElBS,EAAK,KAAKa,CAAG,EACbA,EAAM,GACNP,EAAI,KAAK,GAAGL,EAAOD,CAAI,EAChBD,EAETc,GAAO7C,CACT,CAKA,OAAAsC,EAAI,KAAO,KACXA,EAAIxB,GAAY,OAChBwB,EAAItB,GAAS,CAACqB,EAAI,UAAUE,EAAM,CAAC,CAAC,EAC7BR,CACT,CAEA,OAAO,SAASgB,EAAiBrB,EAA4B,CAAA,EAAE,CAC7D,IAAMY,EAAM,IAAI1B,EAAI,KAAM,OAAWc,CAAO,EAC5C,OAAAd,EAAIwB,GAAUW,EAAST,EAAK,EAAGZ,CAAO,EAC/BY,CACT,CAIA,aAAW,CAGT,GAAI,OAAS,KAAKzB,GAAO,OAAO,KAAKA,GAAM,YAAW,EAEtD,IAAMmC,EAAO,KAAK,SAAQ,EACpB,CAACC,EAAIC,EAAMC,EAAUC,CAAK,EAAI,KAAK,eAAc,EAUvD,GAAI,EALFD,GACA,KAAKrC,IACJ,KAAKO,GAAS,QACb,CAAC,KAAKA,GAAS,iBACf2B,EAAK,YAAW,IAAOA,EAAK,YAAW,GAEzC,OAAOE,EAGT,IAAMG,GAAS,KAAKhC,GAAS,OAAS,IAAM,KAAO+B,EAAQ,IAAM,IACjE,OAAO,OAAO,OAAO,IAAI,OAAO,IAAIH,CAAE,IAAKI,CAAK,EAAG,CACjD,KAAMJ,EACN,MAAOD,EACR,CACH,CAEA,IAAI,SAAO,CACT,OAAO,KAAK3B,EACd,CAuEA,eACEiC,EAAkB,CAElB,IAAMC,EAAMD,GAAY,CAAC,CAAC,KAAKjC,GAAS,IAExC,GADI,KAAKR,KAAU,MAAM,KAAKe,GAAS,EACnC,CAAC,KAAK,KAAM,CACd,IAAM4B,EAAU,KAAK,QAAO,GAAM,KAAK,MAAK,EACtCC,EAAM,KAAKzC,GACd,IAAIW,GAAI,CACP,GAAM,CAACsB,EAAIS,EAAGP,EAAUC,CAAK,EAC3B,OAAOzB,GAAM,SACTf,EAAI+C,GAAWhC,EAAG,KAAKb,GAAW0C,CAAO,EACzC7B,EAAE,eAAe2B,CAAQ,EAC/B,YAAKxC,GAAY,KAAKA,IAAaqC,EACnC,KAAKpC,GAAS,KAAKA,IAAUqC,EACtBH,CACT,CAAC,EACA,KAAK,EAAE,EAENW,EAAQ,GACZ,GAAI,KAAK,QAAO,GACV,OAAO,KAAK5C,GAAO,CAAC,GAAM,UAQxB,EADF,KAAKA,GAAO,SAAW,GAAKZ,GAAS,IAAI,KAAKY,GAAO,CAAC,CAAC,GACpC,CACnB,IAAM6C,EAAM1D,GAGN2D,EAEHP,GAAOM,EAAI,IAAIJ,EAAI,OAAO,CAAC,CAAC,GAE5BA,EAAI,WAAW,KAAK,GAAKI,EAAI,IAAIJ,EAAI,OAAO,CAAC,CAAC,GAE9CA,EAAI,WAAW,QAAQ,GAAKI,EAAI,IAAIJ,EAAI,OAAO,CAAC,CAAC,EAG9CM,EAAY,CAACR,GAAO,CAACD,GAAYO,EAAI,IAAIJ,EAAI,OAAO,CAAC,CAAC,EAE5DG,EAAQE,EAAa7D,GAAmB8D,EAAY7D,GAAa,EACnE,CAKJ,IAAI8D,EAAM,GACV,OACE,KAAK,MAAK,GACV,KAAKnD,GAAMO,IACX,KAAKH,IAAS,OAAS,MAEvB+C,EAAM,aAGD,CADOJ,EAAQH,EAAMO,EAG1BC,GAASR,CAAG,EACX,KAAK3C,GAAY,CAAC,CAAC,KAAKA,GACzB,KAAKC,GAET,CAMA,IAAMmD,EAAW,KAAK,OAAS,KAAO,KAAK,OAAS,IAE9CN,EAAQ,KAAK,OAAS,IAAM,YAAc,MAC5CV,EAAO,KAAKiB,GAAeZ,CAAG,EAElC,GAAI,KAAK,QAAO,GAAM,KAAK,MAAK,GAAM,CAACL,GAAQ,KAAK,OAAS,IAAK,CAGhE,IAAM3C,EAAI,KAAK,SAAQ,EACvB,YAAKS,GAAS,CAACT,CAAC,EAChB,KAAK,KAAO,KACZ,KAAKO,GAAY,OACV,CAACP,EAAG0D,GAAS,KAAK,SAAQ,CAAE,EAAG,GAAO,EAAK,CACpD,CAGA,IAAIG,EACF,CAACF,GAAYZ,GAAYC,GAAO,CAACrD,GAC7B,GACA,KAAKiE,GAAe,EAAI,EAC1BC,IAAmBlB,IACrBkB,EAAiB,IAEfA,IACFlB,EAAO,MAAMA,CAAI,OAAOkB,CAAc,OAIxC,IAAIC,EAAQ,GACZ,GAAI,KAAK,OAAS,KAAO,KAAK9C,GAC5B8C,GAAS,KAAK,QAAO,GAAM,CAACd,EAAMrD,GAAa,IAAMQ,OAChD,CACL,IAAM4D,EACJ,KAAK,OAAS,IAEV,MACC,KAAK,QAAO,GAAM,CAACf,GAAO,CAACD,EAAWpD,GAAa,IACpDO,GACA,IACA,KAAK,OAAS,IACd,IACA,KAAK,OAAS,IACd,KACA,KAAK,OAAS,KAAO2D,EACrB,IACA,KAAK,OAAS,KAAOA,EACrB,KACA,IAAI,KAAK,IAAI,GACnBC,EAAQT,EAAQV,EAAOoB,CACzB,CACA,MAAO,CACLD,EACAJ,GAASf,CAAI,EACZ,KAAKpC,GAAY,CAAC,CAAC,KAAKA,GACzB,KAAKC,GAET,CAEAoD,GAAeZ,EAAY,CACzB,OAAO,KAAKvC,GACT,IAAIW,GAAI,CAGP,GAAI,OAAOA,GAAM,SACf,MAAM,IAAI,MAAM,8BAA8B,EAIhD,GAAM,CAACsB,EAAIS,EAAGa,EAAWnB,CAAK,EAAIzB,EAAE,eAAe4B,CAAG,EACtD,YAAKxC,GAAS,KAAKA,IAAUqC,EACtBH,CACT,CAAC,EACA,OAAOtB,GAAK,EAAE,KAAK,QAAO,GAAM,KAAK,MAAK,IAAO,CAAC,CAACA,CAAC,EACpD,KAAK,GAAG,CACb,CAEA,MAAOgC,GACLX,EACAG,EACAK,EAAmB,GAAK,CAExB,IAAIf,EAAW,GACXQ,EAAK,GACLG,EAAQ,GACZ,QAASrB,EAAI,EAAGA,EAAIiB,EAAK,OAAQjB,IAAK,CACpC,IAAM,EAAIiB,EAAK,OAAOjB,CAAC,EACvB,GAAIU,EAAU,CACZA,EAAW,GACXQ,IAAO5C,GAAW,IAAI,CAAC,EAAI,KAAO,IAAM,EACxC,QACF,CACA,GAAI,IAAM,KAAM,CACV0B,IAAMiB,EAAK,OAAS,EACtBC,GAAM,OAENR,EAAW,GAEb,QACF,CACA,GAAI,IAAM,IAAK,CACb,GAAM,CAACgB,EAAKe,EAAWC,EAAUC,CAAK,EAAIC,GAAW3B,EAAMjB,CAAC,EAC5D,GAAI0C,EAAU,CACZxB,GAAMQ,EACNL,EAAQA,GAASoB,EACjBzC,GAAK0C,EAAW,EAChBtB,EAAWA,GAAYuB,EACvB,QACF,CACF,CACA,GAAI,IAAM,IAAK,CACTlB,GAAWR,IAAS,IAAKC,GAAMvC,GAC9BuC,GAAMxC,GACX0C,EAAW,GACX,QACF,CACA,GAAI,IAAM,IAAK,CACbF,GAAMzC,GACN2C,EAAW,GACX,QACF,CACAF,GAAM3C,GAAa,CAAC,CACtB,CACA,MAAO,CAAC2C,EAAIgB,GAASjB,CAAI,EAAG,CAAC,CAACG,EAAUC,CAAK,CAC/C,GCjpBK,IAAMwB,GAAS,CACpBC,EACA,CACE,qBAAAC,EAAuB,EAAK,EACsB,CAAA,IAK7CA,EACHD,EAAE,QAAQ,aAAc,MAAM,EAC9BA,EAAE,QAAQ,eAAgB,MAAM,ECqB/B,IAAME,EAAY,CACvBC,EACAC,EACAC,EAA4B,CAAA,KAE5BC,GAAmBF,CAAO,EAGtB,CAACC,EAAQ,WAAaD,EAAQ,OAAO,CAAC,IAAM,IACvC,GAGF,IAAIG,GAAUH,EAASC,CAAO,EAAE,MAAMF,CAAC,GAI1CK,GAAe,wBACfC,GAAkBC,GAAiBC,GACvC,CAACA,EAAE,WAAW,GAAG,GAAKA,EAAE,SAASD,CAAG,EAChCE,GAAqBF,GAAiBC,GAAcA,EAAE,SAASD,CAAG,EAClEG,GAAwBH,IAC5BA,EAAMA,EAAI,YAAW,EACbC,GAAc,CAACA,EAAE,WAAW,GAAG,GAAKA,EAAE,YAAW,EAAG,SAASD,CAAG,GAEpEI,GAA2BJ,IAC/BA,EAAMA,EAAI,YAAW,EACbC,GAAcA,EAAE,YAAW,EAAG,SAASD,CAAG,GAE9CK,GAAgB,aAChBC,GAAmBL,GAAc,CAACA,EAAE,WAAW,GAAG,GAAKA,EAAE,SAAS,GAAG,EACrEM,GAAsBN,GAC1BA,IAAM,KAAOA,IAAM,MAAQA,EAAE,SAAS,GAAG,EACrCO,GAAY,UACZC,GAAeR,GAAcA,IAAM,KAAOA,IAAM,MAAQA,EAAE,WAAW,GAAG,EACxES,GAAS,QACTC,GAAYV,GAAcA,EAAE,SAAW,GAAK,CAACA,EAAE,WAAW,GAAG,EAC7DW,GAAeX,GAAcA,EAAE,SAAW,GAAKA,IAAM,KAAOA,IAAM,KAClEY,GAAW,yBACXC,GAAmB,CAAC,CAACC,EAAIf,EAAM,EAAE,IAAuB,CAC5D,IAAMgB,EAAQC,GAAgB,CAACF,CAAE,CAAC,EAClC,OAAKf,GACLA,EAAMA,EAAI,YAAW,EACbC,GAAce,EAAMf,CAAC,GAAKA,EAAE,YAAW,EAAG,SAASD,CAAG,GAF7CgB,CAGnB,EACME,GAAsB,CAAC,CAACH,EAAIf,EAAM,EAAE,IAAuB,CAC/D,IAAMgB,EAAQG,GAAmB,CAACJ,CAAE,CAAC,EACrC,OAAKf,GACLA,EAAMA,EAAI,YAAW,EACbC,GAAce,EAAMf,CAAC,GAAKA,EAAE,YAAW,EAAG,SAASD,CAAG,GAF7CgB,CAGnB,EACMI,GAAgB,CAAC,CAACL,EAAIf,EAAM,EAAE,IAAuB,CACzD,IAAMgB,EAAQG,GAAmB,CAACJ,CAAE,CAAC,EACrC,OAAQf,EAAeC,GAAce,EAAMf,CAAC,GAAKA,EAAE,SAASD,CAAG,EAAjDgB,CAChB,EACMK,GAAa,CAAC,CAACN,EAAIf,EAAM,EAAE,IAAuB,CACtD,IAAMgB,EAAQC,GAAgB,CAACF,CAAE,CAAC,EAClC,OAAQf,EAAeC,GAAce,EAAMf,CAAC,GAAKA,EAAE,SAASD,CAAG,EAAjDgB,CAChB,EACMC,GAAkB,CAAC,CAACF,CAAE,IAAuB,CACjD,IAAMO,EAAMP,EAAG,OACf,OAAQd,GAAcA,EAAE,SAAWqB,GAAO,CAACrB,EAAE,WAAW,GAAG,CAC7D,EACMkB,GAAqB,CAAC,CAACJ,CAAE,IAAuB,CACpD,IAAMO,EAAMP,EAAG,OACf,OAAQd,GAAcA,EAAE,SAAWqB,GAAOrB,IAAM,KAAOA,IAAM,IAC/D,EAGMsB,GACJ,OAAO,SAAY,UAAY,QAC1B,OAAO,QAAQ,KAAQ,UACtB,QAAQ,KACR,QAAQ,IAAI,gCACd,QAAQ,SACR,QAGAC,GAAsC,CAC1C,MAAO,CAAE,IAAK,IAAI,EAClB,MAAO,CAAE,IAAK,GAAG,GAINC,GAAMF,KAAoB,QAAUC,GAAK,MAAM,IAAMA,GAAK,MAAM,IAC7EhC,EAAU,IAAMiC,GAET,IAAMC,EAAW,OAAO,aAAa,EAC5ClC,EAAU,SAAWkC,EAIrB,IAAMC,GAAQ,OAGRC,GAAOD,GAAQ,KAKfE,GAAa,0CAIbC,GAAe,0BAERC,GACX,CAACrC,EAAiBC,EAA4B,CAAA,IAC7CF,GACCD,EAAUC,EAAGC,EAASC,CAAO,EACjCH,EAAU,OAASuC,GAEnB,IAAM/B,EAAM,CAACgC,EAAqBC,EAAsB,CAAA,IACtD,OAAO,OAAO,CAAA,EAAID,EAAGC,CAAC,EAEXC,GAAYC,GAA2C,CAClE,GAAI,CAACA,GAAO,OAAOA,GAAQ,UAAY,CAAC,OAAO,KAAKA,CAAG,EAAE,OACvD,OAAO3C,EAGT,IAAM4C,EAAO5C,EAKb,OAAO,OAAO,OAHJ,CAACC,EAAWC,EAAiBC,EAA4B,CAAA,IACjEyC,EAAK3C,EAAGC,EAASM,EAAImC,EAAKxC,CAAO,CAAC,EAEZ,CACtB,UAAW,cAAwByC,EAAK,SAAS,CAC/C,YAAY1C,EAAiBC,EAA4B,CAAA,EAAE,CACzD,MAAMD,EAASM,EAAImC,EAAKxC,CAAO,CAAC,CAClC,CACA,OAAO,SAASA,EAAyB,CACvC,OAAOyC,EAAK,SAASpC,EAAImC,EAAKxC,CAAO,CAAC,EAAE,SAC1C,GAGF,IAAK,cAAkByC,EAAK,GAAG,CAE7B,YACEC,EACAC,EACA3C,EAA4B,CAAA,EAAE,CAE9B,MAAM0C,EAAMC,EAAQtC,EAAImC,EAAKxC,CAAO,CAAC,CACvC,CAGA,OAAO,SAASD,EAAiBC,EAA4B,CAAA,EAAE,CAC7D,OAAOyC,EAAK,IAAI,SAAS1C,EAASM,EAAImC,EAAKxC,CAAO,CAAC,CACrD,GAGF,SAAU,CACR4C,EACA5C,EAA0D,CAAA,IACvDyC,EAAK,SAASG,EAAGvC,EAAImC,EAAKxC,CAAO,CAAC,EAEvC,OAAQ,CACN4C,EACA5C,EAA0D,CAAA,IACvDyC,EAAK,OAAOG,EAAGvC,EAAImC,EAAKxC,CAAO,CAAC,EAErC,OAAQ,CAACD,EAAiBC,EAA4B,CAAA,IACpDyC,EAAK,OAAO1C,EAASM,EAAImC,EAAKxC,CAAO,CAAC,EAExC,SAAWA,GAA8ByC,EAAK,SAASpC,EAAImC,EAAKxC,CAAO,CAAC,EAExE,OAAQ,CAACD,EAAiBC,EAA4B,CAAA,IACpDyC,EAAK,OAAO1C,EAASM,EAAImC,EAAKxC,CAAO,CAAC,EAExC,YAAa,CAACD,EAAiBC,EAA4B,CAAA,IACzDyC,EAAK,YAAY1C,EAASM,EAAImC,EAAKxC,CAAO,CAAC,EAE7C,MAAO,CAAC6C,EAAgB9C,EAAiBC,EAA4B,CAAA,IACnEyC,EAAK,MAAMI,EAAM9C,EAASM,EAAImC,EAAKxC,CAAO,CAAC,EAE7C,IAAKyC,EAAK,IACV,SAAUV,EACX,CACH,EACAlC,EAAU,SAAW0C,GAYd,IAAMO,GAAc,CACzB/C,EACAC,EAA4B,CAAA,KAE5BC,GAAmBF,CAAO,EAItBC,EAAQ,SAAW,CAAC,mBAAmB,KAAKD,CAAO,EAE9C,CAACA,CAAO,EAGVgD,GAAOhD,CAAO,GAEvBF,EAAU,YAAciD,GAcjB,IAAME,GAAS,CAACjD,EAAiBC,EAA4B,CAAA,IAClE,IAAIE,GAAUH,EAASC,CAAO,EAAE,OAAM,EACxCH,EAAU,OAASmD,GAEZ,IAAMC,GAAQ,CACnBJ,EACA9C,EACAC,EAA4B,CAAA,IAC1B,CACF,IAAMkD,EAAK,IAAIhD,GAAUH,EAASC,CAAO,EACzC,OAAA6C,EAAOA,EAAK,OAAOvC,GAAK4C,EAAG,MAAM5C,CAAC,CAAC,EAC/B4C,EAAG,QAAQ,QAAU,CAACL,EAAK,QAC7BA,EAAK,KAAK9C,CAAO,EAEZ8C,CACT,EACAhD,EAAU,MAAQoD,GAGlB,IAAME,GAAY,0BACZC,GAAgBR,GACpBA,EAAE,QAAQ,2BAA4B,MAAM,EAUjC1C,GAAP,KAAgB,CACpB,QACA,IACA,QAEA,qBACA,SACA,OACA,QACA,MACA,wBACA,QACA,QACA,UACA,OAEA,UACA,SACA,mBAEA,OACA,YAAYH,EAAiBC,EAA4B,CAAA,EAAE,CACzDC,GAAmBF,CAAO,EAE1BC,EAAUA,GAAW,CAAA,EACrB,KAAK,QAAUA,EACf,KAAK,QAAUD,EACf,KAAK,SAAWC,EAAQ,UAAY4B,GACpC,KAAK,UAAY,KAAK,WAAa,QACnC,KAAK,qBACH,CAAC,CAAC5B,EAAQ,sBAAwBA,EAAQ,qBAAuB,GAC/D,KAAK,uBACP,KAAK,QAAU,KAAK,QAAQ,QAAQ,MAAO,GAAG,GAEhD,KAAK,wBAA0B,CAAC,CAACA,EAAQ,wBACzC,KAAK,OAAS,KACd,KAAK,OAAS,GACd,KAAK,SAAW,CAAC,CAACA,EAAQ,SAC1B,KAAK,QAAU,GACf,KAAK,MAAQ,GACb,KAAK,QAAU,CAAC,CAACA,EAAQ,QACzB,KAAK,OAAS,CAAC,CAAC,KAAK,QAAQ,OAC7B,KAAK,mBACHA,EAAQ,qBAAuB,OAC3BA,EAAQ,mBACR,CAAC,EAAE,KAAK,WAAa,KAAK,QAEhC,KAAK,QAAU,CAAA,EACf,KAAK,UAAY,CAAA,EACjB,KAAK,IAAM,CAAA,EAGX,KAAK,KAAI,CACX,CAEA,UAAQ,CACN,GAAI,KAAK,QAAQ,eAAiB,KAAK,IAAI,OAAS,EAClD,MAAO,GAET,QAAWD,KAAW,KAAK,IACzB,QAAWsD,KAAQtD,EACjB,GAAI,OAAOsD,GAAS,SAAU,MAAO,GAGzC,MAAO,EACT,CAEA,SAASC,EAAQ,CAAG,CAEpB,MAAI,CACF,IAAMvD,EAAU,KAAK,QACfC,EAAU,KAAK,QAGrB,GAAI,CAACA,EAAQ,WAAaD,EAAQ,OAAO,CAAC,IAAM,IAAK,CACnD,KAAK,QAAU,GACf,MACF,CAEA,GAAI,CAACA,EAAS,CACZ,KAAK,MAAQ,GACb,MACF,CAGA,KAAK,YAAW,EAGhB,KAAK,QAAU,CAAC,GAAG,IAAI,IAAI,KAAK,YAAW,CAAE,CAAC,EAE1CC,EAAQ,QACV,KAAK,MAAQ,IAAIuD,IAAgB,QAAQ,MAAM,GAAGA,CAAI,GAGxD,KAAK,MAAM,KAAK,QAAS,KAAK,OAAO,EAWrC,IAAMC,EAAe,KAAK,QAAQ,IAAIZ,GAAK,KAAK,WAAWA,CAAC,CAAC,EAC7D,KAAK,UAAY,KAAK,WAAWY,CAAY,EAC7C,KAAK,MAAM,KAAK,QAAS,KAAK,SAAS,EAGvC,IAAIC,EAAM,KAAK,UAAU,IAAI,CAACb,EAAGU,EAAGI,IAAM,CACxC,GAAI,KAAK,WAAa,KAAK,mBAAoB,CAE7C,IAAMC,EACJf,EAAE,CAAC,IAAM,IACTA,EAAE,CAAC,IAAM,KACRA,EAAE,CAAC,IAAM,KAAO,CAACO,GAAU,KAAKP,EAAE,CAAC,CAAC,IACrC,CAACO,GAAU,KAAKP,EAAE,CAAC,CAAC,EAChBgB,EAAU,WAAW,KAAKhB,EAAE,CAAC,CAAC,EACpC,GAAIe,EACF,MAAO,CAAC,GAAGf,EAAE,MAAM,EAAG,CAAC,EAAG,GAAGA,EAAE,MAAM,CAAC,EAAE,IAAIiB,GAAM,KAAK,MAAMA,CAAE,CAAC,CAAC,EAC5D,GAAID,EACT,MAAO,CAAChB,EAAE,CAAC,EAAG,GAAGA,EAAE,MAAM,CAAC,EAAE,IAAIiB,GAAM,KAAK,MAAMA,CAAE,CAAC,CAAC,CAEzD,CACA,OAAOjB,EAAE,IAAIiB,GAAM,KAAK,MAAMA,CAAE,CAAC,CACnC,CAAC,EAUD,GARA,KAAK,MAAM,KAAK,QAASJ,CAAG,EAG5B,KAAK,IAAMA,EAAI,OACbb,GAAKA,EAAE,QAAQ,EAAK,IAAM,EAAE,EAI1B,KAAK,UACP,QAASkB,EAAI,EAAGA,EAAI,KAAK,IAAI,OAAQA,IAAK,CACxC,IAAMhE,EAAI,KAAK,IAAIgE,CAAC,EAElBhE,EAAE,CAAC,IAAM,IACTA,EAAE,CAAC,IAAM,IACT,KAAK,UAAUgE,CAAC,EAAE,CAAC,IAAM,KACzB,OAAOhE,EAAE,CAAC,GAAM,UAChB,YAAY,KAAKA,EAAE,CAAC,CAAC,IAErBA,EAAE,CAAC,EAAI,IAEX,CAGF,KAAK,MAAM,KAAK,QAAS,KAAK,GAAG,CACnC,CAOA,WAAWiE,EAAqB,CAE9B,GAAI,KAAK,QAAQ,WACf,QAASD,EAAI,EAAGA,EAAIC,EAAU,OAAQD,IACpC,QAASE,EAAI,EAAGA,EAAID,EAAUD,CAAC,EAAE,OAAQE,IACnCD,EAAUD,CAAC,EAAEE,CAAC,IAAM,OACtBD,EAAUD,CAAC,EAAEE,CAAC,EAAI,KAM1B,GAAM,CAAE,kBAAAC,EAAoB,CAAC,EAAK,KAAK,QAEvC,OAAIA,GAAqB,GAEvBF,EAAY,KAAK,qBAAqBA,CAAS,EAC/CA,EAAY,KAAK,sBAAsBA,CAAS,GACvCE,GAAqB,EAE9BF,EAAY,KAAK,iBAAiBA,CAAS,EAG3CA,EAAY,KAAK,0BAA0BA,CAAS,EAG/CA,CACT,CAGA,0BAA0BA,EAAqB,CAC7C,OAAOA,EAAU,IAAIG,GAAQ,CAC3B,IAAIC,EAAa,GACjB,MAAeA,EAAKD,EAAM,QAAQ,KAAMC,EAAK,CAAC,KAAvC,IAA2C,CAChD,IAAIL,EAAIK,EACR,KAAOD,EAAMJ,EAAI,CAAC,IAAM,MACtBA,IAEEA,IAAMK,GACRD,EAAM,OAAOC,EAAIL,EAAIK,CAAE,CAE3B,CACA,OAAOD,CACT,CAAC,CACH,CAGA,iBAAiBH,EAAqB,CACpC,OAAOA,EAAU,IAAIG,IACnBA,EAAQA,EAAM,OAAO,CAACT,EAAeJ,IAAQ,CAC3C,IAAMe,EAAOX,EAAIA,EAAI,OAAS,CAAC,EAC/B,OAAIJ,IAAS,MAAQe,IAAS,KACrBX,EAELJ,IAAS,MACPe,GAAQA,IAAS,MAAQA,IAAS,KAAOA,IAAS,MACpDX,EAAI,IAAG,EACAA,IAGXA,EAAI,KAAKJ,CAAI,EACNI,EACT,EAAG,CAAA,CAAE,EACES,EAAM,SAAW,EAAI,CAAC,EAAE,EAAIA,EACpC,CACH,CAEA,qBAAqBA,EAAwB,CACtC,MAAM,QAAQA,CAAK,IACtBA,EAAQ,KAAK,WAAWA,CAAK,GAE/B,IAAIG,EAAwB,GAC5B,EAAG,CAGD,GAFAA,EAAe,GAEX,CAAC,KAAK,wBAAyB,CACjC,QAASP,EAAI,EAAGA,EAAII,EAAM,OAAS,EAAGJ,IAAK,CACzC,IAAMhE,EAAIoE,EAAMJ,CAAC,EAEbA,IAAM,GAAKhE,IAAM,IAAMoE,EAAM,CAAC,IAAM,KACpCpE,IAAM,KAAOA,IAAM,MACrBuE,EAAe,GACfH,EAAM,OAAOJ,EAAG,CAAC,EACjBA,IAEJ,CAEEI,EAAM,CAAC,IAAM,KACbA,EAAM,SAAW,IAChBA,EAAM,CAAC,IAAM,KAAOA,EAAM,CAAC,IAAM,MAElCG,EAAe,GACfH,EAAM,IAAG,EAEb,CAGA,IAAII,EAAa,EACjB,MAAeA,EAAKJ,EAAM,QAAQ,KAAMI,EAAK,CAAC,KAAvC,IAA2C,CAChD,IAAMxE,EAAIoE,EAAMI,EAAK,CAAC,EAClBxE,GAAKA,IAAM,KAAOA,IAAM,MAAQA,IAAM,OACxCuE,EAAe,GACfH,EAAM,OAAOI,EAAK,EAAG,CAAC,EACtBA,GAAM,EAEV,CACF,OAASD,GACT,OAAOH,EAAM,SAAW,EAAI,CAAC,EAAE,EAAIA,CACrC,CAoBA,qBAAqBH,EAAqB,CACxC,IAAIM,EAAe,GACnB,EAAG,CACDA,EAAe,GAEf,QAASH,KAASH,EAAW,CAC3B,IAAII,EAAa,GACjB,MAAeA,EAAKD,EAAM,QAAQ,KAAMC,EAAK,CAAC,KAAvC,IAA2C,CAChD,IAAII,EAAcJ,EAClB,KAAOD,EAAMK,EAAM,CAAC,IAAM,MAExBA,IAIEA,EAAMJ,GACRD,EAAM,OAAOC,EAAK,EAAGI,EAAMJ,CAAE,EAG/B,IAAIK,EAAON,EAAMC,EAAK,CAAC,EACjBrE,EAAIoE,EAAMC,EAAK,CAAC,EAChBM,EAAKP,EAAMC,EAAK,CAAC,EAEvB,GADIK,IAAS,MAEX,CAAC1E,GACDA,IAAM,KACNA,IAAM,MACN,CAAC2E,GACDA,IAAO,KACPA,IAAO,KAEP,SAEFJ,EAAe,GAEfH,EAAM,OAAOC,EAAI,CAAC,EAClB,IAAMO,EAAQR,EAAM,MAAM,CAAC,EAC3BQ,EAAMP,CAAE,EAAI,KACZJ,EAAU,KAAKW,CAAK,EACpBP,GACF,CAGA,GAAI,CAAC,KAAK,wBAAyB,CACjC,QAASL,EAAI,EAAGA,EAAII,EAAM,OAAS,EAAGJ,IAAK,CACzC,IAAMhE,EAAIoE,EAAMJ,CAAC,EAEbA,IAAM,GAAKhE,IAAM,IAAMoE,EAAM,CAAC,IAAM,KACpCpE,IAAM,KAAOA,IAAM,MACrBuE,EAAe,GACfH,EAAM,OAAOJ,EAAG,CAAC,EACjBA,IAEJ,CAEEI,EAAM,CAAC,IAAM,KACbA,EAAM,SAAW,IAChBA,EAAM,CAAC,IAAM,KAAOA,EAAM,CAAC,IAAM,MAElCG,EAAe,GACfH,EAAM,IAAG,EAEb,CAGA,IAAII,EAAa,EACjB,MAAeA,EAAKJ,EAAM,QAAQ,KAAMI,EAAK,CAAC,KAAvC,IAA2C,CAChD,IAAMxE,EAAIoE,EAAMI,EAAK,CAAC,EACtB,GAAIxE,GAAKA,IAAM,KAAOA,IAAM,MAAQA,IAAM,KAAM,CAC9CuE,EAAe,GAEf,IAAMM,EADUL,IAAO,GAAKJ,EAAMI,EAAK,CAAC,IAAM,KACtB,CAAC,GAAG,EAAI,CAAA,EAChCJ,EAAM,OAAOI,EAAK,EAAG,EAAG,GAAGK,CAAK,EAC5BT,EAAM,SAAW,GAAGA,EAAM,KAAK,EAAE,EACrCI,GAAM,CACR,CACF,CACF,CACF,OAASD,GAET,OAAON,CACT,CASA,sBAAsBA,EAAqB,CACzC,QAAS,EAAI,EAAG,EAAIA,EAAU,OAAS,EAAG,IACxC,QAASC,EAAI,EAAI,EAAGA,EAAID,EAAU,OAAQC,IAAK,CAC7C,IAAMY,EAAU,KAAK,WACnBb,EAAU,CAAC,EACXA,EAAUC,CAAC,EACX,CAAC,KAAK,uBAAuB,EAE/B,GAAIY,EAAS,CACXb,EAAU,CAAC,EAAI,CAAA,EACfA,EAAUC,CAAC,EAAIY,EACf,KACF,CACF,CAEF,OAAOb,EAAU,OAAOI,GAAMA,EAAG,MAAM,CACzC,CAEA,WACE9B,EACAC,EACAuC,EAAwB,GAAK,CAE7B,IAAIC,EAAK,EACLC,EAAK,EACLC,EAAmB,CAAA,EACnBC,EAAgB,GACpB,KAAOH,EAAKzC,EAAE,QAAU0C,EAAKzC,EAAE,QAC7B,GAAID,EAAEyC,CAAE,IAAMxC,EAAEyC,CAAE,EAChBC,EAAO,KAAKC,IAAU,IAAM3C,EAAEyC,CAAE,EAAI1C,EAAEyC,CAAE,CAAC,EACzCA,IACAC,YACSF,GAAgBxC,EAAEyC,CAAE,IAAM,MAAQxC,EAAEyC,CAAE,IAAM1C,EAAEyC,EAAK,CAAC,EAC7DE,EAAO,KAAK3C,EAAEyC,CAAE,CAAC,EACjBA,YACSD,GAAgBvC,EAAEyC,CAAE,IAAM,MAAQ1C,EAAEyC,CAAE,IAAMxC,EAAEyC,EAAK,CAAC,EAC7DC,EAAO,KAAK1C,EAAEyC,CAAE,CAAC,EACjBA,YAEA1C,EAAEyC,CAAE,IAAM,KACVxC,EAAEyC,CAAE,IACH,KAAK,QAAQ,KAAO,CAACzC,EAAEyC,CAAE,EAAE,WAAW,GAAG,IAC1CzC,EAAEyC,CAAE,IAAM,KACV,CACA,GAAIE,IAAU,IAAK,MAAO,GAC1BA,EAAQ,IACRD,EAAO,KAAK3C,EAAEyC,CAAE,CAAC,EACjBA,IACAC,GACF,SACEzC,EAAEyC,CAAE,IAAM,KACV1C,EAAEyC,CAAE,IACH,KAAK,QAAQ,KAAO,CAACzC,EAAEyC,CAAE,EAAE,WAAW,GAAG,IAC1CzC,EAAEyC,CAAE,IAAM,KACV,CACA,GAAIG,IAAU,IAAK,MAAO,GAC1BA,EAAQ,IACRD,EAAO,KAAK1C,EAAEyC,CAAE,CAAC,EACjBD,IACAC,GACF,KACE,OAAO,GAKX,OAAO1C,EAAE,SAAWC,EAAE,QAAU0C,CAClC,CAEA,aAAW,CACT,GAAI,KAAK,SAAU,OAEnB,IAAMjF,EAAU,KAAK,QACjBmF,EAAS,GACTC,EAAe,EAEnB,QAASrB,EAAI,EAAGA,EAAI/D,EAAQ,QAAUA,EAAQ,OAAO+D,CAAC,IAAM,IAAKA,IAC/DoB,EAAS,CAACA,EACVC,IAGEA,IAAc,KAAK,QAAUpF,EAAQ,MAAMoF,CAAY,GAC3D,KAAK,OAASD,CAChB,CAOA,SAASE,EAAgBrF,EAAwBsF,EAAmB,GAAK,CACvE,IAAMrF,EAAU,KAAK,QAKrB,GAAI,KAAK,UAAW,CAClB,IAAMsF,EAAY,OAAOF,EAAK,CAAC,GAAM,UAAY,YAAY,KAAKA,EAAK,CAAC,CAAC,EACnEG,EACJ,CAACD,GACDF,EAAK,CAAC,IAAM,IACZA,EAAK,CAAC,IAAM,IACZA,EAAK,CAAC,IAAM,KACZ,YAAY,KAAKA,EAAK,CAAC,CAAC,EAEpBI,EACJ,OAAOzF,EAAQ,CAAC,GAAM,UAAY,YAAY,KAAKA,EAAQ,CAAC,CAAC,EACzD0F,EACJ,CAACD,GACDzF,EAAQ,CAAC,IAAM,IACfA,EAAQ,CAAC,IAAM,IACfA,EAAQ,CAAC,IAAM,KACf,OAAOA,EAAQ,CAAC,GAAM,UACtB,YAAY,KAAKA,EAAQ,CAAC,CAAC,EAEvB2F,EAAMH,EAAU,EAAID,EAAY,EAAI,OACpCK,EAAMF,EAAa,EAAID,EAAe,EAAI,OAChD,GAAI,OAAOE,GAAQ,UAAY,OAAOC,GAAQ,SAAU,CACtD,GAAM,CAACC,GAAIC,CAAE,EAAsB,CAACT,EAAKM,CAAG,EAAG3F,EAAQ4F,CAAG,CAAW,EACjEC,GAAG,YAAW,IAAOC,EAAG,YAAW,IACrC9F,EAAQ4F,CAAG,EAAIC,GACXD,EAAMD,EACR3F,EAAUA,EAAQ,MAAM4F,CAAG,EAClBD,EAAMC,IACfP,EAAOA,EAAK,MAAMM,CAAG,GAG3B,CACF,CAIA,GAAM,CAAE,kBAAAzB,EAAoB,CAAC,EAAK,KAAK,QACnCA,GAAqB,IACvBmB,EAAO,KAAK,qBAAqBA,CAAI,GAGvC,KAAK,MAAM,WAAY,KAAM,CAAE,KAAAA,EAAM,QAAArF,CAAO,CAAE,EAC9C,KAAK,MAAM,WAAYqF,EAAK,OAAQrF,EAAQ,MAAM,EAElD,QACM+F,EAAK,EAAGC,EAAK,EAAGC,EAAKZ,EAAK,OAAQa,EAAKlG,EAAQ,OACnD+F,EAAKE,GAAMD,EAAKE,EAChBH,IAAMC,IACN,CACA,KAAK,MAAM,eAAe,EAC1B,IAAI,EAAIhG,EAAQgG,CAAE,EACdzF,EAAI8E,EAAKU,CAAE,EAOf,GALA,KAAK,MAAM/F,EAAS,EAAGO,CAAC,EAKpB,IAAM,GACR,MAAO,GAIT,GAAI,IAAMyB,EAAU,CAClB,KAAK,MAAM,WAAY,CAAChC,EAAS,EAAGO,CAAC,CAAC,EAwBtC,IAAI4F,EAAKJ,EACLK,EAAKJ,EAAK,EACd,GAAII,IAAOF,EAAI,CAQb,IAPA,KAAK,MAAM,eAAe,EAOnBH,EAAKE,EAAIF,IACd,GACEV,EAAKU,CAAE,IAAM,KACbV,EAAKU,CAAE,IAAM,MACZ,CAAC9F,EAAQ,KAAOoF,EAAKU,CAAE,EAAE,OAAO,CAAC,IAAM,IAExC,MAAO,GAEX,MAAO,EACT,CAGA,KAAOI,EAAKF,GAAI,CACd,IAAII,EAAYhB,EAAKc,CAAE,EAKvB,GAHA,KAAK,MAAM;gBAAoBd,EAAMc,EAAInG,EAASoG,EAAIC,CAAS,EAG3D,KAAK,SAAShB,EAAK,MAAMc,CAAE,EAAGnG,EAAQ,MAAMoG,CAAE,EAAGd,CAAO,EAC1D,YAAK,MAAM,wBAAyBa,EAAIF,EAAII,CAAS,EAE9C,GAIP,GACEA,IAAc,KACdA,IAAc,MACb,CAACpG,EAAQ,KAAOoG,EAAU,OAAO,CAAC,IAAM,IACzC,CACA,KAAK,MAAM,gBAAiBhB,EAAMc,EAAInG,EAASoG,CAAE,EACjD,KACF,CAGA,KAAK,MAAM,0CAA0C,EACrDD,GAEJ,CAKA,MAAI,GAAAb,IAEF,KAAK,MAAM;wBAA4BD,EAAMc,EAAInG,EAASoG,CAAE,EACxDD,IAAOF,GAMf,CAKA,IAAIK,EASJ,GARI,OAAO,GAAM,UACfA,EAAM/F,IAAM,EACZ,KAAK,MAAM,eAAgB,EAAGA,EAAG+F,CAAG,IAEpCA,EAAM,EAAE,KAAK/F,CAAC,EACd,KAAK,MAAM,gBAAiB,EAAGA,EAAG+F,CAAG,GAGnC,CAACA,EAAK,MAAO,EACnB,CAcA,GAAIP,IAAOE,GAAMD,IAAOE,EAGtB,MAAO,GACF,GAAIH,IAAOE,EAIhB,OAAOX,EACF,GAAIU,IAAOE,EAKhB,OAAOH,IAAOE,EAAK,GAAKZ,EAAKU,CAAE,IAAM,GAKrC,MAAM,IAAI,MAAM,MAAM,CAG1B,CAEA,aAAW,CACT,OAAOhD,GAAY,KAAK,QAAS,KAAK,OAAO,CAC/C,CAEA,MAAM/C,EAAe,CACnBE,GAAmBF,CAAO,EAE1B,IAAMC,EAAU,KAAK,QAGrB,GAAID,IAAY,KAAM,OAAOgC,EAC7B,GAAIhC,IAAY,GAAI,MAAO,GAI3B,IAAIuG,EACAC,EAA4C,MAC3CD,EAAIvG,EAAQ,MAAMgB,EAAM,GAC3BwF,EAAWvG,EAAQ,IAAMiB,GAAcD,IAC7BsF,EAAIvG,EAAQ,MAAMI,EAAY,GACxCoG,GACEvG,EAAQ,OACJA,EAAQ,IACNS,GACAD,GACFR,EAAQ,IACRO,GACAH,IACJkG,EAAE,CAAC,CAAC,GACIA,EAAIvG,EAAQ,MAAMmB,EAAQ,GACpCqF,GACEvG,EAAQ,OACJA,EAAQ,IACNuB,GACAJ,GACFnB,EAAQ,IACRyB,GACAC,IACJ4E,CAAC,GACOA,EAAIvG,EAAQ,MAAMW,EAAa,GACzC6F,EAAWvG,EAAQ,IAAMY,GAAqBD,IACpC2F,EAAIvG,EAAQ,MAAMc,EAAS,KACrC0F,EAAWzF,IAGb,IAAM0F,EAAKC,GAAI,SAAS1G,EAAS,KAAK,OAAO,EAAE,YAAW,EAC1D,OAAIwG,GAAY,OAAOC,GAAO,UAE5B,QAAQ,eAAeA,EAAI,OAAQ,CAAE,MAAOD,CAAQ,CAAE,EAEjDC,CACT,CAEA,QAAM,CACJ,GAAI,KAAK,QAAU,KAAK,SAAW,GAAO,OAAO,KAAK,OAQtD,IAAM/C,EAAM,KAAK,IAEjB,GAAI,CAACA,EAAI,OACP,YAAK,OAAS,GACP,KAAK,OAEd,IAAMzD,EAAU,KAAK,QAEf0G,EAAU1G,EAAQ,WACpBiC,GACAjC,EAAQ,IACRkC,GACAC,GACEwE,EAAQ,IAAI,IAAI3G,EAAQ,OAAS,CAAC,GAAG,EAAI,CAAA,CAAE,EAQ7CwG,EAAK/C,EACN,IAAI1D,GAAU,CACb,IAAM6G,EAAmC7G,EAAQ,IAAI,GAAI,CACvD,GAAI,aAAa,OACf,QAAWO,KAAK,EAAE,MAAM,MAAM,EAAE,EAAGqG,EAAM,IAAIrG,CAAC,EAEhD,OAAO,OAAO,GAAM,SAChB8C,GAAa,CAAC,EACd,IAAMrB,EACNA,EACA,EAAE,IACR,CAAC,EACD,OAAA6E,EAAG,QAAQ,CAAC,EAAG9C,IAAK,CAClB,IAAMU,EAAOoC,EAAG9C,EAAI,CAAC,EACfM,EAAOwC,EAAG9C,EAAI,CAAC,EACjB,IAAM/B,GAAYqC,IAASrC,IAG3BqC,IAAS,OACPI,IAAS,QAAaA,IAASzC,EACjC6E,EAAG9C,EAAI,CAAC,EAAI,UAAY4C,EAAU,QAAUlC,EAE5CoC,EAAG9C,CAAC,EAAI4C,EAEDlC,IAAS,OAClBoC,EAAG9C,EAAI,CAAC,EAAIM,EAAO,UAAYsC,EAAU,KAChClC,IAASzC,IAClB6E,EAAG9C,EAAI,CAAC,EAAIM,EAAO,aAAesC,EAAU,OAASlC,EACrDoC,EAAG9C,EAAI,CAAC,EAAI/B,GAEhB,CAAC,EACM6E,EAAG,OAAO,GAAK,IAAM7E,CAAQ,EAAE,KAAK,GAAG,CAChD,CAAC,EACA,KAAK,GAAG,EAIL,CAAC8E,EAAMC,CAAK,EAAIrD,EAAI,OAAS,EAAI,CAAC,MAAO,GAAG,EAAI,CAAC,GAAI,EAAE,EAG7D+C,EAAK,IAAMK,EAAOL,EAAKM,EAAQ,IAG3B,KAAK,SAAQN,EAAK,OAASA,EAAK,QAEpC,GAAI,CACF,KAAK,OAAS,IAAI,OAAOA,EAAI,CAAC,GAAGG,CAAK,EAAE,KAAK,EAAE,CAAC,CAElD,MAAa,CAEX,KAAK,OAAS,EAChB,CAEA,OAAO,KAAK,MACd,CAEA,WAAW7G,EAAS,CAKlB,OAAI,KAAK,wBACAA,EAAE,MAAM,GAAG,EACT,KAAK,WAAa,cAAc,KAAKA,CAAC,EAExC,CAAC,GAAI,GAAGA,EAAE,MAAM,KAAK,CAAC,EAEtBA,EAAE,MAAM,KAAK,CAExB,CAEA,MAAMQ,EAAW+E,EAAU,KAAK,QAAO,CAIrC,GAHA,KAAK,MAAM,QAAS/E,EAAG,KAAK,OAAO,EAG/B,KAAK,QACP,MAAO,GAET,GAAI,KAAK,MACP,OAAOA,IAAM,GAGf,GAAIA,IAAM,KAAO+E,EACf,MAAO,GAGT,IAAMrF,EAAU,KAAK,QAGjB,KAAK,YACPM,EAAIA,EAAE,MAAM,IAAI,EAAE,KAAK,GAAG,GAI5B,IAAMyG,EAAK,KAAK,WAAWzG,CAAC,EAC5B,KAAK,MAAM,KAAK,QAAS,QAASyG,CAAE,EAOpC,IAAMtD,EAAM,KAAK,IACjB,KAAK,MAAM,KAAK,QAAS,MAAOA,CAAG,EAGnC,IAAIuD,EAAmBD,EAAGA,EAAG,OAAS,CAAC,EACvC,GAAI,CAACC,EACH,QAASlD,EAAIiD,EAAG,OAAS,EAAG,CAACC,GAAYlD,GAAK,EAAGA,IAC/CkD,EAAWD,EAAGjD,CAAC,EAInB,QAASA,EAAI,EAAGA,EAAIL,EAAI,OAAQK,IAAK,CACnC,IAAM/D,EAAU0D,EAAIK,CAAC,EACjBsB,EAAO2B,EAKX,GAJI/G,EAAQ,WAAaD,EAAQ,SAAW,IAC1CqF,EAAO,CAAC4B,CAAQ,GAEN,KAAK,SAAS5B,EAAMrF,EAASsF,CAAO,EAE9C,OAAIrF,EAAQ,WACH,GAEF,CAAC,KAAK,MAEjB,CAIA,OAAIA,EAAQ,WACH,GAEF,KAAK,MACd,CAEA,OAAO,SAASwC,EAAqB,CACnC,OAAO3C,EAAU,SAAS2C,CAAG,EAAE,SACjC,GAOF3C,EAAU,IAAM4G,GAChB5G,EAAU,UAAYK,GACtBL,EAAU,OAASoH,GACnBpH,EAAU,SAAWqH,G/BzqCrB,OAAQ,YAAAC,OAAe,mBACvB,OAAQ,WAAAC,GAAS,QAAAC,OAAW,YgCL5B,OAAQ,oBAAAC,GAAkB,qBAAAC,OAAwB,UAClD,OAAQ,YAAAC,OAAe,cACvB,OAAQ,gBAAAC,GAAc,cAAAC,OAAiB,YAGhC,IAAMC,GAAa,MAAO,CAAC,OAAAC,CAAM,IACtC,MAAM,IAAI,QAAgB,CAACC,EAASC,IAAW,CAC7C,IAAMC,EAAeC,GAAS,KAAKJ,CAAM,EAEnCK,EAAuB,CAAC,EAExBC,EAAOC,GAAa,EAE1BJ,EAAa,KAAKG,CAAI,EAEtBA,EAAK,GAAG,OAASE,GAAsBH,EAAO,KAAKG,CAAK,CAAC,EACzDF,EAAK,GAAG,MAAO,IAAM,CACnBL,EAAQ,OAAO,OAAOI,CAAM,CAAC,CAC/B,CAAC,EACDC,EAAK,GAAG,QAASJ,CAAM,CACzB,CAAC,EAEUO,GAAY,MAAO,CAC9B,YAAAC,EACA,KAAAJ,CACF,IAA4F,CAC1F,GAAIA,IAAS,GACX,MAAO,CAAC,EAIV,IAAMK,EAAUL,IAAS,GAAOM,GAAsBN,EAEhDO,EAAkBH,EAAY,OAAQI,GAASC,EAAUD,EAAMH,CAAO,CAAC,EAC7E,OAAO,MAAM,QAAQ,IAAIE,EAAgB,IAAI,MAAOb,GAAW,MAAMgB,GAAS,CAAC,OAAAhB,CAAM,CAAC,CAAC,CAAC,CAC1F,EAEagB,GAAW,MAAO,CAC7B,OAAAhB,EACA,YAAAiB,CACF,IAIE,MAAM,IAAI,QAAgB,CAAChB,EAASC,IAAW,CAC7C,IAAMC,EAAee,GAAiBlB,CAAM,EAEtCmB,EAAkBF,GAAe,GAAGjB,CAAM,MAC1CoB,EAAoBC,GAAkBF,CAAe,EAErDb,EAAOgB,GAAW,EAExBnB,EAAa,KAAKG,CAAI,EAAE,KAAKc,CAAiB,EAE9CA,EAAkB,GAAG,QAAS,IAAM,CAClCnB,EAAQkB,CAAe,CACzB,CAAC,EACDC,EAAkB,GAAG,QAASlB,CAAM,CACtC,CAAC,EAEUqB,GAAUC,GACrBA,EAAO,OAAS,GAAKA,EAAO,CAAC,IAAM,IAAQA,EAAO,CAAC,IAAM,IC7D3D,OAAQ,aAAAC,OAAgB,UACxB,OAAQ,YAAAC,OAAe,YCHvB,OAAQ,aAAAC,GAAW,eAAAC,OAAkB,UACrC,OAAQ,UAAAC,OAAa,mBACrB,OAAQ,QAAAC,OAAW,YAEZ,IAAMC,GAASC,GACpBJ,GAAYI,CAAM,EAAE,QAASC,GAAS,CACpC,IAAMC,EAAOJ,GAAKE,EAAQC,CAAI,EAC9B,OAAON,GAAUO,CAAI,EAAE,YAAY,EAAIH,GAAMG,CAAI,EAAIJ,GAAKI,CAAI,CAChE,CAAC,EAEUC,GAAa,MAAOD,GAAmC,CAClE,GAAI,CACF,aAAML,GAAOK,CAAI,EACV,EACT,OAASE,EAAc,CACrB,GAAIA,aAAe,OAAS,SAAUA,GAAQA,EAA8B,OAAS,SACnF,MAAO,GAET,MAAMA,CACR,CACF,EAEaC,GAAmBH,GAAyB,CACvD,GAAM,CAAC,KAAAI,CAAI,EAAIX,GAAUO,CAAI,EAC7B,OAAOI,CACT,EDlBO,IAAMC,GAAW,CAAC,CACvB,KAAAC,EACA,mBAAAC,CACF,IAGcD,EAAK,QAAQC,EAAoB,EAAE,EAAE,QAAQ,MAAO,GAAG,EAExDC,GAAkB,CAAC,CAC9B,mBAAAD,EACA,OAAAE,CACF,IACsBC,GAAMH,CAAkB,EAEzB,OAAQD,GAASK,GAAW,CAAC,KAAAL,EAAM,OAAAG,CAAM,CAAC,CAAC,EAG1DE,GAAa,CAAC,CAClB,KAAAL,EACA,OAAAG,CACF,IAEMG,GAAUN,CAAI,EAAE,MAAQ,GAKxBO,GAAgB,SAASC,GAASR,CAAI,EAAE,YAAY,CAAC,EAChD,GAGFG,EAAO,KAAMM,GAAYC,EAAUV,EAAMS,CAAO,CAAC,IAAM,OjCdzD,IAAME,GAAgB,MAAO,CAClC,OAAAC,EACA,WAAAC,EACA,sBAAAC,EACA,gBAAAC,CACF,IAMM,CACJ,GAAM,CACJ,OAAAC,EAASC,GACT,OAAAC,EAASC,GACT,SAAAC,EAAWC,GACX,KAAAC,EAAOC,EACT,EAAIX,EAEEY,EAAqBC,GAAK,QAAQ,IAAI,EAAGT,CAAM,EAErD,OAAAF,IAAwBU,CAAkB,EAWnC,CACL,MAVY,MAAME,GAAU,CAC5B,mBAAAF,EACA,OAAAN,EACA,SAAAE,EACA,KAAAE,EACA,WAAAT,EACA,gBAAAE,CACF,CAAC,EAIC,mBAAAS,CACF,CACF,EAEMG,GAAsB,MAAO,CACjC,MAAAC,EACA,mBAAAJ,EACA,WAAAX,CACF,IAI8B,CAC5B,IAAMgB,EAAiB,MAAMhB,EAAW,CAAC,CAAC,EAEpCiB,EAAWF,EAAM,IACrB,MAAOG,GAAsB,MAAMC,GAAe,CAAC,KAAAD,EAAM,mBAAAP,EAAoB,eAAAK,CAAc,CAAC,CAC9F,EAGA,OAF6D,MAAM,QAAQ,IAAIC,CAAQ,GAExE,OAAO,CAAC,CAAC,OAAAG,CAAM,IAAMA,CAAM,EAAE,IAAI,CAAC,CAAC,KAAAF,CAAI,IAAMA,CAAI,CAClE,EAEMG,GAAgB,MAAOH,GAAkC,CAC7D,IAAMI,EAAS,MAAMC,GAASL,CAAI,EAClC,OAAOM,GAAO,WAAW,QAAQ,EAAE,OAAOF,CAAM,EAAE,OAAO,QAAQ,CACnE,EAEMH,GAAiB,MAAO,CAC5B,KAAAD,EACA,eAAAF,EACA,mBAAAL,CACF,IAOM,CACJ,IAAMc,EAAoBP,EAAK,eAAiBA,EAAK,KAE/CQ,EAAQV,EAAe,KAC3B,CAAC,CAAC,SAAUW,CAAC,IAAMA,IAAMC,GAAS,CAAC,KAAMH,EAAmB,mBAAAd,CAAkB,CAAC,CACjF,EAEA,GAAIkB,GAAUH,CAAK,EACjB,MAAO,CAAC,KAAAR,EAAM,OAAQ,EAAI,EAG5B,IAAMY,EAAS,MAAMT,GAAcI,CAAiB,EAKpD,MAAO,CAAC,KAAAP,EAAM,OAAQY,IAAWJ,EAAM,UAAU,UAAU,MAAM,CACnE,EAEMb,GAAY,MAAO,CACvB,mBAAAF,EACA,OAAAN,EACA,SAAAE,EACA,KAAAE,EACA,WAAAT,EACA,gBAAAE,CACF,IAGwF,CACtF,IAAM6B,EAAcC,GAAgB,CAAC,mBAAArB,EAAoB,OAAAN,CAAM,CAAC,EAC1D4B,EAAkB,MAAMC,GAAU,CAAC,YAAAH,EAAa,KAAAtB,CAAI,CAAC,EAErDM,EAAQ,CAAC,GAAGgB,EAAa,GAAGE,EAAgB,OAAQf,GAAS,CAACa,EAAY,SAASb,CAAI,CAAC,CAAC,EAGzFiB,EAAkB,CAAC,CACvB,KAAAjB,EACA,IAAAkB,CACF,IAGiC,CAC/B,IAAMC,EAAiB9B,EAAS,KAAK,CAAC,CAAC+B,EAASC,CAAC,IAAMC,EAAUtB,EAAMoB,CAAO,CAAC,EAE/E,GAAIG,GAAWJ,CAAc,EAAG,CAC9B,GAAM,CAACE,EAAGG,CAAY,EAAIL,EAC1B,OAAOK,CACT,CAEA,GAAIN,IAAQ,IACV,MAAO,WAGT,GAAIA,IAAQ,KACV,MAAO,OAGT,GAAIO,GAAQzB,CAAI,IAAM,MACpB,MAAO,KAGT,GAAIyB,GAAQzB,CAAI,IAAM,QACpB,MAAO,SAIX,EAEM0B,EAAoB,CAAC,CACzB,KAAA1B,EACA,aAAAwB,CACF,IAG0B,CACxB,GAAI,CAAAb,GAAUa,CAAY,EAI1B,OAAO3B,EAAM,KAAM8B,GAAeA,IAAe3B,EAAK,QAAQyB,GAAQzB,CAAI,EAAG,EAAE,CAAC,CAClF,EAEM4B,EAAW,MAAO5B,GAAuC,CAC7D,IAAM6B,EAAW,MAAMC,GAAiB9B,CAAI,EACtCwB,EAAeP,EAAgB,CAAC,KAAAjB,EAAM,IAAK6B,GAAU,GAAG,CAAC,EAGzDE,EAAgBL,EAAkB,CAAC,KAAA1B,EAAM,aAAAwB,CAAY,CAAC,EAGtDQ,EAAW,GAAAC,QAAK,OAAOF,GAAiB/B,CAAI,EAElD,MAAO,CACL,KAAAA,EACA,cAAA+B,EACA,KAAM,OAAOC,GAAa,SAAWA,EAAW,OAChD,SAAUR,CACZ,CACF,EAEMU,EAA+B,MAAM,QAAQ,IAAIrC,EAAM,IAAI+B,CAAQ,CAAC,EAG1E,OAAI5C,IAAoB,GACfkD,EAGF,MAAMtC,GAAoB,CAC/B,MAAOsC,EACP,mBAAAzC,EACA,WAAAX,CACF,CAAC,CACH,EmClNA,OAAQ,gBAAAqD,GAAc,aAAAC,GAAW,yBAAAC,OAA4B,iBAC7D,OAAQ,kBAAAC,GAAgB,gBAAAC,GAAc,kBAAAC,OAAqB,iBA2BpD,IAAMC,GAAiB,MAAO,CACnC,aAAAC,EACA,IAAAC,EACA,eAAAC,EACA,WAAAC,CACF,IAA2D,CACzD,GAAM,CAACC,EAAYC,CAAC,EAAI,MAAMR,GAAa,CAAC,aAAAG,EAAc,IAAAC,CAAG,CAAC,EAE9D,MAAMC,EAAeE,CAAU,EAE/B,GAAM,CAACE,EAAI,CAAC,OAAQC,EAAgB,OAAAC,CAAM,CAAC,EAAI,MAAMV,GAAe,CAClE,IAAAG,EACA,WAAAG,CACF,CAAC,EAEKK,EAAShB,GAAac,CAAc,EAa1C,OAXA,QAAQ,IAAI;AAAA;AAAA,CAAuB,EACnC,QAAQ,IAAI,aAAO,OAAOH,CAAU,CAAC,EACrC,QAAQ,IAAI,UAAM,OAAO,KAAKI,CAAM,EAAE,CAAC,GAAKA,CAAM,EAE9Cd,GAAUe,CAAM,IAClB,QAAQ,IAAI,4CAAuC,EACnD,QAAQ,KAAK,CAAC,GAGhB,QAAQ,IAAI,aAAOd,GAAsBc,CAAM,CAAC,EAE3CN,GAIL,MAAMP,GAAe,CACnB,SAAU,CACR,YAAaQ,EACb,OAAAK,CACF,EACA,IAAAR,CACF,CAAC,EAED,QAAQ,IAAI,qBAAcG,CAAU,WAAW,EAExC,CAAC,WAAAA,CAAU,GAbT,CAAC,WAAAA,CAAU,CActB,ECrEA,IAAAM,GAAkB,WAFlB,OAAQ,aAAAC,GAAW,cAAAC,GAAY,kBAAAC,OAAqB,iBACpD,OAAQ,QAAAC,OAAW,SAEnB,OAAQ,YAAAC,OAAe,mBACvB,OAAQ,YAAAC,GAAU,YAAAC,OAAe,YCJ1B,IAAMC,GAAeC,GAA0B,CACpD,IAAMC,EAAOD,GAAS,IAAO,WAAa,WAO1C,OALkB,IAAI,KAAK,aAAa,KAAM,CAC5C,MAAO,OACP,KAAAC,CACF,CAAC,EAEgB,OAAOD,GAASC,IAAS,WAAa,IAAY,IAAM,CAC3E,EDKO,IAAMC,GAAc,MAAO,CAChC,MAAOC,EACP,WAAAC,EACA,mBAAAC,EACA,WAAAC,CACF,IAKM,CAUJ,MAAMC,GAAiB,CACrB,MAAOJ,EACP,mBAAAE,EACA,OAZa,MAAO,CAAC,KAAAG,EAAM,MAAAC,CAAK,IAAmC,CACnE,MAAMC,GAAoB,CACxB,WAAAJ,EACA,GAAGG,EACH,KAAAD,EACA,WAAAJ,CACF,CAAC,CACH,CAMA,CAAC,EAEDO,GAAW,CAAC,MAAOR,CAAW,CAAC,CACjC,EAEMQ,GAAa,CAAC,CAAC,MAAAC,CAAK,IAA+B,CACvD,GAAM,CAAC,MAAAC,EAAO,KAAAC,CAAI,EAAIF,EAAM,OAC1B,CAAC,CAAC,MAAAC,EAAO,KAAAC,CAAI,EAAG,CAAC,MAAAL,CAAK,KAAO,CAC3B,MAAOI,EAAQ,EACf,KAAMC,EAAOC,GAAgBN,EAAM,QAAQ,CAC7C,GACA,CAAC,MAAO,EAAG,KAAM,CAAC,CACpB,EAEA,QAAQ,IAAI;AAAA,SAAOI,CAAK,2BAA2BG,GAAYF,CAAI,CAAC,GAAG,CACzE,EAEMP,GAAmB,MAAO,CAC9B,MAAOJ,EACP,mBAAAE,EACA,OAAAY,CACF,IAIM,CACJ,IAAMf,EAAc,MAAOgB,GAA+B,CAExD,QAASC,EAAI,EAAGA,EAAID,EAAW,OAAQC,GAAK,GAAmB,CAC7D,IAAMP,EAAQM,EAAW,MAAMC,EAAGA,EAAI,EAAiB,EAUvD,MARc,IAAI,GAAAC,QAChBR,EAAM,IAAI,CAAC,CAAC,KAAAJ,EAAM,MAAAC,CAAK,KAAO,CAC5B,MAAO,aAAaY,GAAShB,EAAoBG,EAAK,IAAI,CAAC,GAC3D,KAAM,SAAY,MAAMS,EAAO,CAAC,KAAAT,EAAM,MAAAC,CAAK,CAAC,CAC9C,EAAE,EACF,CAAC,WAAY,EAAI,CACnB,EAEY,IAAI,CAClB,CACF,EAIA,MAAMP,EAAYC,EAAY,OAAO,CAAC,CAAC,KAAM,CAAC,cAAAmB,CAAa,CAAC,IAAMC,GAAWD,CAAa,CAAC,CAAC,EAC5F,MAAMpB,EAAYC,EAAY,OAAO,CAAC,CAAC,KAAM,CAAC,cAAAmB,CAAa,CAAC,IAAME,GAAUF,CAAa,CAAC,CAAC,CAC7F,EAEMZ,GAAsB,MAAO,CACjC,WAAAN,EACA,KAAAI,EACA,SAAAiB,EACA,WAAAnB,EACA,SAAAoB,EACA,MAAAC,EACA,YAAAC,CACF,IAOqB,CACnB,MAAMxB,EAAW,CACf,SAAUyB,GAASH,CAAQ,EAC3B,SAAAD,EACA,KAAM,IAAIK,GAAK,CAAC,MAAMC,GAASvB,EAAK,IAAI,CAAC,CAAC,EAC1C,WAAAF,EACA,QAAS,CACP,GAAIE,EAAK,OAAS,OAAY,CAAC,EAAK,CAAC,CAAC,eAAgBA,EAAK,IAAI,CAAC,CAClE,EACA,SAAUA,EAAK,SACf,GAAIe,GAAWI,CAAK,GAAKK,GAAeL,CAAK,GAAK,CAAC,MAAAA,CAAK,EACxD,GAAIJ,GAAWK,CAAW,GAAKI,GAAeJ,CAAW,GAAK,CAAC,YAAAA,CAAW,CAC5E,CAAC,CACH,EEvGO,IAAMK,GAA0B,MAAO,CAC5C,OAAQ,CAAC,WAAAC,EAAY,MAAAC,EAAO,mBAAAC,EAAoB,WAAAC,CAAU,EAC1D,SAAU,CAAC,aAAAC,EAAc,WAAAC,EAAY,GAAGC,CAAY,CACtD,IAOyC,CACvC,IAAMC,EAAiB,MAAOC,GAAsC,CAOlE,MAAMC,GAAY,CAChB,MAAAR,EACA,mBAAAC,EACA,WAAAC,EACA,WAV4BO,GAC5BV,EAAW,CACT,GAAGU,EACH,WAAAF,CACF,CAAC,CAOH,CAAC,CACH,EAEM,CAAC,WAAAA,CAAU,EAAI,MAAMG,GAAe,CACxC,GAAGL,EACH,WAAAD,EACA,aAAAD,EACA,eAAAG,CACF,CAAC,EAED,OAAKF,EAIE,CAAC,OAAQ,WAAY,MAAOJ,EAAM,IAAKW,GAASA,EAAK,IAAI,EAAG,WAAAJ,CAAU,EAHpE,CAAC,OAAQ,YAAa,MAAOP,EAAM,IAAKW,GAASA,EAAK,IAAI,EAAG,WAAAJ,CAAU,CAIlF,E3CrBO,IAAMK,GAAY,MAAO,CAAC,OAAQ,CAAC,UAAAC,CAAS,CAAC,IAA2B,CAC7E,MAAMC,GAAaD,CAAS,CAC9B,EAYaE,GAAa,MAAO,CAAC,OAAQ,CAAC,WAAAC,CAAU,CAAC,IAA2B,CAC/E,MAAMF,GAAaE,CAAU,CAC/B,EAuBaC,GAAS,MAAO,CAAC,WAAAC,EAAY,GAAGC,CAAI,IAA2C,CAC1F,IAAMC,EAAgB,MAAMC,GAAcF,CAAI,EAE9C,GAAIC,EAAc,SAAW,UAC3B,MAAO,CAAC,OAAQ,SAAS,EAG3B,GAAM,CAAC,MAAAE,EAAO,mBAAAC,CAAkB,EAAIH,EAE9BI,EAAcC,GAAmB,CAAC,MAAAH,EAAO,mBAAAC,CAAkB,CAAC,EAElE,aAAMG,GAAY,CAChB,MAAOF,EACP,WAAAN,EACA,mBAAAK,EACA,WAAYI,EACd,CAAC,EAED,QAAQ,IAAI;AAAA,2BAAuB,EAE5B,CAAC,OAAQ,WAAY,MAAAL,CAAK,CACnC,EAuBaM,GAAqB,MAAO,CACvC,OAAQ,CAAC,WAAAV,EAAY,GAAGC,CAAI,EAC5B,SAAU,CAAC,YAAAU,EAAa,GAAGC,CAAY,CACzC,IAGyC,CACvC,IAAMV,EAAgB,MAAMC,GAAcF,CAAI,EAE9C,GAAIC,EAAc,SAAW,UAC3B,MAAO,CAAC,OAAQ,SAAS,EAG3B,GAAM,CAAC,mBAAAG,CAAkB,EAAIH,EAEvBI,EAAcC,GAAmBL,CAAa,EAE9CW,EAAS,MAAMC,GAAwB,CAC3C,OAAQ,CAAC,WAAAd,EAAY,MAAOM,EAAa,mBAAAD,EAAoB,WAAYI,EAAe,EACxF,SAAU,CACR,GAAGG,EACH,aAAc,CACZ,cAAe,CACb,sBAAuBG,GAAWJ,CAAW,CAC/C,CACF,CACF,CACF,CAAC,EAED,OAAIE,EAAO,SAAW,YACpB,QAAQ,IAAI;AAAA,2BAAuB,EAG9BA,CACT,EAEMV,GAAgB,MAAO,CAC3B,aAAAa,EACA,GAAGf,CACL,IAEK,CACH,GAAM,CAAC,MAAOK,EAAa,mBAAAD,CAAkB,EAAI,MAAMF,GAAsBF,CAAI,EAEjF,OAAIK,EAAY,SAAW,GACzB,QAAQ,IAAI,yDAA+C,EAEpD,CAAC,OAAQ,SAAS,IAG3B,MAAMU,IAAe,EAEd,CACL,OAAQ,YACR,MAAOV,EACP,mBAAAD,CACF,EACF,EAEME,GAAqB,CAAC,CAC1B,MAAAH,EACA,mBAAAC,CACF,IAGsB,CACpB,IAAMY,EAAaC,GAAiC,CAClD,IAAMC,EAAWD,EAAK,eAAiBA,EAAK,KAE5C,MAAO,CACL,SAAUE,GAAS,CAAC,KAAMD,EAAU,mBAAAd,CAAkB,CAAC,EACvD,SAAAc,CACF,CACF,EAEA,OAAOf,EAAM,IAAKc,IAAU,CAAC,KAAAA,EAAM,MAAOD,EAAUC,CAAI,CAAC,EAAE,CAC7D,E4C5LA,OAAQ,cAAAG,OAAiB,iBA0BlB,IAAMC,GAAmC,MAAO,CACrD,QAAS,CAAC,aAAAC,EAAc,SAAAC,EAAU,SAAAC,EAAU,GAAGC,CAAU,EACzD,SAAU,CAAC,QAAAC,EAAS,GAAGC,CAAY,CACrC,IAGyC,CACvC,MAAML,IAAe,EAcrB,IAAMM,EAAS,MAAMC,GAAwB,CAC3C,OAAQ,CAAC,GAAGJ,EAAY,MAbU,CAClC,CACE,KAAM,CACJ,KAAMF,CACR,EACA,MAAO,CACL,SAAAA,EACA,SAAAC,CACF,CACF,CACF,EAG8C,WAAYM,EAAuB,EAC/E,SAAU,CACR,GAAGH,EACH,aAAc,CACZ,mBAAoB,CAClB,kBAAmBI,GAAWL,CAAO,EACrC,QAASK,GAAW,EACpB,wBAAyBA,GAAW,CACtC,CACF,CACF,CACF,CAAC,EAED,OAAIH,EAAO,SAAW,YACpB,QAAQ,IAAI;AAAA,2CAAuC,EAG9CA,CACT,EClEO,IAAMI,GAAU,CAAC,CAAC,KAAAC,EAAM,QAAAC,CAAO,IACpCD,GAAM,KAAME,GAAQD,EAAQ,SAASC,CAAG,CAAC,IAAM,OAEpCC,GAAU,CAAC,CAAC,KAAAH,EAAM,OAAAI,CAAM,IAA6D,CAChG,IAAMC,GAASL,GAAQ,CAAC,GAAG,UAAWE,GAAQA,IAAQE,CAAM,EAE5D,GAAIC,IAAU,GAId,OAAOL,IAAOK,EAAQ,CAAC,CACzB,ECXA,OAAQ,cAAAC,OAAiB,iBACzB,OAAQ,OAAOC,OAAc,OAC7B,OAAQ,OAAOC,OAAoC,QAE5C,IAAMC,GAAkB,MAAOC,GACpC,MAAM,IAAI,QAAQ,CAACC,EAASC,IAAW,GACpB,OAAOF,GAAQ,SAAW,IAAI,MAAMA,CAAG,GAAG,SAAWA,EAAI,YACjD,QAAUH,GAAUC,IAEzCE,EAAK,MAAOG,GAAQ,CAEpBP,GAAWO,EAAI,UAAU,GACzBP,GAAWO,EAAI,QAAQ,QAAQ,GAC/B,CAAC,IAAK,GAAG,EAAE,SAASA,EAAI,UAAU,GAElC,MAAMJ,GAAgBI,EAAI,QAAQ,QAAQ,EAAE,KAAKF,EAASC,CAAM,EAGlE,IAAME,EAAqB,CAAC,EAE5BD,EAAI,GAAG,OAASE,GAAUD,EAAK,KAAKC,CAAK,CAAC,EAC1CF,EAAI,GAAG,MAAO,IAAM,CAClBF,EAAQ,OAAO,OAAOG,CAAI,CAAC,CAC7B,CAAC,EACDD,EAAI,GAAG,QAASD,CAAM,CACxB,CAAC,CACH,CAAC,EC1BH,OAAQ,YAAAI,OAAe,mBAGhB,IAAMC,GAAkB,MAAO,CACpC,gBAAAC,CACF,IAE4B,CAC1B,IAAMC,EAAc,MAAMH,GAASE,EAAiB,OAAO,EAErD,CAAC,aAAAE,EAAc,QAAAC,EAAS,KAAAC,EAAM,KAAAC,CAAI,EAAI,KAAK,MAAMJ,CAAW,EAElE,MAAO,CACL,KAAAI,EACA,QAAAF,EACA,aAAAD,EACA,KAAAE,CACF,CACF,EClBA,OAAQ,aAAAE,GAAW,cAAAC,OAAiB,iBAG7B,IAAMC,GAIgC,CAC3CC,EACAC,IACS,EACLJ,GAAUG,CAAM,GAAKA,IAAW,MAC9BF,GAAWG,CAAO,GACpB,QAAQ,MAAMA,CAAO,EAGvB,QAAQ,KAAK,CAAC,EAElB",
  "names": ["require_ieee754", "__commonJSMin", "exports", "buffer", "offset", "isLE", "mLen", "nBytes", "e", "m", "eLen", "eMax", "eBias", "nBits", "i", "d", "s", "value", "rt", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "ns", "matchesTemplate", "search", "template", "searchIndex", "templateIndex", "starIndex", "matchIndex", "name", "skip", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "m", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_db", "__commonJSMin", "exports", "module", "require_mime_db", "__commonJSMin", "exports", "module", "require_mimeScore", "__commonJSMin", "exports", "module", "FACET_SCORES", "SOURCE_SCORES", "TYPE_SCORES", "mimeType", "source", "type", "subtype", "facet", "facetScore", "sourceScore", "typeScore", "lengthScore", "require_mime_types", "__commonJSMin", "exports", "db", "extname", "mimeScore", "EXTRACT_TYPE_REGEXP", "TEXT_TYPE_REGEXP", "charset", "contentType", "extension", "lookup", "populateMaps", "type", "match", "mime", "str", "exts", "path", "extensions", "types", "i", "_preferredType", "legacyType", "_preferredTypeLegacy", "ext", "type0", "type1", "score0", "score1", "SOURCE_RANK", "require_p_map", "__commonJSMin", "exports", "module", "pMap", "iterable", "mapper", "options", "resolve", "reject", "concurrency", "ret", "iterator", "isRejected", "isIterableDone", "resolvingCount", "currentIndex", "next", "nextItem", "i", "element", "value", "error", "require_is_promise", "__commonJSMin", "exports", "module", "isPromise", "obj", "require_loader", "__commonJSMin", "exports", "module", "REGISTRATION_KEY", "registered", "global", "loadImplementation", "implementation", "opts", "registerGlobal", "require_register", "__commonJSMin", "exports", "module", "loadImplementation", "implementation", "impl", "lib", "__require", "tryAutoDetect", "libs", "require_any_observable", "__commonJSMin", "exports", "module", "require_stream_to_observable", "__commonJSMin", "exports", "module", "Observable", "or", "option", "alternate", "required", "result", "stream", "opts", "complete", "dataListeners", "awaited", "dataEvent", "errorEvent", "endEvent", "cleanup", "listener", "completion", "resolve", "reject", "onEnd", "err", "observer", "onData", "data", "idx", "isFunction", "x", "exports", "_enable_super_gross_mode_that_will_cause_bad_things", "exports", "value", "error", "hostReportError", "err", "exports", "config_1", "hostReportError_1", "exports", "value", "err", "exports", "x", "isObject", "x", "exports", "UnsubscriptionErrorImpl", "errors", "err", "i", "exports", "isArray_1", "isObject_1", "isFunction_1", "UnsubscriptionError_1", "Subscription", "unsubscribe", "errors", "_a", "_parentOrParents", "_ctorUnsubscribe", "_unsubscribe", "_subscriptions", "index", "parent_1", "e", "flattenUnsubscriptionErrors", "len", "sub", "teardown", "subscription", "tmp", "subscriptions", "subscriptionIndex", "empty", "exports", "errs", "err", "exports", "isFunction_1", "Observer_1", "Subscription_1", "rxSubscriber_1", "config_1", "hostReportError_1", "Subscriber", "_super", "__extends", "destinationOrNext", "error", "complete", "_this", "SafeSubscriber", "next", "subscriber", "value", "err", "_parentOrParents", "exports", "_parentSubscriber", "observerOrNext", "context", "useDeprecatedSynchronousErrorHandling", "wrappedComplete", "fn", "parent", "Subscriber_1", "canReportError", "observer", "_a", "closed_1", "destination", "isStopped", "exports", "Subscriber_1", "rxSubscriber_1", "Observer_1", "toSubscriber", "nextOrObserver", "error", "complete", "exports", "exports", "identity", "x", "exports", "identity_1", "pipe", "fns", "_i", "pipeFromArray", "exports", "input", "prev", "fn", "canReportError_1", "toSubscriber_1", "observable_1", "pipe_1", "config_1", "Observable", "subscribe", "operator", "observable", "observerOrNext", "error", "complete", "sink", "err", "next", "promiseCtor", "_this", "getPromiseCtor", "resolve", "reject", "subscription", "value", "subscriber", "source", "operations", "_i", "x", "exports", "ObjectUnsubscribedErrorImpl", "exports", "Subscription_1", "SubjectSubscription", "_super", "__extends", "subject", "subscriber", "_this", "observers", "subscriberIndex", "exports", "Observable_1", "Subscriber_1", "Subscription_1", "ObjectUnsubscribedError_1", "SubjectSubscription_1", "rxSubscriber_1", "SubjectSubscriber", "_super", "__extends", "destination", "_this", "exports", "Subject", "operator", "subject", "AnonymousSubject", "value", "observers", "len", "copy", "i", "err", "subscriber", "observable", "source", "Subscriber_1", "refCount", "source", "RefCountOperator", "exports", "connectable", "subscriber", "refCounter", "RefCountSubscriber", "subscription", "_super", "__extends", "destination", "_this", "connection", "sharedConnection", "Subject_1", "Observable_1", "Subscriber_1", "Subscription_1", "refCount_1", "ConnectableObservable", "_super", "__extends", "source", "subjectFactory", "_this", "subscriber", "subject", "connection", "ConnectableSubscriber", "exports", "connectableProto", "destination", "connectable", "err", "RefCountOperator", "refCounter", "RefCountSubscriber", "subscription", "refCount", "sharedConnection", "Subscriber_1", "Subscription_1", "Observable_1", "Subject_1", "groupBy", "keySelector", "elementSelector", "durationSelector", "subjectSelector", "source", "GroupByOperator", "exports", "subscriber", "GroupBySubscriber", "_super", "__extends", "destination", "_this", "value", "key", "err", "groups", "group", "element", "groupedObservable", "GroupedObservable", "duration", "GroupDurationSubscriber", "parent", "_a", "groupSubject", "refCountSubscription", "subscription", "InnerRefCountSubscription", "Subject_1", "ObjectUnsubscribedError_1", "BehaviorSubject", "_super", "__extends", "_value", "_this", "subscriber", "subscription", "value", "exports", "Subscription_1", "Action", "_super", "__extends", "scheduler", "work", "state", "delay", "exports", "Action_1", "AsyncAction", "_super", "__extends", "scheduler", "work", "_this", "state", "delay", "id", "error", "errored", "errorValue", "e", "actions", "index", "exports", "AsyncAction_1", "QueueAction", "_super", "__extends", "scheduler", "work", "_this", "state", "delay", "id", "exports", "Scheduler", "SchedulerAction", "now", "work", "delay", "state", "exports", "Scheduler_1", "AsyncScheduler", "_super", "__extends", "SchedulerAction", "now", "_this", "work", "delay", "state", "action", "actions", "error", "exports", "AsyncScheduler_1", "QueueScheduler", "_super", "__extends", "exports", "QueueAction_1", "QueueScheduler_1", "exports", "Observable_1", "exports", "subscriber", "empty", "scheduler", "emptyScheduled", "isScheduler", "value", "exports", "exports", "array", "subscriber", "len", "Observable_1", "Subscription_1", "scheduleArray", "input", "scheduler", "subscriber", "sub", "i", "exports", "Observable_1", "subscribeToArray_1", "scheduleArray_1", "fromArray", "input", "scheduler", "exports", "isScheduler_1", "fromArray_1", "scheduleArray_1", "of", "args", "_i", "scheduler", "exports", "Observable_1", "throwError", "error", "scheduler", "subscriber", "dispatch", "exports", "_a", "empty_1", "of_1", "throwError_1", "NotificationKind", "exports", "Notification", "kind", "value", "error", "observer", "next", "complete", "nextOrObserver", "err", "Subscriber_1", "Notification_1", "observeOn", "scheduler", "delay", "source", "ObserveOnOperator", "exports", "subscriber", "ObserveOnSubscriber", "_super", "__extends", "destination", "_this", "arg", "notification", "ObserveOnMessage", "value", "err", "Subject_1", "queue_1", "Subscription_1", "observeOn_1", "ObjectUnsubscribedError_1", "SubjectSubscription_1", "ReplaySubject", "_super", "__extends", "bufferSize", "windowTime", "scheduler", "_this", "value", "_events", "ReplayEvent", "subscriber", "_infiniteTimeWindow", "len", "subscription", "i", "now", "_bufferSize", "_windowTime", "eventsCount", "spliceCount", "exports", "time", "Subject_1", "Subscription_1", "AsyncSubject", "_super", "__extends", "_this", "subscriber", "value", "error", "exports", "nextHandle", "RESOLVED", "activeHandles", "findAndClearHandle", "handle", "exports", "cb", "Immediate_1", "AsyncAction_1", "AsapAction", "_super", "__extends", "scheduler", "work", "_this", "id", "delay", "exports", "AsyncScheduler_1", "AsapScheduler", "_super", "__extends", "action", "actions", "error", "index", "count", "exports", "AsapAction_1", "AsapScheduler_1", "exports", "AsyncAction_1", "AsyncScheduler_1", "exports", "AsyncAction_1", "AnimationFrameAction", "_super", "__extends", "scheduler", "work", "_this", "id", "delay", "exports", "AsyncScheduler_1", "AnimationFrameScheduler", "_super", "__extends", "action", "actions", "error", "index", "count", "exports", "AnimationFrameAction_1", "AnimationFrameScheduler_1", "exports", "AsyncAction_1", "AsyncScheduler_1", "VirtualTimeScheduler", "_super", "__extends", "SchedulerAction", "maxFrames", "VirtualAction", "_this", "_a", "actions", "error", "action", "exports", "scheduler", "work", "index", "state", "delay", "id", "a", "b", "noop", "exports", "Observable_1", "isObservable", "obj", "exports", "ArgumentOutOfRangeErrorImpl", "exports", "EmptyErrorImpl", "exports", "TimeoutErrorImpl", "exports", "Subscriber_1", "map", "project", "thisArg", "source", "MapOperator", "exports", "subscriber", "MapSubscriber", "_super", "__extends", "destination", "_this", "value", "result", "err", "Observable_1", "AsyncSubject_1", "map_1", "canReportError_1", "isArray_1", "isScheduler_1", "bindCallback", "callbackFunc", "resultSelector", "scheduler", "args", "_i", "context", "subject", "params", "subscriber", "state", "dispatch", "handler", "innerArgs", "err", "exports", "_this", "self", "value", "dispatchNext", "Observable_1", "AsyncSubject_1", "map_1", "canReportError_1", "isScheduler_1", "isArray_1", "bindNodeCallback", "callbackFunc", "resultSelector", "scheduler", "args", "_i", "params", "subscriber", "context", "subject", "dispatch", "handler", "innerArgs", "err", "exports", "state", "_this", "dispatchError", "value", "dispatchNext", "arg", "Subscriber_1", "OuterSubscriber", "_super", "__extends", "outerValue", "innerValue", "outerIndex", "innerIndex", "innerSub", "error", "exports", "Subscriber_1", "InnerSubscriber", "_super", "__extends", "parent", "outerValue", "outerIndex", "_this", "value", "error", "exports", "hostReportError_1", "exports", "promise", "subscriber", "value", "err", "getSymbolIterator", "exports", "iterator_1", "exports", "iterable", "subscriber", "iterator", "item", "err", "observable_1", "exports", "obj", "subscriber", "obs", "exports", "x", "isPromise", "value", "exports", "subscribeToArray_1", "subscribeToPromise_1", "subscribeToIterable_1", "subscribeToObservable_1", "isArrayLike_1", "isPromise_1", "isObject_1", "iterator_1", "observable_1", "exports", "result", "value", "msg", "InnerSubscriber_1", "subscribeTo_1", "Observable_1", "subscribeToResult", "outerSubscriber", "result", "outerValue", "outerIndex", "innerSubscriber", "exports", "isScheduler_1", "isArray_1", "OuterSubscriber_1", "subscribeToResult_1", "fromArray_1", "NONE", "combineLatest", "observables", "_i", "resultSelector", "scheduler", "CombineLatestOperator", "exports", "subscriber", "source", "CombineLatestSubscriber", "_super", "__extends", "destination", "_this", "observable", "len", "i", "unused", "_outerValue", "innerValue", "outerIndex", "values", "oldVal", "toRespond", "result", "err", "Observable_1", "Subscription_1", "observable_1", "scheduleObservable", "input", "scheduler", "subscriber", "sub", "observable", "value", "err", "exports", "Observable_1", "Subscription_1", "schedulePromise", "input", "scheduler", "subscriber", "sub", "value", "err", "exports", "Observable_1", "Subscription_1", "iterator_1", "scheduleIterable", "input", "scheduler", "subscriber", "sub", "iterator", "value", "done", "result", "err", "exports", "observable_1", "isInteropObservable", "input", "exports", "iterator_1", "isIterable", "input", "exports", "scheduleObservable_1", "schedulePromise_1", "scheduleArray_1", "scheduleIterable_1", "isInteropObservable_1", "isPromise_1", "isArrayLike_1", "isIterable_1", "scheduled", "input", "scheduler", "exports", "Observable_1", "subscribeTo_1", "scheduled_1", "from", "input", "scheduler", "exports", "Subscriber_1", "Observable_1", "subscribeTo_1", "SimpleInnerSubscriber", "_super", "__extends", "parent", "_this", "value", "error", "exports", "ComplexInnerSubscriber", "outerValue", "outerIndex", "SimpleOuterSubscriber", "innerValue", "err", "ComplexOuterSubscriber", "_outerValue", "_outerIndex", "_innerSub", "innerSubscribe", "result", "innerSubscriber", "subscription", "map_1", "from_1", "innerSubscribe_1", "mergeMap", "project", "resultSelector", "concurrent", "source", "a", "i", "b", "ii", "MergeMapOperator", "exports", "observer", "MergeMapSubscriber", "_super", "__extends", "destination", "_this", "value", "result", "index", "err", "ish", "innerSubscriber", "innerSubscription", "innerValue", "buffer", "mergeMap_1", "identity_1", "mergeAll", "concurrent", "exports", "mergeAll_1", "concatAll", "exports", "of_1", "concatAll_1", "concat", "observables", "_i", "exports", "Observable_1", "from_1", "empty_1", "defer", "observableFactory", "subscriber", "input", "err", "source", "exports", "Observable_1", "isArray_1", "map_1", "isObject_1", "from_1", "forkJoin", "sources", "_i", "first_1", "forkJoinInternal", "keys", "key", "resultSelector_1", "args", "exports", "subscriber", "len", "values", "completed", "emitted", "i", "source", "hasValue", "value", "err", "result", "Observable_1", "isArray_1", "isFunction_1", "map_1", "fromEvent", "target", "eventName", "options", "resultSelector", "args", "subscriber", "handler", "e", "setupSubscription", "exports", "sourceObj", "unsubscribe", "isEventTarget", "source_1", "isJQueryStyleEventEmitter", "source_2", "isNodeStyleEventEmitter", "source_3", "i", "len", "Observable_1", "isArray_1", "isFunction_1", "map_1", "fromEventPattern", "addHandler", "removeHandler", "resultSelector", "args", "subscriber", "handler", "e", "_i", "retValue", "err", "exports", "Observable_1", "identity_1", "isScheduler_1", "generate", "initialStateOrOptions", "condition", "iterate", "resultSelectorOrObservable", "scheduler", "resultSelector", "initialState", "options", "subscriber", "state", "dispatch", "conditionResult", "err", "value", "exports", "defer_1", "empty_1", "iif", "condition", "trueResult", "falseResult", "exports", "isArray_1", "isNumeric", "val", "exports", "Observable_1", "async_1", "isNumeric_1", "interval", "period", "scheduler", "subscriber", "dispatch", "exports", "state", "counter", "Observable_1", "isScheduler_1", "mergeAll_1", "fromArray_1", "merge", "observables", "_i", "concurrent", "scheduler", "last", "exports", "Observable_1", "noop_1", "exports", "never", "Observable_1", "from_1", "isArray_1", "empty_1", "onErrorResumeNext", "sources", "_i", "first", "remainder", "subscriber", "subNext", "value", "exports", "Observable_1", "Subscription_1", "pairs", "obj", "scheduler", "subscriber", "keys", "subscription", "dispatch", "i", "key", "exports", "state", "index", "not", "pred", "thisArg", "notPred", "exports", "Subscriber_1", "filter", "predicate", "thisArg", "source", "FilterOperator", "exports", "subscriber", "FilterSubscriber", "_super", "__extends", "destination", "_this", "value", "result", "err", "not_1", "subscribeTo_1", "filter_1", "Observable_1", "partition", "source", "predicate", "thisArg", "exports", "isArray_1", "fromArray_1", "OuterSubscriber_1", "subscribeToResult_1", "race", "observables", "_i", "RaceOperator", "exports", "subscriber", "source", "RaceSubscriber", "_super", "__extends", "destination", "_this", "observable", "len", "i", "subscription", "_outerValue", "innerValue", "outerIndex", "Observable_1", "range", "start", "count", "scheduler", "subscriber", "index", "current", "dispatch", "exports", "state", "Observable_1", "async_1", "isNumeric_1", "isScheduler_1", "timer", "dueTime", "periodOrScheduler", "scheduler", "period", "subscriber", "due", "dispatch", "exports", "state", "index", "Observable_1", "from_1", "empty_1", "using", "resourceFactory", "observableFactory", "subscriber", "resource", "err", "result", "source", "subscription", "exports", "fromArray_1", "isArray_1", "Subscriber_1", "iterator_1", "innerSubscribe_1", "zip", "observables", "_i", "resultSelector", "ZipOperator", "exports", "subscriber", "source", "ZipSubscriber", "_super", "__extends", "destination", "values", "_this", "value", "iterators", "StaticArrayIterator", "StaticIterator", "ZipBufferIterator", "len", "i", "iterator", "shouldComplete", "args", "result", "err", "nextResult", "array", "parent", "observable", "buffer", "innerValue", "Observable_1", "exports", "ConnectableObservable_1", "groupBy_1", "observable_1", "Subject_1", "BehaviorSubject_1", "ReplaySubject_1", "AsyncSubject_1", "asap_1", "async_1", "queue_1", "animationFrame_1", "VirtualTimeScheduler_1", "Scheduler_1", "Subscription_1", "Subscriber_1", "Notification_1", "pipe_1", "noop_1", "identity_1", "isObservable_1", "ArgumentOutOfRangeError_1", "EmptyError_1", "ObjectUnsubscribedError_1", "UnsubscriptionError_1", "TimeoutError_1", "bindCallback_1", "bindNodeCallback_1", "combineLatest_1", "concat_1", "defer_1", "empty_1", "forkJoin_1", "from_1", "fromEvent_1", "fromEventPattern_1", "generate_1", "iif_1", "interval_1", "merge_1", "never_1", "of_1", "onErrorResumeNext_1", "pairs_1", "partition_1", "race_1", "range_1", "throwError_1", "timer_1", "using_1", "zip_1", "scheduled_1", "empty_2", "never_2", "config_1", "require_listr_silent_renderer", "__commonJSMin", "exports", "module", "SilentRenderer", "require_escape_string_regexp", "__commonJSMin", "exports", "module", "matchOperatorsRe", "str", "require_figures", "__commonJSMin", "exports", "module", "escapeStringRegexp", "platform", "main", "win", "figures", "fn", "str", "key", "require_mimic_fn", "__commonJSMin", "exports", "module", "to", "from", "prop", "require_onetime", "__commonJSMin", "exports", "module", "mimicFn", "fn", "opts", "ret", "called", "fnName", "onetime", "require_signals", "__commonJSMin", "exports", "module", "require_signal_exit", "__commonJSMin", "exports", "module", "process", "processOk", "assert", "signals", "isWin", "EE", "emitter", "cb", "opts", "loaded", "load", "ev", "remove", "unload", "sig", "sigListeners", "originalProcessEmit", "originalProcessReallyExit", "emit", "event", "code", "signal", "listeners", "processEmit", "processReallyExit", "arg", "ret", "require_restore_cursor", "__commonJSMin", "exports", "module", "onetime", "signalExit", "require_cli_cursor", "__commonJSMin", "exports", "restoreCursor", "hidden", "stream", "s", "force", "require_color_name", "__commonJSMin", "exports", "module", "require_conversions", "__commonJSMin", "exports", "module", "cssKeywords", "reverseKeywords", "key", "convert", "model", "channels", "labels", "rgb", "r", "g", "b", "min", "max", "delta", "h", "s", "l", "rdif", "gdif", "bdif", "v", "diff", "diffc", "c", "w", "m", "y", "k", "comparativeDistance", "x", "reversed", "currentClosestDistance", "currentClosestKeyword", "keyword", "value", "distance", "z", "xyz", "a", "hsl", "t1", "t2", "t3", "val", "i", "smin", "lmin", "sv", "hsv", "hi", "f", "p", "q", "t", "vmin", "sl", "hwb", "wh", "bl", "ratio", "n", "cmyk", "lab", "y2", "x2", "z2", "hr", "lch", "args", "ansi", "color", "mult", "rem", "integer", "string", "match", "colorString", "char", "chroma", "grayscale", "hue", "hcg", "pure", "mg", "apple", "gray", "require_route", "__commonJSMin", "exports", "module", "conversions", "buildGraph", "graph", "models", "len", "i", "deriveBFS", "fromModel", "queue", "current", "adjacents", "adjacent", "node", "link", "from", "to", "args", "wrapConversion", "toModel", "path", "fn", "cur", "conversion", "require_color_convert", "__commonJSMin", "exports", "module", "conversions", "route", "convert", "models", "wrapRaw", "fn", "wrappedFn", "args", "wrapRounded", "result", "len", "i", "fromModel", "routes", "routeModels", "toModel", "require_ansi_styles", "__commonJSMin", "exports", "module", "colorConvert", "wrapAnsi16", "fn", "offset", "wrapAnsi256", "code", "wrapAnsi16m", "rgb", "assembleStyles", "codes", "styles", "groupName", "group", "styleName", "style", "ansi2ansi", "n", "rgb2rgb", "g", "b", "key", "suite", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "pos", "terminatorPos", "require_supports_color", "__commonJSMin", "exports", "module", "os", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "stream", "min", "osRelease", "sign", "version", "getSupportLevel", "require_templates", "__commonJSMin", "exports", "module", "TEMPLATE_REGEX", "STYLE_REGEX", "STRING_REGEX", "ESCAPE_REGEX", "ESCAPES", "unescape", "c", "parseArguments", "name", "args", "results", "chunks", "matches", "chunk", "m", "escape", "chr", "parseStyle", "style", "buildStyle", "chalk", "styles", "enabled", "layer", "current", "styleName", "tmp", "escapeChar", "inverse", "close", "str", "errMsg", "require_chalk", "__commonJSMin", "exports", "module", "escapeStringRegexp", "ansiStyles", "stdoutColor", "template", "isSimpleWindowsTerm", "levelMapping", "skipModels", "styles", "applyOptions", "obj", "options", "scLevel", "Chalk", "chalk", "args", "chalkTag", "key", "codes", "build", "model", "level", "bgModel", "proto", "_styles", "_empty", "builder", "applyStyle", "self", "enabled", "argsLen", "str", "a", "originalDim", "code", "strings", "parts", "i", "require_getTimezoneOffsetInMilliseconds", "__commonJSMin", "exports", "module", "MILLISECONDS_IN_MINUTE", "dirtyDate", "date", "baseTimezoneOffset", "millisecondsPartOfTimezoneOffset", "require_is_date", "__commonJSMin", "exports", "module", "isDate", "argument", "require_parse", "__commonJSMin", "exports", "module", "getTimezoneOffsetInMilliseconds", "isDate", "MILLISECONDS_IN_HOUR", "MILLISECONDS_IN_MINUTE", "DEFAULT_ADDITIONAL_DIGITS", "parseTokenDateTimeDelimeter", "parseTokenPlainTime", "parseTokenYY", "parseTokensYYY", "parseTokenYYYY", "parseTokensYYYYY", "parseTokenMM", "parseTokenDDD", "parseTokenMMDD", "parseTokenWww", "parseTokenWwwD", "parseTokenHH", "parseTokenHHMM", "parseTokenHHMMSS", "parseTokenTimezone", "parseTokenTimezoneZ", "parseTokenTimezoneHH", "parseTokenTimezoneHHMM", "parse", "argument", "dirtyOptions", "options", "additionalDigits", "dateStrings", "splitDateString", "parseYearResult", "parseYear", "year", "restDateString", "date", "parseDate", "timestamp", "time", "offset", "parseTime", "parseTimezone", "fullTime", "fullTimeDate", "fullTimeDateNextDay", "offsetDiff", "dateString", "array", "timeString", "token", "parseTokenYYY", "parseTokenYYYYY", "yearString", "centuryString", "month", "week", "dayOfYear", "day", "dayOfISOYear", "dayOfWeek", "hours", "minutes", "seconds", "timezoneString", "absoluteOffset", "isoYear", "fourthOfJanuaryDay", "diff", "require_start_of_year", "__commonJSMin", "exports", "module", "parse", "startOfYear", "dirtyDate", "cleanDate", "date", "require_start_of_day", "__commonJSMin", "exports", "module", "parse", "startOfDay", "dirtyDate", "date", "require_difference_in_calendar_days", "__commonJSMin", "exports", "module", "startOfDay", "MILLISECONDS_IN_MINUTE", "MILLISECONDS_IN_DAY", "differenceInCalendarDays", "dirtyDateLeft", "dirtyDateRight", "startOfDayLeft", "startOfDayRight", "timestampLeft", "timestampRight", "require_get_day_of_year", "__commonJSMin", "exports", "module", "parse", "startOfYear", "differenceInCalendarDays", "getDayOfYear", "dirtyDate", "date", "diff", "dayOfYear", "require_start_of_week", "__commonJSMin", "exports", "module", "parse", "startOfWeek", "dirtyDate", "dirtyOptions", "weekStartsOn", "date", "day", "diff", "require_start_of_iso_week", "__commonJSMin", "exports", "module", "startOfWeek", "startOfISOWeek", "dirtyDate", "require_get_iso_year", "__commonJSMin", "exports", "module", "parse", "startOfISOWeek", "getISOYear", "dirtyDate", "date", "year", "fourthOfJanuaryOfNextYear", "startOfNextYear", "fourthOfJanuaryOfThisYear", "startOfThisYear", "require_start_of_iso_year", "__commonJSMin", "exports", "module", "getISOYear", "startOfISOWeek", "startOfISOYear", "dirtyDate", "year", "fourthOfJanuary", "date", "require_get_iso_week", "__commonJSMin", "exports", "module", "parse", "startOfISOWeek", "startOfISOYear", "MILLISECONDS_IN_WEEK", "getISOWeek", "dirtyDate", "date", "diff", "require_is_valid", "__commonJSMin", "exports", "module", "isDate", "isValid", "dirtyDate", "require_build_distance_in_words_locale", "__commonJSMin", "exports", "module", "buildDistanceInWordsLocale", "distanceInWordsLocale", "localize", "token", "count", "options", "result", "require_build_formatting_tokens_reg_exp", "__commonJSMin", "exports", "module", "commonFormatterKeys", "buildFormattingTokensRegExp", "formatters", "formatterKeys", "key", "formattingTokens", "formattingTokensRegExp", "require_build_format_locale", "__commonJSMin", "exports", "module", "buildFormattingTokensRegExp", "buildFormatLocale", "months3char", "monthsFull", "weekdays2char", "weekdays3char", "weekdaysFull", "meridiemUppercase", "meridiemLowercase", "meridiemFull", "formatters", "date", "ordinalFormatters", "formatterToken", "ordinal", "number", "rem100", "require_en", "__commonJSMin", "exports", "module", "buildDistanceInWordsLocale", "buildFormatLocale", "require_format", "__commonJSMin", "exports", "module", "getDayOfYear", "getISOWeek", "getISOYear", "parse", "isValid", "enLocale", "format", "dirtyDate", "dirtyFormatStr", "dirtyOptions", "formatStr", "options", "locale", "localeFormatters", "formattingTokensRegExp", "date", "formatFn", "buildFormatFn", "formatters", "addLeadingZeros", "hours", "formatTimezone", "array", "length", "i", "formatter", "removeFormattingTokens", "output", "input", "offset", "delimeter", "sign", "absOffset", "minutes", "number", "targetLength", "require_utils", "__commonJSMin", "exports", "chalk", "format", "options", "output", "timestamp", "require_listr_verbose_renderer", "__commonJSMin", "exports", "module", "figures", "cliCursor", "utils", "renderHelper", "task", "event", "options", "log", "message", "render", "tasks", "err", "VerboseRenderer", "require_ansi_escapes", "__commonJSMin", "exports", "module", "x", "ESC", "OSC", "BEL", "SEP", "isTerminalApp", "y", "ret", "count", "clear", "text", "url", "buf", "opts", "cwd", "require_ansi_regex", "__commonJSMin", "exports", "module", "pattern", "require_strip_ansi", "__commonJSMin", "exports", "module", "ansiRegex", "input", "require_is_fullwidth_code_point", "__commonJSMin", "exports", "module", "x", "require_string_width", "__commonJSMin", "exports", "module", "stripAnsi", "isFullwidthCodePoint", "str", "width", "code", "require_wrap_ansi", "__commonJSMin", "exports", "module", "stringWidth", "stripAnsi", "ESCAPES", "END_CODE", "ESCAPE_CODES", "wrapAnsi", "code", "wordLengths", "str", "s", "wrapWord", "rows", "word", "cols", "arr", "insideEscape", "visible", "item", "i", "char", "charLength", "exec", "opts", "options", "pre", "ret", "escapeCode", "lengths", "words", "rowLength", "r", "line", "require_log_update", "__commonJSMin", "exports", "module", "ansiEscapes", "cliCursor", "wrapAnsi", "getWidth", "stream", "columns", "main", "options", "prevLineCount", "render", "out", "require_escape_string_regexp", "__commonJSMin", "exports", "module", "matchOperatorsRe", "str", "require_ansi_styles", "__commonJSMin", "exports", "module", "assembleStyles", "styles", "groupName", "group", "styleName", "style", "require_ansi_regex", "__commonJSMin", "exports", "module", "require_strip_ansi", "__commonJSMin", "exports", "module", "ansiRegex", "str", "require_ansi_regex", "__commonJSMin", "exports", "module", "require_has_ansi", "__commonJSMin", "exports", "module", "ansiRegex", "re", "require_supports_color", "__commonJSMin", "exports", "module", "argv", "terminator", "hasFlag", "flag", "pos", "require_chalk", "__commonJSMin", "exports", "module", "escapeStringRegexp", "ansiStyles", "stripAnsi", "hasAnsi", "supportsColor", "defineProps", "isSimpleWindowsTerm", "Chalk", "options", "styles", "ret", "key", "build", "proto", "_styles", "builder", "applyStyle", "args", "argsLen", "str", "a", "nestedStyles", "i", "originalDim", "code", "init", "name", "require_object_assign", "__commonJSMin", "exports", "module", "getOwnPropertySymbols", "hasOwnProperty", "propIsEnumerable", "toObject", "val", "shouldUseNative", "test1", "test2", "order2", "n", "test3", "letter", "target", "source", "from", "to", "symbols", "s", "key", "i", "require_escape_string_regexp", "__commonJSMin", "exports", "module", "matchOperatorsRe", "str", "require_figures", "__commonJSMin", "exports", "module", "objectAssign", "escapeStringRegexp", "platform", "main", "win", "figures", "fn", "str", "key", "require_indent_string", "__commonJSMin", "exports", "module", "str", "count", "opts", "options", "regex", "require_slice_ansi", "__commonJSMin", "exports", "module", "ESCAPES", "END_CODE", "ESCAPE_CODES", "wrapAnsi", "code", "str", "begin", "end", "insideEscape", "escapeCode", "visible", "output", "i", "leftEscape", "x", "require_ansi_regex", "__commonJSMin", "exports", "module", "require_strip_ansi", "__commonJSMin", "exports", "module", "ansiRegex", "str", "require_code_point_at", "__commonJSMin", "exports", "module", "str", "pos", "size", "i", "first", "second", "require_number_is_nan", "__commonJSMin", "exports", "module", "x", "require_is_fullwidth_code_point", "__commonJSMin", "exports", "module", "numberIsNan", "x", "require_string_width", "__commonJSMin", "exports", "module", "stripAnsi", "codePointAt", "isFullwidthCodePoint", "str", "width", "code", "require_cli_truncate", "__commonJSMin", "exports", "module", "sliceAnsi", "stringWidth", "input", "columns", "options", "position", "ellipsis", "length", "half", "require_escape_string_regexp", "__commonJSMin", "exports", "module", "matchOperatorsRe", "str", "require_ansi_styles", "__commonJSMin", "exports", "module", "assembleStyles", "styles", "groupName", "group", "styleName", "style", "require_ansi_regex", "__commonJSMin", "exports", "module", "require_strip_ansi", "__commonJSMin", "exports", "module", "ansiRegex", "str", "require_supports_color", "__commonJSMin", "exports", "module", "argv", "terminator", "hasFlag", "flag", "pos", "require_chalk", "__commonJSMin", "exports", "module", "escapeStringRegexp", "ansiStyles", "stripAnsi", "hasAnsi", "supportsColor", "defineProps", "isSimpleWindowsTerm", "Chalk", "options", "styles", "ret", "key", "build", "proto", "_styles", "builder", "applyStyle", "args", "argsLen", "str", "a", "nestedStyles", "i", "originalDim", "code", "init", "name", "require_log_symbols", "__commonJSMin", "exports", "module", "chalk", "main", "win", "require_elegant_spinner", "__commonJSMin", "exports", "module", "frames", "i", "require_utils", "__commonJSMin", "exports", "chalk", "logSymbols", "figures", "elegantSpinner", "pointer", "skipped", "x", "task", "options", "require_listr_update_renderer", "__commonJSMin", "exports", "module", "logUpdate", "chalk", "figures", "indentString", "cliTruncate", "stripAnsi", "utils", "renderHelper", "tasks", "options", "level", "output", "task", "skipped", "data", "out", "render", "UpdateRenderer", "err", "require_renderer", "__commonJSMin", "exports", "renderers", "isRendererSupported", "renderer", "getRendererClass", "fallbackRenderer", "ret", "require_state", "__commonJSMin", "exports", "module", "state", "input", "require_is_stream", "__commonJSMin", "exports", "module", "isStream", "stream", "require_ponyfill", "__commonJSMin", "exports", "symbolObservablePonyfill", "root", "result", "_Symbol", "require_lib", "__commonJSMin", "exports", "module", "_ponyfill", "_ponyfill2", "_interopRequireDefault", "obj", "root", "result", "require_is_observable", "__commonJSMin", "exports", "module", "symbolObservable", "value", "require_utils", "__commonJSMin", "exports", "isStream", "symbolObservable", "isObservable", "obj", "require_listr_error", "__commonJSMin", "exports", "module", "ListrError", "message", "require_task", "__commonJSMin", "exports", "module", "isPromise", "streamToObservable", "Subject", "renderer", "state", "utils", "ListrError", "defaultSkipFn", "Task", "listr", "task", "options", "ctx", "isEnabled", "context", "wrapper", "handleResult", "result", "resolve", "reject", "data", "skipped", "error", "require_task_wrapper", "__commonJSMin", "exports", "module", "state", "ListrError", "TaskWrapper", "task", "errors", "title", "data", "error", "err", "message", "ctx", "require_listr", "__commonJSMin", "exports", "module", "pMap", "Task", "TaskWrapper", "renderer", "ListrError", "runTask", "task", "context", "errors", "Listr", "tasks", "opts", "value", "err", "error", "rm", "buildEsm", "infile", "outfile", "banner", "assertEsbuild", "build", "version", "metafile", "errors", "warnings", "toNullable", "DEPLOY_DEFAULT_SOURCE", "DEPLOY_DEFAULT_IGNORE", "DEPLOY_DEFAULT_ENCODING", "DEPLOY_DEFAULT_GZIP", "IGNORE_OS_FILES", "UPLOAD_BATCH_SIZE", "COLLECTION_DAPP", "COLLECTION_CDN_RELEASES", "nonNullish", "spawnCommand", "nonNullish", "stat", "path", "process", "URL", "applyForceShell", "file", "commandArguments", "options", "shouldForceShell", "escapeFile", "argument", "escapeArgument", "shell", "cwd", "env", "isExe", "Path", "PATH", "exeExtensions", "extension", "EXE_MEMO", "mIsExe", "parts", "part", "possibleFile", "spawn", "command", "cwd", "args", "env", "stdout", "silentOut", "silentErrors", "resolve", "reject", "escapedCommand", "escapedArgs", "options", "applyForceShell", "nonNullish", "process", "spawnCommand", "data", "code", "err", "execute", "executeHooks", "hooks", "hook", "cmd", "args", "execute", "isNullish", "nonNullish", "crypto", "WebReadableStream", "pipeline", "PassThrough", "Readable", "fsStat", "defaultMessages", "EndOfStreamError", "AbortError", "message", "Deferred", "resolve", "reject", "AbstractStreamReader", "uint8Array", "mayBeLess", "bytesRead", "buffer", "EndOfStreamError", "remaining", "peekData", "lenCopy", "AbortError", "chunkLen", "StreamReader", "AbstractStreamReader", "s", "err", "buffer", "mayBeLess", "readBuffer", "request", "Deferred", "AbortError", "WebStreamReader", "AbstractStreamReader", "reader", "WebStreamByobReader", "WebStreamReader", "buffer", "mayBeLess", "result", "WebStreamDefaultReader", "AbstractStreamReader", "reader", "target", "chunk", "written", "buffer", "mayBeLess", "totalBytesRead", "result", "EndOfStreamError", "makeWebStreamReader", "stream", "reader", "WebStreamDefaultReader", "WebStreamByobReader", "error", "AbstractTokenizer", "options", "token", "position", "uint8Array", "EndOfStreamError", "length", "bytesLeft", "maxBufferSize", "ReadStreamTokenizer", "AbstractTokenizer", "streamReader", "options", "uint8Array", "normOptions", "skipBytes", "bytesRead", "EndOfStreamError", "skipBuffer", "err", "length", "bufSize", "buf", "totBytesRead", "remaining", "BufferTokenizer", "AbstractTokenizer", "uint8Array", "options", "bytesRead", "normOptions", "bytes2read", "EndOfStreamError", "position", "fromStream", "stream", "options", "streamReader", "StreamReader", "_options", "chainedClose", "ReadStreamTokenizer", "fromWebStream", "webStream", "webStreamReader", "makeWebStreamReader", "fromBuffer", "uint8Array", "BufferTokenizer", "fsOpen", "FileTokenizer", "_FileTokenizer", "AbstractTokenizer", "sourceFilePath", "fileHandle", "stat", "options", "uint8Array", "normOptions", "res", "EndOfStreamError", "position", "fromStream", "stream", "options", "rst", "stat", "fsStat", "fromFile", "FileTokenizer", "ieee754", "dv", "array", "UINT8", "offset", "value", "UINT16_LE", "UINT16_BE", "UINT32_LE", "array", "offset", "dv", "value", "UINT32_BE", "INT32_BE", "array", "offset", "dv", "value", "UINT64_LE", "array", "offset", "dv", "value", "StringType", "len", "encoding", "uint8Array", "offset", "createRequire", "require", "Worker", "Worker", "require", "u8", "u16", "i32", "fleb", "fdeb", "clim", "freb", "eb", "start", "b", "i", "j", "_a", "fl", "revfl", "_b", "fd", "revfd", "rev", "x", "hMap", "cd", "mb", "r", "s", "l", "le", "co", "rvb", "sv", "r_1", "v", "flt", "fdt", "flrm", "hMap", "flt", "fdrm", "hMap", "fdt", "max", "a", "m", "bits", "d", "p", "o", "bits16", "shft", "slc", "v", "s", "e", "u8", "ec", "err", "ind", "msg", "nt", "e", "inflt", "dat", "st", "buf", "dict", "sl", "dl", "u8", "noBuf", "resize", "noSt", "cbuf", "l", "bl", "nbuf", "final", "pos", "bt", "lm", "dm", "lbt", "dbt", "tbts", "bits", "type", "flrm", "fdrm", "hLit", "hcLen", "tl", "ldt", "clt", "i", "clim", "clb", "max", "clbmsk", "clm", "hMap", "r", "s", "c", "n", "lt", "dt", "shft", "t", "lms", "dms", "lpos", "bits16", "sym", "add", "b", "fleb", "fl", "d", "dsym", "fd", "fdeb", "end", "shift", "dend", "slc", "et", "u8", "gzs", "d", "err", "flg", "st", "zs", "gzl", "l", "zls", "d", "dict", "err", "inflateSync", "data", "opts", "inflt", "gunzipSync", "data", "opts", "st", "gzs", "err", "inflt", "u8", "gzl", "unzlibSync", "data", "opts", "inflt", "zls", "decompressSync", "data", "opts", "gunzipSync", "inflateSync", "unzlibSync", "td", "tds", "et", "import_debug", "Signature", "DataDescriptor", "array", "flags", "UINT16_LE", "UINT32_LE", "LocalFileHeaderToken", "EndOfCentralDirectoryRecordToken", "FileHeader", "signatureToArray", "signature", "signatureBytes", "UINT32_LE", "debug", "initDebug", "syncBufferSize", "ddSignatureArray", "Signature", "eocdSignatureBytes", "ZipHandler", "tokenizer", "randomReadTokenizer", "chunkLength", "buffer", "i", "pos", "offset", "eocdHeader", "EndOfCentralDirectoryRecordToken", "files", "n", "entry", "FileHeader", "StringType", "fileCb", "entries", "stop", "zipHeader", "next", "fileData", "chunks", "len", "nextHeaderIndex", "indexOf", "size", "data", "mergeArrays", "DataDescriptor", "fileHeader", "cb", "uncompressedData", "decompressSync", "header", "LocalFileHeaderToken", "portion", "bufferLength", "portionLength", "found", "j", "totalLength", "acc", "curr", "mergedArray", "chunk", "cachedDecoders", "cachedEncoder", "byteToHexLookupTable", "_", "index", "getUintBE", "view", "byteLength", "stringToBytes", "string", "character", "tarHeaderChecksumMatches", "arrayBuffer", "offset", "readSum", "StringType", "sum", "index", "uint32SyncSafeToken", "buffer", "extensions", "mimeTypes", "reasonableDetectionSizeInBytes", "getFileTypeFromMimeType", "mimeType", "_check", "buffer", "headers", "options", "index", "header", "FileTypeParser", "options", "tokenizer", "initialPosition", "detector", "fileType", "input", "buffer", "fromBuffer", "blob", "stream", "fromWebStream", "sampleSize", "reasonableDetectionSizeInBytes", "detectedFileType", "firstChunk", "reader", "chunk", "done", "error", "EndOfStreamError", "transformStream", "controller", "newStream", "header", "_check", "stringToBytes", "id3HeaderLength", "uint32SyncSafeToken", "ZipHandler", "zipHeader", "fileData", "mimeType", "getFileTypeFromMimeType", "xmlContent", "endPos", "firstPos", "type", "readField", "msb", "UINT8", "mask", "ic", "id", "readElement", "idField", "lengthField", "nrLength", "idView", "lengthView", "getUintBE", "readChildren", "children", "element", "StringType", "re", "version", "char7", "readChunkHeader", "INT32_BE", "brandMajor", "readHeader", "guid", "UINT64_LE", "payload", "typeId", "jsonSize", "tarHeaderChecksumMatches", "depth", "bigEndian", "tagId", "UINT16_BE", "UINT16_LE", "numberOfTags", "ifdOffset", "UINT32_BE", "UINT32_LE", "someId1", "someId2", "offset", "supportedExtensions", "extensions", "supportedMimeTypes", "mimeTypes", "FileTypeParser", "stream", "tokenizer", "WebReadableStream", "fromWebStream", "fromStream", "path", "fromFile", "readableStream", "options", "Readable", "sampleSize", "reasonableDetectionSizeInBytes", "resolve", "reject", "pass", "PassThrough", "outputStream", "pipeline", "chunk", "error", "EndOfStreamError", "fileTypeFromFile", "import_mime_types", "balanced", "a", "b", "str", "maybeMatch", "r", "range", "reg", "m", "begs", "beg", "left", "right", "result", "ai", "bi", "i", "escSlash", "escOpen", "escClose", "escComma", "escPeriod", "escSlashPattern", "escOpenPattern", "escClosePattern", "escCommaPattern", "escPeriodPattern", "slashPattern", "openPattern", "closePattern", "commaPattern", "periodPattern", "numeric", "str", "escapeBraces", "unescapeBraces", "parseCommaParts", "parts", "m", "balanced", "pre", "body", "post", "p", "postParts", "expandTop", "expand", "embrace", "isPadded", "el", "lte", "i", "y", "gte", "isTop", "expansions", "k", "expansion", "isNumericSequence", "isAlphaSequence", "isSequence", "isOptions", "n", "N", "x", "width", "incr", "test", "pad", "c", "need", "z", "j", "assertValidPattern", "pattern", "posixClasses", "braceEscape", "s", "regexpEscape", "rangesToString", "ranges", "parseClass", "glob", "position", "pos", "negs", "i", "sawStart", "uflag", "escaping", "negate", "endPos", "rangeStart", "WHILE", "c", "cls", "unip", "u", "neg", "r", "sranges", "snegs", "unescape", "s", "windowsPathsNoEscape", "types", "isExtglobType", "c", "startNoTraversal", "startNoDot", "addPatternStart", "justDots", "reSpecials", "regExpEscape", "s", "qmark", "star", "starNoEmpty", "AST", "_AST", "#root", "#hasMagic", "#uflag", "#parts", "#parent", "#parentIndex", "#negs", "#filledNegs", "#options", "#toString", "#emptyExt", "type", "parent", "options", "p", "#fillNegs", "n", "pp", "i", "part", "parts", "ret", "pl", "#parseAST", "str", "ast", "pos", "opt", "escaping", "inBrace", "braceStart", "braceNeg", "acc", "ext", "pattern", "glob", "re", "body", "hasMagic", "uflag", "flags", "allowDot", "dot", "noEmpty", "src", "_", "#parseGlob", "start", "aps", "needNoTrav", "needNoDot", "end", "unescape", "repeated", "#partsToRegExp", "bodyDotAllowed", "final", "close", "_hasMagic", "needUflag", "consumed", "magic", "parseClass", "escape", "s", "windowsPathsNoEscape", "minimatch", "p", "pattern", "options", "assertValidPattern", "Minimatch", "starDotExtRE", "starDotExtTest", "ext", "f", "starDotExtTestDot", "starDotExtTestNocase", "starDotExtTestNocaseDot", "starDotStarRE", "starDotStarTest", "starDotStarTestDot", "dotStarRE", "dotStarTest", "starRE", "starTest", "starTestDot", "qmarksRE", "qmarksTestNocase", "$0", "noext", "qmarksTestNoExt", "qmarksTestNocaseDot", "qmarksTestNoExtDot", "qmarksTestDot", "qmarksTest", "len", "defaultPlatform", "path", "sep", "GLOBSTAR", "qmark", "star", "twoStarDot", "twoStarNoDot", "filter", "a", "b", "defaults", "def", "orig", "type", "parent", "s", "list", "braceExpand", "expandTop", "makeRe", "match", "mm", "globMagic", "regExpEscape", "part", "_", "args", "rawGlobParts", "set", "__", "isUNC", "isDrive", "ss", "i", "globParts", "j", "optimizationLevel", "parts", "gs", "prev", "didSomething", "dd", "gss", "next", "p2", "other", "splin", "matched", "emptyGSMatch", "ai", "bi", "result", "which", "negate", "negateOffset", "file", "partial", "fileDrive", "fileUNC", "patternDrive", "patternUNC", "fdi", "pdi", "fd", "pd", "fi", "pi", "fl", "pl", "fr", "pr", "swallowee", "hit", "m", "fastTest", "re", "AST", "twoStar", "flags", "pp", "open", "close", "ff", "filename", "escape", "unescape", "readFile", "extname", "join", "createReadStream", "createWriteStream", "Readable", "createGunzip", "createGzip", "gunzipFile", "source", "resolve", "reject", "sourceStream", "Readable", "chunks", "gzip", "createGunzip", "chunk", "gzipFiles", "sourceFiles", "pattern", "DEPLOY_DEFAULT_GZIP", "filesToCompress", "file", "minimatch", "gzipFile", "destination", "createReadStream", "destinationPath", "destinationStream", "createWriteStream", "createGzip", "isGzip", "buffer", "lstatSync", "basename", "lstatSync", "readdirSync", "access", "join", "files", "source", "file", "path", "fileExists", "err", "fileSizeInBytes", "size", "fullPath", "file", "sourceAbsolutePath", "listSourceFiles", "ignore", "files", "filterFile", "lstatSync", "IGNORE_OS_FILES", "basename", "pattern", "minimatch", "prepareDeploy", "config", "listAssets", "assertSourceDirExists", "includeAllFiles", "source", "DEPLOY_DEFAULT_SOURCE", "ignore", "DEPLOY_DEFAULT_IGNORE", "encoding", "DEPLOY_DEFAULT_ENCODING", "gzip", "DEPLOY_DEFAULT_GZIP", "sourceAbsolutePath", "join", "listFiles", "filterFilesToUpload", "files", "existingAssets", "promises", "file", "fileNeedUpload", "upload", "computeSha256", "buffer", "readFile", "crypto", "effectiveFilePath", "asset", "f", "fullPath", "isNullish", "sha256", "sourceFiles", "listSourceFiles", "compressedFiles", "gzipFiles", "mapEncodingType", "ext", "customEncoding", "pattern", "_", "minimatch", "nonNullish", "encodingType", "extname", "findAlternateFile", "sourceFile", "mapFiles", "fileType", "fileTypeFromFile", "alternateFile", "mimeType", "mime", "encodingFiles", "fromNullable", "isNullish", "uint8ArrayToHexString", "commitProposal", "initProposal", "submitProposal", "proposeChanges", "proposalType", "cdn", "executeChanges", "autoCommit", "proposalId", "_", "__", "proposalSha256", "status", "sha256", "import_listr", "isNullish", "nonNullish", "notEmptyString", "Blob", "readFile", "basename", "relative", "formatBytes", "bytes", "unit", "uploadFiles", "sourceFiles", "uploadFile", "sourceAbsolutePath", "collection", "batchUploadFiles", "file", "paths", "uploadFileToStorage", "logSuccess", "files", "count", "size", "fileSizeInBytes", "formatBytes", "upload", "groupFiles", "i", "Listr", "relative", "alternateFile", "nonNullish", "isNullish", "fullPath", "filePath", "token", "description", "basename", "Blob", "readFile", "notEmptyString", "deployAndProposeChanges", "uploadFile", "files", "sourceAbsolutePath", "collection", "proposalType", "autoCommit", "proposalRest", "executeChanges", "proposalId", "uploadFiles", "params", "proposeChanges", "file", "preDeploy", "predeploy", "executeHooks", "postDeploy", "postdeploy", "deploy", "uploadFile", "rest", "prepareResult", "prepareDeploy", "files", "sourceAbsolutePath", "sourceFiles", "prepareSourceFiles", "uploadFiles", "COLLECTION_DAPP", "deployWithProposal", "clearAssets", "restProposal", "result", "deployAndProposeChanges", "toNullable", "assertMemory", "filePaths", "file", "filePath", "fullPath", "toNullable", "publishSatelliteWasmWithProposal", "assertMemory", "filePath", "fullPath", "restDeploy", "version", "restProposal", "result", "deployAndProposeChanges", "COLLECTION_CDN_RELEASES", "toNullable", "hasArgs", "args", "options", "arg", "nextArg", "option", "index", "nonNullish", "httpGet", "httpsGet", "downloadFromURL", "url", "resolve", "reject", "res", "data", "chunk", "readFile", "readPackageJson", "packageJsonPath", "packageJson", "dependencies", "version", "juno", "name", "isNullish", "nonNullish", "assertAnswerCtrlC", "answer", "message"]
}
