Commit 76a77b6e authored by 赵瑞's avatar 赵瑞

增加全景资源

parent f9c7a375
Pipeline #65266 passed with stages
This source diff could not be displayed because it is too large. You can view the blob instead.
/*
krpano 1.20.11 Bing Maps Plugin (build 2022-01-13)
https://krpano.com/plugins/bingmaps/
*/
"[[KENCPUZRIYI752mLn*Fdv'%n;EX'WOE)u(jXfc6-w&TVxQjli,Ym<8@Y[*s%&t2]1SE9_/#P)'EeVMR5Ea(NJCKZP*Q)>Org?P/PZ/+o/0>lru9;u7Q1-8C=N]Uq,Y9gjcq1;Tb=:oX:%64V<oSo+d'$&2USrb5mRNCl&HPfV3Ad3c:)x,%%I7t$/gecbn[wuo1p5Rnl'fQ_e:,PIOUr%hRAYXff_@Ee5bMYg90KjSJ?995=@w@DJ`&7`s/mtg=+P8OXq0-0ANBmdRa0Ls9'Kmg+Z5/H,akQh$pm25B=hgLClO9<Ch.`nqU%&Df?._4wr]Lg[:+5NV-H%jbPI*u]p4vuAL+u5gaFP1=ZUZ6)n6a=od=&*go1U)Ni@3[_43B:=E)L>%jl^as:PGWDm:K*j1]l1o`_2eu+DrM<:#,.L$DYqRR@]lukB-X@p3hi`CE.5?kt*K9bW&mVo5Oe]=0QA/e_(e^EjV_cHvUdXE'mo.M;?uL&jqEcYoYb66p%ev`h%SPX&?9SY+BPMYueP6G(v[vH&'GeW:qF&uk2a?wAF3$DJG`t:%?)lXGoRH3Aj%/Jj`p2bAS]RFNP6ix7<ol<Ce6=fDdenG^'HBDV[9cHGT&d3TpLS(xA8A[ZCpbZ_324,+rbhfLf:jTgE(Z=%j(djAq.1-lllTP]rp3Zx.:FiS%r?^-)_548sN5-w>R^qQ$F0[^O=Qu/^$>^N5>6lkomAXbs=ui>@v'TPaq6);b/(^Jxi3?xAn2_I&jX7>#oYRs'8G34^t$uGpn)qT<lP6ZFmb3+4<$=?kQ4I'clx[Vta25Zp(=nmO2nt^ilqLjl#;Y(_@]L,b9V)q=dDJJ8^0#@KYoqN@RRwDljFGh-`H^7X2>gf>OkEdb25ex38MNCaZRgr;9GE0`Hbw>QV'`.^)c0ZJ'bh;L+#mUC03cheZ@JE#cp&K3mXfI<i=0ok094:-[i,@Ap`uB7DsVoODGtTV*j5v6+mpsSH>PxAQDL<<[,(xiu31Nv<^r*_n67dH*vphV@lSSY@i=N)B0jCr0p[a=#nN9k]:D;T$8kT<[4U/A1.`+b,xIV'1mu)IKWC%/-qwP]iX^k52nMT()(7QE^Vn@o?0fKjg9oj,qvd)P1)gJB8Px5cZ<CMI]@MY#>b3E1u6U/V+T;lRUC(([s=<-cZM24`KkB3fINhmN@AJ,ZO;rO+I:SN&=&xM0Mp[])6MYx2#-3UPj0,ZW)p8tEK;h>(8&VGN)+n6meldCO,ZS_+($'nhRLgl+p%h=#XmGa+e+-D$&/5v>GBi%^UwQ@ecqq<1X-h_Klf(r_5r:UQ8JP#IW5+CJ_>9&9dYHO%lp0q#0/gTr7bZ#pA(pM1)nU01ZCNOlfD#m=?BOC#nWG#dD(]_S1?&gsZ;nKX6eU(hMd&c`gerZbaELe?tTf=/ekITP^ftD*98nPcOrRS[D/eiLOKqT9-]3s6<DiI;2A2,i,=>IkjE=LjlxQteT?5K>Ew..XoD[:(>EBm5b^iU#8n`?Xn-kxRoe>#-N>Hd.jZblNDbgTR<f_vf;B?vVtq0P`GD_:G,(@1jGYR1R)(6e,n;Q'72'@s4Lsie8-0%@#*CahD7H;b=d8XlmT:E.K#LxQKHfnbfiM,K;<>*lLWB&>[2<PFHbSqe4E.0NOl$T,@7nG/2M3Tb#dekNT@.Sb7B3TL#5,+phkRI<VHZKTcT,1E_X(Mk<4sN=T^@]VQ4ihHc?>Wb'V-22joZJetEc;X)A`,Q;g=Li]$-2mcA^VtF]E2neK)W7jNbi:tT6-D>7<BAZ:VO@Lk-_$AZ2bbVD=:0xhh*(bQUb(gn$)#P&Ub[q&0=DItj$t3cEZ86_RIuTHl0fG8^,&6SR`iD@[62[?)21p-9h=xQ1@V1$0:9R$aZV+.Yq-rQm?GmFF?Zkut)Xg=j;C[[aLv)[23j;]c6-=G'v^+&`/3?pYSC4Lh4`)LGFM+F8mY?AhGkN2JQXxN6S+[9J#N$^I<oW_x@XpSkPER4GHr8v(m#5E3#?&Ng9gA/uYo&*#KA'3>wqUsc;I)I5ea]41^KwP1&4[?`d$Nld:jL%XW-9.1AT16mD5=E#EJLH'X7x@b_fnk/Qdn@Tj7>;k<%Fi#?we2]xI>SbkXRNaZr&G-/-ZS27Ch&ON<17L&_2'm*SUbApxU,G2vJ1P2vI=;2;^f^#/[tvuJOAp3%]3&<hZfcV]4h1wqBW2DD;cBvU`^v'C^3Ol)b*8`cWRPB@G[Ydh)skU;E0]P_7T.KMT]88qD)`WLX_U.`BKMXnQhc;>#;5pWX1b&oLKl[4u7S*hdg0umRO+lR1>(&>,@G^wuZ&4bZX#:]GBe:X^Ag[YAU/G%m>pL@`v&n>].?#EwYKQsNBd/+1m5Zdk(kV+c]:jWs0@L#onEjkiW'efAsFg$]Kc^?F[O-Q-Q9j_G2V/SWHoLt,I'tTh5=E-5MtKM0K7o9?3A`5dUDg1P`4(/M*S;8s?rb=#k-]VorDBpT2Xk^'LsRre>Ee8(ri5Z04U)`>sO4[Rk?OR59)Gee[KXn[4`iW)laGn/T$oE:Oq)Ob5%'^&r4L#DfFL)U&4CaLiAmSF14;wZe50w-&GD<toJemQb+%wNY@tKxu6u(.s`pSaML80[(SLgq?WfZH^IPTa/ctB=pvwLMt[jTYnJ0:KbOXnmLJ,^[jZC6)c]@[U=df30chY<ZJQoxU=l:JM.(qkV9jpwcjUDdL&__e[s9gLS'_L(:Um&.]9^R_XJ69NjAqAv0I.d(9'H'NvrlUHT57Mia'6BroJ,4XPR,*tD2:a?h1G02V4w<P'QE6&Hp_@`_6H7eQZk9lM>$[j'8@vWeKO'I,1FoX[>&5&bp#*7Apc_t,NHo3)2#eZa9Dv&:K$wuSFfij^nrX@I-^;+`NvmUpm)<=u(J0Y*c.;k=v%D*%D1DP;aI431-:vv4SP,m:CEWKTgfkp^QvBwi2ncC%^2khtXbvrt4fxrF.SS,jp1QkqUs'oe?)gevkF9],Le?Fi44%^->00eO^Fx)ID]XsZTql/]-1;c,r:Tn<$SXkjWu&*[=^@X4](98LiOU1u<URsaNj]ak91A+wi;@h^o_]=iJu,E1-Y`Zcdw[0;HGipJhmN=-mJRT+<,KH0jr^;=a$6,8e>)T(aId#x/vPVV%H%MjG7jOJN,fJgJ/Y*`kD=c42Y)kUb0Rl_k2eLw''l[&k0m2x-^drhCu`JkmTwlYe>d*QpFM,xTn>_N+O#X-d_MeVX_w+F`9PWH6:1'Jsi:qF:Sn`W7e;/W>BN>u4Hd42^j640@h1*vY$iNP<CF&`<Tp7ZsXv9B8$e$Mm_s;NLH>qYt=%%r0FR2MU5IuXY^0G.q#bYo4Qs8'g8)cM4.uPXueu#NV3m9p)`FB];vcg5/5WFlRKq>roc_1WQ;-+C[aIv*L3i.s`(9C09M8@gpab[&_Y9cABKrWV;[Jaj#xN5M8(@6d]eKtFg/6f+bZg$v(#$LC;rPWs+-Ts1^L1kwcN4b*=q;^0Z`C8Jr]0Ln*2]cx%uC#)i/InUW'#F?i_%[N#o,d4F([D0toH#dG?Wj8>#55Qe6s=7$KYDS'$2YG_m*Z?l4g8HAoD/O]vt</*GBdGX1B'wEr1ue'J=`f5/7oj--ImvI$'/gPJ([O=/(PW=$N=WrdB:.8n=`K9;lLkLJEu,B4/t&hwf,H*9_BM57-=id-JOvaC;g&2tC>+VlbDh+Ejv?^6_oabNFVHi9u9f9$/el0Ig[BIT<]LX`7c%$I=Ho6l0^MhJ7xc^i^ZO-,6>k-t@InR7mkiK'2I5Uoj5Z2u=+3B'Jo?Tw:</1MlCwD,@HbmW)nFiq5EjXsG-U#+;kgj`X.nN^_,'Y`%hwh7FU]KT6V.)2C&ADcmKTj1*6oV;ebXDq%A@>$$?pIUeVL8Z.,?mh*3wfo6>E,RMF7*5ROQUtJ*EL>8[vgp@:_-v9k/jxR1H=&,2Uh&;>ik1uj$3x#C`bVd5L<[r5_I5b1+cXKVT=b=-++k]iiRJAX1]ZkH(X?Z(a6MXO9WqOe%#+ZYi(sm#9Skw]a#>`UkPWlt&UjD&,IJi`BmlH0?d<``k9>*tA+0YR9SF;+2U?ke+(RnbAC:6fr2pY,nE>([=@xjL)($9Q4qD?x8tXiF>b@,[7f;=DUQdsp4:=R>x^1T*F-KD:#rX^B`lhreDHQG)`d;-dt^]`#17sih69RVH7>;gGdRi<8.3<Qpj%^hi?T6J)$7>GvoY#)wL_k-d[b;C[o>dH(EkRU8(&]Oa+[o4crec#ON-,fvwVAi/AmbuiR)3J$%m7*uX,>Wgn5`UQ=I>:pJ=hY#dV(,@b&Q$U8fES@##<#ojaMnQ[SO0)u0^J;KdE'$93#k-n0Ivrv'1:wgC$LjT1A/:j^s^9QkBPUF:Du5;rb@=5hgCtkb%Xo)0V4$0cbDaRs,.t[`0DvJ<uWO>gd03]:d[EnObm9P'Qa<Bo4(<AC-m4BZFj<BV8gI^;:dEtq=(1:gVB)K0,gDn;^2,2+U1Z;ZThjDI[sw4;qlF^0rj4GUC&P&b^:.;b,?[r*)'+L-^U5Eo+vZQ<[vnFPu3hvFS*oIJh'(r.+KlE3NUjUG*JEbY:/5rVt1[JkKU$wK7]tf#4-/.^e(P;_P_>wUwr3YsqbGdBm:oa5-IvKbWAZ@A1g1g#h',0iK7gGBX2]A.0elIGm`g[j'^2=^+X#'$A9oV^(RxP/e`CE?K6tL0_7(>UAd+USC%gbb[pOXi'frq=,tf2L*7NTpq6na'2J8+qC'`fplt/nm7lSTL&fw&-VG[p@P*DuY7g/e.cPA[-A%AagWfV`eJS0M91RR`N&D^)ewB'_GjoOBL.948R[&e4c8q?l1$P[dSpm`+rV<[b40>NKXgXUi]S,$Eq8T9b6d#&A'k^E%UT>FxtIcO%As7hF9(k2K9vYd2/xr-;:Xg*fia%x,c>OZ^/f)Ofn%<3c<`^qhpvUvM%qhXk7cD/BmXDYKc^v`o0JWr4-(1pknW:>anrO,UM@dwJH*A=7pJQ)n.x,B[Y<>5P<Cga?4.Z$&<'.T'gU.`EH[Zn0mmHK$?gZqP/5PY]b1Gs:pxt,A7Qgow&$N.3^J=)8:V/(/=L&dOV<i)]3Mr`tYA5Qw;hMx[*(uA=MP$vk]$$QSN])X';6E5rZu_x^uVnwvOaM,$t^2wV@MDb>Px_I1<pNrfC.`.[sQol?/HHFfBUen#-^2E/[a_jb6QwA:ZA*`NUfO:KP.$XY?X]?+jVT1o#]e;L`3AFL@BeIn*6cdm3v81u*VCHX%/w*bUG;K1)oBk,)^.`VBIQsCQ'UJLd&(p'+M<Z#X<.K(4eGivG49_babq%Mcp?0NtFr]p#X@-2=2Y,<$/`$]b2lV+PuM2c(t6llRp?:IIM^$.,:v`+>5>6jY+J&:l,=Z5A:_/@:thT:d6HwX04<.t@o<d.G*NuS,mfqCV.JS_0&ID0kIMR9MFkLB;dULd1V66at(#450&1Gu7tocB59CJ-:8Qlak`@GW]R#*,_B%R9I>jr6IC=Q5OfcHB,kmSj,pS5l]ZTEb[@8%%diAo)XdVvprnZ2Cgx_-SH%-^U7Gx#+2TAr9U1RGeFL8xbplnv)>;*c;I6WG0<6^7G-0$I_lg/ZCiA6Xwk/p+i*+R?i?Q0+T5Y,,Bs?ci$=Ug14n#v#YKLJ#4,lYKU6:'=GobwkYs^A7`dSas@mhY@IhCL7=e[O_we$H-SG%(;``+QU^m2#v[,%I()aK7R[sUkt$eBxYc)Y2$.P)x^:nm/ASY@4@kKO:0<*Dk.+Q4IL4ox2,8N<Ntw9K2GILlTs*$lEq*(9hXuBnNIC6f3rlPa2i(dV*CIv8>tl+t+Zrn4+xfa,B?3pp,vWL?rL.JoSmtirhrI;J7W7s2^;aqF2w[]Fvq4N99g:E3hsh5S7Ri-JU+>.#vk'JfPHWo0_bG-c4GH)]=62Nsbm=m<PQ7<&-^VSMREmit84C%=Vo]$8c*RDr:BpQ[L[q6mkN6Y,<5`%Xmc&VRHS%d5'D(oE'xbXEQ%o2uoDMY[R;;l;n-S2xRBmRxf:^i4+;ZX8ksLN:H%T,>N7BpI'7l0BS@>K@0sLU%kodbsSnk//IZ?G`i$J)AdfcZ_XYVGaG0AfW@N'>i#D?rA(%/gOL`#dW<YxXoGK*t>afkO)UZ,C5cM)7%035&#m*^uMtUv[?_JZ)m3?1^SH?V8b#WnHl,Z<W96>`Z05@:3]n/AlWm,lE>$cS6DN&YDhm6fJw5iT0T]&)7j9$AMd*&`#Y<.10c&3(NYmVEG-Fq(n1#W>2fZ=kKK^-_f_0[4a).;(9'Y^h[D650F1)>e%lMp?3MZ*>0dRD/Lnw3S=:L#E#1Tlk%wJ*5Zvu6ojot>NEo$wk7JS]br>s%3oGCi`aXA:Up^SEh/S1%%C/S?eA>BBkBNU6pi.<3?Dr8N?%`aOS)+<7nrKLC_$+ll1r.7cKmNChciS50/H[faX>mHZA9x10J=;oXZ)'/[VnAuw#T=N.Q4wd/CG4Ku6)Thxx#0BFm,u+IBV$589Q)5=_fJ3mDG>YQ($q^1.9T/=AJ:TviIW?=0?g60e'0j$tgWZ&<QD/BoLUNJMdjQiGe`[6Lg-%SNseoI^0JtORTefb,J&m<tg^+d]nk>Mn+,PZkECiR-&_OtJ5a/px]?5.O8LhO=3#%44Rga,<E[>3woMKAknv?ClICig+lPWR^[P$jO*,egJ9Q>JEthu3.(i,IGs.-+[H+D6GeY35F1G;<usf.>Xh-X_3ICve@GZ&@SjsRZrX]Hk66N=#WdlO0=IBF8g'KA/$JvCoM#,^Mgbn@@X<lj?M(X6ZHiAt<GpdUZ.2SCVxp6t#vftxAk2Sf;Xt.(MVI#:oIo&K+oW7,Dv69*Mo63uR7Hi-27on6SKJ+Qd6r$.hTm,e1h58cprL>5@B^3p#f&<c0C@&Fh5fBW)jaA$Du=t<[cj$W>u-Gx>.knicjZ7SV,0Aw#-b?D_c[?IaZIKx3W.0U81d3/N88[u*[+5`kggZJ:x$CBL1rCZSu(s-%D'3@SGd=ic]ABG-o'Db0W@NCXAK's:Zu<0<5CvKX3@4p7,BEI:P5^6T<Qq4E?,]sw<)GD._-;9e'>e'9wAC(5TDr#P8;Q@_<;oYR6N<AYVk_wic;;XUI1ht+o'PrD&ZNt0D4c@>k0o_H#bJ6%:M+af1TK*B1gxRE&rKLI[3i+&UW',*$Rmso0ImK2fs(Pr_r^BllEt0vwGRb&Ofqe8<oZNs%t0gfYM_6)kjQt9X4Y(VWjlDSKLX:>+7p*kwUa'tN4HcSnh17AkRr?AOo#SmaPR(%]8J++;nh*$Ua?Rkg6?JY&T?G?,OF0F%0:0W-`0#GGqeONUc?et8&>IRf4=Lsp]rM^Sm)HG?ScbQQ-]Y*OE4NmctVTiH;RJ1x`Y<jF,OBND6+oB9+'B<5'eSprrt,>>o>D,DeRn9*=__w`s`Ul%WvRLuaOdlk[lG+w@9jP7IN#O<LS:-uu]EdQ8BF<-R,5DL:<9$5Xmu<?fhUwgdu<LBgMU;f'Csk6;H1c6F#BClKxQ0PX2qbVDXA-(h#nZ.:[jf-(Egln6;)vpnI,89sw*vc/&VIBV.pr$jk;D6Jo>?i)1jY-3E1^B.;SAtKAC@`4R#eV'`FwZqt/h(_#OfEcr[6cIOK+&gP;P$;kmgTu^@NW(_]LT=0'uk>7NS5BSg4m<.2t3Br)W]<J=0(+O#m*:2,eNF>g6TKdZ:GGm,6Yglh5?+oWJ/TfK7NbXFo,Vlr=-DD(9#;K?.PfAh^<e@,rb)O`=nej`F0,-io$.3r^deiq49mLLPfgsbWI7/bNH.VY<-#;7eM/?bkujjvA7UhG73-k,7SLC<>$;(OEU)1,ID-]K+,4*cBw<juw&c`30OlOqgGom49E?kB9fq+%wd`jcO93kR6NgVg:$Ak#t2Nj_o-UUk,R)6_Rms(q:9'gcBt-/)mc7p#/H6O)BeXqkdsM;p:&<I.QHnP7Ad^:Nf@[2$/eV%j3bl81g]TZ%ocT;x4CIvXj02=XN?LdF%9hx(/=@/AiYr74/+It^nvQ-q#6UKXx$>1frXeaLxqC6$rIE*(B96wP>@C[mwu+^<GC$3`rxEc]eLr:?X&SuCpLR-8BVU?+HMkljoX^:0b;<p.Mx*1/#tZfJNEn+`Ybn-ft/nI-Ba^-d&UW.3$Pd&Kr,W:/8:MjD2m+Xj;[=g/oVT&&0%K_gFHF%U^,Je[=geehEVoG.)spD0XNG50G5SMO,GV=H*b$PXa?J;F'V>I'T./gdN6:I,n0fW39A7/3G-G.+b;(sAhV;%36;'b)SwmY:xbeLe*PcQ,.ts)[T@XQ]QvIj_hT5*t086twtb38$d_YgO#jjCQJ$h)bE8*(Qi>5QCCb%+,L=5j'+.hSHA^2[kbT%>pZ7VnMS`3aZfI6#vTgWHvGGrO?I+pUb34]YVNDBjRi8ROHXAdP3d<8[<-B?,kwnDlCK(h@d[8,0@ACGB22]$fsgQLn^m&@YN8iAVp&*`h55A6OE?I+a+O,m=aRducVP(]Px*;9P^7i('v`#$]Vx1Xr&$&<,CL.cTDcK9iMJfYM6u1V``W+^3og*KgePY^wqVrU[tWh:x1FS4LfSSsR*XOc_13rQ4A_cG*^;iq=Fl#DJl%C(+;q(Y+huOoAtJ3Rvt#PBo/U<7,g>Z+IPxNDsV'W/@5x:nCeg8ldrS9`arPM`QjYFfxaDeU2F^Q[=U?T/c_qxIx?U;`rDtoO=?;U_)#;8S2fCiS,57$`B.I$.n##xk<L^vQ*,nhEWDfjNGUV)P0cS>s=]ZMnWX-OO-1llfi`cX[=FWQ1aQ*UUZuG[oVuQB5fDc9FR@`tAZjw&Uh(CVG-^cvTpmh,QL70.oS8]hX,d/2m-EvOs*`(9hVKdB(ui(7`w`l,0;hn[+HIY,,qk?ROS=)YA$N1]#r3cb5s1h1f(?Bqv3gY1=0+1;Y7+T@$Zkwuj4ewZ,#[$<ehtN7pE6(x1q5CDZ#1^kuJffY0^F'%bbX9<#/7F#$oXx;k0M@=_L[`'CePY$u[j9Lkc;JTe,vJkpX2<[>kux<>.*SI/:J8dDY-1O>(Vl=JpdausZrnEQViFC9DZ)l9JG:N0cM%dMMAugU?%=mZOH^C5c(x4Vkma,XERKjif+/8uiBVQf&M(N<Mr^-WR_qPD%`6HLucixEOS2u97AB%ji`>2mq__?(FKG`N1Nl$g/CR&O/,EZ8q(&>j(HuQ5(_e*ZPxMvHG_tViXF#]?&wi,>=LBE$8ifSi2&AqJX)^r*5%J@hRL8$p8tf:>gkh35=9R.&j]n&,xrk=cLFRE&pC3f_iVb(FsxZCuJJu[PS^iK`c>KL#0b6q>x`XXk6;TZQTvNh9Hbrh*=sOIR:oPFlN:a*:-j#jTHU*caW0#5'S&QLg5h)R=)`>+8cft*v4F;xgH+x.JL'@,9-`Q+C[5B8Wj[hl=4a8>ODQ8RXe1O;DK<8I>f+O2.5GKLpZiwm;%2:[&UKm)dCv)F7WQ7pGe?ml[UFLY;UM&ar/Ikro8X*q3Hbb`Nj<5n?A;O#<i*.o7t9he6&@CLCs%EakE>@96Q]SIcPx59:+Mi+NqWV06MMcb$Ke@:rQhbYQ)Oc-(J'@*;UpFflRE0q8UV^a=,#$S>]G>S'-g=*Zj6<k2]P(T(ZWIiK+_:G]+0M8V`_2P'M7;2Bq'.ZH#:O[_?#[:SJn7fTjjq#q-00?*OrTP2ZO]od9=JFfGG,CKadf%T8*$>7r;4x>]R)eB)YsUP]lWr-upSeN+1;i^$^(_M:eE`4QfwtGY961re@D>gps/RCL,wpKrS4/)]T*bW91eDr?TIx'Z#E2,uPiGKM`w3F@_AC(xZBJ<8g/9R?u`$siUWoN_wKpG9;HZs2vr)Z@4'Jq_n>`hCrx'7D.PVg'8[06A''Q6Joa.;g#-+Axwe+f5L.KI$kXTccoJKdC2qP:<.?#EEGB=Qb^5dhOX9eR=n4I$>,3v'`h@mhv#.Xc8<tHYDZCSq.E^wLok0bbD_$vdY&;bsuElhTkhd_[q`%34^WSWZbio7:UTg/D4>H<`*asv9rTKx/$:#f-9Lu&hjaV>UKt+M;:BiTlYY=)V0T$MAr82rXHvMcL=N1`C;721KmJ:O0d)rw_6WfnNR<u4>B>0t;BIxoM/mA?adQ-4,,*Q/9'rj$W2^gi^I*n3Vhu>uOJXXg-n&>D%7]Anmek`]H]$'viw.q0Wn@G-G/;R(,DSbENH.wxHiGgeTED/GsYlVaeN1=1DF*@=8O6O7@gW$UP%uZ'$`%a>(,sI/l9,*'Cp%8e$Ef74^mXA4qAx<;KDtW6tq]4C00ohhTbSH#L_7*13)=>.L>RaL<F08mbFBti9K)e`Lr81Y&U-;kX0XLp`LgZ&,^F80gfUR;@+QiZ08_5)R?W#'usF8Z8J#?`*v@XaOrX-MpL099)U#I=Z1,GT$Wi_%bwt$Ne+r8AfM[GBm[&tZm^k5g$i@7q_BP(*ucn:K+nuZqQ+P^A#,q/Bo4q`9(nq1+'Zgo'77H4Vi;qm?>vB.;%<eCU1A<Y>RrhAaBrc,jX2*G<*iqSL4Luj:aRZArApE]:L+1c2f<x3=*da=P%7ClM3P-xNkXb?AL=3s9NklVVOIF3@6W[[.W,1Z_<c(FgUs^M'r@*^17pEa:8dq/mP9B?%'$T<kg34t;s)B2<Tw$&N<Qovb.+/h$`3JkbsLIA]9K)>3?Z3fhPC&u*I5gdxQN<85NiegO5Ax'U7>+R;irTLd?x^0R*ixiV(NoARZO.PNP#)T:ab$]CeZ%=87C+uR&J<tp'_]?ItZe]QY*N%5Sf[uw7F5K5De>;n/,'#aZCSQ=_#UVg*7US(sFw>$dbwhrSVAp*fW0/;-v#%Gpw1;:4Mn.eQVIpL(wUMJgxMa[2vo6MhwCC%PN]:-`X#%P7rl1(Mn'.EH^90tg>cA[956VhZ;*xM_w7e]];C2pIAuf'F%h[(#FSCIsfn:?p%meYaXpdp[V]Qa5[,<N/RsRCDb@u&R02o'>5/].#exu0>j]cA7:Wo3)q^s_@;>CuOeBCMsOgQXMA@#*tT3w<H<)5slnj4dE,%jvS0b+X>8d<<oeU[&H(^pd)Ld4SR8gSO]qPqd?[fTjR<L%GGA4UHsjo(bU/-Iw=F<W.TW4H=-/)g0o5Y[XE@o=)%CQ^K#;`s7VQ=?1**^=#bU;J6a8%YJeYHc'D5$u_ADBjil9ZT%%FOuX?:E7HPXq>Cgn5A]mpUxaYx5C)%.p*pu.d,HsZ*ni`r+m51Q3GQcj-YuntGK6-';]apJ8X6]-#gGoh)<2kW+3;PQMBk75^Fk_^H;b$YJmWL>Qfqa6B9Q&Q?_f?=c]tB6m3ni3ue[[>:^sgU<-@18P'[,vCc<T4MEU>PL$^f;fpVANO9c2r1YjcT[wo1H4+LLjA8d'LCrIJZx[G&ev'*Jct04q?h?NYvCwO)$H-U<S>J(pj8YeL-'%+6bmh]RLl<GffsvA'jqen.YPSYBST^`WrC*jCSF8m<fDc+qDTBMe('S6W$R[M4e<r3Ja_KCK...UsT9<T]ZawF7M(u&MG=eEfoXl^b#lbQ2B5@&NSBt[Zm[eBT_(p/TTh_@OZ$gJ4ppE.1`)a1j5:<]Z`:l/Fjuqml@WoPbs&qBEdf8MH3YM<svb0Z1cg-sP)sX?F>Ghrt+t6a.#7K8?(IH2PAViwSfr?):]hb<bnCOw#BLql$O8.@s_R1]mxna0A@Lnp.k3a3.e+u<;Lx_n3'S.-l,Od9Zp2Bs]OR9&#'#2JQ6Z22@S<bhsZgVASf&/SgpvZ8a3n=tC8,xC;m`^8*gFN@<Rv/MPa4IsY60o9CA6sacu7^/6d/5&%=+OIISY&528t;4ORd>;&r/'fp'5>)([-3[_VK6PrkrZEj;cvomhQmO_R)L6Yp0K9o'>4HAZw'.agbDVIF>9@$G$#Q])1w<l>UWaS(/.s7(iU.uhC1a/cl]KJ'k>#Qij@IJ9'k=USD`;gv%oUOGL5ps`JU:)lqJ9]NijY>.gCCBF7iB]]Wc07pQwLN5lR3;n'p/?gRx+&&e?F$:=n2E3vv<^tRcu^s9JD[<]2bv$8il`o)-E$0D3N>6m*[]fF0PM.>MqZl'2s8eS&qAJ#RPBc#A/eedh'M=A1bEp<K;2/d85E%T9g0;XAi6O-#_VFhS^AR8:4QL[u+?EZfE#RSr@_lU_jIJ#'%7L?Lk[FhFqZDw_jK`0WaGQX5(7l,v$fwo`DA]k$$2sWvj6*dv4U=$kL1=hk@Rl2ot/a6G/HbKHO,[mHg9MD96fu<%D'3a*p,-I`i,YRs&@(RKtkedW+H2nW)Q8$F*AU^%X=37Q?4;?)EmR85#3N&/3Cqs9.6Xw8]'.Q=.Edot6;MIBTMUC8s$whk'NjJvm(aCHc%NtLq4EUpgQ,v=Ue#P:utuMbgQTNe`<.*LT^jAn:#[M1O?RM^%3CX[i5,A]dJxc:`aZs<R<mM;Y-T9N%s+Bws5tWa6pm>,Ak8Ba%%.50Zf[hK^G-]_5v97'_j7CLHKT&SO)$U=J&*Kw:E[v'4+05-TRCQp>o%EV(nY)W'q(V0MP+]+X_uO;[sAXIcm60?6p`bg9`3SwT^])TQVP;j4s_J:f_?Sd#r=Y/>rpriYp1>:IjQd)9hY5;KgKN9rtiO.)l-IR,O@qQg-:Sw=aRa3goSY2H;/)v9l7cwh=`5b]s''UprB^*As0e#O6D3Z*`(^D<$Ad;Bh3LHs>ikwi+JnY6en?a4YZRN*,K=uBZU*J5H+FKbsogk/H=[E;O7N'8UeQjxo92kvi7r6jAN;*_Wio]e*]L0LHr;>AF6_?C+n5qhKRUI@23poGR1oW<S*&)(^goPH2IZ5&(oh`gR,[P539#f]mlW`*9tJgRNmCj;>4EsN+T,cs,u98:5/^pFfYauRmIw$@j)JJuU;=rH4#D6F/tL$,khbb$HW>HSYQ`2qBx8X337U14W=L)cAaQN,0YNW+-Q>CA&Eh+X`cpu80]#gHX%qKI/Mc*j(,7g2tS`K'8/RQOD87EP<+=06gRW<6o->'%V>prTFJ-PvnUAq`LO5fI.&r@4;n4DFu96(fDxb&+8;SnOR[^ts%]:^NBj]C`Q$/av17Ggn4$B5a:Vbu6Z,:4*o[cl%9M]bpl3o<2N+p?JhKlgQ(c_U#4a5I2EiFKO^_>]CWIYfe8]i:qfx7)lH)D07BukMHUn`;*L2IVJQ(Z#)dbh@;6guu_>QTiZl@@ew-IS,(RBKaTKg6Z<%9xsTp9-FlGQcu$NA?:2tdO='gj.F=c]_D0tb6.Eu]+;4i^KvNaN.pNd=09nW%U/*Ir%vbDGae+,-`XYumbUa?2A-kc`QYfBa:/:@.dpA+`p(.^Uo*XEKA+#c-SrRDU.PY`c(#rhxHVC_LPK2Jtj,EMuLgQSCd7a?f.CaO8VC>#$wcWIa%Qs)4$x&(FogCrTw&We^Tm-+aQCg%;v2Ac'u8rUhjl&jpBv6s=@I*X8YXigntMf)-0/wYqXVe,+qs(HiKtGu9c0@/2UMf]T6ScM]**0o)#m?L?6?=+9`2a=OaVA&*5`+Q-qh0n5+/gkKk=&sh<4_qt+Fj>;1.05^-5;8K89,bTc7H)t)eOlAcgt1OGWi?8$$'RBm/juEf'S17^[YZl(_?K)RZ(L]tddQAT=10q;8ZUWFIPf1OM8H[]+%eb;#Xmt=FC#E]51dME]p9tgT(5&D<t(0]G)c^e?$H?D3i<?0Z:jpF^PDEAa@gh@+BDs?fjR-NSd0[vp$CZ&(%MK:Y^M@..x_wttsCP@Bio]n3;J$ccW+P@1sdKbcx8Hbn;O?:L'/Eoh]B:0M8Max7F-&v?#h#WI0(q6lx?Tx$,rmZGW1,pIHWg9XL`RR:?6K<7(0BW]U&<FF^;:Zl@iNv$;8KBJ+&ivlmBEMwe*7XsB)s]>Jb=/BqM&:j@.R?dQ=5j]n]$b_VZ8jSY)'mCgn-t1&b:NrC<,`uDH8W,Z#;w%NElX3cb4nEX;WP5#M.i3fH]av9u'1RBoM-QBLZX=5JLEaPSUV>UHi@uf=0Nf[85KsSX$C.7J-okfAwm&tGG4QpdEGR8=6KkG&xp]+OJ3C_rp,YFS;`6o3JNwMK(-;+mIc6d<up*x:i=Z[fSTgC1Ot#suOxng/1*,W/p%2elGxcn6MOX+8KgF$T@3Y8F+sD3`_2hVsK8X#b*/whfsVTIX_4V)0<lW+@IlF;VA@WfP*5M5)?rW)P>Nf%/IA3It_p3Be#)g.V?S&qEc6><$c'UxK#=KnJJG&FI=h=YuiRlYo,d'8/S2::+i;A>%%G8J,HFlbOc>T_L5)e:p)N3VlE.AQuqv^efnutW`F9Z$a@N^95m+2Oh[-YdWQnET+4SJAQmc(b7'[)K1/R%cR@f7+cR7/hTD9ltP4F7%$'ZBvVl%TFJFfxl(VADU-+Y33bZ2b/QR93*),&*g2jbIAl>uY4+gsSaO)FGZ*hUVXU'saIU[(*G@vg(@dA+%C0VjSE^_fB[3Xr4G5_UW?d?%m-YuBC+Cd/G<_wOLN&)c3[>&vYLqFgLPRWqC+$q(>2SBt&A[Pvnh;>(nRlUoTcX67='5F%WNBF?%1'%cN>ANf(N7vt#$eJ.U`hJS;&MvHB<c[%*A.qS_)'UHF=`b&S]BbX<?s[h4xYDatd.ojaMSvw[U[$Gn'6;Y'[[h))U*GCuSCe@:+ZO&-X&,n9[A1(=?XhuhA3+II+R#Z<2?XnDt^M;*+TdnqR%//Ac9HY5Y+.hH3>8jLPEUX0uAgx/<v)XnmLt9*7?9=fq%4KKLt@qY,5#lQ8rbi,I(<@Gf<2vl&svq4%rbN[?L:5]*$e`'*h<Pe:mq5`D]OS,vO'PO&/fugvtA>ldu6Z&@E>FD5F#or/_rZKJ(<a8XgYUTimFn0:j1<&NCo#hXMd5`'lXpV*B#$nlAXR<TKra;4=SdX7mP1^F<XCt9-?b`K$6u;Gif7wwAnBhL+rJfgpSMhPn_=BC@pcG2@$8@ARaO<J9aPsqCk8EVV3mA*,dOao<'ufl'dJ:s(Jvdrh>u$/@08vBO(>,97`CtNX/B.7hu_1OJ-UmfdiLi,Y)x,%g*PS,LvgZc<R1<3@PN-/Gl;eS>6F[`rbDC`WT#H^ZIVkN03Ns%ulo4I=kJ;6Pq#^uqJr=Sk?&OJ)<a@&c/MR1St,J#T8&/^Xqq%>aLanZ4MBE0+^PA$I3jdws'vTFq0.PLG6$CC[)mQoNk8<llWAVvAt#RP'l&ZM)rv7g(<J)oc[cE&$_3(f)kjAa]040/^E5FO'T_=o3*^=4*=xRQgP&.M+Tw<E@WHvI3:^+OK4#<KM#P.Ng5SG^'uphrkZRQ5*9A7dR]BqkBFJXP`'5Vm(deEv]0AKdCOqPsK9;qUbeQMx`1Qh&KJCrpW7Cd4.Z[Z7JMR;&O:xU5^X7H3mfDwKM;V?g/<6et9;.>Nb<v^JJW&;->1L'6/b@tK*t?7ic6q=FP_BjUmxXPft^uC,j_R?8A[r5<tjgT?#Af#Gfg#7-sq(CxiAbd4T1$/M6@1B/tr`4Y3lZDDQKe(+cGM3C5EfJ/?;SZdOOr-`Gk)bou517W=3E,cs0)su#t,^@H`A'T8?ED:tIOE+fFmwe]t(x6Z2jt+C>r0AsRL?E(*qm66jPib%mkpp<QjA7dLvi[uIc=3co+6'-K)Tp[[[T(+lo73rVu[*mJ,g6QK_tU?4g(@J2@+bMGQobIM5p($vw2^KkR<]_eo^m?l^chgcsW#U<71uq5pAUeHNdsXixlA>lkMVQ.Y*xWo?edS5UaqomojmWj#ppks82R,35cRK(_n.C]dg4Pw0:1bel(RowH2asI[x0]A[T(RKR_VNmbLO%2/G#Pu%vaaQu$rv*xUk2Qvf;Y+'s&6sIA-7Aq#aCw8]pqug^t`6V;(<;@nq&N/%,bE8kwIgNOZG`BDa'h86hfZh6ZAIr;/,I?)/BO&2?MiIxPVjnI;Y9?6Dna9Iv6X.$,7vn%5`Jx>1*RJ.e2`P#vNiRbx@+p=+;X)4B`U2KRVpp`&'EaV[)A]Af;jRAKWtig49*NJC[4ps:2mnZAmpTB#4t1j`_1haG<mWxcgfx7vT:k%ZblNbFN_Sa=c=WBB91bG?GMv[n`L#0arrTN)BnaaKL6OP&(^urc?puUZ^=>G&T?*$Va-`4)g[M6,s]65<V2L$9nO(p7EcrDMA.V61&%U;xZ[0Xcb5>YT6RZP&-J-+JC_+k<%c]TX7^+0KfD+-k[5(%-r(??DF_F.b^,:.2l*q%^82-4M-LRVnmuxqsZTa'2gavdS:6S%d7nSpv+K$R-+(Fx:*;Mp(9cCqf:#efw5UgF^;m>oM=@#u$2s_W>_>XD#n*ciai2knm25xpX_vG@bWsb2'aoM3N&X&LN;Pm0K#1K`<fa`UYS-n5?1aTlun<0wD93'&[;P;Yt,mF]BPDYD8g3u7jOb0KwO^sxbr;)g0jZH@&%Vo^_C/vcdRCDE-6vJ=kWl.WHNNXLJ#</@P%0baZ9<_Liv+tgx3p$_9EDLw`6nsk5ieUsZN+&a,1TFKQ*N:akRN#_ID<4vr@(1hw?xdF5%GY-V0MZLP0csN-+Y/)<>t&>=F.AL^^_cMF]TLa(a.Oc#'v5',+q]L?#u%vb3vJKvcu1a=jUASsXs58Bt0/A+>#d`WX1'+%9xT'cSjfZ7dY2b7(Y&t$g5*B8YNBXu$xYI_f$W##MO<7rqQ&kcHw(855ns<=OIkx$_:%0tV=WL?X,f%PObVLO&i,[QjMC_aOSBPe'`p*eT)6FtM0kfeMnra54hGGv9w&ZbG,l17V:7C(=R[U&,`bG%]&E<g`ljWaDg0).PNmM(>>]Db,-qSUg'CB3kS.3RZj(4tag?'(OMbFNddjtW29cx8EEX*@aXiQ[,BZ;xIBr7aAPNp`_/BMV<nll2a^=2s6_(=*g*OI6$].1=J*P57P5txm+He)Z7B;>DZ0tEmo[[8RT,%tAod.Y_QuNe0[i&V64S+`.L?9q1K']qu4dcTnDSYolJh-e'`TJ3oj*sGn1S3CrlD)hA&ZuMMr#K8x)g`6*@T&:HTTXci;;w)(fDqFB?N&XD@H/dsV-SiMU5EmBF:k1arGXr>?N(8p2hceQO4g9<_atdIq(e=I9q?7A?a<,gh0GUwC@C0$Qj=Tea<q6iQo7]Zdgk5]?(@<cY0R5]Cc=&^6`7CioA#ZHDu*vJ9WwegDOO#GMG;cAs*$p)3r_-9CWm.w7#j46EK,Vq[0VFji?GRYYgi7;b;*pN?nZ)'F55IU)/mc85./'?Ji0h9%'Im/M4R)(/lc@G0Y@%%A?XTX=I%Y-v0rLMpptO^R/Gt6&CC0<I_eo@k&kO'p`jIpiMUj9C/6QbG^HMSClg(SQY`DP38dwnqP,wBAf7M.G3npG6vA.wU6Dmgh:(2Rnu)24(*B4Pm$lvEjM%Wpefs1[T)deI.CAk*o0a`8n'2G;LHMY7Wclp63ttFJkj49pg^p?udP&#HmQm'K&&-sUeTjE0nn<Hf9nAvhOoWaHa8JvZpZp1c1CD9xsjbCf-w[Yx8*^KVK1o6^i.6DhL3>ZSH0=;l>^s`7PH876=KaiGmx5@`)3,7SIW$&kNN/7J`uiJ5WgRt1M%5:oVGsl-_?%I5*J^vwJ*8w+,0f6WOrG&=VwHxPmV[j9_`+7O;?V>R2X/S:8+RA?@lYkr(mMov8lj(rOrT8ijqd.m[4U@scP/3;Rm7[wd8Kkb,)B>Do9ZuG#+,l];sd+<+*MuBe[>XKdC:MMAY&dEUJld0B*YJ6oaRAwoiDPNraX/Jos)lV2#4'P,T,25'NI:QAkTiC[o=pVURrTk4jv8D2l'xZ^TuAG<oV_X<9EtU3(bSa%>WFO)A44b#K`UnhF;.`RM>vIA<`=`_[>e^1@wr^bhWPXP7B#.nOg/3j#$'XpFtL5U(`R3HM3)((q(;*nOlEZl6NK-n75koBfg#[bHP.HuDNNnfLr$?txv_FF%)liCFa0xdV,qe_Ld/6Av3n3iP6[Lu8F$)tHjsiRT#moU^(qnsK*hI9<,)bSZvr?,tnO:*nwG=E>)`/:D2q-=-At,3%GlTQYU0g?&uxE))P[cTWdlpUwN[e=pJCo/B^[K]+9M+IF%#;rAu7'.5<A+QnKa[oV>@^*4:4?VOk)h>]'i/Q^+#cJ<@O<IEb2mIBG8Go3bPl@YhPm1&?ir-*ZT*0'n0LrRP;p%ub-.JcI5w2$w51K5Z],VSW5*idkuMohi`EdpYAHaL?mDF<Wc;tPEd#((&Fc]C+H-rZ;Y9=>il0Vm_?h4HO<ca8%x9kl(.OtfA4+5(_f_h=<0&RHpUM$_Kj-`>gv+v4oh1Lv%:ZG0;cx1XgKwX'ajQ>,:/ehdLl2-6_O8FggaK6)?fN@]o5usD`w'v&bUN'K5;'onUrQtKXr0QSdOskJh3sZ+ZQI?qk+tCFk&BVY5=siSi3[PwwV8[)F1*J3;f_#4G1P78p8CI^ilWlsc0*Nv.:aS+^iIGgCJHcTTaX6N]TsBTBav?'?owq.S%J9[>)]T:^PE()(BxTJGXm0CNP/r@$'ZX8=h#^+TaF'qD0H,)[Mf>mWPac>Zc.S;n)$%W>akPt)vaZEGvhBGUA3eg0cB:dPBiH(KnbfjE`MO>$6lG-8a8H]5lFm'nC+GtSRel=[%8NM5pjL(gRBmM=TN&uXoRN(xe2hAQfH&js<%A;k?#qt@45?0hX3:rjr(GjZA+>]TG4rnf?1Inr#jAtg>k/cf5]`,;x;S8Jdf1gJp7FaJKLXNZv%@2K#.JBv7+KEBZp^MP=F1iH0LrA;`U2W=-^'Ckcf^XdW?&jbPa'('J:4I[[f'(c1#bFWvioF$P;mg.fr]Qkv`eC61%&3MQhH-p%3[2h3v^T1$f_b5g5`=ASMGv?]V@N0<:`uL('G,e=$^q6jSEtIIBD$uwL9jV-($Ul?Q;g7?9:pD=;.N7UAX<>60RK=5muj&:Z&fN/9L9*D&5.esI_5@&c@WMlMhREx6pbdxI%Q0gEJc#49uc)(s)UlnTqI%-n0Rhb%oGuuQ'kMdM1)_FB#=@WIV)cX_>b.&_'Nr1/C$l5]u%]$&M?3o)_&-f?KWpin<xoD8^m,qhAi:1JAj<dwPpF1cY/cNrb<9*)X73&f=HdDahoPR&p0m)4?-HWkCrV6oupoj>[l+#cbLCdTZiv$*Q*)jg;G?-%r7phW:,l86s?=6kf=-aZ#;+oZ*rbO`0W##)T.HWKL$Brna&%QJSivn2;jA#+`wj]P:0.`?/YY.#`ELL$VOtThZmm[wbpb44n>7ulD3SpZr$Dtn#OC3fXee=o_bl@o[OR(_mCJ4D^H;*;$j_Af4$HMIT_'5QrHVRhZxd,<KE6LKjifHFnq7Sk>qpare[^OjW+[c@U5t):)vueR#7l`CtUkrZe*=ZL+VXlJrS2(kcWGg6*WwYsMIvv8Wre=5d7S]uaOQ1wZ0jAl/UCqXA_ReVDV)F-nt*>OXxG.:blfgXschj9`$=Iq_K$`X`f`:=K@;27rnO'WOXAaZ8o943Q<=BL,pF9U*rg8?CKIYfnIH?Q>,mT[2Av3_.jsYsfb,.Eh#q,GI)Pnnqn,)>8ujKg@x$sX'1]QGYq<7ZS=CTjm4-]j@;j;eHa5AGdbe?>5>?GQI%c]v#dP/i$Lp)I.>WAkHD82kVs2@TqfJ>XYS(jqmAiJgueW2w76HFk$/,1/jt^MQ>,p6s`-uGZ3=E?`3kHhv`?E?5SLX2O&RY38K=KGKZjPvs$[nP]/i;eW,42n8<p4da-P4B@1:b0ka&muNETGpRI[r9.QPL]u<3n9Y+nDtNi+=(ap>d*GIe-Wt8v/KODk<%Ls_LYot:-O[DRQM@02krq@:-(rU&>[Xih<ixlRqgsR_V0S]U0Oq:A1Exndttn)Bn=#G'f@W=T8#f+7dT=e/?Il#luP$v(r(,DF77pS9=D7)j,30,M9c`E2]rM'E9ZcdB#5>ml'ZCQOWutY0o9s.XKgd.=ctBF:set%fHI=2<ek.1fRk:#)m6dE^[h-Kp0_NuDwuD>rI2ueJ</1Lg6AtCR6RrjlaY@&].O>f4aMMJuE?Aq^^>kv0h1pS>0+G6N'n6r[xbVD`PV06R=Nb6q6U;l;&MiT?N<vi/hX%MgG24YR;Ba4/:SK-4.W/`81(X;>EYap.&0BnHn,i2dlruXcNAu8'e-((3g2TOVLhbq+6SP3G`m*AD]+%(_0w6(e28Cd]MY8TZnatIj;=8to.fD$M;07fg4$#;%DCCV@vxEPef.aAn@'KA_$NX]u%<&SbRU0$+V[Sj*9/E3+cGx=r1rI9'ZqaL_Z^_+:#w5Bw3dJ6Q[/n3i=t&7TKXUN&5jH]qY>&uxdo<najB-QM,J(lqRZN8A<c$-LH<,lbdx-URVZQib#%nI?VbE/eqnwo9uB,.nXlqC`j;VN3JeSUCh@g%+oaq([q2Siv<8k:WNL`kvUjfln648m4F#,E>cLG^vq#aNlY-Sv07DgLgNHGYEkU6N,fg5$1()2(VLis3[$&M,37wWms10L@a7wBuun9-6uXX&N1`O$Eto:CGG7iUt#X(/P#lO>rik/H5Wpu'cFF92HE_a>,&R=Ft/@/2&7)sJ*_]u*M^hsULwc$U/P$_G4PFZqO.a>?;1<e(^mDEV2RmffaM=P*VK='Ok)Z]eooUin>lD@MoDaZRfS;$4g^#x>6YBbUN:sd`]PSc@HB.)SGn9D/<UI(hL_4e1W8,]ZL'Lkfp^5Z,sEiHgjhv]ABK%<H$e2wOGD3)UbF$)BkRvU<PJEjklRVfggcJQqeU[7m,,XA3?7<%Ur/`sf>-F,?<x+,K,j5o&M7(7:<va?6#]NHujD;(k_kVpC>1J_.6Y5I+9l&ue=Mo+HsptF6PGtr<tXFSdg?YmIcwt(oW#sP-0kGXXSk<6UT,=Vf^^:r0Xng`O8^-EKAjT%]4*(.o_sG8AM+q4*^s@0<Hun7Zk@mB2iYwxU.Y;Du^3[i*G%X*u%X:W:kxE6n?Ga.8<6kE.g0]I'Ko)Aw`>);*3*'QkAV6f@Yl52T-Q5M>hlID$DdRN(7(;.#RV&O+j:[v-G$MS7Bdd4m4s]1kN$-nD5FjTKoiN5eB-hYGv7%#D]-E&3WtKwa59/*1pEU2W#oZ.W5px?vNv^opt[F0XQ5jjCG&oI2Yj/)$NCZC9Fw4Z?->=*OWK[#-+>pY4)Wr-EK&8Te`'YN?_6x7/RxrjbO#6ZR9C+tE]'n>j.=t8#1lpdhrp5vNsMWtN_C]g.M'djf#L2ojO9E'=6*#w,%/cTBs,K0b[6%bYIf[O]iM>vl@fDPJ]sol#r&p2n,99)&Hj*'GstTmvo'mY-];+4)?GjY4;bEB%];sq]h>vVGTfPWORuR#g=K-i<*uG;M&wq7H,D(:*tUbCKpTrE35h7neA]xh-BuTX>7*d4NoGJTAQl2DaJvw<QQ2+5$T^P'/9wDOB*.qZx4&B&pVxl?0KmbPmp>:=Yj*T>5%$<Q@A2.vxMfl7%q+)]TtIu&Sd-BTZeN0r.QR=j;gEPW^>3>[s?;1K5&vF?aEnYWiP@V6bK1<1ZV.w01ttxV.-A,w'^1kf87QR)tUIY<R_[rF5E,]H,EaGYVT:7PGr:7`;LVTl;AE+7l^,bQgfJ9'CF7>=dflkvtnY7]S-#h&Lk]00?NsXHJV2<&#jlh49r&h.=d.x1vL[3^,rJhlCQm=?1p'Fo?M6=KxHFRI]q[sT#-w79+m<2+$YB-WbsML%Xd;?srs6^DM[H[v%)-_;(WcHxE,w#2?+m`UesD1$4,#T^@]u8vWZLj_>#fU):l_QAUj$M(D,aHcgsW'tdMii';_k1LlZS6/@`QP/fVAtS7QN0g.sKdF?Ibv5(CpVVW/;Q_4Bc[h^qL9gfMmuf_04UD0op?jQ-H0_6Uc^nmbRA7#`Hm_$T36RB1eX<v7(S*ZP.gDp(%BTWN3P,_ISe3x(m7dYNK>iX,4gJ$.X)O#qDwaB+K672,lenw'4.w73VT;3AIBDb1I6>S%2>g^kpJCVnaq,q$L$x`@(IMmPtdNmaYx1@g`hK'g4Lr;B&=D7A=3I7Lx@GrK^`J;D@GLkFVPNHJug3Fo201Q<8w-Z4:2]6Qm*MoltT#THgc>&/$nxajWPg)=mp1pKbbcNikc[v?h:WW3e/_*4m)duNOd'0+pL';98>[FC@$ZmkIZe=XV;TDniA>dGKV(fjh+N_ZV?TE=NV-.]a]&+#[P5-g[Rs:_[=C.oWXJZsG]2?Wr=KMGY$u`+_+PHXE_=A6PZiCDKpxF&pv_2em7c)1A-NCDw'Ka6k./c3B=G0IL-jasobma+p1.Hppi_JcflPt.Er83k&)HFX;maT%a*1wo'CV7p(+upX6nO[NoYO*?'ruW..qYP@4olLV0AEAqvl;nFHEXI$?H0AIYJUKs5H44i&uJGN.nYmAe1T*'TI#Ji**RwhrgvTPgoVfQ:*g8NEWXb)_2qZHho$JK<O%5W@NiOGvKqwW(25knZLx],FdiO#;%SY,FUOa$RV_)(toqd4D'd]8X>7Vc*BLLccnchP]c[236=UT8,.OtJ84o&6LMZdk_w/gP;7^TPa[Xj=D-k[5P1]RSFktsh7'DQCbn1]W-Njol;D033R'^x.2DsZ'/A0+OlONwZuLtC99la4&am7A>J4,R?8k/1Tu>'o@L)nk6dJNW(Fu.G9SZghtVsBLJ9FF^4XL*Na)&/+?3JPh/QpuF.8AHf/Z6e<bd+PEaJ'mXp3Y.._@Mc$ZftCphYdXai/1;Nk9g($40F<;eL,+B`skQ.bW#u/a^uq^I7'?So6b67&;AmraDqP,J%fZ:282*(8$?-.lH#*HF%v=jN7oE,3mF+LML0CdA>3$LdIKZmBN#9eNCK@@T_k5iq;M&0K511:WpUsX@uXX=?RdWQWjRg])3+][q7Xu1Sh`np),,('#)<hU;8C%D3N9D[9Q]vo.mgfN=4kBTQI3Jjb%j`KFdq]G+:Y6C7iCq8v2oRtor'p^h^/38:9$=lLN#c.,rj*RK+G3t/%ZlL3D)K`3E3AQhaK(:N9ZwkoOmP./=8GLL/2e%l'MgV%90L$gW`_F`A<N+.W$r0Y#%mj'vDFN%W_RCBY_3YPcR;L/e(G#9=Ex/E%Y6]7jFIF;5(=t)b0g1cS,Ca>.>xCSn3W,D%h+(O7QnbFlkpfIl(-P5c4(Ao*'TF5xBI[ucjZ'P'6BJ6RDBHHCRa^O-BeXbt*+7hN@vxZ9'@PKF)h(W%u0Pu1ROMN?;%2I9gJ(E[5mLe?#HUBqdGKs,r@F^x)r#ofs6iOZ(<[B$Fh3#Gi/U6Jr1u?metqulQxJO*Sg[AG)x^96iGpYE`(J)5eT60'XgF$D>MlaZleJI*Zs4]cb&4CTZg-e0oA?XVYOWP%,5r+rYCc`:%)T?ZMD*F6tgQClTfpOLG`Z7.STf#-;2pSuQp1E&d?0'KGZq'%5YLp?FvV7,u`+IG)HTsQ#lc=I3FCQsrd-K)ga_(qUFscN<Loh-Ciqv1>cSicK[Yg@;&1i@-HcKDi6uot]1uX*9gU%5k'FY[jb7Xn^XMg:seSR@Zt[GO25xV_sEqb:,n7S4CKncbGAQo1P3Cu2TNC,odDuo,USJk%?6Vjw/fxioSADt7KU2B)WquTFTl&4$WsCo0frg1q,X-r&jjs#$g5ce^M05*0SgN0+s9=5QD8FV6(^LR>NP:)<pFX$Fj'JiX``&leOk-EAlUQU_ulla4T7a@l2FuLqPv.26Ia$S8/RS%0KK>Z5Bj7taMZ;t-.Quh$1Dd_UQ;kLO^wx#^qxJns@?>qkVxgs$4%uT;>qV;)cv7hIe.<mATrD`sO7Z*g#Km@<O;#;9gFkN9Tl3h?M1RSpIq<h*Y9j;4%jTVnB9wD/BqW[DD:d;V3q+L&Jb7Uq(SoDdun8T+5&P&_NY6G8EWvL=YtK-4#F*8dFbp*F*7up?bDGb>JNxBHjh`e^a6@h-nC`V.VJhA<)fb_1'7UWRN^1X:KTYseo`Js>[>hfrMo=YF*;JdTdA1i-884C#t4@Tr8A1Plc>)OZp404p(Xk4]2McmuHkiU$Eifm^[^L6md&Vg8EOE3Qsp;_FxO;:Q_Vs?AR'VYu-%sIc$sBE&4P;v9DBP))GrS5f.+'[Gto8@sCbn=@-JL=p6GA_O6iJi0eaR]ginvt6ZIkG@+Co^;>K1=3L^7qp#Imr.[We`&LO/56hR1Y:(/C.:$W.)<gk,8W8;1VhF``$Y0lLC-E^s=bkAcWur)eIxmMoCn>AVkPYkXmLN<p8Rux,f7s/?,W*PIl<iJol2HGUUB*beG)Q*QN$Z'gcn^:QPt0jTr3W`0O61eEl</p(&ld-3OUjg=CVe*:KlTSV^Y#POkWR13)*bjo*EWNSDj4<&]#/K<&;/dKfad*W[X<2JQaNc9'k1gWCYhN&Xvu`&>O1GRlR<rwEAG.CW3#&+aAB7`9d-(49S5L0s_=kAC?mYmXj]p,8*@Il>8aIDU@UnttXHCt-KgMnKp-YmZCGPG)1eX3ZJh]pt7R,%[(9(-:QKfibqMp8h%fHB0>3j[]&Sd[p%c#o%.N9(5-`;Ich@Ogpp/OMH5&Kv/S4/h7D=u`)NX/06E2>)W'YQ4]V0x5_Ddk9t#Vn,J=3,SaA=A(X/P(7d7^;=l+fjA*Vi*G(sK.;n5+w[8&01r)10cCv30?WXE5;C#x1*4CX%4UX1iMJh7_7OR+jMnBlGASW?fjvCK1QiSQMa:kIIH@YAsBu+P9g4b?L3$gRP^ITVCBx$8]<SnBcB,B:tju@C59In(oM[U,ujCv&ABo+c[OcOLqd?=6?Jbk1pb]bc:TS'#37?(%kJ?^Ql4h$e]@`]/IJ[.Y*:n2e;Ar9_Dn[^8)SRkw3JUL`*:dPjx#3,Z_M7^ts?K[iFBaJAx8w.&W'mV:V+Oew&Ew]L>htpLDj`)j_KD&?RpRMh@QxIKVGG2SYQK`.GT$C)?r[JY[B:Z1d9YmQ_LUXM3kV/lJ615KKddk(8JOfOElm>cE';;MjZr1=ow.W4'P-?]=vk8sPUC10SX)sA*R&Ok6w)T)#]v(f0b9D:>Ve#gE,Pao%U^otq$+;/uJW;ZmUIj_0d63Wo%Z+OQ0@+C,ef]]";
<krpano>
<!--
krpano 1.20.10 combobox.xml Plugin
https://krpano.com/plugins/combobox/
- This plugin converts <combobox> elements in the current xml
into <layer> container, scrollarea and textfield elements.
- Additionally it's also possible to add and remove combobox
elements also dynamically.
- The full xml implementation allows many ways of customizing
for own needs - custom designs/styles, custom functionality.
- The plugin works automatically the same for HTML5 and Flash.
- It's possible to use this plugin as replacement for the old
combobox.swf/combobox.js plugins, the action interfaces are
the same.
Syntax for Static XML Code:
<combobox name="..." design="..." ...any layer settings...>
<item name="..." caption="..." onclick="..." />
<item name="..." caption="..." onclick="..." />
</combobox>
Syntax for Dynamic XML Code:
- Global Actions:
addComboboxLayer(cbname, design*)
removeComboboxLayer(cbname);
- Combobox Layer Actions:
layer[cbname].addItem(caption, onclick)
layer[cbname].addNamedItem(name, caption, onclick)
layer[cbname].addIdItem(name, caption, onclick); same as addNamedItem (for combobox.js compatibility)
layer[cbname].selectItem(caption)
layer[cbname].selectItemByName(name_or_index)
layer[cbname].selectIdItem(name_or_index) same as selectItemByName (for combobox.js compatibility)
layer[cbname].removeAll()
layer[cbname].openList()
layer[cbname].closeList()
- Events/Callbacks:
layer[cbname].onChange
- Combobox Layer Attributes:
layer[cbname].item - krpano Array of the items
layer[cbname].selecteditemindex - current selected item index
-->
<!-- path to the scrollarea plugin -->
<combobox_scrollareaplugin
url.html5="%$VIEWER%/plugins/scrollarea.js"
url.flash="%$VIEWER%/plugins/scrollarea.swf"
/>
<!-- core internal layer styles -->
<style name="combobox_container_style" type="container" maskchildren="true" bgcapture="true" visible="false" onclick="combobox_onclick_event();" mergedalpha="false" alpha="1.0" />
<style name="combobox_marker_style" type="text" align="righttop" edge="center" html="▼" havemarkersize="false" onautosized="set(havemarkersize,true);" mergedalpha="false" alpha="1.0" />
<style name="combobox_item_style" type="text" wordwrap="false" vcenter="true" align="lefttop" onover="if(!combbox_item_pressed,onoveritem());asyncloop(hovering,,if(!combbox_item_pressed,onoutitem()));" ondown="onoveritem(); set(combbox_item_pressed,true);" onup="onoutitem(); set(combbox_item_pressed,false);" onoveritem="set(bg,true);" onoutitem="set(bg,false);" mergedalpha="false" alpha="1.0" />
<!-- several pre-defined designs -->
<combobox_design name="default" margin="2" open_close_speed="0.25">
<!-- default design - white box with black text and blue selection -->
<style name="combobox_container_style" bgalpha="1.0" bgcolor="0xFFFFFF" bgborder="1 0xFFFFFF 0.5" bgroundedge="1" bgshadow="0 1 3 0x000000 1.0" />
<style name="combobox_marker_style" css="color:#FFFFFF;" bg="false" txtshadow="0 0 2 0x000000 1" />
<style name="combobox_item_style" css="color:#222222;" padding="4 4" bg="false" bgcolor="0xC7E4FC" bgalpha="1.0" bgroundedge="1" txtshadow="0 0 1 0xFFFFFF 1.0" />
</combobox_design>
<combobox_design name="vtour" margin="4" open_close_speed="0.25">
<!-- default vtourskin.xml design -->
<style name="combobox_container_style" bgalpha="0.8" bgcolor="0x2D3E50" bgborder="0" bgroundedge="1" bgshadow="0 4 10 0x000000 0.3" />
<style name="combobox_marker_style" css="color:#FFFFFF;" bg="false" txtshadow="0 0 2 0x000000 1" />
<style name="combobox_item_style" css="color:#FFFFFF;" padding="4 4" bg="false" bgcolor="0xFFFFFF" bgalpha="0.5" bgroundedge="0" txtshadow="0 0 2 0x000000 1" />
</combobox_design>
<!-- internal events -->
<events name="combobox_xml_plugin_events" keep="true"
onresize="combobox_closelist();"
/>
<!-- krpano version check -->
<action name="combobox_versioncheck" autorun="preinit">
if(build LT '2020-11-01',
error('combobox.xml - too old krpano version!');
set(events[combobox_xml_plugin_events].name, null);
set(action[addComboboxLayer].content, '');
set(action[removeComboboxLayer].content, '');
,
combobox_xml_init();
);
</action>
<action name="combobox_xml_init">
<!-- set auto call again on next xml load -->
set(action[combobox_xml_init].autorun, onload);
combobox_parse_xml_elements();
</action>
<!-- convert all <combobox> elements to layers -->
<action name="combobox_parse_xml_elements" scope="localonly">
if(global.combobox,
copy(combobox_src, global.combobox);
delete(global.combobox);
def(i, integer, 0);
def(cnt, integer, get(combobox_src.count));
if(cnt GT 0, loop(i LT cnt,
copy(cb, combobox_src[get(i)]);
if(cb AND cb.name AND cb.parsed != true,
set(cb.parsed, true);
addComboboxLayer(get(cb.name), get(cb.design));
copy(ly, global.layer[get(cb.name)]);
copyattributes(get(ly), get(cb));
set(ly.keep, true);
def(item_cnt, integer, get(cb.item.count));
if(item_cnt GT 0,
def(item_i, integer, 0);
loop(item_i LT item_cnt,
combobox_additem(get(ly.name), get(cb.item[get(item_i)].name), get(cb.item[get(item_i)].caption), get(cb.item[get(item_i)].onclick), get(cb.item[get(item_i)].oninit));
inc(item_i);
);
);
);
inc(i);
));
);
</action>
<!-- dynamically add a combobox layer -->
<action name="addComboboxLayer" scope="localonly" args="cbname, design">
<!-- create the layer -->
addlayer(get(cbname));
copy(cb, global.layer[get(cbname)]);
set(cb.keep, true);
<!-- copy the design settings (or set defaults) -->
if(!global.combobox_design[get(design)].name, set(design,'default'));
copy(cb.cbdesign, global.combobox_design[get(design)]);
calc(cb.margin, cb.cbdesign.margin !== null ? cb.cbdesign.margin : 2);
calc(cb.open_close_speed, cb.cbdesign.open_close_speed !== null ? cb.cbdesign.open_close_speed : 0.25);
<!-- load the styles and copy the design style settings -->
cb.loadstyle(combobox_container_style);
copyattributes(get(cb), get(cb.cbdesign.style[combobox_container_style]));
<!-- add/build/map actions -->
calc(cb.addItem, 'combobox_additem(' + cbname + ', null, "%%1", "%%2");');
calc(cb.addNamedItem, 'combobox_additem(' + cbname + ', "%%1", "%%2", "%%3");');
calc(cb.addIdItem, 'combobox_additem(' + cbname + ', "%%1", "%%2", "%%3");');
calc(cb.selectItem, 'combobox_finditem(' + cbname + ', "%%1", __cb_fi); if(__cb_fi GE 0, combobox_selectitem(' + cbname + ', get(__cb_fi))); delete(__cb_fi);');
calc(cb.selectItemByName, 'combobox_selectitem(' + cbname + ', "%%1");');
calc(cb.selectIdItem, 'combobox_selectitem(' + cbname + ', "%%1");');
calc(cb.removeAll, 'combobox_removeitems(' + cbname + ');');
calc(cb.openList, 'combobox_openlist(' + cbname + ');');
calc(cb.closeList, 'combobox_closelist(' + cbname + ');');
<!-- create sub-layers -->
calc(saname, 'combobox_' + cbname + '_scrollarea');
addlayer(get(saname));
copy(sa, global.layer[get(saname)]);
copy(sa.parent, cbname);
copy(sa.url, global.combobox_scrollareaplugin.url);
copy(sa.keep, true);
copy(sa.align, lefttop);
set(sa.direction, v);
set(sa.enabled, false);
set(sa.width, 100%);
set(sa.height, 100%);
copy(cb.scrollarea, sa);
calc(mkname, 'combobox_' + cbname + '_marker');
addlayer(get(mkname));
copy(mk, global.layer[get(mkname)]);
copy(mk.parent, saname);
copy(mk.keep, true);
mk.loadstyle(combobox_marker_style);
copyattributes(get(mk), get(cb.cbdesign.style[combobox_marker_style]));
copy(cb.marker, mk);
<!-- item data array -->
cb.createarray('item');
<!-- item autosizing information -->
set(cb.autosize_i, 0);
set(cb.autosize_cnt, 0);
set(cb.autosize_max_w, 0);
set(cb.autosize_max_h, 0);
set(cb.lastselecteditemindex, 0);
set(cb.selecteditemindex, 0);
</action>
<!-- dynamically remove a combobox element -->
<action name="removeComboboxLayer" scope="localonly" args="cbname">
if(global.layer[get(cbname)],
copy(cb, global.layer[get(cbname)]);
if(cb === global.openedcombobox, delete(global.openedcombobox));
if(cb,
removelayer(get(cbname), true);
);
);
</action>
<!-- default onclick event for combobox elements: open the list -->
<action name="combobox_onclick_event">
combobox_openlist(get(name));
</action>
<!-- dynamically add items -->
<action name="combobox_additem" scope="localonly" args="cbname, itemname, itemcaption, itemonclick, itemoninit">
copy(cb, global.layer[get(cbname)]);
<!-- when no item name is set, generate an automatic one -->
if(itemname === null, calc(itemname, 'autoname_' + cb.item.count); );
<!-- save the item caption and onclick event -->
copy(cb.item[get(itemname)].caption, itemcaption);
copy(cb.item[get(itemname)].onclick, itemonclick);
inc(cb.autosize_cnt);
<!-- create the item layer/textfield -->
calc(itemlayername, 'comboboxitem_' + cbname + '_' + itemname);
addlayer(get(itemlayername));
copy(li, global.layer[get(itemlayername)]);
li.loadstyle(combobox_item_style);
copyattributes(get(li), get(cb.cbdesign.style[combobox_item_style]));
copy(li.parent, cb.scrollarea.name);
copy(li.keep, true);
copy(li.cblayername, cb.name);
copy(li.itemname, itemname);
copy(li.html, itemcaption);
set(li.onautosized, delayedcall(0,combobox_item_autosize_update()) );
set(li.onclick, combobox_item_onclick() );
if (isset(itemoninit), callwith(li, itemoninit));
copy(cb.item[get(itemname)].itemlayername, itemlayername);
copy(cb.item[get(itemname)].itemlayer, li);
</action>
<!-- onautosized callback from the item textfield -->
<action name="combobox_item_autosize_update" scope="localonly">
copy(cb, global.layer[get(caller.cblayername)]);
inc(cb.autosize_i);
Math.max(cb.autosize_max_w, caller.width);
Math.max(cb.autosize_max_h, caller.height);
if(cb.autosize_i == cb.autosize_cnt, combobox_align_items(get(cb.name)); );
</action>
<!-- align the image and set the combobox size -->
<action name="combobox_align_items" scope="localonly" args="cbname">
copy(cb, global.layer[get(cbname)]);
if(cb.marker.havemarkersize == false OR cb.scrollarea.loaded == false,
<!-- wait until everything is ready -->
delayedcall(calc(cb.name + '_waitformarkersize'), 0.01, combobox_align_items(get(cbname)) );
,
<!-- set the item positions and the combobox size -->
if(global.openedcombobox === cb, combobox_closelist() );
copy(sa, cb.scrollarea);
calc(itemwidth, cb.margin GT 0 ? -2 * cb.margin : '100%');
copy(mk_w, cb.marker.width);
copy(item_cnt, cb.autosize_cnt);
for(def(item_i, integer, 0), item_i LT item_cnt, inc(item_i),
copy(li, global.layer[get(cb.item[get(item_i)].itemlayername)]);
set(li.x, get(cb.margin));
copy(li.width, itemwidth);
copy(li.height, cb.autosize_max_h);
calc(li.y, cb.margin + item_i * (cb.autosize_max_h + cb.margin));
);
if(cb.width == null OR cb.width == cb.lastautosizedwidth,
<!-- no combobox width (or an autosized width) set - set the largest item width -->
calc(cb.width, cb.margin + cb.autosize_max_w + 2 + mk_w + cb.margin);
copy(cb.lastautosizedwidth, cb.width);
);
calc(cb.height, 2*cb.margin + cb.autosize_max_h);
calc(sa.height, cb.margin + item_cnt*(cb.margin+cb.autosize_max_h));
calc(sa.y, -(cb.selecteditemindex * (cb.autosize_max_h + cb.margin)));
calc(cb.marker.x, cb.margin + mk_w/2);
tween(global.layer[get(cb.name)].marker.y, calc(cb.margin + cb.selecteditemindex*(cb.autosize_max_h + cb.margin) + cb.autosize_max_h/2), 0.1);
<!-- when all is done, show the combobox -->
delayedcall(0.1, set(global.layer[get(cb.name)].visible,true); );
);
</action>
<!-- helper action for calling a plugin event-code with 'global' and 'caller' scope -->
<action name="combobox_do_event_call" scope="local" args="cb, eventcode">
if(eventcode !== null, callwith(cb, get(eventcode) ); );
</action>
<!-- default onclick event for items: select the current item, close the list and call the item onclick event -->
<action name="combobox_item_onclick" scope="localonly">
copy(cb, global.layer[get(caller.cblayername)]);
copy(itemname, caller.itemname);
combobox_selectitem(get(cb.name), get(itemname));
if(global.openedcombobox === cb, combobox_closelist() );
if(cb.item[get(itemname)].onclick,
if(cb.callonclickafterclose === false,
<!-- call instantly -->
combobox_do_event_call(get(cb), get(cb.item[get(itemname)].onclick));
,
<!-- call the onclick event after the combobox has closed -->
delayedcall(get(cb.open_close_speed),
copy(cb.curitem, cb.item[get(itemname)]);
combobox_do_event_call(get(cb), get(cb.item[get(itemname)].onclick));
);
);
);
</action>
<!-- select an item -->
<action name="combobox_selectitem" scope="localonly" args="cbname, itemname">
if(global.combbox_item_pressed != true,
copy(cb, global.layer[get(cbname)]);
copy(cb.lastselecteditemindex, cb.selecteditemindex);
copy(cb.selecteditemindex, cb.item[get(itemname)].index);
<!-- call onchange event on selection change -->
if(cb.lastselecteditemindex != cb.selecteditemindex AND cb.onchange,
combobox_do_event_call(get(cb), get(cb.onchange));
);
if(global.openedcombobox === cb,
<!-- when opened, just close to the selected item -->
combobox_closelist();
,
if(global.layer[get(cbname)].scrollarea.loaded,
global.layer[get(cbname)].scrollarea.stopscrolling();
calc(offset, cb.selecteditemindex*(cb.autosize_max_h + cb.margin));
tween(global.layer[get(cbname)].marker.y, calc(cb.margin + offset + cb.autosize_max_h/2), 0);
tween(global.layer[get(cbname)].scrollarea.y, calc(-offset), 0, default, global.layer[get(cbname)].scrollarea.update(); );
);
);
);
</action>
<!-- find an item by its caption, the global variable defined in 'returnvariable' will contain the index -->
<action name="combobox_finditem" scope="localonly" args="cbname, itemcaption, returnvariable">
copy(cb, global.layer[get(cbname)]);
copy(item_cnt, cb.item.count);
set(calc('global.' + returnvariable), -1);
for(def(item_i, integer, 0), item_i LT item_cnt, inc(item_i),
if(cb.item[get(item_i)].caption == itemcaption,
copy(calc('global.' + returnvariable), item_i);
copy(item_i, item_cnt);
);
);
</action>
<!-- remove all items (to be able to add new ones) -->
<action name="combobox_removeitems" scope="localonly" args="cbname">
copy(cb, global.layer[get(cbname)]);
if(global.openedcombobox === cb, combobox_closelist() );
<!-- remove all item layers -->
calc(item_i, cb.item.count - 1);
loop(item_i GE 0,
removelayer(get(cb.item[get(item_i)].itemlayername));
dec(item_i);
);
<!-- reset the item information -->
set(cb.item.count, 0);
set(cb.autosize_i,0);
set(cb.autosize_cnt, 0);
set(cb.autosize_max_w, 0);
set(cb.autosize_max_h, 0);
set(cb.selecteditemindex, 0);
set(cb.lastselecteditemindex, 0);
if(cb.width == cb.lastautosizedwidth, set(cb.width, null));
</action>
<!-- open the combobox list -->
<action name="combobox_openlist" scope="localonly" args="cbname">
<!-- if another combobox is already open, close that one first -->
if(global.openedcombobox !== null, combobox_closelist() );
copy(cb, global.layer[get(cbname)]);
copy(global.openedcombobox, cb);
<!-- move to top -->
copy(cb.backupzorder, cb.zorder);
set(cb.zorder, 999);
<!-- find the available screen space above or below the combobox -->
calc(cbheight, 2*cb.margin + cb.autosize_max_h);
set(lx1, 0);
set(ly1, 0);
copy(lx2, cb.pixelwidth);
copy(ly2, cbheight);
layertoscreen(get(cbname), lx1,ly1, lx1,ly1);
layertoscreen(get(cbname), lx2,ly2, lx2,ly2);
calc(space_above, ly1 - global.area.pixely);
calc(space_below, global.area.pixelheight - (ly2 - global.area.pixely));
<!-- the required space for full opening: -->
calc(openheight, cb.margin + cb.autosize_cnt*(cb.margin+cb.autosize_max_h) );
<!-- vertical centered alignment? -->
calc(cb_edge, cb.edge ? cb.edge : cb.align);
calc(iscentered, cb_edge == 'left' OR cb_edge == 'center' OR cb_edge == 'right');
if(iscentered,
calc(openheight_max, space_above + space_below);
,
Math.max(openheight_max, space_above, space_below);
);
<!-- limit the height to the available space (minus some margin) -->
Math.min(openheight, calc(openheight_max + cbheight - 20));
<!-- need vertical offset? (depending on the available space and the align/edge setting) -->
set(yoffset, null);
calc(top_overflow, -ly1 + global.area.pixely + openheight/2);
calc(bottom_overflow, ly2 - global.area.pixely + openheight/2 - global.area.pixelheight);
if(cb.parent,
<!-- no vertical offset inside other layers, do only a height clipping -->
Math.max(max_overflow, top_overflow, bottom_overflow, 0);
sub(openheight, max_overflow);
,
if(iscentered,
if(openheight GE (global.area.pixelheight - 20),
set(yoffset,0);
,
if(top_overflow GT 0, calc(yoffset, cb.y + top_overflow); );
if(bottom_overflow GT 0, calc(yoffset, cb.y - bottom_overflow); );
);
,
indexoftxt(isbottomalign, get(cb_edge), 'bottom');
if(space_above GT space_below,
if(isbottomalign LT 0, calc(yoffset, cb.y - openheight + cbheight); );
,
if(isbottomalign GE 0, calc(yoffset, cb.y - openheight + cbheight); );
);
);
);
if(yoffset != null,
copy(cb.ybackup, cb.y);
tween(global.layer[get(cbname)].y, calc(yoffset), get(cb.open_close_speed));
);
<!-- center the opened list at the selected item -->
calc(centeritem_y, -1 * (cb.margin + cb.selecteditemindex*(cb.margin+cb.autosize_max_h) + cb.autosize_max_h/2 - openheight/2));
clamp(centeritem_y, calc(openheight - cb.scrollarea.height), 0);
<!-- apply the changes now -->
tween(global.layer[get(cbname)].height, get(openheight), get(cb.open_close_speed));
tween(global.layer[get(cbname)].scrollarea.y, get(centeritem_y), get(cb.open_close_speed), default, global.layer[get(cbname)].scrollarea.update(); );
<!-- special html5/flash case:
rotating textfields (the marker symbol here) are not possible in
flash (a flashplayer limitation), so use a rotated symbol instead.
-->
if(global.device.html5,
tween(global.layer[get(cbname)].marker.rotate, 90, get(cb.open_close_speed));
,
set(global.layer[get(cbname)].marker.html, '◀');
);
<!-- enable the scrollarea to allow the user to drag it -->
set(cb.scrollarea.enabled, true);
<!-- install a global onmousedown event to close the list when clicking at the pano -->
set(global.events[combobox_xml_plugin_events].onmousedown, combobox_closelist() );
</action>
<!-- close the current open list -->
<action name="combobox_closelist" scope="localonly">
if(global.openedcombobox !== null,
copy(cb, global.openedcombobox);
delete(global.openedcombobox);
<!-- restore zorder -->
copy(cb.zorder, cb.backupzorder);
<!-- clear the global onmousedown event -->
set(global.events[combobox_xml_plugin_events].onmousedown, null);
<!-- disable the dragging -->
set(cb.scrollarea.enabled, false);
<!-- closing animations -->
calc(offset, cb.selecteditemindex*(cb.autosize_max_h + cb.margin));
if(cb.ybackup !== null, tween(cb.y, get(cb.ybackup), get(cb.open_close_speed)));
global.layer[get(cb.name)].scrollarea.stopscrolling();
tween(global.layer[get(cb.name)].height, calc(2*cb.margin + cb.autosize_max_h), get(cb.open_close_speed));
tween(global.layer[get(cb.name)].scrollarea.y, calc(-offset), get(cb.open_close_speed), default, global.layer[get(cb.name)].scrollarea.update(); );
tween(global.layer[get(cb.name)].marker.y, calc(cb.margin + offset + cb.autosize_max_h/2), get(cb.open_close_speed));
<!-- special html5/flash case: rotate marker or change symbol -->
if(global.device.html5,
tween(global.layer[get(cb.name)].marker.rotate, 0, get(cb.open_close_speed));
,
set(global.layer[get(cb.name)].marker.html, '▼');
);
);
</action>
</krpano>
<krpano>
<!--
doubleclick_style.xml
krpano 1.20
A helper style for single/double click detection for layer and hotspot elements.
Example:
<layer ...
style="doubleclick"
onsingleclick="trace('-single click-');"
ondoubleclick="trace('-double click-');"
/>
-->
<style name="doubleclick"
downx="0"
downy="0"
clicks="0"
onsingleclick=""
ondoubleclick=""
onclick="doubleclick_style_onclick();"
/>
<action name="doubleclick_style_onclick">
inc(clicks);
if(clicks == 2,
set(clicks,0);
stopdelayedcall(doubleclickdetector);
if((((mouse.x-downx)^2 + (mouse.y-downy)^2)^0.5) LT (device.touch ? 10 : 2),
ondoubleclick();
,
onsingleclick();
onsingleclick();
);
,
copy(downx, mouse.x);
copy(downy, mouse.y);
delayedcall(doubleclickdetector, 0.3,
set(clicks,0);
onsingleclick();
);
);
</action>
</krpano>
function krpanoplugin() {
var local = this;
var krpano = null;
var plugin = null;
local.registerplugin = function (krpanointerface, pluginpath, pluginobject) {
krpano = krpanointerface;
plugin = pluginobject;
plugin.dosomething = action_dosomething;
plugin.registercontentsize(200, 200);
var text = document.createElement('div');
text.style.cssText =
'width:100%;height:100%;' +
'display:flex;color:white;background:red;' +
'align-items:center;justify-content:center;text-align:center;';
text.innerHTML = 'HTML5<br>TEST PLUGIN<br>click me';
plugin.sprite.appendChild(text);
};
local.unloadplugin = function () {
plugin = null;
krpano = null;
};
local.onresize = function (width, height) {
return false;
};
function action_dosomething() {
plugin.accuracy = 1;
// krpano.call("tween(width|height, 500|100)", plugin);
// krpano.call("lookto(0,0,150); wait(1.0); lookto(90,0,90);");
// krpano.call("tween(width|height, 200|200)", plugin);
}
}
<krpano>
<!--
fps (frames per second) xml plugin
- this plugin shows the current average rendering frame-rate
-->
<action name="fps_install" autorun="preinit" scope="local">
delayedcall(0.5,
addlayer(fps_display);
set(layer[fps_display],
type=text,
keep=true,
align='lefttop',
css=calc('font-size:'+(device.mobile AND stagescale LT 1.0 ? 24 : 12)+'px; color:#FFFFFF;'),
txtshadow='0 0 1 0x000000 1.0',
bg=false,
parent=STAGE,
vr=true,
enabled=false
);
setinterval(fps_plugin, 0.5,
calc(layer[fps_display].html, 'FPS: ' + ((display.currentfps+0.5) BOR 0));
);
);
</action>
</krpano>
/*
krpano 1.20.11 Google Maps Plugin (build 2022-01-13)
https://krpano.com/plugins/googlemaps/
*/
"[[KENCPUZRPY*Db*<VFaXd&W41pH7:t7t.4F7n()th?`22`w4J?=)('ItZJsoB?UNe9^-0so:Bt%.<Kxm*sO)^m/ll8Kx<3t5[)nj/u@'biYlN;[[8R2f['C3i'<VBt`rdhE.$2Srg^MX><x@P.LN#UCuQD.+MX*3(db7fUl^lOuQ&c05*l.'xAWOSu?=]bASj+kAcu@%RGYQ]j=tJPg$o.B`M.PP<0hY%U5.jh,/7>EXP:F7ToNLq31s4q&6eXa%PU<`([tQZq#%PA%swv9d1GB/bHG2l)(^OB2c8;q'X%`OoH_/]]U_CWW2<)a_ahbo3Q9kI;fc:#%[Z;e%Rgc8glQnh&,fBUZ;V6Y34.VDjV=8K-x_6#Y@qs?Qq?q^Y1)0OYH>RY-s*OB3Ir7XNKdgi'@=+CLi3bC@>lj^63(&M*k7+):nj27q)^DQ2iR*PjxTM7lKADZe&BZY.07?AwF(m8JYnt_Ux(>bC5?[^9)*@lK^xv[(0xngcP*tE)R6<iLC'umxfJ-qs#[J2YoHMZ:$Ro_^(FV/3#2bqZI:i4)ucc`_NTXJ%=s^sAX+sWYlr/b)n.*5wcsM,Ptc#O0N(1gQ$sQKH[)B*aCg:G>%q`t]s#)$s-1GMEeNB57#]J<Q?DKIx?$6nx:$lk0<ZuP*V7X]Ma@UT7YVbYd+NXBcqIM4m-F7BZna:f1V`$J<gsw$g@FvgW+oEJ<QsnZ'@_*=sr&5+;H6W7G=AiG)4a9_^0FIm2?t)RUDj,lcPOta?JAVitkf[Pn5bkScWv5>]fIDB-l+dRRk5(d>;[8FC>'`g]_?$m3uG:;nrSMoUU(fPu/l&FoC8pA@=fT-Alf_=swU6c$f3:%iM]c9jX/u*()ua0KJ._*JETOPNxB`Y?E;t1g$G([G1Vnl[(/1hCtWK5bfSLJDQl%'^rduRv<%'v/jFVMsh1f9D-$Ks$L3>6bINt7BhPvK?hD/'Q*%kc[Y2Om5$Qkqv5Yq+f_-EO-v>2Kl>x:sHDEOi$Ok%@@d^C%Qq'CWETHHTs:lQ0;`'QG``h6jD=s)W^Ft@@qRt8;hG/;%?v=s8QjFbP&EakBeFXvc_gnmneF6wEUo/(@oG(l[FDGfYVxNB^]tM)OLOA&aa5Xl*+?L8Y7>Z4V].@NR^<$-P//lQdDS_<No[)'a[B2(D&i2oK3J1A0-7]<5nkd1rpm6hq3UIgNT+'?.3df-]b;wJBk&k[nND#c>S)wkF<HLR#U%4d'Y9ekQ$,<Za0_-JpDj1iU6(ptt,v-US8pB@7N82%Rhp:cW?Q2WeB_0>Opm]+,*1BRBl'5xY%>n(9?:Y?nGpXhp'E.O5@]Ml70@<(9,;Q.>1@xZ,jxKV;gIdAS$'jqIe+g.])<+gZ.nxr$s$/qm6jq`'Yb;el8,U=V2f&mDe`,LOq55w+v=e?PAFBgJ2ZU[Z8XPBSHsi.-Pv<DO4CG=bll?p48uT5OLk?:2:YOss0*:CRQh2MbSbUeSE2^lqmNm73Vk:ar_VD6>ek%<nhluNv4d:PomAtfr/3@f8?T-s*3+[)n1tjsiE?LUr@hGr?=o%S$[2%lD3x#v-nHt4Z#sY`I46$dlp;mTe==M3dp@SgIW)KOq-X.(O)BsX5=*-?sqoc<7I%Ff%v/8C1&nVhTuuYWaD]#&5i97WpWM8<6]sU4lE_=Gt>DGLr6(5V5OL)L)QG+?poj4PP&8`@A9@wA#'aRu*B['FVbi#12*?B1v0S>seqft%A]mVa-O]cB-*m(Uo,A#auP>j/I>j8=mf,-I#NBu>*#u39ER@VP&Bbj`[+u]:j#?Dn?J`G'd5M.g`4u8X+5$uZsSX>^qo&lq-C$FN@RJOeKUfRs?F1k<g3=(`ZRs#ut2m%v;44C.A-S<%G,$f.ghHQ_ed0x-.4hApJ'G)UE(vjLp%gZTAL<bIpi#cO)Y6Qsa-Ck`dG_J?qeHXf'IR,$@L9_e?4Y?*EG=Jk1;NDOWR)6fAh$Ht]*Y:^oNnr9;]@xWsTf$eqx/nq.s1'^r*#no7L%D.>+YpN1G9FB6HIrPbu/k>.AWUOI.^fHrcDv=TGHqn.go?n#FItj(ck#A7).9KX3F(kSba>-O3n2XG>-c&2>9U8^;2]rr*xr@TssrDa/);atgCFPU]@F``Rp?HKe8f/'o1j300]MgTEb'GhB^[AL1L#M6/@E[:v4)Wd,;Cxr7L3&gu_u*AI/:>_*XY(]'u[T4pP)mGB8%^@bTxL6*8YPhWi1jAhonY:j^UloHCe&L;>9*I]eAH6[B=^PaH[0bZ2%g:*<'Obl<Xhav$Yn$hUWv:ClA+XTqc#VpnjWB(Fo5.e@FPuUPdSlO&p[sYU2;?iIsZ/,ZsH?YVj0dX+NIp;s[,#>3;Y(?[dLL'U-_l#x=J-qA=.5vpB;S]f(7@),0ggt-O_[#@_xNLXDH%>&JbFP#e$L/VG9(04[L+22gpFqBj59^v7a?4_5>1K:h8tT.C.dLs^SAOJPeo[?DCs4ejECGjaUUeCX<.ZVUxnv(2=FS5%S9YcQd&xke-mlA,`cp-nh`'TS;9#LuWF9Tx1?'WkGL`jYYXnF`C%#@i]st[`-K=tDb0##0LIMx?L+uSWr2seSVYDH>=<P8J3=:B=[09QaiWp=XAj].Qjs-[q0SvCF]rb8/b.=L:1&7*vuXSS*bNW&Y<8^YXj:r6bh+SpTO=_oOukqMtYG5dwWV1qmWf0o>TJ9oa>P%wJ0Xk<mG#XI.IAQ@[+Dh;ixhXE`d5,c1s7cnc?GG3cPhP7d=`_dX?aLLObD@OK6n@f+,Nu+Ge-j`+B>HNZ`q.o[#,nUs]4dS385L@SK7g+g`jIeIefi1obs&JMcaZa/s*#nL_B30>,Y'F^3L24CaiCdu6uvR'Je`x)(dh9NLL`qQ6';^4fkG'#wLJ$u',<XIU@feR)7R;;rV'Bvx;iVk(54v[U$X16MZuWh1(%J/)tUq:SlNJO1+/tN,&5Wflc5A:$HgUQ(7rKMc;cbD0^7Us71JcR:P#&1,p++v,l=oU<_H-L$<W3S;t79JIfFUW)Xa9c>QZa-rK)IgC*TLUL1=^7gg[b0x?V7E?tuZR=V&@uv4+[ZwXP?dR^FiR$$g%rYE-ksHmq[Zx51FlDuc;jZB4d7'(VP?_TD<[MHV#u2B'IuDiQabB&;9*[;)O1WkNRq`QY5%8g%%2;[Ni-kpEP=&kL*_n#S(':/X2:uO,];wa163EF@xWnak+*LGM@HTet>4XTJMb/jn'a3ce83JZp?RCkx-^kq4__w(Vw:c'?a/d8oWMmF5'KrOhE$9m&thr_Tk6H?D/vvRULKj@0#4#9O3Rl(1`]FL<`A7WOke$@+,aNs04H'eG87]KjHGpQ%q#p&tpcs=-M0%Kc=l9T1F>[qoR@ORXL2O91S&Fv+:.^NQ^u$.GWv:4`+UR^%l7N]-jQK5P8b,2mQ,=dB7#pJW,b%ZZ.4kJ(6knDm@0P7fs_$VhpwHG$VdXHpbX)AXli^A66`9b`,U+S$ek@FO?>pU-S@0n-;u`M0W?LLO[7[pbsGP4Jg/n+TwuhZs^^[DVxvia*]7>V0;R:0d2lj2US9g[rxkcqOqTjVO/LiH+Sfb9[+iA&0p49S#q=>N]JsCp/$QMbG@*Knv$J(`c8l`%ig0+CC=-5f#N>SCj5REVLS-A@;M+hJ#i*NhCki6GQ+N(4b#^qkUeI_X,rgY9`@B/#(&&._]5DhQJCe33RS4i)HV=L7h3M<<UEgR^qBQeK<-/oIuTSI+oqRBb1@,'hrbO.[N)p2oCV]nqjE91:WT)_#=8XaS%W5J7M9EI#%>Nedce4=>#L&-8Waw*ci?R(nc42_(*'R,ne-d4B6.NJX'.5w1Yb4L(9Xif<XJi#$Z;BciLs@683_Jfh6Q'4$r=,HE'/BpiiRUEkb;n?aOZ:kWYZ->*(wOq>(u0H>Sq6-+Qu@B?Oq`-[J4cp7+7'i=(Eu.,A48S*Kt`:n58AC4%T.$/JXn<-:'=Yk7CES5^$>t?vN7[/(eG@C1wA`CF&Zg_tO;r,6Eu?_v_.Y/54A>`kQY&Rck:SBi_$.'BfLV%6`SZ@:[#fgqePRH7c_xCo20,2cso@Ctgr],&GRm*7L@1=q<L%Gt`*)?[^p<iZ/?*#C_]]l.J#^tX&w[hu?B)p#1oVq9*Loe%A8cCNpeXXC'.@]7_#XG>5kl0`$F0CO`_^uCbXoI+YolOJOq6Cxw#7u=68gXA/M@e+v2)^PVp1P0g-kApC08>c+$2.<.,][`@7HN'P)g>jA@<SGBAG/iF;(Hqp$&bQ`nqWe#x]R5EtF3+0EWH]gl'G<YoGphP<I&5m3Qq'aSXV'i/14%UXBXuO(j+>2`Tp&[No0@Ni*5e.XjM%s('Xu0&mkiLGLJG=M:JGR2kv12I$q&%bgnsnVI:cE6]:g89bo&%#:Yo(Z-kk`&?*q<-`gV=[,l7keg<&_#xHx2eFDD4ac-okB[1k?N^/B-8,4.3ctg?9&%[;dp8$$*v)Kd2DaCpk0f^C6Ln3T?)`jMM2[EQLp/2p3^YOba6lCiS]xAL&$.%H_0;tw/6X)gPP6t0UGpbjCp-t:&hr_B9MclRomY)uJJX)m+Ge+33#7YJknHPY@TGX1ixaXCb6rpn7?C#Q#'Y]E4q(QjwHt6g*Zu&49KY4YHS/r,XI5%?VhPhC8e];Sgjdq@W7lT&5V[;m[Kk_.6(pFdGb8^R?WhTHIucVd$`?lG17%9f@7Hpm6`j+Q-EBtTq5wqvxA;:&Gbf+/6mHqaNolf;Ge*2og6n_<334T[mXeOGoS)%-X11[@-w4p&eDxk'=-@GX3?U#RVoZS1`&B@sG=;9kV38RB#1UBUs(/,<D.=%m<R+aYRY2'K4h@u)-Ff>i03k9qT/xt-Q`%Ra>WjH`&%dpV'+?QJO3kLTVOp<L9ic7Xu8:($_D[4ai68c0<,Tk=RNE[0uRtW5pn#t@]R:jBe7*O'I&6#rhO_7<f8j6./IwTMIBNHK:VNrBa'kp14Ws07IT((D3#/lh/f2/542N30S5JER+&C9v:=N+bi&$H(>M9<%s#1THC-t/k5iUq4#Cl7RgH@)H'UU??`8nDI<W5Wr7XxWSUkOf*oEUgHKmXFx,Z/it>iG/.j-Z#*tl0Z;Esf^rbMg.^,mn.DRMp&pkHt25xd[D($V/D^J@]HH9v9_O-c%ES='&3&LJe5$V?q8^P/RNlK*rZ[UXKBtsLaYHH$R?xjc0nr5`H?sL(9?`k5;rw^8DcG=f>HavC1MhrU]'DaeL9JXV)t*NndYA#+/Q>CFe:%dP:[6f^%m5g71tD*;GMx68Zl$mb99>7Bvd`X_huq.gfZo^5G7A6a`d-%c]S/;YRtBhAm5'sQnUh$>&2$<Y=#DIqFv2AE.:rDuEsM$2u/[AF(4SkP+*#(T0,87R4QLdG&grRAbSVS_p8()Qp3<`CL0;QrM6xP/iXl9TID65iIhvu]ekw<q2iTsWaB+r%vM`P<$=@HBOgBv0A0G0[*hI)@d0RYi#,DghBU8vO;J$^bA6fAl6q;g(htPE3r8h^mYj<sJPS<erb=AZSBr)__q>*5iRkJn.w4Jus6FDx/3TBKLnrV^hM[[3xx(&O?SrigL0gQ?V<JV7UF_NP][q.[&+=mIHiPb*)%V+4X51`%WEX[fe3FI5tl*.E%d2Ep50kaq-P)B$YUt*Z^p>gAMh5@/2$&D&qjC-,-65u9,>B>-lvCn>w'NrWb^_IdL]0i%>,q0V2-fG(JM`.)Fp_O7L97.*ui,Cx5cqu]U[p2CJ/5)gQhHZh)6_q$BX,rcF5`iO/Jeqo$k*3tR+'BOghYlBrqC(3P0Lx%6DqxSg0VAQL,PSjB%O(Yp&gX^*MZM0dXtx&@[meY.4eD)P9Q1lD'Q0lX<#oBcDZhYv-`Phpxg-99(if`q<J*Jb?NA?XNlOqmFY`pJ1G'7Jhi,hkR%]KxrB&X5ni^ntn<1]Nm+aRxN*$8QRn4$K=5[U.,29&hSn=;*-Y^HJtt8JDWktK'U'5M-Q_Vi8CBbkt6&jCGwF<&eZij<g@(XF0gE%g>dsO5%H;e<?b%E8S=V7pP#FTv[x+B4CO:kf97R%SeO=Z:AVK_ig-+?lVG8gv3x@<5.[eG$6aIB_KWX>FWSg4bP=+P`-#^k7jaEs[hgRxUvqm^VPRA)/B'58r.XK5(7.[$B-M,:R(F&829/W%q:CuWr]%$E^RaVF<v>AER(C4I#gCD$bg$iOZ$@.Jt@C+(kVupu7H%^.hW@/:Y%2/k>,SZ/TEI.J?ZBZ</CCRNQ*D)hue0Xan:RCh?x;uS^n:`X$A=H+k2(UUO-_Iocp1:HwZ`4$:bsJZPCjSmaErc]=Zl?VNQ(W/)=0BrPZ]Cb25_+4)P(#+_cJmf05K'9Pm$`T+*r+^plp)h4J2lC''sSVLe3`16wV>iQCCcTn/h.x&(L%ex-4q6+e-ht`3<B#g52JM^^@XI5#TCwwALP-+3KLx1HZ8kXZ*9k+Ft5&DWTJ24Ap]Xfd8U3<9Pne&H_'*TD6CsAKhcB#?:a4rP@.OmR<4DaDw?4Wl%Vc)Tn@]'`mEn7o<VRrMBN]uMoGJKB:tLxA)L+]^^@0<Ypt6?r'ZxF84Ruc2OmP,IZ4JVESQBKT9m<N;d<0*BlgUWhfGs<:ZE,e'57&#=QH%M^,LC/goOg5aHn#?mtKk9WU2^7IJfh(;V#=cCpOqE9xI+u3i=k';FbL<vwNiN0q(<Iirb-kKZ1kALX3_tMRntP1%26qR_fh_sl<]fZ#3_kC6:hsE=3wa>uGiV=[*0PIf<17u0O2*miGNpO_(&I?paODT0gk(3]d8<YLUDPYfU;&dIeF#1VDUvK-BlOeAA4nOgq[&kpnZ<`q(OG&%dt%WNZd<7mKt8#.9peX388gw2J=7E5LO9F*oHRYdr]3o<Mpq`@oKV*')@D8YVd.[_[&xDo#m*BcrL4Z%2mxIiF+hf'/fMY4>p`D8elqRnNQ4l<4sPw)a09upBoq%U6uE/7[101STq*_NsX95L3skuJONL5',g1GDf5hX(:1[V.W<Vk=%g:Ge6?JjQDRrJ:+[v[KB0dO=)Oln'YP:h<HPE80/=i$p_HT6bKF3B3]H6[U,NQ1@;N31pM3l3/*&u9+WU'[$p>,x14a#387-G;u5tsqo@%C)t5.xc7Cm*FiO+?4(I_qr^qPHL^'[[64h8#giX_>8B>(;IM76$B^s+58MZANAPXJ>Js[e1neI;,;Km*R>3naYJQkxCu,&phf.cJ`;WKsG?uC':qmkpt>XqXQtF28mk9q60-ZbBqZl5flH4,xbd69Z*OF:8).@jWM49nB_VcW7:D_LgLd=iF;4-IAoPp(;>q-5c+<_-f1&6-;[KmV[1gC5m#NvA`G=7((-XPsiQ9o]*S<D%+A4._tC*5NYk.IpfK8vU?gHN-0>Ku[A@6:bd,7u:tL/$7#Oe4GHLCjk6I,;+gA_S:NOBtqg`#`oG>KsaQ*bXA3j[(DUvM+Q;QiB$=Pi6Jcwf@4]911;T=kPLIvNdI7E5qSg-x7v+aTU)qowGSihwu7,AN(b3gU[TT.v,T*g8--@u+AVtd0dbqo68p@?3K4M6e3LK,Tl5HlSw?`'>=sR`U;lHl9fSn4n=&,^**Y#&%EN9iBP%UnAa=2rtR`hY'/q3F@Ml1kS4F3iIZYvd<9MG`vd6xrJHP0d*Pceh6nN:hN>1on:MDf`x)8HvZ6/f0PcF=DV-aTJk(&=K9^0UQ4YUVJ>6)&QXmYS/kbMl:c.hG#1RlkZFm%<.c^8VpAtpbPELZ^3lIO.xEBPYJtm,L66qh,]?_-VZ/:YR*J49hVJ?fOMaq1^Mkt4?MR1H#rMlK4t'j5@E7r=Of1$#EfVmJ?r*4t19XR*;.+k&%vCkp&=L2Swt=I9^A]C[)^C%c`h]rK/8as/Wl9*O#Ubn5X(o-7Saki?GV=PPX2TF]hPTjf/t2+:MZ%IGYv0os0v_i^HE-o=('n2r8^3JDS=b3t<;*shZ0[G#jUY6@;k*(HK:i*%P'x1,;FHN*T)]v3G9'xJLC=:t)k>i#RUkk'Lu[H+b'tqi].e,emHfU.kh8ZV7BQD9dNo8BkbeK;)da;I^7^6bx#bE/t`[ee(:l<H&m>1`raRWrowvP/B&kJ+e`aAt`mCO=E=-)e;gb4)DTWwZo<A=XNK7rl^W9,HGU&#DkRE&^sIVRiAv=r&q)gsMSnr9uj`13kEGg>,eZ=GW=)aHLH.L#7,H>.:wT(JGp-rMaSlpx'o?9ZFn+MaD5Ivr3Wdx1[+4)okq/L-Jw?M[XUC(Zd4p.$=B2oag%$f:KU$xZ9sQd/d:7SLC_*g4dd=j3C(+DC@q6SIJC@N<bNo=EdTYrgLZ@6m<9I@Y&)1IUU,ZP*Qt-h'f@Yt[%1WFbn-jq=>7+7;iChw(MdT(3aUpIjpl;Tk-i,+X5V,Mfn;*okoU=#QRE%P<r^<c4mX)9>/OOMHl_GLVYKM81kD?I#8Zc*,GZXAiSWtLg/%p(xHQp3G>090>PdkUIMO/k;-5(TU&#G?:/%]uVEP:vf>,C;hl)G7.2r,D]NUlaUG:5O,,Xq),iwe66=1sDj+`[-&<7ODE1'S]hoetqIRG263'mGeO2V4^1)Bp*mNx8B0nd*6Z/$.'L+,CkW,s-HN^4EVAq<sbkO3lpFj3GcRnV0;^@g;@/[F8qj9-.HAQmgd7,CoV+3('A.umY4Kj:LASPp'fiC6<+h1K=Q_PTRd`:`6(FMD3vvuM-YiUHWie*;nR```gTdRxbo47mCFB?@f9VJvkXAlh7-jWm*CBelxORAe<,J%G4s^+f1u`m$DYDC$Z,5r99'25wRMs2Z=?f:ij-`G-I'jkql6cm$./]hAR#mg$J9@7=2TvfKsJTJg0)P4:pGoq;ek0fYq35Hm>x6c?sM?dmsZn0a?6NH9w)fK)/m$U0e)4sC,h=/,Z>8.twOY?kW$nBIU-D(Ax1,Knpq3LiZe.a%Na$[u>;fUi0=,^8e.Lubqw7dI*6ltv>**Igew%gaBdY`P6ZRAA#x].pB9KO?ctWApY'xo1mGkkmOHBNOd/#>`]@/9r'r-5;/d1])^KsSu1.Oe#lD-jbRc5P%QSB0r5XI;]IHK]W;HAs1I2j2FAFq503`j<GKWpU#dW,-Y5[@uh2]Ghgah(i&p:5@)B$K$<i>w=x8b1^0[]RP5E`HToS]dAOQ1-a:%XG1pAqR/>]V'ThS/E-x$d?m:9r'r#k,-T-aQ`/-f?Lb_vm2c/kAaS/>*_pjEk#hLW.v<N`NX_CMJY(:w7UEJ,6X+xomk+Jo8Jm<@KFrYf@)_Xx*3-Wn>E.XvG-`[f:4%/A`1HX&/7Ns1B8<$W5fiX9n;[?XF6t'P5G26PZANgG^0Y@,UcguM#$UgO,l$Km'O(7Umgs71;[dug.8kYM7JJWfidp@eutA0;+S0C>uijUO'r&R9#8VSw`pXxuvT`'H%8jDUjsbCJ:rVx``WG>)nNrW_SIn[)89gbANc+*+Th=x3oKBM98/]6x>lJTEvEhC>u:93WTDZebHnkrq>Ho?onn:oF3^tQnK]#>'?)O1-/2TZ&t<`w8`X%G5(vAim;>fUCV.LhSIC6n-8g,H;cdS[`b2P+tt@db`CvR^o<T1cViTnEmGXZ8dNpP4>VWGE?:O@XXF53iDPmGEG.X]K<``ji2FSbM.eF,`_)NC?c<NB`'CX,g*Mn/3'7`a/vfm@0PqGib=pn']@TPb26GZm+^7$Gf4J`D)Qc.L#&LrKJpU97mnZ/3)gRC0301l5ZbH9,=I8qf-UHEutYGAH+9$WiG>1W3OLaMkEvGMX0FgJgkI3i6S#8?^>#h8nv[S`%bP;q?H4eXa^x1@?#n>d*F3f$8;@a`'#NL(H([[O/>8fll96aq0g-9x^Pa8qKl:OLUlXh**AG^<iDYm(hGb3uo$V-usgsEiv8]t-*26'%j_R?#ZN92pcQR/3R,FOx'rUMg>w0FSAIRQor/)IM/:Tb3iFkmj=pqNu/9XlOT2s%]/IABFf#%6n?s+-X'AOOngqc-EmJl)c'rBx*=F#PUM[Yr*#f4?]$XJ1bj@we<%odkwb5#7reYOv8MnBth5s@/BU/ZveT2K/'&vT:_fm;[-s6U%LhF?.Ub8+NUms8?2LYD4-thL6]9`HBw^v&?-c8sPv*@kHAl]C>/tSiK^UnpYkO=_0$thv2.iYE7IH;H7A1rKtF8GZ3dDbKfhhmfs-^/ismnULh'e/q)Xfpc<FiAZ9+swa<j`Qhr.W7T_O&eQcB8rG)^<hk7QNx**Vf:'<r)r7B-$MGeYBj<u4t2]^hN/_#K%49I:F]@&H23>[NTuNI-Xp$E,tHT0)=4`je6NW:RQsQgLM-5=eDZVIP^rjmGctI_v&aQ9$knoUKu11bCu>)T44wLD:ooqxf#XgfkO,tiGQKIH-h:^=/37)/[O7<.*h]Qw+QZx.@2vQPM6*pb&:PexSGmpa0C&(ZI$BO`&ju;136k5+3Z3vuCO_nRciN]/^*;^tQZYmO=?rk=T3qV<(>186IfZZAqVWWpk`+?`Lt@qD=9pK2Fd8KZ<p?SntB7]%5-f=i?@+XJn?r>(5=a`$5<q*4#r<(j$?LE4rF/NJkD3BGN&MDW3i8xZ#?2[&=?.9L,L%KAAq4mSJur6/Bc]$G@btt5a)i^tbmd.6aKLui6cED)t,1lN1IoXP7AgKCiD_n*i6W0nM^Fx(j759ug*/%'KPNRPDTv8dR<oY2Ab4'@5lKQc)dahuY,v/]C*c-P?iF1(Od9/re6XBCuF+EwqA-tGFD,94,#g01*9?hK5[EpO&^':aFGa5^st7E_<Tc_LAv%vN@J'fRA2nl4&DCIXeNmxDPc^CVNZGF$ocQ.G3s<xsE3bD9#^H0?6MuHo<a7-Krs_@Hb@a4Xxo0`MH0Cx;]YZnAw%JqWn'6V<eC)dJKdwWGvq=9`$Q9Tk(j5rW[3%@(*5r@7'bIaV('dp9$(`1(<*80g*asU_Hf8x5(sP3l(7/Ya5[62<'&LIj3Q0HQR)Fbf3VBlDx^<gIEpcm?=OnrXkBF<(O81HQHKQx`*G20RbB0p/:'P]ccp?S.fAcg2XHw(O9^b8Mi[;p$C=nJtU5ikRYkK1na]>Yh)lwX68tqG4qY:23/JC7@8?IV'(W*_bLW+DUFob+fBTYi8qrJG>,n;5Leso($S,YGJqW>1P1Jcqo:H]Om[r9s_-fgLkgYACJo]Tfrx<X;I7$iA4>*site3$MP7T/uXO)126hhMgN)>hX[,<B;6%AK8#cpq,PN,ZNSg$0ELB;M)1?Tvv0XkI$=7($k0L](2`PrH+ZX[h@6kiT5@H7;.vI1Gf<M,se%*<#N61+@Fijd0OL<Aj>lxqfqG$E9CcsZsYF^-u/DitA9oi,EXd<f>5ql?BLL](#Js.aJ7dQLY,vCY1D=j1Xcu7,pMc;BuUNS+&lYD/(HjM_^:.aTxKCF$nnd'kS&WKfxN=G3?vG(b(SseK4@+/ZC1_b,V2mg=1]eWYp%`]I7*7A-CI$aT2i5ZP6n^BEB'=$aQAf`4UQ;deVlV&^sn/tsJCh=+qnv+_5<fo=%M8*e*Ax_jcUNGd8@EQ*69TBLj=L5UC7`PB911%u(%?>r>v]qTNYR,CuGm*h^'Is_DJB^KfYAT:pkcA6_:pYb@@C:[&bWd(7;50d?rkYkY(,naRCLvZ=DW$P#U?J]va/[V?r&*?)8>XFdmC0:BPGTps0gXJ?gtSeM%X`)`3EwMAVWEGn,DDof]PM[k(YrWD^BCu/VNt[T2s1p;sa5trqx1NZc0r<0cdbph0r3CL'-&k^A2alZs3jW1TWp8AXN=(vGhYC[(-`YMD*=bo7&C7Wh'(J)>'f>LusW9e`Q.@X*u]N0jcTlTZ.e.cS,>jrtAfrA,0YG#xOpZH8nit_95R^Mc*Ss+XXc)*>w<&kj0UtOG9YL40XcHurTULr)wJ+LQf#+d6'XJTwMPM'f@n'WT*^j9Y=-j_QuF9S3.nv&8<IPP_xf`b_EK;7'f^*GAUb(/NrVi6wk+oRg25P>PX3h$okGs%g<(mVfN2TUm42Vc;bj6IF^#-_OrhD@e,P#2cQ-rth+`ZZD0*7PB/=Ve*cfNa?-4Dkvrt]5W:=u_bS^`AXp2=@uwsj>Kvu#;G;mSe#+g_>?1tFG0`Oh>K]tK=Vng'`4B[TQ1UVso%CkT(+LvnN]mOYsYl-D`NlVk7'b>g*UrWI,C3BbE$bO<<'(Mu<9Cb?Q0OS7Ru6e3:LbHb_/eI/A2tA5W([0RTmmuEC<SerWb45/2[6)IYh[S^U08lcP)i<3ZTD9h6OK-'gWsiv)O521D;e6Z<1Z]:^9_@9MK.aG$b:((ZE;TmWqCe)?[%gFH&]ee*Th'Tws?YQ0IwkX/28TDs%#VL7h=F3'4ZB#2W,7cAAfbU#k95)gd_2Xl9T;mqnistj_@l4gn4un%>)'md%Mrd[Gh3__+`0_sS;@/KDh-8OLFJ;Fc)<fj6?X9i.X8v9$v#?LL3lroe:/[U^7tD<5f>:vDAnl/6Y)v7M3gW_QOB5wAXRHw]w0jI;%bpOGJJV6*@:F8$R#abdRQXxNEp=.?CJ0K=`w)wcQ7r@uS&C_?^3HLY$UlYJ.tEPi6=$.9;5MRb@OaYm^K?Ja>c-uP`^*.a6rHtwd]cWA#_lb6I?abAMISYYEZ#e8@o/8`[K(B1#n).W&%g^k_(=Yi`lXAkXLlMb69X*rX8Bf1J<@:i':v#RUm)/$i-R'O`ECV9#KmS:Cs(n'lGVRTr;UhQ>'-A`AYCtCF3`Ugd9b%L<fFR(u@.c0)s((SYC^bAuY-/%1j9310aFD:YN*7(lBUrX?[>U]+$]iFf]TLoQhow[_F4I4C0D_A;'lG6KKU>d>QD+vMc_(L:s>.s0]5R`VKq98/9AqTi<#2XhqJkPgB@i^QsTW*j`EWP%K9k$r6()eEkSb_84X(voO^:pRIqp0k1BTRY6c^eI2NJ>u)IYr*6ln9&h<jj:`]CF=eGQW-jmYppUK@_3<sP6@0rA'VaoZhGU;PBY@Fj=O'(=iltL$'M`2/`Q&B,63Ic'GxXQCLD1=17HfQ`k/9J:IuR6$G<<L]jfS$ah^O.c)3rhfUUq?97d)m^Ug==e&'TkomCo,=bXAi#wo;cPtEF'K,$D+*uc>PElN:g;[kqfTo,ft9ZPl5a?'ftx(h>CYx3:o&#uss9x<w-07/]g'ph54b$<j9emU)i^KX?hXZm'i-c^0#@ZshT5D=C?uxHm[^q_>4VOD^g#3jHY>mv8E7m<jlWg:dYc4ft[Ex?F844ox$dQtM85O1wsdg8LStfK7*3QKW)/LFT(d$Z-Tv)Mx730i&Z[UIf<*lvEL7]^-&mL*G]%,S+uN-,SRlXcZ.1oR.]h2=gpv82dv0MD39?wxf'O#dGurxa+CB1#>gKX#He]e4xNM,;[_7oP9?L.fX<8eQefCtvUO5qW.q,Sx6%K?7juqo[Qh_W,oCW>X_,N(VpkmRugbV-NV$tPQJ&u?7,qPXJ0b,)qSPw4-Y`4WR)h(Y&$Ij7M:H2QF*e04Qt]V[$$$1L'pn(IWPHL:'C4G]9]#>b-(s2K0FgRT[<ErI7T<k/FSb.2f1eTE7c[Rv$#o<62UeYiTS2VPfAL6ShY#comC_(]<Z3,Ht@YfS*KU<FaL+5V4>[9(AD.ZnPHXCb`goBU0D2I`bc,mD2VfKYH]&dd1dFP5uMMAuWZ?o8x7/jm#IJWZ_ZrlD0$NT<F^ohS+m5G`41q)rf@q9q@Z/-<;jQxQ:]BGKGN`j<?#LaAs5Q;pV#[TUR7cH'cUBi+#8,^208p79)`=gcUIjb*#iS>wlBO[[I<-0k^8=l,ZI+9'OkVU+e,h`I4fEeKf<usm1`_wEY=531d(=c</uG7G:0LEvHP7-.xR^7ows'<JAseHWBMm-,?>?jH2w,1J>*/p(TU$`)x7VNo)*pkJ93NSq9/^AtcKSAQYWJl`863s'[1atwm>`2i%v2+2hH3d%p:bGrW88f]e6uQR,SV<M0f`4k3v2leR(]sB4KU.a;WrOLjLmtVvSW2qH)7Rf$4/t?'?LOo`7][E9N&rLeQ%L%2Ua9i&;Q*S`=q`t<.0]$%peXbKrg,e;j&/F'bbpe/$nRm9$W^C[`=9P4.tmd66/_`F96@E5)2RfTc316T&I.j6WcFx)65X+ri(W'YbL<FBf,($sUM,LsX@poFhBv=jOaou^?r%&`eAf/n#enL1bKj?#_s++$uPx8RjS$.&i4*vDAaLd1q0-('qFRjj/jI)->IDa79=.ND'?:(4#[XbXutsF9/%(:NEk>oC3[K'PddGb(Kbo(R2ZjO-)bR0;VGwW909t3^G(;ZG%[LJuX46H5Sd++aVLCj%0jsJR%KwBUYP<&PnO)3^>fG<v$DV%aG__K=Ou+hT>+k<lUgC*lr5O-eZ9`]ZEGN,jlYO=:v-:B0t5*K@al$`^o$[)S;N%s]KF41(@/bXZ6palWgX,I*O>ElPkeZ9$Dikck]r+ULt.;,BN_lt>Fa7cDV@lRmi=53DXc8s%,N)qH`cjIZ8Vv0P[B+2o7R3j8iLN&`>[j;9VXfbA+R9(?=l/p-WEIQs8p;xUF:aqHZ&Vhac9Xtw[O0gJIB_aYhlRKweSL$6YOr_pUrPr+LNL#w:M&JMp_7^N%HT]'93?ml$J]4Z_A$pVh*f)Iqn31=g3;_Hb5SDO_6c<9lZDHqUXlmT;STvB*2_f_N+6`firPxOe.SPfK=DAdnWa':dIibPXsOwjn4.3Ll#nJ1SpWeelH<,,/$T:tagwxW3FW[?H_wCP+1Os9kr(W63ZJl]t.oO_u)UfCEM%1iKmPswx$IR*)$ceV[77E$9bl<FEOw'8G1/qPju7lk2aWIBF)s+S_[_n;GN'.d+7Q0Y*LelVA`-v-69vN>GI$:,E.H^Z9,q>3r5wZsZdCLqp`)%Kuk=w0R_(0O4Lgi99;3K[NMH6A@v']wXH=-Xj7q;mDSt8FJ?uk,NmEYhQmnQ6vO/P.#KiClRBp_wp7%`'O&;)fp$&J9cNLW%9>du_n;:7ChU]=KGU[ojM+0bYoh$D^lAKV^fU&er.M05tNqt3EOUr+ODjnW,j:d^)#uBJrrg-u2PU+%woN)8va59U[&HJk=d#)L3beMW.gdK9ogj5hwHQ>;qMG/dB=11isSe[I?C4P(#PAFwT'PM0jjX4woa('c=$,eB=Zj_'Fj9O<j=Hl)uCN+s>2M8t,EnsU4J?8IS;2=iwj-Bjj7txitha$o8)27JP#EH7'f24rwPfe@&#A<Y`.RSsBMS(aImdj&k)/)h]q,g@Z:OtE79TGZmEOo:CXjdJ%,$/=RNp]+p#2q^-*NW:a?tVaQ@PV<ALRp+U<CXxdNux_G7:hJ3R^iI]8^U^pK^6g#h0#ME3Ispu^81DSa^^#s[2OahO)&Lp?+dx726B4JDaG7v?&<R_3*$qgD)W]1H?_eDju?0j@hXh0i-?J9@8Y;FVlPBl6o/rvhclcHnjTHBcuEHGJe^2taVx$v3;wdhaAIn5&Vm3D,Z9P/5WVo[h/SH%um$<Lg)=Z,f,(N87_Xn,J)kxS6JA5iS0DN3%s`a9H6Bea8:hXK]>^2Ij*HwDWm+GD9cI#JoQw*Ru4rcve:.5=W/9Z1>b7n?YmwOYt>tc4XZ$_5(]VQ_=AE5k239(0cnW8vb/FW'3DC8hAXU1x&.<q,x3eEIYt%xhYa/UX6EiS.,a@lT/NGv>W,%W_B(jR`QB3]<WqTv0=IH$F-NUi<g<;?ek0R?G/HRe7g>w;d1l#'wfA1k;aWEmF/&.KDT16d9=0p0iXIFsDeDB2]YaW,$K:A1l4OLT7APM<w`GZ3GL>W_+I4Gs/TI.)mY2XGmL'x8BN-OR-QsgA7-U^5:?),NZ0A=_FU@>&wViTLNYl&8vx_#M:IM=x_#9Qg0&2ZIKJXnO9#9J0atk-lwNX[g1g@uwlt@w[4D78rZ_94f(u=`kD0Qx0EXf1MYZ_40fU$=Xv%)iQig)N?MnT=MuSr2IKG`kG@'<0Tpw?iZeWbM.=$m6*.[A[TJo^h/Hlb&jBqFOdOml$^4QR.rj27N.SuqD<HQ(+C%10f-Z@@ImE[FKaGJ>CHxV)so/+kZQwu,vtj]smD`w`FIu+f74jCPZ.(U?AY2/.-b_<[,r9k[3V;0v$PHrk$9PE'gP1H9Al.H?elj]O;v/@-t&HnU&W]&3Z/EYu<Ri^Wv,t2)`':b?mj#/2/D^pRg,&0^SlZ.b;7QIZf7B9jOCE>'8&.DlxvXooCWS0a^2n'jUoTL8a`xY*#wZwH?7%$q;)'dgDZkPXQx*/ih^Bx,Y3PA3`t=L^tR3HFk,35v#kfKYIXRF`uB7h#svhTn&0.b4782;@^BB+O2.2ROuYeTGNO<G%?`TDn2=?aFH&Wx3Hj=eaZAQDK]-,])YNqapG>(efW%c<5P4@FW)[DFr:='C<^jA$%2nqOv)_d$6=BRL[nwsi<EUi0j(U=ttth:R]@p(GJ^q4gDmOvYN#$VY8ncFKeCa(WnP]Se(cm>JUW?rt/GqRid%gcY9F3Aq=#,tl.%1U*pM8VNU7O)`Gg=7T?h(77=tQRps909T&1&B]Mp`gHjQIVu+)QifFSVeV&'1drl70jTGGm+Y7-w,p</hr8)V)hO0v[faXNEOR5d7Yd6AmJFVcj;jQ-kuJ??4k;`gm:lS$EZZ2=(q(jllQdjI'VA8=hkZH9J3s*Q#ax[Xg+H9^AY6$t;<C.,p#gn6.7urUi3_cxuiWoCsPDf+N7hu]b;cFVslFmeRueLTW9O^LDC7)<NmghMWVWMF9HZK@e6i:fu6bS]bF`6c75m0gSLUi&5i,7PNCoO$x.p#XE6tNP[p]]$ho4>Ko)ht@Q(vl7>l0*,Bi%BV..m>p0BMdMe*$Q(kIZ&T&/NUF:$]X>,g>;h2LJtkGP/hMW[8O.dMK%49_uR$Me;I,>do>q,]@XTK7j[Bufn8BHNj;SAZ/kN/v$e.7[1*PHm^jRO'O($mb_9M>,L;M*^_a*>Sl=2kAx#X+%qaxdKP1kqI#pF^2cUVx?C8td.SJIbv;pfea.p1Q5@$E,2vI,4v`;kpYK:Bt*ZI;xaD(ZnqD=.x?sp21hV*o*ibr^DNW+2nmcfMi(Z4Rt0r:uh@vZe8<[brjirVVl6s@,K-kGA7S'*mlv7Qg5+1=<%CDgZ=<Yb=klDaY8msZhXVG;kSTLh6D8^Iaf;E>v+q`>T.qD;3fpQr(bG86jeFl_i,8f/6$A@k,MT?8vcbbO79P1p5`0=XYt'ohDhEGNpv_:3kp)jCetRuHp6S@nJLcI])r/`aDE13n0cE8KB1]jP);`7$`EP>4x)/iIf;;sHY=_C884C.8>d-?MMS;J>H#Tu`<$mA<L,U't9)Rn2ac6P.:bH(j/rCfh&_^36vI#DPCwB3NOMB>28V@ioxbU-u*X4NIi[4(bkR78]g%)#>Ve>R'PD1MqHTT3pjs-w..tY?#QtMq4Li;1s4'r<AOaS)TjBCv<U9QX$=_@k2-aRBO_Q%&nv3&LMKZQeZ^D<P5j976='A,;8R>ohrG#A:hJZ287V=S%]$$'uTLO(CEw1U[Lh^KojBqhOS^aJMgaAu_,Zk(VX9Wsb=O<?M06D:b^p=o)-1Gmhj]$Fndp6L*.rj9nB;(#(EfVAH_#H4S'Sk[2IY;E0rJ7YntActjt;W>lIs0gaBYjv#=E@C=Qs2a<#+92cswHcml-)(DkUjniq*jtSD=3&%3CZk8`sWLmss=F&5FuQS[E%=Dt2>9,Q=vjOl]l7k;?4>]_1JuFNlx)]o7C%cjoHpO?mhhA2S/UA3a]h3,RTr^2m^sk'b>p&_k:JGUP=Nlfoiq[%n3vo2*aK,?e8?[AVYN@I+1YCr)Wj?si<JR&?mtfmpi=_#ss^EAIYN)_<5r(eQD.TZsWTCKeIU(#m6X;RR#fv%h=JFsdFfbTk.#X0bpD$.I,YVn<xk_DIpEo`OU]IlA;;hNnDY2PpWmPa]$IK7tdX]X,ZHrMaIr&J/)0?Vp0RCMrUQ,BJ11@j^&%^XMweEkRn&2pqPx<Q<M+RZbQitSPYuuT=k0xbRs[+$Psp??MRt=ca>d>s<foi0e8^P:XtcW<TEuPFeRg-q%1:e`AE`,g*K0PO+nAg7n=`;MBvFI`f^gKVxXpCAl/$htD&2O%3os?7prVX9VVL*]G=kHZI&n4J:#)%s?xC)iNM$g[FK'M-dlD(s3+*)D=lt/;l()'O5T^aDhH2U;,W>$qIBY_a6CnQ%B6PTo4o6)%l9S-CRcWR4sTLeLhLBo5/vi4%4Uq+v-%rM55&2@b_Ec,Au:+k2C&24`RL;c,Pw_tjm.;JQ]og10UBtOJmB5IG&QRO:xTmt)Y>CqovVRWF_eB-aV@oC6q;8@obTHpqk%&^S^U+-&6QkZ2j:g%;H<B#BP@tD[rnq@TJS9JDvmHH&o?i@]GlM<6^2Oh&;r0US]p)UKiUs78WV^4h0:1NPH_:)H9&DaQUBNp&B8NW`^*oML#dg9QEh.-H(;ScIpTI]lR8I,jm[[*8@206g$Tvt1bgTknnk)bUp$2]?WKCwC:6SNpJqR1IRQN:K)BP;-vB,E8A-h_-Fle4CiSwM#$8=o^M[IN(PJ6v&ndvMUDZ>$pjghUEFP60*cu1+Ei?6sKE+HZ.h(P&6-8gqNW#v0ZV$dL$iN`/.DP@^K3@aOha`(_+.Ml0K.3t.'*^_u.Tbj&2M%`uTvkb-@lY3`&(gH,bU6)*iS^bpv1[_i6%vVK#]>?s('g;r[**O-etTR*KW%,/pCEfc#G++-usoCFSJG^.avx/LZtu8ab'mI(*R:P<T?^u<3&2ES%m8RpTh5],kvHU;gTKRNEWRE?8&MtN.g>0XDw7:ECs(Na]CEJ6bx,@tn/g)o_pkcMHw'7c`lXm#LGp7;+5T[6^keoi4fH)Dp_J$]f-L2kIXbung#wZZJ`ER:#@ckKl<AvduoUKLka)6OrJP](6%nVSR1,E2Ba%'fkT2oh.c[RgYu36'aN&O<Pq:dR*pe(UtR(akOx`9(S,[Pm+K6>]j^0WekK:bFhT.]<Nj9u/:%7SLc[&.u5H+8$5-Ir,g,70rk8+8&grBn+8/TZC$G4x%ZoxH#1JNmKZl<VIC0LN3(@+e0CMRIdXoOW.F$B:Pma5hn^7rYO)nQsBk9a$1&vd,ioSR^c.pB-8/u9_QIc&,Dj/3eYq.RdCl0$L6b+h?s:C[FGc'5^(WxSA&.:[i8i$efn,QD,;NU:=hDrk8bTja5'eK.A1.48oJ(U0/d8Ml5'R(fg[-6?)+]%UdNIr*td'-r8L+xo8uVK=XGV4v2M06A.m.)n,89*r+C@B*BA(5-9R%tuTqOG47Z'fD122N@(f;W.v[?cV%nts'Ro@+Gbn&aGM.WxMb,5#pjkpeB8*8pu;H<+JnCZ<hLoi=YW:?1B$biVO&OI0e@g8L;(S6:IfoATXxW^6O;8=72B$2rR%5JtBu<'sZ%KKcO8'*@M6QlfC7vNOk*P3:lFw?%7Mk8gS@LJe+19ZYH>_&q%SmkE_(5?DI*H)U80f+4&/Y>S9M)gF$V^Fas&x;/:@'tb;JS3N<<vb?nrR%Pw/Vm%xedl'jcpm<qfvi<g7DH$*$;2cx]J6gpwT%#,*j?E$6D^K'2GN?o:WU)*gJ)/XrlBSlajuQ_(9(egsi7u_vVuR%RZtJN&Di$`X4o&nRHP70J9+P;xbGX7uTo5MPU.s9IJ,)lUb6_>iOUM^DK%YK$4Mmiwjj2v]^_dQP__d6MTtG<WL@P6;??0P*AWYZf=l;t]Q3$gE3@[%OOn12d=&5Tso&3*.*___BFg3`k/8^][DF6qN1I&NsOXI`^?`?+k:Q*$;w7]l7R:&Og%+#IS'#Xxhc]RZ;,%I[=K&`MQ%[Z+6&;B=S`QGjFB`rJ^1lT+wbW41cN?S#NU$Jffo-U[XMk('%Tp]OU2FH%P6T32;-&Q9,1r@b[VSH-#Dk$Xh%4Dp@nXnU<5QvQE&$R`2R>8.KKqF6jno3wi_.vjD6#ceNB7jwKeA*%,``jpRO/A2,Nv3=?QNbWvgnSdh;AYG0?fUr;tD5m,nFpnN;=)k?cX.)FZ+Xk)f:d2wV[YDQG?=wDL7XKh<_?xir**SqhF;JuFq`s/*(c`>@VL5Fbn71@%F1J<NKj6M^F1b;9e#wF;;*xFs^MopXoaosL`)<I&a/U=tZ:]/Pb@0VG$(nNYEQ(8;<O>@(qa.S1#J)GGOo>8*%p;^b`stTa>#L_:*lkGXdJBve+LD#]^(QK[^a4d.iBIG:4VIf+Ct3iD`MNQ4MU8Y,9K7Ng>G9HYH#e0S<+9-O-csj<`$MQ.$i5UW9Omm[:wqZ&RDI6QeY2GKNAn`k4wR;N9)4F+cMDp]$W6)5SI@gY_&v$e,[N0*gVCWqVHURcEHhpfHv_1%Qf%jVMI0TvO=;1RSa*-2/D3A;N?`R-72/e3jf(,N)Nt?hH_9#gFH4uH]H]t/?V,8-ClW@0^EX3N49[HDYX8/A_vO$r2^1#Ug,)0/=+3dS1si-Ei[koWQujPD1M;p*db*/QIke18/RI`=I7a,aM'(jgC^Ti+t/rCd1A'-c1BDJY9QZev,-NxbEr:c9hDggas,Cw4j(S@Ot5`Bl@whZt^2-gwKR*JNtmmD%O<dDrAB$,X'O`iITBBR&E=d?n5nN]o+3K,R+jBHbSE.W<#_n%UFFN.>bN4]G<hh]gKsmh&T>PS0o[(#'f.*(&4De[W.&80ZrLUk$u>Jgt6L=:FGo4<m;Na^@@`^B@l.YnET]QkV[$#./,uWbhgu16OHW*)BJj:IA4w*=0r5rMNR*1I>:FE]R2E/kV8:r33#Mit#0gVobQ%aY5&:TR<Rl@Q$%cuqq4&Tib*x)Be_KcH).Pl74AE>0lV0+D-i37gC+4HE+S8aCXH%4MPB`&F[,c,gAHJ>k,?--%L-7BUR&aCdJ<?ZG,8F*g4QfV>'%.U$.;]?9Q739'v5YAP[,83oM-%;L<KY/4%gX#UH;>4PB:t]ognO5n;'*_f2]&=me]OjUtX4nZKC/#9hF'D,9N/Q?_q:I?n2Q?4XFdotpfDT,.RM)1IgM7,I?fCM-H1w?L`.Ha$K&X(tt1XiC;+cP^@7fUoJg29Be9tjv+V,g3B`^EZe,639j0H&^Pq$:?gPk'oM;T.Vt[vxX[K%9jf1AKYBF$n?r7b>g-dd3(S@6GLZ@C-3]]";
/*
krpano 1.20.11 Gyro2 Plugin (build 2022-01-13)
https://krpano.com/plugins/gyro2/
*/
"[[KENCPUZRr3]Rx-4S+Nof&t9XZgb^7@bF=A;ofS]M4-7iBP9#K9<X$ji>FWEKXvQ5?CQ-s-Uac:EW/`1Q/8A8%lVdldga;^OaRuYN>oagd^x`*bW/r6d4#`rUWfdrhH*mBmJ2#(F_lt*LV'Eo^LnLTfcOe?3LHJq&P;3L:.#/Dh#nVXrkXTjBkW,hAx4.>3^OCNsP-QXnn_aE(67Z8shMkG#C7&is&]q2@+[I+B4%=#R#`]]27g/8JqcEJ3@]/e4YvO'jAK3X:x4E5['$5f`@FS*@]#5KqKC<CVR5j^IIv2ZN/__BPsUXZbHQoKB?82D(T#7s7oIXbgO8Pi52TFml=DOknLmi]TwTUdi5Sj0OQHWgWW[EScHus;0ASaK2#bXlaL6=NV#8.gI+[^^1eWBSxk,D1Cih'ob*LUgp0L$'IMa[fM)8-NwL,o:),Ij=ovPx(PV2nNQ?2w9P%95;pusWXR>Ladv^4qL4hpZlEYpkW7=cf4=[6Om&UACIjU[O,PY]e;bbI=qrse;Mr8)f`a2sudDIWYJjkL&E.vC7KU$cuc=-PvYM.?*_DtT;-v09gd%GpDJB#f=F'p5<#w+^^#UCx-PXjq5OA5m*u9]>?p>UZEC;[r):v@;+F^CvZKcU-G2WiOBOcFR#2KMi^ZqOj_[?7lAWst?@8'+;P8gf:A7^_qfGM2w14^IHbT_1iZ#c$))L^K.rY#rKAWM+H%.p:.OADR(H/nU?*[U1$=]K,KTXoH6*ZjZ?^]rv-L.:EQJ']2qYVs9P'Pql3#Yvn82s+^@A?BJuD[?,4.1St$5)JjUj/YP.OEFMs1&3`AB+e'r,oo-(&$MG/-J$9@&)o^B3UDv$ssUx#>UC$w`oM1h#r@kV77Tx_+T6ERDo?OP90(tL8;>d[vuWD=`o?Va3b+*]<AT,=jcH%QeTV7'4>vWXZ[rT-dU9;I<-$U&TEbZsd&gZ*/^8'G._D9+bQrP$O(/&QClsD$$_GQ:]O(Vrh19i'YOLC4q>k/3I`49^V#N7=.]NL<gbZ'+3Aq:amb&wHIANk8^*l+K8&Tq<r]B8#>5Te#9Y2%vkg1lj6(dv<CqI?Ff7a$]tO_Q_ePm`0-^=QP&0Ljn9K('x_t#FjJ5<4wfHCiE0UjPX&Z92GlGXg;rc4=MCJrk<JMUXl]V$EOdH&`vr-coE2fpEIIpC]wiuVQD+uaXqP+IxuF>fJ??3t.Wj=wk0.cI>>u>4?>TqJe1DS21n9gQ;:LsIb(gn;6aH#7Vr$VYxmlpRG+jWOjZJaIAnLI`Q/JsZ0X-CZ*+#o:B8+a[2)E(NI;pqpqW'dlnRAA3c9Ob*C9sKgS@_e7)h1cs/77<DF-lZ51&am>ItRqF1tZ5n]7WN4?h9KS'(-gmL^QH@Nm#T71OVO_#?<CJ/N.uCC#0/8@m#oYuI;*'i$=ic<8s)16m2`eeE14qqR[9wk?RFh+v^)621XYl5*Q+,P+4'e2OK7V#oT_mHf?.jjeB3U*dYZ8d?%U2'P*Qd^xm*Q1sfF3Q-ao2T$D$UsaAQOAkwsPmD:D2`v$JIuJwCpXoI]K/=FN45kI>2jXbXM_>>>GxXI?>r/Xj97%EI91-OOtEJ*X;dZfI;SsEqQSf5NhJ&*(mhZ6rm.f&B$7?>im>/Vh;HT5NKHKRdr%ee[k&1ZOGWQti*&q@WAbKMQ>nFv9d7p$`JiD3,ItOH_p2f#n]QTp>bkj`miq`ps-x`5l>wDxS?epi^r_nM'+P9>nQIdJaIwOFNj<(iY'e>^([u]4uVrJvYHpdwIU1J<25-],>Wf:hFjqC8bM?Oa&RE[9eB_Z/BO[Ib)*.GV$d7]BtYf4s=FL3ualfeqMRb=`Q7pber=`&d<9O/Om_KJHQW1g9(^F5@8fWX'%GQ;,$I?ZAjP0mYmGMH8pL%EuAk[wN7tmN7ROnG[sWtR+oln#bv.l)+1nb(bM3q6;ni>H@(N`flixj-[cKv:T#8ZIjEOTD+3)pc-`#2T<#Ej.Ugj-jU:[a%q/bQf:bV[?i(1IlQ4v5$0Sp-Z4^qgKN]]CLfX(k6g+dxQG.?(appPC?L$d&&&Ij8X:=59W9CW8$2nc)_xl>18xrSPqV3.IqNh(rDJuYY%kRgdJg4q,%`e.k2$6@F[AG%tm^b;_&Kh,.?1>61q->tbN2F_0[=;W8oe6ejlHG=+nMO-`DJqFVfgB/j.A<v?LO+3d(khgeZF,>bm8Ug):GR-2<kgx5qPHLR=L;rmPn,E.C-WUquqYuCs;,Tu5j-la:7*$3Uen/9CI^AH:;=sT?NgNfP56#;<;-9E4K1Rg/t&V=?8'btA;lFljr?lRcUd7=w-:d)mE'w7NF'K')STt?Cg:q7<dlQ&q$+F%_`;))E<?s[fup)-O=N=uvSA6x$J&[Htb`n-OG<hK*S_GVrf<%=TTB).(EK.cdTl38FGi%+D?KPK*+U*3Wu=@px`57e2]@TtxM,-Y^EUk*NqUYB&MlPc$g$o#BDDjF-D.uZL6GwGH%%L?A<sohErm$@$lTKP4Ae3^&nlf>.7RR)_eUd>6)e9HhtuF`t;phMn4J'(9R,1CKFWfG,oRTj#s@xsRm:(6ur,WtokO`Rpct>NjDg_iYuk'<,w(b`3W.s9w-r6.bt2XrO_GwQBb-A#A3FW`$mVtFd(*^g30%xM[Wf#8m)2aISF[j%2&'ijh4[:hA(69d$Ms6YVom[XkFRgWODv4;,uXqM/1+Z9^%U%lx:ha;1s6sR&%oS<KJf[O&L2P&wF2xlAVJu)mPdKuGAeiT(DBA3^'q4YH;gnrsN-XTnCb&;WxoYo0#sHNVG0TtI)s:MO4?:'*H`<#_ml`Djo7dc9iF;0cW5dOigHhHs:6PW@HEfC>&c(?L^SD#IdY9U52i#72_M)C2.u7]A1#CRCQIN_$.47BtJsG#XD+I)RYqN6CMiJH8XKE3vqV%uF:)vr.=W_ag8%8.9V3G;7vE?xQf^/HW''Rr?n?*bkkRbU).Sf/jVE'O[EXqoOi,[utl<W&?PKI:J$BNcf[kxY6PmAE;1DQDChKaJ6gSoftp8DII2u$)ZL.3aKMaeI3N9Q8&]:oxO6@Mh0[L)2XC2H.oj`]/Zw>uC=5_ZAxh.U__&6f;xT6x#ECb17jZk6Gl*N6i>6,j0&tQ&-4bO;&;99_`]W<[n5'rQ$s5u#nwBhVOFLct,bn/fv0+sEAP*#^dcdL$];<0gY%[9H[7e@:6NsNYdEkGQ'V_XJbwE9dLp^Ggf7[=@oA&/x2135oHmv12U)0QHt-,i/#h/*+/b:M_w6^B?_UhGw'X^)^L)j`K]=e1M[th3QS2%N`^Nv*l;q?s#plrNjs`,dU`j)_<_U=X;<#w/SBL[E]HA<,81V+6FN%fl,98+:8E7^hrH;c1*Yj_:XZ(`.)Td*I`=qv&e]Uibs>5v<[ZlRYRot]k+5)b5Cbe@DHG9I;O_*D(WQ<M@k)I&hae(1(`#,LImn3QZh'5_#ZX/M2Je,n`qsPj;eO_v`eQR?iJFEwFViVRKfYx[KB`c4GBRQqDi^v-r,(PDNjAv$[QBON]63]hP^%2V<o>VrYdwo%00oYXn[^':[1q(LLL@h4gr&k,sM&vv]4$ql+f:=31-_r_gjWk#Q3p'>a(uOCXMDtNG+oZkrlP,u9(N8`t0xr+ZXWj`7Q-t=Bb1oo6OaN3Od4VUIx+Ck=E-?ao?R4N5I?29`o=,ddtdb;G*b_lD=-Sbm0gwV'X7&u_Srm<u80`*g2l';6%5T;EVRq*1THf]>#3#K2t#0xIl,/@57nRvaRWU?@3p$S5f44Cn:O4tpHCo=k]Z?;MOU6W[/QeL?J]WdIFHX:/N1h8:w4V07CA.E*CJ%)e1Fhfb'$f`a*T4+pEJ?^kmUs1S9j)D@IMk1JkkY8TQ6Vt>^G,@E3F^bcl,p^mVJ)aB,n-GR[N>N@ubauJR+=o%VscRcvi$j-EQ*O9X-N<)5/EP^/D^ii1;$2j6@OnUu3'>8'uqsQ]`Vg/pPkmEP@ZfYv4i$0wmkbAZjPeLvvK8'f0w/iG/R^O6F$]5&%qu4HnIrjYx1L;l*0g`h1ilSc<AYoNiWN^#73K:Yppb[Ndc+a.MQt.)WSRYVZ3XI03S@Kwg0@h5/?GSM#UP:t&]`V[+sfo5Hn$^-Gvp>-DlxGx/o^DwB`cGvcC_Sd@$t)q9S$5:VYmhsL1U]THRqRm%EhqfMo6mw@2AtcS8ev1e._X(c;TWd6j_8)HGjM_Nc'E78Yse(&]vMF2m'.s3%8<%9k8>nLHW*e3ppOSn#_/sTbST#X<*iCRRL'@C5=c9?J;rf*;o5co&i6-ps@kfJv:U>l>(7i,a*<tmOS9Ll]A>I/sOG8KDTj4SHkuddhAY:i*ehPG@B`JVmxWi=Y>TcLj_Rttt<oLk4(=0?*xdqs9PZoAqdFh*]`_>5XWV]#]^lIK64,^D,'lc7tI37c1S`.+m2?;=4/K9aqaQo>jgl1F_VH@?)DJr847`6?N=`>%W6Q';L(tst<fW]taC=vAnONE[VmrJlO'6Uj&&XH>E5OHJ>0S,Dou:$%TGcdIw7V2Yr9CIb;NkZmcGkmTm`4,C]bWBRZ[PeVm`ZMBE21*BV*l`4G(sr'c*OYLOt*`vbjU1AiF7o5Y)pGM65R[gxs^_01]W]$>@*lhG_>&Fj:*Trj`%liexR>Bn%o(A.Ze7S'd9;oDcA2,Z_`'(X8d->CS_P44:Zh1h2U_Xtou([Yo0'Qe'fjHe9+21^jYUU5@]#3od)H'Pp0UANcuv^2%2_I]#Qf+je`CG,(tSZY0j*K%Ys6,c71IAx_MnXiiJ-1<EVJTx4A$oC7-9$srOtF0J%$P)r5W7^6EED+1ZEv.[1QB-pG_G1@+L(H[U?hLqejbGU?rNri58KEN%,[AnZ@7,9T_o/iQ3GlbGXv),UhTEa+`^`8-4er52r;lv@.%#3[@cx+o`0Y0M,s;FKeQA*o<g8Ec3w5$VL()J9'2Y=U%MfG@BuiPA`Bf]isPkAq>*Ih)Cq?fY33-(h/W/?I@8bGE)ZTQ8W;.5U__gp<DFa2_]iLV,<+^#*2c,V&RKNO.1/=R[%#X#T*))hEcE,GGjl^hq:J(]JpY$fVjQ-uD1i&x706=J>hMj>L;^(pF.]Su7]3U^R0R)?>*63&W$=Jp_3MtoUlsOl?`rmLX[B'=cC9S3n'Hhaq1ZOS<H0tLY<17qf/X4asKAeAej;;+KlR%gt%o/7<?GLIQ;c3$73$7WF/`:.]`ft2LdHFY#:R=1BBx:Acn?dAO9*Wa60UHKnJb5lr]Htd/b$%#u$fh;&4=`;HlDT5Tv^%jC#bZ)-;Q9).prw+ar<sBd)CE:V:>7krBp.kg=X:EH_Qg#r^g'-LQliZ,O>b-MJkle]D5DQ&3u;&c,<78j2=+JFv6%K4v1kd0_PUQaJocrO/N/8?_BIsMP*Wt3O<dQpl]iv_B&m<aEB_9,0GV_jk9jmT6H%RG5LCIL6VYiN)g;d5cxF.]><)t&N@j&Kb2.ieM`QDgJ/x<QK?J*9X-Mnhc8gW/NPxi6W9mJKa#:0+i#r@?m#T*M*Cm1(:piY]pXV`Ti)HBUBd>F([p,3)]jVp_(iq)%UQ`34g2E,-A_1>^(h&n3*sl979)'QU*6;3dsu4G6ft#'b>:oBM,FpU:u7<Z:b(3C+P#<I*]1uh7mwXZT>Hp3p3[sC33CGdu`a6xBQm7oI--v/e#ZN-o@KXK,17Qg-jqPg,Dh'6RZ*Q)K)0j0]-]/XB+N#a%m/=x0R&eA9rRnAa-,%-+s,vQE^CbDmxB=f._?Z8Cu)es<#$;7*29M=WU%/GChR&fP+s0rG[^%2sOw%uRnZTFq]u4*+u<H+?x(GdgZo=Ncdh'^68IIp%(kSE)Fur_ka'qOv#t4T%(PjC;sCYM5A4Jr8$(_Ln3'Tl</7O4LH`SBbYbLw-aXJ2+S_i7GN@jocogM1M7*RYtlatMl9%'Wv9C]0lWS9%8^wJ79/%J2OJ6TLR,)R;Q46K@H?boYp(Sxs0PRa,8+&*Jgt)x4ln>b[-vJ*bn:^IxlAZ(@TJ9fZ/&8n;[eL3.uaJs1M#[g*`QdX7&Ct-[<=Eoq;g8H/6nOm#g8d$$f`sc.3WHAdGA[?LQ>93*>B'&2UPgoe>K1;7-A<BY64tUBG'L@+EIghl6l0]*(^xCBjIE1aD%jX/$D:e)lc?m1t;qZT.])fcu(1i9>-/W$bgRTI1goC4l=)01,d1:lO#b.oV$xWxb3c<#&)2.d=r4Q8D1XXnc#-KHsev5%6sWKY_1>0pCcp'UL7$^`Mb/DrY:JBeHQnjul%)^^3nC%Z:jpwNZP<PDFDm>>WLp4:t?#qu3f^cWuu/P1iQtX$9.K2]?5elpYkl'<2x%k:f_P$=2'HJ$3BP$-?SMCR17rABcT<0JPwA9kVpGrM/MHH;$2%+2e`$8&[pI`HuJ7;IJ]q--_H`)9Jp%`h=p_,A:o:4a.q1a`5TPlx+h@Ik^UuI<Y?u;&h$?3Pc/R(J?H/+vckOb%>Xbwf8_O'AdYuS<-)CSnpZ%5gpXQ7+5UGDq_HK2gi2A8S4$LX+nbhc%f@25@U94tlVRUAwVjAhs_U:j_VHC.f'bIIvR:6tG36-UU<bsO`OqHUP:5&;b<)HdOY[$>MST=sn(guh[uN]Pl^8L7g5^B0=.5$luJm.gI,6=q+kUm`0`KP_HBx<aB%;=-B'FKUa-Go`BSx_^B)j%3QC=F*T`4FJ@nm0N]MfB.V_l,c(_@IWMCeswDPuRi`'&53fpDhgS:sdD[4lJ,%W3U.vTd*<0#^,WCJc%]onr=NnD#iCijkZ:6Wxhl78WF5NMlHQw;3nPGO=qs/IrV`+nRm;X9KNKh4^>)uM#$u.$eKcIrxp-?n#HY5,IxrGtZPGf-Ym7JGc@5pFZ<XI7YY9)qhwuLTRI#;Y4D`g<xlQoEs&XK5WC2Hm2(52^6$[(TX34r(ljCw)<9phR*g;3m]X)%+%wFYT[N%q*`ROsNpdND`Y&I[uT=(f?%Yo<6QZ?kV_X3o(oU&24#utH+4MK7D*P*'hA^7eVokDMV]f(Bh@Dnx`;ae#6WOQh$$qY8*L30a0HdMi$2&/V32WcDgX*o@)AJl6@d2Eo?7Ip]hcRD+ddb$#Tkp+V@^YM4&pX]o&/+e(QP^X$BdB0E:7hgC(6>i)i7vpDYUX.ok2.sv=IY7Tf_b7tF8rNJqmXWZNwOjjCH<E82VsjO)vEM`[G[:_kPKqb]_#Do,M/%6n1-)%(*,U`qmLlME[`LRZ1tXIF.5=4eNe%7qPZOtH-WUT[U@vnqY&;RX&t>od`2U7[2G/UZtNPLbjh(D%#2a,Z';?mY7di#_7mu2Wg$=:4*>UYe<2elL_A,J)5Xp?U:X]DWji0=DX6VsJn#`IWOqpC*0rM(gZ>c`p)*;xv9(bvi/*@1*n?52Q4:#G4GJ%e,An:Gnh'p4UKtkG]aQ-DNfRT]+0x(Q.T#^%[7jv+Dc1)ND8X<H$Z5k7[?^k.*d'cE]<P6<2qp7O=&P9YpUJg$]t3M[BOux&$3Vf'a*6N`gZ;El<fP7TOu6-jYXfY4K&B<d@7o,=%YRuYua@sp/6;>484Z5)VmK%?_NW8ZfP1YoY#1uYe'=GXj4b,8SiU)jR1sM#AH:Hdg'j[ITH[71prO?S=sE]aCEeMr<7spR&n4i)iDct+K'noarS9#C%W(6U@0CeIhKBV9/F.0::pOt'^d?7D)]Z:]Q^'w[MVLi,I,qAvJdBgHX8u77Rl>avRh'sSQ=Gm9i:rGL#a21&=nVCX&h/T66iVU%XnS1>Ch#iJcML]Y^Pfe^#$)XD@^%HL%?Z_[QkB8#]F&%W+1#L9$*^t`/Ft1bPk2+K>M+gqQO0&66s%Is.+<#oYZF?V,CoK;U`HT@7l3h#^:&opKC$gosgb73jfop4.8ec?eFdE*QiBuqe0bQ+;-I^/E1e8<?E@'1UxNV-*IEPv_R[2Yj7_6##MBn;qdHdUnM8^[IarK8Ldb,-%dXp<.1O#rKcr+cqnvYKiMn6h;jMs9^Hl*OJ^W^1IGt;s:ZVv[9ouk*a^$YIQkvMa7#WSicZ7a4fZ9=v^]J-c,Mx<Sr7BRPE0c6uev,P,uL&BT+X=AGA2@)#n>JU?',&>J/Nvk=*a,i@v$nVvK::.&GN+c%'KFi)FQOpUgAm.D'9e>C./Gh=qBqe<GA3IN0QU'@+9X15_I*2OF*IaO)<;W>ZN/?XgRq4Y-Z/,lv5_Mh;mc<Yl@hD*)<`sVE*3:9gv$;-%&7%+U65q*g1/])@erPfku_XAB4O3&*#j3F6Qq_7<l#w&,*PhMv%vw)=C]fbN-x[N*%UTY(Id$6*PQvIk[YX-pR+Zu1SN9Fk,CeDJWpuB*Qt(Mji+WwHI'89V?n/*VGbvI1gP+%;cv]9#;Qo;g]ZIjrE#wgr+C6.,1N1R2D#5bKkw_6J;_1]$GaO[(t-v:VLN^'guBe1*P'@8:53GM[$R`&IV.l?hZ.7UZQG<FfKc6]PW1^Plohildw2Q8kkU&7>v6w.R(f3Y6V;UCqVtRYjQsiMv9`F1jqHL47=_SvSqr-Fm'm0gT^.&?ovqF7+ZwsFk7+5e4c#R.PYkwlFd^3H*r]A3in9%I$t@ham;meIYpi`)_@sxaAG6F,rDd6u7je5)*vFkj[Cp%uiDD:72f7md1'0jTMxuMo,qr(]LtVMBoN=tjmx9=&`WQhtIi)4]$?vjQoT,$Qj'X-2o>?#&^$Su;)wrbP)nSc73(sA%D]+_R^d(N*+34t0NKO$nJ,D<_E#wW[iQt%[Cg)K()OB3+Ei%n?[+l+<k;2'^NhgmNJH[aTcre,]dNPT>>*5EM)&hjPn6I<WGU_aYB@-#pF&$7F#oR#G/rMum0`M,#l;0*739]5p[v?;&lNmxZ<lORv;5)UcKD6(nZ68j)LaMca'bij.unluVqiGRP:+0.J7;ff><TM_BJ5WKMDBlcao:cXMmmbxqifUx-jLGovqv;hug;OTquQProF0.`D-iJU2gWVC6&K=7J#7>DET^EB?A'4gU;7+X_,vAM(JQ'6L>dlnUGUJ7GB6pSC&i^OF1tacr=g@U%=kF//%8Dpe+ug]h5;^KS-VX4'f98f-o?Wo]>>uo(SL4dR=fj'qgXh^DohJJ8NQG8=IbLROMoOFBq89fv?MDKB1Qbw22xo<OCt`q77m]HR1@MxWri,r+%;M07L5hho/`EfnU;l0]HVtbC<*4m'rwqB2N_Vw3;81,^W)V?gTNn`0s>;;Z/vn8P`PMMC-=fSqh4]IX))wOCpP_]$O]#/cdB9DsPOOA^p_;a>BR@-Q]ZOTm5#exefKGrvNuAi1P)BkV$AWkPW$9eGIul5Y-x(OxqR%i?D5i9NK;Zb:r'>,ecMj,(:Tl7WqZ,eqrio.Qit[rt*'3??=Deu:L`AEJX2U9QiCxg>5Xj/O[hPTM/^p,u70(g`bT6F6rLD2q;qH>j$e:I/I#nAD%iT7B3PDh]p^evEW-H/,t+Ulu6j*`IskjIXb/9fQD5Ti?-uMKHrq%NgJP[.plL+K]a0s[T.cP%AR`;+sG^KJuiQ0N-+cN[fmbX],riibQNgmmkrniHb-Cvl<#e_;$'a-Z7J=*V'$.*$j?]1ZJFJ).321@Oc]jn=egqT^prK=`-M]BI<@fLCxfZ6noduDn(sic.=+MSpx83asZ(UVn&KMKHua1mjkKGJWSUG<1C;wsvtE4I#NY9FKrfoOgC0+Bm01R7(F@g>Pd4e?>t;Eo]/(lHaS(aOmhF0w2(KrQvw@e-8Y-khTX@;De=D5[)Yb'ol(Y6Y:6_XM,@=_VBv?$>C_PBF?k9&g8AJ*'6D.=Ok#<XXsll[/WfJcnfmh#*5WDfv7'=v^Z26-a^UU^lA1:Y@?R6[O;f;AY/bE>#(c2Zrl]JY3u1@pBkFCFI%$s`hG`CW3nAnfa+cu@_0QA+pW%j0&tH``,CKqD?+JJw4KStdCH'v4K?Oc9N)%W(hN4iAM1gh:%%>CVlNn>Y]U@fFp206EEi`Ha]GSFD5[Xg4pbok,H?@=7KhGp`CPWai5i?OFT]RfQ66FWL`BDDG9nRE>m/W1OvA8ow??=*+BvCV*iTqM^fhYEV7F=p0H@ni9,+Bo2WQ3X.H:tQoa&&eK?twK(DtuL@WS(oX^VoQhd=>OYJ*,8B>U_<o`@rDRk/q8g'B*:F+$g$E)O$I:#wxNGma?TLFd:k'AMaB*-w)KdV1f$4MR,WUt-g*q)dQ,i<qCa'[TrC7HhAP`/Z&@F@e%oa62/562C_lkD)CPx9e$(Kl8^2,dQ&7[fCLe`%t_@E]IXEGkcO8HS9/,J+uH0UX#T,V,%^ABrQDh6eXit9>T443$F0^ixNSZd+SlZ`m7/d1Sd_)xc)sO_f_M;jxOu&s[,Tf`NRAFI?3'h(PN[I[`*F#vhNQk?'lZBJ)F=Ps3p.qvbq[3R=90Mii>k5k<T)@/DMBfdnfNLAY60X2>g=j?LSs)emK@-dFiJe?LvneRP?o?,2vgW)=TB/&t[Q?MM&ji#N>QTv+m1iJ_N/6@q2x7kPdKYJ:1aq$%>+==a[ubg[vnJZjSlua`BS+`/OFp7DwA'Zn-BFUlRoq_,qZ8L?:B<oec9e<[f&nFE=dg%&xZ>_o]]Tb#_mcJE.(Fw`4A-swR5d*c&wb+Mi0'j(o>pUb:wI1::xk]OIB.4&aq$d4N-RD^+>bXhVdi%/#2L^DbZ+v>3Yv4l++F?^NAM<EhmTNXWV[fd`)&1Gv/&p7^e>A%fm6.7%<$=3d+h`$d<+&A/2j]ff5,4)_H=Fss0`O4E/N[OXMuGc$S75O')b1aM]Yg,#.pcO&H,w`+mGaVl=BtdjN;oa:O/IdWCEEh7c9gjH2R;lU;<v11TY=Nc9jo:xZj(a^9G4]Fb#^6.@a;$&7T>Nj9k7Rq4Sb`wddrhDQmSsc(13M02.8fUJRk-&Q50Vd>`5QPX)`mT=R$+NSH*P<jWdZQ(i_,q=#C+*l$N-DP;p*aWaQr&sV4^-d$xW7M%+JO)n=O7Gnu=(-WmVj_V:;35<Y/'u@d*L4cY7Sg'-Qk^8NQ4EQfTwr,oD].?_]jBr/An4=WRc'GF%a_]H>O>uRDk$]U.)*ohdub?R5#:<UqO^P4$JJ5mi7)`J`fv-`c;)L_5H?LS-4nD)%R_%*kRYf9F)_tOfM2:__UVOXdV`O(J/GVg8sQ7]%^:d@sWg]9W,9F(7$%@^l,mYYE+6gMPr?GNrt&L6SW2H*C7$P.6X0P7;QA*GjDB'SY1PD:9V4&.dO.Mc*VMM>9nSp+96)U:^uS$g)06W_4&_MJ*F--d[+8kPEP?&o:Ak*/AP0I41:/YiCXGIiehUED#`:/Im%bPc4/3iZ@iEes7WR/[ZV1WG:wX%Z6P9N#ZZfkwJKAK@s$/3JF:r/MVBHXL$.=b,SNjIdEt>0'^N;cM?=NRIK:s6$G'5#[:imL6hO?Z]6eK$chQ]Xop>@-da^pI2E=,2g.wr^PW4fc?IJ#^nRgXni_m<pn.X#cWlO2Fd9R1PB(mT=i;vtg8_gAtdIapOTLQH?=B5b#v1u'9hVUGOu3:QA98<>+)/%n?aub'Zvc<0fGp:%:P)QZUEHvPS>'l401&ZE6&j:$trTx8FVZh%>;w2T#^Kw>kI)UkaE)faac#0wWrZU)%EOh[*iIM#;s@?w>iW_lNuw^3)gb*OuXPw.QdDe?)O+TQ/>5I0@Z7Tu@0`kc$PPFZ%q)oWLoEc[(rl/l*XA_U&DQ_5bvgjhfSm.J0(^oqZqx'-<-RNY-]x.x@M+-q,)'XbU+Pq8=nu4;7_,u,[>:jhH9bvjP&HAHIjFX[R4S8(KmD^tmr-rB'NZL@N9+&N_v8RC%AqY/h<HCV^>YWB#?/Q.g6TORB6')P-;$LuNOjBc#Xo.uqO46cf(G;+7r5xoNQejx9%hk:P31d;?c1?,A9J4*2VhL5Jqoml>)*5Ss=FPpLEYSEM7D('BF:,8T9fOpXe[?qAA)lb,j@A`B5`:(NDZr_G&r=X4r`lQj(M=KY5Ya>Uxs67R2,WY*FoJ#U;Cd&B@,ec'7wiYXe)p90GQr.=_nw;f@h=SFaxL83#IWR?oS3KheWDlYU*2W$;cJd@M_0gR_*.K?h<+7?u,%%Txf:&TkTPZL4XOe-.7VcSC-'g(XmYh4Ur$J1(:OAT%eRL]#>vua]&U2UYL+EQ1+Hx8jpOsI]ffX'$pjq:PS<27Id]U5BW@KNFt/.K)fCO.igP=1sCfGoE'+e7:^M6'#<Nm-Z%Rb%G,1*:IQF;_um+L_Cp;&YK_fS/HZ;DEwUo$+7x-d5lY9EJ)FX9.BLP.Em9xPm^_6IYJ9x7]7<<EYtNW7qW>uWNXTfa?VT%=7)/jdM`(Z*QU+/I-$;?$_*IG^*5a<oMY(P^&tghbD=N?&h0vX,5oRo:qDhJX5b4Z]+huBE8]/[%oJGev6VSiL<BC_)rE-3niV?,<gav4>aui,R<^L(BeO&UP/KDbJ5T_`Pci6lTPeI5:AIlr+sR)CgN2w%hdFX.ra4lRcSocZNU#u-V68N?79gU0h;ds'FV_]C)juu^,$2Es5M<g#=$ut$MQo]b)N)+M.&=>o:j]%aACcWYuTIaY+f]3ogbpJquL4;6U8j'mG`<ke1Y6CQk[_4)($Ob^bGVATx_VrN4Wd:mYD^wKE7HN_tsl78j5G3mkib3Me:jg%fVltRx0+-lqf6-T9qFE_6iHd&kO8Dqpkn_d@6t&WW.<@A[*[%27gc9dF]'c_?G>/.N8Nmw3-%jQX_nlo+[4xT=$Wc@`^iZjxa`BDb.M_=b:eqL*ZS_NNMtcA</1[)]ua:Qj]+/*DL`XG&&uKfR@:4e'd^3IoKoU-Q3A-`+rUFl4et$XW_6dxWfQY5>MxMY)_judVY9qradYE>_N;G]fN]Cb*U:MRrn.J@%$Nv>`6TYq_ffF_bct]N8&-_<9[err&m>tm7U)@gXPfhWE^Duv66=)wpNs`lHIZqNELAw^7=_gs;KRK*gm$bTMcaScaoa-ef0+6%oRC75/G1:>L1wmIm/;B*#ON.-EKuF`)pb&W?X`$M[+2s>4WUQ:JdL56d[Z5W6$T1JhhN=:%(`reqa`a3[b(>F1bw(-b<k#[<m]/09hv.Y^(J>AShX5:#rHta+uge4(qfT9;+*Qd?5wj(*3Kq)'EJkH5(TfwrrrOE#edfo=Mk*qXR40/N@a;F8_4`el`8/f7B$B[3h66m$Ds&a9cs*sbkKwf3k[0]83W+`CW/LH)2ds)vHmw1K74F2QOlBDWGA&7u$?jHig4)@*WiPV^YX(olUKE;aFph10mmHN/(J-3VbwV%Wb:3h5`]F_ia`OtE0?nha$Qw0ROr3m*Mn2MO]$mF9`&#pLgmVQrus>qCU7b@&f@Wum&cRg_:jC'q_gkGCGI8@@?b,5O+%#o+_ZJ9jb78PtmS.9d7/[(1KA[+&9Lf1/*aX(j<(tDD)sOb-h:M@4k3pvKTPCc1oYl>*S>XLJ4Fo1-Br2NH33IXNH[V8tt&[LEL6qV.sqiXvmaJlL_97muA.u-Q^Qv)F-kSsDXhw4hZ#tG$+_Pl70K5orK^?=W2@J<-p;@43&DRTJ7N/>2/kj%#bKGN;'<)_g/p[gKEsTJ4'k:I+^,0J)&7-w1/applAp+C1qp0VFeusdg::i[cA'@lfi7dE[>'j%emBkFoKw1Gk6^jtAP8jv2f$t8U8<OQhf%4ICgj4eZHC[ArDAIN<.2rtV*)lv*hnaEZDKYs;Dbq$)A]1k*(edH>FPAFb4Z^_)IwRDDh)awZsCxWc%7XZQ$&YDuItn5&*L>A;j%GN0h>JIA2SwuJVnZBDoLT[Q00F'/KD?06+ewvLAVvOP]]";
/*
krpano 1.20.11 Post-Processing Plugin: Blur (build 2022-01-13)
https://krpano.com/plugins/postprocessing/#blur
*/
"[[KENCPUPR%*eu&]>Sbb(*7sM;*]vnVJ0Be#EB`iFQ@`G:l*Suru%-t3IT=J-0+)[E;0w<uABlWY=nZngki1E-l33az=O9pQ`TOQw)E9Eh@j%zcFRgCF<el=r:&u&6lQtzr,bl*p<Z`3eQiC<O2SdId*2K8UBoVdj3PKkCJo%ChsM%F`?$(>wtK.w=?cVVK]*l/H5+DX&<5(Fs6v7.D=)JMb*]QAb0VmeCrB:*d*-X8W4Tewp+9DelAgfAt<)F6XzMnJU]&-F9FU8eS^oU7R%fMaEJo2>KKkj%l#U([9:%njo;8HWT#mo;jWFZ+u>d>w_'mspn]qaquD:Mm[EX7;oCTh?PBr.npD94wz^zEUA==-hbYB,_g+`&0/XzdQYCsiwn-L8D.>k:vQ9Etn7`Q]8C:vVp6tlJY^kScSv/F,dQ,N:#<14URl?DIa)gr]'SY`,l:@%*%GcWnBB+2B6O,mZ)+9p6gQa/++LC%g7>,7ZiV*MK_^k4WD%<9t/`=TheFVL/m?C;MSR>8mh+0@o[hKZ#TtH@M5L5Sz_@%p0X4kik%z7se'q]KU1m@szr=AU/nRAeZeeIfJ:S:M;^T.%,/=W*<Gq`Hlw>.Asec80<n/A@anq.LL'+zAtK<ms&P9/H;tcYqod?(Q+$?Fkm?fHA8VD;K(.g.n)$L;&)'.<v4')Xr'AB<(W,1#m3-;[[puC?TbEFFh-4i8SY02G$uJP@5+7kOP:JM8$sZzQdKYs>ihasC3U?[0f;Jw6Vv(lKc.At+>9gL@5KJB;Wi;,TTV&=^%I)(4oMp<95r45;Enf38]hZT]Iwa7]+T`RD7sN[z(>YY#`0LRC^-9Y;rI[d#M,?R(Lv;DBSBbS4Nc=8S+C8>DjE&_6`]WXrfQ2YI*TAU?ncQBkKek]Ghrcl0qG@&W*C/1J.=>0LB-g),Mqa#Y(HPOE*NWjJ`GmS)b#AfbT2A992q^)JdHdL]+49dXtwrjDMS=)9S*92:$*M:8zhZKz92.G^_B&6GHwYB_<>7A2k`NP.G?=a,v];hA_kX7.A&vN-Z+0C%tO,En^etz<(51a7B5w=V(LP=KvYUT+Y4sYG-f0C2[9LJ5([5wm-Dse,t,`lk2oJ>7hkS1mqcQi'A(gg0RlqB6:&a/9M[8V(rPGk2PVvBD5%82^zE#75`>;b,O8w>KKUil)Deb&b*mR9[Pu>#3+_SPMXMjP;71CHF]5'R(orz+>+f[`:%Hr3%dOMV%WmlIog(WI%83U]@NcZ:_lUN`0.Vi+%:BbhJ-*^=44'L76guR2r2_dE8o/;Bm`V&f?7:;crPT&NH/YM,.Jp%/Ct'zb8*)Be%<@2:/oR`wXVV+-:JZ)aIMlmp'gUSTDJv+5B*#n^arqr;pvGwLDfz,&zeG#0A+Xe]GVqI'@olI,+wc_80i5Zp8'u`#)03?.HkB[h9z[U1il/6DL*nR3HT8H8C`h.SC<sD]Fwr_p3:c@Y_XtPl@lazr00%O*8MIZ+Q^aT.CJ3,.H/G=>$UckvGX7]o27DW`2NbrUSMBw(R$4q(Dt[s`<P$gkKR=Op90vZ<MDlEU9BX[B,$o-z8#h$?'vuBg<_XPVK8oA'3R^G29&IYl?)3hK4B2%HY<8^M>p?^qI$:$n7wQ'71=-Sc()D)NZ^f3UJ5B]RDz$;5WCU,o@_-)VlCUER#0r?.rlu](5u_qC<Ra.i5>&JM?BSbS#F;>:CL%+_Pf5D&)PuV%C;)@3$k%*+Fc+_4IM&BuLkhJasFF[JC<$L;sIOdkGcYi:;u*p&&;+S^&fSrmJYzWLD8+^J9p+CHm)c^:'Xvq_0)$[aZE9VO53I@>6MNKnG;gRS4k.cQYQ8t?]rr6c7Vit+rV-N;9tTr4W*7rW2l7[@;XNp,?Q^IZ9%:$uK'4]E1NY^b]KJQ2ma:G62JLa%&8'?^H)z^q3B_Q/Z%cn7[$12v7doA9tsA<r9OpF:;bU5$9MaaW@cv[V>S<Gk_NgVK=lr@m_ds.S9]fja-#St:N5rkF?QLDH;ce%K%e8h@6I6v+;FT'5TavP:F=5q(KqM34$mwt^R'DnW7S^0F015PqeZ@F*&?izVAZSd<1_c^:azJ^LSSb'<K=>DaJbo%,<z>4I@?1).SpF)MR.ph7?[cwRkAI&E^WB]/<=(P.KW].[$a4#&//n#@Bbj`?4z6l`Uo+R^<.,)L6;8`:Qr-aDD<8vE#NZR2CSQ>6<rn(6<&p'bOiEI'EJ01#Q5:sO18nq:S8Z(SAjd%c2.&-a>=,Tb-P=,DA93,B24u*ZcOfbWpz3)vC9zz3:NuRPGF[ug&#Q[$L`lEsU/BXd7s3*JUvOn?5MH1k0Q[K>7HY.$=XQ(j9>KP7;B1%d'9'-*pT@lo&k?UF@&,?r[<A$E?*PEn5b^X7?t_eFJB,5W3$2uhlID$:8OLqrrv.I-8:;RzQ5dfr?,dH7,j[aO<_$u+?iLz>$^$wYI>t/LYs^`UW/=tg9QmK7;i;lY<El.%I36ScziJg:^]g&90O)<sqv$6bAid(RB)Ik3=Kl-Z-Bt)2E8;,6)J>sp47N<%>tU[;,fm*'<F.*Yp>/MICu(YS>8ri4G/H9>3/UJw6IGo;TScZU?&:FuV#]J9'aZ;Prh9A>5rjPg5S[bp@nYbaoh_jH>mSp..(um)q)bHEmw^G`6<^2K,29,3/$rWhWQ21qVL'up^*MX8Ga3Amk(fYE*e?o<0bYN:&oDI1@WfvFBiU;VBec`S44k1uqz9bT*^1g4Xb33tV_QGt6OWXt)C(rBDJ#U`3a5Ib.bJ,ZntDT.81ZT_YeKI8j]ffzk[w;L0Je0_EsTfu@?_M+JaZ6'S<VDo:=V%u[jdvFM+<r^>$):K0Q'90=4--EI>G#7kmWiKup(3f-7w)wU-ogS4[F)C-B[W)(kR,W38#cB9^6Zu-b6/k'N_c/sh6H@#c;HV?eRt2Nfh5%?:(Fk'dFM52pWY0>lHAf@#(7s_(uPE+9JF(r#GJ5CBT7[]Nle7@_RDuDvBGZ=w.5q?aLzG+O<%J3Zm8J[5zo&N2<AW(DhY+C^hg_Ct=n9m'GZ>LZcCrYSF)*:f6UjmT8T78E@7,@dX(JK+4%44RAL8>`vJ<Dv6=P3hWbB_Ac3;=LIcn=)*/v]]";
/*
krpano 1.20.11 Post-Processing Plugin: Light (build 2022-01-13)
https://krpano.com/plugins/postprocessing/#light
*/
"[[KENCPUPR%*rc2Q_k5w(:;$gqFTLGbwkl@UT:u/1jSCw(4c=eF9#s>q6E1g%9<8mjP+j%arbs/ItZhjFow*;7)ZAekFFhzrOsc>e1L9Y'@W&zzC%%(MkQ?g@Cu]C=;:bhi=ZWuZs@R2(L9T#T+b:A0lv3d-<BZs0;bE7t`FV21.m,G8Dt=,;6tX-F<'d9a1M8/429Xj&;cYv*7aqSj7nQKahi#]o#C:v6rG5Xq)l?h$NA=p[@:5BLqJ**3p,<JM2@2^Dq9<kD/-gMXk&p(O3VhNW'1O+zG+ISE.#t>Q;cz60l^;dO6QfPL%5d>C&uviEk'B/'=3.3W=&U%nmHq+(evjK$.R[C;[Ph#>GddM:HOrtkBvtAY*9zw]JHXW#H#;[G(I_I$e?kvCLC5-b^6ot;<)QgP`g'^M<^bP4:J*^F%f;T5CdJY0]AWh>F;O3cY$GEsJ:*+IWYW.3Hls@/:Rf<gGw^pC#NIu6+nN@unotDh+A0Yi'sokFCp4e%s05ho.LaG(+l:AW_5YpS*<J;Z,UM_Qt0^GIE)B?S%v:'CF)kSg$<rI9B1#l/E4.``F&,wQ==OZ45qCm<ZZY:2CPvs^^I]+:9CL=Q:(QBw&'TnJVERZNI:D=VJ^f`.sOH&5BHr)nY=cJX.0RX=(-?F^5*D8'4Uz//0PVJ^pq#abISlN'@=3_W=N+?+rgrkT._l3((ZK[r[wP*c*,cC,$fJ+UWq&GJ)@X<2Cs)V;K'A.q9?mKtKjSr?E*=65$eR:d#&BZICRTA(m@qaV;#$JN[9WKl%jvX6<dpYP=Rd(b`,5Qco=#om6(pfkzQ8#S00)FMYO#K146/b,>B8h*B4jFC'FdM:E-9'kbo,LS+zmUo)g#>]:%1_S]=ijtIp:hc:EX^l]aTB+7[H2o0w;QdX-n0-1[h`.A*6uKEKU681d2Jm>Jf.'A(':&@5pi0;(loz1-Y^fT4W+F95wM]NN@GK'l2S>AF[-])87e(RG-_#kDGz;DOKUAzl@#$E1aU,_[ZMCF+9LL6+GQbFF8W3,.e%/B6CA_a/z$o6///^>n5Ak-&j5inLGzoB:cB<<c-U^ncGhg,'bteE7=6IZ7_bk8BTCJ(QR3uCf4>0'Q+gSFJ2'1D_35f9sj)=0GhTN6`jMwoSC,@*D>,w]LYf:*h0h4z/7FT(Hm8DmMvQ)tv=B7I<[gQT>wt%:mabfjQ''pKf(=[IA43R8AgjJ=A(X16k78qL91Ih:tFXaC81Q++tATIN9'E#3X&Y/CssWHm'^NIIC#g_A(RL=m]tTf8uX*&#IVBh?@;g:+%BZu[YfC:/fUC=<(c<.#qT*0F8ctmO8'#U9j5VpVKe_>K_^hI<8tUo7&6$Nl-9?kqSRkq@A`/u`^6)H;>k;Czum8P8hbXV;Zz<b:Hl-a(2iLh0&aApN032g7mVF/A@/zrklmgfpX0Ps>Ho7Bp+euuQQXS@)+)[sEVz37s]o=p-aA@_3wOL-6kgQ$k/6UIl;m+n/,-71*ca>1'LgVbK;N/l_CDr7;+pjP`r6_4;V5o.>*A41&kRl/X6@SO_@[d%CYFC@[lfUDB^okZpd':sEvti)JRF0YDh>Uh0TOoLB4-/4k*CXA6%//18q[&7*1zS%X0J`pI84hw;'u$5SaM.RdR[hqENS1=,W8*t3*]ZN1%@PHEuNX&,VmWT:C$_TIC>;#%`3mF;Bvz29]d/(^;,ZY;CAJh^Q]+=<OFPh;?B@*%$btYXSOTcYU1vrE?Pm&Z:uA*0G-)%UXl>$.*v;K:'JOHAV.iD;Gh-[`I+TgNOvCC=&@V-=XhiW#gU)zoYtnb3D,vqTb0^ZqTJAK=Kb7I?U5+tsc0--zi&)m->:<SCl=FL:Nb]h1w+nwHREXE::,&67djpK0XKKskiRnG,Og^NgvGB+(]4iu>w(4(Ga1,ImE$4rkcr$H?VnMPsbC(Y0SqKrQa,sSGmkIXD=`Z<.ZP1]7=R_:C2%.+4<S$T@KVQ@'4Cmc_6gY?zAVoz6?oe$-Z&19zhwd3$Ur7<7L$uZs6H.OCu4=q2LRAv,F$h;?_B&3R6Q(U2O$cv7Z-3k@I_Aq.?kmC^u0w&?l7-UN%KzW<QjK]<X48_'1cn=Xm/mMpHf.fDH0B%Y;DF`0Q>_SfKmiW#e?[:6GE3-#L1W=9?-T+IEAcn[-QmKEKP;2=l<Kt<o28Uz%VoQF9:W?2L.#jY=b3lKu9GS0i@;jiADP;K^aw1,14ZZD^0XT3'jAb=]eGz@7KZF1i(z77_s@N@(AlNct#8I?.d%[ct^I5D$93T)NTAJ=bTVebb&5bhSchC-[4dJk4l)8?UVqUm=wtr#o+^k6<W.@Fo5kn@=C&q.0URtnN&`^6bkPRGP@):]Y_L9nt-w*5iT335`JtcbG<<q5(Xmj?>5+P`946pL':*QK3GO>Aqvb0t)CpTKAcVq]'1lh9rmEj)B?OJKF-JUZ&fdU?J?=s[aXI)>nrF&(lqZq%oit8YiOP,k4%vd3^CuSS#Yt/DP^rI_Zs8HJZFXs8w'Oi81c[7:=L6]JP`bThhd@6-kwe.8YEUfHY[T*sUZhXE(tzas_-oplh3d-@T6G=%w(a7zI2mE74EwZD9?.nD3;Uq7=OgT5bEwr^;#i?$T-/QO8CImBgt_.lv].=CVdsN[hh6#.$f=5&tl1Y?(j]0`XbVdkXUB;EWwR9O-32m+;::a[Tg)sDN^Wl'4j+m:?ra6,V.vW.K$n_QU-RMS1-a+%_#)X=`q@uz<h984Vj<hElOTAZs]n_7FR1+(ahr:T'#$j4[2Pc<&Z,^2gVpw(#s*r-M`rNF4ieF7pGH(83VQ7:vC`4Oh(Yw9_)qNNqIW?,^DeKJ^3DL?i-D,^@EIkM&Kz>5jJhtsX/f].dS6dqzX4F5.F$U:g5[+-&k`AHehA>JADI4M8nC-?,Yj1B[o;_E-8BdN?_uMA,9PuDZOsCkB89p$u:2ECVgn%U@`qSKf-b:FqWA'?=8eo6u=RMK&lU_$C_[($J,:]2nU9z;ZH^PTCb-ZGV.+$Ti)*qDZ.j%F.f8*Zk$C3m4/Qem#&&PjvHlrnVG6v4qBV]QPQ^?6BN&M##Q2^5n>p9-n='Z:pt>5Y9IrRIA@.%B;I;39+@Ac_Js1e>H+MN8(TM*ze/fR+4-$<:JFSNtYI@>Ze2L=0iXOuI8Z*91uNF8cik)n9G[3?*cjY^AevYV/C0,QX',;)$&/'>b58n]oSmT)o]-vAEz5i1t9AW?qGtcg0aKl/XMu.lJTF+QWFbH%=CP1I@M[H.8_pj+47CWmIEH.3`qo='CFr?/@$3_^728gWM(2F^Esmti>wRm%otaH1pm0D?3?sh(Xo(-1:I-%5<GK%aBp(e]:7V^M5<(wbawY*2rA)#Z:e]mg4u_pT[1&hX<A06SNo`^1,ZcqB#0=X>&5RlEWI%rvz(Vo*?cMQSqg^HRCNJb7p>AUYFs?%.KI9'KFoMV8@3aVg2)K?eq^U;QJzs228oJ&^)C?=TO3u*MzG4OFEbW4docE[.ALna`:qw4bt[@%A'rj^G6>z^dJM=^p1SMDk<<HN^>Q(g2?i#2<2^Y;H1:+dfrlntE*^6)RY&JX4=b+GW*4uwI:.'9Bs.k6rmUr1p@H%3znM_7`7'qQqr3)NR1gE:RGL<On9*BKo&>pssHlc/nsdQjB1B`F+D+Bi#KP5A*[GWU6r6;CP&ORNqU%gd=7,12i=_beI,gP0VTSG(RIemrA35197@CPe(00%lZT&@Qh%+=2984TZR6hpNgu3'4OeEuzwQE(6fJ/3sG8<()'=F(/ntjCWNPDDA$?c2i@VMSSa5>Zq5sT,iv:db0*Jt4-%74K1(&Nv;eD(W;SOF1u5?o,iH'ZXW2']lJ[ocw-'#GkS<:4oblQn+t2+l/$_#P1gvm`fz32,e&IJa1psG[19w7B8O<&&2Ao<O81L*nn75P_n.S:o0H1XYv:hIPHEtN-1#/IB6^+F<ak$6.e[IS%IX6R$tYF?jMNHTAKn&@:j,+RmBT#8VQ3l>DgT4K?R[>AC`Rw]]";
/*
krpano 1.20.11 Post-Processing Plugin: Sharpen (build 2022-01-13)
https://krpano.com/plugins/postprocessing/#sharpen
*/
"[[KENCPUPR%*79#0K-45.%m,$#a&'eNn6qDMpARAqTk_$slnEIW3Vco>r?&BLheJlJ<6sR5HtC3,cN9RKTRnL]oaVrA)e^CuQ8e='1:rIm>/oK6WAvX9@KC`3'dbQJ8e4a<(%ZG*>L:,c7Y#D7k_5vW=G>Nur9S:qYdVHmAr7=A^<V1g4p,2:+T+(3<Ae2hn%o;)RJm=83$98h$hZAFkl]vPnjaT=.VK0j(3i2Q-agIYkrF6-=GW&v8>-i4I6*ZN==IaXAcA;[?OQF7KZTTt+=I?0Bu?4qHw12C4ZsRlX/M5P+7_`_:LeVw%Q^i[=e[:LGvttIC.nhzVmN0i>EU)5Wv6'g^*uh4,[W@zz;H[;A9eup?An^4@cGX^]1O4/tf_/GA9_5a(jbV[;sm6OONtn^0$n_Gm:5E*2sL]SmSzP@-a2wY>qt=o+sJ.E;Z^JoE*AHg0j.#DFuKfCKolvc@RICo[]qb4*bUt4r6bSj&(+qu&CV9d(-EZN'z5I1C$COIE/n-eW8jEh+:EEs_D>USVndKXU1dlVm3`Wb0K*U?KPkY[<2'1OP)*i6_oTM6>Evm--cz`=m<czO[tCtd,9VV[^Q><oD5N`rY(YjkBT9ptH5gL-C6gn[@-erd8GLw(:H@OmIf1&^';if_s%bb81lC]m(<r(DJhJ_i%vh=w?;q,+98jBp*gr60#Sv@)J%b[Iul<(69;ru-Z%T2Pt6b])#*AAToE$7p0s%Nt#[m%1b57^HXZ$JI5hA$-)15'?URjflY*b%arHXld5/94Kp@sq.C?l^NYU,YPDEroE?GdTSH@mE.&`Y$U%=6`,(lFjc/-3lwA>)H@A8wVD-),N3?e%M:m_viN@h`)v'N0n'AEVE7(_K?E*nN2J3SZ4$PE1GbE%EIz_E*HgNbCoQIJ%I5NT&kWH?=D,?*b&f7,]V&XK`]hPSK>.).wY0BZu8:J(Y?tG=qG;4D8@eMRM1A;[NJgTh?sj'8rR]>Sw]lHG:v0Vr#.8<95a%BBI:19Q?;WGbhT]#p1%WBXc)j:W;vssq3<1GBoI2'AMu1,IqNO6j]T(:wj)0^m0MHWZ3U$TMdi5KN1bFmm+n)5*VAY]q0v^?s7*dAJoPY0qGmhWoN4]pV%N8?[,OtCm-TjNbU3)^lv;kH+guaR/:H$F-NqQSG>_m8=,$q@>ZnKHLG<ZJ.-]q'X*=vctv_cEbb*,2<SC7Jo,'g8WHOC+gMPbZ+)4w2PP-CJR;uw2/za(CXf$g6:-Y)=n'^jQqF5e?iDZT^l'cLmv'gC;r#5>k].cg=*/J08*.Rw&L66IY5;$Y_^>T[>l`SN)fb2(+c'Ktoj:t51B?^%SXnZH4Z+QwS5N-2>z),j(z0^H?M*vl]-3Q6&^EoG;3@ncF8Hf%jr'=P#sUD:-6Zi-8P)(eYq3S'8sV;Y,BIeS6rtp6%]G,dIA`TT1-VqhnQ@#_%i3YHZ*Un&s+SMM@c@zZYDZ.V6SA;Q&Aw#6,+M*[XZ6JFmIb&[:F9)8#Xb'wY#(+Dl)8v:(GrF4lTbw428HvjrwsorJ16nmKL=gE8:1zk#MnGF7POW6G8`Ap%T#&A?[^U:A2*]4Gp#kc>JBNN]Y((:%4HY+>uK-.@UimG8wtJpBqVqczKdnF1v2r]Dbec`XdA#ZQ5$tR29u*gn2XZtIXpw>9:nr*FUAG[Pjw^K_;</C2H9PH@_:_(`Ji17eJ_[eHP,9cYYkCBA80F/P_sWYQvHzH<X%]=Cbb4D<fcc493IohB`;989()YY1,rCzAo=uDFt#od/G5bARQt2)'+rXCK)0#?$mPIn>jrma8%2qp(`eMXPZWb#2)T-LfTtF5atnE?l%dtqt<_-J17Jn9CU*QrJumr5q=dbYn?5TR:#sY6;P/iBmkCSXkdn_L.(egVrOj-:=YNOO@*Yl1.SPX'*K`WR$f+m)1E00:,oP(>:QEVAIY2[^<tBwS1+.WXEsqd+?Oo4(]<5[%1,2g8K:V`A;R^pwAzEC%7X`:b)_Yh)Q0l,wJ5O&.RSY,4^k237(ZSQns4cEI/tMTY'q/O#Ij[sWW[a1Fq>b8rIiF4]:4UO5kthbYJ>c=BHgS2>^4W4q/viCUtko3]G'3K/(e7Hn0R5.6#iMD^+7BL%E=@N@F3Pd:&=NLhD@28&.`Bfc>YpN&sI':c)d?9W;LroZ3GI&%C[t*P=cZa,$mtY<Qq[7#7.a_Tztn3[M><e,0A'T]PVcb8F6kwW,FsGhp[ii,nAc4#LFdpR--Q1VBju:?mY;vzP5;+^>(4TbR%Y:rFzAsPO=k4)7W%s(=uOUhAW?wc=fUhgahSB8?gX`43h1G3d:Xi=%C)qh`P-pV5CJ<'_zt@$N#5+AKSkP6#5%UH7K?mSK',V.E-bl9X*ECF8SZ%-d1GqmqV=f)0zEldOqq^]HDm(uK#/uw&mopMnv&qmQf9t.2poYLDoK4uKg8s#PgdIFGLwL@VYs439?`H&pnLHcE.Ua3,n*WWD=GK,Arrk4DvJjb@ThY?AZ-=,0D8]8,-)DdGzNq85n/siO2nS)2mP-<J>)JK8NYCz#=q2?a/q^1//p&Mp8DsVE495Nn_AjQtS7^o?9CYuXreEk@.`BA9L#YhG-*FtOn+*eQ.GrbBD$`h=dk]&^H%S)A1wYNC[2I*]1b=i8GtV$z$EH)*2L.>+GqmzDk`Q,BA<SN;g8dI$VOgZBFvY<%hRj9%0]#vCNQv/9;2t.ODiWO9drYW&3uvK@f0d12IZL&Cz^Zj/Fgce[La<?'&NXAZ@#3Xni,v+PlVwTW5ujpDJ]kbEDn3zFSPBvOCJ+n8966r5UQk(;FNhLZAEW%XULE`BaN)=zrR&?GgcScM50Z*<l^lA;O5uRjw=&UA_fmEY]3(()q?28497&u@6]z7AnP&.@mJf?A-i.?]n&bp)tp8o<BL5@,TH8V=E)qY/QbS(7r.)iof.:U%97_JWtwzlJaj6V'LcNjl54[(3Pr_2,Zv>W#St?7t2&@)sB<fMl,.2T8w']&Lto>]W7pe:-0SUBrQw-9/%MDwkM)<PDkHn40<wH0AK[oB$Ou3-EpV4H)tp1)3Jp*T:%-^T'u2#7:k6t>6hJoZW:RuZ12ThmEIa/q5NqVeCT3-LHEl$8.fw^wP`20:IRN$9Qg0RKO5Z'*@n1@QG-fFd4?EBOD?.7UFV/Ff[-pX^l4Q,[?Shm-D7CiPL`-U.r1QP;HO-nh%m&Ak;2LF,R$)d-12un:'[haH1+@<q0M;lL&PK]j;[^ev<i8&-$=IVL<7O3M:>&[MBfm+)rCE9k5AgAPjb?):=9oXD+o&=H>;i^GCr_5):pP<qDZCnjt&H5I20?.q1<[izPao*P#iq-`FTthJDp<c%m`+A(ko4+^.jrJ>Cn^8,LIT>IXDOG)G3tP[ucu,A]]";
/*
krpano 1.20.11 ScrollArea Plugin (build 2022-01-13)
https://krpano.com/plugins/scrollarea/
*/
var krpanoplugin = function () {
function J(a) {
return 'boolean' == typeof a ? a : 0 <= 'yesontrue1'.indexOf(String(a).toLowerCase());
}
function ba(a) {
if (a && n && ca) {
var f = n.timertick,
d = 0;
0 == R && (R = f);
var b = (f - R) | 0;
R = f;
'wheel' == a.type
? (d = a.deltaY)
: 'mousewheel' == a.type
? (d = -a.wheelDelta)
: 'DOMMouseScroll' == a.type && (d = a.detail);
1 == g && a.webkitDirectionInvertedFromDevice && (d = -d);
d = -d;
500 < b
? (S = 1 == a.deltaMode || 0 == d % 20 ? 0 : 1)
: 66 > b && 0 == S && 0 != d % 40 && 6 < Math.abs(d) && (S = 1);
a.preventDefault();
a.stopPropagation();
0 != d &&
(0 == S ? (d = 0 > d ? -5 : 5) : ((d /= 20), -10 > d ? (d = -10) : 10 < d && (d = 10)),
1 == g ? T(d * A, 0) : 2 == g ? T(0, d * y) : 3 == g && T(0, d * y));
}
}
function p(a, f, b, k, e) {
var c = null;
e = (!0 === e ? 'remove' : 'add') + 'EventListener';
var h = U.browser.events;
if (
h.touch &&
('down' == f
? (c = h.touchstart)
: 'move' == f
? (c = h.touchmove)
: 'up' == f && (c = h.touchend),
U.ie &&
0 == h.mouse &&
('over' == f
? (c = h.pointerover ? h.pointerover : 'MSPointerOver')
: 'out' == f && (c = h.pointerout ? h.pointerout : 'MSPointerOut')),
c)
)
a[e](c, b, k);
if (
h.mouse &&
('down' == f
? (c = 'mousedown')
: 'move' == f
? (c = 'mousemove')
: 'up' == f
? (c = 'mouseup')
: 'over' == f
? (c = 'mouseover')
: 'out' == f && (c = 'mouseout'),
c)
)
a[e](c, b, k);
}
function da() {
if (b) {
var a = b.sprite.parentNode;
a &&
(a = a.kobject) &&
((a.maskchildren = b.parentmaskchildren),
a.poschanged && a.updatepluginpos(),
b.poschanged && b.updatepluginpos(),
(ea = a),
(t = a.pixelwidth),
(u = a.pixelheight),
isNaN(t) && (t = 0),
isNaN(u) && (u = 0),
(D = 0 < t || 0 < u));
}
}
function F() {
e = Number(b.x);
c = Number(b.y);
isNaN(fa) && (e = 0);
isNaN(ga) && (c = 0);
}
function G(a) {
if (
b &&
((a = void 0 === a ? !1 : a),
1 == (g & 1) ? b.x != e && ((b.x = e), (a = !0)) : (e = 0),
2 == (g & 2) ? b.y != c && ((b.y = c), (a = !0)) : (c = 0),
!D || (V[0] == v && V[1] == w) || ((V[0] = v), (V[1] = w), (a = !0)),
a && b && D)
) {
a = t - v;
var f = u - w,
d = e,
k = c;
isNaN(d) && (d = 0);
isNaN(k) && (k = 0);
d += a * q;
k += f * r;
b.woverflow = -a;
b.hoverflow = -f;
b.loverflow = Math.round((-d + H * a) * A);
b.roverflow = Math.round((+d - (1 - H) * a) * A);
b.toverflow = Math.round((-k + I * f) * y);
b.boverflow = Math.round((+k - (1 - I) * f) * y);
b.onscroll && b.triggerevent('onscroll');
}
}
function la(a) {
for (; 0 < z.length && !(100 >= a - z[0].time); ) z.shift();
}
function K() {
if (b) {
da();
var a = ('' + b.align).toLowerCase();
if ('' == a || 'null' == a) a = 'lefttop';
y = A = 1;
r = q = 0.5;
I = H = 0;
0 <= a.indexOf('left') && ((q = H = 0), (A = 1));
0 <= a.indexOf('top') && ((r = I = 0), (y = 1));
0 <= a.indexOf('right') && ((H = 1), (q = 0), (A = -1));
0 <= a.indexOf('bottom') && ((I = 1), (r = 0), (y = -1));
}
}
function W(a) {
K();
z = [];
if (0 == L) x = !1;
else {
p(window, 'up', ha, !0);
p(window, 'move', ia, !0);
var f = n.stagescale,
b = a.changedTouches && 0 < a.changedTouches.length ? a.changedTouches[0] : a;
a = b.pageX / f;
f = b.pageY / f;
x = !1;
X = a;
Y = f;
return !1;
}
}
function ma(a) {
(void 0 === a.pointerType || 4 == a.pointerType || 'mouse' == a.pointerType) &&
ja &&
(K(), 0 != D && ((a = u - w), 0 > t - v || 0 > a)) &&
((M = !0), p(b.sprite, 'move', na, !0), p(b.sprite, 'out', oa, !0));
}
function na(a) {
M &&
0 == x &&
ea &&
((a = ea.getmouse()), Z((a.x / t) * b.pixelwidth, (a.y / u) * b.pixelheight, !0));
}
function oa(a) {
p(b.sprite, 'move', na, !0, !0);
p(b.sprite, 'out', oa, !0, !0);
M = !1;
}
function ia(a) {
if (0 == L) return (x = !1);
var f = n.stagescale,
b = a.changedTouches && 0 < a.changedTouches.length ? a.changedTouches[0] : a;
a = b.pageX / f;
f = b.pageY / f;
0 == x &&
((g & 1 && 5 < Math.abs(a - X)) || (g & 2 && 5 < Math.abs(f - Y))) &&
(B && ((l = m = 0), (B = !1)),
null != h && (clearInterval(h), (h = null)),
(x = !0),
(M = !1),
(X = a),
(Y = f),
F(),
(fa = e),
(ga = c));
x &&
((b = n.timertick),
la(b),
z.push({ time: b, x: a, y: f }),
(e = fa + (a - X) * A),
(c = ga + (f - Y) * y),
(a = -(v - t)),
(f = -(w - u)),
(e += a * q),
(c += f * r),
(b = 1 / (1 + E * E)),
(e = 0 < a ? e - (e - a * q) * b : e - (0 < e ? e : e < a ? e - a : 0) * b),
(c = 0 < f ? c - (c - f * r) * b : c - (0 < c ? c : c < f ? c - f : 0) * b),
(e -= a * q),
(c -= f * r),
G());
return !1;
}
function ha(a) {
p(window, 'up', ha, !0, !0);
p(window, 'move', ia, !0, !0);
if (0 == L) (l = m = 0), (x = !1);
else if (x) {
la(n.timertick);
if (1 < z.length) {
a = z[0];
var f = z[z.length - 1],
b = f.y - a.y,
c = (f.time - a.time) * aa;
m = ((f.x - a.x) / c) * A * E;
l = (b / c) * y * E;
} else l = m = 0;
h = setInterval(N, 1e3 / 60);
x = !1;
}
}
function ra() {
setTimeout(function () {
da();
G(!0);
null == h && (h = setInterval(N, 1e3 / 60));
}, 100);
}
function sa() {
b && (da(), F(), G(!0));
}
function N() {
e += m;
c += l;
m *= O;
l *= O;
var a = 0,
b = 0,
d = -(v - t),
k = -(w - u);
e += d * q;
c += k * r;
0 < d ? (a = e - d * q) : B ? (a = e - pa) : e < d ? (a = e - d) : 0 < e && (a = e);
0.1 > a * a && (a = 0);
0 < k ? (b = c - k * r) : B ? (b = c - qa) : c < k ? (b = c - k) : 0 < c && (b = c);
0.1 > b * b && (b = 0);
e -= d * q;
c -= k * r;
0 == (g & 1) && (m = a = 0);
0 == (g & 2) && (l = b = 0);
0 != a && ((a *= -1), (m = 0 >= a * m ? m + a * P : a * Q));
0 != b && ((b *= -1), (l = 0 >= b * l ? l + b * P : b * Q));
0 == a &&
0 == b &&
0.05 > Math.sqrt(m * m + l * l) &&
((B = !1), (l = m = 0), clearInterval(h), (h = null));
G();
}
function Z(a, b, d) {
K();
F();
if (0 == D)
setTimeout(function () {
Z(a, b, d);
}, 10);
else {
a = Number(a);
isNaN(a) && (a = 0);
b = Number(b);
isNaN(b) && (b = 0);
var k = t - v,
g = u - w;
a = H * v + a * A;
b = I * w + b * y;
a *= -1;
b *= -1;
a += t / 2;
0 < a && (a = 0);
a < k && (a = k);
b += u / 2;
0 < b && (b = 0);
b < g && (b = g);
!0 === d
? ((B = !0), (pa = a), (qa = b), null == h && (h = setInterval(N, 1e3 / 60)))
: (h && (clearInterval(h), (h = null)),
(k = -(v - t)),
(g = -(w - u)),
(a = 0 > k ? a - k * q : 0),
(b = 0 > g ? b - g * r : 0),
(e = a),
(c = b),
G());
}
}
function ta(a, b) {
Z(a, b, !0);
}
function ua() {
x && (p(window, 'up', ha, !0, !0), p(window, 'move', ia, !0, !0));
null != h && (clearInterval(h), (h = null));
M = x = !1;
z = [];
l = m = 0;
B = !1;
F();
}
function T(a, b) {
B = !1;
a = Number(a);
isNaN(a) && (a = 0);
b = Number(b);
isNaN(b) && (b = 0);
K();
F();
if (0 != D) {
var d = t - v,
k = u - w,
g = !1;
0 > d &&
((e += d * q),
0 < a && 0 > e ? ((g = !0), (m += a)) : 0 > a && e > d && ((g = !0), (m += a)),
(e -= d * q));
0 > k &&
((c += k * r),
0 < b && 0 > c ? ((g = !0), (l += b)) : 0 > b && c > k && ((g = !0), (l += b)),
(c -= k * r));
g && null == h && (h = setInterval(N, 1e3 / 60));
}
}
var n = null,
b = null,
U = null,
g = 3,
v = 0,
w = 0,
V = [0, 0],
D = !1,
ea = null,
t = 0,
u = 0,
B = !1,
pa = 0,
qa = 0,
A = 1,
y = 1,
q = 0,
r = 0,
H = 0,
I = 0,
E = 1,
O = 0.95,
P = 0.08,
Q = 0.15,
aa = 1 / 15,
L = !0,
ca = !0,
x = !1,
X = 0,
Y = 0,
e = 0,
c = 0,
fa = 0,
ga = 0,
h = null,
z = [],
m = 0,
l = 0,
C = !0,
ka = !0,
M = !1,
ja = !1;
this.registerplugin = function (a, c, d) {
n = a;
b = d;
'1.20' > n.version || '2019-09-01' > n.build
? (n.trace(3, 'Scrollarea Plugin - too old krpano version (min. version 1.20)'),
(b = n = null))
: ((U = n.device),
b.registerattribute(
'direction',
'all',
function (a) {
a = String(a).toLowerCase();
g = 0;
g |= 1 * (0 <= a.indexOf('h'));
g |= 2 * (0 <= a.indexOf('v'));
g |= 3 * (0 <= a.indexOf('all'));
},
function () {
return 3 == (g & 3) ? 'all' : 1 == (g & 1) ? 'h' : 'v';
},
),
b.registerattribute(
'overscroll',
E,
function (a) {
E = 0 > a ? 0 : 1 < a ? 1 : a;
},
function () {
return E;
},
),
b.registerattribute(
'friction',
O,
function (a) {
O = Number(a);
},
function () {
return O;
},
),
b.registerattribute(
'acceleration',
P,
function (a) {
P = Number(a);
},
function () {
return P;
},
),
b.registerattribute(
'returnacceleration',
Q,
function (a) {
Q = Number(a);
},
function () {
return Q;
},
),
b.registerattribute(
'momentum',
aa,
function (a) {
aa = Number(a);
},
function () {
return aa;
},
),
b.registerattribute('parentmaskchildren', !0),
b.registerattribute('onscroll', null),
b.registerattribute('woverflow', 0),
b.registerattribute('hoverflow', 0),
b.registerattribute('loverflow', 0),
b.registerattribute('roverflow', 0),
b.registerattribute('toverflow', 0),
b.registerattribute('boverflow', 0),
b.registerattribute(
'draggable',
!0,
function (a) {
L = J(a);
},
function () {
return L;
},
),
b.registerattribute(
'mwheel',
!0,
function (a) {
ca = J(a);
},
function () {
return ca;
},
),
b.registerattribute(
'onhover_autoscrolling',
!1,
function (a) {
ja = J(a);
},
function () {
return ja;
},
),
b.registerattribute(
'capturechildren',
C,
function (a) {
C = J(a);
ka != C && (p(b.sprite, 'down', W, ka, !0), p(b.sprite, 'down', W, C), (ka = C));
},
function () {
return C;
},
),
b.registerattribute('csshardwareacceleration', 'auto'),
(b.setcenter = Z),
(b.scrolltocenter = ta),
(b.stopscrolling = ua),
(b.scrollby = T),
(b.update = sa),
1 == J(b.csshardwareacceleration) &&
(b.sprite.style[U.browser.css.transform + 'Style'] = 'preserve-3d'),
b.sprite.addEventListener('DOMMouseScroll', ba, !0),
b.sprite.addEventListener('mousewheel', ba, !0),
b.sprite.addEventListener('wheel', ba, !0),
p(b.sprite, 'down', W, C),
p(b.sprite, 'over', ma, !0),
n.set('events[' + b.name + '_scrollarea].keep', !0),
n.set('events[' + b.name + '_scrollarea].onresize', ra));
};
var R = 0,
S = 0;
this.onresize = function (a, b) {
if (!n) return !1;
v = a;
w = b;
var d;
B = !1;
K();
F();
if (0 == D) d = !1;
else {
d = t - v;
var k = u - w,
g = !1;
e += d * q;
if (0 > d) {
if (0 > e || e > d) g = !0;
} else 0 != e && (g = !0);
e -= d * q;
c += k * r;
if (0 > k) {
if (0 > c || c > k) g = !0;
} else 0 != c && (g = !0);
c -= k * r;
g && null == h && (h = setInterval(N, 1e3 / 60));
d = g;
}
0 == d && G(!0);
return !1;
};
this.unloadplugin = function () {
n &&
b &&
(n.set('events[' + b.name + '_scrollarea].name', null),
null != h && (clearInterval(h), (h = null)),
p(b.sprite, 'down', W, C, !0),
p(b.sprite, 'over', ma, !0, !0));
n = b = null;
};
};
<krpano>
<!--
showtext() xml plugin
- showtext() and <textstyle> support for HTML5
- extended <textstyle> functionality compared to the build-in showtext() action
- just include this xml file via: <include url="showtext.xml" />
- docu: https://krpano.com/plugins/showtext/
- krpano 1.20
-->
<!-- predefine a DEFAULT textstyle element -->
<textstyle name="DEFAULT" />
<!-- the automatic running (autorun=preinit) install action -->
<action name="showtext_install" autorun="preinit" scope="private:showtext">
<!-- remove the build-in 'showtext' function to use the 'showtext' <action> instead: -->
delete(global.showtext);
<!-- initialize internal variables -->
set(showtext_style, DEFAULT);
set(showtext_prevstyle, null);
set(showtext_text, '');
set(showtext_prevtext, '');
set(showtext_timeout, 0.1);
set(showtext_fadeout, 0.0);
set(showtext_clipping, false);
</action>
<action name="showtext" scope="private:showtext" args="text, style">
if(!style, set(style, DEFAULT));
if(global.textstyle[get(style)],
copy(showtext_style, style);
,
warning("showtext() - there is no textstyle '", style, "' defined!");
global.textstyle.createarrayitem(get(style));
);
copy(showtext_text, text);
if(showtext_text != showtext_prevtext,
copy(showtext_prevtext, showtext_text);
showtext_createnewtext();
,
delayedcall(showtext_timer, get(showtext_timeout), showtext_hide() );
);
</action>
<action name="showtext_createnewtext" scope="private:showtext">
<!-- stop running mouse and alpha update calls -->
stopdelayedcall(showtext_mouseupdates);
stoptween(global.layer[showtext_tf].alpha);
<!-- remove the old textfield when the style has changed -->
if(showtext_style != showtext_prevstyle,
copy(showtext_prevstyle, showtext_style);
removelayer(showtext_tf);
);
<!-- create a new textfield plugin layer -->
addlayer(showtext_tf);
<!-- create 'shortcut' variables (tf,ts) for faster access -->
copy(tf, global.layer[showtext_tf]);
copy(ts, global.textstyle[get(showtext_style)]);
<!-- get the position settings -->
if(ts.origin !== null, copy(ts_origin, ts.origin), set(ts_origin, 'cursor'));
if(ts.edge !== null, copy(ts_edge, ts.edge), set(ts_edge, 'bottom'));
if(ts.xoffset !== null, copy(ts_xoffset, ts.xoffset), set(ts_xoffset, 0));
if(ts.yoffset !== null, copy(ts_yoffset, ts.yoffset), set(ts_yoffset, -3));
<!-- set the position settings -->
if(ts_origin == 'cursor',
set(tf.align, 'lefttop');
showtext_movetomouse();
,
copy(tf.align, ts_origin);
);
copy(tf.edge, ts_edge);
copy(tf.ox, ts_xoffset);
copy(tf.oy, ts_yoffset);
<!-- get the font settings -->
if(ts.font !== null, copy(ts_font, ts.font), set(ts_font, 'Times'));
if(ts.fontsize !== null, copy(ts_fontsize, ts.fontsize), set(ts_fontsize, 12.0));
if(ts.bold !== null, copy(ts_bold, ts.bold), set(ts_bold, true));
if(ts.italic !== null, copy(ts_italic, ts.italic), set(ts_italic, false));
if(ts.textcolor !== null, copy(ts_textcolor, ts.textcolor), set(ts_textcolor, 0x000000));
if(ts.textalign !== null, copy(ts_textalign, ts.textalign), set(ts_textalign, 'left'));
<!-- use the font settings to build the CSS style -->
set(tf_css, '');
tohex(ts_textcolor, '#', 6);
txtadd(tf_css, 'font-family:',get(ts_font),'; font-size:',get(ts_fontsize),'px; color:',get(ts_textcolor),'; ');
if(ts_textalign != 'none', txtadd(tf_css, get(tf_css), 'text-align:',get(ts_textalign),'; '));
if(ts_bold, txtadd(tf_css, 'font-weight:bold; '));
if(ts_italic, txtadd(tf_css, 'font-style:italic; '));
if(ts.css !== null, txtadd(tf_css, get(ts.css)));
copy(tf.css, tf_css);
<!-- size settings -->
if(ts.width !== null AND ts.width !== '', copy(tf.width, ts.width));
if(ts.height !== null AND ts.height !== '', copy(tf.height, ts.height));
if(ts.vcenter !== null AND ts.vcenter !== '', copy(tf.vcenter, ts.vcenter));
if(ts.padding !== null AND ts.padding !== '', copy(tf.padding, ts.padding), set(tf.padding,1));
<!-- background, border, shadow settings -->
if(ts.background !== null, copy(tf.background, ts.background));
if(ts.backgroundcolor !== null, copy(tf.backgroundcolor, ts.backgroundcolor));
if(ts.backgroundalpha !== null, copy(tf.backgroundalpha, ts.backgroundalpha));
if(ts.border !== null, copy(tf.border, ts.border), set(tf.border,true));
if(ts.bordercolor !== null, copy(tf.bordercolor, ts.bordercolor));
if(ts.borderalpha !== null, copy(tf.borderalpha, ts.borderalpha));
if(ts.borderwidth !== null, copy(tf.borderwidth, ts.borderwidth));
if(ts.roundedge !== null, copy(tf.roundedge, ts.roundedge));
if(ts.shadow !== null, copy(tf.shadow, ts.shadow));
if(ts.shadowrange !== null, copy(tf.shadowrange, ts.shadowrange));
if(ts.shadowangle !== null, copy(tf.shadowangle, ts.shadowangle));
if(ts.shadowcolor !== null, copy(tf.shadowcolor, ts.shadowcolor));
if(ts.shadowalpha !== null, copy(tf.shadowalpha, ts.shadowalpha));
if(ts.textshadow !== null, copy(tf.textshadow, ts.textshadow));
if(ts.textshadowrange !== null, copy(tf.textshadowrange, ts.textshadowrange));
if(ts.textshadowangle !== null, copy(tf.textshadowangle, ts.textshadowangle));
if(ts.textshadowcolor !== null, copy(tf.textshadowcolor, ts.textshadowcolor));
if(ts.textshadowalpha !== null, copy(tf.textshadowalpha, ts.textshadowalpha));
<!-- showing settings -->
if(ts.alpha !== null, copy(ts_alpha, ts.alpha), set(ts_alpha, 1.0));
if(ts.showtime !== null, copy(ts_showtime, ts.showtime), set(ts_showtime, 0.1));
if(ts.fadetime !== null, copy(ts_fadetime, ts.fadetime), set(ts_fadetime, 0.0));
if(ts.fadeintime !== null, copy(ts_fadeintime, ts.fadeintime), set(ts_fadeintime, 0.0));
copy(showtext_timeout, ts_showtime);
copy(showtext_fadeout, ts_fadetime);
if(ts_fadeintime GT 0,
set(tf.alpha, 0.0);
tween(global.layer[showtext_tf].alpha, get(ts_alpha), get(ts_fadeintime), linear);
,
copy(tf.alpha, ts_alpha);
);
if(ts.noclip !== null, copy(showtext_clipping,ts.noclip), set(showtext_clipping, true));
if(showtext_clipping,
set(tf.onloaded, showtext_do_clipping() );
set(tf.onautosized, showtext_do_clipping() );
);
<!-- special flash-only settings -->
if(ts.embeddedfonts !== null, copy(tf.embeddedfonts, ts.embeddedfonts));
if(ts.effect !== null, copy(tf.effect, ts.effect));
if(ts.blendmode !== null, copy(tf.blendmode, ts.blendmode));
<!-- set the text and the basic settings to start showing the textfield -->
copy(tf.html, showtext_text);
set(tf.enabled, false);
set(tf.zorder, 999999);
if(ts.parent, copy(tf.parent, ts.parent) );
set(tf.type, 'text');
<!-- start the text-hiding timer -->
delayedcall(showtext_timer, get(showtext_timeout), showtext_hide() );
</action>
<action name="showtext_do_clipping" scope="private:showtext">
if(showtext_clipping,
global.layer[showtext_tf].updatepos();
copy(tf_px, global.layer[showtext_tf].pixelx);
copy(tf_py, global.layer[showtext_tf].pixely);
if(tf_px LT 0,
sub(global.layer[showtext_tf].x, tf_px);
,
add(tf_rightedge, tf_px, global.layer[showtext_tf].pixelwidth);
if(tf_rightedge GE global.stagewidth, sub(tf_rightedge,global.stagewidth); sub(global.layer[showtext_tf].x,tf_rightedge); );
);
if(tf_py LT 0,
sub(global.layer[showtext_tf].y, tf_py);
,
add(tf_bottomedge, tf_py, global.layer[showtext_tf].pixelheight);
if(tf_bottomedge GE global.stageheight, sub(tf_bottomedge,global.stageheight); sub(global.layer[showtext_tf].y,tf_bottomedge); );
);
);
</action>
<action name="showtext_movetomouse" scope="private:showtext">
copy(global.layer[showtext_tf].x, global.mouse.stagex);
copy(global.layer[showtext_tf].y, global.mouse.stagey);
showtext_do_clipping();
delayedcall(showtext_mouseupdates, 0, showtext_movetomouse() );
</action>
<action name="showtext_hide" scope="private:showtext">
if(global.layer[showtext_tf],
tween(global.layer[showtext_tf].alpha, 0.0, get(showtext_fadeout), linear,
stopdelayedcall(showtext_mouseupdates);
removelayer(showtext_tf);
set(showtext_text, '');
set(showtext_prevtext, '');
);
);
</action>
</krpano>
/*
krpano 1.20.11 Soundinterface Plugin (build 2022-01-13)
https://krpano.com/plugins/soundinterface/
*/
"[[KENCPUZRiY#/e$AW4]>p-uDfU=NkS.pjO0EvP6lDO7]28I[I=9''vbN:*pq9Ik5OrX6%C[njv&GZCBd=DfECB1w]_$uSYTlvHDdCc64^.Pm#,KjMA>mC;N'Exca9%eVjW/hVNmW@en%c28=e5]r.+m;TS;'osoiYnZ%UQ?YK6CO==fJ5BW[uud[^[J(c7?9Kwq]cgxC[H7JN*=5.P'04Y$AT:NXDCIP;G>U2i_kn.KtJC8/S+;]*A,ou_Bb/O+]uC^ax)M#5_v@>1w>51>`vi7%(HuxQT1E<Jv#er4Ccj$/7=U2>Gtuf[&SHd*c9*>%%7q,$3P@ZhVAkXj'E3I>b:33*H%uI11JZv>5H_I<>d[?4A#1N7TsDdU9kk4+p,?>56YiIt[u:eIw_=YYq<Ic[JTL#P/rx-7EinrtI?4N41q;Z?(MTUNAHiD@=G:v;I5dX2IeqKGkOpwuN6uv[^q*/Oj[-SiT]pO#Q@'TmNZeH)IeS<R?X]_bq*1b1,:#0)KY4;0nrI9Ql6,U[RNGuu2tXNa=.?`M90_kG7JXT(x$Ul*gpLG*#VSOgEm^4:*4u32)#1;(kH<$#NxT&#fOS'/7$]e+e/g1JOEE6DV8KXmH%WgPi1=Oo<M6lVDUlRh8-roY=<ImWxC+4GNc7g`QV91+U%)$Nln5br3kSS<PBjCWC,.&MrZxD*wGI#@+Y6UQ/oh>*F#*Msj52(`+GVYnr,grGbmk.YS5nlhk8*%[(sH&eXW:DN'@_8q=JDeHR(fxPL=MH/tXfrYRVGFAwEoQdlwfMMuXLLgkGS]+%tcO([ddnnX$Vl`Y8,>Y;4&#%[Q:q=S0K3)39g'jqP,e.q,j$kotpDD'K=ULP,`T*'T((q+IR'LVH%?@/qZkP;VH[cp[1aNTsBsS(REs0bu1qRC[d#d6glI8YOWVDM1j@=Ul./a,h-jX:6oEgB9C_VXalVB_c(,Q>n+(ETs;2OF5Cq#R(0mP._:?%4-IHal>B;#$+Y6bbZ&BkE);4`H+k;oS86(M_h8U&RdHI4@a)2O$IUwuukW180>bH]Mg$;BJ$bo&QYGBhrFH][v=7)9A&GGTArr_+t5)rBB>1:NRVb:Y'IVF<(39E()Zwo02=dxbaIj7@R#>:dj[*UBo5A+F'slCENWdm+)s='nRt[^+13vZ@0LIG?k/TZP*Ms.l+_xrRP1b'mpe-2E(H+=ENh4hC(M^4%%Ij2&fDlFQ`VRw:o='0Uin4M,x$ifa#:M;Fd4DqIZARl8LJ-uXhd77&YU&VjCN;]HN%aoHiE&+Yi,r.L3>5VhTq1n#&'ueAKWaaH1[8h]9m<(cBSg*/2nNmaDh8Z:ETG4'4Qbaq7k/Z^.W1kKQcSH+$@Ml`QHa?#Yi:p8GX(Lc:5X_BaxcAjX)H>8np)wr4=9dt'4qg[D2p,PSH*ZR<j'?i.9]6/dU9aIN<OP($FF$cHILLY:rJN$/nD<.Wam-]W6q>I]9m.<JH>AmjDR6sO(9_uVF(ZM:sZ@ucYS$RO=fo,*5hM`o:m@n@XlD(]5#QIs%VJ-5Bb+><$/VUb>Iie,[xip$4R2j7T`83/&kl8(S47pn??$UM/or,^,mq8g/[n'8^%/<,+2x$N^2VBwC.ZAWt4x8&U.5P<B+CLit9BB/_]J&b<3hSa=etai>p/)cc<+;4IVl[Q-@3063,en`HL8HGwO&75T_Q813d.Z(.jwi,XklqRxM9W@w%-jTb+-l7mUCM+FGwcE)EC[x_iMis(UMG3Zd$HkvDYTCmN2?vC7S3td`j*MmP:DdmFHb]DMpkU*lIR;gigACRq$)n%:l;^i2#B8'U^c3RoEGF3.G<fT9j5ON&hbHXQO12vWQbw0l[^$g/+cLH0CEKPIITLp1dBxk&#qeWuoPMV7YK:FvZ<?eG4qARqkMKI[_L?rAC6ShdGRA`9rFx]V/D-IK,J13n0nS3@H9cLf`fcQ<FW`i[q[2_W0Pn,*&])r+U6rWddp+Y^=fDvqc;K$4r=xFj+:wHcNqd$Z+un^<^:vCradfp^6FkfGvTKITw7ampFNGR^#&m$;dRJIrh@6b)*69gGrZt(vsuUGE*1RQ/mBOw#Lo*@s3<7`EZ@8WjXp]gKr9Fhrd0lp>*TD9[cS3<^&=$g<K%U,LQ*vtm-#`Q?$Q(enGsD*[f++I9(BfHis;2o$x<8xE`O0'V?*0qZl_)=+j1cPi+3kod4>0=dT9EmwtpKl6UY$KZPJD?<P^LWINZ5w/*,NW2'S,I`WiVfnb(p%&/_uP/(sbPxGDW>%P1Rj:>l'qBY&kp[8G[IonD9nnP6X``B2LINK[.A0c&pY8PuBBYFF5IcsM>#t0l.CHm0A@VViQ9ER1Oe]o@uFpNo<.?VWMs&aUDCmbO7+;=<x?4]d43eS+LibCss,]4X-MMKpilECR?F.>*2BKCNaX`'-=vm[`-Cj`i+`RVV[Eg2*MhZ`OFJ6HUtpL*IY;ng;K<AHFbFL=CKhZA&R9:i'*q-71BTNbf$k(E81tEL7Fl_AUC;A$t1x(cMbk+E,6t4pSK#n==1sTjQ$v<YYi5Sa+)QL9Dh'<E-E>,_Cnu(g1Y`FTpII_P`n-`&p04x.U(40KO'g^E9)qv$^Vo;s/LPm_,NXPdiw3[dSgE`Aia.YETJ,;iU<B>D+gj-r%^4ESZtV;Ll[mA>G/Wse[]0])&u>u#Qmn`);7P,+t/SvL,M@KgBcXD7ZMYq1U$sF,@YWXLAup.*_K#%<dDYxC4j-@<1w7HCFc6hA34?htW<UIEVbCT^JBMX5(;)(cB@7oaff3Q4tXK,^7X_T:m0<;0WKaL`),:?D0smFgcr#=9_is#gu,)Cl+QG$ZJlD@2Ev?ZdMU0h%W7A'cgpP=?*Ab7X:399f-H@lm8dB)4SlA#,1`;S#S4LlkG8)Yu[l;o'2$b9lgZ^uXR]-w6jo?7h?unWaN-h/'))0F<MTR^5D$we@41t]('Zf[mS:vKm2/$uM+WX(LnG26FPb0regim34-E`gBR]Ew0kU,S4W+^<KC1%=xB;GKC<P>2eS/dm2qU9Z>VU+XGo?TD7O]g%[1/2f,ni'd<q;7WTS1OU>AvL,_MxxF-[$l7dS#5]'W)S7.4_VX5ft65/JLEV[<BDag0?#<]=x=baO&vA9O^oT>/H9mm^-oZFOJlR4d'?YX'DOv>rs`^=AWgr&K`ppaO<<fwB[gJ]+naPT_/?n4q$1BA(*sq/^Ti-4uc=MJc:PWp,H(OFUY8sQM2febP8K'vLnRaKU#PTu9`8KsmDU_]KR5xf:6-53sv`W2)?Z2NOe9hukahaKfo4MM+Z$a+uE?Q@'lkFw-1(@c,tmf'v1er:HFZ@/I-ev*6Bql;]X`AJ9,eXVu'19Hq7,,BO2IhSHK@/Z%/DwuA,u$kT2nU<O1%sLl3g(1/]M8)R8f_NsKXw:.hsfWk'x4ANTJBt`:<SJ:KN(QZ5]KH@eYHq-bGto;RwmOdfjM2VS0@aEMbYZc12e3@=E7RD/h#P&99VpF7f2FJO;Av5JQPt5c>)ot5Y0pbapwkAJq%&n58G-u]MFk.idBn74XW'W^P[Joos%u80vRwM6bfbZ+a*fD`J3lN@NIFWN<*7Z5I.YTjpm>lx6;0ZpTxHpVQh%<5qGLrxP3jSnweFs4HbDbh[;O<NNOseo6v`eRu=)Scoa4T`PSbK*%Cg+PHXA*h-IYm/M0)SEQ=P7A&m*(m$)4`VU'`qKaDe?WW@[TU,bBFx:WhkOc#%_R^RdK,Ygi6$b(XB/2b'0@,9)SVk[DOispvEV*=5Em)Tuh8]^XI(T8G4w(f<n0SLFgvUwWMiF>+7ox><&B4g)v+Rn.N8Vd;l7Qu0Kuw;b0$SOl;XE#;Oito2DHlYcO):`s5/$n<A>Um$V[pe]E8;sH@NJ<R&'@Wal8k)$C'Kn@j-].24tV71fFE7i)4R+gRuF-^RI$HOJ7w35alRFZu;@jwD<m0PL5J[bOWD'*qRl$=55e_*rsXQg5.$%S8q.0^;Gr.E[<pPn7?Z=1H%_@f_Dq'pI(HwV&d4^2Y;]NUE34t-RM#:ar(1mkeNC/&<H@KWXAGhk47a$jVS>r%aM71nlFrHT14gsL3HCaI^3]9P687w#@s>W)TPORnnm*s9F9YG3$^x)'94Mj.AT3EVb@Y329.uWp[<lmQ&=E,(6;6@U-o-#BLjh`c(GFpc-SvETBLPQ3(Kb2D_U+[R&]s$(a49/@K)OusmKD,%P7,U:VumisubE/QEPQUKFtOhXj,uP643t$:^R=&Y5^Gm0W1bSv)BZwqud/(1Z5V=jB7=?SH,Jq)+w9XgOv(pjO`Yh)OV]N.YWbsJsI0ZxnH_t_<&gOppSX;'bp,pD#$C&1fok+$2lq2v$5Mte/Qifame5#E(UE3FeYpXr-rsRj5&XKR[jntCp(h<<,ap.eOW]CXl,9;/`J;cArlwrffjRvk&2NAw0B2Y1#&`;AN>Y+S*;RG5fwnEv9a.P@#*>Kh1K^uI?dKSmIXjfAUw%%b]kDSSl,qv/gnh'c:1+o+.]]-U-CvW]_VI1KArUwtY=nqoYT=Vfj9_8%e:YS&s=;W6M`uWY:T*Te3M:'u9Ia<JZlL:HKcP`rofcQh.[,CSuwi)l/BHN=m)Nf^8?,xKq3Eu/De':VAFGbNgX`A_<tmUkJ(FV]l4l$+_vP%;=9p>5i+4HoQ?s>'3Cw&bsmbMuon#Q[S4d/eM3BXx0*oI/O7rB9-S[F1SG`Qnow*Rj(0_QBZo>m4%%=pF52;p3)aAZ%Bds@.+*0'[upvlX'7OoCjWx#lL11Vpuxr#@X/AgvlpkJrO)I@T9R_79E/1k)8&WjYNj[nv9Z&?hjJds%e&exj$a)Lr1]G]9,U*>:3adA&.WqK1i'><MRE3gU3Z+d(#MI6_uB@`$ZX_7=*.D<BL57/@BSSLa<q&69gC#rN$aN6PKj@D.MVUe*a;6MdhtiIBTVc+E/bi`Xnc-*xbC4h`&r5n=RpLa7hq+3h$kYhn])Ld[D3gc8bk63L'Bdc..M=a#h8/duNYMj09oU>ZkqvxEMwM]OAbWV:9?;PHa[r]GmWi$`eK?,vs-=Ck*p8Eo70'QX5Qm;]2gA`$7x__<XP2<0g+DJ;u&&;u^u^BFMNE</df.g]l.rGk_^,DI>5Z8A$Q),$s&,vU`4?gJmA]AugW]h0ctdUWbeu2qu^4fmNk(^HU.WFN7l/;pekmO[m+T8,-Z09h]))<Y&u17(6`;hX)+S$DiJ.ZEk,oDfFNGU60B2eANWME2AG].t*`jFu]8D+FjrUUUteOD)Q0h8Et^3oZu-pWl`3k25eu,fB)ko9O16d_KaXtTKoC=;Ao`xGV_/_O,juG`G%lIh6<iLoCXsP,wl^Q1W<:F#Y?]E0&4qNLmkB-sN1O4T^9'[XDP4Zw:+`^Ni;&@P]o6=&]ulRZ+?#Wdw3JbXa;X4B5ZKke)WbveIjUk$FN]YPE=_4pOl:U..46=2d?%0FZPJ5[E:g@mGi@]V,$-WN1Yn6%?ND>IHl:$TL;((mJRcG-.TwYglEilO4#eMS7Z'mDlp37b(KqF,<jN+KnNx,GWqUZ_$#kDciZY8j7SliSKUgO$HBU%_IQD0J+UU5DWfGU+Vec=Y&5E*m>am4vF=D1;LoHcEES4i]UD&bEd1)q+_ffaV5Zo/Oq5u9='lB^G9WUmpa0k1R^r/,>6iNLiR,*_Ga>THtMh;Z,_X0[v&mEP(>/l`(Tj&VwVd,Y#'*,JIB/Pa8lMwl)L(X+T*l66NPbs>Xdg@^m%qYlqwdqdGsN/.lL2MemwMlnp8nj6G41H84bofqrAgmW5X->E/b$1bD&E*v$hDk2[ISGaZvSKtJTm85%YCiB4bFS:,U5?mv.uO.H.0)5>_%Ab`l<SDCQ)5J_N]:A&jIS(*L=*++=>a8W[](7%-TD=25KblP*lhhTReuww:Tv2,Mftd-e$`wsG4@Hiv1:FrDaRRr(DJ6%+$]i/M8H*;g$vs(Otu@wCPVLQZ)x9VaMQxOG?qKn0[bSP<mh<VT2>N&xrW)R#nN)7?&<8dKMTJ3o2)#YERMS]k(HVY+=_YGTbD-OpHw)ZTrd:.j*N_(Xah0:#Ns/?;hx.PFSK#I<N5;GHIU$jiN^nt9FQcA[P%?Kx5_JWLj@uu[0e$r[[8WMpejPweUW%t87W:LBI9RW_N)mHS`/D>/^mZR*<X#J>G0=A<;),f]QMk2=V<7X,[WXk^XXvMa6t;5G)/L@n76gVjo_qnD[/O+$'$Z>p6H$7RO<iNH58AC-0[Y#D=d$iwtxlCJl=E[u/V[ZOj0X_N1kt#*909s=stbxwMiK)p+GKWVe6<?b0M7n;)d3.sW98AG`^Yu-(dJQIfA,u7C?.bi5L]Ueb$fCKOjirGe96[AuRh-<U#eR>Cm]Z7@E0/da%[YIA&vYcFti^e:%ukH1`]I0g_<hhOkP1dHw;TVZCH7BF-eUaQuBFH23P=Y1E[[Ta8'uD/N<-@b-f3$X'XwBd/uHoue[&UWaYOxo>J0Md^-PXI_4ReJYdSl+4[oRt4_xY53te_>xnhxRBYOrl^[FN`oduw8+PHi#vDwo`Z.4gJg$BY+_qN?$pue1,BWT;QGjA@I9i<[mHvNmo1n7n<S7V*/l_aPtOe-v:A:@`pe_uH=snN`7QV`*-l[`3J]VJ<>4I.pX6^BKB[$usfQi:L7f,7-u=ll`2'_P42Eq)_Q:JtL=Cbs4E';]4j?/),'_9tW'/Z8T+YA@ab)&g_>Q'[(*5Efh4rsrX3f(%p4u@hM)+.EdXIgL:C?Y@OK1Za-f,AkLWi.9vKBchLLf+sindK&hd97VwpuJQL,[O1%qC`#6qDi^J)Rep&/]E';o&'^NEjvX$)RVv(AcM?D>+VOm9TcS::_+@>HNN9h`8L#m]t/Ww;YO_:*erw7Se:=[)nfXtYQ9nP5%UPH<8#a%ZFtoN%hGZL&]5tb*ij'c%>k13U&OTw2fFl^ij@fq;LQ(Q8#?xBIl,fFZ14EXQ=P0Y'CdA[l6r0;qxSD0@i`v//]9l:2`Fmpk3'U[T7;e@>d^V<qqmL>YJ:te5fA/j_aYe_mX,Ms31#PjMv/vO2qmSqUv7=qfc3x__>'L]@):&fUW<dd+MoF%YIa?-(RJD>LK0BAkVQ9?)poH$kbGQ_YJg;Mn9fX+jd*U;:Pm.6o8;7&3,R^,7;=l,a1l?&n6SVK]QOStes86&O'2ND^h9uUP'x6>=NN1mZ$$h<Fd[Vo6SlM1t9i49^5?h2]^mM3E_uh7,4n6t)Ua=/f/Ea;9'4gG$bWNs16.dHrk3]^Y@2-2nm'k;j5sp]oFv[90$FEN6l8BeN[]-C*.lkVgO;'0I5HsW*KJXJIJgO$:A2j0Ql*99Pl-lY-dqufZOgM0HCm2ilE3K*D,$O`0>Z65>FThD<snI>/n&NL4$:sKYh20PI&Q(Zpqfc#@&tM6cu'b>n+UQ`G]r0=ut$9GD@7Y@[ux&l]W/<Ng&Bt$1>)E(^3Q/fD3j-/&xt1?DQ*n[fvT^8E8;h7n&C)5-*FR*)7SN]%'(:fP=D@+t_=he>1:X_e5f#15.,.W/?^/wE/-v%48osiVU=UOn+^)Oij3=OkX(g*W%?_?i(`IH0fx&9TuLif8fr6AqW0qt+7;6daU`3<ol^.=gP?%XQ($RQPuNMth'W?<l,Wd@Ohm8n>NaLZSEA>bW2<NlZ/^5vv7RE[EFor#g7]aY.Pi_.2D:h)*<h)P+Q<<s<CjJriacig2Qb3SImboI1kK=N7V*i/,L7&RR1Lu4JlixG%jNWO[6<-BgDkbQr]l_+@]:9+sr9;E]Zv^>aJM.T+P/OwGpbouTbeBXZ(Vk-97q#M>L$h$,;%88mjY](Dd*E`dIP;Y%*gXleFelkKOTK$>lRU$`Fx&(=WW08F4$Dq?_c+g[xKa8-OCOa8JL'a'S%MY'V%WZJ^IV`X<qp>`+eq?Uah2OoCgKfjYeo,8F>(x6*4&;i%,@,gbaqb_cm-Djnkjk-)+DQcacT;S5QNeX5@0L/?&eljWQlpcvjGiP<NSnqYPJt?:QSx49JteN5fV$lB)S%lBI3RhmN9g,qBb&SGAZK6,MIY/Dx76`GlNb=@;@fL8Gk3`lNao,)sYsi0Ra;6'?PKoO5G97ji7>cDf@-SmmInaca?_L3/XVuA>iPVBt7-u][NtdD<NpD0^M3-nk45rt:5LfUMVS:TA+UbH%8vA#m(.=[2H*&LlCt<aEukovllc5r]$hUnGf%ZYM72$lt(`?sln]/Kn>N,j.oQ@[Dr3ClfbMH<Xfo5439e%$dm6i$J,]mlu1Uev7d&&U;jHt2Xe/E=7j+tsW;@hwRpco&+ZjBJ-dBBHf_[[u3;Mq-3bbG6/YJQ+v4%`el^[+Rnk#r_X[5sJ4e4K,H@3'XD)`G1g=r7n^Znr%P]Ylbf@K[4eg^LtToKtFO17*Dw/a9+wlsOofQ]HP)2D`dr)GcnW<^k8C.%Q*OD+QU`e^Q`(843cgo=JBSKT_K%JkPaoBfh+c5NO#OmemZZ@m'Na`_@ti(/,<=V35kS1Z6JUCNWMawh(e^Jf7/=A&1(7ql`dfn9#=i2sKkv@t$@9k/I&oAsM*e;_nbp]j<X46aOA*;vIl(KX3]H7`&:&;>&hG'nCGFMg>uBG_cMK$wZM`FF3Tr9,JakcP+pW]RfPct6$$<s*aqVbW7bGPm#dc-f9w2L#$ekMvXqD(Cm=6wUKGi($3rtSZ@dfk&:*5`2:Z`mR6Jg<gv'giSOU6DuT(rwjoS.w'mkrgsj>*p1OXUHFh]b<PHY(-EY,^sF@N8sei4'CGqD_'<Nn=[qAu->YBEXA6)6;%KXDh6bak?;55hC@(S@E`5c=e='Wa.[WU#*0ETV%QGQ$?eQ;Sp<k=)O-$VB+j=GdQ%krx),_?nNs''tDHIg13]aUoU20LcTu&5Sm5$T`EptbhXJOMqsq-t/vHuoOxm=PPXUU`,A1?=f1mfGKBK:FuI^j6K'TZH@cJp8JpPwlk`UA?Q9AL-bw#VBniMaOr5[2HSc:JuPcCQ;usQ[&K0/dR=&K+a^`r$872ooK:)UFU^FJb]=M]9m)`x%UT:kY2^eXH`bE[v^p<<WG.9$q=3Z9Tr]@TtLCp-6;naK)XboGt,K$NKLYx+Io6R8?0prpORQw0O>AEq(aVLPKCFarcb6J%I_c@0=g=)dB?+8Zj$mAhqd?OPZMPOJsZAh:m&NWhnb8F5=/mI*30rJZfcO@NHOVH:P:B2w#Ppj`d]7rjZapu*9OoR2&F=8BN5P'uicJl-$584Ep3P:;`6:K3/0uTBa#WOh9n#?skL.>k2D2Q2mFxWD5:;Mg213O(7+F628S]>wxajM%?)+9$^nB7tae/%t^7u.suj[XpO2%WRBLdQu>CKE;4MD.OqmTi%9#24_V^2btXUl*#NgCdh13W'h[g9$Ki5U8bnf;lI]fi54Bdg0;T%c7^$V=sI8/i_ZB](Z<dS>>j+Tu<&5F@X16bVr3]:`V)8S%;QX2hA'7&*6hg*^<%o]np^UR>s=KtMrs.WDK<>0p?v1XJgpO1wT+<ex7pE#<V:<4C$JDl.6WjEuIqo#N'v9k_bSNpk^*F^qjfRPXV,k#/A<;;qqEDASha6i,9fCK[67XgXrI`H]KtqACn>_kWZ3Y.oR>o$j:#806JD^%kZ)#s>_KLSDrp,nR^UhghJfUkso>N$(:p3[=26ctv82'7;(e:jeUcD129uQp56$=f_<wQ[?1`l50^U(OT%9slt=MT&x*#tLSOggb4?2t_4&ZvI1E-*S_c1TC4R+Nqs5O,6-JrMFoKFq<+WV*GrlWkK^X53HIFH_Z8GHLrPXO'CklWDJV2ck$<5Q:5krD*c/FZhr>/XMlF6nR?qWaLe=rwui4/S(P]v$&h;v-VjlL^Q%x8w.c+.ZWri.j:4Z>[wXci%I_7M%q6.$RY3.<aa$P.FP63A:LMm93$%pwubSIt'juDG:7gMqQ3;4bR7Jg6*$<kgGUL#+E>;gn<c,w)D<&rH.19nvXYuOT7SQ>L#FE<CFbW^oj:?,o>-Sd*[aMqrv((oYhu.8qAVS.8,Bq;Kgk0I[GWM1)KUXus6S<HPoY-I9)Na^^+d6pv0x/ewe&YHLaAC2+N<W2.S@FS`T?01KT1ZhI5W=X,A];=CJfpLnn.aqVLY'C[8Gj(>4N#qbWsjN$BD+&Cj@i6jh[R0n1r*]c%3Mx<E16K#9U(am@PlTuH+cmDJ)YfG?`mvaKi$h+-rn'wt[i,Ul,,T8bBBes>@PP0CJ'wQp$cjM;N&F('U<:1QRst4boNvsb1-O-f6TO-XgbgGj(r:SaVnw&3t2#[o'*7>AO:KbPZR17pKmA/eu6v(+e'0-^T-m,)Op%w'I5fMcS_FYBb6jOXNDi<8RMK#aqr]CJlihthSWh>qLHAxtkv$aI`Y(iE9MA>=u79WFx#u6lRhx)GY:1duxN9%/72xq/_rJ(ku)/r,3.OOTBUNL5:[dB2]$hjBm%0i[X'8o=Q47&(K4WNOnNLm&bGMUAA`e;cJ/]'O'[,KkDqb]2eU^YAa69w;2<^/LJ)wx,(.aJewqSVuaH`5p&_)/<VlDn/(QOX#SJwxEt9w%L-^nQ5IJ+aD%[8-h-7g,&J#^D+&/xb`=.q2qrm(lcwsQ'/qihV39PJEXIt%ud.-8=:euF#R6d]i'Z#BJvkEgb=t@_MRt>,EN.MIKLxgxvZ;P<bS@=n+xMgbm64L>78^v7Vpi+@<9+jP61w(ZX#`D[<wK$d7*JkR#mT<+dA;)QIHO&1V_kuam>h23_nkP]u2k61>O)_gFlxoq=E+Bn3cYV:Q]>5KI:ct@m[N,Fh]O(<RMw`.uIlG8?;SRF1a`nx[.:,bsE,oD*dB7$Z_8$FX7u/iIiq8mWNOI/gT3&QNZ4>X-wW(5'RBrAfOpErYD.ux(Tmrtde^RrSQEHGH^iW%-::L<3B=S>PRaR=KlZW=L5%6f@ed@6^J?hoWQr'hEcM0&K=ejnG#%0x_F)`fX8IcM(DBL'.F9?3%Xb9b^ASJQc%QXUMwa(&Q'%K9Wf)%)$Pb*EUaERUo>NH8qi]jYm*=ZI3FUc9cS2XBR2obYYs?I&PHmAf4lOpnI._fS>`XhZUar?xc#&;pE-MNT^6;lZt^3otH[hCTjB=0J4ki.=f?f+C'O8Wu8*(2@d-ap]m(o@='R((6/?UL:iR^Kr$0lDl_4d14:GA_ME.(hfJ3C/+$n&7`iid3gb,pqNi5)KJKVB#wY_A>s[]X1UY2QP;7]K:@S@k9`RNhi^g$Z3lgeFb6kjM$HslRG/ou<#Qqt(J9sP0cH68Sa-1F=k`l6O7YoN6b8,]52mbK*ITt0QB#@@E>Sj'(Q`KU>rWhL?&LfFQ?.n:Nr+*<wQ]1,N]R+i^@rh$jR(qHGm^LcijI`_TIGi/P,Fi3dT*owxQk4c#j'Ub4AkQd67-_>>=29-h4:H0CX[%_.u8oJnfYH(U=EX,BP?1[_:K=b4,-;D#U7HCgJ4*(gl:C?O,qcb&Ev$pnfbR9j3L-82(8MgROoN7UZF,'6dfS9T9p@Y/k=pT(#4FMLP+OZVQ).inctQ+$N8EB)UY=oN%T02;PQ:ckHe?jlge[xI,7fj52dV$bircj(&Mv5;C/f;M]-E%_2h5r@sZ=E3h_G[e+%Q(_aXQkwD=^#;Rdbx(f`x[PIwUoFuJU5f^TKSCD7bSa`PB]%XVFY(5-4YUi`b*g;uQ/l6S:Akv&]va>N3gVI&,hkSKY1D_0(S4cbYPN8fhBL%*m-ktDc,t^h3s((sJw?c=rQpm)h#AS8jSf?[WNWFE&OmVW,hkqCp2-o#]v7Vf>G*M9mIt=355rtJ.ZpRT38jjBh3Mimeenn5K45:'`,L8idPB)h`cGGQx_t,swJx.NjXk7B<<')Etv]'eEDk*;<k^iGibWRgBPh4n[_bp)0)D,hIhK;#Fh^7Gmhf&*AJgN5ps/3_baA^fK0e]d,shX?_egA3gB)aBo4M<NAor>%LrDiip=dGZHSW6rV^*tT&KClIIP@6ebx:,T$IWeuPrSk+lQhWBksv-p+&E2tHU_kM`OpBLdm/g:foiBUdTR&t%,[f5rPIh`#Thab^$f:QBkm24:ZLFq5)%eonGkh>Q?8C[.2$`<xrbD@(haOcg9@RdC0#S.IVgTK`1hE%#5[uplN)Ox4J5/DLXbIMX.):PAV6PdxHVT9S=UL&@VWlhU1ps_:%&7St5J+,+rEj[BT3Wd#Q4-D#S8O4`i$TGHMv./+XH0A0^ssoW'8;1]Rq8oq&vIotUCp3jNLkX^+rEe':i/lsQ],NPsrKU=wTiRVfL6XFRVeVE_Q32bWRcXi-Mpi`'7'F:FgC<&5rT.P##,_9mK@xRnIgebUIBtOpjZLaeU)#'_`hU,;t-/hKbV&2YV?(%SBLRe?-T:W)HG-6`1h-qmgn6bm&[+*j`A,T&?f%hXt0D9Xoo*o2%&3JEeuE*A3]tF*n>Dd#EYB7ru(KbA8Eo*HB5$/C^%1OajQAmQlTS.'['.Gp1P1QK`3,bwS52*6.7((f?XwwJibu7>advscI-`xl)e`5;xqmJkh.7TS<Zc5<AaFQq`QYT*Nu8CMHsnT'Z%T]9e<bscZnu/aC0FS%^?+LM/,l5HHnTcu)7t5Dq/NnI+kL;fj9jIv9t)n;2ee%Qk8U*=fgK]8(kOws$F3skj0YMbP)Z7H4(WN,an2b<Z)kYc8h2Q:Wg,oCe5*tFoR]ik&ee(;rtMj1HmoN=7m,RZ#[o(/1*jQglrZ=@e/cq&,T8J7^^sXiJ?,fPH4SOKU#PX8kK<14j#L(6e2-K,R$nT:sFlbU[3'feE5OPKKnKYkVO6^ZLVq?SxfM^9kZE8m$-4mZ;1#&[sXlw+sPITAfe/Mx6_Ssn6:9vH*2gt$?6TM5.Sf$HdjkT>^8J#,YW/l18WrhQVjYWU#93D&@oa=NR)6qo'*vElxGoY?q]_K&gElk8MNPK2KO;twtBtR,nqQdD>M?xC:LbXp.;Q(P[+%oIDpIX4YepQ+Jp$7@K^wx&G`s:>_i$PB18[^bm;)BvFGARiJ[9eW06YWip,u#gA5N7(#D>(D^fr2nG)Tg:1aD#^I#XxfTGJ0YFrjR7A&XaVbK:%QbH<$Yq3K*$3)wB]Kuj3R8nqU[P:L]$P*IOg)ku27nQHo=:57B<;jJM12Vw#A)AI#OH,RB=2sfeX=LqG24<>ku[)h]9fCq(eMM]sSgFs&*[5H9@5DGT7g*Qur-/Y_=GQk5oi^DHh+R[1a$sEQPP?tn'FbQ&x/)F)g'tn&><]/Gx8&%&rQBbEf#V'AApUEmnLj>T9.QoXHZ8?OtqG_02o:XR9IEdj)fI/EYt]X&uaAvPn@(3UDg9c/V.bZ0u_LEBAGq^d$CMBeiiqU.i&GB(dnkS`(mIndGWEm55Pm]-Npa0Ith*U-W?uM[Yr7WKS,YvUfkXIFl(-##,GO1AVGSbCfTXrVcUQ728`S-5%HC'--)b*94-XS^]3?J6Xc9.Ni?[Jd?PA.2/H;Kif-+*-I<Cb5(Pj#&v]f#aNJieDS&$ENK-pjb&3gs^%]2ep@T`<J#7u[4b,WgqkgN39=cKDA^Vj]$-t[acA`60kD2&=V&?/^2ujEq+uK:n'#P@Drg1s7o^TJvcPGAb)[lA^6'MAs6u#T$`=tp-K(S4=>QlPX&0#(f-k`S$r;Z:d-*vv6fQ(FP:ql;w?FUMA`fk9e;oICd>LfcE*oIqUaI@bZ@MLB9n*3@*-Qw)D/91NG18%Js.8JYF@9dj;6f?<>9:d`Ot:_4aWeU=rF1@i>rte(3B(rNq#hfDjc;wV^,a4.L-l0rW&Hp=,%%clp@P7lr-]t?N..AS3urb>,n[-B_PARGVl;8nx:/BpR%?B>VRB2poNW2Sda?IrQPD'$dA$/mD[kq00CqOrSoEX32I_Z-LQh*QY[1ZsEk85^holq<feEGkXu'BV94PH*%',sbJe?-c7mt)>-bt+6lX.d>hPJS@rp6/aH0#92(5+M?8&h^/Ltd0(<Xrr]98PYjjBrl3dcE0h9=N2kQm+_X)NvTDaK5$%W<2Ve4x(*fYDA+0wR&^`s9-_uNcA^9dGk?#=NP?&*Ua<'fG1Ns]p40<wEa#9m^<QBs<CpOL&mhXneesc2K7BiC5,;(;mM,-J,3T7mVh?R,7wtSuCxfcIqpm+PO[3#*nBuhtLtb23eGJpejKX='k)W-Fw0Gt4bWA`8v4Ipc+2&G41.a)<SusE+/n,UN+^jKrHm3`YRs.4S.iA1'GB66(skWtt&UxLm3*kU2.5MG:WNJu`^p9+*&'c[@#fXQ)?qvA(GBAbv[T&KcSw+r2:<PO)VJ4,`C@ALNx$>Y]gUB#El`d[:XTq8;JAhG?o[w.QAttLR_;=G4/dN4n6+7+[KZS>?e29/Aac,TTsto_#'u?E)^Ch]S=2(>R@Qed[UJ.hJ<H?rxQ:3,V019kK(N<or*8XnlsIi*WKCe=b9Cfut>3daZHWh8eOwg`_+>&73d8*Jl9(BATfr8ZhdIe:&enpMXU^&*tK>2^+1fZM#R](??:;rlAZ4Z>jm'pLT7(@>)&t)546`h94Lkn5@)&,)onW.VJQ@>:Qb^`R:?`tT^/''Da:E@SOhlUUlw=ZNfoavg7x]1U&v:m+&^(AFsd8t;xd&a]?1Rxa+*mQJ^LuI#=dnnBH03]ot;`LTcmvxn[ALsWY3jd_MXw-7'p>wYDE;u:7NA*aMGcQF/J/Eg+#aUX_P>,sGHfbVc_gGKXUlkt@ev7t&YKP2b/]x]J4X&s/px>g9(W^Tmsh>Q&*iCc#PDbkW)s/'(id-U<Um+9;)lf9TTZc<R3c9V8I^DB5Ug_bNUw^q;f<k<>Gp^_Hown7h's[s&C6Lc4@v8v1PU-J_Q<t6#%Ze+g#sV6>pI``Bv7IuG-0lTx:vYD?G`cYVXIA$xLv/0jp$?^(;WN<c^G_OaYC/DaG4kO[q.H`OMmPE^3wVe7^.>o?h9bkMg-eXP#IRFBOBr'NFDj#8p2$T:1`vB7Z2?n3u#[HnKiZK],]8q^UNKOYW$K*#80X[_h:=UqsQac[c*fJrZk=.9:RP?`tX$M?*t<dXmV8lFaU,r8`?ubiL7m++j3^D]Cab9iZsIW7,Ui([?w=AEjEvW*a]BsO<?/06qMkm,CJ[=`x39RmkEW(N@((_MrVoe//G1fb[katHxb*GF^qCgO.<GWdZRa@WX7Zf/=Y6+QKGxjxb?EsJm^bE6mbWcU$w@^Ej;_t_/X5XZ$Fr]`*1Zb[p?+[('nLjbf;[_a<`:2#6p1>U(jSB,=R-,@)rB.3qX_%RMACjH1:sUsYfXadk9wtGONOIrH%LFc49vW'O'a8*qJ=gXjkD.Ao%WK&b/a.M0HYuU#TrD-1RfEbZ+o*?N+dO/qSU=GvXQG#CLLR^L^pXL_6>1+b>Z61--Y[gRQQu7':/.AIGqp/2fi5K`A1dL<xS/p8aS9*hv%fe?dNJlRZKu<+IBKs>JOeM?0o3kw-9$fDW*VnG^l96)tXZ7v&x#,c0/OHe9Pd4#O@Bqw]'V+Pv@^EW^Ni[BSu2om=PkKO1?q+J:ca%FuZBQ8k?,h3-M*A>_8a+2$x;J'<h'KM<,WAUcO$-R]^*eK@TPXeqfl^;:?bvqoI.F7Cc<Eq6d/O@8Nig<mbnqoK&H4qmkUE+vqnq<=AsCFGTNL`:+[O#PoNM6@T7k-_mSx44xQXk1]20t90V]V-AP*]M%Md?/&FBM*L8Dmc$kNe-N?<)U74A;9vG70Ep.f*1U@#Hk&EGgnn(c2:1'Z*XNI9pc2jSL%u[l3T6TCt5Zv$Ig_8+,x43hG($-,7E6_=6jCB%3tMGdjebsFx`WeqkdGRc.nvFm*[F>bVPMAg]T:^(UcO<UK#]Y7^9V9[QHxs,Pc>2wMBHoaA4g7=#?QD-X^fso=ElAHMApBT<KndWUgCsmSx4N<JdOOQ6:Pv4%=>t76dxL57.oqR@WAu-LN2-Mh'lRpNgSM&Qpal;8F#$trq@sOJ)UZ1x^Q%pV,g),n.3_1Vh0JUupiuu'$WJ6EWGf&A0emD^l.5=vriYg)bdfbZ,*?YlC1n;JY#?3Se<1^PJTUDtdT:n6M;0k=o(AV%7s0ncFh>4kXnk/+=j&@@ra#K5efL>b+oVHWc`S*gh,huu]`3>IO*U-@:SAZQ0&l8t`k:]+J80A'-7EZ=KZ9/dY28['&)WdtlP?O+.<H-.s:S*KRRln2DYs_HML8EWQ@+=ueOAoF3Mb$KTLpBUVfZN-9fjr5A,qt$m/SrU^ap<:>cj*[bpEq/#YnV51[Cb3;t-0c][hMDH?hb;Nu>$tt9ibu)@r2W$f%oI1l.Ct[wPb^Tv?eIq.IYAegGv,BE?`fTVlD9iBmmP6^KrMoHQ)gaVi[<Z:iuqLg=I:atT[W&eLdNiB@)%)Hc75tXseOva+4+S4$7N<]QMq)pXg7k6#oFE:sV_pu1fWSi,Pg'6rhp>v#xP=KF*`U:Mtvp2:aqdGC+Bw8V926hW_l#s:#g,D0B8K:7WN&@)S'kU/:K`;;-ZUnMu3)]89G,,E8G2Hg,]rh>vqfeOm]V:*=eA$c#EaR$94$RN`4L7AA*hH@%7)>6`-/:[<KkEJ,]G([;7(Oae1h?gdDupO-p6#4h*VoU3Qb`@0i57l,bacO.Loit2kVJjk9_oewBbYK(-9`2x>r1rfdkom_qsIhLjsU,A(MQ9vd<IR8N;frC*S)2Zl1-+LArUL,i.ItK(*RM=W<@%,7Ju-;;bGq[LT<Q[QRw5K4$x_@UuE]RWCrMcO9JrL.7?d=%]`IgFbEnFOo-7Zxd9m(jOmXtGfU]dV:Rv4(MdH@OGkcm@P]AR^v3[]9nG$6J-x-9:M(R5+gF],(0`B=$$$@A?YvP^aT5o#dR%*k^d]9]m3rm11E:D],`a.c:R.@/iVoa)hiX+F(HeBj2tOD=Ebi'n^D*@,TaLl*Ljo66)H5-MnNMSUw+d,MR/4;)O5WZNSwD?(7aj/Z/raktcUNtJd15R=mtw(i4La;^(J?#4xBqC_qxr+ik>^DRla=5jD8ZBeHoUN[ar[@6:^&=2Rl.'5NLc(JA:3W%0qI0`*i'n0R1is%t`')';j1lx&oR#A,XRFaqroXaa&e09$t8teWvujkjMUfxA`G^Ip3>d4*C6kbW9MopJ1._<U3c>Co(fKq-IRfUx=]^k4#v;R,Xws>dd25e5R7h:CZL)W2>)>sPH?E..19>i`k3B4bDA[5%G$GJYL4mhTvU$MY<;(x:YNKJ;DOnweuU#W(',1ASc.eEY,=YEI0g.j-H-WB;tS/S<1LaZ+ds=HSXE%4A?t&H*L`TR-Gpj%?Li,^GZ1?C9T]aR)`&JI[#r(n+*#%A+n5@&-tF1xV)CInPH;,+__QGbuKGkUmG.gCcj<%H3GGsfbDJ6o=JZMR]fBO`5*4:bhq1'SP(-g(oQ<*YtX2lQ<]%$Hs[w:=Hx@[^f>%o`.rTd=k*e='7_*M;XKQLjKY:'1g@,gG=f6)<(]Y=Ss<m(wa6-e58B'(L+>I0)7(.$/A=x77Mb2M2^FmB@?v_R8O9$ES<Pf*V6qU(q*.,+;,&ct^Jq[7X*UVT=mBCGTro3;,FPr-?[$0CGW^(RIHIjBjuAMkfjl;1uo1<r@pBJNURu'R0G2@Ogd+viP#_&mva^fAQg'Go*^RDc7ZF)aK1T0p#w[TNoR$At)$wh>d0o=I*#lV(n(Z*^^_AGZl_gk'Lo]OaKY2'ZsUR<@2VR*#5@=%#G7=m19ful-lh[/7f=Gg#O5_$K$X31n-pZpl&6E4YsP88_%A@K=]9C36r:fFX)b7G1PRUT`iHJiq]*U`qqA]VRwIJ?f=tH=nKw'><i[s*=?v>kf3u?AHjb]OEnvLmH56S6u<PPLgHBv0AAQi+P^+BXu@_k4Ru4V2;:gwj5H._@TI?ZVd[$5ohMEL9t?g(1h4FuHZ%[+uZefRb-0w:@`:1..BePO@ebGh<-43Q6KWLta0I5iX>ato9PxwJ?E)J*w#Tap;gcom2ZWK8-[WsvYk0fTO4x-I=O[O5a*nK*WnVE3'Ekn,7V;@4Vlra*wc_Gmg',2DKIAkODF00+Ml?@uL)^`/6R%EmY?PdMY7H[37=lA:JdUF&SEI+W*e)1rH2th+MLqgG_bwM>wTIM7G`@YnA:lKpctMTTP^8u/OmjnT6oDor,#N+n<S<MS=VL-0.kO[B:T3ENW]UerMK24ML+Ee<K$p:q0rgjh*Wi0QilJgFxB6?9?FmKW-'''BIO^#@3da@fro8EeK[r).%YSKawtr$-2ST/M@nm0B/C@XRp5?Ms@#Y0_F]i4-Qe54qwDW(0a?<#2cJjH.fYfY@>O`>,EdZt*+FG:c9LMZfhY*:)q/7a?dHG'h4c/E@DDWcP0Xp4H6Qus;Y488HFtDBqk(cMd>d8a$fSB38[+7/Y/pt+&qhsh2ZY#x:=<V,-LI^w<V</o$>=+apwL_fS-(hc)bZ9VR$*pgHO1gq9lFS0EQZ3:MQ&.O6:4B3uICWx4q]0#Kb@>FBD%h59AdStaxZBL#ZC.+%orO)88fL2%T6?L8npbPc&klqqDGZ%x=G&#$PA6#lt1q0d`/,qlOP%GVsB#c,>15D=9,EhQ>'OM9AD@1g9p>$Ss4rAF7POC*6YZR+3-Y(7?<-+rg+Ai8CKZI+E4,Cd6)7e1b?/xmJnAZN'Q[3]=H9$V-SmnZBl/gt&BZIc%0D.En,]R5j)]URUNHIwc9^0'Z+Mxe;7+OnEX-D@M4Z@)d,D10IhcgV[quRu$kuV'abRt^EixGFo'N8sJVbQ<#(mSk(FCBSq7TC,q.oRFG7V6xesVQKXtmw6IN8Z8UY^I0A7<mT178mv>OWkWEI2/qI]N(rlG[@xF.i+n#[;ZB@?.;QA:-_1g$2[+J-X@:nP]r=Ld#-$W.Wlt^blkEgC%a^c'h@JZD?_hk<PHZOdD=s>ZuF<>4Vb``cMkw_1v.p^;r4kY*C:RIl1o/uVY0aR8,karCoXrihWq`8lZYeYJV=Ss0'0.cpw`w.9[L:katIQ8c+v(q7cQb+aZi&3?XC3%*W+;;Ot6CJcx(a@rv<qp%Y]<-RDl;lTEV&^-N3?3X4J?,2co/VBT[**C+ok+WEQZ2J2x4$I1_`1mk(_T.amKpT$G4F.+70V:2R[k)p4$jOdlCCE-'r%.#4iTb<;K=uU:bToSdHE'jtL5@T%QFn0.//6Kc2Z7j@Rl(G6n9MG1vB+3YtV`dT8RHb52s`6aO<jl9TW-IZh`MuMQcBR@&*[T'G>MeQe*.w8Xm$X?t.'>V(b$P..Cbr5l>@#:mS/3UUVJ@1+*Kwg6s&DdJjY?3;:O17d?02-;ZtZ[+MasKU9]HqH>cPTRb564;=-I@bZ'^7bF-6G<l_1:bQaXnX+LO3RU0n:.)Wegmn88x;OI%m&rue<T37^G_(H+*X`:?V>FT9Ggi?(qxoaT(+wBh=nqTT3#S6@F?gH1>xn',++x>(K/nX1(eWFP1rs47r:`(gY=5(v0)W*`<0]@$JnFi7_DrL^#a'^qWC08)x#QOxvOg<YW&lCT^wP'0,*<W5?.vfx3;5oW;90<$[t4;gkAemt>.W?]1<Ri]69IhI)qnUcSINWs8Y.j_ZZG**2>AB?<:./xB^.Lqv.:H+[*`r8ngbcr(xZ>A^(1&RBg,=1#A[O@#lv:&T4'8.EXS4`^;IY4fP66GId9Q6@YaMq/)/]>:s[TPki=[o5]+L#G)p+6$1QEN*#cn/LtTKoOuv`@k`E3_ObjLo:EM(&>?10T;YJ5OU.j:x(_^Ie3B(e*VZcQ'lH5Gij9$Z<X'N7mg.b9%5jOSH2,/pD^BUOs$(j?rWdw/3F2ok./k7]*_rYZlPS6)EDsJ4HWI?eGmXP/3fT`sMWHP>J+$f(G-EKe78Y%T3WPr5'Ax'fQM[),_%dJ8WUir?A;Lm<&G-jaQM=Cn4Z/_lC85sP`p_<S.k`[)%BUw_:FVa;l]ugTt#Ef@eN@5T'Fcn:t,$'HHo:@E7A%SOMN1<V:(C-&]N7:%TdFL)ieTuV6r9(;vEOD)])DEnRl6o6H&fLkhtS4M_4$'B<&+r@sh/d(P9t)g4*9SGj7xIO9;C1)*a(Drq:Q=rV]pM*SK2K1D)tffZ(9]6XBg:eC`?;uF)tijvjndB(hFY=Fid,;RIxY$M#EuKtW)KBn)<El]sxD=McSw`5Y-?RX]L'BEU(wjkAw+#:&'g^mRWdQQ%gG'U>a0TpaSNR6pjuP+3B'gT8J)+]&6h4jM_t7Q?=Aevu;:X.q=IFo=>9T4n(gb+-c-5La*`BJSsQ24;Edk+4/')D-ieLUjpu)TWV4_=O]DEZF&1>r3xbv)'qfu/:pV8/RtcdT9^l0CUYtp.sd6CZSI?GD%IC8U/U'NsrhJ$c$N`NDOq/oK2r]<81@@Y+cB.KscZ<195*0i=*GuS?S^lOQRNhg&+9LtXr]$/;J4T'_@&?_WivF_G$i8FkaeG4PQQw=/B9eEBSs2VK^UP't)1oOFe&W_xCWlX39`iN&;@brxhE*XOHN/UJ[ax7EVcoCqgkZf5aVf^Ta)o)nI?9cB17R7Ss_#pPCPP`*`(@1S1,3kqhT;UfM6VHrk]vc]qBo'JiJQ#0>*v[+K85&o-x#_fJ0-</b_(`%,:8Gc1*f+q=MZ[Kkv6rJLS]qn(01jno&]i]Mqq``h#EmR5R4V6:`W<9xpHV9s9i,=6+*'vlPwtWBVWk?A=d]?=btadh<UQpu0e2ONUNU[CD[.lxQ>n7W5g30Ev;=CV^vP'(_SmwGk1='M'dn?L,dM^&n5/V'O7&`)8*/7_^I=<Nn]AlpBc4`FSE+N<vUm(]Ga<`'6)&(H[;Y6OB6UJGtvm<-<h+Up%/eN<0('ML:JkJAwb[LfEmI+[@sWpq]ILcn8&G0^#x^fJ.:0Y^s((g`_66/jkLt6Bv<aHw9[N'M^Je-J@vVr5b;^KA4X,^B@Z1FYB_+,pb<*88g:K(u9(8DX#aG5llxtfxIXJ/^l0$<q/lkih)b([hO-M=MN]Oed&,qG<_qkP4;c^M<?2UC(E'[`uAshO,L71MD@6PHjjM3^0$Ph/X4b@J/vLklkOY#Yf?L26Zj>9L0PiX@m8/^1'+getXHh(xGVsU7`t<Z8'G7laN2ZLhZS31q<B:lZ;%[R^rR0g:Rj$cw+V*1iBwDQ/q7<Nf6G5V7E_l*mTkfR:4]q-/'mor,H8(VK:,pV@tKAc@dl#1..ZB<ahp#8&2PJ>cgZqHG@rn%;MYp(`Z1K*`]l;-5;Nn.i'H$/ipQ^[j/t8W[npZsTQfrDq]/xO@t4]`'L1aX47la3/W;AZ5++=C@-(AO*4?5GAPC+G0*oEg@PafXT;(7W'%6;u9a9&eMVZ+L*.j;<7ZVgY;*hP3*9As7(v5%ILb'Z(&T2__21FaT>t4&JWDMtVwh[6)'R&Ri`I<7LY4N@eE$?EBnr#u7Ljol%RXoX1<f+r$uuQ7_C7*f<;Eg#`5g/C#GU8/sKmvjMG'k+SV8<2<j0J@/jbt_*e]>>G+j7A3m9CTSV3ZjRq:c-n^ptDSuN=44D%:(0tY`IVC<-$GrDgqlJ<8^3SSxL#p^oM<rqM=i`@+;q<nb*eF]CH1hs-5(sx^4rPmTKKYKxNS*Y]IG?M[a51F:p>-M9dPH,:_3B:<#80xCS,obf+3OW(E?.[1*k$YfDF>H'50>/GOS%W<EhS1AC>Koc*S(v/xJ^)NZ-pm[eH+':27ptfDf@oY2A3'i(6iFm0IOl^+232qiA'YTQkH7U^[.a@U7-X@TSbLHlW%#Afr*2f7O3n4HAPr*Gb;OstY>)5^UT+i3u+qhqXwwc=k?A]'2D>B+#7lU-'cvW##A#V$4XR*Rg7#]>?L:$_G?:w`.V.AUUI7;brtG<k&d*Y5DPn=;;a'HwL-tCPckBG)#PEn@036D#m-uuB7k?=E6D?eh,WLhM`83(Q.aP/*Yh;(oV8h3cXcT9fIn#V,(q-Pr%+$v#%xhtN:4'i4Rp8TTi''MM(n+0*/@G1_]mbciX2k0q?C4LEf_lpDgwcF9++]dYcVptAj([-CI7VkkMPsu>;_>]6Jmx<'ST26kSSdlW%&r.h9nNE+2^oGR^t*]D4WJLkr@lkSP2l$WZO;Za+frNrq1;(#`iIU>7Hb3S6mQhp=aYNajO@.<<5Q(riJ_7m^X`Eo3?KZa.#F,OOdVDhJI$CeD#*@MWFMZ>mSHs<kIk0sd0VET3WTY3su@%sj&IVE8`WKQ_2N2e=s7B(0Ul:aQbHil%45Zi31FpQK<M;rQF[W[sTq1Y+-O3wXNl8@f;o:ufi=x+O9Oh]Y<;P[]fb-u&n1svHT>UgVb.geNv-@Rsr7l^25b6bJ5>^GT6C5+lAf8x;k0,0CQRWOF`Y]]pWtRQA63,P#=MW31u--`&hPP.XXe,'MNe%xg$aMBrssk7B9(bFs-GQrPkk_YWo`S9T=&4/W<,Nr.sRjfg(;c%@I7CEu1We$@,i#Y313]bG%l_:[u7KlHSKoU/MAP7mDsi?(H9BH,S7*2,n<1rbP0+qN9<MIQ*P;Z.Z&nG6X+w*W3fb;_M3&Yo2Ajn7I9MiVC9IZY)B?egG11TOs5i+dPkNSer,sF9QRc4'gd#XlhonxGN`WOJ<SnVAMEY]FEF7p[Cp-[>;a(4?/V[LdQAKQPO<m1:dH1:7T9qan6pMMFUCNYfS3T)86JLLtTBIL^#+_?@(Z8X>LL@<:-$sqa5K[9'HiGH,l-9,AolUFW#ADBT-fiCtHo[QP;.k*Db@tZWwX=kn@<<E&GLo,JsYaKENK0f44jTobjw[hAoLpMPQAWt4#4=v@a4%Z,t3Y?(tg6u9ZBgo[*a@+t$4(B(Z^-5s1M=Q.>',bn^lXFgHv.4Q]]14clVI:BVG-nsES:j'[+NK4hb&NI7CVJjvwQMB<6fe,bukdJ)R:<>_*HQAu],/H56fh?fb@q^;-Ysub%Q[[@,UVOj7@8o1_MZ&jU/2'41>-klxCx8FP>-PMolr*%U]r3mhgka^r*dNiu_)uFnjY)-BN(#Wd%dCoFJ>VieQmlcLVEJTw9,_4Xc1T>3LKXqKOg+YXe[iEd>bPZijR0l#:wX<GdDb^$>q9TYM42]W9l,Mv9bjq9rrr7l/5cAinklk.(g.lbmY_qudgLWO;dKEFx+Cb<FbM/gX::;-t*>rK,o=-N9Qa]5Q0OMdPQ0#aeGW/<:inrRpfRH%v7%QwjkaBJMW-kcqnds@NbhRPdMM[XHU^+LngTMGgu*=hHcbEQnY'?rJwJc=110fd`],YouA_gE[^Mw]e^$rqY)]]";
/*
krpano 1.20.11 Videoplayer Plugin (build 2022-01-13)
https://krpano.com/plugins/videoplayer/
*/
"[[KENCPUZR8jq5VCRq7eLv_agm#GtF*AZ]+t$JA'K%/sH_sBX8K4f%PKMQchPTgN@<Fo$+?J,7QiS@bN4vEO=H%;UH78C/<hx6BogJ@r;8HVp?Uv63:?J3[.W$gF7m;8`a1B6EFr=):VTbMdFC9uWE+mIohUwBea7XlOv9*lmno%(csMX#NAH=WHCFBvdm*N`B?p0@[XGlkg5NJ:6#p?STi_45;1,ZH&:[_`U+]nrX>_==wL>cWhv<Q__&@7C&S%@TB*R7b+n=:)'NC/Im>E9Rt^2D@Yq/r%54MrV84WFSnI(Dm@gSd6<mc)/U1Y-JE72j_4k?`OH&7q%l0/s.#kS?4J3..*6tDM7?_H*`NnmD7FvqO0FGl]xAuuY0Vk2IR_L&r68j:UhsqYC2:_Te']1sB5Ah?Fl6xho&li:[/I@L0Y^?#^r:XkwXM-:)$-HVInetln?AH:0w<r&/Q8rV+hYUek*K:IQ);sqA<34AgXCG/rV5oYKeLRo>hDe'JqUR0:ohR[?SJ4l7VSREtX?<jU<Cn8dL_;d7',^$H&h(PXuY1L`sH[Q3v5ItV&v00jIDCh(P5:n*U@_XC=K[<j@bh=OOVo9gcFw&siJs1LEbPBEx:?;S[]Au<T`?I-]$ji-`O=eOA4mJd&liLv7KQk:&j_kOda`M,m5tq2ialQ9cQ$1?l-deV,ci2I23@_>Kd4l;A;0DD1j^ANBjB3?$vK$rJ_RHR4bD?dlt^Su`a_#v^/v_FvXEe4er5Y'F]e-OQU>pdRl9YbLQZ'5(H#t*cDLM&*He,1;,TR#W,M(#mGV6n#KJ`f#pcPVK$DX<)08=l]rWn^<o%JFk_]gqVA)4Av]It@R&[)-(4)/qqv)u5,M5KtZTb?*kusBbfNE%Lx?a_Hf9o7rOO8G8$t;>X0wNLu7NU:CV9FK?+EhI6$%]&%J*R'T=M2gsGHf`IjiCPCDcQ<Mb[-Tu%RlFr']7IHW:HoZm+F1M:]a#'3h>?Mg@-]@]Yw@d+J`l3Hw'$v10G[I$.EMRbn`H1&;;Eq_kkDRBWq.CPCPpBER+R(PMXHj;.KtEoOp-lxA,+<B4Lq:3UXI,_H4YA]_ujZrGmL-?F6:N-[=0IZOeqfp(Rh+rY)t=urv,QEN=LNB7=c2)gC8?`fMFat3#jN(QZ&407BSE09jDo12Y'oif?Chb(Ae,M-[*LYA7m5<qFm4wME^+X)#Eq-T2o0Lat7]OhU>@9;P64-gXN&q'/m+$0eYV^Xwn[rf9h$/Qijj@L@nC6W#k3N>:I]8AG<@*CbAnvn6u?$wYtt]Sn(h15EH)4hQ3MFZS,CiDF9VLKo;SfSFkgI*t*(Ss-B247O)S_0FaQ`t_F,J7X`c(&pc$[_1O#)&<%4N0ruW5Zk>d$p:kQuY&23=PDC(*HO>;xhPJ=-MBIYa4s?jo7p3eLcZACO]S1JRQgF/J6=Nx(s'UTorNIMAX2<BdkutWPG@bjO_WYlNps_`?4=#srAG#S[qF[RF0+Ylr=R$c0'jChkiONjx7If%SKV]#sw0HF[@5F?SY.cIgLKM3)^U,#tAZ3FY&'8@WBv>0<o0dSxCj0Bme0P?tbVM)-P-/W_w@.g2&Vnk,WDI#7GBW13#M0P.$(@^L7JU3/4'@69+Vb($wSG-8.u:f3^uV)fIcCV1]ISw3:Kr9K_FB=MXZGhcp'd3$QDjoW$H.Sx`dJ`+R^[Le')s7-wA:jRLRhn9TPg2w#e3]J,pl%f09Cbk*v6.CaVRDx^rC7;TF<c8uQ*fF8fG`%dr:C[]qWD<HqU/XGxastgvD1_/O=aK`=>]lns$jXp@=bc6VlZ?R.q?0c)I)eMqi>LP[Glr%9?3(T*p>0#6%JUX(+CMa[OwTGx>mNi7WkUD>kG@3=+&6rKf5u]Lnxi.m02Yb>q_@t22n?_<_Ok7IYK[hBp%D9Nb2]TCgI*aYEO57qpnnHwXi*v?SVx&`R==<A;J*:Q@2n9-jRX6JH/wccNir(ho/KHghuRpJ`2%bPHcXF/+FFe;r<cxm2pG^E;j,t$<C^aSeQ'YN=BrfcBdxoTph1uK1+<r'Q)D5ClLRK?[m<?jVpxX;[h$g9>:=FgeNpsi&)4j?hCYq[piP_LkEdF>o'A/0]qt`vd]hs1;P_cYUX<AH8R.?2FH>N?n;W8Kai<N39doTq;.Og<6bHQKN6ixgR:.kSh2LJ=H+cDbuV:OLPZ]Ol,L[=,a%jtr$<;0l>%'uo.Z/6OnWi0/?BO]]47^b:$J#Np:]m<Yv)`$:22eh3M/MsV-PnCJ1c'KRtXEDg0F1o9h#PdaJ$2.h'g#Q*`:BvMZ4$oQnBTt7bX.Xr[&UWri=^.L'6+L>J=kjo*]mMJ[*72g@VJ#2Kcv86)T%sjAHY)>@1B&Ys1vNXWWI2_l,_@Z/TOsGct@^TSgj^(n;bXk'rP07U$C0#d_hM9ec?Q=NdJ#d?)q>p%0%F<HQqKgsVDL.`E8;mtWUD-cHU;)PkS%sXJ2YXDq)=Y96AwZG5[4kKhrK?[o],ckk8R^Cxc(>7>eAb@K7f6[Go'@U4t_e2@]@6^ob)qplb>=WMEWNK0S[QshZL28;5rv]@P;X'[<-oH-p%-.p<FHSvHf+$?3ZbBojf&<R6-bgil3O)s>UJ[8#&4dIA[2hw%nWb:DK,C2oK2YMn(5:jewH.6:X`o5ou(6Y5l]Y+D'XXxogGe]waA@eX^j'mH$'[=;u.;aTqldqRB2-wRHD-V?g8I).Ia`,*$8uljS=W:MA_icxf*4u'9BTc#vlQHV>=6*Iu2o)]GZiblFM=vsM.@j[+CoQgC`+xuEU:Q:,g]]fGKeB&c#E[qFn%9Y1e5u_-%i%X-AsnWBYuR'&Y%8.g3ZV6A_Bf58tn-DJR&;?cIO+^3@3X+.r@$]vpb,6NS*9jn4WOke[J9rEibB>B<.8.F/7VZGS]mP^DjFD>Q^N0DR[I9-=7lM`M=?OHvJ>NDx6I7xn8+*_8(Awo9Hnp?(=JWSBi/qPVlYxq@&,K7mURR,$d,vqd$Q(T*Kb+L9r0>#TT-<$hO/rSJd$=Jr3F.lsT@2m*l<3:X-(kU3MfL@?[A0N8Hl0F'`141.7<Bv.Adpg0F)mW:mY^1#(wH%H@FuX/42,FJ<t4H10@59s+k/l&T5m)-,FIn/.U't1L6pqmKSC:7eP'C>rv=:*O0xeX%#H;*Q*49=hwa8h)J++*m8l[Z'ZhkT#f/A1MX(m40$fERla><'VkRAK5FSKmuuwmBqh&g)ZE,'P*jUqbaSDb0X,#_54sYn#nwa]/K0:B?KfE@#PtHQBTwL-FFbhvrM+xf_>T).A%w:^m#+A14FHt`mjc.fH@'Fg&AL5+,?e<x6D_tH>%]??aCSStnKbGe?q5VU+8(#;o<Ii5e)[f9BGi(R.ZZqEdK]7)D9Xk5tUh8X8v*@MHsq/$O'ZNkd)<ED3(-c$]f+7JQH?FQ[sIUP@Pw5X%m61*0+N-+8QiU%WY61s8-U0aqb&G*+(]>6u=P*IabDK_<(#C336iM+L*v;C#Ukpu*RsP7Cr_dmtsmnK=JiDIF$4Ikh1,J]QO?,QX64FBb3.0`EO:*Cj->8fDk1$s+cjoOU*10Jp`uXQ,`JX*9G@%r@+9sb[4CTBjU^20DTP*Dj`ULfvBLNIw@?4pR+(_&ehN9GStw*K,B-Do(%^uf*qG-EQbv39s1aIT2,&]xE,ug.8b3G9QudwqpCj'.^YtGrtON5VON;Z<v5*wpR5&7n1^adt1)9aJmv9KSS?/B57XBZFprkO`NQssIJqre#Mi1[,uuj.@2;e@fHesCw8FZ5ge<qlZ_Hm6aJ@$S2-(@s'O_vw3[#9FeL22.)kUt=MM@PdR/>2ZX&T+Ms63EOIv;RxgkE2[GvI81ZW](ER.2N]i(YEn)DSlOqBV+L3#6spCqA=SOpF?`1o'HYE%>$n&`_/Dk8MR5`dmsiI#_a0JlM<h.2AC=Skko1r`YU8F_ktbdpdMVrVdGYA*B#mjgo1SJ4nElja5S*OoGJ]J#NU9l3/Sn2H3oi](f'K0qBRE<,;%i04l4Y2L/.)AKHp_Yjct2v6g;mT;DriMhon.pX?5nO3Pje,1%N[BCXLa;Co&_An>-DF&kTRu9[%]k3V=Z0==k5,SQZ?KF3jx6]B]IKjo>*rml;4vS?Pw?sFl$CRJ>C.p:eVgqd;sqKF1GIpjx.u:px:M1sE7Y1Q[vAnmxu%m]Wv,k'^q*@.^8Wg]afL[e(`-Ot6$R]bVn5K*g&n[s>[^fv)9.nO*&<WMIYt8mLs8l#WR$G&-X,L#Q%wTiw`h^'jKQHUoH3V]QIB9=H7:1m3T[K'P(?qFjFi@]dP%lRis?w(*L3r;URIsR&QsO^*`Bb7YKF5TOhk_tlaVvhd/>S$e7.EpUL1T?ehH9Q>e[@9+t,[dcpGfU>;AFQn/.DH<r32]iuON'o`i]+7GAj[+MKw9lbql4P.4[=l`hr3&6<Cghv-4VGv1YMcU-lo@w6Fgm9#1ECg4GKMASNLUl=-2hj_fSIVlnK2&``j4I8dL+ii*2n2j;%Dr7f%N#F)t^(&m/8Ch4mTE0QYO<Rksai'd9HGdY)qS@<jqa?;.I8seT)jL*Pnw<NK:pTC;IV^_DR$Q/6+2Q>%8*c@dIV2.9c,dfq[MN)$VuSTP7]IOKiaGS.@)KTHJ>0X+ra^Is]kqt:vF]XKjJK=GBN5@j&uC3@qWUP7':J%B8;>E646Iebxum#%I>7*Yq.SfukM<KOK^Np(=mP`E2?)]i+HBmAIvB#PXBQ>XXOm89^Y-<nCq0m62<mPBc3EvC:7@'2RnxEuNSw(e,kfJ6o&6HrMev;.>m;H;qikW?jiIjD:uN]CA^$cuTraDRakIADjvs211,Rb;mj;dh@^7p^JGtT[r#PPf+6GrMZOE[bQ]D]I)WY3X%b,b;3NMEWD9mm6^hS@.`3g.T_Y_4qi^uBoGHao<NX+#/Wbd0[d=/GKeud@SOecYBr4'1345s]deb0+IxfekV,t?%@QgM:V6Q+-v8#Gb'1''HrlA0Hjac3n4$t_3=x=fCgYelruEsiu+`IWtO2Uq6G;@RGm1K.'&9SKr;ofr%%uA4$_EUAitb#^T3%Zld9xM:u<6xCSWpCa8uqwTF3TMq7(r-+bhMc6?uN>t4LF?Gq1)'&o<tl-D8_#er;pq4G8^^b[e9arrR#+cvMc[f8fu=W`(:S#UTQJ<1?2do@S]`p$[KP8`#8XxqGMP=4jI-cHQ_oXDg/*-T?k4*vL9]@rSDhtlD.m,wX.5WNGWOg1@ihMYd`Mv.0=pu9=[4'I'Zkn2Y:'DaR(Ib'7hYqXK/F:Lkx_OrWfEf%ko`cmm8R0PUG?AYWaj-#p(DLg>*])`8SQ'BEh30nNN,DdYQ2.14?8vRDtZ8Z#snd[ZTawbX?9I=2>$Z%(F+C_QhlU0A'HK5Ck;gVK-$d';u@AnTGjgvZIsqE_Snr>J&@xu'mnMU9L@7??L-#[D/v]5Ec@=jT'wah*7&?4'X$e)10<OC;tAif5&aQ@ZQk%%nTGDi%.:WKWb2dL/02*5D[Aa+^ms/j=wfccq$b:@A@2mN=AJRM14LYiP5Gx/9./N8YvUGfDV6#=n[Udq'+R@/rGY>^r&?:K%-Yo6&ZMGGP8P?md0g^*hJv5(uHAG]WQ(?s]FvvSQD@j>4$.f4WZOp_f&*tx07@MV4<eP[VM/#,)LB@b]UJqDHFd1qs_u^t(iL_lulpgpRC*]`NV&9V]ncD7j+t`*VGTP,Y&j#&6FF=^dVL,G$l[64g-$1>/aiA1ID/KH/xPNuZ1xQ]-hIu#X@t.REUJ)`G<^B<m4Y(tY7_%-tu$.'T`^*$KWEpk,PZIRM6k`E<,@r)*BOrZ*u?-Yc@,bj0sU>B7a]1bqwW((W20gI_foEL6+ENMJ9:='k7X<84QKn-RSlU)bN#vqi&uH%_d;x$0v-A4f#FOoR$pls]O*vd%%nAk%Ol43EGEHT);b8Y1m'$EcVWV$N+sDk$^4v:u<+J1mbin]T[>RQdgJde_'p@wNsIXqn.&KL-H-e;d#IuHVnn@[lqp(6)YRe[9C)UdQu:>+sOg/r-;s+]COG&(&2[n#$wd1xFUQt>3b&:DC4POm+@;v_o<K=edI%lSkg@bq@n>)wm@V5=F,*Zq//wbH_R1Mx&jnmA0>+x.aY]d>Lw[=Iod&M;k-O8EbodcWA0xZne*gLet`fFD*l*7)Vt+LhYWfk&QfP&eoli#W8MWc:Q16rjVSGH#m`[Qo'/xWRn.q_?a0.f+WgJNg]pn(*G=q[.Qf(,riV7j%4sx5GTH;>%S:H('W$`#Oqk0vI.A[eQV0m1Kf2_f%/Yqd&a1]HY:YaHIJGc_9Z*prIbp:O]@^NsCUE)*B3b;lK7:iViYm1<9-c5Z;>ZaOOErP'<v#<6G]TonXu6v^kO*P4s`EpLZ%vLSX)D^3%EOju$1xG>UrFpQlliNpI/q2OffDR@`F:V@[eHwbr/3h-jd6Z=_j2.HMiBP^xW4^?aXLACq@Y.5Yo[[XKTgUE/AL'rEh;B/g*^eu=OdSr>Wg^Hs1HFq$QMnG-,EL-mI?[h9kX<nXQ5h2]up5+4Y<p*cRDt><L?8#WLI@,i^pDaTGfqT)?QUO3H/G[1`jb(^G6.AlVHcZ;Zg_RKmN,,_1e_)SWWW]j*7uq]*m[4#Y:cbpL[It]<pTi-KUqAmJJeSCdAoimeDr#1V#k3F/dPKGXPd`=D.:$Mc4cn79TumnBtScW9pooRRE@1;sPVW7T'O;*-fU`/>ChK<9p06;,kXi^+`93C^m_-I$IdNACFHL2utN?N=H8?Aa.K/Gm,PE(%Elq@Hr`M%:Rr2#=wNKj^W,wM=mkm@._nlLHkNs,8`&jRi]-`Q<WBLr4_fE]Y=;q(1XB0bkD/-*AC[rGUbP36.MXR8:FSDQ%gu7_JQDAH)CXb^-:&Oi2>dr3>f]$)MIow4tlRZKHTK`^r.BqmaYB_qhE51@qI1Kvnk>0xV%>#%ibMno-xP2)_OMZt;:T>P^SV%2:jXtG<E<6%2GgU&q6[tmk?p92hIpS:SwW[]HduF[SdWi[nK2]TK[_Qi(Tw&_VG>-9,>wBZ07Ot<?pq[o(EJ4H/&d-th68o=q*mboeGg7_j;EJ;a7i`n;8&=;qLP:aRbItev47F*VDI1NHL?SS(tx%f;:0-59x/ira*MSFDx9/SqM?N%RjURNH$5j>]cFK0@hALiF+CX[Ln<oX:L_*6=5#-G*8MA7NYD@i(9oUGTtNZ.Cax++:mOD8,ixVOJ/GBI]rJKOKuB&+kjs&mX9T:5Y..@`Up3jv(1=&*&,%Sk9+,t80OhLrngfY96]D;32D$rY#^>d8Zf&54v9l;_Y3oqm3ehihDft.i.qnuC'Bg73s:Ct-+Us=)YWbtFlkq,dZWTaIhX97uAhu&K9@r[qMgmK+dQ;L5W'n1dR-d'7LrKS..m<WceJdoGJv@/FlH8Yh$I<%C$tW5T.tbA+X#&DMJ#;3Z(RN`s=MAjn<NqkLBEE]ckw_Mi[=N)9J(:ILUXnPRKo:BR7R,CvTsu8iRqT_eC*Mvf9sr]2>bFXLTf&OEt]B@QqkJo5id1jZ-92+^8(;Up34pmVt7xQIQXP?P=R<T5EH^#p'82[3WahW<?S@(CO?PBppJlFsPqCSWUq0rqdc?HW1NcbjJ-IZ8Q,n#_I>OE<IBoiN-Fp&Gtc2Lu+(3Lq.k)'<<#T/BcE0mF[>EHhJJPWp/*8,eN%N0mr.2,.g7%=ah@H*4'S(hU?xW5l(8Y%Z,*.$-N8nr6c[B3'g@T11oEkrHp1^uVl^eonkEKdDaKF+jE5sILNL,aZk7hp4EL&#C87/5:*7A<Sko<h^Ge[4[bi4Ctd1Am#>KagHL#k?@5oi.?_*Ali/X:]Cd$Y%$7#X3A:lBMACN;ixJ%BL[-.0-WDjINNX%Du6]f_;/tEVM(:0x,'V?hTgT?77n(o#a1kRoDlnB*sb)Lnr)01`XZc/l1r_Ys71W8^c`k_Y'$Nsa3Iiv=)<qmfi7LN<=5Xu:54.>=Y[(It;SV4c5(8=5JrS]?k,-vspb+Outc]0iNt^6uA3l,UqgcF&(q5na.sH(An%G3'*$I`83gL=A`P6`p6l1G'jWRjEm#Vf1Z17MMFY`ug:#rZS%+<feL')REvJ-L:eqn6U;i,etO#esxsq=[b$7UFmIeORT%)t>C#F:,G2ZhMtxYnRc,@K$O.mDV.&w%+tII57f6M73%rml4gN*&Yb^I8RC`hl/eof(L2O8S0$rwsT$,xEjO9jop1H0QqW+OCY2b3OXAi^;2?LXo_^#]n'mRCCZTjSVxfKnm),IjI&_a4f%2*j;XuubnKo#<b/1m/.7*8+iwKZ*(>sAa`1UU1*hf<A(oP`T^1%;9f%Vtv7KRCTCf]t^,Y`autSqkpA[LqR,8B)8d<w5xVW9cK/k68rs#:e/jLf-)4I3C-pG;/8q?ieRHS+[lf(CSwT*U)#VG+IXIhXskLPN$Z%Q;4;E?:=arRxNXZ`/o>Wi>uacl?E5O/298qhg^-k:l/IXv5%n.:<mfmhIwB2`'@?[jv+>NK>PD]U,utOx#K5Ts5Tm3I3M*I9a<nteqJELo)r9SG(b=p)<REQJoMo@aZRju-r5B+?.X'Uu/3k-djTSN^KSav7i<A%0^1,do&IFK9d*9,pgg2m:kb52(vL2t$V,LA9(7.[ZT?]'C3];T<eQA/;Y6l`06<bMul1X^6C2nt:]W(@AbhpHAD8O'i0D8eX#7sb?dLibxLnW/RLR8EA9#8AgYS7IF2uL<%<OF]8RKj*/MXg+[J_MLcoTWfV'd$/[4X:tB^ktuseiDE.**5F#I%/+PxmONDxu[&E&hWEgcwVC$BtE6gDt)+mNrDg]9O/_a^uitIImn8'CHUbM%a2Ss)SM0Nb=E5bGBPT50Mb_WT+T^GF9x`/MttcRE;[@H4qm2GO/.$xfxa^rkH4l)f#w/b_&w6X`r`qLOx?&KwPtR;+5eehHCScVN7$43YvRViA-J&Rq/.Gn9lS/>qoD7_T:@;tCR;hkSig.CZR+fcQE_Tq4A'noP#(EjINRR?Y8h9^[jv[uQ>San72h+K30RIdu<KQG<Bo;J6Q.&H_l;JbiSt)s1:]%e(Db3v.MaN)*f'm/Jkd_<&&hM$0pK(`#9i0D]4JZBAp1KIY(1DfGl+au7EZ3I7DHD+lNIZU?Y'nIctCIc)#e['OU(_sTG2,++EQTWFu7QKB_kAtW3nJ+U&dg*maZ*0fI/^@6(JcC5qOOAd#l)fs]>>d&)?>;RnWhhxk'XdbE=/o9R0L7QDlFm_/F]]O'C1Kv)I,v0ld:.$xSWx8uv1kI>/4[OWLuqZI`cXrcsc?8W.mux@Vc1WTxr/s/,,T[s(.Y8*6u8v5n)LtB,O##`Nd@@q/r+Ldm]]";
/*
krpano 1.20.11 WebVR Plugin (build 2022-01-13)
https://krpano.com/plugins/webvr/
*/
"[[KENCPUZRXN@HQ)d[o*?@?B0a@B?SrPm)]'ctDx]%&VHChb6s'SvGm0No:Zl0sMrL=k*[m][1@$@-mf'tRLp:u7CHJp]#<r613[d?HF/C<E,oNfV+18#F0wfL1uY^LrOO'i&MY2b.R'&]<EdS>Kb43>_mWs9W]9>L-3T(.Zo2eSZ,O2&$0L4NSjFhwqbuIlj#;E87$ZHPZ_&P6sn8rjqdhTDaC9.Q]pbh[)=eT40?BsJ(:#-TC4Ugb1>6q)Uwo$[6@udkh24Ta9@c-8[xK*W`w.XhVxS#togWI<0Z;Nvsi[tNK'MKJZwr#q;R1@3IKa9S>,]@fI.ffa,b9p(';PUc:r8>+A2dRi8_Mg7$p99Ga+?^@cRZXfadNACGpLp:#2F5_+(JZmM6M%m8HSb5K`+T0lUZKLDPG<IM<&t9,rC<tXTi34[;>skmW.Y^P#aDEjKg=)eOE1u,ault;Gu^Qd=1q@JUr@'Gw&T-`QbC9u1-7%2-UQB=@:;tE%]OSi?KY6g+6FCPon=BpSjH/mdgbP/'gW*,K4:-FGOD*%/;q8D8GIh(+uZr%H0>]e@S6<s9)O>+)#v+AoI)H3<[onSl<eJdk[r;1WlScL+?R3`:Q7%0O(+>A<9dppZot]B7srk-'qLMWm$F:v+ncuB$76b`>/DesUo,JinM0avll1<u9m<GY7/P@G9+uGtK8Iqo#Gt89a:V&de%lx(B72,$sNr-J9mOw<EbRlG8YkUmOYma<uorT_#L2;^;j)+a`693Z2X3TJPUb2%-t92f+H4VaA[-]bbliH.`Zr#5qk[@eF$j3Mx/aTY(GVV8[NexrMXu]dhwsAeg72#RfKBNXFXZxKbQSe-%(oKUStKe9<?5`6Fr:Q@Y_dv`Lq2,raFJ35+#]>I*g>PLh%LI7hate;3d&-ii6[[.irO8sRBb3mFUi<VDObbllUt7@p6gUN2?$DjZ+d1qEHuarGJRBh0TO%t:=@^R7ev$Q?e9BU*m=K'3kL@h?]4m[`)@p*suoR'g0`W7d^iog>lZqhUM30NF'dEZcYud[:NU'YT6*mfu3'q=neP_e/ciueDpJ3;6BC,_@>THH->f^GqX,qsQ9X:m@kmhtlQ0&YAqboDx_@pgb58Wuo6&D*R[3[(ZPBCT;q%dx<EVV]mjFGsOFccbeLX%Qtnv1oB^]W7,>jT-F@8pIl@+<Obvgl9[]ZIse/Vdi/KRPDk^Eg%RWABF?K15*m>KPdtDZaBcJsIu)'eMP54N4VIY+IMG_kiBsi*&m&nX6IM]+OjDxsI>pSQJ&mW;GxW-6SbML9ei)w>0iYA$7kC+dqgQS^FLL2g020Jl:%mQ%p&;vM.50`.akFuDm8o)/QM+@jX]a^12]E]`@VY:=_.ViJlOn6;`uYFQxS*BgCe5OY=o-EBhv8R-PcMxTAsWkRe5:MX.qG/E*[m>b]SNUOZgq;tjuntk+`(Dc'Fxs`I^9j<.&uN=Q[L_96q0ieHTw$P9AJq?dXFC-D?gIp>d+T%J#rCR81HP@I6s(stT(bP3ktNcp+4K6'jh6gQn.haklNAmq[/;3E$a.lZYEO/JaY;7A&18ONA($;;S%s1]Q%BbXIXo4(7c1X/g_HTmYEZeZqgb&+I$V9cY5<8O@2(nJc$.BW>Jwew4]jjtO?FC_RL1a&Muj3G$d&58,18*^mk@]Bx94a;[C#sn1>e@V@eAl04%t+u9^7O[SJSBw_V$4Z]:<1:>%*NBMWpDR_ZCupMvZ6%hMEWI#f?L]E0mZ@o'wr4ZTuXYXxk&')VJAm,_UuKb-j'7NvdDms0*LA%T-_3]vOLD8`2oL((KfD[?2kd3v#'QIeLm9Bk+9n[@':t-g7?uWVPDk,O,+]a.(-+<6#DZLiP`fmUud$R>&Qflo1BeT;S</vdHSd%*N?v-VdHGK6@m%r+odIucEE]%1Kau81FtU[UG`$:t<2pD>IJHE$:?cV>fGFt0[QUV]qJ#6f]_QJ;/o:%rQ.L28*0nHaQ3BkHn^vp<HJKZg9m#e_4@*.DP7Z00(%%mH-ctGUDM^'tbg0&o4Rk`rZ@7LK/mrQ)oCJAS+O*=[@bk6OKOp5sQDssK?m.cDNqPk9lEedJIZoeHHSWRpHdld'Q&UD#rXH0TAQq=ws]^]<n:&FTkjfCJKN:d6xZ#>U.[0f6V>TF.h29s8vK99ME<[^c7g'a`s(K0DSE+Qo?dQ9)-a_vco7M=0df8`g,Tbf<q=]`XDE*kvqu+.Zbo*3ku6COx&<x?jlX36g@g(PK1UvNOoMYxL1hma=tHDm14MFtXwR=CJqmduVXK-RvwTQJ&J%(UrX)5?)4mCIOM%nvDo.(h%ore.56P/BV<Y#k.=K[:*chu=MM6G'%Bsti&jFBV*/v9)3V9jh=ji97NQTBLkGs1WX&7OoBq%&V&S%waVmpkhvd?GCiVP).N2^)`bx3[:BteSBEg4.%tdp,0+;kUlC>]Mgn'gi+sZB*VS>5ZQ%('F7P%>p_:r7H-FU0xM+2+:3_QRI37IASFbD$V-U.fO''hr^Y4m=WKpRnp3tQOLUt<o=;aZ2kUVP%)tL;jU.`Wn@Nc-T6]cm(_R8fq1bn34G5%KKLtq<h_L#GsgER:1#SF46QH1ZEmi0skC$<^DnUBD7Z_.tf7:_2^@oCa1LoR=BAU^g9c%n;j?T)V+,Q1m_#3+sPr;Qa.p[=ae/nZ(?Oc9#uEB<'6p=MZ)<A,.H0n+;8S^?c:ds^qGE`IM#<6JUoMkRTUIq/j9oa@8Q1+6b7qRpaN)+]>RA.V)QDhZP2[s%gDH?+s.kCXr#O_v6e+7Y?G`R.1%%%lVn9JUQR'0u00OGS(uliA6HZi/3Qk0PaBJs)kr*,MNF@=F1slx83/r9dq&M@/9jw_LPdf/FZ6mUQ9=/9;`]L.$$U0X+#Uf_Dk[h,hd6C`Ff,AG(0KPsZ$Q4%</9:LbWI'rK[o)482n/QuJp>U*[P-s126=FTMhWBv#`%WS<0#k=0RV0qQeVcTd>MtWLfrVjSR_6h>jps%h(A6ZA=So1.17t>CoW8%6DB/8x59(8,*-K,>@wcupRSl/*v3Ij93Ls''iv'RHeY-cvf,2aX8*vCEe)u,wk4]b9&_FhRS>fYvZ^4&-Z.aBE$OX^jdb&E#/5ur'tJ25daMv]eT9uZmbPM$u=`O_A%`r]N$m2@b+`srFq3lSZ-mce^&)Eu=Kr<;XD_e4P0v6_6i>]I/AvG]5X5kZ'R)@M*USZiWZ`x,=%n,)Tr9HB3lWPskfXusC:Bbom^8+bf0.J5T7_.w(iNHxF)%pg'p]uar'aL?TPFNP@cZgs<7WpK&3vbnE.;mGWmaKEaX#=j'#nQpAXtFdmuII8-=hbuYfWm0oYq>6H.G50Jh_E3<m0*e=.W231QwPEVES@t=USb<EPZN8FdDM0:]hvq.e.[WN,$ZWL#qh+e1xG5KjQv?Rgd;Af8N;$i]Gn_0FD7xR84v;)HpsBqH#xE%Rn]:;fEcElmK-c,uKR]:,N;(Dubw];2t(=W5vp3=s=N$:CP$Y>He,?J6bxvra^XO27_oSU1PqSs^0L]o51%&8K_aqP'nDJ_J.wo`?%56PsFa8V:JO=t47$s2QhdOc^[A%9QgI^E^mC.,0R_02QG'ssQ#c56#S[Q]'Lp.>hi#3gj:]/Am42V75&9GDL<5'VVp?t#i<%u8Fr(Q`-]^LHopu4Aglfn/lK.DEWq$v0>4;I)RbV0Dj(D[j'5eH3t2q36nKl@Ydv;>m#DMw#9-a8R=8`H=G<Lg7r?mP/Or]RDX-0&9nDCYB(JI%W^f7tMk%7V]tZk<UjRINPlOfXBuhL_%jIMveHE>7Pos.]3fB3@5)Oo6Ilj.1CaE9ft*QSpDgQ7$ZkL^+c-S1A?q(vGta*kGTE=F4a6@$+9k)%g`1Qd:F&[WH5H)^QJrDLL?hMF,`O,1&ET<>d3Y`7-7b0T3d=Hqmo.)xQaV08>>:V$=>03%uxN0QaC3:ea46xeh?cMFr=RrJreaqher+o^8>0i@O)[q.bNA-mIsUpBDl.VDT;2.#6/NX.T(#)lVKJM'bK2TKN3PuLaj''K;`ETktFd,('t%j_0u?*#>t8qRq:Ip>EU8x7@9SG;x<RKeA?FO-fPbeP;m(2`[hmAVC*q`cEdXYKI[-hgRm_7W;l<:a1t&03k4W*`7t[p@G#9L$)Ci*o/gA4@3G,>@.QQ^q`91r.hQ75TVQ%DhSk#Bar*VeS7='wP3p8(3Nf-(@[3uba'r2TW'*YB3A;L/vjDV`nERg4XewC2rj.^tO_)CY/jikGf#Zrhc$'*lx8Hl890/`b]N4c)TmekEtDBcYd>d[x)E4,_-IT&WMQgKHS0A7aQ@^4^r,x*le*6+u.U9sj=0X_M80/ajOoC'jF$o0,$0]>qP=e5C$n@`M:Z*dXqgd8IImLotH4`F&`Shas;>L`PUeeKjCVbVWI5^iMo.96V2v@o>Ud'?WJAcn*/JT#H1p5VQ0&R/gLxu'Nwa7A`to3dXZ)K$T+^%e#.PD3l_7ZVE)W=G=65js^@L/(nDgeiGWmvgvAfQ`k2w,LvY'*cZ+9W9DYolaT*-;Td-+%Y#jRJ42M>B+xSiS?_iM6ILTZ%t5A#sJs:]8/JWH.rq(e13HwsKmAj7l6J]qEEpFJZQ'D7IGP/[0*U=nbIc(W6&BwpR,K(^=Wb&kVqi-xKEcvZKP'hna+I5J5htAcvWbC+WQAM,d1G(_`@Hn@8.cpfqHfd3Vhsrc:&e47%uSB*9f4k/U5IHRmb[(.V(k78+>F_HspJh68+@x6E<CTil^=dRU+Pkxf_DORHeJ2J^t%OnHMYc,KS_ix_S;pP(Yn;lX+Rv.,7)?8LMa'2iSGMm)4ZSR1&/pj0q)1D&mRLSQ=7B45=4]Vs3Vu+1>+2.(A._h'S=0Y3C$7Gud'r#RTl-7@-LSM`9L;&*p)8ns.)4F0]p1bvf&12L<_:[ui1uN5X7XH0Fh`pGP=<[/Vka2i9v:2c=Yso/3aaPBM$$k7LaBU2r<,-5J=/R%^Ow:el7QAU%8niF(B7$4&aVVM'JAjFr9k*1Vn,)KUW>sO?:]g='7EJ)/XgmSPq&1_sNdO$OTdwO_S-^fmXAhNDat;v1:k@)FeE/(:=pE`GCn(1-1j<gHJ4D%f^u-s)?>c$F/jL@aDZ)/n,G9k6)96xP^+6gO&>Tn]B,?O;WuMqCW;^n/Z`X9#rb@$uih>E`i2*Q8_):?,s2&5b;r+MM(X0+OMLg08(Cg,%fFcvK_623Wi_;X%T`LFeKJa-oau#u'/(;isS*W9OU(@VH^Yi:]>w&F>)k=@,HM-6ndej%aMRV]KBAJ]+gP<fSCFh2.Gb[F:TMZLuCcPn7qp6_NiHni3^<XTp--^^,^%%;v37a(2F7:]%#<)`gu:4VCD1SpS&O-96C(X5Du4Zw3wRUKDdIsa^w(mv/?k2Ldb'bav$Qq`P9LuhRj&8Qcn-kLoHp]mK',9S6x/9b(9:?uji?,&<g(K1W;M.3Y,>YMc:c$XpjFOGnEsdS0TxD+ta,g04q_@'s5a+l,t8a*XSG3>lesi@Z<$dq#Ce=ne1+:UsG`2o@xNK<bOFtrIX8%`DDG286W%CC6;Q,I'4r5ka$00E(1N>uM'01*3SWg]P.?20XXPY1[W5?nhKKoPV+:X^>nx->jN_1g<+>DLj2KCDIa>j_+`vFx_9+D>?O,2#LI`ReJ&bX4LdH/n^D4ZpYJQ&gU:4FFmnltMuql$@h58X&hW__BtH5:-le<mrKWuP(-$%):gt5fV#Zkp[CJ?5d;cQ[h@5+'kV//&i=(c&5VXhHNIKG9_v4RbgXwl/Za=YkTTZM#D&L$*enR&%SclT^6pQTRX#=ZD<ociK+UMxAoN[=D5d/vq8c>S*Q32$K9V##Qpkg%rb-ZU1HncEP=F@M8M:KY/$C[>J(960cj:EFnBu3UEK2Ah/>>qam)Fjs_4H65iYl*@uv3t_q:PGA3X.&GP@u0bR0c#$)x>we061+*v+4MhJ6]0p14(N_YLs'D=Ueu5J,=pm^i#@)*^QJlPYj$ihTVDx;9Nelj2i?-M<ix9h%:u$N;A3*J7>_M1j1B'U3;geaX1fC+b'&;J#UC(D%DRosfCw)K2kk:t;$:k/M`WH>(](cYU@9#WDZ`Qsc*;([EU.KpAYBhLWtqlS'6(mpnK[Q]p4*^)@)E=9/=1<RE.GDq-=S4-Rd.@l.kZ,<7KdxQ$*f5-J09j.BWm#De,^b(0qO;WBlm3D:rC:bN_v.>dWZ]M1ux['jl?xd+F0Rak96;*jlMK+80l6*VfF@ErO[#<4dmb=tfa+l[XWw^M)]E0qH%dNZ5p<7o=rbWnMjw'or$gPsTF%L17&`OD9-]`50@jB]XvK99BxBh7)4+^cOM6LipVl-B&)=1F.@)F<)74wF[_Jx%Cf0Olru$GmRG1b3^d6jl68=2US:&?Q-%4-9XIcX`6$R:I^O,lE7N9qRBF2Fr<M@TMG-3_0ds=KN1hil&$UH8RVl##w]Mr@v/:x6HLERVxTh(unoh+tCabU6R)0-_4@'+BS,JrVfT%sRgBFO=8#R@O)r=DGq(vZvRK@w4S<MO4p7]<H>nX8Pb)lll=p7f$IbeiZpcW(FVJo1GSW3U%17ecXapX@2'(.D(rU<-e*7)Jil#Irao*_ejJ4qv:uS5Hn_I?DE:]69QB*oFgghL5ZP*Z0wIUj=//:'i9q5</KeC7^SfHNkqig,.R&qG5YTZhUUE,Aq1jGn2hYhrr.@SDCR/T//*lN+U+/#^^K]P@'c2v%0G-'@54rA(3Y^)Xcw2KN%xJiYxr;^t@Fb]GQBbtW8MP#t27teK@$Hs@?n[%>@iC@3f184dc>;ZEniXg<DsHcMeF8S7&5x@*oG>PjCIR6q1Br8`LK^[v*-*D9.5TR`B';B/jKAWs'clbjUenak&EuKq)(Zc1jQ?;K>+VY9ss#/Kb.K?8G_/&EACDq1VpC:>K4K#p$0m[k4nv&d<il30nLAFb',aWdYbDp9tK$$JviL_QO?hca3L5;O']*`'cf:-rIuaCj8An/b]3l4x,M(3nK;n@o=eZ#/.-[VWB,/rV?vB4OJx5]tfc?XDx)9-,LZ[6)o1'?<l_@(,nRw^rr)R(c=p@sxZ>H-7$w&nxTM_h=>0`WVY_0gvd@337:[IcSGJ,-+4rmsS9d=P9fJM@=n$nkHuPL&JO>U=Tg8iMgA^h?,b_Y8%358(awO#$p]LY2vA4^Dt*F@+gKF2Sw`Hh'iJ,'4Lk5<3:v)P%_<1LW*M6<>p?;>-g?qbv#,UUo>W9J(2Ti`(FYRRh&/PZeps6dufw;Y^tJ^3X')*-16:XOC8[T8&v7Z<38mX7[kuJp>b2H35aBLmW3[(B5HM^O2c;6@p=ON#UUsmI=QQW/MnHG:sjWh:r9R[4'M>ukf=v#O7rh)AFZ+pt`P9DY,_9qNY0b5@.r@IplGI&NFM=b63/cxbK;%M]i]]aQ@=PgJ4rdE?TVw$NYA+^$LGPYN*RF;?kI6*cc%SYcLNMmu/vDK;53%v?B2:L3S1/1[_j,5=EOu/sN<u%$ETQMaB(6k9fCK,+pLE'33p-lT'5-B:-8uc[+jELh3*K(#O3K]QL`O^rCGtC#TnKqon5p`ila?XT@uLxgo/Vem2^D=GthC+@Bx3AiEHQQPW<q4?cJ7AGr9]%+SSHGlf3`mBJmQWE&&qA7NMU1_)M4^iW-RXcY+l1SWD/CiSJq,H=/(E$TDhJFf(s%E+&wPR-VwM6'AnlV0mvQxfLK(>EN-QXjx)Nh(mFJO&rn`UVQNfRD0p,J-b8)^SZ[H;;R;xTUD')WpO@((.P@C/'^XaKgxFY/HcT91bv/#1hEd>r+?P@jb=@)C>qH10q3&8.iWXA=n]C/f=F-*+_kIQ^_<@SV$D$;Oju;2(])=6hh`YYV-l>[0@]8C+fa@Apqwo#/6nG*m?^XGcMtr_Dm1%5cUK&NdG2+'d3`mJ]lFrWVV3$h]/Z4qM;Ql1<,%S>L]E$nVQXRlaL38<ugRSG*HZlH*4KA8HLf-c9L7JA^AxST=3xr,-R=nOd@*3E**+*8aaYH?q3hD$fZ8hM/KF&=_kXc)%aj.9wjB%/^6UV)$^PTae_rrDgX;V9[jvM=J_WU5@H1,Tq1<Q=1/DIvTUPfb)uGllH6a)k]WG(.F<lJ2_5WVm9E@Vu=;N?:g-(Kv1(d/UDM0@+5R:X_^)xB[S3@sF:;Pc6x:(m?@3Q@5Hl;DDUN(M54m?D$3_>6G;Nqc?UD.(90;dw)Hh[c(c<7En[7_oA15rNkPlH0BlW?x$P#YcvWrc0ZLA8=lWfsX$3#Rnh8i@6J3$l#i9I(gq&8xP]#DZ02;]5dVuEEIMg2_j]q9*?JEbT5/ZaQEHatm#8hWFhB.oS'Eg)nRd%m)+QqpvW4/N7Io^[lw%1]oca$B7RZ74$T=l$&pKcG'Fw9^-No4R7RKN5x556D2S:N_Eq@q^Ah8x'x_l^lCBb76reU8L=?.G7#(_,nPE6(pj)7Hr6NZ'Q9wC&MMA%x:dcS#O/BR)W%bL&K]*Pnu/o$X@A.aunN-@HJ`cEjj,AkDJ*?4a<<>S9dgVVK5p2TeoDDJLo9XS<'=8X+A@)7hCvaAjD3tS=Ex/ug/-0TH`+OHe;R__c(m@9,h3@unqgZa-O7.CJ)D+[G=.gC&ZCKxA##_E?p8L%]>O@Wj/(u`KXT>qk%vNFa?FFmUTNU28RC8TFCnO4HAncDwpf3Z?*G35x$N[k]gg)-M%K2;n4(VZdUB*C:NAprgp-uEc%pS&>G*510q:PNh`PP]+V>+x(UW-gHQMEmo9;eO([<oTG:mr4G_iSMP1vL6hAxk4:A8@M.q]j/te]TPI)oh&eI?'OiMlfHPmFp+@=)T_ZrH<Rs/C#lxU6u@CU2DvL1No4VnTF$$^4*Sb[9kIU;o[.gW3CImD3jC6=]$<pOYY$cHl5mnOLEi05@4&M7kB))Xvq64<r)Y'on<F3f8gK[1Y7p<o6th+(D,;5K:HmFrSLU,5B'Y@(T7:TLi^eGSrtBAXIU*@OQRoMCxT3rMRu/&_Y]MtsR^pQ6Cv8;*Z:Ei78>D%4jpt)=os-t4u15=Tx_1SF4dk+;#'o&Y5cuX2okaKJR;VGSkKv-YE=jX<g(8G5kr/WCpLp[@#?n%CLk8''(TTqZ%iRx1-dLh&/og(3h7$,&-TNUXn_Mn6nc6:./MOvA@3qM@f@k=XG#05YnxAe'c0_6RUiWO17,3Z@X5d_F4D#(/gO9ZYMc)P4S;S7rvMlpXwtB[MtY%1pVk0Z(H-Q5h*NP2Sab?Mlu1n;aQ(a8scWFncx^Jc3kw^8c1@F:%DB,EMgGLJ9s-m0uYD9qJDmX1^.i'sm$R',h??S_jC2(V6Prls#4lEJAr1`6Q7X%]f)>7eN)sXh4D6dD&xWnbATwU=$1f-2KYA@%/Le>,NO)0QJxUiQ^w#J]]LMhODLwbZib2fBR@k?6bDcwJ+V7tO]^&,ZIbL=#De13Hh0=sV)4l8Pl8[6xDm_c,5?9iB^$$rndC,T&::NKeHS>_?EaZ.4tvcOQd0OvsWr;HuuO%NH>%ug>@v.,.tJ@B)ld+*5QAR*=,Ndb]IrI[KNDvNk)iDsach$PKC&MM%Na@=OT]dr[j2ZUkG]>Uc28=m+dCUEg]w8Z8J<@(pS7<aZ%ZqGj6N#GA(;l51KREgXS8b[*4h[aJQod@CK4*n*ZBA1GuU``#,=oUbcvv-9(#CrD@#01Kad<(MIhr4(%8(6E'M0VB:cjAx'P2L:o:cf?e][7d?^ja;0e576U`Nj_$WKl=el/o9Ti7Fmp)uj=A6l8<Al10YtAJ&jI_6VTJ[T*E''`/52kS`eNPRm-Ir9P=?aV9g5_1o7M7LU/l60>;Saf<mfEh,o4^Dq&U2R0lfc#SUQIQ;'NYSr9LG0.o'e,JhiMq%<IKO8@oRWw,t:T6aC#<qUGs%f?BJE7m,RY1)j6c`Zq<Bvq>4G+`ZDa+4v:/7`]bU4*Ci6q1j:f[)dsgn1>gOaJkDw59-30)WMZ@1=JdZjr,YR%h:1ME%F&qGLgN1ju$hP[T<vQ]?$d7E?MP<Hj2<CSV?b'X3Z;&h6-3.q7r@@sbJ79t#D]t7`oX6fUG)<Fp9=ttoe_Lu`P;C8t5M,h^M7w]xpcnNu.$H&cOCprgDpdq4KiLu9q]o6A`,2R7k5FRh=t%*h6=qvt5<M;EVE'Z&<&/M7n'2$jrLXDmNU(dJ]tw5$i@#nutpalEnZhZi$>mInKD+3._g5o(/_URkmFXexF^s9Gi+5;@b7W?i2,mM849]#N*MFIf3FbrOePlWoXKaV&5U3q1?'('+1r=fh/ijjv,EVn`UE:Rqo]V/K>AjeLZ)edvm/;UWhu7(?a$.,&d.tw&)2MLS[@=(83i-D_BoLLRf7<fN3l--'0+@Tb2?+LETc^0wGXJ;k^d<DrdmY(IhJN;[srk%04)-oiFr=ba%lFT>VXtCMU[=9ef3w]v<J,]0A<D.t?P81N?-KD1I0Ll*OJ)c+H[`Fo;&jQa:tZ3=WW]gwpm:6`0_HQbp6o,<Xn;I:4hv_]P60%@k7*pptf1dNad`m1WDa$r9+UxR#FV'J:8o/u2AJeh3QDbo@j1mT)>[uXq+/kJW,ZNvkLA%<_TqdN1Tk&u#plNEGottO>`p.WB<4;L[MMRL:lG>@dKR_`WZlrQmCn+k_@p,^0uY@EG+2b6i_Kgb[4_2g^2'AbW5w>RABYvHPb%P4T/p7M)Of7Hf<d3c+ku_D(vF=25fDNXG'fbe.$HTYqC:DR0ihZbg(,9='Lh;S#W<wo]l(d-tLZ;b+5iaZT3Y@SG0Zvp)pgs1$u9U5;c@uWg]k%x$;Dt0/*-=3*/48IdUVm[X0Uk>OS,HBRh4-RXP]qG+HwU9-E:(#qG@*@fq62<E=1Wv=s[Ggh&-3JYK%eg'o?lO[692Oe+.66FE4MFb(Q=,.1CnABP]f2[Xr=CdMExG;boe('Jh@^BNMbod2B8EJ;xgDk$N3DcivAkf:eiwXuR-'BF87ojkrLi)[BA^mi'>4-uCd7].4i'n87hE&/w91'%^-'Zt(+*p1,<K<utg:GEbE^2E3n>K^+1-GKj=l.KmIFZoqs6Gt+t)?*Tg'e>%rJR74'KlvH`L=q8iH(R(0,aRRcE>ItK'Z4G]^nFmopD9/BQ_xLWhp:cp5lmq@vpfO^r?TXv0cvKh>d3ppem&4.'ShBh'@GT[4q86Aj9X>ik]`x/[BmCi`1BN&^Iu:;=A6Fu?r/P-Ug9*.TgGsmg4G;w:$jK:s'`o1LqO>XlT;?q9)eCZDtGdtS]vlp&o/]2^.`q.Nga:EF42jCKk5%V&U=:jL^d(B<`1LrV;-urmEB&H3&Tq3B'g/)>h4+?n'$#f3d-oE,>t8X*/4mp+<pp2D=S#)&%&2HnH;rRa)iFl]^kxUcY=9s+S-KG2_n4GgTUx9/9QY6[+A9hF-(0>>H+F?<J`W/vc`DemA3@QnQl;HA']*wjm:Aer(n5+dQ@BAEL&R'w$xup]#f[IB:tK-kiUp88^P7MvCWX^_IcIr#8P;vs,xkiU`0o+=Ejd22`B<dStK6(C>pmg4$w(WPpnfbujnR0MMwa4hBB.LS&qq?D'p:G)bN)5#Rj1CRApk0=I-l*db/4HQtAdlhNf;Ig@gIVv%'+^AlG?5Rbb@%S*RbsBK4%0ss-LG2=/J.&cJ#=+?H9&<h6Z7)LkfEOG]VP)4<_RElw[];0ReZ'.DxIcLPBa`F,Ee0<1H8Sia?1srImw@9ul>SCV-#mj2#N^ESthL>BaY%#>$Qd1`c:j2@^'0BOOVaIVaI3N_7G]Y*X/X2TCfQI9wFq$Nuq6UhK]A+%.t[8TS9p3*CB19q=pnowb=fGVfo>V,i_&`r_G6h8XoLn/[FjjO;.ec<pjv>faC9Gg?<+Sn?rBK1WLT/)[,FC?nmPa0V/FBjf5@u9<*=]QZo$<XsG7:<G:vge/oOp]KTpu59@xMnDnpMa1X)VkWqenc]CV3IBfX7w0mh3SDC2?2>bsH4[fe8jk//OFmxI)ko+x=XbD^KOFHD3p&Ch_U&,7,rLor7uhA.cX+A3ZW[o?B&j:(37Pk5<At[ZF7_pS7_F?i<)moD?htem6igf_aa2gYuL_k`eOPQ`0`s0[Y.jOPhS3NC@i,3@8/O9fW`?&t,S[n2:rw/ZOXxg>2-K@WIE#R+OB26?aJ$S4(X^mIgO#ZQ'n^Z.S+^.J8q$+^FoJ;H:pE0#<vOsJ2,cEGbS`Z2'Gq7en<'A<h?:T]lNOf<-a`kj=kF4e/lNY`F1:rG4#r]xMo;Abm%TYlur::2`h*dgl.;UDTr'#vcPX&j$pkBRk%n?<AdRp9;fE%PFR*'Om5Bv+2Q3jwd8/$ec88hkP,3x6Ud:+ieAY-OXN+XR&OT4C3J6)iV%1KuHq2&<,X7)2v8sZh.4<=1u],0&uZX*5:g(-BCDCG8LKO<G:(+x=Pq83MES=If41f>f^HoCDH)+[53R8n:ob,FOpkug2A*-hr8<CePJ4=U]<=u-=QHnWrhHO>UX?T*rsA[mT6[b/(%4uA*5d-SOs6/*]LGf:&+*oBX<CdY=]YowEIW@]'rwB+Fg`F$YKomj%?r>QSk'ZkVm.4%xqZ/%6CRqug@r*3#uKdf#ZN*#93oW+m/ZP)Mu5Z%[`m'na,)F]vj*v.'(LfM)^V0-AKu3k@6xd2_Q]T1=ZfCx39C*PVRw?tS(J(<2VJ_>g:*&sv?mKd*BQ:1LdQDs/frj-U[7jR37l@ir@5#mtewL_+]8Du`p,1;N6Zhv/rK_U_c4u>=Eoet4djH-rF=Tm*?*kcURhGvMDZrOM3,5x8bF-9i7<xWYYJ:_/<T,GB<)b+A@@.m3m'/+iE6r2SB(Zv1.44`LDiHG<_8$4D;9._`#m:U1P;AZk[)<C<P$1vI6&,$@L@W*J]O/h^E?G1wY_f'`iRa-_p'^,xit?5UG>q52GTO'H<dLYCC'nf)nFTN$A-3O<$wbS*kHg`52b;H'dMJliGx=MR&Kv.ffXvrjW(gkk6>$A;&KKs=qFcoZgm@%3&A;u/@s[*)J)cfe%6)s'Uir5.Kj'5==K6Nl%_JWWI^%qFJZJ1I,+HLE_6x^PK@Q'-j8[U8uk%&:&*B`D;]I^r]K1<Z.K&iXNTPpQgUY`K]w;LbY#aJhE<7N2v#8F#)[JpeqA*dDl(_gt@AqQVP1va58Y8d>#.W//M@vgwE'ODV=wd4uZ)css;'@q'2TfbkI@`JK@HOLHIQgV7P337,oDf*3.B7@'ibqqPhLa.wCDG.[q@?>K^a,.-+)'2:v,)`MZ>7&>j3O76XC%n`TiAs9[8>gC46h%LnG<SZ/WB#8:lsrNX=J?@TNM<MMoTnXKN4gnC2M&V=gbiiUaZvg0GYVbrYv&B6>#KUEfY<,Sxd[:sW^G`I=8Mw?/?TcdPNnib,B^hrawmo3B#Z(XZJeUH;B-]`HYeh,r_H$k@*knmHRWDVZYP:/;R9Z+8RH[dH0`7Bad?Ccmjr+?9*7u7iP?(H>vTNFri%9Sqd4*:#=7K.Y(Bg*K5ai<9`M?K3LofrP9l)j5VSfn=ncHeDDY(he0x1:?e-kodEg7f51.J/YeIpklX,3cd@3h^3kGl<(WCLa=0d05^%0&ENArN?FY5/E,oW@JgU,pLY^CE0nb/4l=,F[R[<E>.r=-9+W%;rn?f1bk1EJqY_wv;:5In$;/xM%jR-UY/oq+W*]XYk&6GK98*Sr^%/Vxvi;a@9dPmiJk37*SV9w#<X>G$mY-ltL`kaA%6j<6bIeEN_$,Q]JmDi[-TA7EMKUg;Z#D8<tW%g&^PHEgcixTd&_9iS2FrNrE3]`LJAmmfUm-'L:IF_QmBg=SeI4JA8X@K?qZtQvw21SQ[qT_O,XY/cKCjRD-'QhWXd2g+@h99FjV0_km(Y4*h+AQEx]NaXGkt>?C3;VP&/HDc@NnZZ=EmZ0L/IsU'O0$VDDh%gpD]IT(he&#Jt5&B9nV'=:I/4;gR(`Mq.G,N`oVXrvs:<+.(s[4[tlwAq'mGJ1sqc,?`]ob0+n9bAB9xq7,?Vb$gos)2u>eS802%8,K@_:hiMl*s?2<&E[%kh0LSNHsEvJ-Yh[l5our(N;cGuw9d3w8jq#x9L<t0w4<BT=,pgMISak,[?a2:Ga:>qALBp&(>T.rhG1`,f9Ie`>lSa#bJRwJr*^jPl^;CbM5gMW)<4>)E)-v-=.+O17;Eg+$@eF/jl:ZEBo9j+gV?Opi]Pu8XG`<x4^*ebVfL+Ch>FK4Vh2BX%arSVT/UOADN>ea?CR6ukbRN.O<$YJB#O6[YD<3:whuk(f^2'gIIZ5aF&D^F#L(%#a6f>bUn[5NS*8;,8'rfRsSV_`V.Yd3#qHp[TSB_?5-8M_-kr1aWf/)0.WC86UYK/@<Q*G%Bg+nnxe%>Hq^lf_Q6r`O333t`F'7D0.dBMd5a9R&g&VYOM`&_=/Kr+Wb/.oN[4^'>E7_&M=8'0OE8Il0FT^-?VR':pZ#D%BBAQ]X$nlqW?J6::`)`_/):(nSt&3k9'1#8Gj<&];ZYJ=(*A^^1St`o3)Cn[#PV3$48l4&0.v&9A<@(OacgsJ3Ut;P>=Ckg1VOQm7NWBERO.]cDDu+fvQr&f<U:VL.gX+Mt%bh-gwufvuUZRvU7DfD,MPo'[dI4`]w.2Fq/e3LN1Ab[V[30%rVj)Ek+q+@$Zb&rMXsG+unh.#Kuc?CrRKb(='YYGf'1<8fEg/D.?^Bctpu#a^IM][<_MO#06hi)MV/0mj2-3+(I]%HN66[&=e<$,u)^=Qtu'LhBi(lXQ*>0mJ/Lr+[)n_87a][sQd*jN+w0NENMeP&abl&_<nkV?WG&-MSJ5)fsGXW3ht?BO2-Odi&(J=Urp+N1b]s](gb=qhHY?7:4gCbd;g/2g'w_W<Q=3H:Y9A04CmZH@hxhig.qwZD$30T9R<c+SI(1kis(idruhD'v1=mU%VLnW@^nCrE`dkICd%_Q8d;he+tMIuBQ:E'?E]9@x`E9p?/fl]8P*<=M<3*cAfO-g#'&_8G+9*mdhF:*wnWs2YiJA,_JMr]+P=.3S>]#5(ft2`uxN:=%cbPa_C;v@S`Y/?N6:k56$gGkJ;djWp2SuM1&PwV[xlJBpCniKaGrlUrQ5G(xJi276CL+lqnfmuDb*6+/=OZaCI.2,?jZ7190>l0)CMI%tYfY_xU(HFarH0@U.wHUieH;3WaH*=rZsD>5(l%s6Gn:_rGc>#q3w%-F+>kj2asE;<_YF1EbV+NahNw'C<kW7`'mZPS4o-RrKSeY:w-:_&id^g(]9?C:'0+2A.6E4CnE[tEpXlHRvS3(qNGIIc[*/d.(H/Z#^B79]SU+Q@[Ek//WpF8/GFlZc@$]5nqhI?EK;D>RdiDWv@h-*E6:)%Jx?m1R.3hTkLMfB=?>=8Us?>ei@7AmXKY1illvS2v1xNtl_264_Tb,.L9W]h(>KD:]d5Hi;VA$=sNo>[vkJFV,X]YRjZgf*]$DO&0EQ%_)l9V'ZbBMhoTReI`2)Kl&omN^NbQ'@h+?cl0,u6J[aS-ES3U'R9Nw9*CA%v2X?3JrUifFTcXEv?)dId131pZ#]H+,Jfl,2ZMn^%deb?bj4HgRF+s[Y4CVV++uF9se&ie2QPPInA<:S=/8'GNTTT9-aKVFl8eapF'DxCuMRf(bVi4LB$^._Pn.YjRE*GQEmjd/]CJM*RUC0vT$.ZuBoT9IVX0;T7ZZ-iE@a;%O)6Tv4S%0MXPtiH%7,^o>8#Cu8ex;c=ok;@?kTm)D0:=kUG]6G1hlUlf2nk4Krn)x)dn7nQfIH$^L/aujZb6BM<&oDk^^[gOk/Qjm7?Fe:k8Sev:t_UAqE1]osNR35t0N.R=&QduA^Q:k8?s@6DG9bxX#,AJ/.H@+6oj*aSKb=N(ZUNAZ<kDxX+'4^(5k)kAY&&onp<XiP1<eM%s[00KmoY)IQhKHt8%XF6rVTcRNhb+%g`[9;$pLw(&>i6o(r-R:B@J[+d>&k]1^:YL_`)NOV0rk/JMSLlNE3tMqH`02INuXNs]8_a5+6gcAnD)C)<f[#7%EjD;5+BWOM$;6/0Z,7F5`us06h%o27^7M(-W3^aJt9>.T8N,#cW1u[IoN.fK8V^:+rQ/d'@?,mew=(Ed0[-8C^&,tXS2ZuBw7W)P&DPd@20eCE;IKH4:x#bMkp,U/o-kxh)Mm'7sb)KCL_#/4mir66x+QC<TX,<X'@`vdN1qTnjZ*7DNQJ,E8V[;u(bRxKe/otW.b'RJu#Y4LkCX5VhC#O5BCC*DIRID1aC.O6L%06=md#8lFuIYT'm2IKER*`Qa?6+^e320Z#p$B/n.`%MF0E4uE(I8PAEH:3*<o:VE]>_f5ZRELiQSGvL)bW4C>ca/`PkV)'+1s^Ui#9v^YN4`)5k^D%+3C-+Fn)apF#0%'JS$H)CR*<Ae+p%VE$teqbj.0WI34^P5^fNW8Vxw0k0l#lajb5_K.kf#`E<3nRp;?kf5GLN%EcZu#'5Zt?X'-A5WE/Xsa&1DH.I7xQji@[5EBIPM2`g0>Rv@QL]ZCNpRfN^_0Q&v9/>=QvgXYZFAkEt0i>5w052e<tlY2UrJ_>*[%dbAnk?gf$IBcd`oq;x>G+6v/7h3=vSB*66o9k940UV#fRo47DPAiPaC>];8XYiB@E$EUN_poxJWC;WCHw;<Z`@i48^r4/`5Ngq1;'n.C#Reww4jo-l1EDmT(U*Q909D-T?A]4,tC_mwUt`FI:/XhYh-4VuM^6lrj(eJlsnv^`XR1vc)vdHUuRP+ZTTU_6VCwJv<wSs9U.bLX&PYJO:^Q4K>D&/:o%0,Z11N3j^(i$c'rJUY(hI?7Fip+/b`rTmD-)BO6fu0.%bWB7T;p)L6T?*]5v7Xjfrc4'FGnQV3vCCOeMLNYU?&QAYQwjQsQGXUA$H*nI0q9dWo)ICSOQk0nx8N3^icn1LJR9t:1.wbs:fCgM^D+3tKgGGQf8@E0PR[?MpU_hCM7GF[M2^db1[L,=37Pd]$tR'8R0#^Sko)3.VWL8)ECn8bXMONV085qE3j3h[iGp#9#;/*5Q)mRkpokErS@)2Rqd(kI2rl7P'L<f/7^89OS%3JAj5^[j4dl6%&MKki1s<w;0b;t_9T,<6)uX9*aKnKA>01I^0V_@2Ro'fTXAgoJ<xk7/.581/_PPj;`FZroBU8Ov2]4R4V+wR&Q_5a_MUnx/j#=l;3&.-=/lWoeFvnjH)Fhw7@_q)hcvCx.PCCAmUUj.EGR38XvK,LnPA@)U;$nRPT[A5=,[FL-VNlf8v9[*R>FVhuX:knj:TjA7Ju1o&J$>ZD][R'-q^`Bga-1361-Obrrc?XJp(vw$g?l]Of+D1[aiv<<S[-AV2T-_rv?1ADTFHb&;:u%X+bLCNZRa#,lD(j/H.,1LB5/d40OrIo,<#<>b+#<`J56CA-`bf.imTh#@*Ag7`Z1X2J]_]kb%M(472kh=,IixPO>6dYME_xP&:Z./1m_E)?n4'n1w:]io9rq7*Yvu7]hR[d&>7i4Sxat?i9]:ugkqN%O>NS'=q#i[>LPQJtw,u@qlT;PE_SerPJ_H4j%4AbAkL*DR;BQ:dH?cQ1I)rIv6caWTm(9DxQ5;aSVBjCKoEZUqw+NYp80=+t=.c2Ekoh7@qB$M;TV#(uvK'k&nJ+gHpo@-TQ@bs12),ZE7&2h;=;?j.$7%/16sdTA0I1k=/4@$[J3N=ZxRaZaCmcKh82g186m,1MYa1??pT%Shmo5PNQQF'qhcvABkVqh1ovSiR/3-:ss-j1=#=Yb(<qWtcbLY:ET96m`B]-aq+.CP7A0.h1,1*#*pr<@loX?fmEx'[$ZFb?P.&t2jug_IJwX)uPr.Kh15^bRq4nab25f%Zig%[:AG+2r/>TJ*d0.:>>W1e]wi8Ysc8t/3PnIO^-M$wpwq)-$xwlLI.)k)b)Qms_AaA%Scl9#0tPSspY:GJqqR8)cBPengUTY.Q+*H>-[F.p,VZwB0bJ#2F=xvxO0tEo:r&M]GO)5n].Nto%?qLaR&r3$2$G@<7Q#[9?+D*G^8H6fkc:Fk4VPwt/ul9FjF=Z2IDXI,01]rNO5QPeb8Pfok/IFVH0q'n=6X6-H)7^U.,I8^B-fW(p:[K6(U0ZRB90Pdr'R=ulwUaN5;M.0X-MC(XqSIx--64tk#T=Tmd[O+clY>o6@Z(a=dqI7l,O'*),Km9%U^U_Q7mbr4c>Dq=KhpOfm(#[$WP?oe<VnqV3PV:Zp(Yf@2/mn.d46,jBN7rsu2L`#EgSeh37kx:NA'hN/Sxc+oF4+]`&>D@HWB1@P^ft>)-&s`:/.kJObQ>:'#oRIGY'*8x@M^l6eMfW-T*A1khr3onQ+p#:ll`<g<i).8w^j8W&RfgXk#d6RU+cq0nPeEg:`kMJ[E&.6i+w/4#67`+ns)sMEk0QZ?4r4WAd3>fd:u5<uk?.27La%Ic@Fg,7Bo0+eM:[%6MOjA%Hv['M/](Fe7HBCdw(XUiSf'&grsrB`vXrgBO;S58cwZ?RnI;#n9r6D]_2jwV^mEsFpU1Q<^ue:bprVAS_pRXImm=f4k=-<v'J9l$]_41+&_anao)O'n1EBH^0'PAFnc<&9>JVV*OSA:>s''U`Dg&jjxI::l/?LbJETT_`7H6FqZu$QA1Ao2q9KSqBEpkA-,E'E9g#T2N[BQ(O:vTk^,<jCICmZe?0w5#=90HVgdYd%He*=Ul4GR_]i^]K:f1cAW=15S;Dm]ADQeue`TgJSAbgcNmHFh.AFB$nq#+Wj4uB/0s2OTQ*^g2Rn_4ptA-Xpq.'J0*[ZNper_0AYcXl[,YYmQZ/$E(P=@W['<$a9pI=1nExxbclM-B58BsSNFSZ#*a]5O(tQ#dZ?5nj=a=14Y_n$(O-V@OW:22M8b[A/'6F'ONvSaGTn^g&TkuP0Qqvnk'-mM%M[6%.:jn>1^CD<&&.+ncrQbS5G-ea^b-00qtu@wiKfH3kAkJ[8_r.kRA^cT6.hYL]2D##K=LdEKrv_[((7xZHL4/4F$icDQ]$?VLXnDK[FWX9e7i]#5WwU@(i<V2nf8DDo0m'Tr[fLD.M2IKN%[Y0vA*SW-^Jqa=1.Wf4ec*]Q/J?=U5sBReCoopFqHn$=*2@eAm:$Fw>G3)$aV[Tkj.MA[fE`.SmOMt^+R?uY4n@4]X:(uuoZU^L?'LnF(R4t)9TY=#lnCKC2(IV+'EE)`>x1&s<M-_<h._of-rR78E#T)A1DRE><nQCR?2v3iG$&b`*_Vfg'm;YhM'-[P28o110LUUWn%5Pb[n:d>R((^>-NIW]D#VG'-qvW.K:2)quc2j@#F-B.C+&a8o0RLbf<Dl$M&?-:bw(#(AX6e53FF94`hJX^Y%2)wM&d>Q.,79PUqvEw;4#<3&KNWXuVg+PPdG4gV?(:+j[R1(_A$2E)C7J&6STJ,9/3j)+3UB%%n-J31X-eATHeuUN/Si*1@?^<8w/R%v6]eYv9i,VI#@dc-,U$mn$),bXCrt?MN,'&/<7q3$boV68C%%Eb;F+(c8/&]1K(#)AUu(b>[?=J75]v(,7MhUsaonbupcqgG@w8=C2I9]W55Zu*TPO_4:)]=.(b2OduP:x=`,qxc-kJ6_tR-,mM$a&=#,LJN=`mIlfkh=CB$4(4uxwuTBI(tFYZ/e=n:<enc:l/`9W(5^o9CJnvE^i9;V/wFg6VnK6K6eP&X0No4T%:J49(p`wRtR?+DH3^8D7LOho^+v#K1nY*M_g]GdT0feo6inm:o6W1Vxq2Mnp4g0)Y+q%LhMU4Gjq[02whJvA=w+E5+kcDLcb2Vdm,0ENdI;ReSMduapP>Y[@+XxG=62n..MdQ,h+7;Q;B>3EcANa$>%CZH@jiwA?4ce@7:='gYqrE+0B`XkIdfGp2UcW#:b=Eex2%6kt,3U^%D;b_EE,VtF9u3]mjV++1LcjeOF%j-l`DU2%#Mf'mT,dgX@@cwd)N$(br%f+B/m',<anx=4i^c,.&0.2?10M7B8+=FLikxtMZC=-+)BK?k15(?bWZ'aN/FiqHq]j-_WVi,++GJjBRaG/G;WDUxt`msj.Q[`.h`'<IDAMnJxPx__0ZvS-b_(K-MEa1S@(leJ1Ej%B4jTL+.:g>]2p[MUaR,@fT)sMc]jE8vj$%>h6BDKHkIo=uo'.rf.5@3Ya5#'W4)q^odu471rK?>G_e6o&9pGLo8:jYtXa@^>ITgG=u3QYH%&1QE#)SM0q3-TF96G;am?qj-I:dOeT>x<Cgld%QnRe^aP*%xaM51]:l.&]/Har>-n*8iHHX$T39p'@xK5<8tnBqhi4NCYLwm$=kgRVxR@T4s7i3V406=q:Z:nJXR'l/KGPs:)R[C@aOi>=+@0N]iBE2WBe3cax?(FV8*TA2#P;MS:2KuF0+C-OKdUCeY.Cq@S;+$*4x_:a]WK#%/p&6I1$_c)STL=?3%G$WFEI1H]#gR+#8K1HTv4Nva9tt$RuKYWrs;ogh&c4iXkg/Rgd^GPjRLIem#XWDxb7-f+9R;oPW<CUPaNOm5tXuSYN='4LP9Fa]f;Vb^*I?F4x>do5]IhXm/KB'9#)R['K6Tac?WRV%nc$nD]9>**RdW#G-3M(fK=JQWF^'S0I'#j94O&$sS?F6rwfld8*28-hDhrGTr4a/_1aKM8Jwokx29,G14AFbVoW1E+T;b(3noR<s+YlA9kV6-Evfd*Y.qsbeP8&.ABwj9-[mGcDu)k+1EK0(c-wClCnQ$BG',Q/%=4*)pFAB1vHlLEo''u*,&S%3VjXd9/ZMFhBFl5u6rcZo'qQo^$s0sjI3$f3W>QJ#lcSb^^d:1K@WA0_$jIBsYBUgR=jCm-1[[u'G=+&mCc(.`KF$2(e6_3p1MmQ^-kZ2Z0K6gG]qFMFk:Zq*x%r``6wBn%1/VTQobvTb%hm&JwWWR@oe5)_dgt+6c3R13IL7%<GLv^h_RQMTNiYi%^(f7G164pGR1,1XXH?kagQ3sk8bDTn(7-[F68s:+[c-[(4(c@XeYVe1JV(dP;nY_2n*e6-S_4MJ9>AA,V.QpSl#9ls$r0n$#+Z]$eg;*ZQMOb1vKS8/YhpkN)#N,hCfao,/xh.O_tvQubllNU2h3L[NTFVYT:BHU)i,281WE,kfiPB[,]eK,I+/kI4H@Eh/J'&43HYGwQq`Eha#WDn[jHEqD988O&Wei-a8#X@sRYAH;@3HF@pUsOgX:<`LFYcr@?r$/JsL+i@f$g?EG+B/+/_=_U>Q$a1GgPIkYdEtMM%LaYrwAE4gj.G&--&CN1w58M;bj2T2G(eLMbbZC5X$]+UoqJWa2.b%hw)UhK@ggwP05DFquaV4.DfaH5sYHlJwtti$wSX@5PfU(H=@w$p5Tmn&<BL$lqUvKi.=,/i&d'(Ru:*B7G0T%n1,Gww3DxNq8WT^b&hm*.mA?w#N5(c22+A3KBQDv1;g%M6AIttGI2]l[B%>HQZN4PPb#*e/CDYx<li=Yd'duB@oN0rL_64cbUFh3'VGUvIB0g7]^6>,oU1fv4@.=HnFNx/f]4Kr]/,FTQRS+_PE)+Xg-2rds`1C&TTCi$+3DR0K`]HWomL,^_e&SD]+Et*;j#q$0kN%,0`Cu=@,*uddr$NO8'R%>vSXU/l;Xc<AV-XUTuSd($ipfkX>Ycw#_cA`=V>B.H[5#Tk$1_.x:iqC#)h(@4Wp]<%)]HkFe<Exmfitwe;u-cSx(0x#f.1SvsIk:ekAa2/@*KxwPtu$r;l*`-+OeQ;i>hB:pF$*BBN3)#=q_j9/^jOIkp5R8J`.Tq1S&7D(Ww9f<dQCBqEo5+N-NflmU:m_Br93#Xupr;%RM;Tnr%*AsN`cpb^h?1O*DbgxO@.PJB2].?[+Pi4pmJglE5WTgNW4@GUZpgOeR/G.IJ<GM%:+)m5DR`cfPj:%o2Pg#`8qrBM04NC<t=Ga&VTt=S[W)a;%oJLGO?wDm]]dBH7m[Xs?2BQ9)#GKoLFX<jD9_bUp^8n<X)ne,?U_l42$vn8'jpQd^1>=fU>JvXE_YPTJV_H8MiExbl;+kHEmAj;.FTcDYV?i8%+*1I6gxQD_=.1>mRGCk_K+&`cj9U^G(H<DaqFB,le&VPaqa]l_wf^,1]uJ#ee</`E6)%RRkVF4>HG)QoaKoY>xfkVl,x.qE*ue's[>R60`T$``R]MW#)M6XffEgjOX+S-<5Jgo=BnW`3KgHq9ejh^[Har3%:H*Zq)wJ`-D:-XKL<WP7r3J$_^@07*^ia<xT/SI^je1l%I-s*.0PX'pK$hKcNcbO->b[$Boc'uU=AK30meP^WJ,p*FQ[%Y=pS5se][>9l(Di1-B%6YYRli4m+7FL%fq.J*&uQ^0/xMe(L`[<:g=S,Y^vB,SDEvRgWij]IKPs9Qd15`um%EcqG6sOu6kw$8lbnHk:EQ.W%5/fprghK.RogA.%w6C+@,Gp`cSO;E)csh5B52`OoqfCa%W$<x_Aho33mmt0D6i0r2&&@dwKxF<00J:Bq6j.JMHNdXI<'Ei?Z::q(PX?IBANSbA*Jq)fwKLg6b=DY,bEott^ZY.@$T@/XeY=&2F+<>@a.:5<qh6b9)9Ao$(wB(<BEG.%oAWwjcDus$aVrblN/c8r_2X=BT^U@mWl5gs[GM1'FOVAX)^JYTH'6_h6?Up.G5kh;'UX6F9ZcA'l]^+Wacb/I:R^.SI<=bv&_)';e%9%BV]A_<:t'#g*+Jp?_^7O'xepH[gCA[&kGH=JPZHr,?aG3o(lrt6T*O:%R(Y284Dk;FG#f19I#%qX/YI'RBSkD,NL>mUB%i9S'Q'p>%e%b.IpXNW(4N<dU?9Tp[[N2BeZcd08]_UQ$jF9;CY_qQ.=UO;2Fv+qd(Kwi5^JgsSZe@lbM&qcf[dd@0`cru2*.lK-m($+=5v&G;#O_38?GQYX[C$Mcv$0:pW?5pWATd&q*Q<)vN5Getee+bWREhsB/+r8aU*oaL_''[<dG,?*,;A#S-5qDrkM7ofsNsZiI)@=SZiW3v0mHnlo4P_xQ/'YP`b'<Jl*37-/2>DamNY;++g6MW/?@ErIc)fT=075<6ncaD3-Kcu%d'GR6WQ01T4`Qcms:aeIS.Q-n/jaB>AC88V6iu^VYfk@fcgB-S_E6.[pF+tVV6''nZ<r@2g+:uLv/?t_Yr)]+q5p@PpcB)798`=s&Z8u;mNL,A8<NqmQ$hI8Dj#;SI]oB&[8OEqgc`9F*M^S3ev0:[e^@Q(5<]]6%PuZ?;g<NOk(74N(Dj@O(>S9#i<uCXn7H',9P&fk_x7V<+fWx/swG_jUGLFkA#om=D>D(,e[Pq@C^Z7H3_*0bd7J25m:Te7E>:GuH`ss[ef(X=k81uC+fi0AX0`X*iQl:gdNN$7rH/s=[<ZoZr*of&'G'NQeDwP[dReo:b?Av>p)^MDI9v`e&VkY>au;lKQa7x(ES=Bh2GTVIgI4*P0I0S_AWb#cW*AE8$-?o6-9R@$URTEC5JlAQVI8-)v:63CTh'VW5/vA3t[OZFF;<+oaTr#PngPC>Gf]8'8o>l3I.B`]PQa&Pm5[-u/^N,To4N;cP+MDQscY&<IS`FDmArkO8?vP#Y^5i%.Bn+:d=RlXPieEH.hw'tYP6T2OV'd*f`dt&kxWOU5GYI^jMU[&fY3IxWZ1(;rx:7]+8ql58i=$8Ug)iXRZ_(9iYtHk+hUd'M*krZ3k,jfbPTK1L`B'?#)hDp`Eh-*Ex#od8X@]>^R`<1eP1RH=$F)Q^oG2^gw-wsgsUdB:.n%B9gLJ/>0IdO6-T&QAC9mC,QqnuRk%-hPO<Acp#Ph6+J':H)Z(ZNl,RJa9axm-(CHZ)da-Dt;`R8:8e;-J,b+vRdtII#4TI29Tfs4-Xw':i4jxjIC9]7<_5AU%27=VIGI5,mcCd;_,2j)d_aTbaqrgLksid7MNKpv'MKOZ$k:VP;b?8ZO5UW7L>RZ&$ApDW@NGM-Lrdcx77s,uLDt5i_3FfbC[W#rGNh-$i$4n[L8ANp#X5Ob?;e'45Kf4O7,Mk6/C)k/=Nb3wXcF8r4#a-JLDLx1MTZaf%d^xsWsX(tW?1aTKe_kvA03,VAp<G6wO:mpqqg,k5<@e%k+=e_Luq(6)d%YER#IG+[h2j[IJ8*hJUWQ-uV?IkfNFaXuCFuwZVp=:J9CrT+V;GB3i],m/CTgTpB#D8m;W0eUnbb_C,oS&PDCUR4HUb9C?nC$n?/w=8&HE7r4,9B)967)(Pe7/F8O/2_hX/%Y41_2gDcU6*?;YQtS$=Ll7CL;NRBJF)fU4qqaeRjUde=/>^>xhl]h^L8L0-Vg$LTuBc0Z+KAhUqh&`1m[-c]g=a<Zie7ho%uYU;&oj/C8_]^np4.;nEMK6j]+YBNG1RQ'J5))ce1f)i.peg'+84#D<#3%P*T;%Vk;uh7VMp0m0x)#kDc3>IccKXva/(dS(&r4J#UHf/c-P1b/^aQFq+rsmArI=n;h-RO*3UokG'Db-&KqTvB%sr^s+dAOGxZjWChmQG&mhpUI$5WdrGUsjS#Ydr_>C%:38Fpw7+la_r9stv[m0d``sb&Zv_)K-#Cj3ic<4sO&0hP^YHkIs4-1KESm_RjY>as0Wm_@vhFh;@*ZLtA;28O]&rQ6vbrCbQsqY4NC>.gGE2##Adl7B$P?X:OP=r(0q?Ue%_aQKC5R<A5Icrwn,3ZvT9X@kSQL(rSp/Pu@<P1rU,O&DV9;5fMQ.&[450:U4;;&':ZS@LaN]1[QYL?qHNEEF$xOV5FVc.Shf'*IH?QSon3Uu;_OTHk*c#dmCG$)KwS9brtkJkV`P=)1Qr;FEEcvPP(TD1IXI4sVkiklc]_UQ-P>Y-6<@toQWw*TL1ssL46HxR%bxkluF8HFD>Zo`1a.K[G0a=aFfV.Vf0/koTdY`)a[g+>5M%U<xN&rS)NU1R3eFY)9#P_#h8HN$93u.)`^X$4MfGDQv@m9[LIkldh2xSOr@r<GnD)'EDsbr#,Td?i6Q?4ju`;+XwsPgh.KcaZ2TT%CCIj1s#nLUPm[oj,#(mRj=;c@l3JnH`ifGF%U`jus)Yg2;+XY?rvNUL1OAQBFowO8g`v*^FKO:N/&r4[iJPxW3Y-/tLT?OBJ@o3U_8d^n&n_?4mV>=&rhCeH15-dGVtGlQPmPRFeK=hF)x7_$e*_.?0EJ]M)X5&;5gdn,[GKP:ciO:JVL^1dVKM=13*Fs<UdnXwYqg1lpf]*GA,2a&nc@XnLSX0T#alH(tHT^8.%F&aYi-dx:igTT_.T+qeDwrf+CC`5:/vO&rIX:`%F4XKmE^lw)6dXJ[Prj.odlqH]pVe$0o1:Nql>I<U.(FZ@cWIM*o#VhfvL1bm[YU^]AwjY)Wa5W<</.8qC(&<uv==1A[wBtfi2uLs3XAjNCYDeHE5rI4l>3_7B$qQ3OBQ<I)7*gfQpP4Pr:hle?G0+%d(%rjL[DB/@K)ZVO)KtkoZ(g`qx<N6d/wgB=8[pRrKa@gqJ8Ta&b0,PU-tvGRLZ0>oJPk$MY:'ba9$5'OI9NhSjYn*7]0pMP/m)?=4&D1Mb-wf><I<%ve%n)b9w,8#Nq+.S.s'NUCWm),ad=G?[u@f/#THM]@QKoh3#+>I_eRZ13^OH7/A.]?o?E1TUP[+C=?QH=.8lFS#-@k7pZB6S+v-CM>k?2IZfn3+j'`]1vftcUT-((Ecci%2L%?F*B`t#9lH#RnE]j3rc@Gei6-31RXaWP(hdu(8_KnK/xvxo[%4o0OYHB)#4timBUvFE<*'SDTaQ/FZ6jR=M9a'WFi-8JE_pd`R2w>m%3Hi<1B+(t7h`4>.wHd1+<SIY^p&.+7p8Gdj^oiKH<fwaU`)jAkd.<U^POW*&XA+'O;$5cS]KFkENkV-2C.TF.ivKjdZ:ifY&sBC;i0_)a-Uh$Si56sqk/VnvZFj8sF&Uq7a@kK%l2E_]1[aGsur01:W(cTw.gHO7I9tDG/ecYAEPG`9p'NkT@`#&e38K5ao8IHv#)BWLAc@OE<;$Rv^>_>al97eks=S2W'w<gM#gNe2*.1/n]L>kpgx#Oj9$T2tqn0BMFS0=K8dx[6PW],dl4t=d>J)?m($n;hW/i^n$Ul4SiJF'1$Agba/kJ5m-Q+g)UAYegZ8O1Vj2R*7%mZ7B1XYiHc%+u7=g>W[Pt+BHC@P?Vmr@MCD^]ePbkEAjPvV9Q<u2:cI_FX`F1`k,`D?[e1I+:^s#eH:9t4_N:rk.e2_OaNib`_]w@-%hgK*UWY]H=;@1bU#MHQ:?o)R_i37x9I=VrADHA7?Fv,Gkc;bTg#>fqAV;CwdpI2I*Z;?Bkv-2QW6,:;f(tNr6g<RjBlLW*rRcAcAbH`=iX*/,`mH/d[G-%)X/;w658i`L]1/mt(UGFc9lbwMSs&*)TB?#A]%6Y<p<NK#Tb`5oXE*$MsHYjn<f+(uclU,@Rb=VA<ND%u:Lp?:u@Wn7GP4<0HP_2s[`@j$LO-[&lN`W%;UYRWUD//<iV.2N`2eem4e)*=,r_Z:hKFJ%TC;lD@ae$Q0vp0+l]+Zt0WP%0>).4]o[Vf)FFirl<Kx;9?xa:$7JIl:CVBko<$`3bM'%Kv/Rbqc@+mL9HTDhb0=v;f@b&%tpYM=YcCC:G=::_8?Qmh?XewHSQZ%U#tmd%qC_>ZE=%&b7DP40i+A_<2&]itH1W.R,>%cgYs+gONgEhR6&,_:CQ-CSKcYJBt;bZDX,P.^8UvgH)$>7WXv*YT5Cm@@xJ`OVRQ<3i:^NE4j^bHr&o0Fnbo]`Xo#o2b.^#&HnHQp5OR9m>e4Lqwr^+7^j4wE5Vcmt',B%dw49iH%k70]g(Lp_WiSN3C3uf#d.a`V:.6N<.,m0%6f%MsQ09X.P]WmTIK8o1c?KYjQ7bgNt,eAx&0twa;]G523>7^'<dK%'AIdX5Y9,QtkFMR$(LQ6T'a'h?MWXnHv)b6`6@^/sBj%j<xqEpi7kt],?o9=ZKVH)hgptQ*'H[1g$*hdMu09ewq>59Y@Rb0%c`P,0YT+;j>9ZbRl/d^%=P@q)#lDvk8o3.6T(H(a$#fm(6,6.,EV7QJdY$AGNwR3m[FXgN0&7Ufl$NVfatk]J`nhq)8O.`Y,`Q?.8d?GYGrN.qSY#<xjxlCj<<Le99`<K;Q8s3STmQ@GEAJkj%]Z?<(51Y-0TS=Vh%%Q,xj-_FQeG&-k`I(#e/OHLah%DwCr4#`1llMP/vQCB6=8=Kos.)k+K3h.m-jo%5I8M]Ae&t8hT>e_^t3+tT[P5XUt2v4=Sq5qD4'm7r%6n+?8)qKCo.,'OImVsK'L^8]g)K2NIr(#gdS_$Zv<O0xwb&7]/Pl?X_&4PaB?w[,PQWE'/H6C&3u*49/KgOK+)7Sb5KmdJLJ<:j[c*wWDioZ/7bp;&E@GA>WPG>eb^Zu(^?sG%?o_RxF^+5OuLL&h[B&;'iKZs:G2rL[HtMM''k+';uPP-Y_U.%r(+l@ICS&#H1Nk];aZ6D_7MT@k+$,qI3GL&qMr);885YPrheZGl$GP>@_GI)SIMQn3rO)4eiTk%FO>OIoas.'+0Ul)XpHg]2UjI_p;-;RTp4/Ti1l2jKK,m;fc:W6.,/?<GdfOeZL$XR?P6.??>1Ak]7PNl_64$e`O.QGm`k(,+6j+Kf-foeH6q(hq51=hcBrxX9S^IsiIY3KV9HMX]AmcZ1s?[QX.^&.Y30B]?-.U5qYKoQiiK;]J&8dY8i?.7/ErK1f$uAhYJJcgV7#n23U*<VB1$K;ZLk>#fM+_1CSUjQ/e<wQmFlK3Aa7L$nT:c`8a.BMA+aCA4akav=)5t/i,#fdm#Y[AE0U&LWKEpSw@p[-be(krHL]2QO$.Rb+uu,)vC+lO$dS8jIolY^l4>v6J^luc(@a[[uoRf%Y2c:@UC6;?'GZBxYV/&OwJEO$@FXWVi)rXm&s:jmVR?AI;A8ZnGMnb^$GIqR-6gbo-w3x@8KU>4P2k3ht$X0]o'ac%<;tL^)4D2?dx,8tV6lRoQaMMZAfNp/mIPs&hC_`-[2-;r..-wOuu`Rh)qJeX$IZK^iPav*?UjI:10)jQ(V@=3B[,#Qa;pY)HBSL&F,(sjn$WfGbbu1M,l`NENun/qIZbIbB506dbqtV$?LqrPTdu#^]:D_j&#r$v6b.G.xvo2WQwd`vp5*<fc1`o'hD'Dwb,8ZpIp]sDDYbMp&5?CLDmqk;JK$Cvn@UOD2h/Zj(,N2^Y*o0fe9]*'VG1,@5c]7O]&N7jpZ7XU'xsCrH,%u$DeS0V)TYtOAfkTqZqoZ>8e3hX3Le8'gl;a/hbMSSf8NH?o`j:9d6$&FZ2Rk*J*NeDop_Nq>chtWqi`+64m[LeiNgq8E[CcVmPj_r#<l'Q7h8#X[ZiOvkdJRu/a^0V<+0nPEG2NgJ-C9^IU)m^mADX),qdr*G6QuLn+&2Pg06U481;Xv5h`jQV)b7-#hdc#_9j&J2m.MH,_H'Mm_OOB$LTS,x/+l*?[(M#l1M@$vY]]5Neo(CPb2uH(-^+Ud*u@.-o.Oai]VwaB1eH9e*=>7L_U_GX`[o('`IipNx4+RbS]ftnqa^1k@'nfudEo)&[g_X`w1(j6H#Q>Scf[+1)UI=fs2VGZ+'Rt`mB$80sBS'n[KR<cA.hNoF+JRMt'nAAx]nJlY)9S?5+)n52;:$FL2CuoGbH*DBTZ6&XX&M$?^(u,c?[1r/0cViri93-[GYHmVdrs82TQ^M(?nqS=>.-tcN>/bdqB4q3LL:W;PX#]i][dGYX&QO?(G%UTg31Xup.cPV3Js_]J``OY;,lxBm>eNLPtwU*RwM_vF;,lV?MpvT[.nEhe6/f]Agn^$-C5W63efmrSbvxM?eA&'hT$B00ZDDhLiam)cKF5BqxZ9m,;4sa6GeAQ<'aQqerI[E0`=gq/p/EhDxvICtr2',HmEE6ASrdp`EghqAORrl8r]qO/Tn+:u#nDd&F$LjH%+1[5[OE5q/KY-M>R]u]vt=w3u5Qw0/ew)Lon3vmdP$Vq0T/x]JDM]KwR]L-34[-f`D17rU6?5%3H.O<$bdce^rQ(@Yltp]RI;g1E4,Uo52#[G(;8kCe_>Z@CVTI7.O5jr0r-_n0xrkGcHfqm)w-TKE8FvpTmSOtAUIC6/>$&OQU;Ja$>D3hok+063SpFL,m#ChSeSc51$[9bv(^dAp@D3gw<pkkeY1,)#0d$7DO?sa5c0=9DAE[fa:`0TXHjpl%C>2D;)wBXup;nLw2bqutxFPNuq@2YHb^YPxk*=4'7)@/6u%$h&eZl#4ch#0qo,wS@4d?l,H^^/uAF&>K1n0X?+?j;nd4dBs4,Lhg5l>o#o@,5h-K$'19J=P#@#f>7x6JpFbqpY[S2/GqaJGL4Rx<0xaBUFh&eWST7<>Ol57<FgUW$3[?Wu*]%)cd.ogTJ`Fx(/@#[='sH7b]aA$K8kG2lQ5?o:+X]GR,TwJD0]vuMj?T(pH&w-CAK:/qt,a+Vp=<Vc=v-e'hBt,QHB3ZXoZg.+7G[Rl>`LYS^Lh#U?dOX0e(4C+URD9L2re44uUNPHZi,bOudLb+oK4=p+O<E:]Q+cL5Rdt8Jw^oue/]gYqW.#p^TT[XkdLfbAG3D_YN99Ss[lFX'qv]VIa0/X8UsMwd28k^]6ScmRNxpnXvpvW(lL]+ZYB3s6fF_AZdA/%9K`;V6jMmH=u#-$Pq?U7$@`BTLrRtApekjDS],g,ZU&pWGp-uHd2d2,Kn*amf+V#&MTM4cH(4G.SGLDvu%;BO:LYOb11xjg('PH1kp1$?Wre?;KF#PuMcgvFW^<,6qRgfD]N87:OV8m)GcD@iBZM^9N:p$k(irhGBf,,1)ha#@[^BN^7pK3D2I_Ig,OlZ3=*T%4^rlmq0Z`$J3%GpQo2vO>[#Z2aMiD$9//5GMXbkWPR6Z_RA_u2c]//vB:b@fUR[iF[VS?4FoWG>c*t$sAKCu^Z?VxY+NGn1#BEd2[@n[+G26.Xt/xjk`Fx1Lkrv%:f:Q*O5McXRfgTWmSS1Ir.-Z_h;AHen>)&o+Lla@A'F_Mp-&&,l8Wkp88V4Z=D4]erqZ<KW)]eTZk$]&L;Kokn-dOX.;_[]4A#$7Z0i3igJquCe5<]uq7a6wkuYVA,NM8*U&)HLJk+9oJ86,2&Q5]4oDFwgw^WMvE_X'[Gs5,2,`rsi^i/GrImn3YMVi@b?5CWsdtha'E(8^/rv5T+3,'m;&AUa-7B?w1k&tFTJ(A;Q2^g94%>v5Zn_+<:;xMRv?DLNeVoKGN>t<#,LBdw&4c(cEW_Fvvhr=e>:3?9T,8tW?[6+#W:QIn760n-a@i4,B5M'f454)P/AgRC(pu>KL<qSAr*P_ax2xAgFh7EN*a)?^QbKbftgeHVRTYlJ'_cC%xrKiZ94x7&i,9[;-N?29piFfH<2fX6]P.e=fjZD'q/iE@LE8FprrODpW&*:Fjf]Hn?L=He6_55+vM<dwdL)g8d@c940wwbE(X3>'-cFb&k'ksEwAM4Ev4%4aPN.dQNKL%afH$2/.RDE>KIO8m_S8KNC(WR&,`uhc-/2+m3:vQ^D@latU$HIdD$<#x&sZ23q)lTEL6Zv6pZ&%FCiOLtV]3=jlrkAf*D(K8M-TFn';?Q)THc(wI)[?xg5`ut92B7.[pw$rEg1_AH1B`ME9,jJ.s8?N;,9[0<YHS2_eGsVDR&sZS_69Xiv&bFu1+bsUKKWlI)M0-@[cs^`Rb*$^V)8Jn%W+vkHD%qIKc?D`t^@usLj@mb:@Ov#4:+<pu8a`@pZfIpGP^8_?2$D,CWFYZ%p^xeeBJcbil_gI[W<t>a7<0(ARars[n2NMwjO#Z&uN'W%U7M.rep?>w#&`Ymxs1QlxV<,(1=o^)aFuP1[peww#0ED#m?VK;a8.(8p#F;AR_#:Q/t=4a(.dfT7qGb(5XARDK:'I4Z`Om0:X8nONc&aWl<QY*G3REeC?n7^bHOYe,MxZ=xJ$R(ZHnIYj>)tMd&FsA^,Qc]+dhH?StF;j8;sT6%Hj_0mqiqmu<%[4eh?xn1Z3uVXuG<>;=fWM)/N=9qpe2/q'Z.D<gh)]d-X[:.4$TVQhAwSOm[c/RfY]e)f1-Xu`CkZ<Za&SX?O.Ice<k*njp]3JuA*SE^[c;ACP4'c+-b[jOUBkmlPY^H9fH%c>R<7NRG1gRhieL;/4>H4Nrn&$^iU2s.(1cpG]_ud'CD]dERMgMCkPO>.i4G'fP@IaU8pJpF[-TdOB;=81lC&e)dx>tn]JS?F$drq$)9i?='+q.hv.r&_lM*caJG)eaF5`O%W@(&^fKLiu7'0P3bc&A;(%mE=lThe*5TD>Yh)m-Z_bSs.7+q+$H,UWsvda[5V-qnk/kFVTiJSIcL<*iF1=b*kph0W42pL@/(S>:,gGi8VmL41<T+=6&wN;4(HBkZ&:$i8u@VfKg25TCECIVW%&,I:?hhSYPPOJ<D0([]&-lpms_Y?t)kT`H4aYdtTJb]5IR)R0XX&mL.>T$kIKqiLFb7$-3VwXpu_Lb@q_6h;USj$XR%J;@v/t;^m1QcJaob*?up7Ghj,n.Q<*4x=W'7dI5=,7h0n,Lv)fckJbn0$GiCqW>kc.iFTWvRLFNbo0%C`aI<PD#nS1a4.0+$L9sYiG%FXs7&U/E[UWwvjCTD/U&8o7Z=j$vF6oBn5sl6=7;$EFK1S0a9s6^.s%4rP=*Hp+%w_0btoh:@RZ*7@7*I?6+fmBf472+8WwIb2<ob=QwOn_+<(*P[hPJF[Qr)?b(B9I'nOAK=@+_=a8ElI[1UPQDvN[G5b8M=^`9$Fb5N+F5b9+q/jpd>mitdHC8h`r'hIaYJ_1RYq_P:nj7grQ#m,/GQUq2&i,]&BA6En=f>l13_okuP0k5o<d3j]VN3cQEQCaE#bPqH&`4/COV8XG<+HaBlOnmC7:9`m._Xfl<m4tB9^xul2[tV>7ip,Umjd50tSw_TOZmj5nk1Ue5@4'v*laAmV#lo)?+K@Nh]//u^C)F-.jJj=bs2#>UJ4LaOPOZ&@3t^*R-h,9007EE^miV=5.nYiZ$Zdc*vXfBSb6AkJr<jXn:*]u57L,DjV*4D898<<Y;qe['Hq_1v'k]r[]_Ta0F?uS8P]AmO5KT6V2>XAcH4kbnYp`2#cq.IoVoFsh3lsK<6_HD5ic`^xn(8E2&1wZJYvD/0s2Q%[>-bU2Vkr9JT.SWH.^ut_8]NU=`MmD>dmCZ*<JJbD+eXTcx8c+fdXk.mEca>D?Rpc+eRa2q@OE=so;AsvV%FRL[p#BI3wcnBIBBk0bZ4Y0M]_/`#u8<CFt4N2kemFwiPn)=@YYZBui(2>nM9n5Pchi)F2,la*HI[G+>(m]7>9)SQvL`rn7];IJw^0[TKjAEL8o7UZ$.,dI_V3cRFY6jP%IhSEuMV?o)ACw(70G=F%kLI7An,049''x`>We3>>i<%wvEOS'[.b'K`n5p)COSh>Cr;?Lw8M/Z4neUIK:j(A*qjxSc&S)_mKb@>n8a:(OmtiVv#%_nXrL%pR#A]QkPTo:0p66+siDftr40kJJ<N,BwQFRt/a6i[1>9@mFcu]R5:sP7S=)BWge9%>-h+JMDi0SfH:*e]4V&:Y4iq.Gtl2@`R(a5h#nNecS0AJFd^i3hn3(S_>kp>eIA/b,mr[&wWFsJ;w2_hO9<*kOMU)QL=j<,HEL_/vnfg7>Uc[jRfLg=2*PfgCt$/Lm*&-3t?C?A.SPEKT5],2R?bWm.:_iK_qJDd+ejXSn,ZV(gL-0G5VS]_1`E[dY4o-;fO+u&ERx)2W##&.XK+WIre[4D=$U-+XB>UuGmvcnFp/rOixf=GXa=`#O-njo)cWufInXaSmX^bGHwFjMA(Pt8k6gn0w&rdZ7^W8bQB7GcRBXZCkRf?JLqoCa3J/+L(vUB4TQoN*eNMK*x6(mR33QLt0gUA%]@a&+a34sQ>c?ONV99.JdN+oIeIpJOe5EuM%J]gO1-r$?PhBAkwI5CAmHE;X$;&re2A$fJgvhD7wUY#%-+h>e74^W)8.OZRuTc0l5c&tj$*<,^M2/Ke*2(:jLd_9QAOBY)$]%7k@.f;%E(HNDpeTUew/M;wvt:SRJE^`8csbma-`TeE5LKUFHv?I>=I,gnuI?_sFR&H.@c[DX1s<Z`2GO4:SoO[4d>kA(4V=cfX?68JkKC/LO=fIOS8c@=?i9VosCAgUt1W-+''E?@YUl?2k/O=qh<YV^CGrYr5nMd5UqXK-h9OGsA+pl5;Xd3dPvP)=T9'A?6,o9@0XZ:G$qX43:,0D7sM<qFdlvVrjLW>94PeV$Q/*i^F^a:<?a2rkB<O0BG1Q(ooSRh8J2wqvXA8Qj;TA[$D0,D^+JiG>3$A1w9[j@kr;add^a$_wsie/j]>36;[_0pcKf`TClNkiB4:q6hkX9NJX<W_v3@2p+T,r6)d>37l&p9/K,eICN%eZUaNrE?GoNC=jrQP7pl[0saiKhC#US_GDkest2(7[J5xOaCdn>m*gThl$gpU<?Z[wECq3TCXg$-C>l-ZMur9rV1%:=)P>MWSSknJ,(P:9pYX9;<Fhj+,ZDr[6?qc;XcM]El<ZA)M$1lC.MX(+I[<qa`<VMv-ceRhsP?1Hqhq;Zbnwr0brwWi07f<$*@+slx1+pg^1J'sW7-BI4h?^3I;u'>vt&lhF$;Q2'Uea+3@EV13Hu)_%DrYhO#@^n%3A7H>JW_I;T)E*v-1MKIn(3pC`(FG?[0A)b$.-@bZ&/M-)__VC`%lcmLQPA1p2D%R_1>EefU_5#lGacZomZ;8:;kZ>`Yt%h2d;Tm0)N(`e[3DmAMD;=m.F$%?.9mK*v#o7QYK8#-AT-k(xwd4BS..xj5bBB9619H/nWGp0ZVos.R6.]TR-V59<n%OYJ-V+I6L+`g*NnpKp^AE),qsVrOq3%&;/Du1LVt?:Wk8Gr0ncFr#@((Q?N&f69UK&b@jF)c<,e03ah.JWM(2fMC#KQ`Yt_H1s9mIDOx<1)TG&I'$39wPX`:aHm8n25Rt;3*+5,4_RHDq'=vHqkq44vb;]lsmP:7q><F8]Sfife]O:$;^m^X(3.C&t_+qmbe]/ds+&`Yfp3iaN<sfP']/TYfXoJ22@C&Xg$EegcLZwO>?QB2Y>g2CBa##YXL0c/;d9ccXP)0WDs=6$&V4t^GexM&Lj9pQUTki=$S@&v6;=&`LNv@K0DL#8]2RGHnW*fZN1I?TbP;q0j6`e6U)vW*rgNb._uZd4gF&S>1p212'*DCkl>2JR8q?&ESt00-i4/KAc%WU,u5@dds#&L#Q_fl2_RI<#BYi#<`;Ii*mq&F0SS>icq4R^#>KA&n(?l_N,cmk[/#Qv/oA2O;ei:/NQu&ps7rc-FJI>QoFN3GK5NCCTHL>5KPA7n%<$AZM7POjlro<D;iZ>QXQ_2?<?Dx>i]+;>,WN'@nh=Pd'VG<]3T0^FAA+5f@Oet:+49Vm8[Q8ms32wfn+'<BsHu)YG_P-l.c8.l:e@.Z'F&glhMVE$IV]V*qLuP9#8k_@E#8dPD%2-cHIaX]6aXmvf#g6nd>aOr]U^SL@hF/BVPCaxm9WLXK<^L#Y>RTSJ)'j(h6:5P64ok]SV'/^Oruo-Q+PS>b*$9E&,a0uRis*SUfsIlko]5uVkKSSnpE:EdN>__++n83<L;cPk;P/G3%'4DAwu[g#ps/hN3c-R+`r'Lf3Q^AQ`Wb)MFtEve%g02M2X_<_+Dr8''f#QP*s2m>U2:0nvH(&9HT;NrB9'=.vZT=-)@_K>w%[AD.5QY@='ld.XflDH_-E:2'5aQeef6f@D/o1lnC9Y<Q:S8HAJa$?0WU.(Qp1_2tSuFvm=$0OnC,[KbM-vawS(:DP['iScmic&0LsqMD0gCo*_[DxRe)gPU@ISR>1cXxN<t<I2$d9IN&;NCb,-pRG:v$jb6rFGg-LcCkfk(9:E0%%PCZ=w]n=m0;+H[t,TB5vsqGd>S4@Sq#n)W4QOA[qw&gd$VBKC+i6D&-4bhP:g'Fo$d*_8k)-;lCB^fcv>B*U,xisTTdZS01-q'phF77b$&e:Ekk`56o`hCoQe0MVATqY@^1Vv2''WJT2*rE^3)?+H;/K=rqug_b/`6UPOX([5L0BJ.);q03$OlVww$2b_FJWR0_3t>K+FuYrU<^1L%1lL8n[eC[fSHn+<S^+V<Dmd'gp<1WL>pa,-/8Pt%N=CX^oY8^u9I4_(>P$NYOV*C.=XiUAL>9egj0hn+BB^e/KPF]wCawi*-hg5mM81%2gt*qqvAae`k(7/do(1AOKUYpaEB(o+#@FqMsDV'U6th,/g'LmV@lw$js`21.Srd#-bou7Ia.Tx:50Q@le=w_Hkt^an1J*b#=`nmF0BqdF?.3.)sUb[^$N8]KE&(kIeT1dLwN.o)N0F(;GO%:3v*Qi,tDHc?r(O''r,D:q0MVMi:iYMlWj82`amoQ&YIe=.bt3u;+kS@3c4Q%,9Y]]&#qI88p%(tbffUPvkgibGFD1aq#e[2^EI<HbxowOTN:>aBR0iUgm<O4JPBDri>dj74(]GQAskGHh,+j$BPj`8<NNL=2V2joddG7-#W?RHGMu@4vVUGf+MragSx0C<A%<qfko/Pv3FGWIAXW]/L8k;dXO)XoViC*Qw-OC@G;J-h7mAt9ka&&Cr^NQ23QYa5@=c]C*BBP`gkSGIfOetY616[0#MC%]w%;'0j@q(k16N8#utv214E'.w`)=BJQLEReKPP,o;.CtRVN+3KlKO*x/7:0E8?mmGh0P=R2kl'dI5gD&>o<LDjdfmM<T/_^5-,(F^RkW:%rMBoM&4`F4.JQ47Fpo]#w4JgQFP3G`'kMF%B[M1@Cr`W]d6@'*flaU(bp_:U8;=/U_0?uiwT0IJcA.w<XgSTuE`&YU-FlZ/Lm2_[6@laMDp5-r2RC*EW]IjVf2%ChgrCFBf#+;+/e;Rip8L;p84eL?`Y15ZfQ8:YQir4cl]f<^`swns=RG@4nF@o2xD-fKpTqo1KTZUj:P`lwWG@c=X9_+K_i?/tC_hqA.i;9R]^>l#rS;IU4>0M@HJ&gd<7%$M7`R+qBd4=b2(2w&(QpI1sN9FE0TDdL9/(mNN41<q1aD/O[pq`ip<9G;r$:_+(u3pp3VE[tYb.Vvv6x30k2>L:2c$G=/UNI$fR5D;Q1?Rc8MEQ,]P,?H#OtT8A=hJD8sUNA_jN)_&IAe+N6hSn?fE<5FuI;%&&qVO8uI8^4op32fQ8q=cck_%^:)7t$8JC/SdA[jpH3lS9,o$3;',q'Q6=q3'G3nX$t;-gO'n;*E7MLY.]1^6@;q`#R?J5WC6cS(CWlqEM37EnKGo=+'h6TrgLoGFg#gO+oJ)O:1c%[/LR:9J*`LWG:CP<?-^vdU]T[V@mkF0nU6v3gF<o+HY*kSgD9=5S7:'9PX%)H1X*qA7C2hE_eHBUVv67cA5XZ&#b=kbs8FQ#eV@06k2%<*dITdLoMI/QosE9LhxlS3d.#)KM:Ud=3[2K&V6fgr>&-5DO'XfP.l-CAwmA^mS]V$0t.R;?Z603'kV@hMJ&.(6qbQ?UF_Ti,1fWc%?</doM4&XIq8<Mx>qpL.EX]SYZ@AA;H(txxU#([dBQ4UqFs#(,J#A3X#8`C,jGec#EsJvQPtb#7AH+vCCjb[d.EEZoSe54mL--KBq5,SE_TXf]j=lBf3v<%w0%g2-;,FHMiea@WPvHAICohlF.1<R,whr+u/<v*Yc?)@_^lP,qqjJme`*HNWJ*,7Z./G0XmS5OsX3@Z`MLY]pa=*+0sPJcIDn7x.kL$Z-@-8E>F;Sj+W/q>XDA4t1bCHuucZ>mC32IL^G2KP6B>4?Rx3qVvhw)89Mo10;H4`?7u0n/rg%R&uo.s*Dc,Y:+Ouu9#</T%FP6A]qLoAV.UNQb6$7]G(*N+(gQwkCU4n#xP)-OvesGi`v#?X2=8F&dR@$UDSf#6c,tE()xxSkhNnmQFA8wei5?u=OL_7o:ALx?K>4/Qhi>v+>H.6_C7T4c&%6,D0'CsioXsC%]Rh@YSoY5RQ<CJ[l92'0aJpPZ^(/*/,c85b[4YM1JMJT#CRFK4_@K%,sjq+sR;4Yl7bgQMK+v6ZEX'et?7)eU4&9BK^+hpkQw-H(xH<h#*W-RQ+Rt56f(Ao<v4d`^cTdIT0mhjP&Z;2nqO]WW-.Ye23E*O&b$s`goRoxjP#<C4,1R5O[IxeLn1@OXv,<cN<DuAY5N,*M]4EchmnKT_k9[PQL`t2iIs-.@3'U$lLLvK+,2e3o9//&'L3bDaWlZ^8?duxWIV[m#kkFe[n=?7Y6VePtAL^1<TqARduMO85*vYZBRBBR3,r(IGZEQlpQ4,w]1glY[tE^vSc;busl3MZ,&6I.K(q>tMTh8N2sBZ)HsJ`@Ljs<1M;Al8Ij$9oiWA4hG9lhNa5LTiGtT+61J5KH*Lp&^f^Vg63pWp)nBRX2h'S5m'da&W6GD4TEt^8IhdwFL85MM?_t1I[^-vE9_7bI9G,YhVM,D8jbF7nSrvPj8efgFxo_4aK9jE:o-s0-m`Fcj.LtB5vE)?[BN&sCn=b`,*=6:+5-d2O_A9;d59f<kjQvqe7`$d9wXK@g'[$>/IfvX0fesGYiY;E<$3nkvm-*5xM5b@Iaq6neKgjN+aZeEJV0(gOi$J#up_GF(mFr=U(m0`-2B?^hVF=@*n)';4f?U4r=F_blH.8]m.7Vmpn6'DT6VH+&HtL8i>,H@>d--I,m)v07kI-1Gn+:SWA)PRX-(;65ZaX:-3;;U4TfbK>>,`qhNU]6L7n'LmI(j:2CB2:qppr)g^cs'mMOQ4XPS[EKfn/Gq:+KmvefbCU-(qTC]56(Fs<*3p*YhNx]WYwWFbW6tx/Uoifks$A=H/qsT*`&%Fp=NCHk>)u%dKVY[#fU(S1<BnnkpX@/;o0b?jL.BnO=gn>(@2Yg&L7cK/eU8GK4p6&_Z$A*(Sf,BUR,FUJh0GLCJ?Ln_'UtLj4(Jfl]w&?Xh:O,=I=H-.poKWPYE1D87.Q-11Kat[bRvZ:$KDjGU^M9mYLhpKqXE/''eBKP>9+)9PA8VPjBGcf[>acht-J7R73A5J-4AZ,S>wUP9965I09-?.Jl3HmK(QlGbuQa8Rof,t<eP^T&)ne--_=EVg/cgC,Z9Ce(wx:T^cGjo1Y&38n$]:d-'Bru<Ihi'S1V&u#WqseGV2u6tTlj)7dgl.;psBD6owg*l<33D3:wl4U@Uc>A?<*DM`ZI+L@.g)b^lOfL4r?l,9aw9Ssu@khg_]=I&5._OapX7xrQ'fe9tuuj[^j5T7_eGm8AmF0@`jSXZ)m_JJ&cnI6(t'E-F(Jg>&c%,]`I2Di.Uoa_)q_7aHxBUg2kniYue)[Ub6iP6VN%Yc&)ir@J$d,Q/b*H&9HU2VMf`nkv#W&s9C)oiEe/w$'nFMb__VC$hh>JrFAG.v_A&qAQ6h>B1l`Eeahi3d2Fv,qgrsIwkc1vx1Y#^)fXeUDA`'^UF+&m$XWda%eG0gtH^/LFO4U-@=:W$.oiHLM=H=:F9JTL`l#`QXc(Ppx8/QJsqG7bqg.@0uQR7fW3ih&GX<3cMT*gsmB?Ys.t3&7[>X?B1/ASKr>(F@X[S3'd?&A+f(<>5kcA5l=HRhHV%IN:KfJ;-5oQ>Mcs/PPAPw=S9(0G/_hJA_CW.kF2(wCY'@o-4$o3N?n_'X&wbn9kAFJ-o=0*S'/M'h<C/UJsebG9cxkQ$+^lu]?D#:&O+uX%nu=1mv)^R1*Z*g)o]C5QH;sIXtnl)lSMu#$Hd$[?8rOERPOe0[KsO&NG)A]U*r<>D>R#iA0c4Wj3u>e*fvU8Olp?$-jUfalk$`rm]LLeqKjW;V0R0Fkd7YKICk]n9o9dJUMc3$fnh9cfnVWorNs+b;O(*?2fwcjQ=xD-$5-:R:Ll3prE;BV[F@Skp'`Dj?^;^(UpWCF9=f+;q.sFsK?w+rW,MF5*v3w]+RK/ur9jAYLQ%aPe'Y0_Mi-t9f)pMK][2^PaREYkRD1a%-M/[F84nLbD,]YDQW%G$L@_P+5>4kcY+gNvi_Q)$uDpce(A8O*j.2,IJP?ic%GmV^#^TNQPpO[Qh?Eglcd4S4-U%vw9Tqgx5o+YTaqPX%,H_t-k_6GkUUK2xhq&m7pl*/5&58h7YEH$8>,bb(90drfBsj`8[@=R]RB#3Uqo#n]ko%M$CnXIe^0ZxtW(_9d`4^vV*W;oEY3s[0h$L9d4RLpJUpTN%`M](2qTWr;N*xJjm^4$B-tUj^6^Yoq-`SgZi^f1$6?/5L`9UrEM`?VNqIductXRAS.$hU(C?1CTAO]9VCuK$r2F487m='`ClANJ?gGJ@ZOi]7GDi2LWAr:sYauw=B@4wEf;+G+EFk1&^'I:oF3S?>+:7%:D9,v2XVQk0C2F7GrJ7H()MiYKUJ.[PRXSi(P0T%@`T/s_`iEO[T@pTsv5k*dbKktBw7Q)4ua96fUH4k.uFc757,l,i$Mmr%V>sE[%c(KOF*/_5Qd%I^;&&xBETFfB=u+Df[Qdd1$h2(Xh&CbGD@F)w0o7YC]$VtK?:C#<KEleadMg;BXsV`,m)3+bn?(PmpC>#-j&-iFB;n:D8$5Kx]bYkvXHRf4c_6);cnF:_dsh,9W/DX)O(t<;><.gri;eu1r].)DYKU+qUt:E8WY,=vE-8j_4L5i<>dP`1t`D)V2o'%#nnW]&@^tPQW8QIo]>t%G3W'.U-3OtFSh'--=J#:,L^uq(dTh(kNWOU3#qc4?.:,ZVD*8N)@)opwp/BpI6^-QTmsM/Gqo1f1s<9Xb1qG_@^o:2wOlH@i=0kDC#gu%_f,FtWX6$[D0YrQ;o*aWvYP6J;/Y3W;V%,2uq?ZR5]>t)jt4+b4cua&8Z^)8/q;9Gx4bEnRDXgt4XmE<0i=Ao^[4X/_>Ue@,T@W;dPI)VY;oEcomX9LuY8PZuRf5u5?C;/^:/_A=xu]v+1*l4=G/V5e8@N#XsKPgpE>(5s[KYXdwA6xke^=v=*Quv_1BY/[vR;0^m$QAxWMnv2K#d,RuHla@3SWLD?Yo;aS.YP[ESwbTXLi9)hW`Z1Yh4hXH]3MQ+=^/rOpk,^]#*f]$u.0Mk)G&1vg^)e0aObDOS.0e^92XK-h/6YfQYrN`fgTQaC,O.fp0h#w>0@CrKlO#oG`pZ7=?cUYKD>>Eqp5bG75KA3us59LaNrYAShspb92DZjo$gk2HJ$91%NT;C@P&p%/;*i1aPe#4WQ<VJ*`Cm++WlaH=*,Wba^_lGNT6Qn/L3ikT)q<tc3?,2sK^u@mouRGO)&j<_1FAcFFIU6tZ[R>$sn)CpQ:uk-Sb30&JurecuqiA.18:4Nq>ffVDb%ATpa?pR4,wF>`J=Od#S]Yj?gXjq;s;Dq3xP?Q+C'KM<?r4gfn5>B'CF@*D-v*Gr&]Q/)W498%J1_?dM%'jj84j)gfIKA:R+Lo@db,Qv[iBIvBAj1@aj%><AS3H%bI_PTl+0?_i[[9QwvAusj(?Tlx#SKV_RY1j<pvXbdqcEspJ2)X^9iioK^-=b?1DQQU',J7kpD4JX+'$kZ@/]&_N5Rc0;r-uO#(q%fS5[XMq<QW0W)KPQ_#<&iYUO(HO`-:f'aM4Z;*:aMQ++<U82i,ov]3Dq3hKV(MJ<bs,$<]F-+Ts1w_]^b6]*WOVh&lc2ba=7S^GWOsc1bH17Ld0WAJ*bpX:G8-w^(>YS'Th9bQ<bHlmhNAdWDGBRufn]FJtk4QGVRI`o,[hhMiEl(0d9@?rV]&B9C@<vEce]7iI*7DX%P)e/NNd(1@l.%B]'H^S?a+Jpqq'4WNUZ+%b`m]bl$,R6BLV(c<8iCqnQb?^ll$ct;F[X28Lu3Je],P?`)w4P$OvAl_Cw?XCkr*fn%MHdkgV3]Qr6sPJ6td`Rn5ph^$/9/@`4'MVDjqr#G6PQ-f'di%<_+^1Z3?@rJ10lh5Qemce2K;@>5j:@Xt;2i>s'0Z9tERU1v>',%U4.DgX&,PI1H.9$<tBL&F*$AHFq1/'3^[j-*I)-M3s4ta8]]F-$%J;7/MmwTw0RwN#):i>beh<81cqL.Pn%m^OOX6v(F`Kk[pZKEZ7lf^gNln:,q'1qQ)&R_MWLRLgFtYU`h?nQu+a5.Ow:$2;]UxVtd6T779eJ&lUWa:f:[ci/^ctxln%nX,D3i$6x:+q^gcXtI(a%3'`5@.se?sZIp3fX*Y,;)&/W#YWP^%P9X`^?wZD0^.Di[>B=Y>2vCW$nW7E`^YUjO1&HEswhG.5JNM^d3XK:DL(FqO@[*9C[JYk/jM]Zb[LAicaIkE-c4,OF^M_+Vm*jUQb0S?15vmWTeA:P*ate3WQOmN+r<@D'*l?9lM[$Yt9=^SmxPjBM0RN=_):Rl)on_/Z)u:5qErwM$hS>0<FFVhcBTTL6E(f-e6Y_5@#0F=AWTLA'xP&m=F64]YnV2(=*t*@<=Rwb5E#O[fK7@oA_F@=&d$]m,E_j5(q;-dlp7`]c#fI2.BP'1R9HE@hD>YepBC:mx[mx&]7vFkrF/I`@S>LTQWqW3U-DsKvtSdK,ravi(m2R;sUN.sfKsbh39GhVkPxM%,h@S/FAoG/wT^)EJ$4vYoCixn5a[2TfvTG2GZid-e-;;[p9Lai-1n(S3*Q[YrlRre+?:%VsG:6[/<7)76sOnj.1A@eiNFQF9%MsF;vL6mrH4Imf=oYSqllu$88vM'R0u$0+rk2CD:eT[5>nZLo]*J*_ES_$/S;Df]JQf*3)ULVNvOK^9R,$,jc/,UZY.lRr&D+RjJ^<]U,Zq<o?u0-&e0%o$?:+UiaI)6f)2115XGBf(3VBk2eicV#2Zw$mxqBSDeo#+In$J>f)XK9*_veXX_TA4QSod$*4&ev-8Lp;/eAMKhr$LE1P%%JjGi+T;kHM%Z'[R7oJ1YVQlgDXUr.j<okEmQ^,&=*0@e3@Bo'J>a,w%>'6MUV4*-,McPxN_+twi).HYw8r6Yqf(vHM-s&IZF[C0:N;X4?A@9i?mPi&vU]%X.1'R_o(x=dCM]F*=#)^W;9.pMZ3c+-6EW9%2kft=P/d9*hhbvJE[Q57@bN5i600<[3&*rA5&7F.p#If5ukM>wsbTtDL,*=H-]lPXN@>x5+@?^jSG_-*8e:*=36-HIBni(g^&A%dvM#SA'Rnp[7D_@%fc[1S'GmjUCO^#Xi$-Q,v<I^^vMM]Ss/[(]#Ruq1Dh7OJ;aS3x2)#-<5id;l7tvuV+i5O+bfmXT:F:uKU(R<25K#=a0Pj:FK8D0.m(@'$w^[KA3i1r8Ef@=e9<uln4Z*K7JIH]o<`uP0&hC>73W+vx)<=m)m.ebXI%W%/nPE%oM?YXcf%,tDv=;D'7K>U2,bOUMrsbF??or)%+KDKor3,CGVhtT8=B'ew'P.:sScO/uU?F-iP3^Z4T@tG,Z):87&FT%/j_ZT`.ubn?n&7;B&B:D(5<N0*FnO<v4@Zw8ahl.%sJvWE(:p0jgTjF0F4XpK8lI=NNH1u3Y@T72`Qh1kLmWq'#:jmQ[UkJO`+]t(?ne.)'s8ZYj<(u0vgBdoU]IlTTXXksN]*`DUfviYN&[11)]&7US?[C_`j@SJ9As4.aHSrAMlVmF>g/uC&iP5.d*oLaS2$e[FMwXt8gF[k1?1pN`4;0$dc&mjjNBFNcR]`x+9;,m@Tq)Cf5''vA.CVg&kvE]RrXuOU9cOjN0rd<N=$xx-kCn'vJ[skUek-%2,t0TYTX0Lp_7I[.etRjCL`P>$/*wIkZjax??O+KMu)=,-TRnm37_ue)ipHV,aGDOKu7FCTlU7G%M<P^E1Wq5ifJ[t3bM'8c1X/d`4W:uEAsUG0o%r4]-K<f7Ap^rcQFa@R/nKJUHv8Si4+:cpa@[q<FCm>nZZmWRGOE,bGkLm[FTO-9R2v50%`q4K`UW[-jdt2=YG7df,)pO.OI.*T]2VN%A)@5A]@>o[E(ZY:W8B:^.Oww%fT_Hl$#,*F$3>X1;1qH7,Jrfc;fF4ib?er+K`:fU[*(&(YeCF?k>@RUNVQpI&EW+V)V.KhKw1^mn#s&+p7l8f[#P*LrrG6jh&[=BqSP3G79/#xDSW_Pd(@)'gQuvo9%1tlbnrW[]cpO)[U.$C?1TGXbJd`[,ViRI$[JUwQCKg3-'%5ofi)(t-@x>2WH6,Q*[;*E%RT.=B%SaPF&BQ;pKSpSC=UN8=C*ch?dLA7B(p,b6FU*IPJ%YB(O?MRL,doeBB>4ZWOU[/R])n`ix%:Q/5;.F(_sA)P)]3DmMfp]P*vV:?(a$R((s0sSFLXD8..#52W-64HJeG?D00;K&f_Rg=Kif,Gb'&iYv6TWC_clR.>-0h1fTpqa*%6p2Np38st5f^5';]C*;l?Pn^v>U:iaQ<e&0sOp=h@N@=dO$,N5l@6RY3U?7JpFc#rCK?.7Z_[:V]5H#AJ6NTxDf-.nTJ]@Z=ORj0OYJ:S;5rjiC?;dR-l#Z4g8Gtk<s;&#hVkHVn2Y;$sVUX&;@N0_,1'[*dIM7SH@6sKY*f_qmW$i5/cM.kf,Kg^329gL0Me:'/1/]%/SLU`cGQuY'FcW?Jd']3kr8ZbTL.:S3@jh-sC`#w?Kr.j-Rm%,PWqHqY`VT1M-=Pje^+q0$B>54k>)B's),NJJiZX=k6V<E$-`UYi,a=Fl'==vp9VYu<]PAdS#)n>77V,3,jZ4i_>GnhfseY0@;VbUs5W2kA@j@[2j]*CkU'_F1KlIMF8G9GQu>+^tb0Ns(Ga:VTFcs[*(o/%a6.7WR8>IjfY10Fu_Jxpu7tFV8H':A[hNVgB:K]=A&^?YX0u3p#+_u/_c?36ZF;A$V;Z*5%S#?gw,;Cs)`fq+Nq&tNbX'6aP;/.'X%l3'$?6wGeFjE=^.9C8.$t$8f(/TGxgk2Bs6Ob@#C=>a<0X4r%Tf^5N$?<C=4Vw&<4=HIbtGe)jmQcF'6uk%(;6il1]5sE/mDFK^)$cj%h+%*Y?g(QF]BKKJP0R4Aq0;jS4]Xux+ZV@H>Bl9c1DCm.TVWGi$oX>B=]k5&X0&e'_a6oU/6u:2S[kQ>nJCSk8GXxN&=]<s]sGx_<2pmR7U_$D*Rl@V2n:M75@t3Y9*Ji?$u7i'v_>[=ZgD'xCH:79LkuU79^=+u6bKS*dst19Dr>m.[geGI<&G@IXO0m0*Flcd^<6Mkd5E6D<dqu/B=MR551aXU/4V/m76.]#4mm$.PfhmCDs[d;R>6B7b$#g)t:6-.K#3BvIOf^r<C;6H:Cw-dA(QE]Qm(=^[jqpZk9/uRcoxdY^.b7k(B-iC[08@i6fwFqsSa@813=_r]WP1nRo4,hjDuLZhP[+iS/rPQ_J'6t6%GikP]hr$ko]srpMsZ2jj2eOIfCM*sD*]3R^lK2U*ph8hU60#cORxnYalMH^c1dD`^;.h1:RxZnODPEaSFMn>9V)x1[Fp@Pth2'OtO`CF+)8x2f5T4wg&FQG0>=U,*?/C>De]H;gkrUj5a`HnDHhIiEi<Z=O`GK[So*XXn9?C$T:]$g3*[Gh9+ON>c[TsTFE+j%M.RV-_.r`N0Z.b?0&XV,PAvmeMUUxjB3/5K5gih:;(FmdhVu7]Jxi<Y1rp1BAaZWwrJ=f5=S3,ru'(L2DvR+J`GfO=oE]'Y:6GxJKvfiw>GajjJv@oYQ^c9(jAQd8GWpm5JTpideDO5CmF=uf0e1Qvj7(fE2d$8$NVF9A>JULTE=0.><&OvF-eO*,HJ)Dk;,*nu<lP1MD-?87gEGp4->=GSd)M?#pB14bnOVgeb%C0DpHcCaHe9=p53.iE5c*=OV34%bn.<9C*N7PLh$K#0g&KN1Nk/1`PS@Nsatw-w^:F$xMs-wIH$<?NP&rBlZYhJ0%=Wb_'1L?_/pxB/AI$:<(M0^Sevx,5UT576=[j^22>2`$EpXqW>GhuY1$+vS=(EFbJX=-bo,q6HQg:6]K&c)3W?$g=jM#jI1'mxALw4n(^j+i4qH4J=A(o<A?2c0Fp`>+nXF1rY?1OVPE64n?=HP(kKd,>m2;i>JFBWJRu6DKD/T,?r?JhZB%ksA(Txsu5%'R1xnf[,dtG7+X&nxlFC0nXn2;(;QTjtn@_CQo/99^$uf%;sFogIFR)Np-:rVjt+I@@.+#H:[?JhV$4k<t(eqj3P><qhS4='8ROcEMs1qpCPfTFsM&u*wSn]OPl?=tZGJNLDoU:,75+d?o]Y5>XAxuAWU'6Yim=[-ix#.o4br%m.C(@[#t;m^noS6`<R#p=%?&e+/+Dd7m6r9&gY74JhRrtfau2'Ooq0g;=VpX3Tf0d@=pu<edE)5rdA:r7cT:mC[hw-]smw=YjFlZcINW_$I[q`DwiThkntc<qt-?QIr0-K^,aD3'Q97D1e$9YsDOgTDumfCHWb6%v)F*anRV/^<C9J6kSq9ETrAKD0S1DC'w5[2>6,2`P(4T8HoVhBFk<CYu0[F+be8M(TaGWBO7.J,b?[$v)tBmk<[1@s?Tc^Lo18$Mg27:?*vX&.s;,xiA3eb_v-r_cS$tWM+Okn6NI.wT7=Lkc#`e%.Fg2,oD^`kn]X-8'^v3>d[^t1[KZ-u7ZEXTddR&BIn%YlQ')tPI*?Jt`9:grQOm2a'.;QR%b++Z&bn_xkMb,Kc*^5-KsI]P1&RYZYCf95_8f5m)?xf4QW#BaqT4)i5.DOwrVO:ZJSa*UnYgDP)?[l6q:O`qHv8GPu>V#4^h*=fX1t%DB;BSr0*$+^[NMJ2VOpPfHHx;b3i(jVT9DC&=W+4?kUa%HqmAoH+Pj*VfqJM2'jl+*J'H_JKDpt-dMT`%5-`8mn81&*h0h65-Ir<*s`NGE/UwWC;m4rLM%q<OiSKqe8RU`.o%Qn9BU6DFe>c8w0Xu='OLc,35=Ed>DH`q[I=8KNg^OhP?X&S9Ui%JmmdI0/g#hN[l5+`qZn3MkW+Z1X=VZ)jsQE)+%lNSSp(D785VlM$oVQ'&nAHP-PR_+Gr(]TxHQ@7QV&_1%T0Q)$-REV#3wpHDc,K0?0UWV3RK*it:4<hUIGK9Zm=avxc[nOu^?S8ad[4$_`,H-EO-.@J7`(QSb5bB+2?]:pkb%)u&s/j_?:Kd)MtR6es:ROvB.9uX(2M&0RM<.Ubpwt7;Vw_@Y7^vDBvTkiN&FGgcuAiU)[g^ldWuADWA;mRNo`@G48kid6'0JrB,FD,G^%3G-*vbZXa5n2%fwEt,kEbF&)Bw-,+D`Fosx&]t+VLhR@Cc7nbaR:DNU0b/FT+h=5l&Zht4HL40)Ifdav`n:v'.3#wb/Qrm+(4:+(d8MFgVEbIXsw7sNZ2a.ur/PO;_W4Bf[QSijXj5@UCbT_sS^<JUT?b,Bw?Q'CFu_.'$AJ'B;hV7nc^&.afmNH:O/?kBe:svMF#%7?])b'`uaSAC1wEPDSa;ABjLCWa^W>S7*Sac)LHVC'-1?$NFIJ7I8_1%T&W*J=BvDM5FIuW%mF#FB&>IRD^?JmA6&r['=T3D<N=pMR8tPIN]'Wl&<8XG495LFo@`8-ebD4a3MS*B4j^BAcW%?)cbI.=UC^<o8t6L#.f85ChTL:iZh:r7o#D(Epm>Sa-fopA8fmm&lZillJE0m#oaN;/B<U:jJ@S=%ZeBfR.6/<hO48EjLV)=jlj,r1CE0>rbfspXk_#i9ZHK^9tg&*`/4T&0-I<GZ;E;GteQk`2&>0J1A</>dxOCg@UvV>GhDk1gNEtAI?_)S9T.)4Uu53EpIx$<ubgSK&M+XjP#XDs7OStUoP78RquW=k?7<o<6;oTs=$t]n2sv0BTs.^DoT1dK*0R$o4.D*_[NvQIXI<.u+3HcITP4iH^u?3&AZA.)o&OrLismfi8g&EJZ_HMPoGv_#oK[?5f>==^kN+d??Xm85KHTrDBwr#dw=Zoi9WEYdA?k/q$@jNfk%Jb+XXCr0(_U`()YYK-aaNVOtOff26Lbm3_hAoR4k0K323U<Ka*%V(5kv`?RURCZEDW%SBQ;X)Z+BYPv@dR^d/7sMUtJS676v_6_iV?v7Npg;t)+nOK1a]#[;mDmG)x8`6rEOFgF]$VC]R,MXFQpex*<>^hR)<iq;brs3rJ4Rs5ILO]K8@VhtM6Y1'/:T=9Y[@%%.VRC#:elo^b]>01ok31>X-dY..VgD1gh$xn6`J[&r1+?pkPY:&o%a4Yu5[lD4-/CF&8k%sHQd5ZAY]WeSm8P^84L4MdPu)XO*Ii((SkF%,VS:K_N`C5,r/v3V#aN#r]oF5LnPZx)RhnXRC&@xdDgx2'O>[#=Ku68O).J`p7ETQA>I&gs0Qt]FGGXR;fE6EKBurLlj'wkD>;Cu]LVNDFEl$qXna_>fat.`$SQY[8g(Ma*2$J22<L*q.,I':qS*3fg@e_T-%].qt84DsnKo=6@m>8V$Mgj)24F7O1fKY(5$-K+GW__9,gFuZMS>5p4XLhD<uQi'mxR3bQ**:2.TPX^%Dv+Y[rdhpPn-#l-rFLpZoaHlg>55r8U6P',QE?SerhGK)5$#(M2s;*d+M-H,9/mkw]m7'52>Q[4K:JSQGdsbR'$AP5v&P[S^4aHCw2SHqq5F7&>'6&Q[Zf1v`P*3X%K=PU>tiq-aWL$H+=xnw(=VB[@dPO7DQYLR^lGUuAO_w:Z<#=A&5@x3(7C7Jl>7/4w&^`ehgnrmlM$b3IUgGJ-5o1L59p>3^L$l:VAA9q>s9DseDO$G?I=..eIweB^iu;P./wfFa3p%M_k6.htVK1pjFql:R/`;se3Hq7^`'wN:;x7,I/&xRX61O-oBHr2hX=wgH.6,(%t_IT576f'UD]2%(RI`i2N(65%_bn0]A1;C)*vew1SO-4@P9IxZM0%xqEV%EuQ_QpcG:AYU+n^_^JKW/QaooM_eZ05[ksO/)D8ib^u(O%T[/RU@Y%X=>:3OJj[>gF'jfYBS*#M>YJ:(TU@#+JD/&NB3*V*xHm8Y-g4]GgIQ9F*miMRZ*,J$X6oca>KP*PQ's6@L6Blkec<-]U':glB69/mWKgeP@9^T(SrhT_?xq>+&^(=k+x)5UFMi1tAli9lDMq?JE5_k/AZX,D$%v)pu$M)'-#]bhRSa,B]wKb`PV3]>cLd$W4B1]@FjW';CGBSs`-mMmx&N,-S(KK(3+Dra1H_^tCFRWf;q?k5pEmPF-2W]nL_rq*,W/E=Z6Z3(ux3VC>n;I[K7.k#84ZIJLH6+1*^SU'vkZN^?fv.Wm`=T^>Gn73GsZ@43]G0ML6>72heMoAe*,m8DV+#DdA'g#4RifS%P7tsF)0+k*x#f6FgAjnPAX/e/OVxoM=_4^cgirPuPb,)hfm()9GfhuR'oNw>noQqcnAb?j19'`pCjiXlb5C/xfgS0hY:&i<>=d+(j[=wRx@>pYN'(,k.@bLdL7=S-'#CODqg9bAi>jZE'WlFrrUF(BebH$wT.jBXITG5.KVgC=imF19h+g8)=Ul;^3hiPSqe1hcU+SJ`Cl-ajQXuS`tn>x;dRH#'wqO8#mru#JhZ;x*Q6G5JFok.RlDH:rIEdD#$I482-N^A;M:/&2=lYXS1+uenbIOQ?<Qo#O74%Etr'wAGggHh-IrA?;mCKj#k$*iG>]]*VHlM$IH57u-4A8R*=H5+o7b$-I58?lm+@MnVW$_rn?A2fdOml].c@UFtVO/U^dV?g#&$4k'4c]<^*R=)#8-b=fKukktRA;iquFS7.8u;t#(rd]n%VpCq52^)`ahW3$w9G?fgGc+QwlVb9?`+vm#.%SY2$[5%bAZ_KVg2lV7t6@0Z;;g(59r&Lq1vp(g-<5ZT8n4fJ-S[^g[X6@/U;9#AfDkeaq?kq$=ujBgia7E$Y]`,oofOt930)UEGR;='SSYBDRKXikPG4$r`%h(g-5Bco]rXIS0s=9io%52M+d2+X7fK5Ep5'7lCi;u-6a7-W_,UPHua`&7L<h2Y>.>nAreM=7??Ls[YD$[9.xsH/_-'q'$GLW4U1A3R2)$[C$Ef54ndvNG#/i=Tf#O1GajLv=l8nZ^i7-p0V>8-hmScK?@g_)Z:>Og%tCIX5tB/E&Q<kc,^f7mH#&olr>W1t*X.x6gV=r+v`g2B/kD:rPn_&0Fs=_iBD>21vEKSa-`TGYV+l4h8;3.Md(?#JY2DNfIQKE#IKhgXMR]ZL'Qrn]ChY<G=Hbs[l@wwGV%T:hmpdYsc8/K_`qeRaIe[`YP*BVC+#5KWXU[n5OfhNq6,(O7tpMT-HQ7X*j,rC+IYc1/4LpA5[3ieTf#b-t`fgmKcs1UEkO7)%UdUb(NW6bub]NnieQErX(fU)@ONa[Q,+/%eWnIt;;p#g_B#7`'0O0A./VXPiei_4U>I=9mL`pD6[u;Et2`lZ[4])YflLAZ?`@a_BHWcaP,[_w_$qnj=Xhq`fYf#:.;Nn.%.3'OdIntw>8aB,DGKjQr.4N>&&qpT?Kq>7.q-PX#c<G*qlJ*aeGB`3lhZ2a`-hDuPX:8p:,pU)12'T^.(Hh0AHqCNEF*,iZQ_3=T.X4c_x*V'J,4jrM^&XR&1_X6.uaa5Q`A=UGXJiuTtO;LJ7Si]YK1ad[.3qb2od2sXJ3p@vYlXuO/3108suFl/k?<ZFd?=:J6[DLGn'3d;'p-4n>6xuW,o%YnN`K4hO7YQBt(S.B?#oHPZ8FStK6;ga6IF('7r5UmSoZ@WYV_.Twc*$P[e1o&XgJ<'MI=mU?'+#==PdZ]lO%dvJUpVxo%d@3Z2*A9NtC;@4g=_&Du9bq/;VB%2#75O_;T<TTH$l/iMmveL1EnCLJL@Lf4k`7o&:hjt#+>umv&HxcnE8O[3j5)(IcZR581,k+XiR;D1#;T1Rh,=X(,)X$_]>6h*vS6bv2+IkBT[F$f1'h^jlWHn-6tK+s&KkFp>P6-PYZh$hUJZplW/`1G,7nP*Xt=p0n8gennTecdgn2U$$w-c88Sp@jOUiKK*dV;s$pYF#,BZf+g>Tc?q2%B87oBokoN*+)_gm#']F<>*-I0%KaoV94uD;,m9#*of`n#gHl<o_fASLIh@/&CkCBOpl_vJ&C4<b/JM<LN3'[4n;#=D:@U]W@LfE@PEwJq>BaHeGQSSQoa=<A=b+0vw4VQ3L(ao#4GfF<=X9NYT7HeujL]Ob:bTE?weSq7RmIE-xG@85VFYB54T4fv*1E9,Y<'G>Xckc_3Oa>KaJH+''9@l)&3B=WHcem^jK^5$0b_;PCrq7oo07jOg@m0DP:;oGX/m>SpN>Op'Tq9<$0rsnXnr>)@QgM`-huZ:5VU_R@neC0Zs>#Ykb4Vn(9IL.5)AP'5Dj,KRe;-rV5vYqmL]vj:^/5&?6Y-u9(1(2^j]x.70T9WNoC&+Y&[X7h.1I`Qao8/Q8JH?=1a:Xo%YW4vo?wchmwu;n&$4WhIjD3O$$M:-lfVu=6wkQeTa$*-mXq;*uN+Gx/@DNRS'6J&<4kJ>[=:w(Lr7X3qMULdoexJCIX>/9Mm@kbCZ[;gGw4WRVs-BErrb0I#69q*/_:.eVo[PZtU&AuLa&WO^7-pZW(A23F7uF7qTmi;KXL+05skS&a?'lwf[L24PA_&$WZTEDUsN0#sv/86(o/eX$LRO`2/XYH]F@mLA)-or-#HcT[vu0b+uL=;H[0pE;;)]WUeZ)$:ds1^78G6GQwx%j<A^.fr$vZ/]9/@v&*wfa``TWI5sJjN:wd[ks3()fo'jUxo`FrO#He6U-;LEJGlnc90xD0><6]aM<<;aVIHgBi@ug'1VoEBMPNdYjR*RFS0%)2&JZ8>Ff?.V8udSA/k42CNYRIl,'l'Ff^HHKi$uK<0ALYnM.q#bKIY`Z/]r]DqDx]=mgZsh=lI.Dx]Fc-c,5F[2#aBcepVdPSoad2GsQxTtrUD]NR5:ADH6TAf(C=(D>u9Z@V=5&NGc^d#1YS'.d'P5Z3K5=^kFB+F?B+3MItHJVChki;(0XT7/JmUupj94]-jI>-<cxwJC/Rt=N6%6hYOm&,+*.(rBnP%//Lra5W:5aNWEntX,.Ye5f_r]CEag<pHZx_hl8gvr*6a64$H)v9r-a.C[,hbm+'j%Gs0Gi/$0dTM^+7$(:tRQiE-*u,u59vPedrahKIGmHm]mgu;E(_$mn,R:,vkT5^W0uAGQch9R$=;nP9L/*VVl*u68^)k]jE=@*d_oQ$&Fe`nH#gC+X5/T$M7f'Xt4?OdO*m4ii`@](-=A[SHo')P*4sqrFeH22K#?W))k'lms^_e73-I`J)QjWYrnUg.N)3<_E9hN&KTRZgV=n>1P8)(pI:]c,.qBLY]GqJKu:Bmk_lPHJ#(FMYe7V9'9(pIINkHX_Nq0g<p#Q#Zv5BWe$4Xb@On)_G+OXl7vvE-nCF6$2d5bNmCO7q$sa7*3[k_]t1tuof5)./#oB2'Z]A%8SOuA@Nm)G@4UHI125'hZH>3_RB+Nxkat3afEse3e3Hd.*U*.,&_r;n6Pn6a(R#ib0VK#^@nJ[MvTsRI-2K;E'S*,qp9;@UhOBRxeW$uiN`@EO=-/0PJj9hPdDKve_rS(j@%]4um,@bUY@9tZ6_;NkPKe$/e9,13N*<W&eE=R`kK)VSN2F1dAdB^gA/=u16&iPIb1^5VKW$@;mI-uP'XXv8u[p+EmV8<_4ce'RoR<w]<dJ3c1_H9hod`$(W6A8g''fxPiT9FL$ecK_;.(/tD6iqp&m'<^&>6[1oud+/hW>dT$<d#mJ./^L?>aY1C,=g%fe^='K]]9c$QtRt+q]v/[jBUPcWkX>tk%K1#no:iwD_@-+d`6B*bV#Fi+,lTWUX)&G]3]b4NXQrW5hE.EIDdQSi,22R^1&JXXhb2%VePA`WV]tkBMl6Z9`#V.7<iI,p*[SolN>37@#ZNWK>/(CesZ,Zc>/'%2t[3Sdj(E=HYdglD%g55-+w)je('1;7OD,O0?<=9qWZn1P2co<eS5BP;2RA3+Vi`73%oM[0D9@rZ9%UghN+XW/cp[.3m7l_k+8_RL.@Mv8jEnC$Di7&<vf*sIO(0xHK1TbE%wJJqxS'nEP:Z_2VYn9OmV*+h%(Y/^Y8PTl%x:OF^13#J9qb:(&;-dXP;bHCv#xRJ+:FbW2JfxQvAHpWfv23RN:<p?1grbWb2^w6>kcwPk3u#-oo`Q,xJsGJQI'(P9C?.t*P[T=<0W+U9bYhQEvArqhoU*v$n/#RNa()s=OiPI@Npi<dx@^<0mwxMwq(mLlCml.Ua=8R*I>q9Jgmg[=vM'*=@Alv6bR<lZO9Uj>7K?GkuQ&[n&:]/49CW70uN2W+9WH::%)A3,r&`C`(KV6d2_muLu[g&K'o-,%26]N<t4:i^.9bIlIw?':NduZq,EOYlo@o[e4>>g5n^mOor3U'9pIP;f`-8'M,N(H?];N[)Ho=LY1x'.wX^==[Y0UqHd$/I@vrIidb&8D[GZvlou6^sA_oW3;UiBDH,Kcs$I>7DJ/e[+*S)$=5U3eY-b.q<-x.-m2o0;#5`UVd?kBJ2aF:9PTtj+X2@onCt+%rIs2DZ(8#8(;B7mhMmu?FMur=`ic#mBX5pUBcJZT(+v-io8,OBveHn(cKuRfl[?7vrh>8g^=?W=2>]<bfK:MC;17T]dX.1b78@#>agHBQE_DmKclq9Y<X3Pl^I%=Mx@LEbmaC-<ZdUhOkd5=)$mRIb3Nha=QN1V@lb'8m8ZRvl'u.'nb23mt3^7svMZOT5[4xc<,)PUSZ^&'[hWi-,gqnCm@J-3,=DX&K]I0OHo@#kb>U#Ix3dxrEF&*8>EQ5hafcX]M73:VAu^@Alq=4Y+Z8JnajWDPnXF4Gl5IPXC1?X@66%5PmB2`*#X85/&3,H`.6ADUF/Y:-Vd#x@vlf'4O3Vj]%(&B-<$ij=Aq;hOHD.Ik/hsTf)X]8gI1`s`rq-@*O_ri:^s[%JO*nH4HEmC@E_pM,sN2J&b5+RaUGh.H@c>#d'6<m>/rqMMwmq6N*FCTZXC(K_^I_GO@4*eLx>p?K%vXx]?bi438i7QBaGO'+BcJb,R_UPW8jDM<#T<Ge?$@be?dr;[?+4:IZ,hCTFCgT&PQp8n^9M>i7,0p$_0tLQmR9AoK_2[:M,8lbnE3+QFJg`]r%KpZAm_7MpNoc1:(1&Y(ML[M@vE3RG4ih(@#9WP2f&KS2o>&jbM5?4IP4%)G;cUtp?DA,MVl*AKNpMk4Bm]eHB$*[716Bo$e/xoZRdM16i*xe;07?:H(pIaRkak^acX6D'1`oL9pa'S,YIwRBo3@$Mu=@96)D$SG_1ZNcpp]KDe1HC/mN>`ZT@_&k(@oUC?hTKs_,h>Mxn,`6:JEsWdK:r)W<U[]B/0dk'#hmA@Bjgf?'=:G2.`C<fTRJ^XeO7Hj47.It`[6vM'`BPjefS6AFTE6Te-)#+.RRi7C^%;a.)dWDq)H%3[r+wUaI25O+t5ViEV`<mtCHs+6,Zlw&E^'1AQdb6_AX_VBTqb?&g5lKDKZbSZ4]0>3t$`k3A/8-dk9i^7i+Wkms%ABf*@P*.24<r-Dw;dU9i)do1@Ir)9K9'<gR#HHa>'G94/m25:&Bx^JpQ<2YA@67S?^qEm%[M<B-:aM^Hb1,?'ufU*d5,*JU4;/HRCdO[b*1&mKW3]ov#H=E?@rhr]mm93NVP6#%QjqsPar?-sI6)cc26skdDSU:a)8(C1[lJNvt=<+MEoG#p0,R?tu+3KCL#5VOBTO>pL6;UH(PULt5vRwuHb%<kGpQ?PEIf'E_kRAa;9dYhi&`6jn4,uvF6Da&i.:Lwt<qGWH9'^O2n[&>@p-^:wFH%<snnVBKtG2w#cD;=A5$/7Y^ikj4VF3IkDao8f06imTY3Xn2x%mvC%nVSVoSj]Gl[KXJ^#6gA<t^xo'<*:eUc#(<m9O=qCru5o,E26,%O&?E`12K3q>jd7E'K9B]FSC8Wdkv8gEXg0ls9NuAbcg#(JBB2.Dhg*#@ds/rg988'nC('B5%`6%Q`:*MkK?$+LA4>#BR[/i>xB4FdwiCCp/=wfKb/(TH-^[4s4HR7Ei3?1Y'^;.nSY9n7H&DhI-xXuRfl`.^RRjl`ek?v9eCwvGc)MC:w(7_dT^Q`Ikg;kHW^NaecS3DV6&KH$7D&,+6euRNp?:Cgv2$;/9^tc>sDE&V8au`c2x2GLS-I-:&2K@r[W<ckd4H`]4/j,E2M@&lLrVG/VJ.tW(hQSCwfHb%cbi`5?DxuWMKVWrp$)*Deg;7.'79)[ApR&62['PPuHAhgRIp13YAYS_R6[r'>6JiCer$ja7wq$?v2w[@j4&)[(Xgk,R,cKiNGP0@P::)eUsL5ii:)h8$gJIuw@>j#$:qDt0L6j[N[q4t`Z_-$=W#D5C0pq*Za,>ocU2BM:b0O@&kgA6Xj;HGv.$RPt:L73Q&]8sOt`O<?9ER`Vh46W<QZ).q[)O07L9VW..TZ&Tbi+E&Ye.SW0X7`S]1>G;,WWD(H`kPEwhb6fm_XthrTw4*KZ5pmUn0m,o7+cjO@g.Y=3>PME]_bi0WX]V;$^D=rCQ<q7p^a2@xbss/o0/ghnV75^65XOsX[1+j<rG)gF_#K>dAfOnHSPfN1N0&^;lkdVH#ppKj,pRu$[6_1ccJRm#^a$S9N/?]V9JQsA+Ybr@&J_1?eo*>MC.i6n6##EnVfdG))StKd?3$p8TeuvISc-^<Sf)mxpD,A@.,#@gGV/KveiX;9QJA`0+>oH7d,sZfDQ&H5@dJwg`ORbD<XEoJhFKs'__=h-w$1.'n+[9[fRt%^j'[cq^<W)v:_/1#ugfrkVjY$/O0w?eB5h<W)]J*cGHJ+:Fg'ST=4uY.gamwG+I3hM9U-fbZh2xk4&uom3Dn#rQ0r6&ro/7o/f4Mg`-Va;kt_@x6-8M*o>LBYObX6?SD:F%Eo^n>ER;9Nk_xIJ5iQ[^LDWrEQiUA6[EEt(lku8x;81J1&_)@(nFuK.+DPw;Ov1>,S9FfGiC5>*sp:7L7):[1_&3YC/&ItwGR1cY/>jd8tckckdGsek2'h2n-WSi?N%`PVg8hJ^6OE<Smn6H-D]$B7Vs5DwN+.E>TMaJD*eV=fKtLo[V_(e.2CN$5P`j`w9m=Io,.#U4mG<*2r['W+>^;u4$&Abu#LAL:JG&>(x'G_--'/oKnY#J6%.@>1oYItGHmW$,M:d?3/$TX#N.<<DqEN^JXq@r2e2fTW#>cPS0:caNN=6s.1gp]L<<e&a0QZ9'N6TSWfr:Qq`'L95-Oi,41U)7gHiLS3e^t0VmoKQc3=tniRs$/,d*L@GhMQ&)+C`pf^fnJh$Lr@k&V#78AT?V_H?3IUR@<LvZa'o6SDQ.d?Itp,<&6HkK7'jjVDv=rf)r;ig%WTSYJxhVbO^@nNfenN*R,1cK5ZC=r(D;s(>YY2FC_rjUu)d[U(;0?aQv7F`WM'./:.gEoKj32HARO<LKH`6rTu>_/_`hIh%fs``jZgs6G:TjstD/+G8<+1[.[fo2fuiCf,5UH^C`;1bEg_U/B@;+Z:+X?[pnhG#+@ptQB@T7hAco=qoao2Q<7?j`P/ixBH0+)Otr1xHTFe0i4&-tGF>MVGW@:PZRLut]N$W#1lFx0.#%Ri&+K$Q[;m;Gx#vX3_unO]vu%KAXQac>bjJum%]]";
<krpano>
<!--
webvr.xml
- krpano 1.20.11
https://krpano.com/plugins/webvr/
-->
<!-- load the WebVR plugin and assign it to a global 'webvr' variable -->
<plugin name="webvr" devices="html5" keep="true"
url="webvr.js"
mobilevr_support="true"
mobilevr_touch_support="true"
mobilevr_fake_support="true"
mobilevr_profile.normal="90|60|42|0|0|0"
mobilevr_profile.mobile="80|60|42|35|0.441|0.156"
mobilevr_wakelock="true"
fullscreen_mirroring="false"
mouse_pointerlock="true"
vr_cursor_onover="if(handcursor, tween(hotspot[vr_cursor].scale,0.4,0.1); vr_auto_click(get(vr_timeout)); );"
vr_cursor_onout="tween(hotspot[vr_cursor].scale,0.3,0.1);"
onavailable="webvr_onavailable();"
onunavailable=""
onunknowndevice="webvr_onunknowndevice();"
onvrcontrollers="webvr_onvrcontrollers();"
onentervr="webvr_onentervr();"
onexitvr="webvr_onexitvr();"
ondenied="webvr_ondenied();"
/>
<!-- the VR cursor hotspot -->
<style name="vr_cursor_style"
url="webvr_vrcursor.png"
visible="false"
enabled="false"
distorted="true"
crop="0|0|80|80"
scale="0.3"
depth="120"
/>
<action name="webvr_load_vr_cursor_hs" scope="local">
addhotspot('vr_cursor', hs);
hs.loadstyle(vr_cursor_style);
set(hs.keep, true);
set(webvr.vr_cursor, 'hotspot[vr_cursor]');
</action>
<action name="webvr_load_vr_controller_hs" scope="private:VRCONTROLLERS" args="controllerstyle">
removehotspot('vr_controller_l');
removehotspot('vr_controller_r');
addhotspot('vr_controller_l', vr_ctrl_l);
addhotspot('vr_controller_r', vr_ctrl_r);
set(vr_ctrl_l.keep, true);
set(vr_ctrl_r.keep, true);
vr_ctrl_l.loadstyle(calc(controllerstyle ? controllerstyle : 'vrcontroller_light_and_point'));
vr_ctrl_r.loadstyle(calc(controllerstyle ? controllerstyle : 'vrcontroller_light_and_point'));
<!-- optional: vibrate the controllers on hovering:
vr_ctrl_l.addevent('onover', pulse(1.0, 0.25) );
vr_ctrl_r.addevent('onover', pulse(1.0, 0.25) ); -->
if(!global.webvr.iswebxr,
vr_ctrl_l.addevent('onvrcontrollerbutton', 'if(vrbuttonindex == 3 AND vrbuttonstate == "up", vrsetup_open(); );' );
vr_ctrl_r.addevent('onvrcontrollerbutton', 'if(vrbuttonindex == 3 AND vrbuttonstate == "up", vrsetup_open(); );' );
);
set(global.webvr.vr_controller, 'vr_controller_l,vr_controller_r');
set(global.have_vr_controllers, true);
if(global.webvr.isvrbrowser AND global.webvr.vrcontrollers[0].buttons.length LE 2,
<!-- when there are only two buttons on the VR controller (e.g. Oculus Go) use an extra hotspot for the VR-setup -->
addhotspot('webvr_vrsetup', vr_setup_hs);
vr_setup_hs.loadstyle('webvr_button_style');
set(vr_setup_hs, keep=true, ath=0, atv=90, depth=160, zorder=999, torigin=view, html='VR SETUP', oversampling=3, scale=0.2, onclick='vrsetup_open();', onloaded='renderloop( copy(ath,view.hlookat); );');
);
</action>
<action name="webvr_onvrcontrollers" scope="private:VRCONTROLLERS">
if(!global.have_vr_controllers, webvr_load_vr_controller_hs(); );
</action>
<style name="vrcontroller_laser"
url="webvr_laser.png"
distorted="true"
enabled="false"
visible="false"
width="0.5" height="1000" edge="bottom" oref="1" oy="0"
torigin="world" tx="0" ty="0" tz="0" depth="0"
zorder="99999"
depthbuffer="true"
onloaded="asyncloop(loaded,
calc(height, (target AND target.hitd GT 0 ? target.hitd : 1000) / display.hotspotworldscale);
);"
/>
<style name="vrcontroller_light_and_point"
url="webvr_light.png"
distorted="true"
enabled="false"
visible="false"
width="0.5" height="18" edge="bottom" oref="1" oy="0"
torigin="world" tx="0" ty="0" tz="0" depth="0"
zorder="99999"
depthbuffer="true"
onloaded="vrcontroller_target_point();"
/>
<style name="vrcontroller_handcursor_and_point"
url="webvr_handcursor.png"
distorted="true"
enabled="false"
visible="false"
width="10" height="10" edge="center" oref="1" oy="-1"
torigin="world" tx="0" ty="0" tz="0" depth="0"
zorder="99999"
depthbuffer="true"
onloaded="vrcontroller_target_point();"
/>
<action name="vrcontroller_target_point" scope="localonly">
addhotspot(auto, hs);
set(hs, keep=true, type=text, bgcolor=0xFFFFFF, bgalpha=1.0, width=10, height=10, bgroundedge=5, bgborder='1 0x000000 1.0', oversampling=2,
scale=0.4, torigin=world, depth=0, distorted=false, zoom=true, zorder=99998, enabled=false
);
renderloop(
if(!caller.loaded,
removehotspot(get(hs.name));
stoprenderloop();
,
if(global.display.havedepthmap,
<!-- use the laser for depthmap panos -->
removehotspot(get(hs.name));
stoprenderloop();
webvr_load_vr_controller_hs('vrcontroller_laser');
,
calc(hs.bgcolor, caller.pressed ? 0x049AFF : (caller.hovering ? 0x00FF00 : 0xFFFFFF));
calc(distance, (caller.target AND caller.target.hitd GT 0 ? caller.target.hitd : 1000));
calc(hs.scale, 0.4 * (distance GT 1000 ? distance / 1000 : (distance LT 200 ? 0.25 : (0.25 + (distance - 200)/800 * 0.75))));
calc(hs.tx, caller.tx + caller.dx * distance);
calc(hs.ty, caller.ty + caller.dy * distance);
calc(hs.tz, caller.tz + caller.dz * distance);
);
);
);
</action>
<!-- vr_auto_click() - call this action in the onover event of a
hotspot to trigger automatically a click after some time. -->
<action name="vr_auto_click" scope="local" args="vr_aclk_timeout">
if(webvr.isenabled,
if(vr_aclk_timeout == null, set(vr_aclk_timeout, 2000));
copy(vr_aclk_t1, timertick);
set(vr_aclk_waiting, true);
copy(webvr.vr_aclk_hotspot, caller.name);
set(hotspot[vr_cursor].crop,'0|0|80|80');
asyncloop(vr_aclk_waiting AND webvr.vr_aclk_hotspot == caller.name,
sub(dt, timertick, vr_aclk_t1);
if(!caller.hovering,
set(vr_aclk_waiting, false);
set(hotspot[vr_cursor].crop,'0|0|80|80');
,
div(f, dt, vr_aclk_timeout);
mul(f, 16);
roundval(f);
Math.min(f, 16);
mul(f, 80);
txtadd(hotspot[vr_cursor].crop,get(f),'|0|80|80');
<!-- wait another 100ms delay after finishing the animation before doing the click -->
sub(dt, 100);
if(dt GT vr_aclk_timeout,
set(vr_aclk_waiting,false);
set(hotspot[vr_cursor].crop,'0|0|80|80');
<!-- call onclick -->
callwith(caller, scope(global, ondown();onup();onclick(); ); );
);
);
);
);
</action>
<!-- by pressing SPACE the headset could be re-centered -->
<events name="webvr_events" devices="html5" keep="true"
onmousedown="if(webvr AND webvr.isenabled, webvr_showbuttons() );"
/>
<!-- when WebVR support is available show an EnterVR button -->
<action name="webvr_onavailable">
webvr.loadsettings();
if(layer[webvr_enterbutton], delayedcall(0.5, tween(layer[webvr_enterbutton].alpha,1.0); ); );
</action>
<action name="webvr_onunknowndevice">
if(webvr.isfake AND device.desktop AND webvr.havesettings == false,
<!-- set the 'no distortion' headset for fake desktop usage -->
set(webvr.mobilevr_lens_overlap, 1.0);
set(webvr.mobilevr_lens_fov, 96.0);
set(webvr.mobilevr_lens_dist, 0.0);
set(webvr.mobilevr_lens_dist2, '1|0|0|0');
set(webvr.mobilevr_lens_ca, 0.0);
set(webvr.mobilevr_lens_vign, 100);
);
</action>
<action name="webvr_onentervr">
if(layer[webvr_enterbutton], tween(layer[webvr_enterbutton].alpha,0,0); );
webvr_showbuttons();
webvr_hide_all_non_vr_layers();
if(webvr.isfake, webvr_show_fakemode_info(true); );
webvr_load_vr_cursor_hs();
</action>
<action name="webvr_onexitvr">
removehotspot('vr_cursor');
removehotspot('vr_controller_l');
removehotspot('vr_controller_r');
set(have_vr_controllers, false);
stopdelayedcall(vr_button_fadeout);
if(layer[webvr_enterbutton], tween(layer[webvr_enterbutton].alpha,1); );
tween(layer[webvr_exitbutton].alpha,0);
tween(layer[webvr_setupbutton].alpha,0);
webvr_show_fakemode_info(false);
webvr_restore_layers();
</action>
<action name="webvr_ondenied" scope="local">
addlayer(webvr_ondenied_info);
layer[webvr_ondenied_info].loadstyle(webvr_button_style);
set(layer[webvr_ondenied_info],
align='center',
html='Entering VR mode was denied!',
onclick='set(enabled,false); tween(alpha,0,0.5,default,removelayer(get(name)));'
);
delayedcall(2.0,
callwith(layer[webvr_ondenied_info], onclick(); );
);
</action>
<action name="webvr_hide_all_non_vr_layers" scope="local">
for(set(i,0), i LT layer.count, inc(i),
copy(lr, layer[get(i)]);
if(lr.vr !== true,
copy(lr.vr_backup_visible, lr.visible);
set(lr.visible, false);
);
);
</action>
<action name="webvr_restore_layers" scope="local">
for(set(i,0), i LT layer.count, inc(i),
copy(lr, layer[get(i)]);
if(lr.vr_backup_visible,
copy(lr.visible, lr.vr_backup_visible);
delete(lr.vr_backup_visible);
);
);
</action>
<action name="webvr_show_fakemode_info" scope="local" args="show">
if(show == true,
addlayer(webvr_fakemode_info);
set(layer[webvr_fakemode_info],
type='text',
keep=true,
align='bottom',
y=80,
bg=false,
css='color:#FFFFFF;text-align:center;',
html='[i][u]Simulated WebVR Mode![/u][br]For real WebVR with headset tracking use a [a href="http://webvr.info" target="_blank" style="color:#FFFFFF;"]WebVR-capable[/a] browser or a mobile device and a VR headset.[/i]'
);
,
removelayer(webvr_fakemode_info);
);
</action>
<!-- ensure the same scaling on mobiles (regardless if mobilescale is 0.5 or 1.0) -->
<krpano webvr_setup_scale="calc:(1.0 + 1.0*(device.mobile AND stagescale LT 1.0)) / (1.0 + 1.0*device.mobile)"
webvr_button_scale.normal="1.0"
webvr_button_scale.mobile="1.6"
/>
<!-- the EnterVR/ExitVR and SetupVR buttons -->
<style name="webvr_button_style"
type="text"
bgcolor="0x000000"
bgalpha="0.5"
bgroundedge="0"
css="calc:'color:#FFFFFF;font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
padding="calc:6*webvr_setup_scale*webvr_button_scale + ' ' + 10*webvr_setup_scale*webvr_button_scale"
/>
<layer name="webvr_enterbutton" keep="true" vr="true"
style="webvr_button_style"
html="Enter VR"
align="top" y="24"
autoalpha="true" alpha="0.0"
onclick="webvr.enterVR();"
/>
<layer name="webvr_exitbutton" keep="true" vr="true"
style="webvr_button_style"
html="Exit VR"
align="top" y="24"
autoalpha="true" alpha="0.0"
onclick="webvr.exitVR();"
/>
<layer name="webvr_setupbutton" keep="true" vr="true"
style="webvr_button_style"
html="VR Setup"
align="bottom" y="24"
autoalpha="true" alpha="0.0"
onclick="vrsetup_open();"
/>
<action name="webvr_showbuttons">
stopdelayedcall(vr_button_fadeout);
tween(layer[webvr_exitbutton].alpha|layer[webvr_setupbutton].alpha, 1.0|1.0, 0.25);
delayedcall(vr_button_fadeout, 3.0, tween(layer[webvr_exitbutton].alpha|layer[webvr_setupbutton].alpha, 0.0|0.0, 1.0); );
</action>
<!-- VR SETUP -->
<mobilevr_presets>
<headset name="cbv1" caption="Cardboard V1" profile="80|60|42|35|0.441|0.156" />
<headset name="cbv2" caption="Cardboard V2" profile="120|64|39|35|0.34|0.55" />
<headset name="dydm" caption="Daydream" profile="104|60|41|35|0.42|0.51" />
<headset name="nodt" caption="No Distortion" profile="90|60|42|0|0|0" />
</mobilevr_presets>
<action name="vrsetup_open">
if(!vrsetup_open_js, vrsetup_init(); );
vrsetup_open_js();
</action>
<action name="vrsetup_init" type="Javascript"><![CDATA[
var webvr = krpano.webvr;
var padding = 20;
function vrsetup_dlg_create(type)
{
var dlg = {type:type, bg:null, y:0, scale:1, elements:[]};
if (type == 'layer')
{
dlg.bg = krpano.addlayer();
dlg.bg.keep = true;
dlg.bg.type = 'container';
dlg.bg.align = 'center';
}
else // 'hotspot'
{
dlg.scale = 0.15;
dlg.bg = krpano.addhotspot();
dlg.bg.keep = true;
dlg.bg.type = 'text';
dlg.bg.distorted = true;
dlg.bg.ath = krpano.view.hlookat;
dlg.bg.atv = 0;
dlg.bg.depth = 150;
dlg.bg.torigin = 'world';
dlg.bg.tx = krpano.view.tx;
dlg.bg.ty = krpano.view.ty;
dlg.bg.tz = krpano.view.tz;
}
dlg.bg.bgcolor = 0x000000;
dlg.bg.bgalpha = 0.5;
dlg.bg.bgcapture = true;
dlg.bg.handcursor = false;
dlg.bg.capture = false;
dlg.bg.zorder = 100;
dlg.bg.visible = false;
dlg.y = 0;
return dlg;
}
function vrsetup_dlg_addline(dlg, linetext, customcss, onclick)
{
var txt;
if (dlg.type == 'layer')
{
txt = krpano.addlayer();
txt.keep = true;
txt.type = 'text';
txt.align = 'center';
txt.zorder = 101;
}
else // 'hotspot'
{
txt = krpano.addhotspot();
txt.keep = true;
txt.type = 'text';
txt.distorted = true;
txt.zorder = 101;
txt.ath = dlg.bg.ath;
txt.atv = dlg.bg.atv;
txt.depth = dlg.bg.depth - 1;
txt.oversampling = 2;
txt.scale = dlg.scale;
txt.torigin = dlg.bg.torigin;
txt.tx = dlg.bg.tx;
txt.ty = dlg.bg.ty;
txt.tz = dlg.bg.tz;
}
txt.onautosized = function()
{
txt.havesize = true;
}
txt.edge = 'top';
txt.visible = false;
txt.bg = false;
txt.html = "" + linetext;
txt.css = 'font-size:32px;font-weight:bold;color:#FFFFFF; line-height:90%;' + (customcss || '');
if (onclick)
{
txt.onclick = onclick;
}
else
{
txt.enabled = false;
}
dlg.elements.push( txt );
return txt;
}
function vrsetup_dlg_addctrl(dlg, changedelay, callback)
{
var txt = vrsetup_dlg_addline(dlg, callback(0) );
var inc;
var dec;
if(dlg.type == 'layer')
{
inc = krpano.addlayer();
inc.keep = true;
inc.type = 'text';
inc.align = 'center';
inc.zorder = 101;
dec = krpano.addlayer();
dec.keep = true;
dec.type = 'text';
dec.align = 'center';
dec.zorder = 101;
}
else // 'hotspot'
{
inc = krpano.addhotspot();
inc.keep = true;
inc.type = 'text';
inc.distorted = true;
inc.zorder = 101;
inc.ath = dlg.bg.ath;
inc.atv = dlg.bg.atv;
inc.depth = dlg.bg.depth - 1;
inc.oversampling = 2;
inc.scale = dlg.scale;
inc.torigin = dlg.bg.torigin;
inc.tx = dlg.bg.tx;
inc.ty = dlg.bg.ty;
inc.tz = dlg.bg.tz;
dec = krpano.addhotspot();
dec.keep = true;
dec.type = 'text';
dec.distorted = true;
dec.zorder = 101;
dec.ath = dlg.bg.ath;
dec.atv = dlg.bg.atv;
dec.depth = dlg.bg.depth - 1;
dec.oversampling = 2;
dec.scale = dlg.scale;
dec.torigin = dlg.bg.torigin;
dec.tx = dlg.bg.tx;
dec.ty = dlg.bg.ty;
dec.tz = dlg.bg.tz;
}
inc.edge = 'top';
inc.visible = false;
inc.bg = false;
inc.html = '&#62;';
inc.css = 'font-size:32px;font-weight:bold;color:#FFFFFF; line-height:90%;';
inc.padding = '0 10';
dec.edge = 'top';
dec.visible = false;
dec.bg = false;
dec.html = '&#60;';
dec.css = 'font-size:32px;font-weight:bold;color:#FFFFFF; line-height:90%;';
dec.padding = '0 10';
inc.vr_timeout = changedelay * 1000;
dec.vr_timeout = changedelay * 1000;
inc.ondown = function(){ txt.html = ""+callback(+1); inc.enabled = false; setTimeout(function(){ inc.enabled = true; },0); };
dec.ondown = function(){ txt.html = ""+callback(-1); dec.enabled = false; setTimeout(function(){ dec.enabled = true; },0); };
txt.ctrlchilds = [inc,dec];
txt.updateControl = function()
{
txt.html = callback(0);
}
return txt;
}
function vrsetup_dlg_addspace(dlg, customspace)
{
dlg.elements.push(customspace|| padding);
}
function vrsetup_dlg_finish(dlg)
{
var i, w=0, h=0;
var waitforsizes=false;
for (i=0; i < dlg.elements.length; i++)
{
var e = dlg.elements[i];
if ( isNaN(e) )
{
if ( e.havesize )
{
w = Math.max( w, e.width * 1);
h += e.height * 1;
}
else
{
waitforsizes = true;
break;
}
}
else
{
h += e;
}
}
if (waitforsizes)
{
setTimeout( function(){ vrsetup_dlg_finish(dlg); }, 16 );
}
else
{
var y = 0;
dlg.bg.width = Math.ceil((w + padding*2)*dlg.scale);
dlg.bg.height = Math.ceil((h + padding*2)*dlg.scale);
for (i=0; i < dlg.elements.length; i++)
{
var e = dlg.elements[i];
if ( isNaN(e) )
{
e.oy = Math.round((-h/2 + y) * dlg.scale);
e.visible = true;
y += e.height * 1;
if (e.ctrlchilds )
{
for (var j=0; j < e.ctrlchilds.length; j++)
{
var sube = e.ctrlchilds[j];
sube.ox = Math.round(((j&1)-0.5) * (-w) * dlg.scale);
sube.oy = e.oy;
sube.visible = true;
}
}
}
else
{
y += e;
}
}
dlg.bg.visible = true;
}
}
function vrsetup_dlg_remove(dlg)
{
var removefu = dlg.type == 'layer' ? krpano.removelayer : krpano.removehotspot;
var i,j;
for (i=0; i < dlg.elements.length; i++)
{
var e = dlg.elements[i];
if ( isNaN(e) )
{
if (e.ctrlchilds )
{
for (j=0; j < e.ctrlchilds.length; j++)
{
var sube = e.ctrlchilds[j];
removefu(sube.name);
}
}
removefu(e.name);
}
}
removefu(dlg.bg.name);
}
function vrsetup_webvr_dialog()
{
// WebVR API rendering
var dlg = vrsetup_dlg_create('hotspot');
vrsetup_dlg_addline(dlg, 'WebVR Setup');
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'Oversampling:', 'font-size:16px;')
var ctrl_ss = vrsetup_dlg_addctrl(dlg, 1.0, function(change)
{
var p = webvr.oversampling;
if (change < 0) { p = Math.max(0.2, Number(p) - 0.1); webvr.oversampling = p; } else
if (change > 0) { p = Math.min(4.0, Number(p) + 0.1); webvr.oversampling = p; }
krpano.actions.delayedcall(0.3, function()
{
renderres.html = webvr.renderwidth + "x" + webvr.renderheight;
});
return p.toFixed(1);
});
vrsetup_dlg_addspace(dlg,8);
vrsetup_dlg_addline(dlg, 'Rendering Resolution:', 'font-size:16px;');
var renderres = vrsetup_dlg_addline(dlg, '');
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'CLOSE', '', vrsetup_close);
vrsetup_dlg_finish(dlg);
return dlg;
}
function vrsetup_mobilevr_dialog()
{
// MobileVR / Cardboard rendering
var dlg = vrsetup_dlg_create(0 ? 'hotspot' : 'layer');
vrsetup_dlg_addline(dlg, 'MobileVR SETUP');
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'Screensize (inch):', 'font-size:16px;')
vrsetup_dlg_addctrl(dlg, 1.0, function(change){ var ss = Number(webvr.mobilevr_screensize); if (isNaN(ss)) ss = 5.0; if (change < 0) { ss = Math.max(4.0, ss - 0.1); webvr.mobilevr_screensize = ss; } else if (change > 0) { ss = Math.min(10.0, ss + 0.1); webvr.mobilevr_screensize = ss; } return ss.toFixed(1); });
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'VR Headset Preset:', 'font-size:16px;')
var ctrl_ps = vrsetup_dlg_addctrl(dlg, 1.0, function(change)
{
var preset_index = -1;
var i;
var profile = webvr.mobilevr_profile;
var presets = krpano.get("mobilevr_presets.headset");
if (presets)
{
presets = presets.getArray();
for (i=0; i < presets.length; i++)
{
if ( profile == presets[i].profile )
{
preset_index = i;
break;
}
}
if (change < 0)
{
preset_index--;
if (preset_index < 0)
preset_index = presets.length - 1;
webvr.mobilevr_profile = presets[preset_index].profile;
}
else if (change > 0)
{
preset_index++;
if (preset_index >= presets.length)
preset_index = 0;
webvr.mobilevr_profile = presets[preset_index].profile;
}
}
if (preset_index >= 0)
{
return presets[preset_index].caption;
}
return 'Custom';
});
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'Customize Headset', 'font-size:25px;', function()
{
vrsetup_dlg_remove(dlg);
dlg=null;
vrsetup_dialog = vrsetup_mobilevr_interactive_dialog();
});
vrsetup_dlg_addline(dlg, '(Interactive Adjustment in VR)', 'font-size:12px;');
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'CLOSE', '', vrsetup_close);
vrsetup_dlg_finish(dlg);
return dlg;
}
function vrsetup_mobilevr_interactive_dialog()
{
// MobileVR / Cardboard rendering
var ctrl_preset, ctrl_fov, ctrl_ild, ctrl_stl, ctrl_ttl, ctrl_k1, ctrl_k2, ctrl_os;
var dlg = vrsetup_dlg_create('hotspot');
vrsetup_dlg_addline(dlg, 'MobileVR SETUP');
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'Preset:', 'font-size:16px;')
ctrl_preset = vrsetup_dlg_addctrl(dlg, 1.0, function(change)
{
var preset_index = -1;
var i;
var profile = webvr.mobilevr_profile;
var presets = krpano.get("mobilevr_presets.headset");
if (presets)
{
presets = presets.getArray();
for (i=0; i < presets.length; i++)
{
if ( profile == presets[i].profile )
{
preset_index = i;
break;
}
}
if (change < 0)
{
preset_index--;
if (preset_index < 0)
preset_index = presets.length - 1;
webvr.mobilevr_profile = presets[preset_index].profile;
}
else if (change > 0)
{
preset_index++;
if (preset_index >= presets.length)
preset_index = 0;
webvr.mobilevr_profile = presets[preset_index].profile;
}
if (change != 0)
{
ctrl_fov.updateControl();
ctrl_ild.updateControl();
ctrl_stl.updateControl();
if (ctrl_ttl) ctrl_ttl.updateControl();
ctrl_k1.updateControl();
ctrl_k2.updateControl();
}
}
if (preset_index >= 0)
{
return presets[preset_index].caption;
}
return 'Custom';
});
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'Lens-Field-of-View:', 'font-size:16px;');
ctrl_fov = vrsetup_dlg_addctrl(dlg, 0.25, function(change){ var p = webvr.mobilevr_profile.split("|"); if (change < 0) { p[0] = Number(p[0]) - 1.0; webvr.mobilevr_profile = p.join("|"); } else if (change > 0) { p[0] = Number(p[0]) + 1.0; webvr.mobilevr_profile = p.join("|"); } if (change != 0) ctrl_preset.updateControl(); return Number(p[0]).toFixed(0); });
vrsetup_dlg_addspace(dlg, 8);
vrsetup_dlg_addline(dlg, 'Inter-Lens-Distance (mm):', 'font-size:16px;');
ctrl_ild = vrsetup_dlg_addctrl(dlg, 0.25, function(change){ var p = webvr.mobilevr_profile.split("|"); if (change < 0) { p[1] = Number(p[1]) - 1.0; webvr.mobilevr_profile = p.join("|"); } else if (change > 0) { p[1] = Number(p[1]) + 1.0; webvr.mobilevr_profile = p.join("|"); } if (change != 0) ctrl_preset.updateControl(); return Number(p[1]).toFixed(0); });
vrsetup_dlg_addspace(dlg, 8);
vrsetup_dlg_addline(dlg, 'Screen-to-Lens-Distance (mm):', 'font-size:16px;');
ctrl_stl = vrsetup_dlg_addctrl(dlg, 0.25, function(change){ var p = webvr.mobilevr_profile.split("|"); if (change < 0) { p[2] = Number(p[2]) - 1.0; webvr.mobilevr_profile = p.join("|"); } else if (change > 0) { p[2] = Number(p[2]) + 1.0; webvr.mobilevr_profile = p.join("|"); } if (change != 0) ctrl_preset.updateControl(); return Number(p[2]).toFixed(0); });
vrsetup_dlg_addspace(dlg, 8);
if (!webvr.isfake)
{
vrsetup_dlg_addline(dlg, 'Tray-to-Lens-Center-Distance: (mm):', 'font-size:16px;');
ctrl_ttl = vrsetup_dlg_addctrl(dlg, 0.25, function(change){ var p = webvr.mobilevr_profile.split("|"); if (change < 0) { p[3] = Number(p[3]) - 1.0; webvr.mobilevr_profile = p.join("|"); } else if (change > 0) { p[3] = Number(p[3]) + 1.0; webvr.mobilevr_profile = p.join("|"); } if (change != 0) ctrl_preset.updateControl(); return Number(p[3]).toFixed(0); });
vrsetup_dlg_addspace(dlg, 8);
}
vrsetup_dlg_addline(dlg, 'Lens-Distortion Coefficients:', 'font-size:16px;');
ctrl_k1 = vrsetup_dlg_addctrl(dlg, 0.1, function(change){ var p = webvr.mobilevr_profile.split("|"); if (change < 0) { p[4] = Number(p[4]) - 0.01; webvr.mobilevr_profile = p.join("|"); } else if (change > 0) { p[4] = Number(p[4]) + 0.01; webvr.mobilevr_profile = p.join("|"); } if (change != 0) ctrl_preset.updateControl(); return Number(p[4]).toFixed(3); });
ctrl_k2 = vrsetup_dlg_addctrl(dlg, 0.1, function(change){ var p = webvr.mobilevr_profile.split("|"); if (change < 0) { p[5] = Number(p[5]) - 0.01; webvr.mobilevr_profile = p.join("|"); } else if (change > 0) { p[5] = Number(p[5]) + 0.01; webvr.mobilevr_profile = p.join("|"); } if (change != 0) ctrl_preset.updateControl(); return Number(p[5]).toFixed(3); });
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'Oversampling:', 'font-size:16px;');
ctrl_os = vrsetup_dlg_addctrl(dlg, 0.25, function(change){ var p = webvr.oversampling; if (change < 0) { p = Math.max(0.2, Number(p) - 0.1); webvr.oversampling = p; } else if (change > 0) { p = Math.min(4.0, Number(p) + 0.1); webvr.oversampling = p; } return p.toFixed(1); });
vrsetup_dlg_addspace(dlg);
vrsetup_dlg_addline(dlg, 'CLOSE', '', vrsetup_close);
vrsetup_dlg_finish(dlg);
return dlg;
}
var vrsetup_dialog = null;
var vrsetup_events = null;
function vrsetup_close()
{
if (vrsetup_dialog)
{
webvr.savesettings();
vrsetup_dlg_remove(vrsetup_dialog);
vrsetup_dialog = null;
}
if (vrsetup_events)
{
krpano.events.removeItem(vrsetup_events.name);
vrsetup_events = null;
}
}
krpano.vrsetup_close = function()
{
vrsetup_close();
}
krpano.vrsetup_open_js = function()
{
if (vrsetup_dialog != null)
{
// already open...
return;
}
if (webvr.iswebvr)
{
vrsetup_dialog = vrsetup_webvr_dialog();
}
else
{
vrsetup_dialog = vrsetup_mobilevr_dialog();
}
vrsetup_events = krpano.events.createItem("auto");
vrsetup_events.keep = true;
vrsetup_events.webvr_onexitvr = function()
{
vrsetup_close();
}
}
]]></action>
<!-- A list of devices and their screensize -->
<mobilevr_device_database>
<device name="iPhone 5/5S/SE" screen="320x568x2" size="4.0" bevel="3" />
<device name="iPhone 6/6S/7/8" screen="375x667x2" size="4.7" />
<device name="iPhone 6/6S/7/8 Plus" screen="414x736" size="5.5" />
<device name="iPhone 6/6S/7/8 Plus (zoomed)" screen="375x667x3" size="5.5" />
<device name="iPhone X/XS/11Pro" screen="375x812x3" size="5.85|5.33" />
<device name="iPhone XS/11Pro Max" screen="414x896x3" size="6.46|5.95" />
<device name="iPhone XR/11" screen="414x896x2" size="6.06|5.58" />
<device name="iPhone 12/12Pro" screen="390x844" size="6.1" />
<device name="iPhone 12Pro Max" screen="428x926" size="6.7" />
<device name="Samsung S6" ua="sm-g930" size="5.1" />
<device name="Samsung S6 Edge" ua="sm-g925" size="5.1" />
<device name="Samsung S6 Edge Plus" ua="sm-g928" size="5.7" />
<device name="Samsung S7" ua="sm-g930" size="5.1" />
<device name="Samsung S7 Edge" ua="sm-g935" size="5.5" />
<device name="Samsung S8" ua="sm-g950" size="5.8" />
<device name="Samsung S8+" ua="sm-g955" size="6.2" />
<device name="Samsung S9" ua="sm-g960" size="5.8" />
<device name="Samsung S9+" ua="sm-g965" size="6.2" />
<device name="Samsung S10e" ua="sm-g970" size="5.8" />
<device name="Samsung S10" ua="sm-g973" size="6.1" />
<device name="Samsung S10+" ua="sm-g975" size="6.4" />
<device name="Samsung S10 5G" ua="sm-g977" size="6.7" />
<device name="Samsung Note 7" ua="sm-n930" size="5.7" />
<device name="Samsung Note 8" ua="sm-n950" size="6.3" />
<device name="Samsung Note 9" ua="sm-n960" size="6.4" />
<device name="Samsung Note 10" ua="sm-n970" size="6.3" />
<device name="Samsung Note 10 5G" ua="sm-n971" size="6.3" />
<device name="Samsung Note 10+" ua="sm-n975" size="6.8" />
<device name="Samsung Note 10+ 5G" ua="sm-n976" size="6.8" />
<device name="Huawei P10 Lite" ua="HUAWEIWAS-TL10" size="5.2" />
<device name="Huawei P20 Lite" ua="HUAWEIANE-LX1" size="5.84" />
</mobilevr_device_database>
</krpano>
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
<krpano>
<!-- krpano 1.20.11 - Virtual Tour Skin -->
<!-- skin settings (can be overridden in the tour.xml) -->
<skin_settings maps="false"
maps_type="google"
maps_bing_api_key=""
maps_google_api_key=""
maps_zoombuttons="false"
maps_loadonfirstuse="true"
gyro="true"
gyro_keeplookingdirection="false"
webvr="true"
webvr_keeplookingdirection="true"
webvr_prev_next_hotspots="true"
autotour="false"
littleplanetintro="false"
followmousecontrol="false"
title="true"
thumbs="true"
thumbs_width="120" thumbs_height="80" thumbs_padding="10" thumbs_crop="0|40|240|160"
thumbs_opened="false"
thumbs_text="false"
thumbs_dragging="true"
thumbs_onhoverscrolling="false"
thumbs_scrollbuttons="false"
thumbs_scrollindicator="false"
thumbs_loop="false"
tooltips_buttons="false"
tooltips_thumbs="false"
tooltips_hotspots="false"
tooltips_mapspots="false"
deeplinking="false"
loadscene_flags="MERGE"
loadscene_blend="OPENBLEND(0.5, 0.0, 0.75, 0.05, linear)"
loadscene_blend_prev="SLIDEBLEND(0.5, 180, 0.75, linear)"
loadscene_blend_next="SLIDEBLEND(0.5, 0, 0.75, linear)"
loadingtext=""
layout_width="100%"
layout_maxwidth="814"
controlbar_width="-24"
controlbar_height="40"
controlbar_offset="20"
controlbar_offset_closed="-40"
controlbar_overlap.no-fractionalscaling="10"
controlbar_overlap.fractionalscaling="0"
design_skin_images="vtourskin.png"
design_bgcolor="0x2D3E50"
design_bgalpha="0.8"
design_bgborder="0"
design_bgroundedge="1"
design_bgshadow="0 4 10 0x000000 0.3"
design_thumbborder_bgborder="3 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial;"
design_text_shadow="1"
footer_menu = "true"
/>
<!-- save the url path of this xml file (the url value will be adjusted during xml parsing) -->
<vtourskinxmlpath url="./" />
<!-- iPhone X safe-area support: use the horizontal safe-area only -->
<display safearea="h-only" />
<!-- mouse / touch / keyboard(button) control settings - https://krpano.com/docu/xml/#control -->
<control mouse="drag"
touch="drag"
zoomtocursor="false"
zoomoutcursor="false"
draginertia="0.1"
dragfriction="0.9"
movetoaccelerate="1.0"
movetospeed="10.0"
movetofriction="0.8"
keybaccelerate="0.09"
keybfriction="0.94"
keybfovchange="0.25"
mousefovchange="1.0"
fovspeed="3.0"
fovfriction="0.9"
bouncinglimits="true"
/>
<!-- mouse cursors - https://krpano.com/docu/xml/#cursors -->
<cursors standard="default"
dragging="move"
moving="move"
/>
<!-- ensure stagescale 2x for mobile devices (regardless if mobilescale is 0.5 or 1.0) -->
<krpano stagescale="calc:stagescale * 2" if="stagescale LT 1.0" devices="mobile" />
<!-- VR support - https://krpano.com/plugins/webvr/ -->
<include url="%$VIEWER%/plugins/webvr.xml" devices="html5" />
<!-- overwrite some settings from the webvr.xml for the skin integration -->
<plugin name="webvr" keep="true" devices="html5.and.webgl"
url="calc:skin_settings.webvr == true ? '%$VIEWER%/plugins/webvr.js' : null"
onavailable="skin_webvr_onavailable();"
onentervr="skin_showloading(false); webvr_onentervr(); skin_webvr_setup(); skin_reloadscene_webvr();"
onexitvr="webvr_onexitvr(); skin_webvr_setup(); skin_reloadscene_webvr();"
/>
<!-- webvr button style (adjust to match skin style) -->
<style name="webvr_button_style"
bgroundedge="calc:skin_settings.design_bgroundedge"
bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha"
bgborder="get:skin_settings.design_bgborder"
bgshadow="get:skin_settings.design_bgshadow"
css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
<!-- show a 'rotate the device' info when the mobile device is in portrait orientation in VR mode -->
<layer name="webvr_rotate_to_landscape_request" keep="true" vr="true" devices="mobile"
url="rotate_device.png" scale="0.5"
align="top" edge="center" y="28%"
autoalpha="true" alpha="0.0"
enabled="false"
/>
<events name="skin_webvr_and_gyro_events" keep="true" devices="html5"
onxmlcomplete="skin_set_webvr_or_gyro_startup_view()"
onresize.mobile="skin_webvr_act_as_gyro_in_portrait_mode();"
onloadcomplete="delayedcall(0.5, if(webvr.isenabled AND scene.count GT 1 AND skin_settings.webvr_prev_next_hotspots, set(hotspot[skin_webvr_prev_scene].visible,true); set(hotspot[skin_webvr_next_scene].visible,true); ); );"
onviewchange=""
/>
<action name="skin_webvr_onavailable" scope="local">
if(webvr.isvrbrowser,
<!-- show a special enter VR screen for Gear VR browsers (Oculus Browser or Samsung Internet VR) -->
set(layer[webvr_enterbutton],
align=center, y=0, padding='10 20',
css=calc(skin_settings.design_text_css + ' font-size:20px;text-align:center;'),
html=calc((global.title ? '[i]'+global.title+'[/i][br]' : '') + '[span style="font-size:40px"]Enter VR[span]'),
);
skin_hideskin(instant);
,
<!-- remove the enter vr button from the webvr.xml -->
removelayer(webvr_enterbutton);
);
<!-- update the skin buttons to add the skin vr button -->
skin_arrange_buttons();
<!-- call the original onavailable event from the webvr.xml -->
webvr_onavailable();
</action>
<action name="skin_set_webvr_or_gyro_startup_view">
if( (webvr.isenabled == true AND skin_settings.webvr_keeplookingdirection == false) OR (!webvr.isenabled AND plugin[skin_gyro].enabled == true AND skin_settings.gyro_keeplookingdirection == false),
skin_lookat( get(xml.view.hlookat) );
);
</action>
<action name="skin_webvr_setup">
if(webvr.isenabled,
copy(skin_settings.loadscene_flags_backup, skin_settings.loadscene_flags);
set(skin_settings.loadscene_flags, MERGE|KEEPVIEW|KEEPMOVING|NOPREVIEW);
skin_webvr_act_as_gyro_in_portrait_mode(true);
if(scene.count GT 1 AND skin_settings.webvr_prev_next_hotspots,
set(hotspot[skin_webvr_prev_scene].visible, true);
set(hotspot[skin_webvr_next_scene].visible, true);
set(events[skin_webvr_and_gyro_events].onviewchange, skin_webvr_menu_following());
);
,
if(skin_settings.loadscene_flags_backup !== null, copy(skin_settings.loadscene_flags, skin_settings.loadscene_flags_backup); );
if(layer[webvr_rotate_to_landscape_request], tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 0.0); );
set(hotspot[skin_webvr_prev_scene].visible, false);
set(hotspot[skin_webvr_next_scene].visible, false);
set(events[skin_webvr_and_gyro_events].onviewchange, null);
);
</action>
<action name="skin_webvr_act_as_gyro_in_portrait_mode" scope="local" args="setupcall">
if(device.mobile AND webvr.isenabled,
div(aspect, stagewidth, stageheight);
if(aspect != lastaspect OR setupcall == true,
copy(lastaspect, aspect);
if(stagewidth GT stageheight,
<!-- landscape orientation - use stereo rendering and a direct/fast gyro sensor mode -->
set(display.stereo, true);
set(webvr.mobilevr_sensor_mode, 3);
webvr.update();
tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 0.0);
,
<!-- portrait orientation - use normal rendering and a smoother/slower gyro sensor mode -->
set(display.stereo, false);
set(webvr.mobilevr_sensor_mode, 1);
webvr.update();
tween(layer[webvr_rotate_to_landscape_request].alpha, 1.0);
delayedcall(3.0, tween(layer[webvr_rotate_to_landscape_request].alpha, 0.0, 1.0); );
);
);
,
set(lastaspect, 0);
);
</action>
<!-- VR scene switching hotspots -->
<style name="skin_webvr_menu_style" torigin="view" depth="1000" scale="0.625" distorted="true" ath="0" atv="45" alpha="0.5" />
<hotspot name="skin_webvr_prev_scene" keep="true" style="skin_base|skin_webvr_menu_style" crop="0|64|64|64" ox="-88" onover="tween(scale,0.750);" onout="tween(scale,0.625);" vr_timeout="750" onclick="skin_nextscene_loop(-1);" visible="false" devices="html5.and.webgl" />
<hotspot name="skin_webvr_next_scene" keep="true" style="skin_base|skin_webvr_menu_style" crop="64|64|64|64" ox="+88" onover="tween(scale,0.750);" onout="tween(scale,0.625);" vr_timeout="750" onclick="skin_nextscene_loop(+1);" visible="false" devices="html5.and.webgl" />
<!-- floating/following VR hotspots -->
<action name="skin_webvr_menu_following" type="Javascript" devices="html5"><![CDATA[
var hs1 = krpano.get("hotspot[skin_webvr_prev_scene]");
var hs2 = krpano.get("hotspot[skin_webvr_next_scene]");
if(!hs1.hovering && !hs2.hovering)
{
var f = 0.01; // following speed factor
var h = krpano.view.hlookat;
var v = krpano.view.vlookat;
var hsh = hs1.ath;
var hsv = hs1.atv;
h = (h -(h|0)) + (((h|0) +360180)%360) - 180.0;
v = (v -(v|0)) + (((v|0) +360180)%360) - 180.0;
hsh = (hsh-(hsh|0)) + (((hsh|0)+360180)%360) - 180.0;
var dh = h - hsh;
dh += (dh > 180) ? -360 : (dh < -180) ? 360 : 0
hsh += dh*f;
var a = Math.abs(v - hsv) / 90.0;
a = 1.0 * Math.max(1.0 - 2.0*Math.sqrt(a), 0);
v = v + 55.0 - v*1.5;
hsv = hsv*(1.0 - f) + v*f;
hs1.ath = hs2.ath = hsh;
hs1.atv = hs2.atv = hsv;
hs1.alpha = hs2.alpha = a;
}
]]></action>
<!-- VR support -->
<!-- skin styles -->
<!-- skin_base - the base skin image -->
<style name="skin_base" url="calc:vtourskinxmlpath.url + skin_settings.design_skin_images" />
<!-- skin_glow - button glowing -->
<style name="skin_glow"
ondown.addevent="copy(skin_lockglow,name); skin_buttonglow(get(name));"
onover.addevent="if(skin_lockglow === null, copy(skin_lockglow,name); skin_buttonglow(get(name),0.3) );"
onout.addevent="if(skin_lockglow === name AND !pressed, skin_buttonglow(null);delete(skin_lockglow); );"
onup.addevent="delayedcall(0, if(hovering AND enabled, skin_buttonglow(get(name),0.3); , skin_buttonglow(null);delete(skin_lockglow); ); );"
/>
<!-- skin_thumbtext_style - style/textfield for the (optional, skin_settings.thumbs_text) thumbnails texts -->
<style name="skin_thumbtext_style" type="text" align="bottom" width="100%" y="5" enabled="false" bg="false" bgborder="false" css="calc:skin_settings.design_text_css + ' text-align:center; font-size:10px;'" textshadow="get:skin_settings.design_text_shadow" />
<!-- skin_hotspotstyle - style for the hotspots -->
<style name="skin_hotspotstyle" url="vtourskin_hotspot.png" edge="top" distorted="true"
tooltip=""
linkedscene=""
linkedscene_lookat=""
onclick="skin_hotspotstyle_click();"
depth="1000"
scale="0.5"
onover.addevent="tween(scale,0.55);"
onout.addevent="tween(scale,0.5);"
onloaded.addevent="skin_hotspotstyle_setup();"
/>
<action name="skin_hotspotstyle_setup" scope="local">
if(isvalue(caller.linkedscene) AND skin_settings.tooltips_hotspots,
copy(caller.tooltip, scene[get(caller.linkedscene)].title);
caller.loadstyle(skin_tooltips);
);
</action>
<action name="skin_hotspotstyle_click" scope="local">
if(isvalue(caller.linkedscene),
copy(hs_linkedscene, caller.linkedscene);
if(caller.linkedscene_lookat, txtsplit(caller.linkedscene_lookat, ',', hs_lookat_h, hs_lookat_v, hs_lookat_fov); );
set(caller.enabled, false);
skin_hidetooltips();
tween(caller.depth|caller.alpha|caller.oy|caller.rx, 4000|0.0|-50|-60, 0.5, default,
skin_loadscene(get(hs_linkedscene), get(skin_settings.loadscene_blend));
if(hs_lookat_h !== null, skin_lookat(get(hs_lookat_h), get(hs_lookat_v), get(hs_lookat_fov)); );
skin_updatescroll();
);
);
</action>
<!-- skin_tooltip - style for the thumb, hotspot and mapspot tooltips -->
<style name="skin_tooltips"
onover.addevent.mouse="copy(layer[skin_tooltip].html, tooltip);
set(layer[skin_tooltip].visible, calc(webvr.isenabled ? false : true));
tween(layer[skin_tooltip].alpha, 1.0, 0.1);
asyncloop(hovering, copy(layer[skin_tooltip].x,mouse.stagex); copy(layer[skin_tooltip].y,mouse.stagey); );"
onout.addevent.mouse="tween(layer[skin_tooltip].alpha, 0.0, 0.1, default, set(layer[skin_tooltip].visible,false), copy(layer[skin_tooltip].x,mouse.stagex); copy(layer[skin_tooltip].y,mouse.stagey); );"
/>
<!-- the tooltip textfield -->
<layer name="skin_tooltip" keep="true"
type="text"
parent="STAGE"
visible="false" alpha="0" enabled="false" zorder="2"
align="lefttop" edge="bottom" oy="-2" width="200"
bg="false"
textshadow="get:skin_settings.design_text_shadow" textshadowrange="6.0" textshadowangle="90" textshadowcolor="0x000000" textshadowalpha="1.0"
css="calc:skin_settings.design_text_css + ' text-align:center; font-size:16px;'"
html=""
/>
<!-- skin layout -->
<layer name="skin_layer" keep="true" type="container" align="top" width="get:skin_settings.layout_width" maxwidth="get:skin_settings.layout_maxwidth" height="100%" maskchildren="true" visible="false" bgcapture="false" zorder="1">
<layer name="skin_scroll_window" type="container" align="bottom" width="100%" height="100%" x="0" y="calc:skin_settings.controlbar_offset + skin_settings.controlbar_height - skin_settings.controlbar_overlap" maskchildren="true" onloaded="skin_calc_opened_closed();" zorder="1">
<layer name="skin_scroll_layer" type="container" align="bottom" width="get:skin_settings.controlbar_width" height="100%" x="0" y="200" y_offset="get:skin_settings.controlbar_overlap" accuracy="1" bgalpha="get:skin_settings.design_bgalpha" bgcolor="get:skin_settings.design_bgcolor" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow">
<layer name="skin_title" type="text" align="lefttop" edge="leftbottom" x="4" y="0" zorder="4" enabled="false" bg="false" css="calc:skin_settings.design_text_css + ' text-align:left; font-style:italic; font-size:12px;'" textshadow="get:skin_settings.design_text_shadow" visible="false" onautosized="skin_video_updateseekbarwidth();" />
<layer name="skin_video_controls" type="container" align="lefttop" edge="leftbottom" width="100%" height="18" visible="false">
<layer name="skin_video_seekbar_container" type="container" align="lefttop" width="100%" height="100%" bgcapture="true" ondown="skin_video_ondownseeking();" >
<layer name="skin_video_seekbar" type="container" bgcolor="0xFFFFFF" bgalpha="0.25" align="center" width="100%" height="2">
<layer name="skin_video_loadbar" type="container" bgcolor="0xFFFFFF" bgalpha="0.5" align="left" width="0" height="2" />
<layer name="skin_video_seekpos" type="container" bgcolor="0xFFFFFF" bgalpha="1.0" align="left" edge="center" x="0" bgroundedge="8" width="10" height="10" />
</layer>
</layer>
<layer name="skin_video_time" type="text" align="rightbottom" x="4" enabled="false" bg="false" css="calc:skin_settings.design_text_css + ' text-align:left; font-style:italic; font-size:12px;'" textshadow="get:skin_settings.design_text_shadow" html="0:00 / 0:00" />
</layer>
<layer name="skin_scroll_container" type="container" align="lefttop" width="100%" height="100%" x="0" y="0" bgroundedge="get:skin_settings.design_bgroundedge" maskchildren="true">
<layer name="skin_thumbs_container" type="container" align="lefttop" width="100%" height="100%" visible="false">
<layer name="skin_thumbs_scrollleft" style="skin_base|skin_glow" crop="0|64|64|64" align="lefttop" edge="left" x="5" y="50" scale="0.5" zorder="2" alpha="1.0" ondown="asyncloop(pressed, layer[skin_thumbs].scrollby(+2,0));" visible="false" />
<layer name="skin_thumbs_scrollright" style="skin_base|skin_glow" crop="64|64|64|64" align="righttop" edge="right" x="5" y="50" scale="0.5" zorder="2" alpha="1.0" ondown="asyncloop(pressed, layer[skin_thumbs].scrollby(-2,0));" visible="false" />
<layer name="skin_thumbs_scrollindicator" type="container" bgcolor="0xFFFFFF" bgalpha="0.25" align="lefttop" width="0" y="100" height="2" visible="false" enabled="false" />
<layer name="skin_thumbs" state="closed" url.flash="%$VIEWER%/plugins/scrollarea.swf" url.html5="%$VIEWER%/plugins/scrollarea.js" direction="h" align="top" width="100%" height="100" zorder="1" onloaded="skin_updatescroll();" onscroll="skin_updatethumbscroll();" />
</layer>
<layer name="skin_map_container" type="container" align="leftop" width="100%" height="100%" bgroundedge="get:skin_settings.design_bgroundedge" maskchildren="true">
<layer name="skin_map" state="closed" url="" visible="false" align="lefttop" width="100%" height="50%" x="0" y="0" zorder="1" lat="0" lng="0" zoom="10" bgalpha="0" maptype="satellite" onmapready="skin_addmapspots();">
<maptypecontrol visible="true" align="righttop" x="5" y="5" buttonalign="v" scale.mobile="1.5" />
<radar visible="false" headingoffset="0" />
<spotstyle name="DEFAULT" url="vtourskin_mapspot.png" activeurl="vtourskin_mapspotactive.png" edge="bottom" x="-5" y="-8" scale="0.5" />
<layer name="skin_map_zoom_in" style="skin_base" visible="get:skin_settings.maps_zoombuttons" crop="9|512|46|64" align="right" x="0" y="-40" zorder="2" ondown="layer[skin_map].zoomin(); skin_buttonglow(get(name));" onup="skin_buttonglow(null);" />
<layer name="skin_map_zoom_out" style="skin_base" visible="get:skin_settings.maps_zoombuttons" crop="73|512|46|64" align="right" x="0" y="+40" zorder="2" ondown="layer[skin_map].zoomout(); skin_buttonglow(get(name));" onup="skin_buttonglow(null);" />
</layer>
</layer>
</layer>
</layer>
</layer>
<layer name="skin_splitter_bottom" type="container" align="bottom" width="100%" height="calc:skin_settings.controlbar_offset + skin_settings.controlbar_height - skin_settings.controlbar_overlap" y="0" maskchildren="true" onloaded="skin_calc_opened_closed();" zorder="2">
<layer name="skin_control_bar_bg" type="container" align="bottom" width="get:skin_settings.controlbar_width" height="calc:skin_settings.controlbar_height + skin_settings.controlbar_overlap" x="0" y="get:skin_settings.controlbar_offset" bgcolor="get:skin_settings.design_bgcolor" bgalpha="get:skin_settings.design_bgalpha" bgborder="get:skin_settings.design_bgborder" bgroundedge="get:skin_settings.design_bgroundedge" bgshadow="get:skin_settings.design_bgshadow" />
</layer>
<layer name="skin_control_bar" type="container" align="bottom" width="get:skin_settings.controlbar_width" height="calc:skin_settings.controlbar_height" x="0" y="get:skin_settings.controlbar_offset" onloaded="skin_calc_opened_closed();" zorder="3">
<layer name="skin_control_bar_buttons" type="container" align="leftbottom" width="100%" height="get:skin_settings.controlbar_height">
<layer name="skin_btn_prev" style="skin_base|skin_glow" crop="0|64|64|64" align="left" x="5" y="0" scale="0.5" alpha="0.5" onclick="if(skin_settings.thumbs_loop, skin_nextscene_loop(-1), skin_nextscene(-1) );" />
<layer name="skin_btn_thumbs" style="skin_base|skin_glow" crop="0|128|64|64" align="left" x="50" y="0" scale="0.5" ondown="skin_showmap(false); skin_showthumbs();" />
<layer name="skin_btn_map" style="skin_base|skin_glow" crop="64|128|64|64" align="left" x="90" y="0" scale="0.5" ondown="skin_showthumbs(false); skin_showmap();" visible="false" />
<layer name="skin_btn_navi" type="container" align="center" x="0" width="240" height="32">
<layer name="skin_btn_left" style="skin_base|skin_glow" crop="0|192|64|64" align="center" x="-100" y="0" scale="0.5" ondown="set(hlookat_moveforce,-1);" onup="set(hlookat_moveforce,0);" />
<layer name="skin_btn_right" style="skin_base|skin_glow" crop="64|192|64|64" align="center" x="-60" y="0" scale="0.5" ondown="set(hlookat_moveforce,+1);" onup="set(hlookat_moveforce,0);" />
<layer name="skin_btn_up" style="skin_base|skin_glow" crop="0|256|64|64" align="center" x="-20" y="0" scale="0.5" ondown="set(vlookat_moveforce,-1);" onup="set(vlookat_moveforce,0);" />
<layer name="skin_btn_down" style="skin_base|skin_glow" crop="64|256|64|64" align="center" x="+20" y="0" scale="0.5" ondown="set(vlookat_moveforce,+1);" onup="set(vlookat_moveforce,0);" />
<layer name="skin_btn_in" style="skin_base|skin_glow" crop="0|320|64|64" align="center" x="+60" y="0" scale="0.5" ondown="set(fov_moveforce,-1);" onup="set(fov_moveforce,0);" />
<layer name="skin_btn_out" style="skin_base|skin_glow" crop="64|320|64|64" align="center" x="+100" y="0" scale="0.5" ondown="set(fov_moveforce,+1);" onup="set(fov_moveforce,0);" />
</layer>
<layer name="skin_btn_gyro" style="skin_base|skin_glow" crop="0|384|64|64" align="center" x="+140" y="0" scale="0.5" onclick="switch(plugin[skin_gyro].enabled); if(plugin[skin_gyro].enabled, skin_showmap(false));" visible="false" devices="html5" />
<layer name="skin_btn_vr" style="skin_base|skin_glow" crop="0|0|80|64" align="center" x="+146" y="0" scale="0.5" onclick="webvr.enterVR();" visible="false" />
<layer name="skin_btn_fs" style="skin_base|skin_glow" crop="0|576|64|64" align="right" x="90" y="0" scale="0.5" onclick="switch(fullscreen);" devices="fullscreensupport" />
<layer name="skin_btn_hide" style="skin_base|skin_glow" crop="0|448|64|64" align="right" x="50" y="0" scale="0.5" onclick="skin_hideskin()" />
<layer name="skin_btn_show" type="container" bgcapture="true" align="bottom" width="100%" height="get:skin_settings.controlbar_height" y="calc:skin_settings.controlbar_height - skin_settings.controlbar_offset_closed" onclick="skin_showskin()" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();" visible="false" capture="false" alpha="0.0">
<layer name="skin_btn_show_icon" style="skin_base" crop="64|448|64|64" scale="0.5" align="bottom" y="2" enabled="false" />
</layer>
<layer name="skin_btn_next" style="skin_base|skin_glow" crop="64|64|64|64" align="right" x="5" y="0" scale="0.5" alpha="0.5" onclick="if(skin_settings.thumbs_loop, skin_nextscene_loop(+1), skin_nextscene(+1) );" />
</layer>
</layer>
<layer name="skin_loadingtext" type="text" align="center" x="5" y="-5" html="get:skin_settings.loadingtext" visible="false" bg="false" enabled="false" css="calc:skin_settings.design_text_css + ' text-align:center; font-style:italic; font-size:22px;'" textshadow="get:skin_settings.design_text_shadow" />
<layer name="skin_buttonglow" style="skin_base" crop="64|384|64|64" align="center" x="0" y="1" scale="1.0" alpha="0.0" visible="false" enabled="false" />
<layer name="skin_thumbborder" type="container" x="get:skin_settings.design_thumbborder_padding" y="get:skin_settings.design_thumbborder_padding" width="calc:skin_settings.thumbs_width - 2*skin_settings.design_thumbborder_padding" height="calc:skin_settings.thumbs_height - 2*skin_settings.design_thumbborder_padding" visible="false" enabled="false" align="lefttop" bgborder="get:skin_settings.design_thumbborder_bgborder" bgroundedge="get:skin_settings.design_thumbborder_bgroundedge" />
</layer>
<!-- previous/next scene buttons for the hidden skin mode -->
<layer name="skin_btn_prev_fs" keep="true" type="container" align="lefttop" x="-50" width="40" height="100%" bgcapture="true" alpha="0.0" enabled="false" capture="false" zorder="2" onclick="skin_nextscene_loop(-1);" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();">
<layer name="skin_btn_prev_fs_icon" style="skin_base" crop="0|64|64|64" align="center" scale="0.5" enabled="false" />
</layer>
<layer name="skin_btn_next_fs" keep="true" type="container" align="righttop" x="-50" width="40" height="100%" bgcapture="true" alpha="0.0" enabled="false" capture="false" zorder="2" onclick="skin_nextscene_loop(+1);" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();">
<layer name="skin_btn_next_fs_icon" style="skin_base" crop="64|64|64|64" align="center" scale="0.5" enabled="false" />
</layer>
<!-- gyro plugin -->
<plugin name="skin_gyro" keep="true" url="" html5_url="%$VIEWER%/plugins/gyro2.js" softstart="1.0" desktopsupport="false" enabled="false" onavailable="skin_arrange_buttons();" devices="html5" />
<!-- skin events -->
<events name="skin_events" keep="true"
onxmlcomplete="set(events[skin_events].onxmlcomplete, skin_showloading(true); ); skin_showloading(true); skin_startup();"
onnewpano="skin_update_scene_infos(); skin_deeplinking_update_url();"
onloadcomplete="skin_showloading(false);"
onidle="skin_deeplinking_update_url();"
onresize="skin_onresize();"
onenterfullscreen.fullscreensupport="set(layer[skin_btn_fs].crop, '64|576|64|64');"
onexitfullscreen.fullscreensupport="set(layer[skin_btn_fs].crop, '0|576|64|64');"
onkeydown="skin_keydown_event();"
/>
<!-- skin actions -->
<action name="skin_onstart_loadscene" scope="local" autorun="onstart">
<!-- load first scene -->
loadscene(calc(isset(startscene) ? startscene : 0), null, MERGE);
<!-- set optional startup lookat -->
if(isset(startlookat),
txtsplit(startlookat, ',', hlookat,vlookat,fov,distortion,architectural);
lookat(get(hlookat),get(vlookat),get(fov),get(distortion),get(architectural));
);
</action>
<action name="skin_startup" scope="local">
<!-- apply skin settings on startup -->
if(skin_settings.thumbs,
if(skin_settings.thumbs_opened,
set(layer[skin_thumbs].state, 'opened');
set(layer[skin_thumbs_container].visible, true);
);
copy(layer[skin_thumbs].draggable, skin_settings.thumbs_dragging);
if(skin_settings.thumbs_onhoverscrolling AND device.mouse,
set(layer[skin_thumbs].draggable, false);
set(layer[skin_thumbs].onhover_autoscrolling, true);
);
);
if(skin_settings.gyro AND !device.desktop AND device.html5,
copy(plugin[skin_gyro].url, plugin[skin_gyro].html5_url);
);
if(skin_settings.maps == true,
set(layer[skin_btn_map].visible, true);
if (skin_settings.maps_loadonfirstuse == false,
skin_load_maps_plugin();
);
);
if(skin_settings.littleplanetintro AND !global.startlookat AND (device.webgl OR device.flash),
skin_setup_littleplanetintro();
);
skin_addthumbs();
skin_onresize();
skin_updatescroll();
set(layer[skin_layer].visible, get(skin_settings.footer_menu) );
</action>
<action name="skin_load_maps_plugin">
if (!layer[skin_map].url,
if(device.flash,
copy(layer[skin_map].key, skin_settings.maps_bing_api_key);
set(layer[skin_map].url, '%$VIEWER%/plugins/bingmaps.swf');
,
if(skin_settings.maps_type == 'bing',
copy(layer[skin_map].key, skin_settings.maps_bing_api_key);
set(layer[skin_map].url, '%$VIEWER%/plugins/bingmaps.js');
,
copy(layer[skin_map].key, skin_settings.maps_google_api_key);
set(layer[skin_map].url, '%$VIEWER%/plugins/googlemaps.js');
);
);
);
</action>
<action name="skin_addthumbs" scope="local">
<!-- build a global array of visible scene thumbnails -->
def(global.thumbarray, array);
set(thumbcount, 0);
for(set(i,0), i LT scene.count, inc(i),
if(isvalue(scene[get(i)].thumburl) AND scene[get(i)].skipthumb != true,
<!-- link thumbarray[i1] to scene[i2] -->
set(thumbarray[get(thumbcount)], get(scene[get(i)]));
set(scene[get(i)].sceneindex, get(i));
set(scene[get(i)].thumbindex, get(thumbcount));
inc(thumbcount);
);
);
if(skin_settings.thumbs == false,
set(layer[skin_btn_thumbs].visible,false);
,
copy(thumbwidth, skin_settings.thumbs_width);
copy(thumbheight, skin_settings.thumbs_height);
copy(thumbpadding, skin_settings.thumbs_padding);
copy(thumbcrop, skin_settings.thumbs_crop);
calc(thumbxoffset, thumbwidth + thumbpadding);
calc(thumbxcenter, thumbxoffset * 0.5);
calc(thumbbarwidth, thumbxoffset * thumbcount + thumbpadding);
calc(thumbbarheight, thumbpadding + thumbheight + thumbpadding);
if(skin_settings.thumbs_scrollindicator,
copy(layer[skin_thumbs_scrollindicator].y, thumbbarheight);
add(thumbbarheight, layer[skin_thumbs_scrollindicator].height);
);
set(layer[skin_thumbs], width=get(thumbbarwidth), height=get(thumbbarheight) );
calc(layer[skin_thumbs_scrollleft].y, thumbbarheight * 0.5);
calc(layer[skin_thumbs_scrollright].y, thumbbarheight * 0.5);
for(set(i,0), i LT thumbcount, inc(i),
copy(currentscene, thumbarray[get(i)]);
calc(thumbname, 'skin_thumb_' + i);
addlayer(get(thumbname));
set(layer[get(thumbname)],
url=get(currentscene.thumburl),
keep=true,
parent='skin_thumbs',
align='lefttop',
crop=get(thumbcrop),
width=get(thumbwidth),
height=get(thumbheight),
x=calc(thumbpadding + i*thumbxoffset),
y=get(thumbpadding),
linkedscene=get(currentscene.name),
onclick='copy(layer[skin_thumbborder].parent, name); skin_loadscene(get(linkedscene),get(skin_settings.loadscene_blend));'
);
set(currentscene,
thumbx=calc(thumbpadding + i*thumbxoffset + thumbxcenter),
thumby=get(thumbpadding)
);
if(skin_settings.tooltips_thumbs,
set(layer[get(thumbname)].tooltip, get(currentscene.title) );
layer[get(thumbname)].loadstyle(skin_tooltips);
);
if(skin_settings.thumbs_text,
calc(thumbtext, 'skin_thumbtext_' + i);
addlayer(get(thumbtext));
layer[get(thumbtext)].loadstyle(skin_thumbtext_style);
set(layer[get(thumbtext)], keep=true, parent=get(thumbname), html=get(currentscene.title) );
);
);
if(thumbcount == 1,
set(layer[skin_thumbs].align, 'lefttop');
);
);
</action>
<!-- called from bing- or google-maps plugin onmapready event -->
<action name="skin_addmapspots" scope="local">
for(set(i,0), i LT scene.count, inc(i),
if(scene[get(i)].lat,
calc(spotname, 'spot' + i);
calc(spotclickevent, 'skin_hidetooltips(); activatespot(' + spotname + '); skin_loadscene(' + scene[get(i)].name + ',get(skin_settings.loadscene_blend)); skin_updatescroll(); delayedcall(0.5,skin_showmap(false));' );
copy(scene[get(i)].mapspotname, spotname);
caller.addspot(get(spotname), get(scene[get(i)].lat), get(scene[get(i)].lng), get(scene[get(i)].heading), false, get(spotclickevent), null);
if(skin_settings.tooltips_mapspots,
set(layer[skin_map].spot[get(spotname)].tooltip, get(scene[get(i)].title) );
txtadd(layer[skin_map].spot[get(spotname)].onover, 'set(hovering,true);', get(style[skin_tooltips].onover:addevent) );
txtadd(layer[skin_map].spot[get(spotname)].onout, 'set(hovering,false);', get(style[skin_tooltips].onout:addevent) );
);
);
);
caller.activatespot( calc(xml.scene != null ? scene[get(xml.scene)].mapspotname : 'spot0') );
caller.zoomToSpotsExtent();
</action>
<action name="skin_setup_littleplanetintro" scope="local">
skin_hideskin(instant);
set(global.lpinfo, scene=get(xml.scene), hlookat=get(view.hlookat), vlookat=get(view.vlookat), fov=get(view.fov), fovmax=get(view.fovmax), limitview=get(view.limitview) );
set(view, fovmax=170, limitview=lookto, vlookatmin=90, vlookatmax=90);
set_hotspot_visible(false);
lookat(calc(global.lpinfo.hlookat - 180), 90, 150, 1, 0, 0);
set(events[lp_events].onloadcomplete,
delayedcall(0.5,
if(lpinfo.scene === xml.scene,
set(control.usercontrol, off);
set(view, limitview=get(lpinfo.limitview), vlookatmin=null, view.vlookatmax=null);
tween(view.hlookat|view.vlookat|view.fov|view.distortion, calc('' + lpinfo.hlookat + '|' + lpinfo.vlookat + '|' + lpinfo.fov + '|' + 0.0), 3.0, easeOutQuad);
delayedcall(3.0,
set(control.usercontrol, all);
tween(view.fovmax, get(lpinfo.fovmax));
skin_deeplinking_update_url();
delete(global.lpinfo);
skin_showskin();
if(skin_settings.thumbs AND skin_settings.thumbs_opened, skin_showthumbs() );
set_hotspot_visible(true);
);
,
delete(global.lpinfo);
);
);
);
</action>
<action name="set_hotspot_visible">
for(set(i,0),i LT hotspot.count,inc(i),
if(%1 == false,
if(hotspot[get(i)].visible == true,
set(hotspot[get(i)].mark,true);set(hotspot[get(i)].visible,%1);
);
,
if(hotspot[get(i)].mark == true OR hotspot[get(i)].mark2 == true,
set(hotspot[get(i)].visible,%1);
);
);
);
</action>
<action name="skin_lookat" scope="local" args="h, v, fov">
if(webvr.isenabled,
<!-- adjust the VR prev/next hotspots for the view change -->
calc(hlookat_offset, h - view.hlookat);
add(hotspot[skin_webvr_prev_scene].ath, hlookat_offset);
add(hotspot[skin_webvr_next_scene].ath, hlookat_offset);
);
if(plugin[skin_gyro].isavailable AND plugin[skin_gyro].enabled,
<!-- reset the gyro tracking -->
plugin[skin_gyro].resetsensor(get(h));
);
<!-- change the view -->
lookat(get(h), get(v), get(fov));
</action>
<action name="skin_onresize" scope="local">
mul(mh, area.pixelheight, -1);
if(layer[skin_thumbs].state == 'opened', add(mh,layer[skin_thumbs].height); );
if(layer[skin_map].state == 'opened', sub(hh,area.pixelheight,skin_settings.controlbar_offset); sub(hh,layer[skin_control_bar].height); sub(hh,32); add(mh,hh); add(mh,skin_settings.controlbar_overlap); sub(mh, layer[skin_scroll_layer].y_offset); copy(layer[skin_map].height, hh); );
add(mh, layer[skin_scroll_layer].y_offset);
set(layer[skin_scroll_layer].y, get(mh));
if(display.safearea_inset, calc(layer[skin_btn_show].y, skin_settings.controlbar_height - skin_settings.controlbar_offset_closed - (display.safearea_inset.b LT 0 ? display.safearea_inset.b : 0)); );
skin_video_updateseekbarwidth();
skin_arrange_buttons();
</action>
<!-- determine the visibility of the buttons and calculate their positions -->
<action name="skin_arrange_buttons" scope="local">
calc(show_selbuttons, scene.count GT 1);
calc(show_thumbutton, skin_settings.thumbs == true);
calc(show_mapbutton, skin_settings.maps == true);
calc(show_gyrobutton, plugin[skin_gyro].isavailable == true AND (view.vlookatrange == 180 OR global.lpinfo.scene === xml.scene));
calc(show_vrbutton, webvr.isavailable == true);
calc(show_fsbutton, device.fullscreensupport == true);
set(lpos,6);
set(cpos,0);
if(show_gyrobutton, dec(cpos,20));
if(show_vrbutton OR plugin[webvr].mobilevr_fake_support == true, dec(cpos,24));
set(rpos,6);
calc(show_dirbuttons, !device.mobile AND ((area.pixelwidth + 2*cpos) GT 520) );
copy(layer[skin_btn_navi].visible, show_dirbuttons);
copy(layer[skin_btn_prev].visible, show_selbuttons);
copy(layer[skin_btn_next].visible, show_selbuttons);
if(show_selbuttons, inc(lpos,44); inc(rpos,44); );
copy(layer[skin_btn_thumbs].visible, show_thumbutton);
copy(layer[skin_btn_thumbs].x, lpos);
if(show_thumbutton, inc(lpos,40));
copy(layer[skin_btn_map].visible, show_mapbutton);
copy(layer[skin_btn_map].x, lpos);
if(show_mapbutton, inc(lpos,40));
if(show_dirbuttons,
copy(layer[skin_btn_navi].x, cpos);
inc(cpos,140);
set(layer[skin_btn_gyro].align, center);
copy(layer[skin_btn_gyro].visible, show_gyrobutton);
copy(layer[skin_btn_gyro].x, cpos);
if(show_gyrobutton, inc(cpos,48));
set(layer[skin_btn_vr].align, center);
copy(layer[skin_btn_vr].visible, show_vrbutton);
copy(layer[skin_btn_vr].x, cpos);
if(show_vrbutton, inc(cpos,80));
,
set(layer[skin_btn_gyro].align, left);
copy(layer[skin_btn_gyro].visible, show_gyrobutton);
copy(layer[skin_btn_gyro].x, lpos);
if(show_gyrobutton, inc(lpos,40));
set(layer[skin_btn_vr].align, left);
copy(layer[skin_btn_vr].visible, show_vrbutton);
copy(layer[skin_btn_vr].x, lpos);
if(show_vrbutton, inc(lpos,80));
);
copy(layer[skin_btn_hide].x, rpos);
inc(rpos,40);
copy(layer[skin_btn_fs].visible, show_fsbutton);
copy(layer[skin_btn_fs].x, rpos);
if(show_fsbutton, inc(rpos,40));
</action>
<action name="skin_updatescroll" scope="local">
if(layer[skin_thumbs].loaded,
set(cursceneindex, 0);
if(xml.scene, copy(cursceneindex, scene[get(xml.scene)].index));
layer[skin_thumbs].setcenter(get(scene[get(cursceneindex)].thumbx), get(scene[get(cursceneindex)].thumby));
);
</action>
<action name="skin_updatethumbscroll" scope="local">
copy(padding,skin_settings.thumbs_padding);
if(skin_settings.thumbs_scrollbuttons,
if(caller.loverflow GT 0, set(layer[skin_thumbs_scrollleft].visible,true), set(layer[skin_thumbs_scrollleft].visible,false) );
if(caller.roverflow GT 0, set(layer[skin_thumbs_scrollright].visible,true), set(layer[skin_thumbs_scrollright].visible,false) );
);
if(skin_settings.thumbs_scrollindicator,
if(caller.woverflow GT 0,
set(layer[skin_thumbs_scrollindicator].visible, true);
sub(iw,caller.pixelwidth,caller.woverflow);
div(pw,iw,caller.pixelwidth);
div(px,caller.loverflow,caller.woverflow);
mul(pw,iw);
copy(layer[skin_thumbs_scrollindicator].width, pw);
sub(iw,pw);
sub(iw,padding);
sub(iw,padding);
mul(px,iw);
add(px,padding);
copy(layer[skin_thumbs_scrollindicator].x, px);
,
set(layer[skin_thumbs_scrollindicator].visible, false);
);
);
</action>
<action name="skin_update_scene_infos" scope="local">
if(xml.scene !== null AND scene[get(xml.scene)].index GE 0,
if(skin_settings.title,
if(global.title, calc(layer[skin_title].html, global.title + ' - ' + scene[get(xml.scene)].title); , copy(layer[skin_title].html, scene[get(xml.scene)].title ); );
delayedcall(0.1, set(layer[skin_title].visible,true) );
);
if(skin_settings.thumbs_loop == false,
if(scene[get(xml.scene)].index GT 0,
set(layer[skin_btn_prev], enabled=true, alpha=1.0);
,
set(layer[skin_btn_prev], enabled=false, alpha=0.3);
);
sub(lastsceneindex, scene.count, 1);
if(scene[get(xml.scene)].index LT lastsceneindex,
set(layer[skin_btn_next], enabled=true, alpha=1.0);
,
set(layer[skin_btn_next], enabled=false, alpha=0.3);
);
,
if(scene.count GT 1,
set(layer[skin_btn_prev], enabled=true, alpha=1.0);
set(layer[skin_btn_next], enabled=true, alpha=1.0);
,
set(layer[skin_btn_prev], enabled=false, alpha=0.3);
set(layer[skin_btn_next], enabled=false, alpha=0.3);
);
);
if(scene.count GT 1,
set(layer[skin_btn_prev_fs].visible, true);
set(layer[skin_btn_next_fs].visible, true);
,
set(layer[skin_btn_prev_fs].visible, false);
set(layer[skin_btn_next_fs].visible, false);
);
calc(parentname, 'skin_thumb_' + scene[get(xml.scene)].thumbindex);
if(scene[get(xml.scene)].thumburl AND scene[get(xml.scene)].skipthumb != true AND layer[get(parentname)],
set(layer[skin_thumbborder], parent=get(parentname), visible=true);
,
set(layer[skin_thumbborder].visible, false);
);
if(scene[get(xml.scene)].mapspotname,
layer[skin_map].activatespot(get(scene[get(xml.scene)].mapspotname));
layer[skin_map].pantospot(get(scene[get(xml.scene)].mapspotname));
);
if(plugin[skin_gyro].isavailable == true AND (view.vlookatrange == 180 OR global.lpinfo.scene === xml.scene),
set(layer[skin_btn_gyro].visible, true);
,
set(layer[skin_btn_gyro].visible, false)
);
if(scene[get(xml.scene)].isvideopano AND plugin[video] !== null,
skin_video_addcontrols();
,
skin_video_removecontrols();
);
);
</action>
<action name="skin_gotoscene" scope="local" args="newscene">
if(scene[get(newscene)],
copy(cursceneindex, scene[get(xml.scene)].index);
copy(newsceneindex, scene[get(newscene)].index);
skin_loadscene(get(newsceneindex), calc(newsceneindex LT cursceneindex ? skin_settings.loadscene_blend_prev : (newsceneindex GT cursceneindex ? skin_settings.loadscene_blend_next : skin_settings.loadscene_blend)) );
);
</action>
<action name="skin_nextscene" scope="local" args="indexadd">
set(newscenename, null);
if(isset(scene[get(xml.scene)].thumbindex),
add(newsceneindex, scene[get(xml.scene)].thumbindex, indexadd);
if(newsceneindex GE 0 AND newsceneindex LT thumbarray.length,
set(newscenename, get(thumbarray[get(newsceneindex)].name));
);
,
add(newsceneindex, scene[get(xml.scene)].index, indexadd);
if(newsceneindex GE 0 AND newsceneindex LT scene.count,
set(newscenename, get(scene[get(newsceneindex)].name));
);
);
if(newscenename != null,
skin_loadscene(get(newscenename), calc(indexadd LT 0 ? skin_settings.loadscene_blend_prev : skin_settings.loadscene_blend_next));
);
</action>
<action name="skin_nextscene_loop" scope="local" args="indexadd">
set(newscenename, null);
if(isset(scene[get(xml.scene)].thumbindex),
sub(lastsceneindex, thumbarray.length, 1);
add(newsceneindex, scene[get(xml.scene)].thumbindex, indexadd);
if(newsceneindex LT 0, copy(newsceneindex,lastsceneindex));
if(newsceneindex GT lastsceneindex, set(newsceneindex,0));
set(newscenename, get(thumbarray[get(newsceneindex)].name));
,
add(newsceneindex, scene[get(xml.scene)].index, indexadd);
sub(lastsceneindex, scene.count, 1);
if(newsceneindex LT 0, copy(newsceneindex,lastsceneindex));
if(newsceneindex GT lastsceneindex, set(newsceneindex,0));
set(newscenename, get(scene[get(newsceneindex)].name));
);
if(newscenename != null,
skin_loadscene(get(newscenename), calc(indexadd LT 0 ? skin_settings.loadscene_blend_prev : skin_settings.loadscene_blend_next));
);
</action>
<action name="skin_loadscene" scope="local" args="newscenenameorindex, blendmode">
if(webvr.isenabled AND scene.count GT 1,
set(hotspot[skin_webvr_prev_scene].visible, false);
set(hotspot[skin_webvr_next_scene].visible, false);
);
calc(parentname, 'skin_thumb_' + scene[get(newscenenameorindex)].thumbindex);
if(scene[get(newscenenameorindex)].thumburl AND scene[get(newscenenameorindex)].skipthumb != true AND layer[get(parentname)],
set(layer[skin_thumbborder], parent=get(parentname), visible=true);
,
set(layer[skin_thumbborder].visible, false);
);
layer[skin_thumbs].scrolltocenter(get(scene[get(newscenenameorindex)].thumbx), get(scene[get(newscenenameorindex)].thumby));
set(nextscenename, get(scene[get(newscenenameorindex)].name));
loadscene(get(nextscenename), null , MERGE, get(blendmode));
</action>
<action name="skin_showloading" scope="private:SKINLOADINGCHECK" args="state">
if(state == true AND global.display.stereo == false,
<!-- start loading -->
set(loadingstate, 1);
delayedcall(2.0,
if(loadingstate == 1,
<!-- after 2.0 seconds still not loaded? => show the loading text -->
set(global.layer[skin_loadingtext].visible, true);
);
);
,
<!-- stop loading -->
set(loadingstate, 2);
set(global.layer[skin_loadingtext].visible, false);
);
</action>
<action name="skin_hidetooltips">
set(layer[skin_tooltip], alpha=0.0, visible=false);
</action>
<action name="skin_buttonglow" scope="local" args="layertoglow, strength">
if(layertoglow != null,
if(strength == null, set(strength,0.7));
set(layer[skin_buttonglow], parent=get(layertoglow), visible=true);
tween(layer[skin_buttonglow].alpha, get(strength), 0.07);
,
tween(layer[skin_buttonglow].alpha, 0.0, 0.1, default, set(layer[skin_buttonglow], parent=null, visible=false); );
);
</action>
<action name="skin_calc_opened_closed">
if(layer[get(name)].y_closed === null,
set(layer[get(name)].y_opened, get(layer[get(name)].y));
set(layer[get(name)].y_closed, calc(layer[get(name)].y - skin_settings.controlbar_offset - skin_settings.controlbar_height + skin_settings.controlbar_offset_closed));
);
</action>
<action name="skin_hideskin" scope="local" args="hidetimemode">
calc(hidetime, hidetimemode == 'instant' ? 0.0 : 0.5);
callwith(layer[skin_scroll_window], skin_calc_opened_closed() );
callwith(layer[skin_splitter_bottom], skin_calc_opened_closed() );
callwith(layer[skin_control_bar], skin_calc_opened_closed() );
if(layer[skin_map].state != 'closed', skin_showmap(false); if(hidetime GT 0, wait(0.40)); );
if(layer[skin_thumbs].state != 'closed', skin_showthumbs(false); if(hidetime GT 0, wait(0.25)); );
tween(layer[skin_scroll_window].y, get(layer[skin_scroll_window ].y_closed), get(hidetime));
tween(layer[skin_splitter_bottom].y, get(layer[skin_splitter_bottom].y_closed), get(hidetime));
tween(layer[skin_control_bar].y, get(layer[skin_control_bar ].y_closed), get(hidetime));
set(layer[skin_btn_prev_fs].enabled, true);
set(layer[skin_btn_next_fs].enabled, true);
tween(layer[skin_btn_prev_fs].x|layer[skin_btn_prev_fs].alpha, 0|0.25, get(hidetime));
tween(layer[skin_btn_next_fs].x|layer[skin_btn_next_fs].alpha, 0|0.25, get(hidetime));
if(layer[skin_logo], tween(layer[skin_logo].alpha, 0.0, 0.5, default, set(layer[skin_logo].visible,false)); );
stopdelayedcall(skin_btn_show_alpha);
set(layer[skin_btn_show].visible, true);
delayedcall(skin_btn_show_alpha, get(hidetime), tween(layer[skin_btn_show].alpha, 0.25, 0.25); );
</action>
<action name="skin_showskin">
tween(layer[skin_scroll_window ].y, get(layer[skin_scroll_window ].y_opened));
tween(layer[skin_splitter_bottom].y, get(layer[skin_splitter_bottom].y_opened));
tween(layer[skin_control_bar ].y, get(layer[skin_control_bar ].y_opened));
set(layer[skin_btn_prev_fs].enabled, false);
set(layer[skin_btn_next_fs].enabled, false);
tween(layer[skin_btn_prev_fs].x|layer[skin_btn_prev_fs].alpha, -50|0.0);
tween(layer[skin_btn_next_fs].x|layer[skin_btn_next_fs].alpha, -50|0.0);
if(layer[skin_logo], set(layer[skin_logo].visible,true); tween(layer[skin_logo].alpha, 1.0); );
stopdelayedcall(skin_btn_show_alpha);
set(layer[skin_btn_show].visible, false);
delayedcall(skin_btn_show_alpha, 0.25, tween(layer[skin_btn_show].alpha, 0.0, 0.0); );
</action>
<action name="skin_showthumbs" scope="local" args="show">
if(show == null, if(layer[skin_thumbs].state == 'closed', set(show,true), set(show,false)); );
if(show,
set(layer[skin_thumbs].state, 'opened');
tween(layer[skin_thumbs].alpha, 1.0, 0.25);
tween(layer[skin_scroll_layer].y, calc(-area.pixelheight + layer[skin_thumbs].height + layer[skin_scroll_layer].y_offset), 0.5, easeOutQuint);
set(layer[skin_thumbs_container].visible, true);
tween(layer[skin_thumbs_container].alpha, 1.0, 0.25);
tween(layer[skin_map].alpha, 0.0, 0.25, default, set(layer[skin_map].visible,false));
,
set(layer[skin_thumbs].state, 'closed');
tween(layer[skin_thumbs].alpha, 0.0, 0.25, easeOutQuint);
tween(layer[skin_scroll_layer].y, calc(-area.pixelheight + layer[skin_scroll_layer].y_offset), 0.5, easeOutQuint, set(layer[skin_thumbs_container].visible, false););
);
</action>
<action name="skin_showmap" scope="local" args="show">
if(show == null, if(layer[skin_map].state == 'closed', set(show,true), set(show,false)); );
if(show,
skin_load_maps_plugin();
tween(layer[skin_thumbs_container].alpha, 0.0, 0.25, default, set(layer[skin_thumbs_container].visible,false));
set(layer[skin_map].visible, true);
tween(layer[skin_map].alpha, 1.0, 0.25);
set(layer[skin_map].state, 'opened');
calc(hh, area.pixelheight - skin_settings.controlbar_offset - layer[skin_control_bar].height - 32);
calc(layer[skin_map].height, hh - skin_settings.controlbar_overlap);
tween(layer[skin_scroll_layer].y, calc(hh - area.pixelheight), 0.5, easeOutQuint);
,
if(layer[skin_map].state != 'closed',
set(layer[skin_map].state, 'closed');
tween(layer[skin_map].alpha, 0.0, 0.5, easeOutQuint);
tween(layer[skin_scroll_layer].y, calc(-area.pixelheight + layer[skin_scroll_layer].y_offset), 0.5, easeOutQuint, set(layer[skin_map].visible,false) );
);
);
</action>
<action name="skin_keydown_event">
if(keycode == 33, skin_nextscene_loop(-1) ); <!-- Page Up - previous scene -->
if(keycode == 34, skin_nextscene_loop(+1) ); <!-- Page Dowm - next scene -->
if(keycode == 35, skin_gotoscene(calc(scene.count-1)) ); <!-- End - last scene -->
if(keycode == 36, skin_gotoscene(0) ); <!-- Home/Pos1 - first scene -->
</action>
<action name="skin_deeplinking_update_url" scope="local" args="delay">
if(skin_settings.deeplinking AND (!webvr OR webvr.isenabled === false) AND global.lpinfo === null,
delayedcall(skin_deeplinking_update, calc(delay == null ? 0.1 : delay), skin_deeplinking_update_url_process() );
);
</action>
<action name="skin_deeplinking_update_url_process" scope="local">
copy(adr, browser.location);
indexoftxt(qi, get(adr), '?');
if(qi GT 0, subtxt(adr, adr, 0, get(qi)));
copy(si, scene[get(xml.scene)].index);
copy(h, view.hlookat);
copy(v, view.vlookat);
copy(f, view.fov);
copy(d, view.distortion);
copy(a, view.architectural);
clamp(d, 0.0, 1.0);
clamp(a, 0.0, 1.0);
set(pp, calc(f LT 10 ? 6 : 2));
roundval(h, get(pp));
roundval(v, get(pp));
roundval(f, get(pp));
roundval(d, 2);
roundval(a, 1);
set(adr, calc(adr + '?startscene=' + si + '&amp;startlookat='+h+','+v+','+f+','+d+','+a+';'));
js( history.replaceState(null, document.title, get(adr)); );
</action>
<!-- reload the scene when there is a special image for VR -->
<action name="skin_reloadscene_webvr" scope="local">
delayedcall(0.1,
if(scene[get(xml.scene)].havevrimage,
copy(skin_settings.keeplookingdirection_backup, skin_settings.webvr_keeplookingdirection);
set(skin_settings.webvr_keeplookingdirection, true);
loadscene(get(xml.scene), null, MERGE|KEEPVIEW|KEEPMOVING|KEEPPLUGINS|KEEPHOTSPOTS, BLEND(0.5));
copy(skin_settings.webvr_keeplookingdirection, skin_settings.keeplookingdirection_backup);
delete(skin_settings.keeplookingdirection_backup);
);
);
</action>
<!-- videopano support - https://krpano.com/plugins/videoplayer/ -->
<action name="skin_video_addcontrols">
set(events[skin_events].onclick, skin_video_clickevent() );
set(plugin[video].onvideoready, skin_video_updatestate() );
set(plugin[video].onvideoplay, skin_video_updatestate() );
set(plugin[video].onvideopaused, skin_video_updatestate() );
set(plugin[video].onvideocomplete, skin_video_updatestate() );
if(plugin[video].ispaused AND plugin[video].pausedonstart,
set(layer[skin_video_playpause].state, 'visible');
set(layer[skin_video_playpause].enabled, true);
tween(layer[skin_video_playpause].alpha, 1.0);
);
delayedcall(skin_video_delayedvisible, 0.25, set(layer[skin_video_controls].visible, true) );
skin_video_updateseekbarwidth();
set(layer[skin_video_seekpos].x,0);
set(layer[skin_video_loadbar].width,0);
setinterval(skin_video_seek_updates, 0.5, skin_video_updatetime() );
</action>
<action name="skin_video_removecontrols">
stopdelayedcall(skin_video_delayedvisible);
set(events[skin_events].onclick, null);
set(layer[skin_video_playpause].alpha, 0.0);
set(layer[skin_video_controls].visible, false);
clearinterval(skin_video_seek_updates);
</action>
<action name="skin_video_updatetime" scope="local" args="seekpos">
copy(t1, plugin[video].time);
copy(t2, plugin[video].totaltime);
if(seekpos != null, calc(t1, seekpos * t2); );
div(t1_min, t1, 60);
mod(t1_sec, t1, 60);
Math.floor(t1_min);
Math.floor(t1_sec);
div(t2_min, t2, 60);
mod(t2_sec, t2, 60);
Math.floor(t2_min);
Math.floor(t2_sec);
calc(layer[skin_video_time].html, t1_min + ':' + (t1_sec LT 10 ? '0' : '') + t1_sec + ' / ' + t2_min + ':' + (t2_sec LT 10 ? '0' : '') + t2_sec);
calc(layer[skin_video_seekpos].x, (t1 / t2 * 100) + '%');
calc(layer[skin_video_loadbar].width, (plugin[video].loadedbytes / plugin[video].totalbytes * 100) + '%');
</action>
<action name="skin_video_updateseekbarwidth">
if(skin_settings.title,
calc(layer[skin_video_seekbar_container].width, 0 - (32 + layer[skin_title].pixelwidth + layer[skin_video_time].pixelwidth));
calc(layer[skin_video_seekbar_container].x, layer[skin_title].pixelwidth + 16);
,
calc(layer[skin_video_seekbar_container].width, 0 - (24 + layer[skin_video_time].pixelwidth));
set(layer[skin_video_seekbar_container].x, 8);
);
</action>
<action name="skin_video_ondownseeking" scope="local">
asyncloop(caller.pressed,
screentolayer(skin_video_seekbar, mouse.stagex,mouse.stagey, lx,ly);
calc(seekpos, lx / layer[skin_video_seekbar].pixelwidth);
clamp(seekpos, 0.0, 1.0);
skin_video_updatetime(get(seekpos));
,
plugin[video].seek(calc((seekpos * 100) + '%'));
);
</action>
<layer name="skin_video_playpause" keep="true"
style="skin_base|skin_glow" crop="0|640|64|64" scale="0.75"
align="center" alpha="0.0" autoalpha="true"
state="hidden"
onclick="skin_video_playpause_click();"
/>
<action name="skin_video_updatestate">
calc(layer[skin_video_playpause].crop, plugin[video].ispaused ? '0|640|64|64' : '64|640|64|64');
if(plugin[video].iscomplete,
set(layer[skin_video_playpause].state, 'visible');
tween(layer[skin_video_playpause].alpha, 1.0);
);
</action>
<action name="skin_video_playpause_click">
if(plugin[video].ispaused,
plugin[video].play();
set(layer[skin_video_playpause].state, 'hidden');
tween(layer[skin_video_playpause].alpha, 0.0);
,
plugin[video].pause();
set(layer[skin_video_playpause].state, 'visible');
tween(layer[skin_video_playpause].alpha, 1.0);
delayedcall(autohide_pp, 2.0, set(layer[skin_video_playpause].state,'hidden'); tween(layer[skin_video_playpause].alpha, 0.0); );
);
</action>
<action name="skin_video_clickevent">
stopdelayedcall(autohide_pp);
switch(layer[skin_video_playpause].state, 'visible', 'hidden');
if(layer[skin_video_playpause].state == 'hidden',
tween(layer[skin_video_playpause].alpha, 0.0);
,
tween(layer[skin_video_playpause].alpha, 1.0);
delayedcall(autohide_pp, 2.0, set(layer[skin_video_playpause].state,'hidden'); tween(layer[skin_video_playpause].alpha, 0.0); );
);
</action>
<!-- autotour/autoplay support -->
<autorotate enabled="calc:skin_settings.autotour == true"
waittime="5.0"
accel="0.7"
speed="4.0"
tofov="80"
oneroundrange="360"
/>
<events name="skin_autotour" keep="true"
onautorotatestart="if(skin_settings.autotour, skin_autotour_start(); );"
onautorotatestop="if(skin_settings.autotour, skin_autotour_stop(); );"
onautorotateoneround="if(skin_settings.autotour, skin_nextscene_loop(+1); );"
/>
<action name="skin_autotour_start" scope="PRIVATE:skin_autotour">
copy(loadscene_flags_backup, global.skin_settings.loadscene_flags);
set(global.skin_settings.loadscene_flags, MERGE|KEEPVIEW|KEEPMOVING|PRELOAD);
copy(loadscene_blend_next_backup, global.skin_settings.loadscene_blend_next);
set(global.skin_settings.loadscene_blend_next, SLIDEBLEND(2.0, 0, 0.75, linear) );
</action>
<action name="skin_autotour_stop" scope="PRIVATE:skin_autotour">
copy(global.skin_settings.loadscene_flags, loadscene_flags_backup);
copy(global.skin_settings.loadscene_blend_next, loadscene_blend_next_backup);
</action>
<!-- context menu - https://krpano.com/docu/xml/#contextmenu -->
<contextmenu>
<item name="kr" caption="KRPANO" />
<item name="fs" caption="FULLSCREEN" />
<item name="cc" caption="Change Controlmode" onclick="skin_changecontrolmode();" separator="above" />
<item name="nv" caption="正常视角" onclick="skin_view_normal();" showif="view.vlookatrange == 180" separator="above" />
<item name="fv" caption="鱼眼视角" onclick="skin_view_fisheye();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="sv" caption="立体视角" onclick="skin_view_stereographic();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="av" caption="建筑视角" onclick="skin_view_architectural();" showif="view.vlookatrange == 180" />
<item name="pv" caption="超小视角" onclick="skin_view_pannini();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="lp" caption="小行星视角" onclick="skin_view_littleplanet();" showif="view.vlookatrange == 180" devices="flash|webgl" />
<item name="sa" caption="Start Autotour" onclick="autorotate.start();" separator="both" showif="autorotate.isrotating == false" visible="calc:skin_settings.autotour == true" />
<item name="ta" caption="Stop Autotour" onclick="autorotate.stop();" separator="both" showif="autorotate.isrotating == true" visible="calc:skin_settings.autotour == true" />
</contextmenu>
<action name="skin_changecontrolmode">
if(device.html5,
switch(control.mode, moveto, drag, follow);
skin_changecontrolmode_updatecaption();
,
switch(control.mode, moveto, drag);
);
</action>
<action name="skin_changecontrolmode_updatecaption" autorun="onstart" devices="html5">
txtadd(contextmenu.item[cc].caption,
"Controlmode: ",
"[span style=[sq]", calc(control.mode == 'drag' ? "text-decoration:underline" :""), "[sq]]",
"Drag",
"[/span]",
" | ",
"[span style=[sq]", calc(control.mode == 'follow' ? "text-decoration:underline" :""), "[sq]]",
"Follow",
"[/span]",
" | ",
"[span style=[sq]", calc(control.mode == 'moveto' ? "text-decoration:underline" :""), "[sq]]",
"MoveTo",
"[/span]",
);
</action>
<action name="skin_view_look_straight">
if(view.vlookat LT -80 OR view.vlookat GT +80,
tween(view.vlookat, 0.0, 1.0, easeInOutSine);
tween(view.fov, 100, distance(150,0.8));
);
skin_deeplinking_update_url(1.0);
</action>
<action name="skin_view_normal">
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 0.0, distance(1.0,0.5));
</action>
<action name="skin_view_fisheye">
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 0.35, distance(1.0,0.5));
</action>
<action name="skin_view_architectural">
skin_view_look_straight();
tween(view.architectural, 1.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 0.0, distance(1.0,0.5));
</action>
<action name="skin_view_stereographic">
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 1.0, distance(1.0,0.8));
</action>
<action name="skin_view_pannini">
skin_view_look_straight();
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 1.0, distance(1.0,0.8));
if(view.distortion LT 0.1,
tween(view.distortion, 1.0, distance(1.0,0.8));
);
</action>
<action name="skin_view_littleplanet">
tween(view.architectural, 0.0, distance(1.0,0.5));
tween(view.pannini, 0.0, distance(1.0,0.5));
tween(view.distortion, 1.0, distance(1.0,0.8));
tween(view.fov, 150, distance(150,0.8));
tween(view.vlookat, 90, distance(100,0.8));
tween(view.hlookat, calc(view.hlookat + 100.0 + 45.0*random), distance(100,0.8));
skin_deeplinking_update_url(1.0);
</action>
<action name="skin_followmouse_init" scope="private:skinfollowmouse" autorun="onstart" devices="desktop.and.no-touch">
if(global.skin_settings.followmousecontrol,
set(followspeed, 0.05);
set(followrange, 10);
set(followfactor, 1.0);
set(track_ry, 0);
set(track_rx, 0);
set(global.events[skin_followmouse].keep, true);
set(global.events[skin_followmouse].onviewchanged, set(global.view.haschanged,true); );
set(global.events[skin_followmouse].onviewchange, skin_followmouse_onviewchange() );
set(global.events[skin_followmouse].onmousedown, scope(private:skinfollowmouse, stopdelayedcall(followmouse_reenable); tween(followfactor,0.0,0.2); ); );
set(global.events[skin_followmouse].onmouseup, scope(private:skinfollowmouse, delayedcall(followmouse_reenable, 1.0, tween(followfactor,1.0,3.0) ); ); );
);
</action>
<action name="skin_followmouse_onviewchange" scope="private:skinfollowmouse">
if(global.mouse.x != 0 AND global.mouse.y != 0,
Math.tan(zoomscale, calc(global.view.vfov * 0.5 * Math.PI / 180.0));
calc(zoomscale, 1.0 / zoomscale);
Math.max(zoomscale, 1.0);
calc(new_ry, followfactor/zoomscale * followrange * (global.mouse.x / global.stagewidth - 0.5));
calc(new_rx, followfactor/zoomscale * followrange * (global.mouse.y / global.stageheight - 0.5));
calc(track_ry, track_ry*(1.0-followspeed) + new_ry*followspeed);
calc(track_rx, track_rx*(1.0-followspeed) + new_rx*followspeed);
copy(global.view.ry, track_ry);
copy(global.view.rx, track_rx);
);
</action>
<!-- A helper script for getting into fullscreen mode on the iPhone. -->
<events name="iphone_fullscreen_swipe" keep="true" devices="iphone"
oniphonefullscreen="iphone_fullscreen_swipe();"
/>
<action name="iphone_fullscreen_swipe" scope="localonly">
if(global.display.iphonefullscreen GT 0,
if(!global.layer[iphone_fullscreen_info],
addlayer('iphone_fullscreen_info', infolayer);
set(infolayer, type=text, css='color:#FFFFFF; font-size:26px; font-weight:bold; text-align:center;', txtshadow='0 0 8 0x000000 1', mergedalpha=false, bgcolor=0x000000, bgalpha=0.7, bgcapture=true, align=lefttop, x=0, y=0, width=100%, height=100%, vcenter=true, keep=true, zorder=9999, safearea=false);
if(global.display.iphonefullscreen == 1,
set(infolayer.html, '[span style="font-size:60px;"]⇡[/span][br]Swipe Up');
,
set(infolayer.html, '[span style="font-size:60px;"]⇣ ⇡[/span][br]Swipe Down and Up');
);
);
,
removelayer('iphone_fullscreen_info');
);
</action>
</krpano>
<krpano>
<!-- Version 1.17 Design -->
<skin_settings layout_width="100%"
layout_maxwidth=""
controlbar_width="100%"
controlbar_height.normal="40"
controlbar_height.mobile="38"
controlbar_offset.normal="20"
controlbar_offset.mobile="0"
controlbar_offset_closed="-2"
controlbar_overlap="0"
design_skin_images="vtourskin.png"
design_bgcolor="0x000000"
design_bgalpha="0.5"
design_bgborder="1,0 0xFFFFFF 1"
design_bgroundedge.no-ios="0"
design_bgroundedge.ios="1"
design_bgshadow="0 0 20 0x000000 1.0"
design_thumbborder_bgborder="4 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="3"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
design_text_shadow="1"
/>
</krpano>
<krpano>
<!-- Version 1.17 Round Design -->
<skin_settings layout_width="100%"
layout_maxwidth.normal="900"
layout_maxwidth.mobile=""
controlbar_width.normal="-44"
controlbar_width.mobile="100%"
controlbar_height.normal="38"
controlbar_height.mobile="34"
controlbar_offset.normal="22"
controlbar_offset.mobile="0"
controlbar_offset_closed="-40"
controlbar_overlap.normal="7"
controlbar_overlap.mobile="2"
design_skin_images="vtourskin.png"
design_bgcolor="0x000000"
design_bgalpha="0.5"
design_bgborder="0 0xFFFFFF 1.0"
design_bgroundedge.normal="9"
design_bgroundedge.mobile="1"
design_bgshadow="0 0 9 0xFFFFFF 0.5"
design_thumbborder_bgborder="4 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="5"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
design_text_shadow="1"
/>
</krpano>
<krpano>
<!-- Flat Light Design -->
<!-- modify the <skin_settings> values -->
<skin_settings layout_width="100%"
layout_maxwidth="100%"
controlbar_width="100%"
controlbar_height="40"
controlbar_offset.normal="0"
controlbar_offset.mobile="0"
controlbar_offset_closed="-40"
controlbar_overlap.no-fractionalscaling="0"
controlbar_overlap.fractionalscaling="0"
design_skin_images="vtourskin.png"
design_bgcolor="0x000000"
design_bgalpha="1.0"
design_bgborder="0"
design_bgroundedge="0"
design_bgshadow="0 4 10 0xFFFFFF 0.3"
design_thumbborder_bgborder="3 0xB2B2B2 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial;"
design_text_shadow="0"
/>
<!-- adjust the design of some skin elements -->
<layer name="skin_layer">
<layer name="skin_loadingtext" width="100%" css="calc:skin_settings.design_text_css + ' text-align:center; font-size:20px;'" padding="4 6" textshadow="calc:2.0" textshadowrange="1.0" textshadowangle="90" textshadowcolor="0x2D3E50" textshadowalpha="1.0" />
<layer name="skin_control_bar" alpha="0.7" />
</layer>
<!-- use a fullscreen map -->
<action name="skin_showmap">
if(%1 == null, if(layer[skin_map].state == 'closed', set(show,true), set(show,false)); , set(show,%1); );
mul(mh, layer[skin_scroll_layer].pixelheight, -1);
if(show,
tween(layer[skin_thumbs_container].alpha, 0.0, 0.25, default, set(layer[skin_thumbs_container].visible,false));
set(layer[skin_map].visible, true);
tween(layer[skin_map].alpha, 1.0, 0.25);
set(layer[skin_map].state, 'opened');
sub(hh,area.pixelheight,skin_settings.controlbar_offset);
sub(hh,layer[skin_control_bar].height);
sub(hh,0);
add(mh,hh);
sub(hh,skin_settings.controlbar_overlap);
copy(layer[skin_map].height, hh);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint);
,
if(layer[skin_map].state != 'closed',
set(layer[skin_map].state, 'closed');
add(mh, layer[skin_scroll_layer].y_offset);
tween(layer[skin_map].alpha, 0.0, 0.5, easeOutQuint);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint, set(layer[skin_map].visible,false) );
);
);
</action>
<!-- webvr button style (adjust to match skin style) -->
<style name="webvr_button_style"
border="false"
roundedge="calc:1.0"
backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
</krpano>
<krpano>
<!-- Flat Light Design -->
<!-- modify the <skin_settings> values -->
<skin_settings layout_width="100%"
layout_maxwidth="814"
controlbar_width="-24"
controlbar_height="40"
controlbar_offset.normal="20"
controlbar_offset.mobile="20"
controlbar_offset_closed="-40"
controlbar_overlap.no-fractionalscaling="10"
controlbar_overlap.fractionalscaling="0"
design_skin_images="vtourskin_light.png"
design_bgcolor="0x2D3E50"
design_bgalpha="0.8"
design_bgborder="0"
design_bgroundedge="1"
design_bgshadow="0 4 10 0x000000 0.3"
design_thumbborder_bgborder="2 0xFFFFFF 0.8"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:lighter;"
design_text_shadow="1"
/>
<!-- adjust the design of some skin elements -->
<layer name="skin_layer">
<layer name="skin_loadingtext" width="100%" css="calc:skin_settings.design_text_css + ' text-align:center; font-size:20px;'" padding="4 6" textshadow="calc:2.0" textshadowrange="1.0" textshadowangle="90" textshadowcolor="0x2D3E50" textshadowalpha="1.0" />
</layer>
<!-- webvr button style (adjust to match skin style) -->
<style name="webvr_button_style"
border="false"
roundedge="calc:1.0"
backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
</krpano>
<krpano>
<!-- Glass Design -->
<!-- modify the <skin_settings> values -->
<skin_settings thumbs_scrollindicator="true"
layout_width="100%"
layout_maxwidth="680"
xcontrolbar_width="-44"
controlbar_width="-20"
controlbar_height="36"
controlbar_offset.normal="40"
controlbar_offset.mobile="12"
controlbar_offset_closed="-40"
controlbar_overlap="10"
design_skin_images="vtourskin.png"
design_bgcolor="0xFFFFFF"
design_bgalpha="0.25"
design_bgborder="2 0xFFFFFF 0.1"
design_bgroundedge="13"
design_bgshadow="0"
design_thumbborder_bgborder="3 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="5"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
design_text_shadow="0"
/>
<!-- webvr button style (adjust to match default skin style) -->
<style name="webvr_button_style"
border="true" borderwidth="2" bordercolor="0xFFFFFF" borderalpha="0.25"
backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
shadow="0"
css="calc:skin_settings.design_text_css + ' color:#FFFFFF; font-weight:normal; font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
<!-- contextmenu style (adjust to match skin style) -->
<contextmenu customstyle="default|default|default|0x77AAAAAA|0xFFFFFF|0xBBBBBB|2|0x7FFFFFFF|13|0|0|0|0xFFFFFF|0|0|4|6|7|0xAAFFFFFF|none|3|0|0|0|3|0xAAFFFFFF|0xAAFFFFFF|0xFFFFFF|12|8" />
</krpano>
<krpano>
<!-- Ultra Light Design -->
<!-- modify the <skin_settings> values -->
<skin_settings title="false"
layout_width="100%"
layout_maxwidth="814"
controlbar_width="-24"
controlbar_height="40"
controlbar_offset.normal="30"
controlbar_offset.mobile="20"
controlbar_offset_closed="-40"
controlbar_overlap="0"
design_skin_images="vtourskin_light.png"
design_bgcolor="0x2D3E50"
design_bgalpha="0.0"
design_bgborder="0,0,1,0 0xFFFFFF 1"
design_bgroundedge="0"
design_bgshadow="0"
design_thumbborder_bgborder="1 0xFFFFFF 0.8"
design_thumbborder_padding="0"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial; font-weight:lighter;"
design_text_shadow="0"
/>
<!-- webvr button style (adjust to match skin style) -->
<style name="webvr_button_style"
border="false"
roundedge="calc:1.0"
backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
/>
<!-- adjust video controls to match skin style -->
<layer name="skin_layer">
<layer name="skin_scroll_window">
<layer name="skin_scroll_layer">
<layer name="skin_video_controls">
<layer name="skin_video_seekbar_container">
<layer name="skin_video_seekbar" height="1" y="4">
<layer name="skin_video_loadbar" height="1" />
<layer name="skin_video_seekpos" bgroundedge="2" width="6" height="6" />
</layer>
</layer>
<layer name="skin_video_time" y="-4" />
</layer>
</layer>
</layer>
</layer>
<!-- contextmenu style (adjust to match skin style) -->
<contextmenu customstyle="default|default|default|0x7F000000|0xFFFFFF|0xBBBBBB|0|0x20FFFFFF|1|0|0|0|0xFFFFFF|0|0xFFFFFF|4|6|7|0xAAFFFFFF|none|3|0|0|0|3|0xFFFFFF|0xFFFFFF|0x000000|12|8" />
</krpano>
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
<krpano version="1.20.11" title="Virtual Tour">
<include url="skin/vtourskin.xml" />
<!-- customize skin settings: maps, gyro, webvr, thumbnails, tooltips, layout, design, ... -->
<skin_settings maps="false"
maps_type="google"
maps_bing_api_key=""
maps_google_api_key=""
maps_zoombuttons="false"
maps_loadonfirstuse="true"
gyro="true"
gyro_keeplookingdirection="false"
webvr="true"
webvr_keeplookingdirection="true"
webvr_prev_next_hotspots="true"
autotour="false"
littleplanetintro="false"
followmousecontrol="false"
title="true"
thumbs="true"
thumbs_width="120" thumbs_height="80" thumbs_padding="10" thumbs_crop="0|40|240|160"
thumbs_opened="false"
thumbs_text="false"
thumbs_dragging="true"
thumbs_onhoverscrolling="false"
thumbs_scrollbuttons="false"
thumbs_scrollindicator="false"
thumbs_loop="false"
tooltips_buttons="false"
tooltips_thumbs="false"
tooltips_hotspots="false"
tooltips_mapspots="false"
deeplinking="false"
loadscene_flags="MERGE"
loadscene_blend="OPENBLEND(0.5, 0.0, 0.75, 0.05, linear)"
loadscene_blend_prev="SLIDEBLEND(0.5, 180, 0.75, linear)"
loadscene_blend_next="SLIDEBLEND(0.5, 0, 0.75, linear)"
loadingtext=""
layout_width="100%"
layout_maxwidth="814"
controlbar_width="-24"
controlbar_height="40"
controlbar_offset="20"
controlbar_offset_closed="-40"
controlbar_overlap.no-fractionalscaling="10"
controlbar_overlap.fractionalscaling="0"
design_skin_images="vtourskin.png"
design_bgcolor="0x2D3E50"
design_bgalpha="0.8"
design_bgborder="0"
design_bgroundedge="1"
design_bgshadow="0 4 10 0x000000 0.3"
design_thumbborder_bgborder="3 0xFFFFFF 1.0"
design_thumbborder_padding="2"
design_thumbborder_bgroundedge="0"
design_text_css="color:#FFFFFF; font-family:Arial;"
design_text_shadow="1"
/>
<!--
For an alternative skin design either change the <skin_settings> values
from above or optionally include one of the predefined designs from below.
-->
<!-- <include url="skin/vtourskin_design_flat_light.xml" /> -->
<!-- <include url="skin/vtourskin_design_glass.xml" /> -->
<!-- <include url="skin/vtourskin_design_ultra_light.xml" /> -->
<!-- <include url="skin/vtourskin_design_117.xml" /> -->
<!-- <include url="skin/vtourskin_design_117round.xml" /> -->
<!-- <include url="skin/vtourskin_design_black.xml" /> -->
<scene name="scene_view2" title="view2" onstart="" thumburl="panos/view2.tiles/thumb.jpg" lat="" lng="" heading="">
<control bouncinglimits="calc:image.cube ? true : false" />
<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />
<preview url="panos/view2.tiles/preview.jpg" />
<image>
<cube url="panos/view2.tiles/%s/l%l/%v/l%l_%s_%v_%h.jpg" multires="512,768,1664,3200" />
</image>
</scene>
</krpano>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment