Difference between revisions of "MediaWiki:Common.js"

From Team Fortress Wiki
Jump to: navigation, search
m
m (Enable custom CSS for User:Payn)
 
(165 intermediate revisions by 9 users not shown)
Line 1: Line 1:
// Note: This is a compressed version of the JavaScript code, for faster loading.
+
// This is the non-compressed version of MediaWiki:Common.js
// See http://wiki.teamfortress.com/wiki/MediaWiki:Common.js/Code.js for full readable code and licensing
 
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(12(E,B){12 ka(a,b,d){if(d===B&&a.1h===1){d=a.2t("1k-"+b);if(1j d==="1H"){1P{d=d==="1c"?1c:d==="1e"?1e:d==="1b"?1b:!c.5y(d)?1X(d):cv.1g(d)?c.9O(d):d}1M(e){}c.1k(a,b,d)}1a d=B}14 d}12 U(){14 1e}12 ca(){14 1c}12 la(a,b,d){d[0].1l=a;14 c.1p.2E.22(b,d)}12 er(a){17 b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.1k(6,6.1h?"2O":"6o");if(1j h==="12")h=h.2O;if(!(a.6w===6||!h||!h.4i||a.3D&&a.1l==="4r")){if(a.3W)A=4L("(^|\\\\.)"+a.3W.2M(".").48("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)");a.6w=6;17 J=h.4i.2A(0);19(k=0;k<J.18;k++){h=J[k];h.8o.1u(X,"")===a.1l?f.1G(h.2b):J.3x(k--,1)}f=c(a.2D).5U(f,a.6m);o=0;19(x=f.18;o<x;o++){r=f[o];19(k=0;k<J.18;k++){h=J[k];if(r.2b===h.2b&&(!A||A.1g(h.3W))){l=r.1w;e=1b;if(h.81==="5R"||h.81==="61"){a.1l=h.81;e=c(a.6k).5U(h.2b)[0]}if(!e||e!==l)C.1G({1w:l,67:h,6T:r.6T})}}}o=0;19(x=C.18;o<x;o++){f=C[o];if(d&&f.6T>d)2c;a.6m=f.1w;a.1k=f.67.1k;a.67=f.67;A=f.67.dG.22(f.1w,1A);if(A===1e||a.7J()){d=f.6T;if(A===1e)b=1e;if(a.7o())2c}}14 b}}12 Y(a,b){14(a&&a!=="*"?a+".":"")+b.1u(eQ,"`").1u(eN,"&")}12 af(a,b,d){if(c.1I(b))14 c.5E(a,12(f,h){14!!b.1n(f,h,f)===d});1a if(b.1h)14 c.5E(a,12(f){14 f===b===d});1a if(1j b==="1H"){17 e=c.5E(a,12(f){14 f.1h===1});if(dj.1g(b))14 c.21(b,e,!d);1a b=c.21(b,e)}14 c.5E(a,12(f){14 c.3V(f,b)>=0===d})}12 aN(a,b){17 d=0;b.1m(12(){if(6.1o===(a[d]&&a[d].1o)){17 e=c.1k(a[d++]),f=c.1k(6,e);if(e=e&&e.2O){39 f.2E;f.2O={};19(17 h in e)19(17 l in e[h])c.1p.30(6,h,e[h][l],e[h][l].1k)}}})}12 e6(a,b){b.4s?c.5H({1B:b.4s,4Y:1e,3f:"2F"}):c.9P(b.1L||b.ff||b.2S||"");b.1q&&b.1q.3l(b)}12 aA(a,b,d){17 e=b==="1Q"?a.63:a.8M;if(d==="4V")14 e;c.1m(b==="1Q"?dJ:dD,12(){d||(e-=1X(c.1y(a,"5Q"+6))||0);if(d==="4D")e+=1X(c.1y(a,"4D"+6))||0;1a e-=1X(c.1y(a,"4V"+6+"dS"))||0});14 e}12 da(a,b,d,e){if(c.3g(b)&&b.18)c.1m(b,12(f,h){d||d3.1g(a)?e(a,h):da(a+"["+(1j h==="29"||c.3g(h)?f:"")+"]",h,d,e)});1a if(!d&&b!=1b&&1j b==="29")c.5L(b)?e(a,""):c.1m(b,12(f,h){da(a+"["+f+"]",h,d,e)});1a e(a,b)}12 S(a,b){17 d={};c.1m(a2.8K.22([],a2.2A(0,b)),12(){d[6]=a});14 d}12 aF(a){if(!ea[a]){17 b=c("<"+a+">").ef("1N"),d=b.1y("1D");b.2N();if(d==="2z"||d==="")d="4Q";ea[a]=d}14 ea[a]}12 fa(a){14 c.5n(a)?a:a.1h===9?a.6Y||a.fT:1e}17 t=E.1x,c=12(){12 a(){if(!b.6n){1P{t.28.dN("1J")}1M(j){34(a,1);14}b.3p()}}17 b=12(j,s){14 3j b.fn.3P(j,s)},d=E.3F,e=E.$,f,h=/^(?:[^<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]+)$)/,l=/\\S/,k=/^\\s+/,o=/\\s+$/,x=/\\W/,r=/\\d/,A=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,C=/^[\\],:{}\\s]*$/,J=/\\\\(?:["\\\\\\/fS]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\\\\n\\r]*"|1c|1e|1b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,I=/(?:^|:|,)(?:\\s*\\[)+/g,L=/(cq)[ \\/]([\\w.]+)/,g=/(fZ)(?:.*5I)?[ \\/]([\\w.]+)/,i=/(fR) ([\\w.]+)/,n=/(fQ)(?:.*? gr:([\\w.]+))?/,m=ge.g3,p=1e,q=[],u,y=6g.2w.3K,F=6g.2w.g6,M=3c.2w.1G,N=3c.2w.2A,O=b3.2w.5D,D=3c.2w.23,R={};b.fn=b.2w={3P:12(j,s){17 v,z,H;if(!j)14 6;if(j.1h){6.2g=6[0]=j;6.18=1;14 6}if(j==="1N"&&!s&&t.1N){6.2g=t;6[0]=t.1N;6.2b="1N";6.18=1;14 6}if(1j j==="1H")if((v=h.1V(j))&&(v[1]||!s))if(v[1]){H=s?s.2s||s:t;if(z=A.1V(j))if(b.8G(s)){j=[t.1W(z[1])];b.fn.1r.1n(j,s,1c)}1a j=[H.1W(z[1])];1a{z=b.93([v[1]],[H]);j=(z.9b?z.6F.5d(1c):z.6F).2G}14 b.4W(6,j)}1a{if((z=t.2I(v[2]))&&z.1q){if(z.id!==v[2])14 f.1R(j);6.18=1;6[0]=z}6.2g=t;6.2b=j;14 6}1a if(!s&&!x.1g(j)){6.2b=j;6.2g=t;j=t.1Z(j);14 b.4W(6,j)}1a 14!s||s.6J?(s||f).1R(j):b(s).1R(j);1a if(b.1I(j))14 f.3p(j);if(j.2b!==B){6.2b=j.2b;6.2g=j.2g}14 b.49(j,6)},2b:"",6J:"1.4.4",18:0,gd:12(){14 6.18},8v:12(){14 N.1n(6,0)},2Z:12(j){14 j==1b?6.8v():j<0?6.2A(j)[0]:6[j]},3v:12(j,s,v){17 z=b();b.3g(j)?M.22(z,j):b.4W(z,j);z.av=6;z.2g=6.2g;if(s==="1R")z.2b=6.2b+(6.2b?" ":"")+v;1a if(s)z.2b=6.2b+"."+s+"("+v+")";14 z},1m:12(j,s){14 b.1m(6,j,s)},3p:12(j){b.9t();if(b.6n)j.1n(t,b);1a q&&q.1G(j);14 6},eq:12(j){14 j===-1?6.2A(j):6.2A(j,+j+1)},69:12(){14 6.eq(0)},6s:12(){14 6.eq(-1)},2A:12(){14 6.3v(N.22(6,1A),"2A",N.1n(1A).48(","))},2T:12(j){14 6.3v(b.2T(6,12(s,v){14 j.1n(s,v,s)}))},3T:12(){14 6.av||b(1b)},1G:M,4K:[].4K,3x:[].3x};b.fn.3P.2w=b.fn;b.1E=b.fn.1E=12(){17 j,s,v,z,H,G=1A[0]||{},K=1,Q=1A.18,ga=1e;if(1j G==="7n"){ga=G;G=1A[1]||{};K=2}if(1j G!=="29"&&!b.1I(G))G={};if(Q===K){G=6;--K}19(;K<Q;K++)if((j=1A[K])!=1b)19(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.8G(z)||(H=b.3g(z)))){if(H){H=1e;v=v&&b.3g(v)?v:[]}1a v=v&&b.8G(v)?v:{};G[s]=b.1E(ga,v,z)}1a if(z!==B)G[s]=z}14 G};b.1E({gc:12(j){E.$=e;if(j)E.3F=d;14 b},6n:1e,8J:1,3p:12(j){j===1c&&b.8J--;if(!b.8J||j!==1c&&!b.6n){if(!t.1N)14 34(b.3p,1);b.6n=1c;if(!(j!==1c&&--b.8J>0))if(q){17 s=0,v=q;19(q=1b;j=v[s++];)j.1n(t,b);b.fn.2U&&b(t).2U("3p").5V("3p")}}},9t:12(){if(!p){p=1c;if(t.51==="3z")14 34(b.3p,1);if(t.3G){t.3G("bH",u,1e);E.3G("4G",b.3p,1e)}1a if(t.3S){t.3S("52",u);E.3S("ah",b.3p);17 j=1e;1P{j=E.dW==1b}1M(s){}t.28.dN&&j&&a()}}},1I:12(j){14 b.1l(j)==="12"},3g:3c.3g||12(j){14 b.1l(j)==="g4"},5n:12(j){14 j&&1j j==="29"&&"ck"in j},5y:12(j){14 j==1b||!r.1g(j)||5y(j)},1l:12(j){14 j==1b?b3(j):R[y.1n(j)]||"29"},8G:12(j){if(!j||b.1l(j)!=="29"||j.1h||b.5n(j))14 1e;if(j.7u&&!F.1n(j,"7u")&&!F.1n(j.7u.2w,"g2"))14 1e;19(17 s in j);14 s===B||F.1n(j,s)},5L:12(j){19(17 s in j)14 1e;14 1c},31:12(j){eV j},9O:12(j){if(1j j!=="1H"||!j)14 1b;j=b.5D(j);if(C.1g(j.1u(J,"@").1u(w,"]").1u(I,"")))14 E.8r&&E.8r.fp?E.8r.fp(j):(3j ac("14 "+j))();1a b.31("gp 8r: "+j)},6S:12(){},9P:12(j){if(j&&l.1g(j)){17 s=t.1Z("9Z")[0]||t.28,v=t.1W("2F");v.1l="1L/3Q";if(b.1t.bp)v.2q(t.4o(j));1a v.1L=j;s.3n(v,s.1v);s.3l(v)}},1o:12(j,s){14 j.1o&&j.1o.8q()===s.8q()},1m:12(j,s,v){17 z,H=0,G=j.18,K=G===B||b.1I(j);if(v)if(K)19(z in j){if(s.22(j[z],v)===1e)2c}1a 19(;H<G;){if(s.22(j[H++],v)===1e)2c}1a if(K)19(z in j){if(s.1n(j[z],z,j[z])===1e)2c}1a 19(v=j[0];H<G&&s.1n(v,H,v)!==1e;v=j[++H]);14 j},5D:O?12(j){14 j==1b?"":O.1n(j)}:12(j){14 j==1b?"":j.3K().1u(k,"").1u(o,"")},49:12(j,s){17 v=s||[];if(j!=1b){17 z=b.1l(j);j.18==1b||z==="1H"||z==="12"||z==="gh"||b.5n(j)?M.1n(v,j):b.4W(v,j)}14 v},3V:12(j,s){if(s.23)14 s.23(j);19(17 v=0,z=s.18;v<z;v++)if(s[v]===j)14 v;14-1},4W:12(j,s){17 v=j.18,z=0;if(1j s.18==="4C")19(17 H=s.18;z<H;z++)j[v++]=s[z];1a 19(;s[z]!==B;)j[v++]=s[z++];j.18=v;14 j},5E:12(j,s,v){17 z=[],H;v=!!v;19(17 G=0,K=j.18;G<K;G++){H=!!s(j[G],G);v!==H&&z.1G(j[G])}14 z},2T:12(j,s,v){19(17 z=[],H,G=0,K=j.18;G<K;G++){H=s(j[G],G,v);if(H!=1b)z[z.18]=H}14 z.8K.22([],z)},2k:1,5X:12(j,s,v){if(1A.18===2)if(1j s==="1H"){v=j;j=v[s];s=B}1a if(s&&!b.1I(s)){v=s;s=B}if(!s&&j)s=12(){14 j.22(v||6,1A)};if(j)s.2k=j.2k=j.2k||s.2k||b.2k++;14 s},8L:12(j,s,v,z,H,G){17 K=j.18;if(1j s==="29"){19(17 Q in s)b.8L(j,Q,s[Q],z,H,v);14 j}if(v!==B){z=!G&&z&&b.1I(v);19(Q=0;Q<K;Q++)H(j[Q],s,z?v.1n(j[Q],Q,H(j[Q],s)):v,G);14 j}14 K?H(j[0],s):B},2Q:12(){14(3j aR).c5()},c4:12(j){j=j.1O();j=L.1V(j)||g.1V(j)||i.1V(j)||j.23("fP")<0&&n.1V(j)||[];14{4I:j[1]||"",5I:j[2]||"0"}},4I:{}});b.1m("g1 gf b3 ac 3c aR 4L 6g".2M(" "),12(j,s){R["[29 "+s+"]"]=s.1O()});m=b.c4(m);if(m.4I){b.4I[m.4I]=1c;b.4I.5I=m.5I}if(b.4I.cq)b.4I.gl=1c;if(D)b.3V=12(j,s){14 D.1n(s,j)};if(!/\\s/.1g("\\g9")){k=/^[\\s\\cg]+/;o=/[\\s\\cg]+$/}f=b(t);if(t.3G)u=12(){t.6v("bH",u,1e);b.3p()};1a if(t.3S)u=12(){if(t.51==="3z"){t.7C("52",u);b.3p()}};14 E.3F=E.$=b}();(12(){c.1t={};17 a=t.28,b=t.1W("2F"),d=t.1W("1C"),e="2F"+c.2Q();d.1d.1D="2z";d.2S="  <38/><2B></2B><a 2P=\'/a\' 1d=\'2j:bh;7B:1J;2r:.55;\'>a</a><2H 1l=\'5p\'/>";17 f=d.1Z("*"),h=d.1Z("a")[0],l=t.1W("2Y"),k=l.2q(t.1W("5Y"));if(!(!f||!f.18||!h)){c.1t={9B:d.1v.1h===3,35:!d.1Z("35").18,bO:!!d.1Z("38").18,1d:/bh/.1g(h.2t("1d")),fM:h.2t("2P")==="/a",2r:/^0.55$/.1g(h.1d.2r),6y:!!h.1d.6y,f6:d.1Z("2H")[0].37==="3H",gg:k.2K,8S:1c,bk:1e,8O:1e,bp:1e,aS:1c,5w:1b,aH:1e,as:1e,6H:1c};l.4p=1c;c.1t.bk=!k.4p;b.1l="1L/3Q";1P{b.2q(t.4o("4S."+e+"=1;"))}1M(o){}a.3n(b,a.1v);if(E[e]){c.1t.bp=1c;39 E[e]}1P{39 b.1g}1M(x){c.1t.8S=1e}a.3l(b);if(d.3S&&d.di){d.3S("bc",12 r(){c.1t.aS=1e;d.7C("bc",r)});d.5d(1c).di("bc")}d=t.1W("1C");d.2S="<2H 1l=\'4w\' 3a=\'go\' 3X=\'3X\'/>";a=t.ey();a.2q(d.1v);c.1t.8O=a.5d(1c).5d(1c).9J.3X;c(12(){17 r=t.1W("1C");r.1d.1Q=r.1d.bG="5j";t.1N.2q(r);c.5w=c.1t.5w=r.63===2;if("79"in r.1d){r.1d.1D="5F";r.1d.79=1;c.1t.aH=r.63===2;r.1d.1D="";r.2S="<1C 1d=\'1Q:gq;\'></1C>";c.1t.as=r.63!==2}r.2S="<2B><4e><4f 1d=\'5Q:0;1D:2z\'></4f><4f>t</4f></4e></2B>";17 A=r.1Z("4f");c.1t.6H=A[0].8M===0;A[0].1d.1D="";A[1].1d.1D="2z";c.1t.6H=c.1t.6H&&A[0].8M===0;r.2S="";t.1N.3l(r).1d.1D="2z"});a=12(r){17 A=t.1W("1C");r="3H"+r;17 C=r in A;if(!C){A.2h(r,"14;");C=1j A[r]==="12"}14 C};c.1t.ew=a("4g");c.1t.eH=a("6f");a=b=d=f=h=1b}})();17 aX={},cv=/^(?:\\{.*\\}|\\[.*\\])$/;c.1E({3O:{},dr:0,3A:"3F"+c.2Q(),6D:{5M:1c,29:"gk:fX-fU-hz-hC-hw",hl:1c},1k:12(a,b,d){if(c.aY(a)){a=a==E?aX:a;17 e=a.1h,f=e?a[c.3A]:1b,h=c.3O;if(!(e&&!f&&1j b==="1H"&&d===B)){if(e)f||(a[c.3A]=f=++c.dr);1a h=a;if(1j b==="29")if(e)h[f]=c.1E(h[f],b);1a c.1E(h,b);1a if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;14 1j b==="1H"?a[b]:a}}},64:12(a,b){if(c.aY(a)){a=a==E?aX:a;17 d=a.1h,e=d?a[c.3A]:a,f=c.3O,h=d?f[e]:e;if(b){if(h){39 h[b];d&&c.5L(h)&&c.64(a)}}1a if(d&&c.1t.8S)39 a[c.3A];1a if(a.4U)a.4U(c.3A);1a if(d)39 f[e];1a 19(17 l in a)39 a[l]}},aY:12(a){if(a.1o){17 b=c.6D[a.1o.1O()];if(b)14!(b===1c||a.2t("hj")!==b)}14 1c}});c.fn.1E({1k:12(a,b){17 d=1b;if(1j a==="3w"){if(6.18){17 e=6[0].bf,f;d=c.1k(6[0]);19(17 h=0,l=e.18;h<l;h++){f=e[h].3a;if(f.23("1k-")===0){f=f.4d(5);ka(6[0],f,d[f])}}}14 d}1a if(1j a==="29")14 6.1m(12(){c.1k(6,a)});17 k=a.2M(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=6.8l("hn"+k[1]+"!",[k[0]]);if(d===B&&6.18){d=c.1k(6[0],a);d=ka(6[0],a,d)}14 d===B&&k[1]?6.1k(k[0]):d}1a 14 6.1m(12(){17 o=c(6),x=[k[0],b];o.8l("hs"+k[1]+"!",x);c.1k(6,a,b);o.8l("hq"+k[1]+"!",x)})},64:12(a){14 6.1m(12(){c.64(6,a)})}});c.1E({3E:12(a,b,d){if(a){b=(b||"fx")+"3E";17 e=c.1k(a,b);if(!d)14 e||[];if(!e||c.3g(d))e=c.1k(a,b,c.49(d));1a e.1G(d);14 e}},4A:12(a,b){b=b||"fx";17 d=c.3E(a,b),e=d.4n();if(e==="bg")e=d.4n();if(e){b==="fx"&&d.6W("bg");e.1n(a,12(){c.4A(a,b)})}}});c.fn.1E({3E:12(a,b){if(1j a!=="1H"){b=a;a="fx"}if(b===B)14 c.3E(6[0],a);14 6.1m(12(){17 d=c.3E(6,a,b);a==="fx"&&d[0]!=="bg"&&c.4A(6,a)})},4A:12(a){14 6.1m(12(){c.4A(6,a)})},hp:12(a,b){a=c.fx?c.fx.74[a]||a:a;b=b||"fx";14 6.3E(b,12(){17 d=6;34(12(){c.4A(d,b)},a)})},hH:12(a){14 6.3E(a||"fx",[])}});17 bD=/[\\n\\t]/g,ha=/\\s+/,fh=/\\r/g,f3=/^(?:2P|4s|1d)$/,eS=/^(?:3D|2H)$/i,fF=/^(?:3D|2H|29|2Y|6I)$/i,fH=/^a(?:hY)?$/i,bq=/^(?:4w|5p)$/i;c.6l={"19":"eT","2L":"1T",hX:"eM",hW:"gs",fG:"i2",i1:"hT",hM:"hL",hJ:"bm",hN:"hO",hS:"hR"};c.fn.1E({1r:12(a,b){14 c.8L(6,a,b,1c,c.1r)},hQ:12(a){14 6.1m(12(){c.1r(6,a,"");6.1h===1&&6.4U(a)})},6q:12(a){if(c.1I(a))14 6.1m(12(x){17 r=c(6);r.6q(a.1n(6,x,r.1r("2L")))});if(a&&1j a==="1H")19(17 b=(a||"").2M(ha),d=0,e=6.18;d<e;d++){17 f=6[d];if(f.1h===1)if(f.1T){19(17 h=" "+f.1T+" ",l=f.1T,k=0,o=b.18;k<o;k++)if(h.23(" "+b[k]+" ")<0)l+=" "+b[k];f.1T=c.5D(l)}1a f.1T=a}14 6},5C:12(a){if(c.1I(a))14 6.1m(12(o){17 x=c(6);x.5C(a.1n(6,o,x.1r("2L")))});if(a&&1j a==="1H"||a===B)19(17 b=(a||"").2M(ha),d=0,e=6.18;d<e;d++){17 f=6[d];if(f.1h===1&&f.1T)if(a){19(17 h=(" "+f.1T+" ").1u(bD," "),l=0,k=b.18;l<k;l++)h=h.1u(" "+b[l]+" "," ");f.1T=c.5D(h)}1a f.1T=""}14 6},cn:12(a,b){17 d=1j a,e=1j b==="7n";if(c.1I(a))14 6.1m(12(f){17 h=c(6);h.cn(a.1n(6,f,h.1r("2L"),b),b)});14 6.1m(12(){if(d==="1H")19(17 f,h=0,l=c(6),k=b,o=a.2M(ha);f=o[h++];){k=e?k:!l.2a(f);l[k?"6q":"5C"](f)}1a if(d==="3w"||d==="7n"){6.1T&&c.1k(6,"bI",6.1T);6.1T=6.1T||a===1e?"":c.1k(6,"bI")||""}})},2a:12(a){a=" "+a+" ";19(17 b=0,d=6.18;b<d;b++)if((" "+6[b].1T+" ").1u(bD," ").23(a)>-1)14 1c;14 1e},5a:12(a){if(!1A.18){17 b=6[0];if(b){if(c.1o(b,"5Y")){17 d=b.bf.37;14!d||d.fq?b.37:b.1L}if(c.1o(b,"2Y")){17 e=b.7z;d=[];17 f=b.26;b=b.1l==="2Y-6r";if(e<0)14 1b;17 h=b?e:0;19(e=b?e+1:f.18;h<e;h++){17 l=f[h];if(l.2K&&(c.1t.bk?!l.4p:l.2t("4p")===1b)&&(!l.1q.4p||!c.1o(l.1q,"bX"))){a=c(l).5a();if(b)14 a;d.1G(a)}}14 d}if(bq.1g(b.1l)&&!c.1t.f6)14 b.2t("37")===1b?"3H":b.37;14(b.37||"").1u(fh,"")}14 B}17 k=c.1I(a);14 6.1m(12(o){17 x=c(6),r=a;if(6.1h===1){if(k)r=a.1n(6,o,x.5a());if(r==1b)r="";1a if(1j r==="4C")r+="";1a if(c.3g(r))r=c.2T(r,12(C){14 C==1b?"":C+""});if(c.3g(r)&&bq.1g(6.1l))6.3X=c.3V(x.5a(),r)>=0;1a if(c.1o(6,"2Y")){17 A=c.49(r);c("5Y",6).1m(12(){6.2K=c.3V(c(6).5a(),A)>=0});if(!A.18)6.7z=-1}1a 6.37=r}})}});c.1E({7T:{5a:1c,1y:1c,2m:1c,1L:1c,1k:1c,1Q:1c,2i:1c,2p:1c},1r:12(a,b,d,e){if(!a||a.1h===3||a.1h===8)14 B;if(e&&b in c.7T)14 c(a)[b](d);e=a.1h!==1||!c.aQ(a);17 f=d!==B;b=e&&c.6l[b]||b;17 h=f3.1g(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="1l"&&eS.1g(a.1o)&&a.1q&&c.31("1l gH gK\'t be gL");if(d===1b)a.1h===1&&a.4U(b);1a a[b]=d}if(c.1o(a,"6O")&&a.5k(b))14 a.5k(b).7Q;if(b==="bm")14(b=a.5k("bm"))&&b.fq?b.37:fF.1g(a.1o)||fH.1g(a.1o)&&a.2P?0:B;14 a[b]}if(!c.1t.1d&&e&&b==="1d"){if(f)a.1d.fJ=""+d;14 a.1d.fJ}f&&a.2h(b,""+d);if(!a.bf[b]&&a.fC&&!a.fC(b))14 B;a=!c.1t.fM&&e&&h?a.2t(b,2):a.2t(b);14 a===1b?B:a}});17 X=/\\.(.*)$/,ia=/^(?:6I|2H|2Y)$/i,eQ=/\\./g,eN=/ /g,dZ=/[^\\w\\s.|`]/g,e3=12(a){14 a.1u(dZ,"\\\\$&")},9E={83:0,5T:0};c.1p={30:12(a,b,d,e){if(!(a.1h===3||a.1h===8)){if(c.5n(a)&&a!==E&&!a.dW)a=E;if(d===1e)d=U;1a if(!d)14;17 f,h;if(d.3d){f=d;d=f.3d}if(!d.2k)d.2k=c.2k++;if(h=c.1k(a)){17 l=a.1h?"2O":"6o",k=h[l],o=h.2E;if(1j k==="12"){o=k.2E;k=k.2O}1a if(!k){a.1h||(h[l]=h=12(){});h.2O=k={}}if(!o)h.2E=o=12(){14 1j c!=="3w"&&!c.1p.bn?c.1p.2E.22(o.1w,1A):B};o.1w=a;b=b.2M(" ");19(17 x=0,r;l=b[x++];){h=f?c.1E({},f):{3d:d,1k:e};if(l.23(".")>-1){r=l.2M(".");l=r.4n();h.3W=r.2A(0).4K().48(".")}1a{r=[];h.3W=""}h.1l=l;if(!h.2k)h.2k=d.2k;17 A=k[l],C=c.1p.44[l]||{};if(!A){A=k[l]=[];if(!C.4O||C.4O.1n(a,e,r,o)===1e)if(a.3G)a.3G(l,o,1e);1a a.3S&&a.3S("3H"+l,o)}if(C.30){C.30.1n(a,h);if(!h.3d.2k)h.3d.2k=d.2k}A.1G(h);c.1p.3M[l]=1c}a=1b}}},3M:{},2N:12(a,b,d,e){if(!(a.1h===3||a.1h===8)){if(d===1e)d=U;17 f,h,l=0,k,o,x,r,A,C,J=a.1h?"2O":"6o",w=c.1k(a),I=w&&w[J];if(w&&I){if(1j I==="12"){w=I;I=I.2O}if(b&&b.1l){d=b.3d;b=b.1l}if(!b||1j b==="1H"&&b.gw(0)==="."){b=b||"";19(f in I)c.1p.2N(a,f+b)}1a{19(b=b.2M(" ");f=b[l++];){r=f;k=f.23(".")<0;o=[];if(!k){o=f.2M(".");f=o.4n();x=4L("(^|\\\\.)"+c.2T(o.2A(0).4K(),e3).48("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}if(A=I[f])if(d){r=c.1p.44[f]||{};19(h=e||0;h<A.18;h++){C=A[h];if(d.2k===C.2k){if(k||x.1g(C.3W)){e==1b&&A.3x(h--,1);r.2N&&r.2N.1n(a,C)}if(e!=1b)2c}}if(A.18===0||e!=1b&&A.18===1){if(!r.4J||r.4J.1n(a,o)===1e)c.8Y(a,f,w.2E);39 I[f]}}1a 19(h=0;h<A.18;h++){C=A[h];if(k||x.1g(C.3W)){c.1p.2N(a,r,C.3d,h);A.3x(h--,1)}}}if(c.5L(I)){if(b=w.2E)b.1w=1b;39 w.2O;39 w.2E;if(1j w==="12")c.64(a,J);1a c.5L(w)&&c.64(a)}}}}},2U:12(a,b,d,e){17 f=a.1l||a;if(!e){a=1j a==="29"?a[c.3A]?a:c.1E(c.5o(f),a):c.5o(f);if(f.23("!")>=0){a.1l=f=f.2A(0,-1);a.dI=1c}if(!d){a.5e();c.1p.3M[f]&&c.1m(c.3O,12(){6.2O&&6.2O[f]&&c.1p.2U(a,b,6.2E.1w)})}if(!d||d.1h===3||d.1h===8)14 B;a.1U=B;a.2D=d;b=c.49(b);b.6W(a)}a.6m=d;(e=d.1h?c.1k(d,"2E"):(c.1k(d,"6o")||{}).2E)&&e.22(d,b);e=d.1q||d.2s;1P{if(!(d&&d.1o&&c.6D[d.1o.1O()]))if(d["3H"+f]&&d["3H"+f].22(d,b)===1e){a.1U=1e;a.45()}}1M(h){}if(!a.7J()&&e)c.1p.2U(a,b,e,1c);1a if(!a.9h()){17 l;e=a.2D;17 k=f.1u(X,""),o=c.1o(e,"a")&&k==="4r",x=c.1p.44[k]||{};if((!x.3R||x.3R.1n(d,a)===1e)&&!o&&!(e&&e.1o&&c.6D[e.1o.1O()])){1P{if(e[k]){if(l=e["3H"+k])e["3H"+k]=1b;c.1p.bn=1c;e[k]()}}1M(r){}if(l)e["3H"+k]=l;c.1p.bn=1e}}},2E:12(a){17 b,d,e,f;d=[];17 h=c.49(1A);a=h[0]=c.1p.9L(a||E.1p);a.6m=6;b=a.1l.23(".")<0&&!a.dI;if(!b){e=a.1l.2M(".");a.1l=e.4n();d=e.2A(0).4K();e=4L("(^|\\\\.)"+d.48("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}a.3W=a.3W||d.48(".");f=c.1k(6,6.1h?"2O":"6o");if(1j f==="12")f=f.2O;d=(f||{})[a.1l];if(f&&d){d=d.2A(0);f=0;19(17 l=d.18;f<l;f++){17 k=d[f];if(b||e.1g(k.3W)){a.3d=k.3d;a.1k=k.1k;a.67=k;k=k.3d.22(6,h);if(k!==B){a.1U=k;if(k===1e){a.45();a.5e()}}if(a.7o())2c}}}14 a.1U},6l:"gy gz gD gA 3D gQ 7q bC bN 9p 6m 1k h7 h6 7G 3d 4M h5 h8 9q h9 hg hf 7d 8d he h3 6k h2 gV gS ep 2D em h1 h0 6j".2M(" "),9L:12(a){if(a[c.3A])14 a;17 b=a;a=c.5o(b);19(17 d=6.6l.18,e;d;){e=6.6l[--d];a[e]=b[e]}if(!a.2D)a.2D=a.ep||t;if(a.2D.1h===3)a.2D=a.2D.1q;if(!a.6k&&a.7G)a.6k=a.7G===a.2D?a.em:a.7G;if(a.7d==1b&&a.bC!=1b){b=t.28;d=t.1N;a.7d=a.bC+(b&&b.4H||d&&d.4H||0)-(b&&b.7W||d&&d.7W||0);a.8d=a.bN+(b&&b.4t||d&&d.4t||0)-(b&&b.87||d&&d.87||0)}if(a.6j==1b&&(a.7q!=1b||a.4M!=1b))a.6j=a.7q!=1b?a.7q:a.4M;if(!a.9q&&a.9p)a.9q=a.9p;if(!a.6j&&a.3D!==B)a.6j=a.3D&1?1:a.3D&2?3:a.3D&4?2:0;14 a},2k:gY,5X:c.5X,44:{3p:{4O:c.9t,4J:c.6S},4i:{30:12(a){c.1p.30(6,Y(a.8o,a.2b),c.1E({},a,{3d:er,2k:a.3d.2k}))},2N:12(a){c.1p.2N(6,Y(a.8o,a.2b),a)}},gZ:{4O:12(a,b,d){if(c.5n(6))6.9o=d},4J:12(a,b){if(6.9o===b)6.9o=1b}}}};c.8Y=t.6v?12(a,b,d){a.6v&&a.6v(b,d,1e)}:12(a,b,d){a.7C&&a.7C("3H"+b,d)};c.5o=12(a){if(!6.45)14 3j c.5o(a);if(a&&a.1l){6.9i=a;6.1l=a.1l}1a 6.1l=a;6.gX=c.2Q();6[c.3A]=1c};c.5o.2w={45:12(){6.9h=ca;17 a=6.9i;if(a)if(a.45)a.45();1a a.gW=1e},5e:12(){6.7J=ca;17 a=6.9i;if(a){a.5e&&a.5e();a.gT=1c}},gU:12(){6.7o=ca;6.5e()},9h:U,7J:U,7o:U};17 9m=12(a){17 b=a.6k;1P{19(;b&&b!==6;)b=b.1q;if(b!==6){a.1l=a.1k;c.1p.2E.22(6,1A)}}1M(d){}},9k=12(a){a.1l=a.1k;c.1p.2E.22(6,1A)};c.1m({5R:"8U",61:"97"},12(a,b){c.1p.44[a]={4O:12(d){c.1p.30(6,b,d&&d.2b?9k:9m,a)},4J:12(d){c.1p.2N(6,b,d&&d.2b?9k:9m)}}});if(!c.1t.ew)c.1p.44.4g={4O:12(){if(6.1o.1O()!=="6O"){c.1p.30(6,"4r.9v",12(a){17 b=a.2D,d=b.1l;if((d==="4g"||d==="3e")&&c(b).5U("6O").18){a.6w=B;14 la("4g",6,1A)}});c.1p.30(6,"fz.9v",12(a){17 b=a.2D,d=b.1l;if((d==="1L"||d==="6K")&&c(b).5U("6O").18&&a.4M===13){a.6w=B;14 la("4g",6,1A)}})}1a 14 1e},4J:12(){c.1p.2N(6,".9v")}};if(!c.1t.eH){17 V,9G=12(a){17 b=a.1l,d=a.37;if(b==="4w"||b==="5p")d=a.3X;1a if(b==="2Y-8A")d=a.7z>-1?c.2T(a.26,12(e){14 e.2K}).48("-"):"";1a if(a.1o.1O()==="2Y")d=a.7z;14 d},Z=12(a,b){17 d=a.2D,e,f;if(!(!ia.1g(d.1o)||d.eM)){e=c.1k(d,"9H");f=9G(d);if(a.1l!=="5T"||d.1l!=="4w")c.1k(d,"9H",f);if(!(e===B||f===e))if(e!=1b||f){a.1l="6f";a.6w=B;14 c.1p.2U(a,b,d)}}};c.1p.44.6f={3L:{5T:Z,h4:Z,4r:12(a){17 b=a.2D,d=b.1l;if(d==="4w"||d==="5p"||b.1o.1O()==="2Y")14 Z.1n(6,a)},bo:12(a){17 b=a.2D,d=b.1l;if(a.4M===13&&b.1o.1O()!=="6I"||a.4M===32&&(d==="5p"||d==="4w")||d==="2Y-8A")14 Z.1n(6,a)},eB:12(a){a=a.2D;c.1k(a,"9H",9G(a))}},4O:12(){if(6.1l==="6C")14 1e;19(17 a in V)c.1p.30(6,a+".ex",V[a]);14 ia.1g(6.1o)},4J:12(){c.1p.2N(6,".ex");14 ia.1g(6.1o)}};V=c.1p.44.6f.3L;V.6e=V.eB}t.3G&&c.1m({6e:"83",5A:"5T"},12(a,b){12 d(e){e=c.1p.9L(e);e.1l=b;14 c.1p.2U(e,1b,e.2D)}c.1p.44[b]={4O:12(){9E[b]++===0&&t.3G(a,d,1c)},4J:12(){--9E[b]===0&&t.6v(a,d,1c)}}});c.1m(["8z","6r"],12(a,b){c.fn[b]=12(d,e,f){if(1j d==="29"){19(17 h in d)6[b](h,e,d[h],f);14 6}if(c.1I(e)||e===1e){f=e;e=B}17 l=b==="6r"?c.5X(f,12(o){c(6).5V(o,l);14 f.22(6,1A)}):f;if(d==="8Z"&&b!=="6r")6.6r(d,e,f);1a{h=0;19(17 k=6.18;h<k;h++)c.1p.30(6[h],d,l,e)}14 6}});c.fn.1E({5V:12(a,b){if(1j a==="29"&&!a.45)19(17 d in a)6.5V(d,a[d]);1a{d=0;19(17 e=6.18;d<e;d++)c.1p.2N(6[d],a,b)}14 6},gB:12(a,b,d,e){14 6.4i(b,d,e,a)},gC:12(a,b,d){14 1A.18===0?6.5V("4i"):6.dK(b,1b,d,a)},2U:12(a,b){14 6.1m(12(){c.1p.2U(a,b,6)})},8l:12(a,b){if(6[0]){17 d=c.5o(a);d.45();d.5e();c.1p.2U(d,b,6[0]);14 d.1U}},4q:12(a){19(17 b=1A,d=1;d<b.18;)c.5X(a,b[d++]);14 6.4r(c.5X(a,12(e){17 f=(c.1k(6,"dP"+a.2k)||0)%d;c.1k(6,"dP"+a.2k,f+1);e.45();14 b[f].22(6,1A)||1e}))},dE:12(a,b){14 6.5R(a).61(b||a)}});17 9C={6e:"83",5A:"5T",5R:"8U",61:"97"};c.1m(["4i","dK"],12(a,b){c.fn[b]=12(d,e,f,h){17 l,k=0,o,x,r=h||6.2b;h=h?6:c(6.2g);if(1j d==="29"&&!d.45){19(l in d)h[b](l,e,d[l],r);14 6}if(c.1I(e)){f=e;e=B}19(d=(d||"").2M(" ");(l=d[k++])!=1b;){o=X.1V(l);x="";if(o){x=o[0];l=l.1u(X,"")}if(l==="dE")d.1G("5R"+x,"61"+x);1a{o=l;if(l==="6e"||l==="5A"){d.1G(9C[l]+x);l+=x}1a l=(9C[l]||l)+x;if(b==="4i"){x=0;19(17 A=h.18;x<A;x++)c.1p.30(h[x],"4i."+Y(l,r),{1k:e,2b:r,3d:f,8o:l,dG:f,81:o})}1a h.5V("4i."+Y(l,r),f)}}14 6}});c.1m("5A 6e 83 5T 4G 7L 82 8Z 4r gx gE gF gM 8U 97 5R 61 6f 2Y 4g bo fz gP 31".2M(" "),12(a,b){c.fn[b]=12(d,e){if(e==1b){e=d;d=1b}14 1A.18>0?6.8z(b,d,e):6.2U(b)};if(c.7T)c.7T[b]=1c});E.3S&&!E.3G&&c(E).8z("8Z",12(){19(17 a in c.3O)if(c.3O[a].2E)1P{c.1p.2N(c.3O[a].2E.1w)}1M(b){}});(12(){12 a(g,i,n,m,p,q){p=0;19(17 u=m.18;p<u;p++){17 y=m[p];if(y){17 F=1e;19(y=y[g];y;){if(y.62===n){F=m[y.7U];2c}if(y.1h===1&&!q){y.62=n;y.7U=p}if(y.1o.1O()===i){F=y;2c}y=y[g]}m[p]=F}}}12 b(g,i,n,m,p,q){p=0;19(17 u=m.18;p<u;p++){17 y=m[p];if(y){17 F=1e;19(y=y[g];y;){if(y.62===n){F=m[y.7U];2c}if(y.1h===1){if(!q){y.62=n;y.7U=p}if(1j i!=="1H"){if(y===i){F=1c;2c}}1a if(k.21(i,[y]).18>0){F=y;2c}}y=y[g]}m[p]=F}}}17 d=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|[\'"][^\'"]*[\'"]|[^\\[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,e=0,f=6g.2w.3K,h=1e,l=1c;[0,0].4K(12(){l=1e;14 0});17 k=12(g,i,n,m){n=n||[];17 p=i=i||t;if(i.1h!==1&&i.1h!==9)14[];if(!g||1j g!=="1H")14 n;17 q,u,y,F,M,N=1c,O=k.5P(i),D=[],R=g;do{d.1V("");if(q=d.1V(R)){R=q[3];D.1G(q[1]);if(q[2]){F=q[3];2c}}}ei(q);if(D.18>1&&x.1V(g))if(D.18===2&&o.4b[D[0]])u=L(D[0]+D[1],i);1a 19(u=o.4b[D[0]]?[i]:k(D.4n(),i);D.18;){g=D.4n();if(o.4b[g])g+=D.4n();u=L(g,u)}1a{if(!m&&D.18>1&&i.1h===9&&!O&&o.2e.4l.1g(D[0])&&!o.2e.4l.1g(D[D.18-1])){q=k.1R(D.4n(),i,O);i=q.2x?k.21(q.2x,q.46)[0]:q.46[0]}if(i){q=m?{2x:D.7V(),46:C(m)}:k.1R(D.7V(),D.18===1&&(D[0]==="~"||D[0]==="+")&&i.1q?i.1q:i,O);u=q.2x?k.21(q.2x,q.46):q.46;if(D.18>0)y=C(u);1a N=1e;19(;D.18;){q=M=D.7V();if(o.4b[M])q=D.7V();1a M="";if(q==1b)q=i;o.4b[M](y,q,O)}}1a y=[]}y||(y=u);y||k.31(M||g);if(f.1n(y)==="[29 3c]")if(N)if(i&&i.1h===1)19(g=0;y[g]!=1b;g++){if(y[g]&&(y[g]===1c||y[g].1h===1&&k.3N(i,y[g])))n.1G(u[g])}1a 19(g=0;y[g]!=1b;g++)y[g]&&y[g].1h===1&&n.1G(u[g]);1a n.1G.22(n,y);1a C(y,n);if(F){k(F,p,n,m);k.9U(n)}14 n};k.9U=12(g){if(w){h=l;g.4K(w);if(h)19(17 i=1;i<g.18;i++)g[i]===g[i-1]&&g.3x(i--,1)}14 g};k.cM=12(g,i){14 k(g,1b,1b,i)};k.77=12(g,i){14 k(i,1b,1b,[g]).18>0};k.1R=12(g,i,n){17 m;if(!g)14[];19(17 p=0,q=o.7r.18;p<q;p++){17 u,y=o.7r[p];if(u=o.8b[y].1V(g)){17 F=u[1];u.3x(1,1);if(F.4d(F.18-1)!=="\\\\"){u[1]=(u[1]||"").1u(/\\\\/g,"");m=o.1R[y](u,i,n);if(m!=1b){g=g.1u(o.2e[y],"");2c}}}}m||(m=i.1Z("*"));14{46:m,2x:g}};k.21=12(g,i,n,m){19(17 p,q,u=g,y=[],F=i,M=i&&i[0]&&k.5P(i[0]);g&&i.18;){19(17 N in o.21)if((p=o.8b[N].1V(g))!=1b&&p[2]){17 O,D,R=o.21[N];D=p[1];q=1e;p.3x(1,1);if(D.4d(D.18-1)!=="\\\\"){if(F===y)y=[];if(o.ay[N])if(p=o.ay[N](p,F,n,y,m,M)){if(p===1c)by}1a q=O=1c;if(p)19(17 j=0;(D=F[j])!=1b;j++)if(D){O=R(D,p,j,F);17 s=m^!!O;if(n&&O!=1b)if(s)q=1c;1a F[j]=1e;1a if(s){y.1G(D);q=1c}}if(O!==B){n||(F=y);g=g.1u(o.2e[N],"");if(!q)14[];2c}}}if(g===u)if(q==1b)k.31(g);1a 2c;u=g}14 F};k.31=12(g){eV"fe 31, f5 bW: "+g};17 o=k.dh={7r:["4l","9y","6b"],2e:{4l:/#((?:[\\w\\6c-\\68\\-]|\\\\.)+)/,6z:/\\.((?:[\\w\\6c-\\68\\-]|\\\\.)+)/,9y:/\\[3a=[\'"]*((?:[\\w\\6c-\\68\\-]|\\\\.)+)[\'"]*\\]/,aO:/\\[\\s*((?:[\\w\\6c-\\68\\-]|\\\\.)+)\\s*(?:(\\S?=)\\s*([\'"]*)(.*?)\\3|)\\s*\\]/,6b:/^((?:[\\w\\6c-\\68\\*\\-]|\\\\.)+)/,8g:/:(bM|4y|6s|69)-gG(?:\\((8n|8m|[\\dn+\\-]*)\\))?/,5h:/:(4y|eq|gt|lt|69|6s|8n|8m)(?:\\((\\d*)\\))?(?=[^\\-]|$)/,5O:/:((?:[\\w\\6c-\\68\\-]|\\\\.)+)(?:\\(([\'"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},8b:{},ax:{"2L":"1T","19":"eT"},7v:{2P:12(g){14 g.2t("2P")}},4b:{"+":12(g,i){17 n=1j i==="1H",m=n&&!/\\W/.1g(i);n=n&&!m;if(m)i=i.1O();m=0;19(17 p=g.18,q;m<p;m++)if(q=g[m]){19(;(q=q.5Z)&&q.1h!==1;);g[m]=n||q&&q.1o.1O()===i?q||1e:q===i}n&&k.21(i,g,1c)},">":12(g,i){17 n,m=1j i==="1H",p=0,q=g.18;if(m&&!/\\W/.1g(i))19(i=i.1O();p<q;p++){if(n=g[p]){n=n.1q;g[p]=n.1o.1O()===i?n:1e}}1a{19(;p<q;p++)if(n=g[p])g[p]=m?n.1q:n.1q===i;m&&k.21(i,g,1c)}},"":12(g,i,n){17 m,p=e++,q=b;if(1j i==="1H"&&!/\\W/.1g(i)){m=i=i.1O();q=a}q("1q",i,p,g,m,n)},"~":12(g,i,n){17 m,p=e++,q=b;if(1j i==="1H"&&!/\\W/.1g(i)){m=i=i.1O();q=a}q("5Z",i,p,g,m,n)}},1R:{4l:12(g,i,n){if(1j i.2I!=="3w"&&!n)14(g=i.2I(g[1]))&&g.1q?[g]:[]},9y:12(g,i){if(1j i.f4!=="3w"){19(17 n=[],m=i.f4(g[1]),p=0,q=m.18;p<q;p++)m[p].2t("3a")===g[1]&&n.1G(m[p]);14 n.18===0?1b:n}},6b:12(g,i){14 i.1Z(g[1])}},ay:{6z:12(g,i,n,m,p,q){g=" "+g[1].1u(/\\\\/g,"")+" ";if(q)14 g;q=0;19(17 u;(u=i[q])!=1b;q++)if(u)if(p^(u.1T&&(" "+u.1T+" ").1u(/[\\t\\n]/g," ").23(g)>=0))n||m.1G(u);1a if(n)i[q]=1e;14 1e},4l:12(g){14 g[1].1u(/\\\\/g,"")},6b:12(g){14 g[1].1O()},8g:12(g){if(g[1]==="4y"){17 i=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.1V(g[2]==="8n"&&"2n"||g[2]==="8m"&&"2n+1"||!/\\D/.1g(g[2])&&"gI+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;14 g},aO:12(g,i,n,m,p,q){i=g[1].1u(/\\\\/g,"");if(!q&&o.ax[i])g[1]=o.ax[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";14 g},5O:12(g,i,n,m,p){if(g[1]==="76")if((d.1V(g[3])||"").18>1||/^\\w/.1g(g[3]))g[3]=k(g[3],1b,1b,i);1a{g=k.21(g[3],i,n,1c^p);n||m.1G.22(m,g);14 1e}1a if(o.2e.5h.1g(g[0])||o.2e.8g.1g(g[0]))14 1c;14 g},5h:12(g){g.6W(1c);14 g}},3L:{gJ:12(g){14 g.4p===1e&&g.1l!=="3y"},4p:12(g){14 g.4p===1c},3X:12(g){14 g.3X===1c},2K:12(g){14 g.2K===1c},6A:12(g){14!!g.1v},6P:12(g){14!g.1v},7N:12(g,i,n){14!!k(n[3],g).18},hh:12(g){14/h\\d/i.1g(g.1o)},1L:12(g){14"1L"===g.1l},4w:12(g){14"4w"===g.1l},5p:12(g){14"5p"===g.1l},6C:12(g){14"6C"===g.1l},6K:12(g){14"6K"===g.1l},4g:12(g){14"4g"===g.1l},3e:12(g){14"3e"===g.1l},fm:12(g){14"fm"===g.1l},3D:12(g){14"3D"===g.1l||g.1o.1O()==="3D"},2H:12(g){14/2H|2Y|6I|3D/i.1g(g.1o)}},c7:{69:12(g,i){14 i===0},6s:12(g,i,n,m){14 i===m.18-1},8n:12(g,i){14 i%2===0},8m:12(g,i){14 i%2===1},lt:12(g,i,n){14 i<n[3]-0},gt:12(g,i,n){14 i>n[3]-0},4y:12(g,i,n){14 n[3]-0===i},eq:12(g,i,n){14 n[3]-0===i}},21:{5O:12(g,i,n,m){17 p=i[1],q=o.3L[p];if(q)14 q(g,n,i,m);1a if(p==="3N")14(g.ff||g.hi||k.7I([g])||"").23(i[3])>=0;1a if(p==="76"){i=i[3];n=0;19(m=i.18;n<m;n++)if(i[n]===g)14 1e;14 1c}1a k.31("fe 31, f5 bW: "+p)},8g:12(g,i){17 n=i[1],m=g;hP(n){89"bM":89"69":19(;m=m.5Z;)if(m.1h===1)14 1e;if(n==="69")14 1c;m=g;89"6s":19(;m=m.2W;)if(m.1h===1)14 1e;14 1c;89"4y":n=i[2];17 p=i[3];if(n===1&&p===0)14 1c;17 q=i[0],u=g.1q;if(u&&(u.62!==q||!g.aE)){17 y=0;19(m=u.1v;m;m=m.2W)if(m.1h===1)m.aE=++y;u.62=q}m=g.aE-p;14 n===0?m===0:m%n===0&&m/n>=0}},4l:12(g,i){14 g.1h===1&&g.2t("id")===i},6b:12(g,i){14 i==="*"&&g.1h===1||g.1o.1O()===i},6z:12(g,i){14(" "+(g.1T||g.2t("2L"))+" ").23(i)>-1},aO:12(g,i){17 n=i[1];n=o.7v[n]?o.7v[n](g):g[n]!=1b?g[n]:g.2t(n);17 m=n+"",p=i[2],q=i[4];14 n==1b?p==="!=":p==="="?m===q:p==="*="?m.23(q)>=0:p==="~="?(" "+m+" ").23(q)>=0:!q?m&&n!==1e:p==="!="?m!==q:p==="^="?m.23(q)===0:p==="$="?m.4d(m.18-q.18)===q:p==="|="?m===q||m.4d(0,q.18+1)===q+"-":1e},5h:12(g,i,n,m){17 p=o.c7[i[2]];if(p)14 p(g,n,i,m)}}},x=o.2e.5h,r=12(g,i){14"\\\\"+(i-0+1)},A;19(A in o.2e){o.2e[A]=4L(o.2e[A].8c+/(?![^\\[]*\\])(?![^\\(]*\\))/.8c);o.8b[A]=4L(/(^(?:.|\\r|\\n)*?)/.8c+o.2e[A].8c.1u(/\\\\(\\d+)/g,r))}17 C=12(g,i){g=3c.2w.2A.1n(g,0);if(i){i.1G.22(i,g);14 i}14 g};1P{3c.2w.2A.1n(t.28.2G,0)}1M(J){C=12(g,i){17 n=0,m=i||[];if(f.1n(g)==="[29 3c]")3c.2w.1G.22(m,g);1a if(1j g.18==="4C")19(17 p=g.18;n<p;n++)m.1G(g[n]);1a 19(;g[n];n++)m.1G(g[n]);14 m}}17 w,I;if(t.28.5i)w=12(g,i){if(g===i){h=1c;14 0}if(!g.5i||!i.5i)14 g.5i?-1:1;14 g.5i(i)&4?-1:1};1a{w=12(g,i){17 n,m,p=[],q=[];n=g.1q;m=i.1q;17 u=n;if(g===i){h=1c;14 0}1a if(n===m)14 I(g,i);1a if(n){if(!m)14 1}1a 14-1;19(;u;){p.6W(u);u=u.1q}19(u=m;u;){q.6W(u);u=u.1q}n=p.18;m=q.18;19(u=0;u<n&&u<m;u++)if(p[u]!==q[u])14 I(p[u],q[u]);14 u===n?I(g,q[u],-1):I(p[u],i,1)};I=12(g,i,n){if(g===i)14 n;19(g=g.2W;g;){if(g===i)14-1;g=g.2W}14 1}}k.7I=12(g){19(17 i="",n,m=0;g[m];m++){n=g[m];if(n.1h===3||n.1h===4)i+=n.7Q;1a if(n.1h!==8)i+=k.7I(n.2G)}14 i};(12(){17 g=t.1W("1C"),i="2F"+(3j aR).c5(),n=t.28;g.2S="<a 3a=\'"+i+"\'/>";n.3n(g,n.1v);if(t.2I(i)){o.1R.4l=12(m,p,q){if(1j p.2I!=="3w"&&!q)14(p=p.2I(m[1]))?p.id===m[1]||1j p.5k!=="3w"&&p.5k("id").7Q===m[1]?[p]:B:[]};o.21.4l=12(m,p){17 q=1j m.5k!=="3w"&&m.5k("id");14 m.1h===1&&q&&q.7Q===p}}n.3l(g);n=g=1b})();(12(){17 g=t.1W("1C");g.2q(t.hK(""));if(g.1Z("*").18>0)o.1R.6b=12(i,n){17 m=n.1Z(i[1]);if(i[1]==="*"){19(17 p=[],q=0;m[q];q++)m[q].1h===1&&p.1G(m[q]);m=p}14 m};g.2S="<a 2P=\'#\'></a>";if(g.1v&&1j g.1v.2t!=="3w"&&g.1v.2t("2P")!=="#")o.7v.2P=12(i){14 i.2t("2P",2)};g=1b})();t.6V&&12(){17 g=k,i=t.1W("1C");i.2S="<p 2L=\'ch\'></p>";if(!(i.6V&&i.6V(".ch").18===0)){k=12(m,p,q,u){p=p||t;m=m.1u(/\\=\\s*([^\'"\\]]*)\\s*\\]/g,"=\'$1\']");if(!u&&!k.5P(p))if(p.1h===9)1P{14 C(p.6V(m),q)}1M(y){}1a if(p.1h===1&&p.1o.1O()!=="29"){17 F=p.2t("id"),M=F||"hU";F||p.2h("id",M);1P{14 C(p.6V("#"+M+" "+m),q)}1M(N){}i3{F||p.4U("id")}}14 g(m,p,q,u)};19(17 n in g)k[n]=g[n];i=1b}}();(12(){17 g=t.28,i=g.77||g.i4||g.i0||g.hZ,n=1e;1P{i.1n(t.28,"[1g!=\'\']:hV")}1M(m){n=1c}if(i)k.77=12(p,q){q=q.1u(/\\=\\s*([^\'"\\]]*)\\s*\\]/g,"=\'$1\']");if(!k.5P(p))1P{if(n||!o.2e.5O.1g(q)&&!/!=/.1g(q))14 i.1n(p,q)}1M(u){}14 k(q,1b,1b,[p]).18>0}})();(12(){17 g=t.1W("1C");g.2S="<1C 2L=\'1g e\'></1C><1C 2L=\'1g\'></1C>";if(!(!g.6R||g.6R("e").18===0)){g.9J.1T="e";if(g.6R("e").18!==1){o.7r.3x(1,0,"6z");o.1R.6z=12(i,n,m){if(1j n.6R!=="3w"&&!m)14 n.6R(i[1])};g=1b}}})();k.3N=t.28.3N?12(g,i){14 g!==i&&(g.3N?g.3N(i):1c)}:t.28.5i?12(g,i){14!!(g.5i(i)&16)}:12(){14 1e};k.5P=12(g){14(g=(g?g.2s||g:0).28)?g.1o!=="hI":1e};17 L=12(g,i){19(17 n,m=[],p="",q=i.1h?[i]:i;n=o.2e.5O.1V(g);){p+=n[0];g=g.1u(o.2e.5O,"")}g=o.4b[g]?g+"*":g;n=0;19(17 u=q.18;n<u;n++)k(g,q[n],m);14 k.21(p,m)};c.1R=k;c.2x=k.dh;c.2x[":"]=c.2x.3L;c.8t=k.9U;c.1L=k.7I;c.aQ=k.5P;c.3N=k.3N})();17 cX=/ht$/,$a=/^(?:cF|cy|cw)/,ab=/,/,dj=/^.[^:#\\[\\.,]*$/,bb=3c.2w.2A,cb=c.2x.2e.5h;c.fn.1E({1R:12(a){19(17 b=6.3v("","1R",a),d=0,e=0,f=6.18;e<f;e++){d=b.18;c.1R(a,6[e],b);if(e>0)19(17 h=d;h<b.18;h++)19(17 l=0;l<d;l++)if(b[l]===b[h]){b.3x(h--,1);2c}}14 b},7N:12(a){17 b=c(a);14 6.21(12(){19(17 d=0,e=b.18;d<e;d++)if(c.3N(6,b[d]))14 1c})},76:12(a){14 6.3v(af(6,a,1e),"76",a)},21:12(a){14 6.3v(af(6,a,1c),"21",a)},is:12(a){14!!a&&c.21(a,6).18>0},5U:12(a,b){17 d=[],e,f,h=6[0];if(c.3g(a)){17 l,k={},o=1;if(h&&a.18){e=0;19(f=a.18;e<f;e++){l=a[e];k[l]||(k[l]=c.2x.2e.5h.1g(l)?c(l,b||6.2g):l)}19(;h&&h.2s&&h!==b;){19(l in k){e=k[l];if(e.6J?e.3r(h)>-1:c(h).is(e))d.1G({2b:l,1w:h,6T:o})}h=h.1q;o++}}14 d}l=cb.1g(a)?c(a,b||6.2g):1b;e=0;19(f=6.18;e<f;e++)19(h=6[e];h;)if(l?l.3r(h)>-1:c.1R.77(h,a)){d.1G(h);2c}1a{h=h.1q;if(!h||!h.2s||h===b)2c}d=d.18>1?c.8t(d):d;14 6.3v(d,"5U",a)},3r:12(a){if(!a||1j a==="1H")14 c.3V(6[0],a?c(a):6.6A().1K());14 c.3V(a.6J?a[0]:a,6)},30:12(a,b){17 d=1j a==="1H"?c(a,b||6.2g):c.49(a),e=c.4W(6.2Z(),d);14 6.3v(!d[0]||!d[0].1q||d[0].1q.1h===11||!e[0]||!e[0].1q||e[0].1q.1h===11?e:c.8t(e))},hk:12(){14 6.30(6.av)}});c.1m({6A:12(a){14(a=a.1q)&&a.1h!==11?a:1b},cF:12(a){14 c.5g(a,"1q")},hm:12(a,b,d){14 c.5g(a,"1q",d)},hv:12(a){14 c.4y(a,2,"2W")},hD:12(a){14 c.4y(a,2,"5Z")},hE:12(a){14 c.5g(a,"2W")},cw:12(a){14 c.5g(a,"5Z")},hF:12(a,b,d){14 c.5g(a,"2W",d)},cy:12(a,b,d){14 c.5g(a,"5Z",d)},hG:12(a){14 c.a1(a.1q.1v,a)},1K:12(a){14 c.a1(a.1v)},9A:12(a){14 c.1o(a,"hB")?a.hx||a.hy.1x:c.49(a.2G)}},12(a,b){c.fn[a]=12(d,e){17 f=c.2T(6,b,d);cX.1g(a)||(e=d);if(e&&1j e==="1H")f=c.21(e,f);f=6.18>1?c.8t(f):f;if((6.18>1||ab.1g(e))&&$a.1g(a))f=f.hA();14 6.3v(f,a,bb.1n(1A).48(","))}});c.1E({21:12(a,b,d){if(d)a=":76("+a+")";14 b.18===1?c.1R.77(b[0],a)?[b[0]]:[]:c.1R.cM(a,b)},5g:12(a,b,d){17 e=[];19(a=a[b];a&&a.1h!==9&&(d===B||a.1h!==1||!c(a).is(d));){a.1h===1&&e.1G(a);a=a[b]}14 e},4y:12(a,b,d){b=b||1;19(17 e=0;a;a=a[d])if(a.1h===1&&++e===b)2c;14 a},a1:12(a,b){19(17 d=[];a;a=a.2W)a.1h===1&&a!==b&&d.1G(a);14 d}});17 ap=/ 3F\\d+="(?:\\d+|1b)"/g,$=/^\\s+/,9j=/<(?!bU|br|bF|5M|hr|4z|2H|38|gn|56)(([\\w:]+)[^>]*)\\/>/ig,9w=/<([\\w:]+)/,db=/<35/i,eb=/<|&#?\\w+;/,94=/<(?:2F|29|5M|5Y|1d)/i,9c=/3X\\s*(?:[^=]|=\\s*.3X.)/i,fb=/\\=([^="\'>\\s]+\\/)>/g,P={5Y:[1,"<2Y 8A=\'8A\'>","</2Y>"],fN:[1,"<bK>","</bK>"],bV:[1,"<2B>","</2B>"],4e:[2,"<2B><35>","</35></2B>"],4f:[3,"<2B><35><4e>","</4e></35></2B>"],bF:[2,"<2B><35></35><al>","</al></2B>"],bU:[1,"<2T>","</2T>"],3R:[0,"",""]};P.bX=P.5Y;P.35=P.gj=P.al=P.gm=P.bV;P.fl=P.4f;if(!c.1t.bO)P.3R=[1,"1C<1C>","</1C>"];c.fn.1E({1L:12(a){if(c.1I(a))14 6.1m(12(b){17 d=c(6);d.1L(a.1n(6,b,d.1L()))});if(1j a!=="29"&&a!==B)14 6.6P().4c((6[0]&&6[0].2s||t).4o(a));14 c.1L(6)},8w:12(a){if(c.1I(a))14 6.1m(12(d){c(6).8w(a.1n(6,d))});if(6[0]){17 b=c(a,6[0].2s).eq(0).9u(1c);6[0].1q&&b.3n(6[0]);b.2T(12(){19(17 d=6;d.1v&&d.1v.1h===1;)d=d.1v;14 d}).4c(6)}14 6},bJ:12(a){if(c.1I(a))14 6.1m(12(b){c(6).bJ(a.1n(6,b))});14 6.1m(12(){17 b=c(6),d=b.9A();d.18?d.8w(a):b.4c(a)})},g8:12(a){14 6.1m(12(){c(6).8w(a)})},g5:12(){14 6.6A().1m(12(){c.1o(6,"1N")||c(6).6G(6.2G)}).3T()},4c:12(){14 6.4P(1A,1c,12(a){6.1h===1&&6.2q(a)})},el:12(){14 6.4P(1A,1c,12(a){6.1h===1&&6.3n(a,6.1v)})},8R:12(){if(6[0]&&6[0].1q)14 6.4P(1A,1e,12(b){6.1q.3n(b,6)});1a if(1A.18){17 a=c(1A[0]);a.1G.22(a,6.8v());14 6.3v(a,"8R",1A)}},9r:12(){if(6[0]&&6[0].1q)14 6.4P(1A,1e,12(b){6.1q.3n(b,6.2W)});1a if(1A.18){17 a=6.3v(6,"9r",1A);a.1G.22(a,c(1A[0]).8v());14 a}},2N:12(a,b){19(17 d=0,e;(e=6[d])!=1b;d++)if(!a||c.21(a,[e]).18){if(!b&&e.1h===1){c.6E(e.1Z("*"));c.6E([e])}e.1q&&e.1q.3l(e)}14 6},6P:12(){19(17 a=0,b;(b=6[a])!=1b;a++)19(b.1h===1&&c.6E(b.1Z("*"));b.1v;)b.3l(b.1v);14 6},9u:12(a){17 b=6.2T(12(){if(!c.1t.aS&&!c.aQ(6)){17 d=6.g0,e=6.2s;if(!d){d=e.1W("1C");d.2q(6.5d(1c));d=d.2S}14 c.9g([d.1u(ap,"").1u(fb,\'="$1">\').1u($,"")],e)[0]}1a 14 6.5d(1c)});if(a===1c){aN(6,b);aN(6.1R("*"),b.1R("*"))}14 b},2m:12(a){if(a===B)14 6[0]&&6[0].1h===1?6[0].2S.1u(ap,""):1b;1a if(1j a==="1H"&&!94.1g(a)&&(c.1t.9B||!$.1g(a))&&!P[(9w.1V(a)||["",""])[1].1O()]){a=a.1u(9j,"<$1></$2>");1P{19(17 b=0,d=6.18;b<d;b++)if(6[b].1h===1){c.6E(6[b].1Z("*"));6[b].2S=a}}1M(e){6.6P().4c(a)}}1a c.1I(a)?6.1m(12(f){17 h=c(6);h.2m(a.1n(6,f,h.2m()))}):6.6P().4c(a);14 6},6G:12(a){if(6[0]&&6[0].1q){if(c.1I(a))14 6.1m(12(b){17 d=c(6),e=d.2m();d.6G(a.1n(6,b,e))});if(1j a!=="1H")a=c(a).fI();14 6.1m(12(){17 b=6.2W,d=6.1q;c(6).2N();b?c(b).8R(a):c(d).4c(a)})}1a 14 6.3v(c(c.1I(a)?a():a),"6G",a)},fI:12(a){14 6.2N(a,1c)},4P:12(a,b,d){17 e,f,h,l=a[0],k=[];if(!c.1t.8O&&1A.18===3&&1j l==="1H"&&9c.1g(l))14 6.1m(12(){c(6).4P(a,b,d,1c)});if(c.1I(l))14 6.1m(12(x){17 r=c(6);a[0]=l.1n(6,x,b?r.2m():B);r.4P(a,b,d)});if(6[0]){e=l&&l.1q;e=c.1t.1q&&e&&e.1h===11&&e.2G.18===6.18?{6F:e}:c.93(a,6,k);h=e.6F;if(f=h.2G.18===1?h=h.1v:h.1v){b=b&&c.1o(f,"4e");f=0;19(17 o=6.18;f<o;f++)d.1n(b?c.1o(6[f],"2B")?6[f].1Z("35")[0]||6[f].2q(6[f].2s.1W("35")):6[f]:6[f],f>0||e.9b||6.18>1?h.5d(1c):h)}k.18&&c.1m(k,e6)}14 6}});c.93=12(a,b,d){17 e,f,h;b=b&&b[0]?b[0].2s||b[0]:t;if(a.18===1&&1j a[0]==="1H"&&a[0].18<g7&&b===t&&!94.1g(a[0])&&(c.1t.8O||!9c.1g(a[0]))){f=1c;if(h=c.9f[a[0]])if(h!==1)e=h}if(!e){e=b.ey();c.9g(a,b,e,d)}if(f)c.9f[a[0]]=h?e:1;14{6F:e,9b:f}};c.9f={};c.1m({ef:"4c",fY:"el",3n:"8R",fW:"9r",gN:"6G"},12(a,b){c.fn[a]=12(d){17 e=[];d=c(d);17 f=6.18===1&&6[0].1q;if(f&&f.1h===11&&f.2G.18===1&&d.18===1){d[b](6[0]);14 6}1a{f=0;19(17 h=d.18;f<h;f++){17 l=(f>0?6.9u(1c):6).2Z();c(d[f])[b](l);e=e.8K(l)}14 6.3v(e,a,d.2b)}}});c.1E({9g:12(a,b,d,e){b=b||t;if(1j b.1W==="3w")b=b.2s||b[0]&&b[0].2s||t;19(17 f=[],h=0,l;(l=a[h])!=1b;h++){if(1j l==="4C")l+="";if(l){if(1j l==="1H"&&!eb.1g(l))l=b.4o(l);1a if(1j l==="1H"){l=l.1u(9j,"<$1></$2>");17 k=(9w.1V(l)||["",""])[1].1O(),o=P[k]||P.3R,x=o[0],r=b.1W("1C");19(r.2S=o[1]+l+o[2];x--;)r=r.9J;if(!c.1t.35){x=db.1g(l);k=k==="2B"&&!x?r.1v&&r.1v.2G:o[1]==="<2B>"&&!x?r.2G:[];19(o=k.18-1;o>=0;--o)c.1o(k[o],"35")&&!k[o].2G.18&&k[o].1q.3l(k[o])}!c.1t.9B&&$.1g(l)&&r.3n(b.4o($.1V(l)[0]),r.1v);l=r.2G}if(l.1h)f.1G(l);1a f=c.4W(f,l)}}if(d)19(h=0;f[h];h++)if(e&&c.1o(f[h],"2F")&&(!f[h].1l||f[h].1l.1O()==="1L/3Q"))e.1G(f[h].1q?f[h].1q.3l(f[h]):f[h]);1a{f[h].1h===1&&f.3x.22(f,[h+1,0].8K(c.49(f[h].1Z("2F"))));d.2q(f[h])}14 f},6E:12(a){19(17 b,d,e=c.3O,f=c.1p.44,h=c.1t.8S,l=0,k;(k=a[l])!=1b;l++)if(!(k.1o&&c.6D[k.1o.1O()]))if(d=k[c.3A]){if((b=e[d])&&b.2O)19(17 o in b.2O)f[o]?c.1p.2N(k,o):c.8Y(k,o,b.2E);if(h)39 k[c.3A];1a k.4U&&k.4U(c.3A);39 e[d]}}});17 aD=/fg\\([^)]*\\)/i,gb=/2r=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,aP=/^-?\\d+(?:2V)?$/i,jb=/^-?\\d/,kb={2C:"5S",9R:"3y",1D:"4Q"},dJ=["dU","lu"],dD=["dV","lw"],W,aI,aa,lb=12(a,b){14 b.8q()};c.fn.1y=12(a,b){if(1A.18===2&&b===B)14 6;14 c.8L(6,a,b,1c,12(d,e,f){14 f!==B?c.1d(d,e,f):c.1y(d,e)})};c.1E({6B:{2r:{2Z:12(a,b){if(b){17 d=W(a,"2r","2r");14 d===""?"1":d}1a 14 a.1d.2r}}},e0:{lv:1c,bP:1c,2r:1c,79:1c,lp:1c},aT:{"7B":c.1t.6y?"6y":"e1"},1d:12(a,b,d,e){if(!(!a||a.1h===3||a.1h===8||!a.1d)){17 f,h=c.7y(b),l=a.1d,k=c.6B[h];b=c.aT[h]||h;if(d!==B){if(!(1j d==="4C"&&5y(d)||d==1b)){if(1j d==="4C"&&!c.e0[h])d+="2V";if(!k||!("46"in k)||(d=k.46(a,d))!==B)1P{l[b]=d}1M(o){}}}1a{if(k&&"2Z"in k&&(f=k.2Z(a,1e,e))!==B)14 f;14 l[b]}}},1y:12(a,b,d){17 e,f=c.7y(b),h=c.6B[f];b=c.aT[f]||f;if(h&&"2Z"in h&&(e=h.2Z(a,1c,d))!==B)14 e;1a if(W)14 W(a,b,f)},fv:12(a,b,d){17 e={},f;19(f in b){e[f]=a.1d[f];a.1d[f]=b[f]}d.1n(a);19(f in b)a.1d[f]=e[f]},7y:12(a){14 a.1u(hb,lb)}});c.eI=c.1y;c.1m(["2i","1Q"],12(a,b){c.6B[b]={2Z:12(d,e,f){17 h;if(e){if(d.63!==0)h=aA(d,b,f);1a c.fv(d,kb,12(){h=aA(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="3o"&&aa)h=aa(d,b,b);if(h!=1b)14 h===""||h==="86"?"3o":h}if(h<0||h==1b){h=d.1d[b];14 h===""||h==="86"?"3o":h}14 1j h==="1H"?h:h+"2V"}},46:12(d,e){if(aP.1g(e)){e=1X(e);if(e>=0)14 e+"2V"}1a 14 e}}});if(!c.1t.2r)c.6B.2r={2Z:12(a,b){14 gb.1g((b&&a.4B?a.4B.21:a.1d.21)||"")?1X(4L.$1)/7c+"":b?"1":""},46:12(a,b){17 d=a.1d;d.79=1;17 e=c.5y(b)?"":"fg(2r="+b*7c+")",f=d.21||"";d.21=aD.1g(f)?f.1u(aD,e):d.21+" "+e}};if(t.6Y&&t.6Y.7X)aI=12(a,b,d){17 e;d=d.1u(ib,"-$1").1O();if(!(b=a.2s.6Y))14 B;if(b=b.7X(a,1b)){e=b.lo(d);if(e===""&&!c.3N(a.2s.28,a))e=c.1d(a,d)}14 e};if(t.28.4B)aa=12(a,b){17 d,e,f=a.4B&&a.4B[b],h=a.1d;if(!aP.1g(f)&&jb.1g(f)){d=h.1J;e=a.aL.1J;a.aL.1J=a.4B.1J;h.1J=b==="lj"?"lh":f||0;f=h.lg+"2V";h.1J=d;a.aL.1J=e}14 f===""?"86":f};W=aI||aa;if(c.2x&&c.2x.3L){c.2x.3L.3y=12(a){17 b=a.8M;14 a.63===0&&b===0||!c.1t.6H&&(a.1d.1D||c.1y(a,"1D"))==="2z"};c.2x.3L.f1=12(a){14!c.2x.3L.3y(a)}}17 cL=c.2Q(),du=/<2F\\b[^<]*(?:(?!<\\/2F>)<[^<]*)*<\\/2F>/gi,cC=/^(?:2Y|6I)/i,cB=/^(?:2j|lk|ll|ln|3y|lm|4C|6K|lx|ly|lJ|1L|lI|1B|lK)$/i,cQ=/^(?:6d|lL)$/,d3=/\\[\\]$/,T=/\\=\\?(&|$)/,ja=/\\?/,cS=/([?&])cY=[^&]*/,cV=/^(\\w+:)?\\/\\/([^\\/?#]+)/,dk=/%20/g,cO=/#.*$/,a0=c.fn.4G;c.fn.1E({4G:12(a,b,d){if(1j a!=="1H"&&a0)14 a0.22(6,1A);1a if(!6.18)14 6;17 e=a.23(" ");if(e>=0){17 f=a.2A(e,a.18);a=a.2A(0,e)}e="6d";if(b)if(c.1I(b)){d=b;b=1b}1a if(1j b==="29"){b=c.56(b,c.5c.a6);e="cT"}17 h=6;c.5H({1B:a,1l:e,3f:"2m",1k:b,3z:12(l,k){if(k==="4x"||k==="a9")h.2m(f?c("<1C>").4c(l.7M.1u(du,"")).1R(f):l.7M);d&&h.1m(d,[l.7M,k,l])}});14 6},lN:12(){14 c.56(6.ds())},ds:12(){14 6.2T(12(){14 6.cE?c.49(6.cE):6}).21(12(){14 6.3a&&!6.4p&&(6.3X||cC.1g(6.1o)||cB.1g(6.1l))}).2T(12(a,b){17 d=c(6).5a();14 d==1b?1b:c.3g(d)?c.2T(d,12(e){14{3a:b.3a,37:e}}):{3a:b.3a,37:d}}).2Z()}});c.1m("cW ai dx dl dy cI".2M(" "),12(a,b){c.fn[b]=12(d){14 6.8z(b,d)}});c.1E({2Z:12(a,b,d,e){if(c.1I(b)){e=e||d;d=b;b=1b}14 c.5H({1l:"6d",1B:a,1k:b,4x:d,3f:e})},bS:12(a,b){14 c.2Z(a,1b,b,"2F")},lH:12(a,b,d){14 c.2Z(a,b,d,"4X")},lG:12(a,b,d,e){if(c.1I(b)){e=e||d;d=b;b={}}14 c.5H({1l:"cT",1B:a,1k:b,4x:d,3f:e})},lB:12(a){c.1E(c.5c,a)},5c:{1B:66.2P,3M:1c,1l:"6d",aj:"8D/x-lA-6O-lz",cN:1c,4Y:1c,7p:12(){14 3j E.9W},8H:{6N:"8D/6N, 1L/6N",2m:"1L/2m",2F:"1L/3Q, 8D/3Q",4X:"8D/4X, 1L/3Q",1L:"1L/lC",3R:"*/*"}},5H:12(a){17 b=c.1E(1c,{},c.5c,a),d,e,f,h=b.1l.8q(),l=cQ.1g(h);b.1B=b.1B.1u(cO,"");b.2g=a&&a.2g!=1b?a.2g:b;if(b.1k&&b.cN&&1j b.1k!=="1H")b.1k=c.56(b.1k,b.a6);if(b.3f==="8s"){if(h==="6d")T.1g(b.1B)||(b.1B+=(ja.1g(b.1B)?"&":"?")+(b.8s||"3k")+"=?");1a if(!b.1k||!T.1g(b.1k))b.1k=(b.1k?b.1k+"&":"")+(b.8s||"3k")+"=?";b.3f="4X"}if(b.3f==="4X"&&(b.1k&&T.1g(b.1k)||T.1g(b.1B))){d=b.lD||"8s"+cL++;if(b.1k)b.1k=(b.1k+"").1u(T,"="+d+"$1");b.1B=b.1B.1u(T,"="+d+"$1");b.3f="2F";17 k=E[d];E[d]=12(m){if(c.1I(k))k(m);1a{E[d]=B;1P{39 E[d]}1M(p){}}f=m;c.7H(b,w,e,f);c.5s(b,w,e,f);r&&r.3l(A)}}if(b.3f==="2F"&&b.3O===1b)b.3O=1e;if(b.3O===1e&&l){17 o=c.2Q(),x=b.1B.1u(cS,"$lF="+o);b.1B=x+(x===b.1B?(ja.1g(b.1B)?"&":"?")+"cY="+o:"")}if(b.1k&&l)b.1B+=(ja.1g(b.1B)?"&":"?")+b.1k;b.3M&&c.7E++===0&&c.1p.2U("cW");o=(o=cV.1V(b.1B))&&(o[1]&&o[1].1O()!==66.9Q||o[2].1O()!==66.lE);if(b.3f==="2F"&&h==="6d"&&o){17 r=t.1Z("9Z")[0]||t.28,A=t.1W("2F");if(b.cU)A.lf=b.cU;A.4s=b.1B;if(!d){17 C=1e;A.ah=A.52=12(){if(!C&&(!6.51||6.51==="le"||6.51==="3z")){C=1c;c.7H(b,w,e,f);c.5s(b,w,e,f);A.ah=A.52=1b;r&&A.1q&&r.3l(A)}}}r.3n(A,r.1v);14 B}17 J=1e,w=b.7p();if(w){b.cJ?w.cz(h,b.1B,b.4Y,b.cJ,b.6K):w.cz(h,b.1B,b.4Y);1P{if(b.1k!=1b&&!l||a&&a.aj)w.6U("kQ-kP",b.aj);if(b.cD){c.7O[b.1B]&&w.6U("cx-d4-kO",c.7O[b.1B]);c.7P[b.1B]&&w.6U("cx-kR-kS",c.7P[b.1B])}o||w.6U("X-kU-kT","9W");w.6U("i6",b.3f&&b.8H[b.3f]?b.8H[b.3f]+", */*; q=0.kM":b.8H.3R)}1M(I){}if(b.cH&&b.cH.1n(b.2g,w,b)===1e){b.3M&&c.7E--===1&&c.1p.2U("ai");w.5z();14 1e}b.3M&&c.6L(b,"cI",[w,b]);17 L=w.52=12(m){if(!w||w.51===0||m==="5z"){J||c.5s(b,w,e,f);J=1c;if(w)w.52=c.6S}1a if(!J&&w&&(w.51===4||m==="4Z")){J=1c;w.52=c.6S;e=m==="4Z"?"4Z":!c.dv(w)?"31":b.cD&&c.d5(w,b.1B)?"a9":"4x";17 p;if(e==="4x")1P{f=c.d8(w,b.3f,b)}1M(q){e="9S";p=q}if(e==="4x"||e==="a9")d||c.7H(b,w,e,f);1a c.ae(b,w,e,p);d||c.5s(b,w,e,f);m==="4Z"&&w.5z();if(b.4Y)w=1b}};1P{17 g=w.5z;w.5z=12(){w&&ac.2w.1n.1n(g,w);L("5z")}}1M(i){}b.4Y&&b.4Z>0&&34(12(){w&&!J&&L("4Z")},b.4Z);1P{w.kG(l||b.1k==1b?1b:b.1k)}1M(n){c.ae(b,w,1b,n);c.5s(b,w,e,f)}b.4Y||L();14 w}},56:12(a,b){17 d=[],e=12(h,l){l=c.1I(l)?l():l;d[d.18]=8u(h)+"="+8u(l)};if(b===B)b=c.5c.a6;if(c.3g(a)||a.6J)c.1m(a,12(){e(6.3a,6.37)});1a 19(17 f in a)da(f,a[f],b,e);14 d.48("&").1u(dk,"+")}});c.1E({7E:0,7O:{},7P:{},ae:12(a,b,d,e){a.31&&a.31.1n(a.2g,b,d,e);a.3M&&c.6L(a,"dl",[b,a,e])},7H:12(a,b,d,e){a.4x&&a.4x.1n(a.2g,e,d,b);a.3M&&c.6L(a,"dy",[b,a])},5s:12(a,b,d){a.3z&&a.3z.1n(a.2g,b,d);a.3M&&c.6L(a,"dx",[b,a]);a.3M&&c.7E--===1&&c.1p.2U("ai")},6L:12(a,b,d){(a.2g&&a.2g.1B==1b?c(a.2g):c.1p).2U(b,d)},dv:12(a){1P{14!a.5x&&66.9Q==="6C:"||a.5x>=bs&&a.5x<kL||a.5x===d7||a.5x===kK}1M(b){}14 1e},d5:12(a,b){17 d=a.9T("kV-d4"),e=a.9T("kW");if(d)c.7O[b]=d;if(e)c.7P[b]=e;14 a.5x===d7},d8:12(a,b,d){17 e=a.9T("4F-1l")||"",f=b==="6N"||!b&&e.23("6N")>=0;a=f?a.l7:a.7M;f&&a.28.1o==="9S"&&c.31("9S");if(d&&d.dd)a=d.dd(a,b);if(1j a==="1H")if(b==="4X"||!b&&e.23("4X")>=0)a=c.9O(a);1a if(b==="2F"||!b&&e.23("3Q")>=0)c.9P(a);14 a}});if(E.bT)c.5c.7p=12(){if(E.66.9Q!=="6C:")1P{14 3j E.9W}1M(a){}1P{14 3j E.bT("l9.ld")}1M(b){}};c.1t.5H=!!c.5c.7p();17 ea={},c3=/^(?:4q|3i|33)$/,c0=/^([+\\-]=)?([\\d+.\\-]+)(.*)$/,ba,a2=[["2i","7l","l4","kZ","kY"],["1Q","aU","kX","bG","l0"],["2r"]];c.fn.1E({3i:12(a,b,d){if(a||a===0)14 6.4j(S("3i",3),a,b,d);1a{d=0;19(17 e=6.18;d<e;d++){a=6[d];b=a.1d.1D;if(!c.1k(a,"7m")&&b==="2z")b=a.1d.1D="";b===""&&c.1y(a,"1D")==="2z"&&c.1k(a,"7m",aF(a.1o))}19(d=0;d<e;d++){a=6[d];b=a.1d.1D;if(b===""||b==="2z")a.1d.1D=c.1k(a,"7m")||""}14 6}},33:12(a,b,d){if(a||a===0)14 6.4j(S("33",3),a,b,d);1a{a=0;19(b=6.18;a<b;a++){d=c.1y(6[a],"1D");d!=="2z"&&c.1k(6[a],"7m",d)}19(a=0;a<b;a++)6[a].1d.1D="2z";14 6}},ct:c.fn.4q,4q:12(a,b,d){17 e=1j a==="7n";if(c.1I(a)&&c.1I(b))6.ct.22(6,1A);1a a==1b||e?6.1m(12(){17 f=e?a:c(6).is(":3y");c(6)[f?"3i":"33"]()}):6.4j(S("4q",3),a,b,d);14 6},l1:12(a,b,d,e){14 6.21(":3y").1y("2r",0).3i().3T().4j({2r:b},a,d,e)},4j:12(a,b,d,e){17 f=c.c8(b,d,e);if(c.5L(a))14 6.1m(f.3z);14 6[f.3E===1e?"1m":"3E"](12(){17 h=c.1E({},f),l,k=6.1h===1,o=k&&c(6).is(":3y"),x=6;19(l in a){17 r=c.7y(l);if(l!==r){a[r]=a[l];39 a[l];l=r}if(a[l]==="33"&&o||a[l]==="3i"&&!o)14 h.3z.1n(6);if(k&&(l==="2i"||l==="1Q")){h.43=[6.1d.43,6.1d.l3,6.1d.l2];if(c.1y(6,"1D")==="5F"&&c.1y(6,"7B")==="2z")if(c.1t.aH)if(aF(6.1o)==="5F")6.1d.1D="5F-4Q";1a{6.1d.1D="5F";6.1d.79=1}1a 6.1d.1D="5F-4Q"}if(c.3g(a[l])){(h.8h=h.8h||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.43!=1b)6.1d.43="3y";h.70=c.1E({},a);c.1m(a,12(A,C){17 J=3j c.fx(x,h,A);if(c3.1g(C))J[C==="4q"?o?"3i":"33":C](a);1a{17 w=c0.1V(C),I=J.71()||0;if(w){17 L=1X(w[2]),g=w[3]||"2V";if(g!=="2V"){c.1d(x,A,(L||1)+g);I=(L||1)/J.71()*I;c.1d(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.6Q(I,L,g)}1a J.6Q(I,C,"")}});14 1c})},aB:12(a,b){17 d=c.6Z;a&&6.3E([]);6.1m(12(){19(17 e=d.18-1;e>=0;e--)if(d[e].1w===6){b&&d[e](1c);d.3x(e,1)}});b||6.4A();14 6}});c.1m({dz:S("3i",1),dw:S("33",1),m6:S("4q",1),d9:{2r:"3i"},dA:{2r:"33"},m4:{2r:"4q"}},12(a,b){c.fn[a]=12(d,e,f){14 6.4j(b,d,e,f)}});c.1E({c8:12(a,b,d){17 e=a&&1j a==="29"?c.1E({},a):{3z:d||!d&&b||c.1I(a)&&a,2v:a,3Z:d&&b||b&&!c.1I(b)&&b};e.2v=c.fx.lU?0:1j e.2v==="4C"?e.2v:e.2v in c.fx.74?c.fx.74[e.2v]:c.fx.74.3R;e.au=e.3z;e.3z=12(){e.3E!==1e&&c(6).4A();c.1I(e.au)&&e.au.1n(6)};14 e},3Z:{dB:12(a,b,d,e){14 d+e*a},ao:12(a,b,d,e){14(-2f.lV(a*2f.cG)/2+0.5)*e+d}},6Z:[],fx:12(a,b,d){6.26=b;6.1w=a;6.2y=d;if(!b.72)b.72={}}});c.fx.2w={aw:12(){6.26.4u&&6.26.4u.1n(6.1w,6.2Q,6);(c.fx.4u[6.2y]||c.fx.4u.3R)(6)},71:12(){if(6.1w[6.2y]!=1b&&(!6.1w.1d||6.1w.1d[6.2y]==1b))14 6.1w[6.2y];17 a=1X(c.1y(6.1w,6.2y));14 a&&a>-lT?a:0},6Q:12(a,b,d){12 e(l){14 f.4u(l)}17 f=6,h=c.fx;6.an=c.2Q();6.3U=a;6.3T=b;6.az=d||6.az||"2V";6.2Q=6.3U;6.5f=6.78=0;e.1w=6.1w;if(e()&&c.6Z.1G(e)&&!ba)ba=ck(h.fd,h.f8)},3i:12(){6.26.72[6.2y]=c.1d(6.1w,6.2y);6.26.3i=1c;6.6Q(6.2y==="1Q"||6.2y==="2i"?1:0,6.71());c(6.1w).3i()},33:12(){6.26.72[6.2y]=c.1d(6.1w,6.2y);6.26.33=1c;6.6Q(6.71(),0)},4u:12(a){17 b=c.2Q(),d=1c;if(a||b>=6.26.2v+6.an){6.2Q=6.3T;6.5f=6.78=1;6.aw();6.26.70[6.2y]=1c;19(17 e in 6.26.70)if(6.26.70[e]!==1c)d=1e;if(d){if(6.26.43!=1b&&!c.1t.as){17 f=6.1w,h=6.26;c.1m(["","X","Y"],12(k,o){f.1d["43"+o]=h.43[k]})}6.26.33&&c(6.1w).33();if(6.26.33||6.26.3i)19(17 l in 6.26.70)c.1d(6.1w,l,6.26.72[l]);6.26.3z.1n(6.1w)}14 1e}1a{a=b-6.an;6.78=a/6.26.2v;b=6.26.3Z||(c.3Z.ao?"ao":"dB");6.5f=c.3Z[6.26.8h&&6.26.8h[6.2y]||b](6.78,a,0,1,6.26.2v);6.2Q=6.3U+(6.3T-6.3U)*6.5f;6.aw()}14 1c}};c.1E(c.fx,{fd:12(){19(17 a=c.6Z,b=0;b<a.18;b++)a[b]()||a.3x(b--,1);a.18||c.fx.aB()},f8:13,aB:12(){lR(ba);ba=1b},74:{lX:m2,m5:bs,3R:m3},4u:{2r:12(a){c.1d(a.1w,"2r",a.2Q)},3R:12(a){if(a.1w.1d&&a.1w.1d[a.2y]!=1b)a.1w.1d[a.2y]=(a.2y==="1Q"||a.2y==="2i"?2f.41(0,a.2Q):a.2Q)+a.az;1a a.1w[a.2y]=a.2Q}}});if(c.2x&&c.2x.3L)c.2x.3L.lZ=12(a){14 c.5E(c.6Z,12(b){14 a===b.1w}).18};17 eW=/^t(?:j0|d|h)$/i,8X=/^(?:1N|2m)$/i;c.fn.2p="eU"in t.28?12(a){17 b=6[0],d;if(a)14 6.1m(12(l){c.2p.9d(6,a,l)});if(!b||!b.2s)14 1b;if(b===b.2s.1N)14 c.2p.95(b);1P{d=b.eU()}1M(e){}17 f=b.2s,h=f.28;if(!d||!c.3N(h,b))14 d||{27:0,1J:0};b=f.1N;f=fa(f);14{27:d.27+(f.e5||c.1t.5w&&h.4t||b.4t)-(h.87||b.87||0),1J:d.1J+(f.8V||c.1t.5w&&h.4H||b.4H)-(h.7W||b.7W||0)}}:12(a){17 b=6[0];if(a)14 6.1m(12(x){c.2p.9d(6,a,x)});if(!b||!b.2s)14 1b;if(b===b.2s.1N)14 c.2p.95(b);c.2p.7Z();17 d,e=b.5K,f=b.2s,h=f.28,l=f.1N;d=(f=f.6Y)?f.7X(b,1b):b.4B;19(17 k=b.3Y,o=b.7Y;(b=b.1q)&&b!==l&&b!==h;){if(c.2p.90&&d.2C==="92")2c;d=f?f.7X(b,1b):b.4B;k-=b.4t;o-=b.4H;if(b===e){k+=b.3Y;o+=b.7Y;if(c.2p.fu&&!(c.2p.fD&&eW.1g(b.1o))){k+=1X(d.98)||0;o+=1X(d.9e)||0}e=b.5K}if(c.2p.fw&&d.43!=="f1"){k+=1X(d.98)||0;o+=1X(d.9e)||0}d=d}if(d.2C==="4b"||d.2C==="8W"){k+=l.3Y;o+=l.7Y}if(c.2p.90&&d.2C==="92"){k+=2f.41(h.4t,l.4t);o+=2f.41(h.4H,l.4H)}14{27:k,1J:o}};c.2p={7Z:12(){17 a=t.1N,b=t.1W("1C"),d,e,f,h=1X(c.1y(a,"7l"))||0;c.1E(b.1d,{2C:"5S",27:0,1J:0,4D:0,4V:0,1Q:"5j",2i:"5j",9R:"3y"});b.2S="<1C 1d=\'2C:5S;27:0;1J:0;4D:0;4V:f0 eZ #eX;5Q:0;1Q:5j;2i:5j;\'><1C></1C></1C><2B 1d=\'2C:5S;27:0;1J:0;4D:0;4V:f0 eZ #eX;5Q:0;1Q:5j;2i:5j;\' j2=\'0\' fG=\'0\'><4e><4f></4f></4e></2B>";a.3n(b,a.1v);d=b.1v;e=d.1v;f=d.2W.1v.1v;6.fu=e.3Y!==5;6.fD=f.3Y===5;e.1d.2C="92";e.1d.27="j4";6.90=e.3Y===20||e.3Y===15;e.1d.2C=e.1d.27="";d.1d.43="3y";d.1d.2C="4b";6.fw=e.3Y===-5;6.fL=a.3Y!==h;a.3l(b);c.2p.7Z=c.6S},95:12(a){17 b=a.3Y,d=a.7Y;c.2p.7Z();if(c.2p.fL){b+=1X(c.1y(a,"7l"))||0;d+=1X(c.1y(a,"aU"))||0}14{27:b,1J:d}},9d:12(a,b,d){17 e=c.1y(a,"2C");if(e==="8W")a.1d.2C="4b";17 f=c(a),h=f.2p(),l=c.1y(a,"27"),k=c.1y(a,"1J"),o=e==="5S"&&c.3V("86",[l,k])>-1;e={};17 x={};if(o)x=f.2C();l=o?x.27:2l(l,10)||0;k=o?x.1J:2l(k,10)||0;if(c.1I(b))b=b.1n(a,d,h);if(b.27!=1b)e.27=b.27-h.27+l;if(b.1J!=1b)e.1J=b.1J-h.1J+k;"fK"in b?b.fK.1n(a,e):f.1y(e)}};c.fn.1E({2C:12(){if(!6[0])14 1b;17 a=6[0],b=6.5K(),d=6.2p(),e=8X.1g(b[0].1o)?{27:0,1J:0}:b.2p();d.27-=1X(c.1y(a,"7l"))||0;d.1J-=1X(c.1y(a,"aU"))||0;e.27+=1X(c.1y(b[0],"98"))||0;e.1J+=1X(c.1y(b[0],"9e"))||0;14{27:d.27-e.27,1J:d.1J-e.1J}},5K:12(){14 6.2T(12(){19(17 a=6.5K||t.1N;a&&!8X.1g(a.1o)&&c.1y(a,"2C")==="8W";)a=a.5K;14 a})}});c.1m(["dU","dV"],12(a,b){17 d="82"+b;c.fn[d]=12(e){17 f=6[0],h;if(!f)14 1b;if(e!==B)14 6.1m(12(){if(h=fa(6))h.iR(!a?e:c(h).4H(),a?e:c(h).4t());1a 6[d]=e});1a 14(h=fa(f))?"8V"in h?h[a?"e5":"8V"]:c.1t.5w&&h.1x.28[d]||h.1x.1N[d]:f[d]}});c.1m(["iQ","dS"],12(a,b){17 d=b.1O();c.fn["iP"+b]=12(){14 6[0]?1X(c.1y(6[0],d,"5Q")):1b};c.fn["iS"+b]=12(e){14 6[0]?1X(c.1y(6[0],d,e?"4D":"4V")):1b};c.fn[d]=12(e){17 f=6[0];if(!f)14 e==1b?1b:6;if(c.1I(e))14 6.1m(12(l){17 k=c(6);k[d](e.1n(6,l,k[d]()))});if(c.5n(f))14 f.1x.iV==="iU"&&f.1x.28["9D"+b]||f.1x.1N["9D"+b];1a if(f.1h===9)14 2f.41(f.28["9D"+b],f.1N["82"+b],f.28["82"+b],f.1N["2p"+b],f.28["2p"+b]);1a if(e===B){f=c.1y(f,d);17 h=1X(f);14 c.5y(h)?f:h}1a 14 6.1y(d,1j e==="1H"?e:e+"2V")}})})(4S);(12(3F){3F.1m([\'ev\',\'kE\',\'ji\',\'jl\',\'jm\',\'2j\',\'jo\'],12(i,1r){3F.fx.4u[1r]=12(fx){if(fx.78==0){fx.3U=eJ(fx.1w,1r);fx.3T=9l(fx.3T)}fx.1w.1d[1r]="9I("+[2f.41(2f.9F(2l((fx.5f*(fx.3T[0]-fx.3U[0]))+fx.3U[0]),1S),0),2f.41(2f.9F(2l((fx.5f*(fx.3T[1]-fx.3U[1]))+fx.3U[1]),1S),0),2f.41(2f.9F(2l((fx.5f*(fx.3T[2]-fx.3U[2]))+fx.3U[2]),1S),0)].48(",")+")"}});12 9l(2j){17 1U;if(2j&&2j.7u==3c&&2j.18==3)14 2j;if(1U=/9I\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.1V(2j))14[2l(1U[1]),2l(1U[2]),2l(1U[3])];if(1U=/9I\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.1V(2j))14[1X(1U[1])*2.55,1X(1U[2])*2.55,1X(1U[3])*2.55];if(1U=/#([a-fA-5u-9]{2})([a-fA-5u-9]{2})([a-fA-5u-9]{2})/.1V(2j))14[2l(1U[1],16),2l(1U[2],16),2l(1U[3],16)];if(1U=/#([a-fA-5u-9])([a-fA-5u-9])([a-fA-5u-9])/.1V(2j))14[2l(1U[1]+1U[1],16),2l(1U[2]+1U[2],16),2l(1U[3]+1U[3],16)];14 eh[3F.5D(2j).1O()]}12 eJ(1w,1r){17 2j;do{2j=3F.eI(1w,1r);if(2j!=\'\'&&2j!=\'j7\'||3F.1o(1w,"1N"))2c;1r="ev"}ei(1w=1w.1q);14 9l(2j)};17 eh={jc:[0,1S,1S],jd:[eG,1S,1S],jf:[ee,ee,je],iO:[0,0,0],iN:[0,0,1S],io:[dX,42,42],im:[0,1S,1S],il:[0,0,5t],ip:[0,5t,5t],iq:[9n,9n,9n],iu:[0,7c,0],ir:[ik,ij,eo],i9:[5t,0,5t],i8:[85,eo,47],i7:[1S,eF,0],ic:[ie,50,ii],ih:[5t,0,0],iv:[iw,iI,iH],iG:[iJ,0,8j],iK:[1S,0,1S],iM:[1S,iL,0],iF:[0,4k,0],iE:[75,0,iz],iy:[eG,eC,eF],ix:[iA,iB,eC],iD:[dF,1S,1S],iC:[dL,jp,dL],jq:[8j,8j,8j],kf:[1S,ke,kd],kg:[1S,1S,dF],kh:[0,1S,0],kj:[1S,0,1S],ki:[4k,0,0],kc:[0,0,4k],k9:[4k,4k,0],k4:[1S,dX,0],k3:[1S,84,k2],k5:[4k,0,4k],k6:[4k,0,4k],bh:[1S,0,0],k7:[84,84,84],kk:[1S,1S,1S],kl:[1S,1S,0]}})(3F);$(\'a.kx\').1r(\'2D\',\'kw\');17 2a=(12(){17 7S={};14 12(eY,1T){14(7S[1T]?7S[1T]:(7S[1T]=3j 4L("(?:\\\\s|^)"+1T+"(?:\\\\s|$)"))).1g(eY.1T)}})();17 c9=2;17 6h="33";17 b1="3i";12 b6(3J){17 2X=1x.2I("c6"+3J);17 b7=1x.2I("fc"+3J);if(!b7||!2X){14 1e}17 5r=b7.kz;if(2X.1v.1k==6h){19(17 i=1;i<5r.18;i++){5r[i].1d.1D="2z"}2X.1v.1k=b1}1a{19(17 i=1;i<5r.18;i++){5r[i].1d.1D=5r[0].1d.1D}2X.1v.1k=6h}}12 c1(){17 3J=0;17 8e=3j 6g();17 5J=1x.1Z("2B");19(17 i=0;i<5J.18;i++){if(2a(5J[i],"kC")){17 bt=5J[i].1Z("4e")[0];if(!bt)by;17 6t=bt.1Z("fl")[0];if(!6t)by;8e[3J]=5J[i];5J[i].2h("id","fc"+3J);17 2X=1x.1W("d1");17 5G=1x.1W("a");17 cd=1x.4o(6h);2X.1d.e1="bz";2X.1d.6y="bz";2X.1d.bP="ku";2X.1d.kp="bz";2X.1d.1Q="kn";5G.1d.2j=6t.1d.2j;5G.2h("id","c6"+3J);5G.2h("2P","3Q:b6("+3J+");");5G.2q(cd);2X.2q(1x.4o("["));2X.2q(5G);2X.2q(1x.4o("]"));6t.3n(2X,6t.2G[0]);3J++}}19(17 i=0;i<3J;i++){if(2a(8e[i],"b0")||(3J>=c9&&2a(8e[i],"kt"))){b6(i)}}}3B(c1);17 7s=\'[\'+6h+\']\';17 7t=\'[\'+b1+\']\';12 cp(4N){17 2R=1x.2I("2R"+4N);17 2J=1x.2I("2J"+4N);if(!2J||!2R){14 1e}if(2R.1v.1k==7s){19(17 1Y=2J.1v;1Y!=1b;1Y=1Y.2W){if(2a(1Y,\'7x\')||2a(1Y,\'7w\')){1Y.1d.1D=\'2z\'}}2R.1v.1k=7t}1a if(2R.1v.1k==7t){19(17 1Y=2J.1v;1Y!=1b;1Y=1Y.2W){if(2a(1Y,\'7x\')||2a(1Y,\'7w\')){1Y.1d.1D=\'4Q\'}}2R.1v.1k=7s}}12 bY(){17 4N=0;17 co=1x.1Z("1C");19(17 i=0;2J=co[i];i++){if(2a(2J,"2J")){4N++;17 2R=1x.1W("a");2R.1T=\'2R\';2R.2h(\'id\',\'2R\'+4N);2R.2h(\'2P\',\'3Q:cp(\'+4N+\');\');17 6x=2a(2J,"b0");19(17 1Y=2J.1v;1Y!=1b&&!6x;1Y=1Y.2W){if(2a(1Y,\'7w\')||2a(1Y,\'7x\')){if(1Y.1d.1D==\'2z\'){6x=1c}}}if(6x){19(17 1Y=2J.1v;1Y!=1b;1Y=1Y.2W){if(2a(1Y,\'7w\')||2a(1Y,\'7x\')){1Y.1d.1D=\'2z\'}}}17 bZ=1x.4o(6x?7t:7s);2R.2q(bZ);19(17 j=0;j<2J.2G.18;j++){if(2a(2J.2G[j],"jC")){2R.1d.2j=2J.2G[j].1d.2j;2J.2G[j].2q(2R)}}2J.2h(\'id\',\'2J\'+4N)}}}3B(bY);17 3h={b8:$.1t.2r,bd:12(1f,3r){14 $(1f.1K(\'.1f-1z\').1K(\'b5\').1K(\'li\')[2l(3r)])},bE:12(1f,3r,2v,ce){if(3r==2l(1f.1r(\'6p\'))&&!ce&&2v)14;if(!3h.b8){2v=0}1f.1r(\'6p\',3r.3K());17 7K=1f.1K(\'.1f-1z-4F\').1K();7K.1m(12(){$(6).dA(2v,12(){$(6).5C(\'1f-1z-2K\')})});$(7K[3r]).1m(12(){$(6).d9(2v,12(){$(6).6q(\'1f-1z-2K\')})});17 bi=1f.1K(\'.1f-1z\').1K(\'b5\').1K(\'li\');bi.5C(\'1f-1z-2K\');$(bi[3r]).6q(\'1f-1z-2K\');3h.df(1f,$(7K[3r]).2i())},df:12(1f,d6){if(1f.2a(\'1f-1z-jH\')){1f.1R(\'.1f-1z-aV\').2m(3h.bd(1f,1f.1r(\'6p\')).2m())}1a{1f.1R(\'.1f-1z-aV\').2m(1f.1r(\'dm\')+\' &jG; \'+3h.bd(1f,1f.1r(\'6p\')).2m())}if(1f.7N(\'.1f-1z-cu\')&&1f.7N(\'.1f-1z-d2\')){1P{1f.1R(\'.1f-1z-d2\').2m($(1f.1K(\'.1f-1z-cu\').1K(\'d1\')[2l(1f.1r(\'6p\'))]).2m())}1M(e){}}17 bl=2f.41(1f.1K(\'.1f-1z-4F\').2i(),2f.41(1f.1K(\'.1f-1z\').2i(),d6)).3K()+\'2V\';1f.1K(\'.1f-1z-4F\').1y(\'2i\',bl);if(1f.1r(\'cR\')){1f.1K(\'.1f-1z\').1y(\'2i\',bl)}},bv:12(1f){17 aZ=1f.1K(\'.1f-1z-jA\').1L().2M(\';\');17 2v=3h.b8?2l(1f.1r(\'d0\')):0;if(1f.1r(\'8x\')!=\'1c\'){1f.1r(\'8x\',\'1c\');1f.1R(\'.1f-1z-bA a\').1L(aZ[0]);1f.1K(\'.1f-1z, .1f-1z-4F\').dw(2v)}1a{1f.1r(\'8x\',\'\');1f.1R(\'.1f-1z-bA a\').1L(aZ[1]);1f.1K(\'.1f-1z, .1f-1z-4F\').dz(2v)}},aW:12(1f,2K){34(12(){1f.1r(\'jz\',2K.3K());3h.bE(1f,2K,0,1c);if(1f.2a(\'1f-1z-b0\')){3h.bv(1f)}},7c)},1f:12(){17 2u=$(6);2u.5C(\'1f-1z-jt\');17 bx=0;2u.1r(\'dm\',2u.1R(\'.1f-1z-aV\').2m());17 2K=/1f-1z-2K-(\\d+)/i.1V(2u.1r(\'2L\'));if(2K){3h.aW(2u,2l(2K[1])-1)}1a{3h.aW(2u,0)}17 2v=2u.2a(\'1f-1z-cZ\')?0:bs;2u.1r(\'d0\',2u.2a(\'1f-1z-cZ\')?\'0\':\'75\');2u.1K(\'.1f-1z\').1K(\'b5\').1K(\'li\').1m(12(){17 cA=bx;$(6).4r(12(){3h.bE(2u,cA,2v,1e);$(6).5A();$(6).1R(\'*\').5A();14 1e});bx++});17 bB=2u.2a(\'1f-1z-cR\');2u.1r(\'jv\',bB?\'1c\':\'\');if(bB){17 cP=2u.1K(\'.1f-1z\').1Q().3K()+\'2V\';2u.1K(\'.1f-1z-4F\').1y(\'4D-1J\',cP)}2u.1r(\'8x\',\'\');2u.1R(\'.1f-1z-bA a\').4r(12(){3h.bv(2u);14 1e})},3P:12(){$(\'.1f-1z-jx\').1m(3h.1f)}};3B(3h.3P);12 e4(){17 6i=[\'ar\',\'cs\',\'da\',\'de\',\'es\',\'fi\',\'fr\',\'hu\',\'it\',\'ja\',\'ko\',\'jV\',\'eg\',\'jU\',\'ci\',\'ci-br\',\'jT\',\'jW\',\'jX\',\'eR-jZ\',\'eR-jY\'];17 ft=\'en\';1P{17 1N=1x.1Z(\'1N\')[0]}1M(e){14}17 5B=ft;19(17 i in 6i){if(58.4d(58.18-1-6i[i].18).1O()==\'/\'+6i[i].1O()){5B=6i[i];2c}}if(1N.2t(\'2L\')){1N.2h(\'2L\',1N.2t(\'2L\')+\' 5B-\'+5B)}1a{1N.2h(\'2L\',\'5B-\'+5B)}}3B(e4);17 2o={8N:25,ez:0.85,8C:[\'.jR\',\'.jM\'],et:/53-(\\d+)x(\\d+)/i,dM:/4R((?:\\D+\\d+)+)/i,dT:12(){17 4R=2o.dM.1V($(6).1r(\'2L\'));if(4R!=1b){4R=4R[1].4d(1).2M(/\\D+/g);17 8P=$(\'#jL\').1Q();19(17 i in 2o.8C){if($(2o.8C[i]).18){8P-=$(2o.8C[i]).1Q()}}8P*=2o.ez;17 57=[];19(17 w=0;w<4R.18;w++){57[w]=2l(4R[w])}57.4K(12(a,b){14 b-a});19(17 w=0;w<57.18;w++){if(57[w]<=8P||w==57.18-1){2o.bu(6,57[w]);2c}}}1a{2o.bu(6,1X(2d.1r(\'1Q\')))}},hd:12(){17 2d=$(6).1K(\'29\');if(!2d)14;if($(6).2a(\'hd-3H\')){17 bw=2d.1K(\'56[3a="ec"]\').1r(\'37\')+\'&hd=1\';2d.1K(\'56[3a="ec"]\').1r(\'37\',bw);2d.1K(\'5M\').1r(\'4s\',bw);17 ek=$(6).2m();$(6).2m(\'\').2m(ek)}},bu:12(6M,1Q){17 2d=$(6M).1K(\'29\');if(!2d)14;if($(6M).2a(\'6M-36\')){2d.1r(\'1Q\',1Q).1r(\'2i\',2o.8N);2d.1K(\'5M\').1r(\'1Q\',1Q).1r(\'2i\',2o.8N)}1a{17 53=2o.et.1V($(6M).1r(\'2L\'));if(53!=1b){53=1X(53[1])/1X(53[2]);17 b4=2f.jP(1Q/53+2o.8N).3K();2d.1r(\'1Q\',1Q).1r(\'2i\',b4);2d.1K(\'5M\').1r(\'1Q\',1Q).1r(\'2i\',b4)}}},8E:1b,7L:12(){if(2o.8E!=1b){jK(2o.8E)}2o.8E=34(2o.bj,7c)},bj:12(){$(\'.cK\').1m(2o.dT)},3P:12(){$(\'.cK\').1m(2o.hd);$(4S).7L(2o.7L);2o.bj()}};3B(2o.3P);if(cf=="k0"||cf=="4g"||58=="ks:kq"){fj(\'1C.8i-1L { 1D:2z; }\');3B(12(){17 7F=1x.2I("km-kv");if(!7F||4S.kB){fj(\'1C.8i-1L { 1D:4Q; }\');14}17 2e=/(?:^| )8i-5I-(\\d+)(?: |$)/.1V(7F.1T);if(!2e&&4S.kA)2e=/(?:^| )8i-5I-(1g\\d+)(?: |$)/.1V(7F.1T);if(!2e)14;17 1B=a5+\'?65=j8:j9.js&aq=91&aJ=1L/3Q&jg=\'+2e[1];jh(1B)})}12 e2(){17 88=1x.2I(\'ca-jn\');if(88&&88.1T==\'3j\'){88.1v.2P+=\'&iT=3j\'}}3B(e2);17 1i={};1i.9M=\'3u://3s.3t.3m/w/3q/7/73/iW.3C\';1i.aM=iX;1i.96=\'3u://3s.3t.3m/w/3q/8/8f/j1.3C\';1i.9K=\'3u://3s.3t.3m/w/3q/4/4a/kD.kH\';1i.7i=40;1i.eP=bR;1i.dO=lW;1i.e7=bR;1i.dQ=lQ;1i.7b=12(){14 1x.2I(\'4F\')};1i.7D=[];1i.7h=[];1i.a3={};1i.7g=[1i.9M,1i.96];1i.1s=1b;1i.aG=1e;1i.am=1e;1i.8F=1e;if(!3c.2w.23){3c.2w.23=12(2d,4T){if(4T==1b){4T=0}1a if(4T<0){4T=2f.41(0,6.18+4T)}19(17 i=4T,j=6.18;i<j;i++){if(6[i]===2d)14 i}14-1}}17 at={lO:1i,dc:12(3e){17 1s=1i.1s;17 1C=1x.1W(\'1C\');17 4z=1x.1W(\'4z\');4z.4s=3e;1C.2q(4z);34(12(){1i.7b().2q(1C)},1);14{\'1C\':1C,\'4z\':4z}},e8:12(){1i.am=1c;if(1i.aG){1i.1s.aC()}},eL:12(){1i.aG=1c;if(1i.am){1i.1s.aC()}},e9:12(8y,3k){17 1s=1i.1s;1P{17 36=1x.1W(\'36\');36.2h(\'4s\',8y);36.2h(\'1d\',\'1D: 2z;\');36.2h(\'l5\',\'1c\');1i.7b().2q(36);36.3G(\'lc\',3k,1e)}1M(e){}34(3k,l8)},ad:12(3e){17 1s=1i.1s;if(1i.7h.23(3e)==-1){1i.7h[1i.7h.18]=3e;17 6a=1s.dc(3e);1i.a3[3e]=6a[\'4z\'];6a[\'1C\'].2h(\'1d\',\'9R: 3y; 2i: 3o; 1Q: 3o; 43: 3y; z-3r: -fE;\')}if(1i.a3[3e].1Q){1i.7D[1i.7D.18]=3e}1a{34(12(){1s.ad(3e)},1i.7i)}},9z:12(3k){17 1s=1i.1s;17 a7=1c;19(17 i in 1i.7g){if(1i.7D.23(1i.7g[i])==-1){a7=1e}if(1i.7h.23(1i.7g[i])==-1){1s.ad(1i.7g[i])}}if(a7){3k()}1a{34(12(){1s.9z(3k)},1i.7i)}},cj:12(7e){1P{7e.1q.3l(7e)}1M(e){}},9x:12(3I){14(2f.lP((3I-.5)*2f.cG)+1)/2},a4:12(7j,8T,5N,3k,3Z){17 1s=1i.1s;7j(3Z(8T/5N));if(8T>=5N){3k()}1a{34(12(){1s.a4(7j,8T+1i.7i,5N,3k,3Z)},1i.7i)}},4j:12(7j,5N,3k,3Z){17 1s=1i.1s;14 1s.a4(7j,0.0,5N,3k,3Z)},fo:12(8y){17 1s=1i.1s;1P{17 36=1x.1W(\'36\');36.2h(\'4s\',8y);36.2h(\'1d\',\'1D: 2z;\');36.2h(\'lM\',\'1c\');1i.7b().2q(36)}1M(e){}},dH:12(6a){17 1s=1i.1s;19(17 7e in 6a){1s.cj(6a[7e])}1i.8F=1e},aC:12(){17 1s=1i.1s;if(1i.8F)14;1i.8F=1c;17 60=1x.1W(\'a\');60.2h(\'2P\',\'/\');60.2h(\'1d\',\'1D:4Q; 2C: 5S; 27: 3o; 1J: 3o; 1Q: ls; 2i: lq; 4V: 3o; dC: 1B(\'+1i.9M+\') eg-lr 3o -jj; z-3r: fE;\');1i.7b().2q(60);17 4m=1x.2I(\'p-dq\');17 cc=$(4m).2C().27;4m.1d.cm=\'fO fV\';17 c2=1x.2I(\'p-i5\');17 5W=1x.1W(\'1C\');5W.2h(\'2L\',\'ho\');5W.2h(\'1d\',\'7B: 1J; 4D:3o; 5Q:3o; 2i: 3o;\');4m.1q.3n(5W,4m);17 99=12(3I){3I=2l(3I*1i.aM);60.1d.cm=\'3o \'+(-1i.aM+3I).3K()+\'2V\';4m.1d.27=(3I+cc).3K()+\'2V\';c2.1d.7l=3I+\'2V\';5W.1d.2i=3I.3K()+\'2V\'};1s.4j(99,1i.eP,12(){1s.fo(1i.9K);34(12(){17 dR=4m.1Z(\'a\')[0].1d.80;4m.1Z(\'a\')[0].1d.80=\'1B(\'+1i.96+\')\';1s.4j(12(3I){99(1.0-3I)},1i.e7,12(){34(12(){4m.1Z(\'a\')[0].1d.80=dR;1s.dH([60,5W])},1i.dQ)},1s.9x)},1i.dO)},1s.9x)},dg:12(){17 1s=1i.1s;1s.9z(1s.e8);1s.e9(1i.9K,1s.eL)},bL:12(){17 1s=1i.1s;17 dt=12(){17 1F={7k:12(2d,1l,fn,7a){if(2d.3G)2d.3G(1l,fn,1e);1a if(2d.3S){2d["e"+1l+fn]=fn;2d[1l+fn]=12(){2d["e"+1l+fn](4S.1p,7a)};2d.3S("3H"+1l,2d[1l+fn])}},2H:"",8I:"gv",4G:12(38){6.7k(1x,"bo",12(e,7a){if(7a)1F=7a;1F.2H+=e?e.4M:1p.4M;if(1F.2H.18>1F.8I.18)1F.2H=1F.2H.4d((1F.2H.18-1F.8I.18));if(1F.2H==1F.8I){1F.5q();1F.2H="";14}},6);6.3b.4G(38)},5q:12(38){4S.66=38},3b:{8p:0,8a:0,7A:0,8Q:0,7f:1e,7R:1e,a8:"",4v:["9Y","9Y","9V","9V","ak","ag","ak","ag","8B","8B","8B"],5q:12(38){1F.5q(38)},4G:12(38){a8=6.4v;1F.7k(1x,"gR",12(e){if(e.eu.18==1&&1F.3b.7R==1c){17 9s=e.eu[0];1F.3b.7A=9s.7d;1F.3b.8Q=9s.8d;1F.3b.7f=1e;1F.3b.7R=1e;1F.3b.9X()}});1F.7k(1x,"hc",12(8k){if(1F.3b.7f==1c)1F.3b.9X(38)},1e);1F.7k(1x,"gO",12(8k){1F.3b.8p=8k.fk[0].7d;1F.3b.8a=8k.fk[0].8d;1F.3b.7f=1c;1F.3b.7R=1c})},9X:12(38){eO=2f.bQ(6.8p-6.7A);eD=2f.bQ(6.8a-6.8Q);x=((6.8p-6.7A)<0)?"ag":"ak";y=((6.8a-6.8Q)<0)?"9V":"9Y";1U=(eO>eD)?x:y;1U=(6.7f==1c)?"8B":1U;if(1U==6.4v[0])6.4v=6.4v.2A(1,6.4v.18);if(6.4v.18==0){6.4v=6.a8;6.5q(38)}}}};14 1F};17 1F=3j dt();1F.5q=12(){1s.dg.22(1s)};1F.4G()}};1i.1s=at;3B(at.bL);17 4h={6X:{\'lS\':\'3u://3s.3t.3m/w/3q/e/ea/jk.3C\',\'k8\':\'3u://3s.3t.3m/w/3q/5/54/jD.3C\',\'ju\':\'3u://3s.3t.3m/w/3q/e/ed/kN.3C\',\'jQ\':\'3u://3s.3t.3m/w/3q/5/59/jO.3C\',\'jN\':\'3u://3s.3t.3m/w/3q/f/f7/jS.3C\',\'jJ\':\'3u://3s.3t.3m/w/3q/0/jI/jy.3C\',\'jw\':\'3u://3s.3t.3m/w/3q/2/24/jr.3C\',\'jF\':\'3u://3s.3t.3m/w/3q/e/ed/jE.3C\',\'jB\':\'3u://3s.3t.3m/w/3q/b/b9/k1.3C\'},ej:12(){17 cl=1x.2I(\'6u\');if(!cl)14[];17 6u=1x.2I(\'6u\').1Z(\'a\');17 5v=[];17 l;19(17 i=0;i<6u.18;i++){l=6u[i].2t(\'65\');if(l.2e(/^kr:/i,\'\')){5v[5v.18]=l.4d(9).1u(/\\/[^/]+$/,\'\')}}14 5v},3V:12(b2,fs){19(17 i=0;i<b2.18;i++){if(b2[i]==fs){14 i}}14-1},3P:12(){if(1j(fy)!=\'3w\'){if(4h.3V(fy,\'ky\')!=-1){14}}1P{17 5v=4h.ej();17 1N=1x.1Z(\'1N\')[0]}1M(e){14}17 5m=[];if(1j(4h.6X[\'65-\'+eA])!=\'3w\'){5m[0]=4h.6X[\'65-\'+eA]}1a{19(17 i in 4h.6X){if(4h.3V(5v,i)!=-1){5m[5m.18]=4h.6X[i]}}}if(!5m.18)14;17 dY=5m[2f.j6(2f.j5()*5m.18)];1N.1d.80=\'1B(\'+dY+\')\'}};3B(4h.3P);17 4E={9N:[\'5l:fB\'],aK:[\'5l:fB\',\'5l:f2/j3\',\'5l:f2/iY\',\'5l:iZ\',\'5l:lY\',\'5l:m0/m1\'],cr:\'/f9.js\',dp:\'/f9.1y\',3P:12(){19(17 i in 4E.9N){if(58==4E.9N[i]){$.bS(a5+\'?65=\'+8u(58+4E.cr)+\'&aJ=1L/3Q&aq=91\')}}19(17 i in 4E.aK){if(58==4E.aK[i]){$(\'9Z\').4c($(\'<38 l6="kJ" 1l="1L/1y" kI="kF" />\').1r(\'2P\',a5+\'?65=\'+8u(58+4E.dp)+\'&aJ=1L/1y&aq=91\'))}}}};3B(4E.3P);3B(12(){$(\'.eK-3a-1L\').4r(12(){$(6).6A().1K(\'.eK-9A\').4q()})});3B(12(){$(\'#p-dq a\').1y(\'dC-3e\',\'1B(3u://3s.3t.3m/w/3q/5/5b/gu.3C)\')});',62,1371,'||||||this||||||||||||||||||||||||||||||||||||||||||||||||||||||||||function||return|||var|length|for|else|null|true|style|false|poot|test|nodeType|spaiConstants|typeof|data|type|each|call|nodeName|event|parentNode|attr|self|support|replace|firstChild|elem|document|css|tabs|arguments|url|div|display|extend|konami|push|string|isFunction|left|children|text|catch|body|toLowerCase|try|width|find|255|className|result|exec|createElement|parseFloat|NavChild|getElementsByTagName||filter|apply|indexOf|||options|top|documentElement|object|hasClass|selector|break|obj|match|Math|context|setAttribute|height|color|guid|parseInt|html||youtubeHelper|offset|appendChild|opacity|ownerDocument|getAttribute|dis|duration|prototype|expr|prop|none|slice|table|position|target|handle|script|childNodes|input|getElementById|NavFrame|selected|class|split|remove|events|href|now|NavToggle|innerHTML|map|trigger|px|nextSibling|Button|select|get|add|error||hide|setTimeout|tbody|audio|value|link|delete|name|iphone|Array|handler|image|dataType|isArray|pootTabsHere|show|new|callback|removeChild|com|insertBefore|0px|ready|images|index|wiki|teamfortress|http|pushStack|undefined|splice|hidden|complete|expando|addOnloadHook|png|button|queue|jQuery|addEventListener|on|progress|tableIndex|toString|filters|global|contains|cache|init|javascript|_default|attachEvent|end|start|inArray|namespace|checked|offsetTop|easing||max||overflow|special|preventDefault|set||join|makeArray||relative|append|substr|tr|td|submit|dynamicBg|live|animate|128|ID|logoPortlet|shift|createTextNode|disabled|toggle|click|src|scrollTop|step|keys|radio|success|nth|img|dequeue|currentStyle|number|margin|pageScripts|content|load|scrollLeft|browser|teardown|sort|RegExp|keyCode|indexNavigationBar|setup|domManip|block|widths|window|fromIndex|removeAttribute|border|merge|json|async|timeout||readyState|onreadystatechange|ratio|||param|intWidths|wgPageName||val||ajaxSettings|cloneNode|stopPropagation|pos|dir|POS|compareDocumentPosition|1px|getAttributeNode|User|selectedCats|isWindow|Event|checkbox|code|Rows|handleComplete|139|F0|cats|boxModel|status|isNaN|abort|blur|lang|removeClass|trim|grep|inline|ButtonLink|ajax|version|Tables|offsetParent|isEmptyObject|embed|totalTime|PSEUDO|isXML|padding|mouseenter|absolute|focusout|closest|unbind|tempPortlet|proxy|option|previousSibling|spai|mouseleave|sizcache|offsetWidth|removeData|title|location|handleObj|uFFFF|first|nodes|TAG|u00c0|GET|focus|change|Object|collapseCaption|langList|which|relatedTarget|props|currentTarget|isReady|__events__|pootSelected|addClass|one|last|Header|catlinks|removeEventListener|liveFired|isCollapsed|cssFloat|CLASS|parent|cssHooks|file|noData|cleanData|fragment|replaceWith|reliableHiddenOffsets|textarea|jquery|password|triggerGlobal|youtube|xml|form|empty|custom|getElementsByClassName|noop|level|setRequestHeader|querySelectorAll|unshift|categories|defaultView|timers|curAnim|cur|orig||speeds||not|matchesSelector|state|zoom|ref_obj|theBody|100|pageX|node|tap|toPreloadImages|preloadingImages|timeStep|func|addEvent|marginTop|olddisplay|boolean|isImmediatePropagationStopped|xhr|charCode|order|NavigationBarHide|NavigationBarShow|constructor|attrHandle|NavPic|NavContent|camelCase|selectedIndex|stop_x|float|detachEvent|preloadedImages|active|placeholder|fromElement|handleSuccess|getText|isPropagationStopped|babies|resize|responseText|has|lastModified|etag|nodeValue|capture|reCache|attrFn|sizset|pop|clientLeft|getComputedStyle|offsetLeft|initialize|backgroundImage|preType|scroll|focusin|192||auto|clientTop|talkpagelink|case|start_y|leftMatch|source|pageY|NavigationBoxes||CHILD|specialEasing|edittools|211|evt|triggerHandler|odd|even|origType|start_x|toUpperCase|JSON|jsonp|unique|encodeURIComponent|toArray|wrapAll|pootcollapse|sound|bind|multiple|TAP|infoboxes|application|resizeTimer|fired|isPlainObject|accepts|pattern|readyWait|concat|access|offsetHeight|chromeSize|checkClone|availableWidth|stop_y|before|deleteExpando|progressTime|mouseover|pageXOffset|static|Ia|removeEvent|unload|supportsFixedPosition|raw|fixed|buildFragment|Ca|bodyOffset|sappedLogo|mouseout|borderTopWidth|changeHeight||cacheable|Da|setOffset|borderLeftWidth|fragments|clean|isDefaultPrevented|originalEvent|Aa|wa|getRGB|va|169|onbeforeunload|ctrlKey|metaKey|after|touch|bindReady|clone|specialSubmit|Ba|smoothInOut|NAME|preloadImages|contents|leadingWhitespace|ya|client|ua|min|xa|_change_data|rgb|lastChild|spaiSappingMahWikiWav|fix|spaiImage|pagesJS|parseJSON|globalEval|protocol|visibility|parsererror|getResponseHeader|uniqueSort|DOWN|XMLHttpRequest|check_direction|UP|head|Ha|sibling|pa|preloadingRefs|inAnimation|wgScript|traditional|allPreloaded|orig_keys|notmodified|||Function|preloadImage|handleError|ma|RIGHT|onload|ajaxStop|contentType|LEFT|colgroup|loadedImages|startTime|swing|za|action||shrinkWrapBlocks|spaiSappinMahWiki|old|prevObject|update|attrMap|preFilter|unit|oa|stop|spySappingMahWiki|Ea|nodeIndex|qa|loadedSound|inlineBlockNeedsLayout|Ga|ctype|pagesCSS|runtimeStyle|spaiHeight|na|ATTR|Fa|isXMLDoc|Date|noCloneEvent|cssProps|marginLeft|titletext|delayHeight|ra|acceptData|pootLinkText|collapsed|expandCaption|haystack|String|newHeight|ul|collapseTable|Table|animationsEnabled||||onclick|getTab||attributes|inprogress|red|cowtabs|onResize|optDisabled|bestHeight|tabIndex|triggered|keydown|scriptEval|ta||200|HeaderRow|setWidth|toggleCollapse|playerUrl|ind|continue|right|hidelink|isVertical|clientX|sa|changeTab|col|paddingLeft|DOMContentLoaded|__className__|wrapInner|fieldset|initKonami|only|clientY|htmlSerialize|fontWeight|abs|2000|getScript|ActiveXObject|area|thead|expression|optgroup|createNavigationBarToggleButton|NavToggleText|wb|createCollapseButtons|navPortlet|vb|uaMatch|getTime|collapseButton|setFilters|speed|autoCollapse|||logoPortletOffset|ButtonText|force|wgAction|xA0|TEST|pt|destroyNode|setInterval|catlinksnode|backgroundPosition|toggleClass|divs|toggleNavigationBar|webkit|suffixJS||_toggle|edittabs|Ja|prevAll|If|prevUntil|open|thisInd|pb|ob|ifModified|elements|parents|PI|beforeSend|ajaxSend|username|youtubebox|mb|matches|processData|ub|teenie|qb|vertical|rb|POST|scriptCharset|sb|ajaxStart|Za|_|noanimations|pootslideduration|span|navbar|Ra|Modified|httpNotModified|babysize|304|httpData|fadeIn|||createImgDiv|dataFilter||updatePoot|hitItDoc|selectors|fireEvent|Na|tb|ajaxError|originalTitle|||suffixCSS|logo|uuid|serializeArray|Konami|nb|httpSuccess|slideUp|ajaxComplete|ajaxSuccess|slideDown|fadeOut|linear|background|Qa|hover|224|origHandler|spyAnimationFinished|exclusive|Pa|die|144|widthsR|doScroll|anim_spaiWait|lastToggle|anim_sapperDestroyed|oldBackground|Width|setSize|Left|Top|frameElement|165|selectedCat|Xa|cssNumber|styleFloat|talkpageplus|Ya|langClass|pageYOffset|Oa|anim_spaiBackUp|imagesLoaded|preloadSound|||movie||245|appendTo|no|colors|while|getCategories|resultHtml|prepend|toElement||107|srcElement||Ka||ratioR|touches|backgroundColor|submitBubbles|specialChange|createDocumentFragment|maxWidth|wgTitle|beforeactivate|230|y_magnitude||140|240|changeBubbles|curCSS|getColor|diff|soundLoaded|readOnly|Ma|x_magnitude|anim_spaiFallDown|La|zh|Ua|htmlFor|getBoundingClientRect|throw|xb|000|element|solid|5px|visible|Pilk|Ta|getElementsByName|unrecognized|checkOn||interval|Page|||collapsibleTable|tick|Syntax|textContent|alpha|Sa||appendCSS|changedTouches|th|reset||playSound|parse|specified||needle|defaultLang|doesNotAddBorder|swap|subtractsBorderForOverflowNotVisible||wPrefs|keypress||WindPower|hasAttribute|doesAddBorderForTableAndCells|10000|Va|cellspacing|Wa|detach|cssText|using|doesNotIncludeMarginInBodyOffset|hrefNormalized|legend|center|compatible|mozilla|msie|bfnrt|parentWindow|AE6D|bottom|insertAfter|D27CDB6E|prependTo|opera|outerHTML|Boolean|isPrototypeOf|userAgent|array|unwrap|hasOwnProperty|512|wrap|u00a0|||noConflict|size|navigator|Number|optSelected|regexp||tfoot|clsid|safari|caption|meta|radiotest|Invalid|4px|rv|maxLength||Nothinghere|3838404037393739666513|charAt|dblclick|altKey|attrChange|bubbles|delegate|undelegate|attrName|mousedown|mouseup|child|property|0n|enabled|can|changed|mousemove|replaceAll|touchstart|keyup|cancelable|touchmove|shiftKey|cancelBubble|stopImmediatePropagation|screenY|returnValue|timeStamp|1E8|beforeunload|wheelDelta|view|screenX|relatedNode|beforedeactivate|layerX|eventPhase|detail|layerY|newValue|||touchend||prevValue|offsetY|offsetX|header|innerText|classid|andSelf|applet|parentsUntil|getData|portlet|delay|changeData||setData|Until||next|444553540000|contentDocument|contentWindow|11cf|reverse|iframe|96B8|prev|nextAll|nextUntil|siblings|clearQueue|HTML|tabindex|createComment|colSpan|colspan|usemap|useMap|switch|removeAttr|frameBorder|frameborder|rowSpan|__sizzle__|sizzle|maxlength|readonly|rea|msMatchesSelector|webkitMatchesSelector|rowspan|cellSpacing|finally|mozMatchesSelector|navigation|Accept|darkorange|darkolivegreen|darkmagenta|||darkorchid||153|||darkred|204|183|189|darkblue|cyan||brown|darkcyan|darkgrey|darkkhaki|||darkgreen|darksalmon|233|lightblue|khaki|130|173|216|lightgreen|lightcyan|indigo|green|darkviolet|122|150|148|fuchsia|215|gold|blue|black|inner|Height|scrollTo|outer|section|CSS1Compat|compatMode|Team_Fortress_Wiki_Egg_Spy|196|armorytest|Esquilax|able|Team_Fortress_Wiki_Egg_Logo_Sap|cellpadding|armory|20px|random|floor|transparent|MediaWiki|Edittools|||aqua|azure|220|beige|nocache|importScriptURI|borderLeftColor|50000px|Background_Scout_vector|borderRightColor|borderTopColor|talk|outlineColor|238|lightgrey|Background_Medic_vector||nojs|Pyro|pootvertical|Medic|container|Background_Heavy_vector|pootselected|showhide|Spy|NavHead|Background_Soldier_vector|Background_Sniper_vector|Sniper|mdash|notitle|03|Heavy|clearTimeout|bodyContent|testchamber|Engineer|Background_Demoman_vector|round|Demoman|infobox|Background_Engineer_vector|ro|pl|nl|ru|sv|hant|hans|edit|Background_Spy_vector|203|pink|orange|purple|violet|silver|Soldier|olive|||navy|193|182|lightpink|lightyellow|lime|maroon|magenta|white|yellow|editpage|6em||textAlign|Upload|Category|Special|autocollapse|normal|specialchars|_blank|external|noDynamicBackground|rows|testJsEdittools|noDefaultEdittools|collapsible|Team_Fortress_Wiki_Egg|borderBottomColor|screen|send|wav|media|stylesheet|1223|300|01|Background_Pyro_vector|Since|Type|Content|None|Match|With|Requested|Last|Etag|marginRight|paddingBottom|paddingTop|paddingRight|fadeTo|overflowY|overflowX|marginBottom|preload|rel|responseXML|1000|Microsoft|||canplaythrough|XMLHTTP|loaded|charset|pixelLeft|1em||fontSize|date|datetime|month|email|getPropertyValue|lineHeight|200px|repeat|160px||Right|zIndex|Bottom|range|search|urlencoded|www|ajaxSetup|plain|jsonpCallback|host|1_|post|getJSON|time|tel|week|HEAD|autoplay|serialize|constants|sin|2250|clearInterval|Scout|1E4|off|cos|900|slow|Lagg|animated|MogDog66|userpagev2|600|400|fadeToggle|fast|slideToggle'.split('|'),0,{}))
 
  
/* Google Analytics - Uncompressed */
+
// External links open in new windows/tabs:
 +
$('a.external').attr('target', '_blank');
 +
 
 +
/** Collapsible tables *********************************************************
 +
  *
 +
  *  Description: Allows tables to be collapsed, showing only the header. See
 +
  *              [[Wikipedia:NavFrame]].
 +
  *  Maintainers: [[User:R. Koot]]
 +
  */
 +
var hasClass = (function () {
 +
    var reCache = {};
 +
    return function (element, className) {
 +
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
 +
    };
 +
})();
 +
 
 +
var autoCollapse = 2;
 +
var collapseCaptionLang = {'ar': 'أخف', 'cs': 'sbalit', 'da': 'fold sammen', 'de': 'einklappen', 'es': 'contraer', 'fi': 'supista', 'fr': 'masquer', 'hu': 'becsuk', 'it': 'comprimi', 'ja': '折り畳む', 'ko': '접기', 'nl': 'samenvouwen', 'pl': 'zwiń', 'pt': 'ocultar', 'pt-br': 'ocultar', 'ro': 'restrânge', 'ru': 'свернуть', 'sv': 'dölj', 'tr': 'daralt', 'zh-hans': '折叠', 'zh-hant': '合併'};
 +
var expandCaptionLang = {'ar': 'أظهر', 'cs': 'rozbalit', 'da': 'fold ud', 'de': 'ausklappen', 'es': 'expandir', 'fi': 'Laajenna', 'fr': 'afficher', 'hu': 'kinyit', 'it': 'espandi', 'ja': '展開する', 'ko': '펼치기', 'nl': 'uitvouwen', 'pl': 'rozwiń', 'pt': 'expandir', 'pt-br': 'expandir', 'ro': 'extinde', 'ru': 'развернуть', 'sv': 'visa', 'tr': 'genişlet', 'zh-hans': '展开', 'zh-hant': '展開'};
 +
var collapseCaption = collapseCaptionLang[mw.config.get("wgPageName").split("/").pop()] || 'collapse';
 +
var expandCaption = expandCaptionLang[mw.config.get("wgPageName").split("/").pop()] || 'expand';
 +
 +
window.collapseTable = function ( tableIndex ) {
 +
    var Button = document.getElementById( 'collapseButton' + tableIndex );
 +
    var Table = document.getElementById( 'collapsibleTable' + tableIndex );
 +
 +
    if ( !Table || !Button ) {
 +
        return false;
 +
    }
 +
 +
    var Rows = Table.rows;
 +
    var i;
 +
 +
    if ( Button.firstChild.data === collapseCaption ) {
 +
        for ( i = 1; i < Rows.length; i++ ) {
 +
            Rows[i].style.display = 'none';
 +
        }
 +
        Button.firstChild.data = expandCaption;
 +
    } else {
 +
        for ( i = 1; i < Rows.length; i++ ) {
 +
            Rows[i].style.display = Rows[0].style.display;
 +
        }
 +
        Button.firstChild.data = collapseCaption;
 +
    }
 +
};
 +
 +
function createCollapseButtons() {
 +
    var tableIndex = 0;
 +
    var NavigationBoxes = {};
 +
    var Tables = document.getElementsByTagName( 'table' );
 +
    var i;
 +
 +
    function handleButtonLink( index, e ) {
 +
        window.collapseTable( index );
 +
        e.preventDefault();
 +
    }
 +
 +
    for ( i = 0; i < Tables.length; i++ ) {
 +
        if ( $( Tables[i] ).hasClass( 'collapsible' ) ) {
 +
 +
            /* only add button and increment count if there is a header row to work with */
 +
            var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
 +
            if ( !HeaderRow ) continue;
 +
            var Header = HeaderRow.getElementsByTagName( 'th' )[0];
 +
            if ( !Header ) continue;
 +
 +
            NavigationBoxes[ tableIndex ] = Tables[i];
 +
            Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
 +
 +
            var Button    = document.createElement( 'span' );
 +
            var ButtonLink = document.createElement( 'a' );
 +
            var ButtonText = document.createTextNode( collapseCaption );
 +
 +
            Button.className = 'collapseButton';  /* Styles are declared in Common.css */
 +
 +
            ButtonLink.style.color = Header.style.color;
 +
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
 +
            ButtonLink.setAttribute( 'href', '#' );
 +
            $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
 +
            ButtonLink.appendChild( ButtonText );
 +
 +
            Button.appendChild( document.createTextNode( '[' ) );
 +
            Button.appendChild( ButtonLink );
 +
            Button.appendChild( document.createTextNode( ']' ) );
 +
 +
            Header.insertBefore( Button, Header.firstChild );
 +
            tableIndex++;
 +
        }
 +
    }
 +
 +
    for ( i = 0;  i < tableIndex; i++ ) {
 +
        if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
 +
            window.collapseTable( i );
 +
        }
 +
        else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
 +
            var element = NavigationBoxes[i];
 +
            while ((element = element.parentNode)) {
 +
                if ( $( element ).hasClass( 'outercollapse' ) ) {
 +
                    window.collapseTable ( i );
 +
                    break;
 +
                }
 +
            }
 +
        }
 +
    }
 +
}
 +
 +
$( createCollapseButtons );
 +
 
 +
/** Dynamic Navigation Bars (experimental) *************************************
 +
*
 +
*  Description: See [[Wikipedia:NavFrame]].
 +
*  Maintainers: UNMAINTAINED
 +
*/
 +
 
 +
// set up the words in your language
 +
var NavigationBarHide = '[' + collapseCaption + ']';
 +
var NavigationBarShow = '[' + expandCaption + ']';
 +
 
 +
// shows and hides content and picture (if available) of navigation bars
 +
// Parameters:
 +
//    indexNavigationBar: the index of navigation bar to be toggled
 +
function toggleNavigationBar(indexNavigationBar){
 +
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
 +
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 +
 
 +
    if (!NavFrame || !NavToggle) {
 +
        return false;
 +
    }
 +
 
 +
    // if shown now
 +
    if (NavToggle.firstChild.data == NavigationBarHide) {
 +
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 +
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
 +
                NavChild.style.display = 'none';
 +
            }
 +
        }
 +
    NavToggle.firstChild.data = NavigationBarShow;
 +
 
 +
    // if hidden now
 +
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
 +
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 +
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
 +
                NavChild.style.display = 'block';
 +
            }
 +
        }
 +
        NavToggle.firstChild.data = NavigationBarHide;
 +
    }
 +
}
 +
 
 +
// adds show/hide-button to navigation bars
 +
function createNavigationBarToggleButton(){
 +
    var indexNavigationBar = 0;
 +
    // iterate over all < div >-elements
 +
    var divs = document.getElementsByTagName("div");
 +
    for (var i = 0; NavFrame = divs[i]; i++) {
 +
        // if found a navigation bar
 +
        if (hasClass(NavFrame, "NavFrame")) {
 +
 
 +
            indexNavigationBar++;
 +
            var NavToggle = document.createElement("a");
 +
            NavToggle.className = 'NavToggle';
 +
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 +
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 +
 
 +
            var isCollapsed = hasClass( NavFrame, "collapsed" );
 +
            /*
 +
            * Check if any children are already hidden.  This loop is here for backwards compatibility:
 +
            * the old way of making NavFrames start out collapsed was to manually add style="display:none"
 +
            * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
 +
            * the content visible without JavaScript support), the new recommended way is to add the class
 +
            * "collapsed" to the NavFrame itself, just like with collapsible tables.
 +
            */
 +
            for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
 +
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
 +
                    if ( NavChild.style.display == 'none' ) {
 +
                        isCollapsed = true;
 +
                    }
 +
                }
 +
            }
 +
            if (isCollapsed) {
 +
                for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 +
                    if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
 +
                        NavChild.style.display = 'none';
 +
                    }
 +
                }
 +
            }
 +
            var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide);
 +
            NavToggle.appendChild(NavToggleText);
 +
 
 +
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
 +
            for(var j=0; j < NavFrame.childNodes.length; j++) {
 +
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
 +
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
 +
                    NavFrame.childNodes[j].appendChild(NavToggle);
 +
                }
 +
            }
 +
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
 +
        }
 +
    }
 +
}
 +
 
 +
$( createNavigationBarToggleButton );
 +
 
 +
//END Collapsible tables *********************************************************
 +
 
 +
// PootTabs by User:WindPower~
 +
// It puts tabs on pages.
 +
var pootTabsHere = {
 +
    animationsEnabled: $.support.opacity,
 +
getTab:function(poot, index) {
 +
return $(poot.children('.poot-tabs').children('ul').children('li')[parseInt(index)]);
 +
},
 +
changeTab:function(poot, index, duration, force) {
 +
if(index == parseInt(poot.attr('pootSelected')) && !force && duration) return;
 +
if(!pootTabsHere.animationsEnabled) {
 +
duration = 0;
 +
}
 +
poot.attr('pootSelected', index.toString());
 +
var babies = poot.children('.poot-tabs-content').children();
 +
babies.each(function() {
 +
$(this).fadeOut(duration, function(){
 +
$(this).removeClass('poot-tabs-selected');
 +
});
 +
});
 +
$(babies[index]).each(function() {
 +
$(this).fadeIn(duration, function(){
 +
$(this).addClass('poot-tabs-selected');
 +
});
 +
});
 +
var cowtabs = poot.children('.poot-tabs').children('ul').children('li');
 +
cowtabs.removeClass('poot-tabs-selected');
 +
$(cowtabs[index]).addClass('poot-tabs-selected');
 +
pootTabsHere.updatePoot(poot, $(babies[index]).height());
 +
},
 +
updatePoot:function(poot, babysize) {
 +
if(poot.hasClass('poot-tabs-notitle')) {
 +
poot.find('.poot-tabs-titletext').html(pootTabsHere.getTab(poot, poot.attr('pootSelected')).html());
 +
} else {
 +
poot.find('.poot-tabs-titletext').html(poot.attr('originalTitle') + ' &mdash; ' + pootTabsHere.getTab(poot, poot.attr('pootSelected')).html());
 +
}
 +
if(poot.has('.poot-tabs-edittabs') && poot.has('.poot-tabs-navbar')) {
 +
try {
 +
poot.find('.poot-tabs-navbar').html($(poot.children('.poot-tabs-edittabs').children('span')[parseInt(poot.attr('pootSelected'))]).html());
 +
} catch(e) {}
 +
}
 +
var bestHeight = Math.max(poot.children('.poot-tabs-content').height(), Math.max(poot.children('.poot-tabs').height(), babysize)).toString() + 'px';
 +
poot.children('.poot-tabs-content').css('height', bestHeight);
 +
if(poot.attr('vertical')) {
 +
poot.children('.poot-tabs').css('height', bestHeight);
 +
}
 +
},
 +
toggleCollapse:function(poot) {
 +
var pootLinkText = poot.children('.poot-tabs-showhide').text().split(';');
 +
var duration = pootTabsHere.animationsEnabled ? parseInt(poot.attr('pootslideduration')) : 0;
 +
if(poot.attr('pootcollapse') != 'true') {
 +
poot.attr('pootcollapse', 'true');
 +
poot.find('.poot-tabs-hidelink a').text(pootLinkText[0]);
 +
poot.children('.poot-tabs, .poot-tabs-content').slideUp(duration);
 +
}
 +
else {
 +
poot.attr('pootcollapse', '');
 +
poot.find('.poot-tabs-hidelink a').text(pootLinkText[1]);
 +
poot.children('.poot-tabs, .poot-tabs-content').slideDown(duration);
 +
}
 +
},
 +
delayHeight:function(poot, selected) {
 +
setTimeout(function() {
 +
poot.attr('pootselected', selected.toString());
 +
pootTabsHere.changeTab(poot, selected, 0, true);
 +
if(poot.hasClass('poot-tabs-collapsed')) {
 +
pootTabsHere.toggleCollapse(poot);
 +
}
 +
}, 100);
 +
},
 +
poot:function() {
 +
var dis = $(this);
 +
dis.removeClass('poot-tabs-nojs'); // If this thing runs, JS is on
 +
var ind = 0;
 +
dis.attr('originalTitle', dis.find('.poot-tabs-titletext').html());
 +
var selected = /poot-tabs-selected-(\d+)/i.exec(dis.attr('class'));
 +
if(selected) {
 +
pootTabsHere.delayHeight(dis, parseInt(selected[1])-1);
 +
}
 +
else {
 +
pootTabsHere.delayHeight(dis, 0);
 +
}
 +
var duration = dis.hasClass('poot-tabs-noanimations') ? 0 : 200;
 +
dis.attr('pootslideduration', dis.hasClass('poot-tabs-noanimations') ? '0' : '75');
 +
dis.children('.poot-tabs').children('ul').children('li').each(function(){
 +
var thisInd = ind;
 +
$(this).click(function(){
 +
pootTabsHere.changeTab(dis, thisInd, duration, false);
 +
$(this).blur();
 +
$(this).find('*').blur();
 +
return false;
 +
});
 +
ind++;
 +
});
 +
var isVertical = dis.hasClass('poot-tabs-vertical');
 +
dis.attr('pootvertical', isVertical ? 'true' : '');
 +
if(isVertical) {
 +
var teenie = dis.children('.poot-tabs').width().toString() + 'px';
 +
dis.children('.poot-tabs-content').css('margin-left', teenie);
 +
}
 +
dis.attr('pootcollapse', ''); // False
 +
dis.find('.poot-tabs-hidelink a').click(function(){
 +
pootTabsHere.toggleCollapse(dis);
 +
return false;
 +
});
 +
},
 +
init:function() {
 +
$('.poot-tabs-container').each(pootTabsHere.poot);
 +
}
 +
};
 +
$(pootTabsHere.init);
 +
 
 +
// Language support fixes
 +
var langFixes = {
 +
init: function() {
 +
// Supported list of languages (not including the default one):
 +
var langList = ['ar', 'cs', 'da', 'de', 'es', 'fi', 'fr', 'hu', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sv', 'tr', 'zh-hans', 'zh-hant'];
 +
// Assumed language if the page is in none of the languages above:
 +
var defaultLang = 'en';
 +
var lang = defaultLang;
 +
for(var i in langList) {
 +
if(mw.config.get('wgPageName').substr(mw.config.get('wgPageName').length - 1 - langList[i].length).toLowerCase() == '/' + langList[i].toLowerCase()) {
 +
lang = langList[i];
 +
break;
 +
}
 +
}
 +
$('body').addClass('lang-' + lang);
 +
}
 +
};
 +
$(langFixes.init);
 +
 
 +
// Custom tooltip component. See Template:Tooltip
 +
var wikiTooltip = {
 +
    init: function() {
 +
        var $tooltips = $('.wiki-tooltip .wiki-tooltip-content');
 +
        if ($tooltips[0]) {
 +
            $tooltips.each(function() {
 +
                var $this = $(this);
 +
                function handler() {
 +
                    // Check for links and handle them on handheld devices
 +
                    if (!!$this.closest('a').attr('href')) {
 +
                        $this.closest('a').removeAttr('title');
 +
 
 +
                        widthRect <= 1000 ? wikiTooltip.hasLink($this) : wikiTooltip.removeAnchor($this);
 +
                    }
 +
                   
 +
                    // Prevent tooltips from overflowing the viewport
 +
                    var bounding = $this[0].getBoundingClientRect();
 +
                    edgeRect = {
 +
                        left: Math.floor(($this.width() + bounding.left + 10)),
 +
                        right: Math.floor(($this.width() + bounding.right + 10))
 +
                    };
 +
 
 +
                    widthRect = $(window).innerWidth();
 +
                    if (edgeRect.left >= (widthRect || document.documentElement.clientWidth)) {
 +
                        $this.css('left', '');
 +
                        $this.css('right', '50%');
 +
                    } else if (edgeRect.right <= (widthRect || document.documentElement.clientWidth)) {
 +
                        $this.css('right', '');
 +
                        $this.css('left', '50%');
 +
                    }
 +
                }
 +
                $(handler);
 +
                setTimeout(function() {
 +
                    $(window).on('resize', handler);
 +
                }, 250);
 +
            });
 +
        }
 +
    },
 +
    hasLink: function(tooltip) {
 +
        if (tooltip.find('a').length < 1) {
 +
            var $a = $('<a>');
 +
            var url = tooltip.closest('a');
 +
            var href = url.attr('href');
 +
 
 +
            $a.attr('href', href);
 +
            url.attr('href', 'javascript:void(0);');
 +
            tooltip.append($a);
 +
        }
 +
    },
 +
    removeAnchor: function(tooltip) {
 +
        var url = tooltip.closest('a');
 +
        var href = url.attr('href');
 +
 
 +
        innerLink = tooltip.find('a').attr('href');
 +
        if (innerLink) {
 +
            href = innerLink;
 +
            url.attr('href', href);
 +
            tooltip.find('a').remove();
 +
        } else {
 +
            return;
 +
        }
 +
    }
 +
};
 +
$(wikiTooltip.init);
 +
 
 +
// Logged-in body class injection
 +
var loggedinBodyClass = {
 +
init: function() {
 +
$('body').addClass(mw.config.get('wgUserName') == null ? 'not-logged-in' : 'logged-in');
 +
}
 +
};
 +
$(loggedinBodyClass.init);
 +
 
 +
// Resize YouTube embed, turn HD on, etc, by User:WindPower
 +
var youtubeHelper = {
 +
chromeSize: 25, // This is the height (in pixels) of the chrome of YouTube's embedded video player. Update this whenever they release a new embedded video player
 +
maxWidth: 0.85, // Maximum fraction of the available width that the video may take
 +
infoboxes: ['.infobox', '.testchamber'], // Selectors of infobox-style boxes that should be deducted from the page's available width
 +
ratioR: /ratio-(\d+)x(\d+)/i,
 +
widthsR: /widths((?:\D+\d+)+)/i,
 +
setSize:function() {
 +
var widths = youtubeHelper.widthsR.exec($(this).attr('class'));
 +
if(widths != null) {
 +
widths = widths[1].substr(1).split(/\D+/g);
 +
var availableWidth = $('#bodyContent').width();
 +
for(var i in youtubeHelper.infoboxes) {
 +
if($(youtubeHelper.infoboxes[i]).length) {
 +
availableWidth -= $(youtubeHelper.infoboxes[i]).width();
 +
}
 +
}
 +
availableWidth *= youtubeHelper.maxWidth;
 +
var intWidths = [];
 +
for(var w = 0; w < widths.length; w++) {
 +
intWidths[w] = parseInt(widths[w]);
 +
}
 +
intWidths.sort(function(a, b){return b - a;});
 +
for(var w = 0; w < intWidths.length; w++) {
 +
if(intWidths[w] <= availableWidth || w == intWidths.length-1) {
 +
youtubeHelper.setWidth(this, intWidths[w]);
 +
break;
 +
}
 +
}
 +
}
 +
else {
 +
youtubeHelper.setWidth(this, parseFloat(obj.attr('width')));
 +
}
 +
},
 +
setUrl:function() {
 +
var obj = $(this).children('object');
 +
if(!obj.length) return;
 +
obj.append($('<param name="allowscriptaccess" value="true"></param>'));
 +
obj.append($('<param name="allowfullscreen" value="true"></param>'));
 +
var titleParts = mw.config.get('wgPageName').split(/\//g);
 +
var lang = 'en';
 +
if(titleParts.length == 2 && !mw.config.get('wgCanonicalSpecialPageName')) {
 +
lang = titleParts[titleParts.length-1];
 +
}
 +
var playerUrl = obj.children('param[name="movie"]').attr('value') + '&version=2&fs=1&theme=dark&color=white' + ($(this).hasClass('hd-on') ? '&hd=1' : '') + '&cc_load_policy=1&modestbranding=1&hl=' + lang + '&cc_lang_pref=' + lang;
 +
obj.children('param[name="movie"]').attr('value', playerUrl);
 +
obj.children('embed').attr('src', playerUrl).attr('allowscriptaccess', 'always').attr('allowfullscreen', 'true');
 +
var resultHtml = $(this).html();
 +
$(this).html('').html(resultHtml);
 +
},
 +
setWidth:function(youtube, width) {
 +
var obj = $(youtube).children('object');
 +
if(!obj) return;
 +
if($(youtube).hasClass('youtube-audio')) {
 +
obj.attr('width', width).attr('height', youtubeHelper.chromeSize); // Set <object> height
 +
obj.children('embed').attr('width', width).attr('height', youtubeHelper.chromeSize); // Set <embed> height
 +
}
 +
else {
 +
var ratio = youtubeHelper.ratioR.exec($(youtube).attr('class'));
 +
if(ratio != null) {
 +
ratio = parseFloat(ratio[1])/parseFloat(ratio[2]);
 +
var newHeight = Math.round(width / ratio + youtubeHelper.chromeSize).toString();
 +
obj.attr('width', width).attr('height', newHeight); // Set <object> height
 +
obj.children('embed').attr('width', width).attr('height', newHeight); // Set <embed> height
 +
}
 +
}
 +
},
 +
resizeTimer:null,
 +
resize:function() {
 +
if(youtubeHelper.resizeTimer != null) {
 +
clearTimeout(youtubeHelper.resizeTimer);
 +
}
 +
youtubeHelper.resizeTimer = setTimeout(youtubeHelper.onResize, 100);
 +
},
 +
onResize:function() {
 +
$('.youtubebox').each(youtubeHelper.setSize);
 +
},
 +
init:function() {
 +
$('.youtubebox').each(youtubeHelper.setUrl);
 +
$(window).resize(youtubeHelper.resize);
 +
youtubeHelper.onResize();
 +
}
 +
};
 +
$(youtubeHelper.init);
 +
 
 +
// Edittools loader copied from http://en.wikipedia.org/wiki/MediaWiki:Common.js/edit.js?oldid=407371785
 +
// Only slightly modified by seb26
 +
 
 +
/**
 +
*  Edittools javascript loader ************************************************
 +
*
 +
*  Description: Pulls in [[MediaWiki:Edittools.js]]. Includes a cache-bypassing
 +
*  version number in the URL in order to allow any changes to the edittools to
 +
*  be rapidly deployed to users.
 +
*
 +
*  Note that, by default, this function does nothing unless the element with
 +
*  the ID "editpage-specialchars" (which contains the old edittools code in
 +
*  [[MediaWiki:Edittools]], and will be retained as a placeholder in the new
 +
*  implementation) has a class named "edittools-version-NNN", where NNN is a
 +
*  number.  If the class name has "test" before the number, the code will only
 +
*  run for users who have set "window.testJsEdittools = true" in their user JS.
 +
*  The "test" should be retained in the class name until the new edittools
 +
*  implementation is ready and fully tested, and until at least 30 days have
 +
*  passed since this loader stub was added (which will be in 27 June 2008).
 +
*
 +
*  For compatibility with Alex Smotrov's original implementation, on which this
 +
*  code is loosely based (see [[mw:User talk:Alex Smotrov/edittools.js]]), this
 +
*  loader can also be disabled by setting "window.noDefaultEdittools = true".
 +
*
 +
*  Maintainers: [[User:Ilmari Karonen]]
 +
*/
 +
 
 +
if (['edit', 'submit'].indexOf(mw.config.get('wgAction')) !== -1 || mw.config.get('wgPageName') == "Special:Upload") //scripts specific to editing pages
 +
{
 +
 +
  // Prevent the static edittools from flashing before the compact edittools below is loaded.
 +
  mw.util.addCSS('div.edittools-text { display:none; }');
 +
 +
  $(function () {
 +
    // needs to be deferred until the DOM has fully loaded
 +
    var placeholder = document.getElementById("editpage-specialchars");
 +
    if (!placeholder || window.noDefaultEdittools) {
 +
      //Show the static edittools again for users with "window.noDefaultEdittools=true".
 +
      mw.util.addCSS('div.edittools-text { display:block; }');
 +
      return;
 +
    }
 +
    var match = /(?:^| )edittools-version-(\d+)(?: |$)/.exec(placeholder.className);
 +
 +
    // set window.testJsEdittools = true to enable testing before full deployment
 +
    if (!match && window.testJsEdittools)
 +
        match = /(?:^| )edittools-version-(test\d+)(?: |$)/.exec(placeholder.className);
 +
 +
    if (!match) return;
 +
    var url = mw.config.get('wgScript') + '?title=MediaWiki:Edittools.js&action=raw&ctype=text/javascript&nocache=' + match[1];
 +
    mw.loader.load(url);
 +
  });
 +
}
 +
 
 +
/********* MediaWiki:Valve.js *********/
 +
function talkpageplus()
 +
{
 +
    var talkpagelink = document.getElementById('ca-talk');
 +
    if (talkpagelink && talkpagelink.className == 'new')
 +
    {
 +
        talkpagelink.firstChild.href += '&section=new';
 +
    }
 +
}
 +
$(talkpageplus);
 +
 
 +
// Konami code easter egg by WindPower, modified by Wookipan
 +
// Constants:
 +
var spaiConstants = {};
 +
// Editable constants:
 +
// General info:
 +
spaiConstants.spaiEnabled = true;
 +
spaiConstants.spaiImage = '/w/images/7/73/Team_Fortress_Wiki_Egg_Spy.png';
 +
spaiConstants.spaiHeight = 196;
 +
spaiConstants.sapperClass = '--sapped';
 +
spaiConstants.spaiSappingMahWikiWav = '/w/images/4/4a/Team_Fortress_Wiki_Egg.wav';
 +
spaiConstants.timeStep = 40; // In milliseconds; 40 ms => 25 fps
 +
// Animation timing (all times in milliseconds):
 +
spaiConstants.anim_spaiFallDown = 2000; // Time for Spy to fall down
 +
spaiConstants.anim_spaiWait = 900; // Time Spy waits before going back up
 +
spaiConstants.anim_spaiBackUp = 2000; // Time for Spy to go back up
 +
spaiConstants.anim_sapperDestroyed = 2250; // Time until Sapper gets destroyed
 +
// End editable constants
 +
spaiConstants.theBody = function(){return document.getElementById('content');};
 +
spaiConstants.preloadedImages = [];
 +
spaiConstants.preloadingImages = [];
 +
spaiConstants.preloadingRefs = {};
 +
spaiConstants.toPreloadImage = spaiConstants.spaiImage;
 +
spaiConstants.self = null;
 +
spaiConstants.loadedSound = false;
 +
spaiConstants.loadedImages = false;
 +
spaiConstants.fired = false;
 +
// End constants
 +
 
 +
if (!Array.prototype.indexOf) {
 +
  Array.prototype.indexOf = function (obj, fromIndex) {
 +
    if (fromIndex == null) {
 +
        fromIndex = 0;
 +
    } else if (fromIndex < 0) {
 +
        fromIndex = Math.max(0, this.length + fromIndex);
 +
    }
 +
    for (var i = fromIndex, j = this.length; i < j; i++) {
 +
        if (this[i] === obj)
 +
            return i;
 +
    }
 +
    return -1;
 +
  };
 +
}
 +
 
 +
var spaiSappinMahWiki = {
 +
constants: spaiConstants,
 +
createImgDiv:function(image) {
 +
var self = spaiConstants.self;
 +
var div = document.createElement('div');
 +
var img = document.createElement('img');
 +
img.src = image;
 +
div.appendChild(img);
 +
setTimeout(function(){spaiConstants.theBody().appendChild(div);}, 1);
 +
return {
 +
'div': div,
 +
'img': img
 +
};
 +
},
 +
imagesLoaded:function() {
 +
spaiConstants.loadedImages = true;
 +
if(spaiConstants.loadedSound) {
 +
spaiConstants.self.spySappingMahWiki();
 +
}
 +
},
 +
soundLoaded:function() {
 +
spaiConstants.loadedSound = true;
 +
if(spaiConstants.loadedImages) {
 +
spaiConstants.self.spySappingMahWiki();
 +
}
 +
},
 +
preloadSound:function(sound, callback) {
 +
var self = spaiConstants.self;
 +
try {
 +
var audio = document.createElement('audio');
 +
audio.setAttribute('src', sound);
 +
audio.setAttribute('style', 'display: none;');
 +
audio.setAttribute('preload', 'true');
 +
spaiConstants.theBody().appendChild(audio);
 +
audio.addEventListener('canplaythrough', callback, false);
 +
}
 +
catch(e) {}
 +
setTimeout(callback, 1000); // Fallback
 +
},
 +
preloadImage:function(image) {
 +
var self = spaiConstants.self;
 +
if(spaiConstants.preloadingImages.indexOf(image) == -1) {
 +
spaiConstants.preloadingImages[spaiConstants.preloadingImages.length] = image;
 +
var nodes = self.createImgDiv(image);
 +
spaiConstants.preloadingRefs[image] = nodes['img'];
 +
nodes['div'].setAttribute('style', 'visibility: hidden; height: 0px; width: 0px; overflow: hidden; z-index: -10000;');
 +
}
 +
if(spaiConstants.preloadingRefs[image].width) {
 +
spaiConstants.preloadedImages[spaiConstants.preloadedImages.length] = image;
 +
}
 +
else
 +
{
 +
setTimeout(function(){self.preloadImage(image);}, spaiConstants.timeStep);
 +
}
 +
},
 +
preloadImages:function(callback) {
 +
var self = spaiConstants.self;
 +
var allPreloaded = true;
 +
for(var i in spaiConstants.toPreloadImages) {
 +
if(spaiConstants.preloadedImages.indexOf(spaiConstants.toPreloadImages[i]) == -1) {
 +
allPreloaded = false;
 +
}
 +
if(spaiConstants.preloadingImages.indexOf(spaiConstants.toPreloadImages[i]) == -1) {
 +
self.preloadImage(spaiConstants.toPreloadImages[i]);
 +
}
 +
}
 +
if(allPreloaded) {
 +
callback();
 +
} else {
 +
setTimeout(function(){self.preloadImages(callback);}, spaiConstants.timeStep);
 +
}
 +
},
 +
destroyNode:function(node) {
 +
try {
 +
node.parentNode.removeChild(node);
 +
} catch(e) {
 +
// Ze goggles, zey do nothin
 +
}
 +
},
 +
smoothInOut:function(progress) {
 +
return (Math.sin((progress-.5)*Math.PI)+1)/2;
 +
},
 +
inAnimation:function(func, progressTime, totalTime, callback, easing) {
 +
var self = spaiConstants.self;
 +
func(easing(progressTime / totalTime));
 +
if(progressTime >= totalTime) {
 +
callback();
 +
} else {
 +
setTimeout(function(){self.inAnimation(func, progressTime + spaiConstants.timeStep, totalTime, callback, easing);}, spaiConstants.timeStep);
 +
}
 +
},
 +
animate:function(func, totalTime, callback, easing) {
 +
var self = spaiConstants.self;
 +
return self.inAnimation(func, 0.0, totalTime, callback, easing);
 +
},
 +
playSound:function(sound) {
 +
var self = spaiConstants.self;
 +
try {
 +
var audio = document.createElement('audio');
 +
audio.setAttribute('src', sound);
 +
audio.setAttribute('style', 'display: none;');
 +
audio.setAttribute('autoplay', 'true');
 +
spaiConstants.theBody().appendChild(audio);
 +
}
 +
catch(e) {}
 +
},
 +
spyAnimationFinished:function(nodes) {
 +
var self = spaiConstants.self;
 +
for(var node in nodes) {
 +
self.destroyNode(nodes[node]);
 +
}
 +
spaiConstants.fired = false;
 +
},
 +
spySappingMahWiki:function() {
 +
var self = spaiConstants.self;
 +
if(spaiConstants.fired) return;
 +
spaiConstants.fired = true;
 +
var spai = document.createElement('a');
 +
spai.setAttribute('href', '/');
 +
spai.setAttribute('style', 'display:block; position: absolute; top: 0px; left: 0px; width: 160px; height: 200px; border: 0px; background: url('+spaiConstants.spaiImage+') no-repeat 0px -50000px; z-index: 10000;');
 +
spaiConstants.theBody().appendChild(spai);
 +
var logoPortlet = document.getElementById('p-logo');
 +
var changeHeight = function(progress) {
 +
progress = parseInt(progress * spaiConstants.spaiHeight);
 +
spai.style.backgroundPosition = '0px ' + (-spaiConstants.spaiHeight + progress).toString() + 'px';
 +
};
 +
self.animate(changeHeight, spaiConstants.anim_spaiFallDown, function(){
 +
self.playSound(spaiConstants.spaiSappingMahWikiWav);
 +
setTimeout(function(){
 +
logoPortlet.classList.add('wiki-logo' + spaiConstants.sapperClass);
 +
self.animate(function(progress){changeHeight(1.0-progress);}, spaiConstants.anim_spaiBackUp, function(){
 +
setTimeout(function(){
 +
logoPortlet.removeAttribute('class');
 +
self.spyAnimationFinished([spai]);
 +
}, spaiConstants.anim_sapperDestroyed);
 +
}, self.smoothInOut);
 +
}, spaiConstants.anim_spaiWait);
 +
}, self.smoothInOut);
 +
},
 +
hitItDoc:function() {
 +
var self = spaiConstants.self;
 +
self.preloadImages(self.imagesLoaded);
 +
self.preloadSound(spaiConstants.spaiSappingMahWikiWav, self.soundLoaded);
 +
},
 +
initKonami: function () {
 +
var self = spaiConstants.self;
 +
/*
 +
* Konami-JS ~
 +
* :: Now with support for touch events and multiple instances for
 +
* :: those situations that call for multiple easter eggs!
 +
* Code: https://github.com/georgemandis/konami-js
 +
* Copyright (c) 2009 George Mandis (https://george.mand.is)
 +
* Version: 1.6.3 (11/11/2021)
 +
* Licensed under the MIT License (http://opensource.org/licenses/MIT)
 +
* Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1+ and Android
 +
*/
 +
var Konami = function (callback) {
 +
var konami = {
 +
addEvent: function (obj, type, fn, ref_obj) {
 +
if (obj.addEventListener)
 +
obj.addEventListener(type, fn, false);
 +
else if (obj.attachEvent) {
 +
// IE
 +
obj["e" + type + fn] = fn;
 +
obj[type + fn] = function () {
 +
obj["e" + type + fn](window.event, ref_obj);
 +
}
 +
obj.attachEvent("on" + type, obj[type + fn]);
 +
}
 +
},
 +
removeEvent: function (obj, eventName, eventCallback) {
 +
if (obj.removeEventListener) {
 +
obj.removeEventListener(eventName, eventCallback);
 +
} else if (obj.attachEvent) {
 +
obj.detachEvent(eventName);
 +
}
 +
},
 +
input: "",
 +
pattern: "38384040373937396665",
 +
keydownHandler: function (e, ref_obj) {
 +
if (ref_obj) {
 +
konami = ref_obj;
 +
} // IE
 +
konami.input += e ? e.keyCode : event.keyCode;
 +
if (konami.input.length > konami.pattern.length) {
 +
konami.input = konami.input.substr((konami.input.length - konami.pattern.length));
 +
}
 +
if (konami.input === konami.pattern) {
 +
konami.code(konami._currentLink);
 +
konami.input = '';
 +
e.preventDefault();
 +
return false;
 +
}
 +
},
 +
load: function (link) {
 +
this._currentLink = link;
 +
this.addEvent(document, "keydown", this.keydownHandler, this);
 +
this.iphone.load(link);
 +
},
 +
unload: function () {
 +
this.removeEvent(document, 'keydown', this.keydownHandler);
 +
this.iphone.unload();
 +
},
 +
code: function (link) {
 +
window.location = link
 +
},
 +
iphone: {
 +
start_x: 0,
 +
start_y: 0,
 +
stop_x: 0,
 +
stop_y: 0,
 +
tap: false,
 +
capture: false,
 +
orig_keys: "",
 +
keys: ["UP", "UP", "DOWN", "DOWN", "LEFT", "RIGHT", "LEFT", "RIGHT", "TAP", "TAP"],
 +
input: [],
 +
code: function (link) {
 +
konami.code(link);
 +
},
 +
touchmoveHandler: function (e) {
 +
if (e.touches.length === 1 && konami.iphone.capture === true) {
 +
var touch = e.touches[0];
 +
konami.iphone.stop_x = touch.pageX;
 +
konami.iphone.stop_y = touch.pageY;
 +
konami.iphone.tap = false;
 +
konami.iphone.capture = false;
 +
konami.iphone.check_direction();
 +
}
 +
},
 +
touchendHandler: function () {
 +
konami.iphone.input.push(konami.iphone.check_direction());
 +
 
 +
if (konami.iphone.input.length > konami.iphone.keys.length) konami.iphone.input.shift();
 +
 
 +
if (konami.iphone.input.length === konami.iphone.keys.length) {
 +
var match = true;
 +
for (var i = 0; i < konami.iphone.keys.length; i++) {
 +
if (konami.iphone.input[i] !== konami.iphone.keys[i]) {
 +
match = false;
 +
}
 +
}
 +
if (match) {
 +
konami.iphone.code(konami._currentLink);
 +
}
 +
}
 +
},
 +
touchstartHandler: function (e) {
 +
konami.iphone.start_x = e.changedTouches[0].pageX;
 +
konami.iphone.start_y = e.changedTouches[0].pageY;
 +
konami.iphone.tap = true;
 +
konami.iphone.capture = true;
 +
},
 +
load: function (link) {
 +
this.orig_keys = this.keys;
 +
konami.addEvent(document, "touchmove", this.touchmoveHandler);
 +
konami.addEvent(document, "touchend", this.touchendHandler, false);
 +
konami.addEvent(document, "touchstart", this.touchstartHandler);
 +
},
 +
unload: function () {
 +
konami.removeEvent(document, 'touchmove', this.touchmoveHandler);
 +
konami.removeEvent(document, 'touchend', this.touchendHandler);
 +
konami.removeEvent(document, 'touchstart', this.touchstartHandler);
 +
},
 +
check_direction: function () {
 +
x_magnitude = Math.abs(this.start_x - this.stop_x);
 +
y_magnitude = Math.abs(this.start_y - this.stop_y);
 +
x = ((this.start_x - this.stop_x) < 0) ? "RIGHT" : "LEFT";
 +
y = ((this.start_y - this.stop_y) < 0) ? "DOWN" : "UP";
 +
result = (x_magnitude > y_magnitude) ? x : y;
 +
result = (this.tap === true) ? "TAP" : result;
 +
return result;
 +
}
 +
}
 +
}
 +
 
 +
typeof callback === "string" && konami.load(callback);
 +
if (typeof callback === "function") {
 +
konami.code = callback;
 +
konami.load();
 +
}
 +
 
 +
return konami;
 +
};
 +
// End of Konami-JS
 +
var konami = new Konami();
 +
konami.code = function() {
 +
if (spaiConstants.spaiEnabled) {
 +
self.hitItDoc.apply(self);
 +
}
 +
 +
document.dispatchEvent(new CustomEvent('konami:fire'));
 +
};
 +
konami.load();
 +
}
 +
};
 +
spaiConstants.self = spaiSappinMahWiki;
 +
$(spaiSappinMahWiki.initKonami);
 +
 
 +
// Dynamic background by WindPower
 +
// WindPower is secksy and makes this wiki awesome with his very breath. (- Smashman)
 +
var dynamicBg = {
 +
categories: {
 +
// Format:
 +
// 'CategoryName': 'URL of background image',  ---OR--- 'title-PageTitle': 'URL of background image',
 +
// Categories don't have to be class names, they can be things like "Weapons", "Featured articles", "Maps", "Help", etc.
 +
'Scout': '/w/images/e/ea/Background_Scout_vector.png',
 +
'Soldier': '/w/images/5/54/Background_Soldier_vector.png',
 +
'Pyro': '/w/images/e/ed/Background_Pyro_vector.png',
 +
                'Demoman': '/w/images/5/59/Background_Demoman_vector.png',
 +
                'Engineer': '/w/images/f/f7/Background_Engineer_vector.png',
 +
                'Heavy': '/w/images/0/03/Background_Heavy_vector.png',
 +
                'Medic': '/w/images/2/24/Background_Medic_vector.png',
 +
                'Sniper': '/w/images/e/ed/Background_Sniper_vector.png',
 +
                'Spy': '/w/images/b/b9/Background_Spy_vector.png'
 +
// (No comma at the end of the last line)
 +
},
 +
getCategories:function() {
 +
var catlinksnode = document.getElementById('catlinks');
 +
if(!catlinksnode) return [];
 +
var catlinks = document.getElementById('catlinks').getElementsByTagName('a');
 +
var cats = [];
 +
var l;
 +
for(var i = 0; i < catlinks.length; i++) {
 +
l = catlinks[i].getAttribute('title');
 +
if(l.match(/^Category:/i, '')) {
 +
cats[cats.length] = l.substr(9).replace(/\/[^/]+$/, '');
 +
}
 +
}
 +
return cats;
 +
},
 +
inArray:function(haystack, needle) {
 +
for(var i = 0; i < haystack.length; i++) {
 +
if(haystack[i] == needle) {
 +
return i;
 +
}
 +
}
 +
return -1;
 +
},
 +
init:function() {
 +
if(typeof(wPrefs) != 'undefined') {
 +
if(dynamicBg.inArray(wPrefs, 'noDynamicBackground') != -1) {
 +
return; // Script disabled
 +
}
 +
}
 +
try {
 +
var cats = dynamicBg.getCategories();
 +
var body = document.getElementsByTagName('body')[0];
 +
} catch(e) {
 +
return;
 +
}
 +
var selectedCats = [];
 +
if(typeof(dynamicBg.categories['title-' + mw.config.get('wgTitle')]) != 'undefined') {
 +
selectedCats[0] = dynamicBg.categories['title-' + mw.config.get('wgTitle')];
 +
}
 +
else {
 +
for(var i in dynamicBg.categories) {
 +
if(dynamicBg.inArray(cats, i) != -1) {
 +
selectedCats[selectedCats.length] = dynamicBg.categories[i];
 +
}
 +
}
 +
}
 +
if(!selectedCats.length) return; // No match, keep default style
 +
var selectedCat = selectedCats[Math.floor(Math.random()*selectedCats.length)];
 +
body.style.backgroundImage='url('+selectedCat+')';
 +
}
 +
};
 +
$(dynamicBg.init);
 +
 
 +
// Page-specific JavaScript/CSS
 +
var pageScripts = {
 +
pagesJS: ['Main_Page', 'User:WindPower', 'User:MogDog66', 'User:WindPower/Main_Page', 'User:Lexar/Main_Page/Template:Benjas', 'User:Lexar/RandomPage', 'User:Lexar/responsive_infobox', 'User:Lexar/sandbox', 'User:Tark', 'User:Tark/Sandbox', 'Team_Fortress_Wiki:April_Fools\'_Day/2021/Main_Page', 'User:PhoneWave', 'User:Wookipan/Sandbox'],
 +
pagesCSS: ['Main_Page', 'User:WindPower', 'User:Pilk/armory', 'User:Pilk', 'User:Esky', 'User:Lagg', 'User:MogDog66', 'User:CrushBOT', 'User:MogDog66/userpagev2', 'User:NVis', 'User:NVis/Sandbox', 'User:Lexar', 'User:MogDog66/MPR', 'User:WindPower/Main_Page', 'User:Moussekateer/3DViewer', 'User:T-Wayne', 'User:FreeXMan', 'User:Nixshadow', 'User:Ath', 'User:Carez', 'User:Lexar/Main_Page/Template:Benjas', 'User:Lexar/RandomPage', 'User:MogDog66/Sandbox', 'User:Obilisk', 'User:Lexar/itembox_tooltip', 'User:Lexar/sandbox', 'User:Lexar/responsive_infobox', 'User:Hagbard Celine', 'User:Wookipan', 'User:Wookipan/Sandbox', 'User:GrampaSwood', 'Team_Fortress_Wiki:April_Fools\'_Day/2019/Main_Page', 'User:Tark', 'User:Tark/Sandbox', 'User:Boba', 'User:Boba/Projects', 'User:FanCyy', 'User:Dan_greene', 'User:Boba/Sandbox', 'User:Ashe', 'Team_Fortress_Wiki:April_Fools\'_Day/2021/Main_Page', 'User:PhoneWave', 'User:Foxbite', 'User:Mediarch', 'User:Payn'],
 +
suffixJS: '/Page.js',
 +
suffixCSS: '/Page.css',
 +
init: function() {
 +
for(var i in pageScripts.pagesJS) {
 +
if(mw.config.get('wgPageName') == pageScripts.pagesJS[i]) {
 +
mw.loader.load(mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName') + pageScripts.suffixJS) + '&ctype=text/javascript&action=raw');
 +
}
 +
}
 +
for(var i in pageScripts.pagesCSS) {
 +
if(mw.config.get('wgPageName') == pageScripts.pagesCSS[i]) {
 +
mw.loader.load(mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName') + pageScripts.suffixCSS) + '&ctype=text/css&action=raw', 'text/css');
 +
}
 +
}
 +
}
 +
};
 +
$(pageScripts.init);
 +
 
 +
// Fancy diffs
 +
var fancyDiffs = {
 +
isBigDiff: false,
 +
isBigDiffThreshold: 72,
 +
toggle: function(element) {
 +
var expanded = element.hasClass('diff-expanded');
 +
var contents = element.parent().children('.diff-contents');
 +
if(expanded) { // Just collapse then
 +
element.removeClass('diff-expanded');
 +
if(fancyDiffs.isBigDiff) {
 +
contents.hide();
 +
} else {
 +
contents.slideUp('fast');
 +
}
 +
} else if(element.hasClass('diff-data-loaded')) { // Stuff is already loaded, expand
 +
element.addClass('diff-expanded');
 +
contents.slideDown('fast');
 +
} else if(!element.hasClass('diff-data-requested')) { // Stuff is not loaded
 +
element.addClass('diff-data-requested');
 +
var fileName = element.find('span').text().replace(/^\s+|\s+$/g);
 +
var patchName = element.closest('.diffname');
 +
var diffName = mw.config.get('wgPageName');
 +
if(patchName && patchName.length && patchName.attr('class')) {
 +
diffName = patchName.attr('class').substr(9);
 +
}
 +
$.get('/w/?title=Template:PatchDiff/' + encodeURIComponent(diffName.replace(/^Template:PatchDiff\//, '')) + '/' + encodeURIComponent(fileName) + '&action=raw', function(data) {
 +
contents.html(data);
 +
if(fancyDiffs.isBigDiff) {
 +
contents.show();
 +
} else {
 +
contents.slideDown('fast');
 +
}
 +
element.removeClass('diff-data-requested').addClass('diff-data-loaded').addClass('diff-expanded');
 +
});
 +
}
 +
 +
},
 +
init: function() {
 +
var diffText = $('.diff-name-text');
 +
if(diffText.length) {
 +
// Preload leetle gif
 +
$('body').append($('<img/>').attr('src', '/w/images/4/43/Patch_diff_loading.gif').css('display', 'none'));
 +
diffText.find('span').each(function() {
 +
$(this).text($(this).find('a').text().replace(/^\s+|\s+$/g));
 +
});
 +
diffText.click(function() {
 +
fancyDiffs.toggle($(this));
 +
return false;
 +
});
 +
fancyDiffs.isBigDiff = $('.diff-file').length > fancyDiffs.isBigDiffThreshold;
 +
}
 +
}
 +
};
 +
$(fancyDiffs.init);
 +
 
 +
// 3D/2D viewer
 +
$('#switch-to-3d').click(function() {
 +
$('.container-2d').hide();
 +
$('.viewer-3d, .viewer-3d-multi, .buttons-container-3d').show();
 +
});
 +
 
 +
$('#switch-to-2d').click(function() {
 +
$('.viewer-3d, .viewer-3d-multi, .buttons-container-3d').hide();
 +
$('.container-2d').show();
 +
});
 +
 
 +
// 3D model viewer
 +
var viewer3d = {
 +
dragging: null,
 +
draggingFrameX: 0,
 +
draggingFrameY: 0,
 +
viewers: [],
 +
frameThresholdX: 10,
 +
frameThresholdY: 128,
 +
realMod: function(x, y) {
 +
return ((x % y) + y) % y;
 +
},
 +
init: function() {
 +
$('.viewer-3d').each(viewer3d.bind);
 +
$(document).mouseup(viewer3d.release);
 +
$(document).mousemove(viewer3d.move);
 +
},
 +
bind: function() {
 +
var v = $(this);
 +
var num = viewer3d.viewers.length;
 +
var allModels = [];
 +
var modelID = 0;
 +
var viewerSize = 0;
 +
while(true) {
 +
var modelMap = v.find('.viewer-3d-map-' + modelID);
 +
var urlNode = v.find('.viewer-3d-url-' + modelID);
 +
if(!modelMap.length || !urlNode.length) break;
 +
var url = $('<div/>').html(urlNode.text()).text();
 +
var framesS = $('<div/>').html(modelMap.text()).text().replace(/^\s+|\s+$/g).split(/,/g);
 +
var frameMap = [];
 +
var heightMap = [];
 +
var leftCropMap = [];
 +
var totalW = parseInt(framesS[0]);
 +
var maxFrameW = parseInt(framesS[1]);
 +
var totalH = parseInt(framesS[2]);
 +
var verticalSteps = parseInt(framesS[3]);
 +
var midVertical = Math.floor(verticalSteps / 2);
 +
for(var f = 4; f < framesS.length; f += 3) {
 +
frameMap.push(parseInt(framesS[f]));
 +
heightMap.push(parseInt(framesS[f + 1]));
 +
leftCropMap.push(parseInt(framesS[f + 2]));
 +
}
 +
allModels.push({
 +
imageURL: url,
 +
map: frameMap,
 +
cropMap: leftCropMap,
 +
totalWidth: totalW,
 +
totalHeight: totalH,
 +
maxFrameWidth: maxFrameW,
 +
xStep: verticalSteps
 +
});
 +
viewerSize = Math.max(viewerSize, totalH, maxFrameW);
 +
modelID++;
 +
}
 +
if(!modelID) return;
 +
var overlayNode = $('<div class="viewer-3d-overlay"></div>');
 +
var frameN = v.find('.viewer-3d-frame');
 +
v.find('img').detach();
 +
var klasses = v.attr('class').split(/ /g);
 +
var startFrame = 0;
 +
for(var k in klasses) {
 +
if(klasses[k].substr(0, 11) == 'startframe-') {
 +
startFrame = Math.max(0, parseInt(klasses[k].substr(11)));
 +
}
 +
}
 +
var viewer = {
 +
node: v,
 +
frameX: startFrame,
 +
frameY: midVertical,
 +
models: allModels,
 +
currentModel: -1,
 +
frameNode: frameN,
 +
width: viewerSize,
 +
height: viewerSize,
 +
mouseX: 0,
 +
mouseY: 0,
 +
overlay: overlayNode
 +
};
 +
viewer3d.viewers.push(viewer);
 +
v.hover(viewer3d.hover, viewer3d.unhover).mousedown(viewer3d.drag).append(overlayNode).attr('data-id', num).css({
 +
width: viewer.width + 'px',
 +
height: viewer.height + 'px'
 +
});
 +
frameN.mousedown(viewer3d.drag).attr('data-id', num).css('height', viewer.height + 'px');
 +
viewer3d.changeVersion(viewer, 0);
 +
},
 +
getCurrentModel: function(v) {
 +
return v.models[v.currentModel];
 +
},
 +
changeVersion: function(v, version) {
 +
version = Math.max(0, Math.min(v.models.length - 1, version));
 +
if(v.currentModel == version) return;
 +
v.currentModel = version;
 +
v.frameNode.css('background', 'url(' + viewer3d.getCurrentModel(v).imageURL + ') top left no-repeat');
 +
viewer3d.display(v, v.frameX, v.frameY);
 +
},
 +
hover: function(e) {
 +
var v = viewer3d.getViewer(this);
 +
if(viewer3d.dragging != v) {
 +
v.overlay.animate({'opacity': '1'}, 'fast');
 +
}
 +
},
 +
unhover: function(e) {
 +
var v = viewer3d.getViewer(this);
 +
if(viewer3d.dragging != v) {
 +
v.overlay.animate({'opacity': '0.5'}, 'fast');
 +
}
 +
},
 +
drag: function(e) {
 +
var v = viewer3d.getViewer(this);
 +
v.mouseX = e.pageX;
 +
v.mouseY = e.pageY;
 +
viewer3d.dragging = v;
 +
draggingFrameX = v.frameX;
 +
draggingFrameY = v.frameY;
 +
return false;
 +
},
 +
release: function() {
 +
var v = viewer3d.dragging;
 +
viewer3d.dragging = null;
 +
if(v != null) {
 +
v.frameX = viewer3d.draggingFrameX;
 +
v.frameY = viewer3d.draggingFrameY;
 +
v.overlay.animate({'opacity': '0.5'}, 'fast');
 +
}
 +
viewer3d.draggingFrameX = 0;
 +
viewer3d.draggingFrameY = 0;
 +
},
 +
getViewer: function(node) {
 +
return viewer3d.viewers[parseInt($(node).attr('data-id'))];
 +
},
 +
display: function(v, frameX, frameY) {
 +
var model = viewer3d.getCurrentModel(v);
 +
var frameID = viewer3d.realMod(frameX * model.xStep + frameY, model.map.length);
 +
var frameOffset = model.map[frameID];
 +
var frameWidth = 0;
 +
if(frameID == model.map.length - 1) {
 +
frameWidth = model.totalWidth - frameOffset;
 +
} else {
 +
frameWidth = model.map[frameID + 1] - frameOffset;
 +
}
 +
v.frameNode.css({
 +
backgroundPosition: (-frameOffset - frameID) + 'px 0px',
 +
left: Math.round((v.width - model.maxFrameWidth) / 2.0 + model.cropMap[frameID]) + 'px',
 +
top: Math.round((v.height - model.totalHeight) / 2) + 'px',
 +
width: frameWidth + 'px',
 +
height: model.totalHeight + 'px'
 +
});
 +
},
 +
move: function(e) {
 +
if(viewer3d.dragging == null) {
 +
return;
 +
}
 +
var v = viewer3d.dragging;
 +
var model = viewer3d.getCurrentModel(v);
 +
var mouseDeltaX = e.pageX - v.mouseX;
 +
var mouseDeltaY = e.pageY - v.mouseY;
 +
var frameDeltaX = Math.round(mouseDeltaX / viewer3d.frameThresholdX);
 +
var frameDeltaY = -Math.round(mouseDeltaY / viewer3d.frameThresholdY);
 +
viewer3d.draggingFrameX = v.frameX + frameDeltaX;
 +
viewer3d.draggingFrameY = Math.max(0, Math.min(model.xStep - 1, v.frameY + frameDeltaY));
 +
viewer3d.display(v, viewer3d.draggingFrameX, viewer3d.draggingFrameY);
 +
}
 +
};
 +
$(viewer3d.init);
 +
var selector3d = {
 +
bind: function() {
 +
var viewer = viewer3d.getViewer($(this).find('.viewer-3d'));
 +
var keepGoing = true;
 +
var modelVariant = 0;
 +
var selector;
 +
while(keepGoing) {
 +
selector = $(this).find('.selector-' + modelVariant);
 +
if(selector.length) {
 +
selector.attr('data-variant', modelVariant).click(function() {
 +
viewer3d.changeVersion(viewer, parseInt($(this).attr('data-variant')));
 +
return false;
 +
});
 +
}
 +
modelVariant++;
 +
keepGoing = selector.length;
 +
}
 +
},
 +
init: function() {
 +
$('.viewer-3d-multi, .viewer-3d-container').each(selector3d.bind);
 +
}
 +
};
 +
$(selector3d.init);
 +
 
 +
// Code to get 3D viewer drag working on touch devices
 +
// Source: http://www.jquery4u.com/mobile/jquery-add-dragtouch-support-ipad/
 +
$.fn.addTouch = function(){
 +
    this.each(function(i,el){
 +
      $(el).bind('touchstart touchmove touchend touchcancel',function(){
 +
        //we pass the original event object because the jQuery event
 +
        //object is normalized to w3c specs and does not provide the TouchList
 +
        handleTouch(event);
 +
      });
 +
    });
 +
 
 +
    var handleTouch = function(event)
 +
    {
 +
      var touches = event.changedTouches,
 +
              first = touches[0],
 +
              type = '';
 +
 
 +
      switch(event.type)
 +
      {
 +
        case 'touchstart':
 +
          type = 'mousedown';
 +
          break;
 +
 
 +
        case 'touchmove':
 +
          type = 'mousemove';
 +
          event.preventDefault();
 +
          break;
 +
 
 +
        case 'touchend':
 +
          type = 'mouseup';
 +
          break;
 +
 
 +
        default:
 +
          return;
 +
      }
 +
 
 +
      var simulatedEvent = document.createEvent('MouseEvent');
 +
      simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);
 +
      first.target.dispatchEvent(simulatedEvent);
 +
    };
 +
  };
 +
 
 +
$('.viewer-3d').addTouch();
 +
 
 +
// End 3D viewer touch device code
 +
 
 +
// Start weapon wear table tabs -----
 +
var WeaponWearTable = {
 +
tabSwitch: function($this,tab,weapons,weapon) {
 +
if (!$this.hasClass('current')) {
 +
var tabIndex = $this.index();
 +
$this.parent().find('.current').removeClass('current');
 +
$this.addClass('current');
 +
weapons.find('.current').removeClass('current');
 +
weapon.eq(tabIndex).addClass('current');
 +
}
 +
},
 +
init: function() {
 +
$('.weapon-wear-table').each(function(){
 +
var $this = $(this),
 +
tabs = $this.children('.tabs'),
 +
tab = tabs.children('li'),
 +
weapons = $this.children('.weapons'),
 +
weapon = weapons.children('li');
 +
tab.click(function(){
 +
WeaponWearTable.tabSwitch($(this),tab,weapons,weapon);
 +
});
 +
});
 +
}
 +
};
 +
$(WeaponWearTable.init);
 +
// End weapon wear table tabs -----
 +
 
 +
// Start Bilibili iframe support -----
 +
var Bilibili = {
 +
  init: function() {
 +
    var $videos = $('.bilibili-video');
 +
    $videos.each(function() {
 +
      var $this = $(this);
 +
      var aid = parseInt($this.data('vaid'));
 +
      var danmaku = parseInt($this.data('vdanmaku'));
 +
      var page = parseInt($this.data('vpage'));
 +
      var width = $this.data('vwidth');
 +
      var height = $this.data('vheight');
 +
      var iframeSrc = 'https://www.bilibili.com/blackboard/html5mobileplayer.html?aid=' + aid + '&high_quality=1&danmaku=' + danmaku + '&page=' + page + '&hideCoverInfo=1&hideDanmakuButton=1';
 +
      var iframe = '<iframe src="' + iframeSrc + '" width="' + width + '" height="' + height + '" frameborder="0" allowfullscreen="true"></iframe>';
 +
      $this.append(iframe);
 +
    });
 +
  }
 +
};
 +
$(Bilibili.init);
 +
// End Bilibili iframe support -----
 +
 
 +
// Start custom username highlighting -----
 +
var uGroupHighlight = {
 +
  init: function() {
 +
    if ($('.mw-userlink')[0]) {
 +
      var params = {
 +
        action: 'query',
 +
        list: 'allusers',
 +
        augroup: ['sysop', 'moderator', 'bot'],
 +
        auprop: 'groups',
 +
        aulimit: 100,
 +
        format: 'json'
 +
      };
 +
 
 +
      var api = new mw.Api();
 +
 
 +
      api.get(params).done(function(data) {
 +
        var uGroups = data.query.allusers, user;
 +
        for (user in uGroups) {
 +
          var name = uGroups[user].name;
 +
          var group = uGroups[user].groups;
 +
 
 +
          $('bdi').each(function() {
 +
            if ($(this).text().match('\\b' + name + '\\b')) {
 +
              $(this).closest('.mw-userlink').addClass(group.includes('bot') ? 'bot' : 'staff');
 +
            }
 +
          });
 +
        }
 +
      });
 +
    }
 +
  },
 +
};
 +
$(uGroupHighlight.init);
 +
// End custom username highlighting -----
 +
 
 +
// Start login icon randomizer -----
 +
var iconRandomizer = {
 +
    init: function() {
 +
        var classes = [
 +
            '/w/images/3/33/Login_Scout.png',
 +
            '/w/images/d/d8/Login_Soldier.png',
 +
            '/w/images/7/71/Login_Pyro.png',
 +
            '/w/images/5/53/Login_Demoman.png',
 +
            '/w/images/3/35/Login_Heavy.png',
 +
            '/w/images/a/ab/Login_Engineer.png',
 +
            '/w/images/d/d4/Login_Medic.png',
 +
            '/w/images/e/e4/Login_Sniper.png',
 +
            '/w/images/2/27/Login_Spy.png'
 +
        ];
 +
 
 +
        // pick a random class image out of nine choices
 +
        pickClass = classes[Math.floor(Math.random() * classes.length)];
 +
 
 +
        // ensure all relative elements are hit
 +
        var nodes = $('#pt-userpage, #pt-anonuserpage, #pt-login');
 +
        if (nodes.length) {
 +
            for (var i = 0; i < nodes.length; i++) {
 +
                nodes.css('background-image', 'url(' + pickClass + ')');
 +
            }
 +
        }
 +
    }
 +
};
 +
 
 +
$(iconRandomizer.init);
 +
// End login icon randomizer -----
 +
 
 +
// Start 'Audio player'
 +
var audioPlayer = {
 +
    currentAudio: null,
 +
 
 +
    init: function () {
 +
        var audioPauseImg = new Image();
 +
        var audioPlayImg = new Image();
 +
        audioPauseImg.src = '/w/images/d/d2/Pause_icon.png';
 +
        audioPlayImg.src = '/w/images/6/67/Play_icon.png';
 +
 
 +
        $('.tfwiki-audio-player').each(function () {
 +
            var audioPlayerElement = $(this);
 +
            var audioLink = audioPlayerElement.children('a');
 +
            var audioURL = audioLink.attr('href');
 +
            var audio = null;
 +
            var audioStatus = audioPlayerElement.find('.tfwiki-audio-player-action');
 +
 +
audioStatus.removeClass('inactive');
 +
 
 +
            audioPlayerElement.on('click', function (e) {
 +
                if (e.target !== audioStatus[0]) {
 +
                    return;
 +
                }
 +
 
 +
                e.preventDefault();
 +
 +
                if (!audio) {
 +
                    audio = new Audio(audioURL);
 +
                    audio.volume = 0.5;
 +
                    audio.addEventListener('ended', function () {
 +
                        audioStatus.text(audioStatus.data('text-play'));
 +
                        audioStatus.removeClass('playing');
 +
                    });
 +
                }
 +
 
 +
                if (audioPlayer.currentAudio && audioPlayer.currentAudio !== audio) {
 +
                    audioPlayer.currentAudio.pause();
 +
                    audioPlayer.currentAudio.currentTime = 0;
 +
                    audioPlayer.currentAudioStatus.text(audioPlayer.currentAudioStatus.data('text-play'));
 +
                    audioPlayer.currentAudioStatus.removeClass('playing');
 +
                }
 +
 
 +
                if (audio.paused) {
 +
                    audio.play();
 +
                    audioStatus.text(audioStatus.data('text-pause'));
 +
                    audioPlayer.currentAudio = audio;
 +
                    audioPlayer.currentAudioStatus = audioStatus;
 +
                    audioStatus.addClass('playing');
 +
                } else {
 +
                    audio.pause();
 +
                    audioStatus.text(audioStatus.data('text-resume'));
 +
                    audioPlayer.currentAudio = null;
 +
                    audioPlayer.currentAudioStatus = null;
 +
                    audioStatus.removeClass('playing');
 +
                }
 +
            });
 +
 
 +
            audioLink.on('click', function (e) {
 +
                e.preventDefault();
 +
                window.open(audioURL, '_blank');
 +
            });
 +
        });
 +
    }
 +
};
 +
 
 +
$(audioPlayer.init);
 +
// End 'Audio player'
 +
 
 +
/* Google Analytics */
 
   var _gaq = _gaq || [];
 
   var _gaq = _gaq || [];
 
   _gaq.push(['_setAccount', 'UA-18260470-1']);
 
   _gaq.push(['_setAccount', 'UA-18260470-1']);
Line 14: Line 1,481:
 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 
   })();
 
   })();
 +
/* GoSquared analytics */
 +
  var GoSquared = {};
 +
  GoSquared.acct = "GSN-106863-S";
 +
  (function(w){
 +
    function gs(){
 +
      w._gstc_lt = +new Date;
 +
      var d = document, g = d.createElement("script");
 +
      g.type = "text/javascript";
 +
      g.src = "//d1l6p2sc9645hc.cloudfront.net/tracker.js";
 +
      var s = d.getElementsByTagName("script")[0];
 +
      s.parentNode.insertBefore(g, s);
 +
    }
 +
    w.addEventListener ?
 +
      w.addEventListener("load", gs, false) :
 +
      w.attachEvent("onload", gs);
 +
  })(window);

Latest revision as of 03:59, 10 May 2024

// This is the non-compressed version of MediaWiki:Common.js

// External links open in new windows/tabs:
$('a.external').attr('target', '_blank');

 /** Collapsible tables *********************************************************
  *
  *  Description: Allows tables to be collapsed, showing only the header. See
  *               [[Wikipedia:NavFrame]].
  *  Maintainers: [[User:R. Koot]]
  */
 var hasClass = (function () {
    var reCache = {};
    return function (element, className) {
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
    };
 })(); 

var autoCollapse = 2;
var collapseCaptionLang = {'ar': 'أخف', 'cs': 'sbalit', 'da': 'fold sammen', 'de': 'einklappen', 'es': 'contraer', 'fi': 'supista', 'fr': 'masquer', 'hu': 'becsuk', 'it': 'comprimi', 'ja': '折り畳む', 'ko': '접기', 'nl': 'samenvouwen', 'pl': 'zwiń', 'pt': 'ocultar', 'pt-br': 'ocultar', 'ro': 'restrânge', 'ru': 'свернуть', 'sv': 'dölj', 'tr': 'daralt', 'zh-hans': '折叠', 'zh-hant': '合併'};
var expandCaptionLang = {'ar': 'أظهر', 'cs': 'rozbalit', 'da': 'fold ud', 'de': 'ausklappen', 'es': 'expandir', 'fi': 'Laajenna', 'fr': 'afficher', 'hu': 'kinyit', 'it': 'espandi', 'ja': '展開する', 'ko': '펼치기', 'nl': 'uitvouwen', 'pl': 'rozwiń', 'pt': 'expandir', 'pt-br': 'expandir', 'ro': 'extinde', 'ru': 'развернуть', 'sv': 'visa', 'tr': 'genişlet', 'zh-hans': '展开', 'zh-hant': '展開'};
var collapseCaption = collapseCaptionLang[mw.config.get("wgPageName").split("/").pop()] || 'collapse';
var expandCaption = expandCaptionLang[mw.config.get("wgPageName").split("/").pop()] || 'expand';
 
window.collapseTable = function ( tableIndex ) {
    var Button = document.getElementById( 'collapseButton' + tableIndex );
    var Table = document.getElementById( 'collapsibleTable' + tableIndex );
 
    if ( !Table || !Button ) {
        return false;
    }
 
    var Rows = Table.rows;
    var i;
 
    if ( Button.firstChild.data === collapseCaption ) {
        for ( i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = 'none';
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
    }
};
 
function createCollapseButtons() {
    var tableIndex = 0;
    var NavigationBoxes = {};
    var Tables = document.getElementsByTagName( 'table' );
    var i;
 
    function handleButtonLink( index, e ) {
        window.collapseTable( index );
        e.preventDefault();
    }
 
    for ( i = 0; i < Tables.length; i++ ) {
        if ( $( Tables[i] ).hasClass( 'collapsible' ) ) {
 
            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
            if ( !HeaderRow ) continue;
            var Header = HeaderRow.getElementsByTagName( 'th' )[0];
            if ( !Header ) continue;
 
            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
 
            var Button     = document.createElement( 'span' );
            var ButtonLink = document.createElement( 'a' );
            var ButtonText = document.createTextNode( collapseCaption );
 
            Button.className = 'collapseButton';  /* Styles are declared in Common.css */
 
            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
            ButtonLink.setAttribute( 'href', '#' );
            $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
            ButtonLink.appendChild( ButtonText );
 
            Button.appendChild( document.createTextNode( '[' ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( ']' ) );
 
            Header.insertBefore( Button, Header.firstChild );
            tableIndex++;
        }
    }
 
    for ( i = 0;  i < tableIndex; i++ ) {
        if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
            window.collapseTable( i );
        } 
        else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
            var element = NavigationBoxes[i];
            while ((element = element.parentNode)) {
                if ( $( element ).hasClass( 'outercollapse' ) ) {
                    window.collapseTable ( i );
                    break;
                }
            }
        }
    }
}
 
$( createCollapseButtons );

/** Dynamic Navigation Bars (experimental) *************************************
 *
 *  Description: See [[Wikipedia:NavFrame]].
 *  Maintainers: UNMAINTAINED
 */

// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';

// shows and hides content and picture (if available) of navigation bars
// Parameters:
//     indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar){
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);

    if (!NavFrame || !NavToggle) {
        return false;
    }

    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;

    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'block';
            }
        }
        NavToggle.firstChild.data = NavigationBarHide;
    }
}

// adds show/hide-button to navigation bars
function createNavigationBarToggleButton(){
    var indexNavigationBar = 0;
    // iterate over all < div >-elements 
    var divs = document.getElementsByTagName("div");
    for (var i = 0; NavFrame = divs[i]; i++) {
        // if found a navigation bar
        if (hasClass(NavFrame, "NavFrame")) {

            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');

            var isCollapsed = hasClass( NavFrame, "collapsed" );
            /*
             * Check if any children are already hidden.  This loop is here for backwards compatibility:
             * the old way of making NavFrames start out collapsed was to manually add style="display:none"
             * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
             * the content visible without JavaScript support), the new recommended way is to add the class
             * "collapsed" to the NavFrame itself, just like with collapsible tables.
             */
            for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                    if ( NavChild.style.display == 'none' ) {
                        isCollapsed = true;
                    }
                }
            }
            if (isCollapsed) {
                for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
                    if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                        NavChild.style.display = 'none';
                    }
                }
            }
            var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide);
            NavToggle.appendChild(NavToggleText);

            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
            for(var j=0; j < NavFrame.childNodes.length; j++) {
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
                    NavFrame.childNodes[j].appendChild(NavToggle);
                }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
}

 $( createNavigationBarToggleButton );

//END Collapsible tables *********************************************************

// PootTabs by User:WindPower~
// It puts tabs on pages.
var pootTabsHere = {
    animationsEnabled: $.support.opacity,
	getTab:function(poot, index) {
		return $(poot.children('.poot-tabs').children('ul').children('li')[parseInt(index)]);
	},
	changeTab:function(poot, index, duration, force) {
		if(index == parseInt(poot.attr('pootSelected')) && !force && duration) return;
		if(!pootTabsHere.animationsEnabled) {
			duration = 0;
		}
		poot.attr('pootSelected', index.toString());
		var babies = poot.children('.poot-tabs-content').children();
		babies.each(function() {
			$(this).fadeOut(duration, function(){
				$(this).removeClass('poot-tabs-selected');
			});
		});
		$(babies[index]).each(function() {
			$(this).fadeIn(duration, function(){
				$(this).addClass('poot-tabs-selected');
			});
		});
		var cowtabs = poot.children('.poot-tabs').children('ul').children('li');
		cowtabs.removeClass('poot-tabs-selected');
		$(cowtabs[index]).addClass('poot-tabs-selected');
		pootTabsHere.updatePoot(poot, $(babies[index]).height());
	},
	updatePoot:function(poot, babysize) {
		if(poot.hasClass('poot-tabs-notitle')) {
			poot.find('.poot-tabs-titletext').html(pootTabsHere.getTab(poot, poot.attr('pootSelected')).html());
		} else {
			poot.find('.poot-tabs-titletext').html(poot.attr('originalTitle') + ' &mdash; ' + pootTabsHere.getTab(poot, poot.attr('pootSelected')).html());
		}
		if(poot.has('.poot-tabs-edittabs') && poot.has('.poot-tabs-navbar')) {
			try {
				poot.find('.poot-tabs-navbar').html($(poot.children('.poot-tabs-edittabs').children('span')[parseInt(poot.attr('pootSelected'))]).html());
			} catch(e) {}
		}
		var bestHeight = Math.max(poot.children('.poot-tabs-content').height(), Math.max(poot.children('.poot-tabs').height(), babysize)).toString() + 'px';
		poot.children('.poot-tabs-content').css('height', bestHeight);
		if(poot.attr('vertical')) {
			poot.children('.poot-tabs').css('height', bestHeight);
		}
	},
	toggleCollapse:function(poot) {
		var pootLinkText = poot.children('.poot-tabs-showhide').text().split(';');
		var duration = pootTabsHere.animationsEnabled ? parseInt(poot.attr('pootslideduration')) : 0;
		if(poot.attr('pootcollapse') != 'true') {
			poot.attr('pootcollapse', 'true');
			poot.find('.poot-tabs-hidelink a').text(pootLinkText[0]);
			poot.children('.poot-tabs, .poot-tabs-content').slideUp(duration);
		}
		else {
			poot.attr('pootcollapse', '');
			poot.find('.poot-tabs-hidelink a').text(pootLinkText[1]);
			poot.children('.poot-tabs, .poot-tabs-content').slideDown(duration);
		}
	},
	delayHeight:function(poot, selected) {
		setTimeout(function() {
			poot.attr('pootselected', selected.toString());
			pootTabsHere.changeTab(poot, selected, 0, true);
			if(poot.hasClass('poot-tabs-collapsed')) {
				pootTabsHere.toggleCollapse(poot);
			}
		}, 100);
	},
	poot:function() {
		var dis = $(this);
		dis.removeClass('poot-tabs-nojs'); // If this thing runs, JS is on
		var ind = 0;
		dis.attr('originalTitle', dis.find('.poot-tabs-titletext').html());
		var selected = /poot-tabs-selected-(\d+)/i.exec(dis.attr('class'));
		if(selected) {
			pootTabsHere.delayHeight(dis, parseInt(selected[1])-1);
		}
		else {
			pootTabsHere.delayHeight(dis, 0);
		}
		var duration = dis.hasClass('poot-tabs-noanimations') ? 0 : 200;
		dis.attr('pootslideduration', dis.hasClass('poot-tabs-noanimations') ? '0' : '75');
		dis.children('.poot-tabs').children('ul').children('li').each(function(){
			var thisInd = ind;
			$(this).click(function(){
				pootTabsHere.changeTab(dis, thisInd, duration, false);
				$(this).blur();
				$(this).find('*').blur();
				return false;
			});
			ind++;
		});
		var isVertical = dis.hasClass('poot-tabs-vertical');
		dis.attr('pootvertical', isVertical ? 'true' : '');
		if(isVertical) {
			var teenie = dis.children('.poot-tabs').width().toString() + 'px';
			dis.children('.poot-tabs-content').css('margin-left', teenie);
		}
		dis.attr('pootcollapse', ''); // False
		dis.find('.poot-tabs-hidelink a').click(function(){
			pootTabsHere.toggleCollapse(dis);
			return false;
		});
	},
	init:function() {
		$('.poot-tabs-container').each(pootTabsHere.poot);
	}
};
$(pootTabsHere.init);

// Language support fixes
var langFixes = {
	init: function() {
		// Supported list of languages (not including the default one):
		var langList = ['ar', 'cs', 'da', 'de', 'es', 'fi', 'fr', 'hu', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sv', 'tr', 'zh-hans', 'zh-hant'];
		// Assumed language if the page is in none of the languages above:
		var defaultLang = 'en';
		var lang = defaultLang;
		for(var i in langList) {
			if(mw.config.get('wgPageName').substr(mw.config.get('wgPageName').length - 1 - langList[i].length).toLowerCase() == '/' + langList[i].toLowerCase()) {
				lang = langList[i];
				break;
			}
		}
		$('body').addClass('lang-' + lang);
	}
};
$(langFixes.init);

// Custom tooltip component. See Template:Tooltip
var wikiTooltip = {
    init: function() {
        var $tooltips = $('.wiki-tooltip .wiki-tooltip-content');
        if ($tooltips[0]) {
            $tooltips.each(function() {
                var $this = $(this);
                function handler() {
                    // Check for links and handle them on handheld devices
                    if (!!$this.closest('a').attr('href')) {
                        $this.closest('a').removeAttr('title');

                        widthRect <= 1000 ? wikiTooltip.hasLink($this) : wikiTooltip.removeAnchor($this);
                    }
                    
                    // Prevent tooltips from overflowing the viewport
                    var bounding = $this[0].getBoundingClientRect();
                    edgeRect = {
                        left: Math.floor(($this.width() + bounding.left + 10)),
                        right: Math.floor(($this.width() + bounding.right + 10))
                    };

                    widthRect = $(window).innerWidth();
                    if (edgeRect.left >= (widthRect || document.documentElement.clientWidth)) {
                        $this.css('left', '');
                        $this.css('right', '50%');
                    } else if (edgeRect.right <= (widthRect || document.documentElement.clientWidth)) {
                        $this.css('right', '');
                        $this.css('left', '50%');
                    }
                }
                $(handler);
                setTimeout(function() {
                    $(window).on('resize', handler);
                }, 250);
            });
        }
    },
    hasLink: function(tooltip) {
        if (tooltip.find('a').length < 1) {
            var $a = $('<a>');
            var url = tooltip.closest('a');
            var href = url.attr('href');

            $a.attr('href', href);
            url.attr('href', 'javascript:void(0);');
            tooltip.append($a);
        }
    },
    removeAnchor: function(tooltip) {
        var url = tooltip.closest('a');
        var href = url.attr('href');

        innerLink = tooltip.find('a').attr('href');
        if (innerLink) {
            href = innerLink;
            url.attr('href', href);
            tooltip.find('a').remove();
        } else {
            return;
        }
    }
};
$(wikiTooltip.init);

// Logged-in body class injection
var loggedinBodyClass = {
	init: function() {
		$('body').addClass(mw.config.get('wgUserName') == null ? 'not-logged-in' : 'logged-in');
	}
};
$(loggedinBodyClass.init);

// Resize YouTube embed, turn HD on, etc, by User:WindPower
var youtubeHelper = {
	chromeSize: 25, // This is the height (in pixels) of the chrome of YouTube's embedded video player. Update this whenever they release a new embedded video player
	maxWidth: 0.85, // Maximum fraction of the available width that the video may take
	infoboxes: ['.infobox', '.testchamber'], // Selectors of infobox-style boxes that should be deducted from the page's available width
	ratioR: /ratio-(\d+)x(\d+)/i,
	widthsR: /widths((?:\D+\d+)+)/i,
	setSize:function() {
		var widths = youtubeHelper.widthsR.exec($(this).attr('class'));
		if(widths != null) {
			widths = widths[1].substr(1).split(/\D+/g);
			var availableWidth = $('#bodyContent').width();
			for(var i in youtubeHelper.infoboxes) {
				if($(youtubeHelper.infoboxes[i]).length) {
					availableWidth -= $(youtubeHelper.infoboxes[i]).width();
				}
			}
			availableWidth *= youtubeHelper.maxWidth;
			var intWidths = [];
			for(var w = 0; w < widths.length; w++) {
				intWidths[w] = parseInt(widths[w]);
			}
			intWidths.sort(function(a, b){return b - a;});
			for(var w = 0; w < intWidths.length; w++) {
				if(intWidths[w] <= availableWidth || w == intWidths.length-1) {
					youtubeHelper.setWidth(this, intWidths[w]);
					break;
				}
			}
		}
		else {
			youtubeHelper.setWidth(this, parseFloat(obj.attr('width')));
		}
	},
	setUrl:function() {
		var obj = $(this).children('object');
		if(!obj.length) return;
		obj.append($('<param name="allowscriptaccess" value="true"></param>'));
		obj.append($('<param name="allowfullscreen" value="true"></param>'));
		var titleParts = mw.config.get('wgPageName').split(/\//g);
		var lang = 'en';
		if(titleParts.length == 2 && !mw.config.get('wgCanonicalSpecialPageName')) {
			lang = titleParts[titleParts.length-1];
		}
		var playerUrl = obj.children('param[name="movie"]').attr('value') + '&version=2&fs=1&theme=dark&color=white' + ($(this).hasClass('hd-on') ? '&hd=1' : '') + '&cc_load_policy=1&modestbranding=1&hl=' + lang + '&cc_lang_pref=' + lang;
		obj.children('param[name="movie"]').attr('value', playerUrl);
		obj.children('embed').attr('src', playerUrl).attr('allowscriptaccess', 'always').attr('allowfullscreen', 'true');
		var resultHtml = $(this).html();
		$(this).html('').html(resultHtml);
	},
	setWidth:function(youtube, width) {
		var obj = $(youtube).children('object');
		if(!obj) return;
		if($(youtube).hasClass('youtube-audio')) {
			obj.attr('width', width).attr('height', youtubeHelper.chromeSize); // Set <object> height
			obj.children('embed').attr('width', width).attr('height', youtubeHelper.chromeSize); // Set <embed> height
		}
		else {
			var ratio = youtubeHelper.ratioR.exec($(youtube).attr('class'));
			if(ratio != null) {
				ratio = parseFloat(ratio[1])/parseFloat(ratio[2]);
				var newHeight = Math.round(width / ratio + youtubeHelper.chromeSize).toString();
				obj.attr('width', width).attr('height', newHeight); // Set <object> height
				obj.children('embed').attr('width', width).attr('height', newHeight); // Set <embed> height
			}
		}
	},
	resizeTimer:null,
	resize:function() {
		if(youtubeHelper.resizeTimer != null) {
			clearTimeout(youtubeHelper.resizeTimer);
		}
		youtubeHelper.resizeTimer = setTimeout(youtubeHelper.onResize, 100);
	},
	onResize:function() {
		$('.youtubebox').each(youtubeHelper.setSize);
	},
	init:function() {
		$('.youtubebox').each(youtubeHelper.setUrl);
		$(window).resize(youtubeHelper.resize);
		youtubeHelper.onResize();
	}
};
$(youtubeHelper.init);

// Edittools loader copied from http://en.wikipedia.org/wiki/MediaWiki:Common.js/edit.js?oldid=407371785
// Only slightly modified by seb26

/** 
 *  Edittools javascript loader ************************************************
 *
 *  Description: Pulls in [[MediaWiki:Edittools.js]]. Includes a cache-bypassing
 *  version number in the URL in order to allow any changes to the edittools to
 *  be rapidly deployed to users.
 *
 *  Note that, by default, this function does nothing unless the element with
 *  the ID "editpage-specialchars" (which contains the old edittools code in
 *  [[MediaWiki:Edittools]], and will be retained as a placeholder in the new
 *  implementation) has a class named "edittools-version-NNN", where NNN is a
 *  number.  If the class name has "test" before the number, the code will only
 *  run for users who have set "window.testJsEdittools = true" in their user JS.
 *  The "test" should be retained in the class name until the new edittools
 *  implementation is ready and fully tested, and until at least 30 days have
 *  passed since this loader stub was added (which will be in 27 June 2008).
 *
 *  For compatibility with Alex Smotrov's original implementation, on which this
 *  code is loosely based (see [[mw:User talk:Alex Smotrov/edittools.js]]), this
 *  loader can also be disabled by setting "window.noDefaultEdittools = true".
 *
 *  Maintainers: [[User:Ilmari Karonen]]
 */

if (['edit', 'submit'].indexOf(mw.config.get('wgAction')) !== -1 || mw.config.get('wgPageName') == "Special:Upload") //scripts specific to editing pages
{
 
  // Prevent the static edittools from flashing before the compact edittools below is loaded.
  mw.util.addCSS('div.edittools-text { display:none; }');
 
  $(function () {
    // needs to be deferred until the DOM has fully loaded
    var placeholder = document.getElementById("editpage-specialchars");
    if (!placeholder || window.noDefaultEdittools) {
      //Show the static edittools again for users with "window.noDefaultEdittools=true".
      mw.util.addCSS('div.edittools-text { display:block; }');
      return;
    }
    var match = /(?:^| )edittools-version-(\d+)(?: |$)/.exec(placeholder.className);
 
    // set window.testJsEdittools = true to enable testing before full deployment
    if (!match && window.testJsEdittools)
        match = /(?:^| )edittools-version-(test\d+)(?: |$)/.exec(placeholder.className);
 
    if (!match) return;
    var url = mw.config.get('wgScript') + '?title=MediaWiki:Edittools.js&action=raw&ctype=text/javascript&nocache=' + match[1];
    mw.loader.load(url);
  });
}

/********* MediaWiki:Valve.js *********/
function talkpageplus()
{
    var talkpagelink = document.getElementById('ca-talk');
    if (talkpagelink && talkpagelink.className == 'new')
    {
        talkpagelink.firstChild.href += '&section=new';
    }
}
$(talkpageplus);

// Konami code easter egg by WindPower, modified by Wookipan
// Constants:
	var spaiConstants = {};
	// Editable constants:
		// General info:
			spaiConstants.spaiEnabled = true;
			spaiConstants.spaiImage = '/w/images/7/73/Team_Fortress_Wiki_Egg_Spy.png';
			spaiConstants.spaiHeight = 196;
			spaiConstants.sapperClass = '--sapped';
			spaiConstants.spaiSappingMahWikiWav = '/w/images/4/4a/Team_Fortress_Wiki_Egg.wav';
			spaiConstants.timeStep = 40; // In milliseconds; 40 ms => 25 fps
		// Animation timing (all times in milliseconds):
			spaiConstants.anim_spaiFallDown = 2000; // Time for Spy to fall down
			spaiConstants.anim_spaiWait = 900; // Time Spy waits before going back up
			spaiConstants.anim_spaiBackUp = 2000; // Time for Spy to go back up
			spaiConstants.anim_sapperDestroyed = 2250; // Time until Sapper gets destroyed
	// End editable constants
	spaiConstants.theBody = function(){return document.getElementById('content');};
	spaiConstants.preloadedImages = [];
	spaiConstants.preloadingImages = [];
	spaiConstants.preloadingRefs = {};
	spaiConstants.toPreloadImage = spaiConstants.spaiImage;
	spaiConstants.self = null;
	spaiConstants.loadedSound = false;
	spaiConstants.loadedImages = false;
	spaiConstants.fired = false;
// End constants

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function (obj, fromIndex) {
    if (fromIndex == null) {
        fromIndex = 0;
    } else if (fromIndex < 0) {
        fromIndex = Math.max(0, this.length + fromIndex);
    }
    for (var i = fromIndex, j = this.length; i < j; i++) {
        if (this[i] === obj)
            return i;
    }
    return -1;
  };
}

var spaiSappinMahWiki = {
	constants: spaiConstants,
	createImgDiv:function(image) {
		var self = spaiConstants.self;
		var div = document.createElement('div');
		var img = document.createElement('img');
		img.src = image;
		div.appendChild(img);
		setTimeout(function(){spaiConstants.theBody().appendChild(div);}, 1);
		return {
			'div': div,
			'img': img
		};
	},
	imagesLoaded:function() {
		spaiConstants.loadedImages = true;
		if(spaiConstants.loadedSound) {
			spaiConstants.self.spySappingMahWiki();
		}
	},
	soundLoaded:function() {
		spaiConstants.loadedSound = true;
		if(spaiConstants.loadedImages) {
			spaiConstants.self.spySappingMahWiki();
		}
	},
	preloadSound:function(sound, callback) {
		var self = spaiConstants.self;
		try {
			var audio = document.createElement('audio');
			audio.setAttribute('src', sound);
			audio.setAttribute('style', 'display: none;');
			audio.setAttribute('preload', 'true');
			spaiConstants.theBody().appendChild(audio);
			audio.addEventListener('canplaythrough', callback, false);
		}
		catch(e) {}
		setTimeout(callback, 1000); // Fallback
	},
	preloadImage:function(image) {
		var self = spaiConstants.self;
		if(spaiConstants.preloadingImages.indexOf(image) == -1) {
			spaiConstants.preloadingImages[spaiConstants.preloadingImages.length] = image;
			var nodes = self.createImgDiv(image);
			spaiConstants.preloadingRefs[image] = nodes['img'];
			nodes['div'].setAttribute('style', 'visibility: hidden; height: 0px; width: 0px; overflow: hidden; z-index: -10000;');
		}
		if(spaiConstants.preloadingRefs[image].width) {
			spaiConstants.preloadedImages[spaiConstants.preloadedImages.length] = image;
		}
		else
		{
			setTimeout(function(){self.preloadImage(image);}, spaiConstants.timeStep);
		}
	},
	preloadImages:function(callback) {
		var self = spaiConstants.self;
		var allPreloaded = true;
		for(var i in spaiConstants.toPreloadImages) {
			if(spaiConstants.preloadedImages.indexOf(spaiConstants.toPreloadImages[i]) == -1) {
				allPreloaded = false;
			}
			if(spaiConstants.preloadingImages.indexOf(spaiConstants.toPreloadImages[i]) == -1) {
				self.preloadImage(spaiConstants.toPreloadImages[i]);
			}
		}
		if(allPreloaded) {
			callback();
		} else {
			setTimeout(function(){self.preloadImages(callback);}, spaiConstants.timeStep);
		}
	},
	destroyNode:function(node) {
		try {
			node.parentNode.removeChild(node);
		} catch(e) {
			// Ze goggles, zey do nothin
		}
	},
	smoothInOut:function(progress) {
		return (Math.sin((progress-.5)*Math.PI)+1)/2;
	},
	inAnimation:function(func, progressTime, totalTime, callback, easing) {
		var self = spaiConstants.self;
		func(easing(progressTime / totalTime));
		if(progressTime >= totalTime) {
			callback();
		} else {
			setTimeout(function(){self.inAnimation(func, progressTime + spaiConstants.timeStep, totalTime, callback, easing);}, spaiConstants.timeStep);
		}
	},
	animate:function(func, totalTime, callback, easing) {
		var self = spaiConstants.self;
		return self.inAnimation(func, 0.0, totalTime, callback, easing);
	},
	playSound:function(sound) {
		var self = spaiConstants.self;
		try {
			var audio = document.createElement('audio');
			audio.setAttribute('src', sound);
			audio.setAttribute('style', 'display: none;');
			audio.setAttribute('autoplay', 'true');
			spaiConstants.theBody().appendChild(audio);
		}
		catch(e) {}
	},
	spyAnimationFinished:function(nodes) {
		var self = spaiConstants.self;
		for(var node in nodes) {
			self.destroyNode(nodes[node]);
		}
		spaiConstants.fired = false;
	},
	spySappingMahWiki:function() {
		var self = spaiConstants.self;
		if(spaiConstants.fired) return;
		spaiConstants.fired = true;
		var spai = document.createElement('a');
		spai.setAttribute('href', '/');
		spai.setAttribute('style', 'display:block; position: absolute; top: 0px; left: 0px; width: 160px; height: 200px; border: 0px; background: url('+spaiConstants.spaiImage+') no-repeat 0px -50000px; z-index: 10000;');
		spaiConstants.theBody().appendChild(spai);
		var logoPortlet = document.getElementById('p-logo');
		var changeHeight = function(progress) {
			progress = parseInt(progress * spaiConstants.spaiHeight);
			spai.style.backgroundPosition = '0px ' + (-spaiConstants.spaiHeight + progress).toString() + 'px';
		};
		self.animate(changeHeight, spaiConstants.anim_spaiFallDown, function(){
			self.playSound(spaiConstants.spaiSappingMahWikiWav);
			setTimeout(function(){
				logoPortlet.classList.add('wiki-logo' + spaiConstants.sapperClass);
				self.animate(function(progress){changeHeight(1.0-progress);}, spaiConstants.anim_spaiBackUp, function(){
					setTimeout(function(){
						logoPortlet.removeAttribute('class');
						self.spyAnimationFinished([spai]);
					}, spaiConstants.anim_sapperDestroyed);
				}, self.smoothInOut);
			}, spaiConstants.anim_spaiWait);
		}, self.smoothInOut);
	},
	hitItDoc:function() {
		var self = spaiConstants.self;
		self.preloadImages(self.imagesLoaded);
		self.preloadSound(spaiConstants.spaiSappingMahWikiWav, self.soundLoaded);
	},
	initKonami: function () {
		var self = spaiConstants.self;
		/*
			 * Konami-JS ~
			 * :: Now with support for touch events and multiple instances for
			 * :: those situations that call for multiple easter eggs!
			 * Code: https://github.com/georgemandis/konami-js
			 * Copyright (c) 2009 George Mandis (https://george.mand.is)
			 * Version: 1.6.3 (11/11/2021)
			 * Licensed under the MIT License (http://opensource.org/licenses/MIT)
			 * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1+ and Android
		*/
		var Konami = function (callback) {
			var konami = {
				addEvent: function (obj, type, fn, ref_obj) {
					if (obj.addEventListener)
						obj.addEventListener(type, fn, false);
					else if (obj.attachEvent) {
						// IE
						obj["e" + type + fn] = fn;
						obj[type + fn] = function () {
							obj["e" + type + fn](window.event, ref_obj);
						}
						obj.attachEvent("on" + type, obj[type + fn]);
					}
				},
				removeEvent: function (obj, eventName, eventCallback) {
					if (obj.removeEventListener) {
						obj.removeEventListener(eventName, eventCallback);
					} else if (obj.attachEvent) {
						obj.detachEvent(eventName);
					}
				},
				input: "",
				pattern: "38384040373937396665",
				keydownHandler: function (e, ref_obj) {
					if (ref_obj) {
						konami = ref_obj;
					} // IE
					konami.input += e ? e.keyCode : event.keyCode;
					if (konami.input.length > konami.pattern.length) {
						konami.input = konami.input.substr((konami.input.length - konami.pattern.length));
					}
					if (konami.input === konami.pattern) {
						konami.code(konami._currentLink);
						konami.input = '';
						e.preventDefault();
						return false;
					}
				},
				load: function (link) {
					this._currentLink = link;
					this.addEvent(document, "keydown", this.keydownHandler, this);
					this.iphone.load(link);
				},
				unload: function () {
					this.removeEvent(document, 'keydown', this.keydownHandler);
					this.iphone.unload();
				},
				code: function (link) {
					window.location = link
				},
				iphone: {
					start_x: 0,
					start_y: 0,
					stop_x: 0,
					stop_y: 0,
					tap: false,
					capture: false,
					orig_keys: "",
					keys: ["UP", "UP", "DOWN", "DOWN", "LEFT", "RIGHT", "LEFT", "RIGHT", "TAP", "TAP"],
					input: [],
					code: function (link) {
						konami.code(link);
					},
					touchmoveHandler: function (e) {
						if (e.touches.length === 1 && konami.iphone.capture === true) {
							var touch = e.touches[0];
							konami.iphone.stop_x = touch.pageX;
							konami.iphone.stop_y = touch.pageY;
							konami.iphone.tap = false;
							konami.iphone.capture = false;
							konami.iphone.check_direction();
						}
					},
					touchendHandler: function () {
						konami.iphone.input.push(konami.iphone.check_direction());

						if (konami.iphone.input.length > konami.iphone.keys.length) konami.iphone.input.shift();

						if (konami.iphone.input.length === konami.iphone.keys.length) {
							var match = true;
							for (var i = 0; i < konami.iphone.keys.length; i++) {
								if (konami.iphone.input[i] !== konami.iphone.keys[i]) {
									match = false;
								}
							}
							if (match) {
								konami.iphone.code(konami._currentLink);
							}
						}
					},
					touchstartHandler: function (e) {
						konami.iphone.start_x = e.changedTouches[0].pageX;
						konami.iphone.start_y = e.changedTouches[0].pageY;
						konami.iphone.tap = true;
						konami.iphone.capture = true;
					},
					load: function (link) {
						this.orig_keys = this.keys;
						konami.addEvent(document, "touchmove", this.touchmoveHandler);
						konami.addEvent(document, "touchend", this.touchendHandler, false);
						konami.addEvent(document, "touchstart", this.touchstartHandler);
					},
					unload: function () {
						konami.removeEvent(document, 'touchmove', this.touchmoveHandler);
						konami.removeEvent(document, 'touchend', this.touchendHandler);
						konami.removeEvent(document, 'touchstart', this.touchstartHandler);
					},
					check_direction: function () {
						x_magnitude = Math.abs(this.start_x - this.stop_x);
						y_magnitude = Math.abs(this.start_y - this.stop_y);
						x = ((this.start_x - this.stop_x) < 0) ? "RIGHT" : "LEFT";
						y = ((this.start_y - this.stop_y) < 0) ? "DOWN" : "UP";
						result = (x_magnitude > y_magnitude) ? x : y;
						result = (this.tap === true) ? "TAP" : result;
						return result;
					}
				}
			}

			typeof callback === "string" && konami.load(callback);
			if (typeof callback === "function") {
				konami.code = callback;
				konami.load();
			}

			return konami;
		};
		// End of Konami-JS
		var konami = new Konami();
		konami.code = function() {
			if (spaiConstants.spaiEnabled) {
				self.hitItDoc.apply(self);
			}
			
			document.dispatchEvent(new CustomEvent('konami:fire'));
		};
		konami.load();
	}
};
spaiConstants.self = spaiSappinMahWiki;
$(spaiSappinMahWiki.initKonami);

// Dynamic background by WindPower
// WindPower is secksy and makes this wiki awesome with his very breath. (- Smashman)
var dynamicBg = {
	categories: {
		// Format:
		// 'CategoryName': 'URL of background image',  ---OR--- 'title-PageTitle': 'URL of background image',
		// Categories don't have to be class names, they can be things like "Weapons", "Featured articles", "Maps", "Help", etc.
		'Scout': '/w/images/e/ea/Background_Scout_vector.png',
		'Soldier': '/w/images/5/54/Background_Soldier_vector.png',
		'Pyro': '/w/images/e/ed/Background_Pyro_vector.png',
                'Demoman': '/w/images/5/59/Background_Demoman_vector.png',
                'Engineer': '/w/images/f/f7/Background_Engineer_vector.png',
                'Heavy': '/w/images/0/03/Background_Heavy_vector.png',
                'Medic': '/w/images/2/24/Background_Medic_vector.png',
                'Sniper': '/w/images/e/ed/Background_Sniper_vector.png',
                'Spy': '/w/images/b/b9/Background_Spy_vector.png'
		// (No comma at the end of the last line)
	},
	getCategories:function() {
		var catlinksnode = document.getElementById('catlinks');
		if(!catlinksnode) return [];
		var catlinks = document.getElementById('catlinks').getElementsByTagName('a');
		var cats = [];
		var l;
		for(var i = 0; i < catlinks.length; i++) {
			l = catlinks[i].getAttribute('title');
			if(l.match(/^Category:/i, '')) {
				cats[cats.length] = l.substr(9).replace(/\/[^/]+$/, '');
			}
		}
		return cats;
	},
	inArray:function(haystack, needle) {
		for(var i = 0; i < haystack.length; i++) {
			if(haystack[i] == needle) {
				return i;
			}
		}
		return -1;
	},
	init:function() {
		if(typeof(wPrefs) != 'undefined') {
			if(dynamicBg.inArray(wPrefs, 'noDynamicBackground') != -1) {
				return; // Script disabled
			}
		}
		try {
			var cats = dynamicBg.getCategories();
			var body = document.getElementsByTagName('body')[0];
		} catch(e) {
			return;
		}
		var selectedCats = [];
		if(typeof(dynamicBg.categories['title-' + mw.config.get('wgTitle')]) != 'undefined') {
			selectedCats[0] = dynamicBg.categories['title-' + mw.config.get('wgTitle')];
		}
		else {
			for(var i in dynamicBg.categories) {
				if(dynamicBg.inArray(cats, i) != -1) {
					selectedCats[selectedCats.length] = dynamicBg.categories[i];
				}
			}
		}
		if(!selectedCats.length) return; // No match, keep default style
		var selectedCat = selectedCats[Math.floor(Math.random()*selectedCats.length)];
		body.style.backgroundImage='url('+selectedCat+')';
	}
};
$(dynamicBg.init);

// Page-specific JavaScript/CSS
var pageScripts = {
	pagesJS: ['Main_Page', 'User:WindPower', 'User:MogDog66', 'User:WindPower/Main_Page', 'User:Lexar/Main_Page/Template:Benjas', 'User:Lexar/RandomPage', 'User:Lexar/responsive_infobox', 'User:Lexar/sandbox', 'User:Tark', 'User:Tark/Sandbox', 'Team_Fortress_Wiki:April_Fools\'_Day/2021/Main_Page', 'User:PhoneWave', 'User:Wookipan/Sandbox'],
	pagesCSS: ['Main_Page', 'User:WindPower', 'User:Pilk/armory', 'User:Pilk', 'User:Esky', 'User:Lagg', 'User:MogDog66', 'User:CrushBOT', 'User:MogDog66/userpagev2', 'User:NVis', 'User:NVis/Sandbox', 'User:Lexar', 'User:MogDog66/MPR', 'User:WindPower/Main_Page', 'User:Moussekateer/3DViewer', 'User:T-Wayne', 'User:FreeXMan', 'User:Nixshadow', 'User:Ath', 'User:Carez', 'User:Lexar/Main_Page/Template:Benjas', 'User:Lexar/RandomPage', 'User:MogDog66/Sandbox', 'User:Obilisk', 'User:Lexar/itembox_tooltip', 'User:Lexar/sandbox', 'User:Lexar/responsive_infobox', 'User:Hagbard Celine', 'User:Wookipan', 'User:Wookipan/Sandbox', 'User:GrampaSwood', 'Team_Fortress_Wiki:April_Fools\'_Day/2019/Main_Page', 'User:Tark', 'User:Tark/Sandbox', 'User:Boba', 'User:Boba/Projects', 'User:FanCyy', 'User:Dan_greene', 'User:Boba/Sandbox', 'User:Ashe', 'Team_Fortress_Wiki:April_Fools\'_Day/2021/Main_Page', 'User:PhoneWave', 'User:Foxbite', 'User:Mediarch', 'User:Payn'],
	suffixJS: '/Page.js',
	suffixCSS: '/Page.css',
	init: function() {
		for(var i in pageScripts.pagesJS) {
			if(mw.config.get('wgPageName') == pageScripts.pagesJS[i]) {
				mw.loader.load(mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName') + pageScripts.suffixJS) + '&ctype=text/javascript&action=raw');
			}
		}
		for(var i in pageScripts.pagesCSS) {
			if(mw.config.get('wgPageName') == pageScripts.pagesCSS[i]) {
				mw.loader.load(mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName') + pageScripts.suffixCSS) + '&ctype=text/css&action=raw', 'text/css');
			}
		}
	}
};
$(pageScripts.init);

// Fancy diffs
var fancyDiffs = {
	isBigDiff: false,
	isBigDiffThreshold: 72,
	toggle: function(element) {
		var expanded = element.hasClass('diff-expanded');
		var contents = element.parent().children('.diff-contents');
		if(expanded) { // Just collapse then
			element.removeClass('diff-expanded');
			if(fancyDiffs.isBigDiff) {
				contents.hide();
			} else {
				contents.slideUp('fast');
			}
		} else if(element.hasClass('diff-data-loaded')) { // Stuff is already loaded, expand
			element.addClass('diff-expanded');
			contents.slideDown('fast');
		} else if(!element.hasClass('diff-data-requested')) { // Stuff is not loaded
			element.addClass('diff-data-requested');
			var fileName = element.find('span').text().replace(/^\s+|\s+$/g);
			var patchName = element.closest('.diffname');
			var diffName = mw.config.get('wgPageName');
			if(patchName && patchName.length && patchName.attr('class')) {
				diffName = patchName.attr('class').substr(9);
			}
			$.get('/w/?title=Template:PatchDiff/' + encodeURIComponent(diffName.replace(/^Template:PatchDiff\//, '')) + '/' + encodeURIComponent(fileName) + '&action=raw', function(data) {
				contents.html(data);
				if(fancyDiffs.isBigDiff) {
					contents.show();
				} else {
					contents.slideDown('fast');
				}
				element.removeClass('diff-data-requested').addClass('diff-data-loaded').addClass('diff-expanded');
			});
		}
		
	},
	init: function() {
		var diffText = $('.diff-name-text');
		if(diffText.length) {
			// Preload leetle gif
			$('body').append($('<img/>').attr('src', '/w/images/4/43/Patch_diff_loading.gif').css('display', 'none'));
			diffText.find('span').each(function() {
				$(this).text($(this).find('a').text().replace(/^\s+|\s+$/g));
			});
			diffText.click(function() {
				fancyDiffs.toggle($(this));
				return false;
			});
			fancyDiffs.isBigDiff = $('.diff-file').length > fancyDiffs.isBigDiffThreshold;
		}
	}
};
$(fancyDiffs.init);

// 3D/2D viewer
$('#switch-to-3d').click(function() {
	$('.container-2d').hide();
	$('.viewer-3d, .viewer-3d-multi, .buttons-container-3d').show();
});

$('#switch-to-2d').click(function() {
	$('.viewer-3d, .viewer-3d-multi, .buttons-container-3d').hide();
	$('.container-2d').show();
});

// 3D model viewer
var viewer3d = {
	dragging: null,
	draggingFrameX: 0,
	draggingFrameY: 0,
	viewers: [],
	frameThresholdX: 10,
	frameThresholdY: 128,
	realMod: function(x, y) {
		return ((x % y) + y) % y;
	},
	init: function() {
		$('.viewer-3d').each(viewer3d.bind);
		$(document).mouseup(viewer3d.release);
		$(document).mousemove(viewer3d.move);
	},
	bind: function() {
		var v = $(this);
		var num = viewer3d.viewers.length;
		var allModels = [];
		var modelID = 0;
		var viewerSize = 0;
		while(true) {
			var modelMap = v.find('.viewer-3d-map-' + modelID);
			var urlNode = v.find('.viewer-3d-url-' + modelID);
			if(!modelMap.length || !urlNode.length) break;
			var url = $('<div/>').html(urlNode.text()).text();
			var framesS = $('<div/>').html(modelMap.text()).text().replace(/^\s+|\s+$/g).split(/,/g);
			var frameMap = [];
			var heightMap = [];
			var leftCropMap = [];
			var totalW = parseInt(framesS[0]);
			var maxFrameW = parseInt(framesS[1]);
			var totalH = parseInt(framesS[2]);
			var verticalSteps = parseInt(framesS[3]);
			var midVertical = Math.floor(verticalSteps / 2);
			for(var f = 4; f < framesS.length; f += 3) {
				frameMap.push(parseInt(framesS[f]));
				heightMap.push(parseInt(framesS[f + 1]));
				leftCropMap.push(parseInt(framesS[f + 2]));
			}
			allModels.push({
				imageURL: url,
				map: frameMap,
				cropMap: leftCropMap,
				totalWidth: totalW,
				totalHeight: totalH,
				maxFrameWidth: maxFrameW,
				xStep: verticalSteps
			});
			viewerSize = Math.max(viewerSize, totalH, maxFrameW);
			modelID++;
		}
		if(!modelID) return;
		var overlayNode = $('<div class="viewer-3d-overlay"></div>');
		var frameN = v.find('.viewer-3d-frame');
		v.find('img').detach();
		var klasses = v.attr('class').split(/ /g);
		var startFrame = 0;
		for(var k in klasses) {
			if(klasses[k].substr(0, 11) == 'startframe-') {
				startFrame = Math.max(0, parseInt(klasses[k].substr(11)));
			}
		}
		var viewer = {
			node: v,
			frameX: startFrame,
			frameY: midVertical,
			models: allModels,
			currentModel: -1,
			frameNode: frameN,
			width: viewerSize,
			height: viewerSize,
			mouseX: 0,
			mouseY: 0,
			overlay: overlayNode
		};
		viewer3d.viewers.push(viewer);
		v.hover(viewer3d.hover, viewer3d.unhover).mousedown(viewer3d.drag).append(overlayNode).attr('data-id', num).css({
			width: viewer.width + 'px',
			height: viewer.height + 'px'
		});
		frameN.mousedown(viewer3d.drag).attr('data-id', num).css('height', viewer.height + 'px');
		viewer3d.changeVersion(viewer, 0);
	},
	getCurrentModel: function(v) {
		return v.models[v.currentModel];
	},
	changeVersion: function(v, version) {
		version = Math.max(0, Math.min(v.models.length - 1, version));
		if(v.currentModel == version) return;
		v.currentModel = version;
		v.frameNode.css('background', 'url(' + viewer3d.getCurrentModel(v).imageURL + ') top left no-repeat');
		viewer3d.display(v, v.frameX, v.frameY);
	},
	hover: function(e) {
		var v = viewer3d.getViewer(this);
		if(viewer3d.dragging != v) {
			v.overlay.animate({'opacity': '1'}, 'fast');
		}
	},
	unhover: function(e) {
		var v = viewer3d.getViewer(this);
		if(viewer3d.dragging != v) {
			v.overlay.animate({'opacity': '0.5'}, 'fast');
		}
	},
	drag: function(e) {
		var v = viewer3d.getViewer(this);
		v.mouseX = e.pageX;
		v.mouseY = e.pageY;
		viewer3d.dragging = v;
		draggingFrameX = v.frameX;
		draggingFrameY = v.frameY;
		return false;
	},
	release: function() {
		var v = viewer3d.dragging;
		viewer3d.dragging = null;
		if(v != null) {
			v.frameX = viewer3d.draggingFrameX;
			v.frameY = viewer3d.draggingFrameY;
			v.overlay.animate({'opacity': '0.5'}, 'fast');
		}
		viewer3d.draggingFrameX = 0;
		viewer3d.draggingFrameY = 0;
	},
	getViewer: function(node) {
		return viewer3d.viewers[parseInt($(node).attr('data-id'))];
	},
	display: function(v, frameX, frameY) {
		var model = viewer3d.getCurrentModel(v);
		var frameID = viewer3d.realMod(frameX * model.xStep + frameY, model.map.length);
		var frameOffset = model.map[frameID];
		var frameWidth = 0;
		if(frameID == model.map.length - 1) {
			frameWidth = model.totalWidth - frameOffset;
		} else {
			frameWidth = model.map[frameID + 1] - frameOffset;
		}
		v.frameNode.css({
			backgroundPosition: (-frameOffset - frameID) + 'px 0px',
			left: Math.round((v.width - model.maxFrameWidth) / 2.0 + model.cropMap[frameID]) + 'px',
			top: Math.round((v.height - model.totalHeight) / 2) + 'px',
			width: frameWidth + 'px',
			height: model.totalHeight + 'px'
		});
	},
	move: function(e) {
		if(viewer3d.dragging == null) {
			return;
		}
		var v = viewer3d.dragging;
		var model = viewer3d.getCurrentModel(v);
		var mouseDeltaX = e.pageX - v.mouseX;
		var mouseDeltaY = e.pageY - v.mouseY;
		var frameDeltaX = Math.round(mouseDeltaX / viewer3d.frameThresholdX);
		var frameDeltaY = -Math.round(mouseDeltaY / viewer3d.frameThresholdY);
		viewer3d.draggingFrameX = v.frameX + frameDeltaX;
		viewer3d.draggingFrameY = Math.max(0, Math.min(model.xStep - 1, v.frameY + frameDeltaY));
		viewer3d.display(v, viewer3d.draggingFrameX, viewer3d.draggingFrameY);
	}
};
$(viewer3d.init);
var selector3d = {
	bind: function() {
		var viewer = viewer3d.getViewer($(this).find('.viewer-3d'));
		var keepGoing = true;
		var modelVariant = 0;
		var selector;
		while(keepGoing) {
			selector = $(this).find('.selector-' + modelVariant);
			if(selector.length) {
				selector.attr('data-variant', modelVariant).click(function() {
					viewer3d.changeVersion(viewer, parseInt($(this).attr('data-variant')));
					return false;
				});
			}
			modelVariant++;
			keepGoing = selector.length;
		}
	},
	init: function() {
		$('.viewer-3d-multi, .viewer-3d-container').each(selector3d.bind);
	}
};
$(selector3d.init);

// Code to get 3D viewer drag working on touch devices
// Source: http://www.jquery4u.com/mobile/jquery-add-dragtouch-support-ipad/
$.fn.addTouch = function(){
    this.each(function(i,el){
      $(el).bind('touchstart touchmove touchend touchcancel',function(){
        //we pass the original event object because the jQuery event
        //object is normalized to w3c specs and does not provide the TouchList
        handleTouch(event);
      });
    });

    var handleTouch = function(event)
    {
      var touches = event.changedTouches,
              first = touches[0],
              type = '';

      switch(event.type)
      {
        case 'touchstart':
          type = 'mousedown';
          break;

        case 'touchmove':
          type = 'mousemove';
          event.preventDefault();
          break;

        case 'touchend':
          type = 'mouseup';
          break;

        default:
          return;
      }

      var simulatedEvent = document.createEvent('MouseEvent');
      simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);
      first.target.dispatchEvent(simulatedEvent);
    };
  };

$('.viewer-3d').addTouch();

// End 3D viewer touch device code

// Start weapon wear table tabs -----
var WeaponWearTable = {
	tabSwitch: function($this,tab,weapons,weapon) {
		if (!$this.hasClass('current')) {
			var tabIndex = $this.index();
			$this.parent().find('.current').removeClass('current');
			$this.addClass('current');
			weapons.find('.current').removeClass('current');
			weapon.eq(tabIndex).addClass('current');
		}
	},
	init: function() {
		$('.weapon-wear-table').each(function(){
			var $this = $(this),
			tabs = $this.children('.tabs'),
			tab = tabs.children('li'),
			weapons = $this.children('.weapons'),
			weapon = weapons.children('li');
			tab.click(function(){
				WeaponWearTable.tabSwitch($(this),tab,weapons,weapon);
			});
		});
	}
};
$(WeaponWearTable.init);
// End weapon wear table tabs -----

// Start Bilibili iframe support -----
var Bilibili = {
  init: function() {
    var $videos = $('.bilibili-video');
    $videos.each(function() {
      var $this = $(this);
      var aid = parseInt($this.data('vaid'));
      var danmaku = parseInt($this.data('vdanmaku'));
      var page = parseInt($this.data('vpage'));
      var width = $this.data('vwidth');
      var height = $this.data('vheight');
      var iframeSrc = 'https://www.bilibili.com/blackboard/html5mobileplayer.html?aid=' + aid + '&high_quality=1&danmaku=' + danmaku + '&page=' + page + '&hideCoverInfo=1&hideDanmakuButton=1';
      var iframe = '<iframe src="' + iframeSrc + '" width="' + width + '" height="' + height + '" frameborder="0" allowfullscreen="true"></iframe>';
      $this.append(iframe);
    });
  }
};
$(Bilibili.init);
// End Bilibili iframe support -----

// Start custom username highlighting -----
var uGroupHighlight = {
  init: function() {
    if ($('.mw-userlink')[0]) {
      var params = {
        action: 'query',
        list: 'allusers',
        augroup: ['sysop', 'moderator', 'bot'],
        auprop: 'groups',
        aulimit: 100,
        format: 'json'
      };

      var api = new mw.Api();

      api.get(params).done(function(data) {
        var uGroups = data.query.allusers, user;
        for (user in uGroups) {
          var name = uGroups[user].name;
          var group = uGroups[user].groups;

          $('bdi').each(function() {
            if ($(this).text().match('\\b' + name + '\\b')) {
              $(this).closest('.mw-userlink').addClass(group.includes('bot') ? 'bot' : 'staff');
            }
          });
        }
      });
    }
  },
};
$(uGroupHighlight.init);
// End custom username highlighting -----

// Start login icon randomizer -----
var iconRandomizer = {
    init: function() {
        var classes = [
            '/w/images/3/33/Login_Scout.png',
            '/w/images/d/d8/Login_Soldier.png',
            '/w/images/7/71/Login_Pyro.png',
            '/w/images/5/53/Login_Demoman.png',
            '/w/images/3/35/Login_Heavy.png',
            '/w/images/a/ab/Login_Engineer.png',
            '/w/images/d/d4/Login_Medic.png',
            '/w/images/e/e4/Login_Sniper.png',
            '/w/images/2/27/Login_Spy.png'
        ];

        // pick a random class image out of nine choices
        pickClass = classes[Math.floor(Math.random() * classes.length)];

        // ensure all relative elements are hit
        var nodes = $('#pt-userpage, #pt-anonuserpage, #pt-login');
        if (nodes.length) {
            for (var i = 0; i < nodes.length; i++) {
                nodes.css('background-image', 'url(' + pickClass + ')');
            }
        }
    }
};

$(iconRandomizer.init);
// End login icon randomizer -----

// Start 'Audio player'
var audioPlayer = {
    currentAudio: null,

    init: function () {
        var audioPauseImg = new Image();
        var audioPlayImg = new Image();
        audioPauseImg.src = '/w/images/d/d2/Pause_icon.png';
        audioPlayImg.src = '/w/images/6/67/Play_icon.png';

        $('.tfwiki-audio-player').each(function () {
            var audioPlayerElement = $(this);
            var audioLink = audioPlayerElement.children('a');
            var audioURL = audioLink.attr('href');
            var audio = null;
            var audioStatus = audioPlayerElement.find('.tfwiki-audio-player-action');
		
			audioStatus.removeClass('inactive');

            audioPlayerElement.on('click', function (e) {
                if (e.target !== audioStatus[0]) {
                    return;
                }

                e.preventDefault();
				
                if (!audio) {
                    audio = new Audio(audioURL);
                    audio.volume = 0.5;
                    audio.addEventListener('ended', function () {
                        audioStatus.text(audioStatus.data('text-play'));
                        audioStatus.removeClass('playing');
                    });
                }

                if (audioPlayer.currentAudio && audioPlayer.currentAudio !== audio) {
                    audioPlayer.currentAudio.pause();
                    audioPlayer.currentAudio.currentTime = 0;
                    audioPlayer.currentAudioStatus.text(audioPlayer.currentAudioStatus.data('text-play'));
                    audioPlayer.currentAudioStatus.removeClass('playing');
                }

                if (audio.paused) {
                    audio.play();
                    audioStatus.text(audioStatus.data('text-pause'));
                    audioPlayer.currentAudio = audio;
                    audioPlayer.currentAudioStatus = audioStatus;
                    audioStatus.addClass('playing');
                } else {
                    audio.pause();
                    audioStatus.text(audioStatus.data('text-resume'));
                    audioPlayer.currentAudio = null;
                    audioPlayer.currentAudioStatus = null;
                    audioStatus.removeClass('playing');
                }
            });

            audioLink.on('click', function (e) {
                e.preventDefault();
                window.open(audioURL, '_blank');
            });
        });
    }
};

$(audioPlayer.init);
// End 'Audio player'

/* Google Analytics */
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-18260470-1']);
  _gaq.push(['_setDomainName', '.teamfortress.com']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
/* GoSquared analytics */
  var GoSquared = {};
  GoSquared.acct = "GSN-106863-S";
  (function(w){
    function gs(){
      w._gstc_lt = +new Date;
      var d = document, g = d.createElement("script");
      g.type = "text/javascript";
      g.src = "//d1l6p2sc9645hc.cloudfront.net/tracker.js";
      var s = d.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(g, s);
    }
    w.addEventListener ?
      w.addEventListener("load", gs, false) :
      w.attachEvent("onload", gs);
  })(window);