!(function (t) { function e(r) { if (n[r]) return n[r].exports; var i = (n[r] = { exports: {}, id: r, loaded: !1 }); return t[r].call(i.exports, i, i.exports, e), (i.loaded = !0), i.exports; } var n = {}; return (e.m = t), (e.c = n), (e.p = ""), e(0); })([ function (t, e, n) { t.exports = n(11); }, function (t, e, n) { /*! @license Firebase v4.1.3 Build: rev-1234895 Terms: https://firebase.google.com/terms/ */ "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var r = n(17), i = (0, r.createFirebaseNamespace)(); (e.default = i), (t.exports = e.default); }, function (t, e, n) { "use strict"; function r(t) { return t && t.__esModule ? t : { default: t }; } Object.defineProperty(e, "__esModule", { value: !0 }); var i = n(8), o = r(i), a = o.default.ref("gkc/highscore"); (window.database = o.default), (window.scores = a), (e.default = a); }, function (t, e) { t.exports = function () { var t = []; return ( (t.toString = function () { for (var t = [], e = 0; e < this.length; e++) { var n = this[e]; n[2] ? t.push("@media " + n[2] + "{" + n[1] + "}") : t.push(n[1]); } return t.join(""); }), (t.i = function (e, n) { "string" == typeof e && (e = [[null, e, ""]]); for (var r = {}, i = 0; i < this.length; i++) { var o = this[i][0]; "number" == typeof o && (r[o] = !0); } for (i = 0; i < e.length; i++) { var a = e[i]; ("number" == typeof a[0] && r[a[0]]) || (n && !a[2] ? (a[2] = n) : n && (a[2] = "(" + a[2] + ") and (" + n + ")"), t.push(a)); } }), t ); }; }, function (t, e, n) { (function (t) { /*! @license Firebase v4.1.3 Build: rev-1234895 Terms: https://firebase.google.com/terms/ */ "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var r = void 0; if ("undefined" != typeof t) r = t; else if ("undefined" != typeof self) r = self; else try { r = Function("return this")(); } catch (t) { throw new Error( "polyfill failed because global object is unavailable in this environment" ); } var i = r.Promise || n(21); e.local = { Promise: i, GoogPromise: i }; }.call( e, (function () { return this; })() )); }, function (t, e, n) { function r(t, e) { for (var n = 0; n < t.length; n++) { var r = t[n], i = d[r.id]; if (i) { i.refs++; for (var o = 0; o < i.parts.length; o++) i.parts[o](r.parts[o]); for (; o < r.parts.length; o++) i.parts.push(l(r.parts[o], e)); } else { for (var a = [], o = 0; o < r.parts.length; o++) a.push(l(r.parts[o], e)); d[r.id] = { id: r.id, refs: 1, parts: a }; } } } function i(t) { for (var e = [], n = {}, r = 0; r < t.length; r++) { var i = t[r], o = i[0], a = i[1], s = i[2], c = i[3], l = { css: a, media: s, sourceMap: c }; n[o] ? n[o].parts.push(l) : e.push((n[o] = { id: o, parts: [l] })); } return e; } function o(t, e) { var n = b(), r = y[y.length - 1]; if ("top" === t.insertAt) r ? r.nextSibling ? n.insertBefore(e, r.nextSibling) : n.appendChild(e) : n.insertBefore(e, n.firstChild), y.push(e); else { if ("bottom" !== t.insertAt) throw new Error( "Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'." ); n.appendChild(e); } } function a(t) { t.parentNode.removeChild(t); var e = y.indexOf(t); e >= 0 && y.splice(e, 1); } function s(t) { var e = document.createElement("style"); return (e.type = "text/css"), o(t, e), e; } function c(t) { var e = document.createElement("link"); return (e.rel = "stylesheet"), o(t, e), e; } function l(t, e) { var n, r, i; if (e.singleton) { var o = m++; (n = v || (v = s(e))), (r = u.bind(null, n, o, !1)), (i = u.bind(null, n, o, !0)); } else t.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? ((n = c(e)), (r = h.bind(null, n)), (i = function () { a(n), n.href && URL.revokeObjectURL(n.href); })) : ((n = s(e)), (r = f.bind(null, n)), (i = function () { a(n); })); return ( r(t), function (e) { if (e) { if ( e.css === t.css && e.media === t.media && e.sourceMap === t.sourceMap ) return; r((t = e)); } else i(); } ); } function u(t, e, n, r) { var i = n ? "" : r.css; if (t.styleSheet) t.styleSheet.cssText = w(e, i); else { var o = document.createTextNode(i), a = t.childNodes; a[e] && t.removeChild(a[e]), a.length ? t.insertBefore(o, a[e]) : t.appendChild(o); } } function f(t, e) { var n = e.css, r = e.media; if ((r && t.setAttribute("media", r), t.styleSheet)) t.styleSheet.cssText = n; else { for (; t.firstChild; ) t.removeChild(t.firstChild); t.appendChild(document.createTextNode(n)); } } function h(t, e) { var n = e.css, r = e.sourceMap; r && (n += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(r)))) + " */"); var i = new Blob([n], { type: "text/css" }), o = t.href; (t.href = URL.createObjectURL(i)), o && URL.revokeObjectURL(o); } var d = {}, p = function (t) { var e; return function () { return "undefined" == typeof e && (e = t.apply(this, arguments)), e; }; }, g = p(function () { return /msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase()); }), b = p(function () { return document.head || document.getElementsByTagName("head")[0]; }), v = null, m = 0, y = []; t.exports = function (t, e) { (e = e || {}), "undefined" == typeof e.singleton && (e.singleton = g()), "undefined" == typeof e.insertAt && (e.insertAt = "bottom"); var n = i(t); return ( r(n, e), function (t) { for (var o = [], a = 0; a < n.length; a++) { var s = n[a], c = d[s.id]; c.refs--, o.push(c); } if (t) { var l = i(t); r(l, e); } for (var a = 0; a < o.length; a++) { var c = o[a]; if (0 === c.refs) { for (var u = 0; u < c.parts.length; u++) c.parts[u](); delete d[c.id]; } } } ); }; var w = (function () { var t = []; return function (e, n) { return (t[e] = n), t.filter(Boolean).join("\n"); }; })(); }, function (t, e, n) { /*! * sweetalert2 v6.6.6 * Released under the MIT License. */ !(function (e, n) { t.exports = n(); })(this, function () { "use strict"; var t = { title: "", titleText: "", text: "", html: "", type: null, customClass: "", target: "body", animation: !0, allowOutsideClick: !0, allowEscapeKey: !0, allowEnterKey: !0, showConfirmButton: !0, showCancelButton: !1, preConfirm: null, confirmButtonText: "OK", confirmButtonColor: "#3085d6", confirmButtonClass: null, cancelButtonText: "Cancel", cancelButtonColor: "#aaa", cancelButtonClass: null, buttonsStyling: !0, reverseButtons: !1, focusCancel: !1, showCloseButton: !1, showLoaderOnConfirm: !1, imageUrl: null, imageWidth: null, imageHeight: null, imageClass: null, timer: null, width: 500, padding: 20, background: "#fff", input: null, inputPlaceholder: "", inputValue: "", inputOptions: {}, inputAutoTrim: !0, inputClass: null, inputAttributes: {}, inputValidator: null, progressSteps: [], currentProgressStep: null, progressStepsDistance: "40px", onOpen: null, onClose: null, useRejections: !0, }, e = "swal2-", n = function (t) { var n = {}; for (var r in t) n[t[r]] = e + t[r]; return n; }, r = n([ "container", "shown", "iosfix", "modal", "overlay", "fade", "show", "hide", "noanimation", "close", "title", "content", "buttonswrapper", "confirm", "cancel", "icon", "image", "input", "file", "range", "select", "radio", "checkbox", "textarea", "inputerror", "validationerror", "progresssteps", "activeprogressstep", "progresscircle", "progressline", "loading", "styled", ]), i = n(["success", "warning", "info", "question", "error"]), o = function (t, e) { (t = String(t).replace(/[^0-9a-f]/gi, "")), t.length < 6 && (t = t[0] + t[0] + t[1] + t[1] + t[2] + t[2]), (e = e || 0); for (var n = "#", r = 0; r < 3; r++) { var i = parseInt(t.substr(2 * r, 2), 16); (i = Math.round(Math.min(Math.max(0, i + i * e), 255)).toString( 16 )), (n += ("00" + i).substr(i.length)); } return n; }, a = function (t) { var e = []; for (var n in t) e.indexOf(t[n]) === -1 && e.push(t[n]); return e; }, s = { previousWindowKeyDown: null, previousActiveElement: null, previousBodyPadding: null, }, c = function (t) { if ("undefined" == typeof document) return void console.error( "SweetAlert2 requires document to initialize" ); var e = document.createElement("div"); (e.className = r.container), (e.innerHTML = l); var n = document.querySelector(t.target); n || (console.warn( "SweetAlert2: Can't find the target \"" + t.target + '"' ), (n = document.body)), n.appendChild(e); var i = f(), o = C(i, r.input), a = C(i, r.file), s = i.querySelector("." + r.range + " input"), c = i.querySelector("." + r.range + " output"), u = C(i, r.select), h = i.querySelector("." + r.checkbox + " input"), d = C(i, r.textarea); return ( (o.oninput = function () { G.resetValidationError(); }), (o.onkeydown = function (e) { setTimeout(function () { 13 === e.keyCode && t.allowEnterKey && (e.stopPropagation(), G.clickConfirm()); }, 0); }), (a.onchange = function () { G.resetValidationError(); }), (s.oninput = function () { G.resetValidationError(), (c.value = s.value); }), (s.onchange = function () { G.resetValidationError(), (s.previousSibling.value = s.value); }), (u.onchange = function () { G.resetValidationError(); }), (h.onchange = function () { G.resetValidationError(); }), (d.oninput = function () { G.resetValidationError(); }), i ); }, l = ( '\n \n' ).replace(/(^|\n)\s*/g, ""), u = function () { return document.body.querySelector("." + r.container); }, f = function () { return u() ? u().querySelector("." + r.modal) : null; }, h = function () { var t = f(); return t.querySelectorAll("." + r.icon); }, d = function (t) { return u() ? u().querySelector("." + t) : null; }, p = function () { return d(r.title); }, g = function () { return d(r.content); }, b = function () { return d(r.image); }, v = function () { return d(r.buttonswrapper); }, m = function () { return d(r.progresssteps); }, y = function () { return d(r.validationerror); }, w = function () { return d(r.confirm); }, x = function () { return d(r.cancel); }, k = function () { return d(r.close); }, S = function (t) { var e = [w(), x()]; t && e.reverse(); var n = e.concat( Array.prototype.slice.call( f().querySelectorAll( 'button, input:not([type=hidden]), textarea, select, a, *[tabindex]:not([tabindex="-1"])' ) ) ); return a(n); }, E = function (t, e) { return !!t.classList && t.classList.contains(e); }, A = function (t) { if ((t.focus(), "file" !== t.type)) { var e = t.value; (t.value = ""), (t.value = e); } }, T = function (t, e) { if (t && e) { var n = e.split(/\s+/).filter(Boolean); n.forEach(function (e) { t.classList.add(e); }); } }, M = function (t, e) { if (t && e) { var n = e.split(/\s+/).filter(Boolean); n.forEach(function (e) { t.classList.remove(e); }); } }, C = function (t, e) { for (var n = 0; n < t.childNodes.length; n++) if (E(t.childNodes[n], e)) return t.childNodes[n]; }, L = function (t, e) { e || (e = "block"), (t.style.opacity = ""), (t.style.display = e); }, P = function (t) { (t.style.opacity = ""), (t.style.display = "none"); }, j = function (t) { for (; t.firstChild; ) t.removeChild(t.firstChild); }, I = function (t) { return t.offsetWidth || t.offsetHeight || t.getClientRects().length; }, O = function (t, e) { t.style.removeProperty ? t.style.removeProperty(e) : t.style.removeAttribute(e); }, D = function (t) { if (!I(t)) return !1; if ("function" == typeof MouseEvent) { var e = new MouseEvent("click", { view: window, bubbles: !1, cancelable: !0, }); t.dispatchEvent(e); } else if (document.createEvent) { var n = document.createEvent("MouseEvents"); n.initEvent("click", !1, !1), t.dispatchEvent(n); } else document.createEventObject ? t.fireEvent("onclick") : "function" == typeof t.onclick && t.onclick(); }, N = (function () { var t = document.createElement("div"), e = { WebkitAnimation: "webkitAnimationEnd", OAnimation: "oAnimationEnd oanimationend", msAnimation: "MSAnimationEnd", animation: "animationend", }; for (var n in e) if (e.hasOwnProperty(n) && void 0 !== t.style[n]) return e[n]; return !1; })(), F = function () { if ( ((window.onkeydown = s.previousWindowKeyDown), s.previousActiveElement && s.previousActiveElement.focus) ) { var t = window.scrollX, e = window.scrollY; s.previousActiveElement.focus(), t && e && window.scrollTo(t, e); } }, R = function () { var t = "ontouchstart" in window || navigator.msMaxTouchPoints; if (t) return 0; var e = document.createElement("div"); (e.style.width = "50px"), (e.style.height = "50px"), (e.style.overflow = "scroll"), document.body.appendChild(e); var n = e.offsetWidth - e.clientWidth; return document.body.removeChild(e), n; }, B = function (t, e) { var n = void 0; return function () { var r = function () { (n = null), t(); }; clearTimeout(n), (n = setTimeout(r, e)); }; }, _ = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, q = Object.assign || function (t) { for (var e = 1; e < arguments.length; e++) { var n = arguments[e]; for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (t[r] = n[r]); } return t; }, U = q({}, t), Q = [], W = void 0, V = function (e) { var n = f() || c(e); for (var o in e) t.hasOwnProperty(o) || "extraParams" === o || console.warn('SweetAlert2: Unknown parameter "' + o + '"'); (n.style.width = "number" == typeof e.width ? e.width + "px" : e.width), (n.style.padding = e.padding + "px"), (n.style.background = e.background); for ( var a = n.querySelectorAll( "[class^=swal2-success-circular-line], .swal2-success-fix" ), s = 0; s < a.length; s++ ) a[s].style.background = e.background; var l = p(), u = g(), d = v(), y = w(), S = x(), E = k(); if ( (e.titleText ? (l.innerText = e.titleText) : (l.innerHTML = e.title.split("\n").join("
")), e.text || e.html) ) { if ("object" === _(e.html)) if (((u.innerHTML = ""), 0 in e.html)) for (var A = 0; A in e.html; A++) u.appendChild(e.html[A].cloneNode(!0)); else u.appendChild(e.html.cloneNode(!0)); else e.html ? (u.innerHTML = e.html) : e.text && (u.textContent = e.text); L(u); } else P(u); e.showCloseButton ? L(E) : P(E), (n.className = r.modal), e.customClass && T(n, e.customClass); var C = m(), I = parseInt( null === e.currentProgressStep ? G.getQueueStep() : e.currentProgressStep, 10 ); e.progressSteps.length ? (L(C), j(C), I >= e.progressSteps.length && console.warn( "SweetAlert2: Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)" ), e.progressSteps.forEach(function (t, n) { var i = document.createElement("li"); if ( (T(i, r.progresscircle), (i.innerHTML = t), n === I && T(i, r.activeprogressstep), C.appendChild(i), n !== e.progressSteps.length - 1) ) { var o = document.createElement("li"); T(o, r.progressline), (o.style.width = e.progressStepsDistance), C.appendChild(o); } })) : P(C); for (var D = h(), N = 0; N < D.length; N++) P(D[N]); if (e.type) { var F = !1; for (var R in i) if (e.type === R) { F = !0; break; } if (!F) return ( console.error("SweetAlert2: Unknown alert type: " + e.type), !1 ); var B = n.querySelector("." + r.icon + "." + i[e.type]); if ((L(B), e.animation)) switch (e.type) { case "success": T(B, "swal2-animate-success-icon"), T( B.querySelector(".swal2-success-line-tip"), "swal2-animate-success-line-tip" ), T( B.querySelector(".swal2-success-line-long"), "swal2-animate-success-line-long" ); break; case "error": T(B, "swal2-animate-error-icon"), T(B.querySelector(".swal2-x-mark"), "swal2-animate-x-mark"); } } var q = b(); e.imageUrl ? (q.setAttribute("src", e.imageUrl), L(q), e.imageWidth ? q.setAttribute("width", e.imageWidth) : q.removeAttribute("width"), e.imageHeight ? q.setAttribute("height", e.imageHeight) : q.removeAttribute("height"), (q.className = r.image), e.imageClass && T(q, e.imageClass)) : P(q), e.showCancelButton ? (S.style.display = "inline-block") : P(S), e.showConfirmButton ? O(y, "display") : P(y), e.showConfirmButton || e.showCancelButton ? L(d) : P(d), (y.innerHTML = e.confirmButtonText), (S.innerHTML = e.cancelButtonText), e.buttonsStyling && ((y.style.backgroundColor = e.confirmButtonColor), (S.style.backgroundColor = e.cancelButtonColor)), (y.className = r.confirm), T(y, e.confirmButtonClass), (S.className = r.cancel), T(S, e.cancelButtonClass), e.buttonsStyling ? (T(y, r.styled), T(S, r.styled)) : (M(y, r.styled), M(S, r.styled), (y.style.backgroundColor = y.style.borderLeftColor = y.style.borderRightColor = ""), (S.style.backgroundColor = S.style.borderLeftColor = S.style.borderRightColor = "")), e.animation === !0 ? M(n, r.noanimation) : T(n, r.noanimation); }, K = function (t, e) { var n = u(), i = f(); t ? (T(i, r.show), T(n, r.fade), M(i, r.hide)) : M(i, r.fade), L(i), (n.style.overflowY = "hidden"), N && !E(i, r.noanimation) ? i.addEventListener(N, function t() { i.removeEventListener(N, t), (n.style.overflowY = "auto"); }) : (n.style.overflowY = "auto"), T(document.documentElement, r.shown), T(document.body, r.shown), T(n, r.shown), H(), X(), (s.previousActiveElement = document.activeElement), null !== e && "function" == typeof e && setTimeout(function () { e(i); }); }, H = function () { null === s.previousBodyPadding && document.body.scrollHeight > window.innerHeight && ((s.previousBodyPadding = document.body.style.paddingRight), (document.body.style.paddingRight = R() + "px")); }, z = function () { null !== s.previousBodyPadding && ((document.body.style.paddingRight = s.previousBodyPadding), (s.previousBodyPadding = null)); }, X = function () { var t = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; if (t && !E(document.body, r.iosfix)) { var e = document.body.scrollTop; (document.body.style.top = e * -1 + "px"), T(document.body, r.iosfix); } }, Y = function () { if (E(document.body, r.iosfix)) { var t = parseInt(document.body.style.top, 10); M(document.body, r.iosfix), (document.body.style.top = ""), (document.body.scrollTop = t * -1); } }, G = function t() { for (var e = arguments.length, n = Array(e), i = 0; i < e; i++) n[i] = arguments[i]; if (void 0 === n[0]) return ( console.error("SweetAlert2 expects at least 1 attribute!"), !1 ); var a = q({}, U); switch (_(n[0])) { case "string": (a.title = n[0]), (a.html = n[1]), (a.type = n[2]); break; case "object": q(a, n[0]), (a.extraParams = n[0].extraParams), "email" === a.input && null === a.inputValidator && (a.inputValidator = function (t) { return new Promise(function (e, n) { var r = /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/; r.test(t) ? e() : n("Invalid email address"); }); }), "url" === a.input && null === a.inputValidator && (a.inputValidator = function (t) { return new Promise(function (e, n) { var r = /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)$/; r.test(t) ? e() : n("Invalid URL"); }); }); break; default: return ( console.error( 'SweetAlert2: Unexpected type of argument! Expected "string" or "object", got ' + _(n[0]) ), !1 ); } V(a); var c = u(), l = f(); return new Promise(function (e, n) { a.timer && (l.timeout = setTimeout(function () { t.closeModal(a.onClose), a.useRejections ? n("timer") : e({ dismiss: "timer" }); }, a.timer)); var i = function (t) { if (((t = t || a.input), !t)) return null; switch (t) { case "select": case "textarea": case "file": return C(l, r[t]); case "checkbox": return l.querySelector("." + r.checkbox + " input"); case "radio": return ( l.querySelector("." + r.radio + " input:checked") || l.querySelector("." + r.radio + " input:first-child") ); case "range": return l.querySelector("." + r.range + " input"); default: return C(l, r.input); } }, h = function () { var t = i(); if (!t) return null; switch (a.input) { case "checkbox": return t.checked ? 1 : 0; case "radio": return t.checked ? t.value : null; case "file": return t.files.length ? t.files[0] : null; default: return a.inputAutoTrim ? t.value.trim() : t.value; } }; a.input && setTimeout(function () { var t = i(); t && A(t); }, 0); for ( var d = function (n) { a.showLoaderOnConfirm && t.showLoading(), a.preConfirm ? a.preConfirm(n, a.extraParams).then( function (r) { t.closeModal(a.onClose), e(r || n); }, function (e) { t.hideLoading(), e && t.showValidationError(e); } ) : (t.closeModal(a.onClose), e(a.useRejections ? n : { value: n })); }, E = function (r) { var i = r || window.event, s = i.target || i.srcElement, c = w(), l = x(), u = c && (c === s || c.contains(s)), f = l && (l === s || l.contains(s)); switch (i.type) { case "mouseover": case "mouseup": a.buttonsStyling && (u ? (c.style.backgroundColor = o( a.confirmButtonColor, -0.1 )) : f && (l.style.backgroundColor = o( a.cancelButtonColor, -0.1 ))); break; case "mouseout": a.buttonsStyling && (u ? (c.style.backgroundColor = a.confirmButtonColor) : f && (l.style.backgroundColor = a.cancelButtonColor)); break; case "mousedown": a.buttonsStyling && (u ? (c.style.backgroundColor = o( a.confirmButtonColor, -0.2 )) : f && (l.style.backgroundColor = o( a.cancelButtonColor, -0.2 ))); break; case "click": if (u && t.isVisible()) if ((t.disableButtons(), a.input)) { var p = h(); a.inputValidator ? (t.disableInput(), a.inputValidator(p, a.extraParams).then( function () { t.enableButtons(), t.enableInput(), d(p); }, function (e) { t.enableButtons(), t.enableInput(), e && t.showValidationError(e); } )) : d(p); } else d(!0); else f && t.isVisible() && (t.disableButtons(), t.closeModal(a.onClose), a.useRejections ? n("cancel") : e({ dismiss: "cancel" })); } }, j = l.querySelectorAll("button"), O = 0; O < j.length; O++ ) (j[O].onclick = E), (j[O].onmouseover = E), (j[O].onmouseout = E), (j[O].onmousedown = E); (k().onclick = function () { t.closeModal(a.onClose), a.useRejections ? n("close") : e({ dismiss: "close" }); }), (c.onclick = function (r) { r.target === c && a.allowOutsideClick && (t.closeModal(a.onClose), a.useRejections ? n("overlay") : e({ dismiss: "overlay" })); }); var N = v(), F = w(), R = x(); a.reverseButtons ? F.parentNode.insertBefore(R, F) : F.parentNode.insertBefore(F, R); var q = function (t, e) { for (var n = S(a.focusCancel), r = 0; r < n.length; r++) { (t += e), t === n.length ? (t = 0) : t === -1 && (t = n.length - 1); var i = n[t]; if (I(i)) return i.focus(); } }, U = function (r) { var i = r || window.event, o = i.keyCode || i.which; if ([9, 13, 32, 27, 37, 38, 39, 40].indexOf(o) !== -1) { for ( var s = i.target || i.srcElement, c = S(a.focusCancel), l = -1, u = 0; u < c.length; u++ ) if (s === c[u]) { l = u; break; } 9 === o ? (i.shiftKey ? q(l, -1) : q(l, 1), i.stopPropagation(), i.preventDefault()) : 37 === o || 38 === o || 39 === o || 40 === o ? document.activeElement === F && I(R) ? R.focus() : document.activeElement === R && I(F) && F.focus() : 13 === o || 32 === o ? l === -1 && a.allowEnterKey && (a.focusCancel ? D(R, i) : D(F, i), i.stopPropagation(), i.preventDefault()) : 27 === o && a.allowEscapeKey === !0 && (t.closeModal(a.onClose), a.useRejections ? n("esc") : e({ dismiss: "esc" })); } }; (window.onkeydown && window.onkeydown.toString() === U.toString()) || ((s.previousWindowKeyDown = window.onkeydown), (window.onkeydown = U)), a.buttonsStyling && ((F.style.borderLeftColor = a.confirmButtonColor), (F.style.borderRightColor = a.confirmButtonColor)), (t.hideLoading = t.disableLoading = function () { a.showConfirmButton || (P(F), a.showCancelButton || P(v())), M(N, r.loading), M(l, r.loading), (F.disabled = !1), (R.disabled = !1); }), (t.getTitle = function () { return p(); }), (t.getContent = function () { return g(); }), (t.getInput = function () { return i(); }), (t.getImage = function () { return b(); }), (t.getButtonsWrapper = function () { return v(); }), (t.getConfirmButton = function () { return w(); }), (t.getCancelButton = function () { return x(); }), (t.enableButtons = function () { (F.disabled = !1), (R.disabled = !1); }), (t.disableButtons = function () { (F.disabled = !0), (R.disabled = !0); }), (t.enableConfirmButton = function () { F.disabled = !1; }), (t.disableConfirmButton = function () { F.disabled = !0; }), (t.enableInput = function () { var t = i(); if (!t) return !1; if ("radio" === t.type) for ( var e = t.parentNode.parentNode, n = e.querySelectorAll("input"), r = 0; r < n.length; r++ ) n[r].disabled = !1; else t.disabled = !1; }), (t.disableInput = function () { var t = i(); if (!t) return !1; if (t && "radio" === t.type) for ( var e = t.parentNode.parentNode, n = e.querySelectorAll("input"), r = 0; r < n.length; r++ ) n[r].disabled = !0; else t.disabled = !0; }), (t.recalculateHeight = B(function () { var t = f(); if (t) { var e = t.style.display; (t.style.minHeight = ""), L(t), (t.style.minHeight = t.scrollHeight + 1 + "px"), (t.style.display = e); } }, 50)), (t.showValidationError = function (t) { var e = y(); (e.innerHTML = t), L(e); var n = i(); n && (A(n), T(n, r.inputerror)); }), (t.resetValidationError = function () { var e = y(); P(e), t.recalculateHeight(); var n = i(); n && M(n, r.inputerror); }), (t.getProgressSteps = function () { return a.progressSteps; }), (t.setProgressSteps = function (t) { (a.progressSteps = t), V(a); }), (t.showProgressSteps = function () { L(m()); }), (t.hideProgressSteps = function () { P(m()); }), t.enableButtons(), t.hideLoading(), t.resetValidationError(); for ( var Q = [ "input", "file", "range", "select", "radio", "checkbox", "textarea", ], H = void 0, z = 0; z < Q.length; z++ ) { var X = r[Q[z]], Y = C(l, X); if ((H = i(Q[z]))) { for (var G in H.attributes) if (H.attributes.hasOwnProperty(G)) { var J = H.attributes[G].name; "type" !== J && "value" !== J && H.removeAttribute(J); } for (var $ in a.inputAttributes) H.setAttribute($, a.inputAttributes[$]); } (Y.className = X), a.inputClass && T(Y, a.inputClass), P(Y); } var Z = void 0; switch (a.input) { case "text": case "email": case "password": case "number": case "tel": case "url": (H = C(l, r.input)), (H.value = a.inputValue), (H.placeholder = a.inputPlaceholder), (H.type = a.input), L(H); break; case "file": (H = C(l, r.file)), (H.placeholder = a.inputPlaceholder), (H.type = a.input), L(H); break; case "range": var tt = C(l, r.range), et = tt.querySelector("input"), nt = tt.querySelector("output"); (et.value = a.inputValue), (et.type = a.input), (nt.value = a.inputValue), L(tt); break; case "select": var rt = C(l, r.select); if (((rt.innerHTML = ""), a.inputPlaceholder)) { var it = document.createElement("option"); (it.innerHTML = a.inputPlaceholder), (it.value = ""), (it.disabled = !0), (it.selected = !0), rt.appendChild(it); } Z = function (t) { for (var e in t) { var n = document.createElement("option"); (n.value = e), (n.innerHTML = t[e]), a.inputValue === e && (n.selected = !0), rt.appendChild(n); } L(rt), rt.focus(); }; break; case "radio": var ot = C(l, r.radio); (ot.innerHTML = ""), (Z = function (t) { for (var e in t) { var n = document.createElement("input"), i = document.createElement("label"), o = document.createElement("span"); (n.type = "radio"), (n.name = r.radio), (n.value = e), a.inputValue === e && (n.checked = !0), (o.innerHTML = t[e]), i.appendChild(n), i.appendChild(o), (i.for = n.id), ot.appendChild(i); } L(ot); var s = ot.querySelectorAll("input"); s.length && s[0].focus(); }); break; case "checkbox": var at = C(l, r.checkbox), st = i("checkbox"); (st.type = "checkbox"), (st.value = 1), (st.id = r.checkbox), (st.checked = Boolean(a.inputValue)); var ct = at.getElementsByTagName("span"); ct.length && at.removeChild(ct[0]), (ct = document.createElement("span")), (ct.innerHTML = a.inputPlaceholder), at.appendChild(ct), L(at); break; case "textarea": var lt = C(l, r.textarea); (lt.value = a.inputValue), (lt.placeholder = a.inputPlaceholder), L(lt); break; case null: break; default: console.error( 'SweetAlert2: Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "' + a.input + '"' ); } ("select" !== a.input && "radio" !== a.input) || (a.inputOptions instanceof Promise ? (t.showLoading(), a.inputOptions.then(function (e) { t.hideLoading(), Z(e); })) : "object" === _(a.inputOptions) ? Z(a.inputOptions) : console.error( "SweetAlert2: Unexpected type of inputOptions! Expected object or Promise, got " + _(a.inputOptions) )), K(a.animation, a.onOpen), a.allowEnterKey ? q(-1, 1) : document.activeElement && document.activeElement.blur(), (u().scrollTop = 0), "undefined" == typeof MutationObserver || W || ((W = new MutationObserver(t.recalculateHeight)), W.observe(l, { childList: !0, characterData: !0, subtree: !0, })); }); }; return ( (G.isVisible = function () { return !!f(); }), (G.queue = function (t) { Q = t; var e = function () { (Q = []), document.body.removeAttribute("data-swal2-queue-step"); }, n = []; return new Promise(function (t, r) { !(function i(o, a) { o < Q.length ? (document.body.setAttribute("data-swal2-queue-step", o), G(Q[o]).then( function (t) { n.push(t), i(o + 1, a); }, function (t) { e(), r(t); } )) : (e(), t(n)); })(0); }); }), (G.getQueueStep = function () { return document.body.getAttribute("data-swal2-queue-step"); }), (G.insertQueueStep = function (t, e) { return e && e < Q.length ? Q.splice(e, 0, t) : Q.push(t); }), (G.deleteQueueStep = function (t) { "undefined" != typeof Q[t] && Q.splice(t, 1); }), (G.close = G.closeModal = function (t) { var e = u(), n = f(); if (n) { M(n, r.show), T(n, r.hide), clearTimeout(n.timeout), F(); var i = function () { e.parentNode && e.parentNode.removeChild(e), M(document.documentElement, r.shown), M(document.body, r.shown), z(), Y(); }; N && !E(n, r.noanimation) ? n.addEventListener(N, function t() { n.removeEventListener(N, t), E(n, r.hide) && i(); }) : i(), null !== t && "function" == typeof t && setTimeout(function () { t(n); }); } }), (G.clickConfirm = function () { return w().click(); }), (G.clickCancel = function () { return x().click(); }), (G.showLoading = G.enableLoading = function () { var t = f(); t || G(""); var e = v(), n = w(), i = x(); L(e), L(n, "inline-block"), T(e, r.loading), T(t, r.loading), (n.disabled = !0), (i.disabled = !0); }), (G.setDefaults = function (e) { if (!e || "object" !== ("undefined" == typeof e ? "undefined" : _(e))) return console.error( "SweetAlert2: the argument for setDefaults() is required and has to be a object" ); for (var n in e) t.hasOwnProperty(n) || "extraParams" === n || (console.warn('SweetAlert2: Unknown parameter "' + n + '"'), delete e[n]); q(U, e); }), (G.resetDefaults = function () { U = q({}, t); }), (G.noop = function () {}), (G.version = "6.6.6"), (G.default = G), G ); }), window.Sweetalert2 && (window.sweetAlert = window.swal = window.Sweetalert2); }, function (t, e) { "use strict"; function n(t, e, n, r) { function o() { l ? (document.querySelector(e).classList.add("hidden"), (c.innerText = "Show " + r), (i = 0)) : (document.querySelector(e).classList.remove("hidden"), (c.innerText = "Hide " + r)), s(l); try { localStorage[n] = l; } catch (t) { console.warn(t); } } var a = arguments.length > 4 && void 0 !== arguments[4] && arguments[4], s = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : function () { return 0; }, c = document.getElementById(t), l = localStorage[n] ? "true" === localStorage[n] : a; return ( c.addEventListener("click", function (t) { (l = !l), o(); }), o(), function () { return l; } ); } Object.defineProperty(e, "__esModule", { value: !0 }); var r = database.ref("gkc/chat"); e.default = r; var i = 0, o = document.querySelector(".messages"), a = n("chat_toggle", ".chat", "chat_hidden", "Chat", !0, function (t) { o.scrollTop = o.scrollHeight; }); n("header_toggle", "#header", "header_hidden", "Header"); r.limitToLast(50).on("value", function (t) { (o.innerHTML = ""), i++, a() && (document.getElementById("chat_toggle").innerText = "Show Chat (" + i + ")"); var e = Date.now(), n = []; t.forEach(function (t) { n.push(t.val()); }), n.forEach(function (t, r) { try { var i = n[r - 1], a = document.createElement("div"); if (t.achievement) { a.classList.add("achievement", t.achievement); var s = t.score > 1e5 ? "diamond" : t.score > 25e3 ? "gold" : t.score > 5e3 ? "silver" : "bronze", c = { diamond: "💎", gold: "🥇", silver: "🥈", bronze: "🥉" }; "good_score" === t.achievement && a.classList.add(s), (a.innerText = "good_score" === t.achievement ? c[s] + " " + t.username + " scored " + (+t.score).toLocaleString() : "personal_record" === t.achievement ? t.username + " set a new personal record: " + (+t.score).toLocaleString() : "weekly_record" === t.achievement ? t.username + " scored #" + (t.place + 1) + " weekly: " + (+t.score).toLocaleString() : "unknown achievement, reload the page?"); } else (a.className = "message-item"), (a.innerHTML = '\n
\n
\n ' + (t.score ? '
' : "") + '\n
\n
\t\n
\n '), (a.querySelector(".message").innerText = t.message.toString().slice(0, 2e3)), (a.querySelector(".name").innerText = t.username), t.score && (a.querySelector(".score").innerText = (+t.score).toLocaleString()), (a.querySelector(".time").innerText = e - t.timestamp > 72e5 ? new Date(t.timestamp).toLocaleDateString() : new Date(t.timestamp).toLocaleTimeString()); if (i && t.timestamp - i.timestamp > 9e5) { var l = document.createElement("div"); (l.className = "message-spacer"), o.appendChild(l); } o.appendChild(a); } catch (t) { console.warn(t); } }), (o.scrollTop = o.scrollHeight); }); }, function (t, e, n) { "use strict"; function r(t) { return t && t.__esModule ? t : { default: t }; } Object.defineProperty(e, "__esModule", { value: !0 }); var i = n(1), o = r(i); n(19), o.default.initializeApp({ apiKey: "AIzaSyC575_7reOgsW_UQT3LRi2hZiX6LsQdu88", authDomain: "cleverstaginc.firebaseapp.com", databaseURL: "https://cleverstaginc.firebaseio.com", }); var a = o.default.database(); e.default = a; }, function (t, e) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), (e.default = (function () { function t(t, n) { (this.db = t), (this.roomName = n || "globe"), (this.room = this.db.ref( "gkc/online/" + encodeURIComponent(this.roomName) )), (this.myName = ""), (this.user = null), (this.join = function (t, n) { if (this.user) return console.error("Already joined."), !1; (this.myName = t || "Anonymous - " + e()), (this.user = n ? this.room.child(n) : this.room.push()); var r = this, i = this.db.ref(".info/connected"); return ( i.on("value", function (t) { t.val() && (r.user.onDisconnect().remove(), r.user.set(r.myName)); }), this.myName ); }), (this.leave = function () { this.user.remove(), (this.myName = ""); }), (this.over = function () { this.room.remove(); }), (this.onUpdated = function (t) { "function" == typeof t ? this.room.on("value", function (e) { t(e.numChildren(), e.val()); }) : console.error( "You have to pass a callback function to onUpdated(). That function will be called (with user count and hash of users as param) every time the user list changed." ); }); } var e = function () { return Math.random() .toString(36) .replace(/[^a-z]+/g, "") .substr(0, 5); }; return t; })()); }, function (t, e) { "use strict"; function n(t, e, n) { var r = i(t, 3), o = r[0], a = r[1], s = r[2], c = i(e, 3), l = c[0], u = c[1], f = c[2]; return [o + (l - o) * n, a + (u - a) * n, s + (f - s) * n]; } function r(t, e) { e = Math.min(Math.max(e, 0), 1); var r = o[t], i = 1 === e ? r.length - 1 : 0 === e ? 1 : r.findIndex(function (t) { return t.index > e; }), a = r[i - 1], s = r[i], c = n(a.rgb, s.rgb, (e - a.index) / (s.index - a.index)); return c.map(Math.round); } Object.defineProperty(e, "__esModule", { value: !0 }); var i = (function () { function t(t, e) { var n = [], r = !0, i = !1, o = void 0; try { for ( var a, s = t[Symbol.iterator](); !(r = (a = s.next()).done) && (n.push(a.value), !e || n.length !== e); r = !0 ); } catch (t) { (i = !0), (o = t); } finally { try { !r && s.return && s.return(); } finally { if (i) throw o; } } return n; } return function (e, n) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return t(e, n); throw new TypeError( "Invalid attempt to destructure non-iterable instance" ); }; })(); e.default = r; var o = { stars: [ { index: 0, rgb: [0, 0, 255] }, { index: 1, rgb: [255, 255, 255] }, ], space: [ { index: 0, rgb: [255, 255, 255] }, { index: 0.05, rgb: [50, 5, 50] }, { index: 1, rgb: [15, 5, 15] }, ], hotish: [ { index: 0, rgb: [230, 0, 0] }, { index: 0.3, rgb: [255, 210, 0] }, { index: 0.5, rgb: [200, 200, 200] }, { index: 1, rgb: [255, 255, 255] }, ], yiorrd: [ { index: 0, rgb: [128, 0, 38] }, { index: 0.125, rgb: [189, 0, 38] }, { index: 0.25, rgb: [227, 26, 28] }, { index: 0.375, rgb: [252, 78, 42] }, { index: 0.5, rgb: [253, 141, 60] }, { index: 0.625, rgb: [254, 178, 76] }, { index: 0.75, rgb: [254, 217, 118] }, { index: 0.875, rgb: [255, 237, 160] }, { index: 1, rgb: [255, 255, 204] }, ], magma: [ { index: 0, rgb: [28, 16, 68] }, { index: 0.25, rgb: [79, 18, 123] }, { index: 0.38, rgb: [129, 37, 129] }, { index: 0.5, rgb: [181, 54, 122] }, { index: 0.63, rgb: [229, 80, 100] }, { index: 0.75, rgb: [251, 135, 97] }, { index: 1, rgb: [254, 194, 135] }, ], magma2: [ { index: 0, rgb: [28, 16, 68] }, { index: 0.13, rgb: [172, 0, 187] }, { index: 0.25, rgb: [219, 0, 170] }, { index: 0.38, rgb: [255, 0, 130] }, { index: 0.5, rgb: [255, 63, 74] }, { index: 0.63, rgb: [255, 123, 0] }, { index: 0.75, rgb: [234, 176, 0] }, { index: 0.88, rgb: [190, 228, 0] }, { index: 1, rgb: [147, 255, 0] }, ], progress: [ { index: 0, rgb: [255, 255, 170] }, { index: 0.072, rgb: [255, 170, 86] }, { index: 0.142, rgb: [255, 0, 0] }, { index: 0.249, rgb: [191, 0, 191] }, { index: 0.35, rgb: [127, 127, 127] }, { index: 0.47, rgb: [0, 191, 0] }, { index: 0.63, rgb: [0, 127, 255] }, { index: 0.805, rgb: [127, 0, 0] }, { index: 1, rgb: [0, 0, 0] }, ], }; }, function (t, e, n) { "use strict"; function r(t) { return t && t.__esModule ? t : { default: t }; } function i(t) { if (Array.isArray(t)) { for (var e = 0, n = Array(t.length); e < t.length; e++) n[e] = t[e]; return n; } return Array.from(t); } function o() { (nt = "aiming"), (ut = 5), (ft = Array.from(new Array(ut - 1), function () { return "ball"; })), (ht = Array.from(ft)), (st = []), (ct = []), (lt = []), (et = 0), (Z.innerHTML = et), (yt = []), (wt = new Set()), (ot = void 0); for (var t = 0; t < 4; t++) a(); } function a() { yt.forEach(function (t) { t[0]++; }), wt.forEach(function (t) { t[0]++; }); for (var t = 0.5, e = 0.2, n = 0; n < bt; n++) Math.random() <= t ? yt.push([0, n, ut]) : Math.random() <= e && (5 == ut ? wt.add([0, n, "laser"]) : ut > 5 && ut < 15 && Math.random() > 0.5 ? wt.add([0, n, "laser"]) : ut > 15 && Math.random() > 0.95 ? wt.add([0, n, "laser"]) : wt.add([0, n, "ball"])); } function s(t) { xt++; var e = (t - Dt) / 1e3; (Dt = t), requestAnimationFrame(s); var n = document.getElementById("canvas-wrap").getBoundingClientRect(), r = n.width, i = n.height; if ( ((canvas.width = 2 * r), (canvas.height = 2 * i), (dt = Math.max(Math.min(2e3, canvas.width), 1500)), M(e), C(e), k(t, e), "playing" === nt) ) if (ht.length) { if (xt % 3 == 0) { var o = ht.shift(); if ("ball" === o) { var c = Et(), l = pt, u = ot || canvas.width / 2, f = F() - l; st.push({ x: u, y: f, vx: Math.cos(c) * dt, vy: -1 * Math.sin(c) * dt, r: l, type: o, last: !ht.filter(function (t) { return "ball" === t; }).length, }); } else if ("laser" === o) { var h = Et((Math.sin((ht.length / 8) * Math.PI) * Math.PI) / 100), d = pt, p = ot || canvas.width / 2, g = F() - d, b = [p, g], v = Math.cos(h) * (canvas.width + canvas.height), m = -Math.sin(h) * (canvas.width + canvas.height), y = [p + v, g + m]; yt.forEach(function (t) { var e = R(t, 3), n = e[0], r = e[1], i = e[2]; if (!(i <= 0)) { var o = N(n, r), a = O(o, b, [1 / v, 1 / m], canvas.width + canvas.height); if (a) { var s = o.x, c = o.y, l = o.w, u = o.h, f = [ [ [s, c], [s + l, c], ], [ [s + l, c], [s + l, c + u], ], [ [s + l, c + u], [s, c + u], ], [ [s, c + u], [s, c], ], ]; f.forEach(function (e) { var n = Pt(b, [v, m], e[0], Tt(e[1], e[0])); n && !Ot(n, b) && At(n, b, y) && At(n, e[0], e[1]) && (j({ vx: v, vy: m, vr: 100, f: 0.1, x: n[0], y: n[1], r: 1, lifetime: Math.random(), color: "rgba(" + (0, V.default)("progress", i / 125) + ",1)", }), t[2]--, L()); }); } } }), j({ x: p, y: g, toX: y[0], toY: y[1], r: 1, vr: 150, fade: !0, color: "#aaf", lifetime: 0.2, }), j({ x: p, y: g, toX: y[0], toY: y[1], r: 2, fade: !0, color: mt, lifetime: 0.2, }); } } } else st.every(function (t) { return t.gathered; }) && ((st = []), ut++, (ot = at), (ht = Array.from(ft)), (nt = "levelup"), (rt = t), a()); } function c(t) { 32 == t.keyCode && u(); } function l(t) { if ("aiming" == nt) { var e = canvas.getBoundingClientRect(), n = t.touches[0].pageX, r = t.touches[0].pageY; it = { x: 2 * (n - e.left), y: 2 * (r - e.top) }; } } function u() { "aiming" === nt && ((st = []), (nt = "playing"), (end_button.style.opacity = 1)); } function f() { $.save(), ($.strokeStyle = vt), ($.lineWidth = 10), ($.globalAlpha = 0.3), lt.forEach(function (t) { var e, n, r = R(t, 2), o = r[0], a = r[1]; $.beginPath(), (e = $).moveTo.apply(e, i(o)), (n = $).lineTo.apply(n, i(a)), $.stroke(); }), $.restore(); } function h() { st.forEach(function (t) { var e = t.x, n = t.y, r = (t.vx, t.vy, t.r), i = t.type; t.last; $.beginPath(), "ball" === i ? (($.fillStyle = vt), $.arc(e, n, r, 0, 2 * Math.PI)) : "laser" === i && (($.fillStyle = mt), $.fillRect(e - r / 2, n - r, r, 2 * r)), $.fill(); }); } function d() { ($.textBaseline = "bottom"), ($.font = "20px Avenir"); var t = ht.filter(function (t) { return "ball" === t; }).length, e = ht.filter(function (t) { return "laser" === t; }).length, n = st .filter(function (t) { return t.gathered; }) .map(function (t) { return t.type; }) .filter(function (t) { return "ball" === t; }).length, r = ft.filter(function (t) { return "laser" === t; }).length - st .filter(function (t) { return !t.gathered; }) .filter(function (t) { return "laser" === t.type; }).length, i = function (t, e, n) { ($.textAlign = "right"), ($.fillStyle = vt), t && $.fillText(t, n - pt, canvas.height), ($.textAlign = "left"), ($.fillStyle = mt), e && $.fillText(e, n + pt, canvas.height); }; ot !== at && i(n, r, at || canvas.width / 2), i(t, e, ot || canvas.width / 2); } function p() { var t = ot || canvas.width / 2, e = F() - pt, n = Math.sqrt( canvas.height * canvas.height + canvas.width * canvas.width ), r = Et(); $.save(), ($.strokeStyle = "#aaa"), $.beginPath(), $.setLineDash([5, 15]), ($.lineWidth = 5), $.moveTo(t, e), $.lineTo(t + n * Math.cos(r), e - n * Math.sin(r)), $.stroke(), $.restore(), $.beginPath(), ($.fillStyle = vt), $.arc(t, e, pt, 0, 2 * Math.PI), $.fill(); } function g(t, e) { var n = R(t, 3), r = n[0], i = n[1], o = n[2]; if (!(o <= 0)) { var a = N(r, i), s = a.w, c = a.h, l = a.x, u = a.y, f = a.cx, h = a.cy, d = e ? 10 * (Math.random() - 0.5) : 0, p = e ? 10 * (Math.random() - 0.5) : 0; if ( (($.fillStyle = "rgba(" + (0, V.default)("progress", o / 125) + ",1)"), $.fillRect(l + d, u + p, s, c), e && $.translate(d, p), o > 130) ) { var g = Math.min((o - 130) / 60, 1); if (Math.random() < g / 10) { j({ type: "circle", x: l + Math.random() * s, y: u + Math.random() * c, lifetime: 3, color: "rgba(" + (0, V.default)("stars", g) + ",1)", fade: !0, r: 3 * Math.random(), }); } } ($.textBaseline = "middle"), ($.textAlign = "center"), ($.font = "40px Avenir"), ($.fillStyle = "black"), $.fillText(o, f + d, h + p + 2), ($.fillStyle = "white"), $.fillText(o, f + d, h + p), e && $.translate(-d, -p); } } function b() { yt.forEach(function (t) { return g(t); }), yt .filter(function (t) { return t.hit; }) .forEach(function (t) { return g(t, !0); }); } function v(t) { wt.forEach(function (e) { var n = R(e, 3), r = n[0], i = n[1], o = n[2]; if ("ball" == o) { var a = N(r, i), s = (a.w, a.h, a.x, a.y, a.cx), c = a.cy; ($.fillStyle = vt), $.beginPath(), $.arc(s, c, 10, 0, 2 * Math.PI), $.fill(), ($.strokeStyle = vt), $.beginPath(), $.arc(s, c, 20 + 5 * Math.sin(t / 300), 0, 2 * Math.PI), $.stroke(); } else if ("laser" == o) { var l = N(r, i), u = (l.w, l.h, l.x, l.y, l.cx), f = l.cy; ($.fillStyle = mt), $.fillRect(u - 5, f - 10, 10, 20), ($.strokeStyle = mt), $.beginPath(), $.arc(u, f, 20 + 5 * Math.sin(t / 300), 0, 2 * Math.PI), $.stroke(); } }); } function m() { ct.forEach(function (t) { var e = t.x, n = t.y, r = t.r, i = t.vx, o = t.vy, a = t.toX, s = t.toY, c = t.age, l = t.lifetime, u = t.text, f = t.color, h = t.fade, d = (t.startColor, t.endColor, t.colormap), p = t.type, g = Math.max(1 - c / l, 0); h && ($.globalAlpha = g), d && (f = "rgba(" + (0, V.default)(d, 1 - g) + ",1)"), f && (($.fillStyle = f), ($.strokeStyle = f)), "text" === p ? (($.font = r + "px Avenir"), $.fillText(u, e, n)) : "circle" === p ? ($.beginPath(), $.arc(e, n, r, 0, 2 * Math.PI), $.fill()) : ($.beginPath(), ($.lineWidth = r), $.moveTo(e, n), "undefined" != typeof a ? $.lineTo(a, s) : $.lineTo(e + i / 10, n + o / 10), $.stroke()), ($.globalAlpha = 1); }); } function y() { ($.fillStyle = "rgba(0,0,0,.3)"), $.fillRect(0, 0, canvas.width, canvas.height), ($.textBaseline = "middle"), ($.textAlign = "center"); var t = canvas.width / 15; $.font = t + "px Avenir"; var e = [ "You Lose 😱", "あなたは失う 😱", "Tu Perdiste 😱", "أنت تفقد 😱", "Tu As Perdu 😱", "你输了 😱", ]; ($.fillStyle = "#f0f0f0"), $.fillText( e[Math.floor(Date.now() / 1500) % e.length], canvas.width / 2, canvas.height / 2 ), ($.font = "30px Avenir"), $.fillText( "[tap to restart]", canvas.width / 2, canvas.height / 2 + t / 2 + 20 ); } function w(t, e) { if (($.save(), ut <= 120)) $.clearRect(0, 0, canvas.width, canvas.height); else { 121 === ut && "levelup" == nt && ($.globalAlpha = t); for ( var n = canvas.width / 2, r = canvas.height / 2, i = Math.max(canvas.width, canvas.height), o = e / 1e4, a = $.createLinearGradient( n - Math.sin(o) * i, r - Math.cos(o) * i, n + Math.sin(o) * i, r + Math.cos(o) * i ), s = 0; s < 3; s++ ) { var c = (e + 1e4 * s) / 1e3; a.addColorStop( s / 3, "hsl(" + ((Math.sin(c) + 1) / 2) * 100 + ", 20%, 10%)" ); } ($.fillStyle = a), $.fillRect(0, 0, canvas.width, canvas.height); } $.restore(); } function x(t) { var e = -N(0, 0).h, n = t - rt, r = -1, i = r * n; return { total: e, r: Math.min(i / e, 1) }; } function k(t, e) { var n = x(t), r = n.r, i = n.total; w(r, t), ($.fillStyle = "rgba(180,180,180,.3)"), $.fillRect(0, F(), canvas.width, canvas.height - F()), f(), h(), d(), "aiming" === nt && p(), "levelup" == nt && (p(), r < 1 ? $.translate(0, i * (1 - r)) : ((nt = "aiming"), yt.forEach(function (t) { t[0] === gt - 1 && t[2] > 0 && ("lost" != nt && T(), (nt = "lost")); }), (end_button.style.opacity = 0))), b(), v(t), m(), "lost" === nt && y(); } function S(t) { X.default.push({ messsage: "[system] Reload if you see this", username: t, achievement: "good_score", score: et, timestamp: _.default.database.ServerValue.TIMESTAMP, }); } function E(t) { X.default.push({ messsage: "[system] Reload if you see this", username: t, achievement: "personal_record", score: et, timestamp: _.default.database.ServerValue.TIMESTAMP, }); } function A(t, e) { X.default.push({ messsage: "[system] Reload if you see this", username: t, achievement: "weekly_record", score: et, place: e, timestamp: _.default.database.ServerValue.TIMESTAMP, }); } function T() { var t = (localStorage.username, localStorage.pr || 0); console.log("Game state lost"); var e = Q.weeklyScores.findIndex(function (t) { return t.score < et; }); if (et > t) { tt.innerHTML = et.toLocaleString(); try { localStorage.pr = et; } catch (t) {} (0, U.default)({ title: "New high score!", text: et + " is your new personal record.", input: "text", inputPlaceholder: "Nickname for Leaderboard", inputValue: localStorage.username || "", showCancelButton: !0, confirmButtonText: "Submit", reverseButtons: !0, inputValidator: function (t) { return new Promise(function (e, n) { return t ? e() : n("You need to write something!"); }); }, }) .then(function (t) { try { localStorage.username = t; } catch (t) {} H.default.push( et > 1e5 ? { username: t, score: et, check: Math.pow(et % 823, 2) % 823 } : { username: t, score: et } ), E(t), e >= 0 ? (Q.weeklyScores.splice(e, 0, { username: t, score: et }), (0, Q.updateScoreFeed)(), A(t, e)) : et > 1e3 && S(t); }) .catch(function (t) { console.warn(t); }); } else e >= 0 ? (0, U.default)({ title: "New high score!", text: "You got the #" + (e + 1) + " score this week!\b", input: "text", inputPlaceholder: "Nickname for Leaderboard", inputValue: localStorage.username || "", showCancelButton: !0, confirmButtonText: "Submit", reverseButtons: !0, inputValidator: function (t) { return new Promise(function (e, n) { return t ? e() : n("You need to write something!"); }); }, }) .then(function (t) { try { localStorage.username = t; } catch (t) {} H.default.push({ username: t, score: et }), Q.weeklyScores.splice(e, 0, { username: t, score: et }), A(t, e), (0, Q.updateScoreFeed)(); }) .catch(function (t) { console.warn(t); }) : et > 1e3 && S(St); var n = function t(e) { e.preventDefault(), o(), canvas.removeEventListener("click", t), canvas.removeEventListener("touchend", t); }; canvas.addEventListener("click", n), canvas.addEventListener("touchend", n); } function M(t) { yt.forEach(function (t) { return (t.hit = !1); }), (lt = []), st.forEach(function (e) { if (e.done) { var n = at - (e.x + t * e.vx); (Math.abs(n) < 1e-8 || n / e.gather_dir < 0) && ((e.x = at), (e.vx = 0), (e.gathered = !0)); } P(e, t), e.y > F() - e.r && !e.done && ((e.y = F() - e.r), (e.vx = 0), (e.vy = 0), st.some(function (t) { return t.done; }) ? ((e.vx = (at - e.x) * (2 + Math.random())), (e.gather_dir = at - e.x || 1)) : ((at = Math.min(Math.max(e.x, e.r), canvas.width - e.r)), (e.gathered = !0)), (e.done = !0)); }); } function C(t) { var e = []; ct.forEach(function (n) { n.age || (n.age = 0), n.age > n.lifetime || ((n.vx += n.ax * t), (n.vy += n.ay * t), (n.vx *= 1 - n.f), (n.vy *= 1 - n.f), (n.vr += n.ar * t), (n.x += n.vx * t), (n.y += n.vy * t), (n.r += n.vr * t), n.r < 0 || ((n.age += t), e.push(n))); }), (ct = e); } function L() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1; (et += t), (Z.innerHTML = et.toLocaleString()), (Z.style.transition = "none"), (Z.className = "gold"), setTimeout(function () { (Z.style.transition = "1s"), (Z.className = ""); }, 0); } function P(t, e) { for ( var n = t.r, r = Math.sqrt(t.vx * t.vx + t.vy * t.vy), o = r * e, a = function () { var e = D([t.vx, t.vy]), a = R(e, 2), c = a[0], l = a[1], u = [1 / c, 1 / l], f = [t.x, t.y], h = [t.x + c * o, t.y + l * o]; if (isNaN(h[0])) throw "walp"; var d = 1 / 0, p = void 0, g = void 0, b = void 0, v = [ [ [n, 0], [n, canvas.height - n], ], [ [canvas.width - n, canvas.height - n], [canvas.width - n, n], ], [ [canvas.width - n, n], [n, n], ], ]; if ( (t.done || t.falling || v.forEach(function (t) { var e = Pt(f, Tt(f, h), t[0], Tt(t[1], t[0])); if (e && !Ot(e, f) && At(e, f, h) && At(e, t[0], t[1])) { var n = Ct(f, e); n < d && ((d = n), (p = e), (b = D(jt(t[0], t[1]))), (g = !1)); } }), t.done || t.falling || yt.forEach(function (t) { var e = R(t, 3), r = e[0], i = e[1], a = e[2]; if (!(a <= 0)) { var s = N(r, i), c = O( { x: s.x - n, y: s.y - n, w: s.w + 2 * n, h: s.h + 2 * n, }, f, u, o ); if (c) { var l = s.x, v = s.y, m = s.w, y = s.h, w = [ [l, v], [l + m, v], [l + m, v + y], [l, v + y], ], x = [ [ [l, v - n], [l + m, v - n], ], [ [l + m + n, v], [l + m + n, v + y], ], [ [l + m, v + y + n], [l, v + y + n], ], [ [l - n, v + y], [l - n, v], ], ]; x.forEach(function (e) { var n = Pt(f, Tt(f, h), e[0], Tt(e[1], e[0])); if ( n && !Ot(n, f) && At(n, f, h) && At(n, e[0], e[1]) ) { var r = Ct(f, n); r < d && ((d = r), (p = n), (b = D(jt(e[0], e[1]))), (g = t)); } }), w.forEach(function (e) { var r = I(f, h, e, n); if (r) { var i = R(r, 2), o = i[0], a = i[1], s = Ct(o, f), c = Ct(a, f); At(o, f, h) && s < d && !Ot(o, f) && ((d = s), (p = o), (b = D(Tt(o, e))), (g = t)), At(a, f, h) && c < d && !Ot(a, f) && ((d = c), (p = a), (b = D(Tt(a, e))), (g = t)); } }); } } }), wt.forEach(function (e) { var n = R(e, 3), r = n[0], i = n[1], o = n[2], a = N(r, i), s = a.cx, c = a.cy, l = t.r + 30; if (Ct([t.x, t.y], [s, c]) < l * l) if ((wt.delete(e), "ball" === o)) { ft.push("ball"); ((Math.random() - 0.5) * Math.PI * 1) / 16 + Math.atan2(t.vy, t.vx); st.push({ x: s, y: c, vx: 0, vy: dt, r: pt, falling: !0, type: "ball", }), j({ x: s, y: c, lifetime: 0.3, r: 10, vr: 200, type: "circle", fade: !0, color: vt, }); } else "laser" === o && (ft.push("laser"), st.push({ x: s, y: c, vx: 0, vy: dt, r: pt, falling: !0, type: "laser", })); }), p) ) { var m = It(Tt(h, f), b), y = Mt(D(Tt(Tt(h, f), Mt(b, 2 * m))), r); if ( ((t.x = p[0]), (t.y = p[1]), (t.vx = y[0]), (t.vy = y[1]), (o -= Lt(p, f)), g) ) { var w = 1; for (g.hit = !0, s = 0; s < w; s++) { var x = Mt( D(Tt(Tt(h, f), Mt(b, (1 + Math.random()) * m))), r * Math.random() ); j({ vx: x[0], vy: x[1], vr: 100, f: 0.1, x: p[0], y: p[1], r: 1, lifetime: Math.random(), color: "rgba(" + (0, V.default)("progress", g[2] / 125) + ",1)", }), g[2]--; } if ((L(w), g[2] <= 0)) for (s = 0; s < 10; s++) { var k = N.apply(void 0, i(g)), S = k.cx, E = k.cy, A = 2 * Math.random() * Math.PI, T = Math.random(); j({ vx: 1e3 * Math.cos(A) * T, vy: 1e3 * Math.sin(A) * T, vr: 100, f: 0.1, x: S, y: E, r: 1, lifetime: Math.random(), color: "#ddd", }); } } } else (t.x = h[0]), (t.y = h[1]), (o = 0); lt.push([f, [t.x, t.y]]); }; o > 0; ) { var s, s; a(); } } function j(t) { ct.push( Object.assign( { ax: 0, ay: 0, ar: 0, vx: 0, vy: 0, vr: 0, f: 0, x: canvas.width / 2, y: canvas.height / 2, r: 10, lifetime: 1, }, t ) ); } function I(t, e, n, r) { var i = R(n, 2), o = i[0], a = i[1], s = R(t, 2), c = s[0], l = s[1], u = R(e, 2), f = u[0], h = u[1], d = f - c, p = h - l, g = d * d + p * p, b = d * (o - c) + p * (a - l), v = 4 * b * b - 4 * g * (o * o - 2 * o * c + a * a - 2 * a * l - r * r + c * c + l * l); if (v < 0) return !1; var m = d * o - d * c + p * a - p * l, y = Math.sqrt(v), w = (y / 2 + m) / g, x = (-y / 2 + m) / g; return [ [c + w * d, l + w * p], [c + x * d, l + x * p], ]; } function O(t, e, n, r) { var i = R(e, 2), o = i[0], a = i[1], s = R(n, 2), c = s[0], l = s[1], u = (t.x - o) * c, f = (t.x + t.w - o) * c, h = Math.min(u, f), d = Math.max(u, f), p = (t.y - a) * l, g = (t.y + t.h - a) * l; return ( (h = Math.max(h, Math.min(p, g))), (d = Math.min(d, Math.max(p, g))), d > Math.max(h, 0) && h < r ); } function D(t) { var e = R(t, 2), n = e[0], r = e[1], i = Math.sqrt(n * n + r * r); return [n / i, r / i]; } function N(t, e) { var n = canvas.width / bt, r = F() / gt; return { w: n, h: r, x: n * e, y: r * t, cx: n * (e + 0.5), cy: r * (t + 0.5), }; } function F() { return canvas.height - 30; } var R = (function () { function t(t, e) { var n = [], r = !0, i = !1, o = void 0; try { for ( var a, s = t[Symbol.iterator](); !(r = (a = s.next()).done) && (n.push(a.value), !e || n.length !== e); r = !0 ); } catch (t) { (i = !0), (o = t); } finally { try { !r && s.return && s.return(); } finally { if (i) throw o; } } return n; } return function (e, n) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return t(e, n); throw new TypeError( "Invalid attempt to destructure non-iterable instance" ); }; })(), B = n(1), _ = r(B), q = n(6), U = r(q); n(23); var Q = n(12), W = n(10), V = r(W), K = n(2), H = r(K), z = n(7), X = r(z); n(24); var Y = n(9), G = r(Y), J = new G.default(database), $ = void 0, Z = void 0, tt = void 0, et = void 0, nt = void 0, rt = void 0, it = { x: 0, y: 0 }, ot = void 0, at = void 0, st = void 0, ct = void 0, lt = void 0, ut = void 0, ft = void 0, ht = void 0, dt = void 0, pt = 10, gt = (Math.PI / 12, 10), bt = 10, vt = "#48f", mt = "#691c7e", yt = [], wt = new Set(), xt = 0; document .getElementById("canvas-wrap") .addEventListener("mousemove", function (t) { if ("aiming" === nt || "levelup" == nt) { var e = canvas.getBoundingClientRect(); it = { x: 2 * (t.clientX - e.left), y: 2 * (t.clientY - e.top) }; } }), document .getElementById("canvas-wrap") .addEventListener("keypress", c, !0), document.getElementById("canvas-wrap").addEventListener("click", u, !0), document .getElementById("canvas-wrap") .addEventListener("touchmove", l, !0), document .getElementById("canvas-wrap") .addEventListener("touchend", u, !0), document.addEventListener( "touchstart", function (t) { t.target === canvas && (console.log("preventing scroll"), t.preventDefault()); }, { passive: !1 } ), end_button.addEventListener("click", function (t) { st.filter(function (t) { return !t.falling && !t.done && !t.gathered; }).forEach(function (t) { (t.vx = 0), (t.vy = dt), (t.falling = !0); }); }); var kt = document.querySelector(".compose input"), St = localStorage.username || "anon_" + Math.floor(1e3 + 1e3 * Math.random()); (kt.value = St), J.join(St), kt.addEventListener("change", function (t) { try { localStorage.username = t.target.value; } catch (t) { console.warn(t); } }), document .querySelector(".compose textarea") .addEventListener("keypress", function (t) { (t.target.value = t.target.value.slice(0, 2e3)), console.log(X.default), "Enter" !== t.key || t.shiftKey || "" === t.target.value.trim() || (t.preventDefault(), X.default.push({ message: t.target.value, username: kt.value, score: et, timestamp: _.default.database.ServerValue.TIMESTAMP, }), (t.target.value = "")); }), J.onUpdated(function (t) { document.querySelector(".online").innerText = t + " online"; }); var Et = function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, e = pt, n = ot || canvas.width / 2, r = F() - e, i = it.x - n, o = it.y - r, a = Math.atan2(-o, i) + t; a < -Math.PI / 2 && (a = Math.PI); var s = (canvas.width * (bt - 1)) / bt / 2, c = Math.atan2(canvas.height / gt, -s), l = Math.atan2(canvas.height / gt, s); return (a = Math.min(Math.max(l, a), c)); }; window.swal = U.default; var At = function (t, e, n) { var r = R(t, 2), i = r[0], o = r[1], a = R(e, 2), s = a[0], c = a[1], l = R(n, 2), u = l[0], f = l[1]; return ( i >= Math.min(s, u) && i <= Math.max(s, u) && o >= Math.min(c, f) && o <= Math.max(c, f) ); }, Tt = function (t, e) { var n = R(t, 2), r = n[0], i = n[1], o = R(e, 2), a = o[0], s = o[1]; return [r - a, i - s]; }, Mt = function (t, e) { var n = R(t, 2), r = n[0], i = n[1]; return [r * e, i * e]; }, Ct = function (t, e) { var n = Tt(t, e), r = R(n, 2), i = r[0], o = r[1]; return i * i + o * o; }, Lt = function (t, e) { return Math.sqrt(Ct(t, e)); }, Pt = function (t, e, n, r) { var i = R(t, 2), o = i[0], a = i[1], s = R(e, 2), c = s[0], l = s[1], u = R(n, 2), f = u[0], h = u[1], d = R(r, 2), p = d[0], g = d[1], b = p * l - g * c; if (0 === b) return !1; var v = (c * (h - a) + l * (o - f)) / b; return [f + v * p, h + v * g]; }, jt = function (t, e) { var n = R(t, 2), r = n[0], i = n[1], o = R(e, 2), a = o[0], s = o[1]; return [s - i, r - a]; }, It = function (t, e) { var n = R(t, 2), r = n[0], i = n[1], o = R(e, 2), a = o[0], s = o[1]; return r * a + i * s; }, Ot = function (t, e) { var n = R(t, 2), r = n[0], i = n[1], o = R(e, 2), a = o[0], s = o[1]; return Math.abs(r - a) < 1e-8 && Math.abs(i - s) < 1e-8; }, Dt = void 0; ($ = canvas.getContext("2d")), (Z = document.getElementById("score")), (tt = document.getElementById("record")); try { tt.innerHTML = (+(localStorage.pr || 0)).toLocaleString(); } catch (t) {} o(), requestAnimationFrame(function (t) { (Dt = t), requestAnimationFrame(s); }); }, function (t, e, n) { "use strict"; function r(t) { return t && t.__esModule ? t : { default: t }; } function i(t) { var e = document.createElement("div"); return e.appendChild(document.createTextNode(t)), e.innerHTML; } Object.defineProperty(e, "__esModule", { value: !0 }), (e.updateScoreFeed = e.weeklyScores = void 0); var o = n(2), a = r(o), s = n(6), c = r(s), l = function (t) { a.default .orderByChild("score") .limitToLast(100) .once("value", function (e) { t(e); }); }, u = (e.weeklyScores = void 0); a.default.limitToLast(200).once("value", function (t) { var n = {}; t.forEach(function (t) { var e = t.val(); (!n[e.username] || n[e.username].score < e.score) && (n[e.username] = e); }), (e.weeklyScores = u = Object.values(n) .sort(function (t, e) { return e.score - t.score; }) .filter(function (t) { return t.score > 1e3; }) .slice(0, 30)), f(); }); var f = (e.updateScoreFeed = function () { var t = "\n
\n
High Scores
\n
This Week
\n
\n " + u .map(function (t, e) { var n = t.username, r = t.score; return ( "\n
\n
#" + (e + 1) + " Weekly
\n
" + i(n.slice(0, 60)) + "
\n
" + (+i(r)).toLocaleString() + "
\n
\n " ); }) .join(""), e = document.querySelector(".scores-marquee"); (e.innerHTML = t + t), e.classList.add("marquee"); }); document .querySelector(".scores-marquee") .addEventListener("click", function () { var t = '
\n \n \n \n \n \n \n \n ' + u .map(function (t, e) { var n = t.username, r = t.score; return ( '\n \n \n \n " ); }) .join("") + "\n \n
PlaceUsernameScore
' + (e + 1) + '' + i(n.slice(0, 60)) + '' + (+i(r)).toLocaleString() + "
\n
"; (0, c.default)({ title: "Wallsmash Weekly Top Scores", html: t }); }), document .getElementById("scoreboardButton") .addEventListener("click", function () { return l(function (t) { var e = []; t.forEach(function (t) { e = [t.val()].concat(e); }), console.log(e); var n = '
\n \n \n \n \n \n \n \n ' + e .map(function (t, e) { var n = t.username, r = t.score; return ( '\n \n \n \n " ); }) .join("") + "\n \n
PlaceUsernameScore
' + (e + 1) + '' + i(n) + '' + (+i(r)).toLocaleString() + "
\n
"; (0, c.default)({ title: "Wallsmash All Time Top Scores", html: n }); }); }); }, function (t, e, n) { (e = t.exports = n(3)()), e.push([ t.id, 'body.swal2-shown{overflow-y:hidden}.swal2-container,body.swal2-iosfix{position:fixed;left:0;right:0}.swal2-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;top:0;bottom:0;padding:10px;background-color:transparent;z-index:1060}.swal2-container.swal2-fade{-webkit-transition:background-color .1s;transition:background-color .1s}.swal2-container.swal2-shown{background-color:rgba(0,0,0,.4)}.swal2-modal{background-color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;border-radius:5px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;margin:auto;overflow-x:hidden;overflow-y:auto;display:none;position:relative;max-width:100%}.swal2-modal:focus{outline:none}.swal2-modal.swal2-loading{overflow-y:hidden}.swal2-modal .swal2-title{color:#595959;font-size:30px;text-align:center;font-weight:600;text-transform:none;position:relative;margin:0 0 .4em;padding:0;display:block;word-wrap:break-word}.swal2-modal .swal2-buttonswrapper{margin-top:15px}.swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4;cursor:no-drop}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm{-webkit-box-sizing:border-box;box-sizing:border-box;border:4px solid transparent;border-color:transparent;width:40px;height:40px;padding:0;margin:7.5px;vertical-align:top;background-color:transparent!important;color:transparent;cursor:default;border-radius:100%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel{margin-left:30px;margin-right:30px}.swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm:after{display:inline-block;content:"";margin-left:5px 0 15px;vertical-align:-1px;height:15px;width:15px;border:3px solid #999;-webkit-box-shadow:1px 1px 1px #fff;box-shadow:1px 1px 1px #fff;border-right-color:transparent;border-radius:50%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal}.swal2-modal .swal2-styled{border:0;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#fff;cursor:pointer;font-size:17px;font-weight:500;margin:15px 5px 0;padding:10px 32px}.swal2-modal .swal2-image{margin:20px auto;max-width:100%}.swal2-modal .swal2-close{background:transparent;border:0;margin:0;padding:0;width:38px;height:40px;font-size:36px;line-height:40px;font-family:serif;position:absolute;top:5px;right:8px;cursor:pointer;color:#ccc;-webkit-transition:color .1s ease;transition:color .1s ease}.swal2-modal .swal2-close:hover{color:#d55}.swal2-modal>.swal2-checkbox,.swal2-modal>.swal2-file,.swal2-modal>.swal2-input,.swal2-modal>.swal2-radio,.swal2-modal>.swal2-select,.swal2-modal>.swal2-textarea{display:none}.swal2-modal .swal2-content{font-size:18px;text-align:center;font-weight:300;position:relative;float:none;margin:0;padding:0;line-height:normal;color:#545454;word-wrap:break-word}.swal2-modal .swal2-checkbox,.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-radio,.swal2-modal .swal2-select,.swal2-modal .swal2-textarea{margin:20px auto}.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-textarea{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:18px;border-radius:3px;border:1px solid #d9d9d9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.06);box-shadow:inset 0 1px 1px rgba(0,0,0,.06);-webkit-transition:border-color box-shadow .3s;transition:border-color box-shadow .3s}.swal2-modal .swal2-file.swal2-inputerror,.swal2-modal .swal2-input.swal2-inputerror,.swal2-modal .swal2-textarea.swal2-inputerror{border-color:#f27474!important;-webkit-box-shadow:0 0 2px #f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-modal .swal2-file:focus,.swal2-modal .swal2-input:focus,.swal2-modal .swal2-textarea:focus{outline:none;border:1px solid #b4dbed;-webkit-box-shadow:0 0 3px #c4e6f5;box-shadow:0 0 3px #c4e6f5}.swal2-modal .swal2-file:focus::-webkit-input-placeholder,.swal2-modal .swal2-input:focus::-webkit-input-placeholder,.swal2-modal .swal2-textarea:focus::-webkit-input-placeholder{-webkit-transition:opacity .3s ease .03s;transition:opacity .3s ease .03s;opacity:.8}.swal2-modal .swal2-file:focus:-ms-input-placeholder,.swal2-modal .swal2-input:focus:-ms-input-placeholder,.swal2-modal .swal2-textarea:focus:-ms-input-placeholder{-webkit-transition:opacity .3s ease .03s;transition:opacity .3s ease .03s;opacity:.8}.swal2-modal .swal2-file:focus::placeholder,.swal2-modal .swal2-input:focus::placeholder,.swal2-modal .swal2-textarea:focus::placeholder{-webkit-transition:opacity .3s ease .03s;transition:opacity .3s ease .03s;opacity:.8}.swal2-modal .swal2-file::-webkit-input-placeholder,.swal2-modal .swal2-input::-webkit-input-placeholder,.swal2-modal .swal2-textarea::-webkit-input-placeholder{color:#e6e6e6}.swal2-modal .swal2-file:-ms-input-placeholder,.swal2-modal .swal2-input:-ms-input-placeholder,.swal2-modal .swal2-textarea:-ms-input-placeholder{color:#e6e6e6}.swal2-modal .swal2-file::placeholder,.swal2-modal .swal2-input::placeholder,.swal2-modal .swal2-textarea::placeholder{color:#e6e6e6}.swal2-modal .swal2-range input{float:left;width:80%}.swal2-modal .swal2-range output{float:right;width:20%;font-size:20px;font-weight:600;text-align:center}.swal2-modal .swal2-range input,.swal2-modal .swal2-range output{height:43px;line-height:43px;vertical-align:middle;margin:20px auto;padding:0}.swal2-modal .swal2-input{height:43px;padding:0 12px}.swal2-modal .swal2-input[type=number]{max-width:150px}.swal2-modal .swal2-file{font-size:20px}.swal2-modal .swal2-textarea{height:108px;padding:12px}.swal2-modal .swal2-select{color:#545454;font-size:inherit;padding:5px 10px;min-width:40%;max-width:100%}.swal2-modal .swal2-radio{border:0}.swal2-modal .swal2-radio label:not(:first-child){margin-left:20px}.swal2-modal .swal2-radio input,.swal2-modal .swal2-radio span{vertical-align:middle}.swal2-modal .swal2-radio input{margin:0 3px 0 0}.swal2-modal .swal2-checkbox{color:#545454}.swal2-modal .swal2-checkbox input,.swal2-modal .swal2-checkbox span{vertical-align:middle}.swal2-modal .swal2-validationerror{background-color:#f0f0f0;margin:0 -20px;overflow:hidden;padding:10px;color:gray;font-size:16px;font-weight:300;display:none}.swal2-modal .swal2-validationerror:before{content:"!";display:inline-block;width:24px;height:24px;border-radius:50%;background-color:#ea7d7d;color:#fff;line-height:24px;text-align:center;margin-right:10px}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.swal2-range input{width:100%!important}.swal2-range output{display:none}}.swal2-icon{width:80px;height:80px;border:4px solid transparent;border-radius:50%;margin:20px auto 30px;padding:0;position:relative;-webkit-box-sizing:content-box;box-sizing:content-box;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon.swal2-error{border-color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;display:block}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}.swal2-icon.swal2-warning{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#f8bb86;border-color:#facea8}.swal2-icon.swal2-info,.swal2-icon.swal2-warning{font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-info{font-family:Open Sans,sans-serif;color:#3fc3ee;border-color:#9de0f6}.swal2-icon.swal2-question{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#87adbd;border-color:#c9dae1;font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-success{border-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{border-radius:50%;position:absolute;width:60px;height:120px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px}.swal2-icon.swal2-success .swal2-success-ring{width:80px;height:80px;border:4px solid hsla(98,55%,69%,.2);border-radius:50%;-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal2-icon.swal2-success .swal2-success-fix{width:7px;height:90px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-progresssteps{font-weight:600;margin:0 0 20px;padding:0}.swal2-progresssteps li{display:inline-block;position:relative}.swal2-progresssteps .swal2-progresscircle{background:#3085d6;border-radius:2em;color:#fff;height:2em;line-height:2em;text-align:center;width:2em;z-index:20}.swal2-progresssteps .swal2-progresscircle:first-child{margin-left:0}.swal2-progresssteps .swal2-progresscircle:last-child{margin-right:0}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep{background:#3085d6}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progresscircle,.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progressline{background:#add8e6}.swal2-progresssteps .swal2-progressline{background:#3085d6;height:.4em;margin:0 -1px;z-index:10}[class^=swal2]{-webkit-tap-highlight-color:transparent}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}.swal2-show{-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s}.swal2-show.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-hide{-webkit-animation:hideSweetAlert .15s forwards;animation:hideSweetAlert .15s forwards}.swal2-hide.swal2-noanimation{-webkit-animation:none;animation:none}@-webkit-keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}.swal2-animate-success-line-tip{-webkit-animation:animate-success-tip .75s;animation:animate-success-tip .75s}.swal2-animate-success-line-long{-webkit-animation:animate-success-long .75s;animation:animate-success-long .75s}.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right{-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}@-webkit-keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}.swal2-animate-error-icon{-webkit-animation:animate-error-icon .5s;animation:animate-error-icon .5s}@-webkit-keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal2-animate-x-mark{-webkit-animation:animate-x-mark .5s;animation:animate-x-mark .5s}@-webkit-keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}', "", ]); }, function (t, e, n) { (e = t.exports = n(3)()), e.push([ t.id, "*{box-sizing:border-box}body,html{margin:0;height:100%;font-family:avenir}h1,h2,p{margin:0;padding:0}h1{padding:2% 0 0}h2{padding:0 0 2%;color:gray;font-size:75%;text-transform:uppercase;letter-spacing:2.5px}.game{display:flex;flex-direction:column;height:100%}.skip{position:absolute;bottom:0;right:0}#canvas-wrap{position:relative;flex:1;display:flex;overflow:hidden}#canvas{width:100%;flex:1;outline:none}#header{background:#333;display:flex;align-items:center;justify-content:space-between;height:75px}#header.hidden{display:none}#headerLeft{display:flex;flex-direction:row;align-items:center;justify-content:center}#title{font-size:200%;font-weight:700;padding:7px 10px;margin-bottom:-10px}#title svg{display:block}#scoreboardButton{padding:0 10px;cursor:pointer}#scoreTable{max-height:300px;overflow:scroll}.chrome{background:#444;color:#ccc}.spacer{flex:1}.week-scores{width:300px;flex-shrink:0;display:flex;justify-content:center;align-items:center;flex-direction:column}.scores-marquee-wrap{flex:1;overflow:hidden;height:100%;position:relative}.marquee{animation:marquee 100s linear infinite;display:flex;gap:10px;padding-left:10px;white-space:nowrap;align-items:center;height:100%;position:absolute}.scores-marquee:hover{animation-play-state:paused}.score-place span{font-size:80%;background:#222;border-radius:3px;padding:0 5px}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.button{background:hsla(0,0%,100%,.13);padding:0 10px;cursor:pointer;margin-right:10px}#score-wrap{padding-left:10px}#scoreInfo{display:flex;align-items:center}#score{font-size:150%;padding-left:5px;padding-right:10px}#username{border:0;background:#5c5c5c;outline:none;color:inherit;font-size:inherit;font-family:inherit;padding:0}.gold{color:#ff0}table tr:nth-child(2n) td{background-color:#d3d3d3}#path0_fill{fill:hsla(0,0%,100%,.8)}#end_button{opacity:0;transition:.2s}#end_button,#scoreboardButton{user-select:none;text-align:center}.achievements{position:absolute;right:0;bottom:0;padding:10px;color:hsla(0,0%,100%,.8);display:flex;flex-direction:column;align-items:flex-end}.achievements b{color:#fff}.achievements>div{height:0;margin:0;transition:.2s}.achievements .achievement{background:#333;box-shadow:0 0 10px rgba(0,0,0,.3);margin-top:10px;padding:5px 10px;border-radius:3px;height:auto}.achievements:hover{opacity:.5}.canvas-chat-wrap{flex:1}.canvas-chat-wrap,.chat{display:flex;overflow:hidden}.chat{background:#333;width:250px;max-width:30%;font-size:12px;flex-direction:column}@media(max-width:600px){#chat_toggle,.chat{display:none}}.chat.hidden{display:none}.chat:hover{opacity:1}.messages{flex:1;overflow:auto}.message-item{display:flex;gap:10px;padding:10px;align-items:flex-start;color:#ccc;border-top:1px solid #444;overflow:auto}.achievement{padding:0 10px;color:#ccc;overflow:auto}.achievement.diamond{background:#3782b8;color:#d4f9ff}.achievement.gold{background:#c4a50a;color:#fff199}.achievement.silver{background:#59646c;color:#ddd}.achievement.bronze{background:#814e02;color:#ffb54a}.achievement.personal_record{background:#2b523c;color:#b2cbbd}.achievement.weekly_record{background:#000;color:#ffaff1}.message-spacer{height:4px;background-color:#111}.username{font-weight:700;position:sticky;top:10px}.name{max-width:150px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;white-space:nowrap}.time{opacity:.8}.score,.time{font-size:8px}.score{display:inline-block;background:#000;padding:2px 5px;border-radius:3px;margin-bottom:2px}.online{background:#444;color:#ccc;padding:2px 10px}.compose{background:#444;display:flex;flex-direction:column}.compose input{border:0;border-top-left-radius:3px;border-top-right-radius:3px}.compose input,.compose textarea{background-color:#333;color:#ccc;outline:none;padding:5px 10px;font:inherit}.compose textarea{border:0;border-top:1px solid #444;border-bottom-left-radius:3px;border-bottom-right-radius:3px;height:100px}", "", ]); }, function (t, e) { /*! @license Firebase v4.1.3 Build: rev-1234895 Terms: https://firebase.google.com/terms/ */ "use strict"; function n(t) { return r(void 0, t); } function r(t, e) { if (!(e instanceof Object)) return e; switch (e.constructor) { case Date: return new Date(e.getTime()); case Object: void 0 === t && (t = {}); break; case Array: t = []; break; default: return e; } for (var n in e) e.hasOwnProperty(n) && (t[n] = r(t[n], e[n])); return t; } function i(t, e, n) { t[e] = n; } Object.defineProperty(e, "__esModule", { value: !0 }), (e.deepCopy = n), (e.deepExtend = r), (e.patchProperty = i); }, function (t, e) { /*! @license Firebase v4.1.3 Build: rev-1234895 Terms: https://firebase.google.com/terms/ */ "use strict"; function n(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function r(t) { var e = a; return (a = t), e; } Object.defineProperty(e, "__esModule", { value: !0 }); var i = (function () { function t(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; (r.enumerable = r.enumerable || !1), (r.configurable = !0), "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r); } } return function (e, n, r) { return n && t(e.prototype, n), r && t(e, r), e; }; })(); e.patchCapture = r; var o = "FirebaseError", a = Error.captureStackTrace, s = (e.FirebaseError = function t(e, r) { if ((n(this, t), (this.code = e), (this.message = r), a)) a(this, c.prototype.create); else { var i = Error.apply(this, arguments); (this.name = o), Object.defineProperty(this, "stack", { get: function () { return i.stack; }, }); } }); (s.prototype = Object.create(Error.prototype)), (s.prototype.constructor = s), (s.prototype.name = o); var c = (e.ErrorFactory = (function () { function t(e, r, i) { n(this, t), (this.service = e), (this.serviceName = r), (this.errors = i), (this.pattern = /\{\$([^}]+)}/g); } return ( i(t, [ { key: "create", value: function (t, e) { void 0 === e && (e = {}); var n = this.errors[t], r = this.service + "/" + t, i = void 0; (i = void 0 === n ? "Error" : n.replace(this.pattern, function (t, n) { var r = e[n]; return void 0 !== r ? r.toString() : "<" + n + "?>"; })), (i = this.serviceName + ": " + i + " (" + r + ")."); var o = new s(r, i); for (var a in e) e.hasOwnProperty(a) && "_" !== a.slice(-1) && (o[a] = e[a]); return o; }, }, ]), t ); })()); }, function (t, e, n) { /*! @license Firebase v4.1.3 Build: rev-1234895 Terms: https://firebase.google.com/terms/ */ "use strict"; function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function i() { function t(t) { return (t = t || d), f(a, t) || o("no-app", { name: t }), a[t]; } function e() { return Object.keys(a).map(function (t) { return a[t]; }); } function n(t, e) { Object.keys(p).forEach(function (n) { var i = r(t, n); null !== i && b[i] && b[i](e, t); }); } function r(t, e) { return "serverAuth" === e ? null : (t.options, e); } var a = {}, p = {}, b = {}, v = { __esModule: !0, initializeApp: function (t, e) { void 0 === e ? (e = d) : ("string" == typeof e && "" !== e) || o("bad-app-name", { name: e + "" }), f(a, e) && o("duplicate-app", { name: e }); var r = new g(t, e, v); return (a[e] = r), n(r, "create"), r; }, app: t, apps: null, Promise: h, SDK_VERSION: "4.1.3", INTERNAL: { registerService: function (n, r, i, a, s) { p[n] && o("duplicate-service", { name: n }), (p[n] = r), a && ((b[n] = a), e().forEach(function (t) { a("create", t); })); var c = function () { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : t(); return ( "function" != typeof e[n] && o("invalid-app-argument", { name: n }), e[n]() ); }; return ( void 0 !== i && (0, u.deepExtend)(c, i), (v[n] = c), (g.prototype[n] = function () { for ( var t = this._getService.bind(this, n), e = arguments.length, r = Array(e), i = 0; i < e; i++ ) r[i] = arguments[i]; return t.apply(this, s ? r : []); }), c ); }, createFirebaseNamespace: i, extendNamespace: function (t) { (0, u.deepExtend)(v, t); }, createSubscribe: s.createSubscribe, ErrorFactory: c.ErrorFactory, removeApp: function (t) { var e = a[t]; n(e, "delete"), delete a[t]; }, factories: p, useAsService: r, Promise: l.local.GoogPromise, deepExtend: u.deepExtend, }, }; return ( (0, u.patchProperty)(v, "default", v), Object.defineProperty(v, "apps", { get: e }), (0, u.patchProperty)(t, "App", g), v ); } function o(t, e) { throw v.create(t, e); } Object.defineProperty(e, "__esModule", { value: !0 }); var a = (function () { function t(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; (r.enumerable = r.enumerable || !1), (r.configurable = !0), "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r); } } return function (e, n, r) { return n && t(e.prototype, n), r && t(e, r), e; }; })(); e.createFirebaseNamespace = i; var s = n(18), c = n(16), l = n(4), u = n(15), f = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e); }, h = l.local.Promise, d = "[DEFAULT]", p = [], g = (function () { function t(e, n, i) { r(this, t), (this.firebase_ = i), (this.isDeleted_ = !1), (this.services_ = {}), (this.name_ = n), (this.options_ = (0, u.deepCopy)(e)), (this.INTERNAL = { getUid: function () { return null; }, getToken: function () { return h.resolve(null); }, addAuthTokenListener: function (t) { p.push(t), setTimeout(function () { return t(null); }, 0); }, removeAuthTokenListener: function (t) { p = p.filter(function (e) { return e !== t; }); }, }); } return ( a(t, [ { key: "delete", value: function () { var t = this; return new h(function (e) { t.checkDestroyed_(), e(); }) .then(function () { t.firebase_.INTERNAL.removeApp(t.name_); var e = []; return ( Object.keys(t.services_).forEach(function (n) { Object.keys(t.services_[n]).forEach(function (r) { e.push(t.services_[n][r]); }); }), h.all( e.map(function (t) { return t.INTERNAL.delete(); }) ) ); }) .then(function () { (t.isDeleted_ = !0), (t.services_ = {}); }); }, }, { key: "_getService", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : d; if ( (this.checkDestroyed_(), this.services_[t] || (this.services_[t] = {}), !this.services_[t][e]) ) { var n = e !== d ? e : void 0, r = this.firebase_.INTERNAL.factories[t]( this, this.extendApp.bind(this), n ); this.services_[t][e] = r; } return this.services_[t][e]; }, }, { key: "extendApp", value: function (t) { var e = this; (0, u.deepExtend)(this, t), t.INTERNAL && t.INTERNAL.addAuthTokenListener && (p.forEach(function (t) { e.INTERNAL.addAuthTokenListener(t); }), (p = [])); }, }, { key: "checkDestroyed_", value: function () { this.isDeleted_ && o("app-deleted", { name: this.name_ }); }, }, { key: "name", get: function () { return this.checkDestroyed_(), this.name_; }, }, { key: "options", get: function () { return this.checkDestroyed_(), this.options_; }, }, ]), t ); })(); (g.prototype.name && g.prototype.options) || g.prototype.delete || console.log("dc"); var b = { "no-app": "No Firebase App '{$name}' has been created - call Firebase App.initializeApp()", "bad-app-name": "Illegal App name: '{$name}", "duplicate-app": "Firebase App named '{$name}' already exists", "app-deleted": "Firebase App named '{$name}' already deleted", "duplicate-service": "Firebase service named '{$name}' already registered", "sa-not-supported": "Initializing the Firebase SDK with a service account is only allowed in a Node.js environment. On client devices, you should instead initialize the SDK with an api key and auth domain", "invalid-app-argument": "firebase.{$name}() takes either no argument or a Firebase App instance.", }, v = new c.ErrorFactory("app", "Firebase", b); }, function (t, e, n) { /*! @license Firebase v4.1.3 Build: rev-1234895 Terms: https://firebase.google.com/terms/ */ "use strict"; function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function i(t, e) { var n = new h(t, e); return n.subscribe.bind(n); } function o(t, e) { return function () { for (var n = arguments.length, r = Array(n), i = 0; i < n; i++) r[i] = arguments[i]; f.resolve(!0) .then(function () { t.apply(void 0, r); }) .catch(function (t) { e && e(t); }); }; } function a(t, e) { if ( "object" !== ("undefined" == typeof t ? "undefined" : c(t)) || null === t ) return !1; var n = !0, r = !1, i = void 0; try { for ( var o, a = e[Symbol.iterator](); !(n = (o = a.next()).done); n = !0 ) { var s = o.value; if (s in t && "function" == typeof t[s]) return !0; } } catch (t) { (r = !0), (i = t); } finally { try { !n && a.return && a.return(); } finally { if (r) throw i; } } return !1; } function s() {} Object.defineProperty(e, "__esModule", { value: !0 }); var c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, l = (function () { function t(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; (r.enumerable = r.enumerable || !1), (r.configurable = !0), "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r); } } return function (e, n, r) { return n && t(e.prototype, n), r && t(e, r), e; }; })(); (e.createSubscribe = i), (e.async = o); var u = n(4), f = u.local.Promise, h = (function () { function t(e, n) { var i = this; r(this, t), (this.observers = []), (this.unsubscribes = []), (this.observerCount = 0), (this.task = f.resolve()), (this.finalized = !1), (this.onNoObservers = n), this.task .then(function () { e(i); }) .catch(function (t) { i.error(t); }); } return ( l(t, [ { key: "next", value: function (t) { this.forEachObserver(function (e) { e.next(t); }); }, }, { key: "error", value: function (t) { this.forEachObserver(function (e) { e.error(t); }), this.close(t); }, }, { key: "complete", value: function () { this.forEachObserver(function (t) { t.complete(); }), this.close(); }, }, { key: "subscribe", value: function (t, e, n) { var r = this, i = void 0; if (void 0 === t && void 0 === e && void 0 === n) throw new Error("Missing Observer."); (i = a(t, ["next", "error", "complete"]) ? t : { next: t, error: e, complete: n }), void 0 === i.next && (i.next = s), void 0 === i.error && (i.error = s), void 0 === i.complete && (i.complete = s); var o = this.unsubscribeOne.bind(this, this.observers.length); return ( this.finalized && this.task.then(function () { try { r.finalError ? i.error(r.finalError) : i.complete(); } catch (t) {} }), this.observers.push(i), o ); }, }, { key: "unsubscribeOne", value: function (t) { void 0 !== this.observers && void 0 !== this.observers[t] && (delete this.observers[t], (this.observerCount -= 1), 0 === this.observerCount && void 0 !== this.onNoObservers && this.onNoObservers(this)); }, }, { key: "forEachObserver", value: function (t) { if (!this.finalized) for (var e = 0; e < this.observers.length; e++) this.sendOne(e, t); }, }, { key: "sendOne", value: function (t, e) { var n = this; this.task.then(function () { if (void 0 !== n.observers && void 0 !== n.observers[t]) try { e(n.observers[t]); } catch (t) { "undefined" != typeof console && console.error && console.error(t); } }); }, }, { key: "close", value: function (t) { var e = this; this.finalized || ((this.finalized = !0), void 0 !== t && (this.finalError = t), this.task.then(function () { (e.observers = void 0), (e.onNoObservers = void 0); })); }, }, ]), t ); })(); }, function (module, exports, __webpack_require__) { /*! @license Firebase v4.1.3 Build: rev-1234895 Terms: https://firebase.google.com/terms/ --- typedarray.js Copyright (c) 2010, Linden Research, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ !(function () { function n(t) { return void 0 !== t; } function ba() {} function ca(t) { t.Vb = function () { return t.Ye ? t.Ye : (t.Ye = new t()); }; } function da(t) { var e = typeof t; if ("object" == e) { if (!t) return "null"; if (t instanceof Array) return "array"; if (t instanceof Object) return e; var n = Object.prototype.toString.call(t); if ("[object Window]" == n) return "object"; if ( "[object Array]" == n || ("number" == typeof t.length && "undefined" != typeof t.splice && "undefined" != typeof t.propertyIsEnumerable && !t.propertyIsEnumerable("splice")) ) return "array"; if ( "[object Function]" == n || ("undefined" != typeof t.call && "undefined" != typeof t.propertyIsEnumerable && !t.propertyIsEnumerable("call")) ) return "function"; } else if ("function" == e && "undefined" == typeof t.call) return "object"; return e; } function ea(t) { return "array" == da(t); } function fa(t) { var e = da(t); return "array" == e || ("object" == e && "number" == typeof t.length); } function p(t) { return "string" == typeof t; } function ga(t) { return "number" == typeof t; } function ha(t) { return "function" == da(t); } function ia(t) { var e = typeof t; return ("object" == e && null != t) || "function" == e; } function ja(t, e, n) { return t.call.apply(t.bind, arguments); } function ka(t, e, n) { if (!t) throw Error(); if (2 < arguments.length) { var r = Array.prototype.slice.call(arguments, 2); return function () { var n = Array.prototype.slice.call(arguments); return Array.prototype.unshift.apply(n, r), t.apply(e, n); }; } return function () { return t.apply(e, arguments); }; } function q(t, e, n) { return ( (q = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? ja : ka), q.apply(null, arguments) ); } function la(t, e) { function n() {} (n.prototype = e.prototype), (t.wg = e.prototype), (t.prototype = new n()), (t.prototype.constructor = t), (t.sg = function (t, n, r) { for ( var i = Array(arguments.length - 2), o = 2; o < arguments.length; o++ ) i[o - 2] = arguments[o]; return e.prototype[n].apply(t, i); }); } function ma(a) { if ( ((a = String(a)), /^\s*$/.test(a) ? 0 : /^[\],:{}\s\u2028\u2029]*$/.test( a .replace(/\\["\\\/bfnrtu]/g, "@") .replace( /"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]" ) .replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, "") )) ) try { return eval("(" + a + ")"); } catch (t) {} throw Error("Invalid JSON string: " + a); } function na() { this.Fd = void 0; } function oa(t, e, n) { switch (typeof e) { case "string": pa(e, n); break; case "number": n.push(isFinite(e) && !isNaN(e) ? e : "null"); break; case "boolean": n.push(e); break; case "undefined": n.push("null"); break; case "object": if (null == e) { n.push("null"); break; } if (ea(e)) { var r = e.length; n.push("["); for (var i = "", o = 0; o < r; o++) n.push(i), (i = e[o]), oa(t, t.Fd ? t.Fd.call(e, String(o), i) : i, n), (i = ","); n.push("]"); break; } n.push("{"), (r = ""); for (o in e) Object.prototype.hasOwnProperty.call(e, o) && ((i = e[o]), "function" != typeof i && (n.push(r), pa(o, n), n.push(":"), oa(t, t.Fd ? t.Fd.call(e, o, i) : i, n), (r = ","))); n.push("}"); break; case "function": break; default: throw Error("Unknown type: " + typeof e); } } function pa(t, e) { e.push( '"', t.replace(ra, function (t) { if (t in qa) return qa[t]; var e = t.charCodeAt(0), n = "\\u"; return ( 16 > e ? (n += "000") : 256 > e ? (n += "00") : 4096 > e && (n += "0"), (qa[t] = n + e.toString(16)) ); }), '"' ); } function sa() { this.Wa = -1; } function ta() { (this.Wa = -1), (this.Wa = 64), (this.M = []), (this.Wd = []), (this.Af = []), (this.zd = []), (this.zd[0] = 128); for (var t = 1; t < this.Wa; ++t) this.zd[t] = 0; (this.Pd = this.$b = 0), this.reset(); } function ua(t, e, n) { n || (n = 0); var r = t.Af; if (p(e)) for (var i = 0; 16 > i; i++) (r[i] = (e.charCodeAt(n) << 24) | (e.charCodeAt(n + 1) << 16) | (e.charCodeAt(n + 2) << 8) | e.charCodeAt(n + 3)), (n += 4); else for (i = 0; 16 > i; i++) (r[i] = (e[n] << 24) | (e[n + 1] << 16) | (e[n + 2] << 8) | e[n + 3]), (n += 4); for (i = 16; 80 > i; i++) { var o = r[i - 3] ^ r[i - 8] ^ r[i - 14] ^ r[i - 16]; r[i] = 4294967295 & ((o << 1) | (o >>> 31)); } (e = t.M[0]), (n = t.M[1]); for (var a, s = t.M[2], c = t.M[3], l = t.M[4], i = 0; 80 > i; i++) 40 > i ? 20 > i ? ((o = c ^ (n & (s ^ c))), (a = 1518500249)) : ((o = n ^ s ^ c), (a = 1859775393)) : 60 > i ? ((o = (n & s) | (c & (n | s))), (a = 2400959708)) : ((o = n ^ s ^ c), (a = 3395469782)), (o = (((e << 5) | (e >>> 27)) + o + l + a + r[i]) & 4294967295), (l = c), (c = s), (s = 4294967295 & ((n << 30) | (n >>> 2))), (n = e), (e = o); (t.M[0] = (t.M[0] + e) & 4294967295), (t.M[1] = (t.M[1] + n) & 4294967295), (t.M[2] = (t.M[2] + s) & 4294967295), (t.M[3] = (t.M[3] + c) & 4294967295), (t.M[4] = (t.M[4] + l) & 4294967295); } function Da(t, e) { var n = Ea(t, e, void 0); return 0 > n ? null : p(t) ? t.charAt(n) : t[n]; } function Ea(t, e, n) { for (var r = t.length, i = p(t) ? t.split("") : t, o = 0; o < r; o++) if (o in i && e.call(n, i[o], o, t)) return o; return -1; } function Fa(e, n) { var r = xa(e, n); 0 <= r && t.splice.call(e, r, 1); } function Ga(e, n, r) { return 2 >= arguments.length ? t.slice.call(e, n) : t.slice.call(e, n, r); } function Ha(t, e) { t.sort(e || Ia); } function Ia(t, e) { return t > e ? 1 : t < e ? -1 : 0; } function v(t, e) { for (var n in t) e.call(void 0, t[n], n, t); } function Ja(t, e) { var n, r = {}; for (n in t) r[n] = e.call(void 0, t[n], n, t); return r; } function Ka(t, e) { for (var n in t) if (!e.call(void 0, t[n], n, t)) return !1; return !0; } function La(t) { var e, n = 0; for (e in t) n++; return n; } function Ma(t) { for (var e in t) return e; } function Na(t) { var e, n = [], r = 0; for (e in t) n[r++] = t[e]; return n; } function Oa(t) { var e, n = [], r = 0; for (e in t) n[r++] = e; return n; } function Pa(t, e) { for (var n in t) if (t[n] == e) return !0; return !1; } function Qa(t, e, n) { for (var r in t) if (e.call(n, t[r], r, t)) return r; } function Ra(t, e) { var n = Qa(t, e, void 0); return n && t[n]; } function Sa(t) { for (var e in t) return !1; return !0; } function Ta(t) { var e, n = {}; for (e in t) n[e] = t[e]; return n; } function ab(t, e) { if (!fa(t)) throw Error("encodeByteArray takes an array as a parameter"); bb(); for (var n = e ? Za : Ya, r = [], i = 0; i < t.length; i += 3) { var o = t[i], a = i + 1 < t.length, s = a ? t[i + 1] : 0, c = i + 2 < t.length, l = c ? t[i + 2] : 0, u = o >> 2, o = ((3 & o) << 4) | (s >> 4), s = ((15 & s) << 2) | (l >> 6), l = 63 & l; c || ((l = 64), a || (s = 64)), r.push(n[u], n[o], n[s], n[l]); } return r.join(""); } function bb() { if (!Ya) { (Ya = {}), (Za = {}), ($a = {}); for (var t = 0; 65 > t; t++) (Ya[t] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt( t )), (Za[t] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.".charAt( t )), ($a[Za[t]] = t), 62 <= t && ($a[ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt( t ) ] = t); } } function cb(t, e) { if (!t) throw db(e); } function db(t) { return Error( "Firebase Database (" + firebase.SDK_VERSION + ") INTERNAL ASSERT FAILED: " + t ); } function eb(t, e) { return Object.prototype.hasOwnProperty.call(t, e); } function w(t, e) { if (Object.prototype.hasOwnProperty.call(t, e)) return t[e]; } function fb(t, e) { for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e(n, t[n]); } function gb(t) { var e = []; return ( fb(t, function (t, n) { ea(n) ? ya(n, function (n) { e.push(encodeURIComponent(t) + "=" + encodeURIComponent(n)); }) : e.push(encodeURIComponent(t) + "=" + encodeURIComponent(n)); }), e.length ? "&" + e.join("&") : "" ); } function ib() { var t = this; (this.reject = this.resolve = null), (this.ra = new hb(function (e, n) { (t.resolve = e), (t.reject = n); })); } function jb(t, e) { return function (n, r) { n ? t.reject(n) : t.resolve(r), ha(e) && (kb(t.ra), 1 === e.length ? e(n) : e(n, r)); }; } function kb(t) { t.then(void 0, ba); } function lb(t) { return "undefined" != typeof JSON && n(JSON.parse) ? JSON.parse(t) : ma(t); } function x(t) { if ("undefined" != typeof JSON && n(JSON.stringify)) t = JSON.stringify(t); else { var e = []; oa(new na(), t, e), (t = e.join("")); } return t; } function mb(t) { for (var e = [], n = 0, r = 0; r < t.length; r++) { var i = t.charCodeAt(r); 55296 <= i && 56319 >= i && ((i -= 55296), r++, cb(r < t.length, "Surrogate pair missing trail surrogate."), (i = 65536 + (i << 10) + (t.charCodeAt(r) - 56320))), 128 > i ? (e[n++] = i) : (2048 > i ? (e[n++] = (i >> 6) | 192) : (65536 > i ? (e[n++] = (i >> 12) | 224) : ((e[n++] = (i >> 18) | 240), (e[n++] = ((i >> 12) & 63) | 128)), (e[n++] = ((i >> 6) & 63) | 128)), (e[n++] = (63 & i) | 128)); } return e; } function nb(t) { for (var e = 0, n = 0; n < t.length; n++) { var r = t.charCodeAt(n); 128 > r ? e++ : 2048 > r ? (e += 2) : 55296 <= r && 56319 >= r ? ((e += 4), n++) : (e += 3); } return e; } function y(t, e, n, r) { var i; if ( (r < e ? (i = "at least " + e) : r > n && (i = 0 === n ? "none" : "no more than " + n), i) ) throw Error( t + " failed: Was called with " + r + (1 === r ? " argument." : " arguments.") + " Expects " + i + "." ); } function A(t, e, n) { var r = ""; switch (e) { case 1: r = n ? "first" : "First"; break; case 2: r = n ? "second" : "Second"; break; case 3: r = n ? "third" : "Third"; break; case 4: r = n ? "fourth" : "Fourth"; break; default: throw Error( "errorPrefix called with argumentNumber > 4. Need to update it?" ); } return (t = t + " failed: " + (r + " argument ")); } function B(t, e, r, i) { if ((!i || n(r)) && !ha(r)) throw Error(A(t, e, i) + "must be a valid function."); } function ob(t, e, r) { if (n(r) && (!ia(r) || null === r)) throw Error(A(t, e, !0) + "must be a valid context object."); } function pb() { return ( "undefined" != typeof window && !!(window.cordova || window.phonegap || window.PhoneGap) && /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test( "undefined" != typeof navigator && "string" == typeof navigator.userAgent ? navigator.userAgent : "" ) ); } function C(t, e) { (this.name = t), (this.R = e); } function qb(t, e) { return new C(t, e); } function rb(t, e) { return sb(t.name, e.name); } function tb(t, e) { return sb(t, e); } function ub(t) { (this.uc = t), (this.Cd = "firebase:"); } function vb() { this.pc = {}; } function wb(t) { try { if ("undefined" != typeof window && "undefined" != typeof window[t]) { var e = window[t]; return ( e.setItem("firebase:sentinel", "cache"), e.removeItem("firebase:sentinel"), new ub(e) ); } } catch (t) {} return new vb(); } function zb(t, e, n, r, i) { (this.host = t.toLowerCase()), (this.domain = this.host.substr(this.host.indexOf(".") + 1)), (this.Sc = e), (this.pe = n), (this.qg = r), (this.gf = i || ""), (this.$a = xb.get("host:" + t) || this.host); } function Ab(t, e) { e !== t.$a && ((t.$a = e), "s-" === t.$a.substr(0, 2) && xb.set("host:" + t.host, t.$a)); } function Bb(t, e, n) { if ( (D("string" == typeof e, "typeof type must == string"), D("object" == typeof n, "typeof params must == object"), e === Cb) ) e = (t.Sc ? "wss://" : "ws://") + t.$a + "/.ws?"; else { if (e !== Db) throw Error("Unknown connection type: " + e); e = (t.Sc ? "https://" : "http://") + t.$a + "/.lp?"; } t.host !== t.$a && (n.ns = t.pe); var r = []; return ( v(n, function (t, e) { r.push(e + "=" + t); }), e + r.join("&") ); } function Eb(t, e) { return t && "object" == typeof t ? (D(".sv" in t, "Unexpected leaf node or priority contents"), e[t[".sv"]]) : t; } function Fb(t, e) { var n = new Gb(); return ( Hb(t, new E(""), function (t, r) { Ib(n, t, Jb(r, e)); }), n ); } function Jb(t, e) { var n, r = t.C().H(), r = Eb(r, e); if (t.J()) { var i = Eb(t.Ca(), e); return i !== t.Ca() || r !== t.C().H() ? new Kb(i, G(r)) : t; } return ( (n = t), r !== t.C().H() && (n = n.fa(new Kb(r))), t.O(H, function (t, r) { var i = Jb(r, e); i !== r && (n = n.T(t, i)); }), n ); } function Nb(t) { try { var e; bb(); for (var n = $a, r = [], i = 0; i < t.length; ) { var o = n[t.charAt(i++)], a = i < t.length ? n[t.charAt(i)] : 0; ++i; var s = i < t.length ? n[t.charAt(i)] : 64; ++i; var c = i < t.length ? n[t.charAt(i)] : 64; if ((++i, null == o || null == a || null == s || null == c)) throw Error(); r.push((o << 2) | (a >> 4)), 64 != s && (r.push(((a << 4) & 240) | (s >> 2)), 64 != c && r.push(((s << 6) & 192) | c)); } if (8192 > r.length) e = String.fromCharCode.apply(null, r); else { for (t = "", n = 0; n < r.length; n += 8192) t += String.fromCharCode.apply(null, Ga(r, n, n + 8192)); e = t; } return e; } catch (t) { I("base64Decode failed: ", t); } return null; } function Ob(t) { var e = mb(t); (t = new ta()), t.update(e); var e = [], n = 8 * t.Pd; 56 > t.$b ? t.update(t.zd, 56 - t.$b) : t.update(t.zd, t.Wa - (t.$b - 56)); for (var r = t.Wa - 1; 56 <= r; r--) (t.Wd[r] = 255 & n), (n /= 256); for (ua(t, t.Wd), r = n = 0; 5 > r; r++) for (var i = 24; 0 <= i; i -= 8) (e[n] = (t.M[r] >> i) & 255), ++n; return ab(e); } function Pb(t) { for (var e = "", n = 0; n < arguments.length; n++) (e = fa(arguments[n]) ? e + Pb.apply(null, arguments[n]) : "object" == typeof arguments[n] ? e + x(arguments[n]) : e + arguments[n]), (e += " "); return e; } function Sb(t, e) { cb( !e || !0 === t || !1 === t, "Can't turn on custom loggers persistently." ), !0 === t ? ("undefined" != typeof console && ("function" == typeof console.log ? (Qb = q(console.log, console)) : "object" == typeof console.log && (Qb = function (t) { console.log(t); })), e && yb.set("logging_enabled", !0)) : ha(t) ? (Qb = t) : ((Qb = null), yb.remove("logging_enabled")); } function I(t) { if ( (!0 === Rb && ((Rb = !1), null === Qb && !0 === yb.get("logging_enabled") && Sb(!0)), Qb) ) { var e = Pb.apply(null, arguments); Qb(e); } } function Tb(t) { return function () { I(t, arguments); }; } function Ub(t) { if ("undefined" != typeof console) { var e = "FIREBASE INTERNAL ERROR: " + Pb.apply(null, arguments); "undefined" != typeof console.error ? console.error(e) : console.log(e); } } function Vb(t) { var e = Pb.apply(null, arguments); throw Error("FIREBASE FATAL ERROR: " + e); } function J(t) { if ("undefined" != typeof console) { var e = "FIREBASE WARNING: " + Pb.apply(null, arguments); "undefined" != typeof console.warn ? console.warn(e) : console.log(e); } } function Wb(t) { var e, n, r, i, o, a = t; if (((o = n = t = e = ""), (r = !0), (i = "https"), p(a))) { var s = a.indexOf("//"); for ( 0 <= s && ((i = a.substring(0, s - 1)), (a = a.substring(s + 2))), s = a.indexOf("/"), -1 === s && (s = a.length), e = a.substring(0, s), o = "", a = a.substring(s).split("/"), s = 0; s < a.length; s++ ) if (0 < a[s].length) { var c = a[s]; try { c = decodeURIComponent(c.replace(/\+/g, " ")); } catch (t) {} o += "/" + c; } (a = e.split(".")), 3 === a.length ? ((t = a[1]), (n = a[0].toLowerCase())) : 2 === a.length && (t = a[0]), (s = e.indexOf(":")), 0 <= s && (r = "https" === i || "wss" === i); } return ( "firebase" === t && Vb( e + " is no longer supported. Please use .firebaseio.com instead" ), (n && "undefined" != n) || Vb( "Cannot parse Firebase url. Please use https://.firebaseio.com" ), r || ("undefined" != typeof window && window.location && window.location.protocol && -1 !== window.location.protocol.indexOf("https:") && J( "Insecure Firebase access from a secure page. Please use https in calls to new Firebase()." )), { jc: new zb(e, r, n, "ws" === i || "wss" === i), path: new E(o) } ); } function Xb(t) { return ( ga(t) && (t != t || t == Number.POSITIVE_INFINITY || t == Number.NEGATIVE_INFINITY) ); } function Yb(t) { if ("complete" === document.readyState) t(); else { var e = !1, n = function () { document.body ? e || ((e = !0), t()) : setTimeout(n, Math.floor(10)); }; document.addEventListener ? (document.addEventListener("DOMContentLoaded", n, !1), window.addEventListener("load", n, !1)) : document.attachEvent && (document.attachEvent("onreadystatechange", function () { "complete" === document.readyState && n(); }), window.attachEvent("onload", n)); } } function sb(t, e) { if (t === e) return 0; if ("[MIN_NAME]" === t || "[MAX_NAME]" === e) return -1; if ("[MIN_NAME]" === e || "[MAX_NAME]" === t) return 1; var n = Zb(t), r = Zb(e); return null !== n ? null !== r ? 0 == n - r ? t.length - e.length : n - r : -1 : null !== r ? 1 : t < e ? -1 : 1; } function $b(t, e) { if (e && t in e) return e[t]; throw Error("Missing required key (" + t + ") in object: " + x(e)); } function ac(t) { if ("object" != typeof t || null === t) return x(t); var e, n = []; for (e in t) n.push(e); n.sort(), (e = "{"); for (var r = 0; r < n.length; r++) 0 !== r && (e += ","), (e += x(n[r])), (e += ":"), (e += ac(t[n[r]])); return e + "}"; } function bc(t, e) { if (t.length <= e) return [t]; for (var n = [], r = 0; r < t.length; r += e) r + e > t ? n.push(t.substring(r, t.length)) : n.push(t.substring(r, r + e)); return n; } function cc(t, e) { if (ea(t)) for (var n = 0; n < t.length; ++n) e(n, t[n]); else v(t, e); } function dc(t) { D(!Xb(t), "Invalid JSON number"); var e, n, r, i; for ( 0 === t ? ((r = n = 0), (e = -(1 / 0) === 1 / t ? 1 : 0)) : ((e = 0 > t), (t = Math.abs(t)), t >= Math.pow(2, -1022) ? ((r = Math.min(Math.floor(Math.log(t) / Math.LN2), 1023)), (n = r + 1023), (r = Math.round(t * Math.pow(2, 52 - r) - Math.pow(2, 52)))) : ((n = 0), (r = Math.round(t / Math.pow(2, -1074))))), i = [], t = 52; t; --t ) i.push(r % 2 ? 1 : 0), (r = Math.floor(r / 2)); for (t = 11; t; --t) i.push(n % 2 ? 1 : 0), (n = Math.floor(n / 2)); for ( i.push(e ? 1 : 0), i.reverse(), e = i.join(""), n = "", t = 0; 64 > t; t += 8 ) (r = parseInt(e.substr(t, 8), 2).toString(16)), 1 === r.length && (r = "0" + r), (n += r); return n.toLowerCase(); } function Zb(t) { return ec.test(t) && ((t = Number(t)), -2147483648 <= t && 2147483647 >= t) ? t : null; } function fc(t) { try { t(); } catch (t) { setTimeout(function () { throw ( (J("Exception was thrown by user callback.", t.stack || ""), t) ); }, Math.floor(0)); } } function gc(t, e, n) { Object.defineProperty(t, e, { get: n }); } function hc(t, e) { var n = setTimeout(t, e); return "object" == typeof n && n.unref && n.unref(), n; } function ic(t) { var e = {}, n = {}, r = {}, i = ""; try { var o = t.split("."), e = lb(Nb(o[0]) || ""), n = lb(Nb(o[1]) || ""), i = o[2], r = n.d || {}; delete n.d; } catch (t) {} return { tg: e, Je: n, data: r, mg: i }; } function jc(t) { t = ic(t); var e = t.Je; return !!t.mg && !!e && "object" == typeof e && e.hasOwnProperty("iat"); } function kc(t) { return (t = ic(t).Je), "object" == typeof t && !0 === w(t, "admin"); } function lc() {} function nc(t) { return q(t.compare, t); } function pc(t) { D( !t.e() && ".priority" !== K(t), "Can't create PathIndex with empty path or .priority key" ), (this.bc = t); } function rc() {} function sc() {} function uc() {} function xc(t, e) { (this.od = t), (this.cc = e); } function yc(t, e, n) { var r = Ja(t.od, function (r, i) { var o = w(t.cc, i); if ((D(o, "Missing index implementation for " + i), r === mc)) { if (o.xc(e.R)) { for (var a = [], s = n.Wb(qb), c = M(s); c; ) c.name != e.name && a.push(c), (c = M(s)); return a.push(e), zc(a, nc(o)); } return mc; } return ( (o = n.get(e.name)), (a = r), o && (a = a.remove(new C(e.name, o))), a.Oa(e, e.R) ); }); return new xc(r, t.cc); } function Ac(t, e, n) { var r = Ja(t.od, function (t) { if (t === mc) return t; var r = n.get(e.name); return r ? t.remove(new C(e.name, r)) : t; }); return new xc(r, t.cc); } function Kb(t, e) { (this.B = t), D( n(this.B) && null !== this.B, "LeafNode shouldn't be created with null/undefined value." ), (this.aa = e || L), Cc(this.aa), (this.Db = null); } function Gc() { this.set = {}; } function Hc(t, e) { v(t.set, function (t, n) { e(n, t); }); } function Ic(t) { D(ea(t) && 0 < t.length, "Requires a non-empty array"), (this.Bf = t), (this.Dc = {}); } function Jc(t, e) { D( Da(t.Bf, function (t) { return t === e; }), "Unknown event: " + e ); } function Lc() { if ( (Ic.call(this, ["online"]), (this.hc = !0), "undefined" != typeof window && "undefined" != typeof window.addEventListener && !pb()) ) { var t = this; window.addEventListener( "online", function () { t.hc || ((t.hc = !0), t.Ge("online", !0)); }, !1 ), window.addEventListener( "offline", function () { t.hc && ((t.hc = !1), t.Ge("online", !1)); }, !1 ); } } function Mc() { Ic.call(this, ["visible"]); var t, e; if ( ("undefined" != typeof document && "undefined" != typeof document.addEventListener && ("undefined" != typeof document.hidden ? ((e = "visibilitychange"), (t = "hidden")) : "undefined" != typeof document.mozHidden ? ((e = "mozvisibilitychange"), (t = "mozHidden")) : "undefined" != typeof document.msHidden ? ((e = "msvisibilitychange"), (t = "msHidden")) : "undefined" != typeof document.webkitHidden && ((e = "webkitvisibilitychange"), (t = "webkitHidden"))), (this.Mb = !0), e) ) { var n = this; document.addEventListener( e, function () { var e = !document[t]; e !== n.Mb && ((n.Mb = e), n.Ge("visible", e)); }, !1 ); } } function E(t, e) { if (1 == arguments.length) { this.o = t.split("/"); for (var n = 0, r = 0; r < this.o.length; r++) 0 < this.o[r].length && ((this.o[n] = this.o[r]), n++); (this.o.length = n), (this.Y = 0); } else (this.o = t), (this.Y = e); } function P(t, e) { var n = K(t); if (null === n) return e; if (n === K(e)) return P(N(t), N(e)); throw Error( "INTERNAL ERROR: innerPath (" + e + ") is not within outerPath (" + t + ")" ); } function Nc(t, e) { for ( var n = t.slice(), r = e.slice(), i = 0; i < n.length && i < r.length; i++ ) { var o = sb(n[i], r[i]); if (0 !== o) return o; } return n.length === r.length ? 0 : n.length < r.length ? -1 : 1; } function K(t) { return t.Y >= t.o.length ? null : t.o[t.Y]; } function Ec(t) { return t.o.length - t.Y; } function N(t) { var e = t.Y; return e < t.o.length && e++, new E(t.o, e); } function Oc(t) { return t.Y < t.o.length ? t.o[t.o.length - 1] : null; } function Pc(t, e) { (this.Qa = t.slice()), (this.Ha = Math.max(1, this.Qa.length)), (this.Qe = e); for (var n = 0; n < this.Qa.length; n++) this.Ha += nb(this.Qa[n]); Qc(this); } function Qc(t) { if (768 < t.Ha) throw Error( t.Qe + "has a key path longer than 768 bytes (" + t.Ha + ")." ); if (32 < t.Qa.length) throw Error( t.Qe + "path specified exceeds the maximum depth that can be written (32) or object contains a cycle " + Rc(t) ); } function Rc(t) { return 0 == t.Qa.length ? "" : "in property '" + t.Qa.join(".") + "'"; } function Sc() { (this.children = {}), (this.bd = 0), (this.value = null); } function Tc(t, e, n) { (this.ud = t ? t : ""), (this.Pc = e ? e : null), (this.A = n ? n : new Sc()); } function Uc(t, e) { for ( var n, r = e instanceof E ? e : new E(e), i = t; null !== (n = K(r)); ) (i = new Tc(n, i, w(i.A.children, n) || new Sc())), (r = N(r)); return i; } function Vc(t, e) { D("undefined" != typeof e, "Cannot set value to undefined"), (t.A.value = e), Wc(t); } function Xc(t, e, n, r) { n && !r && e(t), t.O(function (t) { Xc(t, e, !0, r); }), n && r && e(t); } function Yc(t, e) { for (var n = t.parent(); null !== n && !e(n); ) n = n.parent(); } function Wc(t) { if (null !== t.Pc) { var e = t.Pc, n = t.ud, r = t.e(), i = eb(e.A.children, n); r && i ? (delete e.A.children[n], e.A.bd--, Wc(e)) : r || i || ((e.A.children[n] = t.A), e.A.bd++, Wc(e)); } } function Zc(t, e) { (this.La = t), (this.ba = e ? e : $c); } function ad(t, e) { for (var n, r = t.ba, i = null; !r.e(); ) { if (((n = t.La(e, r.key)), 0 === n)) { if (r.left.e()) return i ? i.key : null; for (r = r.left; !r.right.e(); ) r = r.right; return r.key; } 0 > n ? (r = r.left) : 0 < n && ((i = r), (r = r.right)); } throw Error( "Attempted to find predecessor key for a nonexistent key. What gives?" ); } function bd(t, e, n, r, i) { for (this.Hd = i || null, this.le = r, this.Pa = [], i = 1; !t.e(); ) if (((i = e ? n(t.key, e) : 1), r && (i *= -1), 0 > i)) t = this.le ? t.left : t.right; else { if (0 === i) { this.Pa.push(t); break; } this.Pa.push(t), (t = this.le ? t.right : t.left); } } function M(t) { if (0 === t.Pa.length) return null; var e, n = t.Pa.pop(); if ( ((e = t.Hd ? t.Hd(n.key, n.value) : { key: n.key, value: n.value }), t.le) ) for (n = n.left; !n.e(); ) t.Pa.push(n), (n = n.right); else for (n = n.right; !n.e(); ) t.Pa.push(n), (n = n.left); return e; } function cd(t) { if (0 === t.Pa.length) return null; var e; return ( (e = t.Pa), (e = e[e.length - 1]), t.Hd ? t.Hd(e.key, e.value) : { key: e.key, value: e.value } ); } function dd(t, e, n, r, i) { (this.key = t), (this.value = e), (this.color = null == n || n), (this.left = null != r ? r : $c), (this.right = null != i ? i : $c); } function ed(t) { return t.left.e() ? t : ed(t.left); } function hd(t) { return t.left.e() ? $c : (t.left.ea() || t.left.left.ea() || (t = id(t)), (t = t.X(null, null, null, hd(t.left), null)), gd(t)); } function gd(t) { return ( t.right.ea() && !t.left.ea() && (t = ld(t)), t.left.ea() && t.left.left.ea() && (t = jd(t)), t.left.ea() && t.right.ea() && (t = kd(t)), t ); } function id(t) { return ( (t = kd(t)), t.right.left.ea() && ((t = t.X(null, null, null, null, jd(t.right))), (t = ld(t)), (t = kd(t))), t ); } function ld(t) { return t.right.X( null, null, t.color, t.X(null, null, !0, null, t.right.left), null ); } function jd(t) { return t.left.X( null, null, t.color, null, t.X(null, null, !0, t.left.right, null) ); } function kd(t) { return t.X( null, null, !t.color, t.left.X(null, null, !t.left.color, null, null), t.right.X(null, null, !t.right.color, null, null) ); } function md() {} function O(t, e, n) { (this.k = t), (this.aa = e) && Cc(this.aa), t.e() && D(!this.aa || this.aa.e(), "An empty node cannot have a priority"), (this.yb = n), (this.Db = null); } function pd(t, e) { var n; return ( (n = (n = od(t, e)) ? (n = n.Gc()) && n.name : t.k.Gc()), n ? new C(n, t.k.get(n)) : null ); } function qd(t, e) { var n; return ( (n = (n = od(t, e)) ? (n = n.ec()) && n.name : t.k.ec()), n ? new C(n, t.k.get(n)) : null ); } function od(t, e) { return e === tc ? null : t.yb.get(e.toString()); } function G(t, e) { if (null === t) return L; var n = null; if ( ("object" == typeof t && ".priority" in t ? (n = t[".priority"]) : "undefined" != typeof e && (n = e), D( null === n || "string" == typeof n || "number" == typeof n || ("object" == typeof n && ".sv" in n), "Invalid priority type found: " + typeof n ), "object" == typeof t && ".value" in t && null !== t[".value"] && (t = t[".value"]), "object" != typeof t || ".sv" in t) ) return new Kb(t, G(n)); if (t instanceof Array) { var r = L, i = t; return ( v(i, function (t, e) { if (eb(i, e) && "." !== e.substring(0, 1)) { var n = G(t); (!n.J() && n.e()) || (r = r.T(e, n)); } }), r.fa(G(n)) ); } var o = [], a = !1, s = t; if ( (fb(s, function (t) { if ("string" != typeof t || "." !== t.substring(0, 1)) { var e = G(s[t]); e.e() || ((a = a || !e.C().e()), o.push(new C(t, e))); } }), 0 == o.length) ) return L; var c = zc( o, rb, function (t) { return t.name; }, tb ); if (a) { var l = zc(o, nc(H)); return new O(c, G(n), new xc({ ".priority": l }, { ".priority": H })); } return new O(c, G(n), Bc); } function sd(t) { (this.count = parseInt(Math.log(t + 1) / rd, 10)), (this.Oe = this.count - 1), (this.Cf = (t + 1) & parseInt(Array(this.count + 1).join("1"), 2)); } function td(t) { var e = !(t.Cf & (1 << t.Oe)); return t.Oe--, e; } function zc(t, e, n, r) { function i(e, r) { var o = r - e; if (0 == o) return null; if (1 == o) { var a = t[e], s = n ? n(a) : a; return new dd(s, a.R, !1, null, null); } var a = parseInt(o / 2, 10) + e, o = i(e, a), c = i(a + 1, r), a = t[a], s = n ? n(a) : a; return new dd(s, a.R, !1, o, c); } t.sort(e); var o = (function (e) { function r(e, r) { var c = s - e, l = s; s -= e; var l = i(c + 1, l), c = t[c], u = n ? n(c) : c, l = new dd(u, c.R, r, null, l); o ? (o.left = l) : (a = l), (o = l); } for (var o = null, a = null, s = t.length, c = 0; c < e.count; ++c) { var l = td(e), u = Math.pow(2, e.count - (c + 1)); l ? r(u, !1) : (r(u, !1), r(u, !0)); } return a; })(new sd(t.length)); return null !== o ? new Zc(r || e, o) : new Zc(r || e); } function Fc(t) { return "number" == typeof t ? "number:" + dc(t) : "string:" + t; } function Cc(t) { if (t.J()) { var e = t.H(); D( "string" == typeof e || "number" == typeof e || ("object" == typeof e && eb(e, ".sv")), "Priority must be a string or number." ); } else D(t === qc || t.e(), "priority of unexpected type."); D( t === qc || t.C().e(), "Priority nodes can't have a priority of their own." ); } function ud() { O.call(this, new Zc(tb), L, Bc); } function vd(t, e) { (this.value = t), (this.children = e || wd); } function xd(t) { var e = R; return ( v(t, function (t, n) { e = e.set(new E(n), t); }), e ); } function yd(t, e, n) { if (null != t.value && n(t.value)) return { path: Q, value: t.value }; if (e.e()) return null; var r = K(e); return ( (t = t.children.get(r)), null !== t ? ((e = yd(t, N(e), n)), null != e ? { path: new E(r).n(e.path), value: e.value } : null) : null ); } function zd(t, e) { return yd(t, e, function () { return !0; }); } function Ad(t, e, n) { if (e.e()) return n; var r = K(e); return ( (e = Ad(t.children.get(r) || R, N(e), n)), (r = e.e() ? t.children.remove(r) : t.children.Oa(r, e)), new vd(t.value, r) ); } function Bd(t, e) { return Cd(t, Q, e); } function Cd(t, e, n) { var r = {}; return ( t.children.ha(function (t, i) { r[t] = Cd(i, e.n(t), n); }), n(e, t.value, r) ); } function Dd(t, e, n) { return Ed(t, e, Q, n); } function Ed(t, e, n, r) { var i = !!t.value && r(n, t.value); return i ? i : e.e() ? null : ((i = K(e)), (t = t.children.get(i)) ? Ed(t, N(e), n.n(i), r) : null); } function Fd(t, e, n) { Gd(t, e, Q, n); } function Gd(t, e, n, r) { if (e.e()) return t; t.value && r(n, t.value); var i = K(e); return (t = t.children.get(i)) ? Gd(t, N(e), n.n(i), r) : R; } function Hd(t, e) { Id(t, Q, e); } function Id(t, e, n) { t.children.ha(function (t, r) { Id(r, e.n(t), n); }), t.value && n(e, t.value); } function Jd(t, e) { t.children.ha(function (t, n) { n.value && e(t, n.value); }); } function Md(t) { return p(t) && 0 !== t.length && !Kd.test(t); } function Nd(t) { return ( null === t || p(t) || (ga(t) && !Xb(t)) || (ia(t) && eb(t, ".sv")) ); } function Od(t, e, r, i) { (i && !n(e)) || Pd(A(t, 1, i), e, r); } function Pd(t, e, r) { if ((r instanceof E && (r = new Pc(r, t)), !n(e))) throw Error(t + "contains undefined " + Rc(r)); if (ha(e)) throw Error( t + "contains a function " + Rc(r) + " with contents: " + e.toString() ); if (Xb(e)) throw Error(t + "contains " + e.toString() + " " + Rc(r)); if (p(e) && e.length > 10485760 / 3 && 10485760 < nb(e)) throw Error( t + "contains a string greater than 10485760 utf8 bytes " + Rc(r) + " ('" + e.substring(0, 50) + "...')" ); if (ia(e)) { var i = !1, o = !1; if ( (fb(e, function (e, n) { if (".value" === e) i = !0; else if (".priority" !== e && ".sv" !== e && ((o = !0), !Md(e))) throw Error( t + " contains an invalid key (" + e + ") " + Rc(r) + '. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"' ); r.push(e), Pd(t, n, r), r.pop(); }), i && o) ) throw Error( t + ' contains ".value" child ' + Rc(r) + " in addition to actual children." ); } } function Qd(t, e) { var n, r; for (n = 0; n < e.length; n++) { r = e[n]; for (var i = r.slice(), o = 0; o < i.length; o++) if ((".priority" !== i[o] || o !== i.length - 1) && !Md(i[o])) throw Error( t + "contains an invalid key (" + i[o] + ") in path " + r.toString() + '. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"' ); } for (e.sort(Nc), i = null, n = 0; n < e.length; n++) { if (((r = e[n]), null !== i && i.contains(r))) throw Error( t + "contains a path " + i.toString() + " that is ancestor of another path " + r.toString() ); i = r; } } function Rd(t, e, n) { var r = A(t, 1, !1); if (!ia(e) || ea(e)) throw Error( r + " must be an object containing the children to replace." ); var i = []; fb(e, function (t, e) { var o = new E(t); if ((Pd(r, e, n.n(o)), ".priority" === Oc(o) && !Nd(e))) throw Error( r + "contains an invalid value for '" + o.toString() + "', which must be a valid Firebase priority (a string, finite number, server value, or null)." ); i.push(o); }), Qd(r, i); } function Sd(t, e, n) { if (Xb(n)) throw Error( A(t, e, !1) + "is " + n.toString() + ", but must be a valid Firebase priority (a string, finite number, server value, or null)." ); if (!Nd(n)) throw Error( A(t, e, !1) + "must be a valid Firebase priority (a string, finite number, server value, or null)." ); } function Td(t, e, r) { if (!r || n(e)) switch (e) { case "value": case "child_added": case "child_removed": case "child_changed": case "child_moved": break; default: throw Error( A(t, 1, r) + 'must be a valid event type: "value", "child_added", "child_removed", "child_changed", or "child_moved".' ); } } function Ud(t, e) { if (n(e) && !Md(e)) throw Error( A(t, 2, !0) + 'was an invalid key: "' + e + '". Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").' ); } function Vd(t, e) { if (!p(e) || 0 === e.length || Ld.test(e)) throw Error( A(t, 1, !1) + 'was an invalid path: "' + e + '". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"' ); } function Wd(t, e) { if (".info" === K(e)) throw Error(t + " failed: Can't modify data under /.info/"); } function Xd(t, e) { var n, r = e.path.toString(); if ( (!(n = !p(e.jc.host) || 0 === e.jc.host.length || !Md(e.jc.pe)) && (n = 0 !== r.length) && (r && (r = r.replace(/^\/*\.info(\/|$)/, "/")), (n = !(p(r) && 0 !== r.length && !Ld.test(r)))), n) ) throw Error( A(t, 1, !1) + 'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".' ); } function Gb() { this.k = this.B = null; } function Ib(t, e, n) { if (e.e()) (t.B = n), (t.k = null); else if (null !== t.B) t.B = t.B.F(e, n); else { null == t.k && (t.k = new Gc()); var r = K(e); t.k.contains(r) || t.k.add(r, new Gb()), (t = t.k.get(r)), (e = N(e)), Ib(t, e, n); } } function Yd(t, e) { if (e.e()) return (t.B = null), (t.k = null), !0; if (null !== t.B) { if (t.B.J()) return !1; var n = t.B; return ( (t.B = null), n.O(H, function (e, n) { Ib(t, new E(e), n); }), Yd(t, e) ); } return ( null === t.k || ((n = K(e)), (e = N(e)), t.k.contains(n) && Yd(t.k.get(n), e) && t.k.remove(n), !!t.k.e() && ((t.k = null), !0)) ); } function Hb(t, e, n) { null !== t.B ? n(e, t.B) : t.O(function (t, r) { var i = new E(e.toString() + "/" + t); Hb(r, i, n); }); } function Zd(t, e) { (this.type = $d), (this.source = t), (this.path = e); } function ae(t, e, n) { (this.type = be), (this.source = t), (this.path = e), (this.children = n); } function de(t, e, n) { (this.type = ee), (this.source = fe), (this.path = t), (this.Ob = e), (this.Id = n); } function ce(t, e, n) { (this.type = ge), (this.source = t), (this.path = e), (this.Ga = n); } function he(t, e, n, r) { (this.ee = t), (this.Se = e), (this.Hb = n), (this.Ee = r), D(!r || e, "Tagged queries must be from server."); } function je(t, e, n) { (this.A = t), (this.da = e), (this.Sb = n); } function ke(t) { return t.da; } function le(t) { return t.Sb; } function me(t, e) { return e.e() ? t.da && !t.Sb : ne(t, K(e)); } function ne(t, e) { return (t.da && !t.Sb) || t.A.Da(e); } function oe(t, e) { (this.N = t), (this.Ld = e); } function pe(t, e, n, r) { return new oe(new je(e, n, r), t.Ld); } function qe(t) { return t.N.da ? t.N.j() : null; } function re(t) { return t.Ld.da ? t.Ld.j() : null; } function se() {} function ue(t, e, n) { (this.xf = t), (this.Ka = e), (this.yd = n); } function ve(t, e) { (this.Sd = t), (this.Df = e); } function we(t) { this.U = t; } function De(t, e, n, r, i, o) { var a = e.N; if (null != r.lc(n)) return e; var s; if (n.e()) D( ke(e.w()), "If change path is empty, we must have complete server data" ), le(e.w()) ? ((i = re(e)), (r = r.rc(i instanceof O ? i : L))) : (r = r.Aa(re(e))), (o = t.U.ya(e.N.j(), r, o)); else { var c = K(n); if (".priority" == c) D( 1 == Ec(n), "Can't have a priority with additional path components" ), (o = a.j()), (s = e.w().j()), (r = r.ad(n, o, s)), (o = null != r ? t.U.fa(o, r) : a.j()); else { var l = N(n); ne(a, c) ? ((s = e.w().j()), (r = r.ad(n, a.j(), s)), (r = null != r ? a.j().Q(c).F(l, r) : a.j().Q(c))) : (r = r.qc(c, e.w())), (o = null != r ? t.U.F(a.j(), c, r, l, i, o) : a.j()); } } return pe(e, o, a.da || n.e(), t.U.Na()); } function ze(t, e, n, r, i, o, a, s) { var c = e.w(); if (((a = a ? t.U : t.U.Ub()), n.e())) r = a.ya(c.j(), r, null); else if (a.Na() && !c.Sb) (r = c.j().F(n, r)), (r = a.ya(c.j(), r, null)); else { var l = K(n); if (!me(c, n) && 1 < Ec(n)) return e; var u = N(n); (r = c.j().Q(l).F(u, r)), (r = ".priority" == l ? a.fa(c.j(), r) : a.F(c.j(), l, r, u, te, null)); } return ( (c = c.da || n.e()), (e = new oe(e.N, new je(r, c, a.Na()))), De(t, e, n, i, new ue(i, e, o), s) ); } function ye(t, e, n, r, i, o, a) { var s = e.N; if (((i = new ue(i, e, o)), n.e())) (a = t.U.ya(e.N.j(), r, a)), (t = pe(e, a, !0, t.U.Na())); else if (((o = K(n)), ".priority" === o)) (a = t.U.fa(e.N.j(), r)), (t = pe(e, a, s.da, s.Sb)); else { n = N(n); var c = s.j().Q(o); if (!n.e()) { var l = i.Te(o); r = null != l ? ".priority" === Oc(n) && l.P(n.parent()).e() ? l : l.F(n, r) : L; } c.Z(r) ? (t = e) : ((a = t.U.F(s.j(), o, r, n, i, a)), (t = pe(e, a, s.da, t.U.Na()))); } return t; } function Ae(t, e, n, r, i, o, a) { var s = e; return ( Hd(r, function (r, c) { var l = n.n(r); ne(e.N, K(l)) && (s = ye(t, s, l, c, i, o, a)); }), Hd(r, function (r, c) { var l = n.n(r); ne(e.N, K(l)) || (s = ye(t, s, l, c, i, o, a)); }), s ); } function Fe(t, e) { return ( Hd(e, function (e, n) { t = t.F(e, n); }), t ); } function Be(t, e, n, r, i, o, a, s) { if (e.w().j().e() && !ke(e.w())) return e; var c = e; n = n.e() ? r : Ad(R, n, r); var l = e.w().j(); return ( n.children.ha(function (n, r) { if (l.Da(n)) { var u = e.w().j().Q(n), u = Fe(u, r); c = ze(t, c, new E(n), u, i, o, a, s); } }), n.children.ha(function (n, r) { var u = !ne(e.w(), n) && null == r.value; l.Da(n) || u || ((u = e.w().j().Q(n)), (u = Fe(u, r)), (c = ze(t, c, new E(n), u, i, o, a, s))); }), c ); } function Ce(t, e, n, r, i, o, a) { if (null != i.lc(n)) return e; var s = le(e.w()), c = e.w(); if (null != r.value) { if ((n.e() && c.da) || me(c, n)) return ze(t, e, n, c.j().P(n), i, o, s, a); if (n.e()) { var l = R; return ( c.j().O(tc, function (t, e) { l = l.set(new E(t), e); }), Be(t, e, n, l, i, o, s, a) ); } return e; } return ( (l = R), Hd(r, function (t) { var e = n.n(t); me(c, e) && (l = l.set(t, c.j().P(e))); }), Be(t, e, n, l, i, o, s, a) ); } function Ge(t) { (this.V = t), (this.g = t.m.g); } function He(t, e, n, r) { var i = [], o = []; return ( ya(e, function (e) { e.type === Ie && t.g.nd(e.qe, e.Ja) && o.push(new S(Je, e.Ja, e.Xa)); }), Ke(t, i, Le, e, r, n), Ke(t, i, Me, e, r, n), Ke(t, i, Je, o, r, n), Ke(t, i, Ie, e, r, n), Ke(t, i, Ne, e, r, n), i ); } function Ke(t, e, n, r, i, o) { (r = za(r, function (t) { return t.type === n; })), Ha(r, q(t.Ff, t)), ya(r, function (n) { var r = Oe(t, n, o); ya(i, function (i) { i.nf(n.type) && e.push(i.createEvent(r, t.V)); }); }); } function Oe(t, e, n) { return ( "value" !== e.type && "child_removed" !== e.type && (e.Dd = n.Ve(e.Xa, e.Ja, t.g)), e ); } function Pe(t, e) { this.V = t; var n = t.m, r = new Qe(n.g), n = T(n) ? new Qe(n.g) : n.xa ? new Re(n) : new Se(n); this.hf = new we(n); var i = e.w(), o = e.N, a = r.ya(L, i.j(), null), s = n.ya(L, o.j(), null); (this.Ka = new oe(new je(s, o.da, n.Na()), new je(a, i.da, r.Na()))), (this.Za = []), (this.Jf = new Ge(t)); } function Te(t) { return t.V; } function Ve(t, e) { var n = t.Ka.N, r = []; return ( n.j().J() || n.j().O(H, function (t, e) { r.push(new S(Me, e, t)); }), n.da && r.push(Ee(n.j())), Ue(t, r, n.j(), e) ); } function Ue(t, e, n, r) { return He(t.Jf, e, n, r ? [r] : t.Za); } function We(t, e, n, r) { (this.ae = e), (this.Md = n), (this.Dd = r), (this.hd = t); } function Xe(t, e, n) { (this.ae = t), (this.error = e), (this.path = n); } function Ye() { this.vb = []; } function Ze(t, e) { for (var n = null, r = 0; r < e.length; r++) { var i = e[r], o = i.Yb(); null === n || o.Z(n.Yb()) || (t.vb.push(n), (n = null)), null === n && (n = new $e(o)), n.add(i); } n && t.vb.push(n); } function af(t, e, n) { Ze(t, n), bf(t, function (t) { return t.Z(e); }); } function cf(t, e, n) { Ze(t, n), bf(t, function (t) { return t.contains(e) || e.contains(t); }); } function bf(t, e) { for (var n = !0, r = 0; r < t.vb.length; r++) { var i = t.vb[r]; if (i) if (((i = i.Yb()), e(i))) { for (var i = t.vb[r], o = 0; o < i.jd.length; o++) { var a = i.jd[o]; if (null !== a) { i.jd[o] = null; var s = a.Tb(); Qb && I("event: " + a.toString()), fc(s); } } t.vb[r] = null; } else n = !1; } n && (t.vb = []); } function $e(t) { (this.qa = t), (this.jd = []); } function Qe(t) { this.g = t; } function Se(t) { (this.he = new Qe(t.g)), (this.g = t.g); var e; t.ka ? ((e = ef(t)), (e = t.g.Ec(ff(t), e))) : (e = t.g.Hc()), (this.Uc = e), t.na ? ((e = gf(t)), (t = t.g.Ec(hf(t), e))) : (t = t.g.Fc()), (this.vc = t); } function Re(t) { (this.sa = new Se(t)), (this.g = t.g), D(t.xa, "Only valid if limit has been set"), (this.oa = t.oa), (this.Ib = !jf(t)); } function kf(t, e, n, r, i, o) { var a; if (t.Ib) { var s = nc(t.g); a = function (t, e) { return s(e, t); }; } else a = nc(t.g); D(e.Eb() == t.oa, ""); var c = new C(n, r), l = t.Ib ? pd(e, t.g) : qd(e, t.g), u = t.sa.matches(c); if (e.Da(n)) { for ( var f = e.Q(n), l = i.fe(t.g, l, t.Ib); null != l && (l.name == n || e.Da(l.name)); ) l = i.fe(t.g, l, t.Ib); return ( (i = null == l ? 1 : a(l, c)), u && !r.e() && 0 <= i ? (null != o && df(o, new S(Ie, r, n, f)), e.T(n, r)) : (null != o && df(o, new S(Le, f, n)), (e = e.T(n, L)), null != l && t.sa.matches(l) ? (null != o && df(o, new S(Me, l.R, l.name)), e.T(l.name, l.R)) : e) ); } return r.e() ? e : u && 0 <= a(l, c) ? (null != o && (df(o, new S(Le, l.R, l.name)), df(o, new S(Me, r, n))), e.T(n, r).T(l.name, L)) : e; } function S(t, e, n, r) { (this.type = t), (this.Ja = e), (this.Xa = n), (this.qe = r), (this.Dd = void 0); } function Ee(t) { return new S(Ne, t); } function xe() { this.fb = {}; } function df(t, e) { var n = e.type, r = e.Xa; D( n == Me || n == Ie || n == Le, "Only child changes supported for tracking" ), D( ".priority" !== r, "Only non-priority child changes can be tracked." ); var i = w(t.fb, r); if (i) { var o = i.type; if (n == Me && o == Le) t.fb[r] = new S(Ie, e.Ja, r, i.Ja); else if (n == Le && o == Me) delete t.fb[r]; else if (n == Le && o == Ie) t.fb[r] = new S(Le, i.qe, r); else if (n == Ie && o == Me) t.fb[r] = new S(Me, e.Ja, r); else { if (n != Ie || o != Ie) throw Mb( "Illegal combination of changes: " + e + " occurred after " + i ); t.fb[r] = new S(Ie, e.Ja, r, i.qe); } } else t.fb[r] = e; } function lf() { (this.Rb = this.na = this.Kb = this.ka = this.xa = !1), (this.oa = 0), (this.mb = ""), (this.dc = null), (this.zb = ""), (this.ac = null), (this.xb = ""), (this.g = H); } function jf(t) { return "" === t.mb ? t.ka : "l" === t.mb; } function ff(t) { return D(t.ka, "Only valid if start has been set"), t.dc; } function ef(t) { return ( D(t.ka, "Only valid if start has been set"), t.Kb ? t.zb : "[MIN_NAME]" ); } function hf(t) { return D(t.na, "Only valid if end has been set"), t.ac; } function gf(t) { return ( D(t.na, "Only valid if end has been set"), t.Rb ? t.xb : "[MAX_NAME]" ); } function nf(t) { var e = new lf(); return ( (e.xa = t.xa), (e.oa = t.oa), (e.ka = t.ka), (e.dc = t.dc), (e.Kb = t.Kb), (e.zb = t.zb), (e.na = t.na), (e.ac = t.ac), (e.Rb = t.Rb), (e.xb = t.xb), (e.g = t.g), (e.mb = t.mb), e ); } function of(t, e) { var n = nf(t); return (n.g = e), n; } function pf(t) { var e = {}; if ( (t.ka && ((e.sp = t.dc), t.Kb && (e.sn = t.zb)), t.na && ((e.ep = t.ac), t.Rb && (e.en = t.xb)), t.xa) ) { e.l = t.oa; var n = t.mb; "" === n && (n = jf(t) ? "l" : "r"), (e.vf = n); } return t.g !== H && (e.i = t.g.toString()), e; } function T(t) { return !(t.ka || t.na || t.xa); } function qf(t) { return T(t) && t.g == H; } function rf(t) { var e = {}; if (qf(t)) return e; var n; return ( t.g === H ? (n = "$priority") : t.g === wc ? (n = "$value") : t.g === tc ? (n = "$key") : (D(t.g instanceof pc, "Unrecognized index type!"), (n = t.g.toString())), (e.orderBy = x(n)), t.ka && ((e.startAt = x(t.dc)), t.Kb && (e.startAt += "," + x(t.zb))), t.na && ((e.endAt = x(t.ac)), t.Rb && (e.endAt += "," + x(t.xb))), t.xa && (jf(t) ? (e.limitToFirst = t.oa) : (e.limitToLast = t.oa)), e ); } function sf(t) { this.W = t; } function uf(t, e, n) { if (e.e()) return new sf(new vd(n)); var r = zd(t.W, e); if (null != r) { var i = r.path, r = r.value; return (e = P(i, e)), (r = r.F(e, n)), new sf(t.W.set(i, r)); } return (t = Ad(t.W, e, new vd(n))), new sf(t); } function vf(t, e, n) { var r = t; return ( fb(n, function (t, n) { r = uf(r, e.n(t), n); }), r ); } function wf(t, e) { var n = zd(t.W, e); return null != n ? t.W.get(n.path).P(P(n.path, e)) : null; } function xf(t) { var e = [], n = t.W.value; return ( null != n ? n.J() || n.O(H, function (t, n) { e.push(new C(t, n)); }) : t.W.children.ha(function (t, n) { null != n.value && e.push(new C(t, n.value)); }), e ); } function yf(t, e) { if (e.e()) return t; var n = wf(t, e); return new sf(null != n ? new vd(n) : t.W.subtree(e)); } function zf(t, e, n) { if (null != e.value) return n.F(t, e.value); var r = null; return ( e.children.ha(function (e, i) { ".priority" === e ? (D( null !== i.value, "Priority writes must always be leaf nodes" ), (r = i.value)) : (n = zf(t.n(e), i, n)); }), n.P(t).e() || null === r || (n = n.F(t.n(".priority"), r)), n ); } function Af() { this.Jd = L; } function Bf(t) { this.oc = t; } function Cf(t, e) { t.oc.INTERNAL.addAuthTokenListener(e); } function Df() { (this.S = tf), (this.la = []), (this.Bc = -1); } function Ef(t, e) { for (var n = 0; n < t.la.length; n++) { var r = t.la[n]; if (r.Zc === e) return r; } return null; } function Ff(t, e) { return t.Ga ? t.path.contains(e) : !!Qa(t.children, function (n, r) { return t.path.n(r).contains(e); }); } function Hf(t) { return t.visible; } function Gf(t, e, n) { for (var r = tf, i = 0; i < t.length; ++i) { var o = t[i]; if (e(o)) { var a = o.path; if (o.Ga) n.contains(a) ? ((a = P(n, a)), (r = uf(r, a, o.Ga))) : a.contains(n) && ((a = P(a, n)), (r = uf(r, Q, o.Ga.P(a)))); else { if (!o.children) throw Mb("WriteRecord should have .snap or .children"); n.contains(a) ? ((a = P(n, a)), (r = vf(r, a, o.children))) : a.contains(n) && ((a = P(a, n)), a.e() ? (r = vf(r, Q, o.children)) : (o = w(o.children, K(a))) && ((o = o.P(N(a))), (r = uf(r, Q, o)))); } } } return r; } function If(t, e) { (this.Lb = t), (this.W = e); } function Jf(t, e) { (this.rf = {}), (this.Vc = new Kf(t)), (this.va = e); var n = 1e4 + 2e4 * Math.random(); hc(q(this.lf, this), Math.floor(n)); } function Lf() { this.tc = {}; } function Mf(t, e, r) { n(r) || (r = 1), eb(t.tc, e) || (t.tc[e] = 0), (t.tc[e] += r); } function Kf(t) { (this.Ef = t), (this.rd = null); } function Pf(t) { return (t = t.toString()), Nf[t] || (Nf[t] = new Lf()), Nf[t]; } function Qf(t, e) { var n = t.toString(); return Of[n] || (Of[n] = e()), Of[n]; } function Rf(t, e, n) { (this.f = Tb("p:rest:")), (this.L = t), (this.Gb = e), (this.$c = n), (this.$ = {}); } function Sf(t, e) { return n(e) ? "tag$" + e : (D(qf(t.m), "should have a tag if it's not a default query."), t.path.toString()); } function Tf(t, e, n, r) { (n = n || {}), (n.format = "export"), t.$c.getToken(!1).then(function (i) { (i = i && i.accessToken) && (n.auth = i); var o = (t.L.Sc ? "https://" : "http://") + t.L.host + e + "?" + gb(n); t.f("Sending REST request for " + o); var a = new XMLHttpRequest(); (a.onreadystatechange = function () { if (r && 4 === a.readyState) { t.f( "REST Response for " + o + " received. status:", a.status, "response:", a.responseText ); var e = null; if (200 <= a.status && 300 > a.status) { try { e = lb(a.responseText); } catch (t) { J( "Failed to parse JSON response for " + o + ": " + a.responseText ); } r(null, e); } else 401 !== a.status && 404 !== a.status && J( "Got unsuccessful REST response for " + o + " Status: " + a.status ), r(a.status); r = null; } }), a.open("GET", o, !0), a.send(); }); } function Uf(t) { (this.te = t), (this.Bd = []), (this.Qb = 0), (this.Yd = -1), (this.Fb = null); } function Vf(t, e, n) { (t.Yd = e), (t.Fb = n), t.Yd < t.Qb && (t.Fb(), (t.Fb = null)); } function Wf(t, e, n) { for (t.Bd[e] = n; t.Bd[t.Qb]; ) { var r = t.Bd[t.Qb]; delete t.Bd[t.Qb]; for (var i = 0; i < r.length; ++i) if (r[i]) { var o = t; fc(function () { o.te(r[i]); }); } if (t.Qb === t.Yd) { t.Fb && (clearTimeout(t.Fb), t.Fb(), (t.Fb = null)); break; } t.Qb++; } } function Yf(t, e, n, r) { (this.Zd = t), (this.f = Tb(this.Zd)), (this.frames = this.zc = null), (this.pb = this.qb = this.Fe = 0), (this.Va = Pf(e)), (t = { v: "5" }), "undefined" != typeof location && location.href && -1 !== location.href.indexOf("firebaseio.com") && (t.r = "f"), n && (t.s = n), r && (t.ls = r), (this.Ke = Bb(e, Cb, t)); } function ag(t, e) { if ((t.frames.push(e), t.frames.length == t.Fe)) { var n = t.frames.join(""); (t.frames = null), (n = lb(n)), t.Xf(n); } } function $f(t) { clearInterval(t.zc), (t.zc = setInterval(function () { t.Ia && bg(t, "0"), $f(t); }, Math.floor(45e3))); } function bg(t, e) { try { t.Ia.send(e); } catch (e) { t.f( "Exception thrown from WebSocket.send():", e.message || e.data, "Closing connection." ), setTimeout(q(t.bb, t), 0); } } function cg(t, e, n, r) { (this.Zd = t), (this.f = Tb(t)), (this.jc = e), (this.pb = this.qb = 0), (this.Va = Pf(e)), (this.tf = n), (this.wc = !1), (this.Cb = r), (this.Yc = function (t) { return Bb(e, Db, t); }); } function gg(t, e) { var n = x(e).length; (t.pb += n), Mf(t.Va, "bytes_received", n); } function fg(t, e, n, r) { if ( ((this.Yc = r), (this.ib = n), (this.ve = new Gc()), (this.Qc = []), (this.$d = Math.floor(1e8 * Math.random())), (this.Kd = !0), (this.Qd = Lb()), (window["pLPCommand" + this.Qd] = t), (window["pRTLPCB" + this.Qd] = e), (t = document.createElement("iframe")), (t.style.display = "none"), !document.body) ) throw "Document body has not initialized. Wait to initialize Firebase until after the document is ready."; document.body.appendChild(t); try { t.contentWindow.document || I("No IE domain setting required"); } catch (e) { t.src = "javascript:void((function(){document.open();document.domain='" + document.domain + "';document.close();})())"; } t.contentDocument ? (t.gb = t.contentDocument) : t.contentWindow ? (t.gb = t.contentWindow.document) : t.document && (t.gb = t.document), (this.Ea = t), (t = ""), this.Ea.src && "javascript:" === this.Ea.src.substr(0, 11) && (t = ''), (t = "" + t + ""); try { this.Ea.gb.open(), this.Ea.gb.write(t), this.Ea.gb.close(); } catch (t) { I("frame writing exception"), t.stack && I(t.stack), I(t); } } function ig(t) { if (t.Ud && t.Kd && t.ve.count() < (0 < t.Qc.length ? 2 : 1)) { t.$d++; var e = {}; (e.id = t.Vf), (e.pw = t.Wf), (e.ser = t.$d); for ( var e = t.Yc(e), n = "", r = 0; 0 < t.Qc.length && 1870 >= t.Qc[0].Pe.length + 30 + n.length; ) { var i = t.Qc.shift(), n = n + "&seg" + r + "=" + i.jg + "&ts" + r + "=" + i.pg + "&d" + r + "=" + i.Pe; r++; } return jg(t, e + n, t.$d), !0; } return !1; } function jg(t, e, n) { function r() { t.ve.remove(n), ig(t); } t.ve.add(n, 1); var i = setTimeout(r, Math.floor(25e3)); hg(t, e, function () { clearTimeout(i), r(); }); } function hg(t, e, n) { setTimeout(function () { try { if (t.Kd) { var r = t.Ea.gb.createElement("script"); (r.type = "text/javascript"), (r.async = !0), (r.src = e), (r.onload = r.onreadystatechange = function () { var t = r.readyState; (t && "loaded" !== t && "complete" !== t) || ((r.onload = r.onreadystatechange = null), r.parentNode && r.parentNode.removeChild(r), n()); }), (r.onerror = function () { I("Long-poll script failed to load: " + e), (t.Kd = !1), t.close(); }), t.Ea.gb.body.appendChild(r); } } catch (t) {} }, Math.floor(1)); } function kg(t) { lg(this, t); } function lg(t, e) { var n = Yf && Yf.isAvailable(), r = n && !(xb.Ze || !0 === xb.get("previous_websocket_failure")); if ( (e.qg && (n || J( "wss:// URL used, but browser isn't known to support websockets. Trying anyway." ), (r = !0)), r) ) t.Wc = [Yf]; else { var i = (t.Wc = []); cc(mg, function (t, e) { e && e.isAvailable() && i.push(e); }); } } function ng(t) { if (0 < t.Wc.length) return t.Wc[0]; throw Error("No transports available"); } function og(t, e, n, r, i, o, a) { (this.id = t), (this.f = Tb("c:" + this.id + ":")), (this.te = n), (this.Lc = r), (this.ia = i), (this.se = o), (this.L = e), (this.Ad = []), (this.Le = 0), (this.sf = new kg(e)), (this.Ua = 0), (this.Cb = a), this.f("Connection created"), pg(this); } function pg(t) { var e = ng(t.sf); (t.I = new e("c:" + t.id + ":" + t.Le++, t.L, void 0, t.Cb)), (t.xe = e.responsesRequiredToBeHealthy || 0); var n = qg(t, t.I), r = rg(t, t.I); (t.Xc = t.I), (t.Rc = t.I), (t.D = null), (t.Bb = !1), setTimeout(function () { t.I && t.I.open(n, r); }, Math.floor(0)), (e = e.healthyTimeout || 0), 0 < e && (t.md = hc(function () { (t.md = null), t.Bb || (t.I && 102400 < t.I.pb ? (t.f( "Connection exceeded healthy timeout but has received " + t.I.pb + " bytes. Marking connection healthy." ), (t.Bb = !0), t.I.sd()) : t.I && 10240 < t.I.qb ? t.f( "Connection exceeded healthy timeout but has sent " + t.I.qb + " bytes. Leaving connection alive." ) : (t.f("Closing unhealthy connection after timeout."), t.close())); }, Math.floor(e))); } function rg(t, e) { return function (n) { e === t.I ? ((t.I = null), n || 0 !== t.Ua ? 1 === t.Ua && t.f("Realtime connection lost.") : (t.f("Realtime connection failed."), "s-" === t.L.$a.substr(0, 2) && (xb.remove("host:" + t.L.host), (t.L.$a = t.L.host))), t.close()) : e === t.D ? (t.f("Secondary connection lost."), (n = t.D), (t.D = null), (t.Xc !== n && t.Rc !== n) || t.close()) : t.f("closing an old connection"); }; } function qg(t, e) { return function (n) { if (2 != t.Ua) if (e === t.Rc) { var r = $b("t", n); if (((n = $b("d", n)), "c" == r)) { if (((r = $b("t", n)), "d" in n)) if (((n = n.d), "h" === r)) { var r = n.ts, i = n.v, o = n.h; (t.qf = n.s), Ab(t.L, o), 0 == t.Ua && (t.I.start(), sg(t, t.I, r), "5" !== i && J("Protocol version mismatch detected"), (n = t.sf), (n = 1 < n.Wc.length ? n.Wc[1] : null) && tg(t, n)); } else if ("n" === r) { for ( t.f("recvd end transmission on primary"), t.Rc = t.D, n = 0; n < t.Ad.length; ++n ) t.wd(t.Ad[n]); (t.Ad = []), ug(t); } else "s" === r ? (t.f( "Connection shutdown command received. Shutting down..." ), t.se && (t.se(n), (t.se = null)), (t.ia = null), t.close()) : "r" === r ? (t.f("Reset packet received. New host: " + n), Ab(t.L, n), 1 === t.Ua ? t.close() : (vg(t), pg(t))) : "e" === r ? Ub("Server Error: " + n) : "o" === r ? (t.f("got pong on primary."), wg(t), xg(t)) : Ub("Unknown control packet command: " + r); } else "d" == r && t.wd(n); } else if (e === t.D) if (((r = $b("t", n)), (n = $b("d", n)), "c" == r)) "t" in n && ((n = n.t), "a" === n ? yg(t) : "r" === n ? (t.f("Got a reset on secondary, closing it"), t.D.close(), (t.Xc !== t.D && t.Rc !== t.D) || t.close()) : "o" === n && (t.f("got pong on secondary."), t.pf--, yg(t))); else { if ("d" != r) throw Error("Unknown protocol layer: " + r); t.Ad.push(n); } else t.f("message on old connection"); }; } function ug(t) { t.Xc === t.D && t.Rc === t.D && (t.f("cleaning up and promoting a connection: " + t.D.Zd), (t.I = t.D), (t.D = null)); } function yg(t) { 0 >= t.pf ? (t.f("Secondary connection is healthy."), (t.Bb = !0), t.D.sd(), t.D.start(), t.f("sending client ack on secondary"), t.D.send({ t: "c", d: { t: "a", d: {} } }), t.f("Ending transmission on primary"), t.I.send({ t: "c", d: { t: "n", d: {} } }), (t.Xc = t.D), ug(t)) : (t.f("sending ping on secondary."), t.D.send({ t: "c", d: { t: "p", d: {} } })); } function wg(t) { t.Bb || (t.xe--, 0 >= t.xe && (t.f("Primary connection is healthy."), (t.Bb = !0), t.I.sd())); } function tg(t, e) { (t.D = new e("c:" + t.id + ":" + t.Le++, t.L, t.qf)), (t.pf = e.responsesRequiredToBeHealthy || 0), t.D.open(qg(t, t.D), rg(t, t.D)), hc(function () { t.D && (t.f("Timed out trying to upgrade."), t.D.close()); }, Math.floor(6e4)); } function sg(t, e, n) { t.f("Realtime connection established."), (t.I = e), (t.Ua = 1), t.Lc && (t.Lc(n, t.qf), (t.Lc = null)), 0 === t.xe ? (t.f("Primary connection is healthy."), (t.Bb = !0)) : hc(function () { xg(t); }, Math.floor(5e3)); } function xg(t) { t.Bb || 1 !== t.Ua || (t.f("sending ping on primary."), zg(t, { t: "c", d: { t: "p", d: {} } })); } function zg(t, e) { if (1 !== t.Ua) throw "Connection is not connected"; t.Xc.send(e); } function vg(t) { t.f("Shutting down all connections"), t.I && (t.I.close(), (t.I = null)), t.D && (t.D.close(), (t.D = null)), t.md && (clearTimeout(t.md), (t.md = null)); } function Ag(t, e, n, r, i, o) { if ( ((this.id = Bg++), (this.f = Tb("p:" + this.id + ":")), (this.qd = {}), (this.$ = {}), (this.pa = []), (this.Oc = 0), (this.Kc = []), (this.ma = !1), (this.Sa = 1e3), (this.td = 3e5), (this.Gb = e), (this.Jc = n), (this.ue = r), (this.L = t), (this.ob = this.Fa = this.Cb = this.ze = null), (this.$c = i), (this.de = !1), (this.ke = 0), o) ) throw Error( "Auth override specified in options, but not supported on non Node.js platforms" ); (this.Vd = o), (this.ub = null), (this.Mb = !1), (this.Gd = {}), (this.ig = 0), (this.Re = !0), (this.Ac = this.me = null), Cg(this, 0), Mc.Vb().gc("visible", this.Zf, this), -1 === t.host.indexOf("fblocal") && Lc.Vb().gc("online", this.Yf, this); } function Eg(t, e) { var n = e.eg, r = n.path.toString(), i = n.ja(); t.f("Listen on " + r + " for " + i); var o = { p: r }; e.tag && ((o.q = pf(n.m)), (o.t = e.tag)), (o.h = e.ld()), t.ua("q", o, function (o) { var a = o.d, s = o.s; if (a && "object" == typeof a && eb(a, "w")) { var c = w(a, "w"); ea(c) && 0 <= xa(c, "no_index") && J( "Using an unspecified index. Consider adding " + ('".indexOn": "' + n.m.g.toString() + '"') + " at " + n.path.toString() + " to your security rules for better performance" ); } (t.$[r] && t.$[r][i]) === e && (t.f("listen response", o), "ok" !== s && Fg(t, r, i), e.G && e.G(s, a)); }); } function Gg(t) { if (t.ma && t.ob) { var e = t.ob, n = jc(e) ? "auth" : "gauth", r = { cred: e }; null === t.Vd ? (r.noauth = !0) : "object" == typeof t.Vd && (r.authvar = t.Vd), t.ua(n, r, function (n) { var r = n.s; (n = n.d || "error"), t.ob === e && ("ok" === r ? (t.ke = 0) : Hg(t, r, n)); }); } } function Ig(t, e, n, r, i) { (n = { p: n, d: r }), t.f("onDisconnect " + e, n), t.ua(e, n, function (t) { i && setTimeout(function () { i(t.s, t.d); }, Math.floor(0)); }); } function Jg(t, e, r, i, o, a) { (i = { p: r, d: i }), n(a) && (i.h = a), t.pa.push({ action: e, mf: i, G: o }), t.Oc++, (e = t.pa.length - 1), t.ma ? Kg(t, e) : t.f("Buffering put: " + r); } function Kg(t, e) { var n = t.pa[e].action, r = t.pa[e].mf, i = t.pa[e].G; (t.pa[e].fg = t.ma), t.ua(n, r, function (r) { t.f(n + " response", r), delete t.pa[e], t.Oc--, 0 === t.Oc && (t.pa = []), i && i(r.s, r.d); }); } function Cg(t, e) { D(!t.Fa, "Scheduling a connect when we're already connected/ing?"), t.ub && clearTimeout(t.ub), (t.ub = setTimeout(function () { (t.ub = null), Ng(t); }, Math.floor(e))); } function Ng(t) { if (Og(t)) { t.f("Making a connection attempt"), (t.me = new Date().getTime()), (t.Ac = null); var e = q(t.wd, t), n = q(t.Lc, t), r = q(t.df, t), i = t.id + ":" + Dg++, o = t.Cb, a = !1, s = null, c = function () { s ? s.close() : ((a = !0), r()); }; t.Fa = { close: c, ua: function (t) { D(s, "sendRequest call when we're not connected not allowed."), s.ua(t); }, }; var l = t.de; (t.de = !1), t.$c .getToken(l) .then(function (c) { a ? I("getToken() completed but was canceled") : (I("getToken() completed. Creating connection."), (t.ob = c && c.accessToken), (s = new og( i, t.L, e, n, r, function (e) { J(e + " (" + t.L.toString() + ")"), t.ab("server_kill"); }, o ))); }) .then(null, function (e) { t.f("Failed to get token: " + e), a || c(); }); } } function Lg(t, e, n) { (n = n ? Aa(n, function (t) { return ac(t); }).join("$") : "default"), (t = Fg(t, e, n)) && t.G && t.G("permission_denied"); } function Fg(t, e, r) { e = new E(e).toString(); var i; return ( n(t.$[e]) ? ((i = t.$[e][r]), delete t.$[e][r], 0 === La(t.$[e]) && delete t.$[e]) : (i = void 0), i ); } function Hg(t, e, n) { I("Auth token revoked: " + e + "/" + n), (t.ob = null), (t.de = !0), t.Fa.close(), ("invalid_token" !== e && "permission_denied" !== e) || (t.ke++, 3 <= t.ke && ((t.Sa = 3e4), (t = t.$c), (e = 'Provided authentication credentials for the app named "' + t.oc.name + '" are invalid. This usually indicates your app was not initialized correctly. '), (e = "credential" in t.oc.options ? e + 'Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.' : "serviceAccount" in t.oc.options ? e + 'Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.' : e + 'Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.'), J(e))); } function Mg(t) { Gg(t), v(t.$, function (e) { v(e, function (e) { Eg(t, e); }); }); for (var e = 0; e < t.pa.length; e++) t.pa[e] && Kg(t, e); for (; t.Kc.length; ) (e = t.Kc.shift()), Ig(t, e.action, e.we, e.data, e.G); } function Og(t) { var e; return (e = Lc.Vb().hc), Sa(t.qd) && e; } function Pg(t) { t instanceof Qg || Vb( "Don't call new Database() directly - please use firebase.database()." ), (this.ta = t), (this.ba = new U(t, Q)), (this.INTERNAL = new Rg(this)); } function Tg(t, e) { null === t.ta && Vb("Cannot call " + e + " on a deleted database."); } function Rg(t) { this.Ya = t; } function V(t, e, n) { (this.A = t), (this.V = e), (this.g = n); } function Vg(t, e, n) { (this.Pb = t), (this.rb = e), (this.tb = n || null); } function Wg(t, e, n) { (this.ga = t), (this.rb = e), (this.tb = n); } function Xg() { this.za = {}; } function Zg(t) { return za(Na(t.za), function (t) { return !T(t.V.m); }); } function $g(t, e) { if (T(e.m)) return Yg(t); var n = e.ja(); return w(t.za, n); } function Yg(t) { return ( Ra(t.za, function (t) { return T(t.V.m); }) || null ); } function ah(t) { (this.wa = R), (this.jb = new Df()), (this.De = {}), (this.ic = {}), (this.Cc = t); } function bh(t, e, r, i, o) { var a = t.jb, s = o; return ( D(i > a.Bc, "Stacking an older write on top of newer ones"), n(s) || (s = !0), a.la.push({ path: e, Ga: r, Zc: i, visible: s }), s && (a.S = uf(a.S, e, r)), (a.Bc = i), o ? ch(t, new ce(fe, e, r)) : [] ); } function dh(t, e, n, r) { var i = t.jb; return ( D(r > i.Bc, "Stacking an older merge on top of newer ones"), i.la.push({ path: e, children: n, Zc: r, visible: !0 }), (i.S = vf(i.S, e, n)), (i.Bc = r), (n = xd(n)), ch(t, new ae(fe, e, n)) ); } function eh(t, e, n) { n = n || !1; var r = Ef(t.jb, e); if (t.jb.Ed(e)) { var i = R; return ( null != r.Ga ? (i = i.set(Q, !0)) : fb(r.children, function (t, e) { i = i.set(new E(t), e); }), ch(t, new de(r.path, i, n)) ); } return []; } function fh(t, e, n) { return (n = xd(n)), ch(t, new ae(ie, e, n)); } function gh(t, e, n, r) { if (((r = hh(t, r)), null != r)) { var i = ih(r); return ( (r = i.path), (i = i.Hb), (e = P(r, e)), (n = new ce(new he(!1, !0, i, !0), e, n)), jh(t, r, n) ); } return []; } function kh(t, e, n, r) { if ((r = hh(t, r))) { var i = ih(r); return ( (r = i.path), (i = i.Hb), (e = P(r, e)), (n = xd(n)), (n = new ae(new he(!1, !0, i, !0), e, n)), jh(t, r, n) ); } return []; } function oh(t) { return Bd(t, function (t, e, n) { if (e && null != Yg(e)) return [Yg(e)]; var r = []; return ( e && (r = Zg(e)), v(n, function (t) { r = r.concat(t); }), r ); }); } function sh(t, e) { for (var n = 0; n < e.length; ++n) { var r = e[n]; if (!T(r.m)) { var r = lh(r), i = t.ic[r]; delete t.ic[r], delete t.De["_" + i]; } } } function qh(t) { return T(t.m) && !qf(t.m) ? t.wb() : t; } function nh(t, e, n) { var r = e.path, i = rh(t, e); if ( ((n = ph(t, n)), (e = t.Cc.Ae(qh(e), i, n.ld, n.G)), (r = t.wa.subtree(r)), i) ) D( null == Yg(r.value), "If we're adding a query, it shouldn't be shadowed" ); else for ( i = Bd(r, function (t, e, n) { if (!t.e() && e && null != Yg(e)) return [Te(Yg(e))]; var r = []; return ( e && (r = r.concat( Aa(Zg(e), function (t) { return t.V; }) )), v(n, function (t) { r = r.concat(t); }), r ); }), r = 0; r < i.length; ++r ) (n = i[r]), t.Cc.Od(qh(n), rh(t, n)); return e; } function ph(t, e) { var n = e.V, r = rh(t, n); return { ld: function () { return (e.w() || L).hash(); }, G: function (e) { if ("ok" === e) { if (r) { var i = n.path; if ((e = hh(t, r))) { var o = ih(e); (e = o.path), (o = o.Hb), (i = P(e, i)), (i = new Zd(new he(!1, !0, o, !0), i)), (e = jh(t, e, i)); } else e = []; } else e = ch(t, new Zd(ie, n.path)); return e; } return ( (i = "Unknown Error"), "too_big" === e ? (i = "The data requested exceeds the maximum size that can be accessed with a single request.") : "permission_denied" == e ? (i = "Client doesn't have permission to access the desired data.") : "unavailable" == e && (i = "The service is unavailable"), (i = Error(e + " at " + n.path.toString() + ": " + i)), (i.code = e.toUpperCase()), t.kb(n, null, i) ); }, }; } function lh(t) { return t.path.toString() + "$" + t.ja(); } function ih(t) { var e = t.indexOf("$"); return ( D(-1 !== e && e < t.length - 1, "Bad queryKey."), { Hb: t.substr(e + 1), path: new E(t.substr(0, e)) } ); } function hh(t, e) { var n = t.De, r = "_" + e; return r in n ? n[r] : void 0; } function rh(t, e) { var n = lh(e); return w(t.ic, n); } function jh(t, e, n) { var r = t.wa.get(e); return ( D(r, "Missing sync point for query tag that we're tracking"), r.eb(n, new If(e, t.jb), null) ); } function ch(t, e) { return th(t, e, t.wa, null, new If(Q, t.jb)); } function th(t, e, n, r, i) { if (e.path.e()) return uh(t, e, n, r, i); var o = n.get(Q); null == r && null != o && (r = o.hb(Q)); var a = [], s = K(e.path), c = e.Mc(s); if ((n = n.children.get(s)) && c) var l = r ? r.Q(s) : null, s = i.n(s), a = a.concat(th(t, c, n, l, s)); return o && (a = a.concat(o.eb(e, i, r))), a; } function uh(t, e, n, r, i) { var o = n.get(Q); null == r && null != o && (r = o.hb(Q)); var a = []; return ( n.children.ha(function (n, o) { var s = r ? r.Q(n) : null, c = i.n(n), l = e.Mc(n); l && (a = a.concat(uh(t, l, o, s, c))); }), o && (a = a.concat(o.eb(e, i, r))), a ); } function Qg(t, e, n) { this.app = n; var r = new Bf(n); if ( ((this.L = t), (this.Va = Pf(t)), (this.Vc = null), (this.ca = new Ye()), (this.vd = 1), (this.Ra = null), e || 0 <= ( ("object" == typeof window && window.navigator && window.navigator.userAgent) || "" ).search( /googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i )) ) (this.va = new Rf(this.L, q(this.Gb, this), r)), setTimeout(q(this.Jc, this, !0), 0); else { if ( ((e = n.options.databaseAuthVariableOverride), "undefined" !== da(e) && null !== e) ) { if ("object" !== da(e)) throw Error( "Only objects are supported for option databaseAuthVariableOverride" ); try { x(e); } catch (t) { throw Error("Invalid authOverride provided: " + t); } } this.va = this.Ra = new Ag( this.L, q(this.Gb, this), q(this.Jc, this), q(this.ue, this), r, e ); } var i = this; Cf(r, function (t) { i.va.kf(t); }), (this.og = Qf( t, q(function () { return new Jf(this.Va, this.va); }, this) )), (this.mc = new Tc()), (this.ie = new Af()), (this.pd = new ah({ Ae: function (t, e, n, r) { return ( (e = []), (n = i.ie.j(t.path)), n.e() || ((e = ch(i.pd, new ce(ie, t.path, n))), setTimeout(function () { r("ok"); }, 0)), e ); }, Od: ba, })), vh(this, "connected", !1), (this.ia = new Gb()), (this.Ya = new Pg(this)), (this.fd = 0), (this.je = null), (this.K = new ah({ Ae: function (t, e, n, r) { return ( i.va.$e(t, n, e, function (e, n) { var o = r(e, n); cf(i.ca, t.path, o); }), [] ); }, Od: function (t, e) { i.va.uf(t, e); }, })); } function wh(t) { return ( (t = t.ie.j(new E(".info/serverTimeOffset")).H() || 0), new Date().getTime() + t ); } function xh(t) { return ( (t = t = { timestamp: wh(t) }), (t.timestamp = t.timestamp || new Date().getTime()), t ); } function vh(t, e, n) { (e = new E("/.info/" + e)), (n = G(n)); var r = t.ie; (r.Jd = r.Jd.F(e, n)), (n = ch(t.pd, new ce(ie, e, n))), cf(t.ca, e, n); } function zh(t) { t.f("onDisconnectEvents"); var e = xh(t), n = []; Hb(Fb(t.ia, e), Q, function (e, r) { n = n.concat(ch(t.K, new ce(ie, e, r))); var i = Bh(t, e); yh(t, i); }), (t.ia = new Gb()), cf(t.ca, Q, n); } function Ch(t, e, n, r) { var i = G(n); t.va.re(e.toString(), i.H(!0), function (n, o) { "ok" === n && Ib(t.ia, e, i), Ah(r, n, o); }); } function Dh(t, e, n, r, i) { var o = G(n, r); t.va.re(e.toString(), o.H(!0), function (n, r) { "ok" === n && Ib(t.ia, e, o), Ah(i, n, r); }); } function Eh(t, e, n, r) { var i, o = !0; for (i in n) o = !1; o ? (I( "onDisconnect().update() called with empty data. Don't do anything." ), Ah(r, "ok")) : t.va.cf(e.toString(), n, function (i, o) { if ("ok" === i) for (var a in n) { var s = G(n[a]); Ib(t.ia, e.n(a), s); } Ah(r, i, o); }); } function Fh(t, e, n) { (n = ".info" === K(e.path) ? t.pd.Nb(e, n) : t.K.Nb(e, n)), af(t.ca, e.path, n); } function Ah(t, e, n) { t && fc(function () { if ("ok" == e) t(null); else { var r = (e || "error").toUpperCase(), i = r; n && (i += ": " + n), (i = Error(i)), (i.code = r), t(i); } }); } function Gh(t, e, r, i, o) { function a() {} t.f("transaction on " + e); var s = new U(t, e); if ( (s.gc("value", a), (r = { path: e, update: r, G: i, status: null, ef: Lb(), He: o, of: 0, Rd: function () { s.Ic("value", a); }, Td: null, Ba: null, cd: null, dd: null, ed: null, }), (i = t.K.Aa(e, void 0) || L), (r.cd = i), (i = r.update(i.H())), n(i)) ) { Pd("transaction failed: Data returned ", i, r.path), (r.status = 1), (o = Uc(t.mc, e)); var c = o.Ca() || []; c.push(r), Vc(o, c), "object" == typeof i && null !== i && eb(i, ".priority") ? ((c = w(i, ".priority")), D( Nd(c), "Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null." )) : (c = (t.K.Aa(e) || L).C().H()), (o = xh(t)), (i = G(i, c)), (o = Jb(i, o)), (r.dd = i), (r.ed = o), (r.Ba = t.vd++), (r = bh(t.K, e, o, r.Ba, r.He)), cf(t.ca, e, r), Hh(t); } else r.Rd(), (r.dd = null), (r.ed = null), r.G && ((t = new V(r.cd, new U(t, r.path), H)), r.G(null, !1, t)); } function Hh(t, e) { var n = e || t.mc; if ((e || Ih(t, n), null !== n.Ca())) { var r = Jh(t, n); D(0 < r.length, "Sending zero length transaction queue"), Ca(r, function (t) { return 1 === t.status; }) && Kh(t, n.path(), r); } else n.kd() && n.O(function (e) { Hh(t, e); }); } function Kh(t, e, n) { for ( var r = Aa(n, function (t) { return t.Ba; }), i = t.K.Aa(e, r) || L, r = i, i = i.hash(), o = 0; o < n.length; o++ ) { var a = n[o]; D( 1 === a.status, "tryToSendTransactionQueue_: items in queue should all be run." ), (a.status = 2), a.of++; var s = P(e, a.path), r = r.F(s, a.dd); } (r = r.H(!0)), t.va.put( e.toString(), r, function (r) { t.f("transaction put response", { path: e.toString(), status: r, }); var i = []; if ("ok" === r) { for (r = [], o = 0; o < n.length; o++) { if ( ((n[o].status = 3), (i = i.concat(eh(t.K, n[o].Ba))), n[o].G) ) { var a = n[o].ed, s = new U(t, n[o].path); r.push(q(n[o].G, null, null, !0, new V(a, s, H))); } n[o].Rd(); } for ( Ih(t, Uc(t.mc, e)), Hh(t), cf(t.ca, e, i), o = 0; o < r.length; o++ ) fc(r[o]); } else { if ("datastale" === r) for (o = 0; o < n.length; o++) n[o].status = 4 === n[o].status ? 5 : 1; else for ( J("transaction at " + e.toString() + " failed: " + r), o = 0; o < n.length; o++ ) (n[o].status = 5), (n[o].Td = r); yh(t, e); } }, i ); } function yh(t, e) { var n = Lh(t, e), r = n.path(), n = Jh(t, n); return Mh(t, n, r), r; } function Mh(t, e, r) { if (0 !== e.length) { for ( var i = [], o = [], a = za(e, function (t) { return 1 === t.status; }), a = Aa(a, function (t) { return t.Ba; }), s = 0; s < e.length; s++ ) { var c, l = e[s], u = P(r, l.path), f = !1; if ( (D( null !== u, "rerunTransactionsUnderNode_: relativePath should not be null." ), 5 === l.status) ) (f = !0), (c = l.Td), (o = o.concat(eh(t.K, l.Ba, !0))); else if (1 === l.status) if (25 <= l.of) (f = !0), (c = "maxretry"), (o = o.concat(eh(t.K, l.Ba, !0))); else { var h = t.K.Aa(l.path, a) || L; l.cd = h; var d = e[s].update(h.H()); n(d) ? (Pd("transaction failed: Data returned ", d, l.path), (u = G(d)), ("object" == typeof d && null != d && eb(d, ".priority")) || (u = u.fa(h.C())), (h = l.Ba), (d = xh(t)), (d = Jb(u, d)), (l.dd = u), (l.ed = d), (l.Ba = t.vd++), Fa(a, h), (o = o.concat(bh(t.K, l.path, d, l.Ba, l.He))), (o = o.concat(eh(t.K, h, !0)))) : ((f = !0), (c = "nodata"), (o = o.concat(eh(t.K, l.Ba, !0)))); } cf(t.ca, r, o), (o = []), f && ((e[s].status = 3), setTimeout(e[s].Rd, Math.floor(0)), e[s].G && ("nodata" === c ? ((l = new U(t, e[s].path)), i.push(q(e[s].G, null, null, !1, new V(e[s].cd, l, H)))) : i.push(q(e[s].G, null, Error(c), !1, null)))); } for (Ih(t, t.mc), s = 0; s < i.length; s++) fc(i[s]); Hh(t); } } function Lh(t, e) { for (var n, r = t.mc; null !== (n = K(e)) && null === r.Ca(); ) (r = Uc(r, n)), (e = N(e)); return r; } function Jh(t, e) { var n = []; return ( Nh(t, e, n), n.sort(function (t, e) { return t.ef - e.ef; }), n ); } function Nh(t, e, n) { var r = e.Ca(); if (null !== r) for (var i = 0; i < r.length; i++) n.push(r[i]); e.O(function (e) { Nh(t, e, n); }); } function Ih(t, e) { var n = e.Ca(); if (n) { for (var r = 0, i = 0; i < n.length; i++) 3 !== n[i].status && ((n[r] = n[i]), r++); (n.length = r), Vc(e, 0 < n.length ? n : null); } e.O(function (e) { Ih(t, e); }); } function Bh(t, e) { var n = Lh(t, e).path(), r = Uc(t.mc, e); return ( Yc(r, function (e) { Oh(t, e); }), Oh(t, r), Xc(r, function (e) { Oh(t, e); }), n ); } function Oh(t, e) { var n = e.Ca(); if (null !== n) { for (var r = [], i = [], o = -1, a = 0; a < n.length; a++) 4 !== n[a].status && (2 === n[a].status ? (D( o === a - 1, "All SENT items should be at beginning of queue." ), (o = a), (n[a].status = 4), (n[a].Td = "set")) : (D( 1 === n[a].status, "Unexpected transaction status in abort" ), n[a].Rd(), (i = i.concat(eh(t.K, n[a].Ba, !0))), n[a].G && r.push(q(n[a].G, null, Error("set"), !1, null)))); for ( -1 === o ? Vc(e, null) : (n.length = o + 1), cf(t.ca, e.path(), i), a = 0; a < r.length; a++ ) fc(r[a]); } } function Ug() { (this.lb = {}), (this.wf = !1); } function Ph(t, e) { (this.committed = t), (this.snapshot = e); } function X(t, e, n, r) { (this.u = t), (this.path = e), (this.m = n), (this.Nc = r); } function Qh(t) { var e = null, n = null; if ((t.ka && (e = ff(t)), t.na && (n = hf(t)), t.g === tc)) { if (t.ka) { if ("[MIN_NAME]" != ef(t)) throw Error( "Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo()." ); if ("string" != typeof e) throw Error( "Query: When ordering by key, the argument passed to startAt(), endAt(),or equalTo() must be a string." ); } if (t.na) { if ("[MAX_NAME]" != gf(t)) throw Error( "Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo()." ); if ("string" != typeof n) throw Error( "Query: When ordering by key, the argument passed to startAt(), endAt(),or equalTo() must be a string." ); } } else if (t.g === H) { if ((null != e && !Nd(e)) || (null != n && !Nd(n))) throw Error( "Query: When ordering by priority, the first argument passed to startAt(), endAt(), or equalTo() must be a valid priority value (null, a number, or a string)." ); } else if ( (D(t.g instanceof pc || t.g === wc, "unknown index type."), (null != e && "object" == typeof e) || (null != n && "object" == typeof n)) ) throw Error( "Query: First argument passed to startAt(), endAt(), or equalTo() cannot be an object." ); } function Rh(t) { if (t.ka && t.na && t.xa && (!t.xa || "" === t.mb)) throw Error( "Query: Can't combine startAt(), endAt(), and limit(). Use limitToFirst() or limitToLast() instead." ); } function Sh(t, e) { if (!0 === t.Nc) throw Error(e + ": You can't combine multiple orderBy calls."); } function Th(t, e, n) { var r = { cancel: null, Ma: null }; if (e && n) (r.cancel = e), B(t, 3, r.cancel, !0), (r.Ma = n), ob(t, 4, r.Ma); else if (e) if ("object" == typeof e && null !== e) r.Ma = e; else { if ("function" != typeof e) throw Error( A(t, 3, !0) + " must either be a cancel callback or a context object." ); r.cancel = e; } return r; } function Y(t, e) { (this.ta = t), (this.qa = e); } function U(t, e) { if (!(t instanceof Qg)) throw Error( "new Firebase() no longer supported - use app.database()." ); X.call(this, t, e, mf, !1), (this.then = void 0), (this.catch = void 0); } var firebase = __webpack_require__(1), g, aa = this, qa = { '"': '\\"', "\\": "\\\\", "/": "\\/", "\b": "\\b", "\f": "\\f", "\n": "\\n", "\r": "\\r", "\t": "\\t", "\v": "\\u000b", }, ra = /\uffff/.test("￿") ? /[\\\"\x00-\x1f\x7f-\uffff]/g : /[\\\"\x00-\x1f\x7f-\xff]/g; la(ta, sa), (ta.prototype.reset = function () { (this.M[0] = 1732584193), (this.M[1] = 4023233417), (this.M[2] = 2562383102), (this.M[3] = 271733878), (this.M[4] = 3285377520), (this.Pd = this.$b = 0); }), (ta.prototype.update = function (t, e) { if (null != t) { n(e) || (e = t.length); for ( var r = e - this.Wa, i = 0, o = this.Wd, a = this.$b; i < e; ) { if (0 == a) for (; i <= r; ) ua(this, t, i), (i += this.Wa); if (p(t)) { for (; i < e; ) if (((o[a] = t.charCodeAt(i)), ++a, ++i, a == this.Wa)) { ua(this, o), (a = 0); break; } } else for (; i < e; ) if (((o[a] = t[i]), ++a, ++i, a == this.Wa)) { ua(this, o), (a = 0); break; } } (this.$b = a), (this.Pd += e); } }); var r; t: { var va = aa.navigator; if (va) { var wa = va.userAgent; if (wa) { r = wa; break t; } } r = ""; } var t = Array.prototype, xa = t.indexOf ? function (e, n, r) { return t.indexOf.call(e, n, r); } : function (t, e, n) { if ( ((n = null == n ? 0 : 0 > n ? Math.max(0, t.length + n) : n), p(t)) ) return p(e) && 1 == e.length ? t.indexOf(e, n) : -1; for (; n < t.length; n++) if (n in t && t[n] === e) return n; return -1; }, ya = t.forEach ? function (e, n, r) { t.forEach.call(e, n, r); } : function (t, e, n) { for ( var r = t.length, i = p(t) ? t.split("") : t, o = 0; o < r; o++ ) o in i && e.call(n, i[o], o, t); }, za = t.filter ? function (e, n, r) { return t.filter.call(e, n, r); } : function (t, e, n) { for ( var r = t.length, i = [], o = 0, a = p(t) ? t.split("") : t, s = 0; s < r; s++ ) if (s in a) { var c = a[s]; e.call(n, c, s, t) && (i[o++] = c); } return i; }, Aa = t.map ? function (e, n, r) { return t.map.call(e, n, r); } : function (t, e, n) { for ( var r = t.length, i = Array(r), o = p(t) ? t.split("") : t, a = 0; a < r; a++ ) a in o && (i[a] = e.call(n, o[a], a, t)); return i; }, Ba = t.reduce ? function (e, n, r, i) { for (var o = [], a = 1, s = arguments.length; a < s; a++) o.push(arguments[a]); return i && (o[0] = q(n, i)), t.reduce.apply(e, o); } : function (t, e, n, r) { var i = n; return ( ya(t, function (n, o) { i = e.call(r, i, n, o, t); }), i ); }, Ca = t.every ? function (e, n, r) { return t.every.call(e, n, r); } : function (t, e, n) { for ( var r = t.length, i = p(t) ? t.split("") : t, o = 0; o < r; o++ ) if (o in i && !e.call(n, i[o], o, t)) return !1; return !0; }, Ua = -1 != r.indexOf("Opera") || -1 != r.indexOf("OPR"), Va = -1 != r.indexOf("Trident") || -1 != r.indexOf("MSIE"), Wa = -1 != r.indexOf("Gecko") && -1 == r.toLowerCase().indexOf("webkit") && !(-1 != r.indexOf("Trident") || -1 != r.indexOf("MSIE")), Xa = -1 != r.toLowerCase().indexOf("webkit"); !(function () { var t, e = ""; return Ua && aa.opera ? ((e = aa.opera.version), ha(e) ? e() : e) : (Wa ? (t = /rv\:([^\);]+)(\)|;)/) : Va ? (t = /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/) : Xa && (t = /WebKit\/(\S+)/), t && (e = (e = t.exec(r)) ? e[1] : ""), Va && ((t = (t = aa.document) ? t.documentMode : void 0), t > parseFloat(e)) ? String(t) : e); })(); var Ya = null, Za = null, $a = null, hb = firebase.Promise; (g = ub.prototype), (g.set = function (t, e) { null == e ? this.uc.removeItem(this.Cd + t) : this.uc.setItem(this.Cd + t, x(e)); }), (g.get = function (t) { return (t = this.uc.getItem(this.Cd + t)), null == t ? null : lb(t); }), (g.remove = function (t) { this.uc.removeItem(this.Cd + t); }), (g.Ze = !1), (g.toString = function () { return this.uc.toString(); }), (vb.prototype.set = function (t, e) { null == e ? delete this.pc[t] : (this.pc[t] = e); }), (vb.prototype.get = function (t) { return eb(this.pc, t) ? this.pc[t] : null; }), (vb.prototype.remove = function (t) { delete this.pc[t]; }), (vb.prototype.Ze = !0); var xb = wb("localStorage"), yb = wb("sessionStorage"); zb.prototype.toString = function () { var t = (this.Sc ? "https://" : "http://") + this.host; return this.gf && (t += "<" + this.gf + ">"), t; }; var Lb = (function () { var t = 1; return function () { return t++; }; })(), D = cb, Mb = db, Qb = null, Rb = !0, ec = /^-?\d{1,10}$/, mc = {}; (lc.prototype.nd = function (t, e) { return ( 0 !== this.compare(new C("[MIN_NAME]", t), new C("[MIN_NAME]", e)) ); }), (lc.prototype.Hc = function () { return oc; }), la(pc, lc), (g = pc.prototype), (g.xc = function (t) { return !t.P(this.bc).e(); }), (g.compare = function (t, e) { var n = t.R.P(this.bc), r = e.R.P(this.bc), n = n.sc(r); return 0 === n ? sb(t.name, e.name) : n; }), (g.Ec = function (t, e) { var n = G(t), n = L.F(this.bc, n); return new C(e, n); }), (g.Fc = function () { var t = L.F(this.bc, qc); return new C("[MAX_NAME]", t); }), (g.toString = function () { return this.bc.slice().join("/"); }), la(rc, lc), (g = rc.prototype), (g.compare = function (t, e) { var n = t.R.C(), r = e.R.C(), n = n.sc(r); return 0 === n ? sb(t.name, e.name) : n; }), (g.xc = function (t) { return !t.C().e(); }), (g.nd = function (t, e) { return !t.C().Z(e.C()); }), (g.Hc = function () { return oc; }), (g.Fc = function () { return new C("[MAX_NAME]", new Kb("[PRIORITY-POST]", qc)); }), (g.Ec = function (t, e) { var n = G(t); return new C(e, new Kb("[PRIORITY-POST]", n)); }), (g.toString = function () { return ".priority"; }); var H = new rc(); la(sc, lc), (g = sc.prototype), (g.compare = function (t, e) { return sb(t.name, e.name); }), (g.xc = function () { throw Mb("KeyIndex.isDefinedOn not expected to be called."); }), (g.nd = function () { return !1; }), (g.Hc = function () { return oc; }), (g.Fc = function () { return new C("[MAX_NAME]", L); }), (g.Ec = function (t) { return ( D(p(t), "KeyIndex indexValue must always be a string."), new C(t, L) ); }), (g.toString = function () { return ".key"; }); var tc = new sc(); la(uc, lc), (g = uc.prototype), (g.compare = function (t, e) { var n = t.R.sc(e.R); return 0 === n ? sb(t.name, e.name) : n; }), (g.xc = function () { return !0; }), (g.nd = function (t, e) { return !t.Z(e); }), (g.Hc = function () { return oc; }), (g.Fc = function () { return vc; }), (g.Ec = function (t, e) { var n = G(t); return new C(e, n); }), (g.toString = function () { return ".value"; }); var wc = new uc(); xc.prototype.get = function (t) { var e = w(this.od, t); if (!e) throw Error("No index defined for " + t); return e === mc ? null : e; }; var Bc = new xc({ ".priority": mc }, { ".priority": H }), Dc = ["object", "boolean", "number", "string"]; (g = Kb.prototype), (g.J = function () { return !0; }), (g.C = function () { return this.aa; }), (g.fa = function (t) { return new Kb(this.B, t); }), (g.Q = function (t) { return ".priority" === t ? this.aa : L; }), (g.P = function (t) { return t.e() ? this : ".priority" === K(t) ? this.aa : L; }), (g.Da = function () { return !1; }), (g.Ve = function () { return null; }), (g.T = function (t, e) { return ".priority" === t ? this.fa(e) : e.e() && ".priority" !== t ? this : L.T(t, e).fa(this.aa); }), (g.F = function (t, e) { var n = K(t); return null === n ? e : e.e() && ".priority" !== n ? this : (D( ".priority" !== n || 1 === Ec(t), ".priority must be the last token in a path" ), this.T(n, L.F(N(t), e))); }), (g.e = function () { return !1; }), (g.Eb = function () { return 0; }), (g.O = function () { return !1; }), (g.H = function (t) { return t && !this.C().e() ? { ".value": this.Ca(), ".priority": this.C().H() } : this.Ca(); }), (g.hash = function () { if (null === this.Db) { var t = ""; this.aa.e() || (t += "priority:" + Fc(this.aa.H()) + ":"); var e = typeof this.B, t = t + (e + ":"), t = "number" === e ? t + dc(this.B) : t + this.B; this.Db = Ob(t); } return this.Db; }), (g.Ca = function () { return this.B; }), (g.sc = function (t) { if (t === L) return 1; if (t instanceof O) return -1; D(t.J(), "Unknown node type"); var e = typeof t.B, n = typeof this.B, r = xa(Dc, e), i = xa(Dc, n); return ( D(0 <= r, "Unknown leaf type: " + e), D(0 <= i, "Unknown leaf type: " + n), r === i ? "object" === n ? 0 : this.B < t.B ? -1 : this.B === t.B ? 0 : 1 : i - r ); }), (g.nb = function () { return this; }), (g.yc = function () { return !0; }), (g.Z = function (t) { return t === this || (!!t.J() && this.B === t.B && this.aa.Z(t.aa)); }), (g.toString = function () { return x(this.H(!0)); }), (g = Gc.prototype), (g.add = function (t, e) { this.set[t] = null === e || e; }), (g.contains = function (t) { return eb(this.set, t); }), (g.get = function (t) { return this.contains(t) ? this.set[t] : void 0; }), (g.remove = function (t) { delete this.set[t]; }), (g.clear = function () { this.set = {}; }), (g.e = function () { return Sa(this.set); }), (g.count = function () { return La(this.set); }), (g.keys = function () { var t = []; return ( v(this.set, function (e, n) { t.push(n); }), t ); }), (Ic.prototype.Ge = function (t, e) { var n; n = this.Dc[t] || []; var r = n.length; if (0 < r) { for (var i = Array(r), o = 0; o < r; o++) i[o] = n[o]; n = i; } else n = []; for (r = 0; r < n.length; r++) n[r].Ie.apply(n[r].Ma, Array.prototype.slice.call(arguments, 1)); }), (Ic.prototype.gc = function (t, e, n) { Jc(this, t), (this.Dc[t] = this.Dc[t] || []), this.Dc[t].push({ Ie: e, Ma: n }), (t = this.Ue(t)) && e.apply(n, t); }), (Ic.prototype.Ic = function (t, e, n) { Jc(this, t), (t = this.Dc[t] || []); for (var r = 0; r < t.length; r++) if (t[r].Ie === e && (!n || n === t[r].Ma)) { t.splice(r, 1); break; } }); var Kc = (function () { var t = 0, e = []; return function (n) { var r = n === t; t = n; for (var i = Array(8), o = 7; 0 <= o; o--) (i[o] = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt( n % 64 )), (n = Math.floor(n / 64)); if ((D(0 === n, "Cannot push at time == 0"), (n = i.join("")), r)) { for (o = 11; 0 <= o && 63 === e[o]; o--) e[o] = 0; e[o]++; } else for (o = 0; 12 > o; o++) e[o] = Math.floor(64 * Math.random()); for (o = 0; 12 > o; o++) n += "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt( e[o] ); return D(20 === n.length, "nextPushId: Length should be 20."), n; }; })(); la(Lc, Ic), (Lc.prototype.Ue = function (t) { return D("online" === t, "Unknown event type: " + t), [this.hc]; }), ca(Lc), la(Mc, Ic), (Mc.prototype.Ue = function (t) { return D("visible" === t, "Unknown event type: " + t), [this.Mb]; }), ca(Mc), (g = E.prototype), (g.toString = function () { for (var t = "", e = this.Y; e < this.o.length; e++) "" !== this.o[e] && (t += "/" + this.o[e]); return t || "/"; }), (g.slice = function (t) { return this.o.slice(this.Y + (t || 0)); }), (g.parent = function () { if (this.Y >= this.o.length) return null; for (var t = [], e = this.Y; e < this.o.length - 1; e++) t.push(this.o[e]); return new E(t, 0); }), (g.n = function (t) { for (var e = [], n = this.Y; n < this.o.length; n++) e.push(this.o[n]); if (t instanceof E) for (n = t.Y; n < t.o.length; n++) e.push(t.o[n]); else for (t = t.split("/"), n = 0; n < t.length; n++) 0 < t[n].length && e.push(t[n]); return new E(e, 0); }), (g.e = function () { return this.Y >= this.o.length; }), (g.Z = function (t) { if (Ec(this) !== Ec(t)) return !1; for (var e = this.Y, n = t.Y; e <= this.o.length; e++, n++) if (this.o[e] !== t.o[n]) return !1; return !0; }), (g.contains = function (t) { var e = this.Y, n = t.Y; if (Ec(this) > Ec(t)) return !1; for (; e < this.o.length; ) { if (this.o[e] !== t.o[n]) return !1; ++e, ++n; } return !0; }); var Q = new E(""); (Pc.prototype.push = function (t) { 0 < this.Qa.length && (this.Ha += 1), this.Qa.push(t), (this.Ha += nb(t)), Qc(this); }), (Pc.prototype.pop = function () { var t = this.Qa.pop(); (this.Ha -= nb(t)), 0 < this.Qa.length && --this.Ha; }), (g = Tc.prototype), (g.Ca = function () { return this.A.value; }), (g.clear = function () { (this.A.value = null), (this.A.children = {}), (this.A.bd = 0), Wc(this); }), (g.kd = function () { return 0 < this.A.bd; }), (g.e = function () { return null === this.Ca() && !this.kd(); }), (g.O = function (t) { var e = this; v(this.A.children, function (n, r) { t(new Tc(r, e, n)); }); }), (g.path = function () { return new E( null === this.Pc ? this.ud : this.Pc.path() + "/" + this.ud ); }), (g.name = function () { return this.ud; }), (g.parent = function () { return this.Pc; }), (g = Zc.prototype), (g.Oa = function (t, e) { return new Zc( this.La, this.ba.Oa(t, e, this.La).X(null, null, !1, null, null) ); }), (g.remove = function (t) { return new Zc( this.La, this.ba.remove(t, this.La).X(null, null, !1, null, null) ); }), (g.get = function (t) { for (var e, n = this.ba; !n.e(); ) { if (((e = this.La(t, n.key)), 0 === e)) return n.value; 0 > e ? (n = n.left) : 0 < e && (n = n.right); } return null; }), (g.e = function () { return this.ba.e(); }), (g.count = function () { return this.ba.count(); }), (g.Gc = function () { return this.ba.Gc(); }), (g.ec = function () { return this.ba.ec(); }), (g.ha = function (t) { return this.ba.ha(t); }), (g.Wb = function (t) { return new bd(this.ba, null, this.La, !1, t); }), (g.Xb = function (t, e) { return new bd(this.ba, t, this.La, !1, e); }), (g.Zb = function (t, e) { return new bd(this.ba, t, this.La, !0, e); }), (g.We = function (t) { return new bd(this.ba, null, this.La, !0, t); }), (g = dd.prototype), (g.X = function (t, e, n, r, i) { return new dd( null != t ? t : this.key, null != e ? e : this.value, null != n ? n : this.color, null != r ? r : this.left, null != i ? i : this.right ); }), (g.count = function () { return this.left.count() + 1 + this.right.count(); }), (g.e = function () { return !1; }), (g.ha = function (t) { return this.left.ha(t) || t(this.key, this.value) || this.right.ha(t); }), (g.Gc = function () { return ed(this).key; }), (g.ec = function () { return this.right.e() ? this.key : this.right.ec(); }), (g.Oa = function (t, e, n) { var r, i; return ( (i = this), (r = n(t, i.key)), (i = 0 > r ? i.X(null, null, null, i.left.Oa(t, e, n), null) : 0 === r ? i.X(null, e, null, null, null) : i.X(null, null, null, null, i.right.Oa(t, e, n))), gd(i) ); }), (g.remove = function (t, e) { var n, r; if (((n = this), 0 > e(t, n.key))) n.left.e() || n.left.ea() || n.left.left.ea() || (n = id(n)), (n = n.X(null, null, null, n.left.remove(t, e), null)); else { if ( (n.left.ea() && (n = jd(n)), n.right.e() || n.right.ea() || n.right.left.ea() || ((n = kd(n)), n.left.left.ea() && ((n = jd(n)), (n = kd(n)))), 0 === e(t, n.key)) ) { if (n.right.e()) return $c; (r = ed(n.right)), (n = n.X(r.key, r.value, null, null, hd(n.right))); } n = n.X(null, null, null, null, n.right.remove(t, e)); } return gd(n); }), (g.ea = function () { return this.color; }), (g = md.prototype), (g.X = function () { return this; }), (g.Oa = function (t, e) { return new dd(t, e, null); }), (g.remove = function () { return this; }), (g.count = function () { return 0; }), (g.e = function () { return !0; }), (g.ha = function () { return !1; }), (g.Gc = function () { return null; }), (g.ec = function () { return null; }), (g.ea = function () { return !1; }); var $c = new md(); (g = O.prototype), (g.J = function () { return !1; }), (g.C = function () { return this.aa || L; }), (g.fa = function (t) { return this.k.e() ? this : new O(this.k, t, this.yb); }), (g.Q = function (t) { return ".priority" === t ? this.C() : ((t = this.k.get(t)), null === t ? L : t); }), (g.P = function (t) { var e = K(t); return null === e ? this : this.Q(e).P(N(t)); }), (g.Da = function (t) { return null !== this.k.get(t); }), (g.T = function (t, e) { if ( (D(e, "We should always be passing snapshot nodes"), ".priority" === t) ) return this.fa(e); var n, r, i = new C(t, e); return ( e.e() ? ((n = this.k.remove(t)), (i = Ac(this.yb, i, this.k))) : ((n = this.k.Oa(t, e)), (i = yc(this.yb, i, this.k))), (r = n.e() ? L : this.aa), new O(n, r, i) ); }), (g.F = function (t, e) { var n = K(t); if (null === n) return e; D( ".priority" !== K(t) || 1 === Ec(t), ".priority must be the last token in a path" ); var r = this.Q(n).F(N(t), e); return this.T(n, r); }), (g.e = function () { return this.k.e(); }), (g.Eb = function () { return this.k.count(); }); var nd = /^(0|[1-9]\d*)$/; (g = O.prototype), (g.H = function (t) { if (this.e()) return null; var e = {}, n = 0, r = 0, i = !0; if ( (this.O(H, function (o, a) { (e[o] = a.H(t)), n++, i && nd.test(o) ? (r = Math.max(r, Number(o))) : (i = !1); }), !t && i && r < 2 * n) ) { var o, a = []; for (o in e) a[o] = e[o]; return a; } return t && !this.C().e() && (e[".priority"] = this.C().H()), e; }), (g.hash = function () { if (null === this.Db) { var t = ""; this.C().e() || (t += "priority:" + Fc(this.C().H()) + ":"), this.O(H, function (e, n) { var r = n.hash(); "" !== r && (t += ":" + e + ":" + r); }), (this.Db = "" === t ? "" : Ob(t)); } return this.Db; }), (g.Ve = function (t, e, n) { return (n = od(this, n)) ? (t = ad(n, new C(t, e))) ? t.name : null : ad(this.k, t); }), (g.O = function (t, e) { var n = od(this, t); return n ? n.ha(function (t) { return e(t.name, t.R); }) : this.k.ha(e); }), (g.Wb = function (t) { return this.Xb(t.Hc(), t); }), (g.Xb = function (t, e) { var n = od(this, e); if (n) return n.Xb(t, function (t) { return t; }); for ( var n = this.k.Xb(t.name, qb), r = cd(n); null != r && 0 > e.compare(r, t); ) M(n), (r = cd(n)); return n; }), (g.We = function (t) { return this.Zb(t.Fc(), t); }), (g.Zb = function (t, e) { var n = od(this, e); if (n) return n.Zb(t, function (t) { return t; }); for ( var n = this.k.Zb(t.name, qb), r = cd(n); null != r && 0 < e.compare(r, t); ) M(n), (r = cd(n)); return n; }), (g.sc = function (t) { return this.e() ? t.e() ? 0 : -1 : t.J() || t.e() ? 1 : t === qc ? -1 : 0; }), (g.nb = function (t) { if (t === tc || Pa(this.yb.cc, t.toString())) return this; var e = this.yb, n = this.k; D( t !== tc, "KeyIndex always exists and isn't meant to be added to the IndexMap." ); for (var r = [], i = !1, n = n.Wb(qb), o = M(n); o; ) (i = i || t.xc(o.R)), r.push(o), (o = M(n)); return ( (r = i ? zc(r, nc(t)) : mc), (i = t.toString()), (n = Ta(e.cc)), (n[i] = t), (t = Ta(e.od)), (t[i] = r), new O(this.k, this.aa, new xc(t, n)) ); }), (g.yc = function (t) { return t === tc || Pa(this.yb.cc, t.toString()); }), (g.Z = function (t) { if (t === this) return !0; if (t.J()) return !1; if (this.C().Z(t.C()) && this.k.count() === t.k.count()) { var e = this.Wb(H); t = t.Wb(H); for (var n = M(e), r = M(t); n && r; ) { if (n.name !== r.name || !n.R.Z(r.R)) return !1; (n = M(e)), (r = M(t)); } return null === n && null === r; } return !1; }), (g.toString = function () { return x(this.H(!0)); }); var rd = Math.log(2), L = new O(new Zc(tb), null, Bc); la(ud, O), (g = ud.prototype), (g.sc = function (t) { return t === this ? 0 : 1; }), (g.Z = function (t) { return t === this; }), (g.C = function () { return this; }), (g.Q = function () { return L; }), (g.e = function () { return !1; }); var qc = new ud(), oc = new C("[MIN_NAME]", L), vc = new C("[MAX_NAME]", qc), wd = new Zc(function (t, e) { return t === e ? 0 : t < e ? -1 : 1; }); (g = vd.prototype), (g.e = function () { return null === this.value && this.children.e(); }), (g.subtree = function (t) { if (t.e()) return this; var e = this.children.get(K(t)); return null !== e ? e.subtree(N(t)) : R; }), (g.set = function (t, e) { if (t.e()) return new vd(e, this.children); var n = K(t), r = (this.children.get(n) || R).set(N(t), e), n = this.children.Oa(n, r); return new vd(this.value, n); }), (g.remove = function (t) { if (t.e()) return this.children.e() ? R : new vd(null, this.children); var e = K(t), n = this.children.get(e); return n ? ((t = n.remove(N(t))), (e = t.e() ? this.children.remove(e) : this.children.Oa(e, t)), null === this.value && e.e() ? R : new vd(this.value, e)) : this; }), (g.get = function (t) { if (t.e()) return this.value; var e = this.children.get(K(t)); return e ? e.get(N(t)) : null; }); var R = new vd(null); vd.prototype.toString = function () { var t = {}; return ( Hd(this, function (e, n) { t[e.toString()] = n.toString(); }), x(t) ); }; var Kd = /[\[\].#$\/\u0000-\u001F\u007F]/, Ld = /[\[\].#$\u0000-\u001F\u007F]/; (Gb.prototype.find = function (t) { if (null != this.B) return this.B.P(t); if (t.e() || null == this.k) return null; var e = K(t); return (t = N(t)), this.k.contains(e) ? this.k.get(e).find(t) : null; }), (Gb.prototype.O = function (t) { null !== this.k && Hc(this.k, function (e, n) { t(e, n); }); }), (Zd.prototype.Mc = function () { return this.path.e() ? new Zd(this.source, Q) : new Zd(this.source, N(this.path)); }), (Zd.prototype.toString = function () { return ( "Operation(" + this.path + ": " + this.source.toString() + " listen_complete)" ); }), (ae.prototype.Mc = function (t) { return this.path.e() ? ((t = this.children.subtree(new E(t))), t.e() ? null : t.value ? new ce(this.source, Q, t.value) : new ae(this.source, Q, t)) : (D( K(this.path) === t, "Can't get a merge for a child not on the path of the operation" ), new ae(this.source, N(this.path), this.children)); }), (ae.prototype.toString = function () { return ( "Operation(" + this.path + ": " + this.source.toString() + " merge: " + this.children.toString() + ")" ); }), (de.prototype.Mc = function (t) { return this.path.e() ? null != this.Ob.value ? (D( this.Ob.children.e(), "affectedTree should not have overlapping affected paths." ), this) : ((t = this.Ob.subtree(new E(t))), new de(Q, t, this.Id)) : (D( K(this.path) === t, "operationForChild called for unrelated child." ), new de(N(this.path), this.Ob, this.Id)); }), (de.prototype.toString = function () { return ( "Operation(" + this.path + ": " + this.source.toString() + " ack write revert=" + this.Id + " affectedTree=" + this.Ob + ")" ); }), (ce.prototype.Mc = function (t) { return this.path.e() ? new ce(this.source, Q, this.Ga.Q(t)) : new ce(this.source, N(this.path), this.Ga); }), (ce.prototype.toString = function () { return ( "Operation(" + this.path + ": " + this.source.toString() + " overwrite: " + this.Ga.toString() + ")" ); }); var ge = 0, be = 1, ee = 2, $d = 3, fe = new he(!0, !1, null, !1), ie = new he(!1, !0, null, !1); (he.prototype.toString = function () { return this.ee ? "user" : this.Ee ? "server(queryID=" + this.Hb + ")" : "server"; }), (je.prototype.j = function () { return this.A; }), (oe.prototype.w = function () { return this.Ld; }), (se.prototype.Te = function () { return null; }), (se.prototype.fe = function () { return null; }); var te = new se(); (ue.prototype.Te = function (t) { var e = this.Ka.N; return ne(e, t) ? e.j().Q(t) : ((e = null != this.yd ? new je(this.yd, !0, !1) : this.Ka.w()), this.xf.qc(t, e)); }), (ue.prototype.fe = function (t, e, n) { var r = null != this.yd ? this.yd : re(this.Ka); return (t = this.xf.Xd(r, e, 1, n, t)), 0 === t.length ? null : t[0]; }), (we.prototype.eb = function (t, e, n, r) { var i, o = new xe(); if (e.type === ge) e.source.ee ? (n = ye(this, t, e.path, e.Ga, n, r, o)) : (D(e.source.Se, "Unknown source."), (i = e.source.Ee || (le(t.w()) && !e.path.e())), (n = ze(this, t, e.path, e.Ga, n, r, i, o))); else if (e.type === be) e.source.ee ? (n = Ae(this, t, e.path, e.children, n, r, o)) : (D(e.source.Se, "Unknown source."), (i = e.source.Ee || le(t.w())), (n = Be(this, t, e.path, e.children, n, r, i, o))); else if (e.type === ee) if (e.Id) if (((e = e.path), null != n.lc(e))) n = t; else { if ( ((i = new ue(n, t, r)), (r = t.N.j()), e.e() || ".priority" === K(e)) ) ke(t.w()) ? (e = n.Aa(re(t))) : ((e = t.w().j()), D( e instanceof O, "serverChildren would be complete if leaf node" ), (e = n.rc(e))), (e = this.U.ya(r, e, o)); else { var a = K(e), s = n.qc(a, t.w()); null == s && ne(t.w(), a) && (s = r.Q(a)), (e = null != s ? this.U.F(r, a, s, N(e), i, o) : t.N.j().Da(a) ? this.U.F(r, a, L, N(e), i, o) : r), e.e() && ke(t.w()) && ((r = n.Aa(re(t))), r.J() && (e = this.U.ya(e, r, o))); } (r = ke(t.w()) || null != n.lc(Q)), (n = pe(t, e, r, this.U.Na())); } else n = Ce(this, t, e.path, e.Ob, n, r, o); else { if (e.type !== $d) throw Mb("Unknown operation type: " + e.type); (r = e.path), (e = t.w()), (i = e.j()), (a = e.da || r.e()), (n = De(this, new oe(t.N, new je(i, a, e.Sb)), r, n, te, o)); } return ( (o = Na(o.fb)), (r = n), (e = r.N), e.da && ((i = e.j().J() || e.j().e()), (a = qe(t)), (0 < o.length || !t.N.da || (i && !e.j().Z(a)) || !e.j().C().Z(a.C())) && o.push(Ee(qe(r)))), new ve(n, o) ); }), (Ge.prototype.Ff = function (t, e) { if (null == t.Xa || null == e.Xa) throw Mb("Should only compare child_ events."); return this.g.compare(new C(t.Xa, t.Ja), new C(e.Xa, e.Ja)); }), (g = Pe.prototype), (g.w = function () { return this.Ka.w().j(); }), (g.hb = function (t) { var e = re(this.Ka); return e && (T(this.V.m) || (!t.e() && !e.Q(K(t)).e())) ? e.P(t) : null; }), (g.e = function () { return 0 === this.Za.length; }), (g.Nb = function (t) { this.Za.push(t); }), (g.kb = function (t, e) { var n = []; if (e) { D(null == t, "A cancel should cancel all event registrations."); var r = this.V.path; ya(this.Za, function (t) { (t = t.Me(e, r)) && n.push(t); }); } if (t) { for (var i = [], o = 0; o < this.Za.length; ++o) { var a = this.Za[o]; if (a.matches(t)) { if (t.Xe()) { i = i.concat(this.Za.slice(o + 1)); break; } } else i.push(a); } this.Za = i; } else this.Za = []; return n; }), (g.eb = function (t, e, n) { t.type === be && null !== t.source.Hb && (D( re(this.Ka), "We should always have a full cache before handling merges" ), D( qe(this.Ka), "Missing event cache, even though we have a server cache" )); var r = this.Ka; return ( (t = this.hf.eb(r, t, e, n)), (e = this.hf), (n = t.Sd), D(n.N.j().yc(e.U.g), "Event snap not indexed"), D(n.w().j().yc(e.U.g), "Server snap not indexed"), D( ke(t.Sd.w()) || !ke(r.w()), "Once a server snap is complete, it should never go back" ), (this.Ka = t.Sd), Ue(this, t.Df, t.Sd.N.j(), null) ); }), (We.prototype.Yb = function () { var t = this.Md.wb(); return "value" === this.hd ? t.path : t.getParent().path; }), (We.prototype.ge = function () { return this.hd; }), (We.prototype.Tb = function () { return this.ae.Tb(this); }), (We.prototype.toString = function () { return this.Yb().toString() + ":" + this.hd + ":" + x(this.Md.be()); }), (Xe.prototype.Yb = function () { return this.path; }), (Xe.prototype.ge = function () { return "cancel"; }), (Xe.prototype.Tb = function () { return this.ae.Tb(this); }), (Xe.prototype.toString = function () { return this.path.toString() + ":cancel"; }), ($e.prototype.add = function (t) { this.jd.push(t); }), ($e.prototype.Yb = function () { return this.qa; }), (g = Qe.prototype), (g.F = function (t, e, n, r, i, o) { return ( D( t.yc(this.g), "A node must be indexed if only a child is updated" ), (i = t.Q(e)), i.P(r).Z(n.P(r)) && i.e() == n.e() ? t : (null != o && (n.e() ? t.Da(e) ? df(o, new S(Le, i, e)) : D( t.J(), "A child remove without an old child only makes sense on a leaf node" ) : i.e() ? df(o, new S(Me, n, e)) : df(o, new S(Ie, n, e, i))), t.J() && n.e() ? t : t.T(e, n).nb(this.g)) ); }), (g.ya = function (t, e, n) { return ( null != n && (t.J() || t.O(H, function (t, r) { e.Da(t) || df(n, new S(Le, r, t)); }), e.J() || e.O(H, function (e, r) { if (t.Da(e)) { var i = t.Q(e); i.Z(r) || df(n, new S(Ie, r, e, i)); } else df(n, new S(Me, r, e)); })), e.nb(this.g) ); }), (g.fa = function (t, e) { return t.e() ? L : t.fa(e); }), (g.Na = function () { return !1; }), (g.Ub = function () { return this; }), (g = Se.prototype), (g.matches = function (t) { return ( 0 >= this.g.compare(this.Uc, t) && 0 >= this.g.compare(t, this.vc) ); }), (g.F = function (t, e, n, r, i, o) { return ( this.matches(new C(e, n)) || (n = L), this.he.F(t, e, n, r, i, o) ); }), (g.ya = function (t, e, n) { e.J() && (e = L); var r = e.nb(this.g), r = r.fa(L), i = this; return ( e.O(H, function (t, e) { i.matches(new C(t, e)) || (r = r.T(t, L)); }), this.he.ya(t, r, n) ); }), (g.fa = function (t) { return t; }), (g.Na = function () { return !0; }), (g.Ub = function () { return this.he; }), (g = Re.prototype), (g.F = function (t, e, n, r, i, o) { return ( this.sa.matches(new C(e, n)) || (n = L), t.Q(e).Z(n) ? t : t.Eb() < this.oa ? this.sa.Ub().F(t, e, n, r, i, o) : kf(this, t, e, n, i, o) ); }), (g.ya = function (t, e, n) { var r; if (e.J() || e.e()) r = L.nb(this.g); else if (2 * this.oa < e.Eb() && e.yc(this.g)) { (r = L.nb(this.g)), (e = this.Ib ? e.Zb(this.sa.vc, this.g) : e.Xb(this.sa.Uc, this.g)); for (var i = 0; 0 < e.Pa.length && i < this.oa; ) { var o, a = M(e); if ( !(o = this.Ib ? 0 >= this.g.compare(this.sa.Uc, a) : 0 >= this.g.compare(a, this.sa.vc)) ) break; (r = r.T(a.name, a.R)), i++; } } else { (r = e.nb(this.g)), (r = r.fa(L)); var s, c, l; if (this.Ib) { (e = r.We(this.g)), (s = this.sa.vc), (c = this.sa.Uc); var u = nc(this.g); l = function (t, e) { return u(e, t); }; } else (e = r.Wb(this.g)), (s = this.sa.Uc), (c = this.sa.vc), (l = nc(this.g)); for (var i = 0, f = !1; 0 < e.Pa.length; ) (a = M(e)), !f && 0 >= l(s, a) && (f = !0), (o = f && i < this.oa && 0 >= l(a, c)) ? i++ : (r = r.T(a.name, L)); } return this.sa.Ub().ya(t, r, n); }), (g.fa = function (t) { return t; }), (g.Na = function () { return !0; }), (g.Ub = function () { return this.sa.Ub(); }); var Me = "child_added", Le = "child_removed", Ie = "child_changed", Je = "child_moved", Ne = "value", mf = new lf(); (g = lf.prototype), (g.ne = function (t) { var e = nf(this); return (e.xa = !0), (e.oa = t), (e.mb = "l"), e; }), (g.oe = function (t) { var e = nf(this); return (e.xa = !0), (e.oa = t), (e.mb = "r"), e; }), (g.Nd = function (t, e) { var r = nf(this); return ( (r.ka = !0), n(t) || (t = null), (r.dc = t), null != e ? ((r.Kb = !0), (r.zb = e)) : ((r.Kb = !1), (r.zb = "")), r ); }), (g.gd = function (t, e) { var r = nf(this); return ( (r.na = !0), n(t) || (t = null), (r.ac = t), n(e) ? ((r.Rb = !0), (r.xb = e)) : ((r.vg = !1), (r.xb = "")), r ); }), (g.toString = function () { return x(pf(this)); }); var tf = new sf(new vd(null)); (sf.prototype.Ed = function (t) { return t.e() ? tf : ((t = Ad(this.W, t, R)), new sf(t)); }), (sf.prototype.e = function () { return this.W.e(); }), (sf.prototype.apply = function (t) { return zf(Q, this.W, t); }), (Af.prototype.j = function (t) { return this.Jd.P(t); }), (Af.prototype.toString = function () { return this.Jd.toString(); }), (Bf.prototype.getToken = function (t) { return this.oc.INTERNAL.getToken(t).then(null, function (t) { return t && "auth/token-not-initialized" === t.code ? (I( "Got auth/token-not-initialized error. Treating as null token." ), null) : Promise.reject(t); }); }), (g = Df.prototype), (g.Ed = function (t) { var e = Ea(this.la, function (e) { return e.Zc === t; }); D(0 <= e, "removeWrite called with nonexistent writeId."); var n = this.la[e]; this.la.splice(e, 1); for ( var r = n.visible, i = !1, o = this.la.length - 1; r && 0 <= o; ) { var a = this.la[o]; a.visible && (o >= e && Ff(a, n.path) ? (r = !1) : n.path.contains(a.path) && (i = !0)), o--; } if (r) { if (i) (this.S = Gf(this.la, Hf, Q)), (this.Bc = 0 < this.la.length ? this.la[this.la.length - 1].Zc : -1); else if (n.Ga) this.S = this.S.Ed(n.path); else { var s = this; v(n.children, function (t, e) { s.S = s.S.Ed(n.path.n(e)); }); } return !0; } return !1; }), (g.Aa = function (t, e, n, r) { if (n || r) { var i = yf(this.S, t); return !r && i.e() ? e : r || null != e || null != wf(i, Q) ? ((i = Gf( this.la, function (e) { return ( (e.visible || r) && (!n || !(0 <= xa(n, e.Zc))) && (e.path.contains(t) || t.contains(e.path)) ); }, t )), (e = e || L), i.apply(e)) : null; } return ( (i = wf(this.S, t)), null != i ? i : ((i = yf(this.S, t)), i.e() ? e : null != e || null != wf(i, Q) ? ((e = e || L), i.apply(e)) : null) ); }), (g.rc = function (t, e) { var n = L, r = wf(this.S, t); if (r) r.J() || r.O(H, function (t, e) { n = n.T(t, e); }); else if (e) { var i = yf(this.S, t); e.O(H, function (t, e) { var r = yf(i, new E(t)).apply(e); n = n.T(t, r); }), ya(xf(i), function (t) { n = n.T(t.name, t.R); }); } else (i = yf(this.S, t)), ya(xf(i), function (t) { n = n.T(t.name, t.R); }); return n; }), (g.ad = function (t, e, n, r) { return ( D( n || r, "Either existingEventSnap or existingServerSnap must exist" ), (t = t.n(e)), null != wf(this.S, t) ? null : ((t = yf(this.S, t)), t.e() ? r.P(e) : t.apply(r.P(e))) ); }), (g.qc = function (t, e, n) { t = t.n(e); var r = wf(this.S, t); return null != r ? r : ne(n, e) ? yf(this.S, t).apply(n.j().Q(e)) : null; }), (g.lc = function (t) { return wf(this.S, t); }), (g.Xd = function (t, e, n, r, i, o) { var a; if (((t = yf(this.S, t)), (a = wf(t, Q)), null == a)) { if (null == e) return []; a = t.apply(e); } if (((a = a.nb(o)), a.e() || a.J())) return []; for ( e = [], t = nc(o), i = i ? a.Zb(n, o) : a.Xb(n, o), o = M(i); o && e.length < r; ) 0 !== t(o, n) && e.push(o), (o = M(i)); return e; }), (g = If.prototype), (g.Aa = function (t, e, n) { return this.W.Aa(this.Lb, t, e, n); }), (g.rc = function (t) { return this.W.rc(this.Lb, t); }), (g.ad = function (t, e, n) { return this.W.ad(this.Lb, t, e, n); }), (g.lc = function (t) { return this.W.lc(this.Lb.n(t)); }), (g.Xd = function (t, e, n, r, i) { return this.W.Xd(this.Lb, t, e, n, r, i); }), (g.qc = function (t, e) { return this.W.qc(this.Lb, t, e); }), (g.n = function (t) { return new If(this.Lb.n(t), this.W); }), (Jf.prototype.lf = function () { var t, e = this.Vc.get(), n = {}, r = !1; for (t in e) 0 < e[t] && eb(this.rf, t) && ((n[t] = e[t]), (r = !0)); r && this.va.ye(n), hc(q(this.lf, this), Math.floor(6e5 * Math.random())); }), (Lf.prototype.get = function () { return Ta(this.tc); }), (Kf.prototype.get = function () { var t = this.Ef.get(), e = Ta(t); if (this.rd) for (var n in this.rd) e[n] -= this.rd[n]; return (this.rd = t), e; }); var Nf = {}, Of = {}; (g = Rf.prototype), (g.$e = function (t, e, n, r) { var i = t.path.toString(); this.f("Listen called for " + i + " " + t.ja()); var o = Sf(t, n), a = {}; (this.$[o] = a), (t = rf(t.m)); var s = this; Tf(this, i + ".json", t, function (t, e) { var c = e; 404 === t && (t = c = null), null === t && s.Gb(i, c, !1, n), w(s.$, o) === a && r( t ? 401 == t ? "permission_denied" : "rest_error:" + t : "ok", null ); }); }), (g.uf = function (t, e) { var n = Sf(t, e); delete this.$[n]; }), (g.kf = function () {}), (g.re = function () {}), (g.cf = function () {}), (g.xd = function () {}), (g.put = function () {}), (g.af = function () {}), (g.ye = function () {}); var Cb = "websocket", Db = "long_polling", Xf = null; "undefined" != typeof MozWebSocket ? (Xf = MozWebSocket) : "undefined" != typeof WebSocket && (Xf = WebSocket); var Zf; (Yf.prototype.open = function (t, e) { (this.ib = e), (this.Xf = t), this.f("Websocket connecting to " + this.Ke), (this.wc = !1), xb.set("previous_websocket_failure", !0); try { this.Ia = new Xf(this.Ke); } catch (t) { this.f("Error instantiating WebSocket."); var n = t.message || t.data; return n && this.f(n), void this.bb(); } var r = this; (this.Ia.onopen = function () { r.f("Websocket connected."), (r.wc = !0); }), (this.Ia.onclose = function () { r.f("Websocket connection was disconnected."), (r.Ia = null), r.bb(); }), (this.Ia.onmessage = function (t) { if (null !== r.Ia) if ( ((t = t.data), (r.pb += t.length), Mf(r.Va, "bytes_received", t.length), $f(r), null !== r.frames) ) ag(r, t); else { t: { if ( (D(null === r.frames, "We already have a frame buffer"), 6 >= t.length) ) { var e = Number(t); if (!isNaN(e)) { (r.Fe = e), (r.frames = []), (t = null); break t; } } (r.Fe = 1), (r.frames = []); } null !== t && ag(r, t); } }), (this.Ia.onerror = function (t) { r.f("WebSocket error. Closing connection."), (t = t.message || t.data) && r.f(t), r.bb(); }); }), (Yf.prototype.start = function () {}), (Yf.isAvailable = function () { var t = !1; if ("undefined" != typeof navigator && navigator.userAgent) { var e = navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/); e && 1 < e.length && 4.4 > parseFloat(e[1]) && (t = !0); } return !t && null !== Xf && !Zf; }), (Yf.responsesRequiredToBeHealthy = 2), (Yf.healthyTimeout = 3e4), (g = Yf.prototype), (g.sd = function () { xb.remove("previous_websocket_failure"); }), (g.send = function (t) { $f(this), (t = x(t)), (this.qb += t.length), Mf(this.Va, "bytes_sent", t.length), (t = bc(t, 16384)), 1 < t.length && bg(this, String(t.length)); for (var e = 0; e < t.length; e++) bg(this, t[e]); }), (g.Tc = function () { (this.Ab = !0), this.zc && (clearInterval(this.zc), (this.zc = null)), this.Ia && (this.Ia.close(), (this.Ia = null)); }), (g.bb = function () { this.Ab || (this.f("WebSocket is closing itself"), this.Tc(), this.ib && (this.ib(this.wc), (this.ib = null))); }), (g.close = function () { this.Ab || (this.f("WebSocket is being closed"), this.Tc()); }); var dg, eg; (cg.prototype.open = function (t, e) { (this.Ne = 0), (this.ia = e), (this.bf = new Uf(t)), (this.Ab = !1); var n = this; (this.sb = setTimeout(function () { n.f("Timed out trying to connect."), n.bb(), (n.sb = null); }, Math.floor(3e4))), Yb(function () { if (!n.Ab) { n.Ta = new fg( function (t, e, r, i, o) { if ((gg(n, arguments), n.Ta)) if ( (n.sb && (clearTimeout(n.sb), (n.sb = null)), (n.wc = !0), "start" == t) ) (n.id = e), (n.ff = r); else { if ("close" !== t) throw Error("Unrecognized command received: " + t); e ? ((n.Ta.Kd = !1), Vf(n.bf, e, function () { n.bb(); })) : n.bb(); } }, function (t, e) { gg(n, arguments), Wf(n.bf, t, e); }, function () { n.bb(); }, n.Yc ); var t = { start: "t" }; (t.ser = Math.floor(1e8 * Math.random())), n.Ta.Qd && (t.cb = n.Ta.Qd), (t.v = "5"), n.tf && (t.s = n.tf), n.Cb && (t.ls = n.Cb), "undefined" != typeof location && location.href && -1 !== location.href.indexOf("firebaseio.com") && (t.r = "f"), (t = n.Yc(t)), n.f("Connecting via long-poll to " + t), hg(n.Ta, t, function () {}); } }); }), (cg.prototype.start = function () { var t = this.Ta, e = this.ff; for (t.Vf = this.id, t.Wf = e, t.Ud = !0; ig(t); ); (t = this.id), (e = this.ff), (this.fc = document.createElement("iframe")); var n = { dframe: "t" }; (n.id = t), (n.pw = e), (this.fc.src = this.Yc(n)), (this.fc.style.display = "none"), document.body.appendChild(this.fc); }), (cg.isAvailable = function () { return ( dg || (!eg && "undefined" != typeof document && null != document.createElement && !( "object" == typeof window && window.chrome && window.chrome.extension && !/^chrome/.test(window.location.href) ) && !("object" == typeof Windows && "object" == typeof Windows.rg) && !0) ); }), (g = cg.prototype), (g.sd = function () {}), (g.Tc = function () { (this.Ab = !0), this.Ta && (this.Ta.close(), (this.Ta = null)), this.fc && (document.body.removeChild(this.fc), (this.fc = null)), this.sb && (clearTimeout(this.sb), (this.sb = null)); }), (g.bb = function () { this.Ab || (this.f("Longpoll is closing itself"), this.Tc(), this.ia && (this.ia(this.wc), (this.ia = null))); }), (g.close = function () { this.Ab || (this.f("Longpoll is being closed."), this.Tc()); }), (g.send = function (t) { (t = x(t)), (this.qb += t.length), Mf(this.Va, "bytes_sent", t.length), (t = mb(t)), (t = ab(t, !0)), (t = bc(t, 1840)); for (var e = 0; e < t.length; e++) { var n = this.Ta; n.Qc.push({ jg: this.Ne, pg: t.length, Pe: t[e] }), n.Ud && ig(n), this.Ne++; } }), (fg.prototype.close = function () { if (((this.Ud = !1), this.Ea)) { this.Ea.gb.body.innerHTML = ""; var t = this; setTimeout(function () { null !== t.Ea && (document.body.removeChild(t.Ea), (t.Ea = null)); }, Math.floor(0)); } var e = this.ib; e && ((this.ib = null), e()); }); var mg = [cg, Yf]; (og.prototype.ua = function (t) { zg(this, { t: "d", d: t }); }), (og.prototype.wd = function (t) { wg(this), this.te(t); }), (og.prototype.close = function () { 2 !== this.Ua && (this.f("Closing realtime connection."), (this.Ua = 2), vg(this), this.ia && (this.ia(), (this.ia = null))); }); var Bg = 0, Dg = 0; (g = Ag.prototype), (g.ua = function (t, e, n) { var r = ++this.ig; (t = { r: r, a: t, b: e }), this.f(x(t)), D( this.ma, "sendRequest call when we're not connected not allowed." ), this.Fa.ua(t), n && (this.Gd[r] = n); }), (g.$e = function (t, e, n, r) { var i = t.ja(), o = t.path.toString(); this.f("Listen called for " + o + " " + i), (this.$[o] = this.$[o] || {}), D( qf(t.m) || !T(t.m), "listen() called for non-default but complete query" ), D(!this.$[o][i], "listen() called twice for same path/queryId."), (t = { G: r, ld: e, eg: t, tag: n }), (this.$[o][i] = t), this.ma && Eg(this, t); }), (g.kf = function (t) { (this.ob = t), this.f("Auth token refreshed"), this.ob ? Gg(this) : this.ma && this.ua("unauth", {}, function () {}), ((t && 40 === t.length) || kc(t)) && (this.f( "Admin auth credential detected. Reducing max reconnect time." ), (this.td = 3e4)); }), (g.uf = function (t, e) { var n = t.path.toString(), r = t.ja(); if ( (this.f("Unlisten called for " + n + " " + r), D( qf(t.m) || !T(t.m), "unlisten() called for non-default but complete query" ), Fg(this, n, r) && this.ma) ) { var i = pf(t.m); this.f("Unlisten on " + n + " for " + r), (n = { p: n }), e && ((n.q = i), (n.t = e)), this.ua("n", n); } }), (g.re = function (t, e, n) { this.ma ? Ig(this, "o", t, e, n) : this.Kc.push({ we: t, action: "o", data: e, G: n }); }), (g.cf = function (t, e, n) { this.ma ? Ig(this, "om", t, e, n) : this.Kc.push({ we: t, action: "om", data: e, G: n }); }), (g.xd = function (t, e) { this.ma ? Ig(this, "oc", t, null, e) : this.Kc.push({ we: t, action: "oc", data: null, G: e }); }), (g.put = function (t, e, n, r) { Jg(this, "p", t, e, n, r); }), (g.af = function (t, e, n, r) { Jg(this, "m", t, e, n, r); }), (g.ye = function (t) { this.ma && ((t = { c: t }), this.f("reportStats", t), this.ua("s", t, function (t) { "ok" !== t.s && this.f("reportStats", "Error sending stats: " + t.d); })); }), (g.wd = function (t) { if ("r" in t) { this.f("from server: " + x(t)); var e = t.r, n = this.Gd[e]; n && (delete this.Gd[e], n(t.b)); } else { if ("error" in t) throw "A server-side error has occurred: " + t.error; "a" in t && ((e = t.a), (t = t.b), this.f("handleServerMessage", e, t), "d" === e ? this.Gb(t.p, t.d, !1, t.t) : "m" === e ? this.Gb(t.p, t.d, !0, t.t) : "c" === e ? Lg(this, t.p, t.q) : "ac" === e ? Hg(this, t.s, t.d) : "sd" === e ? this.ze ? this.ze(t) : "msg" in t && "undefined" != typeof console && console.log( "FIREBASE: " + t.msg.replace("\n", "\nFIREBASE: ") ) : Ub( "Unrecognized action received from server: " + x(e) + "\nAre you using the latest client?" )); } }), (g.Lc = function (t, e) { if ( (this.f("connection ready"), (this.ma = !0), (this.Ac = new Date().getTime()), this.ue({ serverTimeOffset: t - new Date().getTime() }), (this.Cb = e), this.Re) ) { var n = {}; (n["sdk.js." + firebase.SDK_VERSION.replace(/\./g, "-")] = 1), pb() ? (n["framework.cordova"] = 1) : "object" == typeof navigator && "ReactNative" === navigator.product && (n["framework.reactnative"] = 1), this.ye(n); } Mg(this), (this.Re = !1), this.Jc(!0); }), (g.Zf = function (t) { t && !this.Mb && this.Sa === this.td && (this.f("Window became visible. Reducing delay."), (this.Sa = 1e3), this.Fa || Cg(this, 0)), (this.Mb = t); }), (g.Yf = function (t) { t ? (this.f("Browser went online."), (this.Sa = 1e3), this.Fa || Cg(this, 0)) : (this.f("Browser went offline. Killing connection."), this.Fa && this.Fa.close()); }), (g.df = function () { this.f("data client disconnected"), (this.ma = !1), (this.Fa = null); for (var t = 0; t < this.pa.length; t++) { var e = this.pa[t]; e && "h" in e.mf && e.fg && (e.G && e.G("disconnect"), delete this.pa[t], this.Oc--); } 0 === this.Oc && (this.pa = []), (this.Gd = {}), Og(this) && (this.Mb ? this.Ac && (3e4 < new Date().getTime() - this.Ac && (this.Sa = 1e3), (this.Ac = null)) : (this.f("Window isn't visible. Delaying reconnect."), (this.Sa = this.td), (this.me = new Date().getTime())), (t = Math.max(0, this.Sa - (new Date().getTime() - this.me))), (t *= Math.random()), this.f("Trying to reconnect in " + t + "ms"), Cg(this, t), (this.Sa = Math.min(this.td, 1.3 * this.Sa))), this.Jc(!1); }), (g.ab = function (t) { I("Interrupting connection for reason: " + t), (this.qd[t] = !0), this.Fa ? this.Fa.close() : (this.ub && (clearTimeout(this.ub), (this.ub = null)), this.ma && this.df()); }), (g.kc = function (t) { I("Resuming connection for reason: " + t), delete this.qd[t], Sa(this.qd) && ((this.Sa = 1e3), this.Fa || Cg(this, 0)); }); var Sg = { TIMESTAMP: { ".sv": "timestamp" } }; (g = Pg.prototype), (g.app = null), (g.jf = function (t) { return ( Tg(this, "ref"), y("database.ref", 0, 1, arguments.length), n(t) ? this.ba.n(t) : this.ba ); }), (g.gg = function (t) { Tg(this, "database.refFromURL"), y("database.refFromURL", 1, 1, arguments.length); var e = Wb(t); Xd("database.refFromURL", e); var n = e.jc; return ( n.host !== this.ta.L.host && Vb( "database.refFromURL: Host name does not match the current database: (found " + n.host + " but expected " + this.ta.L.host + ")" ), this.jf(e.path.toString()) ); }), (g.Pf = function () { y("database.goOffline", 0, 0, arguments.length), Tg(this, "goOffline"), this.ta.ab(); }), (g.Qf = function () { y("database.goOnline", 0, 0, arguments.length), Tg(this, "goOnline"), this.ta.kc(); }), Object.defineProperty(Pg.prototype, "app", { get: function () { return this.ta.app; }, }), (Rg.prototype.delete = function () { Tg(this.Ya, "delete"); var t = Ug.Vb(), e = this.Ya.ta; return ( w(t.lb, e.app.name) !== e && Vb("Database " + e.app.name + " has already been deleted."), e.ab(), delete t.lb[e.app.name], (this.Ya.ta = null), (this.Ya.ba = null), (this.Ya = this.Ya.INTERNAL = null), firebase.Promise.resolve() ); }), (Pg.prototype.ref = Pg.prototype.jf), (Pg.prototype.refFromURL = Pg.prototype.gg), (Pg.prototype.goOnline = Pg.prototype.Qf), (Pg.prototype.goOffline = Pg.prototype.Pf), (Rg.prototype.delete = Rg.prototype.delete), (V.prototype.H = function () { return ( y("Firebase.DataSnapshot.val", 0, 0, arguments.length), this.A.H() ); }), (V.prototype.val = V.prototype.H), (V.prototype.be = function () { return ( y("Firebase.DataSnapshot.exportVal", 0, 0, arguments.length), this.A.H(!0) ); }), (V.prototype.exportVal = V.prototype.be), (V.prototype.toJSON = function () { return ( y("Firebase.DataSnapshot.toJSON", 0, 1, arguments.length), this.be() ); }), (V.prototype.toJSON = V.prototype.toJSON), (V.prototype.Lf = function () { return ( y("Firebase.DataSnapshot.exists", 0, 0, arguments.length), !this.A.e() ); }), (V.prototype.exists = V.prototype.Lf), (V.prototype.n = function (t) { y("Firebase.DataSnapshot.child", 0, 1, arguments.length), ga(t) && (t = String(t)), Vd("Firebase.DataSnapshot.child", t); var e = new E(t), n = this.V.n(e); return new V(this.A.P(e), n, H); }), (V.prototype.child = V.prototype.n), (V.prototype.Da = function (t) { y("Firebase.DataSnapshot.hasChild", 1, 1, arguments.length), Vd("Firebase.DataSnapshot.hasChild", t); var e = new E(t); return !this.A.P(e).e(); }), (V.prototype.hasChild = V.prototype.Da), (V.prototype.C = function () { return ( y("Firebase.DataSnapshot.getPriority", 0, 0, arguments.length), this.A.C().H() ); }), (V.prototype.getPriority = V.prototype.C), (V.prototype.forEach = function (t) { if ( (y("Firebase.DataSnapshot.forEach", 1, 1, arguments.length), B("Firebase.DataSnapshot.forEach", 1, t, !1), this.A.J()) ) return !1; var e = this; return !!this.A.O(this.g, function (n, r) { return t(new V(r, e.V.n(n), H)); }); }), (V.prototype.forEach = V.prototype.forEach), (V.prototype.kd = function () { return ( y("Firebase.DataSnapshot.hasChildren", 0, 0, arguments.length), !this.A.J() && !this.A.e() ); }), (V.prototype.hasChildren = V.prototype.kd), (V.prototype.getKey = function () { return ( y("Firebase.DataSnapshot.key", 0, 0, arguments.length), this.V.getKey() ); }), gc(V.prototype, "key", V.prototype.getKey), (V.prototype.Eb = function () { return ( y("Firebase.DataSnapshot.numChildren", 0, 0, arguments.length), this.A.Eb() ); }), (V.prototype.numChildren = V.prototype.Eb), (V.prototype.wb = function () { return y("Firebase.DataSnapshot.ref", 0, 0, arguments.length), this.V; }), gc(V.prototype, "ref", V.prototype.wb), (g = Vg.prototype), (g.nf = function (t) { return "value" === t; }), (g.createEvent = function (t, e) { var n = e.m.g; return new We("value", this, new V(t.Ja, e.wb(), n)); }), (g.Tb = function (t) { var e = this.tb; if ("cancel" === t.ge()) { D( this.rb, "Raising a cancel event on a listener with no cancel callback" ); var n = this.rb; return function () { n.call(e, t.error); }; } var r = this.Pb; return function () { r.call(e, t.Md); }; }), (g.Me = function (t, e) { return this.rb ? new Xe(this, t, e) : null; }), (g.matches = function (t) { return ( t instanceof Vg && (!t.Pb || !this.Pb || (t.Pb === this.Pb && t.tb === this.tb)) ); }), (g.Xe = function () { return null !== this.Pb; }), (g = Wg.prototype), (g.nf = function (t) { return ( (t = "children_added" === t ? "child_added" : t), ("children_removed" === t ? "child_removed" : t) in this.ga ); }), (g.Me = function (t, e) { return this.rb ? new Xe(this, t, e) : null; }), (g.createEvent = function (t, e) { D(null != t.Xa, "Child events should have a childName."); var n = e.wb().n(t.Xa); return new We(t.type, this, new V(t.Ja, n, e.m.g), t.Dd); }), (g.Tb = function (t) { var e = this.tb; if ("cancel" === t.ge()) { D( this.rb, "Raising a cancel event on a listener with no cancel callback" ); var n = this.rb; return function () { n.call(e, t.error); }; } var r = this.ga[t.hd]; return function () { r.call(e, t.Md, t.Dd); }; }), (g.matches = function (t) { if (t instanceof Wg) { if (!this.ga || !t.ga) return !0; if (this.tb === t.tb) { var e = La(t.ga); if (e === La(this.ga)) { if (1 === e) { var e = Ma(t.ga), n = Ma(this.ga); return !( n !== e || (t.ga[e] && this.ga[n] && t.ga[e] !== this.ga[n]) ); } return Ka(this.ga, function (e, n) { return t.ga[n] === e; }); } } } return !1; }), (g.Xe = function () { return null !== this.ga; }), (g = Xg.prototype), (g.e = function () { return Sa(this.za); }), (g.eb = function (t, e, n) { var r = t.source.Hb; if (null !== r) return ( (r = w(this.za, r)), D(null != r, "SyncTree gave us an op for an invalid query."), r.eb(t, e, n) ); var i = []; return ( v(this.za, function (r) { i = i.concat(r.eb(t, e, n)); }), i ); }), (g.Nb = function (t, e, n, r, i) { var o = t.ja(), a = w(this.za, o); if (!a) { var a = n.Aa(i ? r : null), s = !1; a ? (s = !0) : ((a = r instanceof O ? n.rc(r) : L), (s = !1)), (a = new Pe(t, new oe(new je(a, s, !1), new je(r, i, !1)))), (this.za[o] = a); } return a.Nb(e), Ve(a, e); }), (g.kb = function (t, e, n) { var r = t.ja(), i = [], o = [], a = null != Yg(this); if ("default" === r) { var s = this; v(this.za, function (t, r) { (o = o.concat(t.kb(e, n))), t.e() && (delete s.za[r], T(t.V.m) || i.push(t.V)); }); } else { var c = w(this.za, r); c && ((o = o.concat(c.kb(e, n))), c.e() && (delete this.za[r], T(c.V.m) || i.push(c.V))); } return ( a && null == Yg(this) && i.push(new U(t.u, t.path)), { hg: i, Kf: o } ); }), (g.hb = function (t) { var e = null; return ( v(this.za, function (n) { e = e || n.hb(t); }), e ); }), (ah.prototype.Nb = function (t, e) { var n = t.path, r = null, i = !1; Fd(this.wa, n, function (t, e) { var o = P(t, n); (r = r || e.hb(o)), (i = i || null != Yg(e)); }); var o = this.wa.get(n); o ? ((i = i || null != Yg(o)), (r = r || o.hb(Q))) : ((o = new Xg()), (this.wa = this.wa.set(n, o))); var a; null != r ? (a = !0) : ((a = !1), (r = L), Jd(this.wa.subtree(n), function (t, e) { var n = e.hb(Q); n && (r = r.T(t, n)); })); var s = null != $g(o, t); if (!s && !T(t.m)) { var c = lh(t); D(!(c in this.ic), "View does not exist, but we have a tag"); var l = mh++; (this.ic[c] = l), (this.De["_" + l] = c); } return ( (a = o.Nb(t, e, new If(n, this.jb), r, a)), s || i || ((o = $g(o, t)), (a = a.concat(nh(this, t, o)))), a ); }), (ah.prototype.kb = function (t, e, n) { var r = t.path, i = this.wa.get(r), o = []; if (i && ("default" === t.ja() || null != $g(i, t))) { (o = i.kb(t, e, n)), i.e() && (this.wa = this.wa.remove(r)), (i = o.hg), (o = o.Kf), (e = -1 !== Ea(i, function (t) { return T(t.m); })); var a = Dd(this.wa, r, function (t, e) { return null != Yg(e); }); if (e && !a && ((r = this.wa.subtree(r)), !r.e())) for (var r = oh(r), s = 0; s < r.length; ++s) { var c = r[s], l = c.V, c = ph(this, c); this.Cc.Ae(qh(l), rh(this, l), c.ld, c.G); } if (!a && 0 < i.length && !n) if (e) this.Cc.Od(qh(t), null); else { var u = this; ya(i, function (t) { t.ja(); var e = u.ic[lh(t)]; u.Cc.Od(qh(t), e); }); } sh(this, i); } return o; }), (ah.prototype.Aa = function (t, e) { var n = this.jb, r = Dd(this.wa, t, function (e, n) { var r = P(e, t); if ((r = n.hb(r))) return r; }); return n.Aa(t, r, e, !0); }); var mh = 1; (g = Qg.prototype), (g.toString = function () { return (this.L.Sc ? "https://" : "http://") + this.L.host; }), (g.name = function () { return this.L.pe; }), (g.Gb = function (t, e, n, r) { this.fd++; var i = new E(t); (e = this.je ? this.je(t, e) : e), (t = []), r ? n ? ((e = Ja(e, function (t) { return G(t); })), (t = kh(this.K, i, e, r))) : ((e = G(e)), (t = gh(this.K, i, e, r))) : n ? ((r = Ja(e, function (t) { return G(t); })), (t = fh(this.K, i, r))) : ((r = G(e)), (t = ch(this.K, new ce(ie, i, r)))), (r = i), 0 < t.length && (r = yh(this, i)), cf(this.ca, r, t); }), (g.Jc = function (t) { vh(this, "connected", t), !1 === t && zh(this); }), (g.ue = function (t) { var e = this; cc(t, function (t, n) { vh(e, n, t); }); }), (g.Jb = function (t, e, n, r) { this.f("set", { path: t.toString(), value: e, ug: n }); var i = xh(this); e = G(e, n); var i = Jb(e, i), o = this.vd++, i = bh(this.K, t, i, o, !0); Ze(this.ca, i); var a = this; this.va.put(t.toString(), e.H(!0), function (e, n) { var i = "ok" === e; i || J("set at " + t + " failed: " + e), (i = eh(a.K, o, !i)), cf(a.ca, t, i), Ah(r, e, n); }), (i = Bh(this, t)), yh(this, i), cf(this.ca, i, []); }), (g.update = function (t, e, n) { this.f("update", { path: t.toString(), value: e }); var r = !0, i = xh(this), o = {}; if ( (v(e, function (t, e) { r = !1; var n = G(t); o[e] = Jb(n, i); }), r) ) I("update() called with empty data. Don't do anything."), Ah(n, "ok"); else { var a = this.vd++, s = dh(this.K, t, o, a); Ze(this.ca, s); var c = this; this.va.af(t.toString(), e, function (e, r) { var i = "ok" === e; i || J("update at " + t + " failed: " + e); var i = eh(c.K, a, !i), o = t; 0 < i.length && (o = yh(c, t)), cf(c.ca, o, i), Ah(n, e, r); }), v(e, function (e, n) { var r = Bh(c, t.n(n)); yh(c, r); }), cf(this.ca, t, []); } }), (g.xd = function (t, e) { var n = this; this.va.xd(t.toString(), function (r, i) { "ok" === r && Yd(n.ia, t), Ah(e, r, i); }); }), (g.ab = function () { this.Ra && this.Ra.ab("repo_interrupt"); }), (g.kc = function () { this.Ra && this.Ra.kc("repo_interrupt"); }), (g.Be = function (t) { if ("undefined" != typeof console) { t ? (this.Vc || (this.Vc = new Kf(this.Va)), (t = this.Vc.get())) : (t = this.Va.get()); var e, n = Ba( Oa(t), function (t, e) { return Math.max(e.length, t); }, 0 ); for (e in t) { for (var r = t[e], i = e.length; i < n + 2; i++) e += " "; console.log(e + r); } } }), (g.Ce = function (t) { Mf(this.Va, t), (this.og.rf[t] = !0); }), (g.f = function (t) { var e = ""; this.Ra && (e = this.Ra.id + ":"), I(e, arguments); }), (Ug.prototype.ab = function () { for (var t in this.lb) this.lb[t].ab(); }), (Ug.prototype.kc = function () { for (var t in this.lb) this.lb[t].kc(); }), (Ug.prototype.ce = function (t) { this.wf = t; }), ca(Ug), (Ug.prototype.interrupt = Ug.prototype.ab), (Ug.prototype.resume = Ug.prototype.kc); var W = {}; (W.nc = Ag), (W.DataConnection = W.nc), (Ag.prototype.ng = function (t, e) { this.ua("q", { p: t }, e); }), (W.nc.prototype.simpleListen = W.nc.prototype.ng), (Ag.prototype.Hf = function (t, e) { this.ua("echo", { d: t }, e); }), (W.nc.prototype.echo = W.nc.prototype.Hf), (Ag.prototype.interrupt = Ag.prototype.ab), (W.zf = og), (W.RealTimeConnection = W.zf), (og.prototype.sendRequest = og.prototype.ua), (og.prototype.close = og.prototype.close), (W.Rf = function (t) { var e = Ag.prototype.put; return ( (Ag.prototype.put = function (r, i, o, a) { n(a) && (a = t()), e.call(this, r, i, o, a); }), function () { Ag.prototype.put = e; } ); }), (W.hijackHash = W.Rf), (W.yf = zb), (W.ConnectionTarget = W.yf), (W.ja = function (t) { return t.ja(); }), (W.queryIdentifier = W.ja), (W.Uf = function (t) { return t.u.Ra.$; }), (W.listens = W.Uf), (W.ce = function (t) { Ug.Vb().ce(t); }), (W.forceRestClient = W.ce), (W.Context = Ug), (g = X.prototype), (g.wb = function () { return ( y("Query.ref", 0, 0, arguments.length), new U(this.u, this.path) ); }), (g.gc = function (t, e, n, r) { y("Query.on", 2, 4, arguments.length), Td("Query.on", t, !1), B("Query.on", 2, e, !1); var i = Th("Query.on", n, r); if ("value" === t) Fh(this.u, this, new Vg(e, i.cancel || null, i.Ma || null)); else { var o = {}; (o[t] = e), Fh(this.u, this, new Wg(o, i.cancel, i.Ma)); } return e; }), (g.Ic = function (t, e, n) { y("Query.off", 0, 3, arguments.length), Td("Query.off", t, !0), B("Query.off", 2, e, !0), ob("Query.off", 3, n); var r = null, i = null; "value" === t ? (r = new Vg(e || null, null, n || null)) : t && (e && ((i = {}), (i[t] = e)), (r = new Wg(i, null, n || null))), (i = this.u), (r = ".info" === K(this.path) ? i.pd.kb(this, r) : i.K.kb(this, r)), af(i.ca, this.path, r); }), (g.$f = function (t, e) { function n(s) { o && ((o = !1), i.Ic(t, n), e && e.call(r.Ma, s), a.resolve(s)); } y("Query.once", 1, 4, arguments.length), Td("Query.once", t, !1), B("Query.once", 2, e, !0); var r = Th("Query.once", arguments[2], arguments[3]), i = this, o = !0, a = new ib(); return ( kb(a.ra), this.gc(t, n, function (e) { i.Ic(t, n), r.cancel && r.cancel.call(r.Ma, e), a.reject(e); }), a.ra ); }), (g.ne = function (t) { if ( (y("Query.limitToFirst", 1, 1, arguments.length), !ga(t) || Math.floor(t) !== t || 0 >= t) ) throw Error( "Query.limitToFirst: First argument must be a positive integer." ); if (this.m.xa) throw Error( "Query.limitToFirst: Limit was already set (by another call to limit, limitToFirst, or limitToLast)." ); return new X(this.u, this.path, this.m.ne(t), this.Nc); }), (g.oe = function (t) { if ( (y("Query.limitToLast", 1, 1, arguments.length), !ga(t) || Math.floor(t) !== t || 0 >= t) ) throw Error( "Query.limitToLast: First argument must be a positive integer." ); if (this.m.xa) throw Error( "Query.limitToLast: Limit was already set (by another call to limit, limitToFirst, or limitToLast)." ); return new X(this.u, this.path, this.m.oe(t), this.Nc); }), (g.ag = function (t) { if ((y("Query.orderByChild", 1, 1, arguments.length), "$key" === t)) throw Error( 'Query.orderByChild: "$key" is invalid. Use Query.orderByKey() instead.' ); if ("$priority" === t) throw Error( 'Query.orderByChild: "$priority" is invalid. Use Query.orderByPriority() instead.' ); if ("$value" === t) throw Error( 'Query.orderByChild: "$value" is invalid. Use Query.orderByValue() instead.' ); Vd("Query.orderByChild", t), Sh(this, "Query.orderByChild"); var e = new E(t); if (e.e()) throw Error( "Query.orderByChild: cannot pass in empty path. Use Query.orderByValue() instead." ); return ( (e = new pc(e)), (e = of(this.m, e)), Qh(e), new X(this.u, this.path, e, !0) ); }), (g.bg = function () { y("Query.orderByKey", 0, 0, arguments.length), Sh(this, "Query.orderByKey"); var t = of(this.m, tc); return Qh(t), new X(this.u, this.path, t, !0); }), (g.cg = function () { y("Query.orderByPriority", 0, 0, arguments.length), Sh(this, "Query.orderByPriority"); var t = of(this.m, H); return Qh(t), new X(this.u, this.path, t, !0); }), (g.dg = function () { y("Query.orderByValue", 0, 0, arguments.length), Sh(this, "Query.orderByValue"); var t = of(this.m, wc); return Qh(t), new X(this.u, this.path, t, !0); }), (g.Nd = function (t, e) { y("Query.startAt", 0, 2, arguments.length), Od("Query.startAt", t, this.path, !0), Ud("Query.startAt", e); var r = this.m.Nd(t, e); if ((Rh(r), Qh(r), this.m.ka)) throw Error( "Query.startAt: Starting point was already set (by another call to startAt or equalTo)." ); return n(t) || (e = t = null), new X(this.u, this.path, r, this.Nc); }), (g.gd = function (t, e) { y("Query.endAt", 0, 2, arguments.length), Od("Query.endAt", t, this.path, !0), Ud("Query.endAt", e); var n = this.m.gd(t, e); if ((Rh(n), Qh(n), this.m.na)) throw Error( "Query.endAt: Ending point was already set (by another call to endAt or equalTo)." ); return new X(this.u, this.path, n, this.Nc); }), (g.If = function (t, e) { if ( (y("Query.equalTo", 1, 2, arguments.length), Od("Query.equalTo", t, this.path, !1), Ud("Query.equalTo", e), this.m.ka) ) throw Error( "Query.equalTo: Starting point was already set (by another call to startAt or equalTo)." ); if (this.m.na) throw Error( "Query.equalTo: Ending point was already set (by another call to endAt or equalTo)." ); return this.Nd(t, e).gd(t, e); }), (g.toString = function () { y("Query.toString", 0, 0, arguments.length); for (var t = this.path, e = "", n = t.Y; n < t.o.length; n++) "" !== t.o[n] && (e += "/" + encodeURIComponent(String(t.o[n]))); return this.u.toString() + (e || "/"); }), (g.toJSON = function () { return y("Query.toJSON", 0, 1, arguments.length), this.toString(); }), (g.ja = function () { var t = ac(pf(this.m)); return "{}" === t ? "default" : t; }), (g.isEqual = function (t) { if ((y("Query.isEqual", 1, 1, arguments.length), !(t instanceof X))) throw Error( "Query.isEqual failed: First argument must be an instance of firebase.database.Query." ); var e = this.u === t.u, n = this.path.Z(t.path), r = this.ja() === t.ja(); return e && n && r; }), (X.prototype.on = X.prototype.gc), (X.prototype.off = X.prototype.Ic), (X.prototype.once = X.prototype.$f), (X.prototype.limitToFirst = X.prototype.ne), (X.prototype.limitToLast = X.prototype.oe), (X.prototype.orderByChild = X.prototype.ag), (X.prototype.orderByKey = X.prototype.bg), (X.prototype.orderByPriority = X.prototype.cg), (X.prototype.orderByValue = X.prototype.dg), (X.prototype.startAt = X.prototype.Nd), (X.prototype.endAt = X.prototype.gd), (X.prototype.equalTo = X.prototype.If), (X.prototype.toString = X.prototype.toString), (X.prototype.isEqual = X.prototype.isEqual), gc(X.prototype, "ref", X.prototype.wb), (Y.prototype.cancel = function (t) { y("Firebase.onDisconnect().cancel", 0, 1, arguments.length), B("Firebase.onDisconnect().cancel", 1, t, !0); var e = new ib(); return this.ta.xd(this.qa, jb(e, t)), e.ra; }), (Y.prototype.cancel = Y.prototype.cancel), (Y.prototype.remove = function (t) { y("Firebase.onDisconnect().remove", 0, 1, arguments.length), Wd("Firebase.onDisconnect().remove", this.qa), B("Firebase.onDisconnect().remove", 1, t, !0); var e = new ib(); return Ch(this.ta, this.qa, null, jb(e, t)), e.ra; }), (Y.prototype.remove = Y.prototype.remove), (Y.prototype.set = function (t, e) { y("Firebase.onDisconnect().set", 1, 2, arguments.length), Wd("Firebase.onDisconnect().set", this.qa), Od("Firebase.onDisconnect().set", t, this.qa, !1), B("Firebase.onDisconnect().set", 2, e, !0); var n = new ib(); return Ch(this.ta, this.qa, t, jb(n, e)), n.ra; }), (Y.prototype.set = Y.prototype.set), (Y.prototype.Jb = function (t, e, n) { y("Firebase.onDisconnect().setWithPriority", 2, 3, arguments.length), Wd("Firebase.onDisconnect().setWithPriority", this.qa), Od("Firebase.onDisconnect().setWithPriority", t, this.qa, !1), Sd("Firebase.onDisconnect().setWithPriority", 2, e), B("Firebase.onDisconnect().setWithPriority", 3, n, !0); var r = new ib(); return Dh(this.ta, this.qa, t, e, jb(r, n)), r.ra; }), (Y.prototype.setWithPriority = Y.prototype.Jb), (Y.prototype.update = function (t, e) { if ( (y("Firebase.onDisconnect().update", 1, 2, arguments.length), Wd("Firebase.onDisconnect().update", this.qa), ea(t)) ) { for (var n = {}, r = 0; r < t.length; ++r) n["" + r] = t[r]; (t = n), J( "Passing an Array to Firebase.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children." ); } return ( Rd("Firebase.onDisconnect().update", t, this.qa), B("Firebase.onDisconnect().update", 2, e, !0), (n = new ib()), Eh(this.ta, this.qa, t, jb(n, e)), n.ra ); }), (Y.prototype.update = Y.prototype.update); var Z = { Mf: function () { dg = Zf = !0; }, }; if ( ((Z.forceLongPolling = Z.Mf), (Z.Nf = function () { eg = !0; }), (Z.forceWebSockets = Z.Nf), (Z.Tf = function () { return Yf.isAvailable(); }), (Z.isWebSocketsAvailable = Z.Tf), (Z.lg = function (t, e) { t.u.Ra.ze = e; }), (Z.setSecurityDebugCallback = Z.lg), (Z.Be = function (t, e) { t.u.Be(e); }), (Z.stats = Z.Be), (Z.Ce = function (t, e) { t.u.Ce(e); }), (Z.statsIncrementCounter = Z.Ce), (Z.fd = function (t) { return t.u.fd; }), (Z.dataUpdateCount = Z.fd), (Z.Sf = function (t, e) { t.u.je = e; }), (Z.interceptServerData = Z.Sf), la(U, X), (g = U.prototype), (g.getKey = function () { return ( y("Firebase.key", 0, 0, arguments.length), this.path.e() ? null : Oc(this.path) ); }), (g.n = function (t) { if ((y("Firebase.child", 1, 1, arguments.length), ga(t))) t = String(t); else if (!(t instanceof E)) if (null === K(this.path)) { var e = t; e && (e = e.replace(/^\/*\.info(\/|$)/, "/")), Vd("Firebase.child", e); } else Vd("Firebase.child", t); return new U(this.u, this.path.n(t)); }), (g.getParent = function () { y("Firebase.parent", 0, 0, arguments.length); var t = this.path.parent(); return null === t ? null : new U(this.u, t); }), (g.Of = function () { y("Firebase.ref", 0, 0, arguments.length); for (var t = this; null !== t.getParent(); ) t = t.getParent(); return t; }), (g.Gf = function () { return this.u.Ya; }), (g.set = function (t, e) { y("Firebase.set", 1, 2, arguments.length), Wd("Firebase.set", this.path), Od("Firebase.set", t, this.path, !1), B("Firebase.set", 2, e, !0); var n = new ib(); return this.u.Jb(this.path, t, null, jb(n, e)), n.ra; }), (g.update = function (t, e) { if ( (y("Firebase.update", 1, 2, arguments.length), Wd("Firebase.update", this.path), ea(t)) ) { for (var n = {}, r = 0; r < t.length; ++r) n["" + r] = t[r]; (t = n), J( "Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children." ); } return ( Rd("Firebase.update", t, this.path), B("Firebase.update", 2, e, !0), (n = new ib()), this.u.update(this.path, t, jb(n, e)), n.ra ); }), (g.Jb = function (t, e, n) { if ( (y("Firebase.setWithPriority", 2, 3, arguments.length), Wd("Firebase.setWithPriority", this.path), Od("Firebase.setWithPriority", t, this.path, !1), Sd("Firebase.setWithPriority", 2, e), B("Firebase.setWithPriority", 3, n, !0), ".length" === this.getKey() || ".keys" === this.getKey()) ) throw ( "Firebase.setWithPriority failed: " + this.getKey() + " is a read-only object." ); var r = new ib(); return this.u.Jb(this.path, t, e, jb(r, n)), r.ra; }), (g.remove = function (t) { return ( y("Firebase.remove", 0, 1, arguments.length), Wd("Firebase.remove", this.path), B("Firebase.remove", 1, t, !0), this.set(null, t) ); }), (g.transaction = function (t, e, r) { if ( (y("Firebase.transaction", 1, 3, arguments.length), Wd("Firebase.transaction", this.path), B("Firebase.transaction", 1, t, !1), B("Firebase.transaction", 2, e, !0), n(r) && "boolean" != typeof r) ) throw Error( A("Firebase.transaction", 3, !0) + "must be a boolean." ); if (".length" === this.getKey() || ".keys" === this.getKey()) throw ( "Firebase.transaction failed: " + this.getKey() + " is a read-only object." ); "undefined" == typeof r && (r = !0); var i = new ib(); return ( ha(e) && kb(i.ra), Gh( this.u, this.path, t, function (t, n, r) { t ? i.reject(t) : i.resolve(new Ph(n, r)), ha(e) && e(t, n, r); }, r ), i.ra ); }), (g.kg = function (t, e) { y("Firebase.setPriority", 1, 2, arguments.length), Wd("Firebase.setPriority", this.path), Sd("Firebase.setPriority", 1, t), B("Firebase.setPriority", 2, e, !0); var n = new ib(); return this.u.Jb(this.path.n(".priority"), t, null, jb(n, e)), n.ra; }), (g.push = function (t, e) { y("Firebase.push", 0, 2, arguments.length), Wd("Firebase.push", this.path), Od("Firebase.push", t, this.path, !0), B("Firebase.push", 2, e, !0); var n = wh(this.u), r = Kc(n), n = this.n(r), i = this.n(r), r = null != t ? n.set(t, e).then(function () { return i; }) : hb.resolve(i); return ( (n.then = q(r.then, r)), (n.catch = q(r.then, r, void 0)), ha(e) && kb(r), n ); }), (g.ib = function () { return ( Wd("Firebase.onDisconnect", this.path), new Y(this.u, this.path) ); }), (U.prototype.child = U.prototype.n), (U.prototype.set = U.prototype.set), (U.prototype.update = U.prototype.update), (U.prototype.setWithPriority = U.prototype.Jb), (U.prototype.remove = U.prototype.remove), (U.prototype.transaction = U.prototype.transaction), (U.prototype.setPriority = U.prototype.kg), (U.prototype.push = U.prototype.push), (U.prototype.onDisconnect = U.prototype.ib), gc(U.prototype, "database", U.prototype.Gf), gc(U.prototype, "key", U.prototype.getKey), gc(U.prototype, "parent", U.prototype.getParent), gc(U.prototype, "root", U.prototype.Of), "undefined" == typeof firebase) ) throw Error( "Cannot install Firebase Database - be sure to load firebase-app.js first." ); try { firebase.INTERNAL.registerService( "database", function (t) { var e = Ug.Vb(), r = t.options.databaseURL; n(r) || Vb( "Can't determine Firebase Database URL. Be sure to include databaseURL option when calling firebase.intializeApp()." ); var i = Wb(r), r = i.jc; return ( Xd("Invalid Firebase Database URL", i), i.path.e() || Vb( "Database URL must point to the root of a Firebase Database (not including a child path)." ), (i = w(e.lb, t.name)) && Vb( "FIREBASE INTERNAL ERROR: Database initialized multiple times." ), (i = new Qg(r, e.wf, t)), (e.lb[t.name] = i), i.Ya ); }, { Reference: U, Query: X, Database: Pg, enableLogging: Sb, INTERNAL: Z, TEST_ACCESS: W, ServerValue: Sg, } ); } catch (t) { Vb("Failed to register the Firebase Database Service (" + t + ")"); } module.exports = firebase.database; })(); }, function (t, e) { function n() { throw new Error("setTimeout has not been defined"); } function r() { throw new Error("clearTimeout has not been defined"); } function i(t) { if (u === setTimeout) return setTimeout(t, 0); if ((u === n || !u) && setTimeout) return (u = setTimeout), setTimeout(t, 0); try { return u(t, 0); } catch (e) { try { return u.call(null, t, 0); } catch (e) { return u.call(this, t, 0); } } } function o(t) { if (f === clearTimeout) return clearTimeout(t); if ((f === r || !f) && clearTimeout) return (f = clearTimeout), clearTimeout(t); try { return f(t); } catch (e) { try { return f.call(null, t); } catch (e) { return f.call(this, t); } } } function a() { g && d && ((g = !1), d.length ? (p = d.concat(p)) : (b = -1), p.length && s()); } function s() { if (!g) { var t = i(a); g = !0; for (var e = p.length; e; ) { for (d = p, p = []; ++b < e; ) d && d[b].run(); (b = -1), (e = p.length); } (d = null), (g = !1), o(t); } } function c(t, e) { (this.fun = t), (this.array = e); } function l() {} var u, f, h = (t.exports = {}); !(function () { try { u = "function" == typeof setTimeout ? setTimeout : n; } catch (t) { u = n; } try { f = "function" == typeof clearTimeout ? clearTimeout : r; } catch (t) { f = r; } })(); var d, p = [], g = !1, b = -1; (h.nextTick = function (t) { var e = new Array(arguments.length - 1); if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; p.push(new c(t, e)), 1 !== p.length || g || i(s); }), (c.prototype.run = function () { this.fun.apply(null, this.array); }), (h.title = "browser"), (h.browser = !0), (h.env = {}), (h.argv = []), (h.version = ""), (h.versions = {}), (h.on = l), (h.addListener = l), (h.once = l), (h.off = l), (h.removeListener = l), (h.removeAllListeners = l), (h.emit = l), (h.prependListener = l), (h.prependOnceListener = l), (h.listeners = function (t) { return []; }), (h.binding = function (t) { throw new Error("process.binding is not supported"); }), (h.cwd = function () { return "/"; }), (h.chdir = function (t) { throw new Error("process.chdir is not supported"); }), (h.umask = function () { return 0; }); }, function (t, e, n) { (function (e) { !(function (n) { function r() {} function i(t, e) { return function () { t.apply(e, arguments); }; } function o(t) { if ("object" != typeof this) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof t) throw new TypeError("not a function"); (this._state = 0), (this._handled = !1), (this._value = void 0), (this._deferreds = []), f(t, this); } function a(t, e) { for (; 3 === t._state; ) t = t._value; return 0 === t._state ? void t._deferreds.push(e) : ((t._handled = !0), void o._immediateFn(function () { var n = 1 === t._state ? e.onFulfilled : e.onRejected; if (null === n) return void (1 === t._state ? s : c)(e.promise, t._value); var r; try { r = n(t._value); } catch (t) { return void c(e.promise, t); } s(e.promise, r); })); } function s(t, e) { try { if (e === t) throw new TypeError("A promise cannot be resolved with itself."); if (e && ("object" == typeof e || "function" == typeof e)) { var n = e.then; if (e instanceof o) return (t._state = 3), (t._value = e), void l(t); if ("function" == typeof n) return void f(i(n, e), t); } (t._state = 1), (t._value = e), l(t); } catch (e) { c(t, e); } } function c(t, e) { (t._state = 2), (t._value = e), l(t); } function l(t) { 2 === t._state && 0 === t._deferreds.length && o._immediateFn(function () { t._handled || o._unhandledRejectionFn(t._value); }); for (var e = 0, n = t._deferreds.length; e < n; e++) a(t, t._deferreds[e]); t._deferreds = null; } function u(t, e, n) { (this.onFulfilled = "function" == typeof t ? t : null), (this.onRejected = "function" == typeof e ? e : null), (this.promise = n); } function f(t, e) { var n = !1; try { t( function (t) { n || ((n = !0), s(e, t)); }, function (t) { n || ((n = !0), c(e, t)); } ); } catch (t) { if (n) return; (n = !0), c(e, t); } } var h = setTimeout; (o.prototype.catch = function (t) { return this.then(null, t); }), (o.prototype.then = function (t, e) { var n = new this.constructor(r); return a(this, new u(t, e, n)), n; }), (o.all = function (t) { var e = Array.prototype.slice.call(t); return new o(function (t, n) { function r(o, a) { try { if (a && ("object" == typeof a || "function" == typeof a)) { var s = a.then; if ("function" == typeof s) return void s.call( a, function (t) { r(o, t); }, n ); } (e[o] = a), 0 === --i && t(e); } catch (t) { n(t); } } if (0 === e.length) return t([]); for (var i = e.length, o = 0; o < e.length; o++) r(o, e[o]); }); }), (o.resolve = function (t) { return t && "object" == typeof t && t.constructor === o ? t : new o(function (e) { e(t); }); }), (o.reject = function (t) { return new o(function (e, n) { n(t); }); }), (o.race = function (t) { return new o(function (e, n) { for (var r = 0, i = t.length; r < i; r++) t[r].then(e, n); }); }), (o._immediateFn = ("function" == typeof e && function (t) { e(t); }) || function (t) { h(t, 0); }), (o._unhandledRejectionFn = function (t) { "undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", t); }), (o._setImmediateFn = function (t) { o._immediateFn = t; }), (o._setUnhandledRejectionFn = function (t) { o._unhandledRejectionFn = t; }), "undefined" != typeof t && t.exports ? (t.exports = o) : n.Promise || (n.Promise = o); })(this); }.call(e, n(25).setImmediate)); }, function (t, e, n) { (function (t, e) { !(function (t, n) { "use strict"; function r(t) { "function" != typeof t && (t = new Function("" + t)); for ( var e = new Array(arguments.length - 1), n = 0; n < e.length; n++ ) e[n] = arguments[n + 1]; var r = { callback: t, args: e }; return (g[p] = r), d(p), p++; } function i(t) { delete g[t]; } function o(t) { var e = t.callback, r = t.args; switch (r.length) { case 0: e(); break; case 1: e(r[0]); break; case 2: e(r[0], r[1]); break; case 3: e(r[0], r[1], r[2]); break; default: e.apply(n, r); } } function a(t) { if (b) setTimeout(a, 0, t); else { var e = g[t]; if (e) { b = !0; try { o(e); } finally { i(t), (b = !1); } } } } function s() { d = function (t) { e.nextTick(function () { a(t); }); }; } function c() { if (t.postMessage && !t.importScripts) { var e = !0, n = t.onmessage; return ( (t.onmessage = function () { e = !1; }), t.postMessage("", "*"), (t.onmessage = n), e ); } } function l() { var e = "setImmediate$" + Math.random() + "$", n = function (n) { n.source === t && "string" == typeof n.data && 0 === n.data.indexOf(e) && a(+n.data.slice(e.length)); }; t.addEventListener ? t.addEventListener("message", n, !1) : t.attachEvent("onmessage", n), (d = function (n) { t.postMessage(e + n, "*"); }); } function u() { var t = new MessageChannel(); (t.port1.onmessage = function (t) { var e = t.data; a(e); }), (d = function (e) { t.port2.postMessage(e); }); } function f() { var t = v.documentElement; d = function (e) { var n = v.createElement("script"); (n.onreadystatechange = function () { a(e), (n.onreadystatechange = null), t.removeChild(n), (n = null); }), t.appendChild(n); }; } function h() { d = function (t) { setTimeout(a, 0, t); }; } if (!t.setImmediate) { var d, p = 1, g = {}, b = !1, v = t.document, m = Object.getPrototypeOf && Object.getPrototypeOf(t); (m = m && m.setTimeout ? m : t), "[object process]" === {}.toString.call(t.process) ? s() : c() ? l() : t.MessageChannel ? u() : v && "onreadystatechange" in v.createElement("script") ? f() : h(), (m.setImmediate = r), (m.clearImmediate = i); } })( "undefined" == typeof self ? ("undefined" == typeof t ? this : t) : self ); }.call( e, (function () { return this; })(), n(20) )); }, function (t, e, n) { var r = n(13); "string" == typeof r && (r = [[t.id, r, ""]]); n(5)(r, {}); r.locals && (t.exports = r.locals); }, function (t, e, n) { var r = n(14); "string" == typeof r && (r = [[t.id, r, ""]]); n(5)(r, {}); r.locals && (t.exports = r.locals); }, function (t, e, n) { function r(t, e) { (this._id = t), (this._clearFn = e); } var i = Function.prototype.apply; (e.setTimeout = function () { return new r(i.call(setTimeout, window, arguments), clearTimeout); }), (e.setInterval = function () { return new r(i.call(setInterval, window, arguments), clearInterval); }), (e.clearTimeout = e.clearInterval = function (t) { t && t.close(); }), (r.prototype.unref = r.prototype.ref = function () {}), (r.prototype.close = function () { this._clearFn.call(window, this._id); }), (e.enroll = function (t, e) { clearTimeout(t._idleTimeoutId), (t._idleTimeout = e); }), (e.unenroll = function (t) { clearTimeout(t._idleTimeoutId), (t._idleTimeout = -1); }), (e._unrefActive = e.active = function (t) { clearTimeout(t._idleTimeoutId); var e = t._idleTimeout; e >= 0 && (t._idleTimeoutId = setTimeout(function () { t._onTimeout && t._onTimeout(); }, e)); }), n(22), (e.setImmediate = setImmediate), (e.clearImmediate = clearImmediate); }, ]);