// Here You can type your custom JavaScript... (function (qc) { function hc() {} function r() {} function q(a) { this.Ta = a; Error.captureStackTrace && Error.captureStackTrace(this, q) } function Wa(a) { this.g = v.Ga(Wa.N); v.Ea(this.g).get("features").textContent = a.join(", ") } function Xa() { this.nl = new Qb; this.g = v.Ga(Xa.N); var a = v.Ea(this.g); this.rg = a.get("ping"); this.wp = a.get("max-ping"); this.wo = a.get("fps"); v.xe(a.get("graph"), this.nl.g) } function P(a, b, c) { var d = this; this.g = v.Ga(P.N); var e = v.Ea(this.g); e.get("ok"); e.get("cancel"); this.Vd = e.get("content"); for (var f = e.get("title"), e = e.get("buttons"), g = 0, k = 0; k < c.length;) { var l = c[k++], t = window.document.createElement("button"); t.textContent = l; t.onclick = function (a) { return function () { y.i(d.Va, a[0]) } }([g++]); e.appendChild(t) } this.Vd.textContent = b; f.textContent = a } function aa(a) { function b(a) { var b = window.document.createElement("div"); b.className = "inputrow"; var c = window.document.createElement("div"); c.textContent = a; b.appendChild(c); for (var c = p.Eo(a), d = 0; d < c.length;) { var e = [c[d]]; ++d; var f = [window.document.createElement("div")], g = e[0]; J.startsWith(e[0], "Key") && (g = D.substr(e[0], 3, null)); f[0].textContent = g; b.appendChild(f[0]); g = window.document.createElement("i"); g.className = "icon-cancel"; g.onclick = function (a, b) { return function () { p.Jq(b[0]); n.A.tg.Xa(p); a[0].remove() } }(f, e); f[0].appendChild(g) } c = window.document.createElement("i"); c.className = "icon-plus"; b.appendChild(c); c.onclick = function () { q.classList.toggle("show", !0); q.focus(); q.onkeydown = function (b) { q.classList.toggle("show", !1); b.stopPropagation(); b = b.code; null == p.L(b) && (p.Pa(b, a), n.A.tg.Xa(p), r()) } }; return b } function c(a, b, c) { a = l.get(a); if (null == c) a.hidden = !0; else { a.innerHTML = b + ":
"; b = a.querySelector(".flagico"); a = a.querySelector("span"); try { b.classList.add("f-" + c.ub) } catch (vc) {} a.textContent = c.ub.toUpperCase() } } function d(a, b, c, d) { var e = l.get(a); e.selectedIndex = d(b.L()); e.onchange = function () { var a = c(e.selectedIndex); b.Xa(a) } } function e(a, b, c) { function d(a) { e.classList.toggle("icon-ok", a); e.classList.toggle("icon-cancel", !a) } a = l.get(a); a.classList.add("toggle"); var e = window.document.createElement("i"); e.classList.add("icon-ok"); a.insertBefore(e, a.firstChild); a.onclick = function () { var a = !b.L(); b.Xa(a); d(a); null != c && c(a) }; d(b.L()) } function f(a) { var b = { Jm: l.get(a + "btn"), bh: l.get(a + "sec") }; t.push(b); b.Jm.onclick = function () { g(b) } } function g(a) { for (var b = 0, c = 0; c < t.length;) { var d = t[c]; ++c; var e = d == a; e && (aa.$l = b); d.bh.classList.toggle("selected", e); d.Jm.classList.toggle("selected", e); ++b } } null == a && (a = !1); var k = this; this.g = v.Ga(aa.N); var l = v.Ea(this.g); this.nd = l.get("close"); var t = []; f("sound"); f("video"); f("misc"); f("input"); g(t[aa.$l]); e("tsound-main", n.A.pm, function (a) { n.Na.im(a ? 1 : 0) }); e("tsound-chat", n.A.Hi); e("tsound-highlight", n.A.om); e("tsound-crowd", n.A.nm); d("viewmode", n.A.Tb, function (a) { return a - 1 }, function (a) { return a + 1 }); d("fps", n.A.Fh, function (a) { return a }, function (a) { return a }); var h = [1, .75, .5, .25]; d("resscale", n.A.Sl, function (a) { return h[a] }, function (a) { for (var b = 0, c = h.length - 1; b < c && !(h[b] <= a);) ++b; return b }); e("tvideo-teamcol", n.A.xm); e("tvideo-showindicators", n.A.Ak); e("tvideo-showavatars", n.A.lm); var m = null, m = function () { var b = n.A.Ne.L(); c("loc", "Detected location", n.A.Me.L()); c("loc-ovr", "Location override", b); var d = l.get("loc-ovr-btn"); d.disabled = !a; null == b ? (d.textContent = "Override location", d.onclick = function () { A.i(k.Ep) }) : (d.textContent = "Remove override", d.onclick = function () { n.A.Ne.Xa(null); m() }) }; m(); var p = n.A.tg.L(), q = l.get("presskey"), r, u = l.get("inputsec"); r = function () { v.Cf(u); var a = b("Up"); u.appendChild(a); a = b("Down"); u.appendChild(a); a = b("Left"); u.appendChild(a); a = b("Right"); u.appendChild(a); a = b("Kick"); u.appendChild(a) }; r(); this.nd.onclick = function () { A.i(k.qb) } } function Ya(a) { this.fk = !1; this.qm = new za(p.Ia); this.Lj = new za(p.xa); this.Hl = new za(p.fa); var b = this; this.g = v.Ga(Ya.N); var c = v.Ea(this.g); this.jc = c.get("room-name"); this.tm = c.get("start-btn"); this.vm = c.get("stop-btn"); this.gi = c.get("pause-btn"); this.xn = c.get("auto-btn"); this.Nk = c.get("lock-btn"); this.Rl = c.get("reset-all-btn"); this.Fl = c.get("rec-btn"); var d = c.get("link-btn"), e = c.get("leave-btn"), f = c.get("rand-btn"); this.wf = c.get("time-limit-sel"); this.qf = c.get("score-limit-sel"); this.rm = c.get("stadium-name"); this.sm = c.get("stadium-pick"); this.sm.onclick = function () { A.i(b.Xp) }; this.Th(c.get("red-list"), this.Hl, p.fa, a); this.Th(c.get("blue-list"), this.Lj, p.xa, a); this.Th(c.get("spec-list"), this.qm, p.Ia, a); this.Uk(this.wf, this.Tk(15)); this.Uk(this.qf, this.Tk(15)); this.wf.onchange = function () { y.i(b.aq, b.wf.selectedIndex) }; this.qf.onchange = function () { y.i(b.Tp, b.qf.selectedIndex) }; this.tm.onclick = function () { A.i(b.Yp) }; this.vm.onclick = function () { A.i(b.Zp) }; this.gi.onclick = function () { A.i(b.Mp) }; this.xn.onclick = function () { A.i(b.Dp) }; this.Nk.onclick = function () { y.i(b.$p, !b.Xh) }; this.Rl.onclick = function () { null != b.ee && (b.ee(p.xa), b.ee(p.fa)) }; this.Fl.onclick = function () { A.i(b.Qp) }; d.onclick = function () { A.i(b.Wp) }; e.onclick = function () { A.i(b.de) }; f.onclick = function () { A.i(b.Pp) }; this.Bj(!1); this.Cj(!1) } function Za() { var a = this; this.g = v.Ga(Za.N); var b = v.Ea(this.g); this.Cb = b.get("input"); this.af = b.get("ok"); b.get("cancel").onclick = function () { null != a.Va && a.Va(null) }; this.Cb.maxLength = 30; this.Cb.oninput = function () { a.C() }; this.Cb.onkeydown = function (b) { 13 == b.keyCode && a.Dc() && null != a.Va && a.Va(a.Cb.value) }; this.af.onclick = function () { a.Dc() && null != a.Va && a.Va(a.Cb.value) }; this.C() } function $a(a) { this.Xk = a.get("notice"); this.$n = a.get("notice-contents"); this.nd = a.get("notice-close"); this.Il() } function Aa(a) { function b(a) { function b() { e.className = f.Ta ? "icon-ok" : "icon-cancel" } a = d.get(a); var e = a.querySelector("i"), f = { Ta: !0 }; b(); a.onclick = function () { f.Ta = !f.Ta; b(); c.bn(c.dj) }; return f } this.dj = []; var c = this; this.gs = a; this.Ja = v.Ga(Aa.tj); var d = v.Ea(this.Ja), e = new $a(d); this.pj = d.get("refresh"); this.Tm = d.get("join"); a = d.get("create"); this.cs = d.get("count"); a.onclick = function () { A.i(c.ws) }; d.get("changenick").onclick = function () { A.i(c.vs) }; d.get("settings").onclick = function () { A.i(c.ys) }; var f = d.get("replayfile"); f.onchange = function () { var a = f.files; if (!(1 > a.length)) { var a = a.item(0), b = new FileReader; b.onload = function () { y.i(c.xs, b.result) }; b.readAsArrayBuffer(a) } }; this.fs = b("fil-full"); this.zs = b("fil-pass"); this.ns = d.get("listscroll"); this.Bs = Ba.cg(this.ns); this.gj = d.get("list"); this.pj.onclick = function () { e.Il(); c.Om() }; this.Tm.onclick = function () { null != c.Od && y.i(c.Ym, c.Od.Fs) }; this.Om() } function ab(a) { this.Ja = v.Ga(ab.tj, "tbody"); var b = v.Ea(this.Ja), c = b.get("name"), d = b.get("players"), e = b.get("distance"), f = b.get("pass"), b = b.get("flag"); this.Fs = a; var g = a.vd; c.textContent = g.w; d.textContent = "" + g.I + "/" + g.Xe; f.textContent = g.Ib ? "Yes" : "No"; e.textContent = "" + (a.Le | 0) + "km"; try { b.classList.add("f-" + g.ub.toLowerCase()) } catch (k) {} 9 > a.vd.Id && this.Ja.classList.add("old") } function bb() { this.gk = null; var a = this; this.g = v.Ga(bb.N); var b = v.Ea(this.g); this.Zf = b.get("link"); var c = b.get("copy"), b = b.get("close"); this.Zf.onfocus = function () { a.Zf.select() }; c.onclick = function () { a.Zf.select(); return window.document.execCommand("Copy") }; b.onclick = function () { A.i(a.qb) } } function ha(a) { function b() { var b = g[f]; a.pl = e ? b : 0; d.get("spd").textContent = b + "x" } this.Wf = !1; var c = this; this.g = v.Ga(ha.N); var d = v.Ea(this.g); this.ti = a; d.get("reset").onclick = function () { a.ui(); c.el() }; var e = !0, f = 2, g = [.5, .75, 1, 2, 3]; b(); var k = d.get("playicon"); k.classList.add("icon-pause"); d.get("play").onclick = function () { e = !e; var a = k.classList; a.toggle("icon-play", !e); a.toggle("icon-pause", e); b() }; d.get("spdup").onclick = function () { f += 1; var a = g.length - 1; f > a && (f = a); b() }; d.get("spddn").onclick = function () { --f; 0 > f && (f = 0); b() }; this.Er = d.get("time"); var l = d.get("timebar"); this.Aq = d.get("progbar"); for (var t = d.get("timetooltip"), h = 0, m = a.Vk; h < m.length;) { var n = m[h]; ++h; var p = window.document.createElement("div"); p.className = "marker"; p.classList.add("k" + n.kind); p.style.left = 100 * n.mj + "%"; l.appendChild(p) } l.onclick = function (b) { a.er((b.pageX - l.offsetLeft) / l.clientWidth * a.mh * a.mf); c.Wf || (c.Wf = !0, c.Vp(), c.el()) }; l.onmousemove = function (b) { b = (b.pageX - l.offsetLeft) / l.clientWidth; t.textContent = ha.Wk(a.mf * a.mh * b); return t.style.left = "calc(" + 100 * b + "% - 30px)" }; this.fp = d.get("leave"); this.fp.onclick = function () { A.i(c.de) } } function Q(a) { var b = this, c = new P("Only humans", "", []); this.g = c.g; c.Vd.style.minHeight = "78px"; Ja.gp().then(function (d) { null == Q.xg && (Q.xg = window.document.createElement("div"), c.Vd.appendChild(Q.xg), Q.Dq = d.render(Q.xg, { sitekey: a, callback: function (a) { y.i(Q.Gl, a) }, theme: "dark" })); d.reset(Q.Dq); Q.Gl = function (a) { window.setTimeout(function () { y.i(b.Va, a) }, 1E3); Q.Gl = null }; c.Vd.appendChild(Q.xg) }) } function za(a) { this.xd = new Map; var b = this; this.g = v.Ga(za.N); this.g.className += " " + a.io; var c = v.Ea(this.g); this.ab = c.get("list"); this.Vh = c.get("join-btn"); this.vi = c.get("reset-btn"); a == p.Ia && this.vi.remove(); this.Vh.textContent = "" + a.w; this.g.ondragover = this.g.Qs = function (a) { -1 != a.dataTransfer.types.indexOf("player") && a.preventDefault() }; this.g.ondrop = function (c) { c.preventDefault(); c = c.dataTransfer.getData("player"); null != c && (c = K.parseInt(c), null != c && ia.i(b.mg, c, a)) }; this.Vh.onclick = function () { y.i(b.Kp, a) }; this.vi.onclick = function () { y.i(b.ee, a) } } function cb(a) { var b = this; this.w = a.w; this.yb = a.yb; this.$ = a.V; this.g = v.Ga(cb.N); var c = v.Ea(this.g); this.Ze = c.get("name"); this.rg = c.get("ping"); try { c.get("flag").classList.add("f-" + a.Kd) } catch (d) {} this.Ze.textContent = this.w; this.rg.textContent = "" + this.yb; this.g.ondragstart = function (a) { a.dataTransfer.setData("player", K.ye(b.$)) }; this.g.oncontextmenu = function (a) { a.preventDefault(); y.i(b.ff, b.$) }; this.em(a.cb) } function db(a, b) { var c = this; this.g = v.Ga(db.N); var d = v.Ea(this.g); this.Ze = d.get("name"); this.Hf = d.get("admin"); this.Qe = d.get("kick"); this.nd = d.get("close"); this.Hf.onclick = function () { ia.i(c.Cp, c.Nb, !c.ql) }; this.Qe.onclick = function () { y.i(c.ei, c.Nb) }; this.nd.onclick = function () { A.i(c.qb) }; this.Nb = a.V; this.Ej(a.w); this.Dj(a.cb); this.Hf.disabled = !b || 0 == this.Nb; this.Qe.disabled = !b || 0 == this.Nb } function Qb() { this.Ah = 0; this.vp = 400; this.yk = 64; this.Vi = 32; this.sa = window.document.createElement("canvas"); this.Qf = window.document.createElement("canvas"); this.g = window.document.createElement("div"); this.Qf.width = this.sa.width = this.Vi; this.Qf.height = this.sa.height = this.yk; this.Eh = this.Qf.getContext("2d", null); this.c = this.sa.getContext("2d", null); this.c.fillStyle = "green"; for (var a = [], b = 0, c = this.Vi; b < c;) ++b, a.push(0); this.fq = a; this.g.appendChild(this.Qf); this.g.className = "graph" } function eb() { this.jb = null; var a = this; this.g = v.Ga(eb.N); var b = v.Ea(this.g); b.get("cancel").onclick = function () { A.i(a.ci) }; this.hi = b.get("pick"); this.bk = b.get("delete"); this.rk = b.get("export"); var c = b.get("list"), d = b.get("file"); this.Lg(); this.hi.onclick = function () { null != a.jb && a.jb.Pd().then(function (b) { y.i(a.og, b) }) }; this.bk.onclick = function () { if (null != a.jb) { var b = a.jb.Lm; null != b && (a.jb.Ja.remove(), a.jb = null, b(), a.Lg()) } }; this.rk.onclick = function () { null != a.jb && a.jb.Pd().then(function (a) { Ca.br(a.se(), a.w + ".hbs") }) }; this.ki(c); this.vg = Ba.cg(c); window.setTimeout(function () { a.vg.update() }, 0); d.onchange = function () { var b = d.files; if (!(1 > b.length)) { var b = b.item(0), c = new FileReader; c.onload = function () { try { var b = new h; b.Lk(c.result); y.i(a.og, b) } catch (k) { b = k instanceof q ? k.Ta : k, b instanceof SyntaxError ? y.i(a.fi, "SyntaxError in line: " + K.ye(b.lineNumber)) : b instanceof Bb ? y.i(a.fi, b.xp) : y.i(a.fi, "Error loading stadium file.") } }; c.readAsText(b) } } } function fb() { var a = this; this.g = v.Ga(fb.N); var b = v.Ea(this.g); b.get("cancel").onclick = function () { y.i(a.qb, !1) }; b.get("leave").onclick = function () { y.i(a.qb, !0) } } function gb(a) { var b = this; this.g = v.Ga(gb.N); var c = v.Ea(this.g); this.Ze = c.get("title"); this.oi = c.get("reason"); this.yn = c.get("ban-btn"); this.An = c.get("ban-text"); this.Qe = c.get("kick"); this.nd = c.get("close"); this.yn.onclick = function () { b.Aj(!b.Jj) }; this.nd.onclick = function () { A.i(b.qb) }; this.Qe.onclick = function () { Cb.i(b.ei, b.Nb, b.oi.value, b.Jj) }; this.oi.onkeydown = function (a) { return a.stopPropagation() }; this.oi.maxLength = 100; this.Nb = a.V; this.Ze.textContent = "Kick " + a.w; this.Aj(!1) } function ja(a) { this.Fb = new hb; this.Gd = !1; this.pe = new Xa; this.Qa = new Da; var b = this; this.Wa = new Ya(a); this.Fb.Nb = a; this.g = v.Ga(ja.N); a = v.Ea(this.g); this.Jh = a.get("gameplay-section"); this.hf = a.get("popups"); this.hf.style.display = "none"; v.xe(a.get("chatbox"), this.Qa.g); v.xe(a.get("stats"), this.pe.g); this.bi = a.get("menu"); this.bi.onclick = function () { b.me(!b.Gd); b.bi.blur() }; a.get("settings").onclick = function () { var a = new aa; a.qb = function () { b.bb(null) }; b.bb(a.g) }; this.Jh.appendChild(this.Fb.g); this.Wa.de = function () { var a = new fb; a.qb = function (a) { b.bb(null); a && A.i(b.de) }; b.bb(a.g) }; this.Wa.Xp = function () { var a = new eb; a.ci = function () { b.bb(null) }; a.og = function (a) { y.i(b.og, a); b.bb(null) }; a.fi = function (a) { a = new P("Error loading stadium", a, ["Ok"]); a.Va = function () { b.bb(null) }; b.bb(a.g) }; b.bb(a.g) } } function Rb() { this.Da = 0; this.hk = this.ik = !1; this.Ke = 0; this.g = window.document.createElement("div"); this.g.className = "game-timer-view"; this.g.appendChild(this.bq = this.Wd("OVERTIME!", "overtime")); this.g.appendChild(this.zp = this.Wd("0", "digit")); this.g.appendChild(this.yp = this.Wd("0", "digit")); this.g.appendChild(this.Wd(":", null)); this.g.appendChild(this.dr = this.Wd("0", "digit")); this.g.appendChild(this.cr = this.Wd("0", "digit")) } function hb() { this.Nb = -1; this.Eb = new N; this.xc = new Rb; this.g = v.Ga(hb.N); var a = v.Ea(this.g); this.Pb = new Db(a.get("red-score"), 0); this.Kb = new Db(a.get("blue-score"), 0); v.xe(a.get("timer"), this.xc.g); v.xe(a.get("canvas"), this.Eb.sa) } function Ka(a, b) { var c = this; this.g = v.Ga(Ka.N); var d = v.Ea(this.g); this.Bp = d.get("ok"); this.Bp.onclick = function () { A.i(c.Va) }; this.Nl = d.get("replay"); var e = null != b; this.Nl.hidden = !e; e && (this.Nl.onclick = function () { ba.Yl(b) }); d.get("reason").textContent = a } function ib(a) { var b = this; this.g = v.Ga(ib.N); var c = v.Ea(this.g); this.vh = c.get("cancel"); this.Wj = c.get("create"); this.$e = c.get("name"); this.kl = c.get("pass"); this.ai = c.get("max-pl"); this.Em = c.get("unlisted"); this.$e.maxLength = 40; this.$e.value = a; this.$e.oninput = function () { b.C() }; this.kl.maxLength = 30; this.Em.onclick = function () { b.Fj(!b.Fm) }; this.vh.onclick = function () { A.i(b.ci) }; this.Wj.onclick = function () { if (b.Dc()) { var a = b.kl.value; "" == a && (a = null); y.i(b.Jp, { name: b.$e.value, password: a, qs: b.ai.selectedIndex + 2, Ks: b.Fm }) } }; for (a = 2; 21 > a;) c = window.document.createElement("option"), c.textContent = "" + a++, this.ai.appendChild(c); this.ai.selectedIndex = 10; this.Fj(!1); this.C() } function jb() { this.g = v.Ga(jb.N); var a = v.Ea(this.g); this.dc = a.get("log"); this.vh = a.get("cancel") } function kb(a) { function b() { c.Dc() && null != c.cl && c.cl(c.Cb.value) } var c = this; this.g = v.Ga(kb.N); var d = v.Ea(this.g); this.Cb = d.get("input"); this.af = d.get("ok"); this.Cb.maxLength = 25; this.Cb.value = a; this.Cb.oninput = function () { c.C() }; this.Cb.onkeydown = function (a) { 13 == a.keyCode && b() }; this.af.onclick = b; this.C() } function lb(a, b) { this.Hj = []; this.Iq = /[#@][^\s@#]*$/; this.Mb = a; this.Rp = b; a.hidden = !0 } function Da() { function a() { null != b.fl && "" != b.gb.value && b.fl(b.gb.value); b.gb.value = ""; b.gb.blur() } var b = this; this.g = v.Ga(Da.N); var c = v.Ea(this.g); this.dc = c.get("log"); this.vg = Ba.cg(this.dc); this.gb = c.get("input"); this.gb.maxLength = 140; c.get("send").onclick = a; this.Bc = new lb(c.get("autocompletebox"), function (a, c) { b.gb.value = a; b.gb.setSelectionRange(c, c) }); this.gb.onkeydown = function (c) { switch (c.keyCode) { case 9: b.Bc.Mb.hidden || (b.Bc.qo(), c.preventDefault()); break; case 13: a(); break; case 27: b.Bc.Mb.hidden ? (b.gb.value = "", b.gb.blur()) : b.Bc.Qh(); break; case 38: b.Bc.Qj(-1); break; case 40: b.Bc.Qj(1) } c.stopPropagation() }; this.gb.onfocus = function () { null != b.ig && b.ig(!0) }; this.gb.onblur = function () { null != b.ig && b.ig(!1); b.Bc.Qh() }; this.gb.oninput = function () { b.Bc.Hn(b.gb.value, b.gb.selectionStart) } } function mb() { this.rf = null; var a = this; this.g = v.Ga(mb.N); var b = v.Ea(this.g); b.get("cancel").onclick = function () { A.i(a.qb) }; this.wh = b.get("change"); this.wh.disabled = !0; this.wh.onclick = function () { null != a.rf && a.Zl(a.rf.index) }; b = b.get("list"); this.ki(b); var c = Ba.cg(b); window.setTimeout(function () { c.update() }, 0) } function Ea() { this.Xf = !1; this.w = ""; this.uh = 0; this.Jf = ""; this.kb = new ka; var a = window.document.createElement("canvas"); a.width = 64; a.height = 64; this.rb = a.getContext("2d", null); this.Ij = this.rb.createPattern(this.rb.canvas, "no-repeat"); this.fo() } function Sb() { this.xc = 0; this.ab = []; this.Ar = new R(["Süre Doldu"], 16777215); this.Gq = new R(["Süre Doldu"], 15035990); this.Fq = new R(["GOOOOOOOL"], 15035990); this.Cn = new R(["GOOOOOOOL"], 625603); this.Bn = new R(["GOOOOOOOL"], 625603); this.eq = new R(["Oyun", "Durduruldu"], 16777215) } function R(a, b) { for (var c = [], d = 0; d < a.length;) c.push(this.sp(a[d++], b)); this.We = c } function N() { this.$c = window.performance.now(); this.Jg = new Map; this.dd = new Map; this.zg = 1; this.xf = 35; this.jf = 0; this.kf = 1.5; this.Ya = new H(0, 0); this.Dk = !1; this.td = new Sb; this.sa = window.document.createElement("canvas"); this.sa.mozOpaque = !0; this.c = this.sa.getContext("2d", { alpha: !1 }); this.Lo = this.c.createPattern(n.Ko, null); this.Wn = this.c.createPattern(n.Vn, null); this.Un = this.c.createPattern(n.Tn, null) } function B() { this.ud = 0; this.v = 32; this.h = 63; this.m = 1; this.a = new H(0, 0) } function E() { this.Hg = this.Ig = this.wa = null; this.Yj = 0; this.ca = this.W = this.Xd = null; this.Cc = 0; this.m = 1; this.h = 63; this.v = 32; this.vb = 1 / 0; this.Za = !0; this.R = 0 } function L() { this.v = 32; this.h = 63; this.m = 1; this.Ua = 0; this.wa = new H(0, 0) } function Fa() { this.hc = -1; this.gc = null; this.F = [] } function nb() { this.R = 0; this.ne = 1 / 0; this.Hb = this.ec = 100; this.Yd = this.Zd = 0 } function ca() { this.hc = -1; this.gc = null; this.jl = 0; this.h = this.v = 63; this.Mj = 0; this.R = 16777215; this.Ca = .99; this.aa = 1; this.m = .5; this.Z = 10; this.oa = new H(0, 0); this.D = new H(0, 0); this.a = new H(0, 0) } function la() { this.da = 0 } function La() { this.da = 0 } function Ma() { this.da = 0 } function ma() { this.da = 0 } function ob() { this.da = 0 } function pb() { this.da = 0 } function Y() { this.Qg = !1; this.da = 0 } function kc() {} function na() { this.da = 0 } function Ga() { this.da = 0 } function Na() { this.da = 0 } function Oa() { this.da = 0 } function qb() { this.da = 0 } function oa() { this.da = 0 } function pa() { this.da = 0 } function Pa() { this.da = 0 } function qa() { this.da = 0 } function S() { this.da = 0 } function ra() { this.da = 0 } function sa() { this.da = 0 } function da() { this.da = 0 } function Qa() { this.da = 0 } function rb() { this.da = 0 } function ta() { this.da = 0 } function ea() { this.zc = -1; this.an = null; this.ea = p.Ia; this.H = null; this.yc = this.Sc = 0; this.Wb = !1; this.ob = this.V = 0; this.w = "Player"; this.Ug = this.yb = 0; this.Kd = null; this.Ld = !1; this.Xb = this.Jd = null; this.Jb = 0; this.cb = !1 } function fa() { this.hc = -1; this.S = this.gc = null; this.yd = 2; this.Zc = 0; this.ce = 1; this.ib = this.Da = 3; this.Pc = !1; this.K = null; this.I = []; this.jc = ""; this.S = h.Kh()[0]; this.kb = [null, new ka, new ka]; this.kb[1].fb.push(p.fa.R); this.kb[2].fb.push(p.xa.R) } function p(a, b, c, d, e, f, g, k) { this.pg = null; this.$ = a; this.R = b; this.Ch = c; this.cp = d; this.w = e; this.io = f; this.v = k; this.wm = new ka; this.wm.fb.push(b) } function ka() { this.ed = 16777215; this.fb = [] } function h() { this.J = []; this.U = []; this.qa = []; this.tc = []; this.F = []; this.pb = []; this.Dd = []; this.md = []; this.ge = new Eb; this.Bh = 255; this.Ge = this.Ye = 0; this.Lf = !0; this.pf = !1 } function Bb(a) { this.xp = a } function Eb() { this.Se = 0; this.Z = 15; this.v = 0; this.oa = new H(0, 0); this.aa = this.m = .5; this.Ca = .96; this.Ce = .1; this.Te = .07; this.Ue = .96; this.Re = 5 } function sb() { this.qe = p.Ia; this.ca = new H(0, 0); this.W = new H(0, 0) } function O() { this.hc = -1; this.gc = null; this.Pb = this.Kb = this.Hc = this.Oa = 0; this.ae = p.fa; this.vc = this.Bb = 0; this.ta = new Fa; this.Da = 0; this.ib = 5; this.S = null } function ua() { this.h = this.v = 63; this.R = 16777215; this.Ca = .99; this.aa = 1; this.m = .5; this.Z = 10; this.oa = new H(0, 0); this.D = new H(0, 0); this.a = new H(0, 0) } function Tb(a, b) { this.gh = null; this.Js = .025; this.ve = this.dh = this.Ef = 0; this.Tg = b.createGain(); this.Tg.gain.value = 0; var c = b.createBufferSource(); c.buffer = a; c.connect(this.Tg); c.loop = !0; c.start() } function Ub(a) { function b(b) { return new Promise(function (d, f) { var e = a.file(b).asArrayBuffer(); return c.c.decodeAudioData(e, d, f) }) } var c = this; this.c = new AudioContext; this.ag = this.c.createGain(); this.im(n.A.pm.L() ? 1 : 0); this.ag.connect(this.c.destination); this.ro = Promise.all([b("sounds/chat.ogg").then(function (a) { return c.Rj = a }), b("sounds/highlight.wav").then(function (a) { return c.zk = a }), b("sounds/kick.ogg").then(function (a) { return c.bp = a }), b("sounds/goal.ogg").then(function (a) { return c.Io = a }), b("sounds/join.ogg").then(function (a) { return c.$o = a }), b("sounds/leave.ogg").then(function (a) { return c.ep = a }), b("sounds/crowd.ogg").then(function (a) { c.ho = a; c.Xj = new Tb(c.ho, c.c); c.Xj.connect(c.ag) })]) } function Z() {} function va() {} function Fb() {} function Vb(a) { this.$c = window.performance.now(); this.sd = this.De = 0; var b = this; this.ya = a; this.j = new ja(a.uc); var c = new Gb(this.j); c.ri(a.T); window.document.addEventListener("keydown", G(this, this.Bd)); window.document.addEventListener("keyup", G(this, this.Cd)); window.requestAnimationFrame(G(this, this.bf)); this.Gh = window.setInterval(function () { b.j.pe.hm(b.sd); b.sd = 0 }, 1E3); this.uf(n.A.Tb.L()); this.j.g.classList.add("replayer"); this.je = new ha(a); this.je.Vp = function () { c.Lr(a.T) }; this.je.Up = function () { b.j.me(null == a.T.K); c.ri(a.T) }; this.je.el = function () { b.j.Fb.Eb.Xq() }; this.j.g.appendChild(this.je.g) } function x() {} function u() {} function Wb() {} function n() {} function W() { this.Yc = new Map } function wa(a, b, c, d) { this.w = a; this.Ur = d; this.Yh = b; d = null; null != b && (d = b.getItem(a)); this.Hm = c(d) } function Xb() {} function Yb() { function a(a) { return new wa(a, e, function (a) { if (null == a) return null; try { return T.Hh(a) } catch (k) { return null } }, function (a) { if (null == a) return null; try { return a.se() } catch (k) { return null } }) } function b(a) { return new wa(a, e, function (a) { return null != a ? "0" != a : !0 }, function (a) { return a ? "1" : "0" }) } function c(a, b) { return new wa(a, e, function (a) { var c = b; try { null != a && (c = K.parseInt(a)) } catch (t) {} return c }, function (a) { return "" + a }) } function d(a, b, c) { return new wa(a, e, function (a) { return null == a ? b : U.Qc(a, c) }, function (a) { return a }) } var e = Xb.Pm(); this.fe = d("player_name", "", 25); this.Tb = c("view_mode", -1); this.Fh = c("fps_limit", 0); this.sh = d("avatar", null, 2); d("rctoken", null, 1024); this.xm = b("team_colors"); this.Ak = b("show_indicators"); this.pm = b("sound_main"); this.Hi = b("sound_chat"); this.om = b("sound_highlight"); this.nm = b("sound_crowd"); this.Gj = d("player_auth_key", null, 1024); this.rd = c("extrapolation", 0); this.Sl = function (a, b) { return new wa(a, e, function (a) { var c = b; try { null != a && (c = parseFloat(a)) } catch (t) {} return c }, function (a) { return "" + a }) }("resolution_scale", 1); this.lm = b("show_avatars"); this.Me = a("geo"); this.Ne = a("geo_override"); this.tg = function () { return new wa("player_keys", e, function (a) { if (null == a) return W.$j(); try { return W.Hh(a) } catch (g) { return W.$j() } }, function (a) { try { return a.se() } catch (g) { return null } }) }() } function T() { this.ub = ""; this.Ec = this.Gc = 0 } function Ra() { this.$d = this.Yf = 0; window.document.addEventListener("focusout", G(this, this.al)) } function Gb(a, b) { this.Rh = null; this.j = a; null != b && (this.Rh = "@" + J.replace(b, " ", "_")) } function ba(a) { this.Nf = null; this.Ik = this.zh = !1; this.$c = window.performance.now(); this.Ed = null; this.De = 0; this.Jn = new tb(3, 1E3); this.ob = new Ra; this.Bg = "Waiting for link"; this.xi = this.am = !1; this.sd = 0; var b = this; this.Of = new ub(a, function (a) { b.j.Qa.Gb(a) }); this.ya = a; a.T.ko = function (c) { b.am != c && (b.am = c, c = ta.la(c), a.ra(c)) }; this.j = new ja(a.uc); this.Ih = new Gb(this.j, a.T.na(a.uc).w); this.Ih.ri(a.T); this.j.Qa.fl = G(this, this.Gp); this.j.Qa.ig = G(this, this.Fp); window.document.addEventListener("keydown", G(this, this.Bd)); window.document.addEventListener("keyup", G(this, this.Cd)); window.onbeforeunload = function () { return "Are you sure you want to leave the room?" }; this.ob.ng = function (b) { a.ra(b) }; this.j.Wa.aq = function (b) { b = da.la(1, b); a.ra(b) }; this.j.Wa.Tp = function (b) { b = da.la(0, b); a.ra(b) }; this.j.og = function (b) { b = qa.la(b); a.ra(b) }; this.j.Wa.Yp = function () { a.ra(new Ma) }; this.j.Wa.Zp = function () { a.ra(new La) }; this.j.Wa.Mp = function () { b.Bm() }; this.j.Wa.mg = function (b, c) { var d = S.la(b, c); a.ra(d) }; this.j.Wa.ee = G(this, this.Wq); this.j.Wa.Dp = function () { a.ra(new Qa) }; this.j.Wa.Pp = function () { ba.Bq(a) }; this.j.Wa.$p = function (b) { b = pa.la(b); a.ra(b) }; this.j.Wa.ff = function (c) { var d = a.T.na(c); if (null != d) { var e = new db(d, b.xi); e.qb = function () { b.j.bb(null) }; e.Cp = function (b, c) { var d = sa.la(b, c); a.ra(d) }; e.ei = function () { b.vr(d) }; b.j.bb(e.g, function () { e.C(a.T, b.xi) }) } }; this.j.Wa.Wp = function () { var a = new bb; a.qb = function () { b.j.bb(null) }; b.j.bb(a.g, function () { a.nr(b.Bg) }) }; this.j.Wa.Qp = function () { if (null == b.Ed) b.zr(); else { var a = b.Ed.stop(); b.Ed = null; ba.Yl(a) } b.j.Wa.rr(null != b.Ed) }; window.requestAnimationFrame(G(this, this.bf)); this.Gh = window.setInterval(function () { b.j.pe.hm(b.sd); b.sd = 0 }, 1E3); this.Qr = window.setInterval(function () { a.C() }, 50); this.uf(); var c = n.A.rd.L(), c = -200 > c ? -200 : 1000 < c ? 1000 : c; if (0 != c) { var d = n.A.rd.L(); a.gm(d); this.j.Qa.Gb("Extrapolation set to " + c + " msec") } } function Ha() {} function ub(a, b) { this.ya = a; this.ba = b } function Hb() {} function tb(a, b) { this.Nj = a; this.Si = b; this.oc = a; this.Ve = window.performance.now() } function vb() {} function Cb() {} function ia() {} function y() {} function A() {} function M() {} function H(a, b) { this.x = a; this.y = b } function Ib(a) { this.Yb = a.slice() } function Jb(a, b, c) { this.Vk = []; this.pl = 5; this.Fd = -1; this.hg = this.Qb = this.Wh = this.sk = 0; V.call(this, b); a = new F(new DataView(a.buffer), !1); if (1212305970 != a.hb()) throw new q(""); b = a.hb(); if (c != b) throw new q(new Kb(b)); this.mf = a.hb(); c = pako.inflateRaw(a.sb()); this.Lc = new F(new DataView(c.buffer, c.byteOffset, c.byteLength)); this.Cq(this.Lc); c = this.Lc.sb(); this.Lc = new F(new DataView(c.buffer, c.byteOffset, c.byteLength), !1); this.ui(); this.Wh = window.performance.now(); this.uc = -1 } function Kb(a) { this.Id = a } function Zb() {} function $b(a) { this.xj = new Map; this.Ho = new tb(100, 16); this.yg = !1; this.yb = 0; this.pa = a; a = w.ha(8); a.s(Math.random()); this.He = a.Sb() } function Lb(a) { this.Kj = new Map; this.Ib = null; this.fg = 32; this.Ie = new Map; this.ac = []; this.wi = 4; this.Mn = 600; var b = this; V.call(this, a.state); this.tp = a.ij; this.Sr = a.version; this.up = 1; this.Jk = this.uc = 0; this.Li = window.performance.now(); this.Ic = new Sa(this.tp, a.iceServers, Zb.Km, a.gn); this.Ic.Vj = G(this, this.Oo); this.Ic.bl = function (a) { b.Lp(a) }; this.Ic.kg = function (a) { y.i(b.kg, a) }; this.Ic.ef = function (a, d) { null != b.ef && b.ef(a, d) } } function xa(a, b) { this.Di = []; this.pi = []; this.ug = new Ia; this.Ap = 1; this.pd = this.zm = 0; this.Qi = new Mb(50); this.sg = new Mb(50); this.nn = 1E3; this.ek = ""; var c = this; V.call(this, b.state); this.Uh = b.Ms; this.Je = b.ds; var d = null, d = function (e) { c.tf(0); var f = w.ha(); f.Ub(b.version); f.Db(b.password); c.pc = new wb(b.ij, b.iceServers, a, Zb.Km, f, b.gn); c.pc.rh = e; c.pc.zd = function (a) { c.pc = null; c.pa = a; a.lg = function (a) { a = new F(new DataView(a)); c.uq(a) }; a.cf = function () { 3 != c.pd && y.i(c.df, xb.ih("Connection closed")); c.ia() }; a = window.setTimeout(function () { y.i(c.df, xb.ih("Game state timeout")); c.ia() }, 1E4); c.re = a; c.tf(2) }; c.pc.gl = function () { c.tf(1) }; var g = !1; c.pc.Zk = function () { return g = !0 }; c.pc.bd = function (a) { if (!e && 1 == c.pd && g) A.i(c.Sp), d(!0); else { var b = wb.Do(a); switch (a.nb) { case 0: a = xb.jh; break; case 1: a = xb.lh(a.code); break; case 2: a = xb.hh; break; default: a = xb.ih(b) } y.i(c.df, a); c.ia(b) } } }; d(null != b.cn && b.cn) } function V(a) { this.Ri = new Ia; this.te = this.cc = 0; this.le = new Ia; this.uc = this.bc = this.rd = 0; this.Ac = .06; this.mh = 16.666666666666668; this.Ff = 120; yb.call(this, a) } function ya() {} function Ta() {} function ac(a, b) { this.Xm = 0; this.version = 1; this.ah = 0; this.Nd = w.ha(1E3); this.Df = w.ha(16384); var c = this; this.version = b; var d = this.ah = a.Y; this.hj = a; a.T.ga(this.Df); a.fc = function (b) { var e = a.Y; c.Df.lb(e - d); d = e; c.Df.Ub(b.P); m.lj(b, c.Df) }; this.Nd.Ub(0); var e = this.ah; a.T.km(function (b) { var d = a.Y; c.Nd.lb(d - e); c.Nd.l(b); c.Xm++; e = d }) } function bc() {} function Mb(a) { this.rs = a; this.$a = [] } function cc() {} function Ua() { this.da = 0 } function yb(a) { this.Y = 0; this.T = a } function Ia() { this.list = [] } function m() { this.da = 0 } function lc() {} function zb() {} function v() {} function Db(a, b) { this.Ja = a; this.value = b; a.textContent = "" + b } function Ca() {} function mc() {} function Ba() {} function Ja() {} function I() {} function w(a, b) { null == b && (b = !1); this.o = a; this.Sa = b; this.a = 0 } function F(a, b) { null == b && (b = !1); this.o = a; this.Sa = b; this.a = 0 } function Nb(a) { this.gd = null; this.Eq = 1E4; this.wd = !0; var b = this; a.Tj(); this.Ra = a.Ra; this.Vc = a.Vc; this.oe = a.oe; this.gd = a.gd; this.ym = window.performance.now(); var c = null, c = function () { var a = b.Eq - b.Br(); 0 >= a ? b.ia() : (window.clearTimeout(b.Am), a = window.setTimeout(c, a + 1E3), b.Am = a) }; c(); this.Ra.oniceconnectionstatechange = function () { var a = b.Ra.iceConnectionState; "closed" != a && "failed" != a || b.ia() }; a = 0; for (var d = this.Vc; a < d.length;) { var e = d[a]; ++a; e.onmessage = function (a) { b.wd && (b.ym = window.performance.now(), null != b.lg && b.lg(a.data)) }; e.onclose = function () { b.ia() } } } function nc() {} function Sa(a, b, c, d) { this.th = new Set; this.If = new Set; this.Ag = this.nf = this.dm = !1; this.Mc = null; this.$ = ""; this.$q = 5E4; this.Zq = 1E4; this.od = new Map; this.xr = a; this.Vf = b; this.In = c; this.Dg = d; null == this.Dg && (this.Dg = ""); this.Ji() } function Va(a, b, c) { this.gd = this.re = null; this.oe = []; this.ak = 0; this.hl = !1; this.Uf = []; this.Vc = []; var d = this; this.Ra = new RTCPeerConnection({ iceServers: b }, Va.Yn); this.Sh = new Promise(function (a) { d.Vo = a }); this.Ra.onicecandidate = function (a) { null == a.candidate ? d.Vo(d.Uf) : (a = a.candidate, null != a.candidate && "" != a.candidate && (null != d.jg && d.jg(a), d.Uf.push(a))) }; for (b = 0; b < c.length;) this.co(c[b++]); this.$ = a } function wb(a, b, c, d, e, f) { this.rh = this.yh = !1; var g = this; this.pa = new Va(0, b, d); this.pa.bd = function () { g.Oe(Ob.jh) }; this.pa.zd = function () { null != g.zd && g.zd(new Nb(g.pa)); g.pa = null; g.Uj() }; this.pa.di = function (b) { g.jr = b; g.X = new WebSocket(a + "client?id=" + c + (null == f ? "" : "&token=" + f)); g.X.binaryType = "arraybuffer"; g.X.onclose = function (a) { g.yh || g.Oe(Ob.lh(a.code)) }; g.X.onerror = function () { g.yh || g.Oe(Ob.Error) }; g.X.onmessage = G(g, g.Ph); g.X.onopen = function () { null != g.gl && g.gl(); g.pa.Mi(); g.Bi(g.jr, g.pa.Uf, e); g.pa.jg = G(g, g.yi); g.pa.Sh.then(function () { g.Nc(0, null) }) } }; this.pa.eo() } function dc() { this.hash = 0 } function U() {} function J() {} function K() {} function ec() {} function D() {} function fc(a, b) { this.r = new RegExp(a, b.split("u").join("")) } function ga() { return r.Be(this, "") } function C(a, b) { var c = Object.create(a), d; for (d in b) c[d] = b[d]; b.toString !== Object.prototype.toString && (c.toString = b.toString); return c } function G(a, b) { if (null == b) return null; null == b.oh && (b.oh = rc++); var c; null == a.ej ? a.ej = {} : c = a.ej[b.oh]; null == c && (c = b.bind(a), a.ej[b.oh] = c); return c } var Ab = Ab || {}, X; fc.b = !0; fc.prototype = { match: function (a) { this.r.global && (this.r.lastIndex = 0); this.r.nc = this.r.exec(a); this.r.bh = a; return null != this.r.nc }, Wm: function (a) { if (null != this.r.nc && 0 <= a && a < this.r.nc.length) return this.r.nc[a]; throw new q("EReg::matched"); }, ps: function () { if (null == this.r.nc) throw new q("No string matched"); return { mj: this.r.nc.index, ms: this.r.nc[0].length } }, os: function (a, b, c) { null == c && (c = -1); if (this.r.global) { this.r.lastIndex = b; this.r.nc = this.r.exec(0 > c ? a : D.substr(a, 0, b + c)); if (b = null != this.r.nc) this.r.bh = a; return b } if (c = this.match(0 > c ? D.substr(a, b, null) : D.substr(a, b, c))) this.r.bh = a, this.r.nc.index += b; return c }, f: fc }; D.b = !0; D.bj = function (a, b) { var c = a.charCodeAt(b); if (c == c) return c }; D.substr = function (a, b, c) { if (null == c) c = a.length; else if (0 > c) if (0 == b) c = a.length + c; else return ""; return a.substr(b, c) }; D.remove = function (a, b) { var c = a.indexOf(b); if (-1 == c) return !1; a.splice(c, 1); return !0 }; Math.b = !0; ec.b = !0; ec.Mm = function (a) { var b = []; if (null != a) { var c = Object.prototype.hasOwnProperty, d; for (d in a) "__id__" != d && "hx__closures__" != d && c.call(a, d) && b.push(d) } return b }; K.b = !0; K.ye = function (a) { return r.Be(a, "") }; K.parseInt = function (a) { a = parseInt(a, !a || "0" != a[0] || "x" != a[1] && "X" != a[1] ? 10 : 16); return isNaN(a) ? null : a }; J.b = !0; J.startsWith = function (a, b) { return a.length >= b.length ? D.substr(a, 0, b.length) == b : !1 }; J.ls = function (a, b) { var c = D.bj(a, b); return 8 < c && 14 > c ? !0 : 32 == c }; J.Gs = function (a) { for (var b = a.length, c = 0; c < b && J.ls(a, b - c - 1);) ++c; return 0 < c ? D.substr(a, 0, b - c) : a }; J.Af = function (a) { var b, c = ""; for (b = 2 - a.length; c.length < b;) c += "0"; return c + (null == a ? "null" : "" + a) }; J.replace = function (a, b, c) { return a.split(b).join(c) }; J.Vg = function (a, b) { for (var c = ""; c = "0123456789ABCDEF".charAt(a & 15) + c, a >>>= 4, 0 < a;); if (null != b) for (; c.length < b;) c = "0" + c; return c }; U.b = !0; U.Qc = function (a, b) { return a.length <= b ? a : D.substr(a, 0, b) }; U.Zr = function (a) { for (var b = "", c = 0, d = a.byteLength; c < d;) b += J.Vg(a[c++], 2); return b }; dc.b = !0; dc.prototype = { Yr: function (a) { for (var b = 0, c = a.length; b < c;) this.hash += a[b++], this.hash += this.hash << 10, this.hash ^= this.hash >>> 6 }, f: dc }; var Ob = Ab["bas.basnet.FailReason"] = { Gf: !0, nh: ["PeerFailed", "Rejected", "Cancelled", "Error"], jh: { nb: 0, eb: "bas.basnet.FailReason", toString: ga }, lh: (X = function (a) { return { nb: 1, code: a, eb: "bas.basnet.FailReason", toString: ga } }, X.Ae = ["code"], X), hh: { nb: 2, eb: "bas.basnet.FailReason", toString: ga }, Error: { nb: 3, eb: "bas.basnet.FailReason", toString: ga } }; wb.b = !0; wb.Do = function (a) { switch (a.nb) { case 0: return "Failed"; case 1: return pc.description(a.code); case 2: return ""; case 3: return "Master connection error" } }; wb.prototype = { Gn: function () { this.Oe(Ob.hh) }, Uj: function () { null != this.X && (this.X.onclose = null, this.X.onmessage = null, this.X.onerror = null, this.X.onopen = null, this.X.close(), this.X = null); null != this.pa && (this.pa.ia(), this.pa = null) }, Oe: function (a) { null != this.bd && this.bd(a); this.Uj() }, Ph: function (a) { a = new F(new DataView(a.data)); var b = a.B(); 0 < a.o.byteLength - a.a && (a = new F(new DataView(pako.inflateRaw(a.sb()).buffer), !1)); switch (b) { case 1: for (var b = a.ic(), c = a.wg(), d = [], e = 0; e < c.length;) d.push(new RTCIceCandidate(c[e++])); this.Oh(b, d, a); break; case 4: this.Nh(new RTCIceCandidate(a.wg())) } }, Oh: function (a, b) { var c = this; this.pa.Mi(this.rh ? 1E4 : 4E3); this.yh = !0; null != this.Zk && this.Zk(); this.pa.Ra.setRemoteDescription(new RTCSessionDescription({ sdp: a, type: "answer" }), function () { for (var a = 0; a < b.length;) c.pa.Ra.addIceCandidate(b[a++]) }, function () { c.Oe(Ob.Error) }) }, Nh: function (a) { this.pa.Ra.addIceCandidate(a) }, Nc: function (a, b) { if (null != this.X) { var c = w.ha(32, !1); c.l(a); null != b && c.Vb(pako.deflateRaw(b.Sb())); this.X.send(c.Hd()) } }, Bi: function (a, b, c) { var d = w.ha(32, !1); d.l(this.rh ? 1 : 0); d.mc(a.sdp); d.Ng(b); null != c && d.Vb(c.Sb()); this.Nc(1, d) }, yi: function (a) { var b = w.ha(32, !1); b.Ng(a); this.Nc(4, b) }, f: wb }; Va.b = !0; Va.prototype = { Mi: function (a) { null == a && (a = 1E4); window.clearTimeout(this.re); this.re = window.setTimeout(G(this, this.To), a) }, bo: function (a, b) { var c = this; this.ck(this.Ra.setRemoteDescription(a).then(function () { return c.Ra.createAnswer() }), b, 500) }, eo: function () { this.ck(this.Ra.createOffer(), [], 1E3) }, ck: function (a, b, c) { var d = this; a.then(function (a) { return d.Ra.setLocalDescription(a).then(function () { return a }) }).then(function (a) { function e() { return a } for (var g = 0; g < b.length;) d.yj(b[g++]); return lc.Dr(d.Sh, c).then(e, e) }).then(function (a) { d.di(a) })["catch"](function () { d.Tf() }) }, co: function (a) { var b = this, c = { id: this.Vc.length, negotiated: !0, ordered: a.kj }; a.reliable || (c.maxRetransmits = 0); a = this.Ra.createDataChannel(a.name, c); a.binaryType = "arraybuffer"; a.onopen = function () { for (var a = 0, c = b.Vc; a < c.length;) if ("open" != c[a++].readyState) return; null != b.zd && b.zd() }; a.onclose = function () { b.Tf() }; a.onmessage = function () { b.Tf() }; this.Vc.push(a) }, yj: function (a) { var b = this; window.setTimeout(function () { return b.Ra.addIceCandidate(a) }, this.ak) }, To: function () { this.Tf() }, Tf: function () { null != this.bd && this.bd(); this.ia() }, ia: function () { this.Tj(); this.Ra.close() }, Tj: function () { window.clearTimeout(this.re); this.di = this.zd = this.jg = this.bd = null; this.Ra.onicecandidate = null; this.Ra.ondatachannel = null; this.Ra.onsignalingstatechange = null; this.Ra.oniceconnectionstatechange = null; for (var a = 0, b = this.Vc; a < b.length;) { var c = b[a]; ++a; c.onopen = null; c.onclose = null; c.onmessage = null } }, f: Va }; var gc = Ab["bas.basnet.ConnectionRequestResponse"] = { Gf: !0, nh: ["Accept", "Reject"], hn: { nb: 0, eb: "bas.basnet.ConnectionRequestResponse", toString: ga }, kh: (X = function (a) { return { nb: 1, reason: a, eb: "bas.basnet.ConnectionRequestResponse", toString: ga } }, X.Ae = ["reason"], X) }; Sa.b = !0; Sa.vk = function (a) { try { var b = nc.gf(a.candidate); if ("srflx" == b.Jr) return b.Xo } catch (c) {} return null }; Sa.prototype = { ia: function () { window.clearTimeout(this.Ul); window.clearTimeout(this.ke); this.ke = null; window.clearInterval(this.ol); this.X.onmessage = null; this.X.onerror = null; this.X.onclose = null; this.X.onopen = null; this.X.close(); this.X = null; this.qk() }, Fi: function (a) { var b = this; if (null != this.Mc || null != a) { if (null != this.Mc && null != a && this.Mc.byteLength == a.byteLength) { for (var c = new Uint8Array(this.Mc), d = new Uint8Array(a), e = !1, f = 0, g = this.Mc.byteLength; f < g;) { var k = f++; if (c[k] != d[k]) { e = !0; break } } if (!e) return } this.Mc = a.slice(0); this.Ag = !0; null != this.X && 1 == this.X.readyState && null == this.ke && (this.Ai(), this.ke = window.setTimeout(function () { b.ke = null; 1 == b.X.readyState && b.Ag && b.Ai() }, 1E4)) } }, Ei: function (a) { function b() { null != c.X && 1 == c.X.readyState && c.nf != c.dm && c.cm(); c.Ql = null } var c = this; this.nf = a; null == this.Ql && (b(), this.Ql = window.setTimeout(b, 1E3)) }, Ji: function (a) { function b(a) { a = a.sitekey; if (null == a) throw new q(null); null != d.ef && d.ef(a, function (a) { d.Ji(a) }) } function c(a) { var b = a.url; if (null == b) throw new q(null); a = a.token; if (null == a) throw new q(null); d.X = new WebSocket(b + "?token=" + a); d.X.binaryType = "arraybuffer"; d.X.onopen = function () { d.So() }; d.X.onclose = function (a) { d.Mh(4001 != a.code) }; d.X.onerror = function () { d.Mh(!0) }; d.X.onmessage = G(d, d.Ph) } null == a && (a = ""); var d = this; M.zl(this.xr, "token=" + this.Dg + "&rcr=" + a, M.vj).then(function (a) { switch (a.action) { case "connect": c(a); break; case "recaptcha": b(a) } })["catch"](function () { d.Mh(!0) }) }, So: function () { var a = this; null != this.Mc && this.Ai(); 0 != this.nf && this.cm(); this.ol = window.setInterval(function () { a.zi() }, 4E4) }, Ph: function (a) { a = new F(new DataView(a.data), !1); switch (a.B()) { case 1: this.Oh(a); break; case 4: this.Nh(a); break; case 5: this.No(a); break; case 6: this.Qo(a) } }, Oh: function (a) { var b = a.hb(), c = U.Zr(a.sb(a.B())), d, e, f; try { a = new F(new DataView(pako.inflateRaw(a.sb()).buffer), !1); d = 0 != a.B(); e = a.ic(); for (var g = a.wg(), k = [], l = 0; l < g.length;) k.push(new RTCIceCandidate(g[l++])); f = k } catch (t) { this.sf(b, 0); return } this.Ro(b, c, e, f, a, d) }, Ro: function (a, b, c, d, e, f) { var g = this; if (16 <= this.od.size) this.sf(a, 4104); else if (this.th.has(b)) this.sf(a, 4102); else { for (var k = [], l = 0; l < d.length;) { var t = Sa.vk(d[l++]); if (null != t) { if (this.If.has(t)) { this.sf(a, 4102); return } k.push(t) } } if (null != this.Vj && (l = new F(e.o), l.a = e.a, e = this.Vj(b, l), 1 == e.nb)) { this.sf(a, e.reason); return } var h = new Va(a, this.Vf, this.In); f && (h.ak = 2500); h.oe = k; h.gd = b; this.od.set(a, h); h.bd = function () { g.Nc(0, h, null); g.od["delete"](h.$) }; h.zd = function () { g.od["delete"](h.$); g.Nc(0, h, null); null != g.bl && g.bl(new Nb(h)) }; h.di = function (a) { g.Bi(h, a, h.Uf, null); h.Sh.then(function () { g.Nc(0, h, null) }); h.jg = function (a) { g.yi(h, a) } }; h.Mi(); h.bo(new RTCSessionDescription({ sdp: c, type: "offer" }), d) } }, Nh: function (a) { var b = a.hb(), c; try { a = new F(new DataView(pako.inflateRaw(a.sb()).buffer), !1), c = new RTCIceCandidate(a.wg()) } catch (d) { return } this.Mo(b, c) }, Mo: function (a, b) { var c = this.od.get(a); if (null != c) { var d = Sa.vk(b); if (null != d && (c.oe.push(d), this.If.has(d))) return; c.yj(b) } }, No: function (a) { this.$ = a.ie(a.B()); null != this.kg && this.kg(this.$) }, Qo: function (a) { this.Dg = a.ie(a.o.byteLength - a.a) }, Nc: function (a, b, c) { if (!b.hl) { 0 == a && (b.hl = !0); b = b.$; var d = w.ha(32, !1); d.l(a); d.tb(b); null != c && d.Vb(pako.deflateRaw(c.Sb())); this.X.send(d.Hd()) } }, sf: function (a, b) { var c = w.ha(16, !1); c.l(0); c.tb(a); c.Ub(b); this.X.send(c.Hd()) }, zi: function () { var a = w.ha(1, !1); a.l(8); this.X.send(a.Hd()) }, Ai: function () { this.Ag = !1; var a = w.ha(256, !1); a.l(7); null != this.Mc && a.Mg(this.Mc); this.X.send(a.Hd()) }, cm: function () { var a = w.ha(2, !1); a.l(9); a.l(this.nf ? 1 : 0); this.X.send(a.Hd()); this.dm = this.nf }, Bi: function (a, b, c, d) { var e = w.ha(32, !1); e.mc(b.sdp); e.Ng(c); null != d && e.Vb(d.Sb()); this.Nc(1, a, e) }, yi: function (a, b) { var c = w.ha(32, !1); c.Ng(b); this.Nc(4, a, c) }, qk: function () { for (var a = this.od.values(), b = a.next(); !b.done;) { var c = b.value, b = a.next(); c.ia() } this.od.clear() }, Mh: function (a) { var b = this; this.qk(); window.clearTimeout(this.ke); this.ke = null; this.Ag = !1; window.clearInterval(this.ol); window.clearTimeout(this.Ul); a && (this.Ul = window.setTimeout(function () { b.Ji() }, this.Zq + Math.random() * this.$q | 0)) }, zn: function (a) { for (var b = 0, c = a.oe; b < c.length;) this.If.add(c[b++]); null != a.gd && this.th.add(a.gd); return { Rs: a.oe, Ps: a.gd } }, Ud: function () { this.If.clear(); this.th.clear() }, f: Sa }; nc.b = !0; nc.gf = function (a) { a = a.split(" "); if ("typ" != a[6]) throw new q(null); return { Jr: a[7], Xo: a[4] } }; Nb.b = !0; Nb.prototype = { Br: function () { return window.performance.now() - this.ym }, Rb: function (a, b) { if (this.wd) { var c = this.Vc[a]; if ("open" == c.readyState) { var d = b.Kg(); try { c.send(d) } catch (e) { window.console.log(e instanceof q ? e.Ta : e) } } } }, ia: function () { window.clearTimeout(this.Am); this.wd && (this.wd = !1, this.Ra.close(), null != this.cf && this.cf()) }, f: Nb }; var pc = { b: !0, description: function (a) { switch (a) { case 4001: return "The room was closed."; case 4100: return "The room is full."; case 4101: return "Wrong password."; case 4102: return "You are banned from this room."; case 4103: return "Incompatible game version."; default: return "Connection closed (" + a + ")" } } }; F.b = !0; F.jo = function (a, b) { var c = a.getUint8(b), d, e, f, g, k, l = b; if (0 == (c & 128)) ++b; else if (192 == (c & 224)) d = a.getUint8(b + 1), c = (c & 31) << 6 | d & 63, b += 2; else if (224 == (c & 240)) d = a.getUint8(b + 1), e = a.getUint8(b + 2), c = (c & 15) << 12 | (d & 63) << 6 | e & 63, b += 3; else if (240 == (c & 248)) d = a.getUint8(b + 1), e = a.getUint8(b + 2), f = a.getUint8(b + 3), c = (c & 7) << 18 | (d & 63) << 12 | (e & 63) << 6 | f & 63, b += 4; else if (248 == (c & 252)) d = a.getUint8(b + 1), e = a.getUint8(b + 2), f = a.getUint8(b + 3), g = a.getUint8(b + 4), c = (c & 3) << 24 | (d & 63) << 18 | (e & 63) << 12 | (f & 63) << 6 | g & 63, b += 5; else if (252 == (c & 254)) d = a.getUint8(b + 1), e = a.getUint8(b + 2), f = a.getUint8(b + 3), g = a.getUint8(b + 4), k = a.getUint8(b + 5), c = (c & 1) << 30 | (d & 63) << 24 | (e & 63) << 18 | (f & 63) << 12 | (g & 63) << 6 | k & 63, b += 6; else throw new q("Cannot decode UTF8 character at offset " + b + ": charCode (" + c + ") is invalid"); return { "char": c, length: b - l } }; F.prototype = { sb: function (a) { null == a && (a = this.o.byteLength - this.a); if (this.a + a > this.o.byteLength) throw new q("Read too much"); var b = new Uint8Array(this.o.buffer, this.o.byteOffset + this.a, a); this.a += a; return b }, Cl: function (a) { var b = this.sb(a); a = new ArrayBuffer(a); (new Uint8Array(a)).set(b); return a }, lf: function () { return this.o.getInt8(this.a++) }, B: function () { return this.o.getUint8(this.a++) }, ni: function () { var a = this.o.getInt16(this.a, this.Sa); this.a += 2; return a }, Ob: function () { var a = this.o.getUint16(this.a, this.Sa); this.a += 2; return a }, M: function () { var a = this.o.getInt32(this.a, this.Sa); this.a += 4; return a }, hb: function () { var a = this.o.getUint32(this.a, this.Sa); this.a += 4; return a }, mi: function () { var a = this.o.getFloat32(this.a, this.Sa); this.a += 4; return a }, u: function () { var a = this.o.getFloat64(this.a, this.Sa); this.a += 8; return a }, Ab: function () { for (var a = this.a, b = 0, c, d = 0; c = this.o.getUint8(a + b), 5 > b && (d |= (c & 127) << 7 * b >>> 0), ++b, 0 != (c & 128);); this.a += b; return d | 0 }, ie: function (a) { var b = this.a, c, d = ""; for (a = b + a; b < a;) c = F.jo(this.o, b), b += c.length, d += String.fromCodePoint(c["char"]); if (b != a) throw new q("Actual string length differs from the specified: " + (b - a) + " bytes"); this.a = b; return d }, zb: function () { var a = this.Ab(); return 0 >= a ? null : this.ie(a - 1) }, ic: function () { return this.ie(this.Ab()) }, El: function () { return this.ie(this.B()) }, wg: function () { var a = this.ic(); return JSON.parse(a) }, f: F }; w.b = !0; w.ha = function (a, b) { null == b && (b = !1); null == a && (a = 16); return new w(new DataView(new ArrayBuffer(a)), b) }; w.uo = function (a, b, c) { var d = c; if (0 > a) throw new q("Cannot encode UTF8 character: charCode (" + a + ") is negative"); if (128 > a) b.setUint8(c, a & 127), ++c; else if (2048 > a) b.setUint8(c, a >> 6 & 31 | 192), b.setUint8(c + 1, a & 63 | 128), c += 2; else if (65536 > a) b.setUint8(c, a >> 12 & 15 | 224), b.setUint8(c + 1, a >> 6 & 63 | 128), b.setUint8(c + 2, a & 63 | 128), c += 3; else if (2097152 > a) b.setUint8(c, a >> 18 & 7 | 240), b.setUint8(c + 1, a >> 12 & 63 | 128), b.setUint8(c + 2, a >> 6 & 63 | 128), b.setUint8(c + 3, a & 63 | 128), c += 4; else if (67108864 > a) b.setUint8(c, a >> 24 & 3 | 248), b.setUint8(c + 1, a >> 18 & 63 | 128), b.setUint8(c + 2, a >> 12 & 63 | 128), b.setUint8(c + 3, a >> 6 & 63 | 128), b.setUint8(c + 4, a & 63 | 128), c += 5; else if (-2147483648 > a) b.setUint8(c, a >> 30 & 1 | 252), b.setUint8(c + 1, a >> 24 & 63 | 128), b.setUint8(c + 2, a >> 18 & 63 | 128), b.setUint8(c + 3, a >> 12 & 63 | 128), b.setUint8(c + 4, a >> 6 & 63 | 128), b.setUint8(c + 5, a & 63 | 128), c += 6; else throw new q("Cannot encode UTF8 character: charCode (" + a + ") is too large (>= 0x80000000)"); return c - d }; w.En = function (a) { if (0 > a) throw new q("Cannot calculate length of UTF8 character: charCode (" + a + ") is negative"); if (128 > a) return 1; if (2048 > a) return 2; if (65536 > a) return 3; if (2097152 > a) return 4; if (67108864 > a) return 5; if (-2147483648 > a) return 6; throw new q("Cannot calculate length of UTF8 character: charCode (" + a + ") is too large (>= 0x80000000)"); }; w.Kf = function (a) { for (var b = 0, c = a.length, d = 0; d < c;) b += w.En(D.bj(a, d++)); return b }; w.Fn = function (a) { a >>>= 0; return 128 > a ? 1 : 16384 > a ? 2 : 2097152 > a ? 3 : 268435456 > a ? 4 : 5 }; w.prototype = { Kg: function () { var a = new ArrayBuffer(this.a), b = new Uint8Array(this.o.buffer, this.o.byteOffset, this.a); (new Uint8Array(a)).set(b); return a }, Sb: function () { return new Uint8Array(this.o.buffer, this.o.byteOffset, this.a) }, Hd: function () { return new DataView(this.o.buffer, this.o.byteOffset, this.a) }, Gr: function () { return new F(this.Hd(), this.Sa) }, rc: function (a) { this.o.byteLength < a && this.Yq(2 * this.o.byteLength >= a ? 2 * this.o.byteLength : a) }, Yq: function (a) { if (1 > a) throw new q("Can't resize buffer to a capacity lower than 1"); if (this.o.byteLength < a) { var b = new Uint8Array(this.o.buffer); a = new ArrayBuffer(a); (new Uint8Array(a)).set(b); this.o = new DataView(a) } }, l: function (a) { var b = this.a++; this.rc(this.a); this.o.setUint8(b, a) }, Xi: function (a) { var b = this.a; this.a += 2; this.rc(this.a); this.o.setInt16(b, a, this.Sa) }, Ub: function (a) { var b = this.a; this.a += 2; this.rc(this.a); this.o.setUint16(b, a, this.Sa) }, O: function (a) { var b = this.a; this.a += 4; this.rc(this.a); this.o.setInt32(b, a, this.Sa) }, tb: function (a) { var b = this.a; this.a += 4; this.rc(this.a); this.o.setUint32(b, a, this.Sa) }, Wi: function (a) { var b = this.a; this.a += 4; this.rc(this.a); this.o.setFloat32(b, a, this.Sa) }, s: function (a) { var b = this.a; this.a += 8; this.rc(this.a); this.o.setFloat64(b, a, this.Sa) }, Vb: function (a) { var b = this.a; this.a += a.byteLength; this.rc(this.a); (new Uint8Array(this.o.buffer, this.o.byteOffset, this.o.byteLength)).set(a, b) }, Mg: function (a) { this.Vb(new Uint8Array(a)) }, mc: function (a) { this.lb(w.Kf(a)); this.Og(a) }, Db: function (a) { null == a ? this.lb(0) : (this.lb(w.Kf(a) + 1), this.Og(a)) }, Im: function (a) { var b = w.Kf(a); if (255 < b) throw new q(null); this.l(b); this.Og(a) }, Ng: function (a) { this.mc(JSON.stringify(a)) }, Og: function (a) { var b = this.a; this.rc(b + w.Kf(a)); for (var c = a.length, d = 0; d < c;) b += w.uo(D.bj(a, d++), this.o, b); this.a = b }, lb: function (a) { var b = this.a; a >>>= 0; this.rc(b + w.Fn(a)); this.o.setUint8(b, a | 128); 128 <= a ? (this.o.setUint8(b + 1, a >> 7 | 128), 16384 <= a ? (this.o.setUint8(b + 2, a >> 14 | 128), 2097152 <= a ? (this.o.setUint8(b + 3, a >> 21 | 128), 268435456 <= a ? (this.o.setUint8(b + 4, a >> 28 & 127), a = 5) : (this.o.setUint8(b + 3, this.o.getUint8(b + 3) & 127), a = 4)) : (this.o.setUint8(b + 2, this.o.getUint8(b + 2) & 127), a = 3)) : (this.o.setUint8(b + 1, this.o.getUint8(b + 1) & 127), a = 2)) : (this.o.setUint8(b, this.o.getUint8(b) & 127), a = 1); this.a += a }, f: w }; I.b = !0; I.yo = function () { try { return window.crypto.subtle.generateKey(I.qh, !0, ["sign", "verify"]).then(function (a) { var b = a.privateKey; return window.crypto.subtle.exportKey("jwk", b).then(function (a) { var c = a.y, e = a.d, f = new I; f.Yi = a.x; f.Zi = c; f.Zj = e; f.Al = b; return f }) }) } catch (a) { return Promise.reject(a instanceof q ? a.Ta : a) } }; I.xo = function (a) { a = a.split("."); if (4 != a.length || "idkey" != a[0]) return Promise.reject("Invalid id format"); var b = a[1], c = a[2], d = a[3]; return I.Xr(b, c, d).then(function (a) { var e = new I; e.Yi = b; e.Zi = c; e.Zj = d; e.Al = a; return e }) }; I.Rr = function (a, b) { try { var c = new F(new DataView(a.buffer, a.byteOffset, a.byteLength), !1); c.B(); var d = c.sb(c.Ob()), e = c.sb(), f = new F(new DataView(d.buffer, d.byteOffset, d.byteLength), !1), g = f.ic(), k = f.ic(), l = f.sb(); if (l.byteLength != b.byteLength) return Promise.reject(null); for (var c = 0, t = l.byteLength; c < t;) { var h = c++; if (l[h] != b[h]) return Promise.reject(null) } return I.Wr(g, k).then(function (a) { return window.crypto.subtle.verify(I.mm, a, e, d) }).then(function (a) { if (!a) throw new q(null); return g }) } catch (jc) { return Promise.reject(jc instanceof q ? jc.Ta : jc) } }; I.Xr = function (a, b, c) { try { return window.crypto.subtle.importKey("jwk", { crv: "P-256", ext: !0, key_ops: ["sign"], kty: "EC", d: c, x: a, y: b }, I.qh, !0, ["sign"]) } catch (d) { return Promise.reject(d instanceof q ? d.Ta : d) } }; I.Wr = function (a, b) { try { return window.crypto.subtle.importKey("jwk", { crv: "P-256", ext: !0, key_ops: ["verify"], kty: "EC", x: a, y: b }, I.qh, !0, ["verify"]) } catch (c) { return Promise.reject(c instanceof q ? c.Ta : c) } }; I.prototype = { Ir: function () { return "idkey." + this.Yi + "." + this.Zi + "." + this.Zj }, wr: function (a) { try { var b = w.ha(1024); b.l(1); var c = b.a; b.Ub(0); var d = b.a; b.mc(this.Yi); b.mc(this.Zi); b.Vb(a); var e = b.a - d; b.o.setUint16(c, e, b.Sa); var f = new Uint8Array(b.o.buffer, b.o.byteOffset + d, e); return window.crypto.subtle.sign(I.mm, this.Al, f).then(function (a) { b.Mg(a); return b.Sb() }) } catch (g) { return Promise.reject(g instanceof q ? g.Ta : g) } }, f: I }; Ja.b = !0; Ja.gp = function () { if (null != Ja.li) return Ja.li; Ja.li = new Promise(function (a, b) { var c = window.grecaptcha; null != c ? a(c) : (c = window.document.createElement("script"), c.src = "https://www.google.com/recaptcha/api.js?onload=___recaptchaload&render=explicit", window.document.head.appendChild(c), window.___recaptchaload = function () { a(window.grecaptcha) }, c.onerror = function () { b(null) }) }); return Ja.li }; Ba.b = !0; Ba.cg = function (a) { return new PerfectScrollbar(a, { handlers: Ba.Uo }) }; mc.b = !0; mc.ts = function () { var a = window; a.RTCPeerConnection = a.webkitRTCPeerConnection || a.mozRTCPeerConnection || a.RTCPeerConnection; a.RTCIceCandidate = a.webkitRTCIceCandidate || a.mozRTCIceCandidate || a.RTCIceCandidate; a.RTCSessionDescription = a.webkitRTCSessionDescription || a.mozRTCSessionDescription || a.RTCSessionDescription; var b = new RTCPeerConnection({ iceServers: [] }); try { b.createAnswer()["catch"](function () {}) } catch (e) { var a = a.RTCPeerConnection.prototype, c = a.createOffer, d = a.createAnswer; a.createOffer = function (a) { var b = this; return new Promise(function (d, e) { c.call(b, d, e, a) }) }; a.createAnswer = function (a) { var b = this; return new Promise(function (c, e) { d.call(b, c, e, a) }) } } }; Ca.b = !0; Ca.ar = function (a, b) { Ca.Xl(new Blob([a], { type: "octet/stream" }), b) }; Ca.br = function (a, b) { Ca.Xl(new Blob([a], { type: "text/plain" }), b) }; Ca.Xl = function (a, b) { var c = window.document.createElement("a"); c.style.display = "display: none"; window.document.body.appendChild(c); var d = URL.createObjectURL(a); c.href = d; c.download = b; c.click(); URL.revokeObjectURL(d); c.remove() }; Db.b = !0; Db.prototype = { set: function (a) { this.value != a && (this.value = a, this.Ja.textContent = "" + this.value) }, f: Db }; v.b = !0; v.Ea = function (a) { var b = new Map, c = 0; for (a = a.querySelectorAll("[data-hook]"); c < a.length;) { var d = a[c++]; b.set(d.getAttribute("data-hook"), d) } return b }; v.Ga = function (a, b) { null == b && (b = "div"); var c = window.document.createElement(b); c.innerHTML = a; return c.firstElementChild }; v.xe = function (a, b) { a.parentElement.replaceChild(b, a) }; v.Cf = function (a) { for (var b = a.firstChild; null != b;) a.removeChild(b), b = a.firstChild }; zb.b = !0; zb.eh = function (a) { return new Promise(function (b, c) { a.onsuccess = function () { b(a.result) }; a.onerror = c }) }; lc.b = !0; lc.Dr = function (a, b) { return new Promise(function (c, d) { var e = window.setTimeout(function () { d("Timed out") }, b); a.then(function (a) { window.clearTimeout(e); c(a) }, function (a) { window.clearTimeout(e); d(a) }) }) }; m.b = !0; m.Fa = function (a) { null == a.Aa && (a.Aa = !0); null == a.Ba && (a.Ba = !0); return a }; m.Ha = function (a) { a.on = m.yf; if (null == a.za) throw new q("Class doesn't have a config"); a.prototype.zf = a.za; m.Qm.set(m.yf, a); m.yf++ }; m.lj = function (a, b) { var c = (null == a ? null : r.Nm(a)).on; if (null == c) throw new q("Tried to pack unregistered action"); b.l(c); a.ua(b) }; m.fh = function (a) { var b = a.B(), b = Object.create(m.Qm.get(b).prototype); b.da = 0; b.mb = 0; b.va(a); return b }; m.prototype = { $m: function () { return !0 }, apply: function () { throw new q("missing implementation"); }, va: function () { throw new q("missing implementation"); }, ua: function () { throw new q("missing implementation"); }, f: m }; Ia.b = !0; Ia.ss = function (a, b, c) { if (0 == a.length) for (a = 0; a < b.length;) c.push(b[a++]); else if (0 == b.length) for (b = 0; b < a.length;) c.push(a[b++]); else for (var d = 0, e = a.length, f = 0, g = b.length;;) { var k = a[d], l = b[f]; if (k.mb <= l.mb) { if (c.push(k), ++d, d >= e) { for (; f < g;) c.push(b[f++]); break } } else if (c.push(l), ++f, f >= g) { for (; d < e;) c.push(a[d++]); break } } }; Ia.prototype = { Rm: function (a) { for (var b = 0, c = a.mb, d = a.da, e = 0, f = this.list; e < f.length;) { var g = f[e]; ++e; var k = g.mb; if (k > c) break; if (k == c) { g = g.da; if (g > d) break; g == d && ++d }++b } a.da = d; this.list.splice(b, 0, a) }, Cs: function (a) { for (var b = 0, c = 0, d = this.list; c < d.length && !(d[c++].mb >= a);) ++b; this.list.splice(0, b) }, as: function (a, b) { for (var c = this.list; 0 < c.length;) c.pop(); Ia.ss(a.list, b.list, this.list) }, Ds: function (a) { for (var b = 0, c = this.list, d = 0, e = c.length; d < e;) { var f = c[d++]; f.ue != a && (c[b] = f, ++b) } for (; c.length > b;) c.pop() }, bs: function (a) { for (var b = 0, c = 0, d = this.list; c < d.length && !(d[c++].mb >= a);) ++b; return b }, f: Ia }; yb.b = !0; yb.prototype = { f: yb }; Ua.b = !0; Ua.ma = m; Ua.prototype = C(m.prototype, { apply: function (a) { a.Sn(this.Rg) }, ua: function (a) { a.lb(this.Rg.byteLength); a.Mg(this.Rg) }, va: function (a) { this.Rg = a.Cl(a.Ab()) }, f: Ua }); cc.b = !0; cc.prototype = { f: cc }; Mb.b = !0; Mb.prototype = { add: function (a) { for (var b = this.$a.length, c = 0, d = this.Qd = 0; d < b;) { var e = d++, f = this.$a[e]; f.index++; f.weight *= .97; this.$a[c].index < f.index && (c = e); this.Qd += f.weight } b >= this.rs ? (b = this.$a[c], this.Qd -= b.weight, this.$a.splice(c, 1)) : b = new bc; b.value = a; b.weight = 1; b.index = 0; this.Qd += b.weight; for (a = 0; a < this.$a.length && this.$a[a].value <= b.value;) ++a; this.$a.splice(a, 0, b) }, $g: function (a) { if (0 == this.$a.length) return 0; if (1 == this.$a.length) return this.$a[0].value; a *= this.Qd; for (var b = this.$a[0].weight, c = 0; c < this.$a.length - 1 && !(b >= a);) ++c, b += this.$a[c].weight; return this.$a[c].value }, max: function () { return 0 == this.$a.length ? 0 : this.$a[this.$a.length - 1].value }, f: Mb }; bc.b = !0; bc.prototype = { f: bc }; ac.b = !0; ac.prototype = { stop: function () { this.hj.fc = null; this.hj.T.km(null); this.Nd.o.setUint16(0, this.Xm, this.Nd.Sa); this.Nd.Vb(this.Df.Sb()); var a = pako.deflateRaw(this.Nd.Sb()), b = w.ha(a.byteLength + 32); b.Og("HBR2"); b.tb(this.version); b.tb(this.hj.Y - this.ah); b.Vb(a); return b.Sb() }, f: ac }; Ta.b = !0; ya.b = !0; V.b = !0; V.ma = yb; V.prototype = C(yb.prototype, { ra: function () { throw new q("missing implementation"); }, Sf: function () { throw new q("missing implementation"); }, C: function () { throw new q("missing implementation"); }, zj: function (a) { for (var b = this.le.list, c = 0, d = b.length, e = 0; e < a;) { for (++e; c < d;) { var f = b[c]; if (f.mb != this.Y) break; f.apply(this.T); null != this.fc && this.fc(f); this.cc++; ++c } this.T.C(1); this.te += this.cc; this.cc = 0; this.Y++ } for (; c < d;) { a = b[c]; if (a.mb != this.Y || a.da != this.cc) break; a.apply(this.T); null != this.fc && this.fc(a); this.cc++; ++c } b.splice(0, c) }, Cg: function (a) { a.mb == this.Y && a.da <= this.cc ? (a.da = this.cc++, a.apply(this.T), null != this.fc && this.fc(a)) : this.le.Rm(a) }, wk: function (a, b) { if (0 >= a) return this.T; a > this.Ff && (a = this.Ff); ya.zc++; var c = this.T.sc(), d; null != b ? (this.Ri.as(this.le, b), d = this.Ri) : d = this.le; d = d.list; for (var e = 0, f = d.length, g = this.Y, k = a | 0, l = g + k; g <= l;) { for (; e < f;) { var t = d[e]; if (t.mb > g) break; t.zf.Ba && t.apply(c); ++e } c.C(g != l ? 1 : a - k); ++g } for (d = this.Ri.list; 0 < d.length;) d.pop(); return c }, kr: function (a) { 300 < a && (a = 300); 0 > a && (a = 0); this.bc = this.Ac * a | 0 }, gm: function (a) { this.rd = this.Ac * (-200 > a ? -200 : 1000 < a ? 1000 : a) }, f: V }); var xb = Ab["bas.marf.net.ConnFailReason"] = { Gf: !0, nh: ["Cancelled", "PeerFailed", "Rejected", "Other"], hh: { nb: 0, eb: "bas.marf.net.ConnFailReason", toString: ga }, jh: { nb: 1, eb: "bas.marf.net.ConnFailReason", toString: ga }, lh: (X = function (a) { return { nb: 2, reason: a, eb: "bas.marf.net.ConnFailReason", toString: ga } }, X.Ae = ["reason"], X), ih: (X = function (a) { return { nb: 3, description: a, eb: "bas.marf.net.ConnFailReason", toString: ga } }, X.Ae = ["description"], X) }; xa.b = !0; xa.xh = function (a) { switch (a.nb) { case 0: return "Cancelled"; case 1: return "Failed to connect to peer."; case 2: return pc.description(a.reason); case 3: return a.description } }; xa.ma = V; xa.prototype = C(V.prototype, { ia: function (a) { null != this.pc && (this.pc.bd = null, this.pc.Gn(), this.pc = null); window.clearTimeout(this.re); null != this.pa && (this.pa.cf = null, this.pa.ia(), this.pa = null); this.ek = null == a ? "Connection closed" : a; this.tf(4) }, tf: function (a) { this.pd != a && (this.pd = a, null != this.Ad && this.Ad(a)) }, wd: function () { return 3 == this.pd }, C: function () { this.wd() && window.performance.now() - this.zm > this.nn && this.zi(); this.Xc = window.performance.now() * this.Ac + this.Qi.$g(.5) - this.Y; this.Oj() }, Sf: function () { return this.wd() ? (0 > this.bc && (this.bc = 0), this.wk(window.performance.now() * this.Ac + this.Qi.$g(.5) - this.Y + this.bc + this.rd, this.ug)) : this.T }, Oj: function () { 0 > this.Xc && (this.Xc = 0); this.Xc > this.Ff && (this.Xc = this.Ff) }, uq: function (a) { switch (a.B()) { case 0: this.rq(a); break; case 1: this.qq(a); break; case 2: this.nq(a); break; case 3: this.wq(a); break; case 4: this.tq(a); break; case 5: this.pq(a); break; case 6: this.vq(a) } }, rq: function (a) { var b = this; a = a.sb(a.Ab()); var c = Promise.resolve(null); null != this.Je && (c = this.Je.wr(a)); c["catch"](function () { return null }).then(function (a) { b.ir(a) }) }, qq: function (a) { a = pako.inflateRaw(a.sb()); a = new F(new DataView(a.buffer, a.byteOffset, a.byteLength)); this.uc = a.Ob(); this.Y = a.hb(); this.te = a.hb(); this.cc = a.Ab(); this.Xc = 10; for (this.T.ja(a); 0 < a.o.byteLength - a.a;) this.Cg(this.Gm(a)); window.clearTimeout(this.re); this.tf(3) }, ir: function (a) { var b = w.ha(); b.l(0); null != a ? (b.lb(a.byteLength), b.Vb(a)) : b.lb(0); b.lb(this.Uh.byteLength); b.Mg(this.Uh); this.Rb(b); this.Uh = null }, Rb: function (a, b) { null == b && (b = 0); this.pa.Rb(b, a) }, Gm: function (a) { var b = a.hb(), c = a.Ab(), d = a.Ob(), e = a.hb(); a = m.fh(a); a.P = d; a.ue = e; a.mb = b; a.da = c; return a }, nq: function (a) { a = this.Gm(a); this.Cg(a); a.P == this.uc && this.ug.Ds(a.ue); this.Bl() }, vq: function (a) { a = m.fh(a); a.P = 0; a.ue = 0; a.apply(this.T); null != this.fc && this.fc(a) }, wq: function (a) { var b = a.hb(); a = a.hb(); this.pi.push({ frame: b, yf: a }); this.Bl() }, Bl: function () { if (3 == this.pd) { for (var a = 0, b = this.pi; a < b.length;) { var c = b[a]; ++a; c.frame <= this.Y || c.yf == this.te + this.cc + this.le.bs(c.frame) && this.vn(c.frame - this.Y) } for (var a = 0, b = this.pi, c = 0, d = b.length; c < d;) { var e = b[c++]; e.frame > this.Y && (b[a] = e, ++a) } for (; b.length > a;) b.pop(); this.ug.Cs(this.Y) } }, pq: function (a) { var b = 0 != a.B(), c = a.ic(), d = ""; 0 < a.o.byteLength - a.a && (d = a.ic()); a = b ? "You were banned" : "You were kicked"; "" != d && (a += " by " + d); "" != c && (a += " (" + c + ")"); this.ia(a) }, tq: function (a) { var b = a.u(); a = a.u(); var c = window.performance.now() - a; this.Qi.add(b - a * this.Ac); this.sg.add(c); for (var d = b = 0, e = this.Di; d < e.length;) { var f = e[d]; ++d; if (f > a) break; f < a ? y.i(this.dl, -1) : y.i(this.dl, c); ++b } this.Di.splice(0, b) }, zi: function () { var a = window.performance.now(); this.zm = a; this.Di.push(a); var b = this.sg.$g(.5) | 0, c = w.ha(); c.l(2); c.s(a); c.lb(b); this.Rb(c, 2) }, vn: function (a) { this.zj(a); this.Xc -= a; this.Oj() }, ra: function (a) { if (3 == this.pd) { var b = this.Ap++, c = 0; 0 > this.bc && (this.bc = 0); a.zf.Aa && (c = this.Y + (this.Xc | 0) + this.bc); var d = w.ha(); d.l(1); d.tb(c); d.tb(b); m.lj(a, d); this.Rb(d); a.zf.Ba && (a.ue = b, a.P = this.uc, a.mb = c, this.ug.Rm(a)) } }, f: xa }); Lb.b = !0; Lb.ma = V; Lb.prototype = C(V.prototype, { ia: function () { this.Ic.ia(); for (var a = 0, b = this.ac; a < b.length;) { var c = b[a++].pa; c.cf = null; c.lg = null; c.ia() } }, to: function (a, b, c, d) { var e = this.Ie.get(a); if (null != e) { if (d) { var f = this.Ic.zn(e.pa); this.Kj.set(a, f) } a = w.ha(); a.l(5); a.l(d ? 1 : 0); a.mc(b); null == c && (c = ""); a.mc(c); e.Rb(a); e.pa.ia() } }, Ud: function () { this.Ic.Ud(); this.Kj.clear() }, Fi: function (a) { this.Ic.Fi(a) }, Ei: function (a) { this.Ic.Ei(a) }, ra: function (a) { a.P = 0; var b = this.Y + this.wi + this.bc; a.zf.Aa || (b = this.Y); a.mb = b; this.Cg(a); this.Ci(); 0 < this.ac.length && this.Eg(this.Zh(a), 1) }, C: function () { var a = ((window.performance.now() - this.Li) * this.Ac | 0) - this.Y; 0 < a && this.zj(a); 7 <= this.Y - this.Kk && this.Ci(); this.Y - this.Jk >= this.Mn && (this.Ci(), this.gr()) }, Sf: function () { 0 > this.bc && (this.bc = 0); return this.wk((window.performance.now() - this.Li) * this.Ac - this.Y + this.wi + this.bc + this.rd) }, Oo: function (a, b) { if (this.ac.length >= this.fg) return gc.kh(4100); try { if (b.Ob() != this.Sr) throw new q(null); } catch (d) { return gc.kh(4103) } try { var c = b.zb(); if (null != this.Ib && c != this.Ib) throw new q(null); } catch (d) { return gc.kh(4101) } return gc.hn }, Lp: function (a) { var b = this; if (this.ac.length >= this.fg) a.ia(); else { var c = new $b(a); this.ac.push(c); a.lg = function (a) { a = new F(new DataView(a)); b.oq(a, c) }; a.cf = function () { D.remove(b.ac, c); b.Ie["delete"](c.$); y.i(b.Ip, c.$) }; a = w.ha(1 + c.He.byteLength); a.l(0); a.lb(c.He.byteLength); a.Vb(c.He); c.Rb(a) } }, Zh: function (a) { var b = w.ha(); b.l(2); this.il(a, b); return b }, il: function (a, b) { b.tb(a.mb); b.lb(a.da); b.Ub(a.P); b.tb(a.ue); m.lj(a, b) }, Ci: function () { if (!(0 >= this.Y - this.Kk) && 0 != this.ac.length) { var a = w.ha(); a.l(3); a.tb(this.Y); a.tb(this.te); this.Eg(a, 2); this.Kk = this.Y } }, Eg: function (a, b) { null == b && (b = 0); for (var c = 0, d = this.ac; c < d.length;) { var e = d[c]; ++c; e.yg && e.Rb(a, b) } }, hr: function (a) { var b = w.ha(); b.l(1); var c = w.ha(); c.Ub(a.$); c.tb(this.Y); c.tb(this.te); c.lb(this.cc); this.T.ga(c); for (var d = this.le.list, e = 0, f = d.length; e < f;) this.il(d[e++], c); b.Vb(pako.deflateRaw(c.Sb())); a.Rb(b) }, gr: function () { this.Jk = this.Y; if (0 != this.ac.length) { var a = new Ua; a.mb = this.Y; a.da = this.cc++; a.P = 0; a.Rg = this.T.Ao(); this.Eg(this.Zh(a)) } }, yq: function (a, b) { var c = this, d = a.sb(a.Ab()), e = a.sb(a.Ab()), f = b.He; b.He = null; I.Rr(d, f)["catch"](function () { return null }).then(function (a) { try { if (-1 != c.ac.indexOf(b)) { b.Ns = a; var d = c.up++; b.$ = d; c.Ie.set(d, b); ia.i(c.Hp, d, new F(new DataView(e.buffer, e.byteOffset, e.byteLength), !1)); b.yg = !0; c.hr(b) } } catch (l) { c.xk(b, l instanceof q ? l.Ta : l) } }) }, oq: function (a, b) { this.C(); try { if (!b.Ho.Cm()) throw new q(1); var c = a.B(); if (b.yg) switch (c) { case 1: this.zq(a, b); break; case 2: this.sq(a, b); break; default: throw new q(0); } else if (0 == c) this.yq(a, b); else throw new q(0); if (0 < a.o.byteLength - a.a) throw new q(2); } catch (d) { this.xk(b, d instanceof q ? d.Ta : d) } }, xk: function (a, b) { window.console.log(b); this.Ie["delete"](a.$); D.remove(this.ac, a); a.yg && null != this.$k && this.$k(a.$); a.pa.ia() }, sq: function (a, b) { var c = a.u(); b.yb = a.Ab(); var d = w.ha(); d.l(4); d.s((window.performance.now() - this.Li) * this.Ac + this.wi); d.s(c); b.Rb(d, 2) }, zq: function (a, b) { var c = a.hb(), d = a.hb(), e = m.fh(a), f = e.zf.oj; if (null != f) { var g = b.xj.get(f); null == g && (g = new tb(f.$i, f.uj), b.xj.set(f, g)); if (!g.Cm()) throw new q(3); } f = this.Y; g = this.Y + 120; e.ue = d; e.P = b.$; e.mb = c < f ? f : c > g ? g : c; e.$m(this.T) && (this.Cg(e), this.Eg(this.Zh(e), 1)) }, f: Lb }); $b.b = !0; $b.prototype = { Rb: function (a, b) { null == b && (b = 0); this.pa.Rb(b, a) }, f: $b }; Zb.b = !0; Kb.b = !0; Kb.prototype = { f: Kb }; Jb.b = !0; Jb.ma = V; Jb.prototype = C(V.prototype, { Cq: function (a) { for (var b = a.Ob(), c = 0, d = 0; d < b;) { ++d; var c = c + a.Ab(), e = a.B(); this.Vk.push({ mj: c / this.mf, kind: e }) } }, Dl: function () { var a = this.Lc; 0 < a.o.byteLength - a.a ? (a = this.Lc.Ab(), this.hg += a, a = this.Lc.Ob(), this.gg = m.fh(this.Lc), this.gg.P = a) : this.gg = null }, Go: function () { return this.Y / this.mf }, ra: function () {}, Sf: function () { this.C(); ya.zc++; var a = this.T.sc(); a.C(this.sk); return a }, C: function () { var a = window.performance.now(), b = a - this.Wh; this.Wh = a; 0 < this.Fd ? (this.Qb += 1E4, this.Qb > this.Fd && (this.Qb = this.Fd, this.Fd = -1)) : this.Qb += b * this.pl; a = this.mf * this.mh; this.Qb > a && (this.Qb = a); b = this.Qb * this.Ac; a = b | 0; for (this.sk = b - a; this.Y < a;) { for (; null != this.gg && this.hg == this.Y;) b = this.gg, b.apply(this.T), null != this.fc && this.fc(b), this.Dl(); this.Y++; this.T.C(1) } }, er: function (a) { this.Fd = a; a < this.Qb && this.ui() }, ui: function () { this.hg = 0; this.Qb = this.Y = this.Lc.a = 0; this.T.ja(this.Lc); this.Dl() }, f: Jb }); Ib.b = !0; Ib.prototype = { eval: function (a) { var b = this.Yb.length - 1; if (a <= this.Yb[0]) return this.Yb[1]; if (a >= this.Yb[b]) return this.Yb[b - 2]; for (var c = 0, b = b / 5 | 0;;) { var d = b + c >>> 1; a > this.Yb[5 * d] ? c = d + 1 : b = d - 1; if (!(c <= b)) break } c = 5 * b; b = this.Yb[c]; a = (a - b) / (this.Yb[c + 5] - b); b = a * a; d = b * a; return (2 * d - 3 * b + 1) * this.Yb[c + 1] + (d - 2 * b + a) * this.Yb[c + 2] + (-2 * d + 3 * b) * this.Yb[c + 3] + (d - b) * this.Yb[c + 4] }, f: Ib }; H.b = !0; H.prototype = { f: H }; M.b = !0; M.Pl = function (a, b, c, d, e) { return new Promise(function (f, g) { var k = new XMLHttpRequest; k.open(b, a); k.responseType = c; k.onload = function () { 200 <= k.status && 300 > k.status ? null != k.response ? f(k.response) : g(null) : g("status: " + k.status) }; k.onerror = function (a) { g(a) }; null != e && k.setRequestHeader("Content-type", e); k.send(d) }) }; M.L = function (a, b) { return M.Pl(a, "GET", b, null) }; M.tk = function (a) { return M.L(a, "json").then(function (a) { var b = a.error; if (null != b) throw new q(b); return a.data }) }; M.mq = function (a, b, c) { return M.Pl(a, "POST", "json", b, c) }; M.zl = function (a, b, c) { return M.mq(a, b, c).then(function (a) { var b = a.error; if (null != b) throw new q(b); return a.data }) }; A.b = !0; A.i = function (a) { null != a && a() }; y.b = !0; y.i = function (a, b) { null != a && a(b) }; ia.b = !0; ia.i = function (a, b, c) { null != a && a(b, c) }; Cb.b = !0; Cb.i = function (a, b, c, d) { null != a && a(b, c, d) }; vb.b = !0; vb.i = function (a, b, c, d, e) { null != a && a(b, c, d, e) }; tb.b = !0; tb.prototype = { Cm: function (a) { null == a && (a = 1); this.C(); return a <= this.oc ? (this.oc -= a, !0) : !1 }, Cr: function (a) { this.C(); a -= this.oc; return 0 >= a ? 0 : this.Ve + a * this.Si - window.performance.now() }, Zn: function (a, b) { var c = this.Cr(a); this.oc -= a; window.setTimeout(b, c | 0) }, C: function () { var a = window.performance.now(), b = Math.floor((a - this.Ve) / this.Si); this.Ve += b * this.Si; this.oc += b; this.oc >= this.Nj && (this.oc = this.Nj, this.Ve = a) }, f: tb }; Hb.b = !0; Hb.gf = function (a) { var b = new fc("([^&=]+)=?([^&]*)", "g"); a = a.substring(1); for (var c = 0, d = new Map; b.os(a, c);) { var c = b.Wm(1), c = decodeURIComponent(c.split("+").join(" ")), e = b.Wm(2); d.set(c, decodeURIComponent(e.split("+").join(" "))); c = b.ps(); c = c.mj + c.ms } return d }; Hb.L = function () { return Hb.gf(window.top.location.search) }; ub.b = !0; ub.cq = function (a) { if (3 > a.length) throw new q("Not enough arguments"); if (7 < a.length) throw new q("Too many arguments"); var b = new Pa, c = new ka; b.Sg = c; switch (a[1]) { case "blue": c.fb = [p.xa.R]; b.ea = p.xa; break; case "red": c.fb = [p.fa.R]; b.ea = p.fa; break; default: throw new q('First argument must be either "red" or "blue"'); } if ("clear" == a[2]) return b; c.hd = 256 * K.parseInt(a[2]) / 360 | 0; c.ed = K.parseInt("0x" + a[3]); if (4 < a.length) { c.fb = []; for (var d = 4, e = a.length; d < e;) c.fb.push(K.parseInt("0x" + a[d++])) } return b }; ub.prototype = { gf: function (a) { var b = this; if ("/" != a.charAt(0)) return !1; if (1 == a.length) return !0; a = J.Gs(D.substr(a, 1, null)).split(" "); var c = a[0]; switch (c) { case "avatar": 2 == a.length && (this.fm(a[1]), this.ba("Avatar set")); break; case "checksum": var d = this.ya.T.S; a = d.w; d.Pe() ? this.ba('Current stadium is original: "' + a + '"') : (d = J.Vg(d.Sj(), 8), this.ba('Stadium: "' + a + '" (checksum: ' + d + ")")); break; case "clear_avatar": this.fm(null); this.ba("Avatar cleared"); break; case "clear_bans": null == this.Ud ? this.ba("Only the host can clear bans") : (this.Ud(), this.ba("All bans have been cleared")); break; case "clear_password": null == this.Fg ? this.ba("Only the host can change the password") : (this.Fg(null), this.ba("Password cleared")); break; case "colors": try { d = ub.cq(a), this.ya.ra(d) } catch (g) { a = g instanceof q ? g.Ta : g, "string" == typeof a && this.ba(a) } break; case "extrapolation": 2 == a.length ? (a = K.parseInt(a[1]), null != a && -200 <= a && 1000 >= a ? (n.A.rd.Xa(a), this.ya.gm(a), this.ba("Extrapolation set to " + a + " msec")) : this.ba("Extrapolation must be a value between -200 and 1000 milliseconds")) : this.ba("Extrapolation requires a value in milliseconds."); break; case "handicap": 2 == a.length ? (a = K.parseInt(a[1]), null != a && 0 <= a && 300 >= a ? (this.ya.kr(a), this.ba("Ping handicap set to " + a + " msec")) : this.ba("Ping handicap must be a value between 0 and 300 milliseconds")) : this.ba("Ping handicap requires a value in milliseconds."); break; case "kick_ratelimit": if (4 > a.length) this.ba("Usage: /kick_ratelimit "); else { var d = K.parseInt(a[1]), e = K.parseInt(a[2]); a = K.parseInt(a[3]); null == d || null == e || null == a ? this.ba("Invalid arguments") : this.ya.ra(ma.la(d, e, a)) } break; case "recaptcha": if (null == this.jm) this.ba("Only the host can set recaptcha mode"); else try { if (2 == a.length) { switch (a[1]) { case "off": e = !1; break; case "on": e = !0; break; default: throw new q(null); } this.jm(e); this.ba("Room join Recaptcha " + (e ? "enabled" : "disabled")) } else throw new q(null); } catch (g) { this.ba("Usage: /recaptcha ") } break; case "set_password": 2 == a.length && (null == this.Fg ? this.ba("Only the host can change the password") : (this.Fg(a[1]), this.ba("Password set"))); break; case "store": var f = this.ya.T.S; f.Pe() ? this.ba("Can't store default stadium.") : Z.Es().then(function () { return Z.add(f) }).then(function () { b.ba("Stadium stored") }, function () { b.ba("Couldn't store stadium") }); break; default: this.ba('Unrecognized command: "' + c + '"') } return !0 }, fm: function (a) { null != a && (a = U.Qc(a, 2)); n.A.sh.Xa(a); this.ya.ra(ra.la(a)) }, f: ub }; Ha.b = !0; ba.b = !0; ba.Yl = function (a) { var b = new Date; Ca.ar(a, "HBReplay-" + b.getFullYear() + "-" + J.Af("" + (b.getMonth() + 1)) + "-" + J.Af("" + b.getDate()) + "-" + J.Af("" + b.getHours()) + "h" + J.Af("" + b.getMinutes()) + "m.hbr2") }; ba.Bq = function (a) { for (var b = a.T.I, c = [], d = 0, e = 0, f = 0; f < b.length;) { var g = b[f]; ++f; g.ea == p.Ia && c.push(g.V); g.ea == p.fa ? ++d : g.ea == p.xa && ++e } f = c.length; 0 != f && (b = function () { return c.splice(Math.random() * c.length | 0, 1)[0] }, e == d ? 2 > f || (a.ra(S.la(b(), p.fa)), a.ra(S.la(b(), p.xa))) : (d = e > d ? p.fa : p.xa, a.ra(S.la(b(), d)))) }; ba.prototype = { zr: function () { this.Ed = new ac(this.ya, 3) }, vr: function (a) { var b = this; a = new gb(a); a.qb = function () { b.j.bb(null) }; a.ei = function (a, d, e) { b.ya.ra(Y.la(a, d, e)); b.j.bb(null) }; this.j.bb(a.g) }, ia: function () { window.document.removeEventListener("keydown", G(this, this.Bd)); window.document.removeEventListener("keyup", G(this, this.Cd)); window.onbeforeunload = null; window.cancelAnimationFrame(this.De); this.ob.ia(); window.clearInterval(this.Gh); window.clearInterval(this.Qr); window.clearTimeout(this.Nf) }, Wq: function (a) { for (var b = [], c = 0, d = this.ya.T.I; c < d.length;) { var e = d[c]; ++c; e.ea == a && b.push(S.la(e.V, p.Ia)) } for (a = 0; a < b.length;) this.ya.ra(b[a++]) }, bf: function () { this.De = window.requestAnimationFrame(G(this, this.bf)); this.ob.C(); this.ya.C(); this.Kc() }, Kc: function () { var a = window.performance.now(); 1 == n.A.Fh.L() && 28.333333333333336 > a - this.$c || (this.$c = a, this.sd++, this.uf(), a = this.ya.T.na(this.ya.uc), null != a && (this.xi = a.cb), this.j.C(this.ya)) }, Gp: function (a) { var b = this; this.Of.gf(a) || this.Jn.Zn(1, function () { var c = new Na; c.Tc = a; b.ya.ra(c) }) }, Fp: function (a) { var b = this; this.zh = a; null == this.Nf && (this.Nf = window.setTimeout(function () { b.Nf = null; b.bm(b.zh) }, 1E3), this.bm(this.zh)) }, bm: function (a) { a != this.Ik && (this.ya.ra(na.la(a ? 0 : 1)), this.Ik = a) }, Bm: function () { if (null != this.ya.T.K) { var a = new Oa; a.Bf = 120 != this.ya.T.K.Oa; this.ya.ra(a) } }, Bd: function (a) { switch (a.keyCode) { case 9: case 13: this.j.Qa.gb.focus(); a.preventDefault(); break; case 27: if (this.j.Zo()) this.j.bb(null); else { var b = this.j; b.me(!b.Gd) } a.preventDefault(); break; case 49: n.A.Tb.Xa(1); break; case 50: n.A.Tb.Xa(2); break; case 51: n.A.Tb.Xa(3); break; case 52: n.A.Tb.Xa(0); break; case 80: this.Bm(); break; default: this.ob.Bd(a.code) } }, uf: function () { var a = n.A.Tb.L(), b = this.j.Fb, c = b.Eb; c.zg = n.A.Sl.L(); 0 == a ? (b.Gg(!0), c.kf = 1, c.jf = 0, c.xf = 0) : (b.Gg(!1), c.xf = 35, -1 == a ? c.jf = 450 : (c.jf = 0, c.kf = 1 + .25 * (a - 1))) }, Cd: function (a) { this.ob.Cd(a.code) }, f: ba }; Gb.b = !0; Gb.prototype = { Ti: function (a) { var b = this.j.Qa.Bc, c = [], d = 0; for (a = a.I; d < a.length;) { var e = a[d]; ++d; c.push({ w: e.w, $: e.V }) } b.Hj = c }, ri: function (a) { function b(a) { return null == a ? "" : " by " + a.w } var c = this; this.Ti(a); a.tl = function (b) { c.j.Qa.Gb("" + b.w + " has joined"); n.Na.cd(n.Na.$o); c.Ti(a) }; a.ul = function (d, e, f, g) { y.i(c.Op, d.V); null == e ? d = "" + d.w + " has left" : (vb.i(c.Np, d.V, e, null != g ? g.w : null, f), d = "" + d.w + " was " + (f ? "banned" : "kicked") + b(g) + ("" != e ? " (" + e + ")" : "")); c.j.Qa.Gb(d); n.Na.cd(n.Na.ep); c.Ti(a) }; a.rl = function (a, b) { var d = null != c.Rh && -1 != b.indexOf(c.Rh); c.j.Qa.ba("" + a.w + ": " + b, d ? "highlight" : null); n.A.om.L() && d ? n.Na.cd(n.Na.zk) : n.A.Hi.L() && n.Na.cd(n.Na.Rj) }; a.Vl = function (a, b, f, g) { c.j.Qa.pp(a, b, f); if (n.A.Hi.L()) switch (g) { case 1: n.Na.cd(n.Na.Rj); break; case 2: n.Na.cd(n.Na.zk) } }; a.ji = function () { n.Na.cd(n.Na.bp) }; a.Ni = function (a) { n.Na.cd(n.Na.Io); var b = c.j.Fb.Eb.td; b.Pa(a == p.fa ? b.Fq : b.Bn) }; a.Oi = function (a) { var b = c.j.Fb.Eb.td; b.Pa(a == p.fa ? b.Gq : b.Cn); c.j.Qa.Gb("" + a.w + " team won the match") }; a.ml = function (a, e, f) { e && !f && c.j.Qa.Gb("Game paused" + b(a)) }; a.Pi = function () { var a = c.j.Fb.Eb.td; a.Pa(a.Ar) }; a.Ki = function (a) { c.j.me(!1); c.j.Fb.Eb.td.Nn(); c.j.Qa.Gb("Game started" + b(a)) }; a.vf = function (a) { null != a && c.j.Qa.Gb("Game stopped" + b(a)) }; a.Ii = function (a, e) { if (!e.Pe()) { var d = J.Vg(e.Sj(), 8); c.j.Qa.Gb('Stadium "' + e.w + '" (' + d + ") loaded" + b(a)) } }; a.sl = function (a) { c.j.Qa.Gb("" + a.w + " " + (a.Ld ? "has desynchronized" : "is back in sync")) }; a.xl = function (d, e, f) { null != a.K && c.j.Qa.Gb("" + e.w + " was moved to " + f.w + b(d)) }; a.ii = function (a, e) { var d = e.w; c.j.Qa.Gb((e.cb ? "" + d + " was given admin rights" : "" + d + "'s admin rights were taken away") + b(a)) }; a.wl = function (a, b) { c.j.Fb.Eb.Po(a, b) }; a.Hk = function (a, e, f, g) { c.j.Qa.Gb("Kick Rate Limit set to (min: " + e + ", rate: " + f + ", burst: " + g + ")" + b(a)) } }, Lr: function (a) { a.tl = null; a.ul = null; a.rl = null; a.Vl = null; a.ji = null; a.Ni = null; a.Oi = null; a.ml = null; a.Pi = null; a.Ki = null; a.vf = null; a.Ii = null; a.sl = null; a.xl = null; a.ii = null; a.wl = null; a.Hk = null }, f: Gb }; Ra.b = !0; Ra.Fk = function (a) { switch (n.A.tg.L().L(a)) { case "Down": return 2; case "Kick": return 16; case "Left": return 4; case "Right": return 8; case "Up": return 1; default: return 0 } }; Ra.prototype = { ia: function () { window.document.removeEventListener("focusout", G(this, this.al)) }, C: function () { var a = this.$d; if (null != this.ng && a != this.Yf) { this.Yf = a; var b = new Ga; b.input = a; this.ng(b) } }, Bd: function (a) { this.$d |= Ra.Fk(a) }, Cd: function (a) { this.$d &= ~Ra.Fk(a) }, al: function () { if (null != this.ng && 0 != this.Yf) { this.Yf = this.$d = 0; var a = new Ga; a.input = 0; this.ng(a) } }, f: Ra }; T.b = !0; T.Hh = function (a) { return T.Rf(JSON.parse(a)) }; T.Rf = function (a) { var b = new T; b.Ec = a.lat; b.Gc = a.lon; b.ub = a.code.toLowerCase(); return b }; T.Fo = function () { return M.tk(n.Ee + "api/geo").then(function (a) { return T.Rf(a) }) }; T.prototype = { se: function () { return JSON.stringify({ lat: this.Ec, lon: this.Gc, code: this.ub }) }, f: T }; Yb.b = !0; Yb.prototype = { Lh: function () { return null != this.Ne.L() ? this.Ne.L() : null != this.Me.L() ? this.Me.L() : new T }, f: Yb }; Xb.b = !0; Xb.Pm = function () { try { var a = window.localStorage; a.getItem(""); if (0 == a.length) { var b = "_hx_" + Math.random(); a.setItem(b, b); a.removeItem(b) } return a } catch (c) { return null } }; wa.b = !0; wa.prototype = { L: function () { return this.Hm }, Xa: function (a) { this.Hm = a; if (null != this.Yh) try { var b = this.Ur(a); null == b ? this.Yh.removeItem(this.w) : this.Yh.setItem(this.w, b) } catch (c) {} }, f: wa }; W.b = !0; W.Rf = function (a) { for (var b = new W, c = ec.Mm(a), d = 0; d < c.length;) { var e = c[d]; ++d; b.Yc.set(e, a[e]) } return b }; W.Hh = function (a) { return W.Rf(JSON.parse(a)) }; W.$j = function () { var a = new W; a.Pa("ArrowUp", "Up"); a.Pa("KeyW", "Up"); a.Pa("ArrowDown", "Down"); a.Pa("KeyS", "Down"); a.Pa("ArrowLeft", "Left"); a.Pa("KeyA", "Left"); a.Pa("ArrowRight", "Right"); a.Pa("KeyD", "Right"); a.Pa("KeyX", "Kick"); a.Pa("Space", "Kick"); a.Pa("ControlLeft", "Kick"); a.Pa("ControlRight", "Kick"); a.Pa("ShiftLeft", "Kick"); a.Pa("ShiftRight", "Kick"); a.Pa("Numpad0", "Kick"); return a }; W.prototype = { Pa: function (a, b) { this.Yc.set(a, b) }, L: function (a) { return this.Yc.get(a) }, Jq: function (a) { this.Yc["delete"](a) }, Eo: function (a) { for (var b = [], c = this.Yc.keys(), d = c.next(); !d.done;) { var e = d.value, d = c.next(); this.Yc.get(e) == a && b.push(e) } return b }, se: function () { for (var a = {}, b = this.Yc.keys(), c = b.next(); !c.done;) { var d = c.value, c = b.next(); a[d] = this.Yc.get(d) } return JSON.stringify(a) }, f: W }; n.b = !0; Wb.b = !0; Wb.prototype = { f: Wb }; u.b = !0; u.qp = function () { mc.ts(); x.fj(function () { u.jk(u.xq) }); u.hp() }; u.hp = function () { var a = n.A.Gj.L(); if (null == a) I.yo().then(function (a) { u.Je = a; n.A.Gj.Xa(a.Ir()) })["catch"](function () { return {} }); else I.xo(a).then(function (a) { return u.Je = a })["catch"](function () { return {} }) }; u.Bo = function () { var a = Xb.Pm(); return null != a ? null != a.getItem("crappy_router") : !1 }; u.jk = function (a) { var b = new kb(n.A.fe.L()); b.cl = function (b) { n.A.fe.Xa(b); n.Na.Tl(); a() }; x.La(b.g); b.Cb.focus() }; u.kk = function (a, b) { var c = new Q(a); c.Va = b; x.La(c.g) }; u.no = function (a, b) { function c() { var a = new Ka("Failed", null); a.Va = function () { u.xb() }; x.La(a.g) } function d(b) { b = b.sitekey; if (null == b) throw new q(null); u.kk(b, function (b) { e(a, b) }) } x.La((new P("Connecting", "Connecting...", [])).g); var e; e = function (a, e) { M.zl(n.Ee + "api/client", "room=" + a + "&rcr=" + e, M.vj).then(function (a) { switch (a.action) { case "connect": a = a.token; if (null == a) throw new q(null); b(a); break; case "recaptcha": d(a); break; default: throw new q(null); } })["catch"](function () { c() }) }; e(a, "") }; u.xq = function () { var a = Hb.L(), b = a.get("c"), c = a.get("p"); a.get("v"); null != b ? null != c ? u.Dh(b) : u.Pf(b) : u.xb() }; u.xb = function () { var a = new Aa(n.A.Lh()); x.La(a.Ja); a.Ym = function (b) { if (9 != b.vd.Id) { var c; 9 > b.vd.Id ? (b = "Old version room", c = "The room is running an older version, an update must have happened recently.") : (b = "New version", c = "The room is running a new version of haxball, refresh the site to update."); var d = new P(b, c, ["Ok"]); x.La(d.g); d.Va = function () { x.La(a.Ja); return d.Va = null } } else b.vd.Ib ? u.Dh(b.$) : u.Pf(b.$) }; a.ws = function () { u.oo() }; a.vs = function () { u.jk(u.xb) }; a.ys = function () { u.mk() }; a.xs = function (a) { u.po(a) } }; u.mk = function () { var a = new aa(!0), b = window.document.createElement("div"); b.className = "view-wrapper"; b.appendChild(a.g); x.La(b); a.qb = function () { u.xb() }; a.Ep = function () { var a = new mb, b = window.document.createElement("div"); b.className = "view-wrapper"; b.appendChild(a.g); x.La(b); return a.qb = function () { u.mk() } } }; u.$h = function (a, b) { return "" + window.location.origin + "/play?c=" + a + (b ? "&p=1" : "") }; u.oo = function () { var a = n.A.fe.L(), b = new ib("" + a + "'s room"); x.La(b.g); b.ci = function () { u.xb() }; b.Jp = function (b) { function c() { if (!b.Ks) { var a = new Fb; a.Id = 9; a.w = g.jc; a.I = g.I.length; a.Xe = l.fg + 1; a.ub = f.ub; a.Ib = null != l.Ib; a.Ec = f.Ec; a.Gc = f.Gc; var c = w.ha(16); a.ga(c); a = c.Kg(); l.Fi(a) } } x.La((new P("Creating room", "Connecting...", [])).g); var e = null, f = n.A.Lh(), g = new fa; g.jc = b.name; var k = new ea; k.w = a; k.cb = !0; k.Kd = f.ub; k.Xb = n.A.sh.L(); g.I.push(k); var l = new Lb({ iceServers: n.Vf, ij: n.Ee + "api/host", state: g, version: 9 }); l.fg = b.qs - 1; l.Ib = b.password; c(); var t = new ba(l), h = !1; l.ef = function (a, b) { u.kk(a, function (a) { b(a); x.La(t.j.g); return h = !0 }) }; var m = window.setInterval(function () { var a = la.la(l); l.ra(a) }, 3E3); l.$k = function (a) { null != g.na(a) && (a = Y.la(a, "Bad actor", !1), l.ra(a)) }; l.Hp = function (a, b) { var d = b.ic(); if (25 < d.length) throw new q("name too long"); var e = b.ic(); if (3 < e.length) throw new q("country too long"); var f = b.zb(); if (null != f && 2 < f.length) throw new q("avatar too long"); d = oa.la(a, d, e, f); l.ra(d); c() }; l.Ip = function (a) { null != g.na(a) && (a = Y.la(a, null, !1), l.ra(a)) }; l.kg = function (a) { e = a; t.Bg = u.$h(a, null != l.Ib); h || (h = !0, x.La(t.j.g)) }; t.Ih.Np = function (a, b, c, d) { l.to(a, b, c, d) }; t.Ih.Op = function () { c() }; t.j.de = function () { l.ia(); t.ia(); u.xb(); window.clearInterval(m) }; t.Of.Fg = function (a) { l.Ib = a; c(); null != e && (t.Bg = u.$h(e, null != l.Ib)) }; t.Of.jm = function (a) { l.Ei(a) }; t.Of.Ud = G(l, l.Ud) } }; u.Dh = function (a) { var b = new Za; x.La(b.g); b.Va = function (b) { null == b ? u.xb() : u.Pf(a, b) } }; u.po = function (a) { try { var b = new Vb(new Jb(new Uint8Array(a), new fa, 3)); b.je.de = function () { b.ia(); u.xb() }; x.La(b.j.g) } catch (e) { var c = e instanceof q ? e.Ta : e; if (c instanceof Kb) a = new P("Incompatible replay version", "The replay file is of a different version", ["Open player", "Cancel"]), x.La(a.g), a.Va = function (a) { 0 == a ? (a = window.top.location, window.top.open(a.protocol + "//" + a.hostname + (null != a.port ? ":" + a.port : "") + "/replay?v=" + c.Id, "_self")) : u.xb() }; else { var d = new P("Replay error", "Couldn't load the file.", ["Ok"]); x.La(d.g); d.Va = function () { d.Va = null; u.xb() } } } }; u.Pf = function (a, b, c) { try { var d = u.Bo(), e = new fa, f = w.ha(); f.mc(n.A.fe.L()); f.mc(n.A.Lh().ub); f.Db(n.A.sh.L()); var g = n.Vf, k = n.Vr, l = f.Kg(), t = new xa(a, { iceServers: g, ij: k, state: e, version: 9, Ms: l, password: b, cn: d, gn: c, ds: u.Je }), h = new jb; h.ba("Connecting to master..."); h.vh.onclick = function () { t.Ad = null; t.df = null; t.ia(); u.xb() }; x.La(h.g); var m = function (a, b) { var c = new Ka(a, b); c.Va = function () { u.xb() }; x.La(c.g) }, p = function () { var a = new P("Connection Failed", "", ["Ok"]); a.Vd.innerHTML = "

Failed to connect to room host.

If this problem persists please see the troubleshooting guide.

"; a.Va = function () { u.xb() }; x.La(a.g) }, r = function () { var b = new ba(t); t.dl = function (a) { b.j.pe.qr((10 * t.sg.$g(.5) | 0) / 10); b.j.pe.or((10 * t.sg.max() | 0) / 10); b.j.pe.nl.tn(a) }; b.Bg = u.$h(a, !1); x.La(b.j.g); b.j.de = function () { t.Ad = null; t.ia(); b.ia(); u.xb() }; t.Ad = function () { t.Ad = null; b.ia(); var a = null == b.Ed ? null : b.Ed.stop(); m(t.ek, a) } }; t.df = function (c) { t.df = null; t.Ad = null; switch (c.nb) { case 1: p(); break; case 2: switch (c.reason) { case 4004: u.no(a, function (c) { u.Pf(a, b, c) }); break; case 4101: null == b ? u.Dh(a) : m(xa.xh(c), null); break; default: m(xa.xh(c), null) } break; default: m(xa.xh(c), null) } }; t.Ad = function (a) { switch (a) { case 1: h.ba("Connecting to peer..."); break; case 2: h.ba("Awaiting state..."); break; case 3: r() } }; t.Sp = function () { h.ba("Trying reverse connection...") } } catch (ic) { window.console.log(ic instanceof q ? ic.Ta : ic), c = new P("Unexpected Error", "", []), c.Vd.innerHTML = "An error ocurred while attempting to join the room.

This might be caused by a browser extension, try disabling all extensions and refreshing the site.

The error has been printed to the inspector console.", x.La(c.g) } }; x.b = !0; x.ks = function () { try { return window.self != window.top } catch (a) { return !0 } }; x.Wg = function (a) { return new Promise(function (b, c) { var d = window.document.createElement("img"); d.onload = function () { URL.revokeObjectURL(d.src); d.onload = null; b(d) }; d.onerror = function () { URL.revokeObjectURL(d.src); c(null) }; return d.src = URL.createObjectURL(new Blob([a], { type: "image/png" })) }) }; x.fj = function (a) { x.ks() && x.es(function () { kc.fj(); var b; null == n.A.Me.L() ? T.Fo().then(function (a) { n.A.Me.Xa(a) }, function () { return {} }) : b = Promise.resolve(null); return Promise.all([M.L("res.dat", "arraybuffer").then(function (a) { a = new JSZip(a); n.Na = new Ub(a); return Promise.all([n.Na.ro, x.Wg(a.file("images/grass.png").asArrayBuffer()).then(function (a) { return n.Ko = a }), x.Wg(a.file("images/concrete.png").asArrayBuffer()).then(function (a) { return n.Vn = a }), x.Wg(a.file("images/concrete2.png").asArrayBuffer()).then(function (a) { return n.Tn = a }), x.Wg(a.file("images/typing.png").asArrayBuffer()).then(function (a) { return n.Dm = a }) ]) }), b]).then(function () { x.us(a) }) }) }; x.es = function (a) { for (var b = Modernizr, c = "canvas datachannel dataview es6collections peerconnection promises websockets".split(" "), d = [], e = 0; e < c.length;) { var f = c[e]; ++e; b[f] || d.push(f) } 0 != d.length ? (window.document.body.innerHTML = "", x.Pg = window.document.createElement("div"), window.document.body.appendChild(x.Pg), a = new Wa(d), x.La(a.g)) : a() }; x.us = function (a) { window.document.body.innerHTML = ""; x.Pg = window.document.createElement("div"); window.document.body.appendChild(x.Pg); var b = null, b = function () { n.Na.Tl(); window.document.removeEventListener("click", b, !0) }; window.document.addEventListener("click", b, !0); a() }; x.La = function (a) { null != x.Vm && x.Vm.remove(); null != a && (x.Pg.appendChild(a), x.Vm = a) }; Vb.b = !0; Vb.prototype = { ia: function () { window.document.removeEventListener("keydown", G(this, this.Bd)); window.document.removeEventListener("keyup", G(this, this.Cd)); window.onbeforeunload = null; window.cancelAnimationFrame(this.De); window.clearInterval(this.Gh) }, bf: function () { this.De = window.requestAnimationFrame(G(this, this.bf)); this.ya.C(); this.Kc() }, Kc: function () { this.je.C(); var a = window.performance.now(); 1 == n.A.Fh.L() && 28.333333333333336 > a - this.$c || (this.$c = a, this.sd++, this.uf(n.A.Tb.L()), 0 < this.ya.Fd || this.j.C(this.ya)) }, Bd: function (a) { switch (a.keyCode) { case 27: var b = this.j; b.me(!b.Gd); a.preventDefault(); break; case 49: n.A.Tb.Xa(1); break; case 50: n.A.Tb.Xa(2); break; case 51: n.A.Tb.Xa(3); break; case 52: n.A.Tb.Xa(0) } }, uf: function (a) { var b = this.j.Fb; 0 >= a ? (b.Gg(!0), b.Eb.kf = 1, b.Eb.xf = 0) : (b.Gg(!1), b.Eb.xf = 35, b.Eb.kf = 1 + .25 * (a - 1)) }, Cd: function () {}, f: Vb }; Fb.b = !0; Fb.prototype = { Pj: function () { this.w = U.Qc(this.w, 40); this.ub = U.Qc(this.ub, 3) }, ga: function (a) { this.Pj(); a.Sa = !0; a.Ub(this.Id); a.Im(this.w); a.Im(this.ub); a.Wi(this.Ec); a.Wi(this.Gc); a.l(this.Ib ? 1 : 0); a.l(this.Xe); a.l(this.I); a.Sa = !1 }, ja: function (a) { a.Sa = !0; this.Id = a.Ob(); this.w = a.El(); this.ub = a.El(); this.Ec = a.mi(); this.Gc = a.mi(); this.Ib = 0 != a.B(); this.Xe = a.B(); this.I = a.B(); a.Sa = !1; if (30 < this.I || 30 < this.Xe) throw new q(null); this.Pj() }, f: Fb }; va.b = !0; va.parse = function (a) { a.B(); for (var b = []; 0 != a.o.byteLength - a.a;) { var c = a.ie(a.Ob()), d = a.Cl(a.Ob()); try { var e = new Fb; e.ja(new F(new DataView(d), !1)); var f = new Wb; f.vd = e; f.$ = c; b.push(f) } catch (g) {} } return b }; va.js = function (a, b, c, d) { return Math.acos(Math.sin(a) * Math.sin(c) + Math.cos(a) * Math.cos(c) * Math.cos(b - d)) }; va.Hs = function (a, b) { for (var c = a.Ec, d = a.Gc, e = 0; e < b.length;) { var f = b[e]; ++e; var g = f.vd; f.Le = 6378 * va.js(.017453292519943295 * g.Ec, .017453292519943295 * g.Gc, .017453292519943295 * c, .017453292519943295 * d); isFinite(f.Le) || (f.Le = 22E3) } }; va.get = function () { return M.L(n.Ee + "api/list", "arraybuffer").then(function (a) { return va.parse(new F(new DataView(a), !1)) }) }; Z.b = !0; Z["delete"] = function (a) { return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function (b, c) { var d = window.indexedDB.open("stadiums", 1); d.onblocked = d.onerror = c; d.onupgradeneeded = function (a) { var b = d.result; b.onerror = c; 1 > a.oldVersion && (b.createObjectStore("files", { autoIncrement: !0 }), b.createObjectStore("meta", { keyPath: "id" })) }; d.onsuccess = function () { var e = d.result; e.onerror = c; var f = e.transaction(["meta", "files"], "readwrite"); f.onerror = f.onabort = function (a) { c(a); e.close() }; f.oncomplete = function () { b(0); e.close() }; f.objectStore("files")["delete"](a); f.objectStore("meta")["delete"](a) } }) }; Z.get = function (a) { return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function (b, c) { var d = window.indexedDB.open("stadiums", 1); d.onblocked = d.onerror = c; d.onupgradeneeded = function (a) { var b = d.result; b.onerror = c; 1 > a.oldVersion && (b.createObjectStore("files", { autoIncrement: !0 }), b.createObjectStore("meta", { keyPath: "id" })) }; d.onsuccess = function () { var e = d.result; e.onerror = c; var f = e.transaction(["files"]); f.onerror = f.onabort = function (a) { c(a); e.close() }; f.oncomplete = function () { e.close() }; zb.eh(f.objectStore("files").get(a)).then(function (a) { try { var d = new h; d.Lk(a); b(d) } catch (l) { c(l instanceof q ? l.Ta : l) } }, c) } }) }; Z.getAll = function () { return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function (a, b) { var c = window.indexedDB.open("stadiums", 1); c.onblocked = c.onerror = b; c.onupgradeneeded = function (a) { var d = c.result; d.onerror = b; 1 > a.oldVersion && (d.createObjectStore("files", { autoIncrement: !0 }), d.createObjectStore("meta", { keyPath: "id" })) }; c.onsuccess = function () { var d = c.result; d.onerror = b; var e = d.transaction(["meta"]); e.onerror = e.onabort = function (a) { b(a); d.close() }; e.oncomplete = function () { d.close() }; zb.eh(e.objectStore("meta").getAll()).then(a, b) } }) }; Z.Es = function () { var a = window.navigator.storage; if (null == a || null == a.persist) return Promise.resolve(!1); try { return a.persisted().then(function (b) { return b ? !0 : a.persist() })["catch"](function () { return !1 }) } catch (b) { return Promise.resolve(!1) } }; Z.add = function (a) { return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function (b, c) { var d = window.indexedDB.open("stadiums", 1); d.onblocked = d.onerror = c; d.onupgradeneeded = function (a) { var b = d.result; b.onerror = c; 1 > a.oldVersion && (b.createObjectStore("files", { autoIncrement: !0 }), b.createObjectStore("meta", { keyPath: "id" })) }; d.onsuccess = function () { var e = d.result; e.onerror = c; var f = e.transaction(["files", "meta"], "readwrite"); f.onerror = f.onabort = function (a) { c(a); e.close() }; f.oncomplete = function () { b(0); e.close() }; try { zb.eh(f.objectStore("files").add(a.se())).then(function (b) { b = { name: a.w, id: b }; return zb.eh(f.objectStore("meta").add(b)) })["catch"](c) } catch (g) { c(0) } } }) }; Ub.b = !0; Ub.prototype = { Tl: function () { this.c.resume() }, cd: function (a) { var b = this.c.createBufferSource(); b.buffer = a; b.connect(this.ag); b.start() }, im: function (a) { this.ag.gain.value = a }, f: Ub }; Tb.b = !0; Tb.prototype = { update: function () { var a = window.performance.now(), b = a - this.Um; this.Um = a; this.ve += (this.dh - this.ve) * this.Js; this.Ef -= b; 0 >= this.Ef && (this.Ef = this.dh = 0); 0 >= this.dh && .05 > this.ve && (window.clearInterval(this.gh), this.gh = null, this.ve = 0); this.Tg.gain.value = n.A.nm.L() ? this.ve : 0 }, qj: function (a) { var b = this; this.dh = a; this.Ef = 166.66666666666666; null == this.gh && (this.gh = window.setInterval(function () { b.update() }, 17), this.Um = window.performance.now()) }, connect: function (a) { this.Tg.connect(a) }, Ls: function (a) { var b = a.K; if (null != b) if (2 == b.Bb) 0 >= b.Oa && this.qj(1); else if (1 == b.Bb) { var c = b.ta.F[0], d = null, e = null, f = null, g = 0, k = null, l = null, t = null, h = 0, m = p.fa.Ch, n = 0; for (a = a.I; n < a.length;) { var q = a[n]; ++n; if (null != q.H) { var r = q.H.a, v = c.a, u = r.x - v.x, r = r.y - v.y, u = u * u + r * r; if (q.ea == p.fa) { if (null == d || d.a.x * m < q.H.a.x * m) d = q.H; if (null == e || e.a.x * m > q.H.a.x * m) e = q.H; if (null == f || u < g) f = q.H, g = u } else if (q.ea == p.xa) { if (null == k || k.a.x * m < q.H.a.x * m) k = q.H; if (null == l || l.a.x * m > q.H.a.x * m) l = q.H; if (null == t || u < h) t = q.H, h = u } } } null != l && null != e && 0 >= b.Oa && (f.a.x > l.a.x && c.a.x > l.a.x && 20 < c.a.x && this.qj(.3), t.a.x < e.a.x && c.a.x < e.a.x && -20 > c.a.x && this.qj(.3)) } }, f: Tb }; ua.b = !0; ua.prototype = { ga: function (a) { var b = this.a; a.s(b.x); a.s(b.y); b = this.D; a.s(b.x); a.s(b.y); b = this.oa; a.s(b.x); a.s(b.y); a.s(this.Z); a.s(this.m); a.s(this.aa); a.s(this.Ca); a.tb(this.R); a.O(this.h); a.O(this.v) }, ja: function (a) { var b = this.a; b.x = a.u(); b.y = a.u(); b = this.D; b.x = a.u(); b.y = a.u(); b = this.oa; b.x = a.u(); b.y = a.u(); this.Z = a.u(); this.m = a.u(); this.aa = a.u(); this.Ca = a.u(); this.R = a.hb(); this.h = a.M(); this.v = a.M() }, rp: function () { var a = new ca; this.Bk(a); return a }, Bk: function (a) { var b = a.a, c = this.a; b.x = c.x; b.y = c.y; b = a.D; c = this.D; b.x = c.x; b.y = c.y; b = a.oa; c = this.oa; b.x = c.x; b.y = c.y; a.Z = this.Z; a.m = this.m; a.aa = this.aa; a.Ca = this.Ca; a.R = this.R; a.h = this.h; a.v = this.v }, f: ua }; O.b = !0; O.Rd = [Ta]; O.qd = function (a, b) { a.Ma = b.Ma.sc(); a.ib = b.ib; a.Da = b.Da; a.ta = b.ta.sc(); a.vc = b.vc; a.Bb = b.Bb; a.Pb = b.Pb; a.Kb = b.Kb; a.Hc = b.Hc; a.Oa = b.Oa; a.S = b.S; a.ae = b.ae }; O.prototype = { Wo: function (a) { this.Ma = a; this.ib = a.ib; this.Da = a.Da; this.S = a.S; this.ta.J = this.S.J; this.ta.qa = this.S.qa; this.ta.U = this.S.U; this.ta.pb = this.S.pb; a = 0; for (var b = this.S.F; a < b.length;) this.ta.F.push(b[a++].rp()); this.Gk() }, Ck: function (a) { if (a.ea == p.Ia) a.H = null; else { a.ob = 0; var b = a.H; null == b && (b = new ca, a.H = b, this.ta.F.push(b)); var c = this.S.ge; b.R = 0; b.Z = c.Z; b.aa = c.aa; b.Ca = c.Ca; b.m = c.m; b.h = 39; b.v = a.ea.v | c.v; var d = a.ea == p.fa ? this.S.Dd : this.S.md; 0 == d.length ? (b.a.x = a.ea.Ch * this.S.$b, b.a.y = 0) : (a = b.a, d = d[d.length - 1], a.x = d.x, a.y = d.y); d = b.D; d.x = 0; d.y = 0; b = b.oa; c = c.oa; b.x = c.x; b.y = c.y } }, C: function (a) { if (0 < this.Oa) 120 > this.Oa && this.Oa--; else { var b = this.Ma.Os; null != b && b(); for (var b = this.Ma.I, c = 0; c < b.length;) { var d = b[c]; ++c; if (null != d.H) { 0 == (d.ob & 16) && (d.Wb = !1); var e = this.S.ge; 0 < d.Sc && d.Sc--; d.yc < this.Ma.ce && d.yc++; if (d.Wb && 0 >= d.Sc && 0 <= d.yc) { for (var f = !1, g = 0, k = this.ta.F; g < k.length;) { var l = k[g]; ++g; if (0 != (l.v & 64) && l != d.H) { var t = l.a, h = d.H.a, m = t.x - h.x, t = t.y - h.y, h = Math.sqrt(m * m + t * t); if (4 > h - l.Z - d.H.Z) { var f = m / h, m = t / h, t = e.Re, n = h = l.D, l = l.aa; h.x = n.x + f * t * l; h.y = n.y + m * t * l; n = d.H; l = -e.Se; h = t = n.D; n = n.aa; t.x = h.x + f * l * n; t.y = h.y + m * l * n; f = !0 } } } f && (null != this.Ma.ji && this.Ma.ji(d), d.Wb = !1, d.Sc = this.Ma.yd, d.yc -= this.Ma.Zc) } f = d.ob; k = g = 0; 0 != (f & 1) && --k; 0 != (f & 2) && ++k; 0 != (f & 4) && --g; 0 != (f & 8) && ++g; 0 != g && 0 != k && (f = Math.sqrt(g * g + k * k), g /= f, k /= f); f = d.H.D; l = d.Wb ? e.Te : e.Ce; f.x += g * l; f.y += k * l; d.H.Ca = d.Wb ? e.Ue : e.Ca } } c = 0; d = this.ta.F; e = 0; for (g = d.length; e < g;) f = e++, k = d[f], 0 != (k.v & 128) && (O.dk[c] = f, f = O.Yk[c], k = k.a, f.x = k.x, f.y = k.y, ++c); this.ta.C(a); if (0 == this.Bb) { for (a = 0; a < b.length;) c = b[a], ++a, null != c.H && (c.H.h = 39 | this.ae.cp); b = this.ta.F[0].D; 0 < b.x * b.x + b.y * b.y && (this.Bb = 1) } else if (1 == this.Bb) { this.Hc += .016666666666666666; for (a = 0; a < b.length;) d = b[a], ++a, null != d.H && (d.H.h = 39); d = p.Ia; b = this.ta.F; for (a = 0; a < c && (d = a++, d = this.S.Kn(b[O.dk[d]].a, O.Yk[d]), d == p.Ia);); d != p.Ia ? (this.Bb = 2, this.vc = 150, this.ae = d, d == p.fa ? this.Kb++ : this.Pb++, null != this.Ma.Ni && this.Ma.Ni(d.pg), null != this.Ma.Ol && this.Ma.Ol(d.$)) : 0 < this.Da && this.Hc >= 60 * this.Da && this.Pb != this.Kb && (null != this.Ma.Pi && this.Ma.Pi(), this.um()) } else if (2 == this.Bb) this.vc--, 0 >= this.vc && (0 < this.ib && (this.Pb >= this.ib || this.Kb >= this.ib) || 0 < this.Da && this.Hc >= 60 * this.Da && this.Pb != this.Kb ? this.um() : (this.Gk(), null != this.Ma.lq && this.Ma.lq())); else if (3 == this.Bb && (this.vc--, 0 >= this.vc && (b = this.Ma, null != b.K))) { b.K = null; a = 0; for (c = b.I; a < c.length;) d = c[a], ++a, d.H = null, d.Jb = 0; null != b.vf && b.vf(null) } } }, um: function () { this.vc = 300; this.Bb = 3; null != this.Ma.Oi && this.Ma.Oi(this.Pb > this.Kb ? p.fa : p.xa) }, Gk: function () { var a = this.Ma.I; this.Bb = 0; for (var b = this.S.F, c = this.ta.F, d = 0, e = this.S.pf ? b.length : 1; d < e;) { var f = d++; b[f].Bk(c[f]) } b = [0, 0, 0]; for (c = 0; c < a.length;) if (d = a[c], ++c, this.Ck(d), e = d.ea, e != p.Ia) { var f = d.H.a, g = this.S, k = b[e.$], l = e == p.fa ? g.Dd : g.md; 0 == l.length ? (l = k + 1 >> 1, 0 == (k & 1) && (l = -l), g = g.kc * e.Ch, k = 55 * l) : (k >= l.length && (k = l.length - 1), k = l[k], g = k.x, k = k.y); f.x = g; f.y = k; b[e.$]++; d.Jb = b[e.$] } }, ga: function (a) { this.ta.ga(a); a.O(this.vc); a.O(this.Bb); a.O(this.Pb); a.O(this.Kb); a.s(this.Hc); a.O(this.Oa); a.l(this.ae.$) }, ja: function (a, b) { this.ta.ja(a); this.vc = a.M(); this.Bb = a.M(); this.Pb = a.M(); this.Kb = a.M(); this.Hc = a.u(); this.Oa = a.M(); var c = a.lf(); this.ae = 1 == c ? p.fa : 2 == c ? p.xa : p.Ia; this.Ma = b; this.ib = b.ib; this.Da = b.Da; this.S = b.S; this.ta.J = this.S.J; this.ta.U = this.S.U; this.ta.qa = this.S.qa; this.ta.pb = this.S.pb }, sc: function () { var a = ya.zc, b = this.gc; this.hc != a && (null == b && (this.gc = b = new O), this.hc = a, O.qd(b, this)); return b }, f: O }; sb.b = !0; sb.prototype = { ga: function (a) { var b = this.W; a.s(b.x); a.s(b.y); b = this.ca; a.s(b.x); a.s(b.y); a.l(this.qe.$) }, ja: function (a) { var b = this.W; b.x = a.u(); b.y = a.u(); b = this.ca; b.x = a.u(); b.y = a.u(); a = a.lf(); this.qe = 1 == a ? p.fa : 2 == a ? p.xa : p.Ia }, f: sb }; Eb.b = !0; Eb.prototype = { ga: function (a) { a.s(this.m); a.s(this.aa); a.s(this.Ca); a.s(this.Ce); a.s(this.Te); a.s(this.Ue); a.s(this.Re); var b = this.oa; a.s(b.x); a.s(b.y); a.O(this.v); a.s(this.Z); a.s(this.Se) }, ja: function (a) { this.m = a.u(); this.aa = a.u(); this.Ca = a.u(); this.Ce = a.u(); this.Te = a.u(); this.Ue = a.u(); this.Re = a.u(); var b = this.oa; b.x = a.u(); b.y = a.u(); this.v = a.M(); this.Z = a.u(); this.Se = a.u() }, f: Eb }; Bb.b = !0; Bb.prototype = { f: Bb }; h.b = !0; h.ja = function (a) { var b = a.B(); return 255 == b ? (b = new h, b.Kr(a), b) : h.Kh()[b] }; h.Kh = function () { if (null == h.wb) { h.wb = []; var a = new h; a.ad("Classic", 420, 200, 370, 170, 64, 75); h.wb.push(a); a = new h; a.ad("Easy", 420, 200, 370, 170, 90, 75); h.wb.push(a); a = new h; a.ad("Small", 420, 200, 320, 130, 55, 70); h.wb.push(a); a = new h; a.ad("Big", 600, 270, 550, 240, 80, 80); h.wb.push(a); a = new h; a.ad("Rounded", 420, 200, 370, 170, 64, 75, 75); h.wb.push(a); a = new h; a.Qk("Hockey", 420, 204, 398, 182, 68, 120, 75, 100); h.wb.push(a); a = new h; a.Qk("Big Hockey", 600, 270, 550, 240, 90, 160, 75, 150); h.wb.push(a); a = new h; a.ad("Big Easy", 600, 270, 550, 240, 95, 80); h.wb.push(a); a = new h; a.ad("Big Rounded", 600, 270, 550, 240, 80, 75, 100); h.wb.push(a); a = new h; a.ad("Huge", 750, 350, 700, 320, 100, 80); h.wb.push(a); for (var a = 0, b = h.wb.length; a < b;) { var c = a++; h.wb[c].Bh = c } } return h.wb }; h.wn = function (a, b) { if (null != a.trait) { var c = b[r.G(a.trait, String)]; if (null != c) for (var d = 0, e = ec.Mm(c); d < e.length;) { var f = e[d]; ++d; null == a[f] && (a[f] = c[f]) } } }; h.Dn = function (a) { if (63 == a) return ["all"]; var b = []; 0 != (a & 2) && b.push("red"); 0 != (a & 4) && b.push("blue"); 0 != (a & 1) && b.push("ball"); 0 != (a & 8) && b.push("redKO"); 0 != (a & 16) && b.push("blueKO"); 0 != (a & 32) && b.push("wall"); 0 != (a & 64) && b.push("kick"); 0 != (a & 128) && b.push("score"); 0 != (a & 268435456) && b.push("c0"); 0 != (a & 536870912) && b.push("c1"); 0 != (a & 1073741824) && b.push("c2"); 0 != (a & -2147483648) && b.push("c3"); return b }; h.Fc = function (a) { a = r.G(a, Array); for (var b = 0, c = 0; c < a.length;) switch (a[c++]) { case "all": b |= 63; break; case "ball": b |= 1; break; case "blue": b |= 4; break; case "blueKO": b |= 16; break; case "c0": b |= 268435456; break; case "c1": b |= 536870912; break; case "c2": b |= 1073741824; break; case "c3": b |= -2147483648; break; case "kick": b |= 64; break; case "red": b |= 2; break; case "redKO": b |= 8; break; case "score": b |= 128; break; case "wall": b |= 32 } return b }; h.Jc = function (a, b, c, d) { c != d && (a[b] = h.Dn(c)) }; h.qg = function (a, b, c) { b != c && (a.color = h.Rn(b)) }; h.Rn = function (a) { a |= 0; return 0 > a ? "transparent" : J.Vg(a) }; h.$f = function (a) { if ("transparent" == a) return -1; if ("string" == typeof a) return K.parseInt("0x" + K.ye(a)); if (a instanceof Array && null == a.eb) return ((a[0] | 0) << 16) + ((a[1] | 0) << 8) + (a[2] | 0); throw new q("Bad color"); }; h.Tr = function (a) { var b = { x: a.a.x, y: a.a.y }; h.ka(b, "bCoef", a.m, 1); h.Jc(b, "cMask", a.h, 63); h.Jc(b, "cGroup", a.v, 32); return b }; h.np = function (a) { var b = new B; b.a.x = r.G(a.x, z); b.a.y = r.G(a.y, z); var c = a.bCoef; null != c && (b.m = r.G(c, z)); c = a.cMask; null != c && (b.h = h.Fc(c)); a = a.cGroup; null != a && (b.v = h.Fc(a)); return b }; h.fr = function (a, b) { var c = { v0: a.W.ud, v1: a.ca.ud }; h.ka(c, "bias", a.Cc, b.Cc); h.ka(c, "bCoef", a.m, b.m); var d = a.Co(); h.ka(c, "curve", d, 0); 0 != d && (c.curveF = a.vb); h.ka(c, "vis", a.Za, b.Za); h.Jc(c, "cMask", a.h, b.h); h.Jc(c, "cGroup", a.v, b.v); h.qg(c, a.R, b.R); return c }; h.mp = function (a, b) { var c = new E, d = r.G(a.v1, Pb); c.W = b[r.G(a.v0, Pb)]; c.ca = b[d]; var d = a.bias, e = a.bCoef, f = a.curve, g = a.curveF, k = a.vis, l = a.cMask, t = a.cGroup, m = a.color; null != d && (c.Cc = r.G(d, z)); null != e && (c.m = r.G(e, z)); null != g ? c.vb = r.G(g, z) : null != f && c.Oc(r.G(f, z)); null != k && (c.Za = r.G(k, oc)); null != l && (c.h = h.Fc(l)); null != t && (c.v = h.Fc(t)); null != m && (c.R = h.$f(m)); return c }; h.ap = function (a) { var b = { d0: a.Yd, d1: a.Zd, length: a.Hb >= a.ec ? a.Hb : [a.Hb, a.ec] }; h.qg(b, a.R, 0); h.ka(b, "strength", a.ne, 1 / 0); return b }; h.jp = function (a, b) { var c = new nb, d = r.G(a.d0, Pb), e = r.G(a.d1, Pb), f = a.color, g = a.strength, k = a.length; if (d >= b.length || 0 > d) throw new q(null); if (e >= b.length || 0 > e) throw new q(null); c.Yd = d; c.Zd = e; null == k ? (d = b[d], k = b[e], null == d || null == k ? c.ec = c.Hb = 100 : (e = d.a, k = k.a, d = e.x - k.x, e = e.y - k.y, c.ec = c.Hb = Math.sqrt(d * d + e * e))) : k instanceof Array && null == k.eb ? (c.Hb = r.G(k[0], z), c.ec = r.G(k[1], z)) : c.ec = c.Hb = r.G(k, z); c.ne = null == g || "rigid" == g ? 1 / 0 : r.G(g, z); null != f && (c.R = h.$f(f)); return c }; h.gq = function (a) { var b = { normal: [a.wa.x, a.wa.y], dist: a.Ua }; h.ka(b, "bCoef", a.m, 1); h.Jc(b, "cMask", a.h, 63); h.Jc(b, "cGroup", a.v, 32); return b }; h.kp = function (a) { var b = new L, c = r.G(a.normal, Array), d = r.G(c[0], z), c = r.G(c[1], z), e = b.wa, f = Math.sqrt(d * d + c * c); e.x = d / f; e.y = c / f; b.Ua = r.G(a.dist, z); d = a.bCoef; c = a.cMask; a = a.cGroup; null != d && (b.m = r.G(d, z)); null != c && (b.h = h.Fc(c)); null != a && (b.v = h.Fc(a)); return b }; h.Jo = function (a) { return { p0: [a.W.x, a.W.y], p1: [a.ca.x, a.ca.y], team: a.qe == p.fa ? "red" : "blue" } }; h.ip = function (a) { var b = new sb, c = r.G(a.p0, Array), d = r.G(a.p1, Array), e = b.W; e.x = c[0]; e.y = c[1]; c = b.ca; c.x = d[0]; c.y = d[1]; switch (a.team) { case "blue": a = p.xa; break; case "red": a = p.fa; break; default: throw new q("Bad team value"); } b.qe = a; return b }; h.jq = function (a) { var b = {}; h.ka(b, "bCoef", a.m, .5); h.ka(b, "invMass", a.aa, .5); h.ka(b, "damping", a.Ca, .96); h.ka(b, "acceleration", a.Ce, .1); h.ka(b, "kickingAcceleration", a.Te, .07); h.ka(b, "kickingDamping", a.Ue, .96); h.ka(b, "kickStrength", a.Re, 5); h.Jc(b, "cGroup", a.v, 0); if (0 != a.oa.x || 0 != a.oa.y) b.gravity = [a.oa.x, a.oa.y]; h.ka(b, "radius", a.Z, 15); h.ka(b, "kickback", a.Se, 0); return b }; h.lp = function (a) { var b = new Eb, c = a.bCoef, d = a.invMass, e = a.damping, f = a.acceleration, g = a.kickingAcceleration, k = a.kickingDamping, l = a.kickStrength, t = a.gravity, m = a.cGroup, n = a.radius; a = a.kickback; null != c && (b.m = r.G(c, z)); null != d && (b.aa = r.G(d, z)); null != e && (b.Ca = r.G(e, z)); null != f && (b.Ce = r.G(f, z)); null != g && (b.Te = r.G(g, z)); null != k && (b.Ue = r.G(k, z)); null != l && (b.Re = r.G(l, z)); null != t && (c = b.oa, d = r.G(t[1], z), c.x = r.G(t[0], z), c.y = d); null != m && (b.v = h.Fc(m)); null != n && (b.Z = r.G(n, z)); null != a && (b.Se = r.G(a, z)); return b }; h.mo = function (a, b) { var c = {}; if (a.a.x != b.a.x || a.a.y != b.a.y) c.pos = [a.a.x, a.a.y]; if (a.D.x != b.D.x || a.D.y != b.D.y) c.speed = [a.D.x, a.D.y]; if (a.oa.x != b.oa.x || a.oa.y != b.oa.y) c.gravity = [a.oa.x, a.oa.y]; h.ka(c, "radius", a.Z, b.Z); h.ka(c, "bCoef", a.m, b.m); h.ka(c, "invMass", a.aa, b.aa); h.ka(c, "damping", a.Ca, b.Ca); h.qg(c, a.R, b.R); h.Jc(c, "cMask", a.h, b.h); h.Jc(c, "cGroup", a.v, b.v); return c }; h.Mk = function (a, b) { var c = a.pos, d = a.speed, e = a.gravity, f = a.radius, g = a.bCoef, k = a.invMass, l = a.damping, t = a.color, m = a.cMask, n = a.cGroup; if (null != c) { var p = b.a; p.x = c[0]; p.y = c[1] } null != d && (c = b.D, c.x = d[0], c.y = d[1]); null != e && (d = b.oa, d.x = e[0], d.y = e[1]); null != f && (b.Z = r.G(f, z)); null != g && (b.m = r.G(g, z)); null != k && (b.aa = r.G(k, z)); null != l && (b.Ca = r.G(l, z)); null != t && (b.R = h.$f(t)); null != m && (b.h = h.Fc(m)); null != n && (b.v = h.Fc(n)); return b }; h.ka = function (a, b, c, d) { c != d && (a[b] = c) }; h.prototype = { dg: function () { var a = new ua; a.R = 16777215; a.h = 63; a.v = 193; a.Z = 10; a.Ca = .99; a.aa = 1; a.m = .5; return a }, ga: function (a) { a.l(this.Bh); if (!this.Pe()) { a.Db(this.w); a.O(this.ld); a.s(this.Td); a.s(this.Sd); a.s(this.kd); a.s(this.Uc); a.s(this.Fe); a.O(this.jd); a.s(this.$b); a.s(this.qc); a.s(this.kc); this.ge.ga(a); a.Ub(this.Ye); a.l(this.Ge); a.l(this.Lf ? 1 : 0); a.l(this.pf ? 1 : 0); a.l(this.J.length); for (var b = 0, c = this.J.length; b < c;) { var d = b++, e = this.J[d]; e.ud = d; e.ga(a) } a.l(this.U.length); b = 0; for (c = this.U; b < c.length;) c[b++].ga(a); a.l(this.qa.length); b = 0; for (c = this.qa; b < c.length;) c[b++].ga(a); a.l(this.tc.length); b = 0; for (c = this.tc; b < c.length;) c[b++].ga(a); a.l(this.F.length); b = 0; for (c = this.F; b < c.length;) c[b++].ga(a); a.l(this.pb.length); b = 0; for (c = this.pb; b < c.length;) c[b++].ga(a); a.l(this.Dd.length); b = 0; for (c = this.Dd; b < c.length;) d = c[b], ++b, a.s(d.x), a.s(d.y); a.l(this.md.length); b = 0; for (c = this.md; b < c.length;) d = c[b], ++b, a.s(d.x), a.s(d.y) } }, Kr: function (a) { function b() { for (var b = [], c = a.B(), d = 0; d < c;) { ++d; var e = new H(0, 0); e.x = a.u(); e.y = a.u(); b.push(e) } return b } this.w = a.zb(); this.ld = a.M(); this.Td = a.u(); this.Sd = a.u(); this.kd = a.u(); this.Uc = a.u(); this.Fe = a.u(); this.jd = a.M(); this.$b = a.u(); this.qc = a.u(); this.kc = a.u(); this.ge.ja(a); this.Ye = a.Ob(); this.Ge = a.B(); this.Lf = 0 != a.B(); this.pf = 0 != a.B(); this.J = []; for (var c = a.B(), d = 0; d < c;) { var e = new B; e.ja(a); e.ud = d++; this.J.push(e) } this.U = []; c = a.B(); for (d = 0; d < c;) ++d, e = new E, e.ja(a, this.J), this.U.push(e); this.qa = []; c = a.B(); for (d = 0; d < c;) ++d, e = new L, e.ja(a), this.qa.push(e); this.tc = []; c = a.B(); for (d = 0; d < c;) ++d, e = new sb, e.ja(a), this.tc.push(e); this.F = []; c = a.B(); for (d = 0; d < c;) ++d, e = new ua, e.ja(a), this.F.push(e); this.pb = []; c = a.B(); for (d = 0; d < c;) ++d, e = new nb, e.ja(a), this.pb.push(e); this.Dd = b(); this.md = b(); this.he() }, he: function () { for (var a = 0, b = this.U; a < b.length;) b[a++].he() }, Pe: function () { return 255 != this.Bh }, be: function (a, b, c) { a = a[b]; return null != a ? r.G(a, z) : c }, op: function (a, b, c) { a = a[b]; return null != a ? r.G(a, oc) : c }, se: function () { return JSON.stringify(this.Hr()) }, Hr: function () { if (!this.Lf) throw new q(0); for (var a = {}, b = 0, c = [], d = 0, e = this.J; d < e.length;) { var f = e[d]; ++d; f.ud = b++; c.push(h.Tr(f)) } d = new E; b = []; e = 0; for (f = this.U; e < f.length;) b.push(h.fr(f[e++], d)); d = []; e = 0; for (f = this.qa; e < f.length;) d.push(h.gq(f[e++])); for (var e = [], f = 0, g = this.tc; f < g.length;) e.push(h.Jo(g[f++])); for (var f = h.jq(this.ge), k = new ua, g = [], l = 0, t = this.F; l < t.length;) g.push(h.mo(t[l++], k)); k = []; l = 0; for (t = this.pb; l < t.length;) k.push(h.ap(t[l++])); for (var l = [], t = 0, m = this.Dd; t < m.length;) { var n = m[t]; ++t; l.push([n.x, n.y]) } t = []; m = 0; for (n = this.md; m < n.length;) { var p = n[m]; ++m; t.push([p.x, p.y]) } c = { name: this.w, width: this.$b, height: this.qc, bg: a, vertexes: c, segments: b, planes: d, goals: e, discs: g, playerPhysics: f, ballPhysics: "disc0" }; h.ka(c, "maxViewWidth", this.Ye, 0); h.ka(c, "cameraFollow", 1 == this.Ge ? "player" : "", ""); h.ka(c, "spawnDistance", this.kc, 200); 0 != k.length && (c.joints = k); 0 != l.length && (c.redSpawnPoints = l); 0 != t.length && (c.blueSpawnPoints = t); h.ka(c, "kickOffReset", this.pf ? "full" : "partial", "partial"); switch (this.ld) { case 1: b = "grass"; break; case 2: b = "hockey"; break; default: b = "none" } h.ka(a, "type", b, "none"); h.ka(a, "width", this.Td, 0); h.ka(a, "height", this.Sd, 0); h.ka(a, "kickOffRadius", this.kd, 0); h.ka(a, "cornerRadius", this.Uc, 0); h.qg(a, this.jd, 7441498); h.ka(a, "goalLine", this.Fe, 0); return c }, Lk: function (a) { function b(a) { var b = r.G(a[0], z); a = r.G(a[1], z); return new H(b, a) } function c(a, b, c, d) { null == d && (d = !1); var f = e[b]; if (!d || null != f) if (d = r.G(f, Array), null != d) for (f = 0; f < d.length;) { var k = d[f]; ++f; try { h.wn(k, g), a.push(c(k)) } catch (wc) { throw new q(new Bb('Error in "' + b + '" index: ' + a.length)); } } } var d = this, e = JSON5.parse(a); this.J = []; this.U = []; this.qa = []; this.tc = []; this.F = []; this.pb = []; this.w = r.G(e.name, String); this.$b = r.G(e.width, z); this.qc = r.G(e.height, z); this.Ye = this.be(e, "maxViewWidth", 0) | 0; "player" == e.cameraFollow && (this.Ge = 1); this.kc = 200; a = e.spawnDistance; null != a && (this.kc = r.G(a, z)); a = e.bg; var f; switch (a.type) { case "grass": f = 1; break; case "hockey": f = 2; break; default: f = 0 } this.ld = f; this.Td = this.be(a, "width", 0); this.Sd = this.be(a, "height", 0); this.kd = this.be(a, "kickOffRadius", 0); this.Uc = this.be(a, "cornerRadius", 0); this.jd = 7441498; null != a.color && (this.jd = h.$f(a.color)); this.Fe = this.be(a, "goalLine", 0); this.Lf = this.op(e, "canBeStored", !0); this.pf = "full" == e.kickOffReset; var g = e.traits; a = e.ballPhysics; "disc0" != a && (null != a ? (a = h.Mk(a, this.dg()), a.v |= 192, this.F.push(a)) : this.F.push(this.dg())); c(this.J, "vertexes", h.np); c(this.U, "segments", function (a) { return h.mp(a, d.J) }); c(this.tc, "goals", h.ip); c(this.F, "discs", function (a) { return h.Mk(a, new ua) }); c(this.qa, "planes", h.kp); c(this.pb, "joints", function (a) { return h.jp(a, d.F) }, !0); c(this.Dd, "redSpawnPoints", b, !0); c(this.md, "blueSpawnPoints", b, !0); a = e.playerPhysics; null != a && (this.ge = h.lp(a)); if (255 < this.J.length || 255 < this.U.length || 255 < this.qa.length || 255 < this.tc.length || 255 < this.F.length) throw new q("Error"); this.he() }, Sj: function () { var a = h.Fr; a.a = 0; this.ga(a); var b = new dc; b.Yr(a.Sb()); b.hash = (b.hash += b.hash << 3) ^ b.hash >>> 11; b.hash += b.hash << 15; return b.hash | 0 }, Kn: function (a, b) { for (var c = 0, d = this.tc; c < d.length;) { var e = d[c]; ++c; var f = e.W, g = e.ca, k = b.x - a.x, l = b.y - a.y; 0 < -(f.y - a.y) * k + (f.x - a.x) * l == 0 < -(g.y - a.y) * k + (g.x - a.x) * l ? f = !1 : (k = g.x - f.x, g = g.y - f.y, f = 0 < -(a.y - f.y) * k + (a.x - f.x) * g == 0 < -(b.y - f.y) * k + (b.x - f.x) * g ? !1 : !0); if (f) return e.qe } return p.Ia }, ad: function (a, b, c, d, e, f, g, k) { null == k && (k = 0); this.w = a; this.F.push(this.dg()); this.$b = b; this.qc = c; this.ld = 1; this.jd = 7441498; this.Td = d; this.Sd = e; this.kd = g; this.Uc = k; this.kc = .75 * d; 400 < this.kc && (this.kc = 400); a = new L; var l = a.wa; l.x = 0; l.y = 1; a.Ua = -c; a.m = 0; this.qa.push(a); a = new L; l = a.wa; l.x = 0; l.y = -1; a.Ua = -c; a.m = 0; this.qa.push(a); a = new L; l = a.wa; l.x = 1; l.y = 0; a.Ua = -b; a.m = 0; this.qa.push(a); a = new L; l = a.wa; l.x = -1; l.y = 0; a.Ua = -b; a.m = 0; this.qa.push(a); this.eg(d, 1, f, 13421823, p.xa); this.eg(-d, -1, f, 16764108, p.fa); this.Rk(g, c); b = new L; c = b.wa; c.x = 0; c.y = 1; b.Ua = -e; b.h = 1; this.qa.push(b); b = new L; c = b.wa; c.x = 0; c.y = -1; b.Ua = -e; b.h = 1; this.qa.push(b); b = new B; c = b.a; c.x = -d; c.y = -e; b.h = 0; c = new B; g = c.a; g.x = d; g.y = -e; c.h = 0; g = new B; a = g.a; a.x = d; a.y = -f; g.h = 0; a = new B; l = a.a; l.x = d; l.y = f; a.h = 0; var l = new B, h = l.a; h.x = d; h.y = e; l.h = 0; var h = new B, m = h.a; m.x = -d; m.y = e; h.h = 0; var m = new B, n = m.a; n.x = -d; n.y = f; m.h = 0; var n = new B, q = n.a; q.x = -d; q.y = -f; n.h = 0; f = new E; f.W = c; f.ca = g; f.h = 1; f.Za = !1; q = new E; q.W = a; q.ca = l; q.h = 1; q.Za = !1; var r = new E; r.W = h; r.ca = m; r.h = 1; r.Za = !1; var u = new E; u.W = n; u.ca = b; u.h = 1; u.Za = !1; this.J.push(b); this.J.push(c); this.J.push(g); this.J.push(a); this.J.push(l); this.J.push(h); this.J.push(m); this.J.push(n); this.U.push(f); this.U.push(q); this.U.push(r); this.U.push(u); this.Pk(d, e, k); this.he() }, Qk: function (a, b, c, d, e, f, g, k, l) { this.w = a; this.F.push(this.dg()); this.$b = b; this.qc = c; this.ld = 2; this.Td = d; this.Sd = e; this.kd = k; this.Uc = l; this.Fe = g; this.kc = .75 * (d - g); 400 < this.kc && (this.kc = 400); a = new L; var h = a.wa; h.x = 0; h.y = 1; a.Ua = -c; a.m = 0; this.qa.push(a); a = new L; h = a.wa; h.x = 0; h.y = -1; a.Ua = -c; a.m = 0; this.qa.push(a); a = new L; h = a.wa; h.x = 1; h.y = 0; a.Ua = -b; a.m = 0; this.qa.push(a); a = new L; h = a.wa; h.x = -1; h.y = 0; a.Ua = -b; a.m = 0; this.qa.push(a); this.eg(d - g, 1, f, 13421823, p.xa, 63); this.eg(-d + g, -1, f, 16764108, p.fa, 63); this.Rk(k, c); b = new L; c = b.wa; c.x = 0; c.y = 1; b.Ua = -e; b.h = 1; this.qa.push(b); b = new L; c = b.wa; c.x = 0; c.y = -1; b.Ua = -e; b.h = 1; this.qa.push(b); b = new L; c = b.wa; c.x = 1; c.y = 0; b.Ua = -d; b.h = 1; this.qa.push(b); b = new L; c = b.wa; c.x = -1; c.y = 0; b.Ua = -d; b.h = 1; this.qa.push(b); this.Pk(d, e, l); this.he() }, eg: function (a, b, c, d, e, f, g) { null == g && (g = 32); null == f && (f = 1); var k = new B, l = k.a; l.x = a + 8 * b; l.y = -c; var l = new B, h = l.a; h.x = a + 8 * b; h.y = c; var m = new B, h = m.a; h.x = k.a.x + 22 * b; h.y = k.a.y + 22; var n = new B, h = n.a; h.x = l.a.x + 22 * b; h.y = l.a.y - 22; h = new E; h.W = k; h.ca = m; h.Oc(90 * b); var p = new E; p.W = n; p.ca = m; var q = new E; q.W = n; q.ca = l; q.Oc(90 * b); b = this.J.length; this.J.push(k); this.J.push(l); this.J.push(m); this.J.push(n); k = b; for (b = this.J.length; k < b;) l = k++, this.J[l].h = f, this.J[l].v = g, this.J[l].m = .1; b = this.U.length; this.U.push(h); this.U.push(p); this.U.push(q); k = b; for (b = this.U.length; k < b;) l = k++, this.U[l].h = f, this.U[l].v = g, this.U[l].m = .1; f = new ua; g = f.a; g.x = a; g.y = -c; f.aa = 0; f.Z = 8; f.R = d; this.F.push(f); f = new ua; g = f.a; g.x = a; g.y = c; f.aa = 0; f.Z = 8; f.R = d; this.F.push(f); d = new sb; f = d.W; f.x = a; f.y = -c; f = d.ca; f.x = a; f.y = c; d.qe = e; this.tc.push(d) }, Rk: function (a, b) { var c = new B, d = c.a; d.x = 0; d.y = -b; c.m = .1; c.v = 24; c.h = 6; var d = new B, e = d.a; e.x = 0; e.y = -a; d.m = .1; d.v = 24; d.h = 6; var e = new B, f = e.a; f.x = 0; f.y = a; e.m = .1; e.v = 24; e.h = 6; var f = new B, g = f.a; g.x = 0; g.y = b; f.m = .1; f.v = 24; f.h = 6; g = new E; g.W = c; g.ca = d; g.v = 24; g.h = 6; g.Za = !1; g.m = .1; var k = new E; k.W = e; k.ca = f; k.v = 24; k.h = 6; k.Za = !1; k.m = .1; var l = new E; l.W = d; l.ca = e; l.v = 8; l.h = 6; l.Za = !1; l.Oc(180); l.m = .1; var h = new E; h.W = e; h.ca = d; h.v = 16; h.h = 6; h.Za = !1; h.Oc(180); h.m = .1; this.J.push(c); this.J.push(d); this.J.push(e); this.J.push(f); this.U.push(g); this.U.push(k); this.U.push(l); this.U.push(h) }, Pk: function (a, b, c) { if (!(0 >= c)) { var d = new B, e = d.a; e.x = -a + c; e.y = -b; d.h = 0; var e = new B, f = e.a; f.x = -a; f.y = -b + c; e.h = 0; var f = new B, g = f.a; g.x = -a + c; g.y = b; f.h = 0; var g = new B, k = g.a; k.x = -a; k.y = b - c; g.h = 0; var k = new B, l = k.a; l.x = a - c; l.y = b; k.h = 0; var l = new B, h = l.a; h.x = a; h.y = b - c; l.h = 0; var h = new B, m = h.a; m.x = a - c; m.y = -b; h.h = 0; var m = new B, n = m.a; n.x = a; n.y = -b + c; m.h = 0; a = new E; a.W = d; a.ca = e; a.h = 1; a.Za = !1; a.m = 1; a.Oc(-90); b = new E; b.W = f; b.ca = g; b.h = 1; b.Za = !1; b.m = 1; b.Oc(90); c = new E; c.W = k; c.ca = l; c.h = 1; c.Za = !1; c.m = 1; c.Oc(-90); n = new E; n.W = h; n.ca = m; n.h = 1; n.Za = !1; n.m = 1; n.Oc(90); this.J.push(d); this.J.push(e); this.J.push(f); this.J.push(g); this.J.push(k); this.J.push(l); this.J.push(h); this.J.push(m); this.U.push(a); this.U.push(b); this.U.push(c); this.U.push(n) } }, f: h }; ka.b = !0; ka.prototype = { ga: function (a) { a.l(this.hd); a.O(this.ed); a.l(this.fb.length); for (var b = 0, c = this.fb; b < c.length;) a.O(c[b++]) }, ja: function (a) { this.hd = a.B(); this.ed = a.M(); var b = a.B(); if (3 < b) throw new q("too many"); this.fb = []; for (var c = 0; c < b;) ++c, this.fb.push(a.M()) }, f: ka }; p.b = !0; p.prototype = { f: p }; fa.b = !0; fa.Rd = [Ta, cc]; fa.qd = function (a, b) { a.jc = b.jc; if (null == b.I) a.I = null; else { null == a.I && (a.I = []); for (var c = a.I, d = b.I, e = d.length; c.length > e;) c.pop(); for (var e = 0, f = d.length; e < f;) { var g = e++; c[g] = d[g].hs() } } a.K = null == b.K ? null : b.K.sc(); a.Pc = b.Pc; a.ib = b.ib; a.Da = b.Da; a.ce = b.ce; a.Zc = b.Zc; a.yd = b.yd; a.S = b.S; a.kb = b.kb }; fa.prototype = { yr: function (a) { if (null == this.K) { this.K = new O; for (var b = 0, c = this.I; b < c.length;) { var d = c[b]; ++b; d.H = null; d.Jb = 0 } this.K.Wo(this); null != this.Ki && this.Ki(a) } }, Mf: function (a, b, c) { if (b.ea != c) { b.ea = c; D.remove(this.I, b); this.I.push(b); if (null != this.K) { null != b.H && (D.remove(this.K.ta.F, b.H), b.H = null); this.K.Ck(b); for (var d = 0, e = !1; !e;) { ++d; for (var e = !0, f = 0, g = this.I; f < g.length;) { var k = g[f]; ++f; if (k != b && k.ea == b.ea && k.Jb == d) { e = !1; break } } } b.Jb = d } Cb.i(this.xl, a, b, c) } }, na: function (a) { for (var b = 0, c = this.I; b < c.length;) { var d = c[b]; ++b; if (d.V == a) return d } return null }, C: function (a) { null != this.K && this.K.C(a) }, ga: function (a) { a.Db(this.jc); a.l(this.Pc ? 1 : 0); a.O(this.ib); a.O(this.Da); a.Xi(this.ce); a.l(this.Zc); a.l(this.yd); this.S.ga(a); a.l(null != this.K ? 1 : 0); null != this.K && this.K.ga(a); a.l(this.I.length); for (var b = 0, c = this.I; b < c.length;) c[b++].ua(a); this.kb[1].ga(a); this.kb[2].ga(a) }, ja: function (a) { this.jc = a.zb(); this.Pc = 0 != a.B(); this.ib = a.M(); this.Da = a.M(); this.ce = a.ni(); this.Zc = a.B(); this.yd = a.B(); this.S = h.ja(a); var b = 0 != a.B(); this.K = null; b && (this.K = new O, this.K.ja(a, this)); for (var b = null == this.K ? null : this.K.ta.F, c = a.B(), d = this.I; d.length > c;) d.pop(); for (d = 0; d < c;) { var e = new ea; e.va(a, b); this.I[d++] = e } this.kb[1].ja(a); this.kb[2].ja(a) }, uk: function () { var a = 0, b = w.ha(); this.ga(b); for (b = b.Gr(); 4 <= b.o.byteLength - b.a;) a ^= b.M(); return a }, Ao: function () { var a = w.ha(4); a.O(this.uk()); return a.Kg() }, Sn: function (a) { a = (new F(new DataView(a))).M(); y.i(this.ko, this.uk() != a) }, km: function (a) { this.Ol = a }, Lb: function (a) { if (0 == a) return !0; a = this.na(a); return null != a && a.cb ? !0 : !1 }, mr: function (a, b, c, d) { this.yd = 0 > b ? 0 : 255 < b ? 255 : b; this.Zc = 0 > c ? 0 : 255 < c ? 255 : c; d = 0 > d ? 0 : 100 < d ? 100 : d; this.ce = this.Zc * d; vb.i(this.Hk, a, this.yd, this.Zc, d) }, sc: function () { var a = ya.zc, b = this.gc; this.hc != a && (null == b && (this.gc = b = new fa), this.hc = a, fa.qd(b, this)); return b }, f: fa }; ea.b = !0; ea.Rd = [Ta]; ea.$r = function (a, b) { a.cb = b.cb; a.Jb = b.Jb; a.Xb = b.Xb; a.Jd = b.Jd; a.Ld = b.Ld; a.Kd = b.Kd; a.Ug = b.Ug; a.yb = b.yb; a.w = b.w; a.ob = b.ob; a.V = b.V; a.Wb = b.Wb; a.yc = b.yc; a.Sc = b.Sc; a.H = null == b.H ? null : b.H.sc(); a.ea = b.ea }; ea.prototype = { ua: function (a) { a.l(this.cb ? 1 : 0); a.O(this.Jb); a.Db(this.Xb); a.Db(this.Jd); a.l(this.Ld ? 1 : 0); a.Db(this.Kd); a.O(this.Ug); a.Db(this.w); a.O(this.ob); a.lb(this.V); a.l(this.Wb ? 1 : 0); a.Xi(this.yc); a.l(this.Sc); a.l(this.ea.$); a.Xi(null == this.H ? -1 : this.H.jl) }, va: function (a, b) { this.cb = 0 != a.B(); this.Jb = a.M(); this.Xb = a.zb(); this.Jd = a.zb(); this.Ld = 0 != a.B(); this.Kd = a.zb(); this.Ug = a.M(); this.w = a.zb(); this.ob = a.M(); this.V = a.Ab(); this.Wb = 0 != a.B(); this.yc = a.ni(); this.Sc = a.B(); var c = a.lf(); this.ea = 1 == c ? p.fa : 2 == c ? p.xa : p.Ia; c = a.ni(); this.H = 0 > c ? null : b[c] }, hs: function () { var a = ya.zc, b = this.an; this.zc != a && (null == b && (this.an = b = new ea), this.zc = a, ea.$r(b, this)); return b }, f: ea }; ta.b = !0; ta.la = function (a) { var b = new ta; b.Yg = a; return b }; ta.ma = m; ta.prototype = C(m.prototype, { apply: function (a) { var b = a.na(this.P); null != b && this.Yg != b.Ld && (b.Ld = this.Yg, y.i(a.sl, b)) }, ua: function (a) { a.l(this.Yg ? 1 : 0) }, va: function (a) { this.Yg = 0 != a.B() }, f: ta }); rb.b = !0; rb.ma = m; rb.prototype = C(m.prototype, { apply: function (a) { 0 == this.P && vb.i(a.Vl, this.Tc, this.color, this.style, this.fn) }, ua: function (a) { a.mc(U.Qc(this.Tc, 1E3)); a.O(this.color); a.l(this.style); a.l(this.fn) }, va: function (a) { this.Tc = a.ic(); if (1E3 < this.Tc.length) throw new q("message too long"); this.color = a.M(); this.style = a.B(); this.fn = a.B() }, f: rb }); Qa.b = !0; Qa.ma = m; Qa.prototype = C(m.prototype, { apply: function (a) { if (a.Lb(this.P, 1)) { for (var b = a.na(this.P), c = a.I, d = [], e = 0, f = 0, g = 0; g < c.length;) { var k = c[g]; ++g; k.ea == p.Ia && d.push(k); k.ea == p.fa ? ++e : k.ea == p.xa && ++f } c = d.length; 0 != c && (f == e ? 2 > c || (a.Mf(b, d[0], p.fa), a.Mf(b, d[1], p.xa)) : a.Mf(b, d[0], f > e ? p.fa : p.xa)) } }, ua: function () {}, va: function () {}, f: Qa }); da.b = !0; da.la = function (a, b) { var c = new da; c.rj = a; c.newValue = b; return c }; da.ma = m; da.prototype = C(m.prototype, { apply: function (a) { if (a.Lb(this.P, 2) && null == a.K) switch (this.rj) { case 0: var b = this.newValue; a.ib = 0 > b ? 0 : 99 < b ? 99 : b; break; case 1: b = this.newValue, a.Da = 0 > b ? 0 : 99 < b ? 99 : b } }, ua: function (a) { a.O(this.rj); a.O(this.newValue) }, va: function (a) { this.rj = a.M(); this.newValue = a.M() }, f: da }); sa.b = !0; sa.la = function (a, b) { var c = new sa; c.Md = a; c.Xg = b; return c }; sa.ma = m; sa.prototype = C(m.prototype, { apply: function (a) { if (a.Lb(this.P, 4)) { var b = a.na(this.P), c = a.na(this.Md); null != c && 0 != c.V && c.cb != this.Xg && (c.cb = this.Xg, null != a.ii && a.ii(b, c)) } }, ua: function (a) { a.O(this.Md); a.l(this.Xg ? 1 : 0) }, va: function (a) { this.Md = a.M(); this.Xg = 0 != a.B() }, f: sa }); ra.b = !0; ra.la = function (a) { var b = new ra; b.Zb = a; return b }; ra.ma = m; ra.prototype = C(m.prototype, { apply: function (a) { a = a.na(this.P); null != a && (a.Xb = this.Zb) }, ua: function (a) { a.Db(this.Zb) }, va: function (a) { this.Zb = a.zb(); null != this.Zb && (this.Zb = U.Qc(this.Zb, 2)) }, f: ra }); S.b = !0; S.la = function (a, b) { var c = new S; c.Md = a; c.jj = b; return c }; S.ma = m; S.prototype = C(m.prototype, { apply: function (a) { var b = a.na(this.Md); if (null != b) { var c = a.na(this.P), d = a.Lb(this.P, 1); (d = d || b == c && !a.Pc && null == a.K) && a.Mf(c, b, this.jj) } }, ua: function (a) { a.O(this.Md); a.l(this.jj.$) }, va: function (a) { this.Md = a.M(); a = a.lf(); this.jj = 1 == a ? p.fa : 2 == a ? p.xa : p.Ia }, f: S }); qa.b = !0; qa.la = function (a) { var b = new qa; b.Pd = a; return b }; qa.ma = m; qa.prototype = C(m.prototype, { apply: function (a) { if (a.Lb(this.P, 8)) { var b = a.na(this.P); null == a.K && (a.S = this.Pd, null != a.Ii && a.Ii(b, this.Pd)) } }, ua: function (a) { var b = w.ha(); this.Pd.ga(b); b = pako.deflateRaw(b.Sb()); a.Ub(b.byteLength); a.Vb(b) }, va: function (a) { a = pako.inflateRaw(a.sb(a.Ob())); this.Pd = h.ja(new F(new DataView(a.buffer, a.byteOffset, a.byteLength))) }, f: qa }); Pa.b = !0; Pa.ma = m; Pa.prototype = C(m.prototype, { apply: function (a) { a.Lb(this.P, 2) && this.ea != p.Ia && (a.kb[this.ea.$] = this.Sg) }, ua: function (a) { a.l(this.ea.$); this.Sg.ga(a) }, va: function (a) { var b = a.lf(); this.ea = 1 == b ? p.fa : 2 == b ? p.xa : p.Ia; this.Sg = new ka; this.Sg.ja(a) }, f: Pa }); pa.b = !0; pa.la = function (a) { var b = new pa; b.newValue = a; return b }; pa.ma = m; pa.prototype = C(m.prototype, { apply: function (a) { a.Lb(this.P, 2) && (a.Pc = this.newValue) }, ua: function (a) { a.l(this.newValue ? 1 : 0) }, va: function (a) { this.newValue = 0 != a.B() }, f: pa }); oa.b = !0; oa.la = function (a, b, c, d) { var e = new oa; e.V = a; e.name = b; e.cj = c; e.Xb = d; return e }; oa.ma = m; oa.prototype = C(m.prototype, { apply: function (a) { if (0 == this.P) { var b = new ea; b.V = this.V; b.w = this.name; b.Kd = this.cj; b.Xb = this.Xb; a.I.push(b); a = a.tl; null != a && a(b) } }, ua: function (a) { a.O(this.V); a.Db(this.name); a.Db(this.cj); a.Db(this.Xb) }, va: function (a) { this.V = a.M(); this.name = a.zb(); this.cj = a.zb(); this.Xb = a.zb() }, f: oa }); qb.b = !0; qb.ma = m; qb.prototype = C(m.prototype, { apply: function (a) { a = a.na(this.ze); null != a && 0 == this.P && (a.Jd = this.Zb) }, ua: function (a) { a.Db(this.Zb); a.O(this.ze) }, va: function (a) { this.Zb = a.zb(); this.ze = a.M(); null != this.Zb && (this.Zb = U.Qc(this.Zb, 2)) }, f: qb }); Oa.b = !0; Oa.ma = m; Oa.prototype = C(m.prototype, { apply: function (a) { var b = a.K; if (null != b && a.Lb(this.P, 16)) { var c = a.na(this.P), d = 120 == b.Oa, e = 0 < b.Oa; this.Bf ? b.Oa = 120 : 120 == b.Oa && (b.Oa = 119); d != this.Bf && Cb.i(a.ml, c, this.Bf, e) } }, ua: function (a) { a.l(this.Bf ? 1 : 0) }, va: function (a) { this.Bf = 0 != a.B() }, f: Oa }); Na.b = !0; Na.ma = m; Na.prototype = C(m.prototype, { $m: function (a) { if (null != a.hq) { var b = a.na(this.P); return null == b ? !1 : a.hq(b, this.Tc) } return !0 }, apply: function (a) { var b = a.na(this.P); null != b && ia.i(a.rl, b, this.Tc) }, ua: function (a) { a.mc(U.Qc(this.Tc, 140)) }, va: function (a) { this.Tc = a.ic(); if (140 < this.Tc.length) throw new q("message too long"); }, f: Na }); Ga.b = !0; Ga.ma = m; Ga.prototype = C(m.prototype, { apply: function (a) { var b = a.na(this.P); if (null != b) { var c = this.input; 0 == (b.ob & 16) && 0 != (c & 16) && (b.Wb = !0); b.ob = c; null != a.iq && a.iq(b) } }, ua: function (a) { a.tb(this.input) }, va: function (a) { this.input = a.hb() }, f: Ga }); na.b = !0; na.la = function (a) { var b = new na; b.sj = a; return b }; na.ma = m; na.prototype = C(m.prototype, { apply: function (a) { var b = a.na(this.P); null != b && ia.i(a.wl, b, this.sj) }, ua: function (a) { a.l(this.sj) }, va: function (a) { this.sj = a.B() }, f: na }); kc.b = !0; kc.fj = function () { m.Ha(rb); m.Ha(na); m.Ha(Ua); m.Ha(Ga); m.Ha(Na); m.Ha(oa); m.Ha(Y); m.Ha(Ma); m.Ha(La); m.Ha(Oa); m.Ha(da); m.Ha(qa); m.Ha(S); m.Ha(pa); m.Ha(sa); m.Ha(Qa); m.Ha(ta); m.Ha(la); m.Ha(ra); m.Ha(Pa); m.Ha(pb); m.Ha(ma); m.Ha(qb); m.Ha(ob) }; Y.b = !0; Y.la = function (a, b, c) { var d = new Y; d.V = a; d.fd = b; d.Qg = c; return d }; Y.ma = m; Y.prototype = C(m.prototype, { apply: function (a) { if (0 != this.V && a.Lb(this.P, 128)) { var b = a.na(this.V); if (null != b) { var c = a.na(this.P); D.remove(a.I, b); null != a.K && D.remove(a.K.ta.F, b.H); vb.i(a.ul, b, this.fd, this.Qg, c) } } }, ua: function (a) { null != this.fd && (this.fd = U.Qc(this.fd, 100)); a.O(this.V); a.Db(this.fd); a.l(this.Qg ? 1 : 0) }, va: function (a) { this.V = a.M(); this.fd = a.zb(); this.Qg = 0 != a.B(); if (null != this.fd && 100 < this.fd.length) throw new q("string too long"); }, f: Y }); pb.b = !0; pb.ma = m; pb.prototype = C(m.prototype, { apply: function (a) { if (0 == this.P) { for (var b = new Map, c = 0, d = a.I; c < d.length;) { var e = d[c]; ++c; b.set(e.V, e) } c = []; d = 0; for (e = this.Zg; d < e.length;) { var f = e[d]; ++d; var g = b.get(f); null != g && (b["delete"](f), c.push(g)) } d = []; b = b.values(); for (e = b.next(); !e.done;) f = e.value, e = b.next(), d.push(f); a.I = this.Zm ? c.concat(d) : d.concat(c) } }, ua: function (a) { a.l(this.Zm ? 1 : 0); a.l(this.Zg.length); for (var b = 0, c = this.Zg; b < c.length;) a.O(c[b++]) }, va: function (a) { this.Zm = 0 != a.B(); var b = a.B(); this.Zg = []; for (var c = 0; c < b;) ++c, this.Zg.push(a.M()) }, f: pb }); ob.b = !0; ob.ma = m; ob.prototype = C(m.prototype, { apply: function (a) { if (0 == this.P) { var b = a.K; if (null != b) { if (this.Sm) { a = a.na(this.ze); if (null == a) return; a = a.H } else a = b.ta.F[this.ze]; null != a && (null != this.Ka[0] && (a.a.x = this.Ka[0]), null != this.Ka[1] && (a.a.y = this.Ka[1]), null != this.Ka[2] && (a.D.x = this.Ka[2]), null != this.Ka[3] && (a.D.y = this.Ka[3]), null != this.Ka[4] && (a.oa.x = this.Ka[4]), null != this.Ka[5] && (a.oa.y = this.Ka[5]), null != this.Ka[6] && (a.Z = this.Ka[6]), null != this.Ka[7] && (a.m = this.Ka[7]), null != this.Ka[8] && (a.aa = this.Ka[8]), null != this.Ka[9] && (a.Ca = this.Ka[9]), null != this.Rc[0] && (a.R = this.Rc[0]), null != this.Rc[1] && (a.h = this.Rc[1]), null != this.Rc[2] && (a.v = this.Rc[2])) } } }, ua: function (a) { a.O(this.ze); a.l(this.Sm ? 1 : 0); var b = a.a; a.Ub(0); for (var c = 0, d = 1, e = 0, f = this.Ka; e < f.length;) { var g = f[e]; ++e; null != g && (c |= d, a.Wi(g)); d <<= 1 } e = 0; for (f = this.Rc; e < f.length;) g = f[e], ++e, null != g && (c |= d, a.O(g)), d <<= 1; d = a.a; a.a = b; a.Ub(c); a.a = d }, va: function (a) { this.ze = a.M(); this.Sm = 0 != a.B(); var b = a.Ob(); this.Ka = []; for (var c = 0; 10 > c;) { var d = c++; this.Ka[d] = null; 0 != (b & 1) && (this.Ka[d] = a.mi()); b >>>= 1 } this.Rc = []; for (c = 0; 3 > c;) d = c++, this.Rc[d] = null, 0 != (b & 1) && (this.Rc[d] = a.M()), b >>>= 1 }, f: ob }); ma.b = !0; ma.la = function (a, b, c) { var d = new ma; d.min = a; d.nj = b; d.aj = c; return d }; ma.ma = m; ma.prototype = C(m.prototype, { apply: function (a) { a.Lb(this.P, 2) && a.mr(a.na(this.P), this.min, this.nj, this.aj) }, ua: function (a) { a.O(this.min); a.O(this.nj); a.O(this.aj) }, va: function (a) { this.min = a.M(); this.nj = a.M(); this.aj = a.M() }, f: ma }); Ma.b = !0; Ma.ma = m; Ma.prototype = C(m.prototype, { apply: function (a) { a.Lb(this.P, 32) && a.yr(a.na(this.P), 0) }, ua: function () {}, va: function () {}, f: Ma }); La.b = !0; La.ma = m; La.prototype = C(m.prototype, { apply: function (a) { if (a.Lb(this.P, 32)) { var b = a.na(this.P); if (null != a.K) { a.K = null; for (var c = 0, d = a.I; c < d.length;) { var e = d[c]; ++c; e.H = null; e.Jb = 0 } null != a.vf && a.vf(b) } } }, ua: function () {}, va: function () {}, f: La }); la.b = !0; la.la = function (a) { for (var b = new la, c = a.T.I, d = [], e = 0; e < c.length;) { var f = a.Ie.get(c[e++].V); d.push(null == f ? 0 : f.yb) } b.we = d; return b }; la.ma = m; la.prototype = C(m.prototype, { apply: function (a) { if (0 == this.P) { a = a.I; for (var b = 0, c = a.length; b < c;) { var d = b++; if (d >= this.we.length) break; a[d].yb = this.we[d] } } }, ua: function (a) { a.lb(this.we.length); for (var b = 0, c = this.we; b < c.length;) a.lb(c[b++]) }, va: function (a) { this.we = []; for (var b = a.Ab(), c = 0; c < b;) ++c, this.we.push(a.Ab()) }, f: la }); ca.b = !0; ca.Rd = [Ta]; ca.qd = function (a, b) { a.Z = b.Z; a.m = b.m; a.aa = b.aa; a.Ca = b.Ca; a.R = b.R; a.Mj = b.Mj; a.h = b.h; a.v = b.v; var c = a.a, d = b.a; c.x = d.x; c.y = d.y; c = a.D; d = b.D; c.x = d.x; c.y = d.y; c = a.oa; d = b.oa; c.x = d.x; c.y = d.y }; ca.prototype = { ga: function (a) { var b = this.a; a.s(b.x); a.s(b.y); b = this.D; a.s(b.x); a.s(b.y); b = this.oa; a.s(b.x); a.s(b.y); a.s(this.Z); a.s(this.m); a.s(this.aa); a.s(this.Ca); a.tb(this.R); a.O(this.h); a.O(this.v) }, ja: function (a) { var b = this.a; b.x = a.u(); b.y = a.u(); b = this.D; b.x = a.u(); b.y = a.u(); b = this.oa; b.x = a.u(); b.y = a.u(); this.Z = a.u(); this.m = a.u(); this.aa = a.u(); this.Ca = a.u(); this.R = a.hb(); this.h = a.M(); this.v = a.M() }, Pn: function (a) { var b = this.a, c = a.a, d = b.x - c.x, b = b.y - c.y, e = a.Z + this.Z, f = d * d + b * b; if (0 < f && f <= e * e) { var f = Math.sqrt(f), d = d / f, b = b / f, c = this.aa / (this.aa + a.aa), e = e - f, f = e * c, g = this.a, k = this.a; g.x = k.x + d * f; g.y = k.y + b * f; k = g = a.a; e -= f; g.x = k.x - d * e; g.y = k.y - b * e; e = this.D; f = a.D; e = d * (e.x - f.x) + b * (e.y - f.y); 0 > e && (e *= this.m * a.m + 1, c *= e, g = f = this.D, f.x = g.x - d * c, f.y = g.y - b * c, a = f = a.D, c = e - c, f.x = a.x + d * c, f.y = a.y + b * c) } }, Qn: function (a) { var b, c, d; if (0 != 0 * a.vb) { b = a.W.a; var e = a.ca.a; c = e.x - b.x; var f = e.y - b.y, g = this.a; d = g.x - e.x; e = g.y - e.y; g = this.a; if (0 >= (g.x - b.x) * c + (g.y - b.y) * f || 0 <= d * c + e * f) return; c = a.wa; b = c.x; c = c.y; d = b * d + c * e } else { c = a.Xd; d = this.a; b = d.x - c.x; c = d.y - c.y; d = a.Hg; e = a.Ig; if ((0 < d.x * b + d.y * c && 0 < e.x * b + e.y * c) == 0 >= a.vb) return; e = Math.sqrt(b * b + c * c); if (0 == e) return; d = e - a.Yj; b /= e; c /= e } e = a.Cc; if (0 == e) 0 > d && (d = -d, b = -b, c = -c); else if (0 > e && (e = -e, d = -d, b = -b, c = -c), d < -e) return; d >= this.Z || (d = this.Z - d, f = e = this.a, e.x = f.x + b * d, e.y = f.y + c * d, d = this.D, d = b * d.x + c * d.y, 0 > d && (d *= this.m * a.m + 1, e = a = this.D, a.x = e.x - b * d, a.y = e.y - c * d)) }, sc: function () { var a = ya.zc, b = this.gc; this.hc != a && (null == b && (this.gc = b = new ca), this.hc = a, ca.qd(b, this)); return b }, f: ca }; nb.b = !0; nb.Rd = [Ta]; nb.prototype = { ga: function (a) { a.l(this.Yd); a.l(this.Zd); a.s(this.Hb); a.s(this.ec); a.s(this.ne); a.O(this.R) }, ja: function (a) { this.Yd = a.B(); this.Zd = a.B(); this.Hb = a.u(); this.ec = a.u(); this.ne = a.u(); this.R = a.M() }, C: function (a) { var b = a[this.Yd]; a = a[this.Zd]; if (null != b && null != a) { var c = b.a, d = a.a, e = c.x - d.x, c = c.y - d.y, f = Math.sqrt(e * e + c * c); if (!(0 >= f)) { e /= f; c /= f; d = b.aa / (b.aa + a.aa); d != d && (d = .5); var g, k; if (this.Hb >= this.ec) g = this.Hb, k = 0; else if (f <= this.Hb) g = this.Hb, k = 1; else if (f >= this.ec) g = this.ec, k = -1; else return; f = g - f; if (0 == 0 * this.ne) d = this.ne * f * .5, e *= d, c *= d, k = d = b.D, b = b.aa, d.x = k.x + e * b, d.y = k.y + c * b, d = b = a.D, a = a.aa, b.x = d.x + -e * a, b.y = d.y + -c * a; else { g = f * d; var l = b.a, h = b.a; l.x = h.x + e * g * .5; l.y = h.y + c * g * .5; h = l = a.a; f -= g; l.x = h.x - e * f * .5; l.y = h.y - c * f * .5; f = b.D; g = a.D; f = e * (f.x - g.x) + c * (f.y - g.y); 0 >= f * k && (d *= f, b = k = b.D, k.x = b.x - e * d, k.y = b.y - c * d, a = b = a.D, d = f - d, b.x = a.x + e * d, b.y = a.y + c * d) } } } }, f: nb }; Fa.b = !0; Fa.Rd = [Ta]; Fa.qd = function (a, b) { if (null == b.F) a.F = null; else { null == a.F && (a.F = []); for (var c = a.F, d = b.F, e = d.length; c.length > e;) c.pop(); for (var e = 0, f = d.length; e < f;) { var g = e++; c[g] = d[g].sc() } } a.J = b.J; a.U = b.U; a.qa = b.qa; a.pb = b.pb }; Fa.prototype = { ga: function (a) { a.l(this.F.length); for (var b = 0, c = this.F.length; b < c;) { var d = b++, e = this.F[d]; e.jl = d; e.ga(a) } }, ja: function (a) { this.F = []; for (var b = a.B(), c = 0; c < b;) { ++c; var d = new ca; d.ja(a); this.F.push(d) } }, C: function (a) { for (var b = 0, c = this.F; b < c.length;) { var d = c[b]; ++b; var e = d.a, f = d.a, g = d.D; e.x = f.x + g.x * a; e.y = f.y + g.y * a; f = e = d.D; g = d.oa; d = d.Ca; e.x = (f.x + g.x) * d; e.y = (f.y + g.y) * d } a = 0; for (b = this.F.length; a < b;) { d = a++; c = this.F[d]; d += 1; for (e = this.F.length; d < e;) f = this.F[d++], 0 != (f.h & c.v) && 0 != (f.v & c.h) && c.Pn(f); if (0 != c.aa) { d = 0; for (e = this.qa; d < e.length;) if (f = e[d], ++d, 0 != (f.h & c.v) && 0 != (f.v & c.h)) { var g = f.wa, k = c.a, g = f.Ua - (g.x * k.x + g.y * k.y) + c.Z; if (0 < g) { var l = k = c.a, h = f.wa; k.x = l.x + h.x * g; k.y = l.y + h.y * g; g = c.D; k = f.wa; g = g.x * k.x + g.y * k.y; 0 > g && (g *= c.m * f.m + 1, l = k = c.D, f = f.wa, k.x = l.x - f.x * g, k.y = l.y - f.y * g) } } d = 0; for (e = this.U; d < e.length;) f = e[d], ++d, 0 != (f.h & c.v) && 0 != (f.v & c.h) && c.Qn(f); d = 0; for (e = this.J; d < e.length;) if (f = e[d], ++d, 0 != (f.h & c.v) && 0 != (f.v & c.h) && (k = c.a, l = f.a, g = k.x - l.x, k = k.y - l.y, l = g * g + k * k, 0 < l && l <= c.Z * c.Z)) { var l = Math.sqrt(l), g = g / l, k = k / l, l = c.Z - l, m = h = c.a; h.x = m.x + g * l; h.y = m.y + k * l; l = c.D; l = g * l.x + k * l.y; 0 > l && (l *= c.m * f.m + 1, h = f = c.D, f.x = h.x - g * l, f.y = h.y - k * l) } } } for (a = 0; 2 > a;) for (++a, b = 0, c = this.pb; b < c.length;) c[b++].C(this.F) }, sc: function () { var a = ya.zc, b = this.gc; this.hc != a && (null == b && (this.gc = b = new Fa), this.hc = a, Fa.qd(b, this)); return b }, f: Fa }; L.b = !0; L.prototype = { ga: function (a) { var b = this.wa; a.s(b.x); a.s(b.y); a.s(this.Ua); a.s(this.m); a.O(this.h); a.O(this.v) }, ja: function (a) { var b = this.wa; b.x = a.u(); b.y = a.u(); this.Ua = a.u(); this.m = a.u(); this.h = a.M(); this.v = a.M() }, f: L }; E.b = !0; E.prototype = { ga: function (a) { var b = 0, c = a.a; a.l(0); a.l(this.W.ud); a.l(this.ca.ud); 0 != this.Cc && (b = 1, a.s(this.Cc)); this.vb != 1 / 0 && (b |= 2, a.s(this.vb)); 0 != this.R && (b |= 4, a.O(this.R)); this.Za && (b |= 8); a.o.setUint8(c, b); a.s(this.m); a.O(this.h); a.O(this.v) }, ja: function (a, b) { var c = a.B(); this.W = b[a.B()]; this.ca = b[a.B()]; this.Cc = 0 != (c & 1) ? a.u() : 0; this.vb = 0 != (c & 2) ? a.u() : 1 / 0; this.R = 0 != (c & 4) ? a.M() : 0; this.Za = 0 != (c & 8); this.m = a.u(); this.h = a.M(); this.v = a.M() }, Oc: function (a) { a *= .017453292519943295; if (0 > a) { a = -a; var b = this.W; this.W = this.ca; this.ca = b; this.Cc = -this.Cc } a > E.mn && a < E.ln && (this.vb = 1 / Math.tan(a / 2)) }, Co: function () { return 0 != 0 * this.vb ? 0 : 114.59155902616465 * Math.atan(1 / this.vb) }, he: function () { if (0 == 0 * this.vb) { var a = this.ca.a, b = this.W.a, c = .5 * (a.x - b.x), a = .5 * (a.y - b.y), b = this.W.a, d = this.vb; this.Xd = new H(b.x + c + -a * d, b.y + a + c * d); a = this.W.a; b = this.Xd; c = a.x - b.x; a = a.y - b.y; this.Yj = Math.sqrt(c * c + a * a); c = this.W.a; a = this.Xd; this.Hg = new H(-(c.y - a.y), c.x - a.x); c = this.Xd; a = this.ca.a; this.Ig = new H(-(c.y - a.y), c.x - a.x); 0 >= this.vb && (a = c = this.Hg, c.x = -a.x, c.y = -a.y, a = c = this.Ig, c.x = -a.x, c.y = -a.y) } else a = this.W.a, b = this.ca.a, c = a.x - b.x, a = -(a.y - b.y), b = Math.sqrt(a * a + c * c), this.wa = new H(a / b, c / b) }, f: E }; B.b = !0; B.prototype = { ga: function (a) { var b = this.a; a.s(b.x); a.s(b.y); a.s(this.m); a.O(this.h); a.O(this.v) }, ja: function (a) { var b = this.a; b.x = a.u(); b.y = a.u(); this.m = a.u(); this.h = a.M(); this.v = a.M() }, f: B }; N.b = !0; N.lc = function (a) { return "rgba(" + [(a & 16711680) >>> 16, (a & 65280) >>> 8, a & 255].join() + ",255)" }; N.Gi = function (a, b) { a.imageSmoothingEnabled = b; a.mozImageSmoothingEnabled = b }; N.prototype = { Po: function (a, b) { var c = this.dd.get(a.V); if (null != c) switch (b) { case 0: c.Xf = !0; break; case 1: c.Xf = !1 } }, Pr: function () { if (null != this.sa.parentElement) { var a = window.devicePixelRatio * this.zg, b = this.sa.getBoundingClientRect(), c = Math.round(b.width * a), a = Math.round(b.height * a); if (this.sa.width != c || this.sa.height != a) this.sa.width = c, this.sa.height = a } }, Kc: function (a, b) { var c = window.performance.now(), d = (c - this.$c) / 1E3; this.$c = c; this.Jg.clear(); this.Pr(); N.Gi(this.c, !0); this.c.resetTransform(); if (null != a.K) { var c = a.K, e = c.ta, f = a.na(b), g = null != f ? f.H : null, k = 0 != this.jf ? this.sa.height / this.jf : this.kf * window.devicePixelRatio * this.zg, h = this.xf * this.zg, m = c.S.Ye, n = this.sa.width / k; 0 < m && n > m && (n = m, k = this.sa.width / m); m = (this.sa.height - h) / k; this.Mr(c, g, n, m, d); for (var p = 0, q = a.I; p < q.length;) { var r = q[p]; ++p; if (null != r.H) { var u = this.dd.get(r.V); null == u && (u = new Ea, this.dd.set(r.V, u)); u.C(r, a); this.Jg.set(r.H, u) } } this.c.translate(this.sa.width / 2, (this.sa.height + h) / 2); this.c.scale(k, k); this.c.translate(-this.Ya.x, -this.Ya.y); this.c.lineWidth = 3; this.Sq(c.S); this.Rq(c.S); k = e.F; h = 0; for (p = e.pb; h < p.length;) this.Mq(p[h++], k); this.Lq(a, n, m); this.Nq(a, f); null != g && this.Pq(g.a); this.c.lineWidth = 2; f = 0; for (g = a.I; f < g.length;) n = g[f], ++f, m = n.H, null != m && this.Ll(m, this.dd.get(n.V)); f = 0; for (e = e.F; f < e.length;) g = e[f], ++f, null == this.Jg.get(g) && this.Ll(g, null); this.c.lineWidth = 3; this.c.resetTransform(); this.c.translate(this.sa.width / 2, this.sa.height / 2); this.Oq(c); 0 >= c.Oa && (this.td.C(d), this.td.Kc(this.c)); this.Jg.clear(); this.Kq(a) } }, Kq: function (a) { var b = new Set, c = 0; for (a = a.I; c < a.length;) b.add(a[c++].V); c = this.dd.keys(); for (a = c.next(); !a.done;) { var d = a.value; a = c.next(); if (!b.has(d)) this.dd["delete"](d) } }, Mr: function (a, b, c, d, e) { var f, g; if (null != b && 1 == a.S.Ge) g = b.a, f = g.x, g = g.y; else if (g = a.ta.F[0].a, f = g.x, g = g.y, null != b) { var k = b.a; f = .5 * (f + k.x); g = .5 * (g + k.y); var h = .5 * c, m = .5 * d; b = k.x - h + 50; var n = k.y - m + 50, h = k.x + h - 50, k = k.y + m - 50; f = f > h ? h : f < b ? b : f; g = g > k ? k : g < n ? n : g } n = 60 * e; 1 < n && (n = 1); b = e = this.Ya; n *= .04; h = b.x; b = b.y; e.x = h + (f - h) * n; e.y = b + (g - b) * n; this.Xn(c, d, a.S) }, Xn: function (a, b, c) { a > 2 * c.$b ? this.Ya.x = 0 : this.Ya.x + .5 * a > c.$b ? this.Ya.x = c.$b - .5 * a : this.Ya.x - .5 * a < -c.$b && (this.Ya.x = -c.$b + .5 * a); b > 2 * c.qc ? this.Ya.y = 0 : this.Ya.y + .5 * b > c.qc ? this.Ya.y = c.qc - .5 * b : this.Ya.y - .5 * b < -c.qc && (this.Ya.y = -c.qc + .5 * b) }, Pq: function (a) { this.c.beginPath(); this.c.strokeStyle = "white"; this.c.globalAlpha = .3; this.c.arc(a.x, a.y, 25, 0, 2 * Math.PI, !1); this.c.stroke(); this.c.globalAlpha = 1 }, Oq: function (a) { var b = 0 < a.Oa; this.lr(b); b && (120 != a.Oa && (a = a.Oa / 120 * 200, this.c.fillStyle = "white", this.c.fillRect(.5 * -a, 100, a, 20)), this.td.eq.Tq(this.c)) }, lr: function (a) { this.Dk != a && (this.sa.style.filter = a ? "grayscale(70%)" : "", this.Dk = a) }, Wl: function (a, b, c, d, e, f) { d = b + d; e = c + e; a.beginPath(); a.moveTo(d - f, c); a.arcTo(d, c, d, c + f, f); a.lineTo(d, e - f); a.arcTo(d, e, d - f, e, f); a.lineTo(b + f, e); a.arcTo(b, e, b, e - f, f); a.lineTo(b, c + f); a.arcTo(b, c, b + f, c, f); a.closePath() }, Sq: function (a) { var b = this; N.Gi(this.c, !1); var c = a.Td, d = a.Sd; if (1 == a.ld) this.c.save(), this.c.resetTransform(), this.c.fillStyle = N.lc(a.jd), this.c.fillRect(0, 0, this.sa.width, this.sa.height), this.c.restore(), this.c.strokeStyle = "#C7E6BD", this.c.fillStyle = this.Lo, this.Wl(this.c, -c, -d, 2 * c, 2 * d, a.Uc), this.c.save(), this.c.scale(2, 2), this.c.fill(), this.c.restore(), this.c.moveTo(0, -d), this.c.lineTo(0, d), this.c.stroke(), this.c.beginPath(), this.c.arc(0, 0, a.kd, 0, 2 * Math.PI), this.c.stroke(); else if (2 == a.ld) { this.c.strokeStyle = "#E9CC6E"; this.c.save(); this.c.beginPath(); this.c.rect(this.Ya.x - 1E4, this.Ya.y - 1E4, 2E4, 2E4); this.c.scale(2, 2); this.c.fillStyle = this.Un; this.c.fill(); this.c.restore(); this.c.save(); this.Wl(this.c, -c, -d, 2 * c, 2 * d, a.Uc); this.c.scale(2, 2); this.c.fillStyle = this.Wn; this.c.fill(); this.c.restore(); this.c.stroke(); this.c.beginPath(); this.c.moveTo(0, -d); this.c.setLineDash([15, 15]); this.c.lineTo(0, d); this.c.stroke(); this.c.setLineDash([]); var e = a.Fe, c = c - e; e < a.Uc && (c = 0); e = function (c, e, h) { b.c.beginPath(); b.c.strokeStyle = c; b.c.arc(0, 0, a.kd, -1.5707963267948966, 1.5707963267948966, h); 0 != e && (b.c.moveTo(e, -d), b.c.lineTo(e, d)); b.c.stroke() }; e("#85ACF3", c, !1); e("#E18977", -c, !0) } else this.c.save(), this.c.resetTransform(), this.c.fillStyle = N.lc(a.jd), this.c.fillRect(0, 0, this.sa.width, this.sa.height), this.c.restore(); N.Gi(this.c, !0) }, Nq: function (a, b) { for (var c = n.A.Ak.L(), d = 0, e = a.I; d < e.length;) { var f = e[d]; ++d; var g = f.H; if (null != g) { var g = g.a, h = this.dd.get(f.V); c && h.Xf && this.c.drawImage(n.Dm, g.x - .5 * n.Dm.width, g.y - 35); f != b && h.so(this.c, g.x, g.y + 50) } } }, Ll: function (a, b) { this.c.beginPath(); null == b ? (this.c.fillStyle = N.lc(a.R), this.c.strokeStyle = "black") : (this.c.fillStyle = b.Ij, this.c.strokeStyle = b.lo); this.c.beginPath(); this.c.arc(a.a.x, a.a.y, a.Z, 0, 2 * Math.PI, !1); if (null != b) { this.c.save(); var c = a.Z / 32; this.c.translate(a.a.x, a.a.y); this.c.scale(c, c); this.c.translate(-32, -32); this.c.fill(); this.c.restore() } else -1 != (a.R | 0) && this.c.fill(); this.c.stroke() }, Rq: function (a) { if (null != a) { var b = 0; for (a = a.U; b < a.length;) this.Qq(a[b++]) } }, Mq: function (a, b) { if (!(0 > a.R)) { this.c.beginPath(); this.c.strokeStyle = N.lc(a.R); var c = b[a.Yd], d = b[a.Zd]; null != c && null != d && (c = c.a, d = d.a, this.c.moveTo(c.x, c.y), this.c.lineTo(d.x, d.y), this.c.stroke()) } }, Qq: function (a) { if (a.Za) { this.c.beginPath(); this.c.strokeStyle = N.lc(a.R); var b = a.W.a, c = a.ca.a; if (0 != 0 * a.vb) this.c.moveTo(b.x, b.y), this.c.lineTo(c.x, c.y); else { a = a.Xd; var d = b.x - a.x, b = b.y - a.y; this.c.arc(a.x, a.y, Math.sqrt(d * d + b * b), Math.atan2(b, d), Math.atan2(c.y - a.y, c.x - a.x)) } this.c.stroke() } }, Lq: function (a, b, c) { var d = a.K; if (null != d) for (d = d.ta.F[0], this.nk(d.a, d.R, b, c), d = 0, a = a.I; d < a.length;) { var e = a[d]; ++d; null != e.H && this.nk(e.H.a, e.ea.R, b, c) } }, nk: function (a, b, c, d) { c = .5 * c - 25; d = .5 * d - 25; var e = this.Ya, f = a.x - e.x, e = a.y - e.y, g = -c, h = -d, l = this.Ya; c = l.x + (f > c ? c : f < g ? g : f); d = l.y + (e > d ? d : e < h ? h : e); f = a.x - c; a = a.y - d; 900 < f * f + a * a && (this.c.fillStyle = "rgba(0,0,0,0.5)", this.pk(c + 2, d + 2, Math.atan2(a, f)), this.c.fillStyle = N.lc(b), this.pk(c - 2, d - 2, Math.atan2(a, f))) }, pk: function (a, b, c) { this.c.save(); this.c.translate(a, b); this.c.rotate(c); this.c.beginPath(); this.c.moveTo(15, 0); this.c.lineTo(0, 7); this.c.lineTo(0, -7); this.c.closePath(); this.c.fill(); this.c.restore() }, Xq: function () { for (var a = this.dd.values(), b = a.next(); !b.done;) { var c = b.value, b = a.next(); c.Xf = !1 } }, f: N }; R.b = !0; R.prototype = { zo: function () { return 2.31 + .1155 * (this.We.length - 1) }, Kc: function (a, b) { var c = b / 2.31, d = 0; a.imageSmoothingEnabled = !0; for (var e = 0, f = this.We; e < f.length;) { var g = f[e]; ++e; var h = c - .05 * d, l = 180 * R.kn.eval(h) * (0 != (d & 1) ? -1 : 1); a.globalAlpha = R.jn.eval(h); a.drawImage(g, l - .5 * g.width, 35 * -(this.We.length - 1) + 70 * d - .5 * g.height); a.globalAlpha = 1; ++d } a.imageSmoothingEnabled = !1 }, Tq: function (a) { var b = 0; a.imageSmoothingEnabled = !0; for (var c = 0, d = this.We; c < d.length;) { var e = d[c]; ++c; a.drawImage(e, .5 * -e.width, 35 * -(this.We.length - 1) + 70 * b - .5 * e.height); ++b } a.imageSmoothingEnabled = !1 }, lc: function (a) { return "rgba(" + [(a & 16711680) >>> 16, (a & 65280) >>> 8, a & 255].join() + ",255)" }, sp: function (a, b) { var c = window.document.createElement("canvas"), d = c.getContext("2d", null); d.font = "900 70px Arial Black,Arial Bold,Gadget,sans-serif"; c.width = Math.ceil(d.measureText(a).width) + 7; c.height = 90; d.font = "900 70px Arial Black,Arial Bold,Gadget,sans-serif"; d.textAlign = "left"; d.textBaseline = "middle"; d.fillStyle = "black"; d.fillText(a, 7, 52); d.fillStyle = this.lc(b); d.fillText(a, 0, 45); return c }, f: R }; Sb.b = !0; Sb.prototype = { Pa: function (a) { this.ab.push(a) }, Nn: function () { this.ab = []; this.xc = 0 }, C: function (a) { 0 < this.ab.length && (this.xc += a, this.xc > this.ab[0].zo() && (this.xc = 0, this.ab.shift())) }, Kc: function (a) { 0 < this.ab.length && this.ab[0].Kc(a, this.xc) }, f: Sb }; Ea.b = !0; Ea.Ln = function (a, b) { if (a.hd != b.hd || a.ed != b.ed) return !1; var c = a.fb, d = b.fb; if (c.length != d.length) return !1; for (var e = 0, f = c.length; e < f;) { var g = e++; if (c[g] != d[g]) return !1 } return !0 }; Ea.ao = function (a, b) { a.hd = b.hd; a.ed = b.ed; a.fb = b.fb.slice(0) }; Ea.prototype = { fo: function () { var a = window.document.createElement("canvas"); a.width = 160; a.height = 34; this.vl = a.getContext("2d", null) }, Or: function () { var a = this.vl; a.resetTransform(); a.clearRect(0, 0, 160, 34); a.font = "26px sans-serif"; a.fillStyle = "white"; 160 < a.measureText(this.w).width ? (a.textAlign = "left", a.translate(2, 29)) : (a.textAlign = "center", a.translate(80, 29)); a.fillText(this.w, 0, 0) }, so: function (a, b, c) { a.drawImage(this.vl.canvas, 0, 0, 160, 34, b - 40, c - 34, 80, 17) }, C: function (a, b) { if (null != a.H) { var c = n.A.xm.L() ? b.kb[a.ea.$] : a.ea.wm, d = null != a.Jd ? a.Jd : a.Xb, e = n.A.lm.L() && null != d; if (!Ea.Ln(this.kb, c) || !e && a.Jb != this.uh || e && this.Jf != d) Ea.ao(this.kb, c), e ? (this.Jf = d, this.uh = -1) : (this.Jf = "" + a.Jb, this.uh = a.Jb), this.Hq(this.Jf) } this.lo = 0 < b.K.Oa || !a.Wb ? "black" : a.Wb && 0 >= a.Sc && 0 <= a.yc ? "white" : "black"; a.w != this.w && (this.w = a.w, this.Or()) }, Hq: function (a) { var b = this.kb.fb; if (!(1 > b.length)) { this.rb.save(); this.rb.translate(32, 32); this.rb.rotate(3.141592653589793 * this.kb.hd / 128); for (var c = -32, d = 64 / b.length, e = 0; e < b.length;) this.rb.fillStyle = N.lc(b[e++]), this.rb.fillRect(c, -32, d + 4, 64), c += d; this.rb.restore(); this.rb.fillStyle = N.lc(this.kb.ed); this.rb.textAlign = "center"; this.rb.textBaseline = "alphabetic"; this.rb.font = "900 34px 'Arial Black','Arial Bold',Gadget,sans-serif"; this.rb.fillText(a, 32, 44); this.Ij = this.rb.createPattern(this.rb.canvas, "no-repeat") } }, f: Ea }; mb.b = !0; mb.prototype = { ki: function (a) { for (var b = this, c = 0, d = Ha.ab.length >> 2; c < d;) { var e = c++, f = [e], g = Ha.ab[e << 2], e = Ha.ab[(e << 2) + 1].toLowerCase(), h = [window.document.createElement("div")]; h[0].className = "elem"; h[0].innerHTML = '
' + g; a.appendChild(h[0]); h[0].onclick = function (a, c) { return function () { null != b.rf && b.rf.Ja.classList.remove("selected"); b.wh.disabled = !1; b.rf = { Ja: a[0], index: c[0] }; a[0].classList.add("selected") } }(h, f); h[0].ondblclick = function (a) { return function () { b.Zl(a[0]) } }(f) } }, Zl: function (a) { var b = new T; b.ub = Ha.ab[(a << 2) + 1].toLowerCase(); b.Ec = Ha.ab[(a << 2) + 2]; b.Gc = Ha.ab[(a << 2) + 3]; n.A.Ne.Xa(b); A.i(this.qb) }, f: mb }; Da.b = !0; Da.Yo = function (a) { return a.parentElement.querySelector(":hover") == a }; Da.prototype = { pp: function (a, b, c) { var d = window.document.createElement("p"); d.className = "announcement"; d.textContent = a; 0 <= b && (d.style.color = N.lc(b)); switch (c) { case 1: case 4: d.style.fontWeight = "bold"; break; case 2: case 5: d.style.fontStyle = "italic" } switch (c) { case 3: case 4: case 5: d.style.fontSize = "12px" } this.Ok(d) }, Ok: function (a) { var b = this.dc.clientHeight, b = this.dc.scrollTop + b - this.dc.scrollHeight >= .5 * -b || !Da.Yo(this.dc); this.dc.appendChild(a); b && (this.dc.scrollTop = a.offsetTop); for (a = b ? 50 : 100; this.dc.childElementCount > a;) this.dc.firstElementChild.remove(); this.vg.update() }, ba: function (a, b) { var c = window.document.createElement("p"); null != b && (c.className = b); c.textContent = a; this.Ok(c) }, Gb: function (a) { this.ba(a, "notice") }, f: Da }; lb.b = !0; lb.vo = function (a) { return -1 != ".$^{[(|)*+?\\".indexOf(a) ? "\\" + a : a }; lb.prototype = { Qh: function () { this.Ui(null) }, Hn: function (a, b) { var c = this.Iq.exec(D.substr(a, 0, b)); if (null != c) { var d = c[0], e = new RegExp(D.substr(d, 1, null).split("").map(lb.vo).join(".*?"), "i"); this.Ek = "#" == d.charAt(0); this.si = c.index; this.Vq = d.length; this.Ml = a; for (var c = function (a) { a = e.exec(a.w); return null == a ? -1 : a.index + a[0].length }, d = [], f = 0, g = this.Hj; f < g.length;) { var h = g[f]; ++f; var l = c(h); 0 <= l && d.push({ dn: l, item: h }) } d.sort(function (a, b) { return a.dn - b.dn }); this.Ui(d) } else this.Ui(null) }, lk: function (a) { a = this.Ek ? "#" + a.$ : "@" + J.replace(a.w, " ", "_"); this.Rp(D.substr(this.Ml, 0, this.si) + a + " " + D.substr(this.Ml, this.si + this.Vq, null), this.si + a.length + 1) }, Ui: function (a) { var b = this, c = null != a && 0 != a.length; this.Mb.hidden || v.Cf(this.Mb); this.Wc = null; this.Mb.hidden = !c; if (c) { for (var c = [], d = 0; d < a.length;) { var e = a[d++], f = window.document.createElement("div"), e = [e.item], g = e[0].w; this.Ek && (g = "(" + e[0].$ + ") " + g); f.textContent = g; this.Mb.appendChild(f); f.onclick = function (a) { return function () { b.lk(a[0]) } }(e); c.push({ item: e[0], Ja: f }) } this.Wc = c; this.Wc[0].Ja.classList.toggle("selected", !0); this.wc = 0 } }, Qj: function (a) { if (null != this.Wc) { var b = this.wc; this.wc += a; a = this.Wc.length - 1; 0 > this.wc ? this.wc = a : this.wc > a && (this.wc = 0); a = this.Wc[this.wc]; b != this.wc && (a.Ja.classList.toggle("selected", !0), this.Wc[b].Ja.classList.toggle("selected", !1)); a = a.Ja; b = a.offsetTop; a = b + a.offsetHeight; var c = this.Mb.scrollTop + this.Mb.clientHeight; b < this.Mb.scrollTop ? this.Mb.scrollTop = b : a > c && (this.Mb.scrollTop = a - this.Mb.clientHeight) } }, qo: function () { null != this.Wc && (this.lk(this.Wc[this.wc].item), this.Qh()) }, f: lb }; kb.b = !0; kb.prototype = { Dc: function () { var a = this.Cb.value; return 25 >= a.length ? 0 < a.length : !1 }, C: function () { this.af.disabled = !this.Dc() }, f: kb }; jb.b = !0; jb.prototype = { ba: function (a) { var b = window.document.createElement("p"); b.textContent = a; this.dc.appendChild(b) }, f: jb }; ib.b = !0; ib.prototype = { Fj: function (a) { this.Fm = a; this.Em.textContent = "Show in room list: " + (a ? "No" : "Yes") }, Dc: function () { var a = this.$e.value; return 40 >= a.length ? 0 < a.length : !1 }, C: function () { this.Wj.disabled = !this.Dc() }, f: ib }; Ka.b = !0; Ka.prototype = { f: Ka }; hb.b = !0; hb.prototype = { Gg: function (a) { this.g.classList.toggle("restricted", a) }, C: function (a) { var b = a.K; null != b && (this.xc.tr(60 * a.Da), this.xc.sr(b.Hc | 0), this.Kb.set(b.Kb), this.Pb.set(b.Pb), this.Eb.Kc(a, this.Nb)) }, f: hb }; Rb.b = !0; Rb.prototype = { Wd: function (a, b) { var c = window.document.createElement("span"); c.textContent = a; c.className = b; return c }, sr: function (a) { if (a != this.Ke) { var b = a % 60, c = a / 60 | 0; this.cr.textContent = "" + b % 10; this.dr.textContent = "" + (b / 10 | 0) % 10; this.yp.textContent = "" + c % 10; this.zp.textContent = "" + (c / 10 | 0) % 10; this.Ke = a } this.Jl(); this.Kl() }, tr: function (a) { this.Da = a; this.Jl(); this.Kl() }, Jl: function () { this.pr(0 != this.Da && this.Ke > this.Da) }, Kl: function () { this.ur(this.Ke < this.Da && this.Ke > this.Da - 30) }, pr: function (a) { a != this.hk && (this.bq.className = a ? "overtime on" : "overtime", this.hk = a) }, ur: function (a) { a != this.ik && (this.g.className = a ? "game-timer-view time-warn" : "game-timer-view", this.ik = a) }, f: Rb }; ja.b = !0; ja.prototype = { C: function (a) { null == a.T.K && this.me(!0); A.i(this.yl); this.bi.disabled = null == a.T.K; this.Gd ? this.Wa.C(a.T, a.T.na(a.uc)) : (a = a.Sf(), this.Fb.C(a), n.Na.Xj.Ls(a)) }, me: function (a) { this.Gd != a && ((this.Gd = a) ? (this.Jh.appendChild(this.Wa.g), this.Fb.g.remove()) : (this.Jh.appendChild(this.Fb.g), this.Wa.g.remove())) }, Zo: function () { return null != ja.kq }, bb: function (a, b) { v.Cf(this.hf); ja.kq = a; null != a ? (this.hf.style.display = "flex", this.hf.appendChild(a), this.yl = b) : (this.hf.style.display = "none", this.yl = null) }, f: ja }; gb.b = !0; gb.prototype = { Aj: function (a) { this.Jj = a; this.An.textContent = a ? "Yes" : "No" }, f: gb }; fb.b = !0; fb.prototype = { f: fb }; eb.b = !0; eb.prototype = { Lg: function () { this.hi.disabled = null == this.jb; this.bk.disabled = null == this.jb || null == this.jb.Lm; this.rk.disabled = null == this.jb }, Sk: function (a, b, c) { var d = this, e = window.document.createElement("div"); e.textContent = a; e.className = "elem"; null != c && e.classList.add("custom"); var f = { Ja: e, Pd: b, Lm: c }; e.onclick = function () { null != d.jb && d.jb.Ja.classList.remove("selected"); d.jb = f; e.classList.add("selected"); d.Lg() }; e.ondblclick = function () { d.jb = f; d.Lg(); return d.hi.onclick() }; return e }, ki: function (a) { for (var b = this, c = h.Kh(), d = 0; d < c.length;) { var e = [c[d]]; ++d; e = this.Sk(e[0].w, function (a) { return function () { return Promise.resolve(a[0]) } }(e), null); a.appendChild(e) } Z.getAll().then(function (c) { for (var d = 0; d < c.length;) { var e = c[d]; ++d; var f = [e.id], e = b.Sk(e.name, function (a) { return function () { return Z.get(a[0]) } }(f), function (a) { return function () { return Z["delete"](a[0]) } }(f)); a.appendChild(e) } b.vg.update() }) }, f: eb }; Qb.b = !0; Qb.prototype = { tn: function (a) { 0 > a ? (a = 150, this.c.fillStyle = "#c13535") : this.c.fillStyle = "green"; var b = this.Vi, c = this.yk, d = this.Ah++; this.Ah >= b && (this.Ah = 0); this.fq[d] = a; this.c.clearRect(d, 0, 1, c); a = a * c / this.vp; this.c.fillRect(d, c - a, 1, a); this.Eh.clearRect(0, 0, b, c); this.Eh.drawImage(this.sa, b - d - 1, 0); this.Eh.drawImage(this.sa, -d - 1, 0) }, f: Qb }; db.b = !0; db.prototype = { C: function (a, b) { var c = a.na(this.Nb); null == c ? A.i(this.qb) : (this.Nr(c), this.Hf.disabled = !b || 0 == this.Nb, this.Qe.disabled = !b || 0 == this.Nb) }, Nr: function (a) { this.fe != a.w && this.Ej(a.w); this.ql != a.cb && this.Dj(a.cb) }, Ej: function (a) { this.fe = a; this.Ze.textContent = a }, Dj: function (a) { this.ql = a; this.Hf.textContent = a ? "Remove Admin" : "Give Admin" }, f: db }; cb.b = !0; cb.prototype = { C: function (a, b) { this.g.draggable = b; this.yb != a.yb && (this.yb = a.yb, this.rg.textContent = "" + this.yb); this.un != a.cb && this.em(a.cb) }, em: function (a) { this.un = a; this.g.className = "player-list-item" + (a ? " admin" : "") }, f: cb }; za.b = !0; za.prototype = { C: function (a, b, c, d) { var e = this; this.Vh.disabled = b || c; this.vi.disabled = c; b = new Set; c = this.xd.keys(); for (var f = c.next(); !f.done;) { var g = f.value, f = c.next(); b.add(g) } for (c = 0; c < a.length;) f = a[c], ++c, g = this.xd.get(f.V), null == g && (g = new cb(f), g.ff = function (a) { y.i(e.ff, a) }, this.xd.set(f.V, g), this.ab.appendChild(g.g)), g.C(f, d), b["delete"](f.V); d = b.values(); for (b = d.next(); !b.done;) c = b.value, b = d.next(), this.xd.get(c).g.remove(), this.xd["delete"](c); d = 0; for (b = a.length - 1; d < b;) f = d++, c = this.xd.get(a[f].V).g, f = this.xd.get(a[f + 1].V).g, c.nextSibling != f && this.ab.insertBefore(c, f) }, f: za }; Q.b = !0; Q.prototype = { f: Q }; ha.b = !0; ha.Wk = function (a) { a = a / 1E3 | 0; return (a / 60 | 0) + ":" + J.Af(K.ye(a % 60)) }; ha.prototype = { C: function () { this.Er.textContent = ha.Wk(this.ti.Qb); this.Aq.style.width = 100 * this.ti.Go() + "%"; !this.Wf || 0 < this.ti.Fd || (this.Wf = !1, this.Up()) }, f: ha }; bb.b = !0; bb.prototype = { nr: function (a) { this.gk != a && (this.gk = a, this.Zf.value = a) }, f: bb }; ab.b = !0; ab.prototype = { f: ab }; Aa.b = !0; Aa.As = function (a) { return Promise.race([new Promise(function (a, c) { return window.setTimeout(function () { c(null) }, 5E3) }), a]) }; Aa.prototype = { Om: function () { function a() { b.pj.disabled = !1; b.bn(c) } var b = this; this.en(null); this.pj.disabled = !0; v.Cf(this.gj); var c = []; this.dj = []; Aa.As(va.get().then(function (a) { return c = a }, function () { return {} })).then(a, a) }, bn: function (a) { var b = this; this.dj = a; va.Hs(this.gs, a); a.sort(function (a, b) { return a.Le - b.Le }); v.Cf(this.gj); for (var c = 0, d = 0, e = !this.fs.Ta, f = !this.zs.Ta, g = 0; g < a.length;) { var h = [a[g]]; ++g; var l = h[0].vd; if (!(e && l.I >= l.Xe || f && l.Ib)) { var m = [new ab(h[0])]; m[0].Ja.ondblclick = function (a) { return function () { y.i(b.Ym, a[0]) } }(h); m[0].Ja.onclick = function (a) { return function () { b.en(a[0]) } }(m); this.gj.appendChild(m[0].Ja); c += l.I; ++d } } this.cs.textContent = "" + c + " players in " + d + " rooms"; this.Bs.update() }, en: function (a) { null != this.Od && this.Od.Ja.classList.remove("selected"); this.Od = a; null != this.Od && this.Od.Ja.classList.add("selected"); this.Tm.disabled = null == this.Od }, f: Aa }; $a.b = !0; $a.prototype = { Il: function () { var a = this; M.tk(n.Ee + "api/notice").then(function (b) { var c = b.content; null != c && "" != c && $a.On != c && (a.$n.innerHTML = c, a.Xk.hidden = !1, a.nd.onclick = function () { $a.On = c; return a.Xk.hidden = !0 }) }) }, f: $a }; Za.b = !0; Za.prototype = { Dc: function () { var a = this.Cb.value; return 30 >= a.length ? 0 < a.length : !1 }, C: function () { this.af.disabled = !this.Dc() }, f: Za }; Ya.b = !0; Ya.prototype = { Th: function (a, b, c, d) { var e = this; v.xe(a, b.g); b.mg = function (a, b) { ia.i(e.mg, a, b) }; b.ee = function (a) { y.i(e.ee, a) }; b.Kp = function (a) { ia.i(e.mg, d, a) }; b.ff = function (a) { y.i(e.ff, a) } }, Tk: function (a) { for (var b = [], c = 0; c < a;) { var d = c++; b.push(null == d ? "null" : "" + d) } return b }, Uk: function (a, b) { for (var c = 0; c < b.length;) { var d = b[c++], e = window.document.createElement("option"); e.textContent = d; a.appendChild(e) } }, rr: function (a) { this.Fl.classList.toggle("active", a) }, C: function (a, b) { this.Uq != a.jc && (this.Uq = a.jc, this.jc.textContent = a.jc); var c = null == b ? !1 : b.cb; this.fk != c && (this.g.className = "room-view" + (c ? " admin" : ""), this.fk = c); var d = !c || null != a.K; this.wf.disabled = d; this.qf.disabled = d; this.sm.disabled = d; d = null != a.K; this.tm.hidden = d; this.vm.hidden = !d; this.gi.hidden = !d; this.wf.selectedIndex = a.Da; this.qf.selectedIndex = a.ib; this.rm.textContent = a.S.w; this.rm.classList.toggle("custom", !a.S.Pe()); var e = a.Pc; this.Hl.C(a.I.filter(function (a) { return a.ea == p.fa }), e, d, c); this.Lj.C(a.I.filter(function (a) { return a.ea == p.xa }), e, d, c); this.qm.C(a.I.filter(function (a) { return a.ea == p.Ia }), e, d, c); this.Rl.disabled = d; this.Xh != a.Pc && this.Bj(a.Pc); d && (c = 120 == a.K.Oa, this.ll != c && this.Cj(c)) }, Bj: function (a) { this.Xh = a; this.Nk.innerHTML = this.Xh ? "Unlock" : "Lock" }, Cj: function (a) { this.ll = a; this.gi.innerHTML = "" + (this.ll ? "Resume (P)" : "Pause (P)") }, f: Ya }; aa.b = !0; aa.prototype = { f: aa }; P.b = !0; P.prototype = { f: P }; Xa.b = !0; Xa.prototype = { qr: function (a) { this.rg.textContent = null == a ? "null" : "" + a }, or: function (a) { this.wp.textContent = "" + a }, hm: function (a) { this.wo.textContent = null == a ? "null" : "" + a }, f: Xa }; Wa.b = !0; Wa.prototype = { f: Wa }; q.b = !0; q.ma = Error; q.prototype = C(Error.prototype, { f: q }); r.b = !0; r.Nm = function (a) { if (a instanceof Array && null == a.eb) return Array; var b = a.f; if (null != b) return b; a = r.wj(a); return null != a ? r.rn(a) : null }; r.Be = function (a, b) { if (null == a) return "null"; if (5 <= b.length) return "<...>"; var c = typeof a; "function" == c && (a.b || a.Gf) && (c = "object"); switch (c) { case "function": return ""; case "object": if (a.eb) { var d = Ab[a.eb], c = d.nh[a.nb], e = d[c]; if (e.Ae) { b += "\t"; for (var c = c + "(", d = [], f = 0, e = e.Ae; f < e.length;) { var g = e[f]; ++f; d.push(r.Be(a[g], b)) } return c + d.join(",") + ")" } return c } if (a instanceof Array) { c = a.length; d = "["; b += "\t"; for (f = 0; f < c;) e = f++, d += (0 < e ? "," : "") + r.Be(a[e], b); return d + "]" } try { d = a.toString } catch (k) { return "???" } if (null != d && d != Object.toString && "function" == typeof d && (c = a.toString(), "[object Object]" != c)) return c; c = null; d = "{\n"; b += "\t"; f = null != a.hasOwnProperty; for (c in a) f && !a.hasOwnProperty(c) || "prototype" == c || "__class__" == c || "__super__" == c || "__interfaces__" == c || "__properties__" == c || (2 != d.length && (d += ", \n"), d += b + c + " : " + r.Be(a[c], b)); b = b.substring(1); return d + ("\n" + b + "}"); case "string": return a; default: return String(a) } }; r.ph = function (a, b) { if (null == a) return !1; if (a == b) return !0; var c = a.Rd; if (null != c) for (var d = 0, e = c.length; d < e;) { var f = c[d++]; if (f == b || r.ph(f, b)) return !0 } return r.ph(a.ma, b) }; r.pn = function (a, b) { if (null == b) return !1; switch (b) { case Array: return a instanceof Array ? null == a.eb : !1; case oc: return "boolean" == typeof a; case sc: return !0; case z: return "number" == typeof a; case Pb: return "number" == typeof a ? (a | 0) === a : !1; case String: return "string" == typeof a; default: if (null != a) if ("function" == typeof b) { if (a instanceof b || r.ph(r.Nm(a), b)) return !0 } else { if ("object" == typeof b && r.qn(b) && a instanceof b) return !0 } else return !1; return b == tc && null != a.b || b == uc && null != a.Gf ? !0 : Ab[a.eb] == b } }; r.G = function (a, b) { if (r.pn(a, b)) return a; throw new q("Cannot cast " + K.ye(a) + " to " + K.ye(b)); }; r.wj = function (a) { a = r.sn.call(a).slice(8, -1); return "Object" == a || "Function" == a || "Math" == a || "JSON" == a ? null : a }; r.qn = function (a) { return null != r.wj(a) }; r.rn = function (a) { return qc[a] }; hc.b = !0; hc.Is = function (a, b) { var c = new Uint8Array(this, a, null == b ? null : b - a), d = new Uint8Array(c.byteLength); d.set(c); return d.buffer }; var rc = 0; null == String.fromCodePoint && (String.fromCodePoint = function (a) { return 65536 > a ? String.fromCharCode(a) : String.fromCharCode((a >> 10) + 55232) + String.fromCharCode((a & 1023) + 56320) }); String.prototype.f = String; String.b = !0; Array.b = !0; Date.prototype.f = Date; Date.b = "Date"; var Pb = {}, sc = {}, z = Number, oc = Boolean, tc = {}, uc = {}; p.Ia = new p(0, 16777215, 0, -1, "Spectators", "t-spec", 0, 0); p.fa = new p(1, 15035990, -1, 8, "Red", "t-red", 0, 2); p.xa = new p(2, 5671397, 1, 16, "Blue", "t-blue", 0, 4); p.Ia.pg = p.Ia; p.fa.pg = p.xa; p.xa.pg = p.fa; Object.defineProperty(q.prototype, "message", { get: function () { return String(this.Ta) } }); null == ArrayBuffer.prototype.slice && (ArrayBuffer.prototype.slice = hc.Is); Va.Yn = { mandatory: { OfferToReceiveAudio: !1, OfferToReceiveVideo: !1 } }; I.qh = { name: "ECDSA", namedCurve: "P-256" }; I.mm = { name: "ECDSA", hash: { name: "SHA-256" } }; Ba.Uo = ["click-rail", "drag-thumb", "wheel", "touch"]; m.Qm = new Map; m.yf = 0; Ua.za = m.Fa({ Ba: !1, Aa: !1 }); ya.zc = 0; Zb.Km = [{ name: "ro", reliable: !0, kj: !0 }, { name: "ru", reliable: !0, kj: !1 }, { name: "uu", reliable: !1, kj: !1 } ]; M.vj = "application/x-www-form-urlencoded"; Ha.ab = ["Afghanistan", "AF", 33.3, 65.1, "Albania", "AL", 41.1, 20.1, "Algeria", "DZ", 28, 1.6, "American Samoa", "AS", -14.2, -170.1, "Andorra", "AD", 42.5, 1.6, "Angola", "AO", -11.2, 17.8, "Anguilla", "AI", 18.2, -63, "Antigua and Barbuda", "AG", 17, -61.7, "Argentina", "AR", -34.5, -58.4, "Armenia", "AM", 40, 45, "Aruba", "AW", 12.5, -69.9, "Australia", "AU", -25.2, 133.7, "Austria", "AT", 47.5, 14.5, "Azerbaijan", "AZ", 40.1, 47.5, "Bahamas", "BS", 25, -77.3, "Bahrain", "BH", 25.9, 50.6, "Bangladesh", "BD", 23.6, 90.3, "Barbados", "BB", 13.1, -59.5, "Belarus", "BY", 53.7, 27.9, "Belgium", "BE", 50.5, 4.4, "Belize", "BZ", 17.1, -88.4, "Benin", "BJ", 9.3, 2.3, "Bermuda", "BM", 32.3, -64.7, "Bhutan", "BT", 27.5, 90.4, "Bolivia", "BO", -16.2, -63.5, "Bosnia and Herzegovina", "BA", 43.9, 17.6, "Botswana", "BW", -22.3, 24.6, "Bouvet Island", "BV", -54.4, 3.4, "Brazil", "BR", -14.2, -51.9, "British Indian Ocean Territory", "IO", -6.3, 71.8, "British Virgin Islands", "VG", 18.4, -64.6, "Brunei", "BN", 4.5, 114.7, "Bulgaria", "BG", 42.7, 25.4, "Burkina Faso", "BF", 12.2, -1.5, "Burundi", "BI", -3.3, 29.9, "Cambodia", "KH", 12.5, 104.9, "Cameroon", "CM", 7.3, 12.3, "Canada", "CA", 56.1, -106.3, "Cape Verde", "CV", 16, -24, "Cayman Islands", "KY", 19.5, -80.5, "Central African Republic", "CF", 6.6, 20.9, "Chad", "TD", 15.4, 18.7, "Chile", "CL", -35.6, -71.5, "China", "CN", 35.8, 104.1, "Christmas Island", "CX", -10.4, 105.6, "Colombia", "CO", 4.5, -74.2, "Comoros", "KM", -11.8, 43.8, "Congo [DRC]", "CD", -4, 21.7, "Congo [Republic]", "CG", -.2, 15.8, "Cook Islands", "CK", -21.2, -159.7, "Costa Rica", "CR", 9.7, -83.7, "Croatia", "HR", 45.1, 15.2, "Cuba", "CU", 21.5, -77.7, "Cyprus", "CY", 35.1, 33.4, "Czech Republic", "CZ", 49.8, 15.4, "C\u00f4te d'Ivoire", "CI", 7.5, -5.5, "Denmark", "DK", 56.2, 9.5, "Djibouti", "DJ", 11.8, 42.5, "Dominica", "DM", 15.4, -61.3, "Dominican Republic", "DO", 18.7, -70.1, "Ecuador", "EC", -1.8, -78.1, "Egypt", "EG", 26.8, 30.8, "El Salvador", "SV", 13.7, -88.8, "Equatorial Guinea", "GQ", 1.6, 10.2, "Eritrea", "ER", 15.1, 39.7, "Estonia", "EE", 58.5, 25, "Ethiopia", "ET", 9.1, 40.4, "Faroe Islands", "FO", 61.8, -6.9, "Fiji", "FJ", -16.5, 179.4, "Finland", "FI", 61.9, 25.7, "France", "FR", 46.2, 2.2, "French Guiana", "GF", 3.9, -53.1, "French Polynesia", "PF", -17.6, -149.4, "Gabon", "GA", -.8, 11.6, "Gambia", "GM", 13.4, -15.3, "Georgia", "GE", 42.3, 43.3, "Germany", "DE", 51.1, 10.4, "Ghana", "GH", 7.9, -1, "Gibraltar", "GI", 36.1, -5.3, "Greece", "GR", 39, 21.8, "Greenland", "GL", 71.7, -42.6, "Grenada", "GD", 12.2, -61.6, "Guadeloupe", "GP", 16.9, -62, "Guam", "GU", 13.4, 144.7, "Guatemala", "GT", 15.7, -90.2, "Guinea", "GN", 9.9, -9.6, "Guinea-Bissau", "GW", 11.8, -15.1, "Guyana", "GY", 4.8, -58.9, "Haiti", "HT", 18.9, -72.2, "Honduras", "HN", 15.1, -86.2, "Hong Kong", "HK", 22.3, 114.1, "Hungary", "HU", 47.1, 19.5, "Iceland", "IS", 64.9, -19, "India", "IN", 20.5, 78.9, "Indonesia", "ID", -.7, 113.9, "Iran", "IR", 32.4, 53.6, "Iraq", "IQ", 33.2, 43.6, "Ireland", "IE", 53.4, -8.2, "Israel", "IL", 31, 34.8, "Italy", "IT", 41.8, 12.5, "Jamaica", "JM", 18.1, -77.2, "Japan", "JP", 36.2, 138.2, "Jordan", "JO", 30.5, 36.2, "Kazakhstan", "KZ", 48, 66.9, "Kenya", "KE", -0, 37.9, "Kiribati", "KI", -3.3, -168.7, "Kosovo", "XK", 42.6, 20.9, "Kuwait", "KW", 29.3, 47.4, "Kyrgyzstan", "KG", 41.2, 74.7, "Laos", "LA", 19.8, 102.4, "Latvia", "LV", 56.8, 24.6, "Lebanon", "LB", 33.8, 35.8, "Lesotho", "LS", -29.6, 28.2, "Liberia", "LR", 6.4, -9.4, "Libya", "LY", 26.3, 17.2, "Liechtenstein", "LI", 47.1, 9.5, "Lithuania", "LT", 55.1, 23.8, "Luxembourg", "LU", 49.8, 6.1, "Macau", "MO", 22.1, 113.5, "Macedonia [FYROM]", "MK", 41.6, 21.7, "Madagascar", "MG", -18.7, 46.8, "Malawi", "MW", -13.2, 34.3, "Malaysia", "MY", 4.2, 101.9, "Maldives", "MV", 3.2, 73.2, "Mali", "ML", 17.5, -3.9, "Malta", "MT", 35.9, 14.3, "Marshall Islands", "MH", 7.1, 171.1, "Martinique", "MQ", 14.6, -61, "Mauritania", "MR", 21, -10.9, "Mauritius", "MU", -20.3, 57.5, "Mayotte", "YT", -12.8, 45.1, "Mexico", "MX", 23.6, -102.5, "Micronesia", "FM", 7.4, 150.5, "Moldova", "MD", 47.4, 28.3, "Monaco", "MC", 43.7, 7.4, "Mongolia", "MN", 46.8, 103.8, "Montenegro", "ME", 42.7, 19.3, "Montserrat", "MS", 16.7, -62.1, "Morocco", "MA", 31.7, -7, "Mozambique", "MZ", -18.6, 35.5, "Myanmar [Burma]", "MM", 21.9, 95.9, "Namibia", "NA", -22.9, 18.4, "Nauru", "NR", -.5, 166.9, "Nepal", "NP", 28.3, 84.1, "Netherlands", "NL", 52.1, 5.2, "Netherlands Antilles", "AN", 12.2, -69, "New Caledonia", "NC", -20.9, 165.6, "New Zealand", "NZ", -40.9, 174.8, "Nicaragua", "NI", 12.8, -85.2, "Niger", "NE", 17.6, 8, "Nigeria", "NG", 9, 8.6, "Niue", "NU", -19, -169.8, "Norfolk Island", "NF", -29, 167.9, "North Korea", "KP", 40.3, 127.5, "Northern Mariana Islands", "MP", 17.3, 145.3, "Norway", "NO", 60.4, 8.4, "Oman", "OM", 21.5, 55.9, "Pakistan", "PK", 30.3, 69.3, "Palau", "PW", 7.5, 134.5, "Palestinian Territories", "PS", 31.9, 35.2, "Panama", "PA", 8.5, -80.7, "Papua New Guinea", "PG", -6.3, 143.9, "Paraguay", "PY", -23.4, -58.4, "Peru", "PE", -9.1, -75, "Philippines", "PH", 12.8, 121.7, "Pitcairn Islands", "PN", -24.7, -127.4, "Poland", "PL", 51.9, 19.1, "Portugal", "PT", 39.3, -8.2, "Puerto Rico", "PR", 18.2, -66.5, "Qatar", "QA", 25.3, 51.1, "Romania", "RO", 45.9, 24.9, "Russia", "RU", 61.5, 105.3, "Rwanda", "RW", -1.9, 29.8, "R\u00e9union", "RE", -21.1, 55.5, "Saint Helena", "SH", -24.1, -10, "Saint Kitts", "KN", 17.3, -62.7, "Saint Lucia", "LC", 13.9, -60.9, "Saint Pierre", "PM", 46.9, -56.2, "Saint Vincent", "VC", 12.9, -61.2, "Samoa", "WS", -13.7, -172.1, "San Marino", "SM", 43.9, 12.4, "Saudi Arabia", "SA", 23.8, 45, "Scotland", "SCT", 56.5, 4.2, "Senegal", "SN", 14.4, -14.4, "Serbia", "RS", 44, 21, "Seychelles", "SC", -4.6, 55.4, "Sierra Leone", "SL", 8.4, -11.7, "Singapore", "SG", 1.3, 103.8, "Slovakia", "SK", 48.6, 19.6, "Slovenia", "SI", 46.1, 14.9, "Solomon Islands", "SB", -9.6, 160.1, "Somalia", "SO", 5.1, 46.1, "South Africa", "ZA", -30.5, 22.9, "South Georgia", "GS", -54.4, -36.5, "South Korea", "KR", 35.9, 127.7, "Spain", "ES", 40.4, -3.7, "Sri Lanka", "LK", 7.8, 80.7, "Sudan", "SD", 12.8, 30.2, "Suriname", "SR", 3.9, -56, "Svalbard and Jan Mayen", "SJ", 77.5, 23.6, "Swaziland", "SZ", -26.5, 31.4, "Sweden", "SE", 60.1, 18.6, "Switzerland", "CH", 46.8, 8.2, "Syria", "SY", 34.8, 38.9, "S\u00e3o Tom\u00e9 and Pr\u00edncipe", "ST", .1, 6.6, "Taiwan", "TW", 23.6, 120.9, "Tajikistan", "TJ", 38.8, 71.2, "Tanzania", "TZ", -6.3, 34.8, "Thailand", "TH", 15.8, 100.9, "Timor-Leste", "TL", -8.8, 125.7, "Togo", "TG", 8.6, .8, "Tokelau", "TK", -8.9, -171.8, "Tonga", "TO", -21.1, -175.1, "Trinidad and Tobago", "TT", 10.6, -61.2, "Tunisia", "TN", 33.8, 9.5, "Turkey", "TR", 38.9, 35.2, "Turkmenistan", "TM", 38.9, 59.5, "Turks and Caicos Islands", "TC", 21.6, -71.7, "Tuvalu", "TV", -7.1, 177.6, "U.S. Minor Outlying Islands", "UM", 0, 0, "U.S. Virgin Islands", "VI", 18.3, -64.8, "Uganda", "UG", 1.3, 32.2, "Ukraine", "UA", 48.3, 31.1, "United Arab Emirates", "AE", 23.4, 53.8, "United Kingdom", "GB", 55.3, -3.4, "United States", "US", 37, -95.7, "Uruguay", "UY", -32.5, -55.7, "Uzbekistan", "UZ", 41.3, 64.5, "Vanuatu", "VU", -15.3, 166.9, "Vatican City", "VA", 41.9, 12.4, "Venezuela", "VE", 6.4, -66.5, "Vietnam", "VN", 14, 108.2, "Wallis and Futuna", "WF", -13.7, -177.1, "Western Sahara", "EH", 24.2, -12.8, "Yemen", "YE", 15.5, 48.5, "Zambia", "ZM", -13.1, 27.8, "Zimbabwe", "ZW", -19, 29.1 ]; n.Vr = "wss://p2p.haxball.com/"; n.Ee = "https://www.haxball.com/rs/"; n.Vf = [{ urls: "stun:stun.l.google.com:19302" }]; n.A = new Yb; O.Yk = function () { for (var a = [], b = 0; 256 > b;) ++b, a.push(new H(0, 0)); return a }(this); O.dk = function () { for (var a = [], b = 0; 256 > b;) ++b, a.push(0); return a }(this); h.Fr = w.ha(1024); ta.za = m.Fa({ Ba: !1, Aa: !1 }); rb.za = m.Fa({ Ba: !1, Aa: !1, oj: { $i: 10, uj: 900 } }); Qa.za = m.Fa({ Ba: !1, Aa: !1 }); da.za = m.Fa({ Ba: !1, Aa: !1 }); sa.za = m.Fa({ Ba: !1, Aa: !1 }); ra.za = m.Fa({ Ba: !1, Aa: !1 }); S.za = m.Fa({ Ba: !1, Aa: !1 }); qa.za = m.Fa({ Ba: !1, Aa: !1, oj: { $i: 10, uj: 2E3 } }); Pa.za = m.Fa({ Ba: !1, Aa: !1 }); pa.za = m.Fa({ Ba: !1, Aa: !1 }); oa.za = m.Fa({ Ba: !1, Aa: !1 }); qb.za = m.Fa({ Ba: !1, Aa: !1 }); Oa.za = m.Fa({}); Na.za = m.Fa({ Ba: !1, Aa: !1, oj: { $i: 10, uj: 900 } }); Ga.za = m.Fa({}); na.za = m.Fa({ Ba: !1, Aa: !1 }); Y.za = m.Fa({ Ba: !1, Aa: !1 }); pb.za = m.Fa({ Ba: !1, Aa: !1 }); ob.za = m.Fa({ Ba: !1, Aa: !1 }); ma.za = m.Fa({ Ba: !1, Aa: !1 }); Ma.za = m.Fa({ Ba: !1, Aa: !1 }); La.za = m.Fa({ Ba: !1, Aa: !1 }); la.za = m.Fa({ Ba: !1, Aa: !1 }); E.mn = .17435839227423353; E.ln = 5.934119456780721; R.jn = new Ib([0, 0, 2, 1, 0, .35, 1, 0, 1, 0, .7, 1, 0, 0, 0, 1 ]); R.kn = new Ib([0, -1, 3, 0, 0, .35, 0, 0, 0, 0, .65, 0, 0, 1, 3, 1]); mb.N = "

Change Location

"; Da.N = "

Controls:
Move: WASD or Arrows
Kick: X, Space, Ctrl, Shift, Numpad 0
View: Numbers 1 to 4

"; kb.N = "

Choose nickname

"; jb.N = "

Connecting

"; ib.N = "

Create room

"; Ka.N = "

Disconnected

"; hb.N = "
0
-
0
"; ja.N = "
"; gb.N = "

"; fb.N = "

Leave room?

Are you sure you want to leave the room?

"; eb.N = "

Pick a stadium

"; db.N = "

"; cb.N = "
"; za.N = "
"; ha.N = "
1x
00:00
"; bb.N = ""; ab.tj = "
"; Aa.tj = "

Room list

Tip: Join rooms near you to reduce lag.

NamePlayersPassDistance
Show locked Show full

"; Za.N = "

Password required

"; Ya.N = "

"; aa.N = "

Settings

Press a key
Sounds enabled
Chat sound enabled
Nick highlight sound enabled
Crowd sound enabled
Viewport Mode:
FPS Limit:
Resolution Scaling:
Custom team colors enabled
Show chat indicators
Show player avatars
"; aa.$l = 0; P.N = "

"; Xa.N = "

Ping:

Max Ping:

Fps:

"; Wa.N = '

Unsupported Browser

Sorry! Your browser doesn\'t yet implement some features which are required for HaxBall to work.

The missing features are:

Recommended browsers:

'; r.sn = {}.toString; u.qp() })("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this);