{"version":3,"sources":["webpack:///./node_modules/events/events.js"],"names":["ReflectOwnKeys","R","Reflect","ReflectApply","apply","target","receiver","args","Function","prototype","call","ownKeys","Object","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","isNaN","value","EventEmitter","init","this","module","exports","_events","undefined","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","TypeError","_getMaxListeners","that","_addListener","type","prepend","m","events","existing","warning","create","newListener","emit","unshift","push","length","warned","w","Error","String","name","emitter","count","console","warn","onceWrapper","fired","removeListener","wrapFn","arguments","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","arr","ret","Array","i","unwrapListeners","arrayClone","listenerCount","n","copy","defineProperty","enumerable","get","set","arg","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","err","message","context","handler","len","listeners","addListener","on","prependListener","once","prependOnceListener","list","position","originalListener","shift","index","pop","spliceOne","off","removeAllListeners","key","keys","rawListeners","eventNames"],"mappings":"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","file":"vendor.events~b55f28a1.500b92b8fde0d7b3dba6.chunk.js","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;\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"],"sourceRoot":""}