// 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_ratelimitFailed 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.Controls:
Move: WASD or Arrows
Kick: X, Space, Ctrl, Shift, Numpad 0
View: Numbers 1 to 4
Are you sure you want to leave the room?
Use this url to link others directly into this room.
Tip: Join rooms near you to reduce lag.
Name | Players | Pass | Distance |
Ping:
Max Ping:
Fps: