{"ast":null,"code":"// 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'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\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).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}\n\nmodule.exports = EventEmitter;\nmodule.exports.once = once; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // 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.\n\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\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || 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}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\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\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined) 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\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\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 } // At least give some kind of context to the user\n\n\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 if (handler === undefined) 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\n for (var i = 0; i < len; ++i) 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 checkListener(listener);\n events = target._events;\n\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, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\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] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = _getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + '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 = 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) 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 = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\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 = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) 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) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\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) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\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 if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? 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;\n\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\n for (var i = 0; i < n; ++i) copy[i] = arr[i];\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) list[index] = list[index + 1];\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\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\n resolve([].slice.call(arguments));\n }\n\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, {\n once: true\n });\n\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, {\n once: true\n });\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\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}","map":{"version":3,"sources":["/app/node_modules/events/events.js"],"names":["R","Reflect","ReflectApply","apply","target","receiver","args","Function","prototype","call","ReflectOwnKeys","ownKeys","Object","getOwnPropertySymbols","getOwnPropertyNames","concat","ProcessEmitWarning","warning","console","warn","NumberIsNaN","Number","isNaN","value","EventEmitter","init","module","exports","once","_events","undefined","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","TypeError","defineProperty","enumerable","get","set","arg","RangeError","getPrototypeOf","create","setMaxListeners","n","_getMaxListeners","that","getMaxListeners","emit","type","i","arguments","length","push","doError","events","error","er","Error","err","message","context","handler","len","listeners","arrayClone","_addListener","prepend","m","existing","newListener","unshift","warned","w","String","name","emitter","count","addListener","on","prependListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","state","wrapped","bind","prependOnceListener","list","position","originalListener","shift","spliceOne","off","removeAllListeners","keys","key","_listeners","unwrap","evlistener","unwrapListeners","rawListeners","listenerCount","eventNames","arr","copy","Array","index","pop","ret","Promise","resolve","reject","errorListener","resolver","slice","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","addEventListener","wrapListener","removeEventListener"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA,IAAIA,CAAC,GAAG,OAAOC,OAAP,KAAmB,QAAnB,GAA8BA,OAA9B,GAAwC,IAAhD;AACA,IAAIC,YAAY,GAAGF,CAAC,IAAI,OAAOA,CAAC,CAACG,KAAT,KAAmB,UAAxB,GACfH,CAAC,CAACG,KADa,GAEf,SAASD,YAAT,CAAsBE,MAAtB,EAA8BC,QAA9B,EAAwCC,IAAxC,EAA8C;AAC9C,SAAOC,QAAQ,CAACC,SAAT,CAAmBL,KAAnB,CAAyBM,IAAzB,CAA8BL,MAA9B,EAAsCC,QAAtC,EAAgDC,IAAhD,CAAP;AACD,CAJH;AAMA,IAAII,cAAJ;;AACA,IAAIV,CAAC,IAAI,OAAOA,CAAC,CAACW,OAAT,KAAqB,UAA9B,EAA0C;AACxCD,EAAAA,cAAc,GAAGV,CAAC,CAACW,OAAnB;AACD,CAFD,MAEO,IAAIC,MAAM,CAACC,qBAAX,EAAkC;AACvCH,EAAAA,cAAc,GAAG,SAASA,cAAT,CAAwBN,MAAxB,EAAgC;AAC/C,WAAOQ,MAAM,CAACE,mBAAP,CAA2BV,MAA3B,EACJW,MADI,CACGH,MAAM,CAACC,qBAAP,CAA6BT,MAA7B,CADH,CAAP;AAED,GAHD;AAID,CALM,MAKA;AACLM,EAAAA,cAAc,GAAG,SAASA,cAAT,CAAwBN,MAAxB,EAAgC;AAC/C,WAAOQ,MAAM,CAACE,mBAAP,CAA2BV,MAA3B,CAAP;AACD,GAFD;AAGD;;AAED,SAASY,kBAAT,CAA4BC,OAA5B,EAAqC;AACnC,MAAIC,OAAO,IAAIA,OAAO,CAACC,IAAvB,EAA6BD,OAAO,CAACC,IAAR,CAAaF,OAAb;AAC9B;;AAED,IAAIG,WAAW,GAAGC,MAAM,CAACC,KAAP,IAAgB,SAASF,WAAT,CAAqBG,KAArB,EAA4B;AAC5D,SAAOA,KAAK,KAAKA,KAAjB;AACD,CAFD;;AAIA,SAASC,YAAT,GAAwB;AACtBA,EAAAA,YAAY,CAACC,IAAb,CAAkBhB,IAAlB,CAAuB,IAAvB;AACD;;AACDiB,MAAM,CAACC,OAAP,GAAiBH,YAAjB;AACAE,MAAM,CAACC,OAAP,CAAeC,IAAf,GAAsBA,IAAtB,C,CAEA;;AACAJ,YAAY,CAACA,YAAb,GAA4BA,YAA5B;AAEAA,YAAY,CAAChB,SAAb,CAAuBqB,OAAvB,GAAiCC,SAAjC;AACAN,YAAY,CAAChB,SAAb,CAAuBuB,YAAvB,GAAsC,CAAtC;AACAP,YAAY,CAAChB,SAAb,CAAuBwB,aAAvB,GAAuCF,SAAvC,C,CAEA;AACA;;AACA,IAAIG,mBAAmB,GAAG,EAA1B;;AAEA,SAASC,aAAT,CAAuBC,QAAvB,EAAiC;AAC/B,MAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,UAAM,IAAIC,SAAJ,CAAc,qEAAqE,OAAOD,QAA1F,CAAN;AACD;AACF;;AAEDvB,MAAM,CAACyB,cAAP,CAAsBb,YAAtB,EAAoC,qBAApC,EAA2D;AACzDc,EAAAA,UAAU,EAAE,IAD6C;AAEzDC,EAAAA,GAAG,EAAE,YAAW;AACd,WAAON,mBAAP;AACD,GAJwD;AAKzDO,EAAAA,GAAG,EAAE,UAASC,GAAT,EAAc;AACjB,QAAI,OAAOA,GAAP,KAAe,QAAf,IAA2BA,GAAG,GAAG,CAAjC,IAAsCrB,WAAW,CAACqB,GAAD,CAArD,EAA4D;AAC1D,YAAM,IAAIC,UAAJ,CAAe,oGAAoGD,GAApG,GAA0G,GAAzH,CAAN;AACD;;AACDR,IAAAA,mBAAmB,GAAGQ,GAAtB;AACD;AAVwD,CAA3D;;AAaAjB,YAAY,CAACC,IAAb,GAAoB,YAAW;AAE7B,MAAI,KAAKI,OAAL,KAAiBC,SAAjB,IACA,KAAKD,OAAL,KAAiBjB,MAAM,CAAC+B,cAAP,CAAsB,IAAtB,EAA4Bd,OADjD,EAC0D;AACxD,SAAKA,OAAL,GAAejB,MAAM,CAACgC,MAAP,CAAc,IAAd,CAAf;AACA,SAAKb,YAAL,GAAoB,CAApB;AACD;;AAED,OAAKC,aAAL,GAAqB,KAAKA,aAAL,IAAsBF,SAA3C;AACD,CATD,C,CAWA;AACA;;;AACAN,YAAY,CAAChB,SAAb,CAAuBqC,eAAvB,GAAyC,SAASA,eAAT,CAAyBC,CAAzB,EAA4B;AACnE,MAAI,OAAOA,CAAP,KAAa,QAAb,IAAyBA,CAAC,GAAG,CAA7B,IAAkC1B,WAAW,CAAC0B,CAAD,CAAjD,EAAsD;AACpD,UAAM,IAAIJ,UAAJ,CAAe,kFAAkFI,CAAlF,GAAsF,GAArG,CAAN;AACD;;AACD,OAAKd,aAAL,GAAqBc,CAArB;AACA,SAAO,IAAP;AACD,CAND;;AAQA,SAASC,gBAAT,CAA0BC,IAA1B,EAAgC;AAC9B,MAAIA,IAAI,CAAChB,aAAL,KAAuBF,SAA3B,EACE,OAAON,YAAY,CAACS,mBAApB;AACF,SAAOe,IAAI,CAAChB,aAAZ;AACD;;AAEDR,YAAY,CAAChB,SAAb,CAAuByC,eAAvB,GAAyC,SAASA,eAAT,GAA2B;AAClE,SAAOF,gBAAgB,CAAC,IAAD,CAAvB;AACD,CAFD;;AAIAvB,YAAY,CAAChB,SAAb,CAAuB0C,IAAvB,GAA8B,SAASA,IAAT,CAAcC,IAAd,EAAoB;AAChD,MAAI7C,IAAI,GAAG,EAAX;;AACA,OAAK,IAAI8C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGC,SAAS,CAACC,MAA9B,EAAsCF,CAAC,EAAvC,EAA2C9C,IAAI,CAACiD,IAAL,CAAUF,SAAS,CAACD,CAAD,CAAnB;;AAC3C,MAAII,OAAO,GAAIL,IAAI,KAAK,OAAxB;AAEA,MAAIM,MAAM,GAAG,KAAK5B,OAAlB;AACA,MAAI4B,MAAM,KAAK3B,SAAf,EACE0B,OAAO,GAAIA,OAAO,IAAIC,MAAM,CAACC,KAAP,KAAiB5B,SAAvC,CADF,KAEK,IAAI,CAAC0B,OAAL,EACH,OAAO,KAAP,CAT8C,CAWhD;;AACA,MAAIA,OAAJ,EAAa;AACX,QAAIG,EAAJ;AACA,QAAIrD,IAAI,CAACgD,MAAL,GAAc,CAAlB,EACEK,EAAE,GAAGrD,IAAI,CAAC,CAAD,CAAT;;AACF,QAAIqD,EAAE,YAAYC,KAAlB,EAAyB;AACvB;AACA;AACA,YAAMD,EAAN,CAHuB,CAGb;AACX,KARU,CASX;;;AACA,QAAIE,GAAG,GAAG,IAAID,KAAJ,CAAU,sBAAsBD,EAAE,GAAG,OAAOA,EAAE,CAACG,OAAV,GAAoB,GAAvB,GAA6B,EAArD,CAAV,CAAV;AACAD,IAAAA,GAAG,CAACE,OAAJ,GAAcJ,EAAd;AACA,UAAME,GAAN,CAZW,CAYA;AACZ;;AAED,MAAIG,OAAO,GAAGP,MAAM,CAACN,IAAD,CAApB;AAEA,MAAIa,OAAO,KAAKlC,SAAhB,EACE,OAAO,KAAP;;AAEF,MAAI,OAAOkC,OAAP,KAAmB,UAAvB,EAAmC;AACjC9D,IAAAA,YAAY,CAAC8D,OAAD,EAAU,IAAV,EAAgB1D,IAAhB,CAAZ;AACD,GAFD,MAEO;AACL,QAAI2D,GAAG,GAAGD,OAAO,CAACV,MAAlB;AACA,QAAIY,SAAS,GAAGC,UAAU,CAACH,OAAD,EAAUC,GAAV,CAA1B;;AACA,SAAK,IAAIb,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGa,GAApB,EAAyB,EAAEb,CAA3B,EACElD,YAAY,CAACgE,SAAS,CAACd,CAAD,CAAV,EAAe,IAAf,EAAqB9C,IAArB,CAAZ;AACH;;AAED,SAAO,IAAP;AACD,CA1CD;;AA4CA,SAAS8D,YAAT,CAAsBhE,MAAtB,EAA8B+C,IAA9B,EAAoChB,QAApC,EAA8CkC,OAA9C,EAAuD;AACrD,MAAIC,CAAJ;AACA,MAAIb,MAAJ;AACA,MAAIc,QAAJ;AAEArC,EAAAA,aAAa,CAACC,QAAD,CAAb;AAEAsB,EAAAA,MAAM,GAAGrD,MAAM,CAACyB,OAAhB;;AACA,MAAI4B,MAAM,KAAK3B,SAAf,EAA0B;AACxB2B,IAAAA,MAAM,GAAGrD,MAAM,CAACyB,OAAP,GAAiBjB,MAAM,CAACgC,MAAP,CAAc,IAAd,CAA1B;AACAxC,IAAAA,MAAM,CAAC2B,YAAP,GAAsB,CAAtB;AACD,GAHD,MAGO;AACL;AACA;AACA,QAAI0B,MAAM,CAACe,WAAP,KAAuB1C,SAA3B,EAAsC;AACpC1B,MAAAA,MAAM,CAAC8C,IAAP,CAAY,aAAZ,EAA2BC,IAA3B,EACYhB,QAAQ,CAACA,QAAT,GAAoBA,QAAQ,CAACA,QAA7B,GAAwCA,QADpD,EADoC,CAIpC;AACA;;AACAsB,MAAAA,MAAM,GAAGrD,MAAM,CAACyB,OAAhB;AACD;;AACD0C,IAAAA,QAAQ,GAAGd,MAAM,CAACN,IAAD,CAAjB;AACD;;AAED,MAAIoB,QAAQ,KAAKzC,SAAjB,EAA4B;AAC1B;AACAyC,IAAAA,QAAQ,GAAGd,MAAM,CAACN,IAAD,CAAN,GAAehB,QAA1B;AACA,MAAE/B,MAAM,CAAC2B,YAAT;AACD,GAJD,MAIO;AACL,QAAI,OAAOwC,QAAP,KAAoB,UAAxB,EAAoC;AAClC;AACAA,MAAAA,QAAQ,GAAGd,MAAM,CAACN,IAAD,CAAN,GACTkB,OAAO,GAAG,CAAClC,QAAD,EAAWoC,QAAX,CAAH,GAA0B,CAACA,QAAD,EAAWpC,QAAX,CADnC,CAFkC,CAIlC;AACD,KALD,MAKO,IAAIkC,OAAJ,EAAa;AAClBE,MAAAA,QAAQ,CAACE,OAAT,CAAiBtC,QAAjB;AACD,KAFM,MAEA;AACLoC,MAAAA,QAAQ,CAAChB,IAAT,CAAcpB,QAAd;AACD,KAVI,CAYL;;;AACAmC,IAAAA,CAAC,GAAGvB,gBAAgB,CAAC3C,MAAD,CAApB;;AACA,QAAIkE,CAAC,GAAG,CAAJ,IAASC,QAAQ,CAACjB,MAAT,GAAkBgB,CAA3B,IAAgC,CAACC,QAAQ,CAACG,MAA9C,EAAsD;AACpDH,MAAAA,QAAQ,CAACG,MAAT,GAAkB,IAAlB,CADoD,CAEpD;AACA;;AACA,UAAIC,CAAC,GAAG,IAAIf,KAAJ,CAAU,iDACEW,QAAQ,CAACjB,MADX,GACoB,GADpB,GAC0BsB,MAAM,CAACzB,IAAD,CADhC,GACyC,aADzC,GAEE,0CAFF,GAGE,gBAHZ,CAAR;AAIAwB,MAAAA,CAAC,CAACE,IAAF,GAAS,6BAAT;AACAF,MAAAA,CAAC,CAACG,OAAF,GAAY1E,MAAZ;AACAuE,MAAAA,CAAC,CAACxB,IAAF,GAASA,IAAT;AACAwB,MAAAA,CAAC,CAACI,KAAF,GAAUR,QAAQ,CAACjB,MAAnB;AACAtC,MAAAA,kBAAkB,CAAC2D,CAAD,CAAlB;AACD;AACF;;AAED,SAAOvE,MAAP;AACD;;AAEDoB,YAAY,CAAChB,SAAb,CAAuBwE,WAAvB,GAAqC,SAASA,WAAT,CAAqB7B,IAArB,EAA2BhB,QAA3B,EAAqC;AACxE,SAAOiC,YAAY,CAAC,IAAD,EAAOjB,IAAP,EAAahB,QAAb,EAAuB,KAAvB,CAAnB;AACD,CAFD;;AAIAX,YAAY,CAAChB,SAAb,CAAuByE,EAAvB,GAA4BzD,YAAY,CAAChB,SAAb,CAAuBwE,WAAnD;;AAEAxD,YAAY,CAAChB,SAAb,CAAuB0E,eAAvB,GACI,SAASA,eAAT,CAAyB/B,IAAzB,EAA+BhB,QAA/B,EAAyC;AACvC,SAAOiC,YAAY,CAAC,IAAD,EAAOjB,IAAP,EAAahB,QAAb,EAAuB,IAAvB,CAAnB;AACD,CAHL;;AAKA,SAASgD,WAAT,GAAuB;AACrB,MAAI,CAAC,KAAKC,KAAV,EAAiB;AACf,SAAKhF,MAAL,CAAYiF,cAAZ,CAA2B,KAAKlC,IAAhC,EAAsC,KAAKmC,MAA3C;AACA,SAAKF,KAAL,GAAa,IAAb;AACA,QAAI/B,SAAS,CAACC,MAAV,KAAqB,CAAzB,EACE,OAAO,KAAKnB,QAAL,CAAc1B,IAAd,CAAmB,KAAKL,MAAxB,CAAP;AACF,WAAO,KAAK+B,QAAL,CAAchC,KAAd,CAAoB,KAAKC,MAAzB,EAAiCiD,SAAjC,CAAP;AACD;AACF;;AAED,SAASkC,SAAT,CAAmBnF,MAAnB,EAA2B+C,IAA3B,EAAiChB,QAAjC,EAA2C;AACzC,MAAIqD,KAAK,GAAG;AAAEJ,IAAAA,KAAK,EAAE,KAAT;AAAgBE,IAAAA,MAAM,EAAExD,SAAxB;AAAmC1B,IAAAA,MAAM,EAAEA,MAA3C;AAAmD+C,IAAAA,IAAI,EAAEA,IAAzD;AAA+DhB,IAAAA,QAAQ,EAAEA;AAAzE,GAAZ;AACA,MAAIsD,OAAO,GAAGN,WAAW,CAACO,IAAZ,CAAiBF,KAAjB,CAAd;AACAC,EAAAA,OAAO,CAACtD,QAAR,GAAmBA,QAAnB;AACAqD,EAAAA,KAAK,CAACF,MAAN,GAAeG,OAAf;AACA,SAAOA,OAAP;AACD;;AAEDjE,YAAY,CAAChB,SAAb,CAAuBoB,IAAvB,GAA8B,SAASA,IAAT,CAAcuB,IAAd,EAAoBhB,QAApB,EAA8B;AAC1DD,EAAAA,aAAa,CAACC,QAAD,CAAb;AACA,OAAK8C,EAAL,CAAQ9B,IAAR,EAAcoC,SAAS,CAAC,IAAD,EAAOpC,IAAP,EAAahB,QAAb,CAAvB;AACA,SAAO,IAAP;AACD,CAJD;;AAMAX,YAAY,CAAChB,SAAb,CAAuBmF,mBAAvB,GACI,SAASA,mBAAT,CAA6BxC,IAA7B,EAAmChB,QAAnC,EAA6C;AAC3CD,EAAAA,aAAa,CAACC,QAAD,CAAb;AACA,OAAK+C,eAAL,CAAqB/B,IAArB,EAA2BoC,SAAS,CAAC,IAAD,EAAOpC,IAAP,EAAahB,QAAb,CAApC;AACA,SAAO,IAAP;AACD,CALL,C,CAOA;;;AACAX,YAAY,CAAChB,SAAb,CAAuB6E,cAAvB,GACI,SAASA,cAAT,CAAwBlC,IAAxB,EAA8BhB,QAA9B,EAAwC;AACtC,MAAIyD,IAAJ,EAAUnC,MAAV,EAAkBoC,QAAlB,EAA4BzC,CAA5B,EAA+B0C,gBAA/B;AAEA5D,EAAAA,aAAa,CAACC,QAAD,CAAb;AAEAsB,EAAAA,MAAM,GAAG,KAAK5B,OAAd;AACA,MAAI4B,MAAM,KAAK3B,SAAf,EACE,OAAO,IAAP;AAEF8D,EAAAA,IAAI,GAAGnC,MAAM,CAACN,IAAD,CAAb;AACA,MAAIyC,IAAI,KAAK9D,SAAb,EACE,OAAO,IAAP;;AAEF,MAAI8D,IAAI,KAAKzD,QAAT,IAAqByD,IAAI,CAACzD,QAAL,KAAkBA,QAA3C,EAAqD;AACnD,QAAI,EAAE,KAAKJ,YAAP,KAAwB,CAA5B,EACE,KAAKF,OAAL,GAAejB,MAAM,CAACgC,MAAP,CAAc,IAAd,CAAf,CADF,KAEK;AACH,aAAOa,MAAM,CAACN,IAAD,CAAb;AACA,UAAIM,MAAM,CAAC4B,cAAX,EACE,KAAKnC,IAAL,CAAU,gBAAV,EAA4BC,IAA5B,EAAkCyC,IAAI,CAACzD,QAAL,IAAiBA,QAAnD;AACH;AACF,GARD,MAQO,IAAI,OAAOyD,IAAP,KAAgB,UAApB,EAAgC;AACrCC,IAAAA,QAAQ,GAAG,CAAC,CAAZ;;AAEA,SAAKzC,CAAC,GAAGwC,IAAI,CAACtC,MAAL,GAAc,CAAvB,EAA0BF,CAAC,IAAI,CAA/B,EAAkCA,CAAC,EAAnC,EAAuC;AACrC,UAAIwC,IAAI,CAACxC,CAAD,CAAJ,KAAYjB,QAAZ,IAAwByD,IAAI,CAACxC,CAAD,CAAJ,CAAQjB,QAAR,KAAqBA,QAAjD,EAA2D;AACzD2D,QAAAA,gBAAgB,GAAGF,IAAI,CAACxC,CAAD,CAAJ,CAAQjB,QAA3B;AACA0D,QAAAA,QAAQ,GAAGzC,CAAX;AACA;AACD;AACF;;AAED,QAAIyC,QAAQ,GAAG,CAAf,EACE,OAAO,IAAP;AAEF,QAAIA,QAAQ,KAAK,CAAjB,EACED,IAAI,CAACG,KAAL,GADF,KAEK;AACHC,MAAAA,SAAS,CAACJ,IAAD,EAAOC,QAAP,CAAT;AACD;AAED,QAAID,IAAI,CAACtC,MAAL,KAAgB,CAApB,EACEG,MAAM,CAACN,IAAD,CAAN,GAAeyC,IAAI,CAAC,CAAD,CAAnB;AAEF,QAAInC,MAAM,CAAC4B,cAAP,KAA0BvD,SAA9B,EACE,KAAKoB,IAAL,CAAU,gBAAV,EAA4BC,IAA5B,EAAkC2C,gBAAgB,IAAI3D,QAAtD;AACH;;AAED,SAAO,IAAP;AACD,CAlDL;;AAoDAX,YAAY,CAAChB,SAAb,CAAuByF,GAAvB,GAA6BzE,YAAY,CAAChB,SAAb,CAAuB6E,cAApD;;AAEA7D,YAAY,CAAChB,SAAb,CAAuB0F,kBAAvB,GACI,SAASA,kBAAT,CAA4B/C,IAA5B,EAAkC;AAChC,MAAIe,SAAJ,EAAeT,MAAf,EAAuBL,CAAvB;AAEAK,EAAAA,MAAM,GAAG,KAAK5B,OAAd;AACA,MAAI4B,MAAM,KAAK3B,SAAf,EACE,OAAO,IAAP,CAL8B,CAOhC;;AACA,MAAI2B,MAAM,CAAC4B,cAAP,KAA0BvD,SAA9B,EAAyC;AACvC,QAAIuB,SAAS,CAACC,MAAV,KAAqB,CAAzB,EAA4B;AAC1B,WAAKzB,OAAL,GAAejB,MAAM,CAACgC,MAAP,CAAc,IAAd,CAAf;AACA,WAAKb,YAAL,GAAoB,CAApB;AACD,KAHD,MAGO,IAAI0B,MAAM,CAACN,IAAD,CAAN,KAAiBrB,SAArB,EAAgC;AACrC,UAAI,EAAE,KAAKC,YAAP,KAAwB,CAA5B,EACE,KAAKF,OAAL,GAAejB,MAAM,CAACgC,MAAP,CAAc,IAAd,CAAf,CADF,KAGE,OAAOa,MAAM,CAACN,IAAD,CAAb;AACH;;AACD,WAAO,IAAP;AACD,GAnB+B,CAqBhC;;;AACA,MAAIE,SAAS,CAACC,MAAV,KAAqB,CAAzB,EAA4B;AAC1B,QAAI6C,IAAI,GAAGvF,MAAM,CAACuF,IAAP,CAAY1C,MAAZ,CAAX;AACA,QAAI2C,GAAJ;;AACA,SAAKhD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG+C,IAAI,CAAC7C,MAArB,EAA6B,EAAEF,CAA/B,EAAkC;AAChCgD,MAAAA,GAAG,GAAGD,IAAI,CAAC/C,CAAD,CAAV;AACA,UAAIgD,GAAG,KAAK,gBAAZ,EAA8B;AAC9B,WAAKF,kBAAL,CAAwBE,GAAxB;AACD;;AACD,SAAKF,kBAAL,CAAwB,gBAAxB;AACA,SAAKrE,OAAL,GAAejB,MAAM,CAACgC,MAAP,CAAc,IAAd,CAAf;AACA,SAAKb,YAAL,GAAoB,CAApB;AACA,WAAO,IAAP;AACD;;AAEDmC,EAAAA,SAAS,GAAGT,MAAM,CAACN,IAAD,CAAlB;;AAEA,MAAI,OAAOe,SAAP,KAAqB,UAAzB,EAAqC;AACnC,SAAKmB,cAAL,CAAoBlC,IAApB,EAA0Be,SAA1B;AACD,GAFD,MAEO,IAAIA,SAAS,KAAKpC,SAAlB,EAA6B;AAClC;AACA,SAAKsB,CAAC,GAAGc,SAAS,CAACZ,MAAV,GAAmB,CAA5B,EAA+BF,CAAC,IAAI,CAApC,EAAuCA,CAAC,EAAxC,EAA4C;AAC1C,WAAKiC,cAAL,CAAoBlC,IAApB,EAA0Be,SAAS,CAACd,CAAD,CAAnC;AACD;AACF;;AAED,SAAO,IAAP;AACD,CAjDL;;AAmDA,SAASiD,UAAT,CAAoBjG,MAApB,EAA4B+C,IAA5B,EAAkCmD,MAAlC,EAA0C;AACxC,MAAI7C,MAAM,GAAGrD,MAAM,CAACyB,OAApB;AAEA,MAAI4B,MAAM,KAAK3B,SAAf,EACE,OAAO,EAAP;AAEF,MAAIyE,UAAU,GAAG9C,MAAM,CAACN,IAAD,CAAvB;AACA,MAAIoD,UAAU,KAAKzE,SAAnB,EACE,OAAO,EAAP;AAEF,MAAI,OAAOyE,UAAP,KAAsB,UAA1B,EACE,OAAOD,MAAM,GAAG,CAACC,UAAU,CAACpE,QAAX,IAAuBoE,UAAxB,CAAH,GAAyC,CAACA,UAAD,CAAtD;AAEF,SAAOD,MAAM,GACXE,eAAe,CAACD,UAAD,CADJ,GACmBpC,UAAU,CAACoC,UAAD,EAAaA,UAAU,CAACjD,MAAxB,CAD1C;AAED;;AAED9B,YAAY,CAAChB,SAAb,CAAuB0D,SAAvB,GAAmC,SAASA,SAAT,CAAmBf,IAAnB,EAAyB;AAC1D,SAAOkD,UAAU,CAAC,IAAD,EAAOlD,IAAP,EAAa,IAAb,CAAjB;AACD,CAFD;;AAIA3B,YAAY,CAAChB,SAAb,CAAuBiG,YAAvB,GAAsC,SAASA,YAAT,CAAsBtD,IAAtB,EAA4B;AAChE,SAAOkD,UAAU,CAAC,IAAD,EAAOlD,IAAP,EAAa,KAAb,CAAjB;AACD,CAFD;;AAIA3B,YAAY,CAACkF,aAAb,GAA6B,UAAS5B,OAAT,EAAkB3B,IAAlB,EAAwB;AACnD,MAAI,OAAO2B,OAAO,CAAC4B,aAAf,KAAiC,UAArC,EAAiD;AAC/C,WAAO5B,OAAO,CAAC4B,aAAR,CAAsBvD,IAAtB,CAAP;AACD,GAFD,MAEO;AACL,WAAOuD,aAAa,CAACjG,IAAd,CAAmBqE,OAAnB,EAA4B3B,IAA5B,CAAP;AACD;AACF,CAND;;AAQA3B,YAAY,CAAChB,SAAb,CAAuBkG,aAAvB,GAAuCA,aAAvC;;AACA,SAASA,aAAT,CAAuBvD,IAAvB,EAA6B;AAC3B,MAAIM,MAAM,GAAG,KAAK5B,OAAlB;;AAEA,MAAI4B,MAAM,KAAK3B,SAAf,EAA0B;AACxB,QAAIyE,UAAU,GAAG9C,MAAM,CAACN,IAAD,CAAvB;;AAEA,QAAI,OAAOoD,UAAP,KAAsB,UAA1B,EAAsC;AACpC,aAAO,CAAP;AACD,KAFD,MAEO,IAAIA,UAAU,KAAKzE,SAAnB,EAA8B;AACnC,aAAOyE,UAAU,CAACjD,MAAlB;AACD;AACF;;AAED,SAAO,CAAP;AACD;;AAED9B,YAAY,CAAChB,SAAb,CAAuBmG,UAAvB,GAAoC,SAASA,UAAT,GAAsB;AACxD,SAAO,KAAK5E,YAAL,GAAoB,CAApB,GAAwBrB,cAAc,CAAC,KAAKmB,OAAN,CAAtC,GAAuD,EAA9D;AACD,CAFD;;AAIA,SAASsC,UAAT,CAAoByC,GAApB,EAAyB9D,CAAzB,EAA4B;AAC1B,MAAI+D,IAAI,GAAG,IAAIC,KAAJ,CAAUhE,CAAV,CAAX;;AACA,OAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,CAApB,EAAuB,EAAEM,CAAzB,EACEyD,IAAI,CAACzD,CAAD,CAAJ,GAAUwD,GAAG,CAACxD,CAAD,CAAb;;AACF,SAAOyD,IAAP;AACD;;AAED,SAASb,SAAT,CAAmBJ,IAAnB,EAAyBmB,KAAzB,EAAgC;AAC9B,SAAOA,KAAK,GAAG,CAAR,GAAYnB,IAAI,CAACtC,MAAxB,EAAgCyD,KAAK,EAArC,EACEnB,IAAI,CAACmB,KAAD,CAAJ,GAAcnB,IAAI,CAACmB,KAAK,GAAG,CAAT,CAAlB;;AACFnB,EAAAA,IAAI,CAACoB,GAAL;AACD;;AAED,SAASR,eAAT,CAAyBI,GAAzB,EAA8B;AAC5B,MAAIK,GAAG,GAAG,IAAIH,KAAJ,CAAUF,GAAG,CAACtD,MAAd,CAAV;;AACA,OAAK,IAAIF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6D,GAAG,CAAC3D,MAAxB,EAAgC,EAAEF,CAAlC,EAAqC;AACnC6D,IAAAA,GAAG,CAAC7D,CAAD,CAAH,GAASwD,GAAG,CAACxD,CAAD,CAAH,CAAOjB,QAAP,IAAmByE,GAAG,CAACxD,CAAD,CAA/B;AACD;;AACD,SAAO6D,GAAP;AACD;;AAED,SAASrF,IAAT,CAAckD,OAAd,EAAuBD,IAAvB,EAA6B;AAC3B,SAAO,IAAIqC,OAAJ,CAAY,UAAUC,OAAV,EAAmBC,MAAnB,EAA2B;AAC5C,aAASC,aAAT,CAAuBxD,GAAvB,EAA4B;AAC1BiB,MAAAA,OAAO,CAACO,cAAR,CAAuBR,IAAvB,EAA6ByC,QAA7B;AACAF,MAAAA,MAAM,CAACvD,GAAD,CAAN;AACD;;AAED,aAASyD,QAAT,GAAoB;AAClB,UAAI,OAAOxC,OAAO,CAACO,cAAf,KAAkC,UAAtC,EAAkD;AAChDP,QAAAA,OAAO,CAACO,cAAR,CAAuB,OAAvB,EAAgCgC,aAAhC;AACD;;AACDF,MAAAA,OAAO,CAAC,GAAGI,KAAH,CAAS9G,IAAT,CAAc4C,SAAd,CAAD,CAAP;AACD;;AAAA;AAEDmE,IAAAA,8BAA8B,CAAC1C,OAAD,EAAUD,IAAV,EAAgByC,QAAhB,EAA0B;AAAE1F,MAAAA,IAAI,EAAE;AAAR,KAA1B,CAA9B;;AACA,QAAIiD,IAAI,KAAK,OAAb,EAAsB;AACpB4C,MAAAA,6BAA6B,CAAC3C,OAAD,EAAUuC,aAAV,EAAyB;AAAEzF,QAAAA,IAAI,EAAE;AAAR,OAAzB,CAA7B;AACD;AACF,GAjBM,CAAP;AAkBD;;AAED,SAAS6F,6BAAT,CAAuC3C,OAAvC,EAAgDd,OAAhD,EAAyD0D,KAAzD,EAAgE;AAC9D,MAAI,OAAO5C,OAAO,CAACG,EAAf,KAAsB,UAA1B,EAAsC;AACpCuC,IAAAA,8BAA8B,CAAC1C,OAAD,EAAU,OAAV,EAAmBd,OAAnB,EAA4B0D,KAA5B,CAA9B;AACD;AACF;;AAED,SAASF,8BAAT,CAAwC1C,OAAxC,EAAiDD,IAAjD,EAAuD1C,QAAvD,EAAiEuF,KAAjE,EAAwE;AACtE,MAAI,OAAO5C,OAAO,CAACG,EAAf,KAAsB,UAA1B,EAAsC;AACpC,QAAIyC,KAAK,CAAC9F,IAAV,EAAgB;AACdkD,MAAAA,OAAO,CAAClD,IAAR,CAAaiD,IAAb,EAAmB1C,QAAnB;AACD,KAFD,MAEO;AACL2C,MAAAA,OAAO,CAACG,EAAR,CAAWJ,IAAX,EAAiB1C,QAAjB;AACD;AACF,GAND,MAMO,IAAI,OAAO2C,OAAO,CAAC6C,gBAAf,KAAoC,UAAxC,EAAoD;AACzD;AACA;AACA7C,IAAAA,OAAO,CAAC6C,gBAAR,CAAyB9C,IAAzB,EAA+B,SAAS+C,YAAT,CAAsBnF,GAAtB,EAA2B;AACxD;AACA;AACA,UAAIiF,KAAK,CAAC9F,IAAV,EAAgB;AACdkD,QAAAA,OAAO,CAAC+C,mBAAR,CAA4BhD,IAA5B,EAAkC+C,YAAlC;AACD;;AACDzF,MAAAA,QAAQ,CAACM,GAAD,CAAR;AACD,KAPD;AAQD,GAXM,MAWA;AACL,UAAM,IAAIL,SAAJ,CAAc,wEAAwE,OAAO0C,OAA7F,CAAN;AACD;AACF","sourcesContent":["// 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"]},"metadata":{},"sourceType":"script"}