Difference between revisions of "MediaWiki:Common.js"

From Team Fortress Wiki
Jump to: navigation, search
m
m (Enable custom CSS for User:Payn)
 
(159 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.2s("1k-"+b);if(1i d==="1G"){1O{d=d==="1c"?1c:d==="1e"?1e:d==="1b"?1b:!c.5I(d)?1Z(d):cE.1g(d)?c.ad(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.1q.2E.22(b,d)}12 dz(a){17 b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.1k(6,6.1h?"2R":"7i");if(1i h==="12")h=h.2R;if(!(a.72===6||!h||!h.4h||a.3B&&a.1l==="4i")){if(a.3W)A=4F("(^|\\\\.)"+a.3W.2L(".").3Y("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)");a.72=6;17 J=h.4h.2v(0);19(k=0;k<J.18;k++){h=J[k];h.7z.1u(X,"")===a.1l?f.1F(h.2a):J.3q(k--,1)}f=c(a.2B).69(f,a.6V);o=0;19(x=f.18;o<x;o++){r=f[o];19(k=0;k<J.18;k++){h=J[k];if(r.2a===h.2a&&(!A||A.1g(h.3W))){l=r.1w;e=1b;if(h.7v==="5O"||h.7v==="5B"){a.1l=h.7v;e=c(a.71).69(h.2a)[0]}if(!e||e!==l)C.1F({1w:l,66:h,6i:r.6i})}}}o=0;19(x=C.18;o<x;o++){f=C[o];if(d&&f.6i>d)2b;a.6V=f.1w;a.1k=f.66.1k;a.66=f.66;A=f.66.dc.22(f.1w,1A);if(A===1e||a.83()){d=f.6i;if(A===1e)b=1e;if(a.7I())2b}}14 b}}12 Y(a,b){14(a&&a!=="*"?a+".":"")+b.1u(ez,"`").1u(et,"&")}12 9l(a,b,d){if(c.1K(b))14 c.68(a,12(f,h){14!!b.1n(f,h,f)===d});1a if(b.1h)14 c.68(a,12(f){14 f===b===d});1a if(1i b==="1G"){17 e=c.68(a,12(f){14 f.1h===1});if(eu.1g(b))14 c.21(b,e,!d);1a b=c.21(b,e)}14 c.68(a,12(f){14 c.3V(f,b)>=0===d})}12 aK(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.2R){37 f.2E;f.2R={};19(17 h in e)19(17 l in e[h])c.1q.3i(6,h,e[h][l],e[h][l].1k)}}})}12 c6(a,b){b.4v?c.65({1C:b.4v,5a:1e,33:"2C"}):c.ae(b.1I||b.dl||b.2U||"");b.1p&&b.1p.3k(b)}12 a6(a,b,d){17 e=b==="1Q"?a.5t:a.8G;if(d==="4S")14 e;c.1m(b==="1Q"?cg:cd,12(){d||(e-=1Z(c.1y(a,"62"+6))||0);if(d==="4D")e+=1Z(c.1y(a,"4D"+6))||0;1a e-=1Z(c.1y(a,"4S"+6+"eM"))||0});14 e}12 da(a,b,d,e){if(c.3g(b)&&b.18)c.1m(b,12(f,h){d||bM.1g(a)?e(a,h):da(a+"["+(1i h==="27"||c.3g(h)?f:"")+"]",h,d,e)});1a if(!d&&b!=1b&&1i b==="27")c.5H(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(aE.8l.22([],aE.2v(0,b)),12(){d[6]=a});14 d}12 aL(a){if(!ea[a]){17 b=c("<"+a+">").c1("1N"),d=b.1y("1E");b.2M();if(d==="2z"||d==="")d="4Q";ea[a]=d}14 ea[a]}12 fa(a){14 c.5h(a)?a:a.1h===9?a.6w||a.h9:1e}17 t=E.1x,c=12(){12 a(){if(!b.7g){1O{t.29.f1("1J")}1M(j){3h(a,1);14}b.3t()}}17 b=12(j,s){14 30 b.fn.3I(j,s)},d=E.3y,e=E.$,f,h=/^(?:[^<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]+)$)/,l=/\\S/,k=/^\\s+/,o=/\\s+$/,x=/\\W/,r=/\\d/,A=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,C=/^[\\],:{}\\s]*$/,J=/\\\\(?:["\\\\\\/iB]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\\\\n\\r]*"|1c|1e|1b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,I=/(?:^|:|,)(?:\\s*\\[)+/g,L=/(f8)[ \\/]([\\w.]+)/,g=/(kq)(?:.*60)?[ \\/]([\\w.]+)/,i=/(jP) ([\\w.]+)/,n=/(k7)(?:.*? jw:([\\w.]+))?/,m=jm.gS,p=1e,q=[],u,y=6r.2A.3G,F=6r.2A.hD,M=3a.2A.1F,N=3a.2A.2v,O=9b.2A.5G,D=3a.2A.26,R={};b.fn=b.2A={3I:12(j,s){17 v,z,H;if(!j)14 6;if(j.1h){6.2i=6[0]=j;6.18=1;14 6}if(j==="1N"&&!s&&t.1N){6.2i=t;6[0]=t.1N;6.2a="1N";6.18=1;14 6}if(1i j==="1G")if((v=h.1W(j))&&(v[1]||!s))if(v[1]){H=s?s.2t||s:t;if(z=A.1W(j))if(b.7V(s)){j=[t.1U(z[1])];b.fn.1r.1n(j,s,1c)}1a j=[H.1U(z[1])];1a{z=b.am([v[1]],[H]);j=(z.av?z.6f.4R(1c):z.6f).2H}14 b.4X(6,j)}1a{if((z=t.2J(v[2]))&&z.1p){if(z.id!==v[2])14 f.1R(j);6.18=1;6[0]=z}6.2i=t;6.2a=j;14 6}1a if(!s&&!x.1g(j)){6.2a=j;6.2i=t;j=t.1Y(j);14 b.4X(6,j)}1a 14!s||s.6O?(s||f).1R(j):b(s).1R(j);1a if(b.1K(j))14 f.3t(j);if(j.2a!==B){6.2a=j.2a;6.2i=j.2i}14 b.48(j,6)},2a:"",6O:"1.4.4",18:0,h7:12(){14 6.18},8t:12(){14 N.1n(6,0)},39:12(j){14 j==1b?6.8t():j<0?6.2v(j)[0]:6[j]},3o:12(j,s,v){17 z=b();b.3g(j)?M.22(z,j):b.4X(z,j);z.9c=6;z.2i=6.2i;if(s==="1R")z.2a=6.2a+(6.2a?" ":"")+v;1a if(s)z.2a=6.2a+"."+s+"("+v+")";14 z},1m:12(j,s){14 b.1m(6,j,s)},3t:12(j){b.aq();if(b.7g)j.1n(t,b);1a q&&q.1F(j);14 6},eq:12(j){14 j===-1?6.2v(j):6.2v(j,+j+1)},5z:12(){14 6.eq(0)},78:12(){14 6.eq(-1)},2v:12(){14 6.3o(N.22(6,1A),"2v",N.1n(1A).3Y(","))},2S:12(j){14 6.3o(b.2S(6,12(s,v){14 j.1n(s,v,s)}))},3R:12(){14 6.9c||b(1b)},1F:M,4t:[].4t,3q:[].3q};b.fn.3I.2A=b.fn;b.1D=b.fn.1D=12(){17 j,s,v,z,H,G=1A[0]||{},K=1,Q=1A.18,ga=1e;if(1i G==="84"){ga=G;G=1A[1]||{};K=2}if(1i G!=="27"&&!b.1K(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.7V(z)||(H=b.3g(z)))){if(H){H=1e;v=v&&b.3g(v)?v:[]}1a v=v&&b.7V(v)?v:{};G[s]=b.1D(ga,v,z)}1a if(z!==B)G[s]=z}14 G};b.1D({ho:12(j){E.$=e;if(j)E.3y=d;14 b},7g:1e,7U:1,3t:12(j){j===1c&&b.7U--;if(!b.7U||j!==1c&&!b.7g){if(!t.1N)14 3h(b.3t,1);b.7g=1c;if(!(j!==1c&&--b.7U>0))if(q){17 s=0,v=q;19(q=1b;j=v[s++];)j.1n(t,b);b.fn.2T&&b(t).2T("3t").5w("3t")}}},aq:12(){if(!p){p=1c;if(t.53==="3F")14 3h(b.3t,1);if(t.3A){t.3A("eP",u,1e);E.3A("4C",b.3t,1e)}1a if(t.3H){t.3H("51",u);E.3H("9Z",b.3t);17 j=1e;1O{j=E.ek==1b}1M(s){}t.29.f1&&j&&a()}}},1K:12(j){14 b.1l(j)==="12"},3g:3a.3g||12(j){14 b.1l(j)==="ie"},5h:12(j){14 j&&1i j==="27"&&"f0"in j},5I:12(j){14 j==1b||!r.1g(j)||5I(j)},1l:12(j){14 j==1b?9b(j):R[y.1n(j)]||"27"},7V:12(j){if(!j||b.1l(j)!=="27"||j.1h||b.5h(j))14 1e;if(j.7T&&!F.1n(j,"7T")&&!F.1n(j.7T.2A,"g8"))14 1e;19(17 s in j);14 s===B||F.1n(j,s)},5H:12(j){19(17 s in j)14 1e;14 1c},31:12(j){di j},ad:12(j){if(1i j!=="1G"||!j)14 1b;j=b.5G(j);if(C.1g(j.1u(J,"@").1u(w,"]").1u(I,"")))14 E.7W&&E.7W.f5?E.7W.f5(j):(30 a7("14 "+j))();1a b.31("fW 7W: "+j)},6v:12(){},ae:12(j){if(j&&l.1g(j)){17 s=t.1Y("as")[0]||t.29,v=t.1U("2C");v.1l="1I/3M";if(b.1t.9e)v.2q(t.4q(j));1a v.1I=j;s.3m(v,s.1v);s.3k(v)}},1o:12(j,s){14 j.1o&&j.1o.7C()===s.7C()},1m:12(j,s,v){17 z,H=0,G=j.18,K=G===B||b.1K(j);if(v)if(K)19(z in j){if(s.22(j[z],v)===1e)2b}1a 19(;H<G;){if(s.22(j[H++],v)===1e)2b}1a if(K)19(z in j){if(s.1n(j[z],z,j[z])===1e)2b}1a 19(v=j[0];H<G&&s.1n(v,H,v)!==1e;v=j[++H]);14 j},5G:O?12(j){14 j==1b?"":O.1n(j)}:12(j){14 j==1b?"":j.3G().1u(k,"").1u(o,"")},48:12(j,s){17 v=s||[];if(j!=1b){17 z=b.1l(j);j.18==1b||z==="1G"||z==="12"||z==="gU"||b.5h(j)?M.1n(v,j):b.4X(v,j)}14 v},3V:12(j,s){if(s.26)14 s.26(j);19(17 v=0,z=s.18;v<z;v++)if(s[v]===j)14 v;14-1},4X:12(j,s){17 v=j.18,z=0;if(1i s.18==="4w")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},68: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.1F(j[G])}14 z},2S: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.8l.22([],z)},2f:1,6b:12(j,s,v){if(1A.18===2)if(1i s==="1G"){v=j;j=v[s];s=B}1a if(s&&!b.1K(s)){v=s;s=B}if(!s&&j)s=12(){14 j.22(v||6,1A)};if(j)s.2f=j.2f=j.2f||s.2f||b.2f++;14 s},8q:12(j,s,v,z,H,G){17 K=j.18;if(1i s==="27"){19(17 Q in s)b.8q(j,Q,s[Q],z,H,v);14 j}if(v!==B){z=!G&&z&&b.1K(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(30 8V).eg()},f6:12(j){j=j.1P();j=L.1W(j)||g.1W(j)||i.1W(j)||j.26("jF")<0&&n.1W(j)||[];14{4O:j[1]||"",60:j[2]||"0"}},4O:{}});b.1m("jC j9 9b a7 3a 8V 4F 6r".2L(" "),12(j,s){R["[27 "+s+"]"]=s.1P()});m=b.f6(m);if(m.4O){b.4O[m.4O]=1c;b.4O.60=m.60}if(b.4O.f8)b.4O.kg=1c;if(D)b.3V=12(j,s){14 D.1n(s,j)};if(!/\\s/.1g("\\kv")){k=/^[\\s\\eO]+/;o=/[\\s\\eO]+$/}f=b(t);if(t.3A)u=12(){t.6Z("eP",u,1e);b.3t()};1a if(t.3H)u=12(){if(t.53==="3F"){t.8a("51",u);b.3t()}};14 E.3y=E.$=b}();(12(){c.1t={};17 a=t.29,b=t.1U("2C"),d=t.1U("1B"),e="2C"+c.2Q();d.1d.1E="2z";d.2U="  <38/><2F></2F><a 2P=\'/a\' 1d=\'2k:b2;8e:1J;2l:.55;\'>a</a><2K 1l=\'4T\'/>";17 f=d.1Y("*"),h=d.1Y("a")[0],l=t.1U("2X"),k=l.2q(t.1U("5Y"));if(!(!f||!f.18||!h)){c.1t={9I:d.1v.1h===3,35:!d.1Y("35").18,e7:!!d.1Y("38").18,1d:/b2/.1g(h.2s("1d")),eA:h.2s("2P")==="/a",2l:/^0.55$/.1g(h.1d.2l),6k:!!h.1d.6k,c4:d.1Y("2K")[0].3b==="3z",kr:k.2N,8s:1c,9s:1e,8E:1e,9e:1e,96:1c,5L:1b,ai:1e,ap:1e,6B:1c};l.4p=1c;c.1t.9s=!k.4p;b.1l="1I/3M";1O{b.2q(t.4q("5k."+e+"=1;"))}1M(o){}a.3m(b,a.1v);if(E[e]){c.1t.9e=1c;37 E[e]}1O{37 b.1g}1M(x){c.1t.8s=1e}a.3k(b);if(d.3H&&d.cC){d.3H("9g",12 r(){c.1t.96=1e;d.8a("9g",r)});d.4R(1c).cC("9g")}d=t.1U("1B");d.2U="<2K 1l=\'4L\' 2Z=\'k4\' 46=\'46\'/>";a=t.c8();a.2q(d.1v);c.1t.8E=a.4R(1c).4R(1c).9U.46;c(12(){17 r=t.1U("1B");r.1d.1Q=r.1d.fp="5f";t.1N.2q(r);c.5L=c.1t.5L=r.5t===2;if("6q"in r.1d){r.1d.1E="5R";r.1d.6q=1;c.1t.ai=r.5t===2;r.1d.1E="";r.2U="<1B 1d=\'1Q:k2;\'></1B>";c.1t.ap=r.5t!==2}r.2U="<2F><4d><4l 1d=\'62:0;1E:2z\'></4l><4l>t</4l></4d></2F>";17 A=r.1Y("4l");c.1t.6B=A[0].8G===0;A[0].1d.1E="";A[1].1d.1E="2z";c.1t.6B=c.1t.6B&&A[0].8G===0;r.2U="";t.1N.3k(r).1d.1E="2z"});a=12(r){17 A=t.1U("1B");r="3z"+r;17 C=r in A;if(!C){A.2h(r,"14;");C=1i A[r]==="12"}14 C};c.1t.dG=a("4f");c.1t.dM=a("6T");a=b=d=f=h=1b}})();17 9p={},cE=/^(?:\\{.*\\}|\\[.*\\])$/;c.1D({3L:{},bV:0,3D:"3y"+c.2Q(),6E:{5T:1c,27:"ks:kl-k8-k9-kf-j2",jA:1c},1k:12(a,b,d){if(c.9q(a)){a=a==E?9p:a;17 e=a.1h,f=e?a[c.3D]:1b,h=c.3L;if(!(e&&!f&&1i b==="1G"&&d===B)){if(e)f||(a[c.3D]=f=++c.bV);1a h=a;if(1i b==="27")if(e)h[f]=c.1D(h[f],b);1a c.1D(h,b);1a if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;14 1i b==="1G"?a[b]:a}}},5v:12(a,b){if(c.9q(a)){a=a==E?9p:a;17 d=a.1h,e=d?a[c.3D]:a,f=c.3L,h=d?f[e]:e;if(b){if(h){37 h[b];d&&c.5H(h)&&c.5v(a)}}1a if(d&&c.1t.8s)37 a[c.3D];1a if(a.4Z)a.4Z(c.3D);1a if(d)37 f[e];1a 19(17 l in a)37 a[l]}},9q:12(a){if(a.1o){17 b=c.6E[a.1o.1P()];if(b)14!(b===1c||a.2s("lK")!==b)}14 1c}});c.fn.1D({1k:12(a,b){17 d=1b;if(1i a==="3l"){if(6.18){17 e=6[0].98,f;d=c.1k(6[0]);19(17 h=0,l=e.18;h<l;h++){f=e[h].2Z;if(f.26("1k-")===0){f=f.4o(5);ka(6[0],f,d[f])}}}14 d}1a if(1i a==="27")14 6.1m(12(){c.1k(6,a)});17 k=a.2L(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=6.7B("lJ"+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.7B("lr"+k[1]+"!",x);c.1k(6,a,b);o.7B("lv"+k[1]+"!",x)})},5v:12(a){14 6.1m(12(){c.5v(6,a)})}});c.1D({3u:12(a,b,d){if(a){b=(b||"fx")+"3u";17 e=c.1k(a,b);if(!d)14 e||[];if(!e||c.3g(d))e=c.1k(a,b,c.48(d));1a e.1F(d);14 e}},4A:12(a,b){b=b||"fx";17 d=c.3u(a,b),e=d.4s();if(e==="9A")e=d.4s();if(e){b==="fx"&&d.79("9A");e.1n(a,12(){c.4A(a,b)})}}});c.fn.1D({3u:12(a,b){if(1i a!=="1G"){b=a;a="fx"}if(b===B)14 c.3u(6[0],a);14 6.1m(12(){17 d=c.3u(6,a,b);a==="fx"&&d[0]!=="9A"&&c.4A(6,a)})},4A:12(a){14 6.1m(12(){c.4A(6,a)})},lA:12(a,b){a=c.fx?c.fx.6s[a]||a:a;b=b||"fx";14 6.3u(b,12(){17 d=6;3h(12(){c.4A(d,b)},a)})},lx:12(a){14 6.3u(a||"fx",[])}});17 9C=/[\\n\\t]/g,ha=/\\s+/,c7=/\\r/g,d4=/^(?:2P|4v|1d)$/,e4=/^(?:3B|2K)$/i,dV=/^(?:3B|2K|27|2X|6C)$/i,ew=/^a(?:lP)?$/i,9t=/^(?:4L|4T)$/i;c.6R={"19":"dr","2G":"1S",m0:"dN",lR:"lV",fm:"lW",lX:"m5",m1:"lo",kQ:"9w",lp:"kO",kN:"kR"};c.fn.1D({1r:12(a,b){14 c.8q(6,a,b,1c,c.1r)},kV:12(a){14 6.1m(12(){c.1r(6,a,"");6.1h===1&&6.4Z(a)})},6M:12(a){if(c.1K(a))14 6.1m(12(x){17 r=c(6);r.6M(a.1n(6,x,r.1r("2G")))});if(a&&1i a==="1G")19(17 b=(a||"").2L(ha),d=0,e=6.18;d<e;d++){17 f=6[d];if(f.1h===1)if(f.1S){19(17 h=" "+f.1S+" ",l=f.1S,k=0,o=b.18;k<o;k++)if(h.26(" "+b[k]+" ")<0)l+=" "+b[k];f.1S=c.5G(l)}1a f.1S=a}14 6},63:12(a){if(c.1K(a))14 6.1m(12(o){17 x=c(6);x.63(a.1n(6,o,x.1r("2G")))});if(a&&1i a==="1G"||a===B)19(17 b=(a||"").2L(ha),d=0,e=6.18;d<e;d++){17 f=6[d];if(f.1h===1&&f.1S)if(a){19(17 h=(" "+f.1S+" ").1u(9C," "),l=0,k=b.18;l<k;l++)h=h.1u(" "+b[l]+" "," ");f.1S=c.5G(h)}1a f.1S=""}14 6},ck:12(a,b){17 d=1i a,e=1i b==="84";if(c.1K(a))14 6.1m(12(f){17 h=c(6);h.ck(a.1n(6,f,h.1r("2G"),b),b)});14 6.1m(12(){if(d==="1G")19(17 f,h=0,l=c(6),k=b,o=a.2L(ha);f=o[h++];){k=e?k:!l.2c(f);l[k?"6M":"63"](f)}1a if(d==="3l"||d==="84"){6.1S&&c.1k(6,"cj",6.1S);6.1S=6.1S||a===1e?"":c.1k(6,"cj")||""}})},2c:12(a){a=" "+a+" ";19(17 b=0,d=6.18;b<d;b++)if((" "+6[b].1S+" ").1u(9C," ").26(a)>-1)14 1c;14 1e},58:12(a){if(!1A.18){17 b=6[0];if(b){if(c.1o(b,"5Y")){17 d=b.98.3b;14!d||d.dR?b.3b:b.1I}if(c.1o(b,"2X")){17 e=b.7w;d=[];17 f=b.23;b=b.1l==="2X-6S";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.2N&&(c.1t.9s?!l.4p:l.2s("4p")===1b)&&(!l.1p.4p||!c.1o(l.1p,"e9"))){a=c(l).58();if(b)14 a;d.1F(a)}}14 d}if(9t.1g(b.1l)&&!c.1t.c4)14 b.2s("3b")===1b?"3z":b.3b;14(b.3b||"").1u(c7,"")}14 B}17 k=c.1K(a);14 6.1m(12(o){17 x=c(6),r=a;if(6.1h===1){if(k)r=a.1n(6,o,x.58());if(r==1b)r="";1a if(1i r==="4w")r+="";1a if(c.3g(r))r=c.2S(r,12(C){14 C==1b?"":C+""});if(c.3g(r)&&9t.1g(6.1l))6.46=c.3V(x.58(),r)>=0;1a if(c.1o(6,"2X")){17 A=c.48(r);c("5Y",6).1m(12(){6.2N=c.3V(c(6).58(),A)>=0});if(!A.18)6.7w=-1}1a 6.3b=r}})}});c.1D({8r:{58:1c,1y:1c,2p:1c,1I:1c,1k:1c,1Q:1c,2g:1c,2m:1c},1r:12(a,b,d,e){if(!a||a.1h===3||a.1h===8)14 B;if(e&&b in c.8r)14 c(a)[b](d);e=a.1h!==1||!c.90(a);17 f=d!==B;b=e&&c.6R[b]||b;17 h=d4.1g(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="1l"&&e4.1g(a.1o)&&a.1p&&c.31("1l lm lk\'t be gs");if(d===1b)a.1h===1&&a.4Z(b);1a a[b]=d}if(c.1o(a,"6H")&&a.5n(b))14 a.5n(b).8v;if(b==="9w")14(b=a.5n("9w"))&&b.dR?b.3b:dV.1g(a.1o)||ew.1g(a.1o)&&a.2P?0:B;14 a[b]}if(!c.1t.1d&&e&&b==="1d"){if(f)a.1d.ev=""+d;14 a.1d.ev}f&&a.2h(b,""+d);if(!a.98[b]&&a.eB&&!a.eB(b))14 B;a=!c.1t.eA&&e&&h?a.2s(b,2):a.2s(b);14 a===1b?B:a}});17 X=/\\.(.*)$/,ia=/^(?:6C|2K|2X)$/i,ez=/\\./g,et=/ /g,ei=/[^\\w\\s.|`]/g,eo=12(a){14 a.1u(ei,"\\\\$&")},9J={8N:0,5s:0};c.1q={3i:12(a,b,d,e){if(!(a.1h===3||a.1h===8)){if(c.5h(a)&&a!==E&&!a.ek)a=E;if(d===1e)d=U;1a if(!d)14;17 f,h;if(d.36){f=d;d=f.36}if(!d.2f)d.2f=c.2f++;if(h=c.1k(a)){17 l=a.1h?"2R":"7i",k=h[l],o=h.2E;if(1i k==="12"){o=k.2E;k=k.2R}1a if(!k){a.1h||(h[l]=h=12(){});h.2R=k={}}if(!o)h.2E=o=12(){14 1i c!=="3l"&&!c.1q.8W?c.1q.2E.22(o.1w,1A):B};o.1w=a;b=b.2L(" ");19(17 x=0,r;l=b[x++];){h=f?c.1D({},f):{36:d,1k:e};if(l.26(".")>-1){r=l.2L(".");l=r.4s();h.3W=r.2v(0).4t().3Y(".")}1a{r=[];h.3W=""}h.1l=l;if(!h.2f)h.2f=d.2f;17 A=k[l],C=c.1q.49[l]||{};if(!A){A=k[l]=[];if(!C.4x||C.4x.1n(a,e,r,o)===1e)if(a.3A)a.3A(l,o,1e);1a a.3H&&a.3H("3z"+l,o)}if(C.3i){C.3i.1n(a,h);if(!h.36.2f)h.36.2f=d.2f}A.1F(h);c.1q.3N[l]=1c}a=1b}}},3N:{},2M: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?"2R":"7i",w=c.1k(a),I=w&&w[J];if(w&&I){if(1i I==="12"){w=I;I=I.2R}if(b&&b.1l){d=b.36;b=b.1l}if(!b||1i b==="1G"&&b.g6(0)==="."){b=b||"";19(f in I)c.1q.2M(a,f+b)}1a{19(b=b.2L(" ");f=b[l++];){r=f;k=f.26(".")<0;o=[];if(!k){o=f.2L(".");f=o.4s();x=4F("(^|\\\\.)"+c.2S(o.2v(0).4t(),eo).3Y("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}if(A=I[f])if(d){r=c.1q.49[f]||{};19(h=e||0;h<A.18;h++){C=A[h];if(d.2f===C.2f){if(k||x.1g(C.3W)){e==1b&&A.3q(h--,1);r.2M&&r.2M.1n(a,C)}if(e!=1b)2b}}if(A.18===0||e!=1b&&A.18===1){if(!r.4B||r.4B.1n(a,o)===1e)c.9L(a,f,w.2E);37 I[f]}}1a 19(h=0;h<A.18;h++){C=A[h];if(k||x.1g(C.3W)){c.1q.2M(a,r,C.36,h);A.3q(h--,1)}}}if(c.5H(I)){if(b=w.2E)b.1w=1b;37 w.2R;37 w.2E;if(1i w==="12")c.5v(a,J);1a c.5H(w)&&c.5v(a)}}}}},2T:12(a,b,d,e){17 f=a.1l||a;if(!e){a=1i a==="27"?a[c.3D]?a:c.1D(c.57(f),a):c.57(f);if(f.26("!")>=0){a.1l=f=f.2v(0,-1);a.dp=1c}if(!d){a.56();c.1q.3N[f]&&c.1m(c.3L,12(){6.2R&&6.2R[f]&&c.1q.2T(a,b,6.2E.1w)})}if(!d||d.1h===3||d.1h===8)14 B;a.1V=B;a.2B=d;b=c.48(b);b.79(a)}a.6V=d;(e=d.1h?c.1k(d,"2E"):(c.1k(d,"7i")||{}).2E)&&e.22(d,b);e=d.1p||d.2t;1O{if(!(d&&d.1o&&c.6E[d.1o.1P()]))if(d["3z"+f]&&d["3z"+f].22(d,b)===1e){a.1V=1e;a.3Z()}}1M(h){}if(!a.83()&&e)c.1q.2T(a,b,e,1c);1a if(!a.ag()){17 l;e=a.2B;17 k=f.1u(X,""),o=c.1o(e,"a")&&k==="4i",x=c.1q.49[k]||{};if((!x.3P||x.3P.1n(d,a)===1e)&&!o&&!(e&&e.1o&&c.6E[e.1o.1P()])){1O{if(e[k]){if(l=e["3z"+k])e["3z"+k]=1b;c.1q.8W=1c;e[k]()}}1M(r){}if(l)e["3z"+k]=l;c.1q.8W=1e}}},2E:12(a){17 b,d,e,f;d=[];17 h=c.48(1A);a=h[0]=c.1q.9T(a||E.1q);a.6V=6;b=a.1l.26(".")<0&&!a.dp;if(!b){e=a.1l.2L(".");a.1l=e.4s();d=e.2v(0).4t();e=4F("(^|\\\\.)"+d.3Y("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}a.3W=a.3W||d.3Y(".");f=c.1k(6,6.1h?"2R":"7i");if(1i f==="12")f=f.2R;d=(f||{})[a.1l];if(f&&d){d=d.2v(0);f=0;19(17 l=d.18;f<l;f++){17 k=d[f];if(b||e.1g(k.3W)){a.36=k.36;a.1k=k.1k;a.66=k;k=k.36.22(6,h);if(k!==B){a.1V=k;if(k===1e){a.3Z();a.56()}}if(a.7I())2b}}}14 a.1V},6R:"il i0 hY hW 3B hX 80 8T dB an 6V 1k iF iw 7O 36 4I ht hs 92 hi h3 h8 6Y 8d hf hO 71 jD hE hF dD 2B dE hG hH 76".2L(" "),9T:12(a){if(a[c.3D])14 a;17 b=a;a=c.57(b);19(17 d=6.6R.18,e;d;){e=6.6R[--d];a[e]=b[e]}if(!a.2B)a.2B=a.dD||t;if(a.2B.1h===3)a.2B=a.2B.1p;if(!a.71&&a.7O)a.71=a.7O===a.2B?a.dE:a.7O;if(a.6Y==1b&&a.8T!=1b){b=t.29;d=t.1N;a.6Y=a.8T+(b&&b.4P||d&&d.4P||0)-(b&&b.7M||d&&d.7M||0);a.8d=a.dB+(b&&b.4K||d&&d.4K||0)-(b&&b.7N||d&&d.7N||0)}if(a.76==1b&&(a.80!=1b||a.4I!=1b))a.76=a.80!=1b?a.80:a.4I;if(!a.92&&a.an)a.92=a.an;if(!a.76&&a.3B!==B)a.76=a.3B&1?1:a.3B&2?3:a.3B&4?2:0;14 a},2f:hJ,6b:c.6b,49:{3t:{4x:c.aq,4B:c.6v},4h:{3i:12(a){c.1q.3i(6,Y(a.7z,a.2a),c.1D({},a,{36:dz,2f:a.36.2f}))},2M:12(a){c.1q.2M(6,Y(a.7z,a.2a),a)}},hT:{4x:12(a,b,d){if(c.5h(6))6.9F=d},4B:12(a,b){if(6.9F===b)6.9F=1b}}}};c.9L=t.6Z?12(a,b,d){a.6Z&&a.6Z(b,d,1e)}:12(a,b,d){a.8a&&a.8a("3z"+b,d)};c.57=12(a){if(!6.3Z)14 30 c.57(a);if(a&&a.1l){6.al=a;6.1l=a.1l}1a 6.1l=a;6.hK=c.2Q();6[c.3D]=1c};c.57.2A={3Z:12(){6.ag=ca;17 a=6.al;if(a)if(a.3Z)a.3Z();1a a.hL=1e},56:12(){6.83=ca;17 a=6.al;if(a){a.56&&a.56();a.hN=1c}},hw:12(){6.7I=ca;6.56()},ag:U,83:U,7I:U};17 aJ=12(a){17 b=a.71;1O{19(;b&&b!==6;)b=b.1p;if(b!==6){a.1l=a.1k;c.1q.2E.22(6,1A)}}1M(d){}},aH=12(a){a.1l=a.1k;c.1q.2E.22(6,1A)};c.1m({5O:"a2",5B:"a5"},12(a,b){c.1q.49[a]={4x:12(d){c.1q.3i(6,b,d&&d.2a?aH:aJ,a)},4B:12(d){c.1q.2M(6,b,d&&d.2a?aH:aJ)}}});if(!c.1t.dG)c.1q.49.4f={4x:12(){if(6.1o.1P()!=="6H"){c.1q.3i(6,"4i.ax",12(a){17 b=a.2B,d=b.1l;if((d==="4f"||d==="3p")&&c(b).69("6H").18){a.72=B;14 la("4f",6,1A)}});c.1q.3i(6,"d6.ax",12(a){17 b=a.2B,d=b.1l;if((d==="1I"||d==="6I")&&c(b).69("6H").18&&a.4I===13){a.72=B;14 la("4f",6,1A)}})}1a 14 1e},4B:12(){c.1q.2M(6,".ax")}};if(!c.1t.dM){17 V,9S=12(a){17 b=a.1l,d=a.3b;if(b==="4L"||b==="4T")d=a.46;1a if(b==="2X-8z")d=a.7w>-1?c.2S(a.23,12(e){14 e.2N}).3Y("-"):"";1a if(a.1o.1P()==="2X")d=a.7w;14 d},Z=12(a,b){17 d=a.2B,e,f;if(!(!ia.1g(d.1o)||d.dN)){e=c.1k(d,"9Q");f=9S(d);if(a.1l!=="5s"||d.1l!=="4L")c.1k(d,"9Q",f);if(!(e===B||f===e))if(e!=1b||f){a.1l="6T";a.72=B;14 c.1q.2T(a,b,d)}}};c.1q.49.6T={3Q:{5s:Z,hh:Z,4i:12(a){17 b=a.2B,d=b.1l;if(d==="4L"||d==="4T"||b.1o.1P()==="2X")14 Z.1n(6,a)},ah:12(a){17 b=a.2B,d=b.1l;if(a.4I===13&&b.1o.1P()!=="6C"||a.4I===32&&(d==="4T"||d==="4L")||d==="2X-8z")14 Z.1n(6,a)},dK:12(a){a=a.2B;c.1k(a,"9Q",9S(a))}},4x:12(){if(6.1l==="6K")14 1e;19(17 a in V)c.1q.3i(6,a+".dL",V[a]);14 ia.1g(6.1o)},4B:12(){c.1q.2M(6,".dL");14 ia.1g(6.1o)}};V=c.1q.49.6T.3Q;V.7b=V.dK}t.3A&&c.1m({7b:"8N",5A:"5s"},12(a,b){12 d(e){e=c.1q.9T(e);e.1l=b;14 c.1q.2T(e,1b,e.2B)}c.1q.49[b]={4x:12(){9J[b]++===0&&t.3A(a,d,1c)},4B:12(){--9J[b]===0&&t.6Z(a,d,1c)}}});c.1m(["7u","6S"],12(a,b){c.fn[b]=12(d,e,f){if(1i d==="27"){19(17 h in d)6[b](h,e,d[h],f);14 6}if(c.1K(e)||e===1e){f=e;e=B}17 l=b==="6S"?c.6b(f,12(o){c(6).5w(o,l);14 f.22(6,1A)}):f;if(d==="9G"&&b!=="6S")6.6S(d,e,f);1a{h=0;19(17 k=6.18;h<k;h++)c.1q.3i(6[h],d,l,e)}14 6}});c.fn.1D({5w:12(a,b){if(1i a==="27"&&!a.3Z)19(17 d in a)6.5w(d,a[d]);1a{d=0;19(17 e=6.18;d<e;d++)c.1q.2M(6[d],a,b)}14 6},hV:12(a,b,d,e){14 6.4h(b,d,e,a)},iA:12(a,b,d){14 1A.18===0?6.5w("4h"):6.df(b,1b,d,a)},2T:12(a,b){14 6.1m(12(){c.1q.2T(a,b,6)})},7B:12(a,b){if(6[0]){17 d=c.57(a);d.3Z();d.56();c.1q.2T(d,b,6[0]);14 d.1V}},4g:12(a){19(17 b=1A,d=1;d<b.18;)c.6b(a,b[d++]);14 6.4i(c.6b(a,12(e){17 f=(c.1k(6,"du"+a.2f)||0)%d;c.1k(6,"du"+a.2f,f+1);e.3Z();14 b[f].22(6,1A)||1e}))},dg:12(a,b){14 6.5O(a).5B(b||a)}});17 9Y={7b:"8N",5A:"5s",5O:"a2",5B:"a5"};c.1m(["4h","df"],12(a,b){c.fn[b]=12(d,e,f,h){17 l,k=0,o,x,r=h||6.2a;h=h?6:c(6.2i);if(1i d==="27"&&!d.3Z){19(l in d)h[b](l,e,d[l],r);14 6}if(c.1K(e)){f=e;e=B}19(d=(d||"").2L(" ");(l=d[k++])!=1b;){o=X.1W(l);x="";if(o){x=o[0];l=l.1u(X,"")}if(l==="dg")d.1F("5O"+x,"5B"+x);1a{o=l;if(l==="7b"||l==="5A"){d.1F(9Y[l]+x);l+=x}1a l=(9Y[l]||l)+x;if(b==="4h"){x=0;19(17 A=h.18;x<A;x++)c.1q.3i(h[x],"4h."+Y(l,r),{1k:e,2a:r,36:f,7z:l,dc:f,7v:o})}1a h.5w("4h."+Y(l,r),f)}}14 6}});c.1m("5A 7b 8N 5s 4C 8F 7Y 9G 4i iL iK iG iH a2 a5 5O 5B 6T 2X 4f ah d6 i4 31".2L(" "),12(a,b){c.fn[b]=12(d,e){if(e==1b){e=d;d=1b}14 1A.18>0?6.7u(b,d,e):6.2T(b)};if(c.8r)c.8r[b]=1c});E.3H&&!E.3A&&c(E).7u("9G",12(){19(17 a in c.3L)if(c.3L[a].2E)1O{c.1q.2M(c.3L[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.5U===n){F=m[y.8k];2b}if(y.1h===1&&!q){y.5U=n;y.8k=p}if(y.1o.1P()===i){F=y;2b}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.5U===n){F=m[y.8k];2b}if(y.1h===1){if(!q){y.5U=n;y.8k=p}if(1i i!=="1G"){if(y===i){F=1c;2b}}1a if(k.21(i,[y]).18>0){F=y;2b}}y=y[g]}m[p]=F}}}17 d=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|[\'"][^\'"]*[\'"]|[^\\[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,e=0,f=6r.2A.3G,h=1e,l=1c;[0,0].4t(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||1i g!=="1G")14 n;17 q,u,y,F,M,N=1c,O=k.5S(i),D=[],R=g;do{d.1W("");if(q=d.1W(R)){R=q[3];D.1F(q[1]);if(q[2]){F=q[3];2b}}}cM(q);if(D.18>1&&x.1W(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.4s(),i);D.18;){g=D.4s();if(o.4b[g])g+=D.4s();u=L(g,u)}1a{if(!m&&D.18>1&&i.1h===9&&!O&&o.2e.4n.1g(D[0])&&!o.2e.4n.1g(D[D.18-1])){q=k.1R(D.4s(),i,O);i=q.2x?k.21(q.2x,q.45)[0]:q.45[0]}if(i){q=m?{2x:D.8m(),45:C(m)}:k.1R(D.8m(),D.18===1&&(D[0]==="~"||D[0]==="+")&&i.1p?i.1p:i,O);u=q.2x?k.21(q.2x,q.45):q.45;if(D.18>0)y=C(u);1a N=1e;19(;D.18;){q=M=D.8m();if(o.4b[M])q=D.8m();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)==="[27 3a]")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.3U(i,y[g])))n.1F(u[g])}1a 19(g=0;y[g]!=1b;g++)y[g]&&y[g].1h===1&&n.1F(u[g]);1a n.1F.22(n,y);1a C(y,n);if(F){k(F,p,n,m);k.9m(n)}14 n};k.9m=12(g){if(w){h=l;g.4t(w);if(h)19(17 i=1;i<g.18;i++)g[i]===g[i-1]&&g.3q(i--,1)}14 g};k.dT=12(g,i){14 k(g,1b,1b,i)};k.6h=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.8I.18;p<q;p++){17 u,y=o.8I[p];if(u=o.8A[y].1W(g)){17 F=u[1];u.3q(1,1);if(F.4o(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],"");2b}}}}m||(m=i.1Y("*"));14{45:m,2x:g}};k.21=12(g,i,n,m){19(17 p,q,u=g,y=[],F=i,M=i&&i[0]&&k.5S(i[0]);g&&i.18;){19(17 N in o.21)if((p=o.8A[N].1W(g))!=1b&&p[2]){17 O,D,R=o.21[N];D=p[1];q=1e;p.3q(1,1);if(D.4o(D.18-1)!=="\\\\"){if(F===y)y=[];if(o.aI[N])if(p=o.aI[N](p,F,n,y,m,M)){if(p===1c)aZ}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.1F(D);q=1c}}if(O!==B){n||(F=y);g=g.1u(o.2e[N],"");if(!q)14[];2b}}}if(g===u)if(q==1b)k.31(g);1a 2b;u=g}14 F};k.31=12(g){di"dm 31, dP dQ: "+g};17 o=k.ey={8I:["4n","9N","5Z"],2e:{4n:/#((?:[\\w\\5D-\\5C\\-]|\\\\.)+)/,7f:/\\.((?:[\\w\\5D-\\5C\\-]|\\\\.)+)/,9N:/\\[2Z=[\'"]*((?:[\\w\\5D-\\5C\\-]|\\\\.)+)[\'"]*\\]/,95:/\\[\\s*((?:[\\w\\5D-\\5C\\-]|\\\\.)+)\\s*(?:(\\S?=)\\s*([\'"]*)(.*?)\\3|)\\s*\\]/,5Z:/^((?:[\\w\\5D-\\5C\\*\\-]|\\\\.)+)/,8P:/:(em|4y|78|5z)-h2(?:\\((8p|8H|[\\dn+\\-]*)\\))?/,5i:/:(4y|eq|gt|lt|5z|78|8p|8H)(?:\\((\\d*)\\))?(?=[^\\-]|$)/,5x:/:((?:[\\w\\5D-\\5C\\-]|\\\\.)+)(?:\\(([\'"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},8A:{},au:{"2G":"1S","19":"dr"},8R:{2P:12(g){14 g.2s("2P")}},4b:{"+":12(g,i){17 n=1i i==="1G",m=n&&!/\\W/.1g(i);n=n&&!m;if(m)i=i.1P();m=0;19(17 p=g.18,q;m<p;m++)if(q=g[m]){19(;(q=q.61)&&q.1h!==1;);g[m]=n||q&&q.1o.1P()===i?q||1e:q===i}n&&k.21(i,g,1c)},">":12(g,i){17 n,m=1i i==="1G",p=0,q=g.18;if(m&&!/\\W/.1g(i))19(i=i.1P();p<q;p++){if(n=g[p]){n=n.1p;g[p]=n.1o.1P()===i?n:1e}}1a{19(;p<q;p++)if(n=g[p])g[p]=m?n.1p:n.1p===i;m&&k.21(i,g,1c)}},"":12(g,i,n){17 m,p=e++,q=b;if(1i i==="1G"&&!/\\W/.1g(i)){m=i=i.1P();q=a}q("1p",i,p,g,m,n)},"~":12(g,i,n){17 m,p=e++,q=b;if(1i i==="1G"&&!/\\W/.1g(i)){m=i=i.1P();q=a}q("61",i,p,g,m,n)}},1R:{4n:12(g,i,n){if(1i i.2J!=="3l"&&!n)14(g=i.2J(g[1]))&&g.1p?[g]:[]},9N:12(g,i){if(1i i.ds!=="3l"){19(17 n=[],m=i.ds(g[1]),p=0,q=m.18;p<q;p++)m[p].2s("2Z")===g[1]&&n.1F(m[p]);14 n.18===0?1b:n}},5Z:12(g,i){14 i.1Y(g[1])}},aI:{7f: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.1S&&(" "+u.1S+" ").1u(/[\\t\\n]/g," ").26(g)>=0))n||m.1F(u);1a if(n)i[q]=1e;14 1e},4n:12(g){14 g[1].1u(/\\\\/g,"")},5Z:12(g){14 g[1].1P()},8P:12(g){if(g[1]==="4y"){17 i=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.1W(g[2]==="8p"&&"2n"||g[2]==="8H"&&"2n+1"||!/\\D/.1g(g[2])&&"im+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;14 g},95:12(g,i,n,m,p,q){i=g[1].1u(/\\\\/g,"");if(!q&&o.au[i])g[1]=o.au[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";14 g},5x:12(g,i,n,m,p){if(g[1]==="6d")if((d.1W(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.1F.22(m,g);14 1e}1a if(o.2e.5i.1g(g[0])||o.2e.8P.1g(g[0]))14 1c;14 g},5i:12(g){g.79(1c);14 g}},3Q:{ij:12(g){14 g.4p===1e&&g.1l!=="3r"},4p:12(g){14 g.4p===1c},46:12(g){14 g.46===1c},2N:12(g){14 g.2N===1c},7k:12(g){14!!g.1v},6Q:12(g){14!g.1v},7E:12(g,i,n){14!!k(n[3],g).18},ii:12(g){14/h\\d/i.1g(g.1o)},1I:12(g){14"1I"===g.1l},4L:12(g){14"4L"===g.1l},4T:12(g){14"4T"===g.1l},6K:12(g){14"6K"===g.1l},6I:12(g){14"6I"===g.1l},4f:12(g){14"4f"===g.1l},3p:12(g){14"3p"===g.1l},dt:12(g){14"dt"===g.1l},3B:12(g){14"3B"===g.1l||g.1o.1P()==="3B"},2K:12(g){14/2K|2X|6C|3B/i.1g(g.1o)}},el:{5z:12(g,i){14 i===0},78:12(g,i,n,m){14 i===m.18-1},8p:12(g,i){14 i%2===0},8H: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:{5x:12(g,i,n,m){17 p=i[1],q=o.3Q[p];if(q)14 q(g,n,i,m);1a if(p==="3U")14(g.dl||g.fY||k.7H([g])||"").26(i[3])>=0;1a if(p==="6d"){i=i[3];n=0;19(m=i.18;n<m;n++)if(i[n]===g)14 1e;14 1c}1a k.31("dm 31, dP dQ: "+p)},8P:12(g,i){17 n=i[1],m=g;g5(n){8O"em":8O"5z":19(;m=m.61;)if(m.1h===1)14 1e;if(n==="5z")14 1c;m=g;8O"78":19(;m=m.2V;)if(m.1h===1)14 1e;14 1c;8O"4y":n=i[2];17 p=i[3];if(n===1&&p===0)14 1c;17 q=i[0],u=g.1p;if(u&&(u.5U!==q||!g.8Z)){17 y=0;19(m=u.1v;m;m=m.2V)if(m.1h===1)m.8Z=++y;u.5U=q}m=g.8Z-p;14 n===0?m===0:m%n===0&&m/n>=0}},4n:12(g,i){14 g.1h===1&&g.2s("id")===i},5Z:12(g,i){14 i==="*"&&g.1h===1||g.1o.1P()===i},7f:12(g,i){14(" "+(g.1S||g.2s("2G"))+" ").26(i)>-1},95:12(g,i){17 n=i[1];n=o.8R[n]?o.8R[n](g):g[n]!=1b?g[n]:g.2s(n);17 m=n+"",p=i[2],q=i[4];14 n==1b?p==="!=":p==="="?m===q:p==="*="?m.26(q)>=0:p==="~="?(" "+m+" ").26(q)>=0:!q?m&&n!==1e:p==="!="?m!==q:p==="^="?m.26(q)===0:p==="$="?m.4o(m.18-q.18)===q:p==="|="?m===q||m.4o(0,q.18+1)===q+"-":1e},5i:12(g,i,n,m){17 p=o.el[i[2]];if(p)14 p(g,n,i,m)}}},x=o.2e.5i,r=12(g,i){14"\\\\"+(i-0+1)},A;19(A in o.2e){o.2e[A]=4F(o.2e[A].8w+/(?![^\\[]*\\])(?![^\\(]*\\))/.8w);o.8A[A]=4F(/(^(?:.|\\r|\\n)*?)/.8w+o.2e[A].8w.1u(/\\\\(\\d+)/g,r))}17 C=12(g,i){g=3a.2A.2v.1n(g,0);if(i){i.1F.22(i,g);14 i}14 g};1O{3a.2A.2v.1n(t.29.2H,0)}1M(J){C=12(g,i){17 n=0,m=i||[];if(f.1n(g)==="[27 3a]")3a.2A.1F.22(m,g);1a if(1i g.18==="4w")19(17 p=g.18;n<p;n++)m.1F(g[n]);1a 19(;g[n];n++)m.1F(g[n]);14 m}}17 w,I;if(t.29.5m)w=12(g,i){if(g===i){h=1c;14 0}if(!g.5m||!i.5m)14 g.5m?-1:1;14 g.5m(i)&4?-1:1};1a{w=12(g,i){17 n,m,p=[],q=[];n=g.1p;m=i.1p;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.79(u);u=u.1p}19(u=m;u;){q.79(u);u=u.1p}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.2V;g;){if(g===i)14-1;g=g.2V}14 1}}k.7H=12(g){19(17 i="",n,m=0;g[m];m++){n=g[m];if(n.1h===3||n.1h===4)i+=n.8v;1a if(n.1h!==8)i+=k.7H(n.2H)}14 i};(12(){17 g=t.1U("1B"),i="2C"+(30 8V).eg(),n=t.29;g.2U="<a 2Z=\'"+i+"\'/>";n.3m(g,n.1v);if(t.2J(i)){o.1R.4n=12(m,p,q){if(1i p.2J!=="3l"&&!q)14(p=p.2J(m[1]))?p.id===m[1]||1i p.5n!=="3l"&&p.5n("id").8v===m[1]?[p]:B:[]};o.21.4n=12(m,p){17 q=1i m.5n!=="3l"&&m.5n("id");14 m.1h===1&&q&&q.8v===p}}n.3k(g);n=g=1b})();(12(){17 g=t.1U("1B");g.2q(t.gc(""));if(g.1Y("*").18>0)o.1R.5Z=12(i,n){17 m=n.1Y(i[1]);if(i[1]==="*"){19(17 p=[],q=0;m[q];q++)m[q].1h===1&&p.1F(m[q]);m=p}14 m};g.2U="<a 2P=\'#\'></a>";if(g.1v&&1i g.1v.2s!=="3l"&&g.1v.2s("2P")!=="#")o.8R.2P=12(i){14 i.2s("2P",2)};g=1b})();t.7c&&12(){17 g=k,i=t.1U("1B");i.2U="<p 2G=\'ej\'></p>";if(!(i.7c&&i.7c(".ej").18===0)){k=12(m,p,q,u){p=p||t;m=m.1u(/\\=\\s*([^\'"\\]]*)\\s*\\]/g,"=\'$1\']");if(!u&&!k.5S(p))if(p.1h===9)1O{14 C(p.7c(m),q)}1M(y){}1a if(p.1h===1&&p.1o.1P()!=="27"){17 F=p.2s("id"),M=F||"fV";F||p.2h("id",M);1O{14 C(p.7c("#"+M+" "+m),q)}1M(N){}h1{F||p.4Z("id")}}14 g(m,p,q,u)};19(17 n in g)k[n]=g[n];i=1b}}();(12(){17 g=t.29,i=g.6h||g.gL||g.gM||g.gN,n=1e;1O{i.1n(t.29,"[1g!=\'\']:gO")}1M(m){n=1c}if(i)k.6h=12(p,q){q=q.1u(/\\=\\s*([^\'"\\]]*)\\s*\\]/g,"=\'$1\']");if(!k.5S(p))1O{if(n||!o.2e.5x.1g(q)&&!/!=/.1g(q))14 i.1n(p,q)}1M(u){}14 k(q,1b,1b,[p]).18>0}})();(12(){17 g=t.1U("1B");g.2U="<1B 2G=\'1g e\'></1B><1B 2G=\'1g\'></1B>";if(!(!g.7d||g.7d("e").18===0)){g.9U.1S="e";if(g.7d("e").18!==1){o.8I.3q(1,0,"7f");o.1R.7f=12(i,n,m){if(1i n.7d!=="3l"&&!m)14 n.7d(i[1])};g=1b}}})();k.3U=t.29.3U?12(g,i){14 g!==i&&(g.3U?g.3U(i):1c)}:t.29.5m?12(g,i){14!!(g.5m(i)&16)}:12(){14 1e};k.5S=12(g){14(g=(g?g.2t||g:0).29)?g.1o!=="gH":1e};17 L=12(g,i){19(17 n,m=[],p="",q=i.1h?[i]:i;n=o.2e.5x.1W(g);){p+=n[0];g=g.1u(o.2e.5x,"")}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.ey;c.2x[":"]=c.2x.3Q;c.8y=k.9m;c.1I=k.7H;c.90=k.5S;c.3U=k.3U})();17 dW=/h0$/,$a=/^(?:dX|dZ|dY)/,ab=/,/,eu=/^.[^:#\\[\\.,]*$/,bb=3a.2A.2v,cb=c.2x.2e.5i;c.fn.1D({1R:12(a){19(17 b=6.3o("","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.3q(h--,1);2b}}14 b},7E:12(a){17 b=c(a);14 6.21(12(){19(17 d=0,e=b.18;d<e;d++)if(c.3U(6,b[d]))14 1c})},6d:12(a){14 6.3o(9l(6,a,1e),"6d",a)},21:12(a){14 6.3o(9l(6,a,1c),"21",a)},is:12(a){14!!a&&c.21(a,6).18>0},69: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.5i.1g(l)?c(l,b||6.2i):l)}19(;h&&h.2t&&h!==b;){19(l in k){e=k[l];if(e.6O?e.3s(h)>-1:c(h).is(e))d.1F({2a:l,1w:h,6i:o})}h=h.1p;o++}}14 d}l=cb.1g(a)?c(a,b||6.2i):1b;e=0;19(f=6.18;e<f;e++)19(h=6[e];h;)if(l?l.3s(h)>-1:c.1R.6h(h,a)){d.1F(h);2b}1a{h=h.1p;if(!h||!h.2t||h===b)2b}d=d.18>1?c.8y(d):d;14 6.3o(d,"69",a)},3s:12(a){if(!a||1i a==="1G")14 c.3V(6[0],a?c(a):6.7k().1L());14 c.3V(a.6O?a[0]:a,6)},3i:12(a,b){17 d=1i a==="1G"?c(a,b||6.2i):c.48(a),e=c.4X(6.39(),d);14 6.3o(!d[0]||!d[0].1p||d[0].1p.1h===11||!e[0]||!e[0].1p||e[0].1p.1h===11?e:c.8y(e))},gT:12(){14 6.3i(6.9c)}});c.1m({7k:12(a){14(a=a.1p)&&a.1h!==11?a:1b},dX:12(a){14 c.5e(a,"1p")},gm:12(a,b,d){14 c.5e(a,"1p",d)},gn:12(a){14 c.4y(a,2,"2V")},go:12(a){14 c.4y(a,2,"61")},gp:12(a){14 c.5e(a,"2V")},dY:12(a){14 c.5e(a,"61")},gk:12(a,b,d){14 c.5e(a,"2V",d)},dZ:12(a,b,d){14 c.5e(a,"61",d)},ge:12(a){14 c.8Y(a.1p.1v,a)},1L:12(a){14 c.8Y(a.1v)},8X:12(a){14 c.1o(a,"gg")?a.gh||a.gj.1x:c.48(a.2H)}},12(a,b){c.fn[a]=12(d,e){17 f=c.2S(6,b,d);dW.1g(a)||(e=d);if(e&&1i e==="1G")f=c.21(e,f);f=6.18>1?c.8y(f):f;if((6.18>1||ab.1g(e))&&$a.1g(a))f=f.gr();14 6.3o(f,a,bb.1n(1A).3Y(","))}});c.1D({21:12(a,b,d){if(d)a=":6d("+a+")";14 b.18===1?c.1R.6h(b[0],a)?[b[0]]:[]:c.1R.dT(a,b)},5e: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.1F(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)2b;14 a},8Y:12(a,b){19(17 d=[];a;a=a.2V)a.1h===1&&a!==b&&d.1F(a);14 d}});17 ao=/ 3y\\d+="(?:\\d+|1b)"/g,$=/^\\s+/,az=/<(?!e8|br|e1|5T|hr|4N|2K|38|gu|4W)(([\\w:]+)[^>]*)\\/>/ig,aB=/<([\\w:]+)/,db=/<35/i,eb=/<|&#?\\w+;/,af=/<(?:2C|27|5T|5Y|1d)/i,ak=/46\\s*(?:[^=]|=\\s*.46.)/i,fb=/\\=([^="\'>\\s]+\\/)>/g,P={5Y:[1,"<2X 8z=\'8z\'>","</2X>"],gw:[1,"<e0>","</e0>"],ec:[1,"<2F>","</2F>"],4d:[2,"<2F><35>","</35></2F>"],4l:[3,"<2F><35><4d>","</4d></35></2F>"],e1:[2,"<2F><35></35><97>","</97></2F>"],e8:[1,"<2S>","</2S>"],3P:[0,"",""]};P.e9=P.5Y;P.35=P.l6=P.97=P.l8=P.ec;P.fg=P.4l;if(!c.1t.e7)P.3P=[1,"1B<1B>","</1B>"];c.fn.1D({1I:12(a){if(c.1K(a))14 6.1m(12(b){17 d=c(6);d.1I(a.1n(6,b,d.1I()))});if(1i a!=="27"&&a!==B)14 6.6Q().4c((6[0]&&6[0].2t||t).4q(a));14 c.1I(6)},8u:12(a){if(c.1K(a))14 6.1m(12(d){c(6).8u(a.1n(6,d))});if(6[0]){17 b=c(a,6[0].2t).eq(0).aD(1c);6[0].1p&&b.3m(6[0]);b.2S(12(){19(17 d=6;d.1v&&d.1v.1h===1;)d=d.1v;14 d}).4c(6)}14 6},e6:12(a){if(c.1K(a))14 6.1m(12(b){c(6).e6(a.1n(6,b))});14 6.1m(12(){17 b=c(6),d=b.8X();d.18?d.8u(a):b.4c(a)})},l3:12(a){14 6.1m(12(){c(6).8u(a)})},l0:12(){14 6.7k().1m(12(){c.1o(6,"1N")||c(6).6F(6.2H)}).3R()},4c:12(){14 6.5d(1A,1c,12(a){6.1h===1&&6.2q(a)})},c2:12(){14 6.5d(1A,1c,12(a){6.1h===1&&6.3m(a,6.1v)})},8B:12(){if(6[0]&&6[0].1p)14 6.5d(1A,1e,12(b){6.1p.3m(b,6)});1a if(1A.18){17 a=c(1A[0]);a.1F.22(a,6.8t());14 6.3o(a,"8B",1A)}},aG:12(){if(6[0]&&6[0].1p)14 6.5d(1A,1e,12(b){6.1p.3m(b,6.2V)});1a if(1A.18){17 a=6.3o(6,"aG",1A);a.1F.22(a,c(1A[0]).8t());14 a}},2M: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.6G(e.1Y("*"));c.6G([e])}e.1p&&e.1p.3k(e)}14 6},6Q:12(){19(17 a=0,b;(b=6[a])!=1b;a++)19(b.1h===1&&c.6G(b.1Y("*"));b.1v;)b.3k(b.1v);14 6},aD:12(a){17 b=6.2S(12(){if(!c.1t.96&&!c.90(6)){17 d=6.iR,e=6.2t;if(!d){d=e.1U("1B");d.2q(6.4R(1c));d=d.2U}14 c.ay([d.1u(ao,"").1u(fb,\'="$1">\').1u($,"")],e)[0]}1a 14 6.4R(1c)});if(a===1c){aK(6,b);aK(6.1R("*"),b.1R("*"))}14 b},2p:12(a){if(a===B)14 6[0]&&6[0].1h===1?6[0].2U.1u(ao,""):1b;1a if(1i a==="1G"&&!af.1g(a)&&(c.1t.9I||!$.1g(a))&&!P[(aB.1W(a)||["",""])[1].1P()]){a=a.1u(az,"<$1></$2>");1O{19(17 b=0,d=6.18;b<d;b++)if(6[b].1h===1){c.6G(6[b].1Y("*"));6[b].2U=a}}1M(e){6.6Q().4c(a)}}1a c.1K(a)?6.1m(12(f){17 h=c(6);h.2p(a.1n(6,f,h.2p()))}):6.6Q().4c(a);14 6},6F:12(a){if(6[0]&&6[0].1p){if(c.1K(a))14 6.1m(12(b){17 d=c(6),e=d.2p();d.6F(a.1n(6,b,e))});if(1i a!=="1G")a=c(a).e5();14 6.1m(12(){17 b=6.2V,d=6.1p;c(6).2M();b?c(b).8B(a):c(d).4c(a)})}1a 14 6.3o(c(c.1K(a)?a():a),"6F",a)},e5:12(a){14 6.2M(a,1c)},5d:12(a,b,d){17 e,f,h,l=a[0],k=[];if(!c.1t.8E&&1A.18===3&&1i l==="1G"&&ak.1g(l))14 6.1m(12(){c(6).5d(a,b,d,1c)});if(c.1K(l))14 6.1m(12(x){17 r=c(6);a[0]=l.1n(6,x,b?r.2p():B);r.5d(a,b,d)});if(6[0]){e=l&&l.1p;e=c.1t.1p&&e&&e.1h===11&&e.2H.18===6.18?{6f:e}:c.am(a,6,k);h=e.6f;if(f=h.2H.18===1?h=h.1v:h.1v){b=b&&c.1o(f,"4d");f=0;19(17 o=6.18;f<o;f++)d.1n(b?c.1o(6[f],"2F")?6[f].1Y("35")[0]||6[f].2q(6[f].2t.1U("35")):6[f]:6[f],f>0||e.av||6.18>1?h.4R(1c):h)}k.18&&c.1m(k,c6)}14 6}});c.am=12(a,b,d){17 e,f,h;b=b&&b[0]?b[0].2t||b[0]:t;if(a.18===1&&1i a[0]==="1G"&&a[0].18<le&&b===t&&!af.1g(a[0])&&(c.1t.8E||!ak.1g(a[0]))){f=1c;if(h=c.aF[a[0]])if(h!==1)e=h}if(!e){e=b.c8();c.ay(a,b,e,d)}if(f)c.aF[a[0]]=h?e:1;14{6f:e,av:f}};c.aF={};c.1m({c1:"4c",kI:"c2",3m:"8B",kJ:"aG",kG:"6F"},12(a,b){c.fn[a]=12(d){17 e=[];d=c(d);17 f=6.18===1&&6[0].1p;if(f&&f.1h===11&&f.2H.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.aD(1c):6).39();c(d[f])[b](l);e=e.8l(l)}14 6.3o(e,a,d.2a)}}});c.1D({ay:12(a,b,d,e){b=b||t;if(1i b.1U==="3l")b=b.2t||b[0]&&b[0].2t||t;19(17 f=[],h=0,l;(l=a[h])!=1b;h++){if(1i l==="4w")l+="";if(l){if(1i l==="1G"&&!eb.1g(l))l=b.4q(l);1a if(1i l==="1G"){l=l.1u(az,"<$1></$2>");17 k=(aB.1W(l)||["",""])[1].1P(),o=P[k]||P.3P,x=o[0],r=b.1U("1B");19(r.2U=o[1]+l+o[2];x--;)r=r.9U;if(!c.1t.35){x=db.1g(l);k=k==="2F"&&!x?r.1v&&r.1v.2H:o[1]==="<2F>"&&!x?r.2H:[];19(o=k.18-1;o>=0;--o)c.1o(k[o],"35")&&!k[o].2H.18&&k[o].1p.3k(k[o])}!c.1t.9I&&$.1g(l)&&r.3m(b.4q($.1W(l)[0]),r.1v);l=r.2H}if(l.1h)f.1F(l);1a f=c.4X(f,l)}}if(d)19(h=0;f[h];h++)if(e&&c.1o(f[h],"2C")&&(!f[h].1l||f[h].1l.1P()==="1I/3M"))e.1F(f[h].1p?f[h].1p.3k(f[h]):f[h]);1a{f[h].1h===1&&f.3q.22(f,[h+1,0].8l(c.48(f[h].1Y("2C"))));d.2q(f[h])}14 f},6G:12(a){19(17 b,d,e=c.3L,f=c.1q.49,h=c.1t.8s,l=0,k;(k=a[l])!=1b;l++)if(!(k.1o&&c.6E[k.1o.1P()]))if(d=k[c.3D]){if((b=e[d])&&b.2R)19(17 o in b.2R)f[o]?c.1q.2M(k,o):c.9L(k,o,b.2E);if(h)37 k[c.3D];1a k.4Z&&k.4Z(c.3D);37 e[d]}}});17 ac=/bZ\\([^)]*\\)/i,gb=/2l=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,a9=/^-?\\d+(?:2Y)?$/i,jb=/^-?\\d/,kb={2D:"5X",by:"3r",1E:"4Q"},cg=["fj","lS"],cd=["fs","lQ"],W,a3,aa,lb=12(a,b){14 b.7C()};c.fn.1y=12(a,b){if(1A.18===2&&b===B)14 6;14 c.8q(6,a,b,1c,12(d,e,f){14 f!==B?c.1d(d,e,f):c.1y(d,e)})};c.1D({6D:{2l:{39:12(a,b){if(b){17 d=W(a,"2l","2l");14 d===""?"1":d}1a 14 a.1d.2l}}},ce:{m4:1c,eY:1c,2l:1c,6q:1c,m3:1c},9W:{"8e":c.1t.6k?"6k":"eZ"},1d:12(a,b,d,e){if(!(!a||a.1h===3||a.1h===8||!a.1d)){17 f,h=c.81(b),l=a.1d,k=c.6D[h];b=c.9W[h]||h;if(d!==B){if(!(1i d==="4w"&&5I(d)||d==1b)){if(1i d==="4w"&&!c.ce[h])d+="2Y";if(!k||!("45"in k)||(d=k.45(a,d))!==B)1O{l[b]=d}1M(o){}}}1a{if(k&&"39"in k&&(f=k.39(a,1e,e))!==B)14 f;14 l[b]}}},1y:12(a,b,d){17 e,f=c.81(b),h=c.6D[f];b=c.9W[f]||f;if(h&&"39"in h&&(e=h.39(a,1c,d))!==B)14 e;1a if(W)14 W(a,b,f)},cf: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]},81:12(a){14 a.1u(hb,lb)}});c.cI=c.1y;c.1m(["2g","1Q"],12(a,b){c.6D[b]={39:12(d,e,f){17 h;if(e){if(d.5t!==0)h=a6(d,b,f);1a c.cf(d,kb,12(){h=a6(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="3n"&&aa)h=aa(d,b,b);if(h!=1b)14 h===""||h==="7R"?"3n":h}if(h<0||h==1b){h=d.1d[b];14 h===""||h==="7R"?"3n":h}14 1i h==="1G"?h:h+"2Y"}},45:12(d,e){if(a9.1g(e)){e=1Z(e);if(e>=0)14 e+"2Y"}1a 14 e}}});if(!c.1t.2l)c.6D.2l={39:12(a,b){14 gb.1g((b&&a.4G?a.4G.21:a.1d.21)||"")?1Z(4F.$1)/6e+"":b?"1":""},45:12(a,b){17 d=a.1d;d.6q=1;17 e=c.5I(b)?"":"bZ(2l="+b*6e+")",f=d.21||"";d.21=ac.1g(f)?f.1u(ac,e):d.21+" "+e}};if(t.6w&&t.6w.7J)a3=12(a,b,d){17 e;d=d.1u(ib,"-$1").1P();if(!(b=a.2t.6w))14 B;if(b=b.7J(a,1b)){e=b.lq(d);if(e===""&&!c.3U(a.2t.29,a))e=c.1d(a,d)}14 e};if(t.29.4G)aa=12(a,b){17 d,e,f=a.4G&&a.4G[b],h=a.1d;if(!a9.1g(f)&&jb.1g(f)){d=h.1J;e=a.a4.1J;a.a4.1J=a.4G.1J;h.1J=b==="ls"?"lu":f||0;f=h.lB+"2Y";h.1J=d;a.a4.1J=e}14 f===""?"7R":f};W=a3||aa;if(c.2x&&c.2x.3Q){c.2x.3Q.3r=12(a){17 b=a.8G;14 a.5t===0&&b===0||!c.1t.6B&&(a.1d.1E||c.1y(a,"1E"))==="2z"};c.2x.3Q.fq=12(a){14!c.2x.3Q.3r(a)}}17 bR=c.2Q(),bI=/<2C\\b[^<]*(?:(?!<\\/2C>)<[^<]*)*<\\/2C>/gi,bH=/^(?:2X|6C)/i,bN=/^(?:2k|lE|lF|lG|3r|kP|4w|6I|ky|kz|jr|1I|jt|1C|ju)$/i,bU=/^(?:67|jp)$/,bM=/\\[\\]$/,T=/\\=\\?(&|$)/,ja=/\\?/,cl=/([?&])cm=[^&]*/,cR=/^(\\w+:)?\\/\\/([^\\/?#]+)/,cV=/%20/g,bT=/#.*$/,a1=c.fn.4C;c.fn.1D({4C:12(a,b,d){if(1i a!=="1G"&&a1)14 a1.22(6,1A);1a if(!6.18)14 6;17 e=a.26(" ");if(e>=0){17 f=a.2v(e,a.18);a=a.2v(0,e)}e="67";if(b)if(c.1K(b)){d=b;b=1b}1a if(1i b==="27"){b=c.4W(b,c.5o.9V);e="bW"}17 h=6;c.65({1C:a,1l:e,33:"2p",1k:b,3F:12(l,k){if(k==="4E"||k==="a8")h.2p(f?c("<1B>").4c(l.7q.1u(bI,"")).1R(f):l.7q);d&&h.1m(d,[l.7q,k,l])}});14 6},jj:12(){14 c.4W(6.bE())},bE:12(){14 6.2S(12(){14 6.bF?c.48(6.bF):6}).21(12(){14 6.2Z&&!6.4p&&(6.46||bH.1g(6.1o)||bN.1g(6.1l))}).2S(12(a,b){17 d=c(6).58();14 d==1b?1b:c.3g(d)?c.2S(d,12(e){14{2Z:b.2Z,3b:e}}):{2Z:b.2Z,3b:d}}).39()}});c.1m("cQ 9H cv cX cu cT".2L(" "),12(a,b){c.fn[b]=12(d){14 6.7u(b,d)}});c.1D({39:12(a,b,d,e){if(c.1K(b)){e=e||d;d=b;b=1b}14 c.65({1l:"67",1C:a,1k:b,4E:d,33:e})},cr:12(a,b){14 c.39(a,1b,b,"2C")},jE:12(a,b,d){14 c.39(a,b,d,"4U")},jG:12(a,b,d,e){if(c.1K(b)){e=e||d;d=b;b={}}14 c.65({1l:"bW",1C:a,1k:b,4E:d,33:e})},jB:12(a){c.1D(c.5o,a)},5o:{1C:5y.2P,3N:1c,1l:"67",9X:"7G/x-jx-6H-jz",bP:1c,5a:1c,88:12(){14 30 E.aC},7D:{6J:"7G/6J, 1I/6J",2p:"1I/2p",2C:"1I/3M, 7G/3M",4U:"7G/4U, 1I/3M",1I:"1I/ji",3P:"*/*"}},65:12(a){17 b=c.1D(1c,{},c.5o,a),d,e,f,h=b.1l.7C(),l=bU.1g(h);b.1C=b.1C.1u(bT,"");b.2i=a&&a.2i!=1b?a.2i:b;if(b.1k&&b.bP&&1i b.1k!=="1G")b.1k=c.4W(b.1k,b.9V);if(b.33==="7y"){if(h==="67")T.1g(b.1C)||(b.1C+=(ja.1g(b.1C)?"&":"?")+(b.7y||"3j")+"=?");1a if(!b.1k||!T.1g(b.1k))b.1k=(b.1k?b.1k+"&":"")+(b.7y||"3j")+"=?";b.33="4U"}if(b.33==="4U"&&(b.1k&&T.1g(b.1k)||T.1g(b.1C))){d=b.iZ||"7y"+bR++;if(b.1k)b.1k=(b.1k+"").1u(T,"="+d+"$1");b.1C=b.1C.1u(T,"="+d+"$1");b.33="2C";17 k=E[d];E[d]=12(m){if(c.1K(k))k(m);1a{E[d]=B;1O{37 E[d]}1M(p){}}f=m;c.7F(b,w,e,f);c.5W(b,w,e,f);r&&r.3k(A)}}if(b.33==="2C"&&b.3L===1b)b.3L=1e;if(b.3L===1e&&l){17 o=c.2Q(),x=b.1C.1u(cl,"$iT="+o);b.1C=x+(x===b.1C?(ja.1g(b.1C)?"&":"?")+"cm="+o:"")}if(b.1k&&l)b.1C+=(ja.1g(b.1C)?"&":"?")+b.1k;b.3N&&c.8j++===0&&c.1q.2T("cQ");o=(o=cR.1W(b.1C))&&(o[1]&&o[1].1P()!==5y.aA||o[2].1P()!==5y.iV);if(b.33==="2C"&&h==="67"&&o){17 r=t.1Y("as")[0]||t.29,A=t.1U("2C");if(b.cS)A.j3=b.cS;A.4v=b.1C;if(!d){17 C=1e;A.9Z=A.51=12(){if(!C&&(!6.53||6.53==="jd"||6.53==="3F")){C=1c;c.7F(b,w,e,f);c.5W(b,w,e,f);A.9Z=A.51=1b;r&&A.1p&&r.3k(A)}}}r.3m(A,r.1v);14 B}17 J=1e,w=b.88();if(w){b.cP?w.cO(h,b.1C,b.5a,b.cP,b.6I):w.cO(h,b.1C,b.5a);1O{if(b.1k!=1b&&!l||a&&a.9X)w.6N("jg-jc",b.9X);if(b.d0){c.7l[b.1C]&&w.6N("cL-cp-j5",c.7l[b.1C]);c.7p[b.1C]&&w.6N("cL-j7-j8",c.7p[b.1C])}o||w.6N("X-jH-jI","aC");w.6N("ki",b.33&&b.7D[b.33]?b.7D[b.33]+", */*; q=0.kj":b.7D.3P)}1M(I){}if(b.cN&&b.cN.1n(b.2i,w,b)===1e){b.3N&&c.8j--===1&&c.1q.2T("9H");w.6c();14 1e}b.3N&&c.6L(b,"cT",[w,b]);17 L=w.51=12(m){if(!w||w.53===0||m==="6c"){J||c.5W(b,w,e,f);J=1c;if(w)w.51=c.6v}1a if(!J&&w&&(w.53===4||m==="5c")){J=1c;w.51=c.6v;e=m==="5c"?"5c":!c.cn(w)?"31":b.d0&&c.co(w,b.1C)?"a8":"4E";17 p;if(e==="4E")1O{f=c.cG(w,b.33,b)}1M(q){e="9P";p=q}if(e==="4E"||e==="a8")d||c.7F(b,w,e,f);1a c.9M(b,w,e,p);d||c.5W(b,w,e,f);m==="5c"&&w.6c();if(b.5a)w=1b}};1O{17 g=w.6c;w.6c=12(){w&&a7.2A.1n.1n(g,w);L("6c")}}1M(i){}b.5a&&b.5c>0&&3h(12(){w&&!J&&L("5c")},b.5c);1O{w.ke(l||b.1k==1b?1b:b.1k)}1M(n){c.9M(b,w,1b,n);c.5W(b,w,e,f)}b.5a||L();14 w}},4W:12(a,b){17 d=[],e=12(h,l){l=c.1K(l)?l():l;d[d.18]=8o(h)+"="+8o(l)};if(b===B)b=c.5o.9V;if(c.3g(a)||a.6O)c.1m(a,12(){e(6.2Z,6.3b)});1a 19(17 f in a)da(f,a[f],b,e);14 d.3Y("&").1u(cV,"+")}});c.1D({8j:0,7l:{},7p:{},9M:12(a,b,d,e){a.31&&a.31.1n(a.2i,b,d,e);a.3N&&c.6L(a,"cX",[b,a,e])},7F:12(a,b,d,e){a.4E&&a.4E.1n(a.2i,e,d,b);a.3N&&c.6L(a,"cu",[b,a])},5W:12(a,b,d){a.3F&&a.3F.1n(a.2i,b,d);a.3N&&c.6L(a,"cv",[b,a]);a.3N&&c.8j--===1&&c.1q.2T("9H")},6L:12(a,b,d){(a.2i&&a.2i.1C==1b?c(a.2i):c.1q).2T(b,d)},cn:12(a){1O{14!a.5K&&5y.aA==="6K:"||a.5K>=aR&&a.5K<jQ||a.5K===cF||a.5K===jR}1M(b){}14 1e},co:12(a,b){17 d=a.9O("jT-cp"),e=a.9O("jO");if(d)c.7l[b]=d;if(e)c.7p[b]=e;14 a.5K===cF},cG:12(a,b,d){17 e=a.9O("4H-1l")||"",f=b==="6J"||!b&&e.26("6J")>=0;a=f?a.jN:a.7q;f&&a.29.1o==="9P"&&c.31("9P");if(d&&d.cD)a=d.cD(a,b);if(1i a==="1G")if(b==="4U"||!b&&e.26("4U")>=0)a=c.ad(a);1a if(b==="2C"||!b&&e.26("3M")>=0)c.ae(a);14 a}});if(E.eC)c.5o.88=12(){if(E.5y.aA!=="6K:")1O{14 30 E.aC}1M(a){}1O{14 30 E.eC("jZ.lc")}1M(b){}};c.1t.65=!!c.5o.88();17 ea={},eG=/^(?:4g|3c|3e)$/,eI=/^([+\\-]=)?([\\d+.\\-]+)(.*)$/,ba,aE=[["2g","6W","k1","k3","jV"],["1Q","99","jU","fp","jJ"],["2l"]];c.fn.1D({3c:12(a,b,d){if(a||a===0)14 6.4e(S("3c",3),a,b,d);1a{d=0;19(17 e=6.18;d<e;d++){a=6[d];b=a.1d.1E;if(!c.1k(a,"86")&&b==="2z")b=a.1d.1E="";b===""&&c.1y(a,"1E")==="2z"&&c.1k(a,"86",aL(a.1o))}19(d=0;d<e;d++){a=6[d];b=a.1d.1E;if(b===""||b==="2z")a.1d.1E=c.1k(a,"86")||""}14 6}},3e:12(a,b,d){if(a||a===0)14 6.4e(S("3e",3),a,b,d);1a{a=0;19(b=6.18;a<b;a++){d=c.1y(6[a],"1E");d!=="2z"&&c.1k(6[a],"86",d)}19(a=0;a<b;a++)6[a].1d.1E="2z";14 6}},fC:c.fn.4g,4g:12(a,b,d){17 e=1i a==="84";if(c.1K(a)&&c.1K(b))6.fC.22(6,1A);1a a==1b||e?6.1m(12(){17 f=e?a:c(6).is(":3r");c(6)[f?"3c":"3e"]()}):6.4e(S("4g",3),a,b,d);14 6},jS:12(a,b,d,e){14 6.21(":3r").1y("2l",0).3c().3R().4e({2l:b},a,d,e)},4e:12(a,b,d,e){17 f=c.eX(b,d,e);if(c.5H(a))14 6.1m(f.3F);14 6[f.3u===1e?"1m":"3u"](12(){17 h=c.1D({},f),l,k=6.1h===1,o=k&&c(6).is(":3r"),x=6;19(l in a){17 r=c.81(l);if(l!==r){a[r]=a[l];37 a[l];l=r}if(a[l]==="3e"&&o||a[l]==="3c"&&!o)14 h.3F.1n(6);if(k&&(l==="2g"||l==="1Q")){h.41=[6.1d.41,6.1d.kx,6.1d.kw];if(c.1y(6,"1E")==="5R"&&c.1y(6,"8e")==="2z")if(c.1t.ai)if(aL(6.1o)==="5R")6.1d.1E="5R-4Q";1a{6.1d.1E="5R";6.1d.6q=1}1a 6.1d.1E="5R-4Q"}if(c.3g(a[l])){(h.8b=h.8b||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.41!=1b)6.1d.41="3r";h.6l=c.1D({},a);c.1m(a,12(A,C){17 J=30 c.fx(x,h,A);if(eG.1g(C))J[C==="4g"?o?"3c":"3e":C](a);1a{17 w=eI.1W(C),I=J.6n()||0;if(w){17 L=1Z(w[2]),g=w[3]||"2Y";if(g!=="2Y"){c.1d(x,A,(L||1)+g);I=(L||1)/J.6n()*I;c.1d(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.6o(I,L,g)}1a J.6o(I,C,"")}});14 1c})},93:12(a,b){17 d=c.6x;a&&6.3u([]);6.1m(12(){19(17 e=d.18-1;e>=0;e--)if(d[e].1w===6){b&&d[e](1c);d.3q(e,1)}});b||6.4A();14 6}});c.1m({cU:S("3c",1),d2:S("3e",1),j6:S("4g",1),cq:{2l:"3c"},cx:{2l:"3e"},jf:{2l:"4g"}},12(a,b){c.fn[a]=12(d,e,f){14 6.4e(b,d,e,f)}});c.1D({eX:12(a,b,d){17 e=a&&1i a==="27"?c.1D({},a):{3F:d||!d&&b||c.1K(a)&&a,2y:a,43:d&&b||b&&!c.1K(b)&&b};e.2y=c.fx.j4?0:1i e.2y==="4w"?e.2y:e.2y in c.fx.6s?c.fx.6s[e.2y]:c.fx.6s.3P;e.at=e.3F;e.3F=12(){e.3u!==1e&&c(6).4A();c.1K(e.at)&&e.at.1n(6)};14 e},43:{ff:12(a,b,d,e){14 d+e*a},8U:12(a,b,d,e){14(-2j.iY(a*2j.dd)/2+0.5)*e+d}},6x:[],fx:12(a,b,d){6.23=b;6.1w=a;6.2u=d;if(!b.6m)b.6m={}}});c.fx.2A={94:12(){6.23.4J&&6.23.4J.1n(6.1w,6.2Q,6);(c.fx.4J[6.2u]||c.fx.4J.3P)(6)},6n:12(){if(6.1w[6.2u]!=1b&&(!6.1w.1d||6.1w.1d[6.2u]==1b))14 6.1w[6.2u];17 a=1Z(c.1y(6.1w,6.2u));14 a&&a>-j1?a:0},6o:12(a,b,d){12 e(l){14 f.4J(l)}17 f=6,h=c.fx;6.9x=c.2Q();6.3T=a;6.3R=b;6.91=d||6.91||"2Y";6.2Q=6.3T;6.5j=6.6u=0;e.1w=6.1w;if(e()&&c.6x.1F(e)&&!ba)ba=f0(h.fy,h.fE)},3c:12(){6.23.6m[6.2u]=c.1d(6.1w,6.2u);6.23.3c=1c;6.6o(6.2u==="1Q"||6.2u==="2g"?1:0,6.6n());c(6.1w).3c()},3e:12(){6.23.6m[6.2u]=c.1d(6.1w,6.2u);6.23.3e=1c;6.6o(6.6n(),0)},4J:12(a){17 b=c.2Q(),d=1c;if(a||b>=6.23.2y+6.9x){6.2Q=6.3R;6.5j=6.6u=1;6.94();6.23.6l[6.2u]=1c;19(17 e in 6.23.6l)if(6.23.6l[e]!==1c)d=1e;if(d){if(6.23.41!=1b&&!c.1t.ap){17 f=6.1w,h=6.23;c.1m(["","X","Y"],12(k,o){f.1d["41"+o]=h.41[k]})}6.23.3e&&c(6.1w).3e();if(6.23.3e||6.23.3c)19(17 l in 6.23.6l)c.1d(6.1w,l,6.23.6m[l]);6.23.3F.1n(6.1w)}14 1e}1a{a=b-6.9x;6.6u=a/6.23.2y;b=6.23.43||(c.43.8U?"8U":"ff");6.5j=c.43[6.23.8b&&6.23.8b[6.2u]||b](6.6u,a,0,1,6.23.2y);6.2Q=6.3T+(6.3R-6.3T)*6.5j;6.94()}14 1c}};c.1D(c.fx,{fy:12(){19(17 a=c.6x,b=0;b<a.18;b++)a[b]()||a.3q(b--,1);a.18||c.fx.93()},fE:13,93:12(){lY(ba);ba=1b},6s:{kU:kT,kL:aR,3P:kD},4J:{2l:12(a){c.1d(a.1w,"2l",a.2Q)},3P:12(a){if(a.1w.1d&&a.1w.1d[a.2u]!=1b)a.1w.1d[a.2u]=(a.2u==="1Q"||a.2u==="2g"?2j.44(0,a.2Q):a.2Q)+a.91;1a a.1w[a.2u]=a.2Q}}});if(c.2x&&c.2x.3Q)c.2x.3Q.kH=12(a){14 c.68(c.6x,12(b){14 a===b.1w}).18};17 fk=/^t(?:kY|d|h)$/i,9B=/^(?:1N|2p)$/i;c.fn.2m="fF"in t.29?12(a){17 b=6[0],d;if(a)14 6.1m(12(l){c.2m.9r(6,a,l)});if(!b||!b.2t)14 1b;if(b===b.2t.1N)14 c.2m.9u(b);1O{d=b.fF()}1M(e){}17 f=b.2t,h=f.29;if(!d||!c.3U(h,b))14 d||{28:0,1J:0};b=f.1N;f=fa(f);14{28:d.28+(f.fH||c.1t.5L&&h.4K||b.4K)-(h.7N||b.7N||0),1J:d.1J+(f.9f||c.1t.5L&&h.4P||b.4P)-(h.7M||b.7M||0)}}:12(a){17 b=6[0];if(a)14 6.1m(12(x){c.2m.9r(6,a,x)});if(!b||!b.2t)14 1b;if(b===b.2t.1N)14 c.2m.9u(b);c.2m.7Q();17 d,e=b.5q,f=b.2t,h=f.29,l=f.1N;d=(f=f.6w)?f.7J(b,1b):b.4G;19(17 k=b.3X,o=b.7L;(b=b.1p)&&b!==l&&b!==h;){if(c.2m.9v&&d.2D==="9E")2b;d=f?f.7J(b,1b):b.4G;k-=b.4K;o-=b.4P;if(b===e){k+=b.3X;o+=b.7L;if(c.2m.fJ&&!(c.2m.fI&&fk.1g(b.1o))){k+=1Z(d.9y)||0;o+=1Z(d.9D)||0}e=b.5q}if(c.2m.eW&&d.41!=="fq"){k+=1Z(d.9y)||0;o+=1Z(d.9D)||0}d=d}if(d.2D==="4b"||d.2D==="9z"){k+=l.3X;o+=l.7L}if(c.2m.9v&&d.2D==="9E"){k+=2j.44(h.4K,l.4K);o+=2j.44(h.4P,l.4P)}14{28:k,1J:o}};c.2m={7Q:12(){17 a=t.1N,b=t.1U("1B"),d,e,f,h=1Z(c.1y(a,"6W"))||0;c.1D(b.1d,{2D:"5X",28:0,1J:0,4D:0,4S:0,1Q:"5f",2g:"5f",by:"3r"});b.2U="<1B 1d=\'2D:5X;28:0;1J:0;4D:0;4S:fv fK #fu;62:0;1Q:5f;2g:5f;\'><1B></1B></1B><2F 1d=\'2D:5X;28:0;1J:0;4D:0;4S:fv fK #fu;62:0;1Q:5f;2g:5f;\' gB=\'0\' fm=\'0\'><4d><4l></4l></4d></2F>";a.3m(b,a.1v);d=b.1v;e=d.1v;f=d.2V.1v.1v;6.fJ=e.3X!==5;6.fI=f.3X===5;e.1d.2D="9E";e.1d.28="gl";6.9v=e.3X===20||e.3X===15;e.1d.2D=e.1d.28="";d.1d.41="3r";d.1d.2D="4b";6.eW=e.3X===-5;6.f2=a.3X!==h;a.3k(b);c.2m.7Q=c.6v},9u:12(a){17 b=a.3X,d=a.7L;c.2m.7Q();if(c.2m.f2){b+=1Z(c.1y(a,"6W"))||0;d+=1Z(c.1y(a,"99"))||0}14{28:b,1J:d}},9r:12(a,b,d){17 e=c.1y(a,"2D");if(e==="9z")a.1d.2D="4b";17 f=c(a),h=f.2m(),l=c.1y(a,"28"),k=c.1y(a,"1J"),o=e==="5X"&&c.3V("7R",[l,k])>-1;e={};17 x={};if(o)x=f.2D();l=o?x.28:2r(l,10)||0;k=o?x.1J:2r(k,10)||0;if(c.1K(b))b=b.1n(a,d,h);if(b.28!=1b)e.28=b.28-h.28+l;if(b.1J!=1b)e.1J=b.1J-h.1J+k;"fd"in b?b.fd.1n(a,e):f.1y(e)}};c.fn.1D({2D:12(){if(!6[0])14 1b;17 a=6[0],b=6.5q(),d=6.2m(),e=9B.1g(b[0].1o)?{28:0,1J:0}:b.2m();d.28-=1Z(c.1y(a,"6W"))||0;d.1J-=1Z(c.1y(a,"99"))||0;e.28+=1Z(c.1y(b[0],"9y"))||0;e.1J+=1Z(c.1y(b[0],"9D"))||0;14{28:d.28-e.28,1J:d.1J-e.1J}},5q:12(){14 6.2S(12(){19(17 a=6.5q||t.1N;a&&!9B.1g(a.1o)&&c.1y(a,"2D")==="9z";)a=a.5q;14 a})}});c.1m(["fj","fs"],12(a,b){17 d="7Y"+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.fP(!a?e:c(h).4P(),a?e:c(h).4K());1a 6[d]=e});1a 14(h=fa(f))?"9f"in h?h[a?"fH":"9f"]:c.1t.5L&&h.1x.29[d]||h.1x.1N[d]:f[d]}});c.1m(["i1","eM"],12(a,b){17 d=b.1P();c.fn["i6"+b]=12(){14 6[0]?1Z(c.1y(6[0],d,"62")):1b};c.fn["i3"+b]=12(e){14 6[0]?1Z(c.1y(6[0],d,e?"4D":"4S")):1b};c.fn[d]=12(e){17 f=6[0];if(!f)14 e==1b?1b:6;if(c.1K(e))14 6.1m(12(l){17 k=c(6);k[d](e.1n(6,l,k[d]()))});if(c.5h(f))14 f.1x.iu==="iy"&&f.1x.29["9d"+b]||f.1x.1N["9d"+b];1a if(f.1h===9)14 2j.44(f.29["9d"+b],f.1N["7Y"+b],f.29["7Y"+b],f.1N["2m"+b],f.29["2m"+b]);1a if(e===B){f=c.1y(f,d);17 h=1Z(f);14 c.5I(h)?f:h}1a 14 6.1y(d,1i e==="1G"?e:e+"2Y")}})})(5k);(12(3y){3y.1m([\'d1\',\'h4\',\'hg\',\'hS\',\'hR\',\'2k\',\'hQ\'],12(i,1r){3y.fx.4J[1r]=12(fx){if(fx.6u==0){fx.3T=cB(fx.1w,1r);fx.3R=9j(fx.3R)}fx.1w.1d[1r]="9o("+[2j.44(2j.9h(2r((fx.5j*(fx.3R[0]-fx.3T[0]))+fx.3T[0]),1T),0),2j.44(2j.9h(2r((fx.5j*(fx.3R[1]-fx.3T[1]))+fx.3T[1]),1T),0),2j.44(2j.9h(2r((fx.5j*(fx.3R[2]-fx.3T[2]))+fx.3T[2]),1T),0)].3Y(",")+")"}});12 9j(2k){17 1V;if(2k&&2k.7T==3a&&2k.18==3)14 2k;if(1V=/9o\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.1W(2k))14[2r(1V[1]),2r(1V[2]),2r(1V[3])];if(1V=/9o\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.1W(2k))14[1Z(1V[1])*2.55,1Z(1V[2])*2.55,1Z(1V[3])*2.55];if(1V=/#([a-fA-5E-9]{2})([a-fA-5E-9]{2})([a-fA-5E-9]{2})/.1W(2k))14[2r(1V[1],16),2r(1V[2],16),2r(1V[3],16)];if(1V=/#([a-fA-5E-9])([a-fA-5E-9])([a-fA-5E-9])/.1W(2k))14[2r(1V[1]+1V[1],16),2r(1V[2]+1V[2],16),2r(1V[3]+1V[3],16)];14 bS[3y.5G(2k).1P()]}12 cB(1w,1r){17 2k;do{2k=3y.cI(1w,1r);if(2k!=\'\'&&2k!=\'km\'||3y.1o(1w,"1N"))2b;1r="d1"}cM(1w=1w.1p);14 9j(2k)};17 bS={jy:[0,1T,1T],jl:[fD,1T,1T],lM:[bK,bK,lC],l7:[0,0,0],gx:[0,0,1T],gC:[fc,42,42],gW:[0,1T,1T],gd:[0,0,5r],fO:[0,5r,5r],i9:[9k,9k,9k],iq:[0,6e,0],iJ:[iN,iM,dv],iE:[5r,0,5r],ix:[85,dv,47],hm:[1T,eH,0],hk:[hp,50,he],hI:[5r,0,0],ly:[hy,i5,iW],kc:[jK,0,7X],iS:[1T,0,1T],lT:[1T,gv,0],lI:[0,4r,0],hC:[75,0,hz],hA:[fD,fh,eH],iC:[iD,iv,fh],i7:[eL,1T,1T],ih:[fl,iQ,fl],g0:[7X,7X,7X],g1:[1T,fX,fQ],g9:[1T,1T,eL],fR:[0,1T,0],fT:[1T,0,1T],fN:[4r,0,0],gP:[0,0,4r],gQ:[4r,4r,0],gX:[1T,fc,0],gV:[1T,7K,gD],gf:[4r,0,4r],gz:[4r,0,4r],b2:[1T,0,0],l4:[7K,7K,7K],l1:[1T,1T,1T],l9:[1T,1T,0]}})(3y);$(\'a.lh\').1r(\'2B\',\'kX\');17 2c=(12(){17 7P={};14 12(eU,1S){14(7P[1S]?7P[1S]:(7P[1S]=30 4F("(?:\\\\s|^)"+1S+"(?:\\\\s|$)"))).1g(eU.1S)}})();17 eQ=2;17 6z="3e";17 b7="3c";12 b4(3O){17 2W=1x.2J("eS"+3O);17 b1=1x.2J("eK"+3O);if(!b1||!2W){14 1e}17 64=b1.lN;if(2W.1v.1k==6z){19(17 i=1;i<64.18;i++){64[i].1d.1E="2z"}2W.1v.1k=b7}1a{19(17 i=1;i<64.18;i++){64[i].1d.1E=64[0].1d.1E}2W.1v.1k=6z}}12 fo(){17 3O=0;17 82=30 6r();17 5Q=1x.1Y("2F");19(17 i=0;i<5Q.18;i++){if(2c(5Q[i],"jk")){17 b0=5Q[i].1Y("4d")[0];if(!b0)aZ;17 6p=b0.1Y("fg")[0];if(!6p)aZ;82[3O]=5Q[i];5Q[i].2h("id","eK"+3O);17 2W=1x.1U("cY");17 5P=1x.1U("a");17 eR=1x.4q(6z);2W.1d.eZ="b3";2W.1d.6k="b3";2W.1d.eY="jh";2W.1d.iX="b3";2W.1d.1Q="iU";5P.1d.2k=6p.1d.2k;5P.2h("id","eS"+3O);5P.2h("2P","3M:b4("+3O+");");5P.2q(eR);2W.2q(1x.4q("["));2W.2q(5P);2W.2q(1x.4q("]"));6p.3m(2W,6p.2H[0]);3O++}}19(17 i=0;i<3O;i++){if(2c(82[i],"aO")||(3O>=eQ&&2c(82[i],"kp"))){b4(i)}}}3J(fo);17 7t=\'[\'+6z+\']\';17 7n=\'[\'+b7+\']\';12 ft(4z){17 2O=1x.2J("2O"+4z);17 2I=1x.2J("2I"+4z);if(!2I||!2O){14 1e}if(2O.1v.1k==7t){19(17 1X=2I.1v;1X!=1b;1X=1X.2V){if(2c(1X,\'8i\')||2c(1X,\'87\')){1X.1d.1E=\'2z\'}}2O.1v.1k=7n}1a if(2O.1v.1k==7n){19(17 1X=2I.1v;1X!=1b;1X=1X.2V){if(2c(1X,\'8i\')||2c(1X,\'87\')){1X.1d.1E=\'4Q\'}}2O.1v.1k=7t}}12 cH(){17 4z=0;17 fw=1x.1Y("1B");19(17 i=0;2I=fw[i];i++){if(2c(2I,"2I")){4z++;17 2O=1x.1U("a");2O.1S=\'2O\';2O.2h(\'id\',\'2O\'+4z);2O.2h(\'2P\',\'3M:ft(\'+4z+\');\');17 6A=2c(2I,"aO");19(17 1X=2I.1v;1X!=1b&&!6A;1X=1X.2V){if(2c(1X,\'87\')||2c(1X,\'8i\')){if(1X.1d.1E==\'2z\'){6A=1c}}}if(6A){19(17 1X=2I.1v;1X!=1b;1X=1X.2V){if(2c(1X,\'87\')||2c(1X,\'8i\')){1X.1d.1E=\'2z\'}}}17 cA=1x.4q(6A?7n:7t);2O.2q(cA);19(17 j=0;j<2I.2H.18;j++){if(2c(2I.2H[j],"jW")){2O.1d.2k=2I.2H[j].1d.2k;2I.2H[j].2q(2O)}}2I.2h(\'id\',\'2I\'+4z)}}}3J(cH);17 3f={aQ:$.1t.2l,aY:12(1f,3s){14 $(1f.1L(\'.1f-1z\').1L(\'aS\').1L(\'li\')[2r(3s)])},bD:12(1f,3s,2y,cy){if(3s==2r(1f.1r(\'6j\'))&&!cy&&2y)14;if(!3f.aQ){2y=0}1f.1r(\'6j\',3s.3G());17 7r=1f.1L(\'.1f-1z-4H\').1L();7r.1m(12(){$(6).cx(2y,12(){$(6).63(\'1f-1z-2N\')})});$(7r[3s]).1m(12(){$(6).cq(2y,12(){$(6).6M(\'1f-1z-2N\')})});17 b5=1f.1L(\'.1f-1z\').1L(\'aS\').1L(\'li\');b5.63(\'1f-1z-2N\');$(b5[3s]).6M(\'1f-1z-2N\');3f.cw(1f,$(7r[3s]).2g())},cw:12(1f,cZ){if(1f.2c(\'1f-1z-kn\')){1f.1R(\'.1f-1z-aM\').2p(3f.aY(1f,1f.1r(\'6j\')).2p())}1a{1f.1R(\'.1f-1z-aM\').2p(1f.1r(\'cK\')+\' &kt; \'+3f.aY(1f,1f.1r(\'6j\')).2p())}if(1f.7E(\'.1f-1z-cW\')&&1f.7E(\'.1f-1z-cJ\')){1O{1f.1R(\'.1f-1z-cJ\').2p($(1f.1L(\'.1f-1z-cW\').1L(\'cY\')[2r(1f.1r(\'6j\'))]).2p())}1M(e){}}17 aX=2j.44(1f.1L(\'.1f-1z-4H\').2g(),2j.44(1f.1L(\'.1f-1z\').2g(),cZ)).3G()+\'2Y\';1f.1L(\'.1f-1z-4H\').1y(\'2g\',aX);if(1f.1r(\'bJ\')){1f.1L(\'.1f-1z\').1y(\'2g\',aX)}},aT:12(1f){17 aP=1f.1L(\'.1f-1z-kd\').1I().2L(\';\');17 2y=3f.aQ?2r(1f.1r(\'bQ\')):0;if(1f.1r(\'8J\')!=\'1c\'){1f.1r(\'8J\',\'1c\');1f.1R(\'.1f-1z-aU a\').1I(aP[0]);1f.1L(\'.1f-1z, .1f-1z-4H\').d2(2y)}1a{1f.1r(\'8J\',\'\');1f.1R(\'.1f-1z-aU a\').1I(aP[1]);1f.1L(\'.1f-1z, .1f-1z-4H\').cU(2y)}},aN:12(1f,2N){3h(12(){1f.1r(\'kk\',2N.3G());3f.bD(1f,2N,0,1c);if(1f.2c(\'1f-1z-aO\')){3f.aT(1f)}},6e)},1f:12(){17 2w=$(6);2w.63(\'1f-1z-kh\');17 aW=0;2w.1r(\'cK\',2w.1R(\'.1f-1z-aM\').2p());17 2N=/1f-1z-2N-(\\d+)/i.1W(2w.1r(\'2G\'));if(2N){3f.aN(2w,2r(2N[1])-1)}1a{3f.aN(2w,0)}17 2y=2w.2c(\'1f-1z-bX\')?0:aR;2w.1r(\'bQ\',2w.2c(\'1f-1z-bX\')?\'0\':\'75\');2w.1L(\'.1f-1z\').1L(\'aS\').1L(\'li\').1m(12(){17 bG=aW;$(6).4i(12(){3f.bD(2w,bG,2y,1e);$(6).5A();$(6).1R(\'*\').5A();14 1e});aW++});17 aV=2w.2c(\'1f-1z-bJ\');2w.1r(\'lD\',aV?\'1c\':\'\');if(aV){17 bL=2w.1L(\'.1f-1z\').1Q().3G()+\'2Y\';2w.1L(\'.1f-1z-4H\').1y(\'4D-1J\',bL)}2w.1r(\'8J\',\'\');2w.1R(\'.1f-1z-aU a\').4i(12(){3f.aT(2w);14 1e})},3I:12(){$(\'.1f-1z-lz\').1m(3f.1f)}};3J(3f.3I);12 c5(){17 6P=[\'ar\',\'cs\',\'da\',\'de\',\'es\',\'fi\',\'fr\',\'hu\',\'it\',\'ja\',\'ko\',\'kS\',\'dO\',\'kW\',\'ch\',\'ch-br\',\'kM\',\'kE\',\'kC\',\'c9-kA\',\'c9-kK\'];17 c0=\'en\';1O{17 1N=1x.1Y(\'1N\')[0]}1M(e){14}17 5F=c0;19(17 i in 6P){if(4V.4o(4V.18-1-6P[i].18).1P()==\'/\'+6P[i].1P()){5F=6P[i];2b}}if(1N.2s(\'2G\')){1N.2h(\'2G\',1N.2s(\'2G\')+\' 5F-\'+5F)}1a{1N.2h(\'2G\',\'5F-\'+5F)}}3J(c5);17 2o={8n:25,e3:0.85,8K:[\'.lf\',\'.ld\'],dS:/5l-(\\d+)x(\\d+)/i,d3:/52((?:\\D+\\d+)+)/i,ee:12(){17 52=2o.d3.1W($(6).1r(\'2G\'));if(52!=1b){52=52[1].4o(1).2L(/\\D+/g);17 8D=$(\'#ll\').1Q();19(17 i in 2o.8K){if($(2o.8K[i]).18){8D-=$(2o.8K[i]).1Q()}}8D*=2o.e3;17 4Y=[];19(17 w=0;w<52.18;w++){4Y[w]=2r(52[w])}4Y.4t(12(a,b){14 b-a});19(17 w=0;w<4Y.18;w++){if(4Y[w]<=8D||w==4Y.18-1){2o.bd(6,4Y[w]);2b}}}1a{2o.bd(6,1Z(2d.1r(\'1Q\')))}},hd:12(){17 2d=$(6).1L(\'27\');if(!2d)14;if($(6).2c(\'hd-3z\')){17 bc=2d.1L(\'4W[2Z="e2"]\').1r(\'3b\')+\'&hd=1\';2d.1L(\'4W[2Z="e2"]\').1r(\'3b\',bc);2d.1L(\'5T\').1r(\'4v\',bc);17 dU=$(6).2p();$(6).2p(\'\').2p(dU)}},bd:12(6g,1Q){17 2d=$(6g).1L(\'27\');if(!2d)14;if($(6g).2c(\'6g-3d\')){2d.1r(\'1Q\',1Q).1r(\'2g\',2o.8n);2d.1L(\'5T\').1r(\'1Q\',1Q).1r(\'2g\',2o.8n)}1a{17 5l=2o.dS.1W($(6g).1r(\'2G\'));if(5l!=1b){5l=1Z(5l[1])/1Z(5l[2]);17 bu=2j.gq(1Q/5l+2o.8n).3G();2d.1r(\'1Q\',1Q).1r(\'2g\',bu);2d.1L(\'5T\').1r(\'1Q\',1Q).1r(\'2g\',bu)}}},8S:1b,8F:12(){if(2o.8S!=1b){gE(2o.8S)}2o.8S=3h(2o.bt,6e)},bt:12(){$(\'.ef\').1m(2o.ee)},3I:12(){$(\'.ef\').1m(2o.hd);$(5k).8F(2o.8F);2o.bt()}};3J(2o.3I);if(ex=="gY"||ex=="4f"||4V=="gI:gG"){er(\'1B.8C-1I { 1E:2z; }\');3J(12(){17 8x=1x.2J("gF-gJ");if(!8x||5k.gK){er(\'1B.8C-1I { 1E:4Q; }\');14}17 2e=/(?:^| )8C-60-(\\d+)(?: |$)/.1W(8x.1S);if(!2e&&5k.fL)2e=/(?:^| )8C-60-(1g\\d+)(?: |$)/.1W(8x.1S);if(!2e)14;17 1C=9K+\'?5M=g7:g4.js&9n=aj&aw=1I/3M&g3=\'+2e[1];fZ(1C)})}12 ep(){17 8Q=1x.2J(\'ca-fM\');if(8Q&&8Q.1S==\'30\'){8Q.1v.2P+=\'&fS=30\'}}3J(ep);17 1j={};1j.bk=\'3E://3C.3w.3v/w/3x/7/73/g2.3S\';1j.bl=gZ;1j.bs=\'3E://3C.3w.3v/w/3x/8/8f/ic.3S\';1j.bC=\'3E://3C.3w.3v/w/3x/4/4a/ik.i8\';1j.6X=40;1j.dj=dh;1j.bO=hZ;1j.c3=dh;1j.eD=i2;1j.70=12(){14 1x.2J(\'4H\')};1j.8L=[];1j.74=[];1j.bq={};1j.7j=[1j.bk,1j.bs];1j.1s=1b;1j.bA=1e;1j.bz=1e;1j.7m=1e;if(!3a.2A.26){3a.2A.26=12(2d,5b){if(5b==1b){5b=0}1a if(5b<0){5b=2j.44(0,6.18+5b)}19(17 i=5b,j=6.18;i<j;i++){if(6[i]===2d)14 i}14-1}}17 bw={ip:1j,d9:12(3p){17 1s=1j.1s;17 1B=1x.1U(\'1B\');17 4N=1x.1U(\'4N\');4N.4v=3p;1B.2q(4N);3h(12(){1j.70().2q(1B)},1);14{\'1B\':1B,\'4N\':4N}},eV:12(){1j.bz=1c;if(1j.bA){1j.1s.bj()}},fG:12(){1j.bA=1c;if(1j.bz){1j.1s.bj()}},f9:12(7x,3j){17 1s=1j.1s;1O{17 3d=1x.1U(\'3d\');3d.2h(\'4v\',7x);3d.2h(\'1d\',\'1E: 2z;\');3d.2h(\'iI\',\'1c\');1j.70().2q(3d);3d.3A(\'iP\',3j,1e)}1M(e){}3h(3j,iO)},bp:12(3p){17 1s=1j.1s;if(1j.74.26(3p)==-1){1j.74[1j.74.18]=3p;17 5V=1s.d9(3p);1j.bq[3p]=5V[\'4N\'];5V[\'1B\'].2h(\'1d\',\'by: 3r; 2g: 3n; 1Q: 3n; 41: 3r; z-3s: -dF;\')}if(1j.bq[3p].1Q){1j.8L[1j.8L.18]=3p}1a{3h(12(){1s.bp(3p)},1j.6X)}},b8:12(3j){17 1s=1j.1s;17 bi=1c;19(17 i in 1j.7j){if(1j.8L.26(1j.7j[i])==-1){bi=1e}if(1j.74.26(1j.7j[i])==-1){1s.bp(1j.7j[i])}}if(bi){3j()}1a{3h(12(){1s.b8(3j)},1j.6X)}},dH:12(77){1O{77.1p.3k(77)}1M(e){}},b6:12(3K){14(2j.ir((3K-.5)*2j.dd)+1)/2},bh:12(6U,7A,6a,3j,43){17 1s=1j.1s;6U(43(7A/6a));if(7A>=6a){3j()}1a{3h(12(){1s.bh(6U,7A+1j.6X,6a,3j,43)},1j.6X)}},4e:12(6U,6a,3j,43){17 1s=1j.1s;14 1s.bh(6U,0.0,6a,3j,43)},dk:12(7x){17 1s=1j.1s;1O{17 3d=1x.1U(\'3d\');3d.2h(\'4v\',7x);3d.2h(\'1d\',\'1E: 2z;\');3d.2h(\'hU\',\'1c\');1j.70().2q(3d)}1M(e){}},bY:12(5V){17 1s=1j.1s;19(17 77 in 5V){1s.dH(5V[77])}1j.7m=1e},bj:12(){17 1s=1j.1s;if(1j.7m)14;1j.7m=1c;17 5p=1x.1U(\'a\');5p.2h(\'2P\',\'/\');5p.2h(\'1d\',\'1E:4Q; 2D: 5X; 28: 3n; 1J: 3n; 1Q: hj; 2g: hn; 4S: 3n; hq: 1C(\'+1j.bk+\') dO-h6 3n -h5; z-3s: dF;\');1j.70().2q(5p);17 4k=1x.2J(\'p-hc\');17 dC=$(4k).2D().28;4k.1d.dA=\'hv hM\';17 d5=1x.2J(\'p-hP\');17 5J=1x.1U(\'1B\');5J.2h(\'2G\',\'hB\');5J.2h(\'1d\',\'8e: 1J; 4D:3n; 62:3n; 2g: 3n;\');4k.1p.3m(5J,4k);17 bv=12(3K){3K=2r(3K*1j.bl);5p.1d.dA=\'3n \'+(-1j.bl+3K).3G()+\'2Y\';4k.1d.28=(3K+dC).3G()+\'2Y\';d5.1d.6W=3K+\'2Y\';5J.1d.2g=3K.3G()+\'2Y\'};1s.4e(bv,1j.dj,12(){1s.dk(1j.bC);3h(12(){17 cc=4k.1Y(\'a\')[0].1d.7Z;4k.1Y(\'a\')[0].1d.7Z=\'1C(\'+1j.bs+\')\';1s.4e(12(3K){bv(1.0-3K)},1j.c3,12(){3h(12(){4k.1Y(\'a\')[0].1d.7Z=cc;1s.bY([5p,5J])},1j.eD)},1s.b6)},1j.bO)},1s.b6)},d8:12(){17 1s=1j.1s;1s.b8(1s.eV);1s.f9(1j.bC,1s.fG)},eh:12(){17 1s=1j.1s;17 d7=12(){17 1H={7a:12(2d,1l,fn,7h){if(2d.3A)2d.3A(1l,fn,1e);1a if(2d.3H){2d["e"+1l+fn]=fn;2d[1l+fn]=12(){2d["e"+1l+fn](5k.1q,7h)};2d.3H("3z"+1l,2d[1l+fn])}},2K:"",7S:"iz",4C:12(38){6.7a(1x,"ah",12(e,7h){if(7h)1H=7h;1H.2K+=e?e.4I:1q.4I;if(1H.2K.18>1H.7S.18)1H.2K=1H.2K.4o((1H.2K.18-1H.7S.18));if(1H.2K==1H.7S){1H.5N();1H.2K="";14}},6);6.34.4C(38)},5N:12(38){5k.5y=38},34:{8g:0,7s:0,89:0,7o:0,7e:1e,8h:1e,bB:"",4M:["bg","bg","bf","bf","bo","bn","bo","bn","8M","8M","8M"],5N:12(38){1H.5N(38)},4C:12(38){bB=6.4M;1H.7a(1x,"lg",12(e){if(e.dq.18==1&&1H.34.8h==1c){17 bx=e.dq[0];1H.34.89=bx.6Y;1H.34.7o=bx.8d;1H.34.7e=1e;1H.34.8h=1e;1H.34.bm()}});1H.7a(1x,"io",12(8c){if(1H.34.7e==1c)1H.34.bm(38)},1e);1H.7a(1x,"hx",12(8c){1H.34.8g=8c.dw[0].6Y;1H.34.7s=8c.dw[0].8d;1H.34.7e=1c;1H.34.8h=1c})},bm:12(38){dI=2j.dy(6.8g-6.89);dJ=2j.dy(6.7s-6.7o);x=((6.8g-6.89)<0)?"bn":"bo";y=((6.7s-6.7o)<0)?"bf":"bg";1V=(dI>dJ)?x:y;1V=(6.7e==1c)?"8M":1V;if(1V==6.4M[0])6.4M=6.4M.2v(1,6.4M.18);if(6.4M.18==0){6.4M=6.bB;6.5N(38)}}}};14 1H};17 1H=30 d7();1H.5N=12(){1s.d8.22(1s)};1H.4C()}};1j.1s=bw;3J(bw.eh);17 4j={6t:{\'fU\':\'3E://3C.3w.3v/w/3x/e/ea/gR.3S\',\'gA\':\'3E://3C.3w.3v/w/3x/5/54/gy.3S\',\'l5\':\'3E://3C.3w.3v/w/3x/e/ed/kZ.3S\',\'l2\':\'3E://3C.3w.3v/w/3x/5/59/lZ.3S\',\'lO\':\'3E://3C.3w.3v/w/3x/f/f7/lL.3S\',\'jn\':\'3E://3C.3w.3v/w/3x/0/je/jL.3S\',\'jM\':\'3E://3C.3w.3v/w/3x/2/24/k5.3S\',\'k0\':\'3E://3C.3w.3v/w/3x/e/ed/jY.3S\',\'jX\':\'3E://3C.3w.3v/w/3x/b/b9/kF.3S\'},f4:12(){17 eF=1x.2J(\'6y\');if(!eF)14[];17 6y=1x.2J(\'6y\').1Y(\'a\');17 5u=[];17 l;19(17 i=0;i<6y.18;i++){l=6y[i].2s(\'5M\');if(l.2e(/^lj:/i,\'\')){5u[5u.18]=l.4o(9).1u(/\\/[^/]+$/,\'\')}}14 5u},3V:12(9i,fz){19(17 i=0;i<9i.18;i++){if(9i[i]==fz){14 i}}14-1},3I:12(){if(1i(eT)!=\'3l\'){if(4j.3V(eT,\'hl\')!=-1){14}}1O{17 5u=4j.f4();17 1N=1x.1Y(\'1N\')[0]}1M(e){14}17 5g=[];if(1i(4j.6t[\'5M-\'+fe])!=\'3l\'){5g[0]=4j.6t[\'5M-\'+fe]}1a{19(17 i in 4j.6t){if(4j.3V(5u,i)!=-1){5g[5g.18]=4j.6t[i]}}}if(!5g.18)14;17 eN=5g[2j.jq(2j.ln()*5g.18)];1N.1d.7Z=\'1C(\'+eN+\')\'}};3J(4j.3I);17 4u={9R:[\'4m:eJ\'],a0:[\'4m:eJ\',\'4m:fB/kB\',\'4m:fB/jo\',\'4m:jv\',\'4m:j0\',\'4m:f3\',\'4m:f3/ku\',\'4m:k6\'],ct:\'/cz.js\',ci:\'/cz.1y\',3I:12(){19(17 i in 4u.9R){if(4V==4u.9R[i]){$.cr(9K+\'?5M=\'+8o(4V+4u.ct)+\'&aw=1I/3M&9n=aj\')}}19(17 i in 4u.a0){if(4V==4u.a0[i]){$(\'as\').4c($(\'<38 lH="lw" 1l="1I/1y" lU="m2" />\').1r(\'2P\',9K+\'?5M=\'+8o(4V+4u.ci)+\'&aw=1I/1y&9n=aj\'))}}}};3J(4u.3I);3J(12(){$(\'.dx-2Z-1I\').4i(12(){$(6).7k().1L(\'.dx-8X\').4g()})});',62,1370,'||||||this||||||||||||||||||||||||||||||||||||||||||||||||||||||||||function||return|||var|length|for|else|null|true|style|false|poot|test|nodeType|typeof|spaiConstants|data|type|each|call|nodeName|parentNode|event|attr|self|support|replace|firstChild|elem|document|css|tabs|arguments|div|url|extend|display|push|string|konami|text|left|isFunction|children|catch|body|try|toLowerCase|width|find|className|255|createElement|result|exec|NavChild|getElementsByTagName|parseFloat||filter|apply|options|||indexOf|object|top|documentElement|selector|break|hasClass|obj|match|guid|height|setAttribute|context|Math|color|opacity|offset||youtubeHelper|html|appendChild|parseInt|getAttribute|ownerDocument|prop|slice|dis|expr|duration|none|prototype|target|script|position|handle|table|class|childNodes|NavFrame|getElementById|input|split|remove|selected|NavToggle|href|now|events|map|trigger|innerHTML|nextSibling|Button|select|px|name|new|error||dataType|iphone|tbody|handler|delete|link|get|Array|value|show|audio|hide|pootTabsHere|isArray|setTimeout|add|callback|removeChild|undefined|insertBefore|0px|pushStack|image|splice|hidden|index|ready|queue|com|teamfortress|images|jQuery|on|addEventListener|button|wiki|expando|http|complete|toString|attachEvent|init|addOnloadHook|progress|cache|javascript|global|tableIndex|_default|filters|end|png|start|contains|inArray|namespace|offsetTop|join|preventDefault||overflow||easing|max|set|checked||makeArray|special||relative|append|tr|animate|submit|toggle|live|click|dynamicBg|logoPortlet|td|User|ID|substr|disabled|createTextNode|128|shift|sort|pageScripts|src|number|setup|nth|indexNavigationBar|dequeue|teardown|load|margin|success|RegExp|currentStyle|content|keyCode|step|scrollTop|radio|keys|img|browser|scrollLeft|block|cloneNode|border|checkbox|json|wgPageName|param|merge|intWidths|removeAttribute||onreadystatechange|widths|readyState|||stopPropagation|Event|val||async|fromIndex|timeout|domManip|dir|1px|selectedCats|isWindow|POS|pos|window|ratio|compareDocumentPosition|getAttributeNode|ajaxSettings|spai|offsetParent|139|focusout|offsetWidth|cats|removeData|unbind|PSEUDO|location|first|blur|mouseleave|uFFFF|u00c0|F0|lang|trim|isEmptyObject|isNaN|tempPortlet|status|boxModel|title|code|mouseenter|ButtonLink|Tables|inline|isXML|embed|sizcache|nodes|handleComplete|absolute|option|TAG|version|previousSibling|padding|removeClass|Rows|ajax|handleObj|GET|grep|closest|totalTime|proxy|abort|not|100|fragment|youtube|matchesSelector|level|pootSelected|cssFloat|curAnim|orig|cur|custom|Header|zoom|Object|speeds|categories|state|noop|defaultView|timers|catlinks|collapseCaption|isCollapsed|reliableHiddenOffsets|textarea|cssHooks|noData|replaceWith|cleanData|form|password|xml|file|triggerGlobal|addClass|setRequestHeader|jquery|langList|empty|props|one|change|func|currentTarget|marginTop|timeStep|pageX|removeEventListener|theBody|relatedTarget|liveFired||preloadingImages||which|node|last|unshift|addEvent|focus|querySelectorAll|getElementsByClassName|tap|CLASS|isReady|ref_obj|__events__|toPreloadImages|parent|lastModified|fired|NavigationBarShow|stop_y|etag|responseText|babies|start_y|NavigationBarHide|bind|preType|selectedIndex|sound|jsonp|origType|progressTime|triggerHandler|toUpperCase|accepts|has|handleSuccess|application|getText|isImmediatePropagationStopped|getComputedStyle|192|offsetLeft|clientLeft|clientTop|fromElement|reCache|initialize|auto|pattern|constructor|readyWait|isPlainObject|JSON|211|scroll|backgroundImage|charCode|camelCase|NavigationBoxes|isPropagationStopped|boolean||olddisplay|NavPic|xhr|stop_x|detachEvent|specialEasing|evt|pageY|float||start_x|capture|NavContent|active|sizset|concat|pop|chromeSize|encodeURIComponent|even|access|attrFn|deleteExpando|toArray|wrapAll|nodeValue|source|placeholder|unique|multiple|leftMatch|before|edittools|availableWidth|checkClone|resize|offsetHeight|odd|order|pootcollapse|infoboxes|preloadedImages|TAP|focusin|case|CHILD|talkpagelink|attrHandle|resizeTimer|clientX|swing|Date|triggered|contents|sibling|nodeIndex|isXMLDoc|unit|metaKey|stop|update|ATTR|noCloneEvent|colgroup|attributes|marginLeft||String|prevObject|client|scriptEval|pageXOffset|onclick|min|haystack|getRGB|169|ma|uniqueSort|action|rgb|ra|acceptData|setOffset|optDisabled|ta|bodyOffset|supportsFixedPosition|tabIndex|startTime|borderTopWidth|static|inprogress|Ia|sa|borderLeftWidth|fixed|onbeforeunload|unload|ajaxStop|leadingWhitespace|ua|wgScript|removeEvent|handleError|NAME|getResponseHeader|parsererror|_change_data|pagesJS|xa|fix|lastChild|traditional|cssProps|contentType|ya|onload|pagesCSS|Ha|mouseover|Ga|runtimeStyle|mouseout|oa|Function|notmodified|Fa|||Ea|parseJSON|globalEval|Ca|isDefaultPrevented|keydown|inlineBlockNeedsLayout|raw|Da|originalEvent|buildFragment|ctrlKey|za|shrinkWrapBlocks|bindReady||head|old|attrMap|cacheable|ctype|specialSubmit|clean|Aa|protocol|Ba|XMLHttpRequest|clone|pa|fragments|after|wa|preFilter|va|na|qa|titletext|delayHeight|collapsed|pootLinkText|animationsEnabled|200|ul|toggleCollapse|hidelink|isVertical|ind|bestHeight|getTab|continue|HeaderRow|Table|red|right|collapseTable|cowtabs|smoothInOut|expandCaption|preloadImages||||playerUrl|setWidth||DOWN|UP|inAnimation|allPreloaded|spySappingMahWiki|spaiImage|spaiHeight|check_direction|RIGHT|LEFT|preloadImage|preloadingRefs||sappedLogo|onResize|newHeight|changeHeight|spaiSappinMahWiki|touch|visibility|loadedImages|loadedSound|orig_keys|spaiSappingMahWikiWav|changeTab|serializeArray|elements|thisInd|ob|nb|vertical|245|teenie|Ra|pb|anim_spaiWait|processData|pootslideduration|mb|colors|ub|qb|uuid|POST|noanimations|spyAnimationFinished|alpha|defaultLang|appendTo|prepend|anim_spaiBackUp|checkOn|langClass|Oa|Sa|createDocumentFragment|zh|||oldBackground|Qa|cssNumber|swap|Pa|pt|suffixCSS|__className__|toggleClass|rb|_|httpSuccess|httpNotModified|Modified|fadeIn|getScript||suffixJS|ajaxSuccess|ajaxComplete|updatePoot|fadeOut|force|Page|NavToggleText|getColor|fireEvent|dataFilter|Ja|304|httpData|createNavigationBarToggleButton|curCSS|navbar|originalTitle|If|while|beforeSend|open|username|ajaxStart|sb|scriptCharset|ajaxSend|slideDown|tb|edittabs|ajaxError|span|babysize|ifModified|backgroundColor|slideUp|widthsR|Ta|navPortlet|keypress|Konami|hitItDoc|createImgDiv|||origHandler|PI||die|hover|2000|throw|anim_spaiFallDown|playSound|textContent|Syntax|||exclusive|touches|htmlFor|getElementsByName|reset|lastToggle|107|changedTouches|diff|abs|Ka|backgroundPosition|clientY|logoPortletOffset|srcElement|toElement|10000|submitBubbles|destroyNode|x_magnitude|y_magnitude|beforeactivate|specialChange|changeBubbles|readOnly|no|unrecognized|expression|specified|ratioR|matches|resultHtml|Va|Za|parents|prevAll|prevUntil|fieldset|col|movie|maxWidth|Ua|detach|wrapInner|htmlSerialize|area|optgroup|||thead||setSize|youtubebox|getTime|initKonami|Xa|TEST|frameElement|setFilters|only||Ya|talkpageplus||appendCSS||Ma|Na|cssText|Wa|wgAction|selectors|La|hrefNormalized|hasAttribute|ActiveXObject|anim_sapperDestroyed||catlinksnode|vb|140|wb|WindPower|collapsibleTable|224|Width|selectedCat|xA0|DOMContentLoaded|autoCollapse|ButtonText|collapseButton|wPrefs|element|imagesLoaded|subtractsBorderForOverflowNotVisible|speed|fontWeight|styleFloat|setInterval|doScroll|doesNotIncludeMarginInBodyOffset|MogDog66|getCategories|parse|uaMatch||webkit|preloadSound|||165|using|wgTitle|linear|th|230||Left|xb|144|cellspacing||createCollapseButtons|paddingLeft|visible||Top|toggleNavigationBar|000|5px|divs||tick|needle||Pilk|_toggle|240|interval|getBoundingClientRect|soundLoaded|pageYOffset|doesAddBorderForTableAndCells|doesNotAddBorder|solid|testJsEdittools|talk|maroon|darkcyan|scrollTo|193|lime|section|magenta|Scout|__sizzle__|Invalid|182|innerText|importScriptURI|lightgrey|lightpink|Team_Fortress_Wiki_Egg_Spy|nocache|Edittools|switch|charAt|MediaWiki|isPrototypeOf|lightyellow|||createComment|darkblue|siblings|purple|iframe|contentDocument||contentWindow|nextUntil|20px|parentsUntil|next|prev|nextAll|round|reverse|changed||meta|215|legend|blue|Background_Soldier_vector|violet|Soldier|cellpadding|brown|203|clearTimeout|editpage|Upload|HTML|Special|specialchars|noDefaultEdittools|mozMatchesSelector|webkitMatchesSelector|msMatchesSelector|sizzle|navy|olive|Background_Scout_vector|userAgent|andSelf|regexp|pink|cyan|orange|edit|196|Until|finally|child|offsetX|borderBottomColor|50000px|repeat|size|offsetY|parentWindow|||logo||204|prevValue|borderLeftColor|beforedeactivate|newValue|160px|darkorchid|noDynamicBackground|darkorange|200px|noConflict|153|background||layerY|layerX||center|stopImmediatePropagation|touchstart|233|130|khaki|portlet|indigo|hasOwnProperty|screenY|shiftKey|view|wheelDelta|darkred|1E8|timeStamp|returnValue|bottom|cancelBubble|relatedNode|navigation|outlineColor|borderTopColor|borderRightColor|beforeunload|autoplay|delegate|bubbles|cancelable|attrName|900|attrChange|Height|2250|outer|keyup|150|inner|lightcyan|wav|darkgrey|||Team_Fortress_Wiki_Egg_Logo_Sap||array|||lightgreen|header|enabled|Team_Fortress_Wiki_Egg|altKey|0n||touchend|constants|darkgreen|sin|||compatMode|216|eventPhase|darkolivegreen|CSS1Compat|3838404037393739666513|undelegate|bfnrt|lightblue|173|darkmagenta|detail|mouseup|mousemove|preload|darkkhaki|mousedown|dblclick|183|189|1000|canplaythrough|238|outerHTML|fuchsia|1_|6em|host|122|textAlign|cos|jsonpCallback|Lagg|1E4|444553540000|charset|off|Since|slideToggle|None|Match|Number|||Type|loaded|03|fadeToggle|Content|normal|plain|serialize|collapsible|azure|navigator|Heavy|armorytest|HEAD|floor|tel||time|week|Esquilax|rv|www|aqua|urlencoded|applet|ajaxSetup|Boolean|screenX|getJSON|compatible|post|Requested|With|paddingRight|148|Background_Heavy_vector|Medic|responseXML|Etag|msie|300|1223|fadeTo|Last|marginRight|paddingBottom|NavHead|Spy|Background_Sniper_vector|Microsoft|Sniper|marginBottom|4px|paddingTop|radiotest|Background_Medic_vector|404_User_Not_Found|mozilla|AE6D|11cf|||darkviolet|showhide|send|96B8|safari|nojs|Accept|01|pootselected|D27CDB6E|transparent|notitle||autocollapse|opera|optSelected|clsid|mdash|userpagev2|u00a0|overflowY|overflowX|range|search|hans|armory|sv|400|ru|Background_Spy_vector|replaceAll|animated|prependTo|insertAfter|hant|fast|ro|frameborder|useMap|month|tabindex|frameBorder|nl|600|slow|removeAttr|pl|_blank|able|Background_Pyro_vector|unwrap|white|Demoman|wrap|silver|Pyro|tfoot|black|caption|yellow|||XMLHTTP|testchamber|512|infobox|touchmove|external||Category|can|bodyContent|property|random|colSpan|usemap|getPropertyValue|setData|fontSize||1em|changeData|stylesheet|clearQueue|darksalmon|container|delay|pixelLeft|220|pootvertical|date|datetime|email|rel|green|getData|classid|Background_Engineer_vector|beige|rows|Engineer|rea|Bottom|maxlength|Right|gold|media|maxLength|cellSpacing|rowspan|clearInterval|Background_Demoman_vector|readonly|colspan|screen|lineHeight|zIndex|rowSpan'.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);