From 450342737ced8ef2864b4f83a4107a7fafcc4add Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20SAUVAGE?= Date: Tue, 26 Feb 2013 10:09:41 +0100 Subject: [PATCH] Initial commit (version 0.0.40 beta) --- COPYING | 21 + images/50pc_transparent.png | Bin 0 -> 599 bytes .../Paper_texture_v5_by_bashcorpo_w1000.jpg | Bin 0 -> 127449 bytes images/calendar.png | Bin 0 -> 675 bytes images/delete_icon.png | Bin 0 -> 150 bytes images/edit_icon.png | Bin 0 -> 394 bytes images/favicon.ico | Bin 0 -> 76949 bytes images/feed-icon-14x14.png | Bin 0 -> 689 bytes images/floral_left.png | Bin 0 -> 2468 bytes images/floral_right.png | Bin 0 -> 2447 bytes images/logo.png | Bin 0 -> 6253 bytes images/private.png | Bin 0 -> 650 bytes images/private_16x16.png | Bin 0 -> 439 bytes images/private_16x16_active.png | Bin 0 -> 475 bytes images/qrcode.png | Bin 0 -> 218 bytes images/squiggle.png | Bin 0 -> 950 bytes images/squiggle2.png | Bin 0 -> 898 bytes images/squiggle_closing.png | Bin 0 -> 2878 bytes images/tag_blue.png | Bin 0 -> 586 bytes inc/jquery-MIT-LICENSE.txt | 20 + inc/jquery-ui.min.js | 15 + inc/jquery.lazyload.min.js | 15 + inc/jquery.min.js | 4 + inc/rain.tpl.class.php | 1037 ++++++++ inc/shaarli.css | 449 ++++ index.php | 2321 +++++++++++++++++ tpl/addlink.html | 16 + tpl/changepassword.html | 15 + tpl/changetag.html | 16 + tpl/configure.html | 21 + tpl/daily.html | 63 + tpl/dailyrss.html | 8 + tpl/editlink.html | 28 + tpl/export.html | 15 + tpl/import.html | 21 + tpl/includes.html | 10 + tpl/install.html | 21 + tpl/linklist.html | 76 + tpl/linklist.paging.html | 20 + tpl/loginform.html | 26 + tpl/page.footer.html | 20 + tpl/page.header.html | 26 + tpl/page.html | 9 + tpl/picwall.html | 24 + tpl/picwall2.html | 19 + tpl/readme.txt | 42 + tpl/tagcloud.html | 15 + tpl/tools.html | 19 + 48 files changed, 4412 insertions(+) create mode 100644 COPYING create mode 100644 images/50pc_transparent.png create mode 100644 images/Paper_texture_v5_by_bashcorpo_w1000.jpg create mode 100644 images/calendar.png create mode 100644 images/delete_icon.png create mode 100644 images/edit_icon.png create mode 100644 images/favicon.ico create mode 100644 images/feed-icon-14x14.png create mode 100644 images/floral_left.png create mode 100644 images/floral_right.png create mode 100644 images/logo.png create mode 100644 images/private.png create mode 100644 images/private_16x16.png create mode 100644 images/private_16x16_active.png create mode 100644 images/qrcode.png create mode 100644 images/squiggle.png create mode 100644 images/squiggle2.png create mode 100644 images/squiggle_closing.png create mode 100644 images/tag_blue.png create mode 100644 inc/jquery-MIT-LICENSE.txt create mode 100644 inc/jquery-ui.min.js create mode 100644 inc/jquery.lazyload.min.js create mode 100644 inc/jquery.min.js create mode 100644 inc/rain.tpl.class.php create mode 100644 inc/shaarli.css create mode 100644 index.php create mode 100644 tpl/addlink.html create mode 100644 tpl/changepassword.html create mode 100644 tpl/changetag.html create mode 100644 tpl/configure.html create mode 100644 tpl/daily.html create mode 100644 tpl/dailyrss.html create mode 100644 tpl/editlink.html create mode 100644 tpl/export.html create mode 100644 tpl/import.html create mode 100644 tpl/includes.html create mode 100644 tpl/install.html create mode 100644 tpl/linklist.html create mode 100644 tpl/linklist.paging.html create mode 100644 tpl/loginform.html create mode 100644 tpl/page.footer.html create mode 100644 tpl/page.header.html create mode 100644 tpl/page.html create mode 100644 tpl/picwall.html create mode 100644 tpl/picwall2.html create mode 100644 tpl/readme.txt create mode 100644 tpl/tagcloud.html create mode 100644 tpl/tools.html diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..d9731d2 --- /dev/null +++ b/COPYING @@ -0,0 +1,21 @@ +Shaarli is distributed under the zlib/libpng License: + +Copyright (c) 2011 Sébastien SAUVAGE (sebsauvage.net) + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from +the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would + be appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source distribution. diff --git a/images/50pc_transparent.png b/images/50pc_transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8f99de1b6cbe4201b5812b526a6ba677c61c92 GIT binary patch literal 599 zcmeAS@N?(olHy`uVBq!ia0y~yU~~YoPjIjS$(bw`tAP|_age(c!@6@aFBuq^1U+3G zLn>~)y<*77z`${MLu28Z;>C?FPW@q%I1f1MGA1-IuyIgKNGLQgGEsq`*dbs8Bo?p? lCg&tHP|Gz!l*iR|rp_cL{_{)R6oDy)!PC{xWt~$(696xTaNPg^ literal 0 HcmV?d00001 diff --git a/images/Paper_texture_v5_by_bashcorpo_w1000.jpg b/images/Paper_texture_v5_by_bashcorpo_w1000.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd8e67acfe9aa9e45fa95844651f429ac1e1f6b1 GIT binary patch literal 127449 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

WcqSGuGQ8WqL`u-mQ{MWrNVYde7xNGa6eyz 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 TeKzDTaC=V)>16ck@8tghMNR7` literal 0 HcmV?d00001 diff --git a/images/calendar.png b/images/calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..658913852d60fc6ca8557568d26b8e93e7d56525 GIT binary patch literal 675 zcmV;U0$lxxP)w!? zFisFv!T|cmRtW;1f$>$s0G>^*GP-h`H-mzTP&3`b(d;hDCL-{+T2LSiJi1S%34OTG znWn~v^Brk?FQB#MFuosf?qnt!t(A%g#tAAA`tV{p&t%~)6GMus628BV?|aP6=Lr0O zrxPn=6Fy3{fE84gngF`mQ;ZG4p#ul`mYb)mJw@Q%q_eddamvg>kv)yI#B0M!3sxev z!1s9dp#Z>KE{BK5@W%p1Kt!2cEYj2vBiUHDJ-HCTS{r%b!`Wj=!r&Tb+LFBfRN!=5 zl7aC&Ul)Foh{s4J>JU)^p9+C-Q44MR8(8|WK})8dx#e}T%`v`wFOp3_q9I1QsXihN zJVaEgK9Y|1KAJgEb`m$%VXVVh!8pM>`_Eli`}OBJfVb0i{tF{QT8%v&>u>-7002ov JPDHLkV1feuD8K*! literal 0 HcmV?d00001 diff --git a/images/delete_icon.png b/images/delete_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..55e388b4ad0e8b65d52a4706493884c9b9324df0 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`v7RoDAr-gYPCCfNpupk$`SewN zeJ-}JNtbjp)S168Q=HoDvSik*J#tnv*Jjr4W|%F(xk0mW=H`EkRxukfUdl5*y3Hw# zYsv2V3ygai71sZ2P-nPa&fxKkDKPko%u2@i{<(rb6JO*5En@I=^>bP0l+XkKw!<{Z literal 0 HcmV?d00001 diff --git a/images/edit_icon.png b/images/edit_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5cff57433ffb4763a7ede6b6f115b59b9d185a39 GIT binary patch literal 394 zcmV;50d@X~P)iFc5u%_9UiH1KqYB-~{=#>8U+f(>}XNFzMP zZ{B=~nXx5A^ykhP!)4o!1|`@b0xpUI)~oY&o9CRYv5q>I?g}o;0PkD3h3 zw4ZrOp?+a?Z17p7t6({&&)dV6-1GE(<2p8Uu&X_an*8r3Ai)4YRI>J~RDy o!GZ%hcoz~fGSkqW4gC>d0E{^gx-&}?MF0Q*07*qoM6N<$g3$-5iU0rr literal 0 HcmV?d00001 diff --git a/images/favicon.ico b/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c8b043b4763c0266ecaac81f9ad3a58978a0d09c GIT binary patch literal 76949 zcmb@tbyO8m`!+l$=8I?~OdI|PxCIFtg?(jXj4x&#SDX%GQvq&Xl0(%mU7El9)p z^!L2ayT132_n&Wld(F&!U$d`$&+L0*&0Mnw06+jf006{)Efkm_2Y{Zx=wAT=*nofl z0Ax}87c&D}uK}P}=`Wl3KYVTw095n?05kJ{@D3ONrUn222Kx_ozyyG{;eY)9#B;y^ z0FJ4D{Quxj*Z`0)|BwH_Fd+bluK$tGVDS?K%vcbP-|7IxUulZtLZ}iu|^tB(W{I$|`fS^00VLQZY2uPj-4$rq5 zMzix)sBOLjycIye2;u$xJ^H@|F@s3|+lIi)K-UmJNBv#B)Ag@zbhgyr0|3ZXG?Wz{ z`(++doe>XA+tE0%44C#e#oA0k1>7nyzr^r8)scX4Lk`l16u+vWLQUy zO~kMt_*KIC$`TUUoI)auPOs-Md=z6*7(O=dOnDs*UW0{G%#Ht8de@eH4vDp_$HdyP z#%xgWnVDI+DK)ON%t%lFvZ47u6S_W4v&dzEyW-Xrz|Q!21Z$`keroDSB1G##qKFRI z1^Oeh^y)@8+yt~-~x?z{DIpBptK)BUgSyUKaYF%$68AHUftXkflMTgUzZ4F zTTEZp5(%N{752^ydIVFOPO_Lq??);IKrp(={J<%{xj5ek0 zg~{+gBSdDu1Z$TuL>pFm;0j$t1mQ7^iqIwasQ=pHcmxl^sN-0pPcG+iV92{?ph1Sy zg0d=*tT{5$);$ICSO!LHt5w}HIs`PeU zi-^aqmnWxuEIw#f8Gd~3hrkoRpp$h$nr#x@RS|Mc*N}lQ4@_ZCOVBYvf>iO8!wM-0 zOuR4O=B;5{a-vnL@sA8#!2Dy)?*u6Cdw6o7&QS}^x#D2Q>@B;QHUIl7SV;s3ix-?m zNdkPcw+9dpAeZS7cRE&}Ay}r#53mQArDedxU2K8 zaIe7$C_X@L2ZbAU|2_QAu$gajKRK>j*5M|`WdZs$s{j-;GeldU*`cD5CxTzt2*}1RPKGH3o*T7u0lz_Og0i#H~ml04@lL#g$;Ai*zd5K>NU>BkX zT1~{h%D70<)ziZ(QBwGs3tkl*+rh5@e^SJ28bwCYo?KxBhzm9ZweX5bk-0S2#4+V!ibBzzRbLk!*;Xd za)-+eHu;u*ub&~q0J>qs>F>)s*kG?CL~Yx>$z^1X{BEkKP9Ixis@u^MZwxTncZxxz zqc>4pxld|o-?SA$q76YA(z>#+9*@C%el)lHSJl7^T|p!I(9kr&ksD_lIv2l}_(u1K z87H^|G5oOP>pu&LKc98LPX-ryt=%+~o)eh3eY zgWvhS^pw=OS05Pe88J%=(OSU+n;u=!Hwu5p9|eE9_l`nCfv>JE?plunmq)?oFD??l zfaMf0L=;!nu+vnOXj;POW$#XABK6B(NJh;fR!!efz$qq|Zg0Trl_7Dd12(|4cvY8x zC>>2wGBSq>1V{@n;6dDTQG0D9+;B3Jc)%{VksF8wxQPQ_dER};k=O_{j02m<*LC7Y zx?^)D(~hWw4*Hr;X5)2@W8kVsgLj6r#3)%246%Q{=^=oo_lZhCmGt)BcYwZTJJSPm zutU)Op;;$06zG@PVkN3hv_=+*11O7#_5`J-U4aW%52l?^d9wB-*pjmV@wa81+%3yc_*E``k)`yGa`+ zr)VA9w;q}2ze>z!k6owc-W895 zqcqu&B2MMWV^Pf_gO43(AGyp7>BZN6f!I)m1vYIAD=p4daW1H5<;oEeX2IBtCs%cE z-xyab_h!G{8E@I_2)($zr$-fU*eLeWfr%xr3jh=yir3pb-ry1Khuzh&HnyW8dy=0J z3Gt(qKsta}wDsaK=-4<0G={l5anXC*lR`(rkDe-#>x)iAr{8_YLa02fV!%AEPbAYm zGz1>4XN-{Qyar!d+9Q&&;nkp^b`Z;>1?Jjr^}=V`07~nzg7|q#!{oK1T(HZu$?7*0>+ZwpDlLjbwA86Q1NUEWTu%QkP(tIF8@U9>^!Ua9qQL*P_* z6c}=Nm{7=j=`D-($Md%(MlQ8k*s2#j40!Rr!^zw?ToDO)czy=lyGLVN*;kzL0 z&LzaSAraFT?hCKfSCG>*VxhO&q+x|Ip{$ zs^cLHex@XN5)({qTty{vSG~KdtN68_-f~y1za9_=W{$^D!@U|2NR>h z@IY|ofC|1kt}zQA$&S#_FC0IakvOdn1cnZWbeMAy#7YX40<6@@Z=68dTO~L8qGzlu zRdx}gHE)t}9ydPY#<+99?KZNMZ|<({rj$@HiZL=-cz{VA?L7=%#aF2isMFO!f(?ri zM!5)XLB4O~$@*<66+D3>-=8vglJ((m66>$F$;DQOA;UWT(kEXyCC`A6v`o?nD<8P5}5=zsQts_atuGMf*PhbqUUUGbixi7ho`SJ?gI&UW`8m$ zynV5zmt(a3^n+B_)-zw>peQ4G8Zeg!Q{Vd05jvvN;WE89*=WshGWUEA-`U9r&F+BO zBJXj`t%=>VaO>kC_SOf&TGN*={T5XWt60A%;fLEqtUimTF0sv?PV!Ze-jEvIt9t!0 zc0Ig`P#%K$^~w=8)ZflJg4?*$tmgNcKez;JPclR$h!A{S)%m<5mtalX?^c;1CwN<` zC+y)9!bGMZmY~)iNLC`e6Cqr#d}doSWSsID1IBjDCUCgf{N4uE+|CTlP-@e6t;Xj> zPnsv%APs;-_wEuhg{XF>T^i5}m`|j{C5^9QpZRxUng*r#MlzXJ?Yf_v_I(yyQi7~o zh;~`xL;Sp3*&v~W-yrhBD+hd^on;FOx$?_u5etYzxHaI{u0c|!;k({rWl6{_VGv4r zTU5^o@ZzJTC{>@W{_Jh@1E>WWDbyvu32mj(0?fou!S$mTHA5qXu}mRZB_)i%;5BbW zm#9eQQh4(*K(*^M!;m*F8sSKa#)3!P;?>Q$9ukn*TsYG#^V&OE6WwHRIv%q^I*rK} zz4~}&A^=Kf=TW7XY}_gFcui}H`^y*aKjp+9m}Rs(F(>4be!E77T}i21=f=4?I)P^K zAxQs2Xxzl~sU0AP@d#9w|2)#ZSgwUE_<@h!N6&@dI=p2+i7pHKs_r?%!{tWvDFM*! zpDWcbJXwg&hN2uV+~AiPQ>N+AWmTQ`DIR$0jeGRS7g{4XO^#xPOk=rLan+Pttff34 z*IaCxCB2sbQH1%+j@q7EgKTnX2j}0;eGyFxzq}$sP1HHJfI^Yy=q!eZ(!LKGbf_+L z9`f6Ff!}5Hqtw37;dS~`S!sBMdmhSVWVS!qndXf5ZBy^#WRt#o){d!5a8vMw;<49OSnE3?Wjx(+uA`Gr%th>^94OOyXX=z> zWjxA5li+W@!S73-pae85s8Of%yxwpXDKRIcbr02(if|FA#fNx@U6Mk%QoV3Pkz#Rv zzW!N9pT0NaXQwr*GUJb>#-RSO16K1sA9R1K1mo%AB7LPiFmNQ+lGZzFuXBFnGDQh! z0J)EGY;mwHr%!m2Q&n+9S~&0YUHFs=yA|0Hq>qDcmF~!lu!2*AT`dV4c*_;XFGrBT zkx><1YnN{T={J&Eg%7MG(2MmB4$!6G;CDq1LG%T#2~KH@>xVDi>FFD{5m|j@$x_Cb z!<7rSPqQii-s)e*^G(|(b;M#JDY+Rx!PN;!x^?4{QM=@&_?B@oFCz#KXSB|pkF6?y znmsgh#CqmdK{nxsh{&U@mzwqo(Uis_&psav0QNd07{ojh?6H4Pcwkyc&{ta=I!WBI=*; z#bvF({eHQEWdG+(7$$mjPAq&D^7Z%q4dW#8c1mSxt87O_x85x!V?yGjhhzu=`YlZO z;e*{o-CD@9ny~4Hw*R*r3s&}GDqNMjS5HIZz0J76rayXHzs;Z9AKGf%9!<#0U2HExEax3@Xe3F)?F%YueIORlg05N%9 z>u#Jb&Rn4<`?-=@#MV+jWP8MpACn^#%cI|-xMP#sGFIiBHeSxn z*puUbPaRRWOi#bRHIB1f8~Lj=0vam1%3l-_VgENt6Z@Z}`J&w9F#te-|0QYq3gizb zUh>;%Pt=BMY;5e{etvCj?Uyyr%*@P^l9JD(?11|lL!NI}& z)qnkc-V0cN2kd)*gUb!O@4#P9!P>vR7pwx3wfO(jSr~^uV0w&mwAZ7}9 zy8y&a11WR=wB^55dTqd)c|fiK&}{|M=Kpe_e-o(i6;Nvel4eLgEMa|G|Cd#zM&Rn^ z^6K_nrRkp!fk0?!X~V|>0s;bYadAC8Jv%!)0RaJWa&m_r?w9=%Uj0wBT7VaQEZp4O zfAg=Zs%m0l;@+n!D=T|@cl)%H$nD3&+q-L4R#qGwoSpOa@87@g@9!_}H9G&GXjp%v z(TrWWmbh@zH+B4ZZf;HuRFZAwz`+Wb~`#+q~OEemUgN9PEauQ?zPYnf{jv39dheqELKyJccZ~lkw zgD&~&$o~iY-khZ%;W57^;h)a~|x zmu#`}N|t@X>huZ*i+=B)^FYI<|s~Japsz0{}{P{Ii zW?cEjqNR)Ci+d!m`5LZq<6rmq#rJ2k3o3FsTxjCv9m+d1kBcvQI%i7lUSkQ@^{DN) zft#L9n%-=dpEET7OrI>8-ymeL|0F)d|SqU(Ge zgVzpK#Lrr*c8$txiVRLaJt|*?K&el@sqV2C>u=5oH0N!Hww%6r5iI@aLG4*;gZnmb^j1au zsYJxod3i%@_z6Qw=xecJ{V2iaIYn#XLe}WerX$Zd5KJ3-k9WW7^XG2CCyse?ZH1WT zcws#%s%HY)sL-pD|5y_jjd#CsNCm!K(=fZEL(mIELO@2REQaSxHrnhOp{`m*hQyS3 zwJ$-^EOIr?rD1J?sGdNt^qD z7V&vp?z*#|+mr;U!LNzW>{j*5jxC?aced)CG{!!Y*S||oX8Cx#$q7Ur^vuAPuApZ~D?45A};7H9*4eM&f1ADYTg>tZ_TX)_g%YGhH%|l+WYU zaW~K{>uY)|Rq85flrX1><+#J)###Kb?fJT0qBC^n9TwmO*Zu(yPqy-k>QRx<86{&D z{nK-Ia)VyFaT`qq1g#Xon(Ck~j8*(Q^r0_$`i){LkhJ-VYN@E&T|Buc9bPSAAH04) z2XKPssYGK?Di@CQd;t_MU21j_7}=7%Ah*n24Sn8C!DhpC=0av}x>*ckr0_Wt4E|o} zt>o1>hi6(;GOkw>hoSSABodDmnaDc$g207^*H_gjc`-Fo<{l)bg!JJ^CP&{>b4@E& z!K;9D&oCu|AkH=2k) z%$?x&*3R#sT{6;p3bFm?(%ysk#zw6UH#-eE60)3~PdIekeD{X9im_l2aZzW#C9jQ( zATorC9AqdG2t;hQi6WkDt?0zk;Mo)Wtlz&@@pUD4{v2bg2~?HNGL5mhOQqx0^q|zZ4HO79n`MW&n(wj;15`4LVb3Hh^vbI z;QkQ9^sJ6&Y8N|rB&*=3J*8RF^f_;=Qkjf(1t6f)SWFdQ7Td!s=G@N^)hHhc%`7D# zS&p>`i*!F#jr^7FwKW{_tTzpNj}4I0m6XG1v`x=vSmR(uQT4HgG@hYr$d2b3c&3?1 zG4D8i@554&Sv=KoHPF^Pt|jv0VjM4K_Pe;8>UU!BLW?_+RE7*}2atf_&Vp~TdZjuR zT7rM2b%*h{t%C04*eB1q&}VqwhcQ${V^>WM{ev2)7nP=?X^tenxN?w`MYHUNE6<~7 zN>M(wUdsGg)Fwg_a#*=~>a-c5NUUf8FRJ$a7z6l#ZdJ4IfU$(9g&dkIz|q8xq})+E zE+!VWRyJV7f$3@VjS%8|Cu^rO(ITXB~xv#F|e?U9O7&W;h~SZZAn;;n<(*$n`G0-^qc4dtOTm8~pkNDgU)r z1^)gBthIVmjsZLyH2AE({#zaCzzv$BrXG@MmgB4*yiJY+^k2V8js1yZ9QFzt^qv4A z!c+TYnj=>o;|+VKRG%5J8s$q2>Y>YsL88CEraASB(m*}5$3Y$ddl&4<51r#9sd9Gu z=H$R886wP}eW=Nx{DviViPvO*o{s$7qg1@lq?^QAx*o&`4R2~%S*r&Vq$oAOGgl<% z_>%@45Y2yAnzi5z({oe@&ld@RyxAWbZsk-{?$|ugIKuqs1y1Dg1z?9)IG^4?nTc34 zg=!a}CI-y|itq|evSayK7#yhgAJ^dbHNi_RDolI0$oyEZP7R?jMQaSEhPrD3I`C?{ zsEmD(fS2r|*^Uh!A~dFggQA)BZA~Vcm(CA6)1Dumt_WRCdiTe*8N-`e^e6Z_M4T_f zH~+r*$xa*#2SxS31}Uz(6IKG6FdMYT}h#N65e6;9p?J>6f^r_Vm zr);S>(_7x2yq!h^O#zNRe$b+(dyfn=$jj)hC!S_lz^kS0r!qv6$DJNudu`^Y3p^|4 z<>)!^kXkY>AMf0pS6NoYUW5ufbIFFHp7y}`=^bq!MvfXEex+2(8*Qd9mMxw6%vLPF z<71VP{m%Yqga#)wi}4AMei8@k7qg2fMY%lZA`UmRlwqgJaDU6rlQA6PxMKc>4x1y~ z6`?*I)WL$m$7^*klKnB=yz{gx)z&fMA$=b&cD^a2#ukrPccxOBwg$g&?TR%P5$LOA zEPV0fxV}0k2P>A3)Ef9RQy)lS_B6E0%?8}M>vb!YeR3HcBgnjZhba9nBRw!jvoME! znK-1VfMZAytz4oz6M&EWbJ8sKFq={Cb(c2Q~;&l41Xm#;Ia!_Q2@D zkl5iN1Si=*Dp&hcFAHK?)w;)-(==1p@r^zurV7YyL^g5rl+3OOcOfSAbBge;hFUop zM=A^hx?lBOyVE8dZ_c;; z4dB^-%lmUEG+UhE!5<9jO`gp(Qcc^h3k@_PVt-$}M({CaXWu|4F>$CZo1-dUJ@=Vb z{h_GI=9&GGL}J;GK6SfyMc9QO99}ZD5}1Kk9MnmV813|1c!pkwRu$5#3gAdA2!b^- z-|1T0R4*)r{95c}B0V4Nx;2?cu$1d&B`AG!Z+1;M!Jg08ZyYRg~NFTiCp z^Vkd76WiPk)8Fyc)~24_++xEsMR`M20nKVX z-kr9B6n`fy zc$?zB%7*xD6$0WT5F2J&J6>T2qcJY_zkaC zEcG#47xlS9{g>ZSLEj2dmC+YIL9QOSnO`RX zljoY9@E~=FIA_+Ad8m`VyaN%M8FYkajF${9dR(wq8s?Nh?Rf$#3swL(}wQq zkit49VK(PK>Oc>c4+$OY6m53Jncm}Z-FxBe%2z|8(VciX5>zImEXE$mfb|P7KGGj< zs6X}D@AS=8t$o0)X#boq`d+fLuz*~I=5$64IqKaeUAE6ru)E6TbEv*Bg#0Nb3R-MV z8$Tah*v7z99n$iIUt<%u)?9>|CMydeXX+N4cB!eB*DmpvNt;!$G`+~qRDC6eGmu|b zKGth`bMw5d*5+F^GgsCwiZdZOx_jC}doKx5mXJM^dZ0`<_g?F`RI4)rWs*Ms%oA?GaB z45s~XXtvf{H>OPA)W;62G8WG#z%O>1g-4P7;iryRIPVRVNcDMmnxTFqphU+B|0(=4 zpeBx24Oboy@*dRfY}W0{uY?h50dNgsL7!LaIz?|?j|2Ei_|un+|T zZ*wopU zt>0cB%)zjfU80bai(w3eEGAwJp(KBt<3_2u!PJXr;Oo=)UG{h6UN3D$ymmJ11B`JH zVT6|-e0x9NQFT;lq^8kk(@6-M8L-G_>e^n_3a?SQG3^g3I*(#WAc$GCHF3w690}Tl zJGC4GUThiL(}Yq8h;NPV!m3-gSAD`em{~NOMBb76(?gWM<7S$?3aO)xXX6=ks zFyDQ4CFLO{&BBbF$FfUnc&`NFsvUBAG_HhK#rsw_bu{_zHCLlW)ko`etzYn??q?cH z8LtAB8)4ie?q*2Ilm5=CC+N;Zau+47l9^DBDI8q4dVIFkO=CE^qTj+XalfRm(^E(s zDq(r_au{GB?^veZ#(#%Xt;>et>3;lkK&eM3hMuGw0L5Z)H;y&;yBW55B7{L}>FUZ- zno8B#Lxf5Nh1kM^?Tddfz`yrTs2^c#Bc}}WQyx^*R<`!7cuk0G#>>#AA=Su16Vs-_ zv?~^(I(t1woN zd)?2|rUcwuRk?4&sdCbTV5Fs9=5lmc0@^|@W_R5){_pN%`B~Oj;bRiY(EVd?^!KkW z6N$Bn@`+4OVmJ5ZGQ(t*%JnK5cx|f78)h9uoRaF~n-mnwUQOoemr<5YInk-|5;))^ zROg>`^lKqWzdy~<9d0aC6ojiA6SaR2H-4h?LwL}?2L0A^FM@f0&70{a=I%CMu&%xR z&^Q_N$q6kL)A|ANx+p!mx8BSaW;3*zzHer=<#;jh&ywB7dDAp}G2*OY-Y`=&wHI23XsGIHN+{FGQy16164N8&MJE z|8e%PN{YbtcmH?KtEzK~1HBq{P4BRi@S^Lnlaq(>T5=TvRfW3;EI$WSPy}amEmqs# z6CIo7Pa%*fds4Nb0IE-&jtvLmdzVp0&@r3rA=(q4rYKc{`(uqeh4AaRUyj}}9B&1G zi!c%==V3c|kS4EEAl*)gM?=jLLw!yfONxGjEz;jjLgJY`?r!Ies!-A_LaKt@}*qhYahw! zlO5=W&%UM2{brwWkC%!QWQ*rI`^4ABwY`7Eb@t3?gS>27mkjIT#%3 zZX*gCF{4)wdDKf@BCu262vEcmzb($bksHaUwPz&J+M#T1uBEjDNWq9Aw2k+6$v3)% zZ#o~_ko1x&4DU#={k)$)_hxelcLC6|)bItvzohd~( zBt>g~yn-F`Jn$y!2@~i&;)o7QJyka#gpz~8&~=f#4g*^nCw_o`Ie{oQ-P&T9_U?7= zA2Wi->V3VkV8!LuenOwCrMT7VAh`|=qELzF^Ow6Lk9G(NW*=>GP)|S-AbE=8d0F!*WXY0C79@a09rpZhlNjcC{B??{+(+%J#&;2maZOc@ z6Te0GGh&oLHA63x08JgE^Yjx}sjGq*|Uth?^yihKd-#$w9!oYZz^ zDw{n!meP#aeM224jzQL`r&=K?{*q?V47V`m30k-nm|_cqKQ;JjE7iz$%pU!PGg+tS z#Cb+4mc+wa!ya~RA4Y(m>_UFuD<3-g~r~hnSa*h6do2A^4d|wC(gG)Z;z? zIZ`)LQ?&S>@^(fdOC_9^R5~R$50&QcMaB@PH>*=U<`79}RlJbj=|>p<Lz2Fd8L_v zakB9s$PV%RHzu$c_XYDU4c2^~I5x#hI$w6NRWwuxL2!Rw!qwA8KqmXA`ND+CXt#1S zQLvi*Iq+VyFx%a>Vh+&{xBHEW5-T?&&=A4(+l-Lr+09>+Q;Xu+!LM2U)rJ;#+w@_;>FprRw~P9Wd-ZaW~Y}RQhk*d3Cc9431DXvf-^{qU$ydzse4>W#Q@oK zh@0dm5%sENmvN!I)xgisEf{U%;hr^#JDHe_(qM_ZMfCk9`0T#jkwSk~)K2q9!t=PnV0*_{Df*98h?&SpP}g&ERZx)|qw zb|~W7<@&y0)P{r)Hj}jZPOC!6((o_^eJ_|^;BEwY+m*NFV3c_!%DG88PdU)+c-bRN z_%HIujBv*`3C3wSQaOBH(tgM!$&EBNL)=EK6lG+@GN?v;B&1cju)J=oJwsn;(_p;| zus99me@$ut%-Q%@E2ZaQ;mWi2dqKL9q1N6I6)GIn<|;FLP5Z9gA3M5H#okg;L|G~R zGD68oLw|lhYlMC1NrtHaI9AkDs9ROWPPK@jz4<35MJibDa;@S8t-$G;ujRb?hwB}} zy9w+O>Qfi#Y?=_7{EUH4YS|RmV+6 zFBZ*4O7;eaJ`Wru+j(LZ@kxA?0&a+6@0-m>1RET5 zpklpn%*$W?MA5*!XDzt=K7y4PJ1JYs){sz)@4!&4K9jp7O(kq#!2KX`d4X>FPH?f- ziF;_;wN$Ld`b52n<3h|BsZ&13$y`j+&$V)Q?5sh8EW^T@gzuU3C@H1a-$;^%`Ck#SE8g288j9aEp zGaJ42$$mdM$8e?b^HZEX-MfD%T*}u!b?zL;A7+Z5_S037vldhQGRl6=2`<(?eP}U@ zU#hi(Bc;ar%bKnSkv|jTR4a~`i@y`4Emw7re)fDAc_LbG##5%B%~DA@n8Wpasj+3z z#_s{o8-UFEDozHQ_R~z>vF3D#k9c{p+m^IQ4by&gTH|)iK4;*8pb%fa3o|6>ZD`jR zMR-KhIfGbYGl`~Uj@zlTq_~okH=lHGmelBnbvA^XX*#*^1Xtj00hO^T<<-o7QM$2D zpz()+iUL{}3W(09j$XY`#(tpU>v59-?K9Kt)ry~yL#{suvFJVaQOaYdx`3Cm`9TNU zp(mYKV|+`SL*8>z+7n78OjslBZyQ0{hwNkQC?YMy0^VuJ$0oEz#O4E)W-pQ6c#DGT zHFZ8U`3+QHV5bFpQX}QQyx2FVv&>itwzxwNid$mh-sI3N^Mq>QH!gk>19@EwpWIsr zT`FU$>#J77{YCal(xEVR*0OEcVH{%q(T}65gB{-d*__EP807Dwo+hp=*!BU5A&aRX zs?3*kx2dabvSqJp+N67a$H1>L{)!i^<_c+yUt?t>SI0M>oJ&0WP1Qkdkyo($AY#e) zz>GQJ5ED#LHCPNH2_8%aEt&+wW^#R1r4sl^H%kzv&)^s0z^OlI;vkH%Fy?a6dqcv< zo|G;-|8jj3T9Mo`!*+yOHz_vDA?Cb)muZ|VJ5B$J1>~0Tt8Mn7$6xW&%5Q{CYdkcb zpH+V}FfeQDGf|JNiMMD033CkC+v=<^=`5d|Vj$ZXyoXd{jHdEP%F!rj& zPcV|4p8Zj*9`2tC8}U!yEkFvze-EAe;T`~FMENk;NTzh|5V%$^7mDUR!cS0?!<38v zGD_I+D?3Q1?<@8eg?E286%DKW7AlIa2H)w%mYSwFI`q4balZNH^(sg{EKdWO@wA(S z6}34H68*U*aNQ)^#ut^?X{lERHOHa+hFh06(f>%Q}C?=5$5#h%O-VVm3e0Gm{5hP3r^p)Hf)#IbWGiCabZ7@#ukdx@hqRvuYC6X zN&9Gd8A~ZMwl*E-$pjukW#xZz`{KF6Pw4MJb{^-W}yTyZ#(F)p3N`aMEU?1{;pJ6RgW6eY~vvKS@5S`ZFNN$FShZy>p z>27U5EU2}?^X#1DiaKHZ^93wEeXea+rasWX`z6vfi{tb2N!KWCG^1Ln!tKye;F%D^ z8&Inh*1ks_C5kLAZ2RS6Way>-#HgP-$1h^Qce4++GF)*RjmIll2%`1zcTi9f8LK0q zd9vL4-PD!%>vDWwfY9h`-|B$gZ5t)!5yQz^8~8MwpLbgtpAPc$L0#TJUs(1ym(rY> z6US87bl7Lzo6DDxo7-w1LBu1FSK||q16l;KoquPXhE+x-L_;r(FqnNba8s_5p{dW4 z*Zk#NZMORb_)&x6?^z`$3@SISbboRxUe~4Av-HQUufPpONuP4|5Lsc{l)jJjVAVQN zP#h)TV0_mLKVU@OKB_%gskTAaZ~K%R+9d5F(SN*_{!z|C)MvgI3A%nGi;2C-(`XF8 zsdlo+}&SDt?;bQI*3*z~(up8E6p!j$c8ep`51z2S+_+`b5kh9*B|W zFLKD=JnLr83wo1~$qXG8vQ#ND0sx%-e`5iDiI8ra zcb^Vyo8~1^bAwmI`=JMYC=sDM{&UuEV{b!U0$xNLe>%WsM^-LcEyw2Wf#3wXe4skR zkpvnEX$Ym2XW;{#PnEoVcgA^mJ&bhla|H8 z>n=v)gcPVZEObUMd2G@noRo3d=NF5gd?@}#l^m{lqH@GneD2K@7B*JO%t^}r7h~UY zYobq?UIN-ub%?R3*ipQ#H9k-^AB5ZQQtk?S$IG<%Xt|lrIm$1DGF`EyRQFZu`U!{+ zb8@Cs1y;nP*?cc@Ub$Ge<;b(mm@ZumKxj%`@^?imC z$caWKzx!lh^dkL2a*vKZmu>pTS?lRaZHhZY0-yI*_*$4rva<*IB+|8tj$RiIy;5V+ z@zcfBYe-gHFZD$NJ5A9N{y4clL^d%jLduVVRhf9$@oD^uB(k)~Fa0^HSqj3u`V~o- z)7j5LhGPsa&h3_(vCGD#YXOp1I*>4lupuk`B4UZfayw35dB z9W>0ioTCEJ;r#C9O^CtCHN#04`FMSXXyRnBVaRw|K0uLuD;vg;}uPIwug7 zd}Kxb$)BY@E_q)FJ>L8LYFjgG+z@`l;c&aSqin=XF#TTwX2@nwx>;1uvB!f|RIr zuxhd63(fVvUcRDf*K3)D!NLMs-oMUM=?Qa(>IY}Kz{+opz_JvkAhZ76+sWfCNxZCf zonfD6J4Z=TFIiR%Tm5Lc#gck=gASRFL$E;QE%%G@u2tm9uQTWvsNg7SzgUmh7*^o# zQxrzoS`ap|Q^IwcaMK zbP9(A3usNmTL@3v+WK7sx=!wmLcv5V*7Pc`u>)@mNT(592fQ6EKHf-Yp2yq3y$<1q zBBz{l*%V{E5G?F!TVnWxNBt;6vYGJ(yfm&Qe3G{H%nq_#bgmhABtM z-sV|h!DwHuNV5H~u`+Rj@7J84RT$BYUunbc>Xs!j{^cscXsl;0c70VXABW?9N9=1IZst^|ax@l3&>S^RL08B%tACNutDyHvif>ZmvWU z5Cc`QF!>o7@oM2WBNGF)1RS?)+$8s=m%P^@LJAix>q&L5ZX}j+d}b?knT&U5cM{o+ zqa{8(-*}oN6Xqu>?dfSNFd9|RLpZ8?#_q$2 zE2xnB1f*qDiGIFrYsHkZ8IaLMYig8PWc?J58O^yq{U8%_REV)w=nj{ncA>NWK?eYu zSQZ%zoCNw%_l^7k&#fx;*aMs9tmGfLw<4QMb;;(HdNy6O-$ciot_61|7upma(}gL= z@MDs<-LfvA45m8%On1;@U8{GF4phfxbT+yV4i@P%=f-{w5L%^#u$YW>)XRI?-&}*6 z-H}w0IH@f@GYeXE(Aq$9WRVmr#?gMqrq`FgOo7#zdfa8>WTjZYilbpC(kBwE7;XpO zaNuI(mFeVR%CU+x(PNIsQnNk+pq>pq)y}6k!|E(4T0*B+lajqT-9hRMg0gnz<~?4p zXq2QuB;xjEvnA>sEU#t;@q2ET{sVT!I;Ib8cGl5x!{&!qC5Dw&DKwc1a(;uGeqlJHSd!@>D;eNPTZ1YvLk87>y>Gy6i z|8x>HJC8q0GvBmM>GsWm08vR451zX)SFJf9zWCE&0#5Z*{swgb=MSr|kA~V{8G*P! z`nSSoPxbxyKg!!)Lj}rz92B)r(%RtbGxL_86)ncZYNcNOyO4*SCGY@s4}{ zyO-f%I2^iJd#xwuoX^rwoP$%fr@gsQQ;!ynrD$vyIV4D0H8u|Pkq-J4-8$b8$-*64 z$&GgoiAN0kjTRa1y+ow5;k#|HfxJQOMe`;r`IiL?=B!(`-p(e!g@czGc&0$~ah3wm zP-G=$?y#rWJ02KZy|7FofjR?;et1 z83eC=9a|s1-}%9T9l7)w@h)|iAI*yvri4+8E_o|5va|ST)5z^}3g0O?L4CPbuj*)| z#|96T7fH5Uif20;HuhG126MB*k#W^v2I|~(;7_&P`GsI9yvqX83f1z@h>yPxP@pf( zsO10ixIcZ?!mZ0S8Fi zvBdQM5saR8TEuEEcw~R9Ha;9>dF%Q8Mn#8)h=u+S9ZNKhR9qnsSJ8D_Jzec zPi9b?=l!5-c3C9epVjlO8Slx9jsw06$gltZznV#=$Gbo=cg5}PTHdF%L$83a*{26> zxKJzT*x_0i$xZb8otDOkvxY28Ri!R{W$y#iGN99!V=rCawe zg`dAa#F^gvm@l69<5nnvKV_BAxs4zWI>@Uqd(U60hki4m3;Sc6>Am-9fXQbIH)M;^ z-Dkl?N84>HhS!#g7ip8j?Bo6Inst(wEVOS6_pdfj8a83n+S(dQC>qf{pqAFNgMijZ zgNc1T%#Yb$ci)L}=g-a-4eK?gj8Aa&xZ9*Ij;ec?i`IjzRL}EPGb~)jFJ`8urV|4@S8-#> zOmYw*7HOuG@hmbk&Z;jzzux_>2ida1!ol_FJx?b;H(4)Dqaj-_H&5!o)$7gV#bUSb2dX|5GrTpZ!KEwV`a0L-9nPoQ>F{sv zX|8Z6rJpaa>#6!qp;WRLf3_X8I2C4i@9b=X#Y)owd5h>3y`NTwJaxg_pxx`>{G`u) z{dYgUsHiBdCcBOG_1W23| z?|XW(#`PL6l-lV-n3up4W3#fpdiRB(_(*`$`nK#};^p`~HV*h7T3`I$!tex!E3cL$ z!cM|KaYaQ%=b=PC?&yag$f^?`udD3=)>LWJQJ1wPsbt31{QUeZc6%fTx>b>{3s=Kr zF>J3VzHimvu|&Bm%8qlpy1F28;8=FxT90eH=l-Ij4)F!eftu01y}hS&+Fcv@o_6E4&b(v)5g_O z($TzU>WIjZ=SsK(ONE)t#lrM*Kl;aUXO(WKkw3+8tbP5xS%qu z(~GEFeW$%D{HTaIQv-2=JcKp!hSjEt|5f4Jok3`bp z>4^P^x|td!aKU(IXXn#Dqukyeh}=J#DUM2f=lg0EY6h_?qN$~|2S?;3e{y_m3Bf_g zWv_n$*cd7Y8{2B&VxL}J{JiVUqAhBlgnk=>G*$3kQEdiRQu=R4r$t-rvGJ|8Uc}~A zwxaK$J83Op2pT`clC=~HnL%ZQgH+9VV={-1WNEWujGTF6m50}PTQHhOhl%7g)6>)7 zzb=`RzVA0gC1pR~*W5P7V}AW|PwJ8B|Kyi0Zf940-B|6-;0ze&cu##>l>jCv z2*X9|Xi-*rr5+1{`qPgf0s+i$k!7DfHJ^c{CL66+wD(Q4B0h+gR(C1CbU}J-r7WN4 zqe~>Fj=ye~o4@-qGc#kJ-rnKZWmc#q6v?E}O=o1{>O&>chEiG9_1oMN@OG#jc5n(R zVn#G^hF9{j)-32b1BEf*cGCI=`UlGFQx>vLupP9a#zyqHSa(k`9PdpW=PBqpqsaZq zEr!9mXO6*Texwp$y%{#q1s6SLT>2oP+}G37icHz!&com7e!w9?r=_JO_&&>hSeypq z=q|!~LAaxvi&dmr*}GtKW^hT|kZli60_&kPLsP05S~yEXaYOA(C9}zd5sW857}jxy zoL97!Ay@tGslomqGzl%U;bmdqJrM6dOH+yRaW2|$%Kc8&FMH(i@JxVp zp;9>eYPkH>%aNe2KtUAVxZidENB;&Blz=GoCy!Y?InZ$!xr8D)=2au$4li%-fjv86 z39I^dVy%m|7&9{9+R0Cx>qhh+!r*zT6j{f04>h~fX>7x(6bh3p^1>`qyO>;Y2yzwC zdj4C{}amoIxmP9hJWO33^L1wF3@a30?F?cVo`A5NE? zsIena9BqD{qi|J8OuxpKZl6eF>6rj$_{$q(OlI5gKb?a&%N8!I+Epx3GkiFx?rD;K zL2#)dg1DdDf=hdIvl}BWGB%@bN6Mc)$92V=Xm?0?s^ygxC@tV}lIQE>?$;w6UH7eU zb^4|+=7rmvZVnFpx}B_}&R5j&1KHoKIz&gGp~qx4gaY+|QNVG7HYcnMiJsp~ZaLyU zSTyP~(8fJPsG)n~>6|NRMJA!4p<+(0+9c`YZMt!B&zlH>neOjT2QMFI-EYkg=S%em z;pS}5%?)3Q>zatj9tL1!S{vlv^1YrrA9{Xq^a9x<*^0_Nz0#!{SXG1 zty|*%B}5F4SZT8P4rMIxd`Q;EX1CUTBinleQNao%?CZfOf<3A%cf%PV96wRpqvav1 z!Dwq+Bi`d`c!nKq6G&tG3ax(~vNt{PSfcB7v7xWqtuUac3Z#F!q_JTuSwSczDC47t zw>~^PTwI!(s(raVnh{k|nIxh8?Yx`g82U22HJ`sE{hbRgPiez)K3Sv)

b1_e4cmVOgz%I3xkU+Tm&5s1@Nw+j6CIA*q4+vOwS?$Hu{d-}CgWcefTy1v=?p z@AQ1zcpT(RdwG850OBeWd#@J?mF()HAKuPEf0PmK#HtP7jh@_KhsZj9{(md7`CZ9= zs|pgJQEQMPyg*O6OZ#v;mK{Qk?5f*_cjqMU%^&~4!NI^DM%s=AMvkU*GLuY$j!QD& zn08O;I2qdP-s~M}rgm{L5&2v3x)tYeXrbD6xX5&Lbc{j_xYVk&ubxpWK4rnw3=Y@* z%A*G7QD=h5`5>)xN82_W7=Z9G-`3x76;tp>iDKqMwx7ZxOGJpI0(CmaraFnM0AjhA z|E?4T4(+QKbN1xNj^{-ur^?4k=l4r!{ivlnlgRg{NnifgBRSu;Zso=N$TF)Ba)%xD zk<;vf)*aLL;1;Y*jp=!q{Xd_e6Kw+|nc4`;@BL);ne20Y7Th1U5PI-gnVB~~8ueZp zqu1Kq&_L-JTV0%++xl%z{ZVM*DMS%2-JWK4-s!U7jFWF>ULx{G|HYFwLg(m!3)X<` zw`*!{wklN~ojAB@Uhz3(h&g~#H{!5ap1t~KG>hx&KA^?_U=Fe)qxOs?v<_OpA8?q1 zp((OIyObB!{6zwr68#h@s42z+xgADya_vF0zluNu(7^nzY#se%{cgr;?g}4f30o5LpS3vn_Q_3o>VIf~jq|RyX>$ z7@=Hw{jnqlsB})dbw71j<&-xaWUBur@Ja0C)?Dg8gy@?EN81E@PIC|cVA=!Vp7(#; zjyVa$Sn$xAU%f7WSCy8QMt`D`{UakSt*pc9PLBqdx+^pW>zt{`;08)dmCVFfz{2~S z#t+}*YI?WN@#IHYGCCTI~_`@!j^?4 zBB;X2PDkxYk0S?Cm7vFt|LXhd@D@&$6=uCylMAy|(YEF7qK&jN9@i))o_fH%`aFNt zt-_MQ=Cp6odkh+XezzRQP!{32Bkt|quKnQ-StDs!oAO%7>qSA_jU38M^ z#~i;5MI!4m0P*wdXM-$P1+s(g!~PNVWai_=-(rccL9@C-l0+npI5N?o%{FXQY|-zs zQ>i3oatVYEPi6Vu1piAXHlrIB2$0CkKefV__=oByoIt! zi`Xm%T+0~GCKt~(8P`lj!{b1>&{KIDr{_etP;fY*P_u(OL70>-9FI?H1NW?{sY$B$ z*o&h{7AHRQ{h~wZ7Fz!f*sh;gBC~n~Djgr7qI60-8GY_07q@pBuxzBAKxG%4`P9Qq zj?EwyXTEr^phK-gEy8ywwj&F~d!S}wDMGwpw(=5OZWH-kWrye3Cjn-g%o|f+;}%KO zQWArPb%Auqv4qbZng(3k6*$hMCdW*yf19>Zxw{n|D$C{Sqr`85L4e zEHQon2gqnV63R5c=q=Q3A^Ju(+bHkK#I1QOfY2vo$%NrTrnm>&$76Wu25|t47`k!& z&(W~FEa*aVIZV4;LIllz#c#}Hd%2$~ITK38iAj&6K#_@_-v91L$thoBMzeS|?U=*= zpIcEng-sNCeX&(|bTs-hs%2Q^(Dc>6bqXRyt|o-Aip}E>IL|M@p{v4~-w=@(*^tS1 zp0Bfu4^x95ch@i}vLU}*QUmxHnkea*AlUjhFLESn z5{IsVEekFw8wKJN-4|YW`JCHLIi^p0ItXegB;biF58Nl?qk>jnmNxRW|Z*Th$i*^bno6(Xru)#`k0!x;|Vk@ z(n3j(pc7C@k3l4j=?&~6>si_l5u(vn`YqTY@q>=nC5rHSgVDW+==g+$zuwb*Z|r&j zoT3Zp4Of8EA_N@$U(sx2WYkbzUj79mTetAq4z^DseDT92L-b9OPUacNZ=Qvz_0rfW z{{_81p{q*mE-R56O9&_D2hBkQjH1JQhp4Cq!5cKNWMFA{Vrfj%J~5LEUcJ2ij*gDL z2S5x;6_qHL?w0Skzz>W5rT*{$nQKXfCkt+H3D09~uCn^@n+7bL2%^#Qg3piK9^W3_ zC(_my9pq077hXbuK!cOAW4(r%EK-|5;>@i%7LF%)+SWh^S|?r#W1x%@zm;H zX+JT2MN*~_68~J-WEK14G`kqXVC;bm`VgQT-vJ92fJU&(4oHbPy zSsqjRC9PI9BCs?u4NzIt+dxmV6lsl5iDOF6bTH+D^Lrr%3g?jIhaC*63XekEYfu6s zq$C`;U``ISN~qyUn1AnDiso<@1$ZwlkVv?tbRo&dBeCWI=5I^^zai?ejB^*I-fa@u-Ba_vsLF;@Sh#j1Ed*WfU8?Kfjpa`tZS{Gyx zI5u`_kD8>hJ>lIGig9!I=IM5Ib+yJK4F|oj$rK2#FohXgFx24ayoPPHGzD@ZOh=vG z02wN=iLZJUhTv#)y-7%QpyHfGSTNBsRZzLk9VJOP#)r;Z)V<#wiBIi*X$Nks8633k z@wi_ybNV>VeyisWf>F9cFm`4ug-}5>Y|~hE;ee3_wk)HkrjtUD4{(M|2O5-jm!Ccw z)4<{^_Y^fv=!w1eMic+gRd*O>@_R2s9G;wvB|{75rhyWgpg+?D9qpDXwm6N~Wbkqq zv8+i~&Nx?L>j9?z8EA9F=7pijCB%}AsIRvnLE3shn?d9yTYc!^LMSDU=nHZ4YdHF? zqJ(CsW2LEqIiyWY!tTK~YCu)$qHn-`+W13AH0iaFmWLe@V?ejnVa-Hcux1MUUVIs9pbwAc% zS}phSW9O5c?93vo=RKKZGCQ`%l?|z2kKR+Q&aUx%u>H7rTfb-&cvy8($evVFdE+hH z(E!nj300)$%U7mUibK-!IH}wE=r9V!y*?%;4cvdo1eIp*E>rl0!=qKD<&x*-jY1fY zh@l`Ejnh!cJ!P2BSznBuO9vvRJ`{0#W8-rG9=r=U1;S(bmBP%;$a6Fdd?UnZx=|l%w$~~ zz(p7!RHK7huF9}$pd853Wnn$n>W&f=Qc{5dG*a9*t{J)F)R8 z&5MUq@*_o|VKFFr4QFR~TLS?^Z7!EYBlgGTCm-@B z%)3zKW1{|{QkWw~zU8~@fkJyN{h;ns@`MLZrMykukQIm z1LDt?n`S$ER^^%w2t*Vp?!BNTfl#EzLNre+B5wLywqE#+whT+VIVkNXvZUMZg`Wt1 zk%57oDWD*~E}(*id$`!>{>*ausfU>vvR^KP3!~d{PtwrQ@td54nxxp1=a7re0yFXg z+Xa7A%MP^Q4BOF7_J`M{QuebldhHMT_Ub_8sudjSH%9TO34RLYprwr*3(Xy2G`@z< zQ`J?LM>;a77>ez{xUKDpY0e(Q(9bs%nD4(cJmOHPG)@}O|AxXNF(ySrk{;1OVYRij zU4Lxry+-~q6L?u->!l5Ys)x@_fijhu$#~oNc=06=i}~7lg0_w!M4zTVTQnqe42TipX~ggLW^_pFxik(&ax9dD@>nlYcAYq|aOA+>R);D3$Oa{*bd}2sB(tEfmz>>FI6Wm(zODAZlqyH9v*^ zs$nkXw8;apohx@!cXzJPn!`WSYDhJ8OBG*YhQ6#+$u$@Jbku?u6c!G=EeDF%XR;Vx zOc5?GP4vJTJd96Y8NaZIDj2rAUCd(ystCVEDIR?!^4{VjH z4|d&euE%yC_jX9Y`B2|%*F8{f5iG-r=TzpoDhSbLOP=~W#=yi?cItK*B;pJD5 z5J4dAz&z@6pacHo`EZ`ORTgYt`0CAupULO@?qz9dSw@fVvC@PD0L6p1x3@N()-5K` zn^~Uc3f<3h)v!F@zmMs-@<@q=P99hh5fWPeclz**&T9WeJ$bvA`kK_^Vq@JbK1gVi zcL{-K^{ToGqkeBScX9_b9P6_BbH!SteO!?FR8@lv&c=5Sv6i`6Fl%{G>Z9?PIyV}k~XFt5wT8N+gvEOkH1~Q z3dnnUdRBFIdZQX(AVc*%dA(o%{rfk?09Oe<)Cf@=xLwD1GK1TwVCHDWuvOj-B20vI zy83mr`Z3%4eo0lIss?HiBkG4|dRm$$x~b+<-=%|#X}3v5qGpP0bOZZn;;Min%MF=n z1QkmLeU(-93CHHoYRKa=C}x_?Wd!^btJog=IGW&p|piD&~l+lXN%ACo((iUW!~^KB}R0%-0A6tR%7scDxwC~ zHXagC^09n^d&k}F@0f=>&Fi8WZG-(`3Tza7`nw*xyLe13k;)~k62 z@$8=)7Z(=}d@P84o^Ov*(fA+r2OToB96z-%LS8N!#jt;@14)IrMoS@KEl%7RXM3D> z@_dh>bA>WvW}xtp`~c3YmupCQiwj|g*TM?9Pu8IA$tC@%T6ZWD4<3561vS65c|=o* zeR5_Gou48^E_^$gAl&ke&7AKsftp|KRlBox?5|~9%WIj>AAL2o1!7X$cDSk7ZCJZgO_HWH zM0Ht=mCv%8D-4Pa2m2p-gRYTmCc5XmN#VpAkfN>p8pv~oEUR56eSy!6eoSm%~T)dHLf>jpm+@xN5VIo}9@>s>zW#t>< zu`;oW;sKBo*Hx1(*%?XQ_UjnUpUKCh^kV(VwZFT7d#BibU16aA4OwHajnp@y&)pmn zBPJx82su1w1@;T`WFijI7hOLJp7T2%Q{PmZ)wTdPAbLj!Kc{Daqb2pmoL zX0p*^;*VEJGKfNpcPl{)(wruA#TEHNiXrdBR5fBzg@A~>lAd*Oa?F=)oNjkLJ-rQ& z&D}&gHOBYHA%Uz8=c8#J8w`etGH5|C`KwR&>c&R($8zKrZW!IyXY7T}q z@v8Q3S?+Jwh1$2Cs&{&Wto%>fHq#bUu+G?yo{GfP;$jiXzXUZh8ZLuayrEdU{eF0} zVt(_X2nqT{J|a#%TzHXeKAdEv?E380^+hb2aDP&_xbHbpIyQ`FbdU#zUKd0* zCRq*}hT;l*d8SAMW3MF+Mq_;JvOlQ>#g+~>fB*F+E6`U$>Afs3$npWHoCvDh>tW5U zxa;HX;y|%fdCd@Bl^!%cKK=|q@nnWS~M4H9!k!0=#< zKH1ba`)_+FYv4~QnzVLBM-!Jafa37chB&UzXxs^OYP;>tIKXhcS5KMcmBCu!+C3v@ z4X!U3N1(hOl3IykAwldKXFK{AE`w%Wojo*um-+Nhq@dw00#(b)Kg4_eS?}Y-H}fgI z`zamij@qfq8shNu6#4e<4kp{{dPFDtW%b}Iz-T=%?A0b|^*df;Ws-Y%MrW|g^tSXH zZwVJ6W;5&XicZNUWjMHPWi~+`C&FqkH0)?0&x{!H7(NvLqAzX0T`^~Aio3NbUTSV7 zhqNiI6s;X^2@{o{ko^S_`1bZT4t##nCL(6>dCud1{Tdw;6*XrKZqZC)0LAd#tFNd5 zwT27EGMUcxJhH^iH=`#bX>5K<3tdVp8AWQ38kBTkmxL6W9+=Sk0z|IMfO76#k$x;wUU9o!cl(V}~%m)eUdtJtM)z zWU9qBW^Zf#a{Rd?g!9pAXM4L1J0$(L{kPpS?&*E#qIfbpD)BTj@^OqjO(ugzC>d1c zV-NK~w8xc|m1e*{LjChLF5CdPIGTiqyAm%Fu?JvSq5gI9D~(PE6W;!Un@C}QiqnAb zUq9faJ^UJ^R7w=fKEShKkZHNIF+N-VwI^Uy@N1+|JFLfoA+K-7QLn||Et>h2or%(; z#Iq3ECx!3w38HRe>FDgtgd$;AxOrcHr`48#9^c;o;W>R%=C?i~AmKT0)R~dETFTU6 zq65WyltIUfc;*n6Ou~sTv6!B8dBZ*dmaJ`cdFy^sy`ATm>V$CwipS2<5WftNsY3T~ z$$uHNL3*0s*%kkH@}qivp*F*K_EY2l;=h zWYPPlNZGWbUK&PY-GiN7w~>_i7CI!p2X)dkEaD2+&G>RvN;nKi-ag5Ae*max+?5=$ zU>$HmHrp`N>N}`e%^Q}lSX)$q)dX1GIlYfNy^q=b@$|E)si{^M96#VX$zdfqzPXpw zNiS13DJdy|USSOfr5Q)WfaAfWI-|+KWjj$@PqEArX?|y)lm6u{jRpemXyq@ZA z@`>I`9^fXPc*NJ262&t!R_>?qCiw*gk&jTDm)wj9a&AIS93GZDWnOp{KhA5}F$e@t5nNhD zAMK_NXA_%fli0{8I)8(nQ=L_WAuDwR$Du9GuB}zR-uS*xRyQ;?6#*Uk)3DwOiR zGiwfN!@Z&S&4;8fL&Kv{gk)x~onFB{7IJC8A^KI%TH-G>Zyn$*y%(<&7a6{LiE7_A zUe+J}IP-Mo$?d~J{B_Z>wYB}Hp>hMv&C_pOdF0edJF>tb`0CXmg!N-s{k<}={KQ>@VHO(qBZm%)*!K2uI5Cx?qsAZ>AB~6&}X;XXX(N=5nYEwooVU}v7 z5%RL-=8CbvKY^5N0Pu7|j#XGfbATpZYPQ?Bil>sp@9XOuYl5U*)?Cq2arLnCLEHQN0cOhkwB{|-7ov>F~c zJ}Io=+(1Z^X80x2`-uWd6DW~JTOeA9bN*sgcnmt~)j)Iw2W0j-$Ydmb#=mbtouSd^ zfuTgAx+*64y9YnsB{K}xw&31`(gb3rC-C9y0vZ8Pk-ixdfRbkGf6hxUGwIYWiZpAD z<(Hf$eBkYK>978AgmRwG=`Mg#=~SC>QwJk&gF~#rQ(Oib1_zKo9igs^#oPI9{rRr_ zr(;Cq9mpmCfkAV6XX)vh45mg^YG7@6YObI1hW;!Np?t?``{Q)B5JN^LnH~QCrsv>h z1lSd{ul!yuta*YI*}1trgrPUZh`f!xURE}m09?!01n7AW zT9++6ATTj8eJCRI!VO_$l$Ycp?LIjTnmD=!+e>uPSc)vh9TW&nTt;rUh?nw8761iivUg&p4aZG}D7+-NpiDv%xDhY*A`6Zk1 zN8+pa^fqK{qiHx!sHH1ZQwF4kRX_({s0#ijh{h=(h$Tp=j69Qr%HfZNc0{uYTba%% zNeX?&zSpyh@`#!g$goFslds=hClv+&WC_DXGy$1Z8wP^FXMx6mOmba9QnN{ejgaFu zEOLMf5lwu3OpqT)djXSg#S5D|qH8F|RkJ3MOZ-SucIH-Jp6R?gQzp;!!>`nI(~W-v z{(=tbrW$^jMW@K!*IrA4GVS`qI)sb{o0m%CZ``Tk@&+ zChZ)!X5Z`~Ad}Q;a=Q(cbe2POY9xV&9Z-`w;kshaFeHqQnNct1(d*PIBj3&oNtYoQ z1&u8|04G!F;s|}%32c12?}3|-828Ux>I;AX1HZL3&u7 zN9(*ufq(sq)(gj+Yx}!P;GK*44do{lMk9&}>MD9&LRr#YV7Ui=9rG4p#H z@|?jWM-|RjEvQeA@LY)WX>8Y{bk$z3k$SJ&qeSmpM7GO~Rtv6G9KG7R5xYK_l!SCK<)mnp$RJ zLka<^Tw5OiENV#B^I6g<1r5VHx- z-x}U??VXRh_g&@9gRuS{VkveVGp}9NuW` zo--Cu=tSzCmcQ0Bk%IXi1QW|rJfc2RAVY$DwT({W1UWOZaa%RfWMsglp*RTbGzkA+ zW2xnwfdn`YOpYQBWwG zZB;;-Ef6-eLjzJ#Nz`YiE-hOQLJxL1J!tWv2Ft43kX5Kw>1fr&?^bZd2haRE5HO&= zLB&MWuu94!i{q@zMt3W3qCq#q1POd|aOTPE`1e>rb@ z1|6c*Vlg3rfG0X_euXxTvnrSFi!|Pa0zFscG1)?T^q43vdh;cv857GxLPg6CjuCQ5 z&--rfj~+4dA}8Nb+-u4QIFqMIGWwPt|)WbwBRUQKQzk`!9s zi+j?y6ZD8-6>(f!82#VWgnsM3%qIY;LZ4a&vZjI9DPCJ(yTzSN)n{}ks%_Gymuo@F zIB_p7KEAj71zpdxw|}XyIO)YWSm?L+%{Zr%UDuN-D((i5ql5kZ{YM0eV{I)grkr&y z1Xqcc1B6A@qpjLPN~y{U@@aW|fGhkuiTr^2%l+J_SCb&giuChDEJv{j#tP5IUGzz8 zBPRK{!>{ElYz&dhb*eFs_ryk6I+Ng4dLqHV`QOop7_fbzhbZe}B35+lRvqOv=z$+t zmlFhb9armmZ*zK`4_8A(3%9roiMhGCv&~(1l{+|0x*1+ag~{tj$H&VcYa!@x7h*3_ zhA@PkXqJ4CGq-rTFH#vHah{7kze|D~xH^{IOo~)qKzn4MrhfNq*N_|6M?|`(&WmF~ z3&bz-Xg60n>naoBihV*!9t1z52NeB=!jHsnTX12=YbA5#|B%h(SQtEvuvPf|Z z%fl{Xb#ZYK)7aRUC^e9%vIzNSWJJQ#-F>mC;&`ILoK4c#w;KyJl)e8=O=`p>NFeW3 z)1*5{_vdNvht)!6y)l*q5Tmw~dV?BO35N`u+`}avke&8%@3awHs)VOT;+nycjn#UM zAbJ~|o(X2NXoUt=7rA!@lf;~55$TiMrDp%IdEI5RE+ZNc9&zyE1OXFKv1}&((~Q8| zjFhmjaC{GN|DxJAEA~g6Yk>N1@x2xEHHL%q51(%Ik}kD&0ciNmW}lO0e1NgQ6i&(6 zd!dB-)A4fN-U>WGfWh=zYMI-p_rn_1+q~Ud5-y%wQ!Xrv4>v+5>UB%Z8D! ziLhh-7cR0%tvW{8E?HjFG~Vif>j{l98+hMX#|@5LJ0iLUL~r)S;0M|suRMo#M%=Av zO$TF^C6MOf-|-6pO`A5mwn1aU!UClsx@v@+3kIuW?d{8non!Is&2@zi0@ARIj7%z( zTo!qvq|OK7(sbN^{U>syhA&kAiW8sP!zns4GP3eAgl1d-9XkgE$3Wq&wpwcxS_uR~ zYE*(>Kk`YkCvk+ia(cDDbbQl)0uX)R-4zz@u00ht+h%vf$pgyD?C;*Xdpwwk0+v%C26OIjmzi#?0g*a@fec{^wl~ap6TU6hRIno(0`;Ujilw|78p=&{NcX- z{dnvCctDvlcV@~%7mX<^%dD)dWa%f?#^pH&%>%Olht{htQ?)kjueu2v)gA%Ai2)5K z@wsS})dgSkZOYR0PUW$@$!ok16jyr%vH4%8+ggO{aq&v9|tq1|S-M{Z|FX>qx`>DTySp*xjU?ERGK6s@L z1eQly9^e)X+*)|zY8asPa1+7wo{b21u6KpD|8Qr79H0bOE0LD*|7N7k#$<^Ue#3ejOj&FLW2RPC9+ zhS{V%|5%BZn2(6BHMI?;6@jR#ENR$!{sf>z@&9ny31UpQ=r;g*xC1=u#)8YS6~tyNhgleo81|UvucYWg zvDMhmFg?{G7Pof>t(2`iNPb7y61V{H zIKisH1!SE3rQ-ZC{}p!3zoCoW=g^A)hnto8-3=8&00yzh0+mR>hc|oNbPeblE?%l2 z7Ew-x!v0H~7gjS9k;qeiJDBId6rr;#c0SuKS9)G|ut9W9OWhU?`8M>(^+Y!4R4kDi z&smFK7u4SH;IhP1dnwFd=dH5x0E=!>S4SkFXt%6LtkBV0yL1uHVYamP$R^XpA7E)M zQCMv2&?_i#iKo8_kPOcPwd$vh7d{W|OZj3kz!;D(%qzTsW&UW|#z3z5L5;S9MIM&= zVG`fllQnL!t_2CjZ;Jdi$rgW&}xfzglDbY^c&+iRTTr6LwDUm zWB&T;Cj_-vmWnr~%JkI;3N_eg2JAn*k8Gx7XV{KyP#GK$Unp_$UouolT{L|ubxEG$ zq{|po^KO4l?fh^YH3?aAgc)PyyAH~zPv8&zA>ibS;NajUGr1hL9Xp`~7hIN?mv@0V zBtc^ILqYd5JKQNo#v~(VEka6*h<;&}YYcgO`D!{9$}+^!&jK+6^5l&TFjQ-o>&uIa z6NU&pjL}xfrtSn|?6nz?c&xIc8KgEcI$v)0$?FF&6!)P$=v3-?H9BL_JMn^Q=5IUk z!xlqLxQD9rApej+GL@}c^HWGmUl^C!Zxv~PqIdOqVAUM6FZXvp#L|5~o%xS9JU&}o z-(f1I!Ug&`{D|7#JY6kd9@eOrb$# zRcQh0A1H=*h+a!1jLO1Y@(x$Eeg_8nV)1#|SQaxi9d^|pzpFVm)kq%`hdV&j;0W3y zac}_rNFkz#kF)6PW4W`i-c7?cuCmJ9I#8uj0r2s6el|AaiHV6SD~xx0E_wk#4YLId zrg24FLMhXi=<|3?@3SS>ckk}5%31N7Ed`-iF+e9Pze@w;h(Tj;>~c#^*QSc&y>_X! z>Yc=-1H-jzL_lVdek6~7GY)_S2&r5BNVKHX*+-A>ud{5>>qcUZDq+yQlOWYZTKoMa zL#Eq%ECG64-2u6{N7@0Gk0A*nqCgGLxOdO!`+nN4TQX9ZF1yOWDGs%_c^jcfqKn~A z9GRb-mG4n(FVFDh43CLvI{FZruRa2k0v}#>z=_@bDiQE1|vegL>8&TGmU@mCxvNN=~X;SrTC7EkJz z>5LA3++`+d!~n?EQ63b{?<|#prg}s&UAl%psaQJGDfKx2V-KNxqN|L7Dl6kaMMZ6D zuUc7OUDeiyS<_3BSi-ZG@5`?c$4}F~N~7b=4Lsv1q;E61ujx2RM;!rrClpP%pNYq+ z6yGWw5o(xGbB<;9)p|?nWJRnfN<>DqXd*Z@K(?aDR52#_;=|(Nf3SbZ8-J0RzM>%k z7Qpx0v!(e6zVr7Qo4L&#tP=NHBb-5QrJGS#@L7M^1f@Y`Dt0qbH)bov{HPl(nEaE1 zmc_K^l}a@nyxK|!gC@*Rk{d{QS_BnqfDrj7or(u$3YEf2@~k>E>k4utfFh^U8P1I* z>ATGDOHE;&n6u@@1?Se0$w^a0T0GY1y%aX{Gjm7zM>N_6s)Sa}s<%_eDiZuC$%hT! zZXRHIK`baN1pVp@s$s|^=m==As_nP?5uo&KZ6}^a%6$uj*bq3OgNl3;R@ z@!#-ir>3V#yMe)+_u_1yHUtd4zfsf&CZwhj3i^-f8?UAv^dJCC`Ui`-GHSQTzwUE( zbI+`=X9=!Cai&o93V$K1XpCc{WVXVoxKxJ#7yK=8n>ydo2OcxrN2idb^ulMQJHbi2Z3I-wTH!3qKrrG$A(_K3E7r-xL^Ccm>9k1=3}U zk&;Ygh12E9^#rzxiY;1M_!*+nusw)U#)vy zjCa02pTu8u+)UI74bkx#O}VUL3^_24)OqRcg-WnJ{fwmuRvO8NPN1IXh#xX49WJ?9 z31!c)U^Kj>Dn;KVkx*=X$b!C{Rg!ag8~S)8dLYe1AQBO|p3C6*w?=-)U2(|AU0}ZI z0x0$i0R@;UxPT={K)+^sM|o*Tf7b^~!=%YQb!nSAB)L=&h)=Sutj``f! zLb~8{6z975zj@P{iEk&pYs4TWC8Z}j-tbnsejfXIRILk>0Shr7!10Oc{UVw==|`aFZ~+rKwR%|ln78X%i94e9Gb2omjfHM<7H?%QJ_u}?BN>4&-LnGkHp#IHiocgjVVW#iI z4o9p_2fEqMoIHpZ%8kALD~vYK1&pUXG&D5uLh=ThqfT}Hk(!ng69#tY!D*7O8G;L{ z!=GALv1-IEDwUKZ@~>Vt8XtBKl~@?T&Ta)3H(hvpM~!m~W*Z@S0Xu+`j5i%_4UmF% zdL)vT&NFW4 zPT_l*Q&g+mr2?aemgeS%?sj%|PJpOPs}%o~{a_3X+-y{|c2P%j4GPK3*Eg%x8Ph_V z7ff_nekC|UwZ(yy=OgE`TXFrTxqE(nx?wF>_9ZNj*qV9eli9fc!`N3wRnBm=OF$aw?vie#yHlkk1ZkwZ#y43Q$=Mjv3s!O(B+#40Flc9Ji`Zcr_YDEK@iKjSX_TnX-sX7z{too{BeSf zXJKy#!Z-82#n(@hzjiJ(qEj&*)WgrhLM( zWEG0G`_!sbPiKgSaN5{44m>Jq&3|Gl$m)qZ!AL+;L17}*9{-76xv#kHBPFxK_(Mev z4NEOtA@)^-`>x{nSwH7Xd)Bsc7(P9I+jhfCiuC%9I@FE!FFnv71kq7+h_o0IDwNhNP4eVo7%|Gnev zJ?Dd}EE!c7MEf_+jY0>7g$0wHi;LbS+rufS;r0Xen2`Ec>Q}J`)Za8zO1bNJ&zRa6 z4D#ld!VRMn8BqAc_SsM}35baHeRr}x#RCX~G?MbzFO`TU@DqC4I!Yn|I)ZoE0){t1 zHDRy2UFh^5`OQ1OdGaP$36*a%x|S$Mg(?ocC80+W*=*200dxaUfLM$9F#mjK=->?? zHTT)MxhBVZW2W%@EYqg9^2@1IcH@+C3__gZjVrRz)iALYNiLin@MxxQ@I@{{nWk;4 zJy>C9>6inFn|Z#)ODdhwb%dL4xu0?%#8zO<5?Z1i8EYP#H^6;T*+1+qhaI~N`5pGv z7T*J}c^t+WvK;PB7%(z2vI&GnF1!gN@9e=Mno(?38Mb()|HF(G$BVLZk_FKnHwRNx zGl&U$NQQ7a=avRTTjkriTP^toHd|%qvRDcnZna(u`|_VZf;<8OnL1DJ-{K=X{AqQ& zE>_5JSFRi1G2x~0fJavWnV^G$<#4~tYzjjx}E35UtrdJ#w z(1mfWljR3m!eazgNS{`Y^1atCS?NO1RvAe}D0ca5R!QZ_-}p;ci1OQy z)D@AA>d33VBwP~Nc`6RwjIZUWgHvY9;zd>g?REet&iCV)aN%CYnW@b=#uyrGWKmI5*uP5?=UP`z6YYd!LPtL<(oyG!FM_im-p@nW ziqFNO%)LjnbM#@zkdBHMx{^{?$U+aOlv=F6jvcT6!^=^=EOpoIo#XPQ(v)w7SX$#|Kg~WI))kcJSb^`%zF?YT+$zo93 zw@bHNaCMp59ysBPvfq3k>#t3^5=#>J7V#yy+dZlb+JHLjv)E|n^9&KR!qu8)A2<&} zobta_CHhsxidLkPzNdK^;>~t)F*JnUuZ2L^(md_l-LIC@I4mYR9

QQdsmyCnhKT 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

*FMD?}p0aRSa% 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 z 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 iQ|Z0ml+V7omj44AWTlY74Gls70000>;CL`qOo z3@q>{cBUqpCrc6>i$Id)rg-r@D%}|35$ChrDi1JW8$WdG{*aTFFNMjtGPN#?6v{!HY?F^jj zoT~(G1MUVs85w)fIrkM2+1iTAX%wkGz{N4`7X!ypFwf(Ssnp*im3G@aYWbI@=UMt=NE=G2{R{e1$y)AiaSj9*}2%(ipK4 z;B}zLo7>IC{)%|#dVx20W{UM0XGi^bJAiq_Td;)C;-tDaN9K=0ty}|eZKSWeoyc*Z zXDTprO@7y8$nY(|6ToGW_VI)s`hGMh448fowLsSaHvr$aHMe8YfJbK$p*8Fk>6-)W zYJ)e*fwzIJKwbu5ZY1>7S6W+tljlY>`VAEQLo^)8j-k^JxF)9k8gCPdWBR|;7ML|A z=Zk@xy^fr?;{-ki{EyJnJJg#u*pBbAzMaO{ISEB|qz7hU!nr47rg^BT?1V<7^}vc0 zlQw&z@LdCP8)~VddeMxU=*}rN<{{vxm}>yO?ahsi0NMg`r%l`fECh-PJ@AqglV0@} zJcR1eF4|W1*)eoJOBkcQ1$0HNSup38q+s%aeKz?XRB>Ok_mwFo1v+ue!0(7KUWt19 zM}c44i9M5oRxfYfOw?itnhvDZ;TE(4r2>wk3R_H=EWI7G_~)(f1nQBudCZgpm&eTM zhFZJxP~E)A>vP`xChzz5BtU#H`M?7P==Z==p1c=C7<&rqsdc{^?frU9Y|iM@?*Sp9@@q<|rFYoc5r)bE8Sb-_h)|3V0EX4t7U* zOLwKJn+2w~8TBJKq4HZzm=rl<>M-zM>p$BVIS1&AMhaD^*d71|8UTz|8L->{O#$8k z?gPX*SAm90M>7TELP>T3bCD*KI&e`e#sG zILrFKibm%94ZwEv1Pf5>R@erAb46rMS`f~i4^#&yGZy$AkmsBmf||=}bf;#Zr_mGL z@qy@WH=s^#Bzls0sHIzn<}r1^*Nw&$vw$YwMP6yU+RC~BKQ!>m?DUS}nQF9Pw-idT4#ticnj~hQ!Pgg$02K90gNG% z$i+#8wNLhFZWIx+u**5u6)i|~0jfph-=w)jsXhthqDJEg>T_mA#w|mw9Y7DXmUalu zr8-;t)u^uRbIz4I=jJ)*%F%Lc+*R*AU*Md}^^u;3hV*4XmjuTh)O`PdDz^ZYG2^~v zeTxV`S-giPg~91W?|PtLiggPkV=p~!lx4e0kvA7;^S|^sK~g$ zlW!7{mr)S|4Pb9Z15Qw2oke7Xi2NWulWv zv&(se>F_bq6gf~|6IjBZNBV+qqw8p?n`LMUQbfzI*Ds1hVzYJt^cpH^M}R49jLSlE zkfp%gG5saRv?GBO48K1S^~a6KGw>ZbBXW$xnst z3dR;*;w`w948E138Rdnj6MV&+Kf@c7gPP{qXpz28D>@wjCKs(S2jBhoqB%{kHs%x( ze)A0O13-R~wL9!DT2_V{iCVU5V4aA(-p2T`sIC+O{{p@zB5x#F^Z(C{EVzXLRt^9F N002ovPDHLkV1kg3dRzbi literal 0 HcmV?d00001 diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20989288e96563477a0ca9e419b0c0410a6d8824 GIT binary patch literal 6253 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 Xb(FS#c)&eY00000NkvXXu0mjfkajos literal 0 HcmV?d00001 diff --git a/images/private.png b/images/private.png new file mode 100644 index 0000000000000000000000000000000000000000..5cea272ae3b391f6c769e5b501368fabc813778a GIT binary patch literal 650 zcmV;50(Jd~P)8TVE(Mu7LB1Vk9hu>Ip_q%61 zzf&DPw%y;k_kQ-f=g;r@Q>m24QfmSIAPnm0*dw?FhxF;#DlAB~fpyU8((eq+f$PG6 zS6CibIWVVrg zHAeD|1;G)M#iZ2YnP6fg;2m6n8}J0W-6nve1}0 zEv4Q@CJHY40R}W~CN7j;B^-kWT641WJC{9m(-V4owJuaxx~QUTo5@DL*o7^jQc4#k k)V2Vo@k1g5VYsK}fAhV>C23 zHaRx5ID|tE&VoZjh?5pbL^m_&ABeCm3>u;!sKM*K*Wo;0_@dui4;;=ppL5>N^PJ~7 zjb^i{hc(c}I3D9R2JsoI*gz_Jz$xIX*uqrhYz*^Q#B%BtKI~Zq-bWMd*gwTwor8o9 zF5_0LKjL~seiT{*_y3i_d7KT0Z}BtqO|-(vXq|&@Kwt1Jvb~1y$fXA>ScOg~IO87hO;cHO?U&JXPvLdUt9F=hC zU^?DBfkU}PU0lO1Mk|p|S;7-siT#;?%XEKN*0ok(JyL%k(I3i1-NjwGfaUkDb+9e> hycODj-2eZ=a11WdRbp(XJP-f?002ovPDHLkV1oCI!OQ>v literal 0 HcmV?d00001 diff --git a/images/private_16x16_active.png b/images/private_16x16_active.png new file mode 100644 index 0000000000000000000000000000000000000000..dd43baf2f888becd1452f8744c8825eb8f1405ac GIT binary patch literal 475 zcmV<10VMv3P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FZT01FZU(%pXi00007bV*G`2iyV% z4-ycVoL#~I00CP`L_t(I%Z1XhYg9oL#o=#XUPOW#n}|eF6cYr&&SHrKiJd5xVqtA* zWocn!Ws|~Mu&@%VjY1F!t_kEHkdSm@&_WCdTDaM)&3W)x-XjCU3}@zd=FYvhv$JRcDR^ITH z4Lpk0!Tmz}IEAAzT*I&EZ!w6;Oq0PV&<=K^J-{N);29=!XS;0q!Z7RKyfllC_=75G zKk;%rf{DPVv5L7ERc96a1NZQ?Y=F;V1y`eQU>OUT#uvQCw|XB`@HxE0mB8z`gT1zD zl_;@~i+G==8R8ReCl6(kTXpC`rXuh>K4cw4KZcWmhPAn0!Ii<~{P_a@r9>lKLmxA> zmmB}_G(8VT0$1VwuI(E~iB}2zb6$U#r1o()2`uVij~lF{=7VTcssEuc{0HSiTAl3= R{hDoX literal 0 HcmV?d00001 diff --git a/images/qrcode.png b/images/qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..99f252673f6393c12c102d635ed978ffa917246e GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@q#X;^)4C~IxyaaOClDyqr82*Fc zg1yTp14TFsJR*x37`TN&n2}-D90{Nxdx@v7EBhTr2~I1m4{AIjK%pp47sn8d^K&O1 z2F=_wWkIaXH zrYo$xzSk?M^P+3rT-hh{E?b>=tfAxTxM0e}^vBww3fyarB)WH`YMlkz!rP000^Y1^@s6LVfqm00004b3#c}2nYxW zde!-<^SpU1c%`@^kODH zz-qjWz5Wf89q5jTE?kdoSe%T;;Ut`Z@6}L_7=Rumla=|sj9+j@uJ@?w>c9{+AFpEG zpw$%-vv6S^vJM9!Fg7B#U~W2xCvZ0=;P8KBf}`*P?#deu#~b(%x8P|Ujju2sk2cs{ zg+&9-YvbS|HF=X;)~{2Qvk7x>AGV+`bFg>rdkUBSr4v=En{Z4U=WDPW)AFFLn47k1 zGZ#y+9?{kbu25w-u8o5!*p7Z&la7AIiK?o;#Pkg5Ms)Au1ZS#!=d?Bs&Q+`X9SqC0 z1=x`P4`tX^q%it0Yk;~Uq64>Pveq_~)s3b28l&+@DP?<_Ct_$sJeg`*SW3Aqaa%D) z%Qz>)(9yX49%@ZYQWf?E4oD^StHn4SN8lSA+`ul>QYRfa8PAkberq_s3Cr@pv+yhq z!Tc0Pe<@{ohH@jmi-_3~F#&oc4EbNT*uC2M*@VX~C|`P000^Y1^@s6LVfqm00009a7bBm000fw z000fw0YWI7cmMzcG)Y83R7l6Q)@^8(WfTYS-+AU%4J@NYHT%%$L*=3up%n;0WriTj zJ_OPG+bAidOfyI#3W5=fKuary2(pOCGD}xkP1I~TGs+-)BWPsN3mC0c#?_azxHlfh zCUwEhb6?kWuIqo!|NPInpD3mHuSZ18!}S$33fCdEv0-G5mCkoKO&}K4^G1YbXL*lU=@~OH%_VS9f|j`ExlY+*=xcA%**+) z_zi9U+T_L~cp|+%8{c3JYPml>z1y7go6wW*oA499!U`OLA2DkLq!tnFm{Cf(rId02 zfe+JgQ$#f4JZ!~qL@X?&ticHpack0Y7A`^uRwqrnt28dh6_xPk<2lsu0UpE*Y{&@q zCPmY+9RnE2?UnciPgaFcLnHpKfcB;;0?*{dedg`aV63gX2~{$*)CkU8kW)I75#DI7H}MgK^WGwj1N2ea@nzQb{t znYKd-bZRF3#LC&nM?_Jj>(!*|o=P;sDd{CyBMn$wO4(IP=}4vBk8b>l8!Ar!fWJnC zk?0rWYg|~Tdgo&&K1EZmt-#KFUyU#Da(0N7=o)oL<+9uGIoj(0%}I~@u^62gPHCTm zeM#Q{cA>d0NM5!qsW`I^&}OVlfc5wu-MO~}JMe4@BMu6Z2d>7)IDgFg-PtboU=bcm znpS4pnVNR%apSlkX?Qx`N@X?Ru%zP4O!#X!Ba=Kci+6UOy#r5G@0(Jula^9G!R(0W z%9^RAhpj1+wb+k$F*l3wrHE)oOGY+YT@&~|Y{+M8R`iJ1ZFn!8Xvjj`F}6-73i3LR z$?AS1<=lsBurxdNG`x_7+d8%wCo&o_lr5(l&Dqm#Pa$m2W_nb1@BN2D*8{k&GJihh zz7XqjtvP=;R=fIS=xV~Y%Dg4JKpVbAV`Xm(?wd479=;1pEAvi#gucq!T>OfTL&=F! zN)Pr$#6uC$QsKQRA})`JJF^4#l~VdAos%&UU648H#kDvIPp8_JkL_Ef6!Cxjxf?tF Y0n%X((+2$I#sB~S07*qoM6N<$f|Z`7N&o-= literal 0 HcmV?d00001 diff --git a/images/squiggle_closing.png b/images/squiggle_closing.png new file mode 100644 index 0000000000000000000000000000000000000000..901fff5fe30748043714389a48527a688c3447b0 GIT binary patch literal 2878 zcmV-E3&He>P)00004b3#c}2nYxW zd2cno#%0&Dv{sMt(a6g`wieH5tur0R3pVYCx77^F>d%Q+Plu{1ETx?Na{kl%* zLAmn(i&wBQ#x?vLhd;m+OsxX;@^}h2;|5&W7p0U^_Q5ytD9*!m5%Fr5J_U#3Q_@OK ziHL>W#(Iq+LRH4U;N?2muVLTbZ~cAb_SqdDl-6|>mSPFc!5$s@{yCn(=@>hJu{XeV zcmjL%xnINJugJZ&_dpfUMZk@4F#Zj*8M3S4A9ym7UCWm=&@M&c^N12~HeB-nZgayuDl7 zF?ct=AN_GGLr4+v06r@n>>c=ODP_MQVn0uY+L_%N_F#LtZ%2}5V?+F<+#)BIQVz!# zBjUm4#-)@ku!oFNlO)C&hu2AG`KomK<7$^(y9v-E0m_oW&Sa3ZBYqqaE3g8`mr}OJ zNu`ukGW<@*o_Mpgo(&uNuf{^$ga5(9GD;m-zwcQ}xehc9Tw6-H6DLK)^NsCq!8`it zgto?h_%j@igD`0jPVIPn6|*FudqASe=4S;i#{1CIh38RKkuPDFhWFb@C%OPL8l%Qs z{B<9M-4UP1y>bt}jK?d(Ur7{rJI=)0`k{pBRSB!wOn#LNv44XjaU%{}?JrZ56 zto^^;qRm7J8J6LVy^7dXLf>|R7Mxlc{|=W*=e9+QwmVnzJEsc&uh_Y%%^19^Dr{j@ zYAXf&94BLHQ~%xZqq+d+%J4r+g2Geqiv}LQ#Aa>gby{un{fITl@?tF@wag#BTRU8b zDg8A0nV2Ji)2AeKU)*NmQ7!CT?B9iN!N+B|ZKcR%I0IXD;IUIf`$KwPZi?^V^-Ya0 ztqtesC+?R(>C@7gz0_gy%VmOfByMY#q4GKv)7y+QqxL;n`h{8g0LrQ|msT0R(!6iJ zhXd>1@0NbxoBf#lZupE0Q@`&p`IR!K_@_qGt!94%{sH@7->QVgIG{fZ(MNfIS>?H< zISn5xL)A1HvwQH?h3UQ9U(3Z?yiQ@JHux)iLprlB%W$?*W_1%}2%1@+i5frw&O}piu?qH@n;NRr}%xri+3CBriy{u`>hw*hB zQ5CeC+)hW~E*W|+&?3~zt>4S%>UI`!4n7nSQ|jMEn*LO24U?^@SuVpvSP&6Uw$gro zsFbo*o%k+t+q_4vS}(1}eCgb;iilU*@EMOQ@Td4pM0}y?`wjIQe7fE0{4?$xYUk7k ztJn-D;6AM#?8W+6XsP_(B$Ka|nB4IGcx%G$FR)=xn}vB;?zw(bDPcPnXmj^MEt(p))@@tNT-nvu zUiFtHLOoxae%m7h8ENLq)2;pL&lOr*(@!z0i_9OcZC}v<(po)jon;3tPm>O4FPW3P zNuEbOCjrn387?2G&mGaC0Na88BV@M>Hz1bm9b5=*SR`j=yq7JVk-<`(aFk(I2FQD~d4;}5|E4v-cxVGukHmL9%w z^3TfLV_D$`#sgwMvM5}k#F>jT=={^aYSL3G2yU(Gx-#(%pl~RtDzT={ZxVlZ7u@XeR zQ)Yj=)lV?wo#@azjC z+_NS{Eh)18d6P`Bl~N9r1)1aIHNrz9;^rZfY6P~%PO^>|IITL4UL+uQA&A_M3TKqScKW@LkWx$i>L?3x5?uH zGNc|A11#1Ighq=+oGF#?vMkVkWPK`uQD70JlpcA2y9JJqh`A#n$7ryKnetxNMI)sI zMu#GvmymkiND49Hiin6svgSBs|0_BW8gWHbI!hkdzDA{#X{D62ODTJ<4*^DnA|m1v zY+Fh>sNwZz<)yFY!{A||(FC!NkpIuMyYv}{)%Ptgj1D!8c=&9jdZqbvd2~2I-VOg` ctOp_g59$PzHh*&d;Q#;t07*qoM6N<$g8ajhYXATM literal 0 HcmV?d00001 diff --git a/images/tag_blue.png b/images/tag_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..9757fc6ed6597438eb8e5a70a1ab2402cdebd5d1 GIT binary patch literal 586 zcmV-Q0=4~#P)6YY{78#rvt}vj%qrc zN=UU@y$E6COaj9&r1NAlaUpajQlL~SorN%pOwHs*2laYgHBA$?ZOd~4Rw@5yFm2?1ZIg`0V-$-;GT1Fi5dB7wUSNi^%`^Ge62m>OBeX610Nsukl}DhDG-mxT?nhyYH!4he7Ri8 zrq0Ti&UXUvqX&F@JcJAe14@BNBqAY_QZAPjF(Y3r7P9H_kB#@LgFAf>xz>Qp&n=|a z>ro1XLZK^nmO`PRh#C2OK0ktd7l6-A;O5?fz1gNnCX)yR0=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})}(jQuery),function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!!this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy();return this}},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle"))return!1;this.handle=this._getHandle(b);if(!this.handle)return!1;c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")});return!0},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment();if(this._trigger("start",b)===!1){this._clear();return!1}this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b);return!0},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1){this._mouseUp({});return!1}this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";a.ui.ddmanager&&a.ui.ddmanager.drag(this,b);return!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var d=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){d._trigger("stop",b)!==!1&&d._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b);return a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)});return c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute");return d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();droppablesLoop:for(var g=0;g').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),a.browser.opera&&/relative/.test(f.css("position"))&&f.css({position:"relative",top:"auto",left:"auto"}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.17"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10),position:b.css("position")})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,e){a(b).each(function(){var b=a(this),f=a(this).data("resizable-alsoresize"),g={},i=e&&e.length?e:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(i,function(a,b){var c=(f[b]||0)+(h[b]||0);c&&c>=0&&(g[b]=c||null)}),a.browser.opera&&/relative/.test(b.css("position"))&&(d._revertToRelativePosition=!0,b.css({position:"absolute",top:"auto",left:"auto"})),b.css(g)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.css({position:b.data("resizable-alsoresize").position})})};d._revertToRelativePosition&&(d._revertToRelativePosition=!1,typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)),a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}}(jQuery),function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy();return this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(!this.options.disabled){var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element});return!1}})}},_mouseDrag:function(b){var c=this;this.dragged=!0;if(!this.options.disabled){var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!!i&&i.element!=c.element[0]){var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f){e=a(this);return!1}});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}this.currentItem=e,this._removeCurrentsFromItems();return!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b);return!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs;return!1},_mouseStop:function(b,c){if(!!b){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1}},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem));return this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"=");return d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")});return d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this +.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a),this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];e||(b.style.visibility="hidden");return b},update:function(a,b){if(!e||!!d.forcePlaceholderSize)b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!!c)if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.items[i][this.containers[d].floating?"left":"top"];Math.abs(j-h)this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css("position")=="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"}));return d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;if(b.parent().is(".ui-effects-wrapper")){c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus();return c}return b},setTransition:function(b,c,d,e){e=e||{},a.each(c,function(a,c){unit=b.cssUnit(c),unit[0]>0&&(e[c]=unit[0]*d+unit[1])});return e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];if(a.fx.off||!i)return h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)});return i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);b[1].mode="show";return this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);b[1].mode="hide";return this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);c[1].mode="toggle";return this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])});return d}}),a.easing.jswing=a.easing.swing,a.extend(a.easing,{def:"easeOutQuad",swing:function(b,c,d,e,f){return a.easing[a.easing.def](b,c,d,e,f)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b+c;return-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b*b+c;return d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b*b*b+c;return-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b*b*b*b+c;return d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return b==0?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){if(b==0)return c;if(b==e)return c+d;if((b/=e/2)<1)return d/2*Math.pow(2,10*(b-1))+c;return d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){if((b/=e/2)<1)return-d/2*(Math.sqrt(1-b*b)-1)+c;return d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(b==0)return c;if((b/=e)==1)return c+d;g||(g=e*.3);if(h").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode=="show"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode=="show"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode=="show"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode=="show"?1:0},b.duration||500);setTimeout(function(){b.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a("div.ui-effects-explode").remove()},b.duration||500)})}}(jQuery),function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}}(jQuery),function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),j=e=="show"!=g,k=j?["width","height"]:["height","width"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e=="hide"?0:1]),e=="show"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e=="show"?l[0]:f,p[k[1]]=e=="show"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}}(jQuery),function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=["backgroundImage","backgroundColor","opacity"],e=a.effects.setMode(c,b.options.mode||"show"),f={backgroundColor:c.css("backgroundColor")};e=="hide"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:"none",backgroundColor:b.options.color||"#ffff99"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),e=="show"&&!a.support.opacity&&this.style.removeAttribute("filter"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}}(jQuery),function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"show");times=(b.options.times||5)*2-1,duration=b.duration?b.duration/2:a.fx.speeds._default/2,isVisible=c.is(":visible"),animateTo=0,isVisible||(c.css("opacity",0).show(),animateTo=1),(d=="hide"&&isVisible||d=="show"&&!isVisible)&×--;for(var e=0;e').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}}(jQuery),function(a,b){a.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:!0,clearStyle:!1,collapsible:!1,event:"click",fillSpace:!1,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){c.disabled||a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){c.disabled||a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){c.disabled||a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){c.disabled||a(this).removeClass("ui-state-focus")}),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(c.navigation){var d=b.element.find("a").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");e.length?b.active=e:b.active=d.closest(".ui-accordion-content").prev()}}b.active=b._findActive(b.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.resize(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",function(a){return b._keydown(a)}).next().attr("role","tabpanel"),b.headers.not(b.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),c.event&&b.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a("").addClass("ui-icon "+b.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-icon").remove(),this.element.removeClass("ui-accordion-icons")},destroy:function(){var b=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),this.headers.find("a").removeAttr("tabIndex"),this._destroyIcons();var c=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");(b.autoHeight||b.fillHeight)&&c.css("height","");return a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b=="active"&&this.activate(c),b=="icons"&&(this._destroyIcons(),c&&this._createIcons()),b=="disabled"&&this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(b){if(!(this.options.disabled||b.altKey||b.ctrlKey)){var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}if(f){a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus();return!1}return!0}},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css("overflow",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];this._clickHandler({target:b},b);return this},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,c){var d=this.options;if(!d.disabled){if(!b.target){if(!d.collapsible)return;this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),i||(h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected),h.next().addClass("ui-accordion-content-active"));return}},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!!g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m="slide"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),b.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;this.running||(this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data))}}),a.extend(a.ui.accordion,{version:"1.8.17",animations:{slide:function(b,c){b=a.extend({easing:"swing",duration:300},b,c);if(!b.toHide.size())b.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},b);else{if(!b.toShow.size()){b.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},b);return}var d=b.toShow.css("overflow"),e=0,f={},g={},h=["height","paddingTop","paddingBottom"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css("paddingLeft"))-parseFloat(j.css("paddingRight"))-(parseFloat(j.css("borderLeftWidth"))||0)-(parseFloat(j.css("borderRightWidth"))||0)),a.each(h,function(c,d){g[d]="hide";var e=(""+a.css(b.toShow[0],d)).match(/^([\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||"px"}}),b.toShow.css({height:0,overflow:"hidden"}).show(),b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g,{step:function(a,c){c.prop=="height"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css("height",""),b.toShow.css({width:i,overflow:d}),b.complete()}})}},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1e3:200})}}})}(jQuery),function(a,b){var c=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!b.options.disabled&&!b.element.propAttr("readOnly")){d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move("previousPage",c);break;case e.PAGE_DOWN:b._move("nextPage",c);break;case e.UP:b._move("previous",c),c.preventDefault();break;case e.DOWN:b._move("next",c),c.preventDefault();break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}}).bind("keypress.autocomplete",function(a){d&&(d=!1,a.preventDefault())}).bind("focus.autocomplete",function(){b.options.disabled||(b.selectedItem=null,b.previous=b.element.val())}).bind("blur.autocomplete",function(a){b.options.disabled||(clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150))}),this._initSource(),this.response=function(){return b._response.apply(b,arguments)},this.menu=a("
    ").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data("item.autocomplete"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger("select",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(":visible")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr("autocomplete")},a(window).bind("beforeunload",b.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==="source"&&this._initSource(),b==="appendTo"&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),b==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,d,e;a.isArray(this.options.source)?(d=this.options.source,this.source=function(b,c){c(a.ui.autocomplete.filter(d,b.term))}):typeof this.options.source=="string"?(e=this.options.source,this.source=function(d,f){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:e,data:d,dataType:"json",autocompleteRequest:++c,success:function(a,b){this.autocompleteRequest===c&&f(a)},error:function(){this.autocompleteRequest===c&&f([])}})}):this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val(),this.term=this.element.val();if(a.length").data("item.autocomplete",c).append(a("").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible"))this.search(null,b);else{if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)}},widget:function(){return this.menu.element}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})}(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){!a(c.target).closest(".ui-menu-item a").length||(c.preventDefault(),b.select(c))}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){!this.active||(this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null)},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(!this.active)this.activate(c,this.element.children(b));else{var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))}},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(".ui-menu-item:first"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(".ui-menu-item:last"));return}var c=this.active.offset().top,d=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10}),result.length||(result=this.element.children(".ui-menu-item:first")),this.activate(b,result)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend(""),d.secondary&&b.append(""),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})}(jQuery),function($,undefined){function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);!c.length||c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);!$.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])&&!!d.length&&(d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover"))})}function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('
    '))}$.extend($.ui,{datepicker:{version:"1.8.17"}});var PROP_NAME="datepicker" +,dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){extendRemove(this._defaults,a||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('
    ')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);c.hasClass(this.markerClassName)||(this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a))},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$(''+c+""),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('').addClass(this._triggerClass).html(g==""?f:$("").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){$.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._showDatepicker(a[0]);return!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;db&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);c.hasClass(this.markerClassName)||(c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block"))},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$(''),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f);return this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!!b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!!b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})}},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!!b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(a){$.datepicker.log(a)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if(!$.datepicker._isDisabledDatepicker(a)&&$.datepicker._lastInput!=a){var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){e|=$(this).css("position")=="fixed";return!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0);return b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=$.data(a,PROP_NAME))&&this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=this,f=function(){$.datepicker._tidyDialog(b),e._curInst=null};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,f):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,f),c||f(),this._datepickerShowing=!1;var g=this._get(b,"onClose");g&&g.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!!$.datepicker._curInst){var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);this._isDisabledDatepicker(d[0])||(this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e))},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if(!$(d).hasClass(this._unselectableClass)&&!this._isDisabledDatepicker(e[0])){var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();b.setMonth(0),b.setDate(1);return Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1-1){j=1,k=l;for(;;){var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&pp)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?''+q+"":e?"":''+q+"",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?''+s+"":e?"":''+s+"",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'",x=d?'
    '+(c?w:"")+(this._isInRange(a,v)?'":"")+(c?"":w)+"
    ":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='
    '+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'
    '+"";var R=z?'":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="=5?' class="ui-datepicker-week-end"':"")+">"+''+C[T]+""}Q+=R+"";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z";var _=z?'":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Ym;_+='",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+""}n++,n>11&&(n=0,o++),Q+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(Y)+""+(bb&&!G?" ":bc?''+Y.getDate()+"":''+Y.getDate()+"")+"
    "+(j?""+(g[0]>0&&N==g[1]-1?'
    ':""):""),M+=Q}K+=M}K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'':""),a._keyEvent=!1;return K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='
    ',m="";if(f||!i)m+=''+g[b]+"";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='"}k||(l+=m+(f||!i||!j?" ":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+=''+c+"";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='",l+=a.yearshtml,a.yearshtml=null}}l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="
    ";return l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&bd?d:e;return e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth()));return this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date +(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return $.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return $.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b));return this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)})},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.17",window["DP_jQuery_"+dpuuid]=$}(jQuery),function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},f=a.attrFn||{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0,click:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("
    ")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){b.close(a);return!1}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(b){var c=this,d,e;if(!1!==c._trigger("beforeClose",b)){c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d);return c}},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;if(e.modal&&!b||!e.stack&&!e.modal)return d._trigger("focus",c);e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c);return d},open:function(){if(!this._isOpen){var b=this,c=b.options,d=b.uiDialog;b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey){d.focus(1);return!1}if(b.target===d[0]&&b.shiftKey){e.focus(1);return!1}}}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open");return b}},_createButtons:function(b){var c=this,d=!1,e=a("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=a("
    ").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(g);a.each(d,function(a,b){a!=="click"&&(a in f?e[a](b):e.attr(a,b))}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var b=this,c=b.options,d=a(document),e;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e=c.height==="auto"?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g=typeof c=="string"?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var c=[],d=[0,0],e;if(b){if(typeof b=="string"||typeof b=="object"&&"0"in b)c=b.split?b.split(" "):[b[0],b[1]],c.length===1&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")};b=a.extend({},a.ui.dialog.prototype.options.position,b)}else b=a.ui.dialog.prototype.options.position;e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":data(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&typeof d=="string"&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||" "))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var b=this.options,c,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c);if(b.height==="auto")if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.17",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");b||(this.uuid+=1,b=this.uuid);return"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){this.instances.length===0&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});a.fn.bgiframe&&c.bgiframe(),this.instances.push(c);return c},destroy:function(b){var c=a.inArray(b,this.instances);c!=-1&&this.oldInstances.push(this.instances.splice(c,1)[0]),this.instances.length===0&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;if(a.browser.msie&&a.browser.version<7){b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return b0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]!==e){var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0}},top:function(b,c){if(c.at[1]!==e){var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];if(!c||!c.ownerDocument)return null;if(b)return this.each(function(){a.offset.setOffset(this,b)});return h.call(this)}),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&jQuery.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()}(jQuery),function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("
    ").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===b)return this._value();this._setOption("value",a);return this},_setOption:function(b,c){b==="value"&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;typeof a!="number"&&(a=0);return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.17"})}(jQuery),function(a,b){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&d.values.length!==2&&(d.values=[d.values[0],d.values[0]])),this.range=a("
    ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;ic&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i);if(j===!1)return!1;this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0;return!0},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);this._slide(a,this._handleIndex,c);return!1},_mouseStop:function(a){this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1;return!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e;return this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values());return this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c1)this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);else{if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;Math.abs(c)*2>=b&&(d+=c>0?b:-b);return parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.17"})}(jQuery),function(a,b){function f(){return++d}function e(){return++c}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
    ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash){e.selected=a;return!1}}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing" +)||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1){this.blur();return!1}e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected")){e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur();return!1}if(!f.length){e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur();return!1}}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$="+a+"]")));return a},destroy:function(){var b=this.options;this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie);return this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e]));return this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0]));return this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a])));return this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;this.anchors.eq(a).trigger(this.options.event+".tabs");return this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup();return this},url:function(a,b){this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b);return this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.17"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++ad.failure_limit)return!1})}),this.each(function(){var b=this,c=a(b);b.loaded=!1,c.one("appear",function(){if(!this.loaded){if(d.appear){var f=e.length;d.appear.call(b,f,d)}a("").bind("load",function(){c.hide().attr("src",c.data(d.data_attribute))[d.effect](d.effect_speed),b.loaded=!0;var f=a.grep(e,function(a){return!a.loaded});e=a(f);if(d.load){var g=e.length;d.load.call(b,g,d)}}).attr("src",c.data(d.data_attribute))}}),0!=d.event.indexOf("scroll")&&c.bind(d.event,function(a){b.loaded||c.trigger("appear")})}),$window.bind("resize",function(b){a(d.container).trigger(d.event)}),a(d.container).trigger(d.event),this},a.belowthefold=function(c,d){if(d.container===undefined||d.container===b)var e=$window.height()+$window.scrollTop();else var e=a(d.container).offset().top+a(d.container).height();return e<=a(c).offset().top-d.threshold},a.rightoffold=function(c,d){if(d.container===undefined||d.container===b)var e=$window.width()+$window.scrollLeft();else var e=a(d.container).offset().left+a(d.container).width();return e<=a(c).offset().left-d.threshold},a.abovethetop=function(c,d){if(d.container===undefined||d.container===b)var e=$window.scrollTop();else var e=a(d.container).offset().top;return e>=a(c).offset().top+d.threshold+a(c).height()},a.leftofbegin=function(c,d){if(d.container===undefined||d.container===b)var e=$window.scrollLeft();else var e=a(d.container).offset().left;return e>=a(c).offset().left+d.threshold+a(c).width()},a.inviewport=function(b,c){return!a.rightofscreen(b,c)&&!a.leftofscreen(b,c)&&!a.belowthefold(b,c)&&!a.abovethetop(b,c)},a.extend(a.expr[":"],{"below-the-fold":function(c){return a.belowthefold(c,{threshold:0,container:b})},"above-the-top":function(c){return!a.belowthefold(c,{threshold:0,container:b})},"right-of-screen":function(c){return a.rightoffold(c,{threshold:0,container:b})},"left-of-screen":function(c){return!a.rightoffold(c,{threshold:0,container:b})},"in-viewport":function(c){return!a.inviewport(c,{threshold:0,container:b})},"above-the-fold":function(c){return!a.belowthefold(c,{threshold:0,container:b})},"right-of-fold":function(c){return a.rightoffold(c,{threshold:0,container:b})},"left-of-fold":function(c){return!a.rightoffold(c,{threshold:0,container:b})}})})(jQuery,window) diff --git a/inc/jquery.min.js b/inc/jquery.min.js new file mode 100644 index 0000000..198b3ff --- /dev/null +++ b/inc/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/inc/rain.tpl.class.php b/inc/rain.tpl.class.php new file mode 100644 index 0000000..e9f3bd2 --- /dev/null +++ b/inc/rain.tpl.class.php @@ -0,0 +1,1037 @@ +), stylesheet (), script ('; // Redirect to login screen. + exit; + } +} + +// ------------------------------------------------------------------------------------------ +// Misc utility functions: + +// Returns the server URL (including port and http/https), without path. +// eg. "http://myserver.com:8080" +// You can append $_SERVER['SCRIPT_NAME'] to get the current script URL. +function serverUrl() +{ + $https = (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])=='on')) || $_SERVER["SERVER_PORT"]=='443'; // HTTPS detection. + $serverport = ($_SERVER["SERVER_PORT"]=='80' || ($https && $_SERVER["SERVER_PORT"]=='443') ? '' : ':'.$_SERVER["SERVER_PORT"]); + return 'http'.($https?'s':'').'://'.$_SERVER["SERVER_NAME"].$serverport; +} + +// Returns the absolute URL of current script, without the query. +// (eg. http://sebsauvage.net/links/) +function indexUrl() +{ + return serverUrl() . ($_SERVER["SCRIPT_NAME"] == '/index.php' ? '/' : $_SERVER["SCRIPT_NAME"]); +} + +// Returns the absolute URL of current script, WITH the query. +// (eg. http://sebsauvage.net/links/?toto=titi&spamspamspam=humbug) +function pageUrl() +{ + return indexUrl().(!empty($_SERVER["QUERY_STRING"]) ? '?'.$_SERVER["QUERY_STRING"] : ''); +} + +// Convert post_max_size/upload_max_filesize (eg.'16M') parameters to bytes. +function return_bytes($val) +{ + $val = trim($val); $last=strtolower($val[strlen($val)-1]); + switch($last) + { + case 'g': $val *= 1024; + case 'm': $val *= 1024; + case 'k': $val *= 1024; + } + return $val; +} + +// Try to determine max file size for uploads (POST). +// Returns an integer (in bytes) +function getMaxFileSize() +{ + $size1 = return_bytes(ini_get('post_max_size')); + $size2 = return_bytes(ini_get('upload_max_filesize')); + // Return the smaller of two: + $maxsize = min($size1,$size2); + // FIXME: Then convert back to readable notations ? (eg. 2M instead of 2000000) + return $maxsize; +} + +// Tells if a string start with a substring or not. +function startsWith($haystack,$needle,$case=true) +{ + if($case){return (strcmp(substr($haystack, 0, strlen($needle)),$needle)===0);} + return (strcasecmp(substr($haystack, 0, strlen($needle)),$needle)===0); +} + +// Tells if a string ends with a substring or not. +function endsWith($haystack,$needle,$case=true) +{ + if($case){return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);} + return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0); +} + +/* Converts a linkdate time (YYYYMMDD_HHMMSS) of an article to a timestamp (Unix epoch) + (used to build the ADD_DATE attribute in Netscape-bookmarks file) + PS: I could have used strptime(), but it does not exist on Windows. I'm too kind. */ +function linkdate2timestamp($linkdate) +{ + $Y=$M=$D=$h=$m=$s=0; + $r = sscanf($linkdate,'%4d%2d%2d_%2d%2d%2d',$Y,$M,$D,$h,$m,$s); + return mktime($h,$m,$s,$M,$D,$Y); +} + +/* Converts a linkdate time (YYYYMMDD_HHMMSS) of an article to a RFC822 date. + (used to build the pubDate attribute in RSS feed.) */ +function linkdate2rfc822($linkdate) +{ + return date('r',linkdate2timestamp($linkdate)); // 'r' is for RFC822 date format. +} + +/* Converts a linkdate time (YYYYMMDD_HHMMSS) of an article to a ISO 8601 date. + (used to build the updated tags in ATOM feed.) */ +function linkdate2iso8601($linkdate) +{ + return date('c',linkdate2timestamp($linkdate)); // 'c' is for ISO 8601 date format. +} + +/* Converts a linkdate time (YYYYMMDD_HHMMSS) of an article to a localized date format. + (used to display link date on screen) + The date format is automatically chosen according to locale/languages sniffed from browser headers (see autoLocale()). */ +function linkdate2locale($linkdate) +{ + return utf8_encode(strftime('%c',linkdate2timestamp($linkdate))); // %c is for automatic date format according to locale. + // Note that if you use a local which is not installed on your webserver, + // the date will not be displayed in the chosen locale, but probably in US notation. +} + +// Parse HTTP response headers and return an associative array. +function http_parse_headers_shaarli( $headers ) +{ + $res=array(); + foreach($headers as $header) + { + $i = strpos($header,': '); + if ($i!==false) + { + $key=substr($header,0,$i); + $value=substr($header,$i+2,strlen($header)-$i-2); + $res[$key]=$value; + } + } + return $res; +} + +/* GET an URL. + Input: $url : url to get (http://...) + $timeout : Network timeout (will wait this many seconds for an anwser before giving up). + Output: An array. [0] = HTTP status message (eg. "HTTP/1.1 200 OK") or error message + [1] = associative array containing HTTP response headers (eg. echo getHTTP($url)[1]['Content-Type']) + [2] = data + Example: list($httpstatus,$headers,$data) = getHTTP('http://sebauvage.net/'); + if (strpos($httpstatus,'200 OK')!==false) + echo 'Data type: '.htmlspecialchars($headers['Content-Type']); + else + echo 'There was an error: '.htmlspecialchars($httpstatus) +*/ +function getHTTP($url,$timeout=30) +{ + try + { + $options = array('http'=>array('method'=>'GET','timeout' => $timeout)); // Force network timeout + $context = stream_context_create($options); + $data=file_get_contents($url,false,$context,-1, 4000000); // We download at most 4 Mb from source. + if (!$data) { return array('HTTP Error',array(),''); } + $httpStatus=$http_response_header[0]; // eg. "HTTP/1.1 200 OK" + $responseHeaders=http_parse_headers_shaarli($http_response_header); + return array($httpStatus,$responseHeaders,$data); + } + catch (Exception $e) // getHTTP *can* fail silentely (we don't care if the title cannot be fetched) + { + return array($e->getMessage(),'',''); + } +} + +// Extract title from an HTML document. +// (Returns an empty string if not found.) +function html_extract_title($html) +{ + return preg_match('!(.*?)!is', $html, $matches) ? trim(str_replace("\n",' ', $matches[1])) : '' ; +} + +// ------------------------------------------------------------------------------------------ +// Token management for XSRF protection +// Token should be used in any form which acts on data (create,update,delete,import...). +if (!isset($_SESSION['tokens'])) $_SESSION['tokens']=array(); // Token are attached to the session. + +// Returns a token. +function getToken() +{ + $rnd = sha1(uniqid('',true).'_'.mt_rand()); // We generate a random string. + $_SESSION['tokens'][$rnd]=1; // Store it on the server side. + return $rnd; +} + +// Tells if a token is ok. Using this function will destroy the token. +// true=token is ok. +function tokenOk($token) +{ + if (isset($_SESSION['tokens'][$token])) + { + unset($_SESSION['tokens'][$token]); // Token is used: destroy it. + return true; // Token is ok. + } + return false; // Wrong token, or already used. +} + +// ------------------------------------------------------------------------------------------ +/* This class is in charge of building the final page. + (This is basically a wrapper around RainTPL which pre-fills some fields.) + p = new pageBuilder; + p.assign('myfield','myvalue'); + p.renderPage('mytemplate'); + +*/ +class pageBuilder +{ + private $tpl; // RainTPL template + + function __construct() + { + $this->tpl=false; + } + + private function initialize() + { + $this->tpl = new RainTPL; + $this->tpl->assign('newversion',checkUpdate()); + $this->tpl->assign('feedurl',htmlspecialchars(indexUrl())); + $searchcrits=''; // Search criteria + if (!empty($_GET['searchtags'])) $searchcrits.='&searchtags='.urlencode($_GET['searchtags']); + elseif (!empty($_GET['searchterm'])) $searchcrits.='&searchterm='.urlencode($_GET['searchterm']); + $this->tpl->assign('searchcrits',$searchcrits); + $this->tpl->assign('source',indexUrl()); + $this->tpl->assign('version',shaarli_version); + $this->tpl->assign('scripturl',indexUrl()); + $this->tpl->assign('pagetitle','Shaarli'); + $this->tpl->assign('privateonly',!empty($_SESSION['privateonly'])); // Show only private links ? + if (!empty($GLOBALS['title'])) $this->tpl->assign('pagetitle',$GLOBALS['title']); + if (!empty($GLOBALS['pagetitle'])) $this->tpl->assign('pagetitle',$GLOBALS['pagetitle']); + $this->tpl->assign('shaarlititle',empty($GLOBALS['title']) ? 'Shaarli': $GLOBALS['title'] ); + return; + } + + // The following assign() method is basically the same as RainTPL (except that it's lazy) + public function assign($what,$where) + { + if ($this->tpl===false) $this->initialize(); // Lazy initialization + $this->tpl->assign($what,$where); + } + + // Render a specific page (using a template). + // eg. pb.renderPage('picwall') + public function renderPage($page) + { + if ($this->tpl===false) $this->initialize(); // Lazy initialization + $this->tpl->draw($page); + } +} + +// ------------------------------------------------------------------------------------------ +/* Data storage for links. + This object behaves like an associative array. + Example: + $mylinks = new linkdb(); + echo $mylinks['20110826_161819']['title']; + foreach($mylinks as $link) + echo $link['title'].' at url '.$link['url'].' ; description:'.$link['description']; + + Available keys: + title : Title of the link + url : URL of the link. Can be absolute or relative. Relative URLs are permalinks (eg.'?m-ukcw') + description : description of the entry + private : Is this link private ? 0=no, other value=yes + linkdate : date of the creation of this entry, in the form YYYYMMDD_HHMMSS (eg.'20110914_192317') + tags : tags attached to this entry (separated by spaces) + + We implement 3 interfaces: + - ArrayAccess so that this object behaves like an associative array. + - Iterator so that this object can be used in foreach() loops. + - Countable interface so that we can do a count() on this object. +*/ +class linkdb implements Iterator, Countable, ArrayAccess +{ + private $links; // List of links (associative array. Key=linkdate (eg. "20110823_124546"), value= associative array (keys:title,description...) + private $urls; // List of all recorded URLs (key=url, value=linkdate) for fast reserve search (url-->linkdate) + private $keys; // List of linkdate keys (for the Iterator interface implementation) + private $position; // Position in the $this->keys array. (for the Iterator interface implementation.) + private $loggedin; // Is the used logged in ? (used to filter private links) + + // Constructor: + function __construct($isLoggedIn) + // Input : $isLoggedIn : is the used logged in ? + { + $this->loggedin = $isLoggedIn; + $this->checkdb(); // Make sure data file exists. + $this->readdb(); // Then read it. + } + + // ---- Countable interface implementation + public function count() { return count($this->links); } + + // ---- ArrayAccess interface implementation + public function offsetSet($offset, $value) + { + if (!$this->loggedin) die('You are not authorized to add a link.'); + if (empty($value['linkdate']) || empty($value['url'])) die('Internal Error: A link should always have a linkdate and url.'); + if (empty($offset)) die('You must specify a key.'); + $this->links[$offset] = $value; + $this->urls[$value['url']]=$offset; + } + public function offsetExists($offset) { return array_key_exists($offset,$this->links); } + public function offsetUnset($offset) + { + if (!$this->loggedin) die('You are not authorized to delete a link.'); + $url = $this->links[$offset]['url']; unset($this->urls[$url]); + unset($this->links[$offset]); + } + public function offsetGet($offset) { return isset($this->links[$offset]) ? $this->links[$offset] : null; } + + // ---- Iterator interface implementation + function rewind() { $this->keys=array_keys($this->links); rsort($this->keys); $this->position=0; } // Start over for iteration, ordered by date (latest first). + function key() { return $this->keys[$this->position]; } // current key + function current() { return $this->links[$this->keys[$this->position]]; } // current value + function next() { ++$this->position; } // go to next item + function valid() { return isset($this->keys[$this->position]); } // Check if current position is valid. + + // ---- Misc methods + private function checkdb() // Check if db directory and file exists. + { + if (!file_exists($GLOBALS['config']['DATASTORE'])) // Create a dummy database for example. + { + $this->links = array(); + $link = array('title'=>'Shaarli - sebsauvage.net','url'=>'http://sebsauvage.net/wiki/doku.php?id=php:shaarli','description'=>'Welcome to Shaarli ! This is a bookmark. To edit or delete me, you must first login.','private'=>0,'linkdate'=>'20110914_190000','tags'=>'opensource software'); + $this->links[$link['linkdate']] = $link; + $link = array('title'=>'My secret stuff... - Pastebin.com','url'=>'http://pastebin.com/smCEEeSn','description'=>'SShhhh!! I\'m a private link only YOU can see. You can delete me too.','private'=>1,'linkdate'=>'20110914_074522','tags'=>'secretstuff'); + $this->links[$link['linkdate']] = $link; + file_put_contents($GLOBALS['config']['DATASTORE'], PHPPREFIX.base64_encode(gzdeflate(serialize($this->links))).PHPSUFFIX); // Write database to disk + } + } + + // Read database from disk to memory + private function readdb() + { + // Read data + $this->links=(file_exists($GLOBALS['config']['DATASTORE']) ? unserialize(gzinflate(base64_decode(substr(file_get_contents($GLOBALS['config']['DATASTORE']),strlen(PHPPREFIX),-strlen(PHPSUFFIX))))) : array() ); + // Note that gzinflate is faster than gzuncompress. See: http://www.php.net/manual/en/function.gzdeflate.php#96439 + + // If user is not logged in, filter private links. + if (!$this->loggedin) + { + $toremove=array(); + foreach($this->links as $link) { if ($link['private']!=0) $toremove[]=$link['linkdate']; } + foreach($toremove as $linkdate) { unset($this->links[$linkdate]); } + } + + // Keep the list of the mapping URLs-->linkdate up-to-date. + $this->urls=array(); + foreach($this->links as $link) { $this->urls[$link['url']]=$link['linkdate']; } + } + + // Save database from memory to disk. + public function savedb() + { + if (!$this->loggedin) die('You are not authorized to change the database.'); + file_put_contents($GLOBALS['config']['DATASTORE'], PHPPREFIX.base64_encode(gzdeflate(serialize($this->links))).PHPSUFFIX); + invalidateCaches(); + } + + // Returns the link for a given URL (if it exists). false it does not exist. + public function getLinkFromUrl($url) + { + if (isset($this->urls[$url])) return $this->links[$this->urls[$url]]; + return false; + } + + // Case insentitive search among links (in url, title and description). Returns filtered list of links. + // eg. print_r($mydb->filterFulltext('hollandais')); + public function filterFulltext($searchterms) + { + // FIXME: explode(' ',$searchterms) and perform a AND search. + // FIXME: accept double-quotes to search for a string "as is" ? + $filtered=array(); + $s = strtolower($searchterms); + foreach($this->links as $l) + { + $found= (strpos(strtolower($l['title']),$s)!==false) + || (strpos(strtolower($l['description']),$s)!==false) + || (strpos(strtolower($l['url']),$s)!==false) + || (strpos(strtolower($l['tags']),$s)!==false); + if ($found) $filtered[$l['linkdate']] = $l; + } + krsort($filtered); + return $filtered; + } + + // Filter by tag. + // You can specify one or more tags (tags can be separated by space or comma). + // eg. print_r($mydb->filterTags('linux programming')); + public function filterTags($tags,$casesensitive=false) + { + $t = str_replace(',',' ',($casesensitive?$tags:strtolower($tags))); + $searchtags=explode(' ',$t); + $filtered=array(); + foreach($this->links as $l) + { + $linktags = explode(' ',($casesensitive?$l['tags']:strtolower($l['tags']))); + if (count(array_intersect($linktags,$searchtags)) == count($searchtags)) + $filtered[$l['linkdate']] = $l; + } + krsort($filtered); + return $filtered; + } + + // Filter by day. Day must be in the form 'YYYYMMDD' (eg. '20120125') + // Sort order is: older articles first. + // eg. print_r($mydb->filterDay('20120125')); + public function filterDay($day) + { + $filtered=array(); + foreach($this->links as $l) + { + if (startsWith($l['linkdate'],$day)) $filtered[$l['linkdate']] = $l; + } + ksort($filtered); + return $filtered; + } + // Filter by smallHash. + // Only 1 article is returned. + public function filterSmallHash($smallHash) + { + $filtered=array(); + foreach($this->links as $l) + { + if ($smallHash==smallHash($l['linkdate'])) // Yes, this is ugly and slow + { + $filtered[$l['linkdate']] = $l; + return $filtered; + } + } + return $filtered; + } + + // Returns the list of all tags + // Output: associative array key=tags, value=0 + public function allTags() + { + $tags=array(); + foreach($this->links as $link) + foreach(explode(' ',$link['tags']) as $tag) + if (!empty($tag)) $tags[$tag]=(empty($tags[$tag]) ? 1 : $tags[$tag]+1); + arsort($tags); // Sort tags by usage (most used tag first) + return $tags; + } + + // Returns the list of days containing articles (oldest first) + // Output: An array containing days (in format YYYYMMDD). + public function days() + { + $linkdays=array(); + foreach(array_keys($this->links) as $day) + { + $linkdays[substr($day,0,8)]=0; + } + $linkdays=array_keys($linkdays); + sort($linkdays); + return $linkdays; + } +} + +// ------------------------------------------------------------------------------------------ +// Ouput the last 50 links in RSS 2.0 format. +function showRSS() +{ + header('Content-Type: application/rss+xml; charset=utf-8'); + + // Cache system + $query = $_SERVER["QUERY_STRING"]; + $cache = new pageCache(pageUrl(),startsWith($query,'do=rss') && !isLoggedIn()); + $cached = $cache->cachedVersion(); if (!empty($cached)) { echo $cached; exit; } + + // If cached was not found (or not usable), then read the database and build the response: + $LINKSDB=new linkdb(isLoggedIn() || $GLOBALS['config']['OPEN_SHAARLI']); // Read links from database (and filter private links if used it not logged in). + + // Optionnaly filter the results: + $linksToDisplay=array(); + if (!empty($_GET['searchterm'])) $linksToDisplay = $LINKSDB->filterFulltext($_GET['searchterm']); + elseif (!empty($_GET['searchtags'])) $linksToDisplay = $LINKSDB->filterTags(trim($_GET['searchtags'])); + else $linksToDisplay = $LINKSDB; + + $pageaddr=htmlspecialchars(indexUrl()); + echo ''; + echo ''.htmlspecialchars($GLOBALS['title']).''.$pageaddr.''; + echo 'Shared linksen-en'.$pageaddr.''."\n\n"; + if (!empty($GLOBALS['config']['PUBSUBHUB_URL'])) + { + echo ''; + echo ''; + echo ''; + echo ''; + } + $i=0; + $keys=array(); foreach($linksToDisplay as $key=>$value) { $keys[]=$key; } // No, I can't use array_keys(). + while ($i<50 && $i'.htmlspecialchars($link['title']).''.$guid.''.$absurl.''; + if (!$GLOBALS['config']['HIDE_TIMESTAMPS'] || isLoggedIn()) echo ''.htmlspecialchars($rfc822date)."\n"; + if ($link['tags']!='') // Adding tags to each RSS entry (as mentioned in RSS specification) + { + foreach(explode(' ',$link['tags']) as $tag) { echo ''.htmlspecialchars($tag).''."\n"; } + } + echo ''."\n\n"; + $i++; + } + echo ''; + + $cache->cache(ob_get_contents()); + ob_end_flush(); + exit; +} + +// ------------------------------------------------------------------------------------------ +// Ouput the last 50 links in ATOM format. +function showATOM() +{ + header('Content-Type: application/atom+xml; charset=utf-8'); + + // Cache system + $query = $_SERVER["QUERY_STRING"]; + $cache = new pageCache(pageUrl(),startsWith($query,'do=atom') && !isLoggedIn()); + $cached = $cache->cachedVersion(); if (!empty($cached)) { echo $cached; exit; } + // If cached was not found (or not usable), then read the database and build the response: + + $LINKSDB=new linkdb(isLoggedIn() || $GLOBALS['config']['OPEN_SHAARLI']); // Read links from database (and filter private links if used it not logged in). + + + // Optionnaly filter the results: + $linksToDisplay=array(); + if (!empty($_GET['searchterm'])) $linksToDisplay = $LINKSDB->filterFulltext($_GET['searchterm']); + elseif (!empty($_GET['searchtags'])) $linksToDisplay = $LINKSDB->filterTags(trim($_GET['searchtags'])); + else $linksToDisplay = $LINKSDB; + + $pageaddr=htmlspecialchars(indexUrl()); + $latestDate = ''; + $entries=''; + $i=0; + $keys=array(); foreach($linksToDisplay as $key=>$value) { $keys[]=$key; } // No, I can't use array_keys(). + while ($i<50 && $i'.$guid.''; + if (!$GLOBALS['config']['HIDE_TIMESTAMPS'] || isLoggedIn()) $entries.=''.htmlspecialchars($iso8601date).''; + $entries.=''.htmlspecialchars(nl2br(keepMultipleSpaces(text2clickable(htmlspecialchars($link['description'])))))."\n"; + if ($link['tags']!='') // Adding tags to each ATOM entry (as mentioned in ATOM specification) + { + foreach(explode(' ',$link['tags']) as $tag) + { $entries.=''."\n"; } + } + $entries.="\n"; + $i++; + } + $feed=''; + $feed.=''.htmlspecialchars($GLOBALS['title']).''; + if (!$GLOBALS['config']['HIDE_TIMESTAMPS'] || isLoggedIn()) $feed.=''.htmlspecialchars($latestDate).''; + $feed.=''; + if (!empty($GLOBALS['config']['PUBSUBHUB_URL'])) + { + $feed.=''; + $feed.=''; + $feed.=''; + } + $feed.=''.htmlspecialchars($pageaddr).''.htmlspecialchars($pageaddr).''; + $feed.=''.htmlspecialchars($pageaddr).''."\n\n"; // Yes, I know I should use a real IRI (RFC3987), but the site URL will do. + $feed.=$entries; + $feed.=''; + echo $feed; + + $cache->cache(ob_get_contents()); + ob_end_flush(); + exit; +} + +// ------------------------------------------------------------------------------------------ +// Daily RSS feed: 1 RSS entry per day giving all the links on that day. +// Gives the last 7 days (which have links). +// This RSS feed cannot be filtered. +function showDailyRSS() +{ + // Cache system + $query = $_SERVER["QUERY_STRING"]; + $cache = new pageCache(pageUrl(),startsWith($query,'do=dailyrss') && !isLoggedIn()); + $cached = $cache->cachedVersion(); if (!empty($cached)) { echo $cached; exit; } + // If cached was not found (or not usable), then read the database and build the response: + $LINKSDB=new linkdb(isLoggedIn() || $GLOBALS['config']['OPEN_SHAARLI']); // Read links from database (and filter private links if used it not logged in). + + /* Some Shaarlies may have very few links, so we need to look + back in time (rsort()) until we have enough days ($nb_of_days). + */ + $linkdates=array(); foreach($LINKSDB as $linkdate=>$value) { $linkdates[]=$linkdate; } + rsort($linkdates); + $nb_of_days=7; // We take 7 days. + $today=Date('Ymd'); + $days=array(); + foreach($linkdates as $linkdate) + { + $day=substr($linkdate,0,8); // Extract day (without time) + if (strcmp($day,$today)<0) + { + if (empty($days[$day])) $days[$day]=array(); + $days[$day][]=$linkdate; + } + if (count($days)>$nb_of_days) break; // Have we collected enough days ? + } + + // Build the RSS feed. + header('Content-Type: application/rss+xml; charset=utf-8'); + $pageaddr=htmlspecialchars(indexUrl()); + echo ''; + echo 'Daily - '.htmlspecialchars($GLOBALS['title']).''.$pageaddr.''; + echo 'Daily shared linksen-en'.$pageaddr.''."\n"; + + foreach($days as $day=>$linkdates) // For each day. + { + $daydate = utf8_encode(strftime('%A %d, %B %Y',linkdate2timestamp($day.'_000000'))); // Full text date + $rfc822date = linkdate2rfc822($day.'_000000'); + $absurl=htmlspecialchars(indexUrl().'?do=daily&day='.$day); // Absolute URL of the corresponding "Daily" page. + echo ''.htmlspecialchars($GLOBALS['title'].' - '.$daydate).''.$absurl.''.$absurl.''; + echo ''.htmlspecialchars($rfc822date).""; + + // Build the HTML body of this RSS entry. + $html=''; + $href=''; + $links=array(); + // We pre-format some fields for proper output. + foreach($linkdates as $linkdate) + { + $l = $LINKSDB[$linkdate]; + $l['formatedDescription']=nl2br(keepMultipleSpaces(text2clickable(htmlspecialchars($l['description'])))); + $l['thumbnail'] = thumbnail($l['url']); + $l['localdate']=linkdate2locale($l['linkdate']); + if (startsWith($l['url'],'?')) $l['url']=indexUrl().$l['url']; // make permalink URL absolute + $links[$linkdate]=$l; + } + // Then build the HTML for this day: + $tpl = new RainTPL; + $tpl->assign('links',$links); + $html = $tpl->draw('dailyrss',$return_string=true); + echo "\n"; + echo ''."\n\n\n"; + + } + echo ''; + + $cache->cache(ob_get_contents()); + ob_end_flush(); + exit; +} + +// "Daily" page. +function showDaily() +{ + $LINKSDB=new linkdb(isLoggedIn() || $GLOBALS['config']['OPEN_SHAARLI']); // Read links from database (and filter private links if used it not logged in). + + + $day=Date('Ymd',strtotime('-1 day')); // Yesterday, in format YYYYMMDD. + if (isset($_GET['day'])) $day=$_GET['day']; + + $days = $LINKSDB->days(); + $i = array_search($day,$days); + if ($i==false) { $i=count($days)-1; $day=$days[$i]; } + $previousday=''; + $nextday=''; + if ($i!==false) + { + if ($i>1) $previousday=$days[$i-1]; + if ($ifilterDay($day); + // We pre-format some fields for proper output. + foreach($linksToDisplay as $key=>$link) + { + $linksToDisplay[$key]['taglist']=explode(' ',$link['tags']); + $linksToDisplay[$key]['formatedDescription']=nl2br(keepMultipleSpaces(text2clickable(htmlspecialchars($link['description'])))); + $linksToDisplay[$key]['thumbnail'] = thumbnail($link['url']); + } + + /* We need to spread the articles on 3 columns. + I did not want to use a javascript lib like http://masonry.desandro.com/ + so I manually spread entries with a simple method: I roughly evaluate the + height of a div according to title and description length. + */ + $columns=array(array(),array(),array()); // Entries to display, for each column. + $fill=array(0,0,0); // Rough estimate of columns fill. + foreach($linksToDisplay as $key=>$link) + { + // Roughly estimate length of entry (by counting characters) + // Title: 30 chars = 1 line. 1 line is 30 pixels height. + // Description: 836 characters gives roughly 342 pixel height. + // This is not perfect, but it's usually ok. + $length=strlen($link['title'])+(342*strlen($link['description']))/836; + if ($link['thumbnail']) $length +=100; // 1 thumbnails roughly takes 100 pixels height. + // Then put in column which is the less filled: + $smallest=min($fill); // find smallest value in array. + $index=array_search($smallest,$fill); // find index of this smallest value. + array_push($columns[$index],$link); // Put entry in this column. + $fill[$index]+=$length; + } + $PAGE = new pageBuilder; + $PAGE->assign('linksToDisplay',$linksToDisplay); + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('col1',$columns[0]); + $PAGE->assign('col1',$columns[0]); + $PAGE->assign('col2',$columns[1]); + $PAGE->assign('col3',$columns[2]); + $PAGE->assign('day',utf8_encode(strftime('%A %d, %B %Y',linkdate2timestamp($day.'_000000')))); + $PAGE->assign('previousday',$previousday); + $PAGE->assign('nextday',$nextday); + $PAGE->renderPage('daily'); + exit; +} + + +// ------------------------------------------------------------------------------------------ +// Render HTML page (according to URL parameters and user rights) +function renderPage() +{ + $LINKSDB=new linkdb(isLoggedIn() || $GLOBALS['config']['OPEN_SHAARLI']); // Read links from database (and filter private links if used it not logged in). + + // -------- Display login form. + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=login')) + { + if ($GLOBALS['config']['OPEN_SHAARLI']) { header('Location: ?'); exit; } // No need to login for open Shaarli + $token=''; if (ban_canLogin()) $token=getToken(); // Do not waste token generation if not useful. + $PAGE = new pageBuilder; + $PAGE->assign('token',$token); + $PAGE->assign('returnurl',(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER']:'')); + $PAGE->renderPage('loginform'); + exit; + } + // -------- User wants to logout. + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=logout')) + { + invalidateCaches(); + logout(); + header('Location: ?'); + exit; + } + + // -------- Picture wall + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=picwall')) + { + // Optionnaly filter the results: + $links=array(); + if (!empty($_GET['searchterm'])) $links = $LINKSDB->filterFulltext($_GET['searchterm']); + elseif (!empty($_GET['searchtags'])) $links = $LINKSDB->filterTags(trim($_GET['searchtags'])); + else $links = $LINKSDB; + $body=''; + $linksToDisplay=array(); + + // Get only links which have a thumbnail. + foreach($links as $link) + { + $permalink='?'.htmlspecialchars(smallhash($link['linkdate']),ENT_QUOTES); + $thumb=lazyThumbnail($link['url'],$permalink); + if ($thumb!='') // Only output links which have a thumbnail. + { + $link['thumbnail']=$thumb; // Thumbnail HTML code. + $link['permalink']=$permalink; + $linksToDisplay[]=$link; // Add to array. + } + } + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('linksToDisplay',$linksToDisplay); + $PAGE->renderPage('picwall'); + exit; + } + + // -------- Tag cloud + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=tagcloud')) + { + $tags= $LINKSDB->allTags(); + // We sort tags alphabetically, then choose a font size according to count. + // First, find max value. + $maxcount=0; foreach($tags as $key=>$value) $maxcount=max($maxcount,$value); + ksort($tags); + $tagList=array(); + foreach($tags as $key=>$value) + { + $tagList[$key] = array('count'=>$value,'size'=>max(40*$value/$maxcount,8)); + } + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('tags',$tagList); + $PAGE->renderPage('tagcloud'); + exit; + } + + // -------- User clicks on a tag in a link: The tag is added to the list of searched tags (searchtags=...) + if (isset($_GET['addtag'])) + { + // Get previous URL (http_referer) and add the tag to the searchtags parameters in query. + if (empty($_SERVER['HTTP_REFERER'])) { header('Location: ?searchtags='.urlencode($_GET['addtag'])); exit; } // In case browser does not send HTTP_REFERER + parse_str(parse_url($_SERVER['HTTP_REFERER'],PHP_URL_QUERY), $params); + $params['searchtags'] = (empty($params['searchtags']) ? trim($_GET['addtag']) : trim($params['searchtags']).' '.trim($_GET['addtag'])); + unset($params['page']); // We also remove page (keeping the same page has no sense, since the results are different) + header('Location: ?'.http_build_query($params)); + exit; + } + + // -------- User clicks on a tag in result count: Remove the tag from the list of searched tags (searchtags=...) + if (isset($_GET['removetag'])) + { + // Get previous URL (http_referer) and remove the tag from the searchtags parameters in query. + if (empty($_SERVER['HTTP_REFERER'])) { header('Location: ?'); exit; } // In case browser does not send HTTP_REFERER + parse_str(parse_url($_SERVER['HTTP_REFERER'],PHP_URL_QUERY), $params); + if (isset($params['searchtags'])) + { + $tags = explode(' ',$params['searchtags']); + $tags=array_diff($tags, array($_GET['removetag'])); // Remove value from array $tags. + if (count($tags)==0) unset($params['searchtags']); else $params['searchtags'] = implode(' ',$tags); + unset($params['page']); // We also remove page (keeping the same page has no sense, since the results are different) + } + header('Location: ?'.http_build_query($params)); + exit; + } + + // -------- User wants to change the number of links per page (linksperpage=...) + if (isset($_GET['linksperpage'])) + { + if (is_numeric($_GET['linksperpage'])) { $_SESSION['LINKS_PER_PAGE']=abs(intval($_GET['linksperpage'])); } + header('Location: '.(empty($_SERVER['HTTP_REFERER'])?'?':$_SERVER['HTTP_REFERER'])); + exit; + } + + // -------- User wants to see only private links (toggle) + if (isset($_GET['privateonly'])) + { + if (empty($_SESSION['privateonly'])) + { + $_SESSION['privateonly']=1; // See only private links + } + else + { + unset($_SESSION['privateonly']); // See all links + } + header('Location: '.(empty($_SERVER['HTTP_REFERER'])?'?':$_SERVER['HTTP_REFERER'])); + exit; + } + + // -------- Handle other actions allowed for non-logged in users: + if (!isLoggedIn()) + { + // User tries to post new link but is not loggedin: + // Show login screen, then redirect to ?post=... + if (isset($_GET['post'])) + { + header('Location: ?do=login&post='.urlencode($_GET['post']).(!empty($_GET['title'])?'&title='.urlencode($_GET['title']):'').(!empty($_GET['source'])?'&source='.urlencode($_GET['source']):'')); // Redirect to login page, then back to post link. + exit; + } + $PAGE = new pageBuilder; + buildLinkList($PAGE,$LINKSDB); // Compute list of links to display + $PAGE->renderPage('linklist'); + exit; // Never remove this one ! All operations below are reserved for logged in user. + } + + // -------- All other functions are reserved for the registered user: + + // -------- Display the Tools menu if requested (import/export/bookmarklet...) + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=tools')) + { + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('pageabsaddr',indexUrl()); + $PAGE->renderPage('tools'); + exit; + } + + // -------- User wants to change his/her password. + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=changepasswd')) + { + if ($GLOBALS['config']['OPEN_SHAARLI']) die('You are not supposed to change a password on an Open Shaarli.'); + if (!empty($_POST['setpassword']) && !empty($_POST['oldpassword'])) + { + if (!tokenOk($_POST['token'])) die('Wrong token.'); // Go away ! + + // Make sure old password is correct. + $oldhash = sha1($_POST['oldpassword'].$GLOBALS['login'].$GLOBALS['salt']); + if ($oldhash!=$GLOBALS['hash']) { echo ''; exit; } + // Save new password + $GLOBALS['salt'] = sha1(uniqid('',true).'_'.mt_rand()); // Salt renders rainbow-tables attacks useless. + $GLOBALS['hash'] = sha1($_POST['setpassword'].$GLOBALS['login'].$GLOBALS['salt']); + writeConfig(); + echo ''; + exit; + } + else // show the change password form. + { + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('token',getToken()); + $PAGE->renderPage('changepassword'); + exit; + } + } + + // -------- User wants to change configuration + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=configure')) + { + if (!empty($_POST['title']) ) + { + if (!tokenOk($_POST['token'])) die('Wrong token.'); // Go away ! + $tz = 'UTC'; + if (!empty($_POST['continent']) && !empty($_POST['city'])) + if (isTZvalid($_POST['continent'],$_POST['city'])) + $tz = $_POST['continent'].'/'.$_POST['city']; + $GLOBALS['timezone'] = $tz; + $GLOBALS['title']=$_POST['title']; + $GLOBALS['redirector']=$_POST['redirector']; + $GLOBALS['disablesessionprotection']=!empty($_POST['disablesessionprotection']); + writeConfig(); + echo ''; + exit; + } + else // Show the configuration form. + { + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('token',getToken()); + $PAGE->assign('title',htmlspecialchars( empty($GLOBALS['title']) ? '' : $GLOBALS['title'] , ENT_QUOTES)); + $PAGE->assign('redirector',htmlspecialchars( empty($GLOBALS['redirector']) ? '' : $GLOBALS['redirector'] , ENT_QUOTES)); + list($timezone_form,$timezone_js) = templateTZform($GLOBALS['timezone']); + $PAGE->assign('timezone_form',$timezone_form); // FIXME: put entire tz form generation in template ? + $PAGE->assign('timezone_js',$timezone_js); + $PAGE->renderPage('configure'); + exit; + } + } + + // -------- User wants to rename a tag or delete it + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=changetag')) + { + if (empty($_POST['fromtag'])) + { + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('token',getToken()); + $PAGE->renderPage('changetag'); + exit; + } + if (!tokenOk($_POST['token'])) die('Wrong token.'); + + // Delete a tag: + if (!empty($_POST['deletetag']) && !empty($_POST['fromtag'])) + { + $needle=trim($_POST['fromtag']); + $linksToAlter = $LINKSDB->filterTags($needle,true); // true for case-sensitive tag search. + foreach($linksToAlter as $key=>$value) + { + $tags = explode(' ',trim($value['tags'])); + unset($tags[array_search($needle,$tags)]); // Remove tag. + $value['tags']=trim(implode(' ',$tags)); + $LINKSDB[$key]=$value; + } + $LINKSDB->savedb(); // save to disk + echo ''; + exit; + } + + // Rename a tag: + if (!empty($_POST['renametag']) && !empty($_POST['fromtag']) && !empty($_POST['totag'])) + { + $needle=trim($_POST['fromtag']); + $linksToAlter = $LINKSDB->filterTags($needle,true); // true for case-sensitive tag search. + foreach($linksToAlter as $key=>$value) + { + $tags = explode(' ',trim($value['tags'])); + $tags[array_search($needle,$tags)] = trim($_POST['totag']); // Remplace tags value. + $value['tags']=trim(implode(' ',$tags)); + $LINKSDB[$key]=$value; + } + $LINKSDB->savedb(); // save to disk + echo ''; + exit; + } + } + + // -------- User wants to add a link without using the bookmarklet: show form. + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=addlink')) + { + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->renderPage('addlink'); + exit; + } + + // -------- User clicked the "Save" button when editing a link: Save link to database. + if (isset($_POST['save_edit'])) + { + if (!tokenOk($_POST['token'])) die('Wrong token.'); // Go away ! + $tags = trim(preg_replace('/\s\s+/',' ', $_POST['lf_tags'])); // Remove multiple spaces. + $linkdate=$_POST['lf_linkdate']; + $link = array('title'=>trim($_POST['lf_title']),'url'=>trim($_POST['lf_url']),'description'=>trim($_POST['lf_description']),'private'=>(isset($_POST['lf_private']) ? 1 : 0), + 'linkdate'=>$linkdate,'tags'=>str_replace(',',' ',$tags)); + if ($link['title']=='') $link['title']=$link['url']; // If title is empty, use the URL as title. + $LINKSDB[$linkdate] = $link; + $LINKSDB->savedb(); // save to disk + pubsubhub(); + + // If we are called from the bookmarklet, we must close the popup: + if (isset($_GET['source']) && $_GET['source']=='bookmarklet') { echo ''; exit; } + $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' ); + header('Location: '.$returnurl); // After saving the link, redirect to the page the user was on. + exit; + } + + // -------- User clicked the "Cancel" button when editing a link. + if (isset($_POST['cancel_edit'])) + { + // If we are called from the bookmarklet, we must close the popup; + if (isset($_GET['source']) && $_GET['source']=='bookmarklet') { echo ''; exit; } + $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' ); + header('Location: '.$returnurl); // After canceling, redirect to the page the user was on. + exit; + } + + // -------- User clicked the "Delete" button when editing a link : Delete link from database. + if (isset($_POST['delete_link'])) + { + if (!tokenOk($_POST['token'])) die('Wrong token.'); + // We do not need to ask for confirmation: + // - confirmation is handled by javascript + // - we are protected from XSRF by the token. + $linkdate=$_POST['lf_linkdate']; + unset($LINKSDB[$linkdate]); + $LINKSDB->savedb(); // save to disk + + // If we are called from the bookmarklet, we must close the popup: + if (isset($_GET['source']) && $_GET['source']=='bookmarklet') { echo ''; exit; } + $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' ); + if ($returnurl=='?') { $returnurl = (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '?'); } + header('Location: '.$returnurl); // After deleting the link, redirect to the page the user was on. + exit; + } + + // -------- User clicked the "EDIT" button on a link: Display link edit form. + if (isset($_GET['edit_link'])) + { + $link = $LINKSDB[$_GET['edit_link']]; // Read database + if (!$link) { header('Location: ?'); exit; } // Link not found in database. + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('link',$link); + $PAGE->assign('link_is_new',false); + $PAGE->assign('token',getToken()); // XSRF protection. + $PAGE->assign('http_referer',(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '')); + $PAGE->renderPage('editlink'); + exit; + } + + // -------- User want to post a new link: Display link edit form. + if (isset($_GET['post'])) + { + $url=$_GET['post']; + + // We remove the annoying parameters added by FeedBurner and GoogleFeedProxy (?utm_source=...) + $i=strpos($url,'&utm_source='); if ($i!==false) $url=substr($url,0,$i); + $i=strpos($url,'?utm_source='); if ($i!==false) $url=substr($url,0,$i); + $i=strpos($url,'#xtor=RSS-'); if ($i!==false) $url=substr($url,0,$i); + + $link_is_new = false; + $link = $LINKSDB->getLinkFromUrl($url); // Check if URL is not already in database (in this case, we will edit the existing link) + if (!$link) + { + $link_is_new = true; // This is a new link + $linkdate = strval(date('Ymd_His')); + $title = (empty($_GET['title']) ? '' : $_GET['title'] ); // Get title if it was provided in URL (by the bookmarklet). + $description=''; $tags=''; $private=0; + if (($url!='') && parse_url($url,PHP_URL_SCHEME)=='') $url = 'http://'.$url; + // If this is an HTTP link, we try go get the page to extact the title (otherwise we will to straight to the edit form.) + if (empty($title) && parse_url($url,PHP_URL_SCHEME)=='http') + { + list($status,$headers,$data) = getHTTP($url,4); // Short timeout to keep the application responsive. + // FIXME: Decode charset according to specified in either 1) HTTP response headers or 2) in html + if (strpos($status,'200 OK')!==false) $title=html_entity_decode(html_extract_title($data),ENT_QUOTES,'UTF-8'); + + } + if ($url=='') $url='?'.smallHash($linkdate); // In case of empty URL, this is just a text (with a link that point to itself) + $link = array('linkdate'=>$linkdate,'title'=>$title,'url'=>$url,'description'=>$description,'tags'=>$tags,'private'=>0); + } + + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('link',$link); + $PAGE->assign('link_is_new',$link_is_new); + $PAGE->assign('token',getToken()); // XSRF protection. + $PAGE->assign('http_referer',(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '')); + $PAGE->renderPage('editlink'); + exit; + } + + // -------- Export as Netscape Bookmarks HTML file. + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=export')) + { + if (empty($_GET['what'])) + { + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->renderPage('export'); + exit; + } + $exportWhat=$_GET['what']; + if (!array_intersect(array('all','public','private'),array($exportWhat))) die('What are you trying to export ???'); + + header('Content-Type: text/html; charset=utf-8'); + header('Content-disposition: attachment; filename=bookmarks_'.$exportWhat.'_'.strval(date('Ymd_His')).'.html'); + $currentdate=date('Y/m/d H:i:s'); + echo << + + + +Bookmarks +

    Bookmarks

    +HTML; + foreach($LINKSDB as $link) + { + if ($exportWhat=='all' || + ($exportWhat=='private' && $link['private']!=0) || + ($exportWhat=='public' && $link['private']==0)) + { + echo '
    '.htmlspecialchars($link['title'])."\n"; + if ($link['description']!='') echo '
    '.htmlspecialchars($link['description'])."\n"; + } + } + exit; + } + + // -------- User is uploading a file for import + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=upload')) + { + // If file is too big, some form field may be missing. + if (!isset($_POST['token']) || (!isset($_FILES)) || (isset($_FILES['filetoupload']['size']) && $_FILES['filetoupload']['size']==0)) + { + $returnurl = ( empty($_SERVER['HTTP_REFERER']) ? '?' : $_SERVER['HTTP_REFERER'] ); + echo ''; + exit; + } + if (!tokenOk($_POST['token'])) die('Wrong token.'); + importFile(); + exit; + } + + // -------- Show upload/import dialog: + if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=import')) + { + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + $PAGE->assign('token',getToken()); + $PAGE->assign('maxfilesize',getMaxFileSize()); + $PAGE->renderPage('import'); + exit; + } + + // -------- Otherwise, simply display search form and links: + $PAGE = new pageBuilder; + $PAGE->assign('linkcount',count($LINKSDB)); + buildLinkList($PAGE,$LINKSDB); // Compute list of links to display + $PAGE->renderPage('linklist'); + exit; +} + +// ----------------------------------------------------------------------------------------------- +// Process the import file form. +function importFile() +{ + if (!(isLoggedIn() || $GLOBALS['config']['OPEN_SHAARLI'])) { die('Not allowed.'); } + $LINKSDB=new linkdb(isLoggedIn() || $GLOBALS['config']['OPEN_SHAARLI']); // Read links from database (and filter private links if used it not logged in). + $filename=$_FILES['filetoupload']['name']; + $filesize=$_FILES['filetoupload']['size']; + $data=file_get_contents($_FILES['filetoupload']['tmp_name']); + $private = (empty($_POST['private']) ? 0 : 1); // Should the links be imported as private ? + $overwrite = !empty($_POST['overwrite']) ; // Should the imported links overwrite existing ones ? + $import_count=0; + + // Sniff file type: + $type='unknown'; + if (startsWith($data,'')) $type='netscape'; // Netscape bookmark file (aka Firefox). + + // Then import the bookmarks. + if ($type=='netscape') + { + // This is a standard Netscape-style bookmark file. + // This format is supported by all browsers (except IE, of course), also delicious, diigo and others. + foreach(explode('
    ',$data) as $html) // explode is very fast + { + $link = array('linkdate'=>'','title'=>'','url'=>'','description'=>'','tags'=>'','private'=>0); + $d = explode('
    ',$html); + if (startswith($d[0],'(.*?)!i',$d[0],$matches); $link['title'] = (isset($matches[1]) ? trim($matches[1]) : ''); // Get title + $link['title'] = html_entity_decode($link['title'],ENT_QUOTES,'UTF-8'); + preg_match_all('! ([A-Z_]+)=\"(.*?)"!i',$html,$matches,PREG_SET_ORDER); // Get all other attributes + $raw_add_date=0; + foreach($matches as $m) + { + $attr=$m[1]; $value=$m[2]; + if ($attr=='HREF') $link['url']=html_entity_decode($value,ENT_QUOTES,'UTF-8'); + elseif ($attr=='ADD_DATE') $raw_add_date=intval($value); + elseif ($attr=='PRIVATE') $link['private']=($value=='0'?0:1); + elseif ($attr=='TAGS') $link['tags']=html_entity_decode(str_replace(',',' ',$value),ENT_QUOTES,'UTF-8'); + } + if ($link['url']!='') + { + if ($private==1) $link['private']=1; + $dblink = $LINKSDB->getLinkFromUrl($link['url']); // See if the link is already in database. + if ($dblink==false) + { // Link not in database, let's import it... + if (empty($raw_add_date)) $raw_add_date=time(); // In case of shitty bookmark file with no ADD_DATE + + // Make sure date/time is not already used by another link. + // (Some bookmark files have several different links with the same ADD_DATE) + // We increment date by 1 second until we find a date which is not used in db. + // (so that links that have the same date/time are more or less kept grouped by date, but do not conflict.) + while (!empty($LINKSDB[date('Ymd_His',$raw_add_date)])) { $raw_add_date++; }// Yes, I know it's ugly. + $link['linkdate']=date('Ymd_His',$raw_add_date); + $LINKSDB[$link['linkdate']] = $link; + $import_count++; + } + else // link already present in database. + { + if ($overwrite) + { // If overwrite is required, we import link data, except date/time. + $link['linkdate']=$dblink['linkdate']; + $LINKSDB[$link['linkdate']] = $link; + $import_count++; + } + } + + } + } + } + $LINKSDB->savedb(); + + echo ''; + } + else + { + echo ''; + } +} + +// ----------------------------------------------------------------------------------------------- +// Template for the list of links (
    '; + + $PAGE = new pageBuilder; + $PAGE->assign('timezone_html',$timezone_html); + $PAGE->assign('timezone_js',$timezone_js); + $PAGE->renderPage('install'); + exit; +} + +// Generates the timezone selection form and javascript. +// Input: (optional) current timezone (can be 'UTC/UTC'). It will be pre-selected. +// Output: array(html,js) +// Example: list($htmlform,$js) = templateTZform('Europe/Paris'); // Europe/Paris pre-selected. +// Returns array('','') if server does not support timezones list. (eg. php 5.1 on free.fr) +function templateTZform($ptz=false) +{ + if (function_exists('timezone_identifiers_list')) // because of old php version (5.1) which can be found on free.fr + { + // Try to split the provided timezone. + if ($ptz==false) { $l=timezone_identifiers_list(); $ptz=$l[0]; } + $spos=strpos($ptz,'/'); $pcontinent=substr($ptz,0,$spos); $pcity=substr($ptz,$spos+1); + + // Display config form: + $timezone_form = ''; + $timezone_js = ''; + // The list is in the forme "Europe/Paris", "America/Argentina/Buenos_Aires"... + // We split the list in continents/cities. + $continents = array(); + $cities = array(); + foreach(timezone_identifiers_list() as $tz) + { + if ($tz=='UTC') $tz='UTC/UTC'; + $spos = strpos($tz,'/'); + if ($spos!==false) + { + $continent=substr($tz,0,$spos); $city=substr($tz,$spos+1); + $continents[$continent]=1; + if (!isset($cities[$continent])) $cities[$continent]=''; + $cities[$continent].=''; + } + } + $continents_html = ''; + $continents = array_keys($continents); + foreach($continents as $continent) + $continents_html.=''; + $cities_html = $cities[$pcontinent]; + $timezone_form = "Continent:

    "; + $timezone_form .= "City:

    "; + $timezone_js = "" ; + return array($timezone_form,$timezone_js); + } + return array('',''); +} + +// Tells if a timezone is valid or not. +// If not valid, returns false. +// If system does not support timezone list, returns false. +function isTZvalid($continent,$city) +{ + $tz = $continent.'/'.$city; + if (function_exists('timezone_identifiers_list')) // because of old php version (5.1) which can be found on free.fr + { + if (in_array($tz, timezone_identifiers_list())) // it's a valid timezone ? + return true; + } + return false; +} + + +// Webservices (for use with jQuery/jQueryUI) +// eg. index.php?ws=tags&term=minecr +function processWS() +{ + if (empty($_GET['ws']) || empty($_GET['term'])) return; + $term = $_GET['term']; + $LINKSDB=new linkdb(isLoggedIn() || $GLOBALS['config']['OPEN_SHAARLI']); // Read links from database (and filter private links if used it not logged in). + header('Content-Type: application/json; charset=utf-8'); + + // Search in tags (case insentitive, cumulative search) + if ($_GET['ws']=='tags') + { + $tags=explode(' ',str_replace(',',' ',$term)); $last = array_pop($tags); // Get the last term ("a b c d" ==> "a b c", "d") + $addtags=''; if ($tags) $addtags=implode(' ',$tags).' '; // We will pre-pend previous tags + $suggested=array(); + /* To speed up things, we store list of tags in session */ + if (empty($_SESSION['tags'])) $_SESSION['tags'] = $LINKSDB->allTags(); + foreach($_SESSION['tags'] as $key=>$value) + { + if (startsWith($key,$last,$case=false) && !in_array($key,$tags)) $suggested[$addtags.$key.' ']=0; + } + echo json_encode(array_keys($suggested)); + exit; + } + + // Search a single tag (case sentitive, single tag search) + if ($_GET['ws']=='singletag') + { + /* To speed up things, we store list of tags in session */ + if (empty($_SESSION['tags'])) $_SESSION['tags'] = $LINKSDB->allTags(); + foreach($_SESSION['tags'] as $key=>$value) + { + if (startsWith($key,$term,$case=true)) $suggested[$key]=0; + } + echo json_encode(array_keys($suggested)); + exit; + } +} + +// Re-write configuration file according to globals. +// Requires some $GLOBALS to be set (login,hash,salt,title). +// If the config file cannot be saved, an error message is dislayed and the user is redirected to "Tools" menu. +// (otherwise, the function simply returns.) +function writeConfig() +{ + if (is_file($GLOBALS['config']['CONFIG_FILE']) && !isLoggedIn()) die('You are not authorized to alter config.'); // Only logged in user can alter config. + if (empty($GLOBALS['redirector'])) $GLOBALS['redirector']=''; + if (empty($GLOBALS['disablesessionprotection'])) $GLOBALS['disablesessionprotection']=false; + $config=''; + if (!file_put_contents($GLOBALS['config']['CONFIG_FILE'],$config) || strcmp(file_get_contents($GLOBALS['config']['CONFIG_FILE']),$config)!=0) + { + echo ''; + exit; + } +} + +/* Because some f*cking services like Flickr require an extra HTTP request to get the thumbnail URL, + I have deported the thumbnail URL code generation here, otherwise this would slow down page generation. + The following function takes the URL a link (eg. a flickr page) and return the proper thumbnail. + This function is called by passing the url: + http://mywebsite.com/shaarli/?do=genthumbnail&hmac=[HMAC]&url=[URL] + [URL] is the URL of the link (eg. a flickr page) + [HMAC] is the signature for the [URL] (so that these URL cannot be forged). + The function below will fetch the image from the webservice and store it in the cache. +*/ +function genThumbnail() +{ + // Make sure the parameters in the URL were generated by us. + $sign = hash_hmac('sha256', $_GET['url'], $GLOBALS['salt']); + if ($sign!=$_GET['hmac']) die('Naughty boy !'); + + // Let's see if we don't already have the image for this URL in the cache. + $thumbname=hash('sha1',$_GET['url']).'.jpg'; + if (is_file($GLOBALS['config']['CACHEDIR'].'/'.$thumbname)) + { // We have the thumbnail, just serve it: + header('Content-Type: image/jpeg'); + echo file_get_contents($GLOBALS['config']['CACHEDIR'].'/'.$thumbname); + return; + } + // We may also serve a blank image (if service did not respond) + $blankname=hash('sha1',$_GET['url']).'.gif'; + if (is_file($GLOBALS['config']['CACHEDIR'].'/'.$blankname)) + { + header('Content-Type: image/gif'); + echo file_get_contents($GLOBALS['config']['CACHEDIR'].'/'.$blankname); + return; + } + + // Otherwise, generate the thumbnail. + $url = $_GET['url']; + $domain = parse_url($url,PHP_URL_HOST); + + if ($domain=='flickr.com' || endsWith($domain,'.flickr.com')) + { + // Crude replacement to handle new Flickr domain policy (They prefer www. now) + $url = str_replace('http://flickr.com/','http://www.flickr.com/',$url); + + // Is this a link to an image, or to a flickr page ? + $imageurl=''; + if (endswith(parse_url($url,PHP_URL_PATH),'.jpg')) + { // This is a direct link to an image. eg. http://farm1.staticflickr.com/5/5921913_ac83ed27bd_o.jpg + preg_match('!(http://farm\d+\.staticflickr\.com/\d+/\d+_\w+_)\w.jpg!',$url,$matches); + if (!empty($matches[1])) $imageurl=$matches[1].'m.jpg'; + } + else // this is a flickr page (html) + { + list($httpstatus,$headers,$data) = getHTTP($url,20); // Get the flickr html page. + if (strpos($httpstatus,'200 OK')!==false) + { + // Flickr now nicely provides the URL of the thumbnail in each flickr page. + preg_match('! + if ($imageurl=='') + { + preg_match('! tag on that page + // http://www.ted.com/talks/mikko_hypponen_fighting_viruses_defending_the_net.html + // + list($httpstatus,$headers,$data) = getHTTP($url,5); + if (strpos($httpstatus,'200 OK')!==false) + { + // Extract the link to the thumbnail + preg_match('!link rel="image_src" href="(http://images.ted.com/images/ted/.+_\d+x\d+\.jpg)"!',$data,$matches); + if (!empty($matches[1])) + { // Let's download the image. + $imageurl=$matches[1]; + list($httpstatus,$headers,$data) = getHTTP($imageurl,20); // No control on image size, so wait long enough. + if (strpos($httpstatus,'200 OK')!==false) + { + $filepath=$GLOBALS['config']['CACHEDIR'].'/'.$thumbname; + file_put_contents($filepath,$data); // Save image to cache. + if (resizeImage($filepath)) + { + header('Content-Type: image/jpeg'); + echo file_get_contents($filepath); + return; + } + } + } + } + } + + elseif ($domain=='xkcd.com' || endsWith($domain,'.xkcd.com')) + { + // There is no thumbnail available for xkcd comics, so download the whole image and resize it. + // http://xkcd.com/327/ + // <BLABLA> + list($httpstatus,$headers,$data) = getHTTP($url,5); + if (strpos($httpstatus,'200 OK')!==false) + { + // Extract the link to the thumbnail + preg_match('! \ No newline at end of file diff --git a/tpl/addlink.html b/tpl/addlink.html new file mode 100644 index 0000000..853715d --- /dev/null +++ b/tpl/addlink.html @@ -0,0 +1,16 @@ + + +{include="includes"} + + +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/changepassword.html b/tpl/changepassword.html new file mode 100644 index 0000000..48cf5fa --- /dev/null +++ b/tpl/changepassword.html @@ -0,0 +1,15 @@ + + +{include="includes"} + + +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/changetag.html b/tpl/changetag.html new file mode 100644 index 0000000..b0bd0d0 --- /dev/null +++ b/tpl/changetag.html @@ -0,0 +1,16 @@ + + +{include="includes"} + + +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/configure.html b/tpl/configure.html new file mode 100644 index 0000000..00c41f2 --- /dev/null +++ b/tpl/configure.html @@ -0,0 +1,21 @@ + + +{include="includes"} + +
    Timezone:'.$timezone_form.'
    + + + + + +
    Page title:
    Timezone:{$timezone_form}
    Redirector
    (e.g. http://anonym.to/? will mask the HTTP_REFERER)
    Security:
    + + +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/daily.html b/tpl/daily.html new file mode 100644 index 0000000..4bc8568 --- /dev/null +++ b/tpl/daily.html @@ -0,0 +1,63 @@ + + +{include="includes"} + + +
    +
    + All links of one day
    in a single page.
    + {if="$previousday"}
    <Previous day{else}<Previous day{/if} + - + {if="$nextday"}Next day>{else}Next day>{/if} +

    + Daily RSS Feed +
    +
    The Daily Shaarli
    +
    ——————————— {$day} ———————————
    +
    + + {if="$linksToDisplay"} +
    + {loop="col1"} +
    +
    permalink
    + {if="$value.tags"}
    {loop="value.taglist"}{$value|htmlspecialchars} - {/loop}
    {/if} + + {if="$value.thumbnail"}
    {$value.thumbnail}
    {/if} +
    {$value.formatedDescription}
    +
    + {/loop} +
    + +
    + {loop="col2"} +
    +
    permalink
    + {if="$value.tags"}
    {loop="value.taglist"}{$value|htmlspecialchars} - {/loop}
    {/if} + + {if="$value.thumbnail"}
    {$value.thumbnail}
    {/if} +
    {$value.formatedDescription}
    +
    + {/loop} +
    + +
    + {loop="col3"} +
    +
    permalink
    + {if="$value.tags"}
    {loop="value.taglist"}{$value|htmlspecialchars} - {/loop}
    {/if} + + {if="$value.thumbnail"}
    {$value.thumbnail}
    {/if} +
    {$value.formatedDescription}
    +
    + {/loop} +
    + {else} +
    No articles on this day.
    + {/if} +
    +
    -
    +
    +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/dailyrss.html b/tpl/dailyrss.html new file mode 100644 index 0000000..436e1cd --- /dev/null +++ b/tpl/dailyrss.html @@ -0,0 +1,8 @@ +{loop="links"} +

    {$value.title|htmlspecialchars}

    + {if="!$GLOBALS['config']['HIDE_TIMESTAMPS']"}{$value.localdate|htmlspecialchars} - {/if}{if="$value.tags"}{$value.tags|htmlspecialchars}{/if}
    + {$value.url|htmlspecialchars}

    + {if="$value.thumbnail"}{$value.thumbnail}{/if}
    + {if="$value.description"}{$value.formatedDescription}{/if} +


    +{/loop} \ No newline at end of file diff --git a/tpl/editlink.html b/tpl/editlink.html new file mode 100644 index 0000000..4ad43b3 --- /dev/null +++ b/tpl/editlink.html @@ -0,0 +1,28 @@ + + +{include="includes"} + + +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/export.html b/tpl/export.html new file mode 100644 index 0000000..938cbe6 --- /dev/null +++ b/tpl/export.html @@ -0,0 +1,15 @@ + + +{include="includes"} + + +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/import.html b/tpl/import.html new file mode 100644 index 0000000..9e581fc --- /dev/null +++ b/tpl/import.html @@ -0,0 +1,21 @@ + + +{include="includes"} + + +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/includes.html b/tpl/includes.html new file mode 100644 index 0000000..5319f45 --- /dev/null +++ b/tpl/includes.html @@ -0,0 +1,10 @@ +{$pagetitle} + + + + + + + +{if condition="is_file('inc/user.css')"}{/if} + diff --git a/tpl/install.html b/tpl/install.html new file mode 100644 index 0000000..4034ef1 --- /dev/null +++ b/tpl/install.html @@ -0,0 +1,21 @@ + + +{include="includes"}{$timezone_js} + +
    +

    Shaarli

    +It looks like it's the first time you run Shaarli. Please configure it:
    +
    +
    + + + +{$timezone_html} + + +
    Login:
    Password:
    Page title:
    +
    +
    +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/linklist.html b/tpl/linklist.html new file mode 100644 index 0000000..bfb1fcd --- /dev/null +++ b/tpl/linklist.html @@ -0,0 +1,76 @@ + + +{include="includes"} + + + + + + {include="page.footer"} + + + \ No newline at end of file diff --git a/tpl/linklist.paging.html b/tpl/linklist.paging.html new file mode 100644 index 0000000..b0c119d --- /dev/null +++ b/tpl/linklist.paging.html @@ -0,0 +1,20 @@ +
    +{if="isLoggedIn()"} + +{/if} +
    + Links per page: 20 50 100 +
    +
    + {if="$previous_page_url"} ◄Older {/if} +
    page {$page_current} / {$page_max}
    + {if="$next_page_url"} Newer► {/if} +
    \ No newline at end of file diff --git a/tpl/loginform.html b/tpl/loginform.html new file mode 100644 index 0000000..805a014 --- /dev/null +++ b/tpl/loginform.html @@ -0,0 +1,26 @@ + + +{include="includes"} + + + +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/page.footer.html b/tpl/page.footer.html new file mode 100644 index 0000000..7fe1501 --- /dev/null +++ b/tpl/page.footer.html @@ -0,0 +1,20 @@ + +{if="$newversion"} +
    Shaarli {$newversion|htmlspecialchars} is available.
    +{/if} +{if="isLoggedIn()"} + +{/if} + +{if="$GLOBALS['config']['OPEN_SHAARLI'] || isLoggedIn()"} + +{/if} diff --git a/tpl/page.header.html b/tpl/page.header.html new file mode 100644 index 0000000..60fc176 --- /dev/null +++ b/tpl/page.header.html @@ -0,0 +1,26 @@ + + +
    Shaare your links...
    + {if="!empty($linkcount)"}{$linkcount} links{/if}
    + {$shaarlititle} + +{if="!empty($_GET['source']) && $_GET['source']=='bookmarklet'"} + {ignore} When called as a popup from bookmarklet, do not display menu. {/ignore} +{else} + Home + {if="isLoggedIn()"} + LogoutToolsAdd link + {elseif="$GLOBALS['config']['OPEN_SHAARLI']"} + ToolsAdd link + {else} + Login + {/if} + RSS Feed + ATOM Feed + Tag cloud + Picture wall + Daily +{/if} +
    + + diff --git a/tpl/page.html b/tpl/page.html new file mode 100644 index 0000000..834915e --- /dev/null +++ b/tpl/page.html @@ -0,0 +1,9 @@ + + +{include="includes"} + + + You body goes here... + {include="page.footer"} + + \ No newline at end of file diff --git a/tpl/picwall.html b/tpl/picwall.html new file mode 100644 index 0000000..2083a62 --- /dev/null +++ b/tpl/picwall.html @@ -0,0 +1,24 @@ + + +{include="includes"} + + + + +
    +
    + {loop="linksToDisplay"} +
    + {$value.thumbnail}{$value.title|htmlspecialchars} +
    + {/loop} +
    +
    +{include="page.footer"} + + + \ No newline at end of file diff --git a/tpl/picwall2.html b/tpl/picwall2.html new file mode 100644 index 0000000..44d08b0 --- /dev/null +++ b/tpl/picwall2.html @@ -0,0 +1,19 @@ + + +{include="includes"} + + +
    + {loop="linksToDisplay"} +
    +
    {$value.thumbnail}
    + {$value.title|htmlspecialchars}
    + {$value.description|htmlspecialchars} +
    +

    + {/loop} +
    + +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/readme.txt b/tpl/readme.txt new file mode 100644 index 0000000..b18deae --- /dev/null +++ b/tpl/readme.txt @@ -0,0 +1,42 @@ +===== Shaarli template organisation ===== + +Any Shaarli page should conform to this RainTPL template: + +----------------------------------------------------- + +{include="includes"} + + + You body goes here... + {include="page.footer"} + + +----------------------------------------------------- + +If you want to also add something in the page header (in the dark area), do it here: + + + + +Example: "Add new link" form: +----------------------------------------------------- + +{include="includes"} + + +{include="page.footer"} + + +----------------------------------------------------- + + + + diff --git a/tpl/tagcloud.html b/tpl/tagcloud.html new file mode 100644 index 0000000..6918c7b --- /dev/null +++ b/tpl/tagcloud.html @@ -0,0 +1,15 @@ + + +{include="includes"} + + +
    +
    + {loop="tags"} + {$value.count}{$key|htmlspecialchars} + {/loop} +
    +
    +{include="page.footer"} + + \ No newline at end of file diff --git a/tpl/tools.html b/tpl/tools.html new file mode 100644 index 0000000..48ecc97 --- /dev/null +++ b/tpl/tools.html @@ -0,0 +1,19 @@ + + +{include="includes"} + + +{include="page.footer"} + + \ No newline at end of file