From a64a749774ec921896c78eef9d688458f6475807 Mon Sep 17 00:00:00 2001 From: bohung Date: Wed, 3 Aug 2022 11:13:18 +0800 Subject: [PATCH] Upload jquery-ui 1.13.2 --- .../accessibility/jquery-ui-1.13.2.custom.zip | Bin 0 -> 426154 bytes .../jquery-ui-1.13.2/AUTHORS.txt | 372 + .../jquery-ui-1.13.2/LICENSE.txt | 43 + .../external/jquery/jquery.js | 10881 +++++++++ .../ui-bg_diagonals-small_40_db4865_40x40.png | Bin 0 -> 390 bytes .../ui-bg_diagonals-small_50_93c3cd_40x40.png | Bin 0 -> 391 bytes .../ui-bg_diagonals-small_50_ff3853_40x40.png | Bin 0 -> 388 bytes .../ui-bg_diagonals-small_75_ccd232_40x40.png | Bin 0 -> 391 bytes .../ui-bg_dots-medium_80_ffff38_4x4.png | Bin 0 -> 283 bytes .../images/ui-bg_dots-small_35_35414f_2x2.png | Bin 0 -> 281 bytes .../ui-bg_white-lines_85_f7f7ba_40x100.png | Bin 0 -> 422 bytes .../images/ui-icons_444444_256x240.png | Bin 0 -> 7142 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 7090 bytes .../images/ui-icons_555555_256x240.png | Bin 0 -> 7126 bytes .../images/ui-icons_777620_256x240.png | Bin 0 -> 4670 bytes .../images/ui-icons_777777_256x240.png | Bin 0 -> 7163 bytes .../images/ui-icons_88a206_256x240.png | Bin 0 -> 4618 bytes .../images/ui-icons_c02669_256x240.png | Bin 0 -> 4618 bytes .../images/ui-icons_cc0000_256x240.png | Bin 0 -> 4670 bytes .../images/ui-icons_e1e463_256x240.png | Bin 0 -> 4618 bytes .../images/ui-icons_ffeb33_256x240.png | Bin 0 -> 4618 bytes .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 6487 bytes .../accessibility/jquery-ui-1.13.2/index.html | 503 + .../jquery-ui-1.13.2/jquery-ui.css | 1315 ++ .../jquery-ui-1.13.2/jquery-ui.js | 19062 ++++++++++++++++ .../jquery-ui-1.13.2/jquery-ui.min.css | 7 + .../jquery-ui-1.13.2/jquery-ui.min.js | 6 + .../jquery-ui-1.13.2/jquery-ui.structure.css | 886 + .../jquery-ui.structure.min.css | 5 + .../jquery-ui-1.13.2/jquery-ui.theme.css | 446 + .../jquery-ui-1.13.2/jquery-ui.theme.min.css | 5 + .../jquery-ui-1.13.2/package.json | 74 + 32 files changed, 33605 insertions(+) create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2.custom.zip create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/AUTHORS.txt create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/LICENSE.txt create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/external/jquery/jquery.js create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-bg_diagonals-small_40_db4865_40x40.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-bg_diagonals-small_50_93c3cd_40x40.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-bg_diagonals-small_50_ff3853_40x40.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-bg_diagonals-small_75_ccd232_40x40.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-bg_dots-medium_80_ffff38_4x4.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-bg_dots-small_35_35414f_2x2.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-bg_white-lines_85_f7f7ba_40x100.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_444444_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_454545_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_555555_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_777620_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_777777_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_88a206_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_c02669_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_cc0000_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_e1e463_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_ffeb33_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/images/ui-icons_ffffff_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/index.html create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.css create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.js create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.min.css create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.min.js create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.structure.css create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.structure.min.css create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.theme.css create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.theme.min.css create mode 100644 updatefiles/accessibility/jquery-ui-1.13.2/package.json diff --git a/updatefiles/accessibility/jquery-ui-1.13.2.custom.zip b/updatefiles/accessibility/jquery-ui-1.13.2.custom.zip new file mode 100644 index 0000000000000000000000000000000000000000..c89babd0189d5806341cede247e9b8edf5fa68fe GIT binary patch literal 426154 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

    %|Y?31P>}a_2t0B$X_K*v93)v3xYc$bp4R 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

    7&q}&Am~C0V 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%0A2M6@)xV@iB|~Ce}fj z^w2A@wc@WpbBLJ~Pq1Re*}(zEeh$9cEY0=PySwGP5F&$3JBhcVvsZVk`g&!XhIFKl zL{U&8Lk*9JKiV535j7Z50))Si%^gB&CW7!sbK|Y;K40V=I3@6}V zAAbE%9QJQrl~2^iBy7AW4eI6MHDz?@Y%3>u;PZwhpk0-&vfNTdKjl2gD!yjFlW6{l zVaqyob?YiItKYgx5k^od!#dmj)aO#%^*B*eBz644y*Z2$WrhN(VK`cse!jEs^rB;_ zV-vfMd%m()E8E=Awvl~IP}I)e>JBmVvKKk_iIX7c#>BtMhv-*Tztu5yvK|*~<>Wmd z&Mr0N*n;S@)_cDI@hNqtZn_wg9*KAC&Pn^c{X0wUHw|m|Hjkq)8E`)x*?{Ya%fTSN zfD5@GZ4XH@K72g!42ZT(mGU>E5m8zz6!i+dh#9DSqR@8BIp+X-`MEe^j2%-Oip zUk`1P_pHB2+Re^o*>~$^yh??I7-11a(4-@LB)rNC_eOom!jr@JSeLFq<>@uAlU;#d zxHmgnBb`G5AuN~9l!;GFY03woGzv&S0#O630_kx&Jk|^MMkTbc5RYv8O_}%79)y6# zs<%K?_4=&b^|eI;Xv)V#EZ&~;RZWz)e|nf8POrnLaITbFTiqvSPV5ZAtiQ93ZNG94 zuG$jCOC!h1W0(~ zKglbf!vZL+k?>P{;t3<;gaT&deHGjW8Ns+kQ>>+3-b&1E-VPJl*Tmpd=>Z+D1lygX zasn$|l?9_mU)k#3KY-kb91a8rQisOBT-j=2R~Dr+87|TNm#w{Rir37@_z`w+s31&V zM}RU=vEIImJ6MmymoH~HunR?pvTBN~q&>9@@>~|wORiv|7}Aa8XQ}u)Cs*}K^iFQk zh+ClI6SaTwCuW})9k3y*pm!Wq_xQPb&qbXK8!dSAxEsQD>~d$|hz&yVz%iAIfK)p_ z8%^_xaSMJMrY}C*m-X#MeNjIs<7^-9%4%V8XE?v1U@?RPc)XA&ONS)KjNt0GRU_CB z-Q#%W%}v?d)pz%INuE&7L__M|ZtN$+DQk)mDC4Teu3AdW*EwR{?k@V~?O?uujuxW} zM1zSxh!W@%{yH%G0GMcNBmW_y72JGxBK_fkPMDR)Uz*)i4~CFU7lycF+zDaj_|EXP z!{gK)no9^X)BZ`#tT>&N__lX{6=G%cXl>{GgAz72vP6C~t}E;H3z1TbVz=~ilY&Xu zOhyf)s-&_jKr3Eih)ryam~djW>G#X$i4o7}8@E{4%EJu3`31BNcV-#t-uu3z>~7ti^0JBll9{$2$c8mc*(j~h>DxOCm2eKb-`yM(}O~L%MA9vUU$*u(7@eb=gBQ3O+14LRJ)$7ko{y1P<&9g|)!r|V(tsqC02=DG(YdQJ zX~7m~YT|#o_J)`8ehkG}HkNTm#3}cMP+p@JI|J;A-uVcI$fR^1Y^l7X1Tp@qp(NPeglH3JqfMWTabaT3mOsP9; zwOSSxoX(YSt4?14Reuud(EhwMNAeQTBQ!PIWqfb^CV)`E6fqE5Y{_@pPtNrxr#&(MLuhHi z^d}jnR^8^+iVg1~MP_{*z?s>5x;#prZ^#Xw1BV(EISTn#U(?Yv%iX*kCh^0GkB*lEq(zIXCiA^GO>2@!^~l(grKG724E57A`v z(Gpf33{s9PKweNUNX%gD-t#=oGErxKx?ECHb2#p`FqujLG8{Q|tW=eLNM2y2dm@K= zibg=hIS`Z}5b4V!Ux6Lgf>%EnqzAoLA}$O^V2=Kf3}25e<&Wc~)+^?QgBHafzBs`V z9ip1iThkG#_s&iCchA<%9@$Zl$It8g$~#>$!K8BIw6CAGC~VF|o8Rd^${uQ#KilMc;k-w=cS%ym#hbeDl@IJ%{`4r+<5Sj-93r28~Gt1wXcAu@8KsNlo1t9G%=(qXYPcic8Gp3Vn6h@K;m|2P^gcf0r*|ofnYdR(NbAqkJfp) ziLs*VA#+*K5h;J<+ly7J+a55$_(Cny5M-mR$=2c&&?U1xj_Ugn3C^1%w1>Di(M@*L zkg6W1>{yXPDH!_*+#c0EDFtT3Ml@G{j3)_cjn&^<*ejVED>+~d0P91_XWiS_gUN}7 z7dxc7;*Kslino-uR@KznpEx1F{d=!-Kh{c8r1$10*y(r)CZybn9j@Sz=zjBB>fhy1 zK&Po(7cVbTIe3?X_&8aqtW4qow}S}wgAZd*Z1KIzO+vQhSm8nMMRU=afLd-6?-j-(3J|rh5q6?$z}IFfaD)U<#6FC7vlt#uVknuFvTUm2+l=366$)P|M6Q8S?e|oIBAt5lDpRBQuR>WeWj!Gnl zu~;1LR=lks4?XuNx|k2Vy$7ry4yJ(CQ1(D+h;_`cK+s`Ry?@nA;=U%BN zs=rTOfaiOsd(guH9C;Tjn!{m;M#smU&CgC+&JYo#7?1*s1Y8SSZ8pvL?!LK!p(N@t zeVxMNEAwdzNKIWdQ2Uju#vUdwMeAkhpt6w#Mm_^l`2-X4~x<^7Tg!(ajQu8l?HZcVkL|w8vY9+mjjg+m*d?4|zi0#ojWN zyG3egxRWf)rcr-j=|46Ymdhop>iFG=3D zMSj8T^johS9Pub@B)O?q?l+{vTPB9O#61hgy0JQn!vB1ZmL5X1qIwS^<=r|-Ho>vL>EKuk1 zqNapd4;TbH>Hsk;@H2MkA-@}Ag=N>+21aCt9-nP(N(GY<^^sp0upto2AF(BhJ6TRmjoJ^bc<|dj_}0?!o#-#a!P|K22$b zx*a*i;g5ZyCV53kbLH>QE0r-}Et$S!E$KPI(^n4O5p*cg1H{kc6bX@uJW7Ad%nw>8 zsZo5a^k8)Bs_4qgGb$z(hT%w31Z$u$IeUQQNwW1$sq|T}JRE{JSxgt;_RkBBq6oO8 zz;0bExrWoZ&_}AH_>lfa$xvXRJL%32c1bcX3iw`37m9IWSmWdI#z6sfJvKF#%41nS z|LV9oo!`LwmU0+VkG+0Ki?jRo5!OUH=&>HOq(_#_q~ir=g(t^IB2%B2ckTTuHo}N% zM+)UyQ<@cBIJ4~DI|IJa!&dSH%TwOI* z}E7m3m?kN$VEr(oR}c9DtZ3}(U9Ri7sUGH@qAV~MgA2*6qI)GA`{r_CN~W2RB!5w7N#AJdK{2&sc{ z`P#7_>pa>RF%?BmsAUfO;Jz{VVxq<{BiZgCxV#@U2H^%`tJ|kqU^Z=w>1jKg=52=Z zo@tA?y0DRZc7YmAkpV+5z#}xE*9HvSuzjKh{@Rth{dDQBD;816IB@U2D4Uz;c#uzo zscTcL8R%G1CE!1A&m>nG;pn^-5td^Pk@jgOIooKSX}0xRA^_6)P1$^Pzii#z($X{< zot=)uqPjO*VVOS{ZlwEAcv)!SyEtsuk;a>1 zs3mf=F&^NJ8{@LvYa8(^Gxgk_6)rRGxF`svCH&>T}!Ko=dNF7m{J*n`xyXaszyBk05oQr5$0tteOk=q5GiL&`IX7^5+eGaLJ zE?Xz?Y!6^$`(la3OUtKR?TS^MBNU#ncdfkxYgZp(=xXuWgxV0j@J7Kkld9In`xV2=;KF6=0!9qH|+_-S!a^_?vzjp0XQvV z#o(5)Qf1#&0()+%VscWQs?z188Wz*c&8q`zZ|0Rs(&zDURAO`8jdk}v#`_PZ@SY|K zU0*RS9=_Zp-O}}DYPJuwWFve98S!`J#~h5AYrHgx4KWs>R&w&v5rIKxAT1s1jep&@ zJVs`EC%H3B!!pR>{*}>+thX(D;v^AIBOzSpJM5BIgv3_0ptKwXP9{=jcrGfoo<$$+ z>Njt9-Fz z2v%U}@}QBA5RcI$`IY*Tb(*Rm*xLhFG^6PWvj3jA(J0#;*XhlPXC1prB~ZC1l3%?E!Kls+-AxyIFe=Y#fPRB=me}2s^8;hqnQKf z*aKn_74;rm=b5?vD4pCm__BxIJj?HZzz^c@J)?nkXo7pxi;AfSlLOxP9o{d^vNga< zc;+rr5mh)8;FA+~3UQs3-VP|+&fNi&jW=G3uH-PF`fv-xtC$a<1Ixon!`EWI&)jhP{4a^;ml z!il7h4xW<1YcN=`5oP@7Xsk!2>22eI34DDY`{pS+d^fUK+t#dqy|?$|AF#Mzu^rwo zgzQHD(zL|n^t&b|5c;7rgPzB2k!^*+kgh0|&1C4(D~l2j+(Li_z+qfbp_5$9RwHyD_Viy^n}P|0uZLAwA4Yo!;Z8i|*dy5Dv8g1Cfk12Kl?AlI^K5;*cyl%jf05YOS z!M(;?kE5WRgEj`v(MEl#MXkz|Kio>Fi5LrG&ICwBu*E_0M3|*XtB#Tlp-K{^vM+Fj z4oiCus40^6dLb=ezsS4IiH|)L&!RyR`bn43POUhtMi_9HzkNzuuWnMYu-ly)jYWrj zXf##(^E!zb^Rb47XCFG+UYKPNbXO?~YsOt;ED-`u4$W@Z9A4XdV7NaVaTYA!92{=c zWL!4M8w4xkvaR{WzPpc01u^Sy<9ZhF!xH_wviJIE=rmCbsO3dJA*zVzNvyK@fIF6L zk)~8t!be}F*7L;rFzv`QYT|!WF4OG9BKgUZ>&`}nv%1<7aOx@@bUqh?5o#mza!|^# z>qmL#stS&jyNObFa*es_?!J9a3AwLr+jXnFb5-P3*>$CqA@=)H^2-sb%XSju9B^}ykC+#2Pq{e{32gdnOZ0)@O#wBI%e+g_U0q2lC5#o<;o&uNV&|9 z*$I<+g%>9MQQhBO*cB3Ul`TJk=S4o9r~@W%uy|PB>1S;Ap&kHW^x7xrjpYf3Rj->( ziCXhvEB?JL9~3y_cG!9P+P8Dno_3_P>NX@%(1YG|iq+YrSx| zM~F+hT-tK=%H7)fUTT?!wcznebxH8Xq7~9pq0l>t^m{YZ3Bmy++nVVF3i4gB*h-cp zAVMlFNNcn!O-&eWs*uz`qg>j(cD!dFy5nlg)H~}9rxIh%$VVZ=8#wo`J2cy7*;dqh z((}JIE!LT6f2=##DbhvQvx~-!FU#eUph^xcz<*%5cc#Ao!gPAu>&~WSh0alYw`@6s z5O|Es`_;-;?JKGZp7laq18K|%EGerP=g7Lh+k5tkEVz+HO^UtkJcGhXsoy&ja;8=v zI$mVU-d!gWnkOa!p5TxkZN|TZcK8{MFK^s(v9eW~l*z73`)I1qD74Ur z(oK9V*=}M!84_;TnrCp=Wlm;7n{ipMD!UpX97ow4zhc6X(s)cMN>JkoIjm$G_#N3+ z<;gvK7#X+j?*^V3@9l;7SLvrWzQp~eTsfFVQo_L@!}oVlvEWcUMZ4kg-`fjj@Mu4* z7)rC}WC6LfZkdihVL}$pRvTr5fmnlf--&Fo^MaPP^OOuahZ9@G`(aRX=H98E;EOiCd`~2UbCt= z%Eiz3P0QYjZrJj$=U(Px=25!Q8_SF{2-pRPui!S*gucx-^pY+{kJFW(`Wc2 z%VDeYR=_Zcjv68~`2U4zGCKRP;9&FwGzvO~(SuT}78cMdkE{HG+D?6+)2ElC89T+4v;y7fU5&KWWX2|7ebk9Gi+||yFnrgK7t_Jq#_tnGlH+?q)mfY)XORDuB?)G2G*53UmefVYd=|S(y$FJDQS4_&8OU{CpjdWM6 z+6d>U*p(ycJjg&%K-wipiwA2a6360mgvc+mR>ey^N|*NhYq}t&5q@r8w6{y7>g+3q zxET{7X|pxwozLPKu_UQ_CZGQjU+!zxRXV}$2&DBr7fF<*pL7g=ZF$k`xB4y1clpPY zNmNmY6zy!;>R9%ukG*C+yct#Hn~q7(Cs3iccV%Uf7&h4S#I20bxtsbe|3%tLq<#VRHEe_;lS1#= zKVX)kHe{f}Uy$UQf7F-dGEcuRp8jF{=jc>#`c`$&H z-T`HCT9Fu>$Qy^iUulbACKj|;_hc*yB7j$z;S>oP=8B%9dXjV1%4g%~ znPTU=Refoj<`qKEDgP}&r>G%ZauLp*W=srj`0>2Ilgks7Nx*;vm+;22M**2?3g~Ilutx1vTWR7s4Na`S0cb_bWyUE z)#XjS(%=?0WpD#oF<5UV9C5&qT-XJy;Ne0*I%+AJSMv8`=jI;a9p7 z??Fy{grUo`A-JoPTmxL|-#7*J&sX!m-~uHd5F6{YEt)KR2v#+6^y%O=T+ zqG%#n65-lhyWqGeQkL{F3~yfZU=)2Fa`b~<&)bF4U^o(rf>4dKpyw_oEQXA*NWL=K6OLb zH-4hwflQ~aZTl_o^Iz-LtMY4zE(vrz3Exyx0c zjW)?5YsK+|V)l4;>{f_uRbQ8HkaS}GA-Rzs^~-a^;Xz-sy)IVdwue&Z#*Ib?KZUcQ z9DDaBkK%x$uK$?0!c7i#$|;Nmx9nPg_h@bD=*rer*IA?^IhV&ab=koj(Emq=QEz}Q z#uyA-cA{B@dA#kvyeyTS$kzO|eP{u<&cF+0eA%v+f4A?D74O!zCHnnF%J{?^5WBk?^8m~ZuEkhXLPyfdhWYk`!4`iCW{;l zyq{%Jbj&H^AHIbH+>XZp%NsnKo#ZFMi&w5&=dyd?;3VIVj4g&0P3q(!kJr;Vv}ltW zp=hJ2Ii3QaPEc6k!v=%l=XVY_oMI#%juQ!N%{d6Iz*V#dUYO@2k0`*1lc${!nRq>R z6@{LrEwn`L6frbN-7s@`PlckIuIwah3p;Cv)4Ux`RpS8dNxWOVspx@3%z@s8;K-;z z-DW$-ZAiC#sK&cMEN-#xY|sFjBx2S`lk43rKakzCnX#Kqa2x1i35}ljpo0@ii2Ik( z7?$FUdPuFz7EO`}cH4bn-StgNFQL$7f*9~3r@b!0RQ_hQY(cc;K|YQ_GD|FS!<|P z8~sKVmqUDJh6KG9akthtVfnPmITmoQhZ;qldHxe%#5~65%)wrY;=n$kt8g;UNjC!inS4(&Q4`B zbfox1_)=xO`G{EF7gQs};C4d7Xex8TUKv6_i5s>&7nc>}s?^ zxoi02$Zs-FUbzQ6Vm*Rp$qgV%_^+-~_F{twA{h_}_P;J~ZF5&%T9Z6KTDqvpY8x_j zx@N!l4i*Nkg0^a3aBk2Pg>*3(dod1aS^a^a3Baa~csHXl!;qA<94XzYUg0AX0QkZ+ z7b7zOp=-}z(CXR3hxPTazd$?=Cr_Y2GYTZpJ?z0VfrHn>&`0uYkP=c%1yDO4EB*Q8yqC{;(%STu?#oM?h^m5GCecq0y zXPeCudJlkCW;7o+t$yj=z(Me?Ub@yIp{eSl27^?)DD)3X+uLNBSs|=>QMP3oj&kM7 zkyp`}RfgEywq2!y-u5E=I23`mL|AHY)lNkCHEmVOHk z!pv-iVuHR<6xXH=#0JFi`M&Es?C070`c0#~kHG*dVs;fB=&&gh_C znxp$=B9$e4mP^ztP2DePyix^B`Wf8)rQ2E5TpY_48` znvB;LEvJIgGPOx|l9U%sy}WNNg2?P(kX*S3yO19#X4y$_47G|LpU%X)lXDSg0tf+> zoe8;-rUveJtG)75tgc{?gW!` zIi9L$Bt#0rc#RZ{wqv|0i+c7tRiU~k(lnV_`Ka@DoZKrH6W%?8;fJ8Oj&N-0wa zq3zm;k%rR2>(_b(KpoqwSb?HZkfIc*Xa^g1=YecXfxrMD-cjfGA4E9!fk)hba zC!9pXmD*CwQYjddo)n7%0pXt!v~@L}rYY=L4~vRP=$VG7vO3MyZX6kp-8gJ2ZA{r( zY^Tk(Do7la^if2bG0Lm*qGv7&tR(^ZUKu=at4>{gN$Q@t@i|G~jp@EHb(W`%Nam)7 zFA!lRzl4dYy1S}`94ZTee$rl4eA4mjU?9e>bV6P1m~Y1KSYrucQ3EqOOvvx=vl0!A zDPgFVSXbtIG^$7WC_nRpKHd?>(aWaUD6sua@;OnIVt|FdkU$2dkI1#w(knE2e~(mPUpLweV*rP?f3~ zjgiWHat2L1>MZcig8nhkJ~gy!HMd z=BO`o&%}2rP@U**!GC4O*(|nM-t%&bz5vM=9fYNC*lBL-)fszi7r+U!g0N8UA3|41 zcg`;qVfhot5#-v#YXuvYS@?h0Wn<+5?w;5Tdtz7DHbqiU ztFBo2ygk!IG&`mk3#&Z&{{YfwP@Tp1KKee znoZqh16;Vbo@F)VE~w%nLLr6xVPis75`Ip_r( z|879|CUQJ@EB(Qj;vbPUMd;14-lm*X3F z^tKsJ$%j1QToPJ=sZs~V)l9)kT$OGazNX{f-z~!ie?{ao-kj*d7`U)d`DsqlCw>6y z`_&Q#O43BZ@S6bP-7U*Yn~FawoK0C``QBDhJOfQiZgUkaiQB^4H8IY-9@~f3R*Q7~ z^RNH$#dmpYIuo>8)4)@O-Oor;V^^_g>bM=R(^mPb9(MH(4FDij1rS6sNbP9Kq1{G| z*$4T41Jb29B>pt(L$)y)?EcQKKBaU^-mhKdArEcTlzJ0-f@De=yIA9K&%e5^QJi9* zi?!gryc-AK$_KGWbh%tccChBAT-0yL1Dcf4VXu{8R9en((Yh7^PP)^tQzR!yvTyK?Oj{!O+NqK*_x?W(-|h3jtCjd)?BNH6(XgD+kzUfAYxnNm`U|h$?UI#~EQl!Mq^WZsw6kizd1h(=7 z_nXDm!gaIe6n^#)cNjv4a$vpPCYbC#3s#I>TBUp};m^1boWu!4+yrJ$R1q>5 zC26N>ae{IaWm=E+APC0ha8n|bC&*pp9G2VUAq(VvDMP~1dh2>rKA^-@~x9r&3TMcamN5H^2!Z@8JS8;WVvm#V3$Fa~ZxJm^ zmA!UNYgeBy>&A)=15$v`x7ouuoC~gthXTg%Wv_ZNvzY0n%%!OcH*>W0#8puK0S-7x ziUKE6Umd}eKCbG8ef93n;_sh-g^pcAM}$7zS>p3eo1un4%cS1|p~R5ejL&y`z8^bA zlHzH8g%7z06hWlm;`3X?gzU^=YtDPOrc(&a)NpF?9K6s;y&=lRMUv_&Z6WE@S13P3 z7%3N>XSUf?WBnp6vn{5aiZc?aCgC?bYsNyBV@;zV4DUL@45ve_ye`&*YGeP6nRQ_d zAeGw=o8d2{&PgT$&w#4%^Aa^@m#Ivx*J=YJK*t@)#D}KOT?L{ZJaN@!(WEYBJxGB3 zfUdKwi_NR@)+VaEo#WRTiFvp68_W2fTNu~b5iCX4F?WmpC*<xjh7+I1qLM zmE$8FT+gP0X9s2t7DrctW^$9_M`OCLgF(ug68>oy-`~`4iv~)a)~*mn?{9gwmJ8yo z=7T}HN^yB40i^$?hG0MaSd|<>d%%REHEV&@yxOYlum?#7tQUzsa8u}|M?M($@$&o6 zKmGP)muj?G*5{JEF@WsCDU*ur_5@f?m7PL++2o*LS45k`3=TsD-6flyXtfQob-m(? zMMYmoMkXTBx&IiB&?2Ji#sqkj<*!I+ZtR7{4w+h68`zv$lYd5i-$rdoN5$?YARJpm zy+r#ea+&DK*jhg85z;R6;cF()BAe`_LY2`<(V(e_;JWI1v*A=c9x7;W2htSPfDBN%z4cAFD93Bap(}OBah1ff-~js_)W})tBy^)F0H#f@gu&MW#zVPSHK! zFq=d2CIP{%d%-w%gSyUKXSQ@6knc$0EekllHvSMMYF0Om^U%kY82I4=qzz*JG%pxZs!t$ zRQkoS(b0F_o~fRS!B1{Mr&Dref8^e)z9jWvLu(3S2#jGKs1Bw}?+ilBD0pgkmP40+ zwW_Pu94%Z4HAh%L-#Dz-0}jQ^y#tUeQPd{bwr$(C?S9?;+O}=m#%tTQZQHhOWBdOn zW)T}RJF~GHFkWMML~SVJ&QQfJo8b^4+X`0_U$5 z_StngC%u$-zGj@h7tGv}QTbWr=X1~oa)ujn(B$h&jxP+lb=E%5&foJhzmo1Ro)*12 zr+h53Q(r#iOxsw}iW)vk?&Kr&*#<(_E=w*cRTD2ZVVdnHH{Kp68y`$xXGUIUa%QHR zH5<4S^*66_`hOQVzujc*HQbTs@Z_0~>&{F^eJsZpRB#Fv3>O7H;B80 zI_P_=H&I6Oe?=x89gxpV%iN5Oe1c?fNEg`t$js#MeHcwN$taY)!nAHt?6@D`C!n&s+M*0CYE77105-c zofTfK5?o$|u8@YOJ=tVM+}9u)Gi|CZ7KRvTXXZ#!)(9e$Av| zo9g@ohw5tbcLlIZXRT@`Lfp5AV5^BtWct^NZxd%$I|;^Q)C|F>b;g}_S8CB!-1q3W z$dAOHi)s3UqmG5(Wg$9t!hReBo! zLXD>td&P%f?#OeWj*yrAD7^6aBG?*rSYNJX!x{+&p?~>I8Qcu&(q?v^HtWyHX7=yY z@&q<^jU_aQt38csPhU-6bkAHh$ za}etFLiJF-3atn2KO0}=^Q zP8`~`j@v#MO|xH8V6N*sBxj~D9DdpE*`>qb%lT?W`z(kjyXXH)PM9|Mi2t)4%Y1i%`o7y4&WEH>CR0SBq z!5`hkxk3d-$|z47H=7nyCO9-v?UA4$t)sz4GDTha%2rr4m}^i}*NlG{N2-CngS{o1 zoW-8;LmIs%dB**jzFMWln~um?kopdyhJk)n4>~F&SHf*8H&+PH>*n&{R1y(1@ndb@ zjf8a0{PFLgo@v^4XoeLB=6Al2HP?F?=;C{0boMNPeyR7^&g|paUUo`_^rtlkWWyd# zU+Uyl+F@*@o8<_OTz(Qwv%aIyVbdBNOd9p}-Ba>Lz}U^3^fcg`u3vzJ3l9TyeqzjY zJ)$o(cRi?3_Kq|Spnd~n1$0=NIuaJ|o;Ra+BQM`4eWMm!>+RNxuy&|>x3JXPYL=5;i(p_jSJAplP43}PoF;;|Hw zA@t&|j7&L-;1s}Wkv(bcz=J6gAc4bA%2|lMiCc7pZb>XB^z=FHVI_svk9-VaqsM;0 zq0j*(8E6Cz#uO?hN|kI_n_vl__3n>nqT-Kg}ep`;+Max$3am+oafs@YgvlFYfQkP}H?bSZ?1`nr~%GM1s52(48OG zS2sa=`t&%96H2FRyDLua7GHCn^uhlJ{*gQY<)dV2Ew$BKJecV1j+Jm$%|F+!(IfDjYOaafOg*UIGl4_Z*z8feBPUjcO3HF-d z^n+>o(iF3E7s1AyOq3T3=4m25erJ#|eD96SwG;w!L}gvyU+5Fb%Y^4nmTnJvWE@WL z*@z=U7fcgztS?7@t7G%aPa?J22S=%t4810x6RW7SqMLH4^z!RzksT!X{2Ug zyiVhrrh>`FidD-}VI`ZPoNdiE_%Sna-RwWEflP}|1nV}Cz866mW{J*&hX6@A=63bnq#&dH zy9ijRmO1DXfSkYBT88k#>I-ymmj3)5J)qIqaKq0ja1ZNDEh1>}0j~Y%)V`Xp@7o8D?W zyYO#g-ntbRGi5~nI9Q+wgPB?<-&mY2W&#nBI~KC!+9vz87_u|2u|>#UU}`}l77W*b zpJaxzd%lBe08!{}6>vv_Nzz%{kvTxC_2QF@WjBT{@1G~kPU!x>%{GXw+BMykT9Nf4 z5cz6*>5YdY<`%6W8y0=?<)BBSi|}!-15R*`n`&-ez0bCV^vjM2*wO4uK&&X1P>`d| z>gzlC1(6<2wG}hx%~iJM3x{L;m&({b-*D}nuYJD@2z=)QV(2c8zO0|NzUJ>2-n+Hi zrF?p8zJh;)sU)2Y?A^8B>_!>&_OQH?`$N(0I*<8kj&T}(8uV&lzduNx@wf+DR6tI# zFhbT)GD0RN3|{N)&ZN8d3&-IFklTr^wPai+mwvz>^H1VW?M(J${1|`RE;J7}4>uK? zD|>T?B+4sQPUzlD@VpHeIXF8z|4WS|-8{L&{t4ZAQSsS-TKYPYJ-F>#Lgka3d@A=! zA@_a7NB)H8&ubid`3daSZP)z9yFzxdN9$hO`O4oFN=Ts0a0C zC+}|5!DvpPygdU@2Gw(6@>y(-n+57|>;MR|_yo+7rhPS%3U;RJOIGN_4iqwXTC03p zJCv#}*|-BIeUcSWwh=>G#H+b1o@1zh&&jE{L0M1hpG?4(Vq1pN<*7m~D=fRUldBDy z@S)aoUlrMw(KL~j6m;k|ZNrS#*E}*b&6d-F4sqn8X_q%9C7Q|()w1}n^z1&$G~=HNI)g8sE-9ihX62uw64@W~82Nqp+O(Tw9xT*5u=!fDu<3y5i%@ShMMfondNdRMi%q{+wZ% zcDa}t*RA>GO)ff^DBr-{u{b%92B! zKzRBTS+uW9F(E`kl6=?=`m*lhBlSnf9YF<2T!6o?Wj3&gr~yNslOdu0;R@pL9UDv- zr}Lf1CcsfR?|6kt?#}1a_O|$5od@|)U#w8*ntN14pIv2Eov20R`iIa=W-9@|pabW2 z0E#p6b4jGuMiChi!(inxK|4fXFCUve>Y7IGku7gKDD;lr?y*biY=0v2Y$r1W3poV} z5J~_Q-uEjix`Q>L-2l_!DjnkRWQ+y0t23(D%^2ea?NJ+Xl66CI?d)i?BY2Kz>CBJ! z^)wqcAp-z^D5YX_GXy0I=3yq3)H<0`^q4}Ev3izE;E6%FQjh%ZAJi-uz65;GY>5`Wm~Wj)+UK*K+LiVEjy?fw=4K0NZffkhSWFo&O&-H6jJ-{hda;K*L`!^uTK2FYB4 zXRAG0nYzjpvD38aIoj&6UYZ;6BqCDZqM$fusKcKEZeC=yClHs*ax&3aMng^YOwfi8s5o8<&LerPef z70zu7 z6g9@|`vhvbtzwq+1F96;EnR`#ZbsSuk=7Sch)-B^9-3w7owjvnbEuNRi8&MRPY$$r z6uRm}yOpDOh3qMKnn35m%bAkwbGckjo!2F~$WBeodHL6GZng&_uCz}|#y)wHo71`= z@yWDA#c!MaH}1nfE&8;L#Vi^@WZawS<$qF)Buif$%n5as6dElq(FEU6S%WX?QU3Bf z7}5ZZTa5SvOI)HWwL21^Qh(;OA(wvE@{j4ev<3` z%hLjuhF>#?C4+*KXR(GT^@sGYAP3Q9&WeM=^hHlty`LMxfM7>X=50rkRkiWg-+`aR zUNK70f_KF`^*Z@>gB}G;{evd5SRJd)Ac7uZk`MA$VrdINK?@9Z0f=DQTSN&!@rPf@ zke;`68ry^8vA&x;u!hkOuKd+wk z$WWhGC9X|>s%6&BO4d=G?rJ}{qX{)6R$HiZ2kDYW<&wv;j}Uo)!^9x}v##yaAl|y) zV!T+w=KS9WEO(=bhbp`Dl?ii}3{z{?u~Ow8tOJGCwJ*I)LCoemO^JM^Og=8OgWJ4Q z@xl~A25;SGatS%TsKRaG8d2-SR#!QH1wIhla|C=}*%e0gu#=M5J@ATzeFe`xbrJ0P zdyGHtH-M{vPs`Jmi{*92@vyeDHGZFH8R{MtcUrbaJ;R@LxIH~A=A87gv}9Z>Atd<4 z-+zLR)mw$EHy&Y2&)b;(6M8>S2FMtrzUJ8k2KL{2z|9wEpAPE&eR`Hmuz`!m$^!h% z@5{RmiH8V=^?IyL?-S_&Kp-hl-XJX`KrEe>{fipyP}~4g&rC*3(7e+8RcS@@_q!`T z9FlP=94!FYv8S5`TUvri9PBRgAFXd5m+4rQCQUNim^R}#i4PqIi)(PQsZtk{)o@}% ziAt}_#YoyYM^MN^F*kx%(iPQM#w;cLb=RE5rdD5>6tc%D8|wG5$NaBpFK96YbWE!TT&(A>_G}02!k9 zRD0gEXLH^k@92-^>Q^LJTc_o*hfQJ7H23!$%7wFNq+J=JB!xUiXVFo4*)-II1*5P) z67b(dAu&-B_Oe0A+KemEE1P*J*9$)~+Mr<@mDlv!<}dYd=1E3tGkmD5Naz7WL2nJyWE(s3tjA8vhV-1IrpFrJ4 z{n_G`2!`qy?A00uObA21;CzZ}!Qy*8rR(~xDD+6HmqAK&3@d_9hHvsx(ME{1(WPDG zsxq5OZWKZU`3PX3KL|a5#K==o2^mBm8+fq;VB7S?&rt%}i?=(f%hiUOE#-cecACDW zIOTvjGID)W^(8bsYviW#<#~ZVXlgm_JIPuzksMO{Aj&an%I{@kO zRqDnWvff09PNblr8KkC*4ryiJfr|xJEo*TrvwFLTTs8$ykpIAe#m+7zkwWfSV8^gs zXnDjTNaP!6kJnKqTzWQb%gyflh02No?$eQXjI0PFVr+C>C1md{%9PS-J%=EZr^n}Od}G)p%6J)FKMeSF!tutAwQrgxcx^WqQTp zw?REyv(#rF!=QdxH+&HEPK3FhX1Z#>naFQD1*5KBZw<`eJ@s%)>dnLiBW`_REy#8M zfa-yySf`GbzamAG&B-o zW`venk0UjAT*LBu$)a46b$nahU?Q}t*(m#hnn}8h-^~cyJ@!!jBb1*RyqSg(uEFBN zaVqw}4hE&Y@WKxs79%KKoFa(3axVOWVR+CwRJQ!A7CKkGYLYqzmrvAA@X8ZuIeP#g zDiSiEzqO1krfAE9uTh3*8l#eK7^F;lP~zZ;M*WaP1#RkI>?-|mx#UcAANIRvXp~_% zW3t5zeQ>;~R_`uRF=AF(TIQI|MIoR7lw{$=yjpFyu`{vQc5q#??xE>Y)}*0Fax0Tl zqGV~Lfl9&3(PI&HX^r}X?RiXxctK)E5VR_os;PZ4s5NAh!(j<9&>7ec{T)&qZ@KuBk-j975f~FcL zzS3CZZ@roP9DbinxPyF%1i^#sqLvAaYqYA#|s=OTN zH*1vVgEoZrwd&IT+l@3i>>u-cgL&Uij;x-r29Q#Wb9wwHg;&D!k<&-rbKxUf=<}u) zazRz~QrqM&OAM3s6Kz)m9=afmnIR`WU5z4FzNVT7?C`Fn(;0kp`t}kE44<(2J0ThL zNPGIL3osVy>Uhp>c9RpX(FD4Wus{lSDq@_QgddkvO7Go?=@Cqw#@X2&)HgL=ip3r| z9ToM~Fb_uU!BT_Huy;fcn1{<9T!80CLf@rW;5Hyb&f2F9$LdL zZ+bbk9K`sxE2X#?EM1)i(lwp9uhe?J_3%G5ya@QYsH_WQTz2(F2=}$(qLa`3kS6Qf2o}P^Y`9pE~9VGf|nFGr(su zZ%1-dMm1DqdePCDI2@ZDt+?3#;)=>o8`yv{p5;oU;9ZK+m3QxsSC?(gEA@~g&cHMM z!_C4++9ehL2s|{Xv12O}5uxPfNRGU9wL_-Wpv}4A)8}^$0B7-x(hko&IJV}z1JMPC z4e95KE8RJ~q|><;#6v*KK|d%ns0iXj{Us3d4B}xCF3t70DzXu~R<73&`EcXcrkNwM z*#Dk!V!lxh4^!3fobrkov^yZwia#dis$1ytzzYF`m7sMZTr( z1`SjUceYo7mJ*(npq5V#&aT6%t?swTKia_X-^PN_eb)z&3V^{%-9;$KENqa}XHkS# z-3N~4UP73@J$$?Ra|N)Zmo1iiqRCj46KrK4C-jeACW4+;rkU1#Z09F}MwW}5JxZ-D z`JN^Cj`L|UboV4pS9|(%aAttH$DsgU$f6L)>a>noDEa#|L^^)2%VvjuU))XT(uqn9 zVG$m*Z$U-|y}l4utw3si*dqOk)MaHEdntxWU2YO*A*0tlB3bu+z{pls-PS(yX3Mr9 zRwg;zN-~aJG}$DpCo<_4S%1(c{{{-tH_lUee35QBGy}dvxhxN$>DF`Z6$^O?>vazSwv*U1x%UDq3G$i8Gu%7H40oA|rVL*(P+grSHI zS370j&nE>_?)#H;)80&_6=`39?4TCpS*zF9c&+QY zsUc!L!3x7!0l42D=i0d#MgN-JlNk+cR3cP#r!bxV7Bf|vEaf44U_cWxC!Rwxk{ zUBL%!nrxcR*6B|J=8qvBg%~iNMFf1mQ!;E-347)6N&B7!3Z9DOqMo(*2W#~P#RzK+ zP3RI#MS*ryOll9~zsw=YMK@AYd+Z~hF?SwrPrEZG4?z)<XP)rlmKQAYhFXT@D@i z#n2MLBMwiw+Db5cwYUOz;P%N=S&v#(@Rl4`HYDFO?ARa?6xDfny=wVk6@d%Vk-c_~ zS3L+vmY06nwn3W~vVP@C;a1mL)9l!81%0DocLKaC?!huSIZZrw+3Qq5(Fnzg&b`ADpOUC~ga$12jf3maOr$o!Iw?Rc`7~sBBc3|YI zz3VoVw5odrkVbSktNQ6sv$(ikn7X=pTY0rf!S_2G4^{#>I-RDy8qX>vLAeRsr@TIs zE}5P+IxN6UY^*|gvL0g^Z@LQ#_+c!ryC0K=Q63lRL{VVf5UVB8uYL$n1e=~NLn2MMud zle9g12>I3E)J?6wFPtro;trt=RFe%mwU8ddkaOI92~L`-0*=P295JbKw<*!i?jl+b zjm+5F;0PB-zY*^2YjNAlU>{5peqgD)0;{{Ks?Xe>cn0PyeZQ$+Fuuyp`OO_3GC#x1 zzkA%jy>U){rR-y84hStnSjdwa!KoeMJ@>O%JLC(sEyUj{oJME3dzPdH{eIS99$sFI zVW%U`^UK|xE41xw2ESyZh@*ctlZ(oI6jILSylC*?7cl&bj^kv=g2LWGHqQJ|C6Xe~ z5fAz@k~^I?DZw0UI|EAF5yJu*-}&(QBw469%+2ik z%G!_B;dxFa`)-HJ0ZwS{)9?o|vkV+Ne!N)|AdH=+ibgO1Y0TeR#U0e>h5vwLFrX!6<{Q=ks%W(*)Ju^oB@XJIlJ#%(c* z9C+J&cpQL5X?__zaC$2r_C!l)9n^;bXB^=+yJg7*=8o0_X(V#Jy3<*}%b?cYxFhf1 zX2s5*(q>HQJddk0`?Je9=~WSz%1PqIP13oP2U2x&5VY6skr0Gj-FX0~JoDE^U}=qtQlB){ABfxS&5(oFn9nLV**O=#w3MiK>zhQw%o5 z&wMC^_ef1JVlTQdPInjYmd7DoemnXB_#+Jt(V1skD$D~2V0sAr`yChr1pwmrMS=;e z4Df&2B!2fT?46Ar+-aT7X&LDlndzA544oaFY^~|dt@TZf9qE6M8<^@End_U{+UQ$3 z(mGn}TUqI{Fz6Z?uyC-k{_eT4FwoiAm|no#I-VRQ>>KFm?LIx)LH@S00Q!JrU|=D7 z*)#uOU|?v@V!C5sV6Z>hen{$>7#Ju>JVAbC^lup>14|_3r(*2xPu0t5gE`F;QYfGjJ6E+?}gv!T)dO33p5S7hTG`UHbW zZ*QiDP#8IPn6)(sKi({&D7fN^xlIqKqGk%_Pds=X|-=W*8_f@r(X{|f4WXy z9=OQ)O~-LOp=BrD0|*jX!#kh&WoF!T*Je%H$>LQxN=sv28W6(LaP3=-$1`6CJhcR5 z$}GVm%4ce@Pr>n$+ne*I7Do;a<=-4@ka1qH>W3H^7)p~{#gYn1k_$CR(Tm8E3z;x5 zF)+`t)K0N5LNPEjG1W9MQ!TJD)G#q1xQ=Lr=i)MQ64F${HH8B{St)<-Vla7C{uF09 zNZJ2Hwp>pU^FNRc{r?SF6BA|*R_6bOkmdT{Is2!!PoVc`|DbYu0Ght71hfpt`_HXt z>7dxid(_vo=?9g(wAB`w3n%+i)$ZNA>yNFjitASA=gz{_Qctpx*T=s5ZD6zWhHl=Q zE9{QUjl`j3G6#*qvHe~2Ao~q5m~{wmIM1>))3}>Y1(_sHGKa}58MYCSB3yz*GRI^I z=LP*nrbK9&jxRDg^Z(blx)u&78T?`z^xwr*@PAl~ZJqwB3^TLpGPANUvY6;HxiS4W zL|6|<9}uB!d1%Vd-`}5fYi=dpU*C}bB}YW%_x=kuiY3qm3!!2K3kg933(@@*T3C7v z3@KO)3>{Ji2DK?YJp}sH2I|?6-_EpS8(T;G7Um3=AwC28JXo28K>4 zJ-y$#gJj_CI-sWuL-gLyGH(h9Zs;b>KYmvF)=g!FCa};L^VS){}E37SEpk& zy0J^pkMugN(RXKb5-S)CADhT8`#<4&-e1OiSfxu>(ZjzZe}O3{ ztwtoJ3@0s9851r0ZD7Q}#KhXc(AvR<3BiU{z>-zKOxD4`e(4QWAyuisa(G-~RII$e zjPUv;!~K5?C*EutW&fX@j_Cg=eO%4Vos4O%%x#PvbvamdP1sG?4fOv5)n9M<-(b+J zo}QirqTYYRi`gb=BfrX$aD93)+FM(f^C3?}{VOX%_2O~#z{3BqfQ5yjfd}Y+L&^|z z7?>h37?>I)42((>28J;7$u(57|B$8R!>j9id>9Vm?j8N#Gt=KaIve{A_f1ZYk=<)d zCi(m8|NB)biJ_{N6c~4G7z_-Yu12+QYU&Z~RthSycqgg_V|X-shUf-YZkK z8S0zCk{ij`S}xZzr}g$JQpc3;<#1VF^CNFw2Xxus@8d3`*sa0xR^xLh&0m@>A+3ZZ zBn>9~tvJkI{B6L9fr*K=fuXg54-kM2sez@bftjs=fq$j!G9Q#nVcOHTggUg&0#(?!f8&gdr}S9YgFr%GR_*)g~d+H)Wt! zO`0XDQ|lrSKXkwG`s8SLdrFzS^-c^%2jFjVv_4_%Gq#c*r9M#HG#=_KL))s<+cM(W zFP%(a5B>NRZWdr^<AwM^viV z7nu*sV{HYXB#NV|$42pbf$>6D#!NDt+^18MM+AP|VFVOjydFOg&MTbs&G{)sdKbhE zEYk5uSuZ1`p9rvK`=evX>jDQW1K)F!!SJpnU08kd1c(G01TxJJfr!ZoxSxwTCbkly zq!B8yNk@-#X7sgx`n=AnYTx5leLrYk61vwDH-o$od)SxD&RYZMsxBkydI7zD>?pNK zX}95HVNHkJ3ETdMsy2@o|JpPy-ioBMT~JRv%H;1cc)THnx|P1KCb_2)fru=K)FZqL z0~I73!s|{cz17)VhV^Jgg@+9z{xg4h`z^vs(pTxY9_)oXmR|1Ow)kv3jKsAq0FVdD z#8`rWl6+531TCGHw7%23TfoQ2L)uV((ixP&8rAlux*V#haNCwpRN>8MSZ5_+KZ|rT zX<-zR)y)~%!%2+#?Oc_4>V2sFB$v2QPA|@CiAV}ZB_|nL&^jWq#pd*~4@FHq8VbHm z2NQx~yI$FvVX_0ZZ*$lDnLy2tzw&3e0~slg`e1m|K{%7eH%C>^ zc#tY=rpB@jKSe}QQbL$f38oyIo@r{wo2`c62GJgC0qHL>R#Y;+1`dvS!wnvmu{~E{ z8V>hsZ$iRn0>E=){;GrEvHJ$D0e8$+)Iy;kL>66bnr<|y;jnB+2*(7pUt zaSg2R??4+Afmh&IHx_f5FDe{-+Ly^UKUmgyn?7nGo*%sMN6vR21sCV3b2xshZc1FO zg)x-VeSZU&d8Ex(DUEpzjB!<{fGSMk)XUkejuKd(F_#u!u}~hdrOkjxkb|g|SanJW zr0=B^4uh*JHx78OLjO(}e#@pe2W~muOq=vvv)dGrR!)Ih{dvb| z{Hn6ur~H>Fp9qRCQGo-qVi)|aHQD#Cbdk})t)u(3AythRJqvzp(YNgjs7p8_FXcKo zZ_OjtEp7Hi*Y_xs7iUee%!!IC@(#AhgHEJ!)rARQnTNHO^6QG0K|b z=6(A77jiyK^4ph!O~VU(t&2C-G&6#^lw^vn=Vgx_4o~1h`YTSoiPO;1VP+?Ky77IHkW6C3-G%w)vx5k zpYOxs>*iJtuBeix>*FalC7mTGjc=;W5ht^RbVr-H&>k*5#~fUD8gh}ys?immOQT9P zWNipOHaru6zdKMxYXgdFY~PheOy~7Nk#IMQ^N~kv4@Km9F$eNH)dR~>&e=}9FAkhC z9Z@^82M2#kdtkXg=FGKDkVq&&`m<$sT2v?6P=6a+O(9#i!(WU-AK=jTD3&y5h9!4- z>_4t{oxheD{HYR}#hixPzTFy#QK3INwA*p6EwGJJpGcp=V{>k;5^`%h(Nh}Hp!0Kf zu$5a-^UiiCnWNzwIw{3b%~>eK8RLB|HqA2sOy;o$kL83R)d-qx+Lp{?l4l<+IYZoo zK^d**4<*~ve~CEyE7udR@?;Tz=U9>L<9>k8ap+cf3^VSX+pLD{62POq&izI-447QA z0IbIe&`v!MNHAD`f0zuwl2Kk)*i20$&-OCFH4oD85+=8f5OKzylcz2U=2X@L@4Liq z_O|<5VXW1+blA@>DCD~_Y!pGSVfK@~;(O5#=@coT1@CH1KYLa|gauVN_xt`Par3ui z+GU3AePn)lS)Bc3e#2hHRNz6wSORDd;Lm66Y>MK^vKK)Qyr_oaG7_PD3toSrRPITX z(QT1LkJF8P_w3|86{a}d(~N0%mh2MmcwN=nj)t;Er+Egtw!Xxbi^9vxn|?5rUCiNU z5KlfbyO6QAQ-*`c5>I`G@DnQJhBrX#Up2#H@~o>|*ATse+i^NfRcVJ*s1OmeFe|o-<6>8z>Jh0Luo{M(=Ht8;gRkTI+z~ZYDLuK%ycC`?Ml)IRal(OSgC#suh~=%&`h9bb zYI!!{!U}te=Se%VbQZ_&^!hox0$+|;xUjI%;Uj&QUHM6eTl8@#k4#;RPTa3x)Mn)u z`x^{87Wx{KKvkk3%(oG{++w{0zf%Zkav!t9q?>ju zW+N)`nLTs+0YZ?%)PQ}Kh0i4?vxM`bbb4tK)FZTkM3{l~n^BUaBg_dm-?f9tzK00MuAg=EHR=LBVOLK-PV^lJH z;&rnvPgTTLDGm4HaNjh=GfNnJ%@FpC8pwWi1R@?m7Ge?~*f>ci|umXN!8eb+3RGN$sAllDA1xy3nR>({%3YW1b{ z^=t$@T(dj^8qfXCJEs@hB;9jn!-fYvcv>nHt7;zp#M;;Jdvu(U)-M0%cT8i@hLD}e z@a`5P*Vug5^WCM3K}{R<4lD6U&7@ZmA5}W-&it2w(9H1Lp8ncA65e~@@e}{wy@zTp zM;r1@asz|u7Nw{SULPg`@X4e39w};Nq1nR`XiEMa?x{d8AI96IBUns&(U0o6NoTfb zf{~DHXcz1nMRZxStd#4;-njzk!d_5JljlLeIMaMzCjgmcsdo8$JYY1EX3Jc`bwnb# zn?|%DvZH9oHX$?~I2SwI&(NCdh3=hR2&1_rH}f=7B?6t2;8OyL9zQ*`DCxsYDVhAl zxih{>N=kxN3iy&&1wq~g<0h(*;1U^IyyulkOTneswkxYxR#Ntitp5tt5x$%WIdCSEy_)! zNrv*rb8af!q3O*D5v)S{P%?cty3nWeRxQ%u7Idvpx7zsLNSU)T0h~1}G+tnird-yq zkvso`j_$ll=sls(Ig3Ml9U|;GBF{vy!kB-$o#Te|T8JJ<3Tf0o)a_@SZ4bz@p|HL= zYc+-|;AUm8p@b?5z6^6?r%vAE*Gj!V)0nS2;D_8yyISJX;#G{@bjr(Lc$#-D_|&Eg zkvovzVvyyd*uE}|@`MIhk{DQo*=#E!|^6`R>%YZJM6`bmlgQxW-Cd(~fNE!kW_ z+l5MxI-M8TIO#gINMZiGdu2Mz8-`bNomm!Y@+F(O2u_#F4#80ZP6N& zsOI~UM&7)p&sTOF4Ld2y8Y~MSoZyNYdr!UVS$eB8Z?ataaVr-jmb|G~w8cKz{);4|bY$NE+^b}K(-wg4JGUUZsb`XY%Ba-Wu&Hm+n~ z$s^g5`Id9TK_@xnX_7tqXFoat1_B$;Yr@cD#(_+SoNN8Z#W+<$%e0fNt3&Z; zAtgwM_zvMPUFd`7Zy7iCi5ZKwGw79NOVl^EKbX9-SvWGE7f^%vE+PQ+CRgG)X42-*v)>A!r8b-3Jb`~mWv5H(a3QDm&{4{9BH^XrzsfvlX!f&SWY-lo4 zo9?COG$5vk^!z%V-xJdf_5;Ige~FhiQ2wZl3bYQASFBF%nR=Tz;(aGV_1CoFCT&2; zTs0l1N=g$aSdk08`4{oFe7t754}*nD9(k}KPZ7k09mJXWa%!0gBBSN26A6rW+VEh& z43LBR3PnX)MpP%z3XuYFcvLh}HQROf)H}QCr=U-NFnGD&-kx7X+BNxe9G2p|Lyyj^Y-(T&%vf!UI?(cuH3Jkf%}QuB^I>qlclXH*+Y4p`cBsjSYEBl2@)XU;V6bM*Tjk)f0fg zojj-OPfRz&LS4I$iFGsBn^ytOrpbQwn8MdVWLAfNA_P#EzZQ=p8~Z0Z2Mo(BG44eG zQJuf~T`VqNm9qg2MPXMkLmlT^d&k~Y^71_xN#}!4=W{8lx&SmxB`aIg@2?fU6dxZ$pKv*VNQT)6`K*Z{*L7v8uLaql$ko_UjVmO#Gj}s! zKdi?PumirL6jGT0GJbRsD7zrCIimn3KxgHY@swmJpDhk$zH<@*#nF3DmEAC;MRm>p zF!_4M|Q^E`UPt$cjy%y)%z}-lWLOI>Omi8wDRmb{;kVIo(9Z5-EcCWE znH1(c4d9qd!v9?^g*1?KL%>G z3YD8eA=SNRYde9hM1(Nw0L#3scRFD)$v+Ju6`~~_of?&rgKEPG+inNJogbT(7V6@+bl!fxzoKoHw0LMRX6sZcPix2OM$n9iY~Jzv-!9R+J?Ay zovn%JmQN4GyPv1)--FxxeY=hZGVgOY2M;E7m?p6#w8z;+D*b^nhnMPHpO)FTEA6}> zD@98-xb`)8y99oUjYki*2(g}C>Mb;%qm*>+aO1tCpc|32;fVd@sF&0eGKx%rW$df9K#No@10Mt<`YAr6wp&ZW-UoJb@2C07asid9+W+ zF5K**!x(fZ+Km+r=$lDhDz)=9Q4i|mo@CuCf=QOlGf`Ru9S*cYhHcN<>3!C2JjCrN zuRN^NsC&<*$s`r=GUQi9N>WMHI}wr9XHi2KOk69(AnCJ8cxrlW1uC$0$ZH$h9hyT* zGW<%C-mT#T4G)6#!Pj%0Wt0oP#1L_$qj=WH%JyUb16(DB=HbPXe3Ui-0Bj4DqUBeN z%Pq<$RV^NpS@1#N6M=~S=>rvp2}F=5h?5tH^MnXQ2Fl&O(D=dyfRj>kV$$--$_pUV z{PBejMaLs501+-k_~Qe_28I*=jsMS2Aw$wEWbh6u7JNOUBfV)-eLd@o>RYSpqhp0j zuU8Gg)3P&iG%8Hc&%FP_PYLn)W@BgofXesF!T&lU^Z)0`#DI>0g@yh9{bX{X`oy{5 zv+UzDS^GrhQ6xRg_6Rk!X($}$aGrR>Ot^=J4ofNI=_DaU5$6>lXehE$7iwE!IdG%- z@NwYw8FJ*b!MonoUiH?h{p7Vl`I1(O!wriH3-I0K(^&)hj%ooKOSb{OcEEiG06=P6 za3~nyO2JG9Yvcz2Xz~?>1Q19F=pF>Vh6ea*{lG(m?8X2C9AE*KKkhKctAPOYI*g68 z_;_4jTc1rpho5?506-faw1T8=IjS8$he>BC>pXQA!;4dFrr9%m!Ws7%c~;O`9TT72%cOlFIt1Gm(3_4W^{O z0~?EQaut1UX4)H4(*=;u1O19+9Wk%Df%La)E38vI^CVTiEU`v|XJO)lC+IMa6&M)Ns;A_T17f&!` zP;3>q3vPH*j1x-jPl83`2}t5!UZ!KYriv(HS#ws5gmP!}wjDx?uASD>Y zy|5z86x~`K>rxlJk6gWH4|uIsrM@%S5=zCmjVkssTkbEZvD&?9?+=S)jp~kV4o{6! z!+669%i3s%_RmcwnLP>9(`?-vUc9E`v@6xfi<&DK){_-*@l0#z4e>)d&b~dD-tDZj zsQfNR%VL&d%*KiGWLw2n-stO!E#r%uho(epQ>;Dv)RJV^_7fva*d^FQpK!CFn=v~4 zRpgs2;Ojw0yf;2)y}|toD(xO^9z5^h?1v~UWY~S$cFl8Hn4}Fn6N1YPg^ZK<#bq=5 zsNJ&z+T(ew?vo=1OLhHD@2-25yb75oEIOcM-|ZnmB>D3QsGr?t&DK!WXyyw_s;Sh3 zGWC%@2uGZ`b%U+~i309>QRvtW@$KWx^QK1xV?|%f?OZTsGhN*|FHS zPSm1Pnne&8%u{SzU)+TiA0!+)!A@EZ?%x!eSd#rjy?>cWxMUyhns)+4-lQnjKitg$ z?p5O+$M2FJY!d%^qT38zDSlZf{zii4!LW9&MhyGCBzZhMyC{w?Hjcz=y~ek#Pk6px zIvhTDTayb{Jq%WODuN1a*Y|+_$C0FZYp|Ga<$g9uer67$lI0Vb|C9JHY+4HOh==T0 zBD}4ucNne5Eew~ujtXuN+-uns)5w;Gy{~HRxPb`^B8wrbS{HFCKel4Climt`X+8R}f$1rhs>^<|4i5)5;8!K+7B9m>r#LP1OBtwJGz4#@x$Lr9Q1BESy0zOAx*0xD?fPudP! zFj4y24my~Lu%reriok>05{_OiZsA&Mo6UhHF}Z~e?u3;6wb9F9nA!l7*g;hpXg@Dd zTn^@spXz6vER|W)HhtR}Qu=6*QVVJ;z#BKqz!4zm%rh1_>Jm;}K`@k>IVyTlolg$qgoi7UF;e#ot{5&KZSs&ZRx z;w>9hoI>+c{PEdgdvVPr5tz+7ho11nmlR*y&AUSticaa?XPhf+mr|YK(65qal+W?# zJTZsXB$r60P^Gi1at=)@xy=|)f$CjGJP+0IXSAXV0Z)DUH^`>GjK$nRKNb+^m0ZvP1aA?Jvh(j<3-3yi;%j81=A!a zRQ2cWD%)3*4HZivOS!RGZ~Bo(RG&V!Fgv%DjZ$dG>3-|>^0nndQ!CN4Tn^_<5P6pD zldZC8|F1C((<(;q1=lthZ8h(N2){aCdt={`q_(OWe~W+= zem=m~r*M0{H-+97$~c%|Z)6iuu_RQF)x3Z>$tE|;G4LCEst^iJ<`my@(-Ll+DPrpq z)g7PTes2e$%!~(-=2^T;2On5kB{j9FKP>Bk-l+&1YR+|Bu_eV6XSlVWPj}KO!}N*e z>A^&Kh~FN^Hp2@4<&iYU4?||>^g)x_hYI)qLp#Qg>FVM?aBk*l+W(AD@NUn@)%>iEmzF{{4jm1vuc z_Ob7lM{h5PqKleY zxSMzXkY91_{=L_yjl*hEpzcUsrd;u=>O)QSNlN|fmnqm(*HJ0I!$EUPrE}`92kV!o z$3L(fX*iJ@+NkWzr}A4F677~OqOYhoSMHUf^iOkpfoB5=TZcFw405NGIQqrD@kA?T z*q|OBZXYaaLUsj~emiB)F(xG; zhpSt5h?C*XF=$fW5CO| zEI=l@>$qZtmtj7L-bZ7?D&{lVPxnJ}9|o=bSuYOgkU427mZ`-IrzA8IKqZEoT&cJ; zmh|eI2a(Wew%q~sxXGO6CitS8yA;if_D3DXSypK%^rm^~P>m-YswGGK9#9d{lqAn6 zEkbqp&B7^hF>ExM4paV`G4yEQMv>(5%ZV zHukC)DVFVr6)O#M7naQ;&c(CtOWKgXZ@s2q$#@E5?|~ochfFkqh1KVbQ7;s*$ii3h zzImw=iB2GoYU`WvV3%y9yy{U1B=qi@&7wEgo+$d4p3w_Gsr4F4kU2}H zGpZ;2xYQ#JP3#FEUX!zYOpbWt@B5TxQh^jWyz5%tlKe}wPu=z=Z(`nw>Rfj}vnzSX zN5oL&-_#&Ss2n?1qL&VJbh?~ZDfV-~asy)(dj(NmrX0c+d0cjwlAWL}?TZh+mR~+_92E>t?k`RM18gb2;lag6!z35pKe-7>pWE@WxuAq4<-BDhXHALt)E@42bXHpX3h&@%cM;q{ z3Ms2wMOxv@p9tTYd4oZvePUry&+WdyI_i!~g7c5KbM14c1K<^hOzMrbwd41wI?`Eh zJytBQJmEQM4DBUDC7OdIJ$tLsCx-K;5F;dcvFO8iDCs=&lI_wa?I+;YXlC2Djcmq3 zea2yOE4hASKvz>dJ*;PbYj0swRfd7<0KkKlItF-(c38*O(k<;)Sa$z0w$%&jGD71m2b zdr}akl;uebD48ebz-1`cW&f4+MB$9`y268@IQn-!>Q+uIR1=FbP1WFH&XM=Eh_8mM zlCP0`sMLCQ_Y|{_o)hEKo>!8)-R7-7C@PPb zjAg!GG7YE%d9?;^f~!7`sr1T`xP9#JihCIO3bGi#k!8%Jkm>L`!#v_S|8}J4OAIK2qhDH@b5A510Vh>B7Mn$9hLIFh8)Pk*|+nrgG+>Bu^t)Rk?(rCIns|i)Mt1cWw2R)x0&Dg=Hr>x1F*0MG(^+ozj03V38oC`Gu z_)79~H1g9#@mGyb{;2x?;=>@PrjAlXNRDfW6QLNRAeW@n;wMOq6^pzcPWuwPzHzv5 zga($E2(#an7qc^Sqb$g)OUPhAe8Jrj$R;KR_}?1fUy-WT+&jOzkdAFm9b}1#YY4H01EN{l&%;X8|gDL{(tL=GRx2? z31wV{L3KoR2X_8+jX=LjF@K=gBRyQKQUY~4#P?VW)|AqgPS%l+tM<}I-^bWlYxSAa z)>21Yb^3P+sO<~@aQyI4Kk>sC0MJc`f&-u}v9f^yVp`15ECAOuiI4q$SOC230uyT( zJ~kkLB@mzs09gJ7@Q(ph=mBI$fB0_DcFp_-1^jtwjV+u+mplBr@S)7nPhWur)W9;a z)&f{sV^Iqn4%6QRH1EpewvboT0>AiL)*D=Hsk!GydeDw8Gf}58giY0{bksj^((OH* z-K+E*?Q0ASUB_?IaYH+Km-fW?6C#Tl&(F>-hja!h8+nU~m3G@CP;u``002BuK`pBo zp~-S^Kn~12>te2Ek$+!lsWWv#;Sb&W*`>uAn2$!g^hL9}q|`jos|j;yFqZ(mEPokB zg6%TH=#Pt9ysI68YT-h}cS`-|6*YnlEUUaai4eC~&Zobe+^woLEfCB-a;))jad9c2 z`kADWL*-&(K4G?Q;w6bf7h(20W5)Io1A3~m@zT{2AtTTD<8J2`DL(f%@K^$ZT#?Kd zV?TyYaUz*4jT#`6Du+|SB1QJhpn%@&fMAP*;%AdhBAQ3G42;JW5F$9J5(-ui+iL7ZANpKta$oe4+F6Kg;w41iXmRYhRtg?db(v~Pi_qX0 zwRRE)7^k#o0wzTKxr!nLL<05&j`4@1oD#pLQ+0##HW$5bjb-SxZJ9WB{mf-pOq50W z2orx6l*)9&@GIE4@V4>TKY2SwTp+x0J=QH^w%XPDUR`2gYJ0@}Hpj@loghkXnCwH3I zhZ;aiwY%@>LyF-Jm~ElnX+{p5pM|fKtvVD%q`D&}7{}GX-oH7!21pazSuavWlJa%5X#J-B3KV0dg z-r~mn48U^0#7v3OtL9oi8IDX=&pyOIU!6ujh*4NDzlGL4*`+a_!Q?sGueH+JB6?d73GTwd33oFlngm*@1DJ5)FltepKibGs-1H&5=hlFq;PZ3c zc(K=%oJalEH?A}Z-ja|hXNyp9f8&bH-alMf{R!_E_YYT8fUe5sE_Z7OkJ9o6CtCi4 zD|gu6xN>t7P-ku@4*y@c(ggNjxDs9TA6yCfOdL)8{fj(_$fJ_0;*f^$v zS2!N4gIr!Y{x0+ozEuRbh}(C`a|=O4W@Giu;CS2rK0F*)Ji?;Jh1kSb&h_48O>Xmu z(i~&H4K0E$m{%wNNeO(0aX)w}0Vcu(KSlB|*JF#i8n-SH_ZUgjat_-2rLb$dwPor33byveql`_jGaad-8pk9^%Wh3U^qHB712fizFa z@RuiLpkyQAweyLH z*)5Iu_SA7qCm?liR=U4S>-h_5l^6An9rn<;$UOB$Q`af4oM)0`Q5noNdFy2I7u5vRkv;=qubn zYKXqq$hB;eTBG6q^M6#b*go=?n|aWJjfKZXX@2$Ex2WLmC`!v!tfl{aRwgfd{UaDE z-dTB$GYsH#MKKC|phI0wekxL!!^~}fYOucZ^~MA_ute;uF6W-CH8}aeztx89 zqVAMR$;~meET}efxl$bvo;M%2nYF=13+D}!;oVC(rVP1vq3oE_PSliptql1&uZDmops!d*u$V`aY2Jsa$ zWA03&u66N`>Y7x44OobFmFz=tiHEa`RQjV+JY>PC{RO!P9<}E2IO!gjaEG&vKYj=r z8{WW~d5RCLO+K3ey=A(r+yzQ^=NP-~uOg2d2Z4-6S@SqJs-OAm%-?ksw(c{h*(0)o zr-@Hqq1K9%Dvm+Il6i!u%=YQ8>>gfY$KXTEGEBEu<+NB@UU?^T8(AZNa^~A={ZRhq z%RIBl)!y6DRQ^564}1xpg+*t%>Xts$SCJqYPLLs{c!qIzZ+KEl(C8@Rju1kL*P02# zpCU-(xD#@Y4l!08Uo>)SDP4%bR%Y-~;u~b$`iL@s^d3ze8iTulHW;9bAi@~Tc~&8M z(hlX6g*p3MpqwX`8&5dD@Iz9Z1l5DB%E|ZP_nl_D5ziZk#gsuDUgq2boHkVuK^@_t z`!4zdBhgJk+7kJ^`_x?kSJx22y7Qw{dFHAL3N#^7TTuFvhT8M5(siBfkd4&Mn<0*Z zb3BJD3&<56A_r+(*Pj8X=3Nl(Sp&}@Ah>xmeVj8W3h6tX7g9TR{I!j^s3>igHuIB@ zAD9>U194&$s&g&{K?|gxqHgp<3(2zJ zCVfB5QT#rTjenr44RThTs>VYsh61}6sHY5mo^il3UN!V&6}|;VqL#h0%p-q(#iWDE zTg}};e_fo`vqO*INOoAsd$l>6=y5lhRx0P9bA4rnfK4RsB|WwpDbKGRY^@P49;3N4 zS-WZN&(~;pIZ)ixonW2l^mm;(T?((uL|<)?<-M~!9VgfB7U$tRL$Qg+WiIm9R4-Me zaS%Sfe~J#K;l4$$YFJb;@mvJehAw!(aAQm8f}TJ z9WnYX4!tgU?l7^fqsM~|2DYj#pv^jJ<(GlZLzb&{!FiC;IBx8(I=BzU?Gnh{!P2tI zFhd<$<=@7-VVu43pT}6vJvBshPzd&bH>xS+pW3&n;|RSEmKBWQX$g|c$7sCHS?f$c z{2sQKHk6}R#>!uO@GyMp7@!z^LAETR9OA7auIYkw|4KzC=6PCMA95PGt0%d9 zmKwUN5dqo2BmBPd!?wH_tt7(<5DQJY^axe^;RrQ~((X$yU1w_Q?=LTyMu3?49oU1N zTrG8M3WI-M46Y!2-({*d_oW$Hn3$Nj!Xd4yns80ZsAhUO zWWrT3c(L~_>m$~hzcG-3>W$?z8%^ICBN_~NL5xPC~3v zEGmuWw?ZLf)QRrn8n1rv-6uT>t^8;^eVm^f=t8x)+h=1D_HPtf4YeSrH8DRPz>1TK zmgjUxy(8%}ABdU(kGpKT2jKjWY_)qBB17 zdlNc+u{AUD)-ePOd->zQ))^OVVjIy=Ki0>lD~df5T5pH&EyAEv9awm#X}?<6+{*~t z&kLpNsUVhf^ZQbRFhx892lY~$i7PuOg>%coO-NGJ>av%kJwZWT4qL5eSY~qRkPoL) zq?VB#5#&Q+va8`CUHnxqzg)sB>=CK{WofB8yAg7woS#gODDgVR?ei|9w_$37ZQ{TJbg@O@ZWAMxcbCSD*;M=2 ze{^Nk`Jb-XY-JMQ{L__Hnr~ehrTvet5Ss5Somwo_y%-fGC2m7RoTxvNv z2$cpgCPJx7NO$^^iJ^M7>3)ayUGG8x;d^{p!#B+Sld znQ{NED@Ylb@mmSf3-$HS3jfiS(@rp>Z(XTCKQ~zS`KK%G>Zq{f)g{~b;qvJoM1GRE z!?&;vSC}m~Qm^x;P+VtK<0pjiDFX~l%Ab#eqXP@g>i6sLn_{+@Wsgl_6pc~1XwNN& zq!reu&h1mPc#|4(bh(>{S?=}sAenSMq|3bKA;DMZN~Rm8Jmbj+F*54Uk2lM5HY8#IhHl;il)R z>j{sTTE-CydqcKxybH~f$7m^FNCOJ$KSA$9tM|t2O&U=dE1ox!K`tA(R&BhIGamf* zG+rs>Xpf`g8~B+ZMi5`y7Ib9E52ctqE5@1~z`kk-U4CZ77)d1UG^&9r&nvm@Zz*aL zNiye!X?%K~*!_<1tYNYGkRkQAqrC7bj()_h%8Jc4v~&HzuRo^3-oxnqB;&r?Y)?y~ zIFP%b3qy%%-nH_sg0tp?t0T??e6A7M4$7fTd7KlBsx2%h#L;T=0X;F+u?wmeDrvezQ?~oDVji-JzYT~IX63**>6Uj##!VJ^fF;uu3eb#PVt{mfj&Pi} zzkjuha12xsJ3G58=4MB(CTUg>SCJQ2zx#_w9x`+uBD(B@7sN)#1b&GQudoD+A9#uoB1x0iQ& zw2)tIkoTdCg!J^E=*qcJ;myPUQCu;iH)3M>U*HOTRL5vmsevIDB_$SRdW9IpbkdhHV5DVD;-Yf?NbkhPO1Ow^*g7#IX0ci4r!X}~q@Li@! zUp=1ka(MH3+k$FuL!t!(*g`ZgG=V*W$(igs9HqJ2xS}W)wY%@=;=EvA*sZ-@7DiC9 zqB8n7`FM*-GL_opTG}0GSeDI=&s%;B_w&77PnVo6;Xx_rWKH>n5s~_c_9rK6!Sh5X z+IUOIRN*-%(X3yH0|0zgBw+4%sp{Pb06t7}!y=isK;OO-gtf)fTR_b-`ia@v`g`kT z|2B(UpU9lmvpF$qeDx-g4si}7x;=m6+KL&|xKGKj4S!|ea|V{1eOy1=SWJO;?MB&f z`qj;YH89t*sxQXQarwyi$FjHf63N&g5m}K=s-TW)ULf~Q$OGcArgadp=KL74>8Map zQ2^nQ>64g>?eLoOM=5pYWbCI~w1-iMHcn&vEX0`Hfq00B{-67xTrZHF*F99ETm88r z&-tsGIrrGwhbEh(d~-igu3D55$#&_Pz{tq>-)of%`|3v=Hxl4ZfiAr!=h{sdwNlI&Ug+_qm`_Ezo)y`ly2kL#bb5pC2tz_{ zVH`72x2ouTkpxK^I#v_h5y|@3T+znwul_C}gHvq};;n?aI~l6q42|>E-Vxj7#H^f6 z)o<|dzEr6bFZkL=J|2rH6XLLuAD$a70;0eQK$5x>iIuTQmg;nB;gvr_poQp7(9Rd% z*7|Vs(QI(i#9+<)tER(Ho|`79{VY!PGcK%XNW#4Q_bR-@3Iueb*QxG4SLxrcrX{=K zp{T|gNmq~jHLm?b_>C?z$OyCs((5kfVz)|brJtu^s8j|%l|8iE*H@8w&DOGJn36H% z@(GC|Od>ebCk$@`L$-2_VxO*i+|>{)GGB^xLCGRg)`Lm(nPN>oyPZm`<4WxNiq6!G zqIyB=ym~jDeeE8Uk_d$;4jNFM4g2|(BV4Zc&P#8y6xTINIlMC!*jwk8d~`YQNz9rT zv5}Q>vebvebd9z~1TeQkJ51i5b_^t;a9zAaGwAuVq0u&BDAM!UfiMt)cj8vOMLLgqZOUhDkZz2NG4h8hT)&JyTI?REIn$OucRE@{?8I4r9d)^Vye)yr z*X(y_F2bWcJ1({uBzGQ!9aMzdpN~wozPM&up^WY@b{XDcj%W8bTxo}$LpUB)1c^SZ z!rjOvco)8i#bEHXis*a#C#Y6dgk4CttgioRk**T@YBwl!d_!)iGMN{|h8L?W6d+Ol zvBzdi&(m|-UMNFlz-+{Yomax`9IE@>#n2fp}NHJU5W(@*~fhDb|l zMyd1RZ-~W9>i*TPZ@NmX8B2z{9+Nt5`dCJV|7%n)&W9uySTD@X!h-P#% zSbef9pbuIexLLkvXC^oqW+r8tR^3OQ;fh=zJ6{1wuw^jTUaEcwaIbTPo( z?)tE}AiF&ana138wN;q+#x8q_VRKZ!Zbk2?)sg4h*lYz7#quP;5MoJ^bPf1Clmp>j z){}J|5ipma`(|m+Rym6JUA3>ufO`iFn1&7qsrAFL@-7!U#{;*cGpvWvcx@4_!k%go zHd7)9n#GU9SBOf$R_F%M zk0Aql`>!!%gb}{qg7ijrJf#vU2p3FVTTIRete~N-vtzmCdy%3iQ14iEX%}PuI&sYO zZa7GxYHXL$CnM+){QTPx4rBO0s#pX8VIgBr^o4*gW~xuWrV<|}?e4dD z;fC-{8FZ@GYW1+F`rx~khd1HhsM_VCh#&4wQS#;5*3!|fDnYraZKO02rVkXozfc~a zyVSDP&jcQ~Z0U{}7ilHt+z;* zjY>?tkMazST(l^#dhZ|{*LaSzm3LURvRq4U`yT!xhw`z&D2NJ#RwN{wFPi3_EBdi) z&Nf)C#FqVlTJ_YjE{M}dacOzt_gU(yB`@v7>C6XIBP~VAbJ5xs#Q9FN>n&(=j+R|J za#E1M6e7x3#_k5819q<+m$Ws$WV@|H5XYKcDfzto)1c$ib>~SZ^iqYfw(-^T@0fiD z&aK|?gK0yWeM=XvaOEPZSosfz#K~)M{*)_LtPu-~rM%HfE4LkCMfqgcId$l^7>eFE za=YR5hf3KB$x{@HtEj4yJ2i?YkmO>vJkvF`=?^qiPeM=J0QA+c+N||I>*f{_5zygI z&vaeWC$@#gMOVSV*p!Jjt41Ru;HjpD9n*Ak!>}c-eKl41dQN*S65)yr2LzkD)JEP1 zde{6smo=wY?pKCnLUSDT(Sr;`jBA$Rg3vbJ;Rc@3kcH^E9dC8YYqLI1IUYA~W*?=& zG2GZv*SzydxqqZc@Nc@bGVxt_225&;m8x9UZiw>UFajkeU{gi+xq>y z|K58zEW-sD^dclJ5=BY1*0Yer_fr{@e-V6Xl|RtzdN`)I7XEoWJO9uz{vIs_YcbtM zR-*w!joriKZE$h14w6Q4V*}5(PA0$^gVs!PPlI+_EZPcWuR^; z^zAF+_ zi9ngpJ!hNc1FB(TWqp2TWsLHb7Z2CB%w97Son;58ajM1J02$CEO5#Fi?rRR!9<~N| z1{}KJ?DU6W9|CV1k0?X_QMOfpnYvfy8RI|X#yIxs?`L(2(9u!Fq4~v4`PXIC z+K5y1lCqIR=yN=kQKlu#dUF{c8n)KDi}a21Ef3qzKuKe@cy|k$`9)$K6H$*hcx|}6 zbgHO4wLnvz3T~F;cKMc+z`OvC-lJ|)I%+`of&8eR)v{HB*$t?TTEa%eg*uK;W84(c z*e~?lY9^hEdm)49T@ z9W_9S>U^>q|0a6R1&8H&pbd<{Hsr4a{ZE39@ZiI`*zd7vOE@$!N~uiOWD^PVF^s;u zMNo23_w|y1L{l1Nl{hikkrP%p{<)E@3)p$n8e#)c%rzq>!%D>La#nb7+TS^0gIDh> zr}6PpH2i72l=wj}RZDG;h2n zlIFHVi+ADuXH5h@G)U{KAH-cJp`;=2eds67YjD^csO$-`FB)xeQTe zr1E`dOA>{%*rOR@2Z>kl=Pq^o?4I8Q8j7>vBb~tDXAR_K!Sr)3|Dhe&n-REYo6uc* zbv`%z%@54L+8Y)NPiMIcgQ-fjWp^Qwvs?1RfzpYglY;}D{t-g9wfY+|RXQ7k`Ota9-6uME4C=L~ z)UAk`8#}L3{o%P6x`2p}^S0E{<_@LKLA2FW-(MR_tS#0d>h{6y#LUIysjB`3UE?lj zp&z6r6w4ef%QT%`Uq|LK%}GH^J2W00^?YtS&C2C2t3A7dzk8c=#J2trf^{0GS9uhg zb@9b&u)D>MDT1Kp2UJbFx}z-~Bub5-4h*skJ)LYXZEY-=eGpHuf5BDjw#?f9NQ=j3 z5>4Ke5;x}~!gKB=u5YTS9tDr2s_i#}(sK*OG1D=&gOv&qM>Mk<=@r>ezNx+|Vnt=J z3Tj6ULQ227V%dP7@}Bx&HVCprdmI|kCdJ$uM)_!4$Zk=kiZQ(H_BA>K`Sg}Np<>G$ zjq{RP-bc`0oZVLOR`O1wm_Yv7bbqoAj3v#k8J&Asj5$&fw9_>wdc|S$bS+cHmRAGO z@)90592)Z^D#$I6ic8t*x#bKP>IvPns(VeGa%0DnMd^ciQ?Im)3|)dbVnTu_C<0%oEjOYgY; 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 literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.13.2/AUTHORS.txt b/updatefiles/accessibility/jquery-ui-1.13.2/AUTHORS.txt new file mode 100644 index 0000000..0ee3fb3 --- /dev/null +++ b/updatefiles/accessibility/jquery-ui-1.13.2/AUTHORS.txt @@ -0,0 +1,372 @@ +Authors ordered by first contribution +A list of current team members is available at http://jqueryui.com/about + +Paul Bakaus +Richard Worth +Yehuda Katz +Sean Catchpole +John Resig +Tane Piper +Dmitri Gaskin +Klaus Hartl +Stefan Petre +Gilles van den Hoven +Micheil Bryan Smith +Jörn Zaefferer +Marc Grabanski +Keith Wood +Brandon Aaron +Scott González +Eduardo Lundgren +Aaron Eisenberger +Joan Piedra +Bruno Basto +Remy Sharp +Bohdan Ganicky +David Bolter +Chi Cheng +Ca-Phun Ung +Ariel Flesler +Maggie Wachs +Scott Jehl +Todd Parker +Andrew Powell +Brant Burnett +Douglas Neiner +Paul Irish +Ralph Whitbeck +Thibault Duplessis +Dominique Vincent +Jack Hsu +Adam Sontag +Carl Fürstenberg +Kevin Dalman +Alberto Fernández Capel +Jacek Jędrzejewski (http://jacek.jedrzejewski.name) +Ting Kuei +Samuel Cormier-Iijima +Jon Palmer +Ben Hollis +Justin MacCarthy +Eyal Kobrigo +Tiago Freire +Diego Tres +Holger Rüprich +Ziling Zhao +Mike Alsup +Robson Braga Araujo +Pierre-Henri Ausseil +Christopher McCulloh +Andrew Newcomb +Lim Chee Aun +Jorge Barreiro +Daniel Steigerwald +John Firebaugh +John Enters +Andrey Kapitcyn +Dmitry Petrov +Eric Hynds +Chairat Sunthornwiphat +Josh Varner +Stéphane Raimbault +Jay Merrifield +J. Ryan Stinnett +Peter Heiberg +Alex Dovenmuehle +Jamie Gegerson +Raymond Schwartz +Phillip Barnes +Kyle Wilkinson +Khaled AlHourani +Marian Rudzynski +Jean-Francois Remy +Doug Blood +Filippo Cavallarin +Heiko Henning +Aliaksandr Rahalevich +Mario Visic +Xavi Ramirez +Max Schnur +Saji Nediyanchath +Corey Frang +Aaron Peterson +Ivan Peters +Mohamed Cherif Bouchelaghem +Marcos Sousa +Michael DellaNoce +George Marshall +Tobias Brunner +Martin Solli +David Petersen +Dan Heberden +William Kevin Manire +Gilmore Davidson +Michael Wu +Adam Parod +Guillaume Gautreau +Marcel Toele +Dan Streetman +Matt Hoskins +Giovanni Giacobbi +Kyle Florence +Pavol Hluchý +Hans Hillen +Mark Johnson +Trey Hunner +Shane Whittet +Edward A Faulkner +Adam Baratz +Kato Kazuyoshi +Eike Send +Kris Borchers +Eddie Monge +Israel Tsadok +Carson McDonald +Jason Davies +Garrison Locke +David Murdoch +Benjamin Scott Boyle +Jesse Baird +Jonathan Vingiano +Dylan Just +Hiroshi Tomita +Glenn Goodrich +Tarafder Ashek-E-Elahi +Ryan Neufeld +Marc Neuwirth +Philip Graham +Benjamin Sterling +Wesley Walser +Kouhei Sutou +Karl Kirch +Chris Kelly +Jason Oster +Felix Nagel +Alexander Polomoshnov +David Leal +Igor Milla +Dave Methvin +Florian Gutmann +Marwan Al Jubeh +Milan Broum +Sebastian Sauer +Gaëtan Muller +Michel Weimerskirch +William Griffiths +Stojce Slavkovski +David Soms +David De Sloovere +Michael P. Jung +Shannon Pekary +Dan Wellman +Matthew Edward Hutton +James Khoury +Rob Loach +Alberto Monteiro +Alex Rhea +Krzysztof Rosiński +Ryan Olton +Genie <386@mail.com> +Rick Waldron +Ian Simpson +Lev Kitsis +TJ VanToll +Justin Domnitz +Douglas Cerna +Bert ter Heide +Jasvir Nagra +Yuriy Khabarov <13real008@gmail.com> +Harri Kilpiö +Lado Lomidze +Amir E. Aharoni +Simon Sattes +Jo Liss +Guntupalli Karunakar +Shahyar Ghobadpour +Lukasz Lipinski +Timo Tijhof +Jason Moon +Martin Frost +Eneko Illarramendi +EungJun Yi +Courtland Allen +Viktar Varvanovich +Danny Trunk +Pavel Stetina +Michael Stay +Steven Roussey +Michael Hollis +Lee Rowlands +Timmy Willison +Karl Swedberg +Baoju Yuan +Maciej Mroziński +Luis Dalmolin +Mark Aaron Shirley +Martin Hoch +Jiayi Yang +Philipp Benjamin Köppchen +Sindre Sorhus +Bernhard Sirlinger +Jared A. Scheel +Rafael Xavier de Souza +John Chen +Robert Beuligmann +Dale Kocian +Mike Sherov +Andrew Couch +Marc-Andre Lafortune +Nate Eagle +David Souther +Mathias Stenbom +Sergey Kartashov +Avinash R +Ethan Romba +Cory Gackenheimer +Juan Pablo Kaniefsky +Roman Salnikov +Anika Henke +Samuel Bovée +Fabrício Matté +Viktor Kojouharov +Pawel Maruszczyk (http://hrabstwo.net) +Pavel Selitskas +Bjørn Johansen +Matthieu Penant +Dominic Barnes +David Sullivan +Thomas Jaggi +Vahid Sohrabloo +Travis Carden +Bruno M. Custódio +Nathanael Silverman +Christian Wenz +Steve Urmston +Zaven Muradyan +Woody Gilk +Zbigniew Motyka +Suhail Alkowaileet +Toshi MARUYAMA +David Hansen +Brian Grinstead +Christian Klammer +Steven Luscher +Gan Eng Chin +Gabriel Schulhof +Alexander Schmitz +Vilhjálmur Skúlason +Siebrand Mazeland +Mohsen Ekhtiari +Pere Orga +Jasper de Groot +Stephane Deschamps +Jyoti Deka +Andrei Picus +Ondrej Novy +Jacob McCutcheon +Monika Piotrowicz +Imants Horsts +Eric Dahl +Dave Stein +Dylan Barrell +Daniel DeGroff +Michael Wiencek +Thomas Meyer +Ruslan Yakhyaev +Brian J. Dowling +Ben Higgins +Yermo Lamers +Patrick Stapleton +Trisha Crowley +Usman Akeju +Rodrigo Menezes +Jacques Perrault +Frederik Elvhage +Will Holley +Uri Gilad +Richard Gibson +Simen Bekkhus +Chen Eshchar +Bruno Pérel +Mohammed Alshehri +Lisa Seacat DeLuca +Anne-Gaelle Colom +Adam Foster +Luke Page +Daniel Owens +Michael Orchard +Marcus Warren +Nils Heuermann +Marco Ziech +Patricia Juarez +Ben Mosher +Ablay Keldibek +Thomas Applencourt +Jiabao Wu +Eric Lee Carraway +Victor Homyakov +Myeongjin Lee +Liran Sharir +Weston Ruter +Mani Mishra +Hannah Methvin +Leonardo Balter +Benjamin Albert +Michał Gołębiowski-Owczarek +Alyosha Pushak +Fahad Ahmad +Matt Brundage +Francesc Baeta +Piotr Baran +Mukul Hase +Konstantin Dinev +Rand Scullard +Dan Strohl +Maksim Ryzhikov +Amine HADDAD +Amanpreet Singh +Alexey Balchunas +Peter Kehl +Peter Dave Hello +Johannes Schäfer +Ville Skyttä +Ryan Oriecuia +Sergei Ratnikov +milk54 +Evelyn Masso +Robin +Simon Asika +Kevin Cupp +Jeremy Mickelson +Kyle Rosenberg +Petri Partio +pallxk +Luke Brookhart +claudi +Eirik Sletteberg +Albert Johansson +A. Wells +Robert Brignull +Horus68 +Maksymenkov Eugene +OskarNS +Gez Quinn +jigar gala +Florian Wegscheider +Fatér Zsolt +Szabolcs Szabolcsi-Toth +Jérémy Munsch +Hrvoje Novosel +Paul Capron +Micah Miller +sakshi87 <53863764+sakshi87@users.noreply.github.com> +Mikolaj Wolicki +Patrick McKay +c-lambert <58025159+c-lambert@users.noreply.github.com> +Josep Sanz +Ben Mullins +Christian Oliff +dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +Adam Lidén Hällgren +James Hinderks +Denny Septian Panggabean <97607754+ddevsr@users.noreply.github.com> diff --git a/updatefiles/accessibility/jquery-ui-1.13.2/LICENSE.txt b/updatefiles/accessibility/jquery-ui-1.13.2/LICENSE.txt new file mode 100644 index 0000000..4819e54 --- /dev/null +++ b/updatefiles/accessibility/jquery-ui-1.13.2/LICENSE.txt @@ -0,0 +1,43 @@ +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. diff --git a/updatefiles/accessibility/jquery-ui-1.13.2/external/jquery/jquery.js b/updatefiles/accessibility/jquery-ui-1.13.2/external/jquery/jquery.js new file mode 100644 index 0000000..fc6c299 --- /dev/null +++ b/updatefiles/accessibility/jquery-ui-1.13.2/external/jquery/jquery.js @@ -0,0 +1,10881 @@ +/*! + * jQuery JavaScript Library v3.6.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2021-03-02T17:08Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.6.0", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.6 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2021-02-16 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +} +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the primary Deferred + primary = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + primary.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( primary.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return primary.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); + } + + return primary.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
    " ], + col: [ 2, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + which: true +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, parserErrorElem; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) {} + + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ).filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ).map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + +originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + diff --git a/updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.css b/updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.css new file mode 100644 index 0000000..d30a439 --- /dev/null +++ b/updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.css @@ -0,0 +1,1315 @@ +/*! jQuery UI - v1.13.2 - 2022-08-03 +* http://jqueryui.com +* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=hot-sneaks&cornerRadiusShadow=5px&offsetLeftShadow=8px&offsetTopShadow=8px&thicknessShadow=10px&opacityShadow=20&bgImgOpacityShadow=75&bgTextureShadow=flat&bgColorShadow=ba9217&opacityOverlay=80&bgImgOpacityOverlay=85&bgTextureOverlay=white_lines&bgColorOverlay=f7f7ba&iconColorError=ffeb33&fcError=ffffff&borderColorError=ff6b7f&bgImgOpacityError=50&bgTextureError=diagonals_small&bgColorError=ff3853&iconColorHighlight=88a206&fcHighlight=363636&borderColorHighlight=b4d100&bgImgOpacityHighlight=80&bgTextureHighlight=dots_medium&bgColorHighlight=ffff38&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=ff6b7f&bgImgOpacityActive=40&bgTextureActive=diagonals_small&bgColorActive=db4865&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=diagonals_small&bgColorHover=ccd232&iconColorDefault=ffffff&fcDefault=333333&borderColorDefault=93c3cd&bgImgOpacityDefault=50&bgTextureDefault=diagonals_small&bgColorDefault=93c3cd&iconColorContent=c02669&fcContent=2c4359&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=e1e463&fcHeader=e1e463&borderColorHeader=2c4359&bgImgOpacityHeader=35&bgTextureHeader=dots_small&bgColorHeader=35414f&cornerRadius=4px&fsDefault=1.2em&fwDefault=bold&ffDefault=Gill%20Sans%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + -ms-filter: "alpha(opacity=0)"; /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} +.ui-selectable { + -ms-touch-action: none; + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: .5em .5em .5em .7em; + font-size: 100%; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px .4em; +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item-wrapper { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} +.ui-button { + padding: .4em 1em; + display: inline-block; + position: relative; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + /* Support: IE <= 11 */ + overflow: visible; +} + +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} + +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2em; + box-sizing: border-box; + text-indent: -9999px; + white-space: nowrap; +} + +/* no icon support for input elements */ +input.ui-button.ui-button-icon-only { + text-indent: 0; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon { + position: absolute; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; +} + +.ui-button.ui-icon-notext .ui-icon { + padding: 0; + width: 2.1em; + height: 2.1em; + text-indent: -9999px; + white-space: nowrap; + +} + +input.ui-button.ui-icon-notext .ui-icon { + width: auto; + height: auto; + text-indent: 0; + white-space: normal; + padding: .4em 1em; +} + +/* workarounds */ +/* Support: Firefox 5 - 40 */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-controlgroup { + vertical-align: middle; + display: inline-block; +} +.ui-controlgroup > .ui-controlgroup-item { + float: left; + margin-left: 0; + margin-right: 0; +} +.ui-controlgroup > .ui-controlgroup-item:focus, +.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { + z-index: 9999; +} +.ui-controlgroup-vertical > .ui-controlgroup-item { + display: block; + float: none; + width: 100%; + margin-top: 0; + margin-bottom: 0; + text-align: left; +} +.ui-controlgroup-vertical .ui-controlgroup-item { + box-sizing: border-box; +} +.ui-controlgroup .ui-controlgroup-label { + padding: .4em 1em; +} +.ui-controlgroup .ui-controlgroup-label span { + font-size: 80%; +} +.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { + border-left: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { + border-top: none; +} +.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { + border-right: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { + border-bottom: none; +} + +/* Spinner specific style fixes */ +.ui-controlgroup-vertical .ui-spinner-input { + + /* Support: IE8 only, Android < 4.4 only */ + width: 75%; + width: calc( 100% - 2.4em ); +} +.ui-controlgroup-vertical .ui-spinner .ui-spinner-up { + border-top-style: solid; +} + +.ui-checkboxradio-label .ui-icon-background { + box-shadow: inset 1px 1px 1px #ccc; + border-radius: .12em; + border: none; +} +.ui-checkboxradio-radio-label .ui-icon-background { + width: 16px; + height: 16px; + border-radius: 1em; + overflow: visible; + border: none; +} +.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon, +.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { + background-image: none; + width: 8px; + height: 8px; + border-width: 4px; + border-style: solid; +} +.ui-checkboxradio-disabled { + pointer-events: none; +} +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} + +/* Icons */ +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + left: .5em; + top: .3em; +} +.ui-dialog { + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-n { + height: 2px; + top: 0; +} +.ui-dialog .ui-resizable-e { + width: 2px; + right: 0; +} +.ui-dialog .ui-resizable-s { + height: 2px; + bottom: 0; +} +.ui-dialog .ui-resizable-w { + width: 2px; + left: 0; +} +.ui-dialog .ui-resizable-se, +.ui-dialog .ui-resizable-sw, +.ui-dialog .ui-resizable-ne, +.ui-dialog .ui-resizable-nw { + width: 7px; + height: 7px; +} +.ui-dialog .ui-resizable-se { + right: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-sw { + left: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-ne { + right: 0; + top: 0; +} +.ui-dialog .ui-resizable-nw { + left: 0; + top: 0; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("data:image/gif;base64,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"); + height: 100%; + -ms-filter: "alpha(opacity=25)"; /* support: IE8 */ + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-selectmenu-menu { + padding: 0; + margin: 0; + position: absolute; + top: 0; + left: 0; + display: none; +} +.ui-selectmenu-menu .ui-menu { + overflow: auto; + overflow-x: hidden; + padding-bottom: 1px; +} +.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { + font-size: 1em; + font-weight: bold; + line-height: 1.5; + padding: 2px 0.4em; + margin: 0.5em 0 0 0; + height: auto; + border: 0; +} +.ui-selectmenu-open { + display: block; +} +.ui-selectmenu-text { + display: block; + margin-right: 20px; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-selectmenu-button.ui-button { + text-align: left; + white-space: nowrap; + width: 14em; +} +.ui-selectmenu-icon.ui-icon { + float: right; + margin-top: 0; +} +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: pointer; + -ms-touch-action: none; + touch-action: none; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +/* support: IE8 - See #6727 */ +.ui-slider.ui-state-disabled .ui-slider-handle, +.ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; +} + +.ui-slider-horizontal { + height: .8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -.3em; + margin-left: -.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} + +.ui-slider-vertical { + width: .8em; + height: 100px; +} +.ui-slider-vertical .ui-slider-handle { + left: -.3em; + margin-left: 0; + margin-bottom: -.6em; +} +.ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; +} +.ui-slider-vertical .ui-slider-range-min { + bottom: 0; +} +.ui-slider-vertical .ui-slider-range-max { + top: 0; +} +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: .222em 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 2em; +} +.ui-spinner-button { + width: 1.6em; + height: 50%; + font-size: .5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +/* more specificity required here to override default borders */ +.ui-spinner a.ui-spinner-button { + border-top-style: none; + border-bottom-style: none; + border-right-style: none; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} +.ui-tabs { + position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ + padding: .2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: .2em .2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px .2em 0 0; + border-bottom-width: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav .ui-tabs-anchor { + float: left; + padding: .5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { + cursor: text; +} +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; +} +body .ui-tooltip { + border-width: 2px; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Gill Sans,Arial,sans-serif; + font-size: 1.2em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Gill Sans,Arial,sans-serif; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #93c3cd; +} +.ui-widget-content { + border: 1px solid #aaaaaa; + background: #ffffff; + color: #2c4359; +} +.ui-widget-content a { + color: #2c4359; +} +.ui-widget-header { + border: 1px solid #2c4359; + background: #35414f url("images/ui-bg_dots-small_35_35414f_2x2.png") 50% 50% repeat; + color: #e1e463; + font-weight: bold; +} +.ui-widget-header a { + color: #e1e463; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #93c3cd; + background: #93c3cd url("images/ui-bg_diagonals-small_50_93c3cd_40x40.png") 50% 50% repeat; + font-weight: bold; + color: #333333; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #333333; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #999999; + background: #ccd232 url("images/ui-bg_diagonals-small_75_ccd232_40x40.png") 50% 50% repeat; + font-weight: bold; + color: #212121; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #212121; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #ff6b7f; + background: #db4865 url("images/ui-bg_diagonals-small_40_db4865_40x40.png") 50% 50% repeat; + font-weight: bold; + color: #ffffff; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #ff6b7f; + background-color: #ffffff; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #b4d100; + background: #ffff38 url("images/ui-bg_dots-medium_80_ffff38_4x4.png") 50% 50% repeat; + color: #363636; +} +.ui-state-checked { + border: 1px solid #b4d100; + background: #ffff38; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #363636; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #ff6b7f; + background: #ff3853 url("images/ui-bg_diagonals-small_50_ff3853_40x40.png") 50% 50% repeat; + color: #ffffff; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #ffffff; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #ffffff; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + -ms-filter: "alpha(opacity=70)"; /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + -ms-filter: "alpha(opacity=35)"; /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + -ms-filter: "alpha(opacity=35)"; /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_c02669_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_e1e463_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("images/ui-icons_454545_256x240.png"); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url("images/ui-icons_88a206_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_ffeb33_256x240.png"); +} +.ui-button .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} + +/* positioning */ +/* Three classes needed to override `.ui-button:hover .ui-icon` */ +.ui-icon-blank.ui-icon-blank.ui-icon-blank { + background-image: none; +} +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -65px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -65px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 1px -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 4px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #f7f7ba url("images/ui-bg_white-lines_85_f7f7ba_40x100.png") 50% 50% repeat; + opacity: .8; + -ms-filter: Alpha(Opacity=80); /* support: IE8 */ +} +.ui-widget-shadow { + -webkit-box-shadow: 8px 8px 10px #ba9217; + box-shadow: 8px 8px 10px #ba9217; +} diff --git a/updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.js b/updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.js new file mode 100644 index 0000000..4ff6a3c --- /dev/null +++ b/updatefiles/accessibility/jquery-ui-1.13.2/jquery-ui.js @@ -0,0 +1,19062 @@ +/*! jQuery UI - v1.13.2 - 2022-08-03 +* http://jqueryui.com +* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/draggable.js, widgets/droppable.js, widgets/resizable.js, widgets/selectable.js, widgets/sortable.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/selectmenu.js, widgets/slider.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +( function( factory ) { + "use strict"; + + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} )( function( $ ) { +"use strict"; + +$.ui = $.ui || {}; + +var version = $.ui.version = "1.13.2"; + + +/*! + * jQuery UI Widget 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Widget +//>>group: Core +//>>description: Provides a factory for creating stateful widgets with a common API. +//>>docs: http://api.jqueryui.com/jQuery.widget/ +//>>demos: http://jqueryui.com/widget/ + + +var widgetUuid = 0; +var widgetHasOwnProperty = Array.prototype.hasOwnProperty; +var widgetSlice = Array.prototype.slice; + +$.cleanData = ( function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + } + orig( elems ); + }; +} )( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var existingConstructor, constructor, basePrototype; + + // ProxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + var proxiedPrototype = {}; + + var namespace = name.split( "." )[ 0 ]; + name = name.split( "." )[ 1 ]; + var fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + if ( Array.isArray( prototype ) ) { + prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); + } + + // Create selector for plugin + $.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + + // Allow instantiation without "new" keyword + if ( !this || !this._createWidget ) { + return new constructor( options, element ); + } + + // Allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + // Extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + + // Copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + + // Track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + } ); + + basePrototype = new base(); + + // We need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( typeof value !== "function" ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = ( function() { + function _super() { + return base.prototype[ prop ].apply( this, arguments ); + } + + function _superApply( args ) { + return base.prototype[ prop ].apply( this, args ); + } + + return function() { + var __super = this._super; + var __superApply = this._superApply; + var returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + } )(); + } ); + constructor.prototype = $.widget.extend( basePrototype, { + + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + } ); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // Redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, + child._proto ); + } ); + + // Remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widgetSlice.call( arguments, 1 ); + var inputIndex = 0; + var inputLength = input.length; + var key; + var value; + + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) { + + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string"; + var args = widgetSlice.call( arguments, 1 ); + var returnValue = this; + + if ( isMethodCall ) { + + // If this is an empty collection, we need to have the instance method + // return undefined instead of the jQuery instance + if ( !this.length && options === "instance" ) { + returnValue = undefined; + } else { + this.each( function() { + var methodValue; + var instance = $.data( this, fullName ); + + if ( options === "instance" ) { + returnValue = instance; + return false; + } + + if ( !instance ) { + return $.error( "cannot call methods on " + name + + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + + if ( typeof instance[ options ] !== "function" || + options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + + " widget instance" ); + } + + methodValue = instance[ options ].apply( instance, args ); + + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + } ); + } + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat( args ) ); + } + + this.each( function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + } ); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
    ", + + options: { + classes: {}, + disabled: false, + + // Callbacks + create: null + }, + + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widgetUuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + this.classesElementLookup = {}; + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + } ); + this.document = $( element.style ? + + // Element within the document + element.ownerDocument : + + // Element is window or document + element.document || element ); + this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + + if ( this.options.disabled ) { + this._setOptionDisabled( this.options.disabled ); + } + + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + + _getCreateOptions: function() { + return {}; + }, + + _getCreateEventData: $.noop, + + _create: $.noop, + + _init: $.noop, + + destroy: function() { + var that = this; + + this._destroy(); + $.each( this.classesElementLookup, function( key, value ) { + that._removeClass( value, key ); + } ); + + // We can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .off( this.eventNamespace ) + .removeData( this.widgetFullName ); + this.widget() + .off( this.eventNamespace ) + .removeAttr( "aria-disabled" ); + + // Clean up events and states + this.bindings.off( this.eventNamespace ); + }, + + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + var parts; + var curOption; + var i; + + if ( arguments.length === 0 ) { + + // Don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + + // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + + _setOption: function( key, value ) { + if ( key === "classes" ) { + this._setOptionClasses( value ); + } + + this.options[ key ] = value; + + if ( key === "disabled" ) { + this._setOptionDisabled( value ); + } + + return this; + }, + + _setOptionClasses: function( value ) { + var classKey, elements, currentElements; + + for ( classKey in value ) { + currentElements = this.classesElementLookup[ classKey ]; + if ( value[ classKey ] === this.options.classes[ classKey ] || + !currentElements || + !currentElements.length ) { + continue; + } + + // We are doing this to create a new jQuery object because the _removeClass() call + // on the next line is going to destroy the reference to the current elements being + // tracked. We need to save a copy of this collection so that we can add the new classes + // below. + elements = $( currentElements.get() ); + this._removeClass( currentElements, classKey ); + + // We don't use _addClass() here, because that uses this.options.classes + // for generating the string of classes. We want to use the value passed in from + // _setOption(), this is the new value of the classes option which was passed to + // _setOption(). We pass this value directly to _classes(). + elements.addClass( this._classes( { + element: elements, + keys: classKey, + classes: value, + add: true + } ) ); + } + }, + + _setOptionDisabled: function( value ) { + this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this._removeClass( this.hoverable, null, "ui-state-hover" ); + this._removeClass( this.focusable, null, "ui-state-focus" ); + } + }, + + enable: function() { + return this._setOptions( { disabled: false } ); + }, + + disable: function() { + return this._setOptions( { disabled: true } ); + }, + + _classes: function( options ) { + var full = []; + var that = this; + + options = $.extend( { + element: this.element, + classes: this.options.classes || {} + }, options ); + + function bindRemoveEvent() { + var nodesToBind = []; + + options.element.each( function( _, element ) { + var isTracked = $.map( that.classesElementLookup, function( elements ) { + return elements; + } ) + .some( function( elements ) { + return elements.is( element ); + } ); + + if ( !isTracked ) { + nodesToBind.push( element ); + } + } ); + + that._on( $( nodesToBind ), { + remove: "_untrackClassesElement" + } ); + } + + function processClassString( classes, checkOption ) { + var current, i; + for ( i = 0; i < classes.length; i++ ) { + current = that.classesElementLookup[ classes[ i ] ] || $(); + if ( options.add ) { + bindRemoveEvent(); + current = $( $.uniqueSort( current.get().concat( options.element.get() ) ) ); + } else { + current = $( current.not( options.element ).get() ); + } + that.classesElementLookup[ classes[ i ] ] = current; + full.push( classes[ i ] ); + if ( checkOption && options.classes[ classes[ i ] ] ) { + full.push( options.classes[ classes[ i ] ] ); + } + } + } + + if ( options.keys ) { + processClassString( options.keys.match( /\S+/g ) || [], true ); + } + if ( options.extra ) { + processClassString( options.extra.match( /\S+/g ) || [] ); + } + + return full.join( " " ); + }, + + _untrackClassesElement: function( event ) { + var that = this; + $.each( that.classesElementLookup, function( key, value ) { + if ( $.inArray( event.target, value ) !== -1 ) { + that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); + } + } ); + + this._off( $( event.target ) ); + }, + + _removeClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, false ); + }, + + _addClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, true ); + }, + + _toggleClass: function( element, keys, extra, add ) { + add = ( typeof add === "boolean" ) ? add : extra; + var shift = ( typeof element === "string" || element === null ), + options = { + extra: shift ? keys : extra, + keys: shift ? element : keys, + element: shift ? this.element : element, + add: add + }; + options.element.toggleClass( this._classes( options ), add ); + return this; + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement; + var instance = this; + + // No suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // No element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + + // Allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // Copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ); + var eventName = match[ 1 ] + instance.eventNamespace; + var selector = match[ 2 ]; + + if ( selector ) { + delegateElement.on( eventName, selector, handlerProxy ); + } else { + element.on( eventName, handlerProxy ); + } + } ); + }, + + _off: function( element, eventName ) { + eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.off( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-hover" ); + }, + mouseleave: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-hover" ); + } + } ); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-focus" ); + }, + focusout: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-focus" ); + } + } ); + }, + + _trigger: function( type, event, data ) { + var prop, orig; + var callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + + // The original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // Copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( typeof callback === "function" && + callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + + var hasOptions; + var effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } else if ( options === true ) { + options = {}; + } + + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + + if ( options.delay ) { + element.delay( options.delay ); + } + + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue( function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + } ); + } + }; +} ); + +var widget = $.widget; + + +/*! + * jQuery UI Position 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ + +//>>label: Position +//>>group: Core +//>>description: Positions elements relative to other elements. +//>>docs: http://api.jqueryui.com/position/ +//>>demos: http://jqueryui.com/position/ + + +( function() { +var cachedScrollbarWidth, + max = Math.max, + abs = Math.abs, + rhorizontal = /left|center|right/, + rvertical = /top|center|bottom/, + roffset = /[\+\-]\d+(\.[\d]+)?%?/, + rposition = /^\w+/, + rpercent = /%$/, + _position = $.fn.position; + +function getOffsets( offsets, width, height ) { + return [ + parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), + parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) + ]; +} + +function parseCss( element, property ) { + return parseInt( $.css( element, property ), 10 ) || 0; +} + +function isWindow( obj ) { + return obj != null && obj === obj.window; +} + +function getDimensions( elem ) { + var raw = elem[ 0 ]; + if ( raw.nodeType === 9 ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: 0, left: 0 } + }; + } + if ( isWindow( raw ) ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: elem.scrollTop(), left: elem.scrollLeft() } + }; + } + if ( raw.preventDefault ) { + return { + width: 0, + height: 0, + offset: { top: raw.pageY, left: raw.pageX } + }; + } + return { + width: elem.outerWidth(), + height: elem.outerHeight(), + offset: elem.offset() + }; +} + +$.position = { + scrollbarWidth: function() { + if ( cachedScrollbarWidth !== undefined ) { + return cachedScrollbarWidth; + } + var w1, w2, + div = $( "
    " + + "
    " ), + innerDiv = div.children()[ 0 ]; + + $( "body" ).append( div ); + w1 = innerDiv.offsetWidth; + div.css( "overflow", "scroll" ); + + w2 = innerDiv.offsetWidth; + + if ( w1 === w2 ) { + w2 = div[ 0 ].clientWidth; + } + + div.remove(); + + return ( cachedScrollbarWidth = w1 - w2 ); + }, + getScrollInfo: function( within ) { + var overflowX = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-x" ), + overflowY = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-y" ), + hasOverflowX = overflowX === "scroll" || + ( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ), + hasOverflowY = overflowY === "scroll" || + ( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight ); + return { + width: hasOverflowY ? $.position.scrollbarWidth() : 0, + height: hasOverflowX ? $.position.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function( element ) { + var withinElement = $( element || window ), + isElemWindow = isWindow( withinElement[ 0 ] ), + isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9, + hasOffset = !isElemWindow && !isDocument; + return { + element: withinElement, + isWindow: isElemWindow, + isDocument: isDocument, + offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 }, + scrollLeft: withinElement.scrollLeft(), + scrollTop: withinElement.scrollTop(), + width: withinElement.outerWidth(), + height: withinElement.outerHeight() + }; + } +}; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // Make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, + + // Make sure string options are treated as CSS selectors + target = typeof options.of === "string" ? + $( document ).find( options.of ) : + $( options.of ), + + within = $.position.getWithinInfo( options.within ), + scrollInfo = $.position.getScrollInfo( within ), + collision = ( options.collision || "flip" ).split( " " ), + offsets = {}; + + dimensions = getDimensions( target ); + if ( target[ 0 ].preventDefault ) { + + // Force left top to allow flipping + options.at = "left top"; + } + targetWidth = dimensions.width; + targetHeight = dimensions.height; + targetOffset = dimensions.offset; + + // Clone to reuse original targetOffset later + basePosition = $.extend( {}, targetOffset ); + + // Force my and at to have valid horizontal and vertical positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[ this ] || "" ).split( " " ), + horizontalOffset, + verticalOffset; + + if ( pos.length === 1 ) { + pos = rhorizontal.test( pos[ 0 ] ) ? + pos.concat( [ "center" ] ) : + rvertical.test( pos[ 0 ] ) ? + [ "center" ].concat( pos ) : + [ "center", "center" ]; + } + pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; + pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; + + // Calculate offsets + horizontalOffset = roffset.exec( pos[ 0 ] ); + verticalOffset = roffset.exec( pos[ 1 ] ); + offsets[ this ] = [ + horizontalOffset ? horizontalOffset[ 0 ] : 0, + verticalOffset ? verticalOffset[ 0 ] : 0 + ]; + + // Reduce to just the positions without the offsets + options[ this ] = [ + rposition.exec( pos[ 0 ] )[ 0 ], + rposition.exec( pos[ 1 ] )[ 0 ] + ]; + } ); + + // Normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + if ( options.at[ 0 ] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[ 0 ] === "center" ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[ 1 ] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[ 1 ] === "center" ) { + basePosition.top += targetHeight / 2; + } + + atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); + basePosition.left += atOffset[ 0 ]; + basePosition.top += atOffset[ 1 ]; + + return this.each( function() { + var collisionPosition, using, + elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseCss( this, "marginLeft" ), + marginTop = parseCss( this, "marginTop" ), + collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + + scrollInfo.height, + position = $.extend( {}, basePosition ), + myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); + + if ( options.my[ 0 ] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[ 0 ] === "center" ) { + position.left -= elemWidth / 2; + } + + if ( options.my[ 1 ] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[ 1 ] === "center" ) { + position.top -= elemHeight / 2; + } + + position.left += myOffset[ 0 ]; + position.top += myOffset[ 1 ]; + + collisionPosition = { + marginLeft: marginLeft, + marginTop: marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[ i ] ] ) { + $.ui.position[ collision[ i ] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], + my: options.my, + at: options.at, + within: within, + elem: elem + } ); + } + } ); + + if ( options.using ) { + + // Adds feedback as second argument to using callback, if present + using = function( props ) { + var left = targetOffset.left - position.left, + right = left + targetWidth - elemWidth, + top = targetOffset.top - position.top, + bottom = top + targetHeight - elemHeight, + feedback = { + target: { + element: target, + left: targetOffset.left, + top: targetOffset.top, + width: targetWidth, + height: targetHeight + }, + element: { + element: elem, + left: position.left, + top: position.top, + width: elemWidth, + height: elemHeight + }, + horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", + vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" + }; + if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { + feedback.horizontal = "center"; + } + if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { + feedback.vertical = "middle"; + } + if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { + feedback.important = "horizontal"; + } else { + feedback.important = "vertical"; + } + options.using.call( this, props, feedback ); + }; + } + + elem.offset( $.extend( position, { using: using } ) ); + } ); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, + outerWidth = within.width, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = withinOffset - collisionPosLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, + newOverRight; + + // Element is wider than within + if ( data.collisionWidth > outerWidth ) { + + // Element is initially over the left side of within + if ( overLeft > 0 && overRight <= 0 ) { + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - + withinOffset; + position.left += overLeft - newOverRight; + + // Element is initially over right side of within + } else if ( overRight > 0 && overLeft <= 0 ) { + position.left = withinOffset; + + // Element is initially over both left and right sides of within + } else { + if ( overLeft > overRight ) { + position.left = withinOffset + outerWidth - data.collisionWidth; + } else { + position.left = withinOffset; + } + } + + // Too far left -> align with left edge + } else if ( overLeft > 0 ) { + position.left += overLeft; + + // Too far right -> align with right edge + } else if ( overRight > 0 ) { + position.left -= overRight; + + // Adjust based on position and margin + } else { + position.left = max( position.left - collisionPosLeft, position.left ); + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollTop : within.offset.top, + outerHeight = data.within.height, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = withinOffset - collisionPosTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, + newOverBottom; + + // Element is taller than within + if ( data.collisionHeight > outerHeight ) { + + // Element is initially over the top of within + if ( overTop > 0 && overBottom <= 0 ) { + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - + withinOffset; + position.top += overTop - newOverBottom; + + // Element is initially over bottom of within + } else if ( overBottom > 0 && overTop <= 0 ) { + position.top = withinOffset; + + // Element is initially over both top and bottom of within + } else { + if ( overTop > overBottom ) { + position.top = withinOffset + outerHeight - data.collisionHeight; + } else { + position.top = withinOffset; + } + } + + // Too far up -> align with top + } else if ( overTop > 0 ) { + position.top += overTop; + + // Too far down -> align with bottom edge + } else if ( overBottom > 0 ) { + position.top -= overBottom; + + // Adjust based on position and margin + } else { + position.top = max( position.top - collisionPosTop, position.top ); + } + } + }, + flip: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.offset.left + within.scrollLeft, + outerWidth = within.width, + offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = collisionPosLeft - offsetLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + data.at[ 0 ] === "right" ? + -data.targetWidth : + 0, + offset = -2 * data.offset[ 0 ], + newOverRight, + newOverLeft; + + if ( overLeft < 0 ) { + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - + outerWidth - withinOffset; + if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { + position.left += myOffset + atOffset + offset; + } + } else if ( overRight > 0 ) { + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + + atOffset + offset - offsetLeft; + if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { + position.left += myOffset + atOffset + offset; + } + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.offset.top + within.scrollTop, + outerHeight = within.height, + offsetTop = within.isWindow ? within.scrollTop : within.offset.top, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = collisionPosTop - offsetTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, + top = data.my[ 1 ] === "top", + myOffset = top ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + data.at[ 1 ] === "bottom" ? + -data.targetHeight : + 0, + offset = -2 * data.offset[ 1 ], + newOverTop, + newOverBottom; + if ( overTop < 0 ) { + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - + outerHeight - withinOffset; + if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { + position.top += myOffset + atOffset + offset; + } + } else if ( overBottom > 0 ) { + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + + offset - offsetTop; + if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { + position.top += myOffset + atOffset + offset; + } + } + } + }, + flipfit: { + left: function() { + $.ui.position.flip.left.apply( this, arguments ); + $.ui.position.fit.left.apply( this, arguments ); + }, + top: function() { + $.ui.position.flip.top.apply( this, arguments ); + $.ui.position.fit.top.apply( this, arguments ); + } + } +}; + +} )(); + +var position = $.ui.position; + + +/*! + * jQuery UI :data 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: :data Selector +//>>group: Core +//>>description: Selects elements which have data stored under the specified key. +//>>docs: http://api.jqueryui.com/data-selector/ + + +var data = $.extend( $.expr.pseudos, { + data: $.expr.createPseudo ? + $.expr.createPseudo( function( dataName ) { + return function( elem ) { + return !!$.data( elem, dataName ); + }; + } ) : + + // Support: jQuery <1.8 + function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + } +} ); + +/*! + * jQuery UI Disable Selection 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: disableSelection +//>>group: Core +//>>description: Disable selection of text content within the set of matched elements. +//>>docs: http://api.jqueryui.com/disableSelection/ + +// This file is deprecated + +var disableSelection = $.fn.extend( { + disableSelection: ( function() { + var eventType = "onselectstart" in document.createElement( "div" ) ? + "selectstart" : + "mousedown"; + + return function() { + return this.on( eventType + ".ui-disableSelection", function( event ) { + event.preventDefault(); + } ); + }; + } )(), + + enableSelection: function() { + return this.off( ".ui-disableSelection" ); + } +} ); + + +/*! + * jQuery UI Focusable 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: :focusable Selector +//>>group: Core +//>>description: Selects elements which can be focused. +//>>docs: http://api.jqueryui.com/focusable-selector/ + + +// Selectors +$.ui.focusable = function( element, hasTabindex ) { + var map, mapName, img, focusableIfVisible, fieldset, + nodeName = element.nodeName.toLowerCase(); + + if ( "area" === nodeName ) { + map = element.parentNode; + mapName = map.name; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap='#" + mapName + "']" ); + return img.length > 0 && img.is( ":visible" ); + } + + if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) { + focusableIfVisible = !element.disabled; + + if ( focusableIfVisible ) { + + // Form controls within a disabled fieldset are disabled. + // However, controls within the fieldset's legend do not get disabled. + // Since controls generally aren't placed inside legends, we skip + // this portion of the check. + fieldset = $( element ).closest( "fieldset" )[ 0 ]; + if ( fieldset ) { + focusableIfVisible = !fieldset.disabled; + } + } + } else if ( "a" === nodeName ) { + focusableIfVisible = element.href || hasTabindex; + } else { + focusableIfVisible = hasTabindex; + } + + return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) ); +}; + +// Support: IE 8 only +// IE 8 doesn't resolve inherit to visible/hidden for computed values +function visible( element ) { + var visibility = element.css( "visibility" ); + while ( visibility === "inherit" ) { + element = element.parent(); + visibility = element.css( "visibility" ); + } + return visibility === "visible"; +} + +$.extend( $.expr.pseudos, { + focusable: function( element ) { + return $.ui.focusable( element, $.attr( element, "tabindex" ) != null ); + } +} ); + +var focusable = $.ui.focusable; + + + +// Support: IE8 Only +// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop +// with a string, so we need to find the proper form. +var form = $.fn._form = function() { + return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form ); +}; + + +/*! + * jQuery UI Form Reset Mixin 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Form Reset Mixin +//>>group: Core +//>>description: Refresh input widgets when their form is reset +//>>docs: http://api.jqueryui.com/form-reset-mixin/ + + +var formResetMixin = $.ui.formResetMixin = { + _formResetHandler: function() { + var form = $( this ); + + // Wait for the form reset to actually happen before refreshing + setTimeout( function() { + var instances = form.data( "ui-form-reset-instances" ); + $.each( instances, function() { + this.refresh(); + } ); + } ); + }, + + _bindFormResetHandler: function() { + this.form = this.element._form(); + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ) || []; + if ( !instances.length ) { + + // We don't use _on() here because we use a single event handler per form + this.form.on( "reset.ui-form-reset", this._formResetHandler ); + } + instances.push( this ); + this.form.data( "ui-form-reset-instances", instances ); + }, + + _unbindFormResetHandler: function() { + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ); + instances.splice( $.inArray( this, instances ), 1 ); + if ( instances.length ) { + this.form.data( "ui-form-reset-instances", instances ); + } else { + this.form + .removeData( "ui-form-reset-instances" ) + .off( "reset.ui-form-reset" ); + } + } +}; + + +/*! + * jQuery UI Support for jQuery core 1.8.x and newer 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + */ + +//>>label: jQuery 1.8+ Support +//>>group: Core +//>>description: Support version 1.8.x and newer of jQuery core + + +// Support: jQuery 1.9.x or older +// $.expr[ ":" ] is deprecated. +if ( !$.expr.pseudos ) { + $.expr.pseudos = $.expr[ ":" ]; +} + +// Support: jQuery 1.11.x or older +// $.unique has been renamed to $.uniqueSort +if ( !$.uniqueSort ) { + $.uniqueSort = $.unique; +} + +// Support: jQuery 2.2.x or older. +// This method has been defined in jQuery 3.0.0. +// Code from https://github.com/jquery/jquery/blob/e539bac79e666bba95bba86d690b4e609dca2286/src/selector/escapeSelector.js +if ( !$.escapeSelector ) { + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; + + var fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }; + + $.escapeSelector = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); + }; +} + +// Support: jQuery 3.4.x or older +// These methods have been defined in jQuery 3.5.0. +if ( !$.fn.even || !$.fn.odd ) { + $.fn.extend( { + even: function() { + return this.filter( function( i ) { + return i % 2 === 0; + } ); + }, + odd: function() { + return this.filter( function( i ) { + return i % 2 === 1; + } ); + } + } ); +} + +; +/*! + * jQuery UI Keycode 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Keycode +//>>group: Core +//>>description: Provide keycodes as keynames +//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/ + + +var keycode = $.ui.keyCode = { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38 +}; + + +/*! + * jQuery UI Labels 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: labels +//>>group: Core +//>>description: Find all the labels associated with a given input +//>>docs: http://api.jqueryui.com/labels/ + + +var labels = $.fn.labels = function() { + var ancestor, selector, id, labels, ancestors; + + if ( !this.length ) { + return this.pushStack( [] ); + } + + // Check control.labels first + if ( this[ 0 ].labels && this[ 0 ].labels.length ) { + return this.pushStack( this[ 0 ].labels ); + } + + // Support: IE <= 11, FF <= 37, Android <= 2.3 only + // Above browsers do not support control.labels. Everything below is to support them + // as well as document fragments. control.labels does not work on document fragments + labels = this.eq( 0 ).parents( "label" ); + + // Look for the label based on the id + id = this.attr( "id" ); + if ( id ) { + + // We don't search against the document in case the element + // is disconnected from the DOM + ancestor = this.eq( 0 ).parents().last(); + + // Get a full set of top level ancestors + ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() ); + + // Create a selector for the label based on the id + selector = "label[for='" + $.escapeSelector( id ) + "']"; + + labels = labels.add( ancestors.find( selector ).addBack( selector ) ); + + } + + // Return whatever we have found for labels + return this.pushStack( labels ); +}; + + +/*! + * jQuery UI Scroll Parent 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: scrollParent +//>>group: Core +//>>description: Get the closest ancestor element that is scrollable. +//>>docs: http://api.jqueryui.com/scrollParent/ + + +var scrollParent = $.fn.scrollParent = function( includeHidden ) { + var position = this.css( "position" ), + excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, + scrollParent = this.parents().filter( function() { + var parent = $( this ); + if ( excludeStaticParent && parent.css( "position" ) === "static" ) { + return false; + } + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + + parent.css( "overflow-x" ) ); + } ).eq( 0 ); + + return position === "fixed" || !scrollParent.length ? + $( this[ 0 ].ownerDocument || document ) : + scrollParent; +}; + + +/*! + * jQuery UI Tabbable 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: :tabbable Selector +//>>group: Core +//>>description: Selects elements which can be tabbed to. +//>>docs: http://api.jqueryui.com/tabbable-selector/ + + +var tabbable = $.extend( $.expr.pseudos, { + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ), + hasTabindex = tabIndex != null; + return ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex ); + } +} ); + + +/*! + * jQuery UI Unique ID 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: uniqueId +//>>group: Core +//>>description: Functions to generate and remove uniqueId's +//>>docs: http://api.jqueryui.com/uniqueId/ + + +var uniqueId = $.fn.extend( { + uniqueId: ( function() { + var uuid = 0; + + return function() { + return this.each( function() { + if ( !this.id ) { + this.id = "ui-id-" + ( ++uuid ); + } + } ); + }; + } )(), + + removeUniqueId: function() { + return this.each( function() { + if ( /^ui-id-\d+$/.test( this.id ) ) { + $( this ).removeAttr( "id" ); + } + } ); + } +} ); + + + +// This file is deprecated +var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); + +/*! + * jQuery UI Mouse 1.13.2 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Mouse +//>>group: Widgets +//>>description: Abstracts mouse-based interactions to assist in creating certain widgets. +//>>docs: http://api.jqueryui.com/mouse/ + + +var mouseHandled = false; +$( document ).on( "mouseup", function() { + mouseHandled = false; +} ); + +var widgetsMouse = $.widget( "ui.mouse", { + version: "1.13.2", + options: { + cancel: "input, textarea, button, select, option", + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var that = this; + + this.element + .on( "mousedown." + this.widgetName, function( event ) { + return that._mouseDown( event ); + } ) + .on( "click." + this.widgetName, function( event ) { + if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) { + $.removeData( event.target, that.widgetName + ".preventClickEvent" ); + event.stopImmediatePropagation(); + return false; + } + } ); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.off( "." + this.widgetName ); + if ( this._mouseMoveDelegate ) { + this.document + .off( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .off( "mouseup." + this.widgetName, this._mouseUpDelegate ); + } + }, + + _mouseDown: function( event ) { + + // don't let more than one widget handle mouseStart + if ( mouseHandled ) { + return; + } + + this._mouseMoved = false; + + // We may have missed mouseup (out of window) + if ( this._mouseStarted ) { + this._mouseUp( event ); + } + + this._mouseDownEvent = event; + + var that = this, + btnIsLeft = ( event.which === 1 ), + + // event.target.nodeName works around a bug in IE 8 with + // disabled inputs (#7620) + elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ? + $( event.target ).closest( this.options.cancel ).length : false ); + if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if ( !this.mouseDelayMet ) { + this._mouseDelayTimer = setTimeout( function() { + that.mouseDelayMet = true; + }, this.options.delay ); + } + + if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) { + this._mouseStarted = ( this._mouseStart( event ) !== false ); + if ( !this._mouseStarted ) { + event.preventDefault(); + return true; + } + } + + // Click event may never have fired (Gecko & Opera) + if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) { + $.removeData( event.target, this.widgetName + ".preventClickEvent" ); + } + + // These delegates are required to keep context + this._mouseMoveDelegate = function( event ) { + return that._mouseMove( event ); + }; + this._mouseUpDelegate = function( event ) { + return that._mouseUp( event ); + }; + + this.document + .on( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .on( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + event.preventDefault(); + + mouseHandled = true; + return true; + }, + + _mouseMove: function( event ) { + + // Only check for mouseups outside the document if you've moved inside the document + // at least once. This prevents the firing of mouseup in the case of IE<9, which will + // fire a mousemove event if content is placed under the cursor. See #7778 + // Support: IE <9 + if ( this._mouseMoved ) { + + // IE mouseup check - mouseup happened when mouse was out of window + if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && + !event.button ) { + return this._mouseUp( event ); + + // Iframe mouseup check - mouseup occurred in another document + } else if ( !event.which ) { + + // Support: Safari <=8 - 9 + // Safari sets which to 0 if you press any of the following keys + // during a drag (#14461) + if ( event.originalEvent.altKey || event.originalEvent.ctrlKey || + event.originalEvent.metaKey || event.originalEvent.shiftKey ) { + this.ignoreMissingWhich = true; + } else if ( !this.ignoreMissingWhich ) { + return this._mouseUp( event ); + } + } + } + + if ( event.which || event.button ) { + this._mouseMoved = true; + } + + if ( this._mouseStarted ) { + this._mouseDrag( event ); + return event.preventDefault(); + } + + if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) { + this._mouseStarted = + ( this._mouseStart( this._mouseDownEvent, event ) !== false ); + if ( this._mouseStarted ) { + this._mouseDrag( event ); + } else { + this._mouseUp( event ); + } + } + + return !this._mouseStarted; + }, + + _mouseUp: function( event ) { + this.document + .off( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .off( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + if ( this._mouseStarted ) { + this._mouseStarted = false; + + if ( event.target === this._mouseDownEvent.target ) { + $.data( event.target, this.widgetName + ".preventClickEvent", true ); + } + + this._mouseStop( event ); + } + + if ( this._mouseDelayTimer ) { + clearTimeout( this._mouseDelayTimer ); + delete this._mouseDelayTimer; + } + + this.ignoreMissingWhich = false; + mouseHandled = false; + event.preventDefault(); + }, + + _mouseDistanceMet: function( event ) { + return ( Math.max( + Math.abs( this._mouseDownEvent.pageX - event.pageX ), + Math.abs( this._mouseDownEvent.pageY - event.pageY ) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function( /* event */ ) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function( /* event */ ) {}, + _mouseDrag: function( /* event */ ) {}, + _mouseStop: function( /* event */ ) {}, + _mouseCapture: function( /* event */ ) { + return true; + } +} ); + + + +// $.ui.plugin is deprecated. Use $.widget() extensions instead. +var plugin = $.ui.plugin = { + add: function( module, option, set ) { + var i, + proto = $.ui[ module ].prototype; + for ( i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args, allowDisconnected ) { + var i, + set = instance.plugins[ name ]; + + if ( !set ) { + return; + } + + if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || + instance.element[ 0 ].parentNode.nodeType === 11 ) ) { + return; + } + + for ( i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } +}; + + + +var safeActiveElement = $.ui.safeActiveElement = function( document ) { + var activeElement; + + // Support: IE 9 only + // IE9 throws an "Unspecified error" accessing document.activeElement from an