Guest User

Op Mode

a guest
Jun 20th, 2024
2,359
1
Never
3
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2. (function(pa) {
  3.  
  4.     let sld = false;
  5.     let bjdau = false;
  6.     let sldVar;
  7.     document.addEventListener('keydown', function(event) {
  8.         if (event.ctrlKey) {
  9.           sld = !sld;
  10.             console.log(sld)
  11.         }
  12.       });
  13.      
  14.       function fpC(args, sendInfo) {
  15.           var usageMessage = "Kullanım: /ping <off|+-sayı>";
  16.      
  17.           if (args.length == 2) {
  18.               var value = args[1];
  19.              
  20.               if (value == "off") {
  21.                   window.localStorage.removeItem("fakePing");
  22.                   sendInfo("Fake ping kapatıldı");
  23.               }
  24.               else {
  25.                   var lastChar = value.slice(-1);
  26.      
  27.                   // Constant ping
  28.                   if (lastChar !== "+" && lastChar !== "-" && !isNaN(parseInt(value))) {
  29.                       window.localStorage.setItem("fakePing", value);
  30.                       sendInfo("Ping " + parseInt(value) + " msec olarak ayarlandı");
  31.                   }
  32.                   // Increase/decrease ping
  33.                   else if ((lastChar === "+" || lastChar === "-") && !isNaN(parseInt(value.slice(0, -1)))) {
  34.                       window.localStorage.setItem("fakePing", value);
  35.                       sendInfo("Ping " + ((lastChar === "+") ? "increased" : "decreased") + " by " + parseInt(value.slice(0, -1)) + " msec");
  36.                   }
  37.                   else {
  38.                       sendInfo(usageMessage);
  39.                   }
  40.               }
  41.           }
  42.           else {
  43.               sendInfo(usageMessage);
  44.           }
  45.       }
  46.      
  47.  
  48.       function getFakePingValue(truePing) {
  49.           var fakePing = window.localStorage.getItem("fakePing");
  50.      
  51.           if (fakePing == null) {
  52.               return truePing;
  53.           }
  54.      
  55.           var lastChar = fakePing.slice(-1);
  56.           if (lastChar === "+") {
  57.               return truePing + parseInt(fakePing.slice(0, -1));
  58.           }
  59.           else if (lastChar === "-") {
  60.               return truePing - parseInt(fakePing.slice(0, -1));
  61.           }
  62.           else {
  63.               return parseInt(fakePing);
  64.           }
  65.       }
  66.      
  67.       function getFakePingInfo(truePing) {
  68.           var fakePing = window.localStorage.getItem("fakePing");
  69.          
  70.           if (fakePing == null) {
  71.               return truePing.toString();
  72.           }
  73.          
  74.           return truePing + " (" + getFakePingValue(truePing) + ")";
  75.       }
  76.      
  77.       function getChatBubbleValue() {
  78.           var chatIndicator = window.localStorage.getItem("chatBubble");
  79.      
  80.           if (chatIndicator == null) {
  81.               return false;
  82.           }
  83.      
  84.           return true;
  85.       }
  86.      
  87.       function opModeCommand(args, sendInfo) {
  88.           var usageMessage = "Kullanım: /opmode <sayı>. Varsayılan değer 2'dir.";
  89.          
  90.           if (args.length == 2) {
  91.               var value = parseInt(args[1]);
  92.               if (!isNaN(value)) {
  93.                   sldVar = value;
  94.                   sendInfo(`OP mode ${value} olarak ayarlandı.`);
  95.               } else {
  96.                   sendInfo(usageMessage);
  97.               }
  98.           } else {
  99.               sendInfo(usageMessage);
  100.           }
  101.       }
  102.        
  103.       function chatBubbleCommand(args, sendInfo) {
  104.           var usageMessage = "Kullanım: /kutu <on|off>";
  105.      
  106.           if (args.length > 0) {
  107.               var value = args[1] ?? window.localStorage.getItem("chatBubble") ? "off" : "on";
  108.              
  109.               if (value == "off") {
  110.                   window.localStorage.removeItem("chatBubble");
  111.                   sendInfo("Chat kutucuğu kapatıldı");
  112.               }
  113.               else if (value == "on") {
  114.                   window.localStorage.setItem("chatBubble", "on");
  115.                   sendInfo("Chat kutucuğu açıldı");
  116.               }
  117.               else {
  118.                   sendInfo(usageMessage);
  119.               }
  120.           }
  121.           else {
  122.               sendInfo(usageMessage);
  123.           }
  124.       }
  125.      
  126.       function chatBubbleInfo(sendInfo) {
  127.           if (getChatBubbleValue()) {
  128.               sendInfo("Chat kutucuğu açıldı - bir takıma girdiğinde chati aç.");
  129.           }
  130.       }
  131.  
  132.     function ja() {
  133.         return w.Me(this, "")
  134.     }
  135.     function M(a, b) {
  136.         if (null == b)
  137.             return null;
  138.         null == b.ph && (b.ph = pa.Fj++);
  139.         var c;
  140.         null == a.qj ? a.qj = {} : c = a.qj[b.ph];
  141.         null == c && (c = b.bind(a),
  142.         a.qj[b.ph] = c);
  143.         return c
  144.     }
  145.     function gc(a) {
  146.         return 66 > a ? 66 : 400 < a ? 400 : a
  147.     }
  148.     class qa {
  149.     }
  150.     class ra {
  151.         constructor() {
  152.             this.ed = new Map
  153.         }
  154.         Sa(a, b) {
  155.             this.ed.set(a, b)
  156.         }
  157.         v(a) {
  158.             return this.ed.get(a)
  159.         }
  160.         kr(a) {
  161.             this.ed.delete(a)
  162.         }
  163.         bp(a) {
  164.             let b = []
  165.               , c = this.ed.keys()
  166.               , d = c.next();
  167.             for (; !d.done; ) {
  168.                 let e = d.value;
  169.                 d = c.next();
  170.                 this.ed.get(e) == a && b.push(e)
  171.             }
  172.             return b
  173.         }
  174.         Ae() {
  175.             let a = {}
  176.               , b = this.ed.keys()
  177.               , c = b.next();
  178.             for (; !c.done; ) {
  179.                 let d = c.value;
  180.                 c = b.next();
  181.                 a[d] = this.ed.get(d)
  182.             }
  183.             return JSON.stringify(a)
  184.         }
  185.         static dg(a) {
  186.             let b = new ra
  187.               , c = zc.hn(a)
  188.               , d = 0;
  189.             for (; d < c.length; ) {
  190.                 let e = c[d];
  191.                 ++d;
  192.                 b.ed.set(e, a[e])
  193.             }
  194.             return b
  195.         }
  196.         static Lh(a) {
  197.             return ra.dg(JSON.parse(a))
  198.         }
  199.         static sk() {
  200.             let a = new ra;
  201.             a.Sa("ArrowUp", "Up");
  202.             a.Sa("KeyW", "Up");
  203.             a.Sa("ArrowDown", "Down");
  204.             a.Sa("KeyS", "Down");
  205.             a.Sa("ArrowLeft", "Left");
  206.             a.Sa("KeyA", "Left");
  207.             a.Sa("ArrowRight", "Right");
  208.             a.Sa("KeyD", "Right");
  209.             a.Sa("KeyX", "Kick");
  210.             a.Sa("Space", "Kick");
  211.             a.Sa("ControlLeft", "Kick");
  212.             a.Sa("ControlRight", "Kick");
  213.             a.Sa("ShiftLeft", "Kick");
  214.             a.Sa("ShiftRight", "Kick");
  215.             a.Sa("Numpad0", "Kick");
  216.             return a
  217.         }
  218.     }
  219.     class sa {
  220.         constructor() {
  221.             this.Bc = -1;
  222.             this.xn = null;
  223.             this.fa = u.Oa;
  224.             this.J = null;
  225.             this.Ac = this.Zc = 0;
  226.             this.Yb = !1;
  227.             this.W = this.Y = 0;
  228.             this.D = "Player";
  229.             this.ah = this.Ab = 0;
  230.             this.country = null;
  231.             this.Ud = !1;
  232.             this.Zb = this.Td = null;
  233.             this.Nb = 0;
  234.             this.fb = !1
  235.         }
  236.         wa(a) {
  237.             a.m(this.fb ? 1 : 0);
  238.             a.P(this.Nb);
  239.             a.Fb(this.Zb);
  240.             a.Fb(this.Td);
  241.             a.m(this.Ud ? 1 : 0);
  242.             a.Fb(this.country);
  243.             a.P(this.ah);
  244.             a.Fb(this.D);
  245.             a.P(this.W);
  246.             a.nb(this.Y);
  247.             a.m(this.Yb ? 1 : 0);
  248.             a.hj(this.Ac);
  249.             a.m(this.Zc);
  250.             a.m(this.fa.ba);
  251.             a.hj(null == this.J ? -1 : this.J.Fl)
  252.         }
  253.         xa(a, b) {
  254.             this.fb = 0 != a.F();
  255.             this.Nb = a.N();
  256.             this.Zb = a.Bb();
  257.             this.Td = a.Bb();
  258.             this.Ud = 0 != a.F();
  259.             this.country = a.Bb();
  260.             this.ah = a.N();
  261.             this.D = a.Bb();
  262.             this.W = a.N();
  263.             this.Y = a.Cb();
  264.             this.Yb = 0 != a.F();
  265.             this.Ac = a.vi();
  266.             this.Zc = a.F();
  267.             let c = a.wf();
  268.             this.fa = 1 == c ? u.ia : 2 == c ? u.Da : u.Oa;
  269.             a = a.vi();
  270.             this.J = 0 > a ? null : b[a]
  271.         }
  272.         Rs() {
  273.             let a = qa.Bc
  274.               , b = this.xn;
  275.             this.Bc != a && (null == b && (this.xn = b = new sa),
  276.             this.Bc = a,
  277.             sa.Is(b, this));
  278.             return b
  279.         }
  280.         static Is(a, b) {
  281.             a.fb = b.fb;
  282.             a.Nb = b.Nb;
  283.             a.Zb = b.Zb;
  284.             a.Td = b.Td;
  285.             a.Ud = b.Ud;
  286.             a.country = b.country;
  287.             a.ah = b.ah;
  288.             a.Ab = b.Ab;
  289.             a.D = b.D;
  290.             a.W = b.W;
  291.             a.Y = b.Y;
  292.             a.Yb = b.Yb;
  293.             a.Ac = b.Ac;
  294.             a.Zc = b.Zc;
  295.             a.J = null == b.J ? null : b.J.uc();
  296.             a.fa = b.fa
  297.         }
  298.     }
  299.     class Nb {
  300.         constructor() {
  301.             this.Pc = new Set;
  302.             this.kg = 0;
  303.             window.document.addEventListener("focusout", M(this, this.wl))
  304.         }
  305.         la() {
  306.             window.document.removeEventListener("focusout", M(this, this.wl))
  307.         }
  308.         A() {
  309.             let a = 0;
  310.             this.Pc.has("Up") && (a = 1);
  311.             this.Pc.has("Down") && (a |= 2);
  312.             this.Pc.has("Left") && (a |= 4);
  313.             this.Pc.has("Right") && (a |= 8);
  314.             this.Pc.has("Kick") && (a |= 16);
  315.             if (null != this.yg && a != this.kg) {
  316.                 this.kg = a;
  317.                 let b = new Aa;
  318.                 b.input = a;
  319.                 this.yg(b)
  320.             }
  321.         }
  322.         Fa(a) {
  323.             var b = a.code;
  324.             b = m.j.Kd.v().v(b);
  325.             null != b && (a.preventDefault(),
  326.             this.mq(b))
  327.         }
  328.         kd(a) {
  329.             a = m.j.Kd.v().v(a.code);
  330.             null != a && this.bq(a)
  331.         }
  332.         mq(a) {
  333.             this.Pc.has(a) || (this.Pc.add(a),
  334.             this.A(),
  335.             D.i(this.ul, a))
  336.         }
  337.         bq(a) {
  338.             this.Pc.delete(a) && this.A()
  339.         }
  340.         wl() {
  341.             if (null != this.yg && 0 != this.kg) {
  342.                 this.Pc.clear();
  343.                 this.kg = 0;
  344.                 let a = new Aa;
  345.                 a.input = 0;
  346.                 this.yg(a)
  347.             }
  348.         }
  349.     }
  350.     class gb {
  351.         constructor() {
  352.             this.zk = null;
  353.             this.f = x.Ia(gb.O);
  354.             var a = x.Ba(this.f);
  355.             this.lg = a.get("link");
  356.             let b = a.get("copy");
  357.             a = a.get("close");
  358.             let c = this;
  359.             this.lg.onfocus = function() {
  360.                 c.lg.select()
  361.             }
  362.             ;
  363.             b.onclick = function() {
  364.                 c.lg.select();
  365.                 return window.document.execCommand("Copy")
  366.             }
  367.             ;
  368.             a.onclick = function() {
  369.                 H.i(c.rb)
  370.             }
  371.         }
  372.         Sr(a) {
  373.             this.zk != a && (this.zk = a,
  374.             this.lg.value = a)
  375.         }
  376.     }
  377.     class Ra {
  378.         constructor(a, b) {
  379.             this.f = x.Ia(Ra.O);
  380.             let c = x.Ba(this.f);
  381.             this.aq = c.get("ok");
  382.             let d = this;
  383.             this.aq.onclick = function() {
  384.                 H.i(d.Wa)
  385.             }
  386.             ;
  387.             this.jm = c.get("replay");
  388.             let e = null != b;
  389.             this.jm.hidden = !e;
  390.             e && (this.jm.onclick = function() {
  391.                 Ba.tm(b)
  392.             }
  393.             );
  394.             c.get("reason").textContent = a
  395.         }
  396.     }
  397.     class B {
  398.         static Rp() {
  399.             C.rj(function() {
  400.                 B.Ck(B.Zq)
  401.             });
  402.             B.Ip()
  403.         }
  404.         static Ip() {
  405.             let a = m.j.Vj.v();
  406.             null == a ? T.Wo().then(function(b) {
  407.                  b = B.Ue;
  408.                 m.j.Vj.ha(b.os())
  409.             }).catch(function() {}) : T.Vo(a).then(function(b) {
  410.                 return B.Ue = b
  411.             }).catch(function() {})
  412.            
  413.         }
  414.         static Zo() {
  415.             let a = Ac.ln();
  416.             return null != a ? null != a.getItem("crappy_router") : !1
  417.         }
  418.         static Ck(a) {
  419.             let b = new hb(m.j.ne.v());
  420.             b.yl = function(c) {
  421.                 m.j.ne.ha(c);
  422.                 m.Pa.om();
  423.                 a()
  424.             }
  425.             ;
  426.             C.Na(b.f);
  427.             b.Eb.focus()
  428.         }
  429.         static Dk(a, b) {
  430.             a = new Y(a);
  431.             a.Wa = b;
  432.             C.Na(a.f)
  433.         }
  434.         static Lo(a, b) {
  435.             function c() {
  436.                 let f = new Ra("Failed",null);
  437.                 f.Wa = function() {
  438.                     B.yb()
  439.                 }
  440.                 ;
  441.                 C.Na(f.f)
  442.             }
  443.             function d(f) {
  444.                 f = f.sitekey;
  445.                 if (null == f)
  446.                     throw v.C(null);
  447.                 B.Dk(f, function(g) {
  448.                     e(a, g)
  449.                 })
  450.             }
  451.             C.Na((new Z("Connecting","Connecting...",[])).f);
  452.             let e = null;
  453.             e = function(f, g) {
  454.                 aa.Vl(m.Pe + "api/client", "room=" + f + "&rcr=" + g, aa.Hj).then(function(h) {
  455.                     switch (h.action) {
  456.                     case "connect":
  457.                         h = h.token;
  458.                         if (null == h)
  459.                             throw v.C(null);
  460.                         b(h);
  461.                         break;
  462.                     case "recaptcha":
  463.                         d(h);
  464.                         break;
  465.                     default:
  466.                         throw v.C(null);
  467.                     }
  468.                 }).catch(function() {
  469.                     c()
  470.                 })
  471.             }
  472.             ;
  473.             e(a, "")
  474.         }
  475.         static Zq() {
  476.             let a = Bc.v()
  477.               , b = a.get("c")
  478.               , c = a.get("p");
  479.             a.get("v");
  480.             null != b ? null != c ? B.Hh(b) : B.ag(b) : B.yb()
  481.         }
  482.         static yb() {
  483.             let a = new Sa(m.j.Oh());
  484.             C.Na(a.La);
  485.             a.un = function(b) {
  486.                 if (9 != b.Ed.Rd) {
  487.                     let c;
  488.                     9 > b.Ed.Rd ? (b = "Old version room",
  489.                     c = "The room is running an older version, an update must have happened recently.") : (b = "New version",
  490.                     c = "The room is running a new version of haxball, refresh the site to update.");
  491.                     let d = new Z(b,c,["Ok"]);
  492.                     C.Na(d.f);
  493.                     d.Wa = function() {
  494.                         C.Na(a.La);
  495.                         d.Wa = null
  496.                     }
  497.                 } else
  498.                     b.Ed.Kb ? B.Hh(b.ba) : B.ag(b.ba)
  499.             }
  500.             ;
  501.             a.dt = function() {
  502.                 B.Mo()
  503.             }
  504.             ;
  505.             a.ct = function() {
  506.                 B.Ck(B.yb)
  507.             }
  508.             ;
  509.             a.ft = function() {
  510.                 B.Fk()
  511.             }
  512.             ;
  513.             a.et = function(b) {
  514.                 B.No(b)
  515.             }
  516.         }
  517.         static Fk() {
  518.             let a = new ka(!0)
  519.               , b = window.document.createElement("div");
  520.             b.className = "view-wrapper";
  521.             b.appendChild(a.f);
  522.             C.Na(b);
  523.             a.rb = function() {
  524.                 B.yb()
  525.             }
  526.             ;
  527.             a.fq = function() {
  528.                 let c = new ib
  529.                   , d = window.document.createElement("div");
  530.                 d.className = "view-wrapper";
  531.                 d.appendChild(c.f);
  532.                 C.Na(d);
  533.                 c.rb = function() {
  534.                     B.Fk()
  535.                 }
  536.             }
  537.         }
  538.         static gi(a, b) {
  539.             return "" + pa.location.origin + "/play?c=" + a + (b ? "&p=1" : "")
  540.         }
  541.         static Mo() {
  542.             let a = m.j.ne.v()
  543.               , b = new jb("" + a + "'s room");
  544.             C.Na(b.f);
  545.             b.ji = function() {
  546.                 B.yb()
  547.             }
  548.             ;
  549.             b.kq = function(c) {
  550.                 function d() {
  551.                     if (!c.qt) {
  552.                         var t = new Ob;
  553.                         t.Rd = 9;
  554.                         t.D = g.lc;
  555.                         t.K = g.K.length;
  556.                         t.jf = k.qg + 1;
  557.                         t.vb = f.vb;
  558.                         t.Kb = null != k.Kb;
  559.                         t.Ic = f.Ic;
  560.                         t.Lc = f.Lc;
  561.                         var z = A.ka(16);
  562.                         t.ga(z);
  563.                         k.Oi(z.Rg())
  564.                     }
  565.                 }
  566.                 C.Na((new Z("Creating room","Connecting...",[])).f);
  567.                 let e = null
  568.                   , f = m.j.Oh()
  569.                   , g = new ta;
  570.                 g.lc = c.name;
  571.                 let h = new sa;
  572.                 h.D = a;
  573.                 h.fb = !0;
  574.                 h.country = f.vb;
  575.                 h.Zb = m.j.sh.v();
  576.                 g.K.push(h);
  577.                 let k = new Pb({
  578.                     iceServers: m.hg,
  579.                     uj: m.Pe + "api/host",
  580.                     state: g,
  581.                     version: 9
  582.                 });
  583.                 k.qg = c.Zs - 1;
  584.                 k.Kb = c.password;
  585.                 d();
  586.                 let l = new Ba(k)
  587.                   , n = !1;
  588.                 k.sf = function(t, z) {
  589.                     B.Dk(t, function(J) {
  590.                         z(J);
  591.                         C.Na(l.l.f);
  592.                         n = !0
  593.                     })
  594.                 }
  595.                 ;
  596.                 let r = window.setInterval(function() {
  597.                     k.ua(Ca.pa(k))
  598.                 }, 3E3);
  599.                 k.vl = function(t) {
  600.                     null != g.qa(t) && k.ua(la.pa(t, "Bad actor", !1))
  601.                 }
  602.                 ;
  603.                 k.iq = function(t, z) {
  604.                     let J = z.kc();
  605.                     if (25 < J.length)
  606.                         throw v.C("name too long");
  607.                     let N = z.kc();
  608.                     if (3 < N.length)
  609.                         throw v.C("country too long");
  610.                     z = z.Bb();
  611.                     if (null != z && 2 < z.length)
  612.                         throw v.C("avatar too long");
  613.                     k.ua(Da.pa(t, J, N, z));
  614.                     d()
  615.                 }
  616.                 ;
  617.                 k.jq = function(t) {
  618.                     null != g.qa(t) && k.ua(la.pa(t, null, !1))
  619.                 }
  620.                 ;
  621.                 k.vg = function(t) {
  622.                     e = t;
  623.                     l.Kg = B.gi(t, null != k.Kb);
  624.                     n || (n = !0,
  625.                     C.Na(l.l.f))
  626.                 }
  627.                 ;
  628.                 l.Mh.pq = function(t, z, J, N) {
  629.                     k.Ro(t, z, J, N)
  630.                 }
  631.                 ;
  632.                 l.Mh.qq = function() {
  633.                     d()
  634.                 }
  635.                 ;
  636.                 l.l.le = function() {
  637.                     k.la();
  638.                     l.la();
  639.                     B.yb();
  640.                     window.clearInterval(r)
  641.                 }
  642.                 ;
  643.                 l.$f.Ng = function(t) {
  644.                     k.Kb = t;
  645.                     d();
  646.                     null != e && (l.Kg = B.gi(e, null != k.Kb))
  647.                 }
  648.                 ;
  649.                 l.$f.Em = function(t) {
  650.                     k.Ni(t)
  651.                 }
  652.                 ;
  653.                 l.$f.ce = M(k, k.ce)
  654.             }
  655.         }
  656.         static Hh(a) {
  657.             let b = new kb;
  658.             C.Na(b.f);
  659.             b.Wa = function(c) {
  660.                 null == c ? B.yb() : B.ag(a, c)
  661.             }
  662.         }
  663.         static No(a) {
  664.             try {
  665.                 let b = new hc(new Qb(new Uint8Array(a),new ta,3));
  666.                 b.qe.le = function() {
  667.                     b.la();
  668.                     B.yb()
  669.                 }
  670.                 ;
  671.                 C.Na(b.l.f)
  672.             } catch (b) {
  673.                 let c = v.Mb(b).Gb();
  674.                 if (c instanceof Rb)
  675.                     a = new Z("Incompatible replay version","The replay file is of a different version",["Open player", "Cancel"]),
  676.                     C.Na(a.f),
  677.                     a.Wa = function(d) {
  678.                         0 == d ? (d = window.top.location,
  679.                         window.top.open(d.protocol + "//" + d.hostname + (null != d.port ? ":" + d.port : "") + "/replay?v=" + c.Rd, "_self")) : B.yb()
  680.                     }
  681.                     ;
  682.                 else {
  683.                     let d = new Z("Replay error","Couldn't load the file.",["Ok"]);
  684.                     C.Na(d.f);
  685.                     d.Wa = function() {
  686.                         d.Wa = null;
  687.                         B.yb()
  688.                     }
  689.                 }
  690.             }
  691.         }
  692.         static ag(a, b, c) {
  693.             try {
  694.                 let d = B.Zo()
  695.                   , e = new ta
  696.                   , f = A.ka();
  697.                 f.oc(m.j.ne.v());
  698.                 f.oc(m.j.Oh().vb);
  699.                 f.Fb(m.j.sh.v());
  700.                 let g = new Ea(a,{
  701.                     iceServers: m.hg,
  702.                     uj: m.Cs,
  703.                     state: e,
  704.                     version: 9,
  705.                     st: f.Rg(),
  706.                     password: b,
  707.                     zn: d,
  708.                     Dn: c,
  709.                     Ms: B.Ue
  710.                 })
  711.                   , h = new lb;
  712.                 h.da("Connecting to master...");
  713.                 h.xh.onclick = function() {
  714.                     g.Jd = null;
  715.                     g.rf = null;
  716.                     g.la();
  717.                     B.yb()
  718.                 }
  719.                 ;
  720.                 C.Na(h.f);
  721.                 let k = function(r, t) {
  722.                     r = new Ra(r,t);
  723.                     r.Wa = function() {
  724.                         B.yb()
  725.                     }
  726.                     ;
  727.                     C.Na(r.f)
  728.                 }
  729.                   , l = function() {
  730.                     let r = new Z("Connection Failed","",["Ok"]);
  731.                     r.de.innerHTML = "<p>Failed to connect to room host.</p><p>If this problem persists please see the <a href='https://github.com/haxball/haxball-issues/wiki/Connection-Issues' target='_blank'>troubleshooting guide</a>.</p>";
  732.                     r.Wa = function() {
  733.                         B.yb()
  734.                     }
  735.                     ;
  736.                     C.Na(r.f)
  737.                 }
  738.                   , n = function() {
  739.                     let r = new Ba(g);
  740.                     g.zl = function(t) {
  741.                         r.l.Gf.Ur(g.Dg.hh() | 0, g.Dg.max() | 0);
  742.                         r.l.Gf.Jl.Pn(t)
  743.                     }
  744.                     ;
  745.                     r.Kg = B.gi(a, !1);
  746.                     C.Na(r.l.f);
  747.                     r.l.le = function() {
  748.                         g.Jd = null;
  749.                         g.la();
  750.                         r.la();
  751.                         B.yb()
  752.                     }
  753.                     ;
  754.                     g.Jd = function() {
  755.                         g.Jd = null;
  756.                         r.la();
  757.                         let t = null == r.Od ? null : r.Od.stop();
  758.                         k(g.xk, t)
  759.                     }
  760.                 };
  761.                 g.rf = function(r) {
  762.                     g.rf = null;
  763.                     g.Jd = null;
  764.                     switch (r.pb) {
  765.                     case 1:
  766.                         l();
  767.                         break;
  768.                     case 2:
  769.                         switch (r.reason) {
  770.                         case 4004:
  771.                             B.Lo(a, function(t) {
  772.                                 B.ag(a, b, t)
  773.                             });
  774.                             break;
  775.                         case 4101:
  776.                             null == b ? B.Hh(a) : k(Ea.Bh(r), null);
  777.                             break;
  778.                         default:
  779.                             k(Ea.Bh(r), null)
  780.                         }
  781.                         break;
  782.                     default:
  783.                         k(Ea.Bh(r), null)
  784.                     }
  785.                 }
  786.                 ;
  787.                 g.Jd = function(r) {
  788.                     switch (r) {
  789.                     case 1:
  790.                         h.da("Connecting to peer...");
  791.                         break;
  792.                     case 2:
  793.                         h.da("Awaiting state...");
  794.                         break;
  795.                     case 3:
  796.                         n()
  797.                     }
  798.                 }
  799.                 ;
  800.                 g.uq = function() {
  801.                     h.da("Trying reverse connection...")
  802.                 }
  803.             } catch (d) {
  804.                 c = v.Mb(d).Gb(),
  805.                 pa.console.log(c),
  806.                 c = new Z("Unexpected Error","",[]),
  807.                 c.de.innerHTML = "An error ocurred while attempting to join the room.<br><br>This might be caused by a browser extension, try disabling all extensions and refreshing the site.<br><br>The error has been printed to the inspector console.",
  808.                 C.Na(c.f)
  809.             }
  810.         }
  811.     }
  812.     class mb {
  813.         constructor() {
  814.             this.lb = null;
  815.             this.f = x.Ia(mb.O);
  816.             let a = x.Ba(this.f)
  817.               , b = this;
  818.             a.get("cancel").onclick = function() {
  819.                 H.i(b.ji)
  820.             }
  821.             ;
  822.             this.oi = a.get("pick");
  823.             this.uk = a.get("delete");
  824.             this.Jk = a.get("export");
  825.             let c = a.get("list")
  826.               , d = a.get("file");
  827.             this.Tg();
  828.             this.oi.onclick = function() {
  829.                 null != b.lb && b.lb.Yd().then(function(e) {
  830.                     D.i(b.zg, e)
  831.                 })
  832.             }
  833.             ;
  834.             this.uk.onclick = function() {
  835.                 if (null != b.lb) {
  836.                     var e = b.lb.gn;
  837.                     null != e && (b.lb.La.remove(),
  838.                     b.lb = null,
  839.                     e(),
  840.                     b.Tg())
  841.                 }
  842.             }
  843.             ;
  844.             this.Jk.onclick = function() {
  845.                 null != b.lb && b.lb.Yd().then(function(e) {
  846.                     Sb.Er(e.Ae(), e.D + ".hbs")
  847.                 })
  848.             }
  849.             ;
  850.             this.si(c);
  851.             this.Yl = nb.ei(c);
  852.             window.setTimeout(function() {
  853.                 b.Yl.update()
  854.             }, 0);
  855.             d.onchange = function() {
  856.                 var e = d.files;
  857.                 if (!(1 > e.length)) {
  858.                     e = e.item(0);
  859.                     var f = new FileReader;
  860.                     f.onload = function() {
  861.                         try {
  862.                             var g = f.result;
  863.                             let h = new q;
  864.                             h.cl(g);
  865.                             D.i(b.zg, h)
  866.                         } catch (h) {
  867.                             g = v.Mb(h).Gb(),
  868.                             g instanceof SyntaxError ? D.i(b.mi, "SyntaxError in line: " + Q.Fe(g.lineNumber)) : g instanceof Ta ? D.i(b.mi, g.Xp) : D.i(b.mi, "Error loading stadium file.")
  869.                         }
  870.                     }
  871.                     ;
  872.                     f.readAsText(e)
  873.                 }
  874.             }
  875.         }
  876.         Tg() {
  877.             this.oi.disabled = null == this.lb;
  878.             this.uk.disabled = null == this.lb || null == this.lb.gn;
  879.             this.Jk.disabled = null == this.lb
  880.         }
  881.         jl(a, b, c) {
  882.             let d = window.document.createElement("div");
  883.             d.textContent = a;
  884.             d.className = "elem";
  885.             null != c && d.classList.add("custom");
  886.             let e = {
  887.                 La: d,
  888.                 Yd: b,
  889.                 gn: c
  890.             }
  891.               , f = this;
  892.             d.onclick = function() {
  893.                 null != f.lb && f.lb.La.classList.remove("selected");
  894.                 f.lb = e;
  895.                 d.classList.add("selected");
  896.                 f.Tg()
  897.             }
  898.             ;
  899.             d.ondblclick = function() {
  900.                 f.lb = e;
  901.                 f.Tg();
  902.                 return f.oi.onclick()
  903.             }
  904.             ;
  905.             return d
  906.         }
  907.         si(a) {
  908.             let b = q.Nh()
  909.               , c = 0;
  910.             for (; c < b.length; ) {
  911.                 let e = b[c];
  912.                 ++c;
  913.                 a.appendChild(this.jl(e.D, function() {
  914.                     return Promise.resolve(e)
  915.                 }, null))
  916.             }
  917.             let d = this;
  918.             ob.getAll().then(function(e) {
  919.                 let f = 0;
  920.                 for (; f < e.length; ) {
  921.                     let g = e[f];
  922.                     ++f;
  923.                     let h = g.id;
  924.                     a.appendChild(d.jl(g.name, function() {
  925.                         return ob.get(h)
  926.                     }, function() {
  927.                         return ob.delete(h)
  928.                     }))
  929.                 }
  930.                 d.Yl.update()
  931.             })
  932.         }
  933.     }
  934.     class pb {
  935.         constructor(a) {
  936.             this.f = x.Ia(pb.O);
  937.             x.Ba(this.f).get("features").textContent = a.join(", ")
  938.         }
  939.     }
  940.     class Ua {
  941.         constructor(a, b, c) {
  942.             this.rd = this.ze = null;
  943.             this.xe = [];
  944.             this.tk = 0;
  945.             this.Dl = !1;
  946.             this.gg = [];
  947.             this.bd = [];
  948.             this.Ta = new RTCPeerConnection({
  949.                 iceServers: b
  950.             },Ua.xo);
  951.             let d = this;
  952.             this.Vh = new Promise(function(e) {
  953.                 d.tp = e
  954.             }
  955.             );
  956.             this.Ta.onicecandidate = function(e) {
  957.                 null == e.candidate ? d.tp(d.gg) : (e = e.candidate,
  958.                 null != e.candidate && "" != e.candidate && (null != d.ug && d.ug(e),
  959.                 d.gg.push(e)))
  960.             }
  961.             ;
  962.             for (b = 0; b < c.length; )
  963.                 this.Co(c[b++]);
  964.             this.ba = a
  965.         }
  966.         Wi(a) {
  967.             null == a && (a = 1E4);
  968.             window.clearTimeout(this.ze);
  969.             this.ze = window.setTimeout(M(this, this.rp), a)
  970.         }
  971.         Bo(a, b) {
  972.             let c = this;
  973.             this.vk(this.Ta.setRemoteDescription(a).then(function() {
  974.                 return c.Ta.createAnswer()
  975.             }), b, 500)
  976.         }
  977.         Do() {
  978.             this.vk(this.Ta.createOffer(), [], 1E3)
  979.         }
  980.         vk(a, b, c) {
  981.             let d = this;
  982.             a.then(function(e) {
  983.                 return d.Ta.setLocalDescription(e).then(function() {
  984.                     return e
  985.                 })
  986.             }).then(function(e) {
  987.                 function f() {
  988.                     return e
  989.                 }
  990.                 let g = 0;
  991.                 for (; g < b.length; )
  992.                     d.Nj(b[g++]);
  993.                 return Gc.js(d.Vh, c).then(f, f)
  994.             }).then(function(e) {
  995.                 d.ki(e)
  996.             }).catch(function() {
  997.                 d.fg()
  998.             })
  999.         }
  1000.         Co(a) {
  1001.             let b = {
  1002.                 id: this.bd.length,
  1003.                 negotiated: !0,
  1004.                 ordered: a.ordered
  1005.             };
  1006.             a.reliable || (b.maxRetransmits = 0);
  1007.             a = this.Ta.createDataChannel(a.name, b);
  1008.             a.binaryType = "arraybuffer";
  1009.             let c = this;
  1010.             a.onopen = function() {
  1011.                 let d = 0
  1012.                   , e = c.bd;
  1013.                 for (; d < e.length; )
  1014.                     if ("open" != e[d++].readyState)
  1015.                         return;
  1016.                 null != c.Id && c.Id()
  1017.             }
  1018.             ;
  1019.             a.onclose = function() {
  1020.                 c.fg()
  1021.             }
  1022.             ;
  1023.             a.onmessage = function() {
  1024.                 c.fg()
  1025.             }
  1026.             ;
  1027.             this.bd.push(a)
  1028.         }
  1029.         Nj(a) {
  1030.             let b = this;
  1031.             window.setTimeout(function() {
  1032.                 b.Ta.addIceCandidate(a)
  1033.             }, this.tk)
  1034.         }
  1035.         rp() {
  1036.             this.fg()
  1037.         }
  1038.         fg() {
  1039.             null != this.jd && this.jd();
  1040.             this.la()
  1041.         }
  1042.         la() {
  1043.             this.jk();
  1044.             this.Ta.close()
  1045.         }
  1046.         jk() {
  1047.             window.clearTimeout(this.ze);
  1048.             this.ki = this.Id = this.ug = this.jd = null;
  1049.             this.Ta.onicecandidate = null;
  1050.             this.Ta.ondatachannel = null;
  1051.             this.Ta.onsignalingstatechange = null;
  1052.             this.Ta.oniceconnectionstatechange = null;
  1053.             let a = 0
  1054.               , b = this.bd;
  1055.             for (; a < b.length; ) {
  1056.                 let c = b[a];
  1057.                 ++a;
  1058.                 c.onopen = null;
  1059.                 c.onclose = null;
  1060.                 c.onmessage = null
  1061.             }
  1062.         }
  1063.     }
  1064.  
  1065.     class kb {
  1066.         constructor() {
  1067.             this.f = x.Ia(kb.O);
  1068.             let a = x.Ba(this.f);
  1069.             this.Eb = a.get("input");
  1070.             this.nf = a.get("ok");
  1071.             let b = this;
  1072.             a.get("cancel").onclick = function() {
  1073.                 null != b.Wa && b.Wa(null)
  1074.             }
  1075.             ;
  1076.             this.Eb.maxLength = 30;
  1077.             this.Eb.oninput = function() {
  1078.                 b.A()
  1079.             }
  1080.             ;
  1081.             this.Eb.onkeydown = function(c) {
  1082.                 13 == c.keyCode && b.Hc() && null != b.Wa && b.Wa(b.Eb.value)
  1083.             }
  1084.             ;
  1085.             this.nf.onclick = function() {
  1086.                 b.Hc() && null != b.Wa && b.Wa(b.Eb.value)
  1087.             }
  1088.             ;
  1089.             this.A()
  1090.         }
  1091.         Hc() {
  1092.             let a = this.Eb.value;
  1093.             return 30 >= a.length ? 0 < a.length : !1
  1094.         }
  1095.         A() {
  1096.             this.nf.disabled = !this.Hc()
  1097.         }
  1098.     }
  1099.     class Tb {
  1100.         constructor(a, b) {
  1101.             this.Wj = [];
  1102.             this.jr = /[#@][^\s@#]*$/;
  1103.             this.Qb = a;
  1104.             this.tq = b;
  1105.             a.hidden = !0
  1106.         }
  1107.         Th() {
  1108.             this.dj(null)
  1109.         }
  1110.         fo(a, b) {
  1111.             b = this.jr.exec(O.substr(a, 0, b));
  1112.             if (null != b) {
  1113.                 var c = b[0]
  1114.                   , d = O.substr(c, 1, null).split("")
  1115.                   , e = Tb.To
  1116.                   , f = Array(d.length);
  1117.                 let g = 0
  1118.                   , h = d.length;
  1119.                 for (; g < h; ) {
  1120.                     let l = g++;
  1121.                     f[l] = e(d[l])
  1122.                 }
  1123.                 let k = new RegExp(f.join(".*?"),"i");
  1124.                 this.Wk = "#" == c.charAt(0);
  1125.                 this.Ai = b.index;
  1126.                 this.xr = c.length;
  1127.                 this.im = a;
  1128.                 a = function(l) {
  1129.                     l = k.exec(l.D);
  1130.                     return null == l ? -1 : l.index + l[0].length
  1131.                 }
  1132.                 ;
  1133.                 b = [];
  1134.                 c = 0;
  1135.                 for (d = this.Wj; c < d.length; )
  1136.                     e = d[c],
  1137.                     ++c,
  1138.                     f = a(e),
  1139.                     0 <= f && b.push({
  1140.                         An: f,
  1141.                         item: e
  1142.                     });
  1143.                 b.sort(function(l, n) {
  1144.                     return l.An - n.An
  1145.                 });
  1146.                 this.dj(b)
  1147.             } else
  1148.                 this.dj(null)
  1149.         }
  1150.         Ek(a) {
  1151.             a = this.Wk ? "#" + a.ba : "@" + ba.replace(a.D, " ", "_");
  1152.             this.tq(O.substr(this.im, 0, this.Ai) + a + " " + O.substr(this.im, this.Ai + this.xr, null), this.Ai + a.length + 1)
  1153.         }
  1154.         dj(a) {
  1155.             var b = null != a && 0 != a.length;
  1156.             this.Qb.hidden || x.Nf(this.Qb);
  1157.             this.cd = null;
  1158.             this.Qb.hidden = !b;
  1159.             if (b) {
  1160.                 var c = this;
  1161.                 b = [];
  1162.                 for (var d = 0; d < a.length; ) {
  1163.                     var e = a[d++];
  1164.                     let f = window.document.createElement("div")
  1165.                       , g = e.item;
  1166.                     e = g.D;
  1167.                     this.Wk && (e = "(" + g.ba + ") " + e);
  1168.                     f.textContent = e;
  1169.                     this.Qb.appendChild(f);
  1170.                     f.onclick = function() {
  1171.                         c.Ek(g)
  1172.                     }
  1173.                     ;
  1174.                     b.push({
  1175.                         item: g,
  1176.                         La: f
  1177.                     })
  1178.                 }
  1179.                 this.cd = b;
  1180.                 this.cd[0].La.classList.toggle("selected", !0);
  1181.                 this.zc = 0
  1182.             }
  1183.         }
  1184.         ek(a) {
  1185.             if (null != this.cd) {
  1186.                 var b = this.zc;
  1187.                 this.zc += a;
  1188.                 a = this.cd.length - 1;
  1189.                 0 > this.zc ? this.zc = a : this.zc > a && (this.zc = 0);
  1190.                 a = this.cd[this.zc];
  1191.                 b != this.zc && (a.La.classList.toggle("selected", !0),
  1192.                 this.cd[b].La.classList.toggle("selected", !1));
  1193.                 a = a.La;
  1194.                 b = a.offsetTop;
  1195.                 a = b + a.offsetHeight;
  1196.                 var c = this.Qb.scrollTop + this.Qb.clientHeight;
  1197.                 b < this.Qb.scrollTop ? this.Qb.scrollTop = b : a > c && (this.Qb.scrollTop = a - this.Qb.clientHeight)
  1198.             }
  1199.         }
  1200.         Oo() {
  1201.             null != this.cd && (this.Ek(this.cd[this.zc].item),
  1202.             this.Th())
  1203.         }
  1204.         static To(a) {
  1205.             return -1 != ".$^{[(|)*+?\\".indexOf(a) ? "\\" + a : a
  1206.         }
  1207.     }
  1208.     class Ub {
  1209.         static parse(a) {
  1210.             a.F();
  1211.             let b = [];
  1212.             for (; 0 != a.s.byteLength - a.a; ) {
  1213.                 let c = a.pe(a.Sb())
  1214.                   , d = a.Zl(a.Sb());
  1215.                 try {
  1216.                     let e = new Ob;
  1217.                     e.ma(new K(new DataView(d),!1));
  1218.                     let f = new ic;
  1219.                     f.Ed = e;
  1220.                     f.ba = c;
  1221.                     b.push(f)
  1222.                 } catch (e) {}
  1223.             }
  1224.             return b
  1225.         }
  1226.         static Ss(a, b, c, d) {
  1227.             return Math.acos(Math.sin(a) * Math.sin(c) + Math.cos(a) * Math.cos(c) * Math.cos(b - d))
  1228.         }
  1229.         static ot(a, b) {
  1230.             let c = a.Ic;
  1231.             a = a.Lc;
  1232.             let d = 0;
  1233.             for (; d < b.length; ) {
  1234.                 let e = b[d];
  1235.                 ++d;
  1236.                 let f = e.Ed;
  1237.                 e.We = 6378 * Ub.Ss(.017453292519943295 * f.Ic, .017453292519943295 * f.Lc, .017453292519943295 * c, .017453292519943295 * a);
  1238.                 isFinite(e.We) || (e.We = 22E3)
  1239.             }
  1240.         }
  1241.         static get() {
  1242.             return aa.v(m.Pe + "api/list", "arraybuffer").then(function(a) {
  1243.                 return Ub.parse(new K(new DataView(a),!1))
  1244.             })
  1245.         }
  1246.     }
  1247.     class Va {
  1248.         constructor() {
  1249.             this.list = []
  1250.         }
  1251.         nn(a) {
  1252.             let b = 0
  1253.               , c = a.ob
  1254.               , d = a.Cc
  1255.               , e = 0
  1256.               , f = this.list;
  1257.             for (; e < f.length; ) {
  1258.                 var g = f[e];
  1259.                 ++e;
  1260.                 let h = g.ob;
  1261.                 if (h > c)
  1262.                     break;
  1263.                 if (h == c) {
  1264.                     g = g.Cc;
  1265.                     if (g > d)
  1266.                         break;
  1267.                     g == d && ++d
  1268.                 }
  1269.                 ++b
  1270.             }
  1271.             a.Cc = d;
  1272.             this.list.splice(b, 0, a)
  1273.         }
  1274.         jt(a) {
  1275.             let b = 0
  1276.               , c = 0
  1277.               , d = this.list;
  1278.             for (; c < d.length && !(d[c++].ob >= a); )
  1279.                 ++b;
  1280.             this.list.splice(0, b)
  1281.         }
  1282.         Js(a, b) {
  1283.             let c = this.list;
  1284.             for (; 0 < c.length; )
  1285.                 c.pop();
  1286.             Va.at(a.list, b.list, this.list)
  1287.         }
  1288.         kt(a) {
  1289.             let b = 0
  1290.               , c = this.list
  1291.               , d = 0
  1292.               , e = c.length;
  1293.             for (; d < e; ) {
  1294.                 let f = c[d++];
  1295.                 f.Ce != a && (c[b] = f,
  1296.                 ++b)
  1297.             }
  1298.             for (; c.length > b; )
  1299.                 c.pop()
  1300.         }
  1301.         Ks(a) {
  1302.             let b = 0
  1303.               , c = 0
  1304.               , d = this.list;
  1305.             for (; c < d.length && !(d[c++].ob >= a); )
  1306.                 ++b;
  1307.             return b
  1308.         }
  1309.         static at(a, b, c) {
  1310.             if (0 == a.length)
  1311.                 for (a = 0; a < b.length; )
  1312.                     c.push(b[a++]);
  1313.             else if (0 == b.length)
  1314.                 for (b = 0; b < a.length; )
  1315.                     c.push(a[b++]);
  1316.             else {
  1317.                 let d = 0
  1318.                   , e = a.length
  1319.                   , f = 0
  1320.                   , g = b.length;
  1321.                 for (; ; ) {
  1322.                     let h = a[d]
  1323.                       , k = b[f];
  1324.                     if (h.ob <= k.ob) {
  1325.                         if (c.push(h),
  1326.                         ++d,
  1327.                         d >= e) {
  1328.                             for (; f < g; )
  1329.                                 c.push(b[f++]);
  1330.                             break
  1331.                         }
  1332.                     } else if (c.push(k),
  1333.                     ++f,
  1334.                     f >= g) {
  1335.                         for (; d < e; )
  1336.                             c.push(a[d++]);
  1337.                         break
  1338.                     }
  1339.                 }
  1340.             }
  1341.         }
  1342.     }
  1343.     class jc {
  1344.         constructor() {
  1345.             this.Ga = 0;
  1346.             this.Ak = this.Bk = !1;
  1347.             this.Ve = 0;
  1348.             this.f = window.document.createElement("div");
  1349.             this.f.className = "game-timer-view";
  1350.             this.f.appendChild(this.Eq = this.ee("OVERTIME!", "overtime"));
  1351.             this.f.appendChild(this.Zp = this.ee("0", "digit"));
  1352.             this.f.appendChild(this.Yp = this.ee("0", "digit"));
  1353.             this.f.appendChild(this.ee(":", null));
  1354.             this.f.appendChild(this.Gr = this.ee("0", "digit"));
  1355.             this.f.appendChild(this.Fr = this.ee("0", "digit"))
  1356.         }
  1357.         ee(a, b) {
  1358.             let c = window.document.createElement("span");
  1359.             c.textContent = a;
  1360.             c.className = b;
  1361.             return c
  1362.         }
  1363.         Xr(a) {
  1364.             if (a != this.Ve) {
  1365.                 let b = a % 60
  1366.                   , c = a / 60 | 0;
  1367.                 this.Fr.textContent = "" + b % 10;
  1368.                 this.Gr.textContent = "" + (b / 10 | 0) % 10;
  1369.                 this.Yp.textContent = "" + c % 10;
  1370.                 this.Zp.textContent = "" + (c / 10 | 0) % 10;
  1371.                 this.Ve = a
  1372.             }
  1373.             this.fm();
  1374.             this.gm()
  1375.         }
  1376.         Yr(a) {
  1377.             this.Ga = a;
  1378.             this.fm();
  1379.             this.gm()
  1380.         }
  1381.         fm() {
  1382.             this.Tr(0 != this.Ga && this.Ve > this.Ga)
  1383.         }
  1384.         gm() {
  1385.             this.Zr(this.Ve < this.Ga && this.Ve > this.Ga - 30)
  1386.         }
  1387.         Tr(a) {
  1388.             a != this.Ak && (this.Eq.className = a ? "overtime on" : "overtime",
  1389.             this.Ak = a)
  1390.         }
  1391.         Zr(a) {
  1392.             a != this.Bk && (this.f.className = a ? "game-timer-view time-warn" : "game-timer-view",
  1393.             this.Bk = a)
  1394.         }
  1395.     }
  1396.     class hc {
  1397.         constructor(a) {
  1398.             this.gd = window.performance.now();
  1399.             this.W = new Nb;
  1400.             this.Bd = this.Oe = 0;
  1401.             this.za = a;
  1402.             this.l = new ua(a.xc);
  1403.             let b = new Vb(this.l);
  1404.             b.zi(a.U);
  1405.             window.document.addEventListener("keydown", M(this, this.Fa));
  1406.             window.document.addEventListener("keyup", M(this, this.kd));
  1407.             let c = this;
  1408.             this.W.ul = function(d) {
  1409.                 "ToggleChat" == d && c.l.Ka.Wm()
  1410.             }
  1411.             ;
  1412.             window.requestAnimationFrame(M(this, this.pf));
  1413.             this.Kh = window.setInterval(function() {
  1414.                 c.l.Gf.Dm(c.Bd);
  1415.                 c.Bd = 0
  1416.             }, 1E3);
  1417.             this.Gm(m.j.Sd.v());
  1418.             this.l.f.classList.add("replayer");
  1419.             this.qe = new Fa(a);
  1420.             this.qe.xq = function() {
  1421.                 b.ss(a.U)
  1422.             }
  1423.             ;
  1424.             this.qe.wq = function() {
  1425.                 c.l.ue(null == a.U.M);
  1426.                 b.zi(a.U)
  1427.             }
  1428.             ;
  1429.             this.qe.Al = function() {
  1430.                 c.l.ib.gb.zr()
  1431.             }
  1432.             ;
  1433.             this.l.f.appendChild(this.qe.f);
  1434.             this.ej = window.setInterval(function() {
  1435.                 a.A()
  1436.             }, 50)
  1437.         }
  1438.         la() {
  1439.             window.document.removeEventListener("keydown", M(this, this.Fa));
  1440.             window.document.removeEventListener("keyup", M(this, this.kd));
  1441.             window.onbeforeunload = null;
  1442.             window.cancelAnimationFrame(this.Oe);
  1443.             window.clearInterval(this.Kh);
  1444.             window.clearInterval(this.ej);
  1445.             this.W.la()
  1446.         }
  1447.         pf() {
  1448.             this.Oe = window.requestAnimationFrame(M(this, this.pf));
  1449.             this.za.A();
  1450.             this.Qc()
  1451.         }
  1452.         Qc() {
  1453.             this.qe.A();
  1454.             let a = window.performance.now();
  1455.             1 == m.j.Jh.v() && 28.333333333333336 > a - this.gd || (this.gd = a,
  1456.             this.Bd++,
  1457.             this.Gm(m.j.Sd.v()),
  1458.             0 < this.za.Pd || this.l.A(this.za))
  1459.         }
  1460.         Fa(a) {
  1461.             var b = m.j.Sd;
  1462.             let c = null != m.j.Kd.v().v(a.code);
  1463.             switch (a.keyCode) {
  1464.             case 27:
  1465.                 this.l.Xk() ? this.l.ab(null) : (b = this.l,
  1466.                 b.ue(!b.nd));
  1467.                 a.preventDefault();
  1468.                 break;
  1469.             case 48:
  1470.                 c ? this.W.Fa(a) : b.ha(0);
  1471.                 break;
  1472.             case 49:
  1473.                 c ? this.W.Fa(a) : b.ha(1);
  1474.                 break;
  1475.             case 50:
  1476.                 c ? this.W.Fa(a) : b.ha(2);
  1477.                 break;
  1478.             case 51:
  1479.                 c ? this.W.Fa(a) : b.ha(3);
  1480.                 break;
  1481.             case 52:
  1482.                 c ? this.W.Fa(a) : b.ha(4);
  1483.                 break;
  1484.             case 53:
  1485.                 c ? this.W.Fa(a) : b.ha(5);
  1486.                 break;
  1487.             case 54:
  1488.                 c ? this.W.Fa(a) : b.ha(6);
  1489.                 break;
  1490.             case 55:
  1491.                 c ? this.W.Fa(a) : b.ha(7);
  1492.                 break;
  1493.             default:
  1494.                 this.W.Fa(a)
  1495.             }
  1496.         }
  1497.         kd(a) {
  1498.             this.W.kd(a)
  1499.         }
  1500.         Gm() {
  1501.             let a = m.j.Sd.v()
  1502.               , b = this.l.ib.gb;
  1503.             b.re = m.j.Ei.v();
  1504.             b.Sg = 35;
  1505.             0 >= a ? b.Md = 610 : (b.Md = 0,
  1506.             b.Fg = 1 + .25 * (a - 1))
  1507.         }
  1508.     }
  1509.     class D {
  1510.         static i(a, b) {
  1511.             null != a && a(b)
  1512.         }
  1513.     }
  1514.     class qb {
  1515.         constructor() {
  1516.             this.Rb = -1;
  1517.             this.gb = new U(m.j.ci.v());
  1518.             this.Wc = new jc;
  1519.             this.f = x.Ia(qb.O);
  1520.             let a = x.Ba(this.f);
  1521.             this.Tb = new Wb(a.get("red-score"),0);
  1522.             this.Ob = new Wb(a.get("blue-score"),0);
  1523.             x.replaceWith(a.get("timer"), this.Wc.f);
  1524.             x.replaceWith(a.get("canvas"), this.gb.na)
  1525.         }
  1526.         A(a) {
  1527.             var b = m.j.ci.v();
  1528.             if (this.gb.yp != b) {
  1529.                 let c = this.gb.na;
  1530.                 this.gb = new U(b);
  1531.                 x.replaceWith(c, this.gb.na)
  1532.             }
  1533.             b = a.M;
  1534.             null == b ? this.f.hidden = !0 : (this.f.hidden = !1,
  1535.             this.Wc.Yr(60 * a.Ga),
  1536.             this.Wc.Xr(b.Mc | 0),
  1537.             this.Ob.set(b.Ob),
  1538.             this.Tb.set(b.Tb),
  1539.             this.gb.Qc(a, this.Rb))
  1540.         }
  1541.     }
  1542.     class rb {
  1543.         constructor(a) {
  1544.             this.f = x.Ia(rb.O);
  1545.             let b = x.Ba(this.f);
  1546.             this.lf = b.get("title");
  1547.             this.wi = b.get("reason");
  1548.             this.Un = b.get("ban-btn");
  1549.             this.Wn = b.get("ban-text");
  1550.             this.bf = b.get("kick");
  1551.             this.wd = b.get("close");
  1552.             let c = this;
  1553.             this.Un.onclick = function() {
  1554.                 c.Pj(!c.Yj)
  1555.             }
  1556.             ;
  1557.             this.wd.onclick = function() {
  1558.                 H.i(c.rb)
  1559.             }
  1560.             ;
  1561.             this.bf.onclick = function() {
  1562.                 c.wi.value = "banned";
  1563.                 kc.i(c.li, c.Rb, c.wi.value, c.Yj)
  1564.             }
  1565.             ;
  1566.             this.wi.onkeydown = function(d) {
  1567.                 return d.stopPropagation()
  1568.             }
  1569.             ;
  1570.             this.wi.maxLength = 100;
  1571.             this.Rb = a.Y;
  1572.             this.lf.textContent = "Kick " + a.D;
  1573.             this.Pj(!1)
  1574.         }
  1575.         Pj(a) {
  1576.             this.Yj = a;
  1577.             this.Wn.textContent = a ? "Yes" : "No"
  1578.         }
  1579.     }
  1580.     class Cc {
  1581.         constructor(a) {
  1582.             this.current = 0;
  1583.             this.Fs = a
  1584.         }
  1585.         next() {
  1586.             return this.Fs[this.current++]
  1587.         }
  1588.     }
  1589.     class lc {
  1590.         constructor(a) {
  1591.             function b(d) {
  1592.                 return new Promise(function(e) {
  1593.                     let f = a.file(d).asArrayBuffer();
  1594.                     c.c.decodeAudioData(f, e, function() {
  1595.                         e(null)
  1596.                     })
  1597.                 }
  1598.                 )
  1599.             }
  1600.             this.c = new AudioContext;
  1601.             this.ng = this.c.createGain();
  1602.             this.yi();
  1603.             this.ng.connect(this.c.destination);
  1604.             let c = this;
  1605.             this.Po = Promise.all([b("sounds/chat.wav").then(function(d) {
  1606.                 return c.fk = d
  1607.             }), b("sounds/highlight.wav").then(function(d) {
  1608.                 return c.Rk = d
  1609.             }), b("sounds/kick.wav").then(function(d) {
  1610.                 return c.Bp = d
  1611.             }), b("sounds/goal.wav").then(function(d) {
  1612.                 return c.gp = d
  1613.             }), b("sounds/join.wav").then(function(d) {
  1614.                 return c.zp = d
  1615.             }), b("sounds/leave.wav").then(function(d) {
  1616.                 return c.Fp = d
  1617.             }), b("sounds/crowd.ogg").then(function(d) {
  1618.                 c.Fo = d;
  1619.                 c.pk = new mc(c.Fo,c.c);
  1620.                 c.pk.connect(c.ng)
  1621.             })])
  1622.         }
  1623.         om() {
  1624.             this.c.resume()
  1625.         }
  1626.         ld(a) {
  1627.             let b = this.c.createBufferSource();
  1628.             b.buffer = a;
  1629.             b.connect(this.ng);
  1630.             b.start()
  1631.         }
  1632.         yi() {
  1633.             let a = m.j.Ri.v();
  1634.             m.j.ve.v() || (a = 0);
  1635.             this.ng.gain.value = a
  1636.         }
  1637.     }
  1638.     class Ga {
  1639.     }
  1640.     class Dc {
  1641.         constructor(a, b) {
  1642.             this.x = a;
  1643.             this.y = b
  1644.         }
  1645.     }
  1646.     class sb {
  1647.         static Hp() {
  1648.             if (null != sb.ti)
  1649.                 return sb.ti;
  1650.             sb.ti = new Promise(function(a, b) {
  1651.                 var c = window.grecaptcha;
  1652.                 null != c ? a(c) : (c = window.document.createElement("script"),
  1653.                 c.src = "https://www.google.com/recaptcha/api.js?onload=___recaptchaload&render=explicit",
  1654.                 window.document.head.appendChild(c),
  1655.                 window.___recaptchaload = function() {
  1656.                     a(window.grecaptcha)
  1657.                 }
  1658.                 ,
  1659.                 c.onerror = function() {
  1660.                     b(null)
  1661.                 }
  1662.                 )
  1663.             }
  1664.             );
  1665.             return sb.ti
  1666.         }
  1667.     }
  1668.     class Ba {
  1669.         constructor(a) {
  1670.             this.Zf = null;
  1671.             this.$k = this.Dh = !1;
  1672.             this.gd = window.performance.now();
  1673.             this.Od = null;
  1674.             this.Oe = 0;
  1675.             this.io = new tb(3,1E3);
  1676.             this.W = new Nb;
  1677.             this.Kg = "Waiting for link";
  1678.             this.Gi = this.wm = !1;
  1679.             this.Bd = 0;
  1680.             let b = this;
  1681.             this.$f = new Xb(a,function(d) {
  1682.                 b.l.Ka.Ib(d)
  1683.             }
  1684.             );
  1685.             this.za = a;
  1686.             a.U.Io = function(d) {
  1687.                 b.wm != d && (b.wm = d,
  1688.                 a.ua(Ha.pa(d)))
  1689.             }
  1690.             ;
  1691.             this.l = new ua(a.xc);
  1692.             window.top.document.body.classList.add("hb-playing");
  1693.             this.Mh = new Vb(this.l,a.U.qa(a.xc).D);
  1694.             this.Mh.zi(a.U);
  1695.             this.l.Ka.Bl = M(this, this.hq);
  1696.             this.l.Ka.tg = M(this, this.gq);
  1697.             window.document.addEventListener("keydown", M(this, this.Fa));
  1698.             window.document.addEventListener("keyup", M(this, this.kd));
  1699.             window.onbeforeunload = function() {
  1700.                 return "Are you sure you want to leave the room?"
  1701.             }
  1702.             ;
  1703.             this.W.yg = function(d) {
  1704.                 a.A();
  1705.                 a.ua(d)
  1706.             }
  1707.             ;
  1708.             this.W.ul = function(d) {
  1709.                 "ToggleChat" == d && b.l.Ka.Wm()
  1710.             }
  1711.             ;
  1712.             this.l.Xa.Dq = function(d) {
  1713.                 a.ua(va.pa(1, d))
  1714.             }
  1715.             ;
  1716.             this.l.Xa.vq = function(d) {
  1717.                 a.ua(va.pa(0, d))
  1718.             }
  1719.             ;
  1720.             this.l.zg = function(d) {
  1721.                 a.ua(Ia.pa(d))
  1722.             }
  1723.             ;
  1724.             this.l.Xa.Aq = function() {
  1725.                 a.ua(new Wa)
  1726.             }
  1727.             ;
  1728.             this.l.Xa.Bq = function() {
  1729.                 a.ua(new Xa)
  1730.             }
  1731.             ;
  1732.             this.l.Xa.oq = function() {
  1733.                 b.Xm()
  1734.             }
  1735.             ;
  1736.             this.l.Xa.xg = function(d, e) {
  1737.                 a.ua(fa.pa(d, e))
  1738.             }
  1739.             ;
  1740.             this.l.Xa.me = M(this, this.yr);
  1741.             this.l.Xa.eq = function() {
  1742.                 a.ua(new Ya)
  1743.             }
  1744.             ;
  1745.             this.l.Xa.rq = function() {
  1746.                 Ba.cr(a)
  1747.             }
  1748.             ;
  1749.             this.l.Xa.Cq = function(d) {
  1750.                 a.ua(Ja.pa(d))
  1751.             }
  1752.             ;
  1753.             this.l.Xa.tf = function(d) {
  1754.                 let e = a.U.qa(d);
  1755.                 if (null != e) {
  1756.                     let f = new ub(e,b.Gi);
  1757.                     f.rb = function() {
  1758.                         b.l.ab(null)
  1759.                     }
  1760.                     ;
  1761.                     f.cq = function(g, h) {
  1762.                         a.ua(Ka.pa(g, h))
  1763.                     }
  1764.                     ;
  1765.                     f.li = function() {
  1766.                         b.$r(e)
  1767.                     }
  1768.                     ;
  1769.                     b.l.ab(f.f, function() {
  1770.                         f.A(a.U, b.Gi)
  1771.                     })
  1772.                 }
  1773.             }
  1774.             ;
  1775.             this.l.Xa.yq = function() {
  1776.                 let d = new gb;
  1777.                 d.rb = function() {
  1778.                     b.l.ab(null)
  1779.                 }
  1780.                 ;
  1781.                 b.l.ab(d.f, function() {
  1782.                     d.Sr(b.Kg)
  1783.                 })
  1784.             }
  1785.             ;
  1786.             this.l.Xa.sq = function() {
  1787.                 if (null == b.Od)
  1788.                     b.es();
  1789.                 else {
  1790.                     let d = b.Od.stop();
  1791.                     b.Od = null;
  1792.                     Ba.tm(d)
  1793.                 }
  1794.                 b.l.Xa.Vr(null != b.Od)
  1795.             }
  1796.             ;
  1797.             window.requestAnimationFrame(M(this, this.pf));
  1798.             this.Kh = window.setInterval(function() {
  1799.                 b.l.Gf.Dm(b.Bd);
  1800.                 b.Bd = 0
  1801.             }, 1E3);
  1802.             this.ej = window.setInterval(function() {
  1803.                 a.A()
  1804.             }, 50);
  1805.             var c = m.j.Ad.v();
  1806.             // c = -200 > c ? -200 : 1E3 < c ? 1E3 : c;
  1807.             if ( 0 != c) {
  1808.                 var d = m.j.Ad.v();
  1809.                 a.Cm(d);
  1810.                 this.l.Ka.Ib("Extrapolation set to " + c + " msec")
  1811.             }
  1812.            
  1813.             chatBubbleInfo(this.l.Ka.Ib.bind(this.l.Ka));
  1814.         }
  1815.         es() {
  1816.             this.Od = new nc(this.za,3)
  1817.         }
  1818.         $r(a) {
  1819.             a = new rb(a);
  1820.             let b = this;
  1821.             a.rb = function() {
  1822.                 b.l.ab(null)
  1823.             }
  1824.             ;
  1825.             a.li = function(c, d, e) {
  1826.                 b.za.ua(la.pa(c, d, e));
  1827.                 b.l.ab(null)
  1828.             }
  1829.             ;
  1830.             this.l.ab(a.f)
  1831.         }
  1832.         la() {
  1833.             window.document.removeEventListener("keydown", M(this, this.Fa));
  1834.             window.document.removeEventListener("keyup", M(this, this.kd));
  1835.             window.onbeforeunload = null;
  1836.             window.cancelAnimationFrame(this.Oe);
  1837.             window.top.document.body.classList.remove("hb-playing");
  1838.             this.W.la();
  1839.             window.clearInterval(this.Kh);
  1840.             window.clearInterval(this.ej);
  1841.             window.clearTimeout(this.Zf)
  1842.         }
  1843.         yr(a) {
  1844.             let b = []
  1845.               , c = 0
  1846.               , d = this.za.U.K;
  1847.             for (; c < d.length; ) {
  1848.                 let e = d[c];
  1849.                 ++c;
  1850.                 e.fa == a && b.push(fa.pa(e.Y, u.Oa))
  1851.             }
  1852.             for (a = 0; a < b.length; )
  1853.                 this.za.ua(b[a++])
  1854.         }
  1855.         pf() {
  1856.             this.Oe = window.requestAnimationFrame(M(this, this.pf));
  1857.             this.W.A();
  1858.             this.za.A();
  1859.             this.Qc()
  1860.         }
  1861.         Qc() {
  1862.             var a = window.performance.now();
  1863.             1 == m.j.Jh.v() && 28.333333333333336 > a - this.gd || (this.gd = a,
  1864.             this.Bd++,
  1865.             a = this.za.U.qa(this.za.xc),
  1866.             null != a && (this.Gi = a.fb),
  1867.             this.l.A(this.za))
  1868.         }
  1869.         hq(a) {
  1870.             let b = this;
  1871.             this.$f.uf(a) || this.io.yo(function() {
  1872.                 let c = new Za;
  1873.                 c.$c = a;
  1874.                 b.za.ua(c)
  1875.             })
  1876.         }
  1877.         gq(a) {
  1878.             var b = this;
  1879.             this.Dh = getChatBubbleValue() || a;
  1880.             null == this.Zf && (this.Zf = window.setTimeout(function() {
  1881.                 b.Zf = null;
  1882.                 b.xm(b.Dh)
  1883.             }, 1E3),
  1884.             this.xm(this.Dh))
  1885.         }
  1886.         xm(a) {
  1887.             a != this.$k && (this.za.ua(La.pa(a ? 0 : 1)),
  1888.             this.$k = a)
  1889.         }
  1890.         Xm() {
  1891.             if (null != this.za.U.M) {
  1892.                 let a = new $a;
  1893.                 a.Mf = 120 != this.za.U.M.Ra;
  1894.                 this.za.ua(a)
  1895.             }
  1896.         }
  1897.         Fa(a) {
  1898.             var b = m.j.Sd;
  1899.             let c = null != m.j.Kd.v().v(a.code);
  1900.             switch (a.keyCode) {
  1901.             case 9:
  1902.             case 13:
  1903.                 this.l.Ka.$a.focus({
  1904.                     preventScroll: !0
  1905.                 });
  1906.                 a.preventDefault();
  1907.                 break;
  1908.             case 27:
  1909.                 this.l.Xk() ? this.l.ab(null) : (b = this.l,
  1910.                 b.ue(!b.nd));
  1911.                 a.preventDefault();
  1912.                 break;
  1913.             case 48:
  1914.                 c ? this.W.Fa(a) : b.ha(0);
  1915.                 break;
  1916.             case 49:
  1917.                 c ? this.W.Fa(a) : b.ha(1);
  1918.                 break;
  1919.             case 50:
  1920.                 c ? this.W.Fa(a) : b.ha(2);
  1921.                 break;
  1922.             case 51:
  1923.                 c ? this.W.Fa(a) : b.ha(3);
  1924.                 break;
  1925.             case 52:
  1926.                 c ? this.W.Fa(a) : b.ha(4);
  1927.                 break;
  1928.             case 53:
  1929.                 c ? this.W.Fa(a) : b.ha(5);
  1930.                 break;
  1931.             case 54:
  1932.                 c ? this.W.Fa(a) : b.ha(6);
  1933.                 break;
  1934.             case 55:
  1935.                 c ? this.W.Fa(a) : b.ha(7);
  1936.                 break;
  1937.             case 80:
  1938.                 this.Xm();
  1939.                 break;
  1940.             default:
  1941.                 this.W.Fa(a)
  1942.             }
  1943.         }
  1944.         kd(a) {
  1945.             this.W.kd(a)
  1946.         }
  1947.         static tm(a) {
  1948.             let b = new Date;
  1949.             Sb.Dr(a, "HBReplay-" + b.getFullYear() + "-" + ba.Lf("" + (b.getMonth() + 1)) + "-" + ba.Lf("" + b.getDate()) + "-" + ba.Lf("" + b.getHours()) + "h" + ba.Lf("" + b.getMinutes()) + "m.hbr2")
  1950.         }
  1951.         static cr(a) {
  1952.             var b = a.U.K;
  1953.             let c = [];
  1954.             var d = 0;
  1955.             let e = 0;
  1956.             for (var f = 0; f < b.length; ) {
  1957.                 let g = b[f];
  1958.                 ++f;
  1959.                 g.fa == u.Oa && c.push(g.Y);
  1960.                 g.fa == u.ia ? ++d : g.fa == u.Da && ++e
  1961.             }
  1962.             f = c.length;
  1963.             0 != f && (b = function() {
  1964.                 return c.splice(Math.random() * c.length | 0, 1)[0]
  1965.             }
  1966.             ,
  1967.             e == d ? 2 > f || (a.ua(fa.pa(b(), u.ia)),
  1968.             a.ua(fa.pa(b(), u.Da))) : (d = e > d ? u.ia : u.Da,
  1969.             a.ua(fa.pa(b(), d))))
  1970.         }
  1971.     }
  1972.     class x {
  1973.         static Ba(a) {
  1974.             let b = new Map
  1975.               , c = 0;
  1976.             for (a = a.querySelectorAll("[data-hook]"); c < a.length; ) {
  1977.                 let d = a[c++];
  1978.                 b.set(d.getAttribute("data-hook"), d)
  1979.             }
  1980.             return b
  1981.         }
  1982.         static Ia(a, b) {
  1983.             null == b && (b = "div");
  1984.             b = window.document.createElement(b);
  1985.             b.innerHTML = a;
  1986.             return b.firstElementChild
  1987.         }
  1988.         static replaceWith(a, b) {
  1989.             a.parentElement.replaceChild(b, a)
  1990.         }
  1991.         static Nf(a) {
  1992.             let b = a.firstChild;
  1993.             for (; null != b; )
  1994.                 a.removeChild(b),
  1995.                 b = a.firstChild
  1996.         }
  1997.     }
  1998.     class vb {
  1999.         constructor(a) {
  2000.             this.ol = a.get("notice");
  2001.             this.zo = a.get("notice-contents");
  2002.             this.wd = a.get("notice-close");
  2003.             this.em()
  2004.         }
  2005.         em() {
  2006.             let a = this;
  2007.             aa.Lk(m.Pe + "api/notice").then(function(b) {
  2008.                 let c = b.content;
  2009.                 null != c && "" != c && vb.no != c && (a.zo.innerHTML = c,
  2010.                 a.ol.hidden = !1,
  2011.                 a.wd.onclick = function() {
  2012.                     vb.no = c;
  2013.                     return a.ol.hidden = !0
  2014.                 }
  2015.                 )
  2016.             })
  2017.         }
  2018.     }
  2019.     class oc {
  2020.         constructor(a) {
  2021.             this.f = a;
  2022.             let b = x.Ba(a);
  2023.             this.Yn = b.get("sound-bar");
  2024.             this.up = b.get("sound-icon");
  2025.             this.Xn = b.get("sound-bar-bg");
  2026.             let c = this;
  2027.             b.get("sound-btn").onclick = function() {
  2028.                 m.j.ve.ha(!m.j.ve.v());
  2029.                 c.A()
  2030.             }
  2031.             ;
  2032.             b.get("sound-slider").onmousedown = function(d) {
  2033.                 function e(g) {
  2034.                     g.preventDefault();
  2035.                     {
  2036.                         let h = c.Xn.getBoundingClientRect();
  2037.                         g = (g.clientY - h.top) / h.height
  2038.                     }
  2039.                     g = 1 - g;
  2040.                     m.j.Ri.ha(1 < g ? 1 : 0 > g ? 0 : g);
  2041.                     m.j.ve.ha(!0);
  2042.                     c.A()
  2043.                 }
  2044.                 e(d);
  2045.                 let f = null;
  2046.                 f = function(g) {
  2047.                     e(g);
  2048.                     a.classList.toggle("dragging", !1);
  2049.                     window.document.removeEventListener("mousemove", e, !1);
  2050.                     window.document.removeEventListener("mouseup", f, !1)
  2051.                 }
  2052.                 ;
  2053.                 a.classList.toggle("dragging", !0);
  2054.                 window.document.addEventListener("mousemove", e, !1);
  2055.                 window.document.addEventListener("mouseup", f, !1)
  2056.             }
  2057.             ;
  2058.             this.A()
  2059.         }
  2060.         A() {
  2061.             let a = m.j.Ri.v()
  2062.               , b = !m.j.ve.v();
  2063.             if (this.Ep != a || this.Dp != b)
  2064.                 this.Ep = a,
  2065.                 (this.Dp = b) && (a = 0),
  2066.                 this.up.className = "icon-" + (0 >= a ? "volume-off" : .5 >= a ? "volume-down" : "volume-up"),
  2067.                 this.Yn.style.top = 100 * (1 - a) + "%",
  2068.                 m.Pa.yi()
  2069.         }
  2070.     }
  2071.     class kc {
  2072.         static i(a, b, c, d) {
  2073.             null != a && a(b, c, d)
  2074.         }
  2075.     }
  2076.     class Z {
  2077.         constructor(a, b, c) {
  2078.             this.f = x.Ia(Z.O);
  2079.             var d = x.Ba(this.f);
  2080.             d.get("ok");
  2081.             d.get("cancel");
  2082.             this.de = d.get("content");
  2083.             let e = d.get("title");
  2084.             d = d.get("buttons");
  2085.             let f = 0
  2086.               , g = this
  2087.               , h = 0;
  2088.             for (; h < c.length; ) {
  2089.                 let k = c[h++]
  2090.                   , l = f++
  2091.                   , n = window.document.createElement("button");
  2092.                 n.textContent = k;
  2093.                 n.onclick = function() {
  2094.                     D.i(g.Wa, l)
  2095.                 }
  2096.                 ;
  2097.                 d.appendChild(n)
  2098.             }
  2099.             this.de.textContent = b;
  2100.             e.textContent = a
  2101.         }
  2102.     }
  2103.     class pc {
  2104.         constructor() {}
  2105.     }
  2106.     class wb {
  2107.         constructor(a) {
  2108.             this.D = a.D;
  2109.             this.Ab = a.Ab;
  2110.             this.ba = a.Y;
  2111.             this.f = x.Ia(wb.O);
  2112.             let b = x.Ba(this.f);
  2113.             this.lf = b.get("name");
  2114.             this.Cg = b.get("ping");
  2115.             try {
  2116.                 b.get("flag").classList.add("f-" + a.country)
  2117.             } catch (d) {}
  2118.             this.lf.textContent = this.D;
  2119.             //this.Cg.textContent = "" + this.Ab;
  2120.             this.Cg.textContent = "" + this.Ab;
  2121.             let c = this;
  2122.             this.f.ondragstart = function(d) {
  2123.                 d.dataTransfer.setData("player", Q.Fe(c.ba))
  2124.             }
  2125.             ;
  2126.             this.f.oncontextmenu = function(d) {
  2127.                 d.preventDefault();
  2128.                 D.i(c.tf, c.ba)
  2129.             }
  2130.             ;
  2131.             this.Am(a.fb)
  2132.         }
  2133.         A(a, b) {
  2134.             this.f.draggable = b;
  2135.             this.Ab != a.Ab && (this.Ab = a.Ab,
  2136.             this.Cg.textContent = "" + this.Ab);
  2137.             this.Qn != a.fb && this.Am(a.fb)
  2138.         }
  2139.         Am(a) {
  2140.             this.Qn = a;
  2141.             this.f.className = "player-list-item" + (a ? " admin" : "")
  2142.         }
  2143.     }
  2144.     class m {
  2145.     }
  2146.     class Ma {
  2147.         static i(a, b, c) {
  2148.             null != a && a(b, c)
  2149.         }
  2150.     }
  2151.     class p {
  2152.         constructor() {
  2153.             p.zb || this.Za()
  2154.         }
  2155.         Za() {
  2156.             this.Cc = 0
  2157.         }
  2158.         wn() {
  2159.             return !0
  2160.         }
  2161.         apply() {
  2162.             throw v.C("missing implementation");
  2163.         }
  2164.         xa() {
  2165.             throw v.C("missing implementation");
  2166.         }
  2167.         wa() {
  2168.             throw v.C("missing implementation");
  2169.         }
  2170.         static Ha(a) {
  2171.             null == a.delay && (a.delay = !0);
  2172.             null == a.Ca && (a.Ca = !0);
  2173.             return a
  2174.         }
  2175.         static Ja(a) {
  2176.             a.Jn = p.Jf;
  2177.             if (null == a.Aa)
  2178.                 throw v.C("Class doesn't have a config");
  2179.             a.prototype.Kf = a.Aa;
  2180.             p.mn.set(p.Jf, a);
  2181.             p.Jf++
  2182.         }
  2183.         static wj(a, b) {
  2184.             let c = w.jn(a).Jn;
  2185.             if (null == c)
  2186.                 throw v.C("Tried to pack unregistered action");
  2187.             b.m(c);
  2188.             a.wa(b)
  2189.         }
  2190.         static mh(a) {
  2191.             var b = a.F();
  2192.             b = Object.create(p.mn.get(b).prototype);
  2193.             b.Cc = 0;
  2194.             b.ob = 0;
  2195.             b.xa(a);
  2196.             return b
  2197.         }
  2198.     }
  2199.     class qc {
  2200.     }
  2201.     class ca {
  2202.         constructor() {
  2203.             this.jc = -1;
  2204.             this.ic = null;
  2205.             this.Tb = this.Ob = this.Mc = this.Ra = 0;
  2206.             this.ie = u.ia;
  2207.             this.yc = this.Db = 0;
  2208.             this.va = new ab;
  2209.             this.Ga = 0;
  2210.             this.kb = 5;
  2211.             this.T = null
  2212.         }
  2213.         vp(a) {
  2214.             this.Qa = a;
  2215.             this.kb = a.kb;
  2216.             this.Ga = a.Ga;
  2217.             this.T = a.T;
  2218.             this.va.L = this.T.L;
  2219.             this.va.ta = this.T.ta;
  2220.             this.va.X = this.T.X;
  2221.             this.va.qb = this.T.qb;
  2222.             a = 0;
  2223.             let b = this.T.H;
  2224.             for (; a < b.length; )
  2225.                 this.va.H.push(b[a++].Sp());
  2226.             this.Yk()
  2227.         }
  2228.         Uk(a) {
  2229.             if (a.fa == u.Oa)
  2230.                 a.J = null;
  2231.             else {
  2232.                 a.W = 0;
  2233.                 var b = a.J;
  2234.                 null == b && (b = new wa,
  2235.                 a.J = b,
  2236.                 this.va.H.push(b));
  2237.                 var c = this.T.Ld;
  2238.                 b.S = 0;
  2239.                 b.V = c.V;
  2240.                 b.ca = c.ca;
  2241.                 b.Ea = c.Ea;
  2242.                 b.o = c.o;
  2243.                 b.h = 39;
  2244.                 b.B = a.fa.B | c.B;
  2245.                 var d = a.fa == u.ia ? this.T.Nd : this.T.vd;
  2246.                 0 == d.length ? (b.a.x = a.fa.Gh * this.T.bc,
  2247.                 b.a.y = 0) : (a = b.a,
  2248.                 d = d[d.length - 1],
  2249.                 a.x = d.x,
  2250.                 a.y = d.y);
  2251.                 d = b.G;
  2252.                 d.x = 0;
  2253.                 d.y = 0;
  2254.                 b = b.ra;
  2255.                 c = c.ra;
  2256.                 b.x = c.x;
  2257.                 b.y = c.y
  2258.             }
  2259.         }
  2260.         A(a) {
  2261.             if (0 < this.Ra)
  2262.                 120 > this.Ra && this.Ra--;
  2263.             else {
  2264.                 var b = this.Qa.ut;
  2265.                 null != b && b();
  2266.                 b = this.Qa.K;
  2267.                 for (var c = 0; c < b.length; ) {
  2268.                     var d = b[c];
  2269.                     ++c;
  2270.                     if (null != d.J) {
  2271.                         0 == (d.W & 16) && (d.Yb = !1);
  2272.                         var e = this.T.Ld;
  2273.                         0 < d.Zc && d.Zc--;
  2274.                         d.Ac < this.Qa.ke && d.Ac++;
  2275.                         if (d.Yb && 0 >= d.Zc && 0 <= d.Ac) {
  2276.                             for (var f = !1, g = 0, h = this.va.H; g < h.length; ) {
  2277.                                 var k = h[g];
  2278.                                 ++g;
  2279.                                 if (0 != (k.B & 64) && k != d.J) {
  2280.                                     var l = k.a
  2281.                                       , n = d.J.a
  2282.                                       , r = l.x - n.x;
  2283.                                     l = l.y - n.y;
  2284.                                     n = Math.sqrt(r * r + l * l);
  2285.                                     if (4 > n - k.V - d.J.V) {
  2286.                                         f = r / n;
  2287.                                         r = l / n;
  2288.                                         l = e.cf;
  2289.                                         var t = n = k.G;
  2290.                                         k = k.ca;
  2291.                                         n.x = t.x + f * l * k;
  2292.                                         n.y = t.y + r * l * k;
  2293.                                         t = d.J;
  2294.                                         k = -e.df;
  2295.                                         n = l = t.G;
  2296.                                         t = t.ca;
  2297.                                         l.x = n.x + f * k * t;
  2298.                                         l.y = n.y + r * k * t;
  2299.                                         f = !0
  2300.                                     }
  2301.                                 }
  2302.                             }
  2303.                             f && (null != this.Qa.ri && this.Qa.ri(d),
  2304.                             d.Yb = !1,
  2305.                             d.Zc = this.Qa.Hd,
  2306.                             d.Ac -= this.Qa.fd)
  2307.                         }
  2308.                         f = d.W;
  2309.                         h = g = 0;
  2310.                         0 != (f & 1) && --h;
  2311.                         0 != (f & 2) && ++h;
  2312.                         0 != (f & 4) && --g;
  2313.                         0 != (f & 8) && ++g;
  2314.                         0 != g && 0 != h && (f = Math.sqrt(g * g + h * h),
  2315.                         g /= f,
  2316.                         h /= f);
  2317.                         f = d.J.G;
  2318.                         k = d.Yb ? e.ef : e.Ne;
  2319.                         f.x += g * k;
  2320.                         f.y += h * k;
  2321.                         d.J.Ea = d.Yb ? e.ff : e.Ea
  2322.                     }
  2323.                 }
  2324.                 c = 0;
  2325.                 d = this.va.H;
  2326.                 e = 0;
  2327.                 for (g = d.length; e < g; )
  2328.                     f = e++,
  2329.                     h = d[f],
  2330.                     0 != (h.B & 128) && (ca.wk[c] = f,
  2331.                     f = ca.rl[c],
  2332.                     h = h.a,
  2333.                     f.x = h.x,
  2334.                     f.y = h.y,
  2335.                     ++c);
  2336.                 this.va.A(a);
  2337.                 if (0 == this.Db) {
  2338.                     for (a = 0; a < b.length; )
  2339.                         c = b[a],
  2340.                         ++a,
  2341.                         null != c.J && (c.J.h = 39 | this.ie.Cp);
  2342.                     b = this.va.H[0].G;
  2343.                     0 < b.x * b.x + b.y * b.y && (this.Db = 1)
  2344.                 } else if (1 == this.Db) {
  2345.                     this.Mc += .016666666666666666;
  2346.                     for (a = 0; a < b.length; )
  2347.                         d = b[a],
  2348.                         ++a,
  2349.                         null != d.J && (d.J.h = 39);
  2350.                     d = u.Oa;
  2351.                     b = this.va.H;
  2352.                     for (a = 0; a < c && (d = a++,
  2353.                     d = this.T.jo(b[ca.wk[d]].a, ca.rl[d]),
  2354.                     d == u.Oa); )
  2355.                         ;
  2356.                     d != u.Oa ? (this.Db = 2,
  2357.                     this.yc = 150,
  2358.                     this.ie = d,
  2359.                     d == u.ia ? this.Ob++ : this.Tb++,
  2360.                     null != this.Qa.Xi && this.Qa.Xi(d.Ag),
  2361.                     null != this.Qa.km && this.Qa.km(d.ba)) : 0 < this.Ga && this.Mc >= 60 * this.Ga && this.Tb != this.Ob && (null != this.Qa.Zi && this.Qa.Zi(),
  2362.                     this.Pm())
  2363.                 } else if (2 == this.Db)
  2364.                     this.yc--,
  2365.                     0 >= this.yc && (0 < this.kb && (this.Tb >= this.kb || this.Ob >= this.kb) || 0 < this.Ga && this.Mc >= 60 * this.Ga && this.Tb != this.Ob ? this.Pm() : (this.Yk(),
  2366.                     null != this.Qa.Nq && this.Qa.Nq()));
  2367.                 else if (3 == this.Db && (this.yc--,
  2368.                 0 >= this.yc && (b = this.Qa,
  2369.                 null != b.M))) {
  2370.                     b.M = null;
  2371.                     a = 0;
  2372.                     for (c = b.K; a < c.length; )
  2373.                         d = c[a],
  2374.                         ++a,
  2375.                         d.J = null,
  2376.                         d.Nb = 0;
  2377.                     null != b.Hf && b.Hf(null)
  2378.                 }
  2379.             }
  2380.         }
  2381.         Pm() {
  2382.             this.yc = 300;
  2383.             this.Db = 3;
  2384.             null != this.Qa.Yi && this.Qa.Yi(this.Tb > this.Ob ? u.ia : u.Da)
  2385.         }
  2386.         Yk() {
  2387.             let a = this.Qa.K;
  2388.             this.Db = 0;
  2389.             for (var b = this.T.H, c = this.va.H, d = 0, e = this.T.Af ? b.length : 1; d < e; ) {
  2390.                 var f = d++;
  2391.                 b[f].Tk(c[f])
  2392.             }
  2393.             b = [0, 0, 0];
  2394.             for (c = 0; c < a.length; )
  2395.                 if (d = a[c],
  2396.                 ++c,
  2397.                 this.Uk(d),
  2398.                 e = d.fa,
  2399.                 e != u.Oa) {
  2400.                     f = d.J.a;
  2401.                     var g = this.T
  2402.                       , h = b[e.ba]
  2403.                       , k = e == u.ia ? g.Nd : g.vd;
  2404.                     0 == k.length ? (k = h + 1 >> 1,
  2405.                     0 == (h & 1) && (k = -k),
  2406.                     g = g.mc * e.Gh,
  2407.                     h = 55 * k) : (h >= k.length && (h = k.length - 1),
  2408.                     h = k[h],
  2409.                     g = h.x,
  2410.                     h = h.y);
  2411.                     f.x = g;
  2412.                     f.y = h;
  2413.                     b[e.ba]++;
  2414.                     d.Nb = b[e.ba]
  2415.                 }
  2416.         }
  2417.         ga(a) {
  2418.             this.va.ga(a);
  2419.             a.P(this.yc);
  2420.             a.P(this.Db);
  2421.             a.P(this.Tb);
  2422.             a.P(this.Ob);
  2423.             a.u(this.Mc);
  2424.             a.P(this.Ra);
  2425.             a.m(this.ie.ba)
  2426.         }
  2427.         ma(a, b) {
  2428.             this.va.ma(a);
  2429.             this.yc = a.N();
  2430.             this.Db = a.N();
  2431.             this.Tb = a.N();
  2432.             this.Ob = a.N();
  2433.             this.Mc = a.w();
  2434.             this.Ra = a.N();
  2435.             a = a.wf();
  2436.             this.ie = 1 == a ? u.ia : 2 == a ? u.Da : u.Oa;
  2437.             this.Qa = b;
  2438.             this.kb = b.kb;
  2439.             this.Ga = b.Ga;
  2440.             this.T = b.T;
  2441.             this.va.L = this.T.L;
  2442.             this.va.X = this.T.X;
  2443.             this.va.ta = this.T.ta;
  2444.             this.va.qb = this.T.qb
  2445.         }
  2446.         uc() {
  2447.             let a = qa.Bc
  2448.               , b = this.ic;
  2449.             this.jc != a && (null == b && (this.ic = b = new ca),
  2450.             this.jc = a,
  2451.             ca.zd(b, this));
  2452.             return b
  2453.         }
  2454.         static zd(a, b) {
  2455.             a.Qa = b.Qa.uc();
  2456.             a.kb = b.kb;
  2457.             a.Ga = b.Ga;
  2458.             a.va = b.va.uc();
  2459.             a.yc = b.yc;
  2460.             a.Db = b.Db;
  2461.             a.Tb = b.Tb;
  2462.             a.Ob = b.Ob;
  2463.             a.Mc = b.Mc;
  2464.             a.Ra = b.Ra;
  2465.             a.T = b.T;
  2466.             a.ie = b.ie
  2467.         }
  2468.     }
  2469.     class xb {
  2470.         constructor() {
  2471.             this.S = 0;
  2472.             this.we = 1 / 0;
  2473.             this.Jb = this.fc = 100;
  2474.             this.ge = this.he = 0
  2475.         }
  2476.         ga(a) {
  2477.             a.m(this.ge);
  2478.             a.m(this.he);
  2479.             a.u(this.Jb);
  2480.             a.u(this.fc);
  2481.             a.u(this.we);
  2482.             a.P(this.S)
  2483.         }
  2484.         ma(a) {
  2485.             this.ge = a.F();
  2486.             this.he = a.F();
  2487.             this.Jb = a.w();
  2488.             this.fc = a.w();
  2489.             this.we = a.w();
  2490.             this.S = a.N()
  2491.         }
  2492.         A(a) {
  2493.             var b = a[this.ge];
  2494.             a = a[this.he];
  2495.             if (null != b && null != a) {
  2496.                 var c = b.a
  2497.                   , d = a.a
  2498.                   , e = c.x - d.x;
  2499.                 c = c.y - d.y;
  2500.                 var f = Math.sqrt(e * e + c * c);
  2501.                 if (!(0 >= f)) {
  2502.                     e /= f;
  2503.                     c /= f;
  2504.                     d = b.ca / (b.ca + a.ca);
  2505.                     d != d && (d = .5);
  2506.                     if (this.Jb >= this.fc) {
  2507.                         var g = this.Jb;
  2508.                         var h = 0
  2509.                     } else if (f <= this.Jb)
  2510.                         g = this.Jb,
  2511.                         h = 1;
  2512.                     else if (f >= this.fc)
  2513.                         g = this.fc,
  2514.                         h = -1;
  2515.                     else
  2516.                         return;
  2517.                     f = g - f;
  2518.                     if (0 == 0 * this.we)
  2519.                         d = this.we * f * .5,
  2520.                         e *= d,
  2521.                         c *= d,
  2522.                         h = d = b.G,
  2523.                         b = b.ca,
  2524.                         d.x = h.x + e * b,
  2525.                         d.y = h.y + c * b,
  2526.                         d = b = a.G,
  2527.                         a = a.ca,
  2528.                         b.x = d.x + -e * a,
  2529.                         b.y = d.y + -c * a;
  2530.                     else {
  2531.                         g = f * d;
  2532.                         var k = b.a
  2533.                           , l = b.a;
  2534.                         k.x = l.x + e * g * .5;
  2535.                         k.y = l.y + c * g * .5;
  2536.                         l = k = a.a;
  2537.                         f -= g;
  2538.                         k.x = l.x - e * f * .5;
  2539.                         k.y = l.y - c * f * .5;
  2540.                         f = b.G;
  2541.                         g = a.G;
  2542.                         f = e * (f.x - g.x) + c * (f.y - g.y);
  2543.                         0 >= f * h && (d *= f,
  2544.                         b = h = b.G,
  2545.                         h.x = b.x - e * d,
  2546.                         h.y = b.y - c * d,
  2547.                         a = b = a.G,
  2548.                         d = f - d,
  2549.                         b.x = a.x + e * d,
  2550.                         b.y = a.y + c * d)
  2551.                     }
  2552.                 }
  2553.             }
  2554.         }
  2555.     }
  2556.     class Ta {
  2557.         constructor(a) {
  2558.             this.Xp = a
  2559.         }
  2560.     }
  2561.     class ab {
  2562.         constructor() {
  2563.             this.jc = -1;
  2564.             this.ic = null;
  2565.             this.H = []
  2566.         }
  2567.         ga(a) {
  2568.             a.m(this.H.length);
  2569.             let b = 0
  2570.               , c = this.H.length;
  2571.             for (; b < c; ) {
  2572.                 let d = b++
  2573.                   , e = this.H[d];
  2574.                 e.Fl = d;
  2575.                 e.ga(a)
  2576.             }
  2577.         }
  2578.         ma(a) {
  2579.             this.H = [];
  2580.             let b = a.F()
  2581.               , c = 0;
  2582.             for (; c < b; ) {
  2583.                 ++c;
  2584.                 let d = new wa;
  2585.                 d.ma(a);
  2586.                 this.H.push(d)
  2587.             }
  2588.         }
  2589.         A(a) {
  2590.             for (var b = 0, c = this.H; b < c.length; ) {
  2591.                 var d = c[b];
  2592.                 ++b;
  2593.                 var e = d.a
  2594.                   , f = d.a
  2595.                   , g = d.G;
  2596.                 e.x = f.x + g.x * a;
  2597.                 e.y = f.y + g.y * a;
  2598.                 f = e = d.G;
  2599.                 g = d.ra;
  2600.                 d = d.Ea;
  2601.                 e.x = (f.x + g.x) * d;
  2602.                 e.y = (f.y + g.y) * d
  2603.             }
  2604.             a = 0;
  2605.             for (b = this.H.length; a < b; ) {
  2606.                 d = a++;
  2607.                 c = this.H[d];
  2608.                 d += 1;
  2609.                 for (e = this.H.length; d < e; )
  2610.                     f = this.H[d++],
  2611.                     0 != (f.h & c.B) && 0 != (f.B & c.h) && c.oo(f);
  2612.                 if (0 != c.ca) {
  2613.                     d = 0;
  2614.                     for (e = this.ta; d < e.length; )
  2615.                         if (f = e[d],
  2616.                         ++d,
  2617.                         0 != (f.h & c.B) && 0 != (f.B & c.h)) {
  2618.                             g = f.ya;
  2619.                             var h = c.a;
  2620.                             g = f.Va - (g.x * h.x + g.y * h.y) + c.V;
  2621.                             if (0 < g) {
  2622.                                 var k = h = c.a
  2623.                                   , l = f.ya;
  2624.                                 h.x = k.x + l.x * g;
  2625.                                 h.y = k.y + l.y * g;
  2626.                                 g = c.G;
  2627.                                 h = f.ya;
  2628.                                 g = g.x * h.x + g.y * h.y;
  2629.                                 0 > g && (g *= c.o * f.o + 1,
  2630.                                 k = h = c.G,
  2631.                                 f = f.ya,
  2632.                                 h.x = k.x - f.x * g,
  2633.                                 h.y = k.y - f.y * g)
  2634.                             }
  2635.                         }
  2636.                     d = 0;
  2637.                     for (e = this.X; d < e.length; )
  2638.                         f = e[d],
  2639.                         ++d,
  2640.                         0 != (f.h & c.B) && 0 != (f.B & c.h) && c.po(f);
  2641.                     d = 0;
  2642.                     for (e = this.L; d < e.length; )
  2643.                         if (f = e[d],
  2644.                         ++d,
  2645.                         0 != (f.h & c.B) && 0 != (f.B & c.h) && (h = c.a,
  2646.                         k = f.a,
  2647.                         g = h.x - k.x,
  2648.                         h = h.y - k.y,
  2649.                         k = g * g + h * h,
  2650.                         0 < k && k <= c.V * c.V)) {
  2651.                             k = Math.sqrt(k);
  2652.                             g /= k;
  2653.                             h /= k;
  2654.                             k = c.V - k;
  2655.                             let n = l = c.a;
  2656.                             l.x = n.x + g * k;
  2657.                             l.y = n.y + h * k;
  2658.                             k = c.G;
  2659.                             k = g * k.x + h * k.y;
  2660.                             0 > k && (k *= c.o * f.o + 1,
  2661.                             l = f = c.G,
  2662.                             f.x = l.x - g * k,
  2663.                             f.y = l.y - h * k)
  2664.                         }
  2665.                 }
  2666.             }
  2667.             for (a = 0; 2 > a; )
  2668.                 for (++a,
  2669.                 b = 0,
  2670.                 c = this.qb; b < c.length; )
  2671.                     c[b++].A(this.H)
  2672.         }
  2673.         uc() {
  2674.             let a = qa.Bc
  2675.               , b = this.ic;
  2676.             this.jc != a && (null == b && (this.ic = b = new ab),
  2677.             this.jc = a,
  2678.             ab.zd(b, this));
  2679.             return b
  2680.         }
  2681.         static zd(a, b) {
  2682.             if (null == b.H)
  2683.                 a.H = null;
  2684.             else {
  2685.                 null == a.H && (a.H = []);
  2686.                 let d = a.H
  2687.                   , e = b.H;
  2688.                 for (var c = e.length; d.length > c; )
  2689.                     d.pop();
  2690.                 c = 0;
  2691.                 let f = e.length;
  2692.                 for (; c < f; ) {
  2693.                     let g = c++;
  2694.                     d[g] = e[g].uc()
  2695.                 }
  2696.             }
  2697.             a.L = b.L;
  2698.             a.X = b.X;
  2699.             a.ta = b.ta;
  2700.             a.qb = b.qb
  2701.         }
  2702.     }
  2703.     class Ob {
  2704.         constructor() {}
  2705.         dk() {
  2706.             this.D = ha.Xc(this.D, 40);
  2707.             this.vb = ha.Xc(this.vb, 3)
  2708.         }
  2709.         ga(a) {
  2710.             this.dk();
  2711.             a.Ua = !0;
  2712.             a.Xb(this.Rd);
  2713.             a.en(this.D);
  2714.             a.en(this.vb);
  2715.             a.gj(this.Ic);
  2716.             a.gj(this.Lc);
  2717.             a.m(this.Kb ? 1 : 0);
  2718.             a.m(this.jf);
  2719.             a.m(this.K);
  2720.             a.Ua = !1
  2721.         }
  2722.         ma(a) {
  2723.             a.Ua = !0;
  2724.             this.Rd = a.Sb();
  2725.             this.D = a.am();
  2726.             this.vb = a.am();
  2727.             this.Ic = a.ui();
  2728.             this.Lc = a.ui();
  2729.             this.Kb = 0 != a.F();
  2730.             this.jf = a.F();
  2731.             this.K = a.F();
  2732.             a.Ua = !1;
  2733.             if (30 < this.K || 30 < this.jf)
  2734.                 throw v.C(null);
  2735.             this.dk()
  2736.         }
  2737.     }
  2738.     class Hc {
  2739.         static uf(a) {
  2740.             a = a.split(" ");
  2741.             let b = a[4];
  2742.             if ("typ" != a[6])
  2743.                 throw v.C(null);
  2744.             return {
  2745.                 qs: a[7],
  2746.                 wp: b
  2747.             }
  2748.         }
  2749.     }
  2750.     class Bc {
  2751.         static uf(a) {
  2752.             let b = new rc("([^&=]+)=?([^&]*)","g");
  2753.             a = a.substring(1);
  2754.             var c = 0;
  2755.             let d = new Map;
  2756.             for (; b.Xs(a, c); ) {
  2757.                 c = b.sn(1);
  2758.                 c = decodeURIComponent(c.split("+").join(" "));
  2759.                 let e = b.sn(2);
  2760.                 d.set(c, decodeURIComponent(e.split("+").join(" ")));
  2761.                 c = b.Ys();
  2762.                 c = c.xj + c.Vs
  2763.             }
  2764.             return d
  2765.         }
  2766.         static v() {
  2767.             return Bc.uf(window.top.location.search)
  2768.         }
  2769.     }
  2770.     class Sb {
  2771.         static Dr(a, b) {
  2772.             Sb.sm(new Blob([a],{
  2773.                 type: "octet/stream"
  2774.             }), b)
  2775.         }
  2776.         static Er(a, b) {
  2777.             Sb.sm(new Blob([a],{
  2778.                 type: "text/plain"
  2779.             }), b)
  2780.         }
  2781.         static sm(a, b) {
  2782.             let c = window.document.createElement("a");
  2783.             c.style.display = "display: none";
  2784.             window.document.body.appendChild(c);
  2785.             a = URL.createObjectURL(a);
  2786.             c.href = a;
  2787.             c.download = b;
  2788.             c.click();
  2789.             URL.revokeObjectURL(a);
  2790.             c.remove()
  2791.         }
  2792.     }
  2793.     class T {
  2794.         constructor() {}
  2795.         os() {
  2796.             return "idkey." + this.jj + "." + this.kj + "." + this.rk
  2797.         }
  2798.         bs(a) {
  2799.             try {
  2800.                 let b = A.ka(1024);
  2801.                 b.m(1);
  2802.                 let c = b.a;
  2803.                 b.Xb(0);
  2804.                 let d = b.a;
  2805.                 b.oc(this.jj);
  2806.                 b.oc(this.kj);
  2807.                 b.Lb(a);
  2808.                 let e = b.a - d;
  2809.                 b.s.setUint16(c, e, b.Ua);
  2810.                 let f = new Uint8Array(b.s.buffer,b.s.byteOffset + d,e);
  2811.                 return window.crypto.subtle.sign(T.Im, this.Wl, f).then(function(g) {
  2812.                     b.Ug(g);
  2813.                     return b.Wb()
  2814.                 })
  2815.             } catch (b) {
  2816.                 return Promise.reject(v.Mb(b).Gb())
  2817.             }
  2818.         }
  2819.         static Wo() {
  2820.             try {
  2821.                 return window.crypto.subtle.generateKey(T.qh, !0, ["sign", "verify"]).then(function(a) {
  2822.                     let b = a.privateKey;
  2823.                     return window.crypto.subtle.exportKey("jwk", b).then(function(c) {
  2824.                         let d = c.y
  2825.                           , e = c.d
  2826.                           , f = new T;
  2827.                         f.jj = c.x;
  2828.                         f.kj = d;
  2829.                         f.rk = e;
  2830.                         f.Wl = b;
  2831.                         return f
  2832.                     })
  2833.                 })
  2834.             } catch (a) {
  2835.                 return Promise.reject(v.Mb(a).Gb())
  2836.             }
  2837.         }
  2838.         static Vo(a) {
  2839.             a = a.split(".");
  2840.             if (4 != a.length || "idkey" != a[0])
  2841.                 return Promise.reject("Invalid id format");
  2842.             let b = a[1]
  2843.               , c = a[2]
  2844.               , d = a[3];
  2845.             return T.Es(b, c, d).then(function(e) {
  2846.                 let f = new T;
  2847.                 f.jj = b;
  2848.                 f.kj = c;
  2849.                 f.rk = d;
  2850.                 f.Wl = e;
  2851.                 return f
  2852.             })
  2853.         }
  2854.         static xs(a, b) {
  2855.             try {
  2856.                 let c = new K(new DataView(a.buffer,a.byteOffset,a.byteLength),!1);
  2857.                 c.F();
  2858.                 let d = c.tb(c.Sb())
  2859.                   , e = c.tb()
  2860.                   , f = new K(new DataView(d.buffer,d.byteOffset,d.byteLength),!1)
  2861.                   , g = f.kc()
  2862.                   , h = f.kc()
  2863.                   , k = f.tb();
  2864.                 if (k.byteLength != b.byteLength)
  2865.                     return Promise.reject(null);
  2866.                 a = 0;
  2867.                 let l = k.byteLength;
  2868.                 for (; a < l; ) {
  2869.                     let n = a++;
  2870.                     if (k[n] != b[n])
  2871.                         return Promise.reject(null)
  2872.                 }
  2873.                 return T.Ds(g, h).then(function(n) {
  2874.                     return window.crypto.subtle.verify(T.Im, n, e, d)
  2875.                 }).then(function(n) {
  2876.                     if (!n)
  2877.                         throw v.C(null);
  2878.                     return g
  2879.                 })
  2880.             } catch (c) {
  2881.                 return Promise.reject(v.Mb(c).Gb())
  2882.             }
  2883.         }
  2884.         static Es(a, b, c) {
  2885.             try {
  2886.                 return window.crypto.subtle.importKey("jwk", {
  2887.                     crv: "P-256",
  2888.                     ext: !0,
  2889.                     key_ops: ["sign"],
  2890.                     kty: "EC",
  2891.                     d: c,
  2892.                     x: a,
  2893.                     y: b
  2894.                 }, T.qh, !0, ["sign"])
  2895.             } catch (d) {
  2896.                 return Promise.reject(v.Mb(d).Gb())
  2897.             }
  2898.         }
  2899.         static Ds(a, b) {
  2900.             try {
  2901.                 return window.crypto.subtle.importKey("jwk", {
  2902.                     crv: "P-256",
  2903.                     ext: !0,
  2904.                     key_ops: ["verify"],
  2905.                     kty: "EC",
  2906.                     x: a,
  2907.                     y: b
  2908.                 }, T.qh, !0, ["verify"])
  2909.             } catch (c) {
  2910.                 return Promise.reject(v.Mb(c).Gb())
  2911.             }
  2912.         }
  2913.     }
  2914.     class Na {
  2915.         constructor(a) {
  2916.             this.Gd = new Map;
  2917.             this.f = x.Ia(Na.O);
  2918.             this.f.className += " " + a.Go;
  2919.             let b = x.Ba(this.f);
  2920.             this.eb = b.get("list");
  2921.             this.Zh = b.get("join-btn");
  2922.             this.Di = b.get("reset-btn");
  2923.             a == u.Oa && this.Di.remove();
  2924.             this.Zh.textContent = "" + a.D;
  2925.             this.f.ondragover = this.f.wt = function(d) {
  2926.                 -1 != d.dataTransfer.types.indexOf("player") && d.preventDefault()
  2927.             }
  2928.             ;
  2929.             let c = this;
  2930.             this.f.ondrop = function(d) {
  2931.                 d.preventDefault();
  2932.                 d = d.dataTransfer.getData("player");
  2933.                 null != d && (d = Q.parseInt(d),
  2934.                 null != d && Ma.i(c.xg, d, a))
  2935.             }
  2936.             ;
  2937.             this.Zh.onclick = function() {
  2938.                 D.i(c.lq, a)
  2939.             }
  2940.             ;
  2941.             this.Di.onclick = function() {
  2942.                 D.i(c.me, a)
  2943.             }
  2944.         }
  2945.         A(a, b, c, d) {
  2946.             this.Zh.disabled = b || c;
  2947.             this.Di.disabled = c;
  2948.             b = new Set;
  2949.             c = this.Gd.keys();
  2950.             for (var e = c.next(); !e.done; ) {
  2951.                 var f = e.value;
  2952.                 e = c.next();
  2953.                 b.add(f)
  2954.             }
  2955.             let g = this;
  2956.             for (c = 0; c < a.length; )
  2957.                 e = a[c],
  2958.                 ++c,
  2959.                 f = this.Gd.get(e.Y),
  2960.                 null == f && (f = new wb(e),
  2961.                 f.tf = function(h) {
  2962.                     D.i(g.tf, h)
  2963.                 }
  2964.                 ,
  2965.                 this.Gd.set(e.Y, f),
  2966.                 this.eb.appendChild(f.f)),
  2967.                 f.A(e, d),
  2968.                 b.delete(e.Y);
  2969.             d = b.values();
  2970.             for (b = d.next(); !b.done; )
  2971.                 c = b.value,
  2972.                 b = d.next(),
  2973.                 this.Gd.get(c).f.remove(),
  2974.                 this.Gd.delete(c);
  2975.             d = 0;
  2976.             for (b = a.length - 1; d < b; )
  2977.                 e = d++,
  2978.                 c = this.Gd.get(a[e].Y).f,
  2979.                 e = this.Gd.get(a[e + 1].Y).f,
  2980.                 c.nextSibling != e && this.eb.insertBefore(c, e)
  2981.         }
  2982.     }
  2983.     class R {
  2984.         constructor() {
  2985.             this.B = 32;
  2986.             this.h = 63;
  2987.             this.o = 1;
  2988.             this.Va = 0;
  2989.             this.ya = new P(0,0)
  2990.         }
  2991.         ga(a) {
  2992.             let b = this.ya;
  2993.             a.u(b.x);
  2994.             a.u(b.y);
  2995.             a.u(this.Va);
  2996.             a.u(this.o);
  2997.             a.P(this.h);
  2998.             a.P(this.B)
  2999.         }
  3000.         ma(a) {
  3001.             let b = this.ya;
  3002.             b.x = a.w();
  3003.             b.y = a.w();
  3004.             this.Va = a.w();
  3005.             this.o = a.w();
  3006.             this.h = a.N();
  3007.             this.B = a.N()
  3008.         }
  3009.     }
  3010.     class G {
  3011.         constructor() {
  3012.             this.Dd = 0;
  3013.             this.B = 32;
  3014.             this.h = 63;
  3015.             this.o = 1;
  3016.             this.a = new P(0,0)
  3017.         }
  3018.         ga(a) {
  3019.             let b = this.a;
  3020.             a.u(b.x);
  3021.             a.u(b.y);
  3022.             a.u(this.o);
  3023.             a.P(this.h);
  3024.             a.P(this.B)
  3025.         }
  3026.         ma(a) {
  3027.             let b = this.a;
  3028.             b.x = a.w();
  3029.             b.y = a.w();
  3030.             this.o = a.w();
  3031.             this.h = a.N();
  3032.             this.B = a.N()
  3033.         }
  3034.     }
  3035.     class w {
  3036.         static jn(a) {
  3037.             if (null == a)
  3038.                 return null;
  3039.             if (a instanceof Array)
  3040.                 return Array;
  3041.             {
  3042.                 let b = a.g;
  3043.                 if (null != b)
  3044.                     return b;
  3045.                 a = w.Kj(a);
  3046.                 return null != a ? w.Nn(a) : null
  3047.             }
  3048.         }
  3049.         static Me(a, b) {
  3050.             if (null == a)
  3051.                 return "null";
  3052.             if (5 <= b.length)
  3053.                 return "<...>";
  3054.             var c = typeof a;
  3055.             "function" == c && (a.b || a.Tf) && (c = "object");
  3056.             switch (c) {
  3057.             case "function":
  3058.                 return "<function>";
  3059.             case "object":
  3060.                 if (a.Hb) {
  3061.                     var d = yb[a.Hb].$d[a.pb];
  3062.                     c = d.wc;
  3063.                     if (d.Le) {
  3064.                         b += "\t";
  3065.                         var e = []
  3066.                           , f = 0;
  3067.                         for (d = d.Le; f < d.length; ) {
  3068.                             let g = d[f];
  3069.                             f += 1;
  3070.                             e.push(w.Me(a[g], b))
  3071.                         }
  3072.                         a = e;
  3073.                         return c + "(" + a.join(",") + ")"
  3074.                     }
  3075.                     return c
  3076.                 }
  3077.                 if (a instanceof Array) {
  3078.                     c = "[";
  3079.                     b += "\t";
  3080.                     e = 0;
  3081.                     for (f = a.length; e < f; )
  3082.                         d = e++,
  3083.                         c += (0 < d ? "," : "") + w.Me(a[d], b);
  3084.                     return c += "]"
  3085.                 }
  3086.                 try {
  3087.                     e = a.toString
  3088.                 } catch (g) {
  3089.                     return "???"
  3090.                 }
  3091.                 if (null != e && e != Object.toString && "function" == typeof e && (c = a.toString(),
  3092.                 "[object Object]" != c))
  3093.                     return c;
  3094.                 c = "{\n";
  3095.                 b += "\t";
  3096.                 e = null != a.hasOwnProperty;
  3097.                 f = null;
  3098.                 for (f in a)
  3099.                     e && !a.hasOwnProperty(f) || "prototype" == f || "__class__" == f || "__super__" == f || "__interfaces__" == f || "__properties__" == f || (2 != c.length && (c += ", \n"),
  3100.                     c += b + f + " : " + w.Me(a[f], b));
  3101.                 b = b.substring(1);
  3102.                 return c += "\n" + b + "}";
  3103.             case "string":
  3104.                 return a;
  3105.             default:
  3106.                 return String(a)
  3107.             }
  3108.         }
  3109.         static Ij(a, b) {
  3110.             for (; ; ) {
  3111.                 if (null == a)
  3112.                     return !1;
  3113.                 if (a == b)
  3114.                     return !0;
  3115.                 let c = a.qd;
  3116.                 if (null != c && (null == a.ja || a.ja.qd != c)) {
  3117.                     let d = 0
  3118.                       , e = c.length;
  3119.                     for (; d < e; ) {
  3120.                         let f = c[d++];
  3121.                         if (f == b || w.Ij(f, b))
  3122.                             return !0
  3123.                     }
  3124.                 }
  3125.                 a = a.ja
  3126.             }
  3127.         }
  3128.         static Ln(a, b) {
  3129.             if (null == b)
  3130.                 return !1;
  3131.             switch (b) {
  3132.             case Array:
  3133.                 return a instanceof Array;
  3134.             case Ec:
  3135.                 return "boolean" == typeof a;
  3136.             case Lc:
  3137.                 return null != a;
  3138.             case E:
  3139.                 return "number" == typeof a;
  3140.             case Yb:
  3141.                 return "number" == typeof a ? (a | 0) === a : !1;
  3142.             case String:
  3143.                 return "string" == typeof a;
  3144.             default:
  3145.                 if (null != a)
  3146.                     if ("function" == typeof b) {
  3147.                         if (w.Kn(a, b))
  3148.                             return !0
  3149.                     } else {
  3150.                         if ("object" == typeof b && w.Mn(b) && a instanceof b)
  3151.                             return !0
  3152.                     }
  3153.                 else
  3154.                     return !1;
  3155.                 return b == Mc && null != a.b || b == Nc && null != a.Tf ? !0 : null != a.Hb ? yb[a.Hb] == b : !1
  3156.             }
  3157.         }
  3158.         static Kn(a, b) {
  3159.             return a instanceof b ? !0 : b.Jj ? w.Ij(w.jn(a), b) : !1
  3160.         }
  3161.         static I(a, b) {
  3162.             if (null == a || w.Ln(a, b))
  3163.                 return a;
  3164.             throw v.C("Cannot cast " + Q.Fe(a) + " to " + Q.Fe(b));
  3165.         }
  3166.         static Kj(a) {
  3167.             a = w.On.call(a).slice(8, -1);
  3168.             return "Object" == a || "Function" == a || "Math" == a || "JSON" == a ? null : a
  3169.         }
  3170.         static Mn(a) {
  3171.             return null != w.Kj(a)
  3172.         }
  3173.         static Nn(a) {
  3174.             return pa[a]
  3175.         }
  3176.     }
  3177.     class xa {
  3178.         constructor(a, b, c, d) {
  3179.             this.D = a;
  3180.             this.Bs = d;
  3181.             this.di = b;
  3182.             d = null;
  3183.             null != b && (d = b.getItem(a));
  3184.             this.dn = c(d)
  3185.         }
  3186.         v() {
  3187.             return this.dn
  3188.         }
  3189.         ha(a) {
  3190.             this.dn = a;
  3191.             if (null != this.di)
  3192.                 try {
  3193.                     let b = this.Bs(a);
  3194.                     null == b ? this.di.removeItem(this.D) : this.di.setItem(this.D, b)
  3195.                 } catch (b) {}
  3196.         }
  3197.     }
  3198.     class K {
  3199.         constructor(a, b) {
  3200.             null == b && (b = !1);
  3201.             this.s = a;
  3202.             this.Ua = b;
  3203.             this.a = 0
  3204.         }
  3205.         tb(a) {
  3206.             null == a && (a = this.s.byteLength - this.a);
  3207.             if (this.a + a > this.s.byteLength)
  3208.                 throw v.C("Read too much");
  3209.             let b = new Uint8Array(this.s.buffer,this.s.byteOffset + this.a,a);
  3210.             this.a += a;
  3211.             return b
  3212.         }
  3213.         Zl(a) {
  3214.             let b = this.tb(a);
  3215.             a = new ArrayBuffer(a);
  3216.             (new Uint8Array(a)).set(b);
  3217.             return a
  3218.         }
  3219.         wf() {
  3220.             return this.s.getInt8(this.a++)
  3221.         }
  3222.         F() {
  3223.             return this.s.getUint8(this.a++)
  3224.         }
  3225.         vi() {
  3226.             let a = this.s.getInt16(this.a, this.Ua);
  3227.             this.a += 2;
  3228.             return a
  3229.         }
  3230.         Sb() {
  3231.             let a = this.s.getUint16(this.a, this.Ua);
  3232.             this.a += 2;
  3233.             return a
  3234.         }
  3235.         N() {
  3236.             let a = this.s.getInt32(this.a, this.Ua);
  3237.             this.a += 4;
  3238.             return a
  3239.         }
  3240.         jb() {
  3241.             let a = this.s.getUint32(this.a, this.Ua);
  3242.             this.a += 4;
  3243.             return a
  3244.         }
  3245.         ui() {
  3246.             let a = this.s.getFloat32(this.a, this.Ua);
  3247.             this.a += 4;
  3248.             return a
  3249.         }
  3250.         w() {
  3251.             let a = this.s.getFloat64(this.a, this.Ua);
  3252.             this.a += 8;
  3253.             return a
  3254.         }
  3255.         Cb() {
  3256.             let a = this.a, b = 0, c, d = 0;
  3257.             do
  3258.                 c = this.s.getUint8(a + b),
  3259.                 5 > b && (d |= (c & 127) << 7 * b >>> 0),
  3260.                 ++b;
  3261.             while (0 != (c & 128));
  3262.             this.a += b;
  3263.             return d | 0
  3264.         }
  3265.         pe(a) {
  3266.             let b = this.a, c, d = "";
  3267.             for (a = b + a; b < a; )
  3268.                 c = K.Ho(this.s, b),
  3269.                 b += c.length,
  3270.                 d += String.fromCodePoint(c.char);
  3271.             if (b != a)
  3272.                 throw v.C("Actual string length differs from the specified: " + (b - a) + " bytes");
  3273.             this.a = b;
  3274.             return d
  3275.         }
  3276.         Bb() {
  3277.             let a = this.Cb();
  3278.             return 0 >= a ? null : this.pe(a - 1)
  3279.         }
  3280.         kc() {
  3281.             return this.pe(this.Cb())
  3282.         }
  3283.         am() {
  3284.             return this.pe(this.F())
  3285.         }
  3286.         Gg() {
  3287.             let a = this.kc();
  3288.             return JSON.parse(a)
  3289.         }
  3290.         static Ho(a, b) {
  3291.             var c = a.getUint8(b);
  3292.             let d, e, f, g, h = b;
  3293.             if (0 == (c & 128))
  3294.                 ++b;
  3295.             else if (192 == (c & 224))
  3296.                 d = a.getUint8(b + 1),
  3297.                 c = (c & 31) << 6 | d & 63,
  3298.                 b += 2;
  3299.             else if (224 == (c & 240))
  3300.                 d = a.getUint8(b + 1),
  3301.                 e = a.getUint8(b + 2),
  3302.                 c = (c & 15) << 12 | (d & 63) << 6 | e & 63,
  3303.                 b += 3;
  3304.             else if (240 == (c & 248))
  3305.                 d = a.getUint8(b + 1),
  3306.                 e = a.getUint8(b + 2),
  3307.                 f = a.getUint8(b + 3),
  3308.                 c = (c & 7) << 18 | (d & 63) << 12 | (e & 63) << 6 | f & 63,
  3309.                 b += 4;
  3310.             else if (248 == (c & 252))
  3311.                 d = a.getUint8(b + 1),
  3312.                 e = a.getUint8(b + 2),
  3313.                 f = a.getUint8(b + 3),
  3314.                 g = a.getUint8(b + 4),
  3315.                 c = (c & 3) << 24 | (d & 63) << 18 | (e & 63) << 12 | (f & 63) << 6 | g & 63,
  3316.                 b += 5;
  3317.             else if (252 == (c & 254))
  3318.                 d = a.getUint8(b + 1),
  3319.                 e = a.getUint8(b + 2),
  3320.                 f = a.getUint8(b + 3),
  3321.                 g = a.getUint8(b + 4),
  3322.                 a = a.getUint8(b + 5),
  3323.                 c = (c & 1) << 30 | (d & 63) << 24 | (e & 63) << 18 | (f & 63) << 12 | (g & 63) << 6 | a & 63,
  3324.                 b += 6;
  3325.             else
  3326.                 throw v.C("Cannot decode UTF8 character at offset " + b + ": charCode (" + c + ") is invalid");
  3327.             return {
  3328.                 char: c,
  3329.                 length: b - h
  3330.             }
  3331.         }
  3332.     }
  3333.     class O {
  3334.         static nj(a, b) {
  3335.             a = a.charCodeAt(b);
  3336.             if (a == a)
  3337.                 return a
  3338.         }
  3339.         static substr(a, b, c) {
  3340.             if (null == c)
  3341.                 c = a.length;
  3342.             else if (0 > c)
  3343.                 if (0 == b)
  3344.                     c = a.length + c;
  3345.                 else
  3346.                     return "";
  3347.             return a.substr(b, c)
  3348.         }
  3349.         static remove(a, b) {
  3350.             b = a.indexOf(b);
  3351.             if (-1 == b)
  3352.                 return !1;
  3353.             a.splice(b, 1);
  3354.             return !0
  3355.         }
  3356.         static now() {
  3357.             return Date.now()
  3358.         }
  3359.     }
  3360.     class Gc {
  3361.         static js(a, b) {
  3362.             return new Promise(function(c, d) {
  3363.                 let e = window.setTimeout(function() {
  3364.                     d("Timed out")
  3365.                 }, b);
  3366.                 a.then(function(f) {
  3367.                     window.clearTimeout(e);
  3368.                     c(f)
  3369.                 }, function(f) {
  3370.                     window.clearTimeout(e);
  3371.                     d(f)
  3372.                 })
  3373.             }
  3374.             )
  3375.         }
  3376.     }
  3377.     class ib {
  3378.         constructor() {
  3379.             this.Df = null;
  3380.             this.f = x.Ia(ib.O);
  3381.             var a = x.Ba(this.f);
  3382.             let b = this;
  3383.             a.get("cancel").onclick = function() {
  3384.                 H.i(b.rb)
  3385.             }
  3386.             ;
  3387.             this.yh = a.get("change");
  3388.             this.yh.disabled = !0;
  3389.             this.yh.onclick = function() {
  3390.                 null != b.Df && b.um(b.Df.index)
  3391.             }
  3392.             ;
  3393.             a = a.get("list");
  3394.             this.si(a);
  3395.             let c = nb.ei(a);
  3396.             window.setTimeout(function() {
  3397.                 c.update()
  3398.             }, 0)
  3399.         }
  3400.         si(a) {
  3401.             let b = this
  3402.               , c = 0
  3403.               , d = Ga.eb.length >> 2;
  3404.             for (; c < d; ) {
  3405.                 var e = c++;
  3406.                 let f = e
  3407.                   , g = Ga.eb[e << 2];
  3408.                 e = Ga.eb[(e << 2) + 1].toLowerCase();
  3409.                 let h = window.document.createElement("div");
  3410.                 h.className = "elem";
  3411.                 h.innerHTML = '<div class="flagico f-' + e + '"></div> ' + g;
  3412.                 a.appendChild(h);
  3413.                 h.onclick = function() {
  3414.                     null != b.Df && b.Df.La.classList.remove("selected");
  3415.                     b.yh.disabled = !1;
  3416.                     b.Df = {
  3417.                         La: h,
  3418.                         index: f
  3419.                     };
  3420.                     h.classList.add("selected")
  3421.                 }
  3422.                 ;
  3423.                 h.ondblclick = function() {
  3424.                     b.um(f)
  3425.                 }
  3426.             }
  3427.         }
  3428.         um(a) {
  3429.             let b = new ma;
  3430.             b.vb = Ga.eb[(a << 2) + 1].toLowerCase();
  3431.             b.Ic = Ga.eb[(a << 2) + 2];
  3432.             b.Lc = Ga.eb[(a << 2) + 3];
  3433.             m.j.Ye.ha(b);
  3434.             H.i(this.rb)
  3435.         }
  3436.     }
  3437.     class wa {
  3438.         constructor() {
  3439.             this.jc = -1;
  3440.             this.ic = null;
  3441.             this.Fl = 0;
  3442.             this.h = this.B = 63;
  3443.             this.ak = 0;
  3444.             this.S = 16777215;
  3445.             this.Ea = .99;
  3446.             this.ca = 1;
  3447.             this.o = .5;
  3448.             this.V = 10;
  3449.             this.ra = new P(0,0);
  3450.             this.G = new P(0,0);
  3451.             this.a = new P(0,0)
  3452.         }
  3453.         ga(a) {
  3454.             var b = this.a;
  3455.             a.u(b.x);
  3456.             a.u(b.y);
  3457.             b = this.G;
  3458.             a.u(b.x);
  3459.             a.u(b.y);
  3460.             b = this.ra;
  3461.             a.u(b.x);
  3462.             a.u(b.y);
  3463.             a.u(this.V);
  3464.             a.u(this.o);
  3465.             a.u(this.ca);
  3466.             a.u(this.Ea);
  3467.             a.ub(this.S);
  3468.             a.P(this.h);
  3469.             a.P(this.B)
  3470.         }
  3471.         ma(a) {
  3472.             var b = this.a;
  3473.             b.x = a.w();
  3474.             b.y = a.w();
  3475.             b = this.G;
  3476.             b.x = a.w();
  3477.             b.y = a.w();
  3478.             b = this.ra;
  3479.             b.x = a.w();
  3480.             b.y = a.w();
  3481.             this.V = a.w();
  3482.             this.o = a.w();
  3483.             this.ca = a.w();
  3484.             this.Ea = a.w();
  3485.             this.S = a.jb();
  3486.             this.h = a.N();
  3487.             this.B = a.N()
  3488.         }
  3489.         oo(a) {
  3490.             var b = this.a
  3491.               , c = a.a
  3492.               , d = b.x - c.x;
  3493.             b = b.y - c.y;
  3494.             var e = a.V + this.V
  3495.               , f = d * d + b * b;
  3496.             if (0 < f && f <= e * e) {
  3497.                 f = Math.sqrt(f);
  3498.                 d /= f;
  3499.                 b /= f;
  3500.                 c = this.ca / (this.ca + a.ca);
  3501.                 e -= f;
  3502.                 f = e * c;
  3503.                 var g = this.a
  3504.                   , h = this.a;
  3505.                 g.x = h.x + d * f;
  3506.                 g.y = h.y + b * f;
  3507.                 h = g = a.a;
  3508.                 e -= f;
  3509.                 g.x = h.x - d * e;
  3510.                 g.y = h.y - b * e;
  3511.                 e = this.G;
  3512.                 f = a.G;
  3513.                 e = d * (e.x - f.x) + b * (e.y - f.y);
  3514.                 0 > e && (e *= this.o * a.o + 1,
  3515.                 c *= e,
  3516.                 g = f = this.G,
  3517.                 f.x = g.x - d * c,
  3518.                 f.y = g.y - b * c,
  3519.                 a = f = a.G,
  3520.                 c = e - c,
  3521.                 f.x = a.x + d * c,
  3522.                 f.y = a.y + b * c)
  3523.             }
  3524.         }
  3525.         po(a) {
  3526.             if (0 != 0 * a.wb) {
  3527.                 var b = a.Z.a;
  3528.                 var c = a.ea.a;
  3529.                 var d = c.x - b.x;
  3530.                 var e = c.y - b.y
  3531.                   , f = this.a;
  3532.                 var g = f.x - c.x;
  3533.                 c = f.y - c.y;
  3534.                 f = this.a;
  3535.                 if (0 >= (f.x - b.x) * d + (f.y - b.y) * e || 0 <= g * d + c * e)
  3536.                     return;
  3537.                 d = a.ya;
  3538.                 b = d.x;
  3539.                 d = d.y;
  3540.                 g = b * g + d * c
  3541.             } else {
  3542.                 d = a.fe;
  3543.                 g = this.a;
  3544.                 b = g.x - d.x;
  3545.                 d = g.y - d.y;
  3546.                 g = a.Og;
  3547.                 c = a.Pg;
  3548.                 if ((0 < g.x * b + g.y * d && 0 < c.x * b + c.y * d) == 0 >= a.wb)
  3549.                     return;
  3550.                 c = Math.sqrt(b * b + d * d);
  3551.                 if (0 == c)
  3552.                     return;
  3553.                 g = c - a.qk;
  3554.                 b /= c;
  3555.                 d /= c
  3556.             }
  3557.             c = a.Gc;
  3558.             if (0 == c)
  3559.                 0 > g && (g = -g,
  3560.                 b = -b,
  3561.                 d = -d);
  3562.             else if (0 > c && (c = -c,
  3563.             g = -g,
  3564.             b = -b,
  3565.             d = -d),
  3566.             g < -c)
  3567.                 return;
  3568.             g >= this.V || (g = this.V - g,
  3569.             e = c = this.a,
  3570.             c.x = e.x + b * g,
  3571.             c.y = e.y + d * g,
  3572.             g = this.G,
  3573.             g = b * g.x + d * g.y,
  3574.             0 > g && (g *= this.o * a.o + 1,
  3575.             c = a = this.G,
  3576.             a.x = c.x - b * g,
  3577.             a.y = c.y - d * g))
  3578.         }
  3579.         uc() {
  3580.             let a = qa.Bc
  3581.               , b = this.ic;
  3582.             this.jc != a && (null == b && (this.ic = b = new wa),
  3583.             this.jc = a,
  3584.             wa.zd(b, this));
  3585.             return b
  3586.         }
  3587.         static zd(a, b) {
  3588.             a.V = b.V;
  3589.             a.o = b.o;
  3590.             a.ca = b.ca;
  3591.             a.Ea = b.Ea;
  3592.             a.S = b.S;
  3593.             a.ak = b.ak;
  3594.             a.h = b.h;
  3595.             a.B = b.B;
  3596.             var c = a.a
  3597.               , d = b.a;
  3598.             c.x = d.x;
  3599.             c.y = d.y;
  3600.             c = a.G;
  3601.             d = b.G;
  3602.             c.x = d.x;
  3603.             c.y = d.y;
  3604.             a = a.ra;
  3605.             b = b.ra;
  3606.             a.x = b.x;
  3607.             a.y = b.y
  3608.         }
  3609.     }
  3610.     class tb {
  3611.         constructor(a, b) {
  3612.             this.bk = a;
  3613.             this.bj = b;
  3614.             this.qc = a;
  3615.             this.gf = window.performance.now()
  3616.         }
  3617.         Ym() {
  3618.             var a;
  3619.             null == a && (a = 1);
  3620.             this.A();
  3621.             return a <= this.qc ? (this.qc -= a,
  3622.             !0) : !1
  3623.         }
  3624.         hs() {
  3625.             this.A();
  3626.             let a = 1 - this.qc;
  3627.             if (0 >= a)
  3628.                 return 0;
  3629.             let b = window.performance.now();
  3630.             return this.gf + a * this.bj - b
  3631.         }
  3632.         yo(a) {
  3633.             let b = this.hs();
  3634.             --this.qc;
  3635.             window.setTimeout(a, b | 0)
  3636.         }
  3637.         A() {
  3638.             let a = window.performance.now()
  3639.               , b = Math.floor((a - this.gf) / this.bj);
  3640.             this.gf += b * this.bj;
  3641.             this.qc += b;
  3642.             this.qc >= this.bk && (this.qc = this.bk,
  3643.             this.gf = a)
  3644.         }
  3645.     }
  3646.     class zb {
  3647.         constructor() {
  3648.             this.Jl = new sc;
  3649.             this.f = x.Ia(zb.O);
  3650.             let a = x.Ba(this.f);
  3651.             this.Cg = a.get("ping");
  3652.             this.Uo = a.get("fps");
  3653.             x.replaceWith(a.get("graph"), this.Jl.f)
  3654.         }
  3655.         Ur(a, b) {
  3656.             this.Cg.textContent = "Ping: " + getFakePingInfo(a) + " - " + b
  3657.         }
  3658.         Dm(a) {
  3659.             this.Uo.textContent = "Fps: " + a
  3660.         }
  3661.     }
  3662.     class Ic {
  3663.         static description(a) {
  3664.             switch (a) {
  3665.             case 4001:
  3666.                 return "The room was closed.";
  3667.             case 4100:
  3668.                 return "The room is full.";
  3669.             case 4101:
  3670.                 return "Wrong password.";
  3671.             case 4102:
  3672.                 return "You are banned from this room.";
  3673.             case 4103:
  3674.                 return "Incompatible game version.";
  3675.             default:
  3676.                 return "Connection closed (" + a + ")"
  3677.             }
  3678.         }
  3679.     }
  3680.     class Ab {
  3681.         constructor() {
  3682.             this.f = x.Ia(Ab.O);
  3683.             let a = x.Ba(this.f)
  3684.               , b = this;
  3685.             a.get("cancel").onclick = function() {
  3686.                 D.i(b.rb, !1)
  3687.             }
  3688.             ;
  3689.             a.get("leave").onclick = function() {
  3690.                 D.i(b.rb, !0)
  3691.             }
  3692.         }
  3693.     }
  3694.     class Oa {
  3695.     }
  3696.     class bb {
  3697.         constructor() {
  3698.             this.$e = this.Xh = !1;
  3699.             this.f = x.Ia(bb.O);
  3700.             let a = x.Ba(this.f);
  3701.             this.Kc = a.get("log");
  3702.             this.bi = a.get("log-contents");
  3703.             this.$a = a.get("input");
  3704.             this.$a.maxLength = 140;
  3705.             let b = this;
  3706.             a.get("drag").onmousedown = function(c) {
  3707.                 function d(h) {
  3708.                     h.preventDefault();
  3709.                     m.j.hk.ha(gc(gc(e + (f - h.y))));
  3710.                     b.$a.blur();
  3711.                     b.$e = !1;
  3712.                     b.xf()
  3713.                 }
  3714.                 b.f.classList.add("dragging");
  3715.                 let e = b.lk()
  3716.                   , f = c.y;
  3717.                 c.preventDefault();
  3718.                 let g = null;
  3719.                 g = function(h) {
  3720.                     b.f.classList.remove("dragging");
  3721.                     d(h);
  3722.                     window.document.removeEventListener("mousemove", d, !1);
  3723.                     window.document.removeEventListener("mouseup", g, !1)
  3724.                 }
  3725.                 ;
  3726.                 window.document.addEventListener("mousemove", d, !1);
  3727.                 window.document.addEventListener("mouseup", g, !1)
  3728.             }
  3729.             ;
  3730.             this.Ec = new Tb(a.get("autocompletebox"),function(c, d) {
  3731.                 b.$a.value = c;
  3732.                 b.$a.setSelectionRange(d, d)
  3733.             }
  3734.             );
  3735.             this.$a.onkeydown = function(c) {
  3736.                 switch (c.keyCode) {
  3737.                 case 9:
  3738.                     c.preventDefault();
  3739.                     b.Ec.Qb.hidden ? b.$a.blur() : b.Ec.Oo();
  3740.                     break;
  3741.                 case 13:
  3742.                     null != b.Bl && "" != b.$a.value && b.Bl(b.$a.value);
  3743.                     b.$a.value = "";
  3744.                     b.$a.blur();
  3745.                     break;
  3746.                 case 27:
  3747.                     b.Ec.Qb.hidden ? (b.$a.value = "",
  3748.                     b.$a.blur()) : b.Ec.Th();
  3749.                     break;
  3750.                 case 38:
  3751.                     b.Ec.ek(-1);
  3752.                     break;
  3753.                 case 40:
  3754.                     b.Ec.ek(1)
  3755.                 }
  3756.                 c.stopPropagation()
  3757.             }
  3758.             ;
  3759.             this.$a.onfocus = function() {
  3760.                 null != b.tg && b.tg(!0);
  3761.                 b.Xh = !0;
  3762.                 b.xf()
  3763.             }
  3764.             ;
  3765.             this.$a.onblur = function() {
  3766.                 null != b.tg && b.tg(!1);
  3767.                 b.Xh = !1;
  3768.                 b.Ec.Th();
  3769.                 b.xf()
  3770.             }
  3771.             ;
  3772.             this.$a.oninput = function() {
  3773.                 b.Ec.fo(b.$a.value, b.$a.selectionStart)
  3774.             }
  3775.             ;
  3776.             this.xf()
  3777.         }
  3778.         Wm() {
  3779.             this.$e = !this.$e;
  3780.             this.xf();
  3781.             if (!this.$e) {
  3782.                 let a = this.Kc;
  3783.                 window.setTimeout(function() {
  3784.                     a.scrollTop = a.scrollHeight
  3785.                 }, 200)
  3786.             }
  3787.         }
  3788.         xf() {
  3789.             let a = "" + this.lk();
  3790.             this.f.style.height = a + "px"
  3791.         }
  3792.         lk() {
  3793.             let a = gc(m.j.hk.v());
  3794.             if (this.Xh) {
  3795.                 let b = gc(m.j.zh.v());
  3796.                 a <= b && (a = b)
  3797.             } else
  3798.                 this.$e && (a = 0);
  3799.             return a
  3800.         }
  3801.         Qp(a, b, c) {
  3802.             let d = window.document.createElement("p");
  3803.             d.className = "announcement";
  3804.             d.textContent = a;
  3805.             0 <= b && (d.style.color = U.nc(b));
  3806.             switch (c) {
  3807.             case 1:
  3808.             case 4:
  3809.                 d.style.fontWeight = "bold";
  3810.                 break;
  3811.             case 2:
  3812.             case 5:
  3813.                 d.style.fontStyle = "italic"
  3814.             }
  3815.             switch (c) {
  3816.             case 3:
  3817.             case 4:
  3818.             case 5:
  3819.                 d.style.fontSize = "12px"
  3820.             }
  3821.             this.fl(d)
  3822.         }
  3823.         fl(a) {
  3824.             var b = this.Kc.clientHeight;
  3825.             b = this.Kc.scrollTop + b - this.Kc.scrollHeight >= .5 * -b || !bb.xp(this.Kc);
  3826.             this.bi.appendChild(a);
  3827.             b && (this.Kc.scrollTop = this.Kc.scrollHeight);
  3828.             for (a = b ? 50 : 100; this.bi.childElementCount > a; )
  3829.                 this.bi.firstElementChild.remove()
  3830.         }
  3831.         da(a, b) {
  3832.             let c = window.document.createElement("p");
  3833.             null != b && (c.className = b);
  3834.             c.textContent = a;
  3835.             this.fl(c)
  3836.         }
  3837.         Ib(a) {
  3838.             this.da(a, "notice")
  3839.         }
  3840.         static xp(a) {
  3841.             return a.parentElement.querySelector(":hover") == a
  3842.         }
  3843.     }
  3844.     class I {
  3845.         constructor() {
  3846.             this.Og = this.Pg = this.ya = null;
  3847.             this.qk = 0;
  3848.             this.ea = this.Z = this.fe = null;
  3849.             this.Gc = 0;
  3850.             this.o = 1;
  3851.             this.h = 63;
  3852.             this.B = 32;
  3853.             this.wb = 1 / 0;
  3854.             this.bb = !0;
  3855.             this.S = 0
  3856.         }
  3857.         ga(a) {
  3858.             let b = 0
  3859.               , c = a.a;
  3860.             a.m(0);
  3861.             a.m(this.Z.Dd);
  3862.             a.m(this.ea.Dd);
  3863.             0 != this.Gc && (b = 1,
  3864.             a.u(this.Gc));
  3865.             this.wb != 1 / 0 && (b |= 2,
  3866.             a.u(this.wb));
  3867.             0 != this.S && (b |= 4,
  3868.             a.P(this.S));
  3869.             this.bb && (b |= 8);
  3870.             a.s.setUint8(c, b);
  3871.             a.u(this.o);
  3872.             a.P(this.h);
  3873.             a.P(this.B)
  3874.         }
  3875.         ma(a, b) {
  3876.             let c = a.F();
  3877.             this.Z = b[a.F()];
  3878.             this.ea = b[a.F()];
  3879.             this.Gc = 0 != (c & 1) ? a.w() : 0;
  3880.             this.wb = 0 != (c & 2) ? a.w() : 1 / 0;
  3881.             this.S = 0 != (c & 4) ? a.N() : 0;
  3882.             this.bb = 0 != (c & 8);
  3883.             this.o = a.w();
  3884.             this.h = a.N();
  3885.             this.B = a.N()
  3886.         }
  3887.         Uc(a) {
  3888.             a *= .017453292519943295;
  3889.             if (0 > a) {
  3890.                 a = -a;
  3891.                 let b = this.Z;
  3892.                 this.Z = this.ea;
  3893.                 this.ea = b;
  3894.                 this.Gc = -this.Gc
  3895.             }
  3896.             a > I.Hn && a < I.Gn && (this.wb = 1 / Math.tan(a / 2))
  3897.         }
  3898.         $o() {
  3899.             return 0 != 0 * this.wb ? 0 : 114.59155902616465 * Math.atan(1 / this.wb)
  3900.         }
  3901.         oe() {
  3902.             if (0 == 0 * this.wb) {
  3903.                 var a = this.ea.a
  3904.                   , b = this.Z.a
  3905.                   , c = .5 * (a.x - b.x);
  3906.                 a = .5 * (a.y - b.y);
  3907.                 b = this.Z.a;
  3908.                 let d = this.wb;
  3909.                 this.fe = new P(b.x + c + -a * d,b.y + a + c * d);
  3910.                 a = this.Z.a;
  3911.                 b = this.fe;
  3912.                 c = a.x - b.x;
  3913.                 a = a.y - b.y;
  3914.                 this.qk = Math.sqrt(c * c + a * a);
  3915.                 c = this.Z.a;
  3916.                 a = this.fe;
  3917.                 this.Og = new P(-(c.y - a.y),c.x - a.x);
  3918.                 c = this.fe;
  3919.                 a = this.ea.a;
  3920.                 this.Pg = new P(-(c.y - a.y),c.x - a.x);
  3921.                 0 >= this.wb && (a = c = this.Og,
  3922.                 c.x = -a.x,
  3923.                 c.y = -a.y,
  3924.                 a = c = this.Pg,
  3925.                 c.x = -a.x,
  3926.                 c.y = -a.y)
  3927.             } else
  3928.                 a = this.Z.a,
  3929.                 b = this.ea.a,
  3930.                 c = a.x - b.x,
  3931.                 a = -(a.y - b.y),
  3932.                 b = Math.sqrt(a * a + c * c),
  3933.                 this.ya = new P(a / b,c / b)
  3934.         }
  3935.     }
  3936.     class sc {
  3937.         constructor() {
  3938.             this.Eh = 0;
  3939.             this.Wp = 400;
  3940.             this.Qk = 64;
  3941.             this.fj = 32;
  3942.             this.na = window.document.createElement("canvas");
  3943.             this.cg = window.document.createElement("canvas");
  3944.             this.f = window.document.createElement("div");
  3945.             this.cg.width = this.na.width = this.fj;
  3946.             this.cg.height = this.na.height = this.Qk;
  3947.             this.Ih = this.cg.getContext("2d", null);
  3948.             this.c = this.na.getContext("2d", null);
  3949.             this.c.fillStyle = "green";
  3950.             let a = []
  3951.               , b = 0
  3952.               , c = this.fj;
  3953.             for (; b < c; )
  3954.                 ++b,
  3955.                 a.push(0);
  3956.             this.Hq = a;
  3957.             this.f.appendChild(this.cg);
  3958.             this.f.className = "graph";
  3959.             this.f.hidden = !0
  3960.         }
  3961.         Pn(a) {
  3962.             this.f.hidden = !1;
  3963.             0 > a ? (a = 150,
  3964.             this.c.fillStyle = "#c13535") : this.c.fillStyle = "#32FF32";
  3965.             let b = this.fj
  3966.               , c = this.Qk
  3967.               , d = this.Eh++;
  3968.             this.Eh >= b && (this.Eh = 0);
  3969.             this.Hq[d] = a;
  3970.             this.c.clearRect(d, 0, 1, c);
  3971.             a = a * c / this.Wp;
  3972.             this.c.fillRect(d, c - a, 1, a);
  3973.             this.Ih.clearRect(0, 0, b, c);
  3974.             this.Ih.drawImage(this.na, b - d - 1, 0);
  3975.             this.Ih.drawImage(this.na, -d - 1, 0)
  3976.         }
  3977.     }
  3978.     class Bb {
  3979.         constructor(a) {
  3980.             this.yk = !1;
  3981.             this.Lm = new Na(u.Oa);
  3982.             this.$j = new Na(u.Da);
  3983.             this.dm = new Na(u.ia);
  3984.             this.f = x.Ia(Bb.O);
  3985.             let b = x.Ba(this.f);
  3986.             this.lc = b.get("room-name");
  3987.             this.Om = b.get("start-btn");
  3988.             this.Qm = b.get("stop-btn");
  3989.             this.ni = b.get("pause-btn");
  3990.             this.Tn = b.get("auto-btn");
  3991.             this.el = b.get("lock-btn");
  3992.             this.nm = b.get("reset-all-btn");
  3993.             this.bm = b.get("rec-btn");
  3994.             let c = b.get("link-btn")
  3995.               , d = b.get("leave-btn")
  3996.               , e = b.get("rand-btn");
  3997.             this.If = b.get("time-limit-sel");
  3998.             this.Bf = b.get("score-limit-sel");
  3999.             this.Mm = b.get("stadium-name");
  4000.             this.Nm = b.get("stadium-pick");
  4001.             let f = this;
  4002.             this.Nm.onclick = function() {
  4003.                 H.i(f.zq)
  4004.             }
  4005.             ;
  4006.             this.Wh(b.get("red-list"), this.dm, a);
  4007.             this.Wh(b.get("blue-list"), this.$j, a);
  4008.             this.Wh(b.get("spec-list"), this.Lm, a);
  4009.             this.ll(this.If, this.kl());
  4010.             this.ll(this.Bf, this.kl());
  4011.             this.If.onchange = function() {
  4012.                 D.i(f.Dq, f.If.selectedIndex)
  4013.             }
  4014.             ;
  4015.             this.Bf.onchange = function() {
  4016.                 D.i(f.vq, f.Bf.selectedIndex)
  4017.             }
  4018.             ;
  4019.             this.Om.onclick = function() {
  4020.                 H.i(f.Aq)
  4021.             }
  4022.             ;
  4023.             this.Qm.onclick = function() {
  4024.                 H.i(f.Bq)
  4025.             }
  4026.             ;
  4027.             this.ni.onclick = function() {
  4028.                 H.i(f.oq)
  4029.             }
  4030.             ;
  4031.             this.Tn.onclick = function() {
  4032.                 H.i(f.eq)
  4033.             }
  4034.             ;
  4035.             this.el.onclick = function() {
  4036.                 D.i(f.Cq, !f.ai)
  4037.             }
  4038.             ;
  4039.             this.nm.onclick = function() {
  4040.                 null != f.me && (f.me(u.Da),
  4041.                 f.me(u.ia))
  4042.             }
  4043.             ;
  4044.             this.bm.onclick = function() {
  4045.                 H.i(f.sq)
  4046.             }
  4047.             ;
  4048.             c.onclick = function() {
  4049.                 H.i(f.yq)
  4050.             }
  4051.             ;
  4052.             d.onclick = function() {
  4053.                 H.i(f.le)
  4054.             }
  4055.             ;
  4056.             e.onclick = function() {
  4057.                 H.i(f.rq)
  4058.             }
  4059.             ;
  4060.             this.Qj(!1);
  4061.             this.Rj(!1)
  4062.         }
  4063.         Wh(a, b, c) {
  4064.             x.replaceWith(a, b.f);
  4065.             let d = this;
  4066.             b.xg = function(e, f) {
  4067.                 Ma.i(d.xg, e, f)
  4068.             }
  4069.             ;
  4070.             b.me = function(e) {
  4071.                 D.i(d.me, e)
  4072.             }
  4073.             ;
  4074.             b.lq = function(e) {
  4075.                 Ma.i(d.xg, c, e)
  4076.             }
  4077.             ;
  4078.             b.tf = function(e) {
  4079.                 D.i(d.tf, e)
  4080.             }
  4081.         }
  4082.         kl() {
  4083.             let a = []
  4084.               , b = 0;
  4085.             for (; 15 > b; ) {
  4086.                 let c = b++;
  4087.                 a.push(null == c ? "null" : "" + c)
  4088.             }
  4089.             return a
  4090.         }
  4091.         ll(a, b) {
  4092.             let c = 0;
  4093.             for (; c < b.length; ) {
  4094.                 let d = b[c++]
  4095.                   , e = window.document.createElement("option");
  4096.                 e.textContent = d;
  4097.                 a.appendChild(e)
  4098.             }
  4099.         }
  4100.         Vr(a) {
  4101.             this.bm.classList.toggle("active", a)
  4102.         }
  4103.         A(a, b) {
  4104.             this.wr != a.lc && (this.wr = a.lc,
  4105.             this.lc.textContent = a.lc);
  4106.             b = null == b ? !1 : b.fb;
  4107.             this.yk != b && (this.f.className = "room-view" + (b ? " admin" : ""),
  4108.             this.yk = b);
  4109.             var c = !b || null != a.M;
  4110.             this.If.disabled = c;
  4111.             this.Bf.disabled = c;
  4112.             this.Nm.disabled = c;
  4113.             c = null != a.M;
  4114.             this.Om.hidden = c;
  4115.             this.Qm.hidden = !c;
  4116.             this.ni.hidden = !c;
  4117.             this.If.selectedIndex = a.Ga;
  4118.             this.Bf.selectedIndex = a.kb;
  4119.             this.Mm.textContent = a.T.D;
  4120.             this.Mm.classList.toggle("custom", !a.T.af());
  4121.             let d = a.Vc;
  4122.             for (var e = this.dm, f = a.K, g = [], h = 0; h < f.length; ) {
  4123.                 var k = f[h];
  4124.                 ++h;
  4125.                 k.fa == u.ia && g.push(k)
  4126.             }
  4127.             e.A(g, d, c, b);
  4128.             e = this.$j;
  4129.             f = a.K;
  4130.             g = [];
  4131.             for (h = 0; h < f.length; )
  4132.                 k = f[h],
  4133.                 ++h,
  4134.                 k.fa == u.Da && g.push(k);
  4135.             e.A(g, d, c, b);
  4136.             e = this.Lm;
  4137.             f = a.K;
  4138.             g = [];
  4139.             for (h = 0; h < f.length; )
  4140.                 k = f[h],
  4141.                 ++h,
  4142.                 k.fa == u.Oa && g.push(k);
  4143.             e.A(g, d, c, b);
  4144.             this.nm.disabled = c;
  4145.             this.ai != a.Vc && this.Qj(a.Vc);
  4146.             c && (a = 120 == a.M.Ra,
  4147.             this.Hl != a && this.Rj(a))
  4148.         }
  4149.         Qj(a) {
  4150.             this.ai = a;
  4151.             this.el.innerHTML = this.ai ? "<i class='icon-lock'></i>Unlock" : "<i class='icon-lock-open'></i>Lock"
  4152.         }
  4153.         Rj(a) {
  4154.             this.Hl = a;
  4155.             this.ni.innerHTML = "<i class='icon-pause'></i>" + (this.Hl ? "Resume (P)" : "Pause (P)")
  4156.         }
  4157.     }
  4158.     class Rb {
  4159.         constructor(a) {
  4160.             this.Rd = a
  4161.         }
  4162.     }
  4163.     class U {
  4164.         constructor(a) {
  4165.             this.gd = window.performance.now();
  4166.             this.Qg = new Map;
  4167.             this.md = new Map;
  4168.             this.re = 1;
  4169.             this.vh = 100;
  4170.             this.Sg = 35;
  4171.             this.Md = 0;
  4172.             this.Fg = 1.5;
  4173.             this.Ya = new P(0,0);
  4174.             this.Vk = !1;
  4175.             this.Cd = new tc;
  4176.             this.yp = a;
  4177.             this.na = window.document.createElement("canvas");
  4178.             this.na.mozOpaque = !0;
  4179.             this.c = this.na.getContext("2d", {
  4180.                 alpha: !1,
  4181.                 desynchronized: a
  4182.             });
  4183.             this.jp = this.c.createPattern(m.ip, null);
  4184.             this.vo = this.c.createPattern(m.uo, null);
  4185.             this.to = this.c.createPattern(m.so, null)
  4186.         }
  4187.         np(a, b) {
  4188.             a = this.md.get(a.Y);
  4189.             if (null != a)
  4190.                 switch (b) {
  4191.                 case 0:
  4192.                     a.jg = !0;
  4193.                     break;
  4194.                 case 1:
  4195.                     a.jg = !1
  4196.                 }
  4197.         }
  4198.         ws() {
  4199.             if (null != this.na.parentElement) {
  4200.                 var a = window.devicePixelRatio * this.re;
  4201.                 let b = this.na.getBoundingClientRect()
  4202.                   , c = Math.round(b.width * a);
  4203.                 a = Math.round(b.height * a);
  4204.                 if (this.na.width != c || this.na.height != a)
  4205.                     this.na.width = c,
  4206.                     this.na.height = a
  4207.             }
  4208.         }
  4209.         Qc(a, b) {
  4210.             var c = window.performance.now();
  4211.             let d = (c - this.gd) / 1E3;
  4212.             this.gd = c;
  4213.             this.Qg.clear();
  4214.             this.ws();
  4215.             U.Pi(this.c, !0);
  4216.             this.c.resetTransform();
  4217.             if (null != a.M) {
  4218.                 c = a.M;
  4219.                 var e = c.va
  4220.                   , f = a.qa(b)
  4221.                   , g = null != f ? f.J : null
  4222.                   , h = 0 != this.Md ? this.na.height / this.Md : this.Fg * window.devicePixelRatio * this.re;
  4223.                 b = this.Sg * this.re;
  4224.                 var k = this.vh * this.re
  4225.                   , l = c.T.kf
  4226.                   , n = this.na.width / h;
  4227.                 0 < l && n > l && (n = l,
  4228.                 h = this.na.width / l);
  4229.                 l = (this.na.height - b - k) / h;
  4230.                 this.ts(c, g, n, l, d);
  4231.                 for (var r = 0, t = a.K; r < t.length; ) {
  4232.                     let z = t[r];
  4233.                     ++r;
  4234.                     if (null == z.J)
  4235.                         continue;
  4236.                     let J = this.md.get(z.Y);
  4237.                     null == J && (J = new Cb,
  4238.                     this.md.set(z.Y, J));
  4239.                     J.A(z, a);
  4240.                     this.Qg.set(z.J, J)
  4241.                 }
  4242.                 this.c.translate(this.na.width / 2, (this.na.height + b - k) / 2);
  4243.                 this.c.scale(h, h);
  4244.                 this.c.translate(-this.Ya.x, -this.Ya.y);
  4245.                 this.c.lineWidth = 3;
  4246.                 this.ur(c.T);
  4247.                 this.tr(c.T);
  4248.                 h = e.H;
  4249.                 r = 0;
  4250.                 for (t = e.qb; r < t.length; )
  4251.                     this.nr(t[r++], h);
  4252.                 this.mr(a, n, l);
  4253.                 this.pr(a, f);
  4254.                 null != g && this.rr(g.a);
  4255.                 this.c.lineWidth = 2;
  4256.                 f = 0;
  4257.                 for (g = a.K; f < g.length; )
  4258.                     l = g[f],
  4259.                     ++f,
  4260.                     n = l.J,
  4261.                     null != n && (l = this.md.get(l.Y),
  4262.                     this.hm(n, l));
  4263.                 f = 0;
  4264.                 for (e = e.H; f < e.length; )
  4265.                     if (g = e[f],
  4266.                     ++f,
  4267.                     null == this.Qg.get(g)) {
  4268.                         if (0 > g.V)
  4269.                             break;
  4270.                         this.hm(g, null)
  4271.                     }
  4272.                 this.c.lineWidth = 3;
  4273.                 this.c.resetTransform();
  4274.                 this.c.translate(this.na.width / 2, b + (this.na.height - b - k) / 2);
  4275.                 this.qr(c);
  4276.                 0 >= c.Ra && (this.Cd.A(d),
  4277.                 this.Cd.Qc(this.c));
  4278.                 this.Qg.clear();
  4279.                 this.lr(a)
  4280.             }
  4281.         }
  4282.         lr(a) {
  4283.             let b = new Set;
  4284.             var c = 0;
  4285.             for (a = a.K; c < a.length; )
  4286.                 b.add(a[c++].Y);
  4287.             c = this.md.keys();
  4288.             for (a = c.next(); !a.done; ) {
  4289.                 let d = a.value;
  4290.                 a = c.next();
  4291.                 b.has(d) || this.md.delete(d)
  4292.             }
  4293.         }
  4294.         ts(a, b, c, d, e) {
  4295.             if (null != b && 1 == a.T.Re) {
  4296.                 var f = b.a;
  4297.                 var g = f.x;
  4298.                 f = f.y;
  4299.                 null == f && (f = 0);
  4300.                 null == g && (g = 0)
  4301.             } else if (f = a.va.H[0].a,
  4302.             g = f.x,
  4303.             f = f.y,
  4304.             null != b) {
  4305.                 var h = b.a;
  4306.                 g = .5 * (g + h.x);
  4307.                 f = .5 * (f + h.y);
  4308.                 var k = c;
  4309.                 b = d;
  4310.                 null == d && (b = 0);
  4311.                 null == c && (k = 0);
  4312.                 var l = .5 * k;
  4313.                 let n = .5 * b;
  4314.                 b = h.x - l + 50;
  4315.                 k = h.y - n + 50;
  4316.                 l = h.x + l - 50;
  4317.                 h = h.y + n - 50;
  4318.                 g = g > l ? l : g < b ? b : g;
  4319.                 f = f > h ? h : f < k ? k : f
  4320.             }
  4321.             e *= 60;
  4322.             1 < e && (e = 1);
  4323.             b = g;
  4324.             b == b ? (b = f,
  4325.             b = b == b) : b = !1;
  4326.             b && (k = b = this.Ya,
  4327.             e *= .04,
  4328.             h = k.x,
  4329.             k = k.y,
  4330.             b.x = h + (g - h) * e,
  4331.             b.y = k + (f - k) * e);
  4332.             this.wo(c, d, a.T)
  4333.         }
  4334.         wo(a, b, c) {
  4335.             a > 2 * c.bc ? this.Ya.x = 0 : this.Ya.x + .5 * a > c.bc ? this.Ya.x = c.bc - .5 * a : this.Ya.x - .5 * a < -c.bc && (this.Ya.x = -c.bc + .5 * a);
  4336.             b > 2 * c.sc ? this.Ya.y = 0 : this.Ya.y + .5 * b > c.sc ? this.Ya.y = c.sc - .5 * b : this.Ya.y - .5 * b < -c.sc && (this.Ya.y = -c.sc + .5 * b)
  4337.         }
  4338.         rr(a) {
  4339.             this.c.beginPath();
  4340.             this.c.strokeStyle = "white";
  4341.             this.c.globalAlpha = .3;
  4342.             this.c.arc(a.x, a.y, 25, 0, 2 * Math.PI, !1);
  4343.             this.c.stroke();
  4344.             this.c.globalAlpha = 1
  4345.         }
  4346.         qr(a) {
  4347.             let b = 0 < a.Ra;
  4348.             this.Qr(b);
  4349.             b && (120 != a.Ra && (a = a.Ra / 120 * 200,
  4350.             this.c.fillStyle = "white",
  4351.             this.c.fillRect(.5 * -a, 100, a, 20)),
  4352.             this.Cd.Gq.vr(this.c))
  4353.         }
  4354.         Qr(a) {
  4355.             this.Vk != a && (this.na.style.filter = a ? "grayscale(70%)" : "",
  4356.             this.Vk = a)
  4357.         }
  4358.         rm(a, b, c, d, e, f) {
  4359.             d = b + d;
  4360.             e = c + e;
  4361.             a.beginPath();
  4362.             a.moveTo(d - f, c);
  4363.             a.arcTo(d, c, d, c + f, f);
  4364.             a.lineTo(d, e - f);
  4365.             a.arcTo(d, e, d - f, e, f);
  4366.             a.lineTo(b + f, e);
  4367.             a.arcTo(b, e, b, e - f, f);
  4368.             a.lineTo(b, c + f);
  4369.             a.arcTo(b, c, b + f, c, f);
  4370.             a.closePath()
  4371.         }
  4372.         ur(a) {
  4373.             U.Pi(this.c, !1);
  4374.             var b = a.be;
  4375.             let c = a.ae
  4376.               , d = this;
  4377.             if (1 == a.ud)
  4378.                 this.c.save(),
  4379.                 this.c.resetTransform(),
  4380.                 this.c.fillStyle = U.nc(a.td),
  4381.                 this.c.fillRect(0, 0, this.na.width, this.na.height),
  4382.                 this.c.restore(),
  4383.                 this.c.strokeStyle = "#C7E6BD",
  4384.                 this.c.fillStyle = this.jp,
  4385.                 this.rm(this.c, -b, -c, 2 * b, 2 * c, a.Fc),
  4386.                 this.c.save(),
  4387.                 this.c.scale(2, 2),
  4388.                 this.c.fill(),
  4389.                 this.c.restore(),
  4390.                 this.c.moveTo(0, -c),
  4391.                 this.c.lineTo(0, c),
  4392.                 this.c.stroke(),
  4393.                 this.c.beginPath(),
  4394.                 this.c.arc(0, 0, a.ad, 0, 2 * Math.PI),
  4395.                 this.c.stroke();
  4396.             else if (2 == a.ud) {
  4397.                 this.c.strokeStyle = "#E9CC6E";
  4398.                 this.c.save();
  4399.                 this.c.beginPath();
  4400.                 this.c.rect(this.Ya.x - 1E4, this.Ya.y - 1E4, 2E4, 2E4);
  4401.                 this.c.scale(2, 2);
  4402.                 this.c.fillStyle = this.to;
  4403.                 this.c.fill();
  4404.                 this.c.restore();
  4405.                 this.c.save();
  4406.                 this.rm(this.c, -b, -c, 2 * b, 2 * c, a.Fc);
  4407.                 this.c.scale(2, 2);
  4408.                 this.c.fillStyle = this.vo;
  4409.                 this.c.fill();
  4410.                 this.c.restore();
  4411.                 this.c.stroke();
  4412.                 this.c.beginPath();
  4413.                 this.c.moveTo(0, -c);
  4414.                 this.c.setLineDash([15, 15]);
  4415.                 this.c.lineTo(0, c);
  4416.                 this.c.stroke();
  4417.                 this.c.setLineDash([]);
  4418.                 var e = a.Qe;
  4419.                 b -= e;
  4420.                 e < a.Fc && (b = 0);
  4421.                 e = function(f, g, h) {
  4422.                     d.c.beginPath();
  4423.                     d.c.strokeStyle = f;
  4424.                     d.c.arc(0, 0, a.ad, -1.5707963267948966, 1.5707963267948966, h);
  4425.                     0 != g && (d.c.moveTo(g, -c),
  4426.                     d.c.lineTo(g, c));
  4427.                     d.c.stroke()
  4428.                 }
  4429.                 ;
  4430.                 e("#85ACF3", b, !1);
  4431.                 e("#E18977", -b, !0)
  4432.             } else
  4433.                 this.c.save(),
  4434.                 this.c.resetTransform(),
  4435.                 this.c.fillStyle = U.nc(a.td),
  4436.                 this.c.fillRect(0, 0, this.na.width, this.na.height),
  4437.                 this.c.restore();
  4438.             U.Pi(this.c, !0)
  4439.         }
  4440.         pr(a, b) {
  4441.             let c = m.j.Sk.v()
  4442.               , d = 0;
  4443.             for (a = a.K; d < a.length; ) {
  4444.                 let f = a[d];
  4445.                 ++d;
  4446.                 var e = f.J;
  4447.                 if (null == e)
  4448.                     continue;
  4449.                 e = e.a;
  4450.                 let g = this.md.get(f.Y);
  4451.                 c && g.jg && this.c.drawImage(m.Zm, e.x - .5 * m.Zm.width, e.y - 35);
  4452.                 f != b && g.Qo(this.c, e.x, e.y + 50)
  4453.             }
  4454.         }
  4455.         hm(a, b) {
  4456.             0 > a.V || (this.c.beginPath(),
  4457.             null == b ? (this.c.fillStyle = U.nc(a.S),
  4458.             this.c.strokeStyle = "black") : (this.c.fillStyle = b.Xj,
  4459.             this.c.strokeStyle = b.Jo),
  4460.             this.c.beginPath(),
  4461.             this.c.arc(a.a.x, a.a.y, a.V, 0, 2 * Math.PI, !1),
  4462.             null != b ? (this.c.save(),
  4463.             b = a.V / 32,
  4464.             this.c.translate(a.a.x, a.a.y),
  4465.             this.c.scale(b, b),
  4466.             this.c.translate(-32, -32),
  4467.             this.c.fill(),
  4468.             this.c.restore()) : -1 != (a.S | 0) && this.c.fill(),
  4469.             this.c.stroke())
  4470.         }
  4471.         tr(a) {
  4472.             if (null != a) {
  4473.                 var b = 0;
  4474.                 for (a = a.X; b < a.length; )
  4475.                     this.sr(a[b++])
  4476.             }
  4477.         }
  4478.         nr(a, b) {
  4479.             if (!(0 > a.S)) {
  4480.                 this.c.beginPath();
  4481.                 this.c.strokeStyle = U.nc(a.S);
  4482.                 var c = b[a.ge];
  4483.                 a = b[a.he];
  4484.                 null != c && null != a && (c = c.a,
  4485.                 a = a.a,
  4486.                 this.c.moveTo(c.x, c.y),
  4487.                 this.c.lineTo(a.x, a.y),
  4488.                 this.c.stroke())
  4489.             }
  4490.         }
  4491.         sr(a) {
  4492.             if (a.bb) {
  4493.                 this.c.beginPath();
  4494.                 this.c.strokeStyle = U.nc(a.S);
  4495.                 var b = a.Z.a
  4496.                   , c = a.ea.a;
  4497.                 if (0 != 0 * a.wb)
  4498.                     this.c.moveTo(b.x, b.y),
  4499.                     this.c.lineTo(c.x, c.y);
  4500.                 else {
  4501.                     a = a.fe;
  4502.                     let d = b.x - a.x;
  4503.                     b = b.y - a.y;
  4504.                     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))
  4505.                 }
  4506.                 this.c.stroke()
  4507.             }
  4508.         }
  4509.         mr(a, b, c) {
  4510.             var d = a.M;
  4511.             if (null != d)
  4512.                 for (d = d.va.H[0],
  4513.                 this.Gk(d.a, d.S, b, c),
  4514.                 d = 0,
  4515.                 a = a.K; d < a.length; ) {
  4516.                     let e = a[d];
  4517.                     ++d;
  4518.                     null != e.J && this.Gk(e.J.a, e.fa.S, b, c)
  4519.                 }
  4520.         }
  4521.         Gk(a, b, c, d) {
  4522.             c = .5 * c - 25;
  4523.             var e = .5 * d - 25;
  4524.             null == e && (e = 0);
  4525.             null == c && (c = 0);
  4526.             d = c;
  4527.             c = e;
  4528.             var f = this.Ya;
  4529.             e = a.x - f.x;
  4530.             f = a.y - f.y;
  4531.             let g = -d
  4532.               , h = -c
  4533.               , k = this.Ya;
  4534.             d = k.x + (e > d ? d : e < g ? g : e);
  4535.             c = k.y + (f > c ? c : f < h ? h : f);
  4536.             e = a.x - d;
  4537.             a = a.y - c;
  4538.             900 < e * e + a * a && (this.c.fillStyle = "rgba(0,0,0,0.5)",
  4539.             this.Hk(d + 2, c + 2, Math.atan2(a, e)),
  4540.             this.c.fillStyle = U.nc(b),
  4541.             this.Hk(d - 2, c - 2, Math.atan2(a, e)))
  4542.         }
  4543.         Hk(a, b, c) {
  4544.             this.c.save();
  4545.             this.c.translate(a, b);
  4546.             this.c.rotate(c);
  4547.             this.c.beginPath();
  4548.             this.c.moveTo(15, 0);
  4549.             this.c.lineTo(0, 7);
  4550.             this.c.lineTo(0, -7);
  4551.             this.c.closePath();
  4552.             this.c.fill();
  4553.             this.c.restore()
  4554.         }
  4555.         zr() {
  4556.             let a = this.md.values()
  4557.               , b = a.next();
  4558.             for (; !b.done; ) {
  4559.                 let c = b.value;
  4560.                 b = a.next();
  4561.                 c.jg = !1
  4562.             }
  4563.         }
  4564.         static nc(a) {
  4565.             return "rgba(" + [(a & 16711680) >>> 16, (a & 65280) >>> 8, a & 255].join() + ",255)"
  4566.         }
  4567.         static Pi(a, b) {
  4568.             a.imageSmoothingEnabled = b;
  4569.             a.mozImageSmoothingEnabled = b
  4570.         }
  4571.     }
  4572.     class A {
  4573.         constructor(a, b) {
  4574.             null == b && (b = !1);
  4575.             this.s = a;
  4576.             this.Ua = b;
  4577.             this.a = 0
  4578.         }
  4579.         Rg() {
  4580.             let a = new ArrayBuffer(this.a)
  4581.               , b = new Uint8Array(this.s.buffer,this.s.byteOffset,this.a);
  4582.             (new Uint8Array(a)).set(b);
  4583.             return a
  4584.         }
  4585.         Wb() {
  4586.             return new Uint8Array(this.s.buffer,this.s.byteOffset,this.a)
  4587.         }
  4588.         Qd() {
  4589.             return new DataView(this.s.buffer,this.s.byteOffset,this.a)
  4590.         }
  4591.         ms() {
  4592.             return new K(this.Qd(),this.Ua)
  4593.         }
  4594.         tc(a) {
  4595.             this.s.byteLength < a && this.Ar(2 * this.s.byteLength >= a ? 2 * this.s.byteLength : a)
  4596.         }
  4597.         Ar(a) {
  4598.             if (1 > a)
  4599.                 throw v.C("Can't resize buffer to a capacity lower than 1");
  4600.             if (this.s.byteLength < a) {
  4601.                 let b = new Uint8Array(this.s.buffer);
  4602.                 a = new ArrayBuffer(a);
  4603.                 (new Uint8Array(a)).set(b);
  4604.                 this.s = new DataView(a)
  4605.             }
  4606.         }
  4607.         m(a) {
  4608.             let b = this.a++;
  4609.             this.tc(this.a);
  4610.             this.s.setUint8(b, a)
  4611.         }
  4612.         hj(a) {
  4613.             let b = this.a;
  4614.             this.a += 2;
  4615.             this.tc(this.a);
  4616.             this.s.setInt16(b, a, this.Ua)
  4617.         }
  4618.         Xb(a) {
  4619.             let b = this.a;
  4620.             this.a += 2;
  4621.             this.tc(this.a);
  4622.             this.s.setUint16(b, a, this.Ua)
  4623.         }
  4624.         P(a) {
  4625.             let b = this.a;
  4626.             this.a += 4;
  4627.             this.tc(this.a);
  4628.             this.s.setInt32(b, a, this.Ua)
  4629.         }
  4630.         ub(a) {
  4631.             let b = this.a;
  4632.             this.a += 4;
  4633.             this.tc(this.a);
  4634.             this.s.setUint32(b, a, this.Ua)
  4635.         }
  4636.         gj(a) {
  4637.             let b = this.a;
  4638.             this.a += 4;
  4639.             this.tc(this.a);
  4640.             this.s.setFloat32(b, a, this.Ua)
  4641.         }
  4642.         u(a) {
  4643.             let b = this.a;
  4644.             this.a += 8;
  4645.             this.tc(this.a);
  4646.             this.s.setFloat64(b, a, this.Ua)
  4647.         }
  4648.         Lb(a) {
  4649.             let b = this.a;
  4650.             this.a += a.byteLength;
  4651.             this.tc(this.a);
  4652.             (new Uint8Array(this.s.buffer,this.s.byteOffset,this.s.byteLength)).set(a, b)
  4653.         }
  4654.         As(a) {
  4655.             a = new Uint8Array(a.buffer,a.byteOffset,a.byteLength);
  4656.             this.Lb(a)
  4657.         }
  4658.         Ug(a) {
  4659.             this.Lb(new Uint8Array(a))
  4660.         }
  4661.         oc(a) {
  4662.             this.nb(A.wh(a));
  4663.             this.ij(a)
  4664.         }
  4665.         Fb(a) {
  4666.             null == a ? this.nb(0) : (this.nb(A.wh(a) + 1),
  4667.             this.ij(a))
  4668.         }
  4669.         en(a) {
  4670.             a = (new TextEncoder).encode(a);
  4671.             let b = a.length;
  4672.             if (255 < b)
  4673.                 throw v.C(null);
  4674.             this.m(b);
  4675.             this.As(a)
  4676.         }
  4677.         Vg(a) {
  4678.             this.oc(JSON.stringify(a))
  4679.         }
  4680.         ij(a) {
  4681.             let b = this.a;
  4682.             this.tc(b + A.wh(a));
  4683.             let c = a.length
  4684.               , d = 0;
  4685.             for (; d < c; )
  4686.                 b += A.So(O.nj(a, d++), this.s, b);
  4687.             this.a = b
  4688.         }
  4689.         nb(a) {
  4690.             let b = this.a;
  4691.             a >>>= 0;
  4692.             this.tc(b + A.co(a));
  4693.             this.s.setUint8(b, a | 128);
  4694.             128 <= a ? (this.s.setUint8(b + 1, a >> 7 | 128),
  4695.             16384 <= a ? (this.s.setUint8(b + 2, a >> 14 | 128),
  4696.             2097152 <= a ? (this.s.setUint8(b + 3, a >> 21 | 128),
  4697.             268435456 <= a ? (this.s.setUint8(b + 4, a >> 28 & 127),
  4698.             a = 5) : (this.s.setUint8(b + 3, this.s.getUint8(b + 3) & 127),
  4699.             a = 4)) : (this.s.setUint8(b + 2, this.s.getUint8(b + 2) & 127),
  4700.             a = 3)) : (this.s.setUint8(b + 1, this.s.getUint8(b + 1) & 127),
  4701.             a = 2)) : (this.s.setUint8(b, this.s.getUint8(b) & 127),
  4702.             a = 1);
  4703.             this.a += a
  4704.         }
  4705.         static ka(a, b) {
  4706.             null == b && (b = !1);
  4707.             null == a && (a = 16);
  4708.             return new A(new DataView(new ArrayBuffer(a)),b)
  4709.         }
  4710.         static So(a, b, c) {
  4711.             let d = c;
  4712.             if (0 > a)
  4713.                 throw v.C("Cannot encode UTF8 character: charCode (" + a + ") is negative");
  4714.             if (128 > a)
  4715.                 b.setUint8(c, a & 127),
  4716.                 ++c;
  4717.             else if (2048 > a)
  4718.                 b.setUint8(c, a >> 6 & 31 | 192),
  4719.                 b.setUint8(c + 1, a & 63 | 128),
  4720.                 c += 2;
  4721.             else if (65536 > a)
  4722.                 b.setUint8(c, a >> 12 & 15 | 224),
  4723.                 b.setUint8(c + 1, a >> 6 & 63 | 128),
  4724.                 b.setUint8(c + 2, a & 63 | 128),
  4725.                 c += 3;
  4726.             else if (2097152 > a)
  4727.                 b.setUint8(c, a >> 18 & 7 | 240),
  4728.                 b.setUint8(c + 1, a >> 12 & 63 | 128),
  4729.                 b.setUint8(c + 2, a >> 6 & 63 | 128),
  4730.                 b.setUint8(c + 3, a & 63 | 128),
  4731.                 c += 4;
  4732.             else if (67108864 > a)
  4733.                 b.setUint8(c, a >> 24 & 3 | 248),
  4734.                 b.setUint8(c + 1, a >> 18 & 63 | 128),
  4735.                 b.setUint8(c + 2, a >> 12 & 63 | 128),
  4736.                 b.setUint8(c + 3, a >> 6 & 63 | 128),
  4737.                 b.setUint8(c + 4, a & 63 | 128),
  4738.                 c += 5;
  4739.             else if (-2147483648 > a)
  4740.                 b.setUint8(c, a >> 30 & 1 | 252),
  4741.                 b.setUint8(c + 1, a >> 24 & 63 | 128),
  4742.                 b.setUint8(c + 2, a >> 18 & 63 | 128),
  4743.                 b.setUint8(c + 3, a >> 12 & 63 | 128),
  4744.                 b.setUint8(c + 4, a >> 6 & 63 | 128),
  4745.                 b.setUint8(c + 5, a & 63 | 128),
  4746.                 c += 6;
  4747.             else
  4748.                 throw v.C("Cannot encode UTF8 character: charCode (" + a + ") is too large (>= 0x80000000)");
  4749.             return c - d
  4750.         }
  4751.         static bo(a) {
  4752.             if (0 > a)
  4753.                 throw v.C("Cannot calculate length of UTF8 character: charCode (" + a + ") is negative");
  4754.             if (128 > a)
  4755.                 return 1;
  4756.             if (2048 > a)
  4757.                 return 2;
  4758.             if (65536 > a)
  4759.                 return 3;
  4760.             if (2097152 > a)
  4761.                 return 4;
  4762.             if (67108864 > a)
  4763.                 return 5;
  4764.             if (-2147483648 > a)
  4765.                 return 6;
  4766.             throw v.C("Cannot calculate length of UTF8 character: charCode (" + a + ") is too large (>= 0x80000000)");
  4767.         }
  4768.         static wh(a) {
  4769.             let b = 0
  4770.               , c = a.length
  4771.               , d = 0;
  4772.             for (; d < c; )
  4773.                 b += A.bo(O.nj(a, d++));
  4774.             return b
  4775.         }
  4776.         static co(a) {
  4777.             a >>>= 0;
  4778.             return 128 > a ? 1 : 16384 > a ? 2 : 2097152 > a ? 3 : 268435456 > a ? 4 : 5
  4779.         }
  4780.     }
  4781.     class C {
  4782.         static Ts() {
  4783.             try {
  4784.                 return window.self != window.top
  4785.             } catch (a) {
  4786.                 return !0
  4787.             }
  4788.         }
  4789.         static dh(a) {
  4790.             return new Promise(function(b, c) {
  4791.                 let d = window.document.createElement("img");
  4792.                 d.onload = function() {
  4793.                     URL.revokeObjectURL(d.src);
  4794.                     d.onload = null;
  4795.                     b(d)
  4796.                 }
  4797.                 ;
  4798.                 d.onerror = function() {
  4799.                     URL.revokeObjectURL(d.src);
  4800.                     c(null)
  4801.                 }
  4802.                 ;
  4803.                 d.src = URL.createObjectURL(new Blob([a],{
  4804.                     type: "image/png"
  4805.                 }))
  4806.             }
  4807.             )
  4808.         }
  4809.         static rj(a) {
  4810.             C.Ts() && C.Ns(function() {
  4811.                 Jc.rj();
  4812.                 let b = null == m.j.Xe.v() ? ma.cp().then(function(d) {
  4813.                     m.j.Xe.ha(d)
  4814.                 }, function() {}) : Promise.resolve(null)
  4815.                   , c = aa.v("res.dat", "arraybuffer").then(function(d) {
  4816.                     d = new JSZip(d);
  4817.                     m.Pa = new lc(d);
  4818.                     return Promise.all([m.Pa.Po, C.dh(d.file("images/grass.png").asArrayBuffer()).then(function(e) {
  4819.                         return m.ip = e
  4820.                     }), C.dh(d.file("images/concrete.png").asArrayBuffer()).then(function(e) {
  4821.                         return m.uo = e
  4822.                     }), C.dh(d.file("images/concrete2.png").asArrayBuffer()).then(function(e) {
  4823.                         return m.so = e
  4824.                     }), C.dh(d.file("images/typing.png").asArrayBuffer()).then(function(e) {
  4825.                         return m.Zm = e
  4826.                     })])
  4827.                 });
  4828.                 Promise.all([c, b]).then(function() {
  4829.                     C.bt(a)
  4830.                 })
  4831.             })
  4832.         }
  4833.         static Ns(a) {
  4834.             let b = Modernizr
  4835.               , c = "canvas datachannel dataview es6collections peerconnection promises websockets".split(" ")
  4836.               , d = []
  4837.               , e = 0;
  4838.             for (; e < c.length; ) {
  4839.                 let f = c[e];
  4840.                 ++e;
  4841.                 b[f] || d.push(f)
  4842.             }
  4843.             0 != d.length ? (window.document.body.innerHTML = "",
  4844.             C.Wg = window.document.createElement("div"),
  4845.             window.document.body.appendChild(C.Wg),
  4846.             a = new pb(d),
  4847.             C.Na(a.f)) : a()
  4848.         }
  4849.         static bt(a) {
  4850.             window.document.body.innerHTML = "";
  4851.             C.Wg = window.document.createElement("div");
  4852.             window.document.body.appendChild(C.Wg);
  4853.             let b = null;
  4854.             b = function() {
  4855.                 m.Pa.om();
  4856.                 window.document.removeEventListener("click", b, !0)
  4857.             }
  4858.             ;
  4859.             window.document.addEventListener("click", b, !0);
  4860.             a()
  4861.         }
  4862.         static Na(a) {
  4863.             null != C.rn && C.rn.remove();
  4864.             null != a && (C.Wg.appendChild(a),
  4865.             C.rn = a)
  4866.         }
  4867.     }
  4868.     class ya {
  4869.         constructor() {
  4870.             this.h = this.B = 63;
  4871.             this.S = 16777215;
  4872.             this.Ea = .99;
  4873.             this.ca = 1;
  4874.             this.o = .5;
  4875.             this.V = 10;
  4876.             this.ra = new P(0,0);
  4877.             this.G = new P(0,0);
  4878.             this.a = new P(0,0)
  4879.         }
  4880.         ga(a) {
  4881.             var b = this.a;
  4882.             a.u(b.x);
  4883.             a.u(b.y);
  4884.             b = this.G;
  4885.             a.u(b.x);
  4886.             a.u(b.y);
  4887.             b = this.ra;
  4888.             a.u(b.x);
  4889.             a.u(b.y);
  4890.             a.u(this.V);
  4891.             a.u(this.o);
  4892.             a.u(this.ca);
  4893.             a.u(this.Ea);
  4894.             a.ub(this.S);
  4895.             a.P(this.h);
  4896.             a.P(this.B)
  4897.         }
  4898.         ma(a) {
  4899.             var b = this.a;
  4900.             b.x = a.w();
  4901.             b.y = a.w();
  4902.             b = this.G;
  4903.             b.x = a.w();
  4904.             b.y = a.w();
  4905.             b = this.ra;
  4906.             b.x = a.w();
  4907.             b.y = a.w();
  4908.             this.V = a.w();
  4909.             this.o = a.w();
  4910.             this.ca = a.w();
  4911.             this.Ea = a.w();
  4912.             this.S = a.jb();
  4913.             this.h = a.N();
  4914.             this.B = a.N()
  4915.         }
  4916.         Sp() {
  4917.             let a = new wa;
  4918.             this.Tk(a);
  4919.             return a
  4920.         }
  4921.         Tk(a) {
  4922.             var b = a.a
  4923.               , c = this.a;
  4924.             b.x = c.x;
  4925.             b.y = c.y;
  4926.             b = a.G;
  4927.             c = this.G;
  4928.             b.x = c.x;
  4929.             b.y = c.y;
  4930.             b = a.ra;
  4931.             c = this.ra;
  4932.             b.x = c.x;
  4933.             b.y = c.y;
  4934.             a.V = this.V;
  4935.             a.o = this.o;
  4936.             a.ca = this.ca;
  4937.             a.Ea = this.Ea;
  4938.             a.S = this.S;
  4939.             a.h = this.h;
  4940.             a.B = this.B
  4941.         }
  4942.     }
  4943.     class H {
  4944.         static i(a) {
  4945.             null != a && a()
  4946.         }
  4947.     }
  4948.     class Db {
  4949.         constructor(a, b, c, d) {
  4950.             this.th = new Set;
  4951.             this.Vf = new Set;
  4952.             this.Jg = this.zf = this.zm = !1;
  4953.             this.Sc = null;
  4954.             this.Cf = this.ba = "";
  4955.             this.Cr = 5E4;
  4956.             this.Br = 1E4;
  4957.             this.xd = new Map;
  4958.             this.cs = a;
  4959.             this.hg = b;
  4960.             this.ho = c;
  4961.             this.Cf = d;
  4962.             null == this.Cf && (this.Cf = "");
  4963.             this.Ti()
  4964.         }
  4965.         la() {
  4966.             window.clearTimeout(this.pm);
  4967.             window.clearTimeout(this.se);
  4968.             this.se = null;
  4969.             window.clearInterval(this.Kl);
  4970.             this.$.onmessage = null;
  4971.             this.$.onerror = null;
  4972.             this.$.onclose = null;
  4973.             this.$.onopen = null;
  4974.             this.$.close();
  4975.             this.$ = null;
  4976.             this.Ik()
  4977.         }
  4978.         Oi(a) {
  4979.             if (null != this.Sc || null != a) {
  4980.                 if (null != this.Sc && null != a && this.Sc.byteLength == a.byteLength) {
  4981.                     let c = new Uint8Array(this.Sc)
  4982.                       , d = new Uint8Array(a)
  4983.                       , e = !1
  4984.                       , f = 0
  4985.                       , g = this.Sc.byteLength;
  4986.                     for (; f < g; ) {
  4987.                         let h = f++;
  4988.                         if (c[h] != d[h]) {
  4989.                             e = !0;
  4990.                             break
  4991.                         }
  4992.                     }
  4993.                     if (!e)
  4994.                         return
  4995.                 }
  4996.                 this.Sc = a.slice(0);
  4997.                 this.Jg = !0;
  4998.                 var b = this;
  4999.                 null != this.$ && 1 == this.$.readyState && null == this.se && (this.Ji(),
  5000.                 this.se = window.setTimeout(function() {
  5001.                     b.se = null;
  5002.                     1 == b.$.readyState && b.Jg && b.Ji()
  5003.                 }, 1E4))
  5004.             }
  5005.         }
  5006.         Ni(a) {
  5007.             function b() {
  5008.                 null != c.$ && 1 == c.$.readyState && c.zf != c.zm && c.ym();
  5009.                 c.mm = null
  5010.             }
  5011.             this.zf = a;
  5012.             let c = this;
  5013.             null == this.mm && (b(),
  5014.             this.mm = window.setTimeout(b, 1E3))
  5015.         }
  5016.         Ti(a) {
  5017.             function b(e) {
  5018.                 e = e.sitekey;
  5019.                 if (null == e)
  5020.                     throw v.C(null);
  5021.                 null != d.sf && d.sf(e, function(f) {
  5022.                     d.Ti(f)
  5023.                 })
  5024.             }
  5025.             function c(e) {
  5026.                 let f = e.url;
  5027.                 if (null == f)
  5028.                     throw v.C(null);
  5029.                 e = e.token;
  5030.                 if (null == e)
  5031.                     throw v.C(null);
  5032.                 d.$ = new WebSocket(f + "?token=" + e);
  5033.                 d.$.binaryType = "arraybuffer";
  5034.                 d.$.onopen = function() {
  5035.                     d.qp()
  5036.                 }
  5037.                 ;
  5038.                 d.$.onclose = function(g) {
  5039.                     d.Ph(4001 != g.code)
  5040.                 }
  5041.                 ;
  5042.                 d.$.onerror = function() {
  5043.                     d.Ph(!0)
  5044.                 }
  5045.                 ;
  5046.                 d.$.onmessage = M(d, d.Sh)
  5047.             }
  5048.             null == a && (a = "");
  5049.             let d = this;
  5050.             aa.Vl(this.cs, "token=" + this.Cf + "&rcr=" + a, aa.Hj).then(function(e) {
  5051.                 switch (e.action) {
  5052.                 case "connect":
  5053.                     c(e);
  5054.                     break;
  5055.                 case "recaptcha":
  5056.                     b(e)
  5057.                 }
  5058.             }).catch(function() {
  5059.                 d.Ph(!0)
  5060.             })
  5061.         }
  5062.         qp() {
  5063.             null != this.Sc && this.Ji();
  5064.             0 != this.zf && this.ym();
  5065.             let a = this;
  5066.             this.Kl = window.setInterval(function() {
  5067.                 a.Ii()
  5068.             }, 4E4)
  5069.         }
  5070.         Sh(a) {
  5071.             a = new K(new DataView(a.data),!1);
  5072.             switch (a.F()) {
  5073.             case 1:
  5074.                 this.Rh(a);
  5075.                 break;
  5076.             case 4:
  5077.                 this.Qh(a);
  5078.                 break;
  5079.             case 5:
  5080.                 this.lp(a);
  5081.                 break;
  5082.             case 6:
  5083.                 this.op(a)
  5084.             }
  5085.         }
  5086.         Rh(a) {
  5087.             let b = a.jb(), c = ha.Hs(a.tb(a.F())), d, e, f;
  5088.             try {
  5089.                 a = new K(new DataView(pako.inflateRaw(a.tb()).buffer),!1);
  5090.                 d = 0 != a.F();
  5091.                 e = a.kc();
  5092.                 let g = a.Gg()
  5093.                   , h = []
  5094.                   , k = 0;
  5095.                 for (; k < g.length; )
  5096.                     h.push(new RTCIceCandidate(g[k++]));
  5097.                 f = h
  5098.             } catch (g) {
  5099.                 this.Ef(b, 0);
  5100.                 return
  5101.             }
  5102.             this.pp(b, c, e, f, a, d)
  5103.         }
  5104.         pp(a, b, c, d, e, f) {
  5105.             if (16 <= this.xd.size)
  5106.                 this.Ef(a, 4104);
  5107.             else if (this.th.has(b))
  5108.                 this.Ef(a, 4102);
  5109.             else {
  5110.                 for (var g = [], h = 0; h < d.length; ) {
  5111.                     let n = Db.Nk(d[h++]);
  5112.                     if (null != n) {
  5113.                         if (this.Vf.has(n)) {
  5114.                             this.Ef(a, 4102);
  5115.                             return
  5116.                         }
  5117.                         g.push(n)
  5118.                     }
  5119.                 }
  5120.                 if (null != this.mk && (h = new K(e.s),
  5121.                 h.a = e.a,
  5122.                 e = this.mk(b, h),
  5123.                 1 == e.pb)) {
  5124.                     this.Ef(a, e.reason);
  5125.                     return
  5126.                 }
  5127.                 var k = new Ua(a,this.hg,this.ho);
  5128.                 f && (k.tk = 2500);
  5129.                 k.xe = g;
  5130.                 k.rd = b;
  5131.                 this.xd.set(a, k);
  5132.                 var l = this;
  5133.                 k.jd = function() {
  5134.                     l.Tc(0, k, null);
  5135.                     l.xd.delete(k.ba)
  5136.                 }
  5137.                 ;
  5138.                 k.Id = function() {
  5139.                     l.xd.delete(k.ba);
  5140.                     l.Tc(0, k, null);
  5141.                     null != l.xl && l.xl(new Zb(k))
  5142.                 }
  5143.                 ;
  5144.                 k.ki = function(n) {
  5145.                     l.Ki(k, n, k.gg, null);
  5146.                     k.Vh.then(function() {
  5147.                         l.Tc(0, k, null)
  5148.                     });
  5149.                     k.ug = function(r) {
  5150.                         l.Hi(k, r)
  5151.                     }
  5152.                 }
  5153.                 ;
  5154.                 k.Wi();
  5155.                 k.Bo(new RTCSessionDescription({
  5156.                     sdp: c,
  5157.                     type: "offer"
  5158.                 }), d)
  5159.             }
  5160.         }
  5161.         Qh(a) {
  5162.             let b = a.jb(), c;
  5163.             try {
  5164.                 a = new K(new DataView(pako.inflateRaw(a.tb()).buffer),!1),
  5165.                 c = new RTCIceCandidate(a.Gg())
  5166.             } catch (d) {
  5167.                 return
  5168.             }
  5169.             this.kp(b, c)
  5170.         }
  5171.         kp(a, b) {
  5172.             a = this.xd.get(a);
  5173.             if (null != a) {
  5174.                 let c = Db.Nk(b);
  5175.                 if (null != c && (a.xe.push(c),
  5176.                 this.Vf.has(c)))
  5177.                     return;
  5178.                 a.Nj(b)
  5179.             }
  5180.         }
  5181.         lp(a) {
  5182.             this.ba = a.pe(a.F());
  5183.             null != this.vg && this.vg(this.ba)
  5184.         }
  5185.         op(a) {
  5186.             this.Cf = a.pe(a.s.byteLength - a.a)
  5187.         }
  5188.         Tc(a, b, c) {
  5189.             if (!b.Dl) {
  5190.                 0 == a && (b.Dl = !0);
  5191.                 var d = b.ba;
  5192.                 b = A.ka(32, !1);
  5193.                 b.m(a);
  5194.                 b.ub(d);
  5195.                 null != c && (a = pako.deflateRaw(c.Wb()),
  5196.                 b.Lb(a));
  5197.                 this.$.send(b.Qd())
  5198.             }
  5199.         }
  5200.         Ef(a, b) {
  5201.             let c = A.ka(16, !1);
  5202.             c.m(0);
  5203.             c.ub(a);
  5204.             c.Xb(b);
  5205.             this.$.send(c.Qd())
  5206.         }
  5207.         Ii() {
  5208.             let a = A.ka(1, !1);
  5209.             a.m(8);
  5210.             this.$.send(a.Qd())
  5211.         }
  5212.         Ji() {
  5213.             this.Jg = !1;
  5214.             let a = A.ka(256, !1);
  5215.             a.m(7);
  5216.             null != this.Sc && a.Ug(this.Sc);
  5217.             this.$.send(a.Qd())
  5218.         }
  5219.         ym() {
  5220.             let a = A.ka(2, !1);
  5221.             a.m(9);
  5222.             a.m(this.zf ? 1 : 0);
  5223.             this.$.send(a.Qd());
  5224.             this.zm = this.zf
  5225.         }
  5226.         Ki(a, b, c, d) {
  5227.             let e = A.ka(32, !1);
  5228.             e.oc(b.sdp);
  5229.             e.Vg(c);
  5230.             null != d && e.Lb(d.Wb());
  5231.             this.Tc(1, a, e)
  5232.         }
  5233.         Hi(a, b) {
  5234.             let c = A.ka(32, !1);
  5235.             c.Vg(b);
  5236.             this.Tc(4, a, c)
  5237.         }
  5238.         Ik() {
  5239.             let a = this.xd.values()
  5240.               , b = a.next();
  5241.             for (; !b.done; ) {
  5242.                 let c = b.value;
  5243.                 b = a.next();
  5244.                 c.la()
  5245.             }
  5246.             this.xd.clear()
  5247.         }
  5248.         Ph(a) {
  5249.             this.Ik();
  5250.             window.clearTimeout(this.se);
  5251.             this.se = null;
  5252.             this.Jg = !1;
  5253.             window.clearInterval(this.Kl);
  5254.             window.clearTimeout(this.pm);
  5255.             let b = this;
  5256.             a && (this.pm = window.setTimeout(function() {
  5257.                 b.Ti()
  5258.             }, this.Br + Math.random() * this.Cr | 0))
  5259.         }
  5260.         Vn(a) {
  5261.             let b = 0
  5262.               , c = a.xe;
  5263.             for (; b < c.length; )
  5264.                 this.Vf.add(c[b++]);
  5265.             null != a.rd && this.th.add(a.rd);
  5266.             return {
  5267.                 xt: a.xe,
  5268.                 vt: a.rd
  5269.             }
  5270.         }
  5271.         ce() {
  5272.             this.Vf.clear();
  5273.             this.th.clear()
  5274.         }
  5275.         static Nk(a) {
  5276.             try {
  5277.                 let b = Hc.uf(a.candidate);
  5278.                 if ("srflx" == b.qs)
  5279.                     return b.wp
  5280.             } catch (b) {}
  5281.             return null
  5282.         }
  5283.     }
  5284.     class Zb {
  5285.         constructor(a) {
  5286.             this.rd = null;
  5287.             this.fr = 1E4;
  5288.             this.Fd = !0;
  5289.             a.jk();
  5290.             this.Ta = a.Ta;
  5291.             this.bd = a.bd;
  5292.             this.xe = a.xe;
  5293.             this.rd = a.rd;
  5294.             this.Tm = window.performance.now();
  5295.             let b = null
  5296.               , c = this;
  5297.             b = function() {
  5298.                 var e = c.fr - c.gs();
  5299.                 0 >= e ? c.la() : (window.clearTimeout(c.Vm),
  5300.                 e = window.setTimeout(b, e + 1E3),
  5301.                 c.Vm = e)
  5302.             }
  5303.             ;
  5304.             b();
  5305.             this.Ta.oniceconnectionstatechange = function() {
  5306.                 let e = c.Ta.iceConnectionState;
  5307.                 "closed" != e && "failed" != e || c.la()
  5308.             }
  5309.             ;
  5310.             a = 0;
  5311.             let d = this.bd;
  5312.             for (; a < d.length; ) {
  5313.                 let e = d[a];
  5314.                 ++a;
  5315.                 e.onmessage = function(f) {
  5316.                     c.Fd && (c.Tm = window.performance.now(),
  5317.                     null != c.wg && c.wg(f.data))
  5318.                 }
  5319.                 ;
  5320.                 e.onclose = function() {
  5321.                     c.la()
  5322.                 }
  5323.             }
  5324.         }
  5325.         gs() {
  5326.             return window.performance.now() - this.Tm
  5327.         }
  5328.         Vb(a, b) {
  5329.             if (this.Fd && (a = this.bd[a],
  5330.             "open" == a.readyState)) {
  5331.                 b = b.Rg();
  5332.                 try {
  5333.                     a.send(b)
  5334.                 } catch (c) {
  5335.                     b = v.Mb(c).Gb(),
  5336.                     pa.console.log(b)
  5337.                 }
  5338.             }
  5339.         }
  5340.         la() {
  5341.             window.clearTimeout(this.Vm);
  5342.             this.Fd && (this.Fd = !1,
  5343.             this.Ta.close(),
  5344.             null != this.qf && this.qf())
  5345.         }
  5346.     }
  5347.     class $b {
  5348.         constructor(a) {
  5349.             this.$s = a;
  5350.             this.cb = []
  5351.         }
  5352.         add(a) {
  5353.             var b = this.cb.length;
  5354.             let c = 0
  5355.               , d = this.Zd = 0;
  5356.             for (; d < b; ) {
  5357.                 let e = d++
  5358.                   , f = this.cb[e];
  5359.                 f.index++;
  5360.                 f.weight *= .97;
  5361.                 this.cb[c].index < f.index && (c = e);
  5362.                 this.Zd += f.weight
  5363.             }
  5364.             b >= this.$s ? (b = this.cb[c],
  5365.             this.Zd -= b.weight,
  5366.             this.cb.splice(c, 1)) : b = new pc;
  5367.             b.value = a;
  5368.             b.weight = 1;
  5369.             b.index = 0;
  5370.             this.Zd += b.weight;
  5371.             for (a = 0; a < this.cb.length && this.cb[a].value <= b.value; )
  5372.                 ++a;
  5373.             this.cb.splice(a, 0, b)
  5374.         }
  5375.         hh() {
  5376.             if (0 == this.cb.length)
  5377.                 return 0;
  5378.             if (1 == this.cb.length)
  5379.                 return this.cb[0].value;
  5380.             var a = .5 * this.Zd;
  5381.             let b = this.cb[0].weight
  5382.               , c = 0;
  5383.             for (; c < this.cb.length - 1 && !(b >= a); )
  5384.                 ++c,
  5385.                 b += this.cb[c].weight;
  5386.             return this.cb[c].value
  5387.         }
  5388.         max() {
  5389.             return 0 == this.cb.length ? 0 : this.cb[this.cb.length - 1].value
  5390.         }
  5391.     }
  5392.     class ac {
  5393.         constructor(a, b, c, d, e, f) {
  5394.             this.rh = this.Ch = !1;
  5395.             this.sa = new Ua(0,b,d);
  5396.             let g = this;
  5397.             this.sa.jd = function() {
  5398.                 g.Ze(na.Je)
  5399.             }
  5400.             ;
  5401.             this.sa.Id = function() {
  5402.                 null != g.Id && g.Id(new Zb(g.sa));
  5403.                 g.sa = null;
  5404.                 g.kk()
  5405.             }
  5406.             ;
  5407.             this.sa.ki = function(h) {
  5408.                 g.Mr = h;
  5409.                 g.$ = new WebSocket(a + "client?id=" + c + (null == f ? "" : "&token=" + f));
  5410.                 g.$.binaryType = "arraybuffer";
  5411.                 g.$.onclose = function(k) {
  5412.                     g.Ch || g.Ze(na.Ke(k.code))
  5413.                 }
  5414.                 ;
  5415.                 g.$.onerror = function() {
  5416.                     g.Ch || g.Ze(na.Error)
  5417.                 }
  5418.                 ;
  5419.                 g.$.onmessage = M(g, g.Sh);
  5420.                 g.$.onopen = function() {
  5421.                     null != g.Cl && g.Cl();
  5422.                     g.sa.Wi();
  5423.                     g.Ki(g.Mr, g.sa.gg, e);
  5424.                     g.sa.ug = M(g, g.Hi);
  5425.                     g.sa.Vh.then(function() {
  5426.                         g.Tc(0, null)
  5427.                     })
  5428.                 }
  5429.             }
  5430.             ;
  5431.             this.sa.Do()
  5432.         }
  5433.         eo() {
  5434.             this.Ze(na.Ie)
  5435.         }
  5436.         kk() {
  5437.             null != this.$ && (this.$.onclose = null,
  5438.             this.$.onmessage = null,
  5439.             this.$.onerror = null,
  5440.             this.$.onopen = null,
  5441.             this.$.close(),
  5442.             this.$ = null);
  5443.             null != this.sa && (this.sa.la(),
  5444.             this.sa = null)
  5445.         }
  5446.         Ze(a) {
  5447.             null != this.jd && this.jd(a);
  5448.             this.kk()
  5449.         }
  5450.         Sh(a) {
  5451.             var b = new K(new DataView(a.data));
  5452.             a = b.F();
  5453.             0 < b.s.byteLength - b.a && (b = new K(new DataView(pako.inflateRaw(b.tb()).buffer),!1));
  5454.             switch (a) {
  5455.             case 1:
  5456.                 a = b.kc();
  5457.                 b = b.Gg();
  5458.                 let c = []
  5459.                   , d = 0;
  5460.                 for (; d < b.length; )
  5461.                     c.push(new RTCIceCandidate(b[d++]));
  5462.                 this.Rh(a, c);
  5463.                 break;
  5464.             case 4:
  5465.                 this.Qh(new RTCIceCandidate(b.Gg()))
  5466.             }
  5467.         }
  5468.         Rh(a, b) {
  5469.             this.sa.Wi(this.rh ? 1E4 : 4E3);
  5470.             this.Ch = !0;
  5471.             null != this.tl && this.tl();
  5472.             let c = this;
  5473.             this.sa.Ta.setRemoteDescription(new RTCSessionDescription({
  5474.                 sdp: a,
  5475.                 type: "answer"
  5476.             }), function() {
  5477.                 let d = 0;
  5478.                 for (; d < b.length; )
  5479.                     c.sa.Ta.addIceCandidate(b[d++])
  5480.             }, function() {
  5481.                 c.Ze(na.Error)
  5482.             })
  5483.         }
  5484.         Qh(a) {
  5485.             this.sa.Ta.addIceCandidate(a)
  5486.         }
  5487.         Tc(a, b) {
  5488.             if (null != this.$) {
  5489.                 var c = A.ka(32, !1);
  5490.                 c.m(a);
  5491.                 null != b && (a = pako.deflateRaw(b.Wb()),
  5492.                 c.Lb(a));
  5493.                 this.$.send(c.Qd())
  5494.             }
  5495.         }
  5496.         Ki(a, b, c) {
  5497.             let d = A.ka(32, !1);
  5498.             d.m(this.rh ? 1 : 0);
  5499.             d.oc(a.sdp);
  5500.             d.Vg(b);
  5501.             null != c && d.Lb(c.Wb());
  5502.             this.Tc(1, d)
  5503.         }
  5504.         Hi(a) {
  5505.             let b = A.ka(32, !1);
  5506.             b.Vg(a);
  5507.             this.Tc(4, b)
  5508.         }
  5509.         static ap(a) {
  5510.             switch (a.pb) {
  5511.             case 0:
  5512.                 return "Failed";
  5513.             case 1:
  5514.                 return Ic.description(a.code);
  5515.             case 2:
  5516.                 return "";
  5517.             case 3:
  5518.                 return "Master connection error"
  5519.             }
  5520.         }
  5521.     }
  5522.     class Xb {
  5523.         constructor(a, b) {
  5524.             this.za = a;
  5525.             this.da = b
  5526.         }
  5527.         uf(a) {
  5528.             if ("/" != a.charAt(0))
  5529.                 return !1;
  5530.             if (1 == a.length)
  5531.                 return !0;
  5532.             a = ba.nt(O.substr(a, 1, null)).split(" ");
  5533.             let b = a[0]
  5534.               , c = this;
  5535.             switch (b) {
  5536.             case "avatar":
  5537.                 2 == a.length && (this.Bm(a[1]),
  5538.                 this.da("Avatar set"));
  5539.                 break;
  5540.             case "checksum":
  5541.                 var d = this.za.U.T;
  5542.                 a = d.D;
  5543.                 d.af() ? this.da('Current stadium is original: "' + a + '"') : (d = ba.bh(d.ik(), 8),
  5544.                 this.da('Stadium: "' + a + '" (checksum: ' + d + ")"));
  5545.                 break;
  5546.             case "clear_avatar":
  5547.                 this.Bm(null);
  5548.                 this.da("Avatar cleared");
  5549.                 break;
  5550.             case "clear_bans":
  5551.                 null == this.ce ? this.da("Only the host can clear bans") : (this.ce(),
  5552.                 this.da("All bans have been cleared"));
  5553.                 break;
  5554.             case "clear_password":
  5555.                 null == this.Ng ? this.da("Only the host can change the password") : (this.Ng(null),
  5556.                 this.da("Password cleared"));
  5557.                 break;
  5558.             case "colors":
  5559.                 try {
  5560.                     d = Xb.Fq(a),
  5561.                     this.za.ua(d)
  5562.                 } catch (g) {
  5563.                     a = v.Mb(g).Gb(),
  5564.                     "string" == typeof a && this.da(a)
  5565.                 }
  5566.                 break;
  5567.             case "ex":
  5568.                 2 == a.length ? (a = Q.parseInt(a[1]),
  5569.                 null != a && -200 <= a && 1E3 >= a ? (m.j.Ad.ha(a),
  5570.                 this.za.Cm(a),
  5571.                 this.da("Extrapolation set to " + a + " msec")) : this.da("Extrapolation must be a value between -200 and 1000 milliseconds")) : this.da("Extrapolation requires a value in milliseconds.");
  5572.                 break;
  5573.             case "handicap":
  5574.                 2 == a.length ? (a = Q.parseInt(a[1]),
  5575.                 null != a && 0 <= a && 300 >= a ? (this.za.Pr(a),
  5576.                 this.da("Ping handicap set to " + a + " msec")) : this.da("Ping handicap must be a value between 0 and 300 milliseconds")) : this.da("Ping handicap requires a value in milliseconds.");
  5577.                 break;
  5578.             case "kick_ratelimit":
  5579.                 if (4 > a.length)
  5580.                     this.da("Usage: /kick_ratelimit <min> <rate> <burst>");
  5581.                 else {
  5582.                     d = Q.parseInt(a[1]);
  5583.                     var e = Q.parseInt(a[2]);
  5584.                     a = Q.parseInt(a[3]);
  5585.                     null == d || null == e || null == a ? this.da("Invalid arguments") : this.za.ua(Pa.pa(d, e, a))
  5586.                 }
  5587.                 break;
  5588.             case "recaptcha":
  5589.                 if (null == this.Em)
  5590.                     this.da("Only the host can set recaptcha mode");
  5591.                 else
  5592.                     try {
  5593.                         if (2 == a.length) {
  5594.                             switch (a[1]) {
  5595.                             case "off":
  5596.                                 e = !1;
  5597.                                 break;
  5598.                             case "on":
  5599.                                 e = !0;
  5600.                                 break;
  5601.                             default:
  5602.                                 throw v.C(null);
  5603.                             }
  5604.                             this.Em(e);
  5605.                             this.da("Room join Recaptcha " + (e ? "enabled" : "disabled"))
  5606.                         } else
  5607.                             throw v.C(null);
  5608.                     } catch (g) {
  5609.                         this.da("Usage: /recaptcha <on|off>")
  5610.                     }
  5611.                 break;
  5612.             case "set_password":
  5613.                 2 == a.length && (null == this.Ng ? this.da("Only the host can change the password") : (this.Ng(a[1]),
  5614.                 this.da("Password set")));
  5615.                 break;
  5616.             case "store":
  5617.                 let f = this.za.U.T;
  5618.                 f.af() ? this.da("Can't store default stadium.") : ob.lt().then(function() {
  5619.                     return ob.add(f)
  5620.                 }).then(function() {
  5621.                     c.da("Stadium stored")
  5622.                 }, function() {
  5623.                     c.da("Couldn't store stadium")
  5624.                 });
  5625.                 break;
  5626.             case "fakecommand":
  5627.                 this.da(`Unrecognized command: "${a[1]}"`)
  5628.                 break;
  5629.             case "ping":
  5630.                 fpC(a, this.da);
  5631.                 break;
  5632.             case "kutu":
  5633.                 chatBubbleCommand(a, this.da);
  5634.                 break;
  5635.             case "opmode":
  5636.                 opModeCommand(a, this.da);
  5637.                 break;
  5638.             default:
  5639.                 this.da('Unrecognized command: "' + b + '"')
  5640.             }
  5641.             return !0
  5642.         }
  5643.         Bm(a) {
  5644.             null != a && (a = ha.Xc(a, 2));
  5645.             m.j.sh.ha(a);
  5646.             this.za.ua(Qa.pa(a))
  5647.         }
  5648.         static Fq(a) {
  5649.             if (3 > a.length)
  5650.                 throw v.C("Not enough arguments");
  5651.             if (7 < a.length)
  5652.                 throw v.C("Too many arguments");
  5653.             let b = new cb
  5654.               , c = new za;
  5655.             b.Zg = c;
  5656.             switch (a[1]) {
  5657.             case "blue":
  5658.                 c.hb = [u.Da.S];
  5659.                 b.fa = u.Da;
  5660.                 break;
  5661.             case "red":
  5662.                 c.hb = [u.ia.S];
  5663.                 b.fa = u.ia;
  5664.                 break;
  5665.             default:
  5666.                 throw v.C('First argument must be either "red" or "blue"');
  5667.             }
  5668.             if ("clear" == a[2])
  5669.                 return b;
  5670.             c.sd = 256 * Q.parseInt(a[2]) / 360 | 0;
  5671.             c.od = Q.parseInt("0x" + a[3]);
  5672.             if (4 < a.length) {
  5673.                 c.hb = [];
  5674.                 let d = 4
  5675.                   , e = a.length;
  5676.                 for (; d < e; )
  5677.                     c.hb.push(Q.parseInt("0x" + a[d++]))
  5678.             }
  5679.             return b
  5680.         }
  5681.     }
  5682.     class W {
  5683.         constructor(a) {
  5684.             W.zb || this.Za(a)
  5685.         }
  5686.         Za(a) {
  5687.             this.aa = 0;
  5688.             this.U = a
  5689.         }
  5690.     }
  5691.     class bc {
  5692.         static i(a, b, c, d, e) {
  5693.             null != a && a(b, c, d, e)
  5694.         }
  5695.     }
  5696.     class Y {
  5697.         constructor(a) {
  5698.             let b = new Z("Only humans","",[]);
  5699.             this.f = b.f;
  5700.             b.de.style.minHeight = "78px";
  5701.             let c = this;
  5702.             sb.Hp().then(function(d) {
  5703.                 null == Y.Hg && (Y.Hg = window.document.createElement("div"),
  5704.                 b.de.appendChild(Y.Hg),
  5705.                 Y.er = d.render(Y.Hg, {
  5706.                     sitekey: a,
  5707.                     callback: function(e) {
  5708.                         D.i(Y.cm, e)
  5709.                     },
  5710.                     theme: "dark"
  5711.                 }));
  5712.                 d.reset(Y.er);
  5713.                 Y.cm = function(e) {
  5714.                     window.setTimeout(function() {
  5715.                         D.i(c.Wa, e)
  5716.                     }, 1E3);
  5717.                     Y.cm = null
  5718.                 }
  5719.                 ;
  5720.                 b.de.appendChild(Y.Hg)
  5721.             })
  5722.         }
  5723.     }
  5724.     class Eb {
  5725.         constructor(a) {
  5726.             this.La = x.Ia(Eb.Dj, "tbody");
  5727.             var b = x.Ba(this.La);
  5728.             let c = b.get("name")
  5729.               , d = b.get("players")
  5730.               , e = b.get("distance")
  5731.               , f = b.get("pass");
  5732.             b = b.get("flag");
  5733.             this.mt = a;
  5734.             let g = a.Ed;
  5735.             c.textContent = g.D;
  5736.             d.textContent = "" + g.K + "/" + g.jf;
  5737.             f.textContent = g.Kb ? "Yes" : "No";
  5738.             e.textContent = "" + (a.We | 0) + "km";
  5739.             try {
  5740.                 b.classList.add("f-" + g.vb.toLowerCase())
  5741.             } catch (h) {}
  5742.             9 > a.Ed.Rd && this.La.classList.add("old")
  5743.         }
  5744.     }
  5745.     class ma {
  5746.         constructor() {
  5747.             this.vb = "";
  5748.             this.Ic = this.Lc = 0
  5749.         }
  5750.         Ae() {
  5751.             return JSON.stringify({
  5752.                 lat: this.Ic,
  5753.                 lon: this.Lc,
  5754.                 code: this.vb
  5755.             })
  5756.         }
  5757.         static Lh(a) {
  5758.             return ma.dg(JSON.parse(a))
  5759.         }
  5760.         static dg(a) {
  5761.             let b = new ma;
  5762.             b.Ic = a.lat;
  5763.             b.Lc = a.lon;
  5764.             b.vb = a.code.toLowerCase();
  5765.             return b
  5766.         }
  5767.         static cp() {
  5768.             return aa.Lk(m.Pe + "api/geo").then(function(a) {
  5769.                 return ma.dg(a)
  5770.             })
  5771.         }
  5772.     }
  5773.     class Fb {
  5774.         constructor() {
  5775.             this.ye = u.Oa;
  5776.             this.ea = new P(0,0);
  5777.             this.Z = new P(0,0)
  5778.         }
  5779.         ga(a) {
  5780.             var b = this.Z;
  5781.             a.u(b.x);
  5782.             a.u(b.y);
  5783.             b = this.ea;
  5784.             a.u(b.x);
  5785.             a.u(b.y);
  5786.             a.m(this.ye.ba)
  5787.         }
  5788.         ma(a) {
  5789.             var b = this.Z;
  5790.             b.x = a.w();
  5791.             b.y = a.w();
  5792.             b = this.ea;
  5793.             b.x = a.w();
  5794.             b.y = a.w();
  5795.             a = a.wf();
  5796.             this.ye = 1 == a ? u.ia : 2 == a ? u.Da : u.Oa
  5797.         }
  5798.     }
  5799.     class mc {
  5800.         constructor(a, b) {
  5801.             this.nh = null;
  5802.             this.pt = .025;
  5803.             this.De = this.kh = this.Pf = 0;
  5804.             this.$g = b.createGain();
  5805.             this.$g.gain.value = 0;
  5806.             b = b.createBufferSource();
  5807.             b.buffer = a;
  5808.             b.connect(this.$g);
  5809.             b.loop = !0;
  5810.             b.start()
  5811.         }
  5812.         update() {
  5813.             var a = window.performance.now();
  5814.             let b = a - this.qn;
  5815.             this.qn = a;
  5816.             this.De += (this.kh - this.De) * this.pt;
  5817.             this.Pf -= b;
  5818.             0 >= this.Pf && (this.Pf = this.kh = 0);
  5819.             0 >= this.kh && .05 > this.De && (window.clearInterval(this.nh),
  5820.             this.nh = null,
  5821.             this.De = 0);
  5822.             a = m.j.Jm.v() ? this.De : 0;
  5823.             this.$g.gain.value = a
  5824.         }
  5825.         Aj(a) {
  5826.             this.kh = a;
  5827.             this.Pf = 166.66666666666666;
  5828.             let b = this;
  5829.             null == this.nh && (this.nh = window.setInterval(function() {
  5830.                 b.update()
  5831.             }, 17),
  5832.             this.qn = window.performance.now())
  5833.         }
  5834.         connect(a) {
  5835.             this.$g.connect(a)
  5836.         }
  5837.         rt(a) {
  5838.             let b = a.M;
  5839.             if (null != b)
  5840.                 if (2 == b.Db)
  5841.                     0 >= b.Ra && this.Aj(1);
  5842.                 else if (1 == b.Db) {
  5843.                     let e = b.va.H[0]
  5844.                       , f = null
  5845.                       , g = null
  5846.                       , h = null
  5847.                       , k = 0
  5848.                       , l = null
  5849.                       , n = null
  5850.                       , r = null
  5851.                       , t = 0
  5852.                       , z = u.ia.Gh
  5853.                       , J = 0;
  5854.                     for (a = a.K; J < a.length; ) {
  5855.                         let N = a[J];
  5856.                         ++J;
  5857.                         if (null == N.J)
  5858.                             continue;
  5859.                         var c = N.J.a;
  5860.                         let Gb = e.a;
  5861.                         var d = c.x - Gb.x;
  5862.                         c = c.y - Gb.y;
  5863.                         d = d * d + c * c;
  5864.                         if (N.fa == u.ia) {
  5865.                             if (null == f || f.a.x * z < N.J.a.x * z)
  5866.                                 f = N.J;
  5867.                             if (null == g || g.a.x * z > N.J.a.x * z)
  5868.                                 g = N.J;
  5869.                             if (null == h || d < k)
  5870.                                 h = N.J,
  5871.                                 k = d
  5872.                         } else if (N.fa == u.Da) {
  5873.                             if (null == l || l.a.x * z < N.J.a.x * z)
  5874.                                 l = N.J;
  5875.                             if (null == n || n.a.x * z > N.J.a.x * z)
  5876.                                 n = N.J;
  5877.                             if (null == r || d < t)
  5878.                                 r = N.J,
  5879.                                 t = d
  5880.                         }
  5881.                     }
  5882.                     null != n && null != g && 0 >= b.Ra && (h.a.x > n.a.x && e.a.x > n.a.x && 20 < e.a.x && this.Aj(.3),
  5883.                     r.a.x < g.a.x && e.a.x < g.a.x && -20 > e.a.x && this.Aj(.3))
  5884.                 }
  5885.         }
  5886.     }
  5887.     class Jc {
  5888.         static rj() {
  5889.             p.Ja(Hb);
  5890.             p.Ja(La);
  5891.             p.Ja(db);
  5892.             p.Ja(Aa);
  5893.             p.Ja(Za);
  5894.             p.Ja(Da);
  5895.             p.Ja(la);
  5896.             p.Ja(Wa);
  5897.             p.Ja(Xa);
  5898.             p.Ja($a);
  5899.             p.Ja(va);
  5900.             p.Ja(Ia);
  5901.             p.Ja(fa);
  5902.             p.Ja(Ja);
  5903.             p.Ja(Ka);
  5904.             p.Ja(Ya);
  5905.             p.Ja(Ha);
  5906.             p.Ja(Ca);
  5907.             p.Ja(Qa);
  5908.             p.Ja(cb);
  5909.             p.Ja(Ib);
  5910.             p.Ja(Pa);
  5911.             p.Ja(Jb);
  5912.             p.Ja(Kb)
  5913.         }
  5914.     }
  5915.     class Ac {
  5916.         static ln() {
  5917.             try {
  5918.                 let a = window.localStorage;
  5919.                 a.getItem("");
  5920.                 if (0 == a.length) {
  5921.                     let b = "_hx_" + Math.random();
  5922.                     a.setItem(b, b);
  5923.                     a.removeItem(b)
  5924.                 }
  5925.                 return a
  5926.             } catch (a) {
  5927.                 return null
  5928.             }
  5929.         }
  5930.     }
  5931.     class Fa {
  5932.         constructor(a) {
  5933.             function b() {
  5934.                 let t = g[f];
  5935.                 a.Ll = e ? t : 0;
  5936.                 c.get("spd").textContent = t + "x"
  5937.             }
  5938.             this.ig = !1;
  5939.             this.f = x.Ia(Fa.O);
  5940.             let c = x.Ba(this.f);
  5941.             this.Bi = a;
  5942.             let d = this;
  5943.             c.get("reset").onclick = function() {
  5944.                 a.Ci();
  5945.                 d.Al()
  5946.             }
  5947.             ;
  5948.             let e = !0
  5949.               , f = 2
  5950.               , g = [.5, .75, 1, 2, 3];
  5951.             b();
  5952.             let h = c.get("playicon");
  5953.             h.classList.add("icon-pause");
  5954.             c.get("play").onclick = function() {
  5955.                 e = !e;
  5956.                 let t = h.classList;
  5957.                 t.toggle("icon-play", !e);
  5958.                 t.toggle("icon-pause", e);
  5959.                 b()
  5960.             }
  5961.             ;
  5962.             c.get("spdup").onclick = function() {
  5963.                 f += 1;
  5964.                 let t = g.length - 1;
  5965.                 f > t && (f = t);
  5966.                 b()
  5967.             }
  5968.             ;
  5969.             c.get("spddn").onclick = function() {
  5970.                 --f;
  5971.                 0 > f && (f = 0);
  5972.                 b()
  5973.             }
  5974.             ;
  5975.             this.ks = c.get("time");
  5976.             let k = c.get("timebar");
  5977.             this.br = c.get("progbar");
  5978.             let l = c.get("timetooltip")
  5979.               , n = 0
  5980.               , r = a.ml;
  5981.             for (; n < r.length; ) {
  5982.                 let t = r[n];
  5983.                 ++n;
  5984.                 let z = window.document.createElement("div");
  5985.                 z.className = "marker";
  5986.                 z.classList.add("k" + t.kind);
  5987.                 z.style.left = 100 * t.xj + "%";
  5988.                 k.appendChild(z)
  5989.             }
  5990.             k.onclick = function(t) {
  5991.                 a.Hr((t.pageX - k.offsetLeft) / k.clientWidth * a.oh * a.yf);
  5992.                 d.ig || (d.ig = !0,
  5993.                 d.xq(),
  5994.                 d.Al())
  5995.             }
  5996.             ;
  5997.             k.onmousemove = function(t) {
  5998.                 t = (t.pageX - k.offsetLeft) / k.clientWidth;
  5999.                 l.textContent = Fa.nl(a.yf * a.oh * t);
  6000.                 return l.style.left = "calc(" + 100 * t + "% - 30px)"
  6001.             }
  6002.             ;
  6003.             this.Gp = c.get("leave");
  6004.             this.Gp.onclick = function() {
  6005.                 H.i(d.le)
  6006.             }
  6007.         }
  6008.         A() {
  6009.             this.ks.textContent = Fa.nl(this.Bi.Ub);
  6010.             this.br.style.width = 100 * this.Bi.ep() + "%";
  6011.             !this.ig || 0 < this.Bi.Pd || (this.ig = !1,
  6012.             this.wq())
  6013.         }
  6014.         static nl(a) {
  6015.             a = a / 1E3 | 0;
  6016.             return (a / 60 | 0) + ":" + ba.Lf(Q.Fe(a % 60))
  6017.         }
  6018.     }
  6019.     class ha {
  6020.         static Xc(a, b) {
  6021.             return a.length <= b ? a : O.substr(a, 0, b)
  6022.         }
  6023.         static Hs(a) {
  6024.             let b = ""
  6025.               , c = 0
  6026.               , d = a.byteLength;
  6027.             for (; c < d; )
  6028.                 b += ba.bh(a[c++], 2);
  6029.             return b
  6030.         }
  6031.     }
  6032.     class da {
  6033.         constructor(a, b) {
  6034.             let c = []
  6035.               , d = 0;
  6036.             for (; d < a.length; )
  6037.                 c.push(this.Tp(a[d++], b));
  6038.             this.hf = c
  6039.         }
  6040.         Xo() {
  6041.             return 2.31 + .1155 * (this.hf.length - 1)
  6042.         }
  6043.         Qc(a, b) {
  6044.             b /= 2.31;
  6045.             let c = 0;
  6046.             a.imageSmoothingEnabled = !0;
  6047.             let d = 0
  6048.               , e = this.hf;
  6049.             for (; d < e.length; ) {
  6050.                 let g = e[d];
  6051.                 ++d;
  6052.                 var f = b - .05 * c;
  6053.                 let h = da.En.eval(f)
  6054.                   , k = 35 * -(this.hf.length - 1) + 70 * c;
  6055.                 f = 180 * da.Fn.eval(f);
  6056.                 a.globalAlpha = h;
  6057.                 a.drawImage(g, f * (0 != (c & 1) ? -1 : 1) - .5 * g.width, k - .5 * g.height);
  6058.                 a.globalAlpha = 1;
  6059.                 ++c
  6060.             }
  6061.             a.imageSmoothingEnabled = !1
  6062.         }
  6063.         vr(a) {
  6064.             let b = 0;
  6065.             a.imageSmoothingEnabled = !0;
  6066.             let c = 0
  6067.               , d = this.hf;
  6068.             for (; c < d.length; ) {
  6069.                 let e = d[c];
  6070.                 ++c;
  6071.                 a.drawImage(e, .5 * -e.width, 35 * -(this.hf.length - 1) + 70 * b - .5 * e.height);
  6072.                 ++b
  6073.             }
  6074.             a.imageSmoothingEnabled = !1
  6075.         }
  6076.         nc(a) {
  6077.             return "rgba(" + [(a & 16711680) >>> 16, (a & 65280) >>> 8, a & 255].join() + ",255)"
  6078.         }
  6079.         Tp(a, b) {
  6080.             let c = window.document.createElement("canvas")
  6081.               , d = c.getContext("2d", null);
  6082.             d.font = "900 70px 'Arial Black','Arial Bold',Gadget,sans-serif";
  6083.             c.width = Math.ceil(d.measureText(a).width) + 7;
  6084.             c.height = 90;
  6085.             d.font = "900 70px 'Arial Black','Arial Bold',Gadget,sans-serif";
  6086.             d.textAlign = "left";
  6087.             d.textBaseline = "middle";
  6088.             d.fillStyle = "black";
  6089.             d.fillText(a, 7, 52);
  6090.             d.fillStyle = this.nc(b);
  6091.             d.fillText(a, 0, 45);
  6092.             return c
  6093.         }
  6094.     }
  6095.     class Vb {
  6096.         constructor(a, b) {
  6097.             this.Uh = null;
  6098.             this.l = a;
  6099.             null != b && (this.Uh = "@" + ba.replace(b, " ", "_"))
  6100.         }
  6101.         cj(a) {
  6102.             let b = this.l.Ka.Ec
  6103.               , c = []
  6104.               , d = 0;
  6105.             for (a = a.K; d < a.length; ) {
  6106.                 let e = a[d];
  6107.                 ++d;
  6108.                 c.push({
  6109.                     D: e.D,
  6110.                     ba: e.Y
  6111.                 })
  6112.             }
  6113.             b.Wj = c
  6114.         }
  6115.         zi(a) {
  6116.             function b(d) {
  6117.                 return null == d ? "" : " by " + d.D
  6118.             }
  6119.             this.cj(a);
  6120.             let c = this;
  6121.             a.Pl = function(d) {
  6122.                 c.l.Ka.Ib("" + d.D + " has joined");
  6123.                 m.Pa.ld(m.Pa.zp);
  6124.                 c.cj(a)
  6125.             }
  6126.             ;
  6127.             a.Ql = function(d, e, f, g) {
  6128.                 D.i(c.qq, d.Y);
  6129.                 null == e ? d = "" + d.D + " has left" : (bc.i(c.pq, d.Y, e, null != g ? g.D : null, f),
  6130.                 d = "" + d.D + " was " + (f ? "banned" : "kicked") + b(g) + ("" != e ? " (" + e + ")" : ""));
  6131.                 c.l.Ka.Ib(d);
  6132.                 m.Pa.ld(m.Pa.Fp);
  6133.                 c.cj(a)
  6134.             }
  6135.             ;
  6136.             a.Nl = function(d, e) {
  6137.                 let f = null != c.Uh && -1 != e.indexOf(c.Uh);
  6138.                 c.l.Ka.da("" + d.D + ": " + e, f ? "highlight" : null);
  6139.                 m.j.Km.v() && f ? m.Pa.ld(m.Pa.Rk) : m.j.Qi.v() && m.Pa.ld(m.Pa.fk)
  6140.             }
  6141.             ;
  6142.             a.qm = function(d, e, f, g) {
  6143.                 c.l.Ka.Qp(d, e, f);
  6144.                 if (m.j.Qi.v())
  6145.                     switch (g) {
  6146.                     case 1:
  6147.                         m.Pa.ld(m.Pa.fk);
  6148.                         break;
  6149.                     case 2:
  6150.                         m.Pa.ld(m.Pa.Rk)
  6151.                     }
  6152.             }
  6153.             ;
  6154.             a.ri = function() {
  6155.                 m.Pa.ld(m.Pa.Bp)
  6156.             }
  6157.             ;
  6158.             a.Xi = function(d) {
  6159.                 m.Pa.ld(m.Pa.gp);
  6160.                 let e = c.l.ib.gb.Cd;
  6161.                 e.Sa(d == u.ia ? e.gr : e.Zn)
  6162.             }
  6163.             ;
  6164.             a.Yi = function(d) {
  6165.                 let e = c.l.ib.gb.Cd;
  6166.                 e.Sa(d == u.ia ? e.hr : e.$n);
  6167.                 c.l.Ka.Ib("" + d.D + " team won the match")
  6168.             }
  6169.             ;
  6170.             a.Il = function(d, e, f) {
  6171.                 e && !f && c.l.Ka.Ib("Game paused" + b(d))
  6172.             }
  6173.             ;
  6174.             a.Zi = function() {
  6175.                 let d = c.l.ib.gb.Cd;
  6176.                 d.Sa(d.fs)
  6177.             }
  6178.             ;
  6179.             a.Ui = function(d) {
  6180.                 c.l.ue(!1);
  6181.                 c.l.ib.gb.Cd.mo();
  6182.                 c.l.Ka.Ib("Game started" + b(d))
  6183.             }
  6184.             ;
  6185.             a.Hf = function(d) {
  6186.                 null != d && c.l.Ka.Ib("Game stopped" + b(d))
  6187.             }
  6188.             ;
  6189.             a.Si = function(d, e) {
  6190.                 if (!e.af()) {
  6191.                     let f = ba.bh(e.ik(), 8);
  6192.                     c.l.Ka.Ib('Stadium "' + e.D + '" (' + f + ") loaded" + b(d))
  6193.                 }
  6194.             }
  6195.             ;
  6196.             a.Ol = function(d) {
  6197.                 c.l.Ka.Ib("" + d.D + " " + (d.Ud ? "has desynchronized" : "is back in sync"))
  6198.             }
  6199.             ;
  6200.             a.Tl = function(d, e, f) {
  6201.                 null != a.M && c.l.Ka.Ib("" + e.D + " was moved to " + f.D + b(d))
  6202.             }
  6203.             ;
  6204.             a.pi = function(d, e) {
  6205.                 let f = e.D;
  6206.                 d = (e.fb ? "" + f + " was given admin rights" : "" + f + "'s admin rights were taken away") + b(d);
  6207.                 c.l.Ka.Ib(d)
  6208.             }
  6209.             ;
  6210.             a.Sl = function(d, e) {
  6211.                 c.l.ib.gb.np(d, e)
  6212.             }
  6213.             ;
  6214.             a.Zk = function(d, e, f, g) {
  6215.                 c.l.Ka.Ib("Kick Rate Limit set to (min: " + e + ", rate: " + f + ", burst: " + g + ")" + b(d))
  6216.             }
  6217.         }
  6218.         ss(a) {
  6219.             a.Pl = null;
  6220.             a.Ql = null;
  6221.             a.Nl = null;
  6222.             a.qm = null;
  6223.             a.ri = null;
  6224.             a.Xi = null;
  6225.             a.Yi = null;
  6226.             a.Il = null;
  6227.             a.Zi = null;
  6228.             a.Ui = null;
  6229.             a.Hf = null;
  6230.             a.Si = null;
  6231.             a.Ol = null;
  6232.             a.Tl = null;
  6233.             a.pi = null;
  6234.             a.Sl = null;
  6235.             a.Zk = null
  6236.         }
  6237.     }
  6238.     class cc {
  6239.         static lh(a) {
  6240.             return new Promise(function(b, c) {
  6241.                 a.onsuccess = function() {
  6242.                     b(a.result)
  6243.                 }
  6244.                 ;
  6245.                 a.onerror = c
  6246.             }
  6247.             )
  6248.         }
  6249.     }
  6250.     class za {
  6251.         constructor() {
  6252.             this.od = 16777215;
  6253.             this.hb = []
  6254.         }
  6255.         ga(a) {
  6256.             a.m(this.sd);
  6257.             a.P(this.od);
  6258.             a.m(this.hb.length);
  6259.             let b = 0
  6260.               , c = this.hb;
  6261.             for (; b < c.length; )
  6262.                 a.P(c[b++])
  6263.         }
  6264.         ma(a) {
  6265.             this.sd = a.F();
  6266.             this.od = a.N();
  6267.             let b = a.F();
  6268.             if (3 < b)
  6269.                 throw v.C("too many");
  6270.             this.hb = [];
  6271.             let c = 0;
  6272.             for (; c < b; )
  6273.                 ++c,
  6274.                 this.hb.push(a.N())
  6275.         }
  6276.     }
  6277.     class dc {
  6278.     }
  6279.     class uc {
  6280.         constructor() {
  6281.             function a(g) {
  6282.                 return new xa(g,f,function(h) {
  6283.                     if (null == h)
  6284.                         return null;
  6285.                     try {
  6286.                         return ma.Lh(h)
  6287.                     } catch (k) {
  6288.                         return null
  6289.                     }
  6290.                 }
  6291.                 ,function(h) {
  6292.                     if (null == h)
  6293.                         return null;
  6294.                     try {
  6295.                         return h.Ae()
  6296.                     } catch (k) {
  6297.                         return null
  6298.                     }
  6299.                 }
  6300.                 )
  6301.             }
  6302.             function b(g, h) {
  6303.                 return new xa(g,f,function(k) {
  6304.                     return null != k ? "0" != k : h
  6305.                 }
  6306.                 ,function(k) {
  6307.                     return k ? "1" : "0"
  6308.                 }
  6309.                 )
  6310.             }
  6311.             function c(g, h) {
  6312.                 return new xa(g,f,function(k) {
  6313.                     let l = h;
  6314.                     try {
  6315.                         null != k && (l = parseFloat(k))
  6316.                     } catch (n) {}
  6317.                     return l
  6318.                 }
  6319.                 ,function(k) {
  6320.                     return "" + k
  6321.                 }
  6322.                 )
  6323.             }
  6324.             function d(g, h) {
  6325.                 return new xa(g,f,function(k) {
  6326.                     let l = h;
  6327.                     try {
  6328.                         null != k && (l = Q.parseInt(k))
  6329.                     } catch (n) {}
  6330.                     return l
  6331.                 }
  6332.                 ,function(k) {
  6333.                     return "" + k
  6334.                 }
  6335.                 )
  6336.             }
  6337.             function e(g, h, k) {
  6338.                 return new xa(g,f,function(l) {
  6339.                     return null == l ? h : ha.Xc(l, k)
  6340.                 }
  6341.                 ,function(l) {
  6342.                     return l
  6343.                 }
  6344.                 )
  6345.             }
  6346.             let f = Ac.ln();
  6347.             this.ne = e("player_name", "", 25);
  6348.             this.Sd = d("view_mode", -1);
  6349.             this.Jh = d("fps_limit", 0);
  6350.             this.sh = e("avatar", null, 2);
  6351.             e("rctoken", null, 1024);
  6352.             this.Sm = b("team_colors", !0);
  6353.             this.Sk = b("show_indicators", !0);
  6354.             this.Ri = c("sound_volume", 1);
  6355.             this.ve = b("sound_main", !0);
  6356.             this.Qi = b("sound_chat", !0);
  6357.             this.Km = b("sound_highlight", !0);
  6358.             this.Jm = b("sound_crowd", !0);
  6359.             this.Vj = e("player_auth_key", null, 1024);
  6360.             this.Ad = d("extrapolation", 0);
  6361.             this.Ei = c("resolution_scale", 1);
  6362.             this.Hm = b("show_avatars", !0);
  6363.             this.hk = d("chat_height", 160);
  6364.             this.zh = d("chat_focus_height", 140);
  6365.             this.Ah = c("chat_opacity", .8);
  6366.             this.gk = e("chat_bg_mode", "compact", 50);
  6367.             this.ci = b("low_latency_canvas", !0);
  6368.             this.Xe = a("geo");
  6369.             this.Ye = a("geo_override");
  6370.             this.Kd = function() {
  6371.                 return new xa("player_keys",f,function(g) {
  6372.                     if (null == g)
  6373.                         return ra.sk();
  6374.                     try {
  6375.                         return ra.Lh(g)
  6376.                     } catch (h) {
  6377.                         return ra.sk()
  6378.                     }
  6379.                 }
  6380.                 ,function(g) {
  6381.                     try {
  6382.                         return g.Ae()
  6383.                     } catch (h) {
  6384.                         return null
  6385.                     }
  6386.                 }
  6387.                 )
  6388.             }()
  6389.         }
  6390.         Oh() {
  6391.             return null != this.Ye.v() ? this.Ye.v() : null != this.Xe.v() ? this.Xe.v() : new ma
  6392.         }
  6393.     }
  6394.     class aa {
  6395.         static lm(a, b, c, d, e) {
  6396.             return new Promise(function(f, g) {
  6397.                 let h = new XMLHttpRequest;
  6398.                 h.open(b, a);
  6399.                 h.responseType = c;
  6400.                 h.onload = function() {
  6401.                     200 <= h.status && 300 > h.status ? null != h.response ? f(h.response) : g(null) : g("status: " + h.status)
  6402.                 }
  6403.                 ;
  6404.                 h.onerror = function(k) {
  6405.                     g(k)
  6406.                 }
  6407.                 ;
  6408.                 null != e && h.setRequestHeader("Content-type", e);
  6409.                 h.send(d)
  6410.             }
  6411.             )
  6412.         }
  6413.         static v(a, b) {
  6414.             return aa.lm(a, "GET", b, null)
  6415.         }
  6416.         static Lk(a) {
  6417.             return aa.v(a, "json").then(function(b) {
  6418.                 let c = b.error;
  6419.                 if (null != c)
  6420.                     throw v.C(c);
  6421.                 return b.data
  6422.             })
  6423.         }
  6424.         static Oq(a, b, c) {
  6425.             return aa.lm(a, "POST", "json", b, c)
  6426.         }
  6427.         static Vl(a, b, c) {
  6428.             return aa.Oq(a, b, c).then(function(d) {
  6429.                 let e = d.error;
  6430.                 if (null != e)
  6431.                     throw v.C(e);
  6432.                 return d.data
  6433.             })
  6434.         }
  6435.     }
  6436.     class Sa {
  6437.         constructor(a) {
  6438.             function b(g, h) {
  6439.                 function k() {
  6440.                     l.className = n.He ? "icon-ok" : "icon-cancel"
  6441.                 }
  6442.                 g = c.get(g);
  6443.                 let l = g.querySelector("i")
  6444.                   , n = {
  6445.                     He: h
  6446.                 };
  6447.                 k();
  6448.                 g.onclick = function() {
  6449.                     n.He = !n.He;
  6450.                     k();
  6451.                     e.yn(e.pj)
  6452.                 }
  6453.                 ;
  6454.                 return n
  6455.             }
  6456.             this.pj = [];
  6457.             this.Qs = a;
  6458.             this.La = x.Ia(Sa.Dj);
  6459.             let c = x.Ba(this.La)
  6460.               , d = new vb(c);
  6461.             this.zj = c.get("refresh");
  6462.             this.pn = c.get("join");
  6463.             a = c.get("create");
  6464.             this.Ls = c.get("count");
  6465.             let e = this;
  6466.             a.onclick = function() {
  6467.                 H.i(e.dt)
  6468.             }
  6469.             ;
  6470.             c.get("changenick").onclick = function() {
  6471.                 H.i(e.ct)
  6472.             }
  6473.             ;
  6474.             c.get("settings").onclick = function() {
  6475.                 H.i(e.ft)
  6476.             }
  6477.             ;
  6478.             let f = c.get("replayfile");
  6479.             f.onchange = function() {
  6480.                 var g = f.files;
  6481.                 if (!(1 > g.length)) {
  6482.                     g = g.item(0);
  6483.                     var h = new FileReader;
  6484.                     h.onload = function() {
  6485.                         D.i(e.et, h.result)
  6486.                     }
  6487.                     ;
  6488.                     h.readAsArrayBuffer(g)
  6489.                 }
  6490.             }
  6491.             ;
  6492.             this.Ps = b("fil-full", !0);
  6493.             this.gt = b("fil-pass", !0);
  6494.             this.Os = b("fil-empty", !0);
  6495.             this.Ws = c.get("listscroll");
  6496.             this.it = nb.ei(this.Ws);
  6497.             this.sj = c.get("list");
  6498.             this.zj.onclick = function() {
  6499.                 d.em();
  6500.                 e.kn()
  6501.             }
  6502.             ;
  6503.             this.pn.onclick = function() {
  6504.                 null != e.Xd && D.i(e.un, e.Xd.mt)
  6505.             }
  6506.             ;
  6507.             this.kn()
  6508.         }
  6509.         kn() {
  6510.             function a() {
  6511.                 d.zj.disabled = !1;
  6512.                 d.yn(b);
  6513.                 return null
  6514.             }
  6515.             this.Bn(null);
  6516.             this.zj.disabled = !0;
  6517.             x.Nf(this.sj);
  6518.             let b = [];
  6519.             this.pj = [];
  6520.             let c = Ub.get().then(function(e) {
  6521.                 return b = e
  6522.             }, function() {
  6523.                 return null
  6524.             })
  6525.               , d = this;
  6526.             Sa.ht(c).then(a, a)
  6527.         }
  6528.         yn(a) {
  6529.             this.pj = a;
  6530.             Ub.ot(this.Qs, a);
  6531.             a.sort(function(k, l) {
  6532.                 return k.We - l.We
  6533.             });
  6534.             x.Nf(this.sj);
  6535.             let b = 0
  6536.               , c = 0
  6537.               , d = !this.Ps.He
  6538.               , e = !this.gt.He
  6539.               , f = !this.Os.He
  6540.               , g = this
  6541.               , h = 0;
  6542.             for (; h < a.length; ) {
  6543.                 let k = a[h];
  6544.                 ++h;
  6545.                 let l = k.Ed;
  6546.                 if (d && l.K >= l.jf)
  6547.                     continue;
  6548.                 if (e && l.Kb)
  6549.                     continue;
  6550.                 if (f && 0 == l.K)
  6551.                     continue;
  6552.                 let n = new Eb(k);
  6553.                 n.La.ondblclick = function() {
  6554.                     D.i(g.un, k)
  6555.                 }
  6556.                 ;
  6557.                 n.La.onclick = function() {
  6558.                     g.Bn(n)
  6559.                 }
  6560.                 ;
  6561.                 this.sj.appendChild(n.La);
  6562.                 b += l.K;
  6563.                 ++c
  6564.             }
  6565.             this.Ls.textContent = "" + b + " players in " + c + " rooms";
  6566.             this.it.update()
  6567.         }
  6568.         Bn(a) {
  6569.             null != this.Xd && this.Xd.La.classList.remove("selected");
  6570.             this.Xd = a;
  6571.             null != this.Xd && this.Xd.La.classList.add("selected");
  6572.             this.pn.disabled = null == this.Xd
  6573.         }
  6574.         static ht(a) {
  6575.             let b = new Promise(function(c, d) {
  6576.                 window.setTimeout(function() {
  6577.                     d(null)
  6578.                 }, 5E3)
  6579.             }
  6580.             );
  6581.             return Promise.race([b, a])
  6582.             .catch(error => {
  6583.                 console.error("HATA:", error);
  6584.                 throw error;
  6585.             });
  6586.         }
  6587.     }
  6588.     class Q {
  6589.         static Fe(a) {
  6590.             return w.Me(a, "")
  6591.         }
  6592.         static parseInt(a) {
  6593.             a = parseInt(a);
  6594.             return isNaN(a) ? null : a
  6595.         }
  6596.     }
  6597.     class ta {
  6598.         constructor() {
  6599.             this.jc = -1;
  6600.             this.T = this.ic = null;
  6601.             this.Hd = 2;
  6602.             this.fd = 0;
  6603.             this.ke = 1;
  6604.             this.kb = this.Ga = 3;
  6605.             this.Vc = !1;
  6606.             this.M = null;
  6607.             this.K = [];
  6608.             this.lc = "";
  6609.             this.T = q.Nh()[0];
  6610.             this.mb = [null, new za, new za];
  6611.             this.mb[1].hb.push(u.ia.S);
  6612.             this.mb[2].hb.push(u.Da.S)
  6613.         }
  6614.         ds(a) {
  6615.             if (null == this.M) {
  6616.                 this.M = new ca;
  6617.                 for (var b = 0, c = this.K; b < c.length; ) {
  6618.                     let d = c[b];
  6619.                     ++b;
  6620.                     d.J = null;
  6621.                     d.Nb = 0
  6622.                 }
  6623.                 this.M.vp(this);
  6624.                 null != this.Ui && this.Ui(a)
  6625.             }
  6626.         }
  6627.         Yf(a, b, c) {
  6628.             if (b.fa != c) {
  6629.                 b.fa = c;
  6630.                 O.remove(this.K, b);
  6631.                 this.K.push(b);
  6632.                 if (null != this.M) {
  6633.                     null != b.J && (O.remove(this.M.va.H, b.J),
  6634.                     b.J = null);
  6635.                     this.M.Uk(b);
  6636.                     let d = 0
  6637.                       , e = !1;
  6638.                     for (; !e; ) {
  6639.                         ++d;
  6640.                         e = !0;
  6641.                         let f = 0
  6642.                           , g = this.K;
  6643.                         for (; f < g.length; ) {
  6644.                             let h = g[f];
  6645.                             ++f;
  6646.                             if (h != b && h.fa == b.fa && h.Nb == d) {
  6647.                                 e = !1;
  6648.                                 break
  6649.                             }
  6650.                         }
  6651.                     }
  6652.                     b.Nb = d
  6653.                 }
  6654.                 kc.i(this.Tl, a, b, c)
  6655.             }
  6656.         }
  6657.         qa(a) {
  6658.             let b = 0
  6659.               , c = this.K;
  6660.             for (; b < c.length; ) {
  6661.                 let d = c[b];
  6662.                 ++b;
  6663.                 if (d.Y == a)
  6664.                     return d
  6665.             }
  6666.             return null
  6667.         }
  6668.         A(a) {
  6669.             null != this.M && this.M.A(a)
  6670.         }
  6671.         ga(a) {
  6672.             a.Fb(this.lc);
  6673.             a.m(this.Vc ? 1 : 0);
  6674.             a.P(this.kb);
  6675.             a.P(this.Ga);
  6676.             a.hj(this.ke);
  6677.             a.m(this.fd);
  6678.             a.m(this.Hd);
  6679.             this.T.ga(a);
  6680.             a.m(null != this.M ? 1 : 0);
  6681.             null != this.M && this.M.ga(a);
  6682.             a.m(this.K.length);
  6683.             let b = 0
  6684.               , c = this.K;
  6685.             for (; b < c.length; )
  6686.                 c[b++].wa(a);
  6687.             this.mb[1].ga(a);
  6688.             this.mb[2].ga(a)
  6689.         }
  6690.         ma(a) {
  6691.             this.lc = a.Bb();
  6692.             this.Vc = 0 != a.F();
  6693.             this.kb = a.N();
  6694.             this.Ga = a.N();
  6695.             this.ke = a.vi();
  6696.             this.fd = a.F();
  6697.             this.Hd = a.F();
  6698.             this.T = q.ma(a);
  6699.             var b = 0 != a.F();
  6700.             this.M = null;
  6701.             b && (this.M = new ca,
  6702.             this.M.ma(a, this));
  6703.             b = null == this.M ? null : this.M.va.H;
  6704.             let c = a.F();
  6705.             for (var d = this.K; d.length > c; )
  6706.                 d.pop();
  6707.             for (d = 0; d < c; ) {
  6708.                 let e = new sa;
  6709.                 e.xa(a, b);
  6710.                 this.K[d++] = e
  6711.             }
  6712.             this.mb[1].ma(a);
  6713.             this.mb[2].ma(a)
  6714.         }
  6715.         Mk() {
  6716.             let a = 0;
  6717.             var b = A.ka();
  6718.             this.ga(b);
  6719.             for (b = b.ms(); 4 <= b.s.byteLength - b.a; )
  6720.                 a ^= b.N();
  6721.             return a
  6722.         }
  6723.         Yo() {
  6724.             let a = A.ka(4);
  6725.             a.P(this.Mk());
  6726.             return a.Rg()
  6727.         }
  6728.         ro(a) {
  6729.             a = (new K(new DataView(a))).N();
  6730.             D.i(this.Io, this.Mk() != a)
  6731.         }
  6732.         Fm(a) {
  6733.             this.km = a
  6734.         }
  6735.         Pb(a) {
  6736.             if (0 == a)
  6737.                 return !0;
  6738.             a = this.qa(a);
  6739.             return null != a && a.fb ? !0 : !1
  6740.         }
  6741.         Rr(a, b, c, d) {
  6742.             this.Hd = 0 > b ? 0 : 255 < b ? 255 : b;
  6743.             this.fd = 0 > c ? 0 : 255 < c ? 255 : c;
  6744.             0 > d ? d = 0 : 100 < d && (d = 100);
  6745.             this.ke = this.fd * d;
  6746.             bc.i(this.Zk, a, this.Hd, this.fd, d)
  6747.         }
  6748.         uc() {
  6749.             let a = qa.Bc
  6750.               , b = this.ic;
  6751.             this.jc != a && (null == b && (this.ic = b = new ta),
  6752.             this.jc = a,
  6753.             ta.zd(b, this));
  6754.             return b
  6755.         }
  6756.         static zd(a, b) {
  6757.             a.lc = b.lc;
  6758.             if (null == b.K)
  6759.                 a.K = null;
  6760.             else {
  6761.                 null == a.K && (a.K = []);
  6762.                 let d = a.K
  6763.                   , e = b.K;
  6764.                 for (var c = e.length; d.length > c; )
  6765.                     d.pop();
  6766.                 c = 0;
  6767.                 let f = e.length;
  6768.                 for (; c < f; ) {
  6769.                     let g = c++;
  6770.                     d[g] = e[g].Rs()
  6771.                 }
  6772.             }
  6773.             a.M = null == b.M ? null : b.M.uc();
  6774.             a.Vc = b.Vc;
  6775.             a.kb = b.kb;
  6776.             a.Ga = b.Ga;
  6777.             a.ke = b.ke;
  6778.             a.fd = b.fd;
  6779.             a.Hd = b.Hd;
  6780.             a.T = b.T;
  6781.             a.mb = b.mb
  6782.         }
  6783.     }
  6784.     class lb {
  6785.         constructor() {
  6786.             this.f = x.Ia(lb.O);
  6787.             let a = x.Ba(this.f);
  6788.             this.Kc = a.get("log");
  6789.             this.xh = a.get("cancel")
  6790.         }
  6791.         da(a) {
  6792.             let b = window.document.createElement("p");
  6793.             b.textContent = a;
  6794.             this.Kc.appendChild(b)
  6795.         }
  6796.     }
  6797.     class jb {
  6798.         constructor(a) {
  6799.             this.f = x.Ia(jb.O);
  6800.             var b = x.Ba(this.f);
  6801.             this.xh = b.get("cancel");
  6802.             this.nk = b.get("create");
  6803.             this.mf = b.get("name");
  6804.             this.Gl = b.get("pass");
  6805.             this.hi = b.get("max-pl");
  6806.             this.$m = b.get("unlisted");
  6807.             this.mf.maxLength = 40;
  6808.             this.mf.value = a;
  6809.             let c = this;
  6810.             this.mf.oninput = function() {
  6811.                 c.A()
  6812.             }
  6813.             ;
  6814.             this.Gl.maxLength = 30;
  6815.             this.$m.onclick = function() {
  6816.                 c.Uj(!c.an)
  6817.             }
  6818.             ;
  6819.             this.xh.onclick = function() {
  6820.                 H.i(c.ji)
  6821.             }
  6822.             ;
  6823.             this.nk.onclick = function() {
  6824.                 if (c.Hc()) {
  6825.                     let d = c.Gl.value;
  6826.                     "" == d && (d = null);
  6827.                     D.i(c.kq, {
  6828.                         name: c.mf.value,
  6829.                         password: d,
  6830.                         Zs: c.hi.selectedIndex + 2,
  6831.                         qt: c.an
  6832.                     })
  6833.                 }
  6834.             }
  6835.             ;
  6836.             for (a = 2; 21 > a; )
  6837.                 b = window.document.createElement("option"),
  6838.                 b.textContent = "" + a++,
  6839.                 this.hi.appendChild(b);
  6840.             this.hi.selectedIndex = 10;
  6841.             this.Uj(!1);
  6842.             this.A()
  6843.         }
  6844.         Uj(a) {
  6845.             this.an = a;
  6846.             this.$m.textContent = "Show in room list: " + (a ? "No" : "Yes")
  6847.         }
  6848.         Hc() {
  6849.             let a = this.mf.value;
  6850.             return 40 >= a.length ? 0 < a.length : !1
  6851.         }
  6852.         A() {
  6853.             this.nk.disabled = !this.Hc()
  6854.         }
  6855.     }
  6856.     class nc {
  6857.         constructor(a, b) {
  6858.             this.tn = 0;
  6859.             this.version = 1;
  6860.             this.ih = 0;
  6861.             this.Wd = A.ka(1E3);
  6862.             this.Of = A.ka(16384);
  6863.             this.version = b;
  6864.             let c = this.ih = a.aa;
  6865.             this.tj = a;
  6866.             a.U.ga(this.Of);
  6867.             let d = this;
  6868.             a.hc = function(f) {
  6869.                 let g = a.aa;
  6870.                 d.Of.nb(g - c);
  6871.                 c = g;
  6872.                 d.Of.Xb(f.R);
  6873.                 p.wj(f, d.Of)
  6874.             }
  6875.             ;
  6876.             this.Wd.Xb(0);
  6877.             let e = this.ih;
  6878.             a.U.Fm(function(f) {
  6879.                 let g = a.aa;
  6880.                 d.Wd.nb(g - e);
  6881.                 d.Wd.m(f);
  6882.                 d.tn++;
  6883.                 e = g
  6884.             })
  6885.         }
  6886.         stop() {
  6887.             this.tj.hc = null;
  6888.             this.tj.U.Fm(null);
  6889.             this.Wd.s.setUint16(0, this.tn, this.Wd.Ua);
  6890.             this.Wd.Lb(this.Of.Wb());
  6891.             let a = pako.deflateRaw(this.Wd.Wb())
  6892.               , b = A.ka(a.byteLength + 32);
  6893.             b.ij("HBR2");
  6894.             b.ub(this.version);
  6895.             b.ub(this.tj.aa - this.ih);
  6896.             b.Lb(a);
  6897.             return b.Wb()
  6898.         }
  6899.     }
  6900.     class vc {
  6901.         constructor() {
  6902.             this.hash = 0
  6903.         }
  6904.         Gs(a) {
  6905.             let b = 0
  6906.               , c = a.length;
  6907.             for (; b < c; )
  6908.                 this.hash = (this.hash += a[b++]) + (this.hash << 10),
  6909.                 this.hash ^= this.hash >>> 6
  6910.         }
  6911.     }
  6912.     class zc {
  6913.         static hn(a) {
  6914.             let b = [];
  6915.             if (null != a) {
  6916.                 let d = Object.prototype.hasOwnProperty;
  6917.                 for (var c in a)
  6918.                     "__id__" != c && "hx__closures__" != c && d.call(a, c) && b.push(c)
  6919.             }
  6920.             return b
  6921.         }
  6922.     }
  6923.     class nb {
  6924.         static ei(a) {
  6925.             return new PerfectScrollbar(a,{
  6926.                 handlers: nb.sp
  6927.             })
  6928.         }
  6929.     }
  6930.     class ec {
  6931.         constructor() {
  6932.             this.df = 0;
  6933.             this.V = 15;
  6934.             this.B = 0;
  6935.             this.ra = new P(0,0);
  6936.             this.ca = this.o = .5;
  6937.             this.Ea = .96;
  6938.             this.Ne = .1;
  6939.             this.ef = .07;
  6940.             this.ff = .96;
  6941.             this.cf = 5
  6942.         }
  6943.         ga(a) {
  6944.             a.u(this.o);
  6945.             a.u(this.ca);
  6946.             a.u(this.Ea);
  6947.             a.u(this.Ne);
  6948.             a.u(this.ef);
  6949.             a.u(this.ff);
  6950.             a.u(this.cf);
  6951.             let b = this.ra;
  6952.             a.u(b.x);
  6953.             a.u(b.y);
  6954.             a.P(this.B);
  6955.             a.u(this.V);
  6956.             a.u(this.df)
  6957.         }
  6958.         ma(a) {
  6959.             this.o = a.w();
  6960.             this.ca = a.w();
  6961.             this.Ea = a.w();
  6962.             this.Ne = a.w();
  6963.             this.ef = a.w();
  6964.             this.ff = a.w();
  6965.             this.cf = a.w();
  6966.             let b = this.ra;
  6967.             b.x = a.w();
  6968.             b.y = a.w();
  6969.             this.B = a.N();
  6970.             this.V = a.w();
  6971.             this.df = a.w()
  6972.         }
  6973.     }
  6974.     class ka {
  6975.         constructor(a) {
  6976.             function b(y) {
  6977.                 let F = window.document.createElement("div");
  6978.                 F.className = "inputrow";
  6979.                 var L = window.document.createElement("div");
  6980.                 L.textContent = y;
  6981.                 F.appendChild(L);
  6982.                 L = Lb.bp(y);
  6983.                 let ea = 0;
  6984.                 for (; ea < L.length; ) {
  6985.                     let V = L[ea];
  6986.                     ++ea;
  6987.                     let wc = window.document.createElement("div");
  6988.                     var S = V;
  6989.                     V.startsWith("Key") && (S = O.substr(V, 3, null));
  6990.                     wc.textContent = S;
  6991.                     F.appendChild(wc);
  6992.                     S = window.document.createElement("i");
  6993.                     S.className = "icon-cancel";
  6994.                     S.onclick = function() {
  6995.                         Lb.kr(V);
  6996.                         m.j.Kd.ha(Lb);
  6997.                         wc.remove()
  6998.                     }
  6999.                     ;
  7000.                     wc.appendChild(S)
  7001.                 }
  7002.                 L = window.document.createElement("i");
  7003.                 L.className = "icon-plus";
  7004.                 F.appendChild(L);
  7005.                 L.onclick = function() {
  7006.                     xc.classList.toggle("show", !0);
  7007.                     xc.focus();
  7008.                     xc.onkeydown = function(V) {
  7009.                         xc.classList.toggle("show", !1);
  7010.                         V.stopPropagation();
  7011.                         V = V.code;
  7012.                         null == Lb.v(V) && (Lb.Sa(V, y),
  7013.                         m.j.Kd.ha(Lb),
  7014.                         Fc())
  7015.                     }
  7016.                 }
  7017.                 ;
  7018.                 return F
  7019.             }
  7020.             function c(y, F, L) {
  7021.                 y = l.get(y);
  7022.                 if (null == L)
  7023.                     y.hidden = !0;
  7024.                 else {
  7025.                     y.innerHTML = F + ": <div class='flagico'></div> <span></span>";
  7026.                     F = y.querySelector(".flagico");
  7027.                     y = y.querySelector("span");
  7028.                     try {
  7029.                         F.classList.add("f-" + L.vb)
  7030.                     } catch (ea) {}
  7031.                     y.textContent = L.vb.toUpperCase()
  7032.                 }
  7033.             }
  7034.             function d() {
  7035.                 let y = m.j.zh.v();
  7036.                 J.textContent = "" + y;
  7037.                 N.value = "" + y
  7038.             }
  7039.             function e() {
  7040.                 let y = m.j.Ah.v();
  7041.                 t.textContent = "" + y;
  7042.                 z.value = "" + y
  7043.             }
  7044.             function f(y, F, L, ea) {
  7045.                 let S = l.get(y);
  7046.                 y = F.v();
  7047.                 S.selectedIndex = ea(y);
  7048.                 S.onchange = function() {
  7049.                     F.ha(L(S.selectedIndex))
  7050.                 }
  7051.             }
  7052.             function g(y, F, L) {
  7053.                 function ea(V) {
  7054.                     S.classList.toggle("icon-ok", V);
  7055.                     S.classList.toggle("icon-cancel", !V)
  7056.                 }
  7057.                 y = l.get(y);
  7058.                 y.classList.add("toggle");
  7059.                 let S = window.document.createElement("i");
  7060.                 S.classList.add("icon-ok");
  7061.                 y.insertBefore(S, y.firstChild);
  7062.                 y.onclick = function() {
  7063.                     let V = !F.v();
  7064.                     F.ha(V);
  7065.                     ea(V);
  7066.                     null != L && L(V)
  7067.                 }
  7068.                 ;
  7069.                 ea(F.v())
  7070.             }
  7071.             function h(y) {
  7072.                 let F = {
  7073.                     fn: l.get(y + "btn"),
  7074.                     jh: l.get(y + "sec")
  7075.                 };
  7076.                 n.push(F);
  7077.                 F.fn.onclick = function() {
  7078.                     k(F)
  7079.                 }
  7080.             }
  7081.             function k(y) {
  7082.                 let F = 0
  7083.                   , L = 0;
  7084.                 for (; L < n.length; ) {
  7085.                     let ea = n[L];
  7086.                     ++L;
  7087.                     let S = ea == y;
  7088.                     S && (ka.vm = F);
  7089.                     ea.jh.classList.toggle("selected", S);
  7090.                     ea.fn.classList.toggle("selected", S);
  7091.                     ++F
  7092.                 }
  7093.             }
  7094.             null == a && (a = !1);
  7095.             this.f = x.Ia(ka.O);
  7096.             let l = x.Ba(this.f);
  7097.             this.wd = l.get("close");
  7098.             let n = [];
  7099.             h("sound");
  7100.             h("video");
  7101.             h("misc");
  7102.             h("input");
  7103.             k(n[ka.vm]);
  7104.             g("tsound-main", m.j.ve, function() {
  7105.                 m.Pa.yi()
  7106.             });
  7107.             g("tsound-chat", m.j.Qi);
  7108.             g("tsound-highlight", m.j.Km);
  7109.             g("tsound-crowd", m.j.Jm);
  7110.             f("viewmode", m.j.Sd, function(y) {
  7111.                 return y - 1
  7112.             }, function(y) {
  7113.                 return y + 1
  7114.             });
  7115.             f("fps", m.j.Jh, function(y) {
  7116.                 return y
  7117.             }, function(y) {
  7118.                 return y
  7119.             });
  7120.             let r = [1, .75, .5, .25];
  7121.             f("resscale", m.j.Ei, function(y) {
  7122.                 return r[y]
  7123.             }, function(y) {
  7124.                 let F = 0
  7125.                   , L = r.length - 1;
  7126.                 for (; F < L && !(r[F] <= y); )
  7127.                     ++F;
  7128.                 return F
  7129.             });
  7130.             g("tvideo-lowlatency", m.j.ci);
  7131.             g("tvideo-teamcol", m.j.Sm);
  7132.             g("tvideo-showindicators", m.j.Sk);
  7133.             g("tvideo-showavatars", m.j.Hm);
  7134.             let t = l.get("chatopacity-value")
  7135.               , z = l.get("chatopacity-range");
  7136.             e();
  7137.             z.oninput = function() {
  7138.                 m.j.Ah.ha(parseFloat(z.value));
  7139.                 e()
  7140.             }
  7141.             ;
  7142.             let J = l.get("chatfocusheight-value")
  7143.               , N = l.get("chatfocusheight-range");
  7144.             d();
  7145.             N.oninput = function() {
  7146.                 m.j.zh.ha(Q.parseInt(N.value));
  7147.                 d()
  7148.             }
  7149.             ;
  7150.             f("chatbgmode", m.j.gk, function(y) {
  7151.                 return 0 == y ? "full" : "compact"
  7152.             }, function(y) {
  7153.                 return "full" == y ? 0 : 1
  7154.             });
  7155.             let Gb = null
  7156.               , Kc = this;
  7157.             Gb = function() {
  7158.                 let y = m.j.Ye.v();
  7159.                 c("loc", "Detected location", m.j.Xe.v());
  7160.                 c("loc-ovr", "Location override", y);
  7161.                 let F = l.get("loc-ovr-btn");
  7162.                 F.disabled = !a;
  7163.                 null == y ? (F.textContent = "Override location",
  7164.                 F.onclick = function() {
  7165.                     H.i(Kc.fq)
  7166.                 }
  7167.                 ) : (F.textContent = "Remove override",
  7168.                 F.onclick = function() {
  7169.                     m.j.Ye.ha(null);
  7170.                     Gb()
  7171.                 }
  7172.                 )
  7173.             }
  7174.             ;
  7175.             Gb();
  7176.             let Lb = m.j.Kd.v()
  7177.               , xc = l.get("presskey")
  7178.               , Fc = null
  7179.               , eb = l.get("inputsec");
  7180.             Fc = function() {
  7181.                 x.Nf(eb);
  7182.                 eb.appendChild(b("Up"));
  7183.                 eb.appendChild(b("Down"));
  7184.                 eb.appendChild(b("Left"));
  7185.                 eb.appendChild(b("Right"));
  7186.                 eb.appendChild(b("Kick"));
  7187.                 eb.appendChild(b("ToggleChat"))
  7188.             }
  7189.             ;
  7190.             Fc();
  7191.             this.wd.onclick = function() {
  7192.                 H.i(Kc.rb)
  7193.             }
  7194.         }
  7195.     }
  7196.     class ba {
  7197.         static Us(a, b) {
  7198.             a = O.nj(a, b);
  7199.             return 8 < a && 14 > a ? !0 : 32 == a
  7200.         }
  7201.         static nt(a) {
  7202.             let b = a.length
  7203.               , c = 0;
  7204.             for (; c < b && ba.Us(a, b - c - 1); )
  7205.                 ++c;
  7206.             return 0 < c ? O.substr(a, 0, b - c) : a
  7207.         }
  7208.         static Lf(a) {
  7209.             var b;
  7210.             let c = "";
  7211.             for (b = 2 - a.length; c.length < b; )
  7212.                 c += "0";
  7213.             return c + (null == a ? "null" : "" + a)
  7214.         }
  7215.         static replace(a, b, c) {
  7216.             return a.split(b).join(c)
  7217.         }
  7218.         static bh(a, b) {
  7219.             let c = "";
  7220.             do
  7221.                 c = "0123456789ABCDEF".charAt(a & 15) + c,
  7222.                 a >>>= 4;
  7223.             while (0 < a);
  7224.             if (null != b)
  7225.                 for (; c.length < b; )
  7226.                     c = "0" + c;
  7227.             return c
  7228.         }
  7229.     }
  7230.     class ob {
  7231.         static delete(a) {
  7232.             return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function(b, c) {
  7233.                 let d = window.indexedDB.open("stadiums", 1);
  7234.                 d.onblocked = d.onerror = c;
  7235.                 d.onupgradeneeded = function(e) {
  7236.                     let f = d.result;
  7237.                     f.onerror = c;
  7238.                     1 > e.oldVersion && (f.createObjectStore("files", {
  7239.                         autoIncrement: !0
  7240.                     }),
  7241.                     f.createObjectStore("meta", {
  7242.                         keyPath: "id"
  7243.                     }))
  7244.                 }
  7245.                 ;
  7246.                 d.onsuccess = function() {
  7247.                     let e = d.result;
  7248.                     e.onerror = c;
  7249.                     let f = e.transaction(["meta", "files"], "readwrite");
  7250.                     f.onerror = f.onabort = function(g) {
  7251.                         c(g);
  7252.                         e.close()
  7253.                     }
  7254.                     ;
  7255.                     f.oncomplete = function() {
  7256.                         b(0);
  7257.                         e.close()
  7258.                     }
  7259.                     ;
  7260.                     f.objectStore("files").delete(a);
  7261.                     f.objectStore("meta").delete(a)
  7262.                 }
  7263.             }
  7264.             )
  7265.         }
  7266.         static get(a) {
  7267.             return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function(b, c) {
  7268.                 let d = window.indexedDB.open("stadiums", 1);
  7269.                 d.onblocked = d.onerror = c;
  7270.                 d.onupgradeneeded = function(e) {
  7271.                     let f = d.result;
  7272.                     f.onerror = c;
  7273.                     1 > e.oldVersion && (f.createObjectStore("files", {
  7274.                         autoIncrement: !0
  7275.                     }),
  7276.                     f.createObjectStore("meta", {
  7277.                         keyPath: "id"
  7278.                     }))
  7279.                 }
  7280.                 ;
  7281.                 d.onsuccess = function() {
  7282.                     let e = d.result;
  7283.                     e.onerror = c;
  7284.                     let f = e.transaction(["files"]);
  7285.                     f.onerror = f.onabort = function(g) {
  7286.                         c(g);
  7287.                         e.close()
  7288.                     }
  7289.                     ;
  7290.                     f.oncomplete = function() {
  7291.                         e.close()
  7292.                     }
  7293.                     ;
  7294.                     cc.lh(f.objectStore("files").get(a)).then(function(g) {
  7295.                         try {
  7296.                             let h = new q;
  7297.                             h.cl(g);
  7298.                             b(h)
  7299.                         } catch (h) {
  7300.                             g = v.Mb(h).Gb(),
  7301.                             c(g)
  7302.                         }
  7303.                     }, c)
  7304.                 }
  7305.             }
  7306.             )
  7307.         }
  7308.         static getAll() {
  7309.             return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function(a, b) {
  7310.                 let c = window.indexedDB.open("stadiums", 1);
  7311.                 c.onblocked = c.onerror = b;
  7312.                 c.onupgradeneeded = function(d) {
  7313.                     let e = c.result;
  7314.                     e.onerror = b;
  7315.                     1 > d.oldVersion && (e.createObjectStore("files", {
  7316.                         autoIncrement: !0
  7317.                     }),
  7318.                     e.createObjectStore("meta", {
  7319.                         keyPath: "id"
  7320.                     }))
  7321.                 }
  7322.                 ;
  7323.                 c.onsuccess = function() {
  7324.                     let d = c.result;
  7325.                     d.onerror = b;
  7326.                     let e = d.transaction(["meta"]);
  7327.                     e.onerror = e.onabort = function(f) {
  7328.                         b(f);
  7329.                         d.close()
  7330.                     }
  7331.                     ;
  7332.                     e.oncomplete = function() {
  7333.                         d.close()
  7334.                     }
  7335.                     ;
  7336.                     cc.lh(e.objectStore("meta").getAll()).then(a, b)
  7337.                 }
  7338.             }
  7339.             )
  7340.         }
  7341.         static lt() {
  7342.             let a = pa.navigator.storage;
  7343.             if (null == a || null == a.persist)
  7344.                 return Promise.resolve(!1);
  7345.             try {
  7346.                 return a.persisted().then(function(b) {
  7347.                     return b ? !0 : a.persist()
  7348.                 }).catch(function() {
  7349.                     return !1
  7350.                 })
  7351.             } catch (b) {
  7352.                 return Promise.resolve(!1)
  7353.             }
  7354.         }
  7355.         static add(a) {
  7356.             return null == window.indexedDB ? Promise.reject("IndexedDB not supported by browser.") : new Promise(function(b, c) {
  7357.                 let d = window.indexedDB.open("stadiums", 1);
  7358.                 d.onblocked = d.onerror = c;
  7359.                 d.onupgradeneeded = function(e) {
  7360.                     let f = d.result;
  7361.                     f.onerror = c;
  7362.                     1 > e.oldVersion && (f.createObjectStore("files", {
  7363.                         autoIncrement: !0
  7364.                     }),
  7365.                     f.createObjectStore("meta", {
  7366.                         keyPath: "id"
  7367.                     }))
  7368.                 }
  7369.                 ;
  7370.                 d.onsuccess = function() {
  7371.                     let e = d.result;
  7372.                     e.onerror = c;
  7373.                     let f = e.transaction(["files", "meta"], "readwrite");
  7374.                     f.onerror = f.onabort = function(g) {
  7375.                         c(g);
  7376.                         e.close()
  7377.                     }
  7378.                     ;
  7379.                     f.oncomplete = function() {
  7380.                         b(0);
  7381.                         e.close()
  7382.                     }
  7383.                     ;
  7384.                     try {
  7385.                         cc.lh(f.objectStore("files").add(a.Ae())).then(function(g) {
  7386.                             g = {
  7387.                                 name: a.D,
  7388.                                 id: g
  7389.                             };
  7390.                             return cc.lh(f.objectStore("meta").add(g))
  7391.                         }).catch(c)
  7392.                     } catch (g) {
  7393.                         c(0)
  7394.                     }
  7395.                 }
  7396.             }
  7397.             )
  7398.         }
  7399.     }
  7400.     class q {
  7401.         constructor() {
  7402.             this.L = [];
  7403.             this.X = [];
  7404.             this.ta = [];
  7405.             this.vc = [];
  7406.             this.H = [];
  7407.             this.qb = [];
  7408.             this.Nd = [];
  7409.             this.vd = [];
  7410.             this.Ld = new ec;
  7411.             this.Fh = 255;
  7412.             this.Re = this.kf = 0;
  7413.             this.Xf = !0;
  7414.             this.Af = !1
  7415.         }
  7416.         og() {
  7417.             let a = new ya;
  7418.             a.S = 16777215;
  7419.             a.h = 63;
  7420.             a.B = 193;
  7421.             a.V = 10;
  7422.             a.Ea = .99;
  7423.             a.ca = 1;
  7424.             a.o = .5;
  7425.             return a
  7426.         }
  7427.         ga(a) {
  7428.             a.m(this.Fh);
  7429.             if (!this.af()) {
  7430.                 a.Fb(this.D);
  7431.                 a.P(this.ud);
  7432.                 a.u(this.be);
  7433.                 a.u(this.ae);
  7434.                 a.u(this.ad);
  7435.                 a.u(this.Fc);
  7436.                 a.u(this.Qe);
  7437.                 a.P(this.td);
  7438.                 a.u(this.bc);
  7439.                 a.u(this.sc);
  7440.                 a.u(this.mc);
  7441.                 this.Ld.ga(a);
  7442.                 a.Xb(this.kf);
  7443.                 a.m(this.Re);
  7444.                 a.m(this.Xf ? 1 : 0);
  7445.                 a.m(this.Af ? 1 : 0);
  7446.                 a.m(this.L.length);
  7447.                 for (var b = 0, c = this.L.length; b < c; ) {
  7448.                     var d = b++;
  7449.                     let e = this.L[d];
  7450.                     e.Dd = d;
  7451.                     e.ga(a)
  7452.                 }
  7453.                 a.m(this.X.length);
  7454.                 b = 0;
  7455.                 for (c = this.X; b < c.length; )
  7456.                     c[b++].ga(a);
  7457.                 a.m(this.ta.length);
  7458.                 b = 0;
  7459.                 for (c = this.ta; b < c.length; )
  7460.                     c[b++].ga(a);
  7461.                 a.m(this.vc.length);
  7462.                 b = 0;
  7463.                 for (c = this.vc; b < c.length; )
  7464.                     c[b++].ga(a);
  7465.                 a.m(this.H.length);
  7466.                 b = 0;
  7467.                 for (c = this.H; b < c.length; )
  7468.                     c[b++].ga(a);
  7469.                 a.m(this.qb.length);
  7470.                 b = 0;
  7471.                 for (c = this.qb; b < c.length; )
  7472.                     c[b++].ga(a);
  7473.                 a.m(this.Nd.length);
  7474.                 b = 0;
  7475.                 for (c = this.Nd; b < c.length; )
  7476.                     d = c[b],
  7477.                     ++b,
  7478.                     a.u(d.x),
  7479.                     a.u(d.y);
  7480.                 a.m(this.vd.length);
  7481.                 b = 0;
  7482.                 for (c = this.vd; b < c.length; )
  7483.                     d = c[b],
  7484.                     ++b,
  7485.                     a.u(d.x),
  7486.                     a.u(d.y)
  7487.             }
  7488.         }
  7489.         rs(a) {
  7490.             function b() {
  7491.                 let f = []
  7492.                   , g = a.F()
  7493.                   , h = 0;
  7494.                 for (; h < g; ) {
  7495.                     ++h;
  7496.                     let k = new P(0,0);
  7497.                     k.x = a.w();
  7498.                     k.y = a.w();
  7499.                     f.push(k)
  7500.                 }
  7501.                 return f
  7502.             }
  7503.             this.D = a.Bb();
  7504.             this.ud = a.N();
  7505.             this.be = a.w();
  7506.             this.ae = a.w();
  7507.             this.ad = a.w();
  7508.             this.Fc = a.w();
  7509.             this.Qe = a.w();
  7510.             this.td = a.N();
  7511.             this.bc = a.w();
  7512.             this.sc = a.w();
  7513.             this.mc = a.w();
  7514.             this.Ld.ma(a);
  7515.             this.kf = a.Sb();
  7516.             this.Re = a.F();
  7517.             this.Xf = 0 != a.F();
  7518.             this.Af = 0 != a.F();
  7519.             this.L = [];
  7520.             for (var c = a.F(), d = 0; d < c; ) {
  7521.                 var e = new G;
  7522.                 e.ma(a);
  7523.                 e.Dd = d++;
  7524.                 this.L.push(e)
  7525.             }
  7526.             this.X = [];
  7527.             c = a.F();
  7528.             for (d = 0; d < c; )
  7529.                 ++d,
  7530.                 e = new I,
  7531.                 e.ma(a, this.L),
  7532.                 this.X.push(e);
  7533.             this.ta = [];
  7534.             c = a.F();
  7535.             for (d = 0; d < c; )
  7536.                 ++d,
  7537.                 e = new R,
  7538.                 e.ma(a),
  7539.                 this.ta.push(e);
  7540.             this.vc = [];
  7541.             c = a.F();
  7542.             for (d = 0; d < c; )
  7543.                 ++d,
  7544.                 e = new Fb,
  7545.                 e.ma(a),
  7546.                 this.vc.push(e);
  7547.             this.H = [];
  7548.             c = a.F();
  7549.             for (d = 0; d < c; )
  7550.                 ++d,
  7551.                 e = new ya,
  7552.                 e.ma(a),
  7553.                 this.H.push(e);
  7554.             this.qb = [];
  7555.             c = a.F();
  7556.             for (d = 0; d < c; )
  7557.                 ++d,
  7558.                 e = new xb,
  7559.                 e.ma(a),
  7560.                 this.qb.push(e);
  7561.             this.Nd = b();
  7562.             this.vd = b();
  7563.             this.oe();
  7564.             if (!this.cn())
  7565.                 throw v.C(new Ta("Invalid stadium"));
  7566.         }
  7567.         cn() {
  7568.             return 0 >= this.H.length || 0 > this.Fc || 0 > this.ad || 0 > this.Ld.V ? !1 : !0
  7569.         }
  7570.         oe() {
  7571.             let a = 0
  7572.               , b = this.X;
  7573.             for (; a < b.length; )
  7574.                 b[a++].oe()
  7575.         }
  7576.         af() {
  7577.             return 255 != this.Fh
  7578.         }
  7579.         je(a, b) {
  7580.             a = a[b];
  7581.             return null != a ? w.I(a, E) : 0
  7582.         }
  7583.         Pp(a) {
  7584.             a = a.canBeStored;
  7585.             return null != a ? w.I(a, Ec) : !0
  7586.         }
  7587.         Ae() {
  7588.             return JSON.stringify(this.ns())
  7589.         }
  7590.         ns() {
  7591.             if (!this.Xf)
  7592.                 throw v.C(0);
  7593.             let a = {};
  7594.             for (var b = 0, c = [], d = 0, e = this.L; d < e.length; ) {
  7595.                 var f = e[d];
  7596.                 ++d;
  7597.                 f.Dd = b++;
  7598.                 c.push(q.zs(f))
  7599.             }
  7600.             d = new I;
  7601.             b = [];
  7602.             e = 0;
  7603.             for (f = this.X; e < f.length; )
  7604.                 b.push(q.Ir(f[e++], d));
  7605.             d = [];
  7606.             e = 0;
  7607.             for (f = this.ta; e < f.length; )
  7608.                 d.push(q.Iq(f[e++]));
  7609.             e = [];
  7610.             f = 0;
  7611.             for (var g = this.vc; f < g.length; )
  7612.                 e.push(q.hp(g[f++]));
  7613.             f = q.Lq(this.Ld);
  7614.             var h = new ya;
  7615.             g = [];
  7616.             for (var k = 0, l = this.H; k < l.length; )
  7617.                 g.push(q.Ko(l[k++], h));
  7618.             h = [];
  7619.             k = 0;
  7620.             for (l = this.qb; k < l.length; )
  7621.                 h.push(q.Ap(l[k++]));
  7622.             k = [];
  7623.             l = 0;
  7624.             for (var n = this.Nd; l < n.length; ) {
  7625.                 var r = n[l];
  7626.                 ++l;
  7627.                 k.push([r.x, r.y])
  7628.             }
  7629.             l = [];
  7630.             n = 0;
  7631.             for (r = this.vd; n < r.length; ) {
  7632.                 let t = r[n];
  7633.                 ++n;
  7634.                 l.push([t.x, t.y])
  7635.             }
  7636.             c = {
  7637.                 name: this.D,
  7638.                 width: this.bc,
  7639.                 height: this.sc,
  7640.                 bg: a,
  7641.                 vertexes: c,
  7642.                 segments: b,
  7643.                 planes: d,
  7644.                 goals: e,
  7645.                 discs: g,
  7646.                 playerPhysics: f,
  7647.                 ballPhysics: "disc0"
  7648.             };
  7649.             q.oa(c, "maxViewWidth", this.kf, 0);
  7650.             q.oa(c, "cameraFollow", 1 == this.Re ? "player" : "", "");
  7651.             q.oa(c, "spawnDistance", this.mc, 200);
  7652.             0 != h.length && (c.joints = h);
  7653.             0 != k.length && (c.redSpawnPoints = k);
  7654.             0 != l.length && (c.blueSpawnPoints = l);
  7655.             q.oa(c, "kickOffReset", this.Af ? "full" : "partial", "partial");
  7656.             switch (this.ud) {
  7657.             case 1:
  7658.                 b = "grass";
  7659.                 break;
  7660.             case 2:
  7661.                 b = "hockey";
  7662.                 break;
  7663.             default:
  7664.                 b = "none"
  7665.             }
  7666.             q.oa(a, "type", b, "none");
  7667.             q.oa(a, "width", this.be, 0);
  7668.             q.oa(a, "height", this.ae, 0);
  7669.             q.oa(a, "kickOffRadius", this.ad, 0);
  7670.             q.oa(a, "cornerRadius", this.Fc, 0);
  7671.             q.Bg(a, this.td, 7441498);
  7672.             q.oa(a, "goalLine", this.Qe, 0);
  7673.             return c
  7674.         }
  7675.         cl(a) {
  7676.             function b(h) {
  7677.                 let k = w.I(h[0], E);
  7678.                 h = w.I(h[1], E);
  7679.                 null == h && (h = 0);
  7680.                 null == k && (k = 0);
  7681.                 return new P(k,h)
  7682.             }
  7683.             function c(h, k, l, n) {
  7684.                 null == n && (n = !1);
  7685.                 var r = d[k];
  7686.                 if (!n || null != r)
  7687.                     if (n = w.I(r, Array),
  7688.                     null != n)
  7689.                         for (r = 0; r < n.length; ) {
  7690.                             let t = n[r];
  7691.                             ++r;
  7692.                             try {
  7693.                                 q.Sn(t, f),
  7694.                                 h.push(l(t))
  7695.                             } catch (z) {
  7696.                                 throw v.C(new Ta('Error in "' + k + '" index: ' + h.length));
  7697.                             }
  7698.                         }
  7699.             }
  7700.             let d = JSON5.parse(a);
  7701.             this.L = [];
  7702.             this.X = [];
  7703.             this.ta = [];
  7704.             this.vc = [];
  7705.             this.H = [];
  7706.             this.qb = [];
  7707.             this.D = w.I(d.name, String);
  7708.             this.bc = w.I(d.width, E);
  7709.             this.sc = w.I(d.height, E);
  7710.             this.kf = this.je(d, "maxViewWidth") | 0;
  7711.             "player" == d.cameraFollow && (this.Re = 1);
  7712.             this.mc = 200;
  7713.             a = d.spawnDistance;
  7714.             null != a && (this.mc = w.I(a, E));
  7715.             a = d.bg;
  7716.             let e;
  7717.             switch (a.type) {
  7718.             case "grass":
  7719.                 e = 1;
  7720.                 break;
  7721.             case "hockey":
  7722.                 e = 2;
  7723.                 break;
  7724.             default:
  7725.                 e = 0
  7726.             }
  7727.             this.ud = e;
  7728.             this.be = this.je(a, "width");
  7729.             this.ae = this.je(a, "height");
  7730.             this.ad = this.je(a, "kickOffRadius");
  7731.             this.Fc = this.je(a, "cornerRadius");
  7732.             this.td = 7441498;
  7733.             null != a.color && (this.td = q.mg(a.color));
  7734.             this.Qe = this.je(a, "goalLine");
  7735.             this.Xf = this.Pp(d);
  7736.             this.Af = "full" == d.kickOffReset;
  7737.             let f = d.traits;
  7738.             a = d.ballPhysics;
  7739.             "disc0" != a && (null != a ? (a = q.dl(a, this.og()),
  7740.             a.B |= 192,
  7741.             this.H.push(a)) : this.H.push(this.og()));
  7742.             c(this.L, "vertexes", q.Op);
  7743.             let g = this;
  7744.             c(this.X, "segments", function(h) {
  7745.                 return q.Np(h, g.L)
  7746.             });
  7747.             c(this.vc, "goals", q.Jp);
  7748.             c(this.H, "discs", function(h) {
  7749.                 return q.dl(h, new ya)
  7750.             });
  7751.             c(this.ta, "planes", q.Lp);
  7752.             c(this.qb, "joints", function(h) {
  7753.                 return q.Kp(h, g.H)
  7754.             }, !0);
  7755.             c(this.Nd, "redSpawnPoints", b, !0);
  7756.             c(this.vd, "blueSpawnPoints", b, !0);
  7757.             a = d.playerPhysics;
  7758.             null != a && (this.Ld = q.Mp(a));
  7759.             if (255 < this.L.length || 255 < this.X.length || 255 < this.ta.length || 255 < this.vc.length || 255 < this.H.length)
  7760.                 throw v.C("Error");
  7761.             this.oe();
  7762.             if (!this.cn())
  7763.                 throw v.C(new Ta("Invalid stadium"));
  7764.         }
  7765.         ik() {
  7766.             let a = q.ls;
  7767.             a.a = 0;
  7768.             this.ga(a);
  7769.             let b = new vc;
  7770.             b.Gs(a.Wb());
  7771.             b.hash = (b.hash += b.hash << 3) ^ b.hash >>> 11;
  7772.             b.hash += b.hash << 15;
  7773.             return b.hash | 0
  7774.         }
  7775.         jo(a, b) {
  7776.             let c = 0
  7777.               , d = this.vc;
  7778.             for (; c < d.length; ) {
  7779.                 let h = d[c];
  7780.                 ++c;
  7781.                 var e = h.Z
  7782.                   , f = h.ea
  7783.                   , g = b.x - a.x;
  7784.                 let k = b.y - a.y;
  7785.                 0 < -(e.y - a.y) * g + (e.x - a.x) * k == 0 < -(f.y - a.y) * g + (f.x - a.x) * k ? e = !1 : (g = f.x - e.x,
  7786.                 f = f.y - e.y,
  7787.                 e = 0 < -(a.y - e.y) * g + (a.x - e.x) * f == 0 < -(b.y - e.y) * g + (b.x - e.x) * f ? !1 : !0);
  7788.                 if (e)
  7789.                     return h.ye
  7790.             }
  7791.             return u.Oa
  7792.         }
  7793.         hd(a, b, c, d, e, f, g, h) {
  7794.             null == h && (h = 0);
  7795.             this.D = a;
  7796.             this.H.push(this.og());
  7797.             this.bc = b;
  7798.             this.sc = c;
  7799.             this.ud = 1;
  7800.             this.td = 7441498;
  7801.             this.be = d;
  7802.             this.ae = e;
  7803.             this.ad = g;
  7804.             this.Fc = h;
  7805.             this.mc = .75 * d;
  7806.             400 < this.mc && (this.mc = 400);
  7807.             a = new R;
  7808.             var k = a.ya;
  7809.             k.x = 0;
  7810.             k.y = 1;
  7811.             a.Va = -c;
  7812.             a.o = 0;
  7813.             this.ta.push(a);
  7814.             a = new R;
  7815.             k = a.ya;
  7816.             k.x = 0;
  7817.             k.y = -1;
  7818.             a.Va = -c;
  7819.             a.o = 0;
  7820.             this.ta.push(a);
  7821.             a = new R;
  7822.             k = a.ya;
  7823.             k.x = 1;
  7824.             k.y = 0;
  7825.             a.Va = -b;
  7826.             a.o = 0;
  7827.             this.ta.push(a);
  7828.             a = new R;
  7829.             k = a.ya;
  7830.             k.x = -1;
  7831.             k.y = 0;
  7832.             a.Va = -b;
  7833.             a.o = 0;
  7834.             this.ta.push(a);
  7835.             this.pg(d, 1, f, 13421823, u.Da);
  7836.             this.pg(-d, -1, f, 16764108, u.ia);
  7837.             this.il(g, c);
  7838.             b = new R;
  7839.             c = b.ya;
  7840.             c.x = 0;
  7841.             c.y = 1;
  7842.             b.Va = -e;
  7843.             b.h = 1;
  7844.             this.ta.push(b);
  7845.             b = new R;
  7846.             c = b.ya;
  7847.             c.x = 0;
  7848.             c.y = -1;
  7849.             b.Va = -e;
  7850.             b.h = 1;
  7851.             this.ta.push(b);
  7852.             b = new G;
  7853.             c = b.a;
  7854.             c.x = -d;
  7855.             c.y = -e;
  7856.             b.h = 0;
  7857.             c = new G;
  7858.             g = c.a;
  7859.             g.x = d;
  7860.             g.y = -e;
  7861.             c.h = 0;
  7862.             g = new G;
  7863.             a = g.a;
  7864.             a.x = d;
  7865.             a.y = -f;
  7866.             g.h = 0;
  7867.             a = new G;
  7868.             k = a.a;
  7869.             k.x = d;
  7870.             k.y = f;
  7871.             a.h = 0;
  7872.             k = new G;
  7873.             var l = k.a;
  7874.             l.x = d;
  7875.             l.y = e;
  7876.             k.h = 0;
  7877.             l = new G;
  7878.             var n = l.a;
  7879.             n.x = -d;
  7880.             n.y = e;
  7881.             l.h = 0;
  7882.             n = new G;
  7883.             var r = n.a;
  7884.             r.x = -d;
  7885.             r.y = f;
  7886.             n.h = 0;
  7887.             r = new G;
  7888.             var t = r.a;
  7889.             t.x = -d;
  7890.             t.y = -f;
  7891.             r.h = 0;
  7892.             f = new I;
  7893.             f.Z = c;
  7894.             f.ea = g;
  7895.             f.h = 1;
  7896.             f.bb = !1;
  7897.             t = new I;
  7898.             t.Z = a;
  7899.             t.ea = k;
  7900.             t.h = 1;
  7901.             t.bb = !1;
  7902.             let z = new I;
  7903.             z.Z = l;
  7904.             z.ea = n;
  7905.             z.h = 1;
  7906.             z.bb = !1;
  7907.             let J = new I;
  7908.             J.Z = r;
  7909.             J.ea = b;
  7910.             J.h = 1;
  7911.             J.bb = !1;
  7912.             this.L.push(b);
  7913.             this.L.push(c);
  7914.             this.L.push(g);
  7915.             this.L.push(a);
  7916.             this.L.push(k);
  7917.             this.L.push(l);
  7918.             this.L.push(n);
  7919.             this.L.push(r);
  7920.             this.X.push(f);
  7921.             this.X.push(t);
  7922.             this.X.push(z);
  7923.             this.X.push(J);
  7924.             this.gl(d, e, h);
  7925.             this.oe()
  7926.         }
  7927.         hl(a, b, c, d, e, f, g, h) {
  7928.             this.D = a;
  7929.             this.H.push(this.og());
  7930.             this.bc = b;
  7931.             this.sc = c;
  7932.             this.ud = 2;
  7933.             this.be = d;
  7934.             this.ae = e;
  7935.             this.ad = 75;
  7936.             this.Fc = h;
  7937.             this.Qe = g;
  7938.             this.mc = .75 * (d - g);
  7939.             400 < this.mc && (this.mc = 400);
  7940.             a = new R;
  7941.             var k = a.ya;
  7942.             k.x = 0;
  7943.             k.y = 1;
  7944.             a.Va = -c;
  7945.             a.o = 0;
  7946.             this.ta.push(a);
  7947.             a = new R;
  7948.             k = a.ya;
  7949.             k.x = 0;
  7950.             k.y = -1;
  7951.             a.Va = -c;
  7952.             a.o = 0;
  7953.             this.ta.push(a);
  7954.             a = new R;
  7955.             k = a.ya;
  7956.             k.x = 1;
  7957.             k.y = 0;
  7958.             a.Va = -b;
  7959.             a.o = 0;
  7960.             this.ta.push(a);
  7961.             a = new R;
  7962.             k = a.ya;
  7963.             k.x = -1;
  7964.             k.y = 0;
  7965.             a.Va = -b;
  7966.             a.o = 0;
  7967.             this.ta.push(a);
  7968.             this.pg(d - g, 1, f, 13421823, u.Da, 63);
  7969.             this.pg(-d + g, -1, f, 16764108, u.ia, 63);
  7970.             this.il(75, c);
  7971.             b = new R;
  7972.             c = b.ya;
  7973.             c.x = 0;
  7974.             c.y = 1;
  7975.             b.Va = -e;
  7976.             b.h = 1;
  7977.             this.ta.push(b);
  7978.             b = new R;
  7979.             c = b.ya;
  7980.             c.x = 0;
  7981.             c.y = -1;
  7982.             b.Va = -e;
  7983.             b.h = 1;
  7984.             this.ta.push(b);
  7985.             b = new R;
  7986.             c = b.ya;
  7987.             c.x = 1;
  7988.             c.y = 0;
  7989.             b.Va = -d;
  7990.             b.h = 1;
  7991.             this.ta.push(b);
  7992.             b = new R;
  7993.             c = b.ya;
  7994.             c.x = -1;
  7995.             c.y = 0;
  7996.             b.Va = -d;
  7997.             b.h = 1;
  7998.             this.ta.push(b);
  7999.             this.gl(d, e, h);
  8000.             this.oe()
  8001.         }
  8002.         pg(a, b, c, d, e, f) {
  8003.             var g;
  8004.             null == g && (g = 32);
  8005.             null == f && (f = 1);
  8006.             var h = new G
  8007.               , k = h.a;
  8008.             k.x = a + 8 * b;
  8009.             k.y = -c;
  8010.             k = new G;
  8011.             var l = k.a;
  8012.             l.x = a + 8 * b;
  8013.             l.y = c;
  8014.             let n = new G;
  8015.             l = n.a;
  8016.             l.x = h.a.x + 22 * b;
  8017.             l.y = h.a.y + 22;
  8018.             let r = new G;
  8019.             l = r.a;
  8020.             l.x = k.a.x + 22 * b;
  8021.             l.y = k.a.y - 22;
  8022.             l = new I;
  8023.             l.Z = h;
  8024.             l.ea = n;
  8025.             l.Uc(90 * b);
  8026.             let t = new I;
  8027.             t.Z = r;
  8028.             t.ea = n;
  8029.             let z = new I;
  8030.             z.Z = r;
  8031.             z.ea = k;
  8032.             z.Uc(90 * b);
  8033.             b = this.L.length;
  8034.             this.L.push(h);
  8035.             this.L.push(k);
  8036.             this.L.push(n);
  8037.             this.L.push(r);
  8038.             h = b;
  8039.             for (b = this.L.length; h < b; )
  8040.                 k = h++,
  8041.                 this.L[k].h = f,
  8042.                 this.L[k].B = g,
  8043.                 this.L[k].o = .1;
  8044.             b = this.X.length;
  8045.             this.X.push(l);
  8046.             this.X.push(t);
  8047.             this.X.push(z);
  8048.             h = b;
  8049.             for (b = this.X.length; h < b; )
  8050.                 k = h++,
  8051.                 this.X[k].h = f,
  8052.                 this.X[k].B = g,
  8053.                 this.X[k].o = .1;
  8054.             f = new ya;
  8055.             g = f.a;
  8056.             g.x = a;
  8057.             g.y = -c;
  8058.             f.ca = 0;
  8059.             f.V = 8;
  8060.             f.S = d;
  8061.             this.H.push(f);
  8062.             f = new ya;
  8063.             g = f.a;
  8064.             g.x = a;
  8065.             g.y = c;
  8066.             f.ca = 0;
  8067.             f.V = 8;
  8068.             f.S = d;
  8069.             this.H.push(f);
  8070.             d = new Fb;
  8071.             f = d.Z;
  8072.             f.x = a;
  8073.             f.y = -c;
  8074.             f = d.ea;
  8075.             f.x = a;
  8076.             f.y = c;
  8077.             d.ye = e;
  8078.             this.vc.push(d)
  8079.         }
  8080.         il(a, b) {
  8081.             let c = new G;
  8082.             var d = c.a;
  8083.             d.x = 0;
  8084.             d.y = -b;
  8085.             c.o = .1;
  8086.             c.B = 24;
  8087.             c.h = 6;
  8088.             d = new G;
  8089.             var e = d.a;
  8090.             e.x = 0;
  8091.             e.y = -a;
  8092.             d.o = .1;
  8093.             d.B = 24;
  8094.             d.h = 6;
  8095.             e = new G;
  8096.             var f = e.a;
  8097.             f.x = 0;
  8098.             f.y = a;
  8099.             e.o = .1;
  8100.             e.B = 24;
  8101.             e.h = 6;
  8102.             a = new G;
  8103.             f = a.a;
  8104.             f.x = 0;
  8105.             f.y = b;
  8106.             a.o = .1;
  8107.             a.B = 24;
  8108.             a.h = 6;
  8109.             b = new I;
  8110.             b.Z = c;
  8111.             b.ea = d;
  8112.             b.B = 24;
  8113.             b.h = 6;
  8114.             b.bb = !1;
  8115.             b.o = .1;
  8116.             f = new I;
  8117.             f.Z = e;
  8118.             f.ea = a;
  8119.             f.B = 24;
  8120.             f.h = 6;
  8121.             f.bb = !1;
  8122.             f.o = .1;
  8123.             let g = new I;
  8124.             g.Z = d;
  8125.             g.ea = e;
  8126.             g.B = 8;
  8127.             g.h = 6;
  8128.             g.bb = !1;
  8129.             g.Uc(180);
  8130.             g.o = .1;
  8131.             let h = new I;
  8132.             h.Z = e;
  8133.             h.ea = d;
  8134.             h.B = 16;
  8135.             h.h = 6;
  8136.             h.bb = !1;
  8137.             h.Uc(180);
  8138.             h.o = .1;
  8139.             this.L.push(c);
  8140.             this.L.push(d);
  8141.             this.L.push(e);
  8142.             this.L.push(a);
  8143.             this.X.push(b);
  8144.             this.X.push(f);
  8145.             this.X.push(g);
  8146.             this.X.push(h)
  8147.         }
  8148.         gl(a, b, c) {
  8149.             if (!(0 >= c)) {
  8150.                 var d = new G
  8151.                   , e = d.a;
  8152.                 e.x = -a + c;
  8153.                 e.y = -b;
  8154.                 d.h = 0;
  8155.                 e = new G;
  8156.                 var f = e.a;
  8157.                 f.x = -a;
  8158.                 f.y = -b + c;
  8159.                 e.h = 0;
  8160.                 f = new G;
  8161.                 var g = f.a;
  8162.                 g.x = -a + c;
  8163.                 g.y = b;
  8164.                 f.h = 0;
  8165.                 g = new G;
  8166.                 var h = g.a;
  8167.                 h.x = -a;
  8168.                 h.y = b - c;
  8169.                 g.h = 0;
  8170.                 h = new G;
  8171.                 var k = h.a;
  8172.                 k.x = a - c;
  8173.                 k.y = b;
  8174.                 h.h = 0;
  8175.                 k = new G;
  8176.                 var l = k.a;
  8177.                 l.x = a;
  8178.                 l.y = b - c;
  8179.                 k.h = 0;
  8180.                 l = new G;
  8181.                 var n = l.a;
  8182.                 n.x = a - c;
  8183.                 n.y = -b;
  8184.                 l.h = 0;
  8185.                 n = new G;
  8186.                 var r = n.a;
  8187.                 r.x = a;
  8188.                 r.y = -b + c;
  8189.                 n.h = 0;
  8190.                 a = new I;
  8191.                 a.Z = d;
  8192.                 a.ea = e;
  8193.                 a.h = 1;
  8194.                 a.bb = !1;
  8195.                 a.o = 1;
  8196.                 a.Uc(-90);
  8197.                 b = new I;
  8198.                 b.Z = f;
  8199.                 b.ea = g;
  8200.                 b.h = 1;
  8201.                 b.bb = !1;
  8202.                 b.o = 1;
  8203.                 b.Uc(90);
  8204.                 c = new I;
  8205.                 c.Z = h;
  8206.                 c.ea = k;
  8207.                 c.h = 1;
  8208.                 c.bb = !1;
  8209.                 c.o = 1;
  8210.                 c.Uc(-90);
  8211.                 r = new I;
  8212.                 r.Z = l;
  8213.                 r.ea = n;
  8214.                 r.h = 1;
  8215.                 r.bb = !1;
  8216.                 r.o = 1;
  8217.                 r.Uc(90);
  8218.                 this.L.push(d);
  8219.                 this.L.push(e);
  8220.                 this.L.push(f);
  8221.                 this.L.push(g);
  8222.                 this.L.push(h);
  8223.                 this.L.push(k);
  8224.                 this.L.push(l);
  8225.                 this.L.push(n);
  8226.                 this.X.push(a);
  8227.                 this.X.push(b);
  8228.                 this.X.push(c);
  8229.                 this.X.push(r)
  8230.             }
  8231.         }
  8232.         static ma(a) {
  8233.             var b = a.F();
  8234.             return 255 == b ? (b = new q,
  8235.             b.rs(a),
  8236.             b) : q.Nh()[b]
  8237.         }
  8238.         static Nh() {
  8239.             if (null == q.xb) {
  8240.                 q.xb = [];
  8241.                 var a = new q;
  8242.                 a.hd("Classic", 420, 200, 370, 170, 64, 75);
  8243.                 q.xb.push(a);
  8244.                 a = new q;
  8245.                 a.hd("Easy", 420, 200, 370, 170, 90, 75);
  8246.                 q.xb.push(a);
  8247.                 a = new q;
  8248.                 a.hd("Small", 420, 200, 320, 130, 55, 70);
  8249.                 q.xb.push(a);
  8250.                 a = new q;
  8251.                 a.hd("Big", 600, 270, 550, 240, 80, 80);
  8252.                 q.xb.push(a);
  8253.                 a = new q;
  8254.                 a.hd("Rounded", 420, 200, 370, 170, 64, 75, 75);
  8255.                 q.xb.push(a);
  8256.                 a = new q;
  8257.                 a.hl("Hockey", 420, 204, 398, 182, 68, 120, 100);
  8258.                 q.xb.push(a);
  8259.                 a = new q;
  8260.                 a.hl("Big Hockey", 600, 270, 550, 240, 90, 160, 150);
  8261.                 q.xb.push(a);
  8262.                 a = new q;
  8263.                 a.hd("Big Easy", 600, 270, 550, 240, 95, 80);
  8264.                 q.xb.push(a);
  8265.                 a = new q;
  8266.                 a.hd("Big Rounded", 600, 270, 550, 240, 80, 75, 100);
  8267.                 q.xb.push(a);
  8268.                 a = new q;
  8269.                 a.hd("Huge", 750, 350, 700, 320, 100, 80);
  8270.                 q.xb.push(a);
  8271.                 a = 0;
  8272.                 let b = q.xb.length;
  8273.                 for (; a < b; ) {
  8274.                     let c = a++;
  8275.                     q.xb[c].Fh = c
  8276.                 }
  8277.             }
  8278.             return q.xb
  8279.         }
  8280.         static Sn(a, b) {
  8281.             if (null != a.trait && (b = b[w.I(a.trait, String)],
  8282.             null != b)) {
  8283.                 let c = 0
  8284.                   , d = zc.hn(b);
  8285.                 for (; c < d.length; ) {
  8286.                     let e = d[c];
  8287.                     ++c;
  8288.                     null == a[e] && (a[e] = b[e])
  8289.                 }
  8290.             }
  8291.         }
  8292.         static ao(a) {
  8293.             if (63 == a)
  8294.                 return ["all"];
  8295.             let b = [];
  8296.             0 != (a & 2) && b.push("red");
  8297.             0 != (a & 4) && b.push("blue");
  8298.             0 != (a & 1) && b.push("ball");
  8299.             0 != (a & 8) && b.push("redKO");
  8300.             0 != (a & 16) && b.push("blueKO");
  8301.             0 != (a & 32) && b.push("wall");
  8302.             0 != (a & 64) && b.push("kick");
  8303.             0 != (a & 128) && b.push("score");
  8304.             0 != (a & 268435456) && b.push("c0");
  8305.             0 != (a & 536870912) && b.push("c1");
  8306.             0 != (a & 1073741824) && b.push("c2");
  8307.             0 != (a & -2147483648) && b.push("c3");
  8308.             return b
  8309.         }
  8310.         static Jc(a) {
  8311.             a = w.I(a, Array);
  8312.             let b = 0
  8313.               , c = 0;
  8314.             for (; c < a.length; )
  8315.                 switch (a[c++]) {
  8316.                 case "all":
  8317.                     b |= 63;
  8318.                     break;
  8319.                 case "ball":
  8320.                     b |= 1;
  8321.                     break;
  8322.                 case "blue":
  8323.                     b |= 4;
  8324.                     break;
  8325.                 case "blueKO":
  8326.                     b |= 16;
  8327.                     break;
  8328.                 case "c0":
  8329.                     b |= 268435456;
  8330.                     break;
  8331.                 case "c1":
  8332.                     b |= 536870912;
  8333.                     break;
  8334.                 case "c2":
  8335.                     b |= 1073741824;
  8336.                     break;
  8337.                 case "c3":
  8338.                     b |= -2147483648;
  8339.                     break;
  8340.                 case "kick":
  8341.                     b |= 64;
  8342.                     break;
  8343.                 case "red":
  8344.                     b |= 2;
  8345.                     break;
  8346.                 case "redKO":
  8347.                     b |= 8;
  8348.                     break;
  8349.                 case "score":
  8350.                     b |= 128;
  8351.                     break;
  8352.                 case "wall":
  8353.                     b |= 32
  8354.                 }
  8355.             return b
  8356.         }
  8357.         static Oc(a, b, c, d) {
  8358.             c != d && (a[b] = q.ao(c))
  8359.         }
  8360.         static Bg(a, b, c) {
  8361.             b != c && (a.color = q.qo(b))
  8362.         }
  8363.         static qo(a) {
  8364.             a |= 0;
  8365.             return 0 > a ? "transparent" : ba.bh(a)
  8366.         }
  8367.         static mg(a) {
  8368.             if ("transparent" == a)
  8369.                 return -1;
  8370.             if ("string" == typeof a)
  8371.                 return Q.parseInt("0x" + Q.Fe(a));
  8372.             if (a instanceof Array)
  8373.                 return ((a[0] | 0) << 16) + ((a[1] | 0) << 8) + (a[2] | 0);
  8374.             throw v.C("Bad color");
  8375.         }
  8376.         static zs(a) {
  8377.             let b = {
  8378.                 x: a.a.x,
  8379.                 y: a.a.y
  8380.             };
  8381.             q.oa(b, "bCoef", a.o, 1);
  8382.             q.Oc(b, "cMask", a.h, 63);
  8383.             q.Oc(b, "cGroup", a.B, 32);
  8384.             return b
  8385.         }
  8386.         static Op(a) {
  8387.             let b = new G;
  8388.             b.a.x = w.I(a.x, E);
  8389.             b.a.y = w.I(a.y, E);
  8390.             var c = a.bCoef;
  8391.             null != c && (b.o = w.I(c, E));
  8392.             c = a.cMask;
  8393.             null != c && (b.h = q.Jc(c));
  8394.             a = a.cGroup;
  8395.             null != a && (b.B = q.Jc(a));
  8396.             return b
  8397.         }
  8398.         static Ir(a, b) {
  8399.             let c = {
  8400.                 v0: a.Z.Dd,
  8401.                 v1: a.ea.Dd
  8402.             };
  8403.             q.oa(c, "bias", a.Gc, b.Gc);
  8404.             q.oa(c, "bCoef", a.o, b.o);
  8405.             let d = a.$o();
  8406.             q.oa(c, "curve", d, 0);
  8407.             0 != d && (c.curveF = a.wb);
  8408.             q.oa(c, "vis", a.bb, b.bb);
  8409.             q.Oc(c, "cMask", a.h, b.h);
  8410.             q.Oc(c, "cGroup", a.B, b.B);
  8411.             q.Bg(c, a.S, b.S);
  8412.             return c
  8413.         }
  8414.         static Np(a, b) {
  8415.             let c = new I;
  8416.             var d = w.I(a.v1, Yb);
  8417.             c.Z = b[w.I(a.v0, Yb)];
  8418.             c.ea = b[d];
  8419.             b = a.bias;
  8420.             d = a.bCoef;
  8421.             let e = a.curve
  8422.               , f = a.curveF
  8423.               , g = a.vis
  8424.               , h = a.cMask
  8425.               , k = a.cGroup;
  8426.             a = a.color;
  8427.             null != b && (c.Gc = w.I(b, E));
  8428.             null != d && (c.o = w.I(d, E));
  8429.             null != f ? c.wb = w.I(f, E) : null != e && c.Uc(w.I(e, E));
  8430.             null != g && (c.bb = w.I(g, Ec));
  8431.             null != h && (c.h = q.Jc(h));
  8432.             null != k && (c.B = q.Jc(k));
  8433.             null != a && (c.S = q.mg(a));
  8434.             return c
  8435.         }
  8436.         static Ap(a) {
  8437.             let b = {
  8438.                 d0: a.ge,
  8439.                 d1: a.he,
  8440.                 length: a.Jb >= a.fc ? a.Jb : [a.Jb, a.fc]
  8441.             };
  8442.             q.Bg(b, a.S, 0);
  8443.             q.oa(b, "strength", a.we, 1 / 0);
  8444.             return b
  8445.         }
  8446.         static Kp(a, b) {
  8447.             let c = new xb;
  8448.             var d = w.I(a.d0, Yb)
  8449.               , e = w.I(a.d1, Yb);
  8450.             let f = a.color
  8451.               , g = a.strength;
  8452.             a = a.length;
  8453.             if (d >= b.length || 0 > d)
  8454.                 throw v.C(null);
  8455.             if (e >= b.length || 0 > e)
  8456.                 throw v.C(null);
  8457.             c.ge = d;
  8458.             c.he = e;
  8459.             null == a ? (d = b[d],
  8460.             e = b[e],
  8461.             null == d || null == e ? c.fc = c.Jb = 100 : (b = d.a,
  8462.             d = e.a,
  8463.             e = b.x - d.x,
  8464.             b = b.y - d.y,
  8465.             c.fc = c.Jb = Math.sqrt(e * e + b * b))) : a instanceof Array ? (c.Jb = w.I(a[0], E),
  8466.             c.fc = w.I(a[1], E)) : c.fc = c.Jb = w.I(a, E);
  8467.             c.we = null == g || "rigid" == g ? 1 / 0 : w.I(g, E);
  8468.             null != f && (c.S = q.mg(f));
  8469.             return c
  8470.         }
  8471.         static Iq(a) {
  8472.             let b = {
  8473.                 normal: [a.ya.x, a.ya.y],
  8474.                 dist: a.Va
  8475.             };
  8476.             q.oa(b, "bCoef", a.o, 1);
  8477.             q.Oc(b, "cMask", a.h, 63);
  8478.             q.Oc(b, "cGroup", a.B, 32);
  8479.             return b
  8480.         }
  8481.         static Lp(a) {
  8482.             let b = new R;
  8483.             var c = w.I(a.normal, Array)
  8484.               , d = w.I(c[0], E)
  8485.               , e = w.I(c[1], E);
  8486.             c = b.ya;
  8487.             let f = d;
  8488.             var g = e;
  8489.             null == e && (g = 0);
  8490.             null == d && (f = 0);
  8491.             d = f;
  8492.             e = Math.sqrt(d * d + g * g);
  8493.             c.x = d / e;
  8494.             c.y = g / e;
  8495.             b.Va = w.I(a.dist, E);
  8496.             c = a.bCoef;
  8497.             d = a.cMask;
  8498.             a = a.cGroup;
  8499.             null != c && (b.o = w.I(c, E));
  8500.             null != d && (b.h = q.Jc(d));
  8501.             null != a && (b.B = q.Jc(a));
  8502.             return b
  8503.         }
  8504.         static hp(a) {
  8505.             return {
  8506.                 p0: [a.Z.x, a.Z.y],
  8507.                 p1: [a.ea.x, a.ea.y],
  8508.                 team: a.ye == u.ia ? "red" : "blue"
  8509.             }
  8510.         }
  8511.         static Jp(a) {
  8512.             let b = new Fb;
  8513.             var c = w.I(a.p0, Array);
  8514.             let d = w.I(a.p1, Array)
  8515.               , e = b.Z;
  8516.             e.x = c[0];
  8517.             e.y = c[1];
  8518.             c = b.ea;
  8519.             c.x = d[0];
  8520.             c.y = d[1];
  8521.             switch (a.team) {
  8522.             case "blue":
  8523.                 a = u.Da;
  8524.                 break;
  8525.             case "red":
  8526.                 a = u.ia;
  8527.                 break;
  8528.             default:
  8529.                 throw v.C("Bad team value");
  8530.             }
  8531.             b.ye = a;
  8532.             return b
  8533.         }
  8534.         static Lq(a) {
  8535.             let b = {};
  8536.             q.oa(b, "bCoef", a.o, .5);
  8537.             q.oa(b, "invMass", a.ca, .5);
  8538.             q.oa(b, "damping", a.Ea, .96);
  8539.             q.oa(b, "acceleration", a.Ne, .1);
  8540.             q.oa(b, "kickingAcceleration", a.ef, .07);
  8541.             q.oa(b, "kickingDamping", a.ff, .96);
  8542.             q.oa(b, "kickStrength", a.cf, 5);
  8543.             q.Oc(b, "cGroup", a.B, 0);
  8544.             if (0 != a.ra.x || 0 != a.ra.y)
  8545.                 b.gravity = [a.ra.x, a.ra.y];
  8546.             q.oa(b, "radius", a.V, 15);
  8547.             q.oa(b, "kickback", a.df, 0);
  8548.             return b
  8549.         }
  8550.         static Mp(a) {
  8551.             let b = new ec;
  8552.             var c = a.bCoef
  8553.               , d = a.invMass;
  8554.             let e = a.damping
  8555.               , f = a.acceleration
  8556.               , g = a.kickingAcceleration
  8557.               , h = a.kickingDamping
  8558.               , k = a.kickStrength
  8559.               , l = a.gravity
  8560.               , n = a.cGroup
  8561.               , r = a.radius;
  8562.             a = a.kickback;
  8563.             null != c && (b.o = w.I(c, E));
  8564.             null != d && (b.ca = w.I(d, E));
  8565.             null != e && (b.Ea = w.I(e, E));
  8566.             null != f && (b.Ne = w.I(f, E));
  8567.             null != g && (b.ef = w.I(g, E));
  8568.             null != h && (b.ff = w.I(h, E));
  8569.             null != k && (b.cf = w.I(k, E));
  8570.             null != l && (c = b.ra,
  8571.             d = w.I(l[1], E),
  8572.             c.x = w.I(l[0], E),
  8573.             c.y = d);
  8574.             null != n && (b.B = q.Jc(n));
  8575.             null != r && (b.V = w.I(r, E));
  8576.             null != a && (b.df = w.I(a, E));
  8577.             return b
  8578.         }
  8579.         static Ko(a, b) {
  8580.             let c = {};
  8581.             if (a.a.x != b.a.x || a.a.y != b.a.y)
  8582.                 c.pos = [a.a.x, a.a.y];
  8583.             if (a.G.x != b.G.x || a.G.y != b.G.y)
  8584.                 c.speed = [a.G.x, a.G.y];
  8585.             if (a.ra.x != b.ra.x || a.ra.y != b.ra.y)
  8586.                 c.gravity = [a.ra.x, a.ra.y];
  8587.             q.oa(c, "radius", a.V, b.V);
  8588.             q.oa(c, "bCoef", a.o, b.o);
  8589.             q.oa(c, "invMass", a.ca, b.ca);
  8590.             q.oa(c, "damping", a.Ea, b.Ea);
  8591.             q.Bg(c, a.S, b.S);
  8592.             q.Oc(c, "cMask", a.h, b.h);
  8593.             q.Oc(c, "cGroup", a.B, b.B);
  8594.             return c
  8595.         }
  8596.         static dl(a, b) {
  8597.             var c = a.pos
  8598.               , d = a.speed;
  8599.             let e = a.gravity
  8600.               , f = a.radius
  8601.               , g = a.bCoef
  8602.               , h = a.invMass
  8603.               , k = a.damping
  8604.               , l = a.color
  8605.               , n = a.cMask;
  8606.             a = a.cGroup;
  8607.             if (null != c) {
  8608.                 let r = b.a;
  8609.                 r.x = c[0];
  8610.                 r.y = c[1]
  8611.             }
  8612.             null != d && (c = b.G,
  8613.             c.x = d[0],
  8614.             c.y = d[1]);
  8615.             null != e && (d = b.ra,
  8616.             d.x = e[0],
  8617.             d.y = e[1]);
  8618.             null != f && (b.V = w.I(f, E));
  8619.             null != g && (b.o = w.I(g, E));
  8620.             null != h && (b.ca = w.I(h, E));
  8621.             null != k && (b.Ea = w.I(k, E));
  8622.             null != l && (b.S = q.mg(l));
  8623.             null != n && (b.h = q.Jc(n));
  8624.             null != a && (b.B = q.Jc(a));
  8625.             return b
  8626.         }
  8627.         static oa(a, b, c, d) {
  8628.             c != d && (a[b] = c)
  8629.         }
  8630.     }
  8631.     class tc {
  8632.         constructor() {
  8633.             this.Wc = 0;
  8634.             this.eb = [];
  8635.             this.fs = new da(["Time is", "Up!"],16777215);
  8636.             this.hr = new da(["Red is", "Victorious!"],15035990);
  8637.             this.gr = new da(["Red", "Scores!"],15035990);
  8638.             this.$n = new da(["Blue is", "Victorious!"],625603);
  8639.             this.Zn = new da(["Blue", "Scores!"],625603);
  8640.             this.Gq = new da(["Game", "Paused"],16777215)
  8641.         }
  8642.         Sa(a) {
  8643.             this.eb.push(a)
  8644.         }
  8645.         mo() {
  8646.             this.eb = [];
  8647.             this.Wc = 0
  8648.         }
  8649.         A(a) {
  8650.             0 < this.eb.length && (this.Wc += a) > this.eb[0].Xo() && (this.Wc = 0,
  8651.             this.eb.shift())
  8652.         }
  8653.         Qc(a) {
  8654.             0 < this.eb.length && this.eb[0].Qc(a, this.Wc)
  8655.         }
  8656.     }
  8657.     class fc {
  8658.         constructor(a) {
  8659.             this.$b = a.slice()
  8660.         }
  8661.         eval(a) {
  8662.             var b = this.$b.length - 1;
  8663.             if (a <= this.$b[0])
  8664.                 return this.$b[1];
  8665.             if (a >= this.$b[b])
  8666.                 return this.$b[b - 2];
  8667.             var c = 0;
  8668.             b = b / 5 | 0;
  8669.             do {
  8670.                 var d = b + c >>> 1;
  8671.                 a > this.$b[5 * d] ? c = d + 1 : b = d - 1
  8672.             } while (c <= b);
  8673.             c = 5 * b;
  8674.             b = this.$b[c];
  8675.             a = (a - b) / (this.$b[c + 5] - b);
  8676.             b = a * a;
  8677.             d = b * a;
  8678.             return (2 * d - 3 * b + 1) * this.$b[c + 1] + (d - 2 * b + a) * this.$b[c + 2] + (-2 * d + 3 * b) * this.$b[c + 3] + (d - b) * this.$b[c + 4]
  8679.         }
  8680.     }
  8681.     class ub {
  8682.         constructor(a, b) {
  8683.             this.f = x.Ia(ub.O);
  8684.             let c = x.Ba(this.f);
  8685.             this.lf = c.get("name");
  8686.             this.Uf = c.get("admin");
  8687.             this.bf = c.get("kick");
  8688.             this.wd = c.get("close");
  8689.             let d = this;
  8690.             this.Uf.onclick = function() {
  8691.                 Ma.i(d.cq, d.Rb, !d.Ml)
  8692.             }
  8693.             ;
  8694.             this.bf.onclick = function() {
  8695.                 D.i(d.li, d.Rb)
  8696.             }
  8697.             ;
  8698.             this.wd.onclick = function() {
  8699.                 H.i(d.rb)
  8700.             }
  8701.             ;
  8702.             this.Rb = a.Y;
  8703.             this.Tj(a.D);
  8704.             this.Sj(a.fb);
  8705.             this.Uf.disabled = !b || 0 == this.Rb;
  8706.             this.bf.disabled = !b || 0 == this.Rb
  8707.         }
  8708.         A(a, b) {
  8709.             a = a.qa(this.Rb);
  8710.             null == a ? H.i(this.rb) : (this.us(a),
  8711.             this.Uf.disabled = !b || 0 == this.Rb,
  8712.             this.bf.disabled = !b || 0 == this.Rb)
  8713.         }
  8714.         us(a) {
  8715.             this.ne != a.D && this.Tj(a.D);
  8716.             this.Ml != a.fb && this.Sj(a.fb)
  8717.         }
  8718.         Tj(a) {
  8719.             this.ne = a;
  8720.             this.lf.textContent = a
  8721.         }
  8722.         Sj(a) {
  8723.             this.Ml = a;
  8724.             this.Uf.textContent = a ? "Remove Admin" : "Give Admin"
  8725.         }
  8726.     }
  8727.     class rc {
  8728.         constructor(a, b) {
  8729.             this.r = new RegExp(a,b.split("u").join(""))
  8730.         }
  8731.         match(a) {
  8732.             this.r.global && (this.r.lastIndex = 0);
  8733.             this.r.pc = this.r.exec(a);
  8734.             this.r.jh = a;
  8735.             return null != this.r.pc
  8736.         }
  8737.         sn(a) {
  8738.             if (null != this.r.pc && 0 <= a && a < this.r.pc.length)
  8739.                 return this.r.pc[a];
  8740.             throw v.C("EReg::matched");
  8741.         }
  8742.         Ys() {
  8743.             if (null == this.r.pc)
  8744.                 throw v.C("No string matched");
  8745.             return {
  8746.                 xj: this.r.pc.index,
  8747.                 Vs: this.r.pc[0].length
  8748.             }
  8749.         }
  8750.         Xs(a, b) {
  8751.             var c;
  8752.             null == c && (c = -1);
  8753.             if (this.r.global) {
  8754.                 this.r.lastIndex = b;
  8755.                 this.r.pc = this.r.exec(0 > c ? a : O.substr(a, 0, b + c));
  8756.                 if (b = null != this.r.pc)
  8757.                     this.r.jh = a;
  8758.                 return b
  8759.             }
  8760.             if (c = this.match(0 > c ? O.substr(a, b, null) : O.substr(a, b, c)))
  8761.                 this.r.jh = a,
  8762.                 this.r.pc.index += b;
  8763.             return c
  8764.         }
  8765.     }
  8766.     class Wb {
  8767.         constructor(a, b) {
  8768.             this.La = a;
  8769.             this.value = b;
  8770.             a.textContent = "" + b
  8771.         }
  8772.         set(a) {
  8773.             this.value != a && (this.value = a,
  8774.             this.La.textContent = "" + this.value)
  8775.         }
  8776.     }
  8777.     class yc {
  8778.         constructor(a) {
  8779.             this.Mj = new Map;
  8780.             this.fp = new tb(100,16);
  8781.             this.Ig = !1;
  8782.             this.Ab = 0;
  8783.             this.sa = a;
  8784.             a = A.ka(8);
  8785.             a.u(Math.random());
  8786.             this.Se = a.Wb()
  8787.         }
  8788.         Vb(a, b) {
  8789.             null == b && (b = 0);
  8790.             this.sa.Vb(b, a)
  8791.         }
  8792.     }
  8793.     class hb {
  8794.         constructor(a) {
  8795.             function b() {
  8796.                 d.Hc() && null != d.yl && d.yl(d.Eb.value)
  8797.             }
  8798.             this.f = x.Ia(hb.O);
  8799.             let c = x.Ba(this.f);
  8800.             this.Eb = c.get("input");
  8801.             this.nf = c.get("ok");
  8802.             let d = this;
  8803.             this.Eb.maxLength = 25;
  8804.             this.Eb.value = a;
  8805.             this.Eb.oninput = function() {
  8806.                 d.A()
  8807.             }
  8808.             ;
  8809.             this.Eb.onkeydown = function(e) {
  8810.                 13 == e.keyCode && b()
  8811.             }
  8812.             ;
  8813.             this.nf.onclick = b;
  8814.             this.A()
  8815.         }
  8816.         Hc() {
  8817.             let a = this.Eb.value;
  8818.             return 25 >= a.length ? 0 < a.length : !1
  8819.         }
  8820.         A() {
  8821.             this.nf.disabled = !this.Hc()
  8822.         }
  8823.     }
  8824.     class ua {
  8825.         constructor(a) {
  8826.             this.ql = this.pl = this.sl = null;
  8827.             this.ib = new qb;
  8828.             this.nd = !1;
  8829.             this.Gf = new zb;
  8830.             this.Ka = new bb;
  8831.             this.Xa = new Bb(a);
  8832.             this.ib.Rb = a;
  8833.             this.f = x.Ia(ua.O);
  8834.             a = x.Ba(this.f);
  8835.             this.ps = a.get("top-section");
  8836.             this.vf = a.get("popups");
  8837.             this.vf.style.display = "none";
  8838.             a.get("gameplay").appendChild(this.ib.f);
  8839.             x.replaceWith(a.get("chatbox"), this.Ka.f);
  8840.             x.replaceWith(a.get("stats"), this.Gf.f);
  8841.             this.ii = a.get("menu");
  8842.             let b = this;
  8843.             this.ii.onclick = function() {
  8844.                 b.ue(!b.nd);
  8845.                 b.ii.blur()
  8846.             }
  8847.             ;
  8848.             new oc(a.get("sound"));
  8849.             a.get("settings").onclick = function() {
  8850.                 let c = new ka;
  8851.                 c.rb = function() {
  8852.                     b.ab(null)
  8853.                 }
  8854.                 ;
  8855.                 b.ab(c.f)
  8856.             }
  8857.             ;
  8858.             this.Xa.le = function() {
  8859.                 let c = new Ab;
  8860.                 c.rb = function(d) {
  8861.                     b.ab(null);
  8862.                     d && H.i(b.le)
  8863.                 }
  8864.                 ;
  8865.                 b.ab(c.f)
  8866.             }
  8867.             ;
  8868.             this.Xa.zq = function() {
  8869.                 let c = new mb;
  8870.                 c.ji = function() {
  8871.                     b.ab(null)
  8872.                 }
  8873.                 ;
  8874.                 c.zg = function(d) {
  8875.                     D.i(b.zg, d);
  8876.                     b.ab(null)
  8877.                 }
  8878.                 ;
  8879.                 c.mi = function(d) {
  8880.                     d = new Z("Error loading stadium",d,["Ok"]);
  8881.                     d.Wa = function() {
  8882.                         b.ab(null)
  8883.                     }
  8884.                     ;
  8885.                     b.ab(d.f)
  8886.                 }
  8887.                 ;
  8888.                 b.ab(c.f)
  8889.             }
  8890.         }
  8891.         Or(a) {
  8892.             this.ql != a && (this.ql = a,
  8893.             this.f.style.setProperty("--chat-opacity", "" + a))
  8894.         }
  8895.         Nr(a) {
  8896.             this.pl != a && (this.pl = a,
  8897.             this.f.classList.toggle("chat-bg-full", a))
  8898.         }
  8899.         Wr(a) {
  8900.             this.sl != a && (this.sl = a,
  8901.             this.ib.f.classList.toggle("restricted", a))
  8902.         }
  8903.         A(a) {
  8904.             null == a.U.M && this.ue(!0);
  8905.             this.nd && this.Xa.A(a.U, a.U.qa(a.xc));
  8906.             H.i(this.Ul);
  8907.             this.ii.disabled = null == a.U.M;
  8908.             let b = m.j.Sd.v()
  8909.               , c = this.ib.gb;
  8910.             c.re = m.j.Ei.v();
  8911.             this.Or(m.j.Ah.v());
  8912.             this.Nr("full" == m.j.gk.v());
  8913.             this.Wr(0 == b);
  8914.             let d = this.Ka.f.getBoundingClientRect().height;
  8915.             0 == b ? (c.Fg = 1,
  8916.             c.Md = 0,
  8917.             c.Sg = 0,
  8918.             this.ib.gb.vh = 0,
  8919.             this.ib.f.style.paddingBottom = d + "px") : (c.Sg = 35,
  8920.             0 >= b ? c.Md = 610 : (c.Md = 0,
  8921.             c.Fg = 1 + .25 * (b - 1)),
  8922.             this.ib.gb.vh = d * window.devicePixelRatio,
  8923.             this.ib.f.style.paddingBottom = "0");
  8924.             a = a.eg();
  8925.             this.ib.A(a);
  8926.             m.Pa.pk.rt(a)
  8927.         }
  8928.         ue(a) {
  8929.             this.nd != a && (this.nd = a,
  8930.             this.f.classList.toggle("showing-room-view", this.nd),
  8931.             this.nd ? this.ps.appendChild(this.Xa.f) : this.Xa.f.remove())
  8932.         }
  8933.         Xk() {
  8934.             return null != ua.Mq
  8935.         }
  8936.         ab(a, b) {
  8937.             x.Nf(this.vf);
  8938.             ua.Mq = a;
  8939.             null != a ? (this.vf.style.display = "flex",
  8940.             this.vf.appendChild(a),
  8941.             this.Ul = b) : (this.vf.style.display = "none",
  8942.             this.Ul = null)
  8943.         }
  8944.     }
  8945.     class P {
  8946.         constructor(a, b) {
  8947.             this.x = a;
  8948.             this.y = b
  8949.         }
  8950.     }
  8951.     class u {
  8952.         constructor(a, b, c, d, e, f, g, h) {
  8953.             this.Ag = null;
  8954.             this.ba = a;
  8955.             this.S = b;
  8956.             this.Gh = c;
  8957.             this.Cp = d;
  8958.             this.D = e;
  8959.             this.Go = f;
  8960.             this.B = h;
  8961.             this.Rm = new za;
  8962.             this.Rm.hb.push(b)
  8963.         }
  8964.     }
  8965.     class Cb {
  8966.         constructor() {
  8967.             this.jg = !1;
  8968.             this.D = "";
  8969.             this.uh = 0;
  8970.             this.Wf = "";
  8971.             this.mb = new za;
  8972.             let a = window.document.createElement("canvas");
  8973.             a.width = 64;
  8974.             a.height = 64;
  8975.             this.sb = a.getContext("2d", null);
  8976.             this.Xj = this.sb.createPattern(this.sb.canvas, "no-repeat");
  8977.             this.Eo()
  8978.         }
  8979.         Eo() {
  8980.             let a = window.document.createElement("canvas");
  8981.             a.width = 160;
  8982.             a.height = 34;
  8983.             this.Rl = a.getContext("2d", null)
  8984.         }
  8985.         vs() {
  8986.             let a = this.Rl;
  8987.             a.resetTransform();
  8988.             a.clearRect(0, 0, 160, 34);
  8989.             a.font = "26px sans-serif";
  8990.             a.fillStyle = "white";
  8991.             160 < a.measureText(this.D).width ? (a.textAlign = "left",
  8992.             a.translate(2, 29)) : (a.textAlign = "center",
  8993.             a.translate(80, 29));
  8994.             a.fillText(this.D, 0, 0)
  8995.         }
  8996.         Qo(a, b, c) {
  8997.             a.drawImage(this.Rl.canvas, 0, 0, 160, 34, b - 40, c - 34, 80, 17)
  8998.         }
  8999.         A(a, b) {
  9000.             if (null != a.J) {
  9001.                 let c = m.j.Sm.v() ? b.mb[a.fa.ba] : a.fa.Rm
  9002.                   , d = null != a.Td ? a.Td : a.Zb
  9003.                   , e = m.j.Hm.v() && null != d;
  9004.                 if (!Cb.ko(this.mb, c) || !e && a.Nb != this.uh || e && this.Wf != d)
  9005.                     Cb.Ao(this.mb, c),
  9006.                     e ? (this.Wf = d,
  9007.                     this.uh = -1) : (this.Wf = "" + a.Nb,
  9008.                     this.uh = a.Nb),
  9009.                     this.ir(this.Wf)
  9010.             }
  9011.             this.Jo = 0 < b.M.Ra || !a.Yb ? "black" : a.Yb && 0 >= a.Zc && 0 <= a.Ac ? "white" : "black";
  9012.             a.D != this.D && (this.D = a.D,
  9013.             this.vs())
  9014.         }
  9015.         ir(a) {
  9016.             let b = this.mb.hb;
  9017.             if (!(1 > b.length)) {
  9018.                 this.sb.save();
  9019.                 this.sb.translate(32, 32);
  9020.                 this.sb.rotate(3.141592653589793 * this.mb.sd / 128);
  9021.                 for (var c = -32, d = 64 / b.length, e = 0; e < b.length; )
  9022.                     this.sb.fillStyle = U.nc(b[e++]),
  9023.                     this.sb.fillRect(c, -32, d + 4, 64),
  9024.                     c += d;
  9025.                 this.sb.restore();
  9026.                 this.sb.fillStyle = U.nc(this.mb.od);
  9027.                 this.sb.textAlign = "center";
  9028.                 this.sb.textBaseline = "alphabetic";
  9029.                 this.sb.font = "900 34px 'Arial Black','Arial Bold',Gadget,sans-serif";
  9030.                 this.sb.fillText(a, 32, 44);
  9031.                 this.Xj = this.sb.createPattern(this.sb.canvas, "no-repeat")
  9032.             }
  9033.         }
  9034.         static ko(a, b) {
  9035.             if (a.sd != b.sd || a.od != b.od)
  9036.                 return !1;
  9037.             a = a.hb;
  9038.             b = b.hb;
  9039.             if (a.length != b.length)
  9040.                 return !1;
  9041.             let c = 0
  9042.               , d = a.length;
  9043.             for (; c < d; ) {
  9044.                 let e = c++;
  9045.                 if (a[e] != b[e])
  9046.                     return !1
  9047.             }
  9048.             return !0
  9049.         }
  9050.         static Ao(a, b) {
  9051.             a.sd = b.sd;
  9052.             a.od = b.od;
  9053.             a.hb = b.hb.slice(0)
  9054.         }
  9055.     }
  9056.     class ic {
  9057.         constructor() {}
  9058.     }
  9059.     class db extends p {
  9060.         constructor() {
  9061.             super()
  9062.         }
  9063.         apply(a) {
  9064.             a.ro(this.Yg)
  9065.         }
  9066.         wa(a) {
  9067.             a.nb(this.Yg.byteLength);
  9068.             a.Ug(this.Yg)
  9069.         }
  9070.         xa(a) {
  9071.             this.Yg = a.Zl(a.Cb())
  9072.         }
  9073.     }
  9074.     class oa extends W {
  9075.         constructor(a) {
  9076.             W.zb ? super() : (W.zb = !0,
  9077.             super(),
  9078.             W.zb = !1,
  9079.             this.Za(a))
  9080.         }
  9081.         Za(a) {
  9082.             this.aj = new Va;
  9083.             this.Be = this.ec = 0;
  9084.             this.te = new Va;
  9085.             this.xc = this.dc = this.Ad = 0;
  9086.             this.Dc = .06;
  9087.             this.oh = 16.666666666666668;
  9088.             this.Sf = 120;
  9089.             super.Za(a)
  9090.         }
  9091.         ua() {
  9092.             throw v.C("missing implementation");
  9093.         }
  9094.         eg() {
  9095.             throw v.C("missing implementation");
  9096.         }
  9097.         A() {
  9098.             throw v.C("missing implementation");
  9099.         }
  9100.         Oj(a) {
  9101.             let b = this.te.list
  9102.               , c = 0
  9103.               , d = b.length
  9104.               , e = 0;
  9105.             for (; e < a; ) {
  9106.                 for (++e; c < d; ) {
  9107.                     let f = b[c];
  9108.                     if (f.ob != this.aa)
  9109.                         break;
  9110.                     f.apply(this.U);
  9111.                     null != this.hc && this.hc(f);
  9112.                     this.ec++;
  9113.                     ++c
  9114.                 }
  9115.                 this.U.A(1);
  9116.                 this.Be += this.ec;
  9117.                 this.ec = 0;
  9118.                 this.aa++
  9119.             }
  9120.             for (; c < d; ) {
  9121.                 a = b[c];
  9122.                 if (a.ob != this.aa || a.Cc != this.ec)
  9123.                     break;
  9124.                 a.apply(this.U);
  9125.                 null != this.hc && this.hc(a);
  9126.                 this.ec++;
  9127.                 ++c
  9128.             }
  9129.             b.splice(0, c)
  9130.         }
  9131.         Lg(a) {
  9132.             a.ob == this.aa && a.Cc <= this.ec ? (a.Cc = this.ec++,
  9133.             a.apply(this.U),
  9134.             null != this.hc && this.hc(a)) : this.te.nn(a)
  9135.         }
  9136.         Ok(a, b) {
  9137.             if (0 >= a)
  9138.                 return this.U;
  9139.             a > this.Sf && (a = this.Sf);
  9140.             qa.Bc++;
  9141.             let c = this.U.uc();
  9142.             null != b ? (this.aj.Js(this.te, b),
  9143.             b = this.aj) : b = this.te;
  9144.             b = b.list;
  9145.             let d = 0
  9146.               , e = b.length
  9147.               , f = this.aa
  9148.               , g = a | 0
  9149.               , h = f + g;
  9150.             for (; f <= h; ) {
  9151.                 for (; d < e; ) {
  9152.                     let k = b[d];
  9153.                     if (k.ob > f)
  9154.                         break;
  9155.                     k.Kf.Ca && k.apply(c);
  9156.                     ++d
  9157.                 }
  9158.                 c.A(f != h ? 1 : a - g);
  9159.                 ++f
  9160.             }
  9161.             for (a = this.aj.list; 0 < a.length; )
  9162.                 a.pop();
  9163.             return c
  9164.         }
  9165.         Pr(a) {
  9166.             300 < a && (a = 300);
  9167.             0 > a && (a = 0);
  9168.             this.dc = this.Dc * a | 0
  9169.         }
  9170.         Cm(a) {
  9171.             this.Ad = this.Dc * (-200 > a ? -200 : 1E3 < a ? 1E3 : a)
  9172.         }
  9173.     }
  9174.     class Ea extends oa {
  9175.         constructor(a, b) {
  9176.             W.zb = !0;
  9177.             super();
  9178.             W.zb = !1;
  9179.             this.Za(a, b)
  9180.         }
  9181.         Za(a, b) {
  9182.             this.Mi = [];
  9183.             this.xi = [];
  9184.             this.Eg = new Va;
  9185.             this.$p = 1;
  9186.             this.yd = this.Um = 0;
  9187.             this.$i = new $b(50);
  9188.             this.Dg = new $b(50);
  9189.             this.In = 1E3;
  9190.             this.xk = "";
  9191.             super.Za(b.state);
  9192.             this.Yh = b.st;
  9193.             this.Ue = b.Ms;
  9194.             let c = null
  9195.               , d = this;
  9196.             c = function(e) {
  9197.                 d.Ff(0);
  9198.                 let f = A.ka();
  9199.                 f.Xb(b.version);
  9200.                 f.Fb(b.password);
  9201.                 d.rc = new ac(b.uj,b.iceServers,a,qc.channels,f,b.Dn);
  9202.                 d.rc.rh = e;
  9203.                 d.rc.Id = function(h) {
  9204.                     d.rc = null;
  9205.                     d.sa = h;
  9206.                     h.wg = function(k) {
  9207.                         k = new K(new DataView(k));
  9208.                         d.Wq(k)
  9209.                     }
  9210.                     ;
  9211.                     h.qf = function() {
  9212.                         3 != d.yd && D.i(d.rf, ia.Qf("Connection closed"));
  9213.                         d.la()
  9214.                     }
  9215.                     ;
  9216.                     h = window.setTimeout(function() {
  9217.                         D.i(d.rf, ia.Qf("Game state timeout"));
  9218.                         d.la()
  9219.                     }, 1E4);
  9220.                     d.ze = h;
  9221.                     d.Ff(2)
  9222.                 }
  9223.                 ;
  9224.                 d.rc.Cl = function() {
  9225.                     d.Ff(1)
  9226.                 }
  9227.                 ;
  9228.                 let g = !1;
  9229.                 d.rc.tl = function() {
  9230.                     g = !0
  9231.                 }
  9232.                 ;
  9233.                 d.rc.jd = function(h) {
  9234.                     if (!e && 1 == d.yd && g)
  9235.                         H.i(d.uq),
  9236.                         c(!0);
  9237.                     else {
  9238.                         let k = ac.ap(h);
  9239.                         switch (h.pb) {
  9240.                         case 0:
  9241.                             h = ia.Je;
  9242.                             break;
  9243.                         case 1:
  9244.                             h = ia.Ke(h.code);
  9245.                             break;
  9246.                         case 2:
  9247.                             h = ia.Ie;
  9248.                             break;
  9249.                         default:
  9250.                             h = ia.Qf(k)
  9251.                         }
  9252.                         D.i(d.rf, h);
  9253.                         d.la(k)
  9254.                     }
  9255.                 }
  9256.             }
  9257.             ;
  9258.             c(null != b.zn && b.zn)
  9259.         }
  9260.         la(a) {
  9261.             null != this.rc && (this.rc.jd = null,
  9262.             this.rc.eo(),
  9263.             this.rc = null);
  9264.             window.clearTimeout(this.ze);
  9265.             null != this.sa && (this.sa.qf = null,
  9266.             this.sa.la(),
  9267.             this.sa = null);
  9268.             this.xk = null == a ? "Connection closed" : a;
  9269.             this.Ff(4)
  9270.         }
  9271.         Ff(a) {
  9272.             this.yd != a && (this.yd = a,
  9273.             null != this.Jd && this.Jd(a))
  9274.         }
  9275.         Fd() {
  9276.             return 3 == this.yd
  9277.         }
  9278.         A() {
  9279.             this.Fd() && window.performance.now() - this.Um > this.In && this.Ii();
  9280.             this.dd = window.performance.now() * this.Dc + this.$i.hh() - this.aa;
  9281.             this.ck()
  9282.         }
  9283.         eg() {
  9284.             return this.Fd() ? (0 > this.dc && (this.dc = 0),
  9285.             this.Ok(window.performance.now() * this.Dc + this.$i.hh() - this.aa + this.dc + this.Ad, this.Eg)) : this.U
  9286.         }
  9287.         ck() {
  9288.             0 > this.dd && (this.dd = 0);
  9289.             this.dd > this.Sf && (this.dd = this.Sf)
  9290.         }
  9291.         Wq(a) {
  9292.             switch (a.F()) {
  9293.             case 0:
  9294.                 this.Tq(a);
  9295.                 break;
  9296.             case 1:
  9297.                 this.Sq(a);
  9298.                 break;
  9299.             case 2:
  9300.                 this.Pq(a);
  9301.                 break;
  9302.             case 3:
  9303.                 this.Yq(a);
  9304.                 break;
  9305.             case 4:
  9306.                 this.Vq(a);
  9307.                 break;
  9308.             case 5:
  9309.                 this.Rq(a);
  9310.                 break;
  9311.             case 6:
  9312.                 this.Xq(a)
  9313.             }
  9314.         }
  9315.         Tq(a) {
  9316.             a = a.tb(a.Cb());
  9317.             let b = Promise.resolve(null);
  9318.             null != this.Ue && (b = this.Ue.bs(a));
  9319.             let c = this;
  9320.             b.catch(function() {
  9321.                 return null
  9322.             }).then(function(d) {
  9323.                 c.Lr(d)
  9324.             })
  9325.         }
  9326.         Sq(a) {
  9327.             a = pako.inflateRaw(a.tb());
  9328.             a = new K(new DataView(a.buffer,a.byteOffset,a.byteLength));
  9329.             this.xc = a.Sb();
  9330.             this.aa = a.jb();
  9331.             this.Be = a.jb();
  9332.             this.ec = a.Cb();
  9333.             this.dd = 10;
  9334.             for (this.U.ma(a); 0 < a.s.byteLength - a.a; )
  9335.                 this.Lg(this.bn(a));
  9336.             window.clearTimeout(this.ze);
  9337.             this.Ff(3)
  9338.         }
  9339.         Lr(a) {
  9340.             let b = A.ka();
  9341.             b.m(0);
  9342.             null != a ? (b.nb(a.byteLength),
  9343.             b.Lb(a)) : b.nb(0);
  9344.             b.nb(this.Yh.byteLength);
  9345.             b.Ug(this.Yh);
  9346.             this.Vb(b);
  9347.             this.Yh = null
  9348.         }
  9349.         Vb(a, b) {
  9350.             null == b && (b = 0);
  9351.             this.sa.Vb(b, a)
  9352.         }
  9353.         bn(a) {
  9354.             let b = a.jb()
  9355.               , c = a.Cb()
  9356.               , d = a.Sb()
  9357.               , e = a.jb();
  9358.             a = p.mh(a);
  9359.             a.R = d;
  9360.             a.Ce = e;
  9361.             a.ob = b;
  9362.             a.Cc = c;
  9363.             return a
  9364.         }
  9365.         Pq(a) {
  9366.             a = this.bn(a);
  9367.             this.Lg(a);
  9368.             a.R == this.xc && this.Eg.kt(a.Ce);
  9369.             this.Xl()
  9370.         }
  9371.         Xq(a) {
  9372.             a = p.mh(a);
  9373.             a.R = 0;
  9374.             a.Ce = 0;
  9375.             a.apply(this.U);
  9376.             null != this.hc && this.hc(a)
  9377.         }
  9378.         Yq(a) {
  9379.             let b = a.jb();
  9380.             a = a.jb();
  9381.             this.xi.push({
  9382.                 frame: b,
  9383.                 Jf: a
  9384.             });
  9385.             this.Xl()
  9386.         }
  9387.         Xl() {
  9388.             if (3 == this.yd) {
  9389.                 for (var a = 0, b = this.xi; a < b.length; ) {
  9390.                     var c = b[a];
  9391.                     ++a;
  9392.                     c.frame <= this.aa || c.Jf == this.Be + this.ec + this.te.Ks(c.frame) && this.Rn(c.frame - this.aa)
  9393.                 }
  9394.                 a = 0;
  9395.                 b = this.xi;
  9396.                 c = 0;
  9397.                 for (var d = b.length; c < d; ) {
  9398.                     let e = b[c++];
  9399.                     e.frame > this.aa && (b[a] = e,
  9400.                     ++a)
  9401.                 }
  9402.                 for (; b.length > a; )
  9403.                     b.pop();
  9404.                 this.Eg.jt(this.aa)
  9405.             }
  9406.         }
  9407.         Rq(a) {
  9408.             let b = 0 != a.F()
  9409.               , c = a.kc()
  9410.               , d = "";
  9411.             0 < a.s.byteLength - a.a && (d = a.kc());
  9412.             a = b ? "You were banned" : "You were kicked";
  9413.             "" != d && (a += " by " + d);
  9414.             "" != c && (a += " (" + c + ")");
  9415.             this.la(a)
  9416.         }
  9417.         Vq(a) {
  9418.             var b = a.w();
  9419.             a = a.w();
  9420.             let c = window.performance.now() - a;
  9421.             this.$i.add(b - a * this.Dc);
  9422.             this.Dg.add(c);
  9423.             let d = b = 0
  9424.               , e = this.Mi;
  9425.             for (; d < e.length; ) {
  9426.                 let f = e[d];
  9427.                 ++d;
  9428.                 if (f > a)
  9429.                     break;
  9430.                 f < a ? D.i(this.zl, -1) : D.i(this.zl, c);
  9431.                 ++b
  9432.             }
  9433.             this.Mi.splice(0, b)
  9434.         }
  9435.         Ii() {
  9436.             let a = window.performance.now();
  9437.             this.Um = a;
  9438.             this.Mi.push(a);
  9439.             var b = this.Dg.hh() | 0
  9440.             , b = getFakePingValue(b)
  9441.               , c = A.ka();
  9442.             c.m(2);
  9443.             c.u(a);
  9444.             c.nb(b);
  9445.             this.Vb(c, 2)
  9446.         }
  9447.         Rn(a) {
  9448.             this.Oj(a);
  9449.             this.dd -= a;
  9450.             this.ck()
  9451.         }
  9452.         ua(a) {
  9453.             if (3 == this.yd) {
  9454.                 var b = this.$p++
  9455.                   , c = 0;
  9456.                 0 > this.dc && (this.dc = 0);
  9457.                 a.Kf.delay && (c = this.aa + (this.dd | 0) + this.dc);
  9458.                 var d = A.ka();
  9459.                 d.m(1);
  9460.                 if (sld){
  9461.                     d.ub(sldVar ?? 10);
  9462.                 }
  9463.                 else if (bjdau) {
  9464.                     d.ub(c - 2)
  9465.                 }
  9466.                 else{
  9467.                     d.ub(c);
  9468.                 }
  9469.                 d.ub(b);
  9470.                 p.wj(a, d);
  9471.                 this.Vb(d);
  9472.                 a.Kf.Ca && (a.Ce = b,
  9473.                 a.R = this.xc,
  9474.                 a.ob = c,
  9475.                 this.Eg.nn(a))
  9476.             }
  9477.         }
  9478.         static Bh(a) {
  9479.             switch (a.pb) {
  9480.             case 0:
  9481.                 return "Cancelled";
  9482.             case 1:
  9483.                 return "Failed to connect to peer.";
  9484.             case 2:
  9485.                 return Ic.description(a.reason);
  9486.             case 3:
  9487.                 return a.description
  9488.             }
  9489.         }
  9490.     }
  9491.     class Pb extends oa {
  9492.         constructor(a) {
  9493.             W.zb = !0;
  9494.             super();
  9495.             W.zb = !1;
  9496.             this.Za(a)
  9497.         }
  9498.         Za(a) {
  9499.             this.Zj = new Map;
  9500.             this.Kb = null;
  9501.             this.qg = 32;
  9502.             this.Te = new Map;
  9503.             this.cc = [];
  9504.             this.Fi = 2;
  9505.             this.lo = 600;
  9506.             super.Za(a.state);
  9507.             this.Up = a.uj;
  9508.             this.ys = a.version;
  9509.             this.Vp = 1;
  9510.             this.al = this.xc = 0;
  9511.             this.Vi = window.performance.now();
  9512.             this.Nc = new Db(this.Up,a.iceServers,qc.channels,a.Dn);
  9513.             this.Nc.mk = M(this, this.mp);
  9514.             let b = this;
  9515.             this.Nc.xl = function(c) {
  9516.                 b.nq(c)
  9517.             }
  9518.             ;
  9519.             this.Nc.vg = function(c) {
  9520.                 D.i(b.vg, c)
  9521.             }
  9522.             ;
  9523.             this.Nc.sf = function(c, d) {
  9524.                 null != b.sf && b.sf(c, d)
  9525.             }
  9526.         }
  9527.         la() {
  9528.             this.Nc.la();
  9529.             let a = 0
  9530.               , b = this.cc;
  9531.             for (; a < b.length; ) {
  9532.                 let c = b[a++].sa;
  9533.                 c.qf = null;
  9534.                 c.wg = null;
  9535.                 c.la()
  9536.             }
  9537.         }
  9538.         Ro(a, b, c, d) {
  9539.             let e = this.Te.get(a);
  9540.             if (null != e) {
  9541.                 if (d) {
  9542.                     let f = this.Nc.Vn(e.sa);
  9543.                     this.Zj.set(a, f)
  9544.                 }
  9545.                 a = A.ka();
  9546.                 a.m(5);
  9547.                 a.m(d ? 1 : 0);
  9548.                 a.oc(b);
  9549.                 null == c && (c = "");
  9550.                 a.oc(c);
  9551.                 e.Vb(a);
  9552.                 e.sa.la()
  9553.             }
  9554.         }
  9555.         ce() {
  9556.             this.Nc.ce();
  9557.             this.Zj.clear()
  9558.         }
  9559.         Oi(a) {
  9560.             this.Nc.Oi(a)
  9561.         }
  9562.         Ni(a) {
  9563.             this.Nc.Ni(a)
  9564.         }
  9565.         ua(a) {
  9566.             a.R = 0;
  9567.             let b = this.aa + this.Fi + this.dc;
  9568.             a.Kf.delay || (b = this.aa);
  9569.             a.ob = b;
  9570.             this.Lg(a);
  9571.             this.Li();
  9572.             0 < this.cc.length && this.Mg(this.fi(a), 1)
  9573.         }
  9574.         A() {
  9575.             let a = ((window.performance.now() - this.Vi) * this.Dc | 0) - this.aa;
  9576.             0 < a && this.Oj(a);
  9577.             7 <= this.aa - this.bl && this.Li();
  9578.             this.aa - this.al >= this.lo && (this.Li(),
  9579.             this.Jr())
  9580.         }
  9581.         eg() {
  9582.             0 > this.dc && (this.dc = 0);
  9583.             return this.Ok((window.performance.now() - this.Vi) * this.Dc - this.aa + this.Fi + this.dc + this.Ad)
  9584.         }
  9585.         mp(a, b) {
  9586.             if (this.cc.length >= this.qg)
  9587.                 return fb.Rf(4100);
  9588.             try {
  9589.                 if (b.Sb() != this.ys)
  9590.                     throw v.C(null);
  9591.             } catch (c) {
  9592.                 return fb.Rf(4103)
  9593.             }
  9594.             try {
  9595.                 let c = b.Bb();
  9596.                 if (null != this.Kb && c != this.Kb)
  9597.                     throw v.C(null);
  9598.             } catch (c) {
  9599.                 return fb.Rf(4101)
  9600.             }
  9601.             return fb.Gj
  9602.         }
  9603.         nq(a) {
  9604.             if (this.cc.length >= this.qg)
  9605.                 a.la();
  9606.             else {
  9607.                 var b = new yc(a);
  9608.                 this.cc.push(b);
  9609.                 var c = this;
  9610.                 a.wg = function(d) {
  9611.                     d = new K(new DataView(d));
  9612.                     c.Qq(d, b)
  9613.                 }
  9614.                 ;
  9615.                 a.qf = function() {
  9616.                     O.remove(c.cc, b);
  9617.                     c.Te.delete(b.ba);
  9618.                     D.i(c.jq, b.ba)
  9619.                 }
  9620.                 ;
  9621.                 a = A.ka(1 + b.Se.byteLength);
  9622.                 a.m(0);
  9623.                 a.nb(b.Se.byteLength);
  9624.                 a.Lb(b.Se);
  9625.                 b.Vb(a)
  9626.             }
  9627.         }
  9628.         fi(a) {
  9629.             let b = A.ka();
  9630.             b.m(2);
  9631.             this.El(a, b);
  9632.             return b
  9633.         }
  9634.         El(a, b) {
  9635.             b.ub(a.ob);
  9636.             b.nb(a.Cc);
  9637.             b.Xb(a.R);
  9638.             b.ub(a.Ce);
  9639.             p.wj(a, b)
  9640.         }
  9641.         Li() {
  9642.             if (!(0 >= this.aa - this.bl) && 0 != this.cc.length) {
  9643.                 var a = A.ka();
  9644.                 a.m(3);
  9645.                 a.ub(this.aa);
  9646.                 a.ub(this.Be);
  9647.                 this.Mg(a, 2);
  9648.                 this.bl = this.aa
  9649.             }
  9650.         }
  9651.         Mg(a, b) {
  9652.             null == b && (b = 0);
  9653.             let c = 0
  9654.               , d = this.cc;
  9655.             for (; c < d.length; ) {
  9656.                 let e = d[c];
  9657.                 ++c;
  9658.                 e.Ig && e.Vb(a, b)
  9659.             }
  9660.         }
  9661.         Kr(a) {
  9662.             let b = A.ka();
  9663.             b.m(1);
  9664.             let c = A.ka();
  9665.             c.Xb(a.ba);
  9666.             c.ub(this.aa);
  9667.             c.ub(this.Be);
  9668.             c.nb(this.ec);
  9669.             this.U.ga(c);
  9670.             let d = this.te.list
  9671.               , e = 0
  9672.               , f = d.length;
  9673.             for (; e < f; )
  9674.                 this.El(d[e++], c);
  9675.             b.Lb(pako.deflateRaw(c.Wb()));
  9676.             a.Vb(b)
  9677.         }
  9678.         Jr() {
  9679.             this.al = this.aa;
  9680.             if (0 != this.cc.length) {
  9681.                 var a = new db;
  9682.                 a.ob = this.aa;
  9683.                 a.Cc = this.ec++;
  9684.                 a.R = 0;
  9685.                 a.Yg = this.U.Yo();
  9686.                 this.Mg(this.fi(a))
  9687.             }
  9688.         }
  9689.         $q(a, b) {
  9690.             let c = a.tb(a.Cb())
  9691.               , d = a.tb(a.Cb());
  9692.             a = b.Se;
  9693.             b.Se = null;
  9694.             let e = this;
  9695.             T.xs(c, a).catch(function() {
  9696.                 return null
  9697.             }).then(function(f) {
  9698.                 try {
  9699.                     if (-1 != e.cc.indexOf(b)) {
  9700.                         b.tt = f;
  9701.                         var g = e.Vp++;
  9702.                         b.ba = g;
  9703.                         e.Te.set(g, b);
  9704.                         Ma.i(e.iq, g, new K(new DataView(d.buffer,d.byteOffset,d.byteLength),!1));
  9705.                         b.Ig = !0;
  9706.                         e.Kr(b)
  9707.                     }
  9708.                 } catch (h) {
  9709.                     f = v.Mb(h).Gb(),
  9710.                     e.Pk(b, f)
  9711.                 }
  9712.             })
  9713.         }
  9714.         Qq(a, b) {
  9715.             this.A();
  9716.             try {
  9717.                 if (!b.fp.Ym())
  9718.                     throw v.C(1);
  9719.                 let c = a.F();
  9720.                 if (b.Ig)
  9721.                     switch (c) {
  9722.                     case 1:
  9723.                         this.ar(a, b);
  9724.                         break;
  9725.                     case 2:
  9726.                         this.Uq(a, b);
  9727.                         break;
  9728.                     default:
  9729.                         throw v.C(0);
  9730.                     }
  9731.                 else if (0 == c)
  9732.                     this.$q(a, b);
  9733.                 else
  9734.                     throw v.C(0);
  9735.                 if (0 < a.s.byteLength - a.a)
  9736.                     throw v.C(2);
  9737.             } catch (c) {
  9738.                 this.Pk(b, v.Mb(c).Gb())
  9739.             }
  9740.         }
  9741.         Pk(a, b) {
  9742.             pa.console.log(b);
  9743.             this.Te.delete(a.ba);
  9744.             O.remove(this.cc, a);
  9745.             a.Ig && null != this.vl && this.vl(a.ba);
  9746.             a.sa.la()
  9747.         }
  9748.         Uq(a, b) {
  9749.             let c = a.w();
  9750.             b.Ab = a.Cb();
  9751.             a = A.ka();
  9752.             a.m(4);
  9753.             a.u((window.performance.now() - this.Vi) * this.Dc + this.Fi);
  9754.             a.u(c);
  9755.             b.Vb(a, 2)
  9756.         }
  9757.         ar(a, b) {
  9758.             let c = a.jb()
  9759.               , d = a.jb();
  9760.             a = p.mh(a);
  9761.             var e = a.Kf.yj;
  9762.             if (null != e) {
  9763.                 var f = b.Mj.get(e);
  9764.                 null == f && (f = new tb(e.lj,e.Ej),
  9765.                 b.Mj.set(e, f));
  9766.                 if (!f.Ym())
  9767.                     throw v.C(3);
  9768.             }
  9769.             e = this.aa;
  9770.             f = this.aa + 20;
  9771.             c < e ? c = e : c > f && (c = f);
  9772.             a.Ce = d;
  9773.             a.R = b.ba;
  9774.             a.ob = c;
  9775.             a.wn(this.U) && (this.Lg(a),
  9776.             this.Mg(this.fi(a), 1))
  9777.         }
  9778.     }
  9779.     class Qb extends oa {
  9780.         constructor(a, b, c) {
  9781.             W.zb = !0;
  9782.             super();
  9783.             W.zb = !1;
  9784.             this.Za(a, b, c)
  9785.         }
  9786.         Za(a, b, c) {
  9787.             this.ml = [];
  9788.             this.Ll = 5;
  9789.             this.Pd = -1;
  9790.             this.sg = this.Ub = this.$h = this.Kk = 0;
  9791.             super.Za(b);
  9792.             a = new K(new DataView(a.buffer),!1);
  9793.             if (1212305970 != a.jb())
  9794.                 throw v.C("");
  9795.             b = a.jb();
  9796.             if (c != b)
  9797.                 throw v.C(new Rb(b));
  9798.             this.yf = a.jb();
  9799.             c = pako.inflateRaw(a.tb());
  9800.             this.Rc = new K(new DataView(c.buffer,c.byteOffset,c.byteLength));
  9801.             this.dr(this.Rc);
  9802.             c = this.Rc.tb();
  9803.             this.Rc = new K(new DataView(c.buffer,c.byteOffset,c.byteLength),!1);
  9804.             this.Ci();
  9805.             this.$h = window.performance.now();
  9806.             this.xc = -1
  9807.         }
  9808.         dr(a) {
  9809.             let b = a.Sb()
  9810.               , c = 0
  9811.               , d = 0;
  9812.             for (; d < b; ) {
  9813.                 ++d;
  9814.                 c += a.Cb();
  9815.                 let e = a.F();
  9816.                 this.ml.push({
  9817.                     xj: c / this.yf,
  9818.                     kind: e
  9819.                 })
  9820.             }
  9821.         }
  9822.         $l() {
  9823.             var a = this.Rc;
  9824.             0 < a.s.byteLength - a.a ? (a = this.Rc.Cb(),
  9825.             this.sg += a,
  9826.             a = this.Rc.Sb(),
  9827.             this.rg = p.mh(this.Rc),
  9828.             this.rg.R = a) : this.rg = null
  9829.         }
  9830.         ep() {
  9831.             return this.aa / this.yf
  9832.         }
  9833.         ua() {}
  9834.         eg() {
  9835.             this.A();
  9836.             qa.Bc++;
  9837.             let a = this.U.uc();
  9838.             a.A(this.Kk);
  9839.             return a
  9840.         }
  9841.         A() {
  9842.             var a = window.performance.now()
  9843.               , b = a - this.$h;
  9844.             this.$h = a;
  9845.             0 < this.Pd ? (this.Ub += 1E4,
  9846.             this.Ub > this.Pd && (this.Ub = this.Pd,
  9847.             this.Pd = -1)) : this.Ub += b * this.Ll;
  9848.             a = this.yf * this.oh;
  9849.             this.Ub > a && (this.Ub = a);
  9850.             b = this.Ub * this.Dc;
  9851.             a = b | 0;
  9852.             for (this.Kk = b - a; this.aa < a; ) {
  9853.                 for (; null != this.rg && this.sg == this.aa; )
  9854.                     b = this.rg,
  9855.                     b.apply(this.U),
  9856.                     null != this.hc && this.hc(b),
  9857.                     this.$l();
  9858.                 this.aa++;
  9859.                 this.U.A(1)
  9860.             }
  9861.         }
  9862.         Hr(a) {
  9863.             this.Pd = a;
  9864.             a < this.Ub && this.Ci()
  9865.         }
  9866.         Ci() {
  9867.             this.sg = 0;
  9868.             this.Ub = this.aa = this.Rc.a = 0;
  9869.             this.U.ma(this.Rc);
  9870.             this.$l()
  9871.         }
  9872.     }
  9873.     class Ha extends p {
  9874.         constructor() {
  9875.             super()
  9876.         }
  9877.         apply(a) {
  9878.             let b = a.qa(this.R);
  9879.             null != b && this.fh != b.Ud && (b.Ud = this.fh,
  9880.             D.i(a.Ol, b))
  9881.         }
  9882.         wa(a) {
  9883.             a.m(this.fh ? 1 : 0)
  9884.         }
  9885.         xa(a) {
  9886.             this.fh = 0 != a.F()
  9887.         }
  9888.         static pa(a) {
  9889.             let b = new Ha;
  9890.             b.fh = a;
  9891.             return b
  9892.         }
  9893.     }
  9894.     class Hb extends p {
  9895.         constructor() {
  9896.             super()
  9897.         }
  9898.         apply(a) {
  9899.             0 == this.R && bc.i(a.qm, this.$c, this.color, this.style, this.Cn)
  9900.         }
  9901.         wa(a) {
  9902.             a.oc(ha.Xc(this.$c, 1E3));
  9903.             a.P(this.color);
  9904.             a.m(this.style);
  9905.             a.m(this.Cn)
  9906.         }
  9907.         xa(a) {
  9908.             this.$c = a.kc();
  9909.             if (1E3 < this.$c.length)
  9910.                 throw v.C("message too long");
  9911.             this.color = a.N();
  9912.             this.style = a.F();
  9913.             this.Cn = a.F()
  9914.         }
  9915.     }
  9916.     class Ya extends p {
  9917.         constructor() {
  9918.             super()
  9919.         }
  9920.         apply(a) {
  9921.             if (a.Pb(this.R)) {
  9922.                 for (var b = a.qa(this.R), c = a.K, d = [], e = 0, f = 0, g = 0; g < c.length; ) {
  9923.                     let h = c[g];
  9924.                     ++g;
  9925.                     h.fa == u.Oa && d.push(h);
  9926.                     h.fa == u.ia ? ++e : h.fa == u.Da && ++f
  9927.                 }
  9928.                 c = d.length;
  9929.                 0 != c && (f == e ? 2 > c || (a.Yf(b, d[0], u.ia),
  9930.                 a.Yf(b, d[1], u.Da)) : a.Yf(b, d[0], f > e ? u.ia : u.Da))
  9931.             }
  9932.         }
  9933.         wa() {}
  9934.         xa() {}
  9935.     }
  9936.     class va extends p {
  9937.         constructor() {
  9938.             super()
  9939.         }
  9940.         apply(a) {
  9941.             if (a.Pb(this.R) && null == a.M)
  9942.                 switch (this.Bj) {
  9943.                 case 0:
  9944.                     var b = this.newValue;
  9945.                     a.kb = 0 > b ? 0 : 99 < b ? 99 : b;
  9946.                     break;
  9947.                 case 1:
  9948.                     b = this.newValue,
  9949.                     a.Ga = 0 > b ? 0 : 99 < b ? 99 : b
  9950.                 }
  9951.         }
  9952.         wa(a) {
  9953.             a.P(this.Bj);
  9954.             a.P(this.newValue)
  9955.         }
  9956.         xa(a) {
  9957.             this.Bj = a.N();
  9958.             this.newValue = a.N()
  9959.         }
  9960.         static pa(a, b) {
  9961.             let c = new va;
  9962.             c.Bj = a;
  9963.             c.newValue = b;
  9964.             return c
  9965.         }
  9966.     }
  9967.     class Ka extends p {
  9968.         constructor() {
  9969.             super()
  9970.         }
  9971.         apply(a) {
  9972.             if (a.Pb(this.R)) {
  9973.                 var b = a.qa(this.R)
  9974.                   , c = a.qa(this.Vd);
  9975.                 null != c && 0 != c.Y && c.fb != this.eh && (c.fb = this.eh,
  9976.                 null != a.pi && a.pi(b, c))
  9977.             }
  9978.         }
  9979.         wa(a) {
  9980.             a.P(this.Vd);
  9981.             a.m(this.eh ? 1 : 0)
  9982.         }
  9983.         xa(a) {
  9984.             this.Vd = a.N();
  9985.             this.eh = 0 != a.F()
  9986.         }
  9987.         static pa(a, b) {
  9988.             let c = new Ka;
  9989.             c.Vd = a;
  9990.             c.eh = b;
  9991.             return c
  9992.         }
  9993.     }
  9994.     class Qa extends p {
  9995.         constructor() {
  9996.             super()
  9997.         }
  9998.         apply(a) {
  9999.             a = a.qa(this.R);
  10000.             null != a && (a.Zb = this.ac)
  10001.         }
  10002.         wa(a) {
  10003.             a.Fb(this.ac)
  10004.         }
  10005.         xa(a) {
  10006.             this.ac = a.Bb();
  10007.             null != this.ac && (this.ac = ha.Xc(this.ac, 2))
  10008.         }
  10009.         static pa(a) {
  10010.             let b = new Qa;
  10011.             b.ac = a;
  10012.             return b
  10013.         }
  10014.     }
  10015.     class fa extends p {
  10016.         constructor() {
  10017.             super()
  10018.         }
  10019.         apply(a) {
  10020.             let b = a.qa(this.Vd);
  10021.             if (null != b) {
  10022.                 var c = a.qa(this.R)
  10023.                   , d = a.Pb(this.R);
  10024.                 (d = d || b == c && !a.Vc && null == a.M) && a.Yf(c, b, this.vj)
  10025.             }
  10026.         }
  10027.         wa(a) {
  10028.             a.P(this.Vd);
  10029.             a.m(this.vj.ba)
  10030.         }
  10031.         xa(a) {
  10032.             this.Vd = a.N();
  10033.             a = a.wf();
  10034.             this.vj = 1 == a ? u.ia : 2 == a ? u.Da : u.Oa
  10035.         }
  10036.         static pa(a, b) {
  10037.             let c = new fa;
  10038.             c.Vd = a;
  10039.             c.vj = b;
  10040.             return c
  10041.         }
  10042.     }
  10043.     class Ia extends p {
  10044.         constructor() {
  10045.             super()
  10046.         }
  10047.         apply(a) {
  10048.             if (a.Pb(this.R)) {
  10049.                 var b = a.qa(this.R);
  10050.                 null == a.M && (a.T = this.Yd,
  10051.                 null != a.Si && a.Si(b, this.Yd))
  10052.             }
  10053.         }
  10054.         wa(a) {
  10055.             var b = A.ka();
  10056.             this.Yd.ga(b);
  10057.             b = pako.deflateRaw(b.Wb());
  10058.             a.Xb(b.byteLength);
  10059.             a.Lb(b)
  10060.         }
  10061.         xa(a) {
  10062.             a = pako.inflateRaw(a.tb(a.Sb()));
  10063.             this.Yd = q.ma(new K(new DataView(a.buffer,a.byteOffset,a.byteLength)))
  10064.         }
  10065.         static pa(a) {
  10066.             let b = new Ia;
  10067.             b.Yd = a;
  10068.             return b
  10069.         }
  10070.     }
  10071.     class cb extends p {
  10072.         constructor() {
  10073.             super()
  10074.         }
  10075.         apply(a) {
  10076.             a.Pb(this.R) && this.fa != u.Oa && (a.mb[this.fa.ba] = this.Zg)
  10077.         }
  10078.         wa(a) {
  10079.             a.m(this.fa.ba);
  10080.             this.Zg.ga(a)
  10081.         }
  10082.         xa(a) {
  10083.             let b = a.wf();
  10084.             this.fa = 1 == b ? u.ia : 2 == b ? u.Da : u.Oa;
  10085.             this.Zg = new za;
  10086.             this.Zg.ma(a)
  10087.         }
  10088.     }
  10089.     class Ja extends p {
  10090.         constructor() {
  10091.             super()
  10092.         }
  10093.         apply(a) {
  10094.             a.Pb(this.R) && (a.Vc = this.newValue)
  10095.         }
  10096.         wa(a) {
  10097.             a.m(this.newValue ? 1 : 0)
  10098.         }
  10099.         xa(a) {
  10100.             this.newValue = 0 != a.F()
  10101.         }
  10102.         static pa(a) {
  10103.             let b = new Ja;
  10104.             b.newValue = a;
  10105.             return b
  10106.         }
  10107.     }
  10108.     class Da extends p {
  10109.         constructor() {
  10110.             super()
  10111.         }
  10112.         apply(a) {
  10113.             if (0 == this.R) {
  10114.                 var b = new sa;
  10115.                 b.Y = this.Y;
  10116.                 b.D = this.name;
  10117.                 b.country = this.oj;
  10118.                 b.Zb = this.Zb;
  10119.                 a.K.push(b);
  10120.                 a = a.Pl;
  10121.                 null != a && a(b)
  10122.             }
  10123.         }
  10124.         wa(a) {
  10125.             a.P(this.Y);
  10126.             a.Fb(this.name);
  10127.             a.Fb(this.oj);
  10128.             a.Fb(this.Zb)
  10129.         }
  10130.         xa(a) {
  10131.             this.Y = a.N();
  10132.             this.name = a.Bb();
  10133.             this.oj = a.Bb();
  10134.             this.Zb = a.Bb()
  10135.         }
  10136.         static pa(a, b, c, d) {
  10137.             let e = new Da;
  10138.             e.Y = a;
  10139.             e.name = b;
  10140.             e.oj = c;
  10141.             e.Zb = d;
  10142.             return e
  10143.         }
  10144.     }
  10145.     class Jb extends p {
  10146.         constructor() {
  10147.             super()
  10148.         }
  10149.         apply(a) {
  10150.             a = a.qa(this.Ge);
  10151.             null != a && 0 == this.R && (a.Td = this.ac)
  10152.         }
  10153.         wa(a) {
  10154.             a.Fb(this.ac);
  10155.             a.P(this.Ge)
  10156.         }
  10157.         xa(a) {
  10158.             this.ac = a.Bb();
  10159.             this.Ge = a.N();
  10160.             null != this.ac && (this.ac = ha.Xc(this.ac, 2))
  10161.         }
  10162.     }
  10163.     class $a extends p {
  10164.         constructor() {
  10165.             super()
  10166.         }
  10167.         apply(a) {
  10168.             let b = a.M;
  10169.             if (null != b && a.Pb(this.R)) {
  10170.                 var c = a.qa(this.R)
  10171.                   , d = 120 == b.Ra
  10172.                   , e = 0 < b.Ra;
  10173.                 this.Mf ? b.Ra = 120 : 120 == b.Ra && (b.Ra = 119);
  10174.                 d != this.Mf && kc.i(a.Il, c, this.Mf, e)
  10175.             }
  10176.         }
  10177.         wa(a) {
  10178.             a.m(this.Mf ? 1 : 0)
  10179.         }
  10180.         xa(a) {
  10181.             this.Mf = 0 != a.F()
  10182.         }
  10183.     }
  10184.     class Za extends p {
  10185.         constructor() {
  10186.             super()
  10187.         }
  10188.         wn(a) {
  10189.             if (null != a.Jq) {
  10190.                 let b = a.qa(this.R);
  10191.                 return null == b ? !1 : a.Jq(b, this.$c)
  10192.             }
  10193.             return !0
  10194.         }
  10195.         apply(a) {
  10196.             let b = a.qa(this.R);
  10197.             null != b && Ma.i(a.Nl, b, this.$c)
  10198.         }
  10199.         wa(a) {
  10200.             a.oc(ha.Xc(this.$c, 140))
  10201.         }
  10202.         xa(a) {
  10203.             this.$c = a.kc();
  10204.             if (140 < this.$c.length)
  10205.                 throw v.C("message too long");
  10206.         }
  10207.     }
  10208.     class Aa extends p {
  10209.         constructor() {
  10210.             super()
  10211.         }
  10212.         apply(a) {
  10213.             let b = a.qa(this.R);
  10214.             if (null != b) {
  10215.                 var c = this.input;
  10216.                 0 == (b.W & 16) && 0 != (c & 16) && (b.Yb = !0);
  10217.                 b.W = c;
  10218.                 null != a.Kq && a.Kq(b)
  10219.             }
  10220.         }
  10221.         wa(a) {
  10222.             a.ub(this.input)
  10223.         }
  10224.         xa(a) {
  10225.             this.input = a.jb()
  10226.         }
  10227.     }
  10228.     class La extends p {
  10229.         constructor() {
  10230.             super()
  10231.         }
  10232.         apply(a) {
  10233.             let b = a.qa(this.R);
  10234.             null != b && Ma.i(a.Sl, b, this.Cj)
  10235.         }
  10236.         wa(a) {
  10237.             a.m(this.Cj)
  10238.         }
  10239.         xa(a) {
  10240.             this.Cj = a.F()
  10241.         }
  10242.         static pa(a) {
  10243.             let b = new La;
  10244.             b.Cj = a;
  10245.             return b
  10246.         }
  10247.     }
  10248.     class la extends p {
  10249.         constructor() {
  10250.             p.zb = !0;
  10251.             super();
  10252.             p.zb = !1;
  10253.             this.Za()
  10254.         }
  10255.         Za() {
  10256.             this.Xg = !1;
  10257.             super.Za()
  10258.         }
  10259.         apply(a) {
  10260.             if (0 != this.Y && a.Pb(this.R)) {
  10261.                 var b = a.qa(this.Y);
  10262.                 if (null != b) {
  10263.                     var c = a.qa(this.R);
  10264.                     O.remove(a.K, b);
  10265.                     null != a.M && O.remove(a.M.va.H, b.J);
  10266.                     bc.i(a.Ql, b, this.pd, this.Xg, c)
  10267.                 }
  10268.             }
  10269.         }
  10270.         wa(a) {
  10271.             null != this.pd && (this.pd = ha.Xc(this.pd, 100));
  10272.             a.P(this.Y);
  10273.             a.Fb(this.pd);
  10274.             a.m(this.Xg ? 1 : 0)
  10275.         }
  10276.         xa(a) {
  10277.             this.Y = a.N();
  10278.             this.pd = a.Bb();
  10279.             this.Xg = 0 != a.F();
  10280.             if (null != this.pd && 100 < this.pd.length)
  10281.                 throw v.C("string too long");
  10282.         }
  10283.         static pa(a, b, c) {
  10284.             let d = new la;
  10285.             d.Y = a;
  10286.             d.pd = b;
  10287.             d.Xg = c;
  10288.             return d
  10289.         }
  10290.     }
  10291.     class Ib extends p {
  10292.         constructor() {
  10293.             super()
  10294.         }
  10295.         apply(a) {
  10296.             if (0 == this.R) {
  10297.                 for (var b = new Map, c = 0, d = a.K; c < d.length; ) {
  10298.                     var e = d[c];
  10299.                     ++c;
  10300.                     b.set(e.Y, e)
  10301.                 }
  10302.                 c = [];
  10303.                 d = 0;
  10304.                 for (e = this.gh; d < e.length; ) {
  10305.                     var f = e[d];
  10306.                     ++d;
  10307.                     let g = b.get(f);
  10308.                     null != g && (b.delete(f),
  10309.                     c.push(g))
  10310.                 }
  10311.                 d = [];
  10312.                 b = b.values();
  10313.                 for (e = b.next(); !e.done; )
  10314.                     f = e.value,
  10315.                     e = b.next(),
  10316.                     d.push(f);
  10317.                 a.K = this.vn ? c.concat(d) : d.concat(c)
  10318.             }
  10319.         }
  10320.         wa(a) {
  10321.             a.m(this.vn ? 1 : 0);
  10322.             a.m(this.gh.length);
  10323.             let b = 0
  10324.               , c = this.gh;
  10325.             for (; b < c.length; )
  10326.                 a.P(c[b++])
  10327.         }
  10328.         xa(a) {
  10329.             this.vn = 0 != a.F();
  10330.             let b = a.F();
  10331.             this.gh = [];
  10332.             let c = 0;
  10333.             for (; c < b; )
  10334.                 ++c,
  10335.                 this.gh.push(a.N())
  10336.         }
  10337.     }
  10338.     class Kb extends p {
  10339.         constructor() {
  10340.             super()
  10341.         }
  10342.         apply(a) {
  10343.             if (0 == this.R) {
  10344.                 var b = a.M;
  10345.                 if (null != b) {
  10346.                     if (this.on) {
  10347.                         a = a.qa(this.Ge);
  10348.                         if (null == a)
  10349.                             return;
  10350.                         a = a.J
  10351.                     } else
  10352.                         a = b.va.H[this.Ge];
  10353.                     null != a && (null != this.Ma[0] && (a.a.x = this.Ma[0]),
  10354.                     null != this.Ma[1] && (a.a.y = this.Ma[1]),
  10355.                     null != this.Ma[2] && (a.G.x = this.Ma[2]),
  10356.                     null != this.Ma[3] && (a.G.y = this.Ma[3]),
  10357.                     null != this.Ma[4] && (a.ra.x = this.Ma[4]),
  10358.                     null != this.Ma[5] && (a.ra.y = this.Ma[5]),
  10359.                     null != this.Ma[6] && (a.V = this.Ma[6]),
  10360.                     null != this.Ma[7] && (a.o = this.Ma[7]),
  10361.                     null != this.Ma[8] && (a.ca = this.Ma[8]),
  10362.                     null != this.Ma[9] && (a.Ea = this.Ma[9]),
  10363.                     null != this.Yc[0] && (a.S = this.Yc[0]),
  10364.                     null != this.Yc[1] && (a.h = this.Yc[1]),
  10365.                     null != this.Yc[2] && (a.B = this.Yc[2]))
  10366.                 }
  10367.             }
  10368.         }
  10369.         wa(a) {
  10370.             a.P(this.Ge);
  10371.             a.m(this.on ? 1 : 0);
  10372.             let b = a.a;
  10373.             a.Xb(0);
  10374.             let c = 0;
  10375.             for (var d = 1, e = 0, f = this.Ma; e < f.length; ) {
  10376.                 var g = f[e];
  10377.                 ++e;
  10378.                 null != g && (c |= d,
  10379.                 a.gj(g));
  10380.                 d <<= 1
  10381.             }
  10382.             e = 0;
  10383.             for (f = this.Yc; e < f.length; )
  10384.                 g = f[e],
  10385.                 ++e,
  10386.                 null != g && (c |= d,
  10387.                 a.P(g)),
  10388.                 d <<= 1;
  10389.             d = a.a;
  10390.             a.a = b;
  10391.             a.Xb(c);
  10392.             a.a = d
  10393.         }
  10394.         xa(a) {
  10395.             this.Ge = a.N();
  10396.             this.on = 0 != a.F();
  10397.             let b = a.Sb();
  10398.             this.Ma = [];
  10399.             for (var c = 0; 10 > c; ) {
  10400.                 var d = c++;
  10401.                 this.Ma[d] = null;
  10402.                 0 != (b & 1) && (this.Ma[d] = a.ui());
  10403.                 b >>>= 1
  10404.             }
  10405.             this.Yc = [];
  10406.             for (c = 0; 3 > c; )
  10407.                 d = c++,
  10408.                 this.Yc[d] = null,
  10409.                 0 != (b & 1) && (this.Yc[d] = a.N()),
  10410.                 b >>>= 1
  10411.         }
  10412.     }
  10413.     class Pa extends p {
  10414.         constructor() {
  10415.             super()
  10416.         }
  10417.         apply(a) {
  10418.             a.Pb(this.R) && a.Rr(a.qa(this.R), this.min, this.rate, this.mj)
  10419.         }
  10420.         wa(a) {
  10421.             a.P(this.min);
  10422.             a.P(this.rate);
  10423.             a.P(this.mj)
  10424.         }
  10425.         xa(a) {
  10426.             this.min = a.N();
  10427.             this.rate = a.N();
  10428.             this.mj = a.N()
  10429.         }
  10430.         static pa(a, b, c) {
  10431.             let d = new Pa;
  10432.             d.min = a;
  10433.             d.rate = b;
  10434.             d.mj = c;
  10435.             return d
  10436.         }
  10437.     }
  10438.     class Wa extends p {
  10439.         constructor() {
  10440.             super()
  10441.         }
  10442.         apply(a) {
  10443.             a.Pb(this.R) && a.ds(a.qa(this.R))
  10444.         }
  10445.         wa() {}
  10446.         xa() {}
  10447.     }
  10448.     class Xa extends p {
  10449.         constructor() {
  10450.             super()
  10451.         }
  10452.         apply(a) {
  10453.             if (a.Pb(this.R)) {
  10454.                 var b = a.qa(this.R);
  10455.                 if (null != a.M) {
  10456.                     a.M = null;
  10457.                     let c = 0
  10458.                       , d = a.K;
  10459.                     for (; c < d.length; ) {
  10460.                         let e = d[c];
  10461.                         ++c;
  10462.                         e.J = null;
  10463.                         e.Nb = 0
  10464.                     }
  10465.                     null != a.Hf && a.Hf(b)
  10466.                 }
  10467.             }
  10468.         }
  10469.         wa() {}
  10470.         xa() {}
  10471.     }
  10472.     class Ca extends p {
  10473.         constructor() {
  10474.             super()
  10475.         }
  10476.         apply(a) {
  10477.             if (0 == this.R) {
  10478.                 a = a.K;
  10479.                 for (var b = 0, c = a.length; b < c; ) {
  10480.                     let d = b++;
  10481.                     if (d >= this.Ee.length)
  10482.                         break;
  10483.                     a[d].Ab = this.Ee[d]
  10484.                 }
  10485.             }
  10486.         }
  10487.         wa(a) {
  10488.             a.nb(this.Ee.length);
  10489.             let b = 0
  10490.               , c = this.Ee;
  10491.             for (; b < c.length; )
  10492.                 a.nb(c[b++])
  10493.         }
  10494.         xa(a) {
  10495.             this.Ee = [];
  10496.             let b = a.Cb()
  10497.               , c = 0;
  10498.             for (; c < b; )
  10499.                 ++c,
  10500.                 this.Ee.push(a.Cb())
  10501.         }
  10502.         static pa(a) {
  10503.             let b = new Ca
  10504.               , c = a.U.K
  10505.               , d = []
  10506.               , e = 0;
  10507.             for (; e < c.length; ) {
  10508.                 let f = a.Te.get(c[e++].Y);
  10509.                 d.push(null == f ? 0 : f.Ab)
  10510.             }
  10511.             b.Ee = d;
  10512.             return b
  10513.         }
  10514.     }
  10515.     class v extends Error {
  10516.         constructor(a, b, c) {
  10517.             super(a);
  10518.             this.message = a;
  10519.             this.Lj = null != c ? c : this
  10520.         }
  10521.         Gb() {
  10522.             return this.Lj
  10523.         }
  10524.         static Mb(a) {
  10525.             return a instanceof v ? a : a instanceof Error ? new v(a.message,null,a) : new Mb(a,null,a)
  10526.         }
  10527.         static C(a) {
  10528.             return a instanceof v ? a.Lj : a instanceof Error ? a : new Mb(a)
  10529.         }
  10530.     }
  10531.     class Mb extends v {
  10532.         constructor(a, b, c) {
  10533.             super(String(a), b, c);
  10534.             this.value = a
  10535.         }
  10536.         Gb() {
  10537.             return this.value
  10538.         }
  10539.     }
  10540.     var yb = yb || {}, X;
  10541.     rc.b = !0;
  10542.     Object.assign(rc.prototype, {
  10543.         g: rc
  10544.     });
  10545.     O.b = !0;
  10546.     Math.b = !0;
  10547.     zc.b = !0;
  10548.     Q.b = !0;
  10549.     ba.b = !0;
  10550.     ha.b = !0;
  10551.     vc.b = !0;
  10552.     Object.assign(vc.prototype, {
  10553.         g: vc
  10554.     });
  10555.     var na = yb["bas.basnet.FailReason"] = {
  10556.         Tf: !0,
  10557.         $d: null,
  10558.         Je: {
  10559.             wc: "PeerFailed",
  10560.             pb: 0,
  10561.             Hb: "bas.basnet.FailReason",
  10562.             toString: ja
  10563.         },
  10564.         Ke: (X = function(a) {
  10565.             return {
  10566.                 pb: 1,
  10567.                 code: a,
  10568.                 Hb: "bas.basnet.FailReason",
  10569.                 toString: ja
  10570.             }
  10571.         }
  10572.         ,
  10573.         X.wc = "Rejected",
  10574.         X.Le = ["code"],
  10575.         X),
  10576.         Ie: {
  10577.             wc: "Cancelled",
  10578.             pb: 2,
  10579.             Hb: "bas.basnet.FailReason",
  10580.             toString: ja
  10581.         },
  10582.         Error: {
  10583.             wc: "Error",
  10584.             pb: 3,
  10585.             Hb: "bas.basnet.FailReason",
  10586.             toString: ja
  10587.         }
  10588.     };
  10589.     na.$d = [na.Je, na.Ke, na.Ie, na.Error];
  10590.     ac.b = !0;
  10591.     Object.assign(ac.prototype, {
  10592.         g: ac
  10593.     });
  10594.     Ua.b = !0;
  10595.     Object.assign(Ua.prototype, {
  10596.         g: Ua
  10597.     });
  10598.     var fb = yb["bas.basnet.ConnectionRequestResponse"] = {
  10599.         Tf: !0,
  10600.         $d: null,
  10601.         Gj: {
  10602.             wc: "Accept",
  10603.             pb: 0,
  10604.             Hb: "bas.basnet.ConnectionRequestResponse",
  10605.             toString: ja
  10606.         },
  10607.         Rf: (X = function(a) {
  10608.             return {
  10609.                 pb: 1,
  10610.                 reason: a,
  10611.                 Hb: "bas.basnet.ConnectionRequestResponse",
  10612.                 toString: ja
  10613.             }
  10614.         }
  10615.         ,
  10616.         X.wc = "Reject",
  10617.         X.Le = ["reason"],
  10618.         X)
  10619.     };
  10620.     fb.$d = [fb.Gj, fb.Rf];
  10621.     Db.b = !0;
  10622.     Object.assign(Db.prototype, {
  10623.         g: Db
  10624.     });
  10625.     Hc.b = !0;
  10626.     Zb.b = !0;
  10627.     Object.assign(Zb.prototype, {
  10628.         g: Zb
  10629.     });
  10630.     K.b = !0;
  10631.     Object.assign(K.prototype, {
  10632.         g: K
  10633.     });
  10634.     A.b = !0;
  10635.     Object.assign(A.prototype, {
  10636.         g: A
  10637.     });
  10638.     T.b = !0;
  10639.     Object.assign(T.prototype, {
  10640.         g: T
  10641.     });
  10642.     sb.b = !0;
  10643.     nb.b = !0;
  10644.     Sb.b = !0;
  10645.     Wb.b = !0;
  10646.     Object.assign(Wb.prototype, {
  10647.         g: Wb
  10648.     });
  10649.     x.b = !0;
  10650.     cc.b = !0;
  10651.     Gc.b = !0;
  10652.     p.b = !0;
  10653.     Object.assign(p.prototype, {
  10654.         g: p
  10655.     });
  10656.     Va.b = !0;
  10657.     Object.assign(Va.prototype, {
  10658.         g: Va
  10659.     });
  10660.     W.b = !0;
  10661.     Object.assign(W.prototype, {
  10662.         g: W
  10663.     });
  10664.     db.b = !0;
  10665.     db.ja = p;
  10666.     Object.assign(db.prototype, {
  10667.         g: db
  10668.     });
  10669.     dc.b = !0;
  10670.     dc.Jj = !0;
  10671.     Object.assign(dc.prototype, {
  10672.         g: dc
  10673.     });
  10674.     $b.b = !0;
  10675.     Object.assign($b.prototype, {
  10676.         g: $b
  10677.     });
  10678.     pc.b = !0;
  10679.     Object.assign(pc.prototype, {
  10680.         g: pc
  10681.     });
  10682.     nc.b = !0;
  10683.     Object.assign(nc.prototype, {
  10684.         g: nc
  10685.     });
  10686.     Oa.b = !0;
  10687.     Oa.Jj = !0;
  10688.     qa.b = !0;
  10689.     oa.b = !0;
  10690.     oa.ja = W;
  10691.     Object.assign(oa.prototype, {
  10692.         g: oa
  10693.     });
  10694.     var ia = yb["bas.marf.net.ConnFailReason"] = {
  10695.         Tf: !0,
  10696.         $d: null,
  10697.         Ie: {
  10698.             wc: "Cancelled",
  10699.             pb: 0,
  10700.             Hb: "bas.marf.net.ConnFailReason",
  10701.             toString: ja
  10702.         },
  10703.         Je: {
  10704.             wc: "PeerFailed",
  10705.             pb: 1,
  10706.             Hb: "bas.marf.net.ConnFailReason",
  10707.             toString: ja
  10708.         },
  10709.         Ke: (X = function(a) {
  10710.             return {
  10711.                 pb: 2,
  10712.                 reason: a,
  10713.                 Hb: "bas.marf.net.ConnFailReason",
  10714.                 toString: ja
  10715.             }
  10716.         }
  10717.         ,
  10718.         X.wc = "Rejected",
  10719.         X.Le = ["reason"],
  10720.         X),
  10721.         Qf: (X = function(a) {
  10722.             return {
  10723.                 pb: 3,
  10724.                 description: a,
  10725.                 Hb: "bas.marf.net.ConnFailReason",
  10726.                 toString: ja
  10727.             }
  10728.         }
  10729.         ,
  10730.         X.wc = "Other",
  10731.         X.Le = ["description"],
  10732.         X)
  10733.     };
  10734.     ia.$d = [ia.Ie, ia.Je, ia.Ke, ia.Qf];
  10735.     Ea.b = !0;
  10736.     Ea.ja = oa;
  10737.     Object.assign(Ea.prototype, {
  10738.         g: Ea
  10739.     });
  10740.     Pb.b = !0;
  10741.     Pb.ja = oa;
  10742.     Object.assign(Pb.prototype, {
  10743.         g: Pb
  10744.     });
  10745.     yc.b = !0;
  10746.     Object.assign(yc.prototype, {
  10747.         g: yc
  10748.     });
  10749.     qc.b = !0;
  10750.     Rb.b = !0;
  10751.     Object.assign(Rb.prototype, {
  10752.         g: Rb
  10753.     });
  10754.     Qb.b = !0;
  10755.     Qb.ja = oa;
  10756.     Object.assign(Qb.prototype, {
  10757.         g: Qb
  10758.     });
  10759.     fc.b = !0;
  10760.     Object.assign(fc.prototype, {
  10761.         g: fc
  10762.     });
  10763.     Dc.b = !0;
  10764.     Object.assign(Dc.prototype, {
  10765.         g: Dc
  10766.     });
  10767.     P.b = !0;
  10768.     Object.assign(P.prototype, {
  10769.         g: P
  10770.     });
  10771.     aa.b = !0;
  10772.     H.b = !0;
  10773.     D.b = !0;
  10774.     Ma.b = !0;
  10775.     kc.b = !0;
  10776.     bc.b = !0;
  10777.     tb.b = !0;
  10778.     Object.assign(tb.prototype, {
  10779.         g: tb
  10780.     });
  10781.     Bc.b = !0;
  10782.     Xb.b = !0;
  10783.     Object.assign(Xb.prototype, {
  10784.         g: Xb
  10785.     });
  10786.     Ga.b = !0;
  10787.     Ba.b = !0;
  10788.     Object.assign(Ba.prototype, {
  10789.         g: Ba
  10790.     });
  10791.     Vb.b = !0;
  10792.     Object.assign(Vb.prototype, {
  10793.         g: Vb
  10794.     });
  10795.     Nb.b = !0;
  10796.     Object.assign(Nb.prototype, {
  10797.         g: Nb
  10798.     });
  10799.     ma.b = !0;
  10800.     Object.assign(ma.prototype, {
  10801.         g: ma
  10802.     });
  10803.     uc.b = !0;
  10804.     Object.assign(uc.prototype, {
  10805.         g: uc
  10806.     });
  10807.     Ac.b = !0;
  10808.     xa.b = !0;
  10809.     Object.assign(xa.prototype, {
  10810.         g: xa
  10811.     });
  10812.     ra.b = !0;
  10813.     Object.assign(ra.prototype, {
  10814.         g: ra
  10815.     });
  10816.     m.b = !0;
  10817.     ic.b = !0;
  10818.     Object.assign(ic.prototype, {
  10819.         g: ic
  10820.     });
  10821.     B.b = !0;
  10822.     C.b = !0;
  10823.     hc.b = !0;
  10824.     Object.assign(hc.prototype, {
  10825.         g: hc
  10826.     });
  10827.     Ob.b = !0;
  10828.     Object.assign(Ob.prototype, {
  10829.         g: Ob
  10830.     });
  10831.     Ub.b = !0;
  10832.     ob.b = !0;
  10833.     lc.b = !0;
  10834.     Object.assign(lc.prototype, {
  10835.         g: lc
  10836.     });
  10837.     mc.b = !0;
  10838.     Object.assign(mc.prototype, {
  10839.         g: mc
  10840.     });
  10841.     ya.b = !0;
  10842.     Object.assign(ya.prototype, {
  10843.         g: ya
  10844.     });
  10845.     ca.b = !0;
  10846.     ca.qd = [Oa];
  10847.     Object.assign(ca.prototype, {
  10848.         g: ca
  10849.     });
  10850.     Fb.b = !0;
  10851.     Object.assign(Fb.prototype, {
  10852.         g: Fb
  10853.     });
  10854.     ec.b = !0;
  10855.     Object.assign(ec.prototype, {
  10856.         g: ec
  10857.     });
  10858.     Ta.b = !0;
  10859.     Object.assign(Ta.prototype, {
  10860.         g: Ta
  10861.     });
  10862.     q.b = !0;
  10863.     Object.assign(q.prototype, {
  10864.         g: q
  10865.     });
  10866.     za.b = !0;
  10867.     Object.assign(za.prototype, {
  10868.         g: za
  10869.     });
  10870.     u.b = !0;
  10871.     Object.assign(u.prototype, {
  10872.         g: u
  10873.     });
  10874.     ta.b = !0;
  10875.     ta.qd = [Oa, dc];
  10876.     Object.assign(ta.prototype, {
  10877.         g: ta
  10878.     });
  10879.     sa.b = !0;
  10880.     sa.qd = [Oa];
  10881.     Object.assign(sa.prototype, {
  10882.         g: sa
  10883.     });
  10884.     Ha.b = !0;
  10885.     Ha.ja = p;
  10886.     Object.assign(Ha.prototype, {
  10887.         g: Ha
  10888.     });
  10889.     Hb.b = !0;
  10890.     Hb.ja = p;
  10891.     Object.assign(Hb.prototype, {
  10892.         g: Hb
  10893.     });
  10894.     Ya.b = !0;
  10895.     Ya.ja = p;
  10896.     Object.assign(Ya.prototype, {
  10897.         g: Ya
  10898.     });
  10899.     va.b = !0;
  10900.     va.ja = p;
  10901.     Object.assign(va.prototype, {
  10902.         g: va
  10903.     });
  10904.     Ka.b = !0;
  10905.     Ka.ja = p;
  10906.     Object.assign(Ka.prototype, {
  10907.         g: Ka
  10908.     });
  10909.     Qa.b = !0;
  10910.     Qa.ja = p;
  10911.     Object.assign(Qa.prototype, {
  10912.         g: Qa
  10913.     });
  10914.     fa.b = !0;
  10915.     fa.ja = p;
  10916.     Object.assign(fa.prototype, {
  10917.         g: fa
  10918.     });
  10919.     Ia.b = !0;
  10920.     Ia.ja = p;
  10921.     Object.assign(Ia.prototype, {
  10922.         g: Ia
  10923.     });
  10924.     cb.b = !0;
  10925.     cb.ja = p;
  10926.     Object.assign(cb.prototype, {
  10927.         g: cb
  10928.     });
  10929.     Ja.b = !0;
  10930.     Ja.ja = p;
  10931.     Object.assign(Ja.prototype, {
  10932.         g: Ja
  10933.     });
  10934.     Da.b = !0;
  10935.     Da.ja = p;
  10936.     Object.assign(Da.prototype, {
  10937.         g: Da
  10938.     });
  10939.     Jb.b = !0;
  10940.     Jb.ja = p;
  10941.     Object.assign(Jb.prototype, {
  10942.         g: Jb
  10943.     });
  10944.     $a.b = !0;
  10945.     $a.ja = p;
  10946.     Object.assign($a.prototype, {
  10947.         g: $a
  10948.     });
  10949.     Za.b = !0;
  10950.     Za.ja = p;
  10951.     Object.assign(Za.prototype, {
  10952.         g: Za
  10953.     });
  10954.     Aa.b = !0;
  10955.     Aa.ja = p;
  10956.     Object.assign(Aa.prototype, {
  10957.         g: Aa
  10958.     });
  10959.     La.b = !0;
  10960.     La.ja = p;
  10961.     Object.assign(La.prototype, {
  10962.         g: La
  10963.     });
  10964.     Jc.b = !0;
  10965.     la.b = !0;
  10966.     la.ja = p;
  10967.     Object.assign(la.prototype, {
  10968.         g: la
  10969.     });
  10970.     Ib.b = !0;
  10971.     Ib.ja = p;
  10972.     Object.assign(Ib.prototype, {
  10973.         g: Ib
  10974.     });
  10975.     Kb.b = !0;
  10976.     Kb.ja = p;
  10977.     Object.assign(Kb.prototype, {
  10978.         g: Kb
  10979.     });
  10980.     Pa.b = !0;
  10981.     Pa.ja = p;
  10982.     Object.assign(Pa.prototype, {
  10983.         g: Pa
  10984.     });
  10985.     Wa.b = !0;
  10986.     Wa.ja = p;
  10987.     Object.assign(Wa.prototype, {
  10988.         g: Wa
  10989.     });
  10990.     Xa.b = !0;
  10991.     Xa.ja = p;
  10992.     Object.assign(Xa.prototype, {
  10993.         g: Xa
  10994.     });
  10995.     Ca.b = !0;
  10996.     Ca.ja = p;
  10997.     Object.assign(Ca.prototype, {
  10998.         g: Ca
  10999.     });
  11000.     wa.b = !0;
  11001.     wa.qd = [Oa];
  11002.     Object.assign(wa.prototype, {
  11003.         g: wa
  11004.     });
  11005.     xb.b = !0;
  11006.     xb.qd = [Oa];
  11007.     Object.assign(xb.prototype, {
  11008.         g: xb
  11009.     });
  11010.     ab.b = !0;
  11011.     ab.qd = [Oa];
  11012.     Object.assign(ab.prototype, {
  11013.         g: ab
  11014.     });
  11015.     R.b = !0;
  11016.     Object.assign(R.prototype, {
  11017.         g: R
  11018.     });
  11019.     I.b = !0;
  11020.     Object.assign(I.prototype, {
  11021.         g: I
  11022.     });
  11023.     G.b = !0;
  11024.     Object.assign(G.prototype, {
  11025.         g: G
  11026.     });
  11027.     U.b = !0;
  11028.     Object.assign(U.prototype, {
  11029.         g: U
  11030.     });
  11031.     da.b = !0;
  11032.     Object.assign(da.prototype, {
  11033.         g: da
  11034.     });
  11035.     tc.b = !0;
  11036.     Object.assign(tc.prototype, {
  11037.         g: tc
  11038.     });
  11039.     Cb.b = !0;
  11040.     Object.assign(Cb.prototype, {
  11041.         g: Cb
  11042.     });
  11043.     ib.b = !0;
  11044.     Object.assign(ib.prototype, {
  11045.         g: ib
  11046.     });
  11047.     bb.b = !0;
  11048.     Object.assign(bb.prototype, {
  11049.         g: bb
  11050.     });
  11051.     Tb.b = !0;
  11052.     Object.assign(Tb.prototype, {
  11053.         g: Tb
  11054.     });
  11055.     hb.b = !0;
  11056.     Object.assign(hb.prototype, {
  11057.         g: hb
  11058.     });
  11059.     lb.b = !0;
  11060.     Object.assign(lb.prototype, {
  11061.         g: lb
  11062.     });
  11063.     jb.b = !0;
  11064.     Object.assign(jb.prototype, {
  11065.         g: jb
  11066.     });
  11067.     Ra.b = !0;
  11068.     Object.assign(Ra.prototype, {
  11069.         g: Ra
  11070.     });
  11071.     qb.b = !0;
  11072.     Object.assign(qb.prototype, {
  11073.         g: qb
  11074.     });
  11075.     jc.b = !0;
  11076.     Object.assign(jc.prototype, {
  11077.         g: jc
  11078.     });
  11079.     oc.b = !0;
  11080.     Object.assign(oc.prototype, {
  11081.         g: oc
  11082.     });
  11083.     ua.b = !0;
  11084.     Object.assign(ua.prototype, {
  11085.         g: ua
  11086.     });
  11087.     rb.b = !0;
  11088.     Object.assign(rb.prototype, {
  11089.         g: rb
  11090.     });
  11091.     Ab.b = !0;
  11092.     Object.assign(Ab.prototype, {
  11093.         g: Ab
  11094.     });
  11095.     mb.b = !0;
  11096.     Object.assign(mb.prototype, {
  11097.         g: mb
  11098.     });
  11099.     sc.b = !0;
  11100.     Object.assign(sc.prototype, {
  11101.         g: sc
  11102.     });
  11103.     ub.b = !0;
  11104.     Object.assign(ub.prototype, {
  11105.         g: ub
  11106.     });
  11107.     wb.b = !0;
  11108.     Object.assign(wb.prototype, {
  11109.         g: wb
  11110.     });
  11111.     Na.b = !0;
  11112.     Object.assign(Na.prototype, {
  11113.         g: Na
  11114.     });
  11115.     Y.b = !0;
  11116.     Object.assign(Y.prototype, {
  11117.         g: Y
  11118.     });
  11119.     Fa.b = !0;
  11120.     Object.assign(Fa.prototype, {
  11121.         g: Fa
  11122.     });
  11123.     gb.b = !0;
  11124.     Object.assign(gb.prototype, {
  11125.         g: gb
  11126.     });
  11127.     Eb.b = !0;
  11128.     Object.assign(Eb.prototype, {
  11129.         g: Eb
  11130.     });
  11131.     Sa.b = !0;
  11132.     Object.assign(Sa.prototype, {
  11133.         g: Sa
  11134.     });
  11135.     vb.b = !0;
  11136.     Object.assign(vb.prototype, {
  11137.         g: vb
  11138.     });
  11139.     kb.b = !0;
  11140.     Object.assign(kb.prototype, {
  11141.         g: kb
  11142.     });
  11143.     Bb.b = !0;
  11144.     Object.assign(Bb.prototype, {
  11145.         g: Bb
  11146.     });
  11147.     ka.b = !0;
  11148.     Object.assign(ka.prototype, {
  11149.         g: ka
  11150.     });
  11151.     Z.b = !0;
  11152.     Object.assign(Z.prototype, {
  11153.         g: Z
  11154.     });
  11155.     zb.b = !0;
  11156.     Object.assign(zb.prototype, {
  11157.         g: zb
  11158.     });
  11159.     pb.b = !0;
  11160.     Object.assign(pb.prototype, {
  11161.         g: pb
  11162.     });
  11163.     v.b = !0;
  11164.     v.ja = Error;
  11165.     Object.assign(v.prototype, {
  11166.         g: v
  11167.     });
  11168.     Mb.b = !0;
  11169.     Mb.ja = v;
  11170.     Object.assign(Mb.prototype, {
  11171.         g: Mb
  11172.     });
  11173.     Cc.b = !0;
  11174.     Object.assign(Cc.prototype, {
  11175.         g: Cc
  11176.     });
  11177.     w.b = !0;
  11178.     pa.Fj |= 0;
  11179.     "undefined" != typeof performance && "function" == typeof performance.now && (O.now = performance.now.bind(performance));
  11180.     null == String.fromCodePoint && (String.fromCodePoint = function(a) {
  11181.         return 65536 > a ? String.fromCharCode(a) : String.fromCharCode((a >> 10) + 55232) + String.fromCharCode((a & 1023) + 56320)
  11182.     }
  11183.     );
  11184.     Object.defineProperty(String.prototype, "__class__", {
  11185.         value: String,
  11186.         enumerable: !1,
  11187.         writable: !0
  11188.     });
  11189.     String.b = !0;
  11190.     Array.b = !0;
  11191.     Date.prototype.g = Date;
  11192.     Date.b = "Date";
  11193.     var Yb = {}
  11194.       , Lc = {}
  11195.       , E = Number
  11196.       , Ec = Boolean
  11197.       , Mc = {}
  11198.       , Nc = {};
  11199.     u.Oa = new u(0,16777215,0,-1,"Spectators","t-spec",0,0);
  11200.     u.ia = new u(1,15035990,-1,8,"Red","t-red",15035990,2);
  11201.     u.Da = new u(2,5671397,1,16,"Blue","t-blue",625603,4);
  11202.     u.Oa.Ag = u.Oa;
  11203.     u.ia.Ag = u.Da;
  11204.     u.Da.Ag = u.ia;
  11205.     w.On = {}.toString;
  11206.     Ua.xo = {
  11207.         mandatory: {
  11208.             OfferToReceiveAudio: !1,
  11209.             OfferToReceiveVideo: !1
  11210.         }
  11211.     };
  11212.     T.qh = {
  11213.         name: "ECDSA",
  11214.         namedCurve: "P-256"
  11215.     };
  11216.     T.Im = {
  11217.         name: "ECDSA",
  11218.         hash: {
  11219.             name: "SHA-256"
  11220.         }
  11221.     };
  11222.     nb.sp = ["click-rail", "drag-thumb", "wheel", "touch"];
  11223.     p.zb = !1;
  11224.     p.mn = new Map;
  11225.     p.Jf = 0;
  11226.     W.zb = !1;
  11227.     db.Aa = p.Ha({
  11228.         Ca: !1,
  11229.         delay: !1
  11230.     });
  11231.     qa.Bc = 0;
  11232.     qc.channels = [{
  11233.         name: "ro",
  11234.         reliable: !0,
  11235.         ordered: !0
  11236.     }, {
  11237.         name: "ru",
  11238.         reliable: !0,
  11239.         ordered: !1
  11240.     }, {
  11241.         name: "uu",
  11242.         reliable: !1,
  11243.         ordered: !1
  11244.     }];
  11245.     aa.Hj = "application/x-www-form-urlencoded";
  11246.     Ga.eb = ["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, "England", "ENG", 55.3, -3.4, "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, "Wales", "WLS", 55.3, -3.4, "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];
  11247.     m.Cs = "wss://p2p.haxball.com/";
  11248.     m.Pe = "https://www.haxball.com/rs/";
  11249.     m.hg = [{
  11250.         urls: "stun:stun.l.google.com:19302"
  11251.     }];
  11252.     m.j = new uc;
  11253.     ca.rl = function() {
  11254.         let a = [];
  11255.         {
  11256.             let b = 0;
  11257.             for (; 256 > b; )
  11258.                 ++b,
  11259.                 a.push(new P(0,0))
  11260.         }
  11261.         return a
  11262.     }(this);
  11263.     ca.wk = function() {
  11264.         let a = [];
  11265.         {
  11266.             let b = 0;
  11267.             for (; 256 > b; )
  11268.                 ++b,
  11269.                 a.push(0)
  11270.         }
  11271.         return a
  11272.     }(this);
  11273.     q.ls = A.ka(1024);
  11274.     Ha.Aa = p.Ha({
  11275.         Ca: !1,
  11276.         delay: !1
  11277.     });
  11278.     Hb.Aa = p.Ha({
  11279.         Ca: !1,
  11280.         delay: !1,
  11281.         yj: {
  11282.             lj: 10,
  11283.             Ej: 900
  11284.         }
  11285.     });
  11286.     Ya.Aa = p.Ha({
  11287.         Ca: !1,
  11288.         delay: !1
  11289.     });
  11290.     va.Aa = p.Ha({
  11291.         Ca: !1,
  11292.         delay: !1
  11293.     });
  11294.     Ka.Aa = p.Ha({
  11295.         Ca: !1,
  11296.         delay: !1
  11297.     });
  11298.     Qa.Aa = p.Ha({
  11299.         Ca: !1,
  11300.         delay: !1
  11301.     });
  11302.     fa.Aa = p.Ha({
  11303.         Ca: !1,
  11304.         delay: !1
  11305.     });
  11306.     Ia.Aa = p.Ha({
  11307.         Ca: !1,
  11308.         delay: !1,
  11309.         yj: {
  11310.             lj: 10,
  11311.             Ej: 2E3
  11312.         }
  11313.     });
  11314.     cb.Aa = p.Ha({
  11315.         Ca: !1,
  11316.         delay: !1
  11317.     });
  11318.     Ja.Aa = p.Ha({
  11319.         Ca: !1,
  11320.         delay: !1
  11321.     });
  11322.     Da.Aa = p.Ha({
  11323.         Ca: !1,
  11324.         delay: !1
  11325.     });
  11326.     Jb.Aa = p.Ha({
  11327.         Ca: !1,
  11328.         delay: !1
  11329.     });
  11330.     $a.Aa = p.Ha({});
  11331.     Za.Aa = p.Ha({
  11332.         Ca: !1,
  11333.         delay: !1,
  11334.         yj: {
  11335.             lj: 10,
  11336.             Ej: 900
  11337.         }
  11338.     });
  11339.     Aa.Aa = p.Ha({});
  11340.     La.Aa = p.Ha({
  11341.         Ca: !1,
  11342.         delay: !1
  11343.     });
  11344.     la.Aa = p.Ha({
  11345.         Ca: !1,
  11346.         delay: !1
  11347.     });
  11348.     Ib.Aa = p.Ha({
  11349.         Ca: !1,
  11350.         delay: !1
  11351.     });
  11352.     Kb.Aa = p.Ha({
  11353.         Ca: !1,
  11354.         delay: !1
  11355.     });
  11356.     Pa.Aa = p.Ha({
  11357.         Ca: !1,
  11358.         delay: !1
  11359.     });
  11360.     Wa.Aa = p.Ha({
  11361.         Ca: !1,
  11362.         delay: !1
  11363.     });
  11364.     Xa.Aa = p.Ha({
  11365.         Ca: !1,
  11366.         delay: !1
  11367.     });
  11368.     Ca.Aa = p.Ha({
  11369.         Ca: !1,
  11370.         delay: !1
  11371.     });
  11372.     I.Hn = .17435839227423353;
  11373.     I.Gn = 5.934119456780721;
  11374.     da.En = new fc([0, 0, 2, 1, 0, .35, 1, 0, 1, 0, .7, 1, 0, 0, 0, 1]);
  11375.     da.Fn = new fc([0, -1, 3, 0, 0, .35, 0, 0, 0, 0, .65, 0, 0, 1, 3, 1]);
  11376.     ib.O = "<div class='dialog change-location-view'><h1>Change Location</h1><div class='splitter'><div class='list' data-hook='list'></div><div class='buttons'><button data-hook='change'>Change</button><button data-hook='cancel'>Cancel</button></div></div></div>";
  11377.     bb.O = "<div class='chatbox-view'><div class='chatbox-view-contents'><div data-hook='drag' class='drag'></div><div data-hook='log' class='log subtle-thin-scrollbar'><div data-hook='log-contents' class='log-contents'><p>OP MODE</p></div></div><div class='autocompletebox' data-hook='autocompletebox'></div><div class='input'><input data-hook='input' type='text' /></div></div></div>";
  11378.     hb.O = "<div class='choose-nickname-view'><img src=\"images/haxball.png\" /><div class='dialog'><h1>Choose nickname</h1><div class='label-input'><label>Nick:</label><input data-hook='input' type='text' /></div><button data-hook='ok'>Ok</button></div></div>";
  11379.     lb.O = "<div class='connecting-view'><div class='dialog'><h1>Connecting</h1><div class='connecting-view-log' data-hook='log'></div><button data-hook='cancel'>Cancel</button></div></div>";
  11380.     jb.O = "<div class='create-room-view'><div class='dialog'><h1>Create room</h1><div class='label-input'><label>Room name:</label><input data-hook='name' required /></div><div class='label-input'><label>Password:</label><input data-hook='pass' /></div><div class='label-input'><label>Max players:</label><select data-hook='max-pl'></select></div><button data-hook='unlisted'></button><div class='row'><button data-hook='cancel'>Cancel</button><button data-hook='create'>Create</button></div></div></div>";
  11381.     Ra.O = "<div class='disconnected-view'><div class='dialog basic-dialog'><h1>Disconnected</h1><p data-hook='reason'></p><div class='buttons'><button data-hook='ok'>Ok</button><button data-hook='replay'>Save replay</button></div></div></div>";
  11382.     qb.O = "<div class='game-state-view'><div class='bar-container'><div class='bar'><div class='scoreboard'><div class='teamicon red'></div><div class='score' data-hook='red-score'>0</div><div>-</div><div class='score' data-hook='blue-score'>0</div><div class='teamicon blue'></div></div><div class=\"fps-limit-fix\"></div><div data-hook='timer'></div></div></div><div class='canvas' data-hook='canvas'></div></div>";
  11383.     ua.O = "<div class='game-view' tabindex='-1'><div class='gameplay-section' data-hook='gameplay'></div><div class='top-section' data-hook='top-section'></div><div class='bottom-section'><div data-hook='stats'></div><div data-hook='chatbox'></div><div class='bottom-spacer'></div></div><div class='buttons'><div class='sound-button-container' data-hook=\"sound\"><div class='sound-slider' data-hook='sound-slider'><div class='sound-slider-bar-bg' data-hook='sound-bar-bg'><div class='sound-slider-bar' data-hook='sound-bar'></div></div></div><button data-hook='sound-btn'><i class='icon-volume-up' data-hook='sound-icon'></i></button></div><button data-hook='menu'><i class='icon-menu'></i>Menu<span class='tooltip'>Toggle room menu [Escape]</span></button><button data-hook='settings'><i class='icon-cog'></i></button></div><div data-hook='popups'></div></div>";
  11384.     rb.O = "<div class='dialog kick-player-view'><h1 data-hook='title'></h1><div class=label-input><label>Reason: </label><input type='text' data-hook='reason' /></div><button data-hook='ban-btn'><i class='icon-block'></i>Ban from rejoining: <span data-hook='ban-text'></span></button><div class=\"row\"><button data-hook='close'>Cancel</button><button data-hook='kick'>Kick</button></div></div>";
  11385.     Ab.O = "<div class='dialog basic-dialog leave-room-view'><h1>Leave room?</h1><p>Are you sure you want to leave the room?</p><div class='buttons'><button data-hook='cancel'>Cancel</button><button data-hook='leave'><i class='icon-logout'></i>Leave</button></div></div>";
  11386.     mb.O = "<div class='dialog pick-stadium-view'><h1>Pick a stadium</h1><div class='splitter'><div class='list' data-hook='list'></div><div class='buttons'><button data-hook='pick'>Pick</button><button data-hook='delete'>Delete</button><div class='file-btn'><label for='stadfile'>Load</label><input id='stadfile' type='file' accept='.hbs' data-hook='file'/></div><button data-hook='export'>Export</button><div class='spacer'></div><button data-hook='cancel'>Cancel</button></div></div></div>";
  11387.     ub.O = "<div class='dialog' style='min-width:200px'><h1 data-hook='name'></h1><button data-hook='admin'></button><button data-hook='kick'>Kick</button><button data-hook='close'>Close</button></div>";
  11388.     wb.O = "<div class='player-list-item'><div data-hook='flag' class='flagico'></div><div data-hook='name'></div><div data-hook='ping'></div></div>";
  11389.     Na.O = "<div class='player-list-view'><div class='buttons'><button data-hook='join-btn'>Join</button><button data-hook='reset-btn' class='admin-only'></button></div><div class='list thin-scrollbar' data-hook='list'></div></div>";
  11390.     Fa.O = "<div class='replay-controls-view'><button data-hook='reset'><i class='icon-to-start'></i></button><button data-hook='play'><i data-hook='playicon'></i></button><div data-hook='spd'>1x</div><button data-hook='spddn'>-</button><button data-hook='spdup'>+</button><div data-hook='time'>00:00</div><div class='timebar' data-hook='timebar'><div class='barbg'><div class='bar' data-hook='progbar'></div></div><div class='timetooltip' data-hook='timetooltip'></div></div><button data-hook='leave'>Leave</button></div>";
  11391.     gb.O = "<div class='dialog basic-dialog room-link-view'><h1>Room link</h1><p>Use this url to link others directly into this room.</p><input data-hook='link' readonly></input><div class='buttons'><button data-hook='close'>Close</button><button data-hook='copy'>Copy to clipboard</button></div></div>";
  11392.     Eb.Dj = "<tr><td><span data-hook='tag'></span><span data-hook='name'></span></td><td data-hook='players'></td><td data-hook='pass'></td><td><div data-hook='flag' class='flagico'></div><span data-hook='distance'></span></td></tr>";
  11393.     Sa.Dj = "<div class='roomlist-view'><div class='notice' data-hook='notice' hidden><div data-hook='notice-contents'>Testing the notice.</div><div data-hook='notice-close'><i class='icon-cancel'></i></div></div><div class='dialog'><h1>Room list</h1><p>Tip: Join rooms near you to reduce lag.</p><div class='splitter'><div class='list'><table class='header'><colgroup><col><col><col><col></colgroup><thead><tr><td>Name</td><td>Players</td><td>Pass</td><td>Distance</td></tr></thead></table><div class='separator'></div><div class='content' data-hook='listscroll'><table><colgroup><col><col><col><col></colgroup><tbody data-hook='list'></tbody></table></div><div class='filters'><span class='bool' data-hook='fil-pass'>Show locked <i></i></span><span class='bool' data-hook='fil-full'>Show full <i></i></span><span class='bool' data-hook='fil-empty'>Show empty <i></i></span></div></div><div class='buttons'><button data-hook='refresh'><i class='icon-cw'></i><div>Refresh</div></button><button data-hook='join'><i class='icon-login'></i><div>Join Room</div></button><button data-hook='create'><i class='icon-plus'></i><div>Create Room</div></button><div class='spacer'></div><div class='file-btn'><label for='replayfile'><i class='icon-play'></i><div>Replays</div></label><input id='replayfile' type='file' accept='.hbr2' data-hook='replayfile'/></div><button data-hook='settings'><i class='icon-cog'></i><div>Settings</div></button><button data-hook='changenick'><i class='icon-cw'></i><div>Change Nick</div></button></div></div><p data-hook='count'></p></div></div>";
  11394.     kb.O = "<div class='room-password-view'><div class='dialog'><h1>Password required</h1><div class='label-input'><label>Password:</label><input data-hook='input' /></div><div class='buttons'><button data-hook='cancel'>Cancel</button><button data-hook='ok'>Ok</button></div></div></div>";
  11395.     Bb.O = "<div class='room-view'><div class='container'><h1 data-hook='room-name'></h1><div class='header-btns'><button data-hook='rec-btn'><i class='icon-circle'></i>Rec</button><button data-hook='link-btn'><i class='icon-link'></i>Link</button><button data-hook='leave-btn'><i class='icon-logout'></i>Leave</button></div><div class='teams'><div class='tools admin-only'><button data-hook='auto-btn'>Auto</button><button data-hook='rand-btn'>Rand</button><button data-hook='lock-btn'>Lock</button><button data-hook='reset-all-btn'>Reset</button></div><div data-hook='red-list'></div><div data-hook='spec-list'></div><div data-hook='blue-list'></div><div class='spacer admin-only'></div></div><div class='settings'><div><label class='lbl'>Time limit</label><select data-hook='time-limit-sel'></select></div><div><label class='lbl'>Score limit</label><select data-hook='score-limit-sel'></select></div><div><label class='lbl'>Stadium</label><label class='val' data-hook='stadium-name'>testing the stadium name</label><button class='admin-only' data-hook='stadium-pick'>Pick</button></div></div><div class='controls admin-only'><button data-hook='start-btn'><i class='icon-play'></i>Start game</button><button data-hook='stop-btn'><i class='icon-stop'></i>Stop game</button><button data-hook='pause-btn'><i class='icon-pause'></i>Pause</button></div></div></div>";
  11396.     ka.O = '<div class=\'dialog settings-view\'><h1>Settings</h1><button data-hook=\'close\'>Close</button><div class=\'tabs\'><button data-hook=\'soundbtn\'>Sound</button><button data-hook=\'videobtn\'>Video</button><button data-hook=\'inputbtn\'>Input</button><button data-hook=\'miscbtn\'>Misc</button></div><div data-hook=\'presskey\' tabindex=\'-1\'><div>Press a key</div></div><div class=\'tabcontents\'><div class=\'section\' data-hook=\'miscsec\'><div class=\'loc\' data-hook=\'loc\'></div><div class=\'loc\' data-hook=\'loc-ovr\'></div><button data-hook=\'loc-ovr-btn\'></button></div><div class=\'section\' data-hook=\'soundsec\'><div data-hook="tsound-main">Sounds enabled</div><div data-hook="tsound-chat">Chat sound enabled</div><div data-hook="tsound-highlight">Nick highlight sound enabled</div><div data-hook="tsound-crowd">Crowd sound enabled</div></div><div class=\'section\' data-hook=\'inputsec\'></div><div class=\'section\' data-hook=\'videosec\'><div>Viewport Mode:<select data-hook=\'viewmode\'><option>Dynamic</option><option>Restricted 840x410</option><option>Full 1x Zoom</option><option>Full 1.25x Zoom</option><option>Full 1.5x Zoom</option><option>Full 1.75x Zoom</option><option>Full 2x Zoom</option><option>Full 2.25x Zoom</option><option>Full 2.5x Zoom</option></select></div><div>FPS Limit:<select data-hook=\'fps\'><option>None (Recommended)</option><option>30</option></select></div><div>Resolution Scaling:<select data-hook=\'resscale\'><option>100%</option><option>75%</option><option>50%</option><option>25%</option></select></div><div data-hook="tvideo-lowlatency">Use low latency canvas</div><div data-hook="tvideo-teamcol">Custom team colors enabled</div><div data-hook="tvideo-showindicators">Show chat indicators</div><div data-hook="tvideo-showavatars">Show player avatars</div><div class="option-row"><div style="margin-right: 10px; flex: 1; max-width: 115px;">Chat opacity </div><div style="width: 40px" data-hook="chatopacity-value">1</div><input class="slider" type="range" min="0.5" max="1" step="0.01" data-hook="chatopacity-range"></div><div class="option-row"><div style="margin-right: 10px; flex: 1; max-width: 115px;">Chat focus height </div><div style="width: 40px" data-hook="chatfocusheight-value">200</div><input class="slider" type="range" min="0" max="400" step="10" data-hook="chatfocusheight-range"></div><div>Chat background width:<select data-hook=\'chatbgmode\'><option>Full</option><option>Compact</option></select></div></div></div></div>';
  11397.     ka.vm = 0;
  11398.     Z.O = "<div class='simple-dialog-view'><div class='dialog basic-dialog'><h1 data-hook='title'></h1><p data-hook='content'></p><div class='buttons' data-hook='buttons'></div></div></div>";
  11399.     zb.O = "<div class=\"stats-view-container\"><div class='stats-view'><p data-hook='ping'></p><p data-hook='fps'></p><div data-hook='graph'></div></div></div>";
  11400.     pb.O = '<div class=\'unsupported-browser-view\'><div class=\'dialog\'><h1>Unsupported Browser</h1><p>Sorry! Your browser doesn\'t yet implement some features which are required for HaxBall to work.</p><p>The missing features are: <span data-hook=\'features\'></span></p><h2>Recommended browsers:</h2><div><a href="https://www.mozilla.org/firefox/new/"><img src="images/firefox-icon.png"/>Firefox</a></div><div><a href="https://www.google.com/chrome/"><img src="images/chrome-icon.png"/>Chrome</a></div><div><a href="http://www.opera.com/"><img src="images/opera-icon.png"/>Opera</a></div></div></div>';
  11401.     B.Rp()
  11402. }
  11403. )("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this);
  11404.  
  11405. // okey
  11406.  
Advertisement
Comments
Add Comment
Please, Sign In to add comment