← Back
Editing: index-CuwFxdv0.chunk.mjs.map
{"version":3,"file":"index-CuwFxdv0.chunk.mjs","sources":["../node_modules/typescript-event-target/dist/index.mjs","../node_modules/events/events.js","../node_modules/inherits/inherits_browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/es-object-atoms/index.js","../node_modules/es-errors/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/math-intrinsics/abs.js","../node_modules/math-intrinsics/floor.js","../node_modules/math-intrinsics/max.js","../node_modules/math-intrinsics/min.js","../node_modules/math-intrinsics/pow.js","../node_modules/math-intrinsics/round.js","../node_modules/math-intrinsics/isNaN.js","../node_modules/math-intrinsics/sign.js","../node_modules/gopd/gOPD.js","../node_modules/gopd/index.js","../node_modules/es-define-property/index.js","../node_modules/has-symbols/index.js","../node_modules/get-proto/Reflect.getPrototypeOf.js","../node_modules/get-proto/Object.getPrototypeOf.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/call-bind-apply-helpers/functionCall.js","../node_modules/call-bind-apply-helpers/functionApply.js","../node_modules/call-bind-apply-helpers/reflectApply.js","../node_modules/call-bind-apply-helpers/actualApply.js","../node_modules/call-bind-apply-helpers/index.js","../node_modules/dunder-proto/get.js","../node_modules/get-proto/index.js","../node_modules/hasown/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bound/index.js","../node_modules/is-arguments/index.js","../node_modules/is-regex/index.js","../node_modules/safe-regex-test/index.js","../node_modules/generator-function/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-callable/index.js","../node_modules/for-each/index.js","../node_modules/possible-typed-array-names/index.js","../node_modules/available-typed-arrays/index.js","../node_modules/define-data-property/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/set-function-length/index.js","../node_modules/call-bind-apply-helpers/applyBind.js","../node_modules/call-bind/index.js","../node_modules/which-typed-array/index.js","../node_modules/is-typed-array/index.js","../node_modules/util/support/types.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/util.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/util-deprecate/browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/stream-browserify/index.js","../node_modules/sax/lib/sax.js","../node_modules/@file-type/xml/lib/index.js","../node_modules/is-svg/index.js","../node_modules/@nextcloud/files/dist/index.mjs"],"sourcesContent":["var e=class extends EventTarget{dispatchTypedEvent(s,t){return super.dispatchEvent(t)}};export{e as TypedEventTarget};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar callBound = require('call-bound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar gOPD = require('gopd');\n\n/** @type {import('.')} */\nvar fn;\n\nif (hasToStringTag) {\n\t/** @type {(receiver: ThisParameterType<typeof RegExp.prototype.exec>, ...args: Parameters<typeof RegExp.prototype.exec>) => ReturnType<typeof RegExp.prototype.exec>} */\n\tvar $exec = callBound('RegExp.prototype.exec');\n\t/** @type {object} */\n\tvar isRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\t/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */\n\tvar badStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n\n\t/** @type {import('.')} */\n\t// @ts-expect-error TS can't figure out that the $exec call always throws\n\t// eslint-disable-next-line consistent-return\n\tfn = function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {NonNullable<typeof gOPD>} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t$exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t};\n} else {\n\t/** @type {(receiver: ThisParameterType<typeof Object.prototype.toString>, ...args: Parameters<typeof Object.prototype.toString>) => ReturnType<typeof Object.prototype.toString>} */\n\tvar $toString = callBound('Object.prototype.toString');\n\t/** @const @type {'[object RegExp]'} */\n\tvar regexClass = '[object RegExp]';\n\n\t/** @type {import('.')} */\n\tfn = function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n}\n\nmodule.exports = fn;\n","'use strict';\n\nvar callBound = require('call-bound');\nvar isRegex = require('is-regex');\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n","'use strict';\n\n// eslint-disable-next-line no-extra-parens, no-empty-function\nconst cached = /** @type {GeneratorFunctionConstructor} */ (function* () {}.constructor);\n\n/** @type {import('.')} */\nmodule.exports = () => cached;\n\n","'use strict';\n\nvar callBound = require('call-bound');\nvar safeRegexTest = require('safe-regex-test');\nvar isFnRegex = safeRegexTest(/^\\s*(?:function)?\\*/);\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = require('get-proto');\n\nvar toStr = callBound('Object.prototype.toString');\nvar fnToStr = callBound('Function.prototype.toString');\n\nvar getGeneratorFunction = require('generator-function');\n\n/** @type {import('.')} */\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex(fnToStr(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tvar GeneratorFunction = getGeneratorFunction();\n\treturn GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {<This, A extends readonly unknown[]>(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\n/** @type {<This, S extends string>(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\n/** @type {<This, O>(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (isArray(list)) {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType<typeof availableTypedArrays>} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {<T = unknown>(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType<typeof tryAllTypedArrays>} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType<typeof tryAllSlices>} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n",";(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ]\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n parser.opt = opt || {}\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n parser.tags = []\n parser.closed = parser.closedRoot = parser.sawRoot = false\n parser.tag = parser.error = null\n parser.strict = !!strict\n parser.noscript = !!(strict || parser.opt.noscript)\n parser.state = S.BEGIN\n parser.strictEntities = parser.opt.strictEntities\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // disallow unquoted attribute values if not otherwise configured\n // and strict mode is true\n if (parser.opt.unquotedAttributeValues === undefined) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser)\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = require('stream').Stream\n } catch (ex) {\n Stream = function () {}\n }\n if (!Stream) Stream = function () {}\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require('string_decoder').StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk)\n }\n this._parser.end()\n return true\n }\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n args.splice(0, 0, ev)\n me.emit.apply(me, args)\n }\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA['\n var DOCTYPE = 'DOCTYPE'\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar="\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++ // <script> ... <\n }\n\n sax.XML_ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\"\n }\n\n sax.ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\",\n 'AElig': 198,\n 'Aacute': 193,\n 'Acirc': 194,\n 'Agrave': 192,\n 'Aring': 197,\n 'Atilde': 195,\n 'Auml': 196,\n 'Ccedil': 199,\n 'ETH': 208,\n 'Eacute': 201,\n 'Ecirc': 202,\n 'Egrave': 200,\n 'Euml': 203,\n 'Iacute': 205,\n 'Icirc': 206,\n 'Igrave': 204,\n 'Iuml': 207,\n 'Ntilde': 209,\n 'Oacute': 211,\n 'Ocirc': 212,\n 'Ograve': 210,\n 'Oslash': 216,\n 'Otilde': 213,\n 'Ouml': 214,\n 'THORN': 222,\n 'Uacute': 218,\n 'Ucirc': 219,\n 'Ugrave': 217,\n 'Uuml': 220,\n 'Yacute': 221,\n 'aacute': 225,\n 'acirc': 226,\n 'aelig': 230,\n 'agrave': 224,\n 'aring': 229,\n 'atilde': 227,\n 'auml': 228,\n 'ccedil': 231,\n 'eacute': 233,\n 'ecirc': 234,\n 'egrave': 232,\n 'eth': 240,\n 'euml': 235,\n 'iacute': 237,\n 'icirc': 238,\n 'igrave': 236,\n 'iuml': 239,\n 'ntilde': 241,\n 'oacute': 243,\n 'ocirc': 244,\n 'ograve': 242,\n 'oslash': 248,\n 'otilde': 245,\n 'ouml': 246,\n 'szlig': 223,\n 'thorn': 254,\n 'uacute': 250,\n 'ucirc': 251,\n 'ugrave': 249,\n 'uuml': 252,\n 'yacute': 253,\n 'yuml': 255,\n 'copy': 169,\n 'reg': 174,\n 'nbsp': 160,\n 'iexcl': 161,\n 'cent': 162,\n 'pound': 163,\n 'curren': 164,\n 'yen': 165,\n 'brvbar': 166,\n 'sect': 167,\n 'uml': 168,\n 'ordf': 170,\n 'laquo': 171,\n 'not': 172,\n 'shy': 173,\n 'macr': 175,\n 'deg': 176,\n 'plusmn': 177,\n 'sup1': 185,\n 'sup2': 178,\n 'sup3': 179,\n 'acute': 180,\n 'micro': 181,\n 'para': 182,\n 'middot': 183,\n 'cedil': 184,\n 'ordm': 186,\n 'raquo': 187,\n 'frac14': 188,\n 'frac12': 189,\n 'frac34': 190,\n 'iquest': 191,\n 'times': 215,\n 'divide': 247,\n 'OElig': 338,\n 'oelig': 339,\n 'Scaron': 352,\n 'scaron': 353,\n 'Yuml': 376,\n 'fnof': 402,\n 'circ': 710,\n 'tilde': 732,\n 'Alpha': 913,\n 'Beta': 914,\n 'Gamma': 915,\n 'Delta': 916,\n 'Epsilon': 917,\n 'Zeta': 918,\n 'Eta': 919,\n 'Theta': 920,\n 'Iota': 921,\n 'Kappa': 922,\n 'Lambda': 923,\n 'Mu': 924,\n 'Nu': 925,\n 'Xi': 926,\n 'Omicron': 927,\n 'Pi': 928,\n 'Rho': 929,\n 'Sigma': 931,\n 'Tau': 932,\n 'Upsilon': 933,\n 'Phi': 934,\n 'Chi': 935,\n 'Psi': 936,\n 'Omega': 937,\n 'alpha': 945,\n 'beta': 946,\n 'gamma': 947,\n 'delta': 948,\n 'epsilon': 949,\n 'zeta': 950,\n 'eta': 951,\n 'theta': 952,\n 'iota': 953,\n 'kappa': 954,\n 'lambda': 955,\n 'mu': 956,\n 'nu': 957,\n 'xi': 958,\n 'omicron': 959,\n 'pi': 960,\n 'rho': 961,\n 'sigmaf': 962,\n 'sigma': 963,\n 'tau': 964,\n 'upsilon': 965,\n 'phi': 966,\n 'chi': 967,\n 'psi': 968,\n 'omega': 969,\n 'thetasym': 977,\n 'upsih': 978,\n 'piv': 982,\n 'ensp': 8194,\n 'emsp': 8195,\n 'thinsp': 8201,\n 'zwnj': 8204,\n 'zwj': 8205,\n 'lrm': 8206,\n 'rlm': 8207,\n 'ndash': 8211,\n 'mdash': 8212,\n 'lsquo': 8216,\n 'rsquo': 8217,\n 'sbquo': 8218,\n 'ldquo': 8220,\n 'rdquo': 8221,\n 'bdquo': 8222,\n 'dagger': 8224,\n 'Dagger': 8225,\n 'bull': 8226,\n 'hellip': 8230,\n 'permil': 8240,\n 'prime': 8242,\n 'Prime': 8243,\n 'lsaquo': 8249,\n 'rsaquo': 8250,\n 'oline': 8254,\n 'frasl': 8260,\n 'euro': 8364,\n 'image': 8465,\n 'weierp': 8472,\n 'real': 8476,\n 'trade': 8482,\n 'alefsym': 8501,\n 'larr': 8592,\n 'uarr': 8593,\n 'rarr': 8594,\n 'darr': 8595,\n 'harr': 8596,\n 'crarr': 8629,\n 'lArr': 8656,\n 'uArr': 8657,\n 'rArr': 8658,\n 'dArr': 8659,\n 'hArr': 8660,\n 'forall': 8704,\n 'part': 8706,\n 'exist': 8707,\n 'empty': 8709,\n 'nabla': 8711,\n 'isin': 8712,\n 'notin': 8713,\n 'ni': 8715,\n 'prod': 8719,\n 'sum': 8721,\n 'minus': 8722,\n 'lowast': 8727,\n 'radic': 8730,\n 'prop': 8733,\n 'infin': 8734,\n 'ang': 8736,\n 'and': 8743,\n 'or': 8744,\n 'cap': 8745,\n 'cup': 8746,\n 'int': 8747,\n 'there4': 8756,\n 'sim': 8764,\n 'cong': 8773,\n 'asymp': 8776,\n 'ne': 8800,\n 'equiv': 8801,\n 'le': 8804,\n 'ge': 8805,\n 'sub': 8834,\n 'sup': 8835,\n 'nsub': 8836,\n 'sube': 8838,\n 'supe': 8839,\n 'oplus': 8853,\n 'otimes': 8855,\n 'perp': 8869,\n 'sdot': 8901,\n 'lceil': 8968,\n 'rceil': 8969,\n 'lfloor': 8970,\n 'rfloor': 8971,\n 'lang': 9001,\n 'rang': 9002,\n 'loz': 9674,\n 'spades': 9824,\n 'clubs': 9827,\n 'hearts': 9829,\n 'diams': 9830\n }\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key]\n var s = typeof e === 'number' ? String.fromCharCode(e) : e\n sax.ENTITIES[key] = s\n })\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s\n }\n\n // shorthand\n S = sax.STATE\n\n function emit (parser, event, data) {\n parser[event] && parser[event](data)\n }\n\n function emitNode (parser, nodeType, data) {\n if (parser.textNode) closeText(parser)\n emit(parser, nodeType, data)\n }\n\n function closeText (parser) {\n parser.textNode = textopts(parser.opt, parser.textNode)\n if (parser.textNode) emit(parser, 'ontext', parser.textNode)\n parser.textNode = ''\n }\n\n function textopts (opt, text) {\n if (opt.trim) text = text.trim()\n if (opt.normalize) text = text.replace(/\\s+/g, ' ')\n return text\n }\n\n function error (parser, er) {\n closeText(parser)\n if (parser.trackPosition) {\n er += '\\nLine: ' + parser.line +\n '\\nColumn: ' + parser.column +\n '\\nChar: ' + parser.c\n }\n er = new Error(er)\n parser.error = er\n emit(parser, 'onerror', er)\n return parser\n }\n\n function end (parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')\n if ((parser.state !== S.BEGIN) &&\n (parser.state !== S.BEGIN_WHITESPACE) &&\n (parser.state !== S.TEXT)) {\n error(parser, 'Unexpected end')\n }\n closeText(parser)\n parser.c = ''\n parser.closed = true\n emit(parser, 'onend')\n SAXParser.call(parser, parser.strict, parser.opt)\n return parser\n }\n\n function strictFail (parser, message) {\n if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {\n throw new Error('bad call to strictFail')\n }\n if (parser.strict) {\n error(parser, message)\n }\n }\n\n function newTag (parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()\n var parent = parser.tags[parser.tags.length - 1] || parser\n var tag = parser.tag = { name: parser.tagName, attributes: {} }\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns\n }\n parser.attribList.length = 0\n emitNode(parser, 'onopentagstart', tag)\n }\n\n function qname (name, attribute) {\n var i = name.indexOf(':')\n var qualName = i < 0 ? [ '', name ] : name.split(':')\n var prefix = qualName[0]\n var local = qualName[1]\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns'\n local = ''\n }\n\n return { prefix: prefix, local: local }\n }\n\n function attrib (parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]()\n }\n\n if (parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = ''\n return\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true)\n var prefix = qn.prefix\n var local = qn.local\n\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {\n strictFail(parser,\n 'xml: prefix must be bound to ' + XML_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(parser,\n 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else {\n var tag = parser.tag\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns)\n }\n tag.ns[local] = parser.attribValue\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue])\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: parser.attribValue\n })\n }\n\n parser.attribName = parser.attribValue = ''\n }\n\n function openTag (parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag\n\n // add namespace info to tag\n var qn = qname(parser.tagName)\n tag.prefix = qn.prefix\n tag.local = qn.local\n tag.uri = tag.ns[qn.prefix] || ''\n\n if (tag.prefix && !tag.uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(parser.tagName))\n tag.uri = qn.prefix\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, 'onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n })\n })\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i]\n var name = nv[0]\n var value = nv[1]\n var qualName = qname(name, true)\n var prefix = qualName.prefix\n var local = qualName.local\n var uri = prefix === '' ? '' : (tag.ns[prefix] || '')\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri\n }\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(prefix))\n a.uri = prefix\n }\n parser.tag.attributes[name] = a\n emitNode(parser, 'onattribute', a)\n }\n parser.attribList.length = 0\n }\n\n parser.tag.isSelfClosing = !!selfClosing\n\n // process the tag\n parser.sawRoot = true\n parser.tags.push(parser.tag)\n emitNode(parser, 'onopentag', parser.tag)\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {\n parser.state = S.SCRIPT\n } else {\n parser.state = S.TEXT\n }\n parser.tag = null\n parser.tagName = ''\n }\n parser.attribName = parser.attribValue = ''\n parser.attribList.length = 0\n }\n\n function closeTag (parser) {\n if (!parser.tagName) {\n strictFail(parser, 'Weird empty close tag.')\n parser.textNode += '</>'\n parser.state = S.TEXT\n return\n }\n\n if (parser.script) {\n if (parser.tagName !== 'script') {\n parser.script += '</' + parser.tagName + '>'\n parser.tagName = ''\n parser.state = S.SCRIPT\n return\n }\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length\n var tagName = parser.tagName\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]()\n }\n var closeTo = tagName\n while (t--) {\n var close = parser.tags[t]\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, 'Unexpected close tag')\n } else {\n break\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)\n parser.textNode += '</' + parser.tagName + '>'\n parser.state = S.TEXT\n return\n }\n parser.tagName = tagName\n var s = parser.tags.length\n while (s-- > t) {\n var tag = parser.tag = parser.tags.pop()\n parser.tagName = parser.tag.name\n emitNode(parser, 'onclosetag', parser.tagName)\n\n var x = {}\n for (var i in tag.ns) {\n x[i] = tag.ns[i]\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p]\n emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })\n })\n }\n }\n if (t === 0) parser.closedRoot = true\n parser.tagName = parser.attribValue = parser.attribName = ''\n parser.attribList.length = 0\n parser.state = S.TEXT\n }\n\n function parseEntity (parser) {\n var entity = parser.entity\n var entityLC = entity.toLowerCase()\n var num\n var numStr = ''\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity]\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC]\n }\n entity = entityLC\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2)\n num = parseInt(entity, 16)\n numStr = num.toString(16)\n } else {\n entity = entity.slice(1)\n num = parseInt(entity, 10)\n numStr = num.toString(10)\n }\n }\n entity = entity.replace(/^0+/, '')\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, 'Invalid character entity')\n return '&' + parser.entity + ';'\n }\n\n return String.fromCodePoint(num)\n }\n\n function beginWhiteSpace (parser, c) {\n if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, 'Non-whitespace before first tag.')\n parser.textNode = c\n parser.state = S.TEXT\n }\n }\n\n function charAt (chunk, i) {\n var result = ''\n if (i < chunk.length) {\n result = chunk.charAt(i)\n }\n return result\n }\n\n function write (chunk) {\n var parser = this\n if (this.error) {\n throw this.error\n }\n if (parser.closed) {\n return error(parser,\n 'Cannot write after close. Assign an onready handler.')\n }\n if (chunk === null) {\n return end(parser)\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString()\n }\n var i = 0\n var c = ''\n while (true) {\n c = charAt(chunk, i++)\n parser.c = c\n\n if (!c) {\n break\n }\n\n if (parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE\n if (c === '\\uFEFF') {\n continue\n }\n beginWhiteSpace(parser, c)\n continue\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c)\n continue\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1\n while (c && c !== '<' && c !== '&') {\n c = charAt(chunk, i++)\n if (c && parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1)\n }\n if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, 'Text data outside of root node.')\n }\n if (c === '&') {\n parser.state = S.TEXT_ENTITY\n } else {\n parser.textNode += c\n }\n }\n continue\n\n case S.SCRIPT:\n // only non-strict\n if (c === '<') {\n parser.state = S.SCRIPT_ENDING\n } else {\n parser.script += c\n }\n continue\n\n case S.SCRIPT_ENDING:\n if (c === '/') {\n parser.state = S.CLOSE_TAG\n } else {\n parser.script += '<' + c\n parser.state = S.SCRIPT\n }\n continue\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n parser.state = S.SGML_DECL\n parser.sgmlDecl = ''\n } else if (isWhitespace(c)) {\n // wait for it...\n } else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG\n parser.tagName = c\n } else if (c === '/') {\n parser.state = S.CLOSE_TAG\n parser.tagName = ''\n } else if (c === '?') {\n parser.state = S.PROC_INST\n parser.procInstName = parser.procInstBody = ''\n } else {\n strictFail(parser, 'Unencoded <')\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition\n c = new Array(pad).join(' ') + c\n }\n parser.textNode += '<' + c\n parser.state = S.TEXT\n }\n continue\n\n case S.SGML_DECL:\n if (parser.sgmlDecl + c === '--') {\n parser.state = S.COMMENT\n parser.comment = ''\n parser.sgmlDecl = ''\n continue;\n }\n\n if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {\n parser.state = S.DOCTYPE_DTD\n parser.doctype += '<!' + parser.sgmlDecl + c\n parser.sgmlDecl = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, 'onopencdata')\n parser.state = S.CDATA\n parser.sgmlDecl = ''\n parser.cdata = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser,\n 'Inappropriately located doctype declaration')\n }\n parser.doctype = ''\n parser.sgmlDecl = ''\n } else if (c === '>') {\n emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)\n parser.sgmlDecl = ''\n parser.state = S.TEXT\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED\n parser.sgmlDecl += c\n } else {\n parser.sgmlDecl += c\n }\n continue\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL\n parser.q = ''\n }\n parser.sgmlDecl += c\n continue\n\n case S.DOCTYPE:\n if (c === '>') {\n parser.state = S.TEXT\n emitNode(parser, 'ondoctype', parser.doctype)\n parser.doctype = true // just remember that we saw it.\n } else {\n parser.doctype += c\n if (c === '[') {\n parser.state = S.DOCTYPE_DTD\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED\n parser.q = c\n }\n }\n continue\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.q = ''\n parser.state = S.DOCTYPE\n }\n continue\n\n case S.DOCTYPE_DTD:\n if (c === ']') {\n parser.doctype += c\n parser.state = S.DOCTYPE\n } else if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (isQuote(c)) {\n parser.doctype += c\n parser.state = S.DOCTYPE_DTD_QUOTED\n parser.q = c\n } else {\n parser.doctype += c\n }\n continue\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD\n parser.q = ''\n }\n continue\n\n case S.COMMENT:\n if (c === '-') {\n parser.state = S.COMMENT_ENDING\n } else {\n parser.comment += c\n }\n continue\n\n case S.COMMENT_ENDING:\n if (c === '-') {\n parser.state = S.COMMENT_ENDED\n parser.comment = textopts(parser.opt, parser.comment)\n if (parser.comment) {\n emitNode(parser, 'oncomment', parser.comment)\n }\n parser.comment = ''\n } else {\n parser.comment += '-' + c\n parser.state = S.COMMENT\n }\n continue\n\n case S.COMMENT_ENDED:\n if (c !== '>') {\n strictFail(parser, 'Malformed comment')\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += '--' + c\n parser.state = S.COMMENT\n } else if (parser.doctype && parser.doctype !== true) {\n parser.state = S.DOCTYPE_DTD\n } else {\n parser.state = S.TEXT\n }\n continue\n\n case S.CDATA:\n if (c === ']') {\n parser.state = S.CDATA_ENDING\n } else {\n parser.cdata += c\n }\n continue\n\n case S.CDATA_ENDING:\n if (c === ']') {\n parser.state = S.CDATA_ENDING_2\n } else {\n parser.cdata += ']' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.CDATA_ENDING_2:\n if (c === '>') {\n if (parser.cdata) {\n emitNode(parser, 'oncdata', parser.cdata)\n }\n emitNode(parser, 'onclosecdata')\n parser.cdata = ''\n parser.state = S.TEXT\n } else if (c === ']') {\n parser.cdata += ']'\n } else {\n parser.cdata += ']]' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.PROC_INST:\n if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY\n } else {\n parser.procInstName += c\n }\n continue\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue\n } else if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else {\n parser.procInstBody += c\n }\n continue\n\n case S.PROC_INST_ENDING:\n if (c === '>') {\n emitNode(parser, 'onprocessinginstruction', {\n name: parser.procInstName,\n body: parser.procInstBody\n })\n parser.procInstName = parser.procInstBody = ''\n parser.state = S.TEXT\n } else {\n parser.procInstBody += '?' + c\n parser.state = S.PROC_INST_BODY\n }\n continue\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else {\n newTag(parser)\n if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid character in tag name')\n }\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.OPEN_TAG_SLASH:\n if (c === '>') {\n openTag(parser, true)\n closeTag(parser)\n } else {\n strictFail(parser, 'Forward-slash in opening tag not followed by >')\n parser.state = S.ATTRIB\n }\n continue\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (c === '>') {\n strictFail(parser, 'Attribute without value')\n parser.attribValue = parser.attribName\n attrib(parser)\n openTag(parser)\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (isWhitespace(c)) {\n continue\n } else {\n strictFail(parser, 'Attribute without value')\n parser.tag.attributes[parser.attribName] = ''\n parser.attribValue = ''\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: ''\n })\n parser.attribName = ''\n if (c === '>') {\n openTag(parser)\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue\n } else if (isQuote(c)) {\n parser.q = c\n parser.state = S.ATTRIB_VALUE_QUOTED\n } else {\n if (!parser.opt.unquotedAttributeValues) {\n error(parser, 'Unquoted attribute value')\n }\n parser.state = S.ATTRIB_VALUE_UNQUOTED\n parser.attribValue = c\n }\n continue\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n parser.q = ''\n parser.state = S.ATTRIB_VALUE_CLOSED\n continue\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, 'No whitespace between attributes')\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_U\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n if (c === '>') {\n openTag(parser)\n } else {\n parser.state = S.ATTRIB\n }\n continue\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += '</' + c\n parser.state = S.SCRIPT\n } else {\n strictFail(parser, 'Invalid tagname in closing tag.')\n }\n } else {\n parser.tagName = c\n }\n } else if (c === '>') {\n closeTag(parser)\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else if (parser.script) {\n parser.script += '</' + parser.tagName\n parser.tagName = ''\n parser.state = S.SCRIPT\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid tagname in closing tag')\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE\n }\n continue\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue\n }\n if (c === '>') {\n closeTag(parser)\n } else {\n strictFail(parser, 'Invalid characters in closing tag')\n }\n continue\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState\n var buffer\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT\n buffer = 'textNode'\n break\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED\n buffer = 'attribValue'\n break\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED\n buffer = 'attribValue'\n break\n }\n\n if (c === ';') {\n var parsedEntity = parseEntity(parser)\n if (parser.opt.unparsedEntities && !Object.values(sax.XML_ENTITIES).includes(parsedEntity)) {\n parser.entity = ''\n parser.state = returnState\n parser.write(parsedEntity)\n } else {\n parser[buffer] += parsedEntity\n parser.entity = ''\n parser.state = returnState\n }\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {\n parser.entity += c\n } else {\n strictFail(parser, 'Invalid character in entity name')\n parser[buffer] += '&' + parser.entity + c\n parser.entity = ''\n parser.state = returnState\n }\n\n continue\n\n default: /* istanbul ignore next */ {\n throw new Error(parser, 'Unknown state: ' + parser.state)\n }\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser)\n }\n return parser\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode\n var floor = Math.floor\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000\n var codeUnits = []\n var highSurrogate\n var lowSurrogate\n var index = -1\n var length = arguments.length\n if (!length) {\n return ''\n }\n var result = ''\n while (++index < length) {\n var codePoint = Number(arguments[index])\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xFFFF) { // BMP code point\n codeUnits.push(codePoint)\n } else { // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000\n highSurrogate = (codePoint >> 10) + 0xD800\n lowSurrogate = (codePoint % 0x400) + 0xDC00\n codeUnits.push(highSurrogate, lowSurrogate)\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits)\n codeUnits.length = 0\n }\n }\n return result\n }\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, 'fromCodePoint', {\n value: fromCodePoint,\n configurable: true,\n writable: true\n })\n } else {\n String.fromCodePoint = fromCodePoint\n }\n }())\n }\n})(typeof exports === 'undefined' ? this.sax = {} : exports)\n","import sax from 'sax';\nfunction startsWith(array, prefix) {\n if (prefix.length > array.length) {\n return false;\n }\n for (let i = 0; i < prefix.length; i++) {\n if (array[i] !== prefix[i]) {\n return false;\n }\n }\n return true;\n}\nfunction hasXmlTag(xmlString) {\n return /^<\\s*\\w+(?=\\s+[^<>]*=|>)/.test(xmlString);\n}\nfunction hasArrayXmlTag(array, encoding) {\n const textDecoder = new TextDecoder(encoding);\n return hasXmlTag(textDecoder.decode(array));\n}\nexport function isXml(array) {\n if (startsWith(array, [60, 63, 120, 109, 108, 32])) {\n return { xml: true, encoding: 'utf-8', offset: 0 };\n }\n if (startsWith(array, [0xEF, 0xBB, 0xBF])) { // UTF-8 BOM\n const encoding = 'utf-8';\n if (startsWith(array.subarray(3), [60, 63, 120, 109, 108, 32]) || hasArrayXmlTag(array, encoding)) {\n return { xml: true, encoding, offset: 3 };\n }\n }\n if (startsWith(array, [0xFE, 0xFF])) {\n const encoding = 'utf-16be';\n if (startsWith(array.subarray(2), [0, 60, 0, 63, 0, 120, 0, 109, 0, 108, 0, 32]) || hasArrayXmlTag(array, encoding)) {\n return { xml: true, encoding, offset: 2 };\n }\n }\n if (startsWith(array, [0xFF, 0xFE])) {\n const encoding = 'utf-16le';\n if (startsWith(array.subarray(2), [60, 0, 63, 0, 120, 0, 109, 0, 108, 0, 32, 0]) || hasArrayXmlTag(array, encoding)) {\n return { xml: true, encoding, offset: 2 };\n }\n return { xml: true, encoding: 'utf-16le', offset: 2 };\n }\n if (startsWith(array, [0, 60, 0, 63, 0, 120, 0, 109, 0, 108, 0, 32])) {\n return { xml: true, encoding: 'utf-16be', offset: 0 };\n }\n if (startsWith(array, [60, 0, 63, 0, 120, 0, 109, 0, 108, 0, 32, 0])) {\n return { xml: true, encoding: 'utf-16le', offset: 0 };\n }\n if (hasArrayXmlTag(array, 'utf-8')) {\n return { xml: true, encoding: 'utf-8', offset: 0 };\n }\n return { xml: false };\n}\n/**\n * Maps the root element namespace to corresponding file-type\n */\nconst namespaceMapping = {\n 'http://www.w3.org/2000/svg': {\n ext: 'svg',\n mime: 'image/svg+xml'\n },\n 'http://www.w3.org/1999/xhtml': {\n ext: 'xhtml',\n mime: 'application/xhtml+xml'\n },\n 'http://www.opengis.net/kml/2.2': {\n ext: 'kml',\n mime: 'application/vnd.google-earth.kml+xml'\n },\n 'http://www.opengis.net/gml': {\n ext: 'gml',\n mime: 'application/gml+xml'\n }\n};\n/**\n * Maps the root element name to corresponding file-type.\n * Used for Non-namespaced XML\n * @type {{rss: {ext: string, mime: string}}}\n */\nconst rootNameMapping = {\n rss: {\n ext: 'rss',\n mime: 'application/rss+xml'\n },\n 'score-partwise': {\n ext: 'musicxml',\n mime: 'application/vnd.recordare.musicxml+xml'\n },\n svg: {\n ext: 'svg',\n mime: 'image/svg+xml'\n }\n};\nexport class XmlTextDetector {\n constructor(options) {\n this.options = options ?? {};\n this.firstTag = true;\n this.onEnd = false;\n this.parser = sax.parser(true, { xmlns: true });\n this.nesting = 0;\n this.parser.onerror = e => {\n if (e.message.startsWith('Invalid character entity')) { // Allow entity reference\n return;\n }\n this.fileType = undefined;\n this.onEnd = true;\n };\n this.parser.onopentag = node => {\n ++this.nesting;\n if (!this.firstTag || this.onEnd) {\n return;\n }\n this.firstTag = false;\n if (node.uri) {\n // Resolve file-type boot root element namespace\n this.fileType = namespaceMapping[node.uri];\n }\n else if (node.name) {\n // Fall back on element name if there is no namespace\n this.fileType = rootNameMapping[node.name.toLowerCase()];\n }\n if (this.fileType && !this.options.fullScan) {\n this.onEnd = true;\n }\n };\n this.parser.onclosetag = () => {\n --this.nesting;\n };\n }\n write(text) {\n this.parser.write(text);\n }\n close() {\n this.parser.close();\n this.onEnd = true;\n }\n isValid() {\n return this.nesting === 0;\n }\n}\nexport const detectXml = {\n id: 'xml',\n detect: async (tokenizer) => {\n const buffer = new Uint8Array(512);\n // Increase sample size from 12 to 256.\n await tokenizer.peekBuffer(buffer, { length: 128, mayBeLess: true });\n const xmlDetection = isXml(buffer);\n if (xmlDetection.xml) {\n await tokenizer.ignore(xmlDetection.offset);\n const xmlTextDetector = new XmlTextDetector();\n const textDecoder = new TextDecoder(xmlDetection.encoding);\n do {\n const len = await tokenizer.readBuffer(buffer, { mayBeLess: true });\n const portion = buffer.subarray(0, len);\n const text = textDecoder.decode(portion);\n xmlTextDetector.write(text);\n if (len < buffer.length) {\n xmlTextDetector.close();\n }\n } while (!xmlTextDetector.onEnd);\n return xmlTextDetector.fileType ?? {\n ext: 'xml',\n mime: 'application/xml'\n };\n }\n }\n};\n","import {XmlTextDetector} from '@file-type/xml';\n\nexport default function isSvg(string, {validate = true} = {}) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\tstring = string.trim();\n\n\tif (string.length === 0) {\n\t\treturn false;\n\t}\n\n\tconst xmlTextDetector = new XmlTextDetector({fullScan: validate});\n\n\tif (validate) {\n\t\txmlTextDetector.write(string);\n\n\t\tif (!xmlTextDetector.isValid()) {\n\t\t\treturn false;\n\t\t}\n\t} else {\n\t\tconst chunkSize = 128;\n\n\t\tlet offset = 0;\n\t\twhile (string.length > offset && !xmlTextDetector.onEnd) {\n\t\t\txmlTextDetector.write(string.slice(offset, Math.min(offset + chunkSize, string.length)));\n\t\t\toffset += chunkSize;\n\t\t}\n\t}\n\n\treturn xmlTextDetector.fileType?.ext === 'svg';\n}\n","import { s as scopedGlobals, l as logger, F as FileType } from \"./chunks/folder-29HuacU_.mjs\";\nimport { a, b, N, c, P } from \"./chunks/folder-29HuacU_.mjs\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport isSvg from \"is-svg\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"@nextcloud/paths\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nclass FilesRegistry extends TypedEventTarget {\n}\nfunction getRegistry() {\n scopedGlobals.registry ??= new FilesRegistry();\n return scopedGlobals.registry;\n}\nfunction getFilesRegistry() {\n return getRegistry();\n}\nconst DefaultType = Object.freeze({\n DEFAULT: \"default\",\n HIDDEN: \"hidden\"\n});\nfunction registerFileAction(action) {\n validateAction$1(action);\n scopedGlobals.fileActions ??= /* @__PURE__ */ new Map();\n if (scopedGlobals.fileActions.has(action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n scopedGlobals.fileActions.set(action.id, action);\n getRegistry().dispatchTypedEvent(\"register:action\", new CustomEvent(\"register:action\", { detail: action }));\n}\nfunction getFileActions() {\n if (scopedGlobals.fileActions) {\n return [...scopedGlobals.fileActions.values()];\n }\n return [];\n}\nfunction validateAction$1(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n if (\"hotkey\" in action && action.hotkey !== void 0) {\n if (typeof action.hotkey !== \"object\") {\n throw new Error(\"Invalid hotkey configuration\");\n }\n if (typeof action.hotkey.key !== \"string\" || !action.hotkey.key) {\n throw new Error(\"Missing or invalid hotkey key\");\n }\n if (typeof action.hotkey.description !== \"string\" || !action.hotkey.description) {\n throw new Error(\"Missing or invalid hotkey description\");\n }\n }\n}\nfunction registerFileListAction(action) {\n validateAction(action);\n scopedGlobals.fileListActions ??= /* @__PURE__ */ new Map();\n if (scopedGlobals.fileListActions.has(action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n scopedGlobals.fileListActions.set(action.id, action);\n getRegistry().dispatchTypedEvent(\"register:listAction\", new CustomEvent(\"register:listAction\", { detail: action }));\n}\nfunction getFileListActions() {\n if (scopedGlobals.fileListActions) {\n return [...scopedGlobals.fileListActions.values()];\n }\n return [];\n}\nfunction validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction registerFileListFilter(filter) {\n scopedGlobals.fileListFilters ??= /* @__PURE__ */ new Map();\n if (scopedGlobals.fileListFilters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n scopedGlobals.fileListFilters.set(filter.id, filter);\n getRegistry().dispatchTypedEvent(\"register:listFilter\", new CustomEvent(\"register:listFilter\", { detail: filter }));\n}\nfunction unregisterFileListFilter(filterId) {\n if (scopedGlobals.fileListFilters && scopedGlobals.fileListFilters.has(filterId)) {\n scopedGlobals.fileListFilters.delete(filterId);\n getRegistry().dispatchTypedEvent(\"unregister:listFilter\", new CustomEvent(\"unregister:listFilter\", { detail: filterId }));\n }\n}\nfunction getFileListFilters() {\n if (scopedGlobals.fileListFilters) {\n return [...scopedGlobals.fileListFilters.values()];\n }\n return [];\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListHeader(header) {\n validateHeader(header);\n scopedGlobals.fileListHeaders ??= /* @__PURE__ */ new Map();\n if (scopedGlobals.fileListHeaders.has(header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n scopedGlobals.fileListHeaders.set(header.id, header);\n getRegistry().dispatchTypedEvent(\"register:listHeader\", new CustomEvent(\"register:listHeader\", { detail: header }));\n}\nfunction getFileListHeaders() {\n if (!scopedGlobals.fileListHeaders) {\n return [];\n }\n return [...scopedGlobals.fileListHeaders.values()];\n}\nfunction validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n}\nfunction checkOptionalProperty(obj, property, type) {\n if (typeof obj[property] !== \"undefined\") {\n if (type === \"array\") {\n if (!Array.isArray(obj[property])) {\n throw new Error(`View ${property} must be an array`);\n }\n } else if (typeof obj[property] !== type) {\n throw new Error(`View ${property} must be a ${type}`);\n } else if (type === \"object\" && (obj[property] === null || Array.isArray(obj[property]))) {\n throw new Error(`View ${property} must be an object`);\n }\n }\n}\nclass Column {\n _column;\n constructor(column) {\n validateColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nfunction validateColumn(column) {\n if (typeof column !== \"object\" || column === null) {\n throw new Error(\"View column must be an object\");\n }\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n checkOptionalProperty(column, \"sort\", \"function\");\n checkOptionalProperty(column, \"summary\", \"function\");\n}\nclass View {\n _view;\n constructor(view) {\n validateView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get hidden() {\n return this._view.hidden;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nfunction validateView(view) {\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n checkOptionalProperty(view, \"caption\", \"string\");\n checkOptionalProperty(view, \"columns\", \"array\");\n checkOptionalProperty(view, \"defaultSortKey\", \"string\");\n checkOptionalProperty(view, \"emptyCaption\", \"string\");\n checkOptionalProperty(view, \"emptyTitle\", \"string\");\n checkOptionalProperty(view, \"emptyView\", \"function\");\n checkOptionalProperty(view, \"expanded\", \"boolean\");\n checkOptionalProperty(view, \"hidden\", \"boolean\");\n checkOptionalProperty(view, \"loadChildViews\", \"function\");\n checkOptionalProperty(view, \"order\", \"number\");\n checkOptionalProperty(view, \"params\", \"object\");\n checkOptionalProperty(view, \"parent\", \"string\");\n checkOptionalProperty(view, \"sticky\", \"boolean\");\n if (view.columns) {\n view.columns.forEach(validateColumn);\n const columnIds = view.columns.reduce((set, column) => set.add(column.id), /* @__PURE__ */ new Set());\n if (columnIds.size !== view.columns.length) {\n throw new Error(\"View columns must have unique ids\");\n }\n }\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n *\n * @param views The views to register\n * @throws {Error} if a view with the same id is already registered\n * @throws {Error} if the registered view is invalid\n */\n register(...views) {\n for (const view of views) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`IView id ${view.id} is already registered`);\n }\n validateView(view);\n }\n this._views.push(...views);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n *\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n *\n * @param id - The id of the view to set as active\n * @throws {Error} If no view with the given id was registered\n * @fires UpdateActiveViewEvent\n */\n setActive(id) {\n if (id === null) {\n this._currentView = null;\n } else {\n const view = this._views.find(({ id: viewId }) => viewId === id);\n if (!view) {\n throw new Error(`No view with ${id} registered`);\n }\n this._currentView = view;\n }\n const event = new CustomEvent(\"updateActive\", { detail: this._currentView });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nfunction getNavigation() {\n scopedGlobals.navigation ??= new Navigation();\n return scopedGlobals.navigation;\n}\nconst NewMenuEntryCategory = Object.freeze({\n /**\n * For actions where the user is intended to upload from their device\n */\n UploadFromDevice: 0,\n /**\n * For actions that create new nodes on the server without uploading\n */\n CreateNew: 1,\n /**\n * For everything not matching the other categories\n */\n Other: 2\n});\nclass NewMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? NewMenuEntryCategory.CreateNew;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param context - The creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !entry.iconSvgInline || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nfunction getNewFileMenu() {\n scopedGlobals.newFileMenu ??= new NewMenu();\n return scopedGlobals.newFileMenu;\n}\nfunction addNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n}\nfunction removeNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n}\nfunction getNewFileMenuEntries(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n}\nfunction registerSidebarAction(action) {\n validateSidebarAction(action);\n scopedGlobals.filesSidebarActions ??= /* @__PURE__ */ new Map();\n if (scopedGlobals.filesSidebarActions.has(action.id)) {\n logger.warn(`Sidebar action with id \"${action.id}\" already registered. Skipping.`);\n return;\n }\n scopedGlobals.filesSidebarActions.set(action.id, action);\n logger.debug(`New sidebar action with id \"${action.id}\" registered.`);\n}\nfunction getSidebarActions() {\n if (scopedGlobals.filesSidebarActions) {\n return [...scopedGlobals.filesSidebarActions.values()];\n }\n return [];\n}\nfunction validateSidebarAction(action) {\n if (typeof action !== \"object\") {\n throw new Error(\"Sidebar action is not an object\");\n }\n if (!action.id || typeof action.id !== \"string\" || action.id !== CSS.escape(action.id)) {\n throw new Error(\"Sidebar actions need to have an id conforming to the HTML id attribute specifications\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Sidebar actions need to have a displayName function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Sidebar actions need to have a iconSvgInline function\");\n }\n if (!action.enabled || typeof action.enabled !== \"function\") {\n throw new Error(\"Sidebar actions need to have an enabled function\");\n }\n if (!action.onClick || typeof action.onClick !== \"function\") {\n throw new Error(\"Sidebar actions need to have an onClick function\");\n }\n}\nfunction registerSidebarTab(tab) {\n validateSidebarTab(tab);\n scopedGlobals.filesSidebarTabs ??= /* @__PURE__ */ new Map();\n if (scopedGlobals.filesSidebarTabs.has(tab.id)) {\n logger.warn(`Sidebar tab with id \"${tab.id}\" already registered. Skipping.`);\n return;\n }\n scopedGlobals.filesSidebarTabs.set(tab.id, tab);\n logger.debug(`New sidebar tab with id \"${tab.id}\" registered.`);\n}\nfunction getSidebarTabs() {\n if (scopedGlobals.filesSidebarTabs) {\n return [...scopedGlobals.filesSidebarTabs.values()];\n }\n return [];\n}\nfunction validateSidebarTab(tab) {\n if (typeof tab !== \"object\") {\n throw new Error(\"Sidebar tab is not an object\");\n }\n if (!tab.id || typeof tab.id !== \"string\" || tab.id !== CSS.escape(tab.id)) {\n throw new Error(\"Sidebar tabs need to have an id conforming to the HTML id attribute specifications\");\n }\n if (!tab.tagName || typeof tab.tagName !== \"string\") {\n throw new Error(\"Sidebar tabs need to have the tagName name set\");\n }\n if (!tab.tagName.match(/^[a-z][a-z0-9-_]+$/)) {\n throw new Error('Sidebar tab \"tagName\" is invalid');\n }\n if (!tab.displayName || typeof tab.displayName !== \"string\") {\n throw new Error(\"Sidebar tabs need to have a name set\");\n }\n if (typeof tab.iconSvgInline !== \"string\" || !isSvg(tab.iconSvgInline)) {\n throw new Error(\"Sidebar tabs need to have an valid SVG icon\");\n }\n if (typeof tab.order !== \"number\") {\n throw new Error(\"Sidebar tabs need to have a numeric order set\");\n }\n if (tab.enabled && typeof tab.enabled !== \"function\") {\n throw new Error('Sidebar tab \"enabled\" is not a function');\n }\n if (tab.onInit && typeof tab.onInit !== \"function\") {\n throw new Error('Sidebar tab \"onInit\" is not a function');\n }\n}\nclass SidebarProxy {\n get #impl() {\n return window.OCA?.Files?._sidebar?.();\n }\n get available() {\n return !!this.#impl;\n }\n get isOpen() {\n return this.#impl?.isOpen ?? false;\n }\n get activeTab() {\n return this.#impl?.activeTab;\n }\n get node() {\n return this.#impl?.node;\n }\n open(node, tab) {\n this.#impl?.open(node, tab);\n }\n close() {\n this.#impl?.close();\n }\n setActiveTab(tabId) {\n this.#impl?.setActiveTab(tabId);\n }\n registerTab(tab) {\n registerSidebarTab(tab);\n }\n getTabs(context) {\n return this.#impl?.getTabs(context) ?? [];\n }\n getActions(context) {\n return this.#impl?.getActions(context) ?? [];\n }\n registerAction(action) {\n registerSidebarAction(action);\n }\n}\nfunction getSidebar() {\n return new SidebarProxy();\n}\nconst InvalidFilenameErrorReason = Object.freeze({\n ReservedName: \"reserved name\",\n Character: \"character\",\n Extension: \"extension\"\n});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: InvalidFilenameErrorReason.Character, filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({ filename, segment: filename, reason: InvalidFilenameErrorReason.ReservedName });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({ filename, segment: basename2, reason: InvalidFilenameErrorReason.ReservedName });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: InvalidFilenameErrorReason.Extension, filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n) => `(${n})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers, orders) {\n identifiers = identifiers ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nconst FilesSortingMode = Object.freeze({\n Name: \"basename\",\n Modified: \"mtime\",\n Size: \"size\"\n});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: FilesSortingMode.Name,\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n function basename2(node) {\n const name = node.displayname || node.attributes?.displayname || node.basename || \"\";\n if (node.type === FileType.Folder) {\n return name;\n }\n return name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n }\n const identifiers = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== FilesSortingMode.Name ? [(v) => v[sortingOptions.sortingMode] ?? v.attributes[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === FilesSortingMode.Modified ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== FilesSortingMode.Modified && sortingOptions.sortingMode !== FilesSortingMode.Name ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers, orders);\n}\nexport {\n Column,\n DefaultType,\n a as File,\n FileListFilter,\n FileType,\n FilesSortingMode,\n b as Folder,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n c as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n formatFileSize,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getFilesRegistry,\n getNavigation,\n getNewFileMenu,\n getNewFileMenuEntries,\n getSidebar,\n getSidebarActions,\n getSidebarTabs,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeader,\n registerSidebarAction,\n registerSidebarTab,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateColumn,\n validateFilename,\n validateView\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["e","s","t","R","ReflectApply","target","receiver","args","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","value","EventEmitter","eventsModule","once","defaultMaxListeners","checkListener","listener","arg","n","_getMaxListeners","that","type","i","doError","events","er","err","handler","len","listeners","arrayClone","_addListener","prepend","m","existing","w","onceWrapper","_onceWrap","state","wrapped","list","position","originalListener","spliceOne","keys","key","_listeners","unwrap","evlistener","unwrapListeners","emitter","listenerCount","arr","copy","index","ret","name","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","inherits_browserModule","ctor","superCtor","TempCtor","streamBrowser","require$$0","shams","obj","sym","symObj","symVal","_","syms","descriptor","hasSymbols","esObjectAtoms","esErrors","_eval","range","ref","syntax","uri","abs","floor","max","min","pow","round","_isNaN","a","$isNaN","sign","number","gOPD","$gOPD","gopd","$defineProperty","esDefineProperty","origSymbol","hasSymbolSham","Reflect_getPrototypeOf","$Object","Object_getPrototypeOf","ERROR_MESSAGE","toStr","funcType","concatty","b","j","slicy","arrLike","offset","joiny","joiner","str","implementation","bound","binder","result","boundLength","boundArgs","Empty","functionBind","functionCall","functionApply","reflectApply","bind","$apply","require$$1","$call","require$$2","$reflectApply","require$$3","actualApply","$TypeError","$actualApply","callBindApplyHelpers","callBind","hasProtoAccessor","desc","$getPrototypeOf","get","reflectGetProto","originalGetProto","getDunderProto","getProto","O","call","$hasOwn","hasown","undefined","$Error","$EvalError","$RangeError","$ReferenceError","require$$4","$SyntaxError","require$$5","require$$6","$URIError","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","$Function","getEvalledConstructor","expressionSyntax","require$$15","require$$16","throwTypeError","ThrowTypeError","require$$17","require$$18","$ObjectGPO","require$$19","$ReflectGPO","require$$20","require$$21","require$$22","needsEval","TypedArray","INTRINSICS","errorProto","doEval","fn","gen","LEGACY_ALIASES","require$$23","hasOwn","require$$24","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","string","first","last","match","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","alias","getIntrinsic","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","GetIntrinsic","callBindBasic","$indexOf","callBound","hasToStringTag","$toString","isStandardArguments","isLegacyArguments","supportsStandardArguments","isArguments","isRegexMarker","throwRegexMarker","badStringifier","hasLastIndexDataProperty","regexClass","isRegex","safeRegexTest","regex","cached","generatorFunction","isFnRegex","fnToStr","getGeneratorFunction","isGeneratorFunction","GeneratorFunction","badArrayLike","isCallableMarker","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","objectClass","fnClass","genClass","ddaClass","ddaClass2","ddaClass3","isIE68","isDDA","all","isCallable","strClass","hasOwnProperty","forEachArray","array","iterator","forEachString","forEachObject","object","k","isArray","x","forEach","thisArg","possibleTypedArrayNames","possibleNames","g","global","availableTypedArrays","out","defineDataProperty","property","nonEnumerable","nonWritable","nonConfigurable","loose","hasPropertyDescriptors","hasPropertyDescriptors_1","define","hasDescriptors","$floor","setFunctionLength","length","functionLengthIsConfigurable","functionLengthIsWritable","applyBind","module","originalFunction","func","adjustedLength","typedArrays","$slice","cache","typedArray","proto","superProto","tryTypedArrays","found","getter","trySlices","whichTypedArray","tag","isTypedArray","isArgumentsObject","uncurryThis","f","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","exports","isPromise","input","isArrayBufferView","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isMapToString","isMap","isSetToString","isSet","isWeakMapToString","isWeakMap","isWeakSetToString","isWeakSet","isArrayBufferToString","isArrayBuffer","isDataViewToString","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isBoxedPrimitive","isAnyArrayBuffer","method","isBufferBrowser","getOwnPropertyDescriptors","descriptors","formatRegExp","isString","objects","inspect","isNull","isObject","msg","process","warned","deprecated","debugs","debugEnvRegex","define_process_env_default","debugEnv","set","pid","opts","ctx","stylizeNoColor","isBoolean","isUndefined","stylizeWithColor","formatValue","styleType","style","arrayToHash","hash","val","idx","recurseTimes","isFunction","primitive","formatPrimitive","visibleKeys","isError","formatError","isRegExp","isDate","base","braces","output","formatArray","formatProperty","reduceToSingleString","simple","isNumber","l","line","prev","cur","ar","isNullOrUndefined","isSymbol","re","objectToString","d","isPrimitive","o","pad","months","timestamp","time","origin","add","prop","kCustomPromisifiedSymbol","original","promiseResolve","promiseReject","promise","callbackifyOnRejected","reason","cb","newReason","callbackify","callbackified","maybeCb","self","rej","ownKeys","enumerableOnly","symbols","_objectSpread","source","_defineProperty","_toPropertyKey","_classCallCheck","instance","Constructor","_defineProperties","props","_createClass","protoProps","staticProps","_toPrimitive","hint","prim","res","_require","Buffer","_require2","custom","copyBuffer","src","buffer_list","BufferList","v","entry","p","hasStrings","c","nb","buf","options","destroy","_this","readableDestroyed","writableDestroyed","emitErrorNT","emitCloseNT","emitErrorAndCloseNT","undestroy","errorOrDestroy","stream","rState","wState","destroy_1","_inheritsLoose","subClass","superClass","codes","createErrorType","code","message","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","oneOf","expected","thing","startsWith","search","pos","endsWith","this_len","includes","start","actual","determiner","errorsBrowser","ERR_INVALID_OPT_VALUE","highWaterMarkFrom","isDuplex","duplexKey","getHighWaterMark","hwm","browser","deprecate","config","_stream_writable","Writable","CorkedRequest","onCorkedFinish","Duplex","WritableState","internalUtil","Stream","OurUint8Array","_uint8ArrayToBuffer","chunk","_isUint8Array","destroyImpl","_require$codes","ERR_INVALID_ARG_TYPE","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","noDecode","onwrite","current","realHasInstance","writeAfterEnd","validChunk","encoding","isBuf","writeOrBuffer","clearBuffer","decodeChunk","newChunk","doWrite","writev","onwriteError","sync","finishMaybe","onwriteStateUpdate","finished","needFinish","afterWrite","onwriteDrain","buffer","holder","count","allBuffers","endWritable","callFinal","prefinish","need","corkReq","objectKeys","_stream_duplex","Readable","onend","onEndNT","ERR_STREAM_PREMATURE_CLOSE","callback","called","_len","_key","noop","isRequest","eos","readable","writable","onlegacyfinish","onfinish","writableEnded","readableEnded","onerror","onclose","onrequest","endOfStream","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","done","readAndResolve","iter","data","onReadable","wrapForNext","lastPromise","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","error","_this2","createReadableStreamAsyncIterator","_Object$create","async_iterator","fromBrowser","_stream_readable","ReadableState","EElistenerCount","debugUtil","debug","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","StringDecoder","from","kProxyEvents","prependListener","event","skipChunkCheck","readableAddChunk","addToFront","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","enc","decoder","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","nOrig","endReadable","doRead","fromList","emitReadable_","flow","maybeReadMore_","dest","pipeOpts","doEnd","endFn","unpipe","onunpipe","unpipeInfo","cleanup","ondrain","pipeOnDrain","cleanedUp","ondata","indexOf","dests","ev","nReadingNextTick","updateReadableListening","resume","resume_","paused","endReadableNT","iterable","xs","_stream_transform","Transform","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","rs","err2","_stream_passthrough","PassThrough","ERR_MISSING_ARGS","destroyer","reading","writing","closed","destroyed","pipe","to","popCallback","streams","pipeline","destroys","pipeline_1","streamBrowserify","EE","inherits","didOnEnd","sax","strict","opt","SAXParser","SAXStream","createStream","buffers","parser","clearBuffers","S","rootNS","emit","F","newf","checkBufferLength","maxAllowed","maxActual","closeText","emitNode","flushBuffers","end","write","streamWraps","me","h","SD","CDATA","DOCTYPE","XML_NAMESPACE","XMLNS_NAMESPACE","nameStart","nameBody","entityStart","entityBody","isWhitespace","isQuote","isAttribEnd","isMatch","notMatch","nodeType","textopts","text","strictFail","newTag","parent","qname","attribute","qualName","prefix","local","attrib","qn","openTag","selfClosing","nv","closeTag","tagName","closeTo","close","parseEntity","entity","entityLC","num","numStr","beginWhiteSpace","charAt","starti","returnState","parsedEntity","stringFromCharCode","fromCodePoint","MAX_SIZE","codeUnits","highSurrogate","lowSurrogate","codePoint","namespaceMapping","rootNameMapping","XmlTextDetector","node","isSvg","validate","xmlTextDetector","FilesRegistry","TypedEventTarget","getRegistry","scopedGlobals","DefaultType","registerFileAction","action","validateAction$1","logger","registerFileListAction","validateAction","checkOptionalProperty","Column","column","validateColumn","View","view","validateView","icon","order","params","expanded","Navigation","views","id","viewId","getNavigation","registerSidebarAction","validateSidebarAction","registerSidebarTab","tab","validateSidebarTab","humanList","humanListBinary","formatFileSize","size","skipSmallSizes","binaryPrefixes","base1000","readableFormat","relativeSize","getCanonicalLocale"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77]}
Save File
Cancel