{"version":3,"file":"firebase-app.js","sources":["../../node_modules/whatwg-fetch/fetch.js","../../node_modules/promise-polyfill/lib/polyfill.js","../../node_modules/core-js/modules/_global.js","../../node_modules/core-js/modules/_core.js","../../node_modules/core-js/modules/_is-object.js","../../node_modules/core-js/modules/_an-object.js","../../node_modules/core-js/modules/_fails.js","../../node_modules/core-js/modules/_descriptors.js","../../node_modules/core-js/modules/_dom-create.js","../../node_modules/core-js/modules/_ie8-dom-define.js","../../node_modules/core-js/modules/_to-primitive.js","../../node_modules/core-js/modules/_object-dp.js","../../node_modules/core-js/modules/_property-desc.js","../../node_modules/core-js/modules/_hide.js","../../node_modules/core-js/modules/_has.js","../../node_modules/core-js/modules/_uid.js","../../node_modules/core-js/modules/_redefine.js","../../node_modules/core-js/modules/_ctx.js","../../node_modules/core-js/modules/_a-function.js","../../node_modules/core-js/modules/_export.js","../../node_modules/core-js/modules/_cof.js","../../node_modules/core-js/modules/_iobject.js","../../node_modules/core-js/modules/_defined.js","../../node_modules/core-js/modules/_to-object.js","../../node_modules/core-js/modules/_to-integer.js","../../node_modules/core-js/modules/_to-length.js","../../node_modules/core-js/modules/_is-array.js","../../node_modules/core-js/modules/_shared.js","../../node_modules/core-js/modules/_wks.js","../../node_modules/core-js/modules/_array-species-constructor.js","../../node_modules/core-js/modules/_array-species-create.js","../../node_modules/core-js/modules/_array-methods.js","../../node_modules/core-js/modules/_add-to-unscopables.js","../../node_modules/core-js/modules/es6.array.find.js","../../node_modules/core-js/fn/array/find.js","../../node_modules/core-js/modules/es6.array.find-index.js","../../node_modules/core-js/fn/array/find-index.js","../../node_modules/core-js/modules/_array-includes.js","../../node_modules/core-js/modules/_to-iobject.js","../../node_modules/core-js/modules/_to-absolute-index.js","../../node_modules/core-js/modules/_shared-key.js","../../node_modules/core-js/modules/_object-keys-internal.js","../../node_modules/core-js/modules/_enum-bug-keys.js","../../node_modules/core-js/modules/_object-keys.js","../../node_modules/core-js/modules/_object-gops.js","../../node_modules/core-js/modules/_object-pie.js","../../node_modules/core-js/modules/_object-assign.js","../../node_modules/core-js/modules/es6.object.assign.js","../../node_modules/core-js/fn/object/assign.js","../../node_modules/core-js/modules/_is-regexp.js","../../node_modules/core-js/modules/_string-context.js","../../node_modules/core-js/modules/_fails-is-regexp.js","../../node_modules/core-js/modules/es6.string.starts-with.js","../../node_modules/core-js/fn/string/starts-with.js","../../node_modules/core-js/modules/es6.string.repeat.js","../../node_modules/core-js/modules/_string-repeat.js","../../node_modules/core-js/fn/string/repeat.js","../../node_modules/core-js/modules/_meta.js","../../node_modules/core-js/modules/_set-to-string-tag.js","../../node_modules/core-js/modules/_wks-ext.js","../../node_modules/core-js/modules/_wks-define.js","../../node_modules/core-js/modules/_object-dps.js","../../node_modules/core-js/modules/_html.js","../../node_modules/core-js/modules/_object-create.js","../../node_modules/core-js/modules/_object-gopn.js","../../node_modules/core-js/modules/_object-gopn-ext.js","../../node_modules/core-js/modules/_object-gopd.js","../../node_modules/core-js/modules/es6.symbol.js","../../node_modules/core-js/modules/_enum-keys.js","../../node_modules/core-js/modules/_classof.js","../../node_modules/core-js/modules/es6.object.to-string.js","../../node_modules/core-js/modules/es7.symbol.async-iterator.js","../../node_modules/core-js/modules/es7.symbol.observable.js","../../node_modules/core-js/fn/symbol/index.js","../../node_modules/core-js/modules/_iterators.js","../../node_modules/core-js/modules/_iter-create.js","../../node_modules/core-js/modules/_string-at.js","../../node_modules/core-js/modules/_object-gpo.js","../../node_modules/core-js/modules/_iter-define.js","../../node_modules/core-js/modules/es6.string.iterator.js","../../node_modules/core-js/modules/_iter-step.js","../../node_modules/core-js/modules/es6.array.iterator.js","../../node_modules/core-js/modules/web.dom.iterable.js","../../node_modules/core-js/fn/symbol/iterator.js","../../node_modules/tslib/tslib.es6.js","../util/dist/index.esm.js","../app/dist/index.esm.js"],"sourcesContent":["(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","'use strict';\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n return function() {\n fn.apply(thisArg, arguments);\n };\n}\n\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = function(callback) {\n var constructor = this.constructor;\n return this.then(\n function(value) {\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n return constructor.resolve(callback()).then(function() {\n return constructor.reject(reason);\n });\n }\n );\n};\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(values) {\n return new Promise(function(resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n (typeof setImmediate === 'function' &&\n function(fn) {\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\nvar globalNS = (function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n})();\n\nif (!globalNS.Promise) {\n globalNS.Promise = Promise;\n}\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.5.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('../../modules/es6.array.find');\nmodule.exports = require('../../modules/_core').Array.find;\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('../../modules/es6.array.find-index');\nmodule.exports = require('../../modules/_core').Array.findIndex;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","require('../../modules/es6.string.starts-with');\nmodule.exports = require('../../modules/_core').String.startsWith;\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","require('../../modules/es6.string.repeat');\nmodule.exports = require('../../modules/_core').String.repeat;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","module.exports = {};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { __extends } from 'tslib';\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nvar CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n * @param {*} assertion The assertion to be tested for falsiness\r\n * @param {!string} message The message to display if the check fails\r\n */\r\nvar assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n * @param {string} message\r\n * @return {!Error}\r\n */\r\nvar assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar stringToByteArray = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [], p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) == 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) == 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param {Array} bytes Array of numbers representing characters.\r\n * @return {string} Stringification of the array.\r\n */\r\nvar byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [], pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n var c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n var c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n var c4 = bytes[pos++];\r\n var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// Static lookup maps, lazily populated by init_()\r\nvar base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n * @type {Object}\r\n * @private\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n * @type {Object}\r\n * @private\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @type {Object}\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @type {Object}\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n * @type {string}\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n * @type {string}\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n * @type {string}\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n * @type {boolean}\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param {Array|Uint8Array} input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param {boolean=} opt_webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return {string} The base64 encoded string.\r\n */\r\n encodeByteArray: function (input, opt_webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n var byteToCharMap = opt_webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length; i += 3) {\r\n var byte1 = input[i];\r\n var haveByte2 = i + 1 < input.length;\r\n var byte2 = haveByte2 ? input[i + 1] : 0;\r\n var haveByte3 = i + 2 < input.length;\r\n var byte3 = haveByte3 ? input[i + 2] : 0;\r\n var outByte1 = byte1 >> 2;\r\n var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n var outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n var outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param {string} input A string to encode.\r\n * @param {boolean=} opt_webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return {string} The base64 encoded string.\r\n */\r\n encodeString: function (input, opt_webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !opt_webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray(input), opt_webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param {string} input to decode.\r\n * @param {boolean=} opt_webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return {string} string representing the decoded value.\r\n */\r\n decodeString: function (input, opt_webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !opt_webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, opt_webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param {string} input Input to decode.\r\n * @param {boolean=} opt_webSafe True if we should use the web-safe alphabet.\r\n * @return {!Array} bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray: function (input, opt_webSafe) {\r\n this.init_();\r\n var charToByteMap = opt_webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length;) {\r\n var byte1 = charToByteMap[input.charAt(i++)];\r\n var haveByte2 = i < input.length;\r\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n var haveByte3 = i < input.length;\r\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n var haveByte4 = i < input.length;\r\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n var outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 != 64) {\r\n var outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 != 64) {\r\n var outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_: function () {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (var i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n * @param {!string} str\r\n * @return {!string}\r\n */\r\nvar base64Encode = function (str) {\r\n var utf8Bytes = stringToByteArray(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param {string} str To be decoded\r\n * @return {?string} Decoded result, if possible\r\n */\r\nvar base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n var dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (var prop in source) {\r\n if (!source.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\n// TODO: Really needed (for JSCompiler type checking)?\r\nfunction patchProperty(obj, prop, value) {\r\n obj[prop] = value;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Deferred = /** @class */ (function () {\r\n function Deferred() {\r\n var _this = this;\r\n this.promise = new Promise(function (resolve, reject) {\r\n _this.resolve = resolve;\r\n _this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n * @param {((?function(?(Error)): (?|undefined))| (?function(?(Error),?=): (?|undefined)))=} callback\r\n * @return {!function(?(Error), ?=)}\r\n */\r\n Deferred.prototype.wrapCallback = function (callback) {\r\n var _this = this;\r\n return function (error, value) {\r\n if (error) {\r\n _this.reject(error);\r\n }\r\n else {\r\n _this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n _this.promise.catch(function () { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n };\r\n return Deferred;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return {string} user agent string\r\n */\r\nvar getUA = function () {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n};\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap in the Ripple emulator) nor\r\n * Cordova `onDeviceReady`, which would normally wait for a callback.\r\n *\r\n * @return {boolean} isMobileCordova\r\n */\r\nvar isMobileCordova = function () {\r\n return (typeof window !== 'undefined' &&\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n};\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return {boolean} True if ReactNative environment is detected.\r\n */\r\nvar isReactNative = function () {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n};\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return {boolean} True if Node.js environment is detected.\r\n */\r\nvar isNodeSdk = function () {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n};\n\nvar ERROR_NAME = 'FirebaseError';\r\nvar captureStackTrace = Error\r\n .captureStackTrace;\r\n// Export for faking in tests\r\nfunction patchCapture(captureFake) {\r\n var result = captureStackTrace;\r\n captureStackTrace = captureFake;\r\n return result;\r\n}\r\nvar FirebaseError = /** @class */ (function () {\r\n function FirebaseError(code, message) {\r\n this.code = code;\r\n this.message = message;\r\n // We want the stack value, if implemented by Error\r\n if (captureStackTrace) {\r\n // Patches this.stack, omitted calls above ErrorFactory#create\r\n captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n else {\r\n try {\r\n // In case of IE11, stack will be set only after error is raised.\r\n // https://docs.microsoft.com/en-us/scripting/javascript/reference/stack-property-error-javascript\r\n throw Error.apply(this, arguments);\r\n }\r\n catch (err) {\r\n this.name = ERROR_NAME;\r\n // Make non-enumerable getter for the property.\r\n Object.defineProperty(this, 'stack', {\r\n get: function () {\r\n return err.stack;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return FirebaseError;\r\n}());\r\n// Back-door inheritance\r\nFirebaseError.prototype = Object.create(Error.prototype);\r\nFirebaseError.prototype.constructor = FirebaseError;\r\nFirebaseError.prototype.name = ERROR_NAME;\r\nvar ErrorFactory = /** @class */ (function () {\r\n function ErrorFactory(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n // Matches {$name}, by default.\r\n this.pattern = /\\{\\$([^}]+)}/g;\r\n // empty\r\n }\r\n ErrorFactory.prototype.create = function (code, data) {\r\n if (data === undefined) {\r\n data = {};\r\n }\r\n var template = this.errors[code];\r\n var fullCode = this.service + '/' + code;\r\n var message;\r\n if (template === undefined) {\r\n message = 'Error';\r\n }\r\n else {\r\n message = template.replace(this.pattern, function (match, key) {\r\n var value = data[key];\r\n return value !== undefined ? value.toString() : '<' + key + '?>';\r\n });\r\n }\r\n // Service: Error message (service/code).\r\n message = this.serviceName + ': ' + message + ' (' + fullCode + ').';\r\n var err = new FirebaseError(fullCode, message);\r\n // Populate the Error object with message parts for programmatic\r\n // accesses (e.g., e.file).\r\n for (var prop in data) {\r\n if (!data.hasOwnProperty(prop) || prop.slice(-1) === '_') {\r\n continue;\r\n }\r\n err[prop] = data[prop];\r\n }\r\n return err;\r\n };\r\n return ErrorFactory;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {{header: *, claims: *, data: *, signature: string}}\r\n */\r\nvar decode = function (token) {\r\n var header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n var parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header: header,\r\n claims: claims,\r\n data: data,\r\n signature: signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isValidTimestamp = function (token) {\r\n var claims = decode(token).claims, now = Math.floor(new Date().getTime() / 1000), validSince, validUntil;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (now && validSince && validUntil && now >= validSince && now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {?number}\r\n */\r\nvar issuedAtTime = function (token) {\r\n var claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isValidFormat = function (token) {\r\n var decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isAdmin = function (token) {\r\n var claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// See http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/\r\nvar contains = function (obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n};\r\nvar safeGet = function (obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key))\r\n return obj[key];\r\n // else return undefined.\r\n};\r\n/**\r\n * Enumerates the keys/values in an object, excluding keys defined on the prototype.\r\n *\r\n * @param {?Object.} obj Object to enumerate.\r\n * @param {!function(K, V)} fn Function to call for each key and value.\r\n * @template K,V\r\n */\r\nvar forEach = function (obj, fn) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n fn(key, obj[key]);\r\n }\r\n }\r\n};\r\n/**\r\n * Copies all the (own) properties from one object to another.\r\n * @param {!Object} objTo\r\n * @param {!Object} objFrom\r\n * @return {!Object} objTo\r\n */\r\nvar extend = function (objTo, objFrom) {\r\n forEach(objFrom, function (key, value) {\r\n objTo[key] = value;\r\n });\r\n return objTo;\r\n};\r\n/**\r\n * Returns a clone of the specified object.\r\n * @param {!Object} obj\r\n * @return {!Object} cloned obj.\r\n */\r\nvar clone = function (obj) {\r\n return extend({}, obj);\r\n};\r\n/**\r\n * Returns true if obj has typeof \"object\" and is not null. Unlike goog.isObject(), does not return true\r\n * for functions.\r\n *\r\n * @param obj {*} A potential object.\r\n * @returns {boolean} True if it's an object.\r\n */\r\nvar isNonNullObject = function (obj) {\r\n return typeof obj === 'object' && obj !== null;\r\n};\r\nvar isEmpty = function (obj) {\r\n for (var key in obj) {\r\n return false;\r\n }\r\n return true;\r\n};\r\nvar getCount = function (obj) {\r\n var rv = 0;\r\n for (var key in obj) {\r\n rv++;\r\n }\r\n return rv;\r\n};\r\nvar map = function (obj, f, opt_obj) {\r\n var res = {};\r\n for (var key in obj) {\r\n res[key] = f.call(opt_obj, obj[key], key, obj);\r\n }\r\n return res;\r\n};\r\nvar findKey = function (obj, fn, opt_this) {\r\n for (var key in obj) {\r\n if (fn.call(opt_this, obj[key], key, obj)) {\r\n return key;\r\n }\r\n }\r\n return undefined;\r\n};\r\nvar findValue = function (obj, fn, opt_this) {\r\n var key = findKey(obj, fn, opt_this);\r\n return key && obj[key];\r\n};\r\nvar getAnyKey = function (obj) {\r\n for (var key in obj) {\r\n return key;\r\n }\r\n};\r\nvar getValues = function (obj) {\r\n var res = [];\r\n var i = 0;\r\n for (var key in obj) {\r\n res[i++] = obj[key];\r\n }\r\n return res;\r\n};\r\n/**\r\n * Tests whether every key/value pair in an object pass the test implemented\r\n * by the provided function\r\n *\r\n * @param {?Object.} obj Object to test.\r\n * @param {!function(K, V)} fn Function to call for each key and value.\r\n * @template K,V\r\n */\r\nvar every = function (obj, fn) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n if (!fn(key, obj[key])) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a params\r\n * object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n *\r\n * @param {!Object} querystringParams\r\n * @return {string}\r\n */\r\nvar querystring = function (querystringParams) {\r\n var params = [];\r\n forEach(querystringParams, function (key, value) {\r\n if (Array.isArray(value)) {\r\n value.forEach(function (arrayVal) {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n });\r\n return params.length ? '&' + params.join('&') : '';\r\n};\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object (e.g. {arg: 'val', arg2: 'val2'})\r\n *\r\n * @param {string} querystring\r\n * @return {!Object}\r\n */\r\nvar querystringDecode = function (querystring) {\r\n var obj = {};\r\n var tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(function (token) {\r\n if (token) {\r\n var key = token.split('=');\r\n obj[key[0]] = key[1];\r\n }\r\n });\r\n return obj;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Copyright 2011 The Closure Library Authors. All Rights Reserved.\r\n//\r\n// Licensed under the Apache License, Version 2.0 (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS-IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n/**\r\n * @fileoverview Abstract cryptographic hash interface.\r\n *\r\n * See Sha1 and Md5 for sample implementations.\r\n *\r\n */\r\n/**\r\n * Create a cryptographic hash instance.\r\n *\r\n * @constructor\r\n * @struct\r\n */\r\nvar Hash = /** @class */ (function () {\r\n function Hash() {\r\n /**\r\n * The block size for the hasher.\r\n * @type {number}\r\n */\r\n this.blockSize = -1;\r\n }\r\n return Hash;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @extends {Hash}\r\n * @final\r\n * @struct\r\n */\r\nvar Sha1 = /** @class */ (function (_super) {\r\n __extends(Sha1, _super);\r\n function Sha1() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @type {!Array}\r\n * @private\r\n */\r\n _this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @type {!Array}\r\n * @private\r\n */\r\n _this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @type {!Array}\r\n * @private\r\n */\r\n _this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @type {!Array}\r\n * @private\r\n */\r\n _this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n _this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n _this.total_ = 0;\r\n _this.blockSize = 512 / 8;\r\n _this.pad_[0] = 128;\r\n for (var i = 1; i < _this.blockSize; ++i) {\r\n _this.pad_[i] = 0;\r\n }\r\n _this.reset();\r\n return _this;\r\n }\r\n Sha1.prototype.reset = function () {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n };\r\n /**\r\n * Internal compress helper function.\r\n * @param {!Array|!Uint8Array|string} buf Block to compress.\r\n * @param {number=} opt_offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n Sha1.prototype.compress_ = function (buf, opt_offset) {\r\n if (!opt_offset) {\r\n opt_offset = 0;\r\n }\r\n var W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (var i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(opt_offset) << 24) |\r\n (buf.charCodeAt(opt_offset + 1) << 16) |\r\n (buf.charCodeAt(opt_offset + 2) << 8) |\r\n buf.charCodeAt(opt_offset + 3);\r\n opt_offset += 4;\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[opt_offset] << 24) |\r\n (buf[opt_offset + 1] << 16) |\r\n (buf[opt_offset + 2] << 8) |\r\n buf[opt_offset + 3];\r\n opt_offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (var i = 16; i < 80; i++) {\r\n var t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n var a = this.chain_[0];\r\n var b = this.chain_[1];\r\n var c = this.chain_[2];\r\n var d = this.chain_[3];\r\n var e = this.chain_[4];\r\n var f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (var i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n var t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n };\r\n Sha1.prototype.update = function (bytes, opt_length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (opt_length === undefined) {\r\n opt_length = bytes.length;\r\n }\r\n var lengthMinusBlock = opt_length - this.blockSize;\r\n var n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n var buf = this.buf_;\r\n var inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < opt_length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf == 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < opt_length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf == this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < opt_length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf == this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += opt_length;\r\n };\r\n /** @override */\r\n Sha1.prototype.digest = function () {\r\n var digest = [];\r\n var totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (var i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n var n = 0;\r\n for (var i = 0; i < 5; i++) {\r\n for (var j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n };\r\n return Sha1;\r\n}(Hash));\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n var proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nvar ObserverProxy = /** @class */ (function () {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n function ObserverProxy(executor, onNoObservers) {\r\n var _this = this;\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(function () {\r\n executor(_this);\r\n })\r\n .catch(function (e) {\r\n _this.error(e);\r\n });\r\n }\r\n ObserverProxy.prototype.next = function (value) {\r\n this.forEachObserver(function (observer) {\r\n observer.next(value);\r\n });\r\n };\r\n ObserverProxy.prototype.error = function (error) {\r\n this.forEachObserver(function (observer) {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n };\r\n ObserverProxy.prototype.complete = function () {\r\n this.forEachObserver(function (observer) {\r\n observer.complete();\r\n });\r\n this.close();\r\n };\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n ObserverProxy.prototype.subscribe = function (nextOrObserver, error, complete) {\r\n var _this = this;\r\n var observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, ['next', 'error', 'complete'])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error: error,\r\n complete: complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n var unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n this.task.then(function () {\r\n try {\r\n if (_this.finalError) {\r\n observer.error(_this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n };\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n ObserverProxy.prototype.unsubscribeOne = function (i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n };\r\n ObserverProxy.prototype.forEachObserver = function (fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (var i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n };\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n ObserverProxy.prototype.sendOne = function (i, fn) {\r\n var _this = this;\r\n // Execute the callback asynchronously\r\n this.task.then(function () {\r\n if (_this.observers !== undefined && _this.observers[i] !== undefined) {\r\n try {\r\n fn(_this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n ObserverProxy.prototype.close = function (err) {\r\n var _this = this;\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n this.task.then(function () {\r\n _this.observers = undefined;\r\n _this.onNoObservers = undefined;\r\n });\r\n };\r\n return ObserverProxy;\r\n}());\r\n/** Turn synchronous function into one called asynchronously. */\r\nfunction async(fn, onError) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n Promise.resolve(true)\r\n .then(function () {\r\n fn.apply(void 0, args);\r\n })\r\n .catch(function (error) {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (var _i = 0, methods_1 = methods; _i < methods_1.length; _i++) {\r\n var method = methods_1[_i];\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param {!string} fnName The function name\r\n * @param {!number} minCount The minimum number of arguments to allow for the function call\r\n * @param {!number} maxCount The maximum number of argument to allow for the function call\r\n * @param {!number} argCount The actual number of arguments provided.\r\n */\r\nvar validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n var argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n var error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param {!string} fnName The function name\r\n * @param {!number} argumentNumber The index of the argument\r\n * @param {boolean} optional Whether or not the argument is optional\r\n * @return {!string} The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argumentNumber, optional) {\r\n var argName = '';\r\n switch (argumentNumber) {\r\n case 1:\r\n argName = optional ? 'first' : 'First';\r\n break;\r\n case 2:\r\n argName = optional ? 'second' : 'Second';\r\n break;\r\n case 3:\r\n argName = optional ? 'third' : 'Third';\r\n break;\r\n case 4:\r\n argName = optional ? 'fourth' : 'Fourth';\r\n break;\r\n default:\r\n throw new Error('errorPrefix called with argumentNumber > 4. Need to update it?');\r\n }\r\n var error = fnName + ' failed: ';\r\n error += argName + ' argument ';\r\n return error;\r\n}\r\n/**\r\n * @param {!string} fnName\r\n * @param {!number} argumentNumber\r\n * @param {!string} namespace\r\n * @param {boolean} optional\r\n */\r\nfunction validateNamespace(fnName, argumentNumber, namespace, optional) {\r\n if (optional && !namespace)\r\n return;\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentNumber, callback, optional) {\r\n if (optional && !callback)\r\n return;\r\n if (typeof callback !== 'function')\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid function.');\r\n}\r\nfunction validateContextObject(fnName, argumentNumber, context, optional) {\r\n if (optional && !context)\r\n return;\r\n if (typeof context !== 'object' || context === null)\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid context object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nvar stringToByteArray$1 = function (str) {\r\n var out = [], p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n var high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n var low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nvar stringLength = function (str) {\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nexport { assert, assertionError, base64, base64Decode, base64Encode, CONSTANTS, deepCopy, deepExtend, patchProperty, Deferred, getUA, isMobileCordova, isNodeSdk, isReactNative, ErrorFactory, FirebaseError, patchCapture, jsonEval, stringify, decode, isAdmin, issuedAtTime, isValidFormat, isValidTimestamp, clone, contains, every, extend, findKey, findValue, forEach, getAnyKey, getCount, getValues, isEmpty, isNonNullObject, map, safeGet, querystring, querystringDecode, Sha1, async, createSubscribe, errorPrefix, validateArgCount, validateCallback, validateContextObject, validateNamespace, stringLength, stringToByteArray$1 as stringToByteArray };\n","import { deepExtend, ErrorFactory, deepCopy, createSubscribe, patchProperty } from '@firebase/util';\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar contains = function (obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n};\r\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\n// An array to capture listeners before the true auth functions\r\n// exist\r\nvar tokenListeners = [];\r\n/**\r\n * Global context object for a collection of services using\r\n * a shared authentication state.\r\n */\r\nvar FirebaseAppImpl = /** @class */ (function () {\r\n function FirebaseAppImpl(options, config, firebase_) {\r\n this.firebase_ = firebase_;\r\n this.isDeleted_ = false;\r\n this.services_ = {};\r\n this.name_ = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled || false;\r\n this.options_ = deepCopy(options);\r\n this.INTERNAL = {\r\n getUid: function () { return null; },\r\n getToken: function () { return Promise.resolve(null); },\r\n addAuthTokenListener: function (callback) {\r\n tokenListeners.push(callback);\r\n // Make sure callback is called, asynchronously, in the absence of the auth module\r\n setTimeout(function () { return callback(null); }, 0);\r\n },\r\n removeAuthTokenListener: function (callback) {\r\n tokenListeners = tokenListeners.filter(function (listener) { return listener !== callback; });\r\n }\r\n };\r\n }\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"automaticDataCollectionEnabled\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this._automaticDataCollectionEnabled;\r\n },\r\n set: function (val) {\r\n this.checkDestroyed_();\r\n this._automaticDataCollectionEnabled = val;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"name\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.name_;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FirebaseAppImpl.prototype, \"options\", {\r\n get: function () {\r\n this.checkDestroyed_();\r\n return this.options_;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n FirebaseAppImpl.prototype.delete = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this.checkDestroyed_();\r\n resolve();\r\n })\r\n .then(function () {\r\n _this.firebase_.INTERNAL.removeApp(_this.name_);\r\n var services = [];\r\n Object.keys(_this.services_).forEach(function (serviceKey) {\r\n Object.keys(_this.services_[serviceKey]).forEach(function (instanceKey) {\r\n services.push(_this.services_[serviceKey][instanceKey]);\r\n });\r\n });\r\n return Promise.all(services.map(function (service) {\r\n return service.INTERNAL.delete();\r\n }));\r\n })\r\n .then(function () {\r\n _this.isDeleted_ = true;\r\n _this.services_ = {};\r\n });\r\n };\r\n /**\r\n * Return a service instance associated with this app (creating it\r\n * on demand), identified by the passed instanceIdentifier.\r\n *\r\n * NOTE: Currently storage is the only one that is leveraging this\r\n * functionality. They invoke it by calling:\r\n *\r\n * ```javascript\r\n * firebase.app().storage('STORAGE BUCKET ID')\r\n * ```\r\n *\r\n * The service name is passed to this already\r\n * @internal\r\n */\r\n FirebaseAppImpl.prototype._getService = function (name, instanceIdentifier) {\r\n if (instanceIdentifier === void 0) { instanceIdentifier = DEFAULT_ENTRY_NAME; }\r\n this.checkDestroyed_();\r\n if (!this.services_[name]) {\r\n this.services_[name] = {};\r\n }\r\n if (!this.services_[name][instanceIdentifier]) {\r\n /**\r\n * If a custom instance has been defined (i.e. not '[DEFAULT]')\r\n * then we will pass that instance on, otherwise we pass `null`\r\n */\r\n var instanceSpecifier = instanceIdentifier !== DEFAULT_ENTRY_NAME\r\n ? instanceIdentifier\r\n : undefined;\r\n var service = this.firebase_.INTERNAL.factories[name](this, this.extendApp.bind(this), instanceSpecifier);\r\n this.services_[name][instanceIdentifier] = service;\r\n }\r\n return this.services_[name][instanceIdentifier];\r\n };\r\n /**\r\n * Callback function used to extend an App instance at the time\r\n * of service instance creation.\r\n */\r\n FirebaseAppImpl.prototype.extendApp = function (props) {\r\n var _this = this;\r\n // Copy the object onto the FirebaseAppImpl prototype\r\n deepExtend(this, props);\r\n /**\r\n * If the app has overwritten the addAuthTokenListener stub, forward\r\n * the active token listeners on to the true fxn.\r\n *\r\n * TODO: This function is required due to our current module\r\n * structure. Once we are able to rely strictly upon a single module\r\n * implementation, this code should be refactored and Auth should\r\n * provide these stubs and the upgrade logic\r\n */\r\n if (props.INTERNAL && props.INTERNAL.addAuthTokenListener) {\r\n tokenListeners.forEach(function (listener) {\r\n _this.INTERNAL.addAuthTokenListener(listener);\r\n });\r\n tokenListeners = [];\r\n }\r\n };\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n FirebaseAppImpl.prototype.checkDestroyed_ = function () {\r\n if (this.isDeleted_) {\r\n error('app-deleted', { name: this.name_ });\r\n }\r\n };\r\n return FirebaseAppImpl;\r\n}());\r\n// Prevent dead-code elimination of these methods w/o invalid property\r\n// copying.\r\n(FirebaseAppImpl.prototype.name && FirebaseAppImpl.prototype.options) ||\r\n FirebaseAppImpl.prototype.delete ||\r\n console.log('dc');\r\n/**\r\n * Return a firebase namespace object.\r\n *\r\n * In production, this will be called exactly once and the result\r\n * assigned to the 'firebase' global. It may be called multiple times\r\n * in unit tests.\r\n */\r\nfunction createFirebaseNamespace() {\r\n var apps_ = {};\r\n var factories = {};\r\n var appHooks = {};\r\n // A namespace is a plain JavaScript Object.\r\n var namespace = {\r\n // Hack to prevent Babel from modifying the object returned\r\n // as the firebase namespace.\r\n __esModule: true,\r\n initializeApp: initializeApp,\r\n app: app,\r\n apps: null,\r\n Promise: Promise,\r\n SDK_VERSION: '5.8.5',\r\n INTERNAL: {\r\n registerService: registerService,\r\n createFirebaseNamespace: createFirebaseNamespace,\r\n extendNamespace: extendNamespace,\r\n createSubscribe: createSubscribe,\r\n ErrorFactory: ErrorFactory,\r\n removeApp: removeApp,\r\n factories: factories,\r\n useAsService: useAsService,\r\n Promise: Promise,\r\n deepExtend: deepExtend\r\n }\r\n };\r\n // Inject a circular default export to allow Babel users who were previously\r\n // using:\r\n //\r\n // import firebase from 'firebase';\r\n // which becomes: var firebase = require('firebase').default;\r\n //\r\n // instead of\r\n //\r\n // import * as firebase from 'firebase';\r\n // which becomes: var firebase = require('firebase');\r\n patchProperty(namespace, 'default', namespace);\r\n // firebase.apps is a read-only getter.\r\n Object.defineProperty(namespace, 'apps', {\r\n get: getApps\r\n });\r\n /**\r\n * Called by App.delete() - but before any services associated with the App\r\n * are deleted.\r\n */\r\n function removeApp(name) {\r\n var app = apps_[name];\r\n callAppHooks(app, 'delete');\r\n delete apps_[name];\r\n }\r\n /**\r\n * Get the App object for a given name (or DEFAULT).\r\n */\r\n function app(name) {\r\n name = name || DEFAULT_ENTRY_NAME;\r\n if (!contains(apps_, name)) {\r\n error('no-app', { name: name });\r\n }\r\n return apps_[name];\r\n }\r\n patchProperty(app, 'App', FirebaseAppImpl);\r\n function initializeApp(options, rawConfig) {\r\n if (rawConfig === void 0) { rawConfig = {}; }\r\n if (typeof rawConfig !== 'object' || rawConfig === null) {\r\n var name_1 = rawConfig;\r\n rawConfig = { name: name_1 };\r\n }\r\n var config = rawConfig;\r\n if (config.name === undefined) {\r\n config.name = DEFAULT_ENTRY_NAME;\r\n }\r\n var name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n error('bad-app-name', { name: name + '' });\r\n }\r\n if (contains(apps_, name)) {\r\n error('duplicate-app', { name: name });\r\n }\r\n var app = new FirebaseAppImpl(options, config, namespace);\r\n apps_[name] = app;\r\n callAppHooks(app, 'create');\r\n return app;\r\n }\r\n /*\r\n * Return an array of all the non-deleted FirebaseApps.\r\n */\r\n function getApps() {\r\n // Make a copy so caller cannot mutate the apps list.\r\n return Object.keys(apps_).map(function (name) { return apps_[name]; });\r\n }\r\n /*\r\n * Register a Firebase Service.\r\n *\r\n * firebase.INTERNAL.registerService()\r\n *\r\n * TODO: Implement serviceProperties.\r\n */\r\n function registerService(name, createService, serviceProperties, appHook, allowMultipleInstances) {\r\n // Cannot re-register a service that already exists\r\n if (factories[name]) {\r\n error('duplicate-service', { name: name });\r\n }\r\n // Capture the service factory for later service instantiation\r\n factories[name] = createService;\r\n // Capture the appHook, if passed\r\n if (appHook) {\r\n appHooks[name] = appHook;\r\n // Run the **new** app hook on all existing apps\r\n getApps().forEach(function (app) {\r\n appHook('create', app);\r\n });\r\n }\r\n // The Service namespace is an accessor function ...\r\n var serviceNamespace = function (appArg) {\r\n if (appArg === void 0) { appArg = app(); }\r\n if (typeof appArg[name] !== 'function') {\r\n // Invalid argument.\r\n // This happens in the following case: firebase.storage('gs:/')\r\n error('invalid-app-argument', { name: name });\r\n }\r\n // Forward service instance lookup to the FirebaseApp.\r\n return appArg[name]();\r\n };\r\n // ... and a container for service-level properties.\r\n if (serviceProperties !== undefined) {\r\n deepExtend(serviceNamespace, serviceProperties);\r\n }\r\n // Monkey-patch the serviceNamespace onto the firebase namespace\r\n namespace[name] = serviceNamespace;\r\n // Patch the FirebaseAppImpl prototype\r\n FirebaseAppImpl.prototype[name] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var serviceFxn = this._getService.bind(this, name);\r\n return serviceFxn.apply(this, allowMultipleInstances ? args : []);\r\n };\r\n return serviceNamespace;\r\n }\r\n /**\r\n * Patch the top-level firebase namespace with additional properties.\r\n *\r\n * firebase.INTERNAL.extendNamespace()\r\n */\r\n function extendNamespace(props) {\r\n deepExtend(namespace, props);\r\n }\r\n function callAppHooks(app, eventName) {\r\n Object.keys(factories).forEach(function (serviceName) {\r\n // Ignore virtual services\r\n var factoryName = useAsService(app, serviceName);\r\n if (factoryName === null) {\r\n return;\r\n }\r\n if (appHooks[factoryName]) {\r\n appHooks[factoryName](eventName, app);\r\n }\r\n });\r\n }\r\n // Map the requested service to a registered service name\r\n // (used to map auth to serverAuth service when needed).\r\n function useAsService(app, name) {\r\n if (name === 'serverAuth') {\r\n return null;\r\n }\r\n var useService = name;\r\n var options = app.options;\r\n return useService;\r\n }\r\n return namespace;\r\n}\r\nfunction error(code, args) {\r\n throw appErrors.create(code, args);\r\n}\r\n// TypeScript does not support non-string indexes!\r\n// let errors: {[code: AppError: string} = {\r\nvar errors = {\r\n 'no-app': \"No Firebase App '{$name}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n 'bad-app-name': \"Illegal App name: '{$name}\",\r\n 'duplicate-app': \"Firebase App named '{$name}' already exists\",\r\n 'app-deleted': \"Firebase App named '{$name}' already deleted\",\r\n 'duplicate-service': \"Firebase service named '{$name}' already registered\",\r\n 'sa-not-supported': 'Initializing the Firebase SDK with a service ' +\r\n 'account is only allowed in a Node.js environment. On client ' +\r\n 'devices, you should instead initialize the SDK with an api key and ' +\r\n 'auth domain',\r\n 'invalid-app-argument': 'firebase.{$name}() takes either no argument or a ' +\r\n 'Firebase App instance.'\r\n};\r\nvar appErrors = new ErrorFactory('app', 'Firebase', errors);\n\n/**\r\n * @license\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nvar isNode = false;\r\ntry {\r\n isNode =\r\n Object.prototype.toString.call(global.process) === '[object process]';\r\n}\r\ncatch (e) { }\r\nisNode &&\r\n console.warn(\"\\nWarning: This is a browser-targeted Firebase bundle but it appears it is being\\nrun in a Node environment. If running in a Node environment, make sure you\\nare using the bundle specified by the \\\"main\\\" field in package.json.\\n\\nIf you are using Webpack, you can specify \\\"main\\\" as the first item in\\n\\\"resolve.mainFields\\\":\\nhttps://webpack.js.org/configuration/resolve/#resolvemainfields\\n\\nIf using Rollup, use the rollup-plugin-node-resolve plugin and set \\\"module\\\"\\nto false and \\\"main\\\" to true:\\nhttps://github.com/rollup/rollup-plugin-node-resolve\\n\");\r\nvar firebase = createFirebaseNamespace();\n\nexport default firebase;\nexport { firebase };\n"],"names":["self","fetch","support","Symbol","Blob","e","viewClasses","isDataView","obj","DataView","prototype","isPrototypeOf","isArrayBufferView","ArrayBuffer","isView","indexOf","Object","toString","call","Headers","append","name","value","normalizeName","normalizeValue","oldValue","this","map","get","has","hasOwnProperty","set","forEach","callback","thisArg","keys","items","push","iteratorFor","values","entries","iterator","methods","Request","clone","body","_bodyInit","Body","Response","status","statusText","headers","url","error","response","type","redirectStatuses","redirect","RangeError","location","input","init","Promise","resolve","reject","request","xhr","XMLHttpRequest","onload","rawHeaders","options","getAllResponseHeaders","replace","split","line","parts","key","shift","trim","join","responseURL","responseText","onerror","TypeError","ontimeout","open","method","credentials","withCredentials","responseType","setRequestHeader","send","polyfill","String","test","toLowerCase","next","done","undefined","Array","isArray","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","result","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","buffer","_initBody","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","Error","rejected","arrayBuffer","then","text","readAsText","chars","length","i","fromCharCode","readArrayBufferAsText","formData","decode","json","JSON","parse","upcased","mode","toUpperCase","referrer","form","bytes","decodeURIComponent","bodyInit","ok","setTimeoutFunc","setTimeout","noop","fn","_state","_handled","_value","_deferreds","doResolve","handle","deferred","_immediateFn","cb","onFulfilled","onRejected","ret","newValue","finale","apply","arguments","_unhandledRejectionFn","len","Handler","reason","ex","prom","constructor","all","arr","args","remaining","res","val","race","setImmediate","err","console","warn","globalNS","window","global","module","Math","Function","__g","core","version","__e","it","isObject","exec","require$$0","defineProperty","a","document","is","createElement","require$$1","require$$2","S","valueOf","dP","O","P","Attributes","anObject","toPrimitive","IE8_DOM_DEFINE","bitmap","enumerable","configurable","writable","object","f","createDesc","id","px","random","concat","SRC","TO_STRING","$toString","TPL","inspectSource","safe","isFunction","hide","that","aFunction","b","c","PROTOTYPE","$export","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","target","exports","expProto","ctx","redefine","U","W","R","propertyIsEnumerable","cof","defined","ceil","floor","isNaN","min","toInteger","arg","SHARED","store","USE_SYMBOL","uid","SPECIES","original","C","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","asc","$this","callbackfn","toObject","IObject","toLength","index","UNSCOPABLES","ArrayProto","$find","KEY","forced","find","findIndex","IS_INCLUDES","max","shared","arrayIndexOf","el","fromIndex","toIObject","IE_PROTO","names","$keys","enumBugKeys","getOwnPropertySymbols","$assign","assign","A","K","k","T","aLen","getSymbols","gOPS","isEnum","pIE","getKeys","j","MATCH","searchString","NAME","isRegExp","STARTS_WITH","$startsWith","re","startsWith","context","search","repeat","count","str","n","Infinity","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","NEED","fastKey","getWeak","onFreeze","def","TAG","tag","stat","$Symbol","_global","charAt","wksExt","defineProperties","Properties","documentElement","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","write","lt","close","dPs","hiddenKeys","gOPN","windowNames","getWindowNames","gOPD","getOwnPropertyDescriptor","$GOPD","$DP","gOPNExt","$JSON","_stringify","stringify","HIDDEN","wks","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","DESCRIPTORS","$fails","_create","D","protoDesc","wrap","sym","_k","isSymbol","$defineProperty","$defineProperties","symbols","enumKeys","l","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","require$$3","es6Symbols","wellKnownSymbols","wksDefine","for","keyFor","useSetter","useSimple","replacer","$replacer","require$$5","ARG","tryGet","callee","require$$4","IteratorPrototype","getPrototypeOf","ITERATOR","BUGGY","VALUES","returnThis","Base","Constructor","DEFAULT","IS_SET","FORCED","descriptor","setToStringTag","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","Iterators","$at","pos","s","charCodeAt","iterated","_t","_i","point","step","Arguments","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","$iterators","extendStatics","setPrototypeOf","__proto__","d","p","deepExtend","Date","getTime","prop","patchProperty","ERROR_NAME","captureStackTrace","FirebaseError","code","message","ErrorFactory","stack","service","serviceName","errors","pattern","data","template","fullCode","match","_super","Sha1","_this","chain_","buf_","W_","pad_","inbuf_","total_","blockSize","reset","__","__extends","compress_","opt_offset","t","update","opt_length","lengthMinusBlock","inbuf","digest","totalBits","createSubscribe","executor","onNoObservers","proxy","ObserverProxy","subscribe","bind","observers","unsubscribes","observerCount","task","finalized","catch","forEachObserver","observer","complete","nextOrObserver","methods_1","implementsAnyMethods","unsub","unsubscribeOne","finalError","sendOne","contains","DEFAULT_ENTRY_NAME","tokenListeners","FirebaseAppImpl","config","firebase_","isDeleted_","services_","name_","_automaticDataCollectionEnabled","automaticDataCollectionEnabled","options_","INTERNAL","getUid","getToken","addAuthTokenListener","removeAuthTokenListener","filter","listener","checkDestroyed_","delete","removeApp","services","serviceKey","instanceKey","_getService","instanceIdentifier","instanceSpecifier","factories","extendApp","props","appErrors","log","no-app","bad-app-name","duplicate-app","app-deleted","duplicate-service","sa-not-supported","invalid-app-argument","isNode","process","createFirebaseNamespace","apps_","appHooks","namespace","__esModule","initializeApp","rawConfig","name_1","app","callAppHooks","apps","SDK_VERSION","registerService","createService","serviceProperties","appHook","allowMultipleInstances","getApps","serviceNamespace","appArg","extendNamespace","useAsService","eventName","factoryName","useService"],"mappings":"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"}