From 904f954d4d70382c301246bf0a011290b31c3e38 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sun, 17 Dec 2023 15:14:56 +0100 Subject: [PATCH] Add framework for welcome dialog --- novelwriter/assets/images/welcome.jpg | Bin 0 -> 61726 bytes novelwriter/guimain.py | 20 ++-- novelwriter/tools/welcome.py | 152 ++++++++++++++++++++++++++ 3 files changed, 164 insertions(+), 8 deletions(-) create mode 100644 novelwriter/assets/images/welcome.jpg create mode 100644 novelwriter/tools/welcome.py diff --git a/novelwriter/assets/images/welcome.jpg b/novelwriter/assets/images/welcome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7e1e569c75841e0011704402337bb7f6e7ab8424 GIT binary patch literal 61726 zcmb?@1yo$kvhKzS4#8bR(BSSa0fIY$06_)_?oN=vU_*dFkl^m_7Tnzl?(PsEZ}Oja z?z#89Bma5t^jb5!R!jBnp04Vzs;lSM+^3n27rMkCKx6F__YpOE-xwh_Kli~ zjQne9XaNAgezP&Pb%GZI09!j}M>SaqN*!H2N~9eC6+ii!8fuczvEf2#N{jzSzx!{rsimVWvZ*%MPo|EH` zEEqHi06=_C!1|}L70WKjS0WLm1F&P~NF$oPRK0YNgCCv+Z21W)V3Klk&muz$|8D9Qo z0)vEvgo2Fn90le1OJaQDm;ZM9)ec}I!x6##fPw5#78{}y2)=u%b&Jbze z1^!w9(0)I=ml zp--dRwdvi@K_V~H?UawNu4+bHXBuJ0)1RN5-4>}8S%=uP%@=a|lj|wNoRL##TFJRU zIN#FK?TdjD6ZQ&Yhz&?}Foc9xoo-nM6(dTVgWCh&y%#?iV^Ol76;zrEN%0yQ74})J z+ZDsrSS1Z0k@1a)?rwbv(Y%S?Y>VUDEW%|u4$@ym#Pi4l1(1mkl&^wWC72v2I$Pg& z2vPE*2&@}0EQ6yF5@wmqasljyW~@plx;*Q$=Tpl%JH`-#a_}Zr<*U$)UQI}&tx#rR zj!ho5Y7;mpxCW0D%@UC(Zrfv^o14?B*GHMBp?RadM0t3j{w;yp7DVh-kwR2UJjR^3 z=>yCr%XD0vtz)VF`|>`;3d`cF1&+FRv6XE6d6ZA6+|ojvP1j)fyGusaHMs?Q3T%7$ zRq*BORN@@Nvq%+&Oz}#ttrC0s406RqV$Km{)tQu7`a~i%8^UK0GASVjz85BG$@EeW zGVS*EV!e#dbhcQJ)AY}bH@1sF2*+gfbj(#tADF%5P8r{)xxQYizE~IfOngHc{b})w z9OF}{Aq!W-MZ~^R;Y86aYkrz^fr{QdGU##E7uD7?`9tvdvVMO@Wx>?-urW3DXD~H2 z5EceYO^F=l|IbO0U?zaBg#YIAn|<6V-%aD#9{h2(p<;_8)T;QC4DzBO)|I6V)Pr** zxZsAMvD?I)trm_JDBH?E!~Fm1y|pZ?9G05d|8MUG>mRX7dC9cD^CG)4S{YB_vk2?h z{u$9CGilsb$i+>tt;V=fU(K`uoBs?i}}L)}|`jq-c30@D9yX*PjCY^c_wIF8jF&Ylbeksav>{$Sd3Fp%l9; zje}Ch7~I6s*GhzfscV})TXc45{noX~Ci-Xw9U6l)*q`PDByEBz&eD+^gq z-Fs$Ze6LR%$7_X$O`QD*UdZn=(%9GZ!-=udV#h@Vn`K5fW`_uwf`Hy}v0>z!%Cfe3sSy6N0)Fps5@$i-6txrlBCz)x18};w3+s`yK)9YOeq@CtAURe-$kq)zOZ?+WSS%;v#nrV zUdn7(p1&pQ>s;#CMY!^|Z124Pe-q=siSK`DnH^Lbv-S?1ad+YmshG}02Ma0%SuPEg zgxR=P8WlsM5iM@gBL@ugWKs|nby?0W2dA)@rnu4L(qK)Cx@oyR`W(}=ld$t=KNI+D z@bl$aGCyvb{vc`NwmnF>8?H=k^w9Z9I)2vM23yD(yVjPMC>6p+i^xec*sMz~C#pI9 zu1-}-=UsL{PWm(KDEtv5$oPR!EY6rm)tB1v8%_UrWqx6=94vRrH20Fl%PvE)~4Y*W&fL`I#VN6?(~X@Asf(Tr|r z9G_~!L-D~@#=J^yFcQkL{IC;WhY?v*9(bYpDk}|m0JNlZu8X{X0j4fF1->}MES#2~ zIyz%ZX>L;tL~*jM@~y1oxu(vfR3Zpr=cJ#fSZ&L!>W0qx^h?+IW40CA|?dE z&8TVD_umQHi7zpysEygV@ni^&i!7O%M|JJkKzOe+q}C9%KN;Ne-jy!K!@pv=hw);2 ztfpX#ZGc=P1NB@*HSfx@5~0L#JwzpMn_$k`G&Z~DsGUftgei3(sa$}H$&Js29)<#{C#^kRKC{hGj9GQ z>os>cR>&+HbSdx{MAZ@Ue*$UAZ+;G{`-^`VSVg@)#dXP0I=Y{U@vzz6( zw<8~EJBRr{!0)h?Kfx%LC@PYW!LzfOR8+Hh2QC^-Dn%o*c#yx}oQ`A*3wLDuJIna* zY?i`o=0~Hi3wmO!{T;t;+%8_IjT<)+>PvO;l8k%XZ{l6LNZ@Z{7VT5_{a@SNpX=cN zYzCJ?JuMKZ^o`h^b6t*)X>7_CRQzzfr-}iG2vX3Y zKT_5^{nT<9Z5P?vwMMy!Yh}X>>F69-tKM1n`*uCZewt~}Mfuq4Gk8*^nC_n+ln?4B z?O}f$$#+3_up*gzc7{fT$`q=)@>$ZL$MS_aa2a52kLrzmZ3eQ53N~@3;5P9UihVL6EI*%Ev zSn}v1MEezo#C~sQABle&KFQS}%X@uYkwW!lZg#jZN_`gD&R3l-8L#@vm$Uw26ji2i zjV-l$YLm!7oK+Zhi0iY~jY*YDVTDt=#I0Dz2wTM=!V$>KG$KTth~{Ls=(!dTs zMjmRMw(@OZ0SQTjygNSO%ij5DPWZby$FlJnqXYg` z37-hJ`ONsRWHStQEJP(!j3w!g-IT1O30r*_r97<};{FBjVIL|b&e-m~Enc;<`p})oh zPfIpYdefLQs;2;>{kmynvr{4h{gamu5ze$n=8NH`246j~4HTtfrxD_3BHIhaVnw{XRt8C=|hc;3p&rsW?xi@bpt`+>2F$;nhHt z-{hF9z^jiCNA2zseKksB^#0f-E`*RF-k@$5{VeL2GJ8-E`Wd%nP;rweX<0?%TMj!M zZFW-XEPdvZ&cSeUPMS@ZHm;+@@zpnfOc5%piDUCpwTBHPqVvuhef9)#MP&?-|}T@XoD(4`bbPW2@A<7|`uw0~V9k*(w`? z=N8*x-c?U>Kq6yg$d;>(k@!+r8j>%Fj^!{!GMwaOB3TaB8xP4$%vS^Yh*v3W*j3d9L}HLUxb$yc|4j&Z;&3 zcW5tD`DUi~4^kz&Fr5e^TRm1SP8n@dBc0Oyk#|H;NF;h!e9E-OW0`L$sN#MB9PzJw zutDUMv38(j!@QKcZFnS-eUIlM%qww&D zh;5|F;CJ569FZ68$1@ZDJ9Zu%H{}c0wb$)VDd3kyZg@oWgeY1tXQWq5?qA+36O8e{ z^~PcWQ>bE_{c{BSXGG%<4lsB3jb9RnUJwbm7iK`sr#tQPCXPM0o0 z&5K%v`&uz76fjmMoMxfO=kY=n+s5vH!)KGUOg?+^RZ>rQr1@_ov$q)$u;WP)`` zJ00;$0S{DW;k+W^T+PO0CB4$+6;nN&LoAH@nO#dAC(0+U5cV63>S4enIc{P&fuF^O zM{jc6Xw%_+<+?mJqpP_x(}bFm49_UWJ?jO{N%JNtJm>Uy^K3E@+Cv)F8hVKiKJEr> zHW1|#EsuW}=DaBl$Z~y*agFloO7pfC?brNPEx@NYPiM>mm}D_d=CtPq$|-&#TH?IT z=Z;tGyd!KaaQAsO`w}!9{(K}|Ba|`z7Y<+ z{ummDTTv%^+fgOGvyXT@sVvf8nQ3zw_l}bGOAo&E1*Ez!ogiRSxMGT8Q^MRpJxYCZ z>Hg11Uk=8DUVgyuGZ#6M9DD}1wik4B+URPPrO6QqD)1aIHB=HOu&lS#B?wbggt6+o zK&4(&iQ9JEn#$BruejeopfQ?lmL%*EK?~@(x^cQv^Xc)WW^3(#-B*@KG^b<8>()jl z8RQUjx!_yGap@_2%`Ql+^9Z4Kp;=TkE&57i53crcf7EzuQ5R-gp*l7_PAF{}k))=A z$xoAV54O*#X%bFU&>Yw?ZUYe`MHz73nv1JV8rbnP(cxdDcyU&5Ve za=Z3;XWlt89MBUr(_|Utc;h!FWzMh2bZ#etgQc>kW(8H851Lui0u8WL>ku05?6s6+ z^(+$Bv?Yypb3c70fy)7ed~X^(PcbRz5H!WLUnGV!CX}3H#tviTI`Ja5eFvY-c56<| zGa9M)C^#5dXa?%+1VcJkZ&${)>zyfY%dDHS?PeAtyfvz)>07}j<3sijPi@lgjM8w_ z!Y#*(;idHd%l!H~xb=U+%B5OhFHA&1k3Hlx^T-zAM1;~lhq~W*dHTb1v}=J^MeFx< zZ2!cr{L@nT7bBIFUDi%|7qvx#9kWt~Vh+Y(4@m8STOQin+}kSG!ySl#4_@H(@qmtyM2_YA4?YX|f==cI zlpbfl)qL~9;^1;GB*VtUC|SqQukv#i;n<46FTgA!pl?mqFtmkel#t1%(oy_W)s2XB zZ_p6Tn=7m>8YbR-hKb^jpW^?`Pf!1}J5vR&P5UZ4Dq3keL8v;lWTTfA2=-Jhby%73j&OSO*{x>oE;A@Hkil%p zEdJOlWdpL2VsWZIL}ZWjJ%5-V$gNP7K@>G3^|gq*E1>F76My%N1p2`iF6jTtg2&|c zA-NzcAjKbZU*c@)#q{wq}Fa0UbyghoigO0QO@&cs7CUtB*CpAZ6`u!~!5ZDnCW{PU2*h4Xbq2e7e; zi#}Q7M31UgzdRndX{MFU2e)fKN>7i1+z0N_hQz+CNjtr!YR5R0_JD3}z@t^aj zXNF4I34t;g{N(a091^eX;LW1*_gl-PvqKgpFFHs(ki&|<{7dCk zC~kvfPUiU_$C-TJmVbaV@Tne$gFCU*?2SQ?VXSBR{K0_B$@292Nsg9OeRfc z4Tw~~)yAhG`#}SMAJqbmzkMK8eP36@GhQx#pRT9RNc@Zj#zxk%(ASN-_!scJ@o}Ip z(*@xeRhYr6wx9o&YB})aT-Qa0iRG(623`^e;|ZQ{W?XA={?fT{-xq#|%gZYrt}Ted z9*I-K*0-2l6C?m;EWXOBQsu1%tEWHGi2b|JPWCA?-*nIFY>?7csSK4`+|n!!iHWHv zLXJnH`hpc&m2p!R4Vi%t!Q${t@}z=!zWb8+Jh_L*IZA_NoyH22^vwALz#oW%2%Pqv z>sh<7XYwB_EPgN(c>0d89)6^SzMn}Ju<}IGVJgFBUz)6ZKUhO(Rtj6meiGDka)Q8k zU30`@k6}efc}eB8cvP6BVnAeQ%Zg>!C+teGCKB;Ad!|m*tATXiS@>+b=@($3C{2)8 zdb+$z!fZ!&Acj+w0cuNxd^W6})Rh{yR(#2r14c=;aw~Xm(6>O1af;+G`!rFa%x6X4 zq3Mj}T+%Szww{(12Zr0|eNdFY_^e8LH}JBim>Ys@MIRFbN4R5lYs@?#`lf$b=U_QT z^xZ1wwhaE!ni)jpStU)?oFQ3Q-#VrjQ;NtJip<7EQW!7!gP>sT@gZ+dyD+(l2|Yuw zI{^-Es*CQo%(Q$*6BA#dQ#_C9b@i&TfZ4{>*5JVB&GkFrQwfx_z|Rips2qAfX~qd}J2K-VZB};lwj- z#H(>Yw7THy@h76e=rSTvcTLduO>2+R*K}v<(=wgHVtc=U>e6HkF`5hw%{OhV(sUYj zj-yGs#I=!=fy06{g|aMkL6jSLuY((KUG%;+>V=^<*-7ecC-N`z3-hUi4zjV;rv$&t z9HMOqd6XQCPa`FOgc(2TOOc0UCTKU-D#X#Ed3}8@zV88_PUoyiJ`}<=iGhr$oo1Nc z)UTf?5qxdAt&%S#&7S|K%~yrR9)RSEvBwZ z3Y&&Vk|GjqT~P$aRxRox<8ijs;Hh~npBPy5%gZy-uwdHTZ3LuqgY0&aaBP=uwn|Sg-1}hd+cV|I)Z4NcM6wJ|LAo7 zX8*Se@p;|Ab1hjAH7qH7{LSzK3qsaU1_1?(~2-e~MQmpk3V#AN+$UXRy@Lf#Hd>sC)j zMV9Amo{Z8@!|GN=Kh*{sz#p2gId6n+pD0wuU7YoH2rA75nVefr4Vub!>wfGbuq0Hz zTb-B-g9o3xQ+(3Xd+~Mt@<>F#W@1}%)F4e1jj?1ylV``+g=vGiz$uv`I=J0Y?tBx$ zr?!&M_Hw*uRcCHtCgl!cR!e%&)q|Q(URS8Mk|*BDXn1*!42#csf;&~<_9?uJ791Ho zY7dg7jq}e>&Rl0Y<|1+b9zTwp7E(kylg2BAmOZrb&bASueR*NW8buhe~C)M`Kf2;PCBD5J^!VvCQFvcV947LXv)j}&6o+ur zV`V~+_nnXSTZV-oRE5Dy2F5GKZ_`v;IKPjAmzeFArzyhk4#; zk+u*GvpiLUtZThSPfz#MGr7r8q_JX%)%-yr-0}2D@(YOmb41|2;MJ_gWVE{L4%d__ zf41N8A{{MV9>Uipa( z&sh?|f8`cOKQ61TO&T)5xu325ZF0Y8O4gaEukq8w8T2@y1NqM>KAg*(;ZGTJJpv^& zTUOoQp}|DWEIkF-1yIjl`#%9={}M?3&kB5>CS+(D0}r%O+nP_NOx)}D2KL^C(;H+L zf}1~J(%O=H$HiMquluxmIRwW|{$#P}TOjPIcD4jq6iXUWQ)#{x*y(v-km-4ME=j9< z?JKV*cQITyeY|&Ex1D7`&3E{+MY-zTB8)F=<(Zium0JD$Ca&UV)XZ75TFDje=~R!d z>T_C?Q!htcZq_duft&X&O(Bkb6~|R~rNQ3f`FwqO!a`@2uM!U>7mD%f1^(Xa`9rXj8Ziqw?4np7KQWUMo5~wo2WQLKMVU@gNsPsn)xEY+V{N4Q)>R z1*j>joKr{#Dsp@M0-g?D9!!c3n+UiT3^DsGWLNQ9_HUf&jSLTxl((R-Y4xTy_}XU5 zc;VG%mQO1w^bTyqLF`rXcZ;iIx(?5(W!ihH0btc(GyiN4<;{?yy4ppQ{VMF|s)gWk z8}rxa-Ls~B8=Ll7aZw`7$!|3d4Zc-fFhkx*2w(H{oS=~g8&+!d+J);`9|SXlIa;>G zR%f~5AQL~5MEi9tlT@f!u^UD{Xw`2r$Ib6D>F8=I&+8~3m2Fz&?Q7xA%8ZzXmofIm zXe(Z&PTA$=l?0r>?&bA8t7$e(N!L`U+xKh|R^K~F8`u>C(4o9!XBoasvpbTSu-P?+;>Yfiy}oa6b1C^il^>=0V^Rrk@YHWHt`eX(#W5CpL??b z{33-*bfKav`+Ta`dJ3M_gd2e`WIEz%vZmz_*)WLN&oz%~7FmWrU!f>}aOxj=!KLTUU4Nl;Bv4{PTCD+ggV%d_B&fIFsgh=mYHauO~g^|fOsqW zXz{3bk-JKhIBkyMUd%}6kXn#olz4iPS=nu!GifB3E}}7qpeWSJjMtRdn8KYI{Q`1M zZTm8c`T0IH@;_*P;X+%5iNDhN@%HvnQK5-F@`ptEk&@bW5PDicyQ5QV?^0`%nwB8h zFr;FBV+G#nhKb|FtzYz%yQ^RNIG*;~56aQl^G39+?ew%hS~4@%R+0t-D3%M}$(fqf1~@2c_F zh12mP7FN?}W;T}W2~A+%Retj9Cs0loi|-2p)?f@OJ+S(SGB_+^lJpPP$G?ixxgSr2 z*>8R2fYvuAG=`J$(Pk&Uo?mYmiH46~pGq!LMJ}xN-}KP@6LbbMf{pEcc>NCA!f_w zmLucAC1RoeP68ZN9bxL87h#vN>1PO$)1QxACz+h~25fEY6dTGTv=nZ2I1~9i5x`42 z0$dl9@wNRPgs#$Vys~3sP%?+(9d!u!=^;be8Pe@ zxEczc)BkfGawv30;*&0+>scnEnk6=k5}vhtNFe&4l@HZ`4N<=URF!k1=ku)RkI||} z8oz+p)^MtYs5w-xy1v7!B_8M*;MPLse4x(!C!~xGnq&PE^p>;x*cMx+wy`8>qd3h; zw~xIrXuUA={7h)c#RS!rXqc2Mm@8TEhS0~tRxE-w?p!UBW`fi+Eor5m*`*wXSuw`+d^qlrmH z>+I*OBUD+el$adNpG+ySX^@36JPSeVje~u0jC zOY8f|D`~)zWks2vP_!R}uF*@%k$NmF2IFZigid6`9(^OxhXh9vI9fiv2|B9tNItjL zi=2xJUiA!$x2w_8P(){UW;JmlR+d%9v+<`GRY5SXo~pS#!;evvnOHg(!X=KRr6TRd zTFkEm;h5FOAD;>_Di;+rNV~?oVN1a0b#R~{$P>}gjywXPR>CEAEEf8mamlP4T_G+>gDs@b11Y5~Ba%@)X$?!F$=CW`@HT}XXprK1%cM=SYloSS zqC+sU>x;~A9lkGdgOLC;F0`V?Fl}W{(#_cY7fmUh3i?f_drX9EYyj<31jXFdd-m4m zO?N%a5K;)27Xi$c5hC_CT4JUkbNA|cLZA#~utT|+4 z#{803-ba+i@Vb~-jtYL-EnCaT@<;0T(K5{}ap89D%a#0AaO!nGzoc^NPf%;ApcVJ% zT0}I0h(xZi8m{ubsBhN0x$nR*GkIBoGE6`wPv&A&Fs$ym$ z!6?V70&J*_9rGV_w9_0e7+^2ETro|uT$c16>N)HTEJ%M}XpTT^vMkVZq>L8HVw%eh zXrTi8HR5Ytu?1|he?#N`hLQ4043jbpU;K(A%>UZ7$gJXHoDLni5c5^kliI2GvNYG?>W!fjB*lOX8*|_Y-*!^2FV`;&N+$A)CeJy_D z5G~=B<8A!&ui$T$m^cq_rPn;Y>PX8NuajBvWH|O=sTtb;oB{A(JExr*@6u?Jp0(Cj z>eSeP{vD>59Tm?UV&KLQ$}7H4Opf4dQbUha{!_=Dzm++z^p&@PTKij7EZB%8hgMm{ zitM<}9EL+p4ndrR?@JcKDoeFsgGL&n4jgPHc?)yFWV4vQACzpBl?k8MGO>g{iHH>W zJ-cCt02UoKva+i5U8r}va_tYAmB`)9UVy2aHznpUXp{=m*y<)!O-Snr#ZWi$yP!?H zbnpnXB{@;QZg*h{7wnzleHwuB*1gyB=A3U~rD!8%&)|;AqRC&_vF~wqx2^d4TlCSPjlG{xNaD(<@;oF| zZkx@N)`Awn#)Vm#o-#&;J^o;ReZJ0k5zL6H+ypsh99xh~o-o*X4gm;PnNKCj*y$U< zv8!wG<~BBVY~#If!8fM%GUGwB!Ie3zA-u%wJqurg?&YUQUEWef`RugNeRn<=2^Yt0 zdTlo0Ozn7d*6`8!%1DXGOFto?H(k2*Qw?E%&f!EN8~;4WlLFTTxxMRjZDYGml_w)k zwVFL3lz{JU2lYJ<56_XQ7$77ki!IZW5R{?=|#a$yH1alfA|shU;37g}S$P#dUFW zf8(we_NFL&`!NB8(djc}tF$Haptnf<-ujAbz?Ft+Ps2s%>?2`+al{gMv2VATb(mLX zm!T_*0~=cbc93w*6pj|59Fc%2+**i_an=cVl^-$8n*fbchtutX4?gpX+hFRvo>K8~ zNKBTIpk@&JtCleP_?(FcoN}pl_I#yj8Af`1V}U6CWiR<9FA=Kc7mjxM<=C;}L0nx7 zSMM3k#(!tc{_8Mb1aoZM7ae~$7#K)FE7q9Cp6XqZI2!IJx>9H$!DB9S0JyWyHT@(M zX%jxtCWeSu5O$pFHJD_x>8ipYWk{C;JDH5r$JR~U>P*y5*%|aWvJd=cYTUeEOar2W zb1j6Mf^-LFJ&!HmGZ~lka$meAGE`w^VeRDE{(x6GevN#RaB_*R2JvP(TN;P9; zgM z{X+_Qtp!8G=w`L_pvK^)xHY%Lco=y#KGrleLzm$5I{$Uj&eJ9|R9hYClP^MmMdB(G z?Bx>0F~#UT3^svA|6UuGZf6I@_gaF~4GypM7Bsf72rzWE*c8voP^Z#~jI^sJWNq1u z!uq77jsLpOATBpF6>@_8aifsq?BS5Qt@NTuA1-z04ja0r?HUPr#cxhqirLXfcW8?T z&7hY*{!?M7(AWZ$0qU1ZflvYaG!96UsQc8YBPEsMmM|01G{Zl3LB1UbidD8BN?7C* zj+jQnZJn6NGMSJU4@8(Z;Ng&I`!&`_&;_5EriS!WI((QqMOvw|2(k6URj5ELc7SF{w{-Wh)#O5e@5Ssu^g^ezhFYV`VHLd*a;Lnabp0kpWpHoYdW@EZ| z;c{3&*y;-D!_#PJ&$+>5icxraP1*vwsVeWXAhixZ=ei_9e*qv((co8O^Sf5j263&O zhu)HmtQQV-dQ`893N2|OgAyq+{mY_N4M=CSwQ3{isb7k`D$uVcR-RYkv}W{LSct;d zTaHbKK!_hT?guaBO8lzcv>Z#3=`?^)YA5yQY4Kyky^mMxnc`WK1Je@tOq0dtdJyp+ zoNjE;qj=b}{E69M2Ns&secBu+hGi;R`eSB`$6A$Qf0zo;G!iYT#3d|gsIc5D2i6%V zZoHsJUqLC+cPa?npkpy%JE5qGaUO^glGRLMAXrHQ+x5P9t*w`&s>sYK+(c_-)u*Y1 zq?n*J5dwR!tH?`%RjjobS`(@|>lKF?JioS*Az_J<>r>$!S&7uM53cyp-MJ#9u2#7? zXcR)8kUODR!0AvctF63iy@qMBkteNU`BlO2or%|0twxjO=##FY_%beQQ8mw=d46yt ztbv`$Ih9^f@TrGQr{m^HiJ3oXu+FaUE?lA z>v~?~%X7Xt{8q)`BmBgDt!V;f;b%~^1Kp2t`+lIeRqqg)(ay9JcSOO}pZx-yANTKq zRgPd+?jv|>Ct?-~37*ZZ3Lj$Bi=_I7gH%>b8s=6@y<^!9hn7~^yUN}oY`e$X>Md~G z6@S%^h!@TcRA{VRd(Or-4w2^r7+Z{*vO)wBMiqsgvwvMP3;HBZ^noTXNQyvgN{#T1~TX8wt+?t^*(_k1T#X)U;Xi^b>ff7LNBR3EAqIflB1BbT+~pz6-JM5eh7*mYVZObiV)+eH zS{(bASK5UwsNE|n`dK*Wf+t$hpV%`AZfGU>B$|N7VovNu?8@pJAWJXC!8`21afjKW zUZPiBTQMaNlCrpea|EhQjXFKJzr4~q$|E9;W-FY|9?P2*<%Pz*gp_;Jrsa4`8Gh-O ze#e9iFQto=>n(1>qFE`xibM>J68R#MNxcTWmW9UY?I#`S8MF00c*{$emXzV++t`?} z@br(H_qoRvQDV^(!tVY;5p4ZBt_bm|j_*cHd26MO39ohZI712yt zNq9KfIcfdr%uXU6oE3AGDV^qPjS3=qcaW#|l#k{yase3^v-e1kBofi(o2weu;yCAK z-j0So6viui+gjx7a{f_%I9H&vz^*_H!o7K=?KVvy5TF9eH5b`Ph|zm?IT(eazKbsF z^10umAxv+h?-d8RcQTtOp3NlBz^7CMTS+uNstO+rDcy+ zOKpe(=*T%!I7SWz-kDC~$3AVt+sv$wPb059whRi}h}{pPe9P3TYZ`oC$WMG%Im+4A zK377z?0FSsa3sLK!&wA1hFUC|JE4!bm^HIMN*iG zGjGxH6WvP3d6_BGDV3>xnCC|r1zkhdo^ZP2LI`SxJU0gOyII4>hxY`1Ms%Ob$VfRVW`(3> zIs4l|&mQng{OcEKF!@>f^pXn_i3?R_ZNa{C@8qBLj1|zG7}un`(TbYixnvefIJIVU z8%(*T)yP`ZbjuUaWwE*?ovG>Qk90Heyu-3)AdW8&m2LQDhr+GQ=dhb;oproL(|%5n zz1rBaH%Wia?|E;3lZ8UfdN%?U0%I&me-;{e3amm|i8rCjbD$!V+%L!8X!htrrvi?! zwV5TZ2?Si5<~(5shLB}YXk%t}WELT-J%&@mDDAlh|zc_KxY z1a-;VpNR2|T50dSQt@gv64%(9ry1jCH_JV;lYI9L&V(Cgsx`4S#ilZFdThX@#>n8R z)6sMtf3ny9La3nI8JGLx*1&$VZ|#n4Nm61gg;({&iY0}j&QSIFZ1ktl_P|1Xk`mvP z#xAoq!pE5EFvd>@{XO!cuifp-_Br3^?v=UjOic6s9CF|9b;tVlaYEmGtkWlnTFhQ& zNVdIDE4F!BpOt0OttVEHFE26Q%NxEu z$Vny}2upmEdA!NVN8*01A)6V9aW}-BeV&syAV>1Dg6Az;YZ4;geuLxMLNH5{-#0IM zIJ$S^yq8Gdr3{0ppg>pp64nzTWMaGHj9`g^x|Q1M z5(XPzyiHlABhBBQpjkxL-<{4Qpuxf|+ACkTE83SB<3zI|$RP@Dc|^`=*1w%B9q-8I zKdh8;G!AovC*)QEQnM=&g>-$5`+`*Fw6jyVZ$_o@+m*#_X-Ca$6m*41(b7Y;!=tDf zTw0i_ePZ6Fl-%Fq(&^MPqij_RSMx$wV;_)GfSz+dKqIQ8{--dL6{Uv_1k*cu?Oc61 zQn&Z&>-Vk^oc4NRQLac`y)51lb3A~i#@5z!9 zBS>s0HcdH)6N6q#_0$yBH@YwUV&nX(TUz!y3Tf4Pfqm%|#9*t-V`+E3RLDpl6pnn} zBY3;Kt}WtXyWOU`WL1pFmqUR&fdRXR7$xXZE1=-I2DVu7o;Dh^&d+WAX=aS#K`1%m z89zTEEkk5D%J990q!i*8Z2FUG*=}~2YPdnI37*s*<^i9**o6gtGg2_+n#U_ys#kBN!_)T8Tr&m`D(}p>FyPL4cx%o+5%V-e==Wk+V^Ib|_mzb4& zs|&S_Zy`rIE&WQC`vW(1)0u17?+e&myIRE1zNNl8=!lj%w+W}y9&G-S6*QUznz+Q$ zEg4(flc53|TNH>`x0QU^SJE{r{eTwp<=GYEKvzwBG{V~>EtnT6A;p5Ay*$(2Qe^^> zIok%&^G(-Vqg<`=m+}|U9NoD$KIw^0C+Wiq`96%RKc(!fmL`-jlfM|uKfFHaS`){{ z&+YB3W~EtW6t`SbCPYdyWPSdkMzup-C$1oNH>{^l7o76pV2pbqM!O9 zB~4VIJ+olH!mv@8>E_~?E12o!&e|*JwCdEy*e$bXD34l5Qv0smNGLT*%S@l2=kr@r z{w=5&es7)r_#A1EFgKesvo^?@fNeUvf+_vvO5+Ii3L@H%vkj8~gD)VF3ZKG5E^ zw$UIZR=Lp>c8Vh**pz*QAi6!HY5G{yAaC#T>C-4p_PN7K-A{>12~=9 zlAo3t8m-)XUG(M(pT9K(wu8nsB`Vm$$c)HJ?etMHb8GXC4U|cJ)uVLp5oRh!L{p%T zJ3Q3>C;<*v$|6URSvlRY$B+%5=R|z++1m5oZ7o3itEmNrod5qMsVNvhAqbJ#c|K+l zzsiDo7-fzHa$m7m$%Cx-ubGvH!KkSFw5qH1IB_d>$&zw;q__hdKCq84)^%N0wd!LN zTw%s`<8csg`8$Zb!AYf{;QNB&W)(s~xxkckxM=ssIikDL^pvK+-`4PAqZfgcOLhEF z)Xj8SrFUY+xI0MMhoEMZm1dusD&`NrHTOZGuB<$ZR5qf_#Jc8NX;p#3%-kCdPCCi3 z2oZGs#)qbR?l(kfa!@C^S~r1%Wp*_1j=lYkfuITPF1FR_j<8huCVdw_xMFdS*da=x z!#h8Lu|U6x#AoeXUqiK)kEDE4aK*4tiz&MA^nR%+_s3TrY-~Ao=pw%LWDK=9VNJLu z>%Z&o$6`IX$u@5KbF?kl)h=8L1B4i!GMcI4o1I(Oauy~Q-in32ZyQU-q%70D728T_t*F>? z)YMaREKG4ugd);*B_wgTAR*7vP!u)Kd|M_Eu}1T6>FVFw`tIgE6KR!A^Etx`^znmSQ8vX)^bl=Cv zeBYz<(j}2G*dYbV6S;4lkev)Tkon)%u0`2@$S*9s0-)B2V{wg z!fB$CFxYrd7t&wMBI57HF|Dsu2tACn>kIW)bGE_3G$5)Huka|fgt-e0m1KypcysTE z4l;b{PeGtZl!0vSf9E34zr0ic7tZ3@$fIS8$qMhhpw)S!yd9n|&eHGRPG80pc8`xe zQQck2Bn(LldEQVFlxRxwiJ$&VP04aZ;*OvbP6iQQjE#*Tx>i4TewVTWH#$Eo>-Xj7 zKRl?&B`Q(}!QrK;A440G?1Xxm)TNfXI|oU~9aL3*@{?@D!3FK_D>WF1&Wqp1w!!BVlD1aiaQj7ODRw!xO;&XhXA2Kp|}$W?pidsySoH; zEj@YnJ{C5A#WbU~qx%0hp$ww|w4FU5|nmtK=C67DbK$dOd77f1RI3gM5 zh&48{oVUTrZtd6^w)uJ=l+TLatB{zrLJC3V&M?@yiz&M-GBAwJa^U@Z9DJC*o2-xe zEe_7=*s9aP(w-`rVBjLAXb`>mXW~hb1d>#}s`bi=9tXS=`%OVhzcb~nHDvqJjX!Dl z*;SByk0+t!Ei7fLNsY;ZJu%{sluf3S9mrML#Tid>QC93pq2`cy_2k8QCBp(otIDCz zub^uugqZXDje+e_5I>ud*3zNOQ&Ff}pQTAg%5u=lqIFw!+1?xn*@~=8zb9vLsh?Yx zvv?aRiHW8E<%eJbSe;H13>f8BIFWlksuYIite^#6+AdIE%=lb^X5HHjG6|WOaVRK@ z>2tslqEuq}6>ZyCrrvFrNqtBPLYUl#D*i(X(%P2 z=^!DSFBbGUX?Zoov`&vUsslcd>U+_RM%bsV(m%)QWxS5;-!q!+bmm{P%^QG}NRv+) z6Nvc3t6S>BD?5B=&#&2pU+LxArFwHG>14xQt0yKK_0uZ2MsDstS$sbDi>9ohrB4Sd z$y?zqb)p`YT|99*`{;dFaiZs!h^9Oh^IX8e*!vN;{YzkCu@9)SOK&ymqNh=9XANgc`BpH^l^_HOQ_ z*t16)WPNP`MYx-o8>`^8H>R|D{CDa1A*xq8Ne0hBUjXUn0&fqLIZk@lA@4ODJP6ZG~43gvC zh-D|rBR+DImexRIxwSO>966k@3r$F|+KHb(m7k6Q^ZBQ^^t?|R$OwlW6?&gFR5vE} z+=VUodoms4=OE%zeank&rjaS<{4tt23{$l_QcgJ*DnhRW%v~mlSGC7a$0H-1{Gy*Q z%oLa8=R}E@X1{*vNf@`5`DdR-vb?5vzo_ud5})B<1b@)Fq4!3wCoFBku;MJmNJNRb zBliSI<<6VY^+?Ni79*!(A_8_ZGAsUqW*1xlrrbm9#lR9kkG^d#cJ)Xr@imtjlGenP z)}Yb$@H~%h7BPu|o%m6J({Q*=#p5|*%|riW)-Jhf4~~tw$4`9UgGsb#0^Vct?@%|&4!?( z0d59KPG_5kwF_!&&-qe9ILhY7j#r@t{_Y?P&rry))uqirHs-(3T{!$ z5pYN#*6c9coxk3o%Xmtm0j4O{0%<(<)a0=H2%}w4ilyRM1$RB)=y-u%Do*k?No% zc=(W>B!`>%gS%?m;NmhHkE4=R(J8IDVVTn-{G(N5+#4a$s)m<^C3IntSRWYZ@Bphn zjj;{cBL^O_eG@NRs?;W@!CY3~KJqijc;rtc0KMVAY(s>5drt+~c29lBwkg3T8f4kr z#qL%XzL~DW+9^xTfSKOv1U4fC2%I2gg(IkBA z!_ZE*^eDk2E{YdC=d^`vOxlN*#HJJ}mVxO2p6mPOVkm3;=!8IGbRBmRN0Yv)ai9Ig zQ21}&pY!M#T~WL)m&SXpqTG`ykxRDMl->lxbY?TDkF4wA1Z3~_h#P+H?iKCku;&zn zV5Q4P2R7U%epC=mI3=yw+lOy+b@GYz2q*k>H8umT8qfS%r|?Wt@DlY8dBVWy|6c#h z*TR;=<3Vn_2|&YQn~^D6a@xdk%Z@ieQ+>x-+NN?y#@kpLqVnBD7(y|%nF20C^^|C+ z%CK4fKwz>=E}&d&AuVBStsy<%`#aV110U9HWF&HvSWKrR@JcMw(~YT;{u0vb#m9{w~8QhzDoPZ zPZwd4{|!+7U%96JCtUt%CH|)bA&dwHhV{f}>AlRZn#NWDN!yRluxA(xMmc{ps99pl zlpf)uXDXKnx|KT;NCyF{ zw3gkNTKjCGCc2KpH%i5AhV+%#ccK{Jjr}k+_Bteo9NZ z@pyUp)K(0OW3Y`!wM>O&9i{kPUtZvLdg}4g*_d+=UuV3icv}Fwf&D_I{r@gCe2H1Z zV?fY$kjrek6%|{Ye|f^d>WL2SJ54CBNp)5*N++Q7geKWytTVj*VBSZ4+P+)G0g8i~ zeH(M~3?+0Iuru<>!7?{N@9q8Y9;uTte_jV@zw|{7SiM{WTsKQpot(B@T~oOSQhwaZ zA&JVoJTi@mDe_>2AevZRSv9AqX7+u231YpZ)b+EWn=@Hd)av5OF0OxeQ47=Ww^-csMQy-Wx9+`3l?*OfwS*q9Tw?(R)ES7R`Z?F52B^LeFwZzomOV6-x z)b3IEuEsNDC8EGe?vDzkQE#(ZdU33fwR?Nc7`gX}vuOC}!Mm;i+yN(x5u3B)M~Ht; zm@H+KP?hY``!|(4pPFyr7y1;eYl=(otxd<4h%Vx8q))vLHVArwgbQ*{}o`NBU z0D5c=4E{t;=v2g7bWMTvA=>#p!xD7vW6x%l1oJxUn-v~2b{CiR4>4eFo9qm`M7nVr z#>nPLKEqe(9@MZHQW@73>*en@{dpBOsx^(c(3V#cla*&1enLFuyakg zn;TYH`6fhw43$LOO~3uLnPcD8o2OcMAN2^QmR{3 zHOSEe9Y6Pd2;A}pE439IfE)s^ zV>rvK3EKq85#M8$0DmF9{*K9^07alSqEM15`LVS&wAsfLIU9{=_i|D4E{$>{Q#CMS zS{Vec-9!wQcb@u@TkLq2I2AgKp<23z0FEXrv3-bO$D~2xjOnqxcT{mR9}6r*`2|i` zOXmMxQu$wYd#DQtUq>Qu>hpq#K=1gj`n=;Ad&CWhkWDAM^)x5|y^dO%+JkrK_a0P9 zmgfSmwUmhBX5%lK7mXOU0;aU#x6FUV@xOX&s5hpPXcRwmfc}yhY;_2VZ@w>yDm21= z`568CY#cwgdGm71>MBzGF0AlSJ;EcnxQD)U9U>e$M;qTR~CDa zXVkeqZG1!QRdr%Lkv~+sragx`o3Y3!e?)^uSvj2n&_@NpQSVfvwT0L8RZZ?WI4G|z zF@R8m4xwDXp7nkcw;b2d6VP0q?>I&8x*;eidv-qb$ffu8ExcM2Yc-T)CqcW;qGE9R z*{d9iu;zqZZMnI<0mr2waWDO|IV^0Cx8hlLYrQi}RI!!#C;~ASxr=!cKz`g`i6b9k zV^g(U73GG<6{%v*ufo8PI*L-t(uuagu9uS7_v7@>GJw|C%+hIJX5r# z@U~*tqO4tFV)5o-VEwsmKe5D>ZyMTPtz1s39{!@yBVl@Caea+?+?vRF?_W`llGIH} zH2HEEvA*SSj;BkcDun6Tc{w2|JCr%XjXbykK$+BJI{p~K3e?&5-WQ6+e$ zf6<=Za=1Z=1%$V^W?mI6W^gwvF`7mwm(&%peO8UiM%g?xx9w+UstOb{)yR1 zYjy+5i9STM6xuZAZuHKvS8isi|`;%XVMY_pa(PLp;Kko3XjJhA>}D z1c}z8Gz@$$a~y;Ho)%6iuyg~Or|l5*D%IIn8}|aA;t><4+CpAd^iI(rjFP1J2yz}$ z`?LfN-X=Oi$=?qWOL$dHSoC#qfx)jb$V?13mLC72{Yi!*q)=%@`}Zb?1(d~q&&d8w zp1V|64CwwVD)CAioBuY@UO7yAq@A*X-@AGe#@?Ke9Z_P7DLXABe{&eg9+U zh~E92;SQBCrHtk+TIS5`xh>Hw3pj0#!RLQW)2lQW7y@caA-e0358PDi4^e*okl3gX=*UmR+5v%ZmV3N` zT70$eOA4Ec_@$}<(&hqN2XRR$>)09Yd}W{E*v%qhZMG%bU;3Aq1i9Ji956 z@>X)iiauynis##>-_{ZnfBLueG5Y(k5JmCUx*oROVmx{C+;%RE-xvMA4qDfDGty*o{w#vDI@rH2TH_?YP?{AA($Gj6K@lR!#@_@&v3yRW-JzX#5E7 zozfAzIDIbYVmdX&c7+xy0B2ce0C#Ot$;5!4Mp730$>#hnF|qQ0Z`A55MrM2{m;&!E z;BY|K+q}UooIj-okjuvr*F}NBr)-uud4##)&Yr?%sl7jy zQmMu!+vNA$~xDSs9}Nut?#*-p8i>bK@9qjg9%3uc!s#fsOFUgH4>Z(O%!j5#O`*0yes z`JQMunMB(8)qdg2+7^iJESi^m;4VwCFJ7p=#JsN)IuURh_FH}Tl}u)GDtgk%`txk| zF>B;Cut^QQlUAZn?aEAh?_w=Tho?C|VJtB)Xl&B*Si(6)FWSj(tjc)LLS}D+klxF< z@r7mt^vKHolklsS93bXfHb(4A_l*HIM8vtMrfP8$m#%XAW%NLR7D|W5}k0F%J^p3ptC%Y8zu03WZ<`VM)w!K3Ihf= zKjkm7((l3OJ=f{qPFQwxFZ?so8;cJYPLFNOw_m4oGXk+`V^3~N8Ex3uYj70%>>_xq zs2PpqXjGP?)Bd9QzKU@aNkQ9?h^RtFZe9&;i&F5s+~mDP*0uEhf=U@o zFs)gca8^%yd&0m}=Onqr6nqVH86c^mjCuHu7(?Zxp?pWx~$K5gfAtGlUt3A_%ZVZ`Ku z+})h@c#v#)=X)Y)*i@(>Bv)r1PZ+#3<(pqde84gw=Apg3FjB!3n_(P21-tl~&ao%q@lo4drRZzpn@)zxUp&z>hOzAIL7wea1@{je9yxhWQPKiPhNEw?|b4iw< z;H!)*?uIriLbm~fy#cmgtv{RQnNb`eHIsVI*oN-3ppE&h=@P+)AF=$e?p~mTfI0Eb zXL7Pu1XdWCFHJPaai09Q8t5(jCg|oHjE8G;q#&sEZJw{Lti>cN!6THFK&jFt(rqqZ zNTTsC+LN+=B0Ynlj&2b%`@M}nx&A((Z01VRS0fp+z6Z!-F#_K!yZ{DyEK?^5YEkjx zeBMwr$zHZ_EhXmhJ~`jI`#M&9k4!f~B<^0L%_U9$+*3nBLWpeiZ~whh+~K6Kd!{SB z6N#M1yvd9JEEn(+Z+2j* z|D>u*tXoR&wKdrN1Dl6xfUN`cl#%~Tn0;WNM^}eJ0bVO0=lVCKIq=w#Pb(I{DsB$g4|ZH~?a zEDG$xN9im4<`9UUJRv4}fa9u|DsGi^07qJ;@!`f&L{_%DJyOkBV%=l0Si86h(t2-T z8=HUBath~d~-Dm>0l_|#@F}X5RW6}C!>oS}=dttr|1`dc6 z6hQN3p5d+fzYppE4ebj?n02v_8)2SLu0N6rU$9PsG~;d7eT$Bk6#*K00GUpe4TfC7 z;5hFySe|RC5H{r7*)AO1X9WI*Fq_yd1hp$QvCS{1SkCUVzCmsWj=kTgNuvoOT0sO& zR#Yk-1rU#LrF*UUc=Sbu206v=z8BI?-XM`=QoS)ApSZ+J+TE|7M+sEwnLO-RHF`ti2 zJU_?Ok9YV8nGLWT`6#p_dbzS3Y*2~Tyu}w^w z*Cvb*s_7(>GsE-BL>~*gvjgLudl^YH1t40nadoj9VM4I>r+?D{Q0EJCi}?9~7v37>OEx5ZQ1bgV)9Du)gX4DB zwBJ3kfyK^Us)>euWNP>>ZIJTcrbOr_lZ{8j0ho~s${JB^xss{Pi~hE%AxYoSM-ouF|(bd8NH4FC_|bk5yi$r@Z+UB|p0MEw1-m=cZY|hR1S@QiIr8 z<=^c!Drz$?(*_P&1oT8ynO#Kc{~XW^uM(f_Uuc@IIyXG#c};qEK*nf!wK8fmXr7%( z1l%Qnl?u|TR9yRhmQ*QL_AR=*C^6YGz+TKZS8qVQGvej%e+*|zjB}3s(!s-=!jG=9 z%mV*9joUwEn!*?`PD)wThim z4(!smA{A%w5>vAZmv}&PVK@68$c%=rht`b>Pa5lVJSXHfLA2rsq*2Q?i5*%ApJEa%b3%rUnZc} zKeW^^1;w#azop)1IaRCKjV6`i%x^(ayu5*waC!8 z@Mhn7AjnLJ05YmG2zKU1DpevnhUI^jIs4tCQ8pqCrNxnw4;lb+cjhp=RnB zAYTzB(r;d&bJ_Y9h|Eo4-8=A7x!!yP{~-}Z4&LV#)sUK3Zhbhq!>(RUbvDSzmn;03 z!uC<7@KEdoJ%P)#3XvWaI-SKMIz#E(tFVd`YuDV&?gPU*_JXzddgScLE5nsn4cCvKqFGUt2FI$UPMifBEyJ zc%VyUx7>nX@%)~3n>AT8C3Ej8*+krhK#kpZv)k{|y8oJh(ZBrvumQBuW49%mb`YGN zW!5{SwOva-LXOh9ju1cu`r@Eo+}KzCRjGR5o5>;PkEpsBH_&8BOIhPrRm;rPN^7OD zvNA>@&p(W?`?@C_6xjFmdw^h*z~0{7teW6lV|FsF_RK*l6XG+^O?F|b!>ii#0$<3h zeB#AnBK6buM{t@%bx?*|-(NKB?9c{|v?g-$`s%HMr}pij`opi-Lsn(VratAQcQkHy zdS%bf&d#~~(<#{H6J>HpD`nlGI6&}0jV0r!9^ozT+0!A3&{i+CfjglWYga|4uIB<8 zHZs~oL@zJ#cnYF(*0DF?Q(e{5oxWcx_Irc8!Jn?`leMXe_@%uzPii)cnVz@DfJ$~K zXg#3~04c~+#f%*P{VfIW{IjEvRY_T8M%9|~dpKZy0Sb};v{Q9nH`mMZ@S;}`tMHy} z5k^)7yKN#xrEDnIYR!;1-KAmTwWN4R3wPyQ%e0qKt(Bn%7HT(E39#82#EA!+&C|Sv zp5j)8m&N(ZKvFzmMH}g9Yp3!kb6(G&%D1Y{L3huv>3wBFek8u+_JCX%KVv#;Wr%1I za}(`&^W?4Om|xbX(tH9!pB(0Ig4dypr+C7e;1d)As1VFhqw?@{h9m>29EL?PjUogDo{b#BmZDX*-7qN(p2*seslp*(u zTQ+&iUH2U@tMn?QwoQ0Uc6Kkt9G*(v)f1I?dTJ_jWp|Ljz_ZSo2tQiV;0f(gJKC9e zc+gp*wH7I;_H2eCNnu&(#F<+lBzr}JivDDGFKRB74o06T z$fy%yV_2Wx1&G70pO^WuPm9a_3cM$(_V&&k)Lfip@OpfFzj5TS3_26*a3{aiN*`Od zu>V=mFkXKgIG7?(cViT@O*Ce}&KF&;t^q0!eU<};5IQ>b-p?>fpZYnQ(A}BG)nkY; zjkRG4K^(-h{M~FhufVoP97j>Zq1eBJ04{sSkKl`M8}2iL8)(25ik-ceE4x~6t*u=> z1bA0n2hIMXtv3np?$BnO*y&9)$rC+>OdnE;Z#!)@ziA;|w{?fUr_8s+DCo#)l4&1v z+qz-GIq~zTwmj9O;zQY0NGV{Go}Nu0Iw&xdPhU%*9El#N9$$=xMb4)DkE6PO^EUr0 z?_vv&jgwDJ%Jcw!9~%=&fWRP*H`KwJ+w<-lrXHc`{L`=KLVl~kPgm8`0@#E9bgY9zGx=_NR)^-1)g}IIZL!bK2 zB-%6@M7N%+Da*J~2P8mt%{I?7*fZM3+&D+7LHy7vluLH>u|r;&>$&|f;K8D`1)Fuu ztwz(N2qytA1`Q< zjI@fYEaD4!>{{Hef9O-qd#!`{H6;V)o*=XxlBBMllOu8Z{cTZyKXA%h!-4k(GM?Nj zYN_0s139<1F?~uE3SV9=PlOBVH;6~2j3yA}6crZ%QqM(WNG8O@+ISck=m*7t z5#(JR^C?#(f6;#CPZAVxv@TMwrIuvN`?BZi78Oj;n3Dg1`2Ql%31a*}V_nXPD=@as7s~t1 z*M+|7xupbJwwpAsg;nA#isChBiEQUZ6o5X0#=DualbcLk3{EqEFp*DNAuV6cYB~(Q z=cV8L8SVlR&Wis&e3Bn!TJ7=bx+3c0YeaC_A?_hBC-0d0*rCL2%<{w6VD0^_Rug-p z2kz;q$*R>OdUgV!;F;F$*xZnK)CE71;bdcqX5ME=B>Y=y%PcO-ou!$bxmG!- zQjbYQ&SRJew&OlL;>K}OG1a3euco8bZ+v_MsvMX-B;%Q5_UrI6f*3rXFV+)z>2SZ2}|Y*uSxcrN~9WY&+v}8McWgF4&vhu;8oypTrZX;McQcp%fusj{-kk*T$i3!AssX8(@ z$aTL_ba#1IR5Q%vI8HUta>JnmtQX~4W&wWxgBWv_?Hw0h^D)wG{@-dYKtv;IlsEbf$HlA)TWRXu)` zIBD^!?@+GLszfVaKk4|#Nw2=&4(+ISp~zDxY~PV$NVanYXuW4B7~YBv#GW|b@+;rN zSt}L5TikAK=@Q`t?yF_M(kDw`Zs{Hdn=Y)3T>*7P7=`x<3$GJ1h`~jbhF6GUX0BkJ z!xz&7iK%H@L$=kK!w8@-q1>dupvKsKotny1j>-_lg{tIGULvQ0EKz6Q2XV08{O9b3 zjyip#Z|J~H{8(Or0-*6vTJNsU8^bag=1_y|^D|!8o`wkM*rJih9*jZ6>}XcVUJyG0 zdRSbD|S!2s2T= zG1Ao4zginQ4!6FIVII>DR}^8oCAQP+vzu5M_gM=3p#>?hsK$8ao9Q!zVC=fNVV`HW zsT20`E3HjWtL9{Pd1WQYlpbn*`cx~ket?XPE+l`Q-)G2-X?{8bh`n7tzQkGx%S%CR z1ElC*D)X_R-&BDXcwk4MVA2?SsUzK z3{+IA0f&^>BZF`D{jc9k&Fky0ucVwpJv}Y+#s(7c6XH8%dKi$^ zF}3jHNFP(Osj8MyQF$4imjgh*O>fXx_*^PpGQKBLP%B1pq=<}|9pcF{tCTZ*{fq3l z-bYVMwSDyVwRdBVKn85euuuQmUOEnL*D34@&uy3>7csA>=cJyWF;^?(He#ptc~p*b zJ(d`mIX>5J)Nj}`U%`Y}U$Ayd6=4Q&SEJS$Jl`#ug3b5lDfI~FoP9}c)0zbf;2)3+qaR4BzJLZl4e8SKghEgb5|>Rn=nG%kxYg-pcLqNB!M+6RZR z;|s5{27jRBYY%zmuZf%v3K6*s+372jmJZZ_ZBl$u` z%w&bT$Qaus)BIAgh^;ai>w7ElA=?0`#~0M9&23PSU{1`v;Ot6l$5lj^>B}?uWEsvd z28P)_8OqPj%~kagVcW3rYN{bzWa3jO$-^=!q#uZm&`guQ*+@j z59~r9ZN$&9tC33ALmIXe%)r1A#3`_N;B=wkK>Ce+)24FS_mCh3G(rV7WSM)Q1~Vt5 zQ33Cp@#ncz%h2aUtBU99kiFNpi5471m34(~!4`HsHZ%f!qORqivVv7+3b{rU5*)z^yDAoj6)jzqy^5N}2cFT`E}8;PBH z&i1vc@C{ALTc`on{LA-d?+)9$;(Nsn$-H~Di*3Z(j`HMHeI}Az@=C~}-UbA&^$%BQ z335}AY!+MRy@f&(b4*XK7pz*TB0obr|Az5{zFG>41e#99mv;a&@L?0x_Vtj zoE58`SrqQ*1w85NLBCz|8Axhsa5Eec0@ic%mK*F`!EkM&?2gUAr(1CeY0ByU?|>|N zQoHb&Ke>qMw@b^m2rXXdhpY>N4zJfcwT4*p{S?>sgzgG}jmI`-8!foq7dQougL^bQ z9V>b*^T?kl7I2E_lltuB&+zalJCMO}O&v0<`Yx026+E*tkXjyA%wiS9@?ZyM!qYQp_pvdP{B2wYzex=Hdi<7@J4YL-6jFD0_1x#Iv@cRN-fb zkvz8g$|XpOsZnTp!IXAZ)^Uf3LGJG1Pk@Z&A=7lg%b9PFXn4sXP8Jm6sX^yJ$J`MdfQhO_=fVD|)xc&IDUfwGLI{UbQ zyYq}OJ>J>jj9Q`2W!|x!$LFy9G7Z(*D(H5k>QSO*4=x91YV+PJ&6$N~B|agnd$Y^( z`$sn!Lq3ok<)wk_rXd{#bp)VW>w!F-C)Dgj!g-Ii%xeO_1thH4Tl91BWV>!fT#u19 zW%JEW(M)1m`{!10Uu>ndorI)g3e1b%tx;FnNg818_!YC>PlB%~Z^(kwjr1yl_@faQ zmkN_7zC)bEcJ9u>8F>Sw&WN=r3|l1R^n&uGiFn7<$?T~E& zBr1GzVjzSfpR%6!a(UHoKW(DHtg%~FIEHcJQk`l-X;cr+J4G7Ts+j(Otwg^R7vx1F z`s9a2u>t=Nbg%ql!?oD=B61@()Ah5L32qWDAR{SWncIa4U>lm=DRXMW%Y=8clVGpE zXe~-cp!_}>%!C*EuhAeZ5*!5%0Jk1e0ZVcbUu|Md14$)K(KDez*NRZ`YDca(1RY$` zYC5YdY-tYuF_3O)eR>j>p*5Zt_zx0Z zRfe!)w)|n^J*M9t`!~fjl>_!Q)wsBVrV?G$Nng9X)P*>YnSV~a?IfculCPOP@($Wi zF>uYZD-HP>+O67i$Vop3Jk~&jUm!q}R#Iu4&hFKIWZZp)+YQL3XncJ0AEX=MTtPGV zPsF_XTgQ3KF~roE4M(RB8c>@WK$F8{qgUs4tAk;YW2toiQ`+?Z4#VxAI^f^ezUF^z zp0Yx0Zk|f(d-Ey50&ElAXhyBen%Y?|64(TItwJec@}9wwGP*m{>*g^}uW0)?knR&k z@M?X8W7X*K9+e~Ag?*Y`M7myqW8&6FrGlR?6m|qr11}lfI0|tW7oS}HC@t;hAp22= zvZ{G$t+eZTGRvldqvZN;h(F@6(H*SnhAyl?s9MmDJ~vO%rCq0nR;YMl@=`aou^_O1 zBtXKag|xccCAIPGEtLUFKNoU@{1C&yNO3-L=&Y?JE$}GJQFmSVg~G6S#2=e%i`peM zIg-t|*z$M6Qc1Ka3o`H|)se74)+piU`mkdS`vP-*q!%kE8Rheu5>9{_(;o`n*4ejL z=T}1(2J6r)RAEZ`@Df4eg!n^Yr3<5neo)@xz0_GC zAoU;yT@4it4JNa=`Zowkq%`TPa(88Zqtb4xH z$sl?|E0aU_7-EuLSP<_Pvg)^rC9Qgb*h4knGqCQ@eOon+VwGUPz4x8(a1iS0BmvOZ zVP!5kO$s`ci@y(Eh$e20=Uq<4sgE~Z*`ptOihby_%{NQadA1dB_|a8p%z#{vhq@~Y zoZ^hr9|~_pNcluWl=1*H1-J&)8r7h;D(d&Pk0YA#&u)NqobE`GZd$jG?M#-5^={aM zqy~s* zvUPL2Y>;7AQHU;eG52Vkh(Rm+p~YLRUdyWJnHAlF(w#jSp_Y0% zjdCFDFPH^B zJG)N1;Y`FrL!gc_1BFq|*5frjcy^A4gizGm+>iREG(zY5dYxxdo0N)hzw^1N+{z)m zX%4n)EakIJUW2$cnxxI@h?N;sDfpo}txY-jraHeQae06P)RRtaXlCsqwthtd6}F5q zWIGHQk~2ezw=gB601b#F(OYP4oRY;^h3N%jutq2^dCk{*p<8%DP{pskMbQR>-Q1kQ zZ~j)sze*Lnh;iZbT7fAa-Q)k{Mp<26SKYDkp37mrP4uW0{K>r|xQdPh0V&i<-X12Q z&06JMJHKOg1j?1|62Y!@Bs@MNM?`43w`{E}YU47|sPVAShXwI0PzFt?eLXU)y0TgS z+2JX3iGE5kwFhU(WZ4WT1^4TK_VicVlVr!89__VY00JOjNc-`517Z!1=`+v(cZd+e9uY5Yuj`_^YA-2c4?Ba%farC_h+mA7Y zB~ZuNdQZ)25)pd34k#N_vs`E)?9^BwQqnf+FB)S-R+0dTFasy?1nZx?nZ|E&I>G{< z6#@dAEkz(W_my?kc9`x?jl)?b#9Bto{vnhV_S<(<%tdS*2&*S>w?bB?>hm+ zYjj<(h* zEy*W93983QI*GJ*_Je0m1mSfore;*Q#upE|S2m>paz!t|5k7+Agifnd1EJ(9YF_yh+ADTYnxRE1 z{o!XuEu^HZnwG_D2_LB3B*e`}+(%X&7PI(XCFizA*x&qI!iUES)ER>9gb;h zep^zQVDmFxpe#*=e#_a6_76 z#ytkcmcHUFR(&XV#wy}fkC>bu9+=$S4J%;6L0QC`IbUPNa62|jiE8dN#Kj=6t%sje zYEU2mycu)>cg?+5JqWQK0;@jOru-Ve#y@&S3aUmlD%1n!(GRpKNhPI0uMG`X4^AO4 z0b5cJfnJEm2jV4`-jYQhxpMW!FGC`AvQ7aL{W0HaqJ=~|UQO{qBoG~!ItmIpj7xmH zoPRE;gMat&Qx~imB1=q1qM* zpxxDGonAO*1NugutS8LYUbj0QOwaDyCxtd+DhY8nF=D4jjF*q|MdgLZJrGzC+_De! zF0j0*9j;NZH9!fBHJ~W?fxMCQ%u zkWZ+^gT`Il>2b|}C^YTJ*l;+4=;W?HTwF_$D7g0oo@q9{;Ap<-C!^rUUkJVI#h11-pL}~{rdNRlcUV6qB|MsysP_6j(kEr;_AOZ?8*KF2K{G9fHLdw` zp;-BL-&*HElCkVQZ_d@@cqw@XegFJ7g%5Ivtk<+h0WdRdE!5wZPQb%irCbS%HTIk- zEyIV>`mTlTq?x-{z5=M)aiz#HMt&T7>%4dS*3}?-f_!?Qt;vbD!>A)LXNr%E^i}pt z%zU0uM7msW$q(-u&ewi3S#UXTnEM%Ca&!v$B%Y_gM$jJj!zbFheAj;LI=U2UHyYo->6`jYh{+FXoA?=dZ0n zWH-s@mK8W!)E)um1e!u57$xY_3XY8qK_W`ygHtJ=ZTLfQdq;efuXhMMAI%t%Ijwo- zPK(RM7KZUMHo8ls5Qt=G^=j0XC+H8gKlIYxh0VQoO;$$q5GW#x(OSPVN%qN*lAS+B zMe9NSjn{W+{eK-cl#E0azm%xB)WjA^g{+r+CqRs-zajFFFjm~xpFgm@^F~qSj&o@S zEebG&ey{!!{zE|!@I{Ew6RZ@*35frVST4vH8#W=X%cU4RNDCiRcp6liFI#6Py}X8C z;{Eg}^q?cFE=(Ri{f7};@Rf)dJ1*)|eUjO!=D@@lO+q(-QnWlQ!t5Vj;(r~2`}ZB3 zJ~d9!E#Ud-aMqQJx26kJ3zf!Y#)#{DETA^EIrG&y(iueV`U{+)u%z=)-D3Bo56DAW zeMVE?*u!KvN?NgV(!Vlx&A)W9MWD;*6~+Bt6d)+-`6h4BCadJ&?(7c6->2~j=D(Li zz|`R<%CogIT1-~<0!Zs$d`I`|WUH;trQj{Z%16l%BSjX6kuF%K0xZ9O=~GDgv2T~< zyYMr9JNlbG>j&?f;`xaFErYIbdOp4%IxyES8HGh8t#cU0qLhi%5A%W#qzBKt)$kaC z_+?12sCszOuru)(*cF|VUJVxZh&?wPF`kqoudVjzuIN)w~Rewd9NG^cZ#BBTy1n^!2kPCTaie zXFJC%F*0QN#~|+ytv*IerBJj3Il2=(*!V|;i~@lu!2+o=zSRY~Rt*OxpKwG%RS&*% zbZ*>~+mA{wko~P9k72S+c5z5;TD)d25P=^=-ch=6aayBQb9EPr*aezP@`w`89%jmvqns)7!pNz14C}j!_ zAezHboUU{kB_X{RjRAFRmyX}~%`iq?nHCvX*SFjHsrlKLP-kJslRW6_fK7h79c5%F zASo(2{vX!fGOEqD>)V7hrkR`5cW8jo3avWG4xIF0%^b>| zMkT`qxZuTx5%9UfmbwQnGR(H#E0M#!DeZW>-bd2|@13gYsdg#l8&si<>POQ?1O|tr zPK8}P{GUl7?xh1ZaeUWQGcp>hVv3xqxPF<)E`Q+TZUwyG+2v*BqhRoN*LSx3v zLMmL6rT}ZFl%OLAaVfEM;qnN&Rz0xIo^Qsu`j{n{Uc;9Cp9yZo*Ak29Y;T;&BvIa> z$aPwx!XJs}qn%`(0ArBMPb}Ol@WRH!?{T$Wz51}Y8%|J3i`CxZFar_1xRydUL0c%x zLPE0kkW%mwQ{5VNQ7d@F=tmI1B9f7jRnojPU&`TWa|A37QFuWkN57eo^u2NxR95(Q zQm{?n7$+Xa5nTM|*vtMHs@YfAo0eufy<p~}AmNr?;r4$czz_+%&{PQRCF)6dh;`;TM8-)K~Q@J9l*QPy-t#qnNY zp;8nISsSC6letkDh+6Mo*3db-AKSLHM`l>L&cAV%vLE_!WOV$d{^*sTKB0Jj`6Kol z0E^bkBKtaMq4C>*^TZXE>NmGe(XP)OD$Tm@nEVU=N^Jb{Grzm(1NuCE69qQVgX@n+I5O+CG(hP~?I2pTXW;wHuU3tYl9;H)vS}Ov54ITDEwhq9v|IVL$YWli`4l8L|$M$l0n%$vO zeoTqi+;HbrjX1$J&BvFhh>-HkeXni#DFpQ{L)<83#uILw`z^!S%NBU*D)J^c$^1r8 z`i-AaA2zd8A1BW^9ZT1m^AbRLzT66e(p~=k^Xm-F33}z|Jj6e(Jx&ynuZzxB{Bmtt zsU^gA#AmmtqHk*_4m3{__@ZtY0^W-**W!p}$oedU11-1K9;y8{l;Lha4D5i3)H_fK zL5GWC`LDzU7W#L0_cdi0i#oE5AH0E_lobtUG;RiPR z=737UQ@72XbkUS6d~DG~^XKtZ#UzQI#pbb(Q^ZB7oVe&3A7oU%sbc4Z;Nz3f%1Xas1hD-r)fB3 z#=W!P$+;}amCcaV9X1?t#{N9KmKED*W-@Mimm*Oehvdqv?GsE!%2+qW(l>7oNGR;y zvzE<4NFi|$Z)y*!6`ROm@47H{@pse$4hg^Xu*)bbdJ1oZIP@8?JMyuT3?RK9c!pG; zhvzV&8!Idf3i(ZL2+Lyo13-Ou%fU9DKcjdg@v#eIUXGjQUyQn1CFJ9E=hJF#rg=|5 zkw3Nvc-wcjr6U z(XxidwiKj`;a`%Rp-8t-^gMHK#JVuDpWZ?c?8JMd{L2%;{G&&oasj zB`4JCgcEhBJhXCvI-TJ5QkjCUs;PjZidVIRay`!ftZ(n>B?2GOV>ww?!XX>YaWnXLlqn-s0v$?$Xa$*I*w`_^%OWUY!ZxrxjkenU2_!qHAw1Rev z!m73(*Je0r%vvAzdSMrSTU;9#_AEtU^%XQqce)ZCi#@=j`wTZ#PVoFG!H|?8$Au8g z+ZUT1u)D^?HzD@@qaZ?LgRF1s3pBx_-Og)%QZEweZp&<2oE|;(woY(C3>TAp{+W-j zmcYS$o!D)pk`ClVOZA5ZA!6XyT{)#^)X8R3CU(z|loA!YXh)RHTL&Hv}qn8iDGEAQ|^`}B7Jt@KV8OW`aQ0E8Sxgmp@{rLwVP1Wcq#=L^D zC1#s*s{~Sou^Rz<_GE|DKt)p0Gc?&r#X0lHxYtCCy4lkw(Ra^qBEnt9`o~e~Uks$| z$LR;5>~`n5!g$YuWDC+hKxD?oWI`XSa6WeU&ka%KIZ0^&8{cMEb20S%e%k4>+QO{oloigB6Ka&c=&rq*HEyIo;V6Au0h%iPV^d-E`{g4~1`i&k23aY$ys~a=yxP2!Knc~Qpq8|^%o6>ow6A9}roC29n-I}_QL35*FZ>j}inBV?#(uwdTqYMq$C)~PgS90qbx|J)odSA=tCKHBF1I@AI zV)&3(qj}tG0g2DBb>nsmj7@1JRW5<-ru+Sw`_d<{oc*xr{?AwajvJLp()0#bmAQ}4 zQqAjIm0*;OtKyig%}lM`^uyV(sCy+Sm-Q1D7A8x(v*_Y59dfn zm^{|*7bL;N-cxNO`w7-(t#k#YMt8*CV9~FW;|GP4O{W}JV)FDQ_2)Ei@fVpdVl2C& z0Ns+s@Q#$+;@9KeN&g3bsZXO@534dw-l476%|fI z!#Cx5sDOnDb``I1$bzky<*86%kG_i)!r ziya(&Y_G%O&h=MnJebc9n||vb7{9d0+UXe!Sj^H~m;@aTurjai$f)YYn9$GYQ*par zC5Ucr#%uDORN#a3MWnwa4cT)trX*IKj+73oGyS&YMk6H8MeT8m$Ll|E<#u%_zYO1x z8+MDxU;Zd9Gm>Q9B6&a((d(dmogr|;!ucJ@=^6x!J85Yh5&o6pbk@w&Kt z)lKTSz6|?VbNajkoigh==M!BEj=U&Rtm%Ked=%b+uJGHy-56_IDLV@Ab?{(muKAr{MziigX%ahD+l zOY|3_OfziPZ|vM1Z(Kd_>Gg)?DhyP{E6IH6 zTc|<_zqTn`Tk%@A=B=*CjAR}1XH<*K=KzX$iLXwAgVS+kY0uyL0-cLtMEKpwn>*`& zF(!Wf6o2K1yIGqa9};bo_!Ag7b#kgQ5!K;hB(BRx|Fa z8f#er7p4>n4OON*?L?8*uP_C_uz^>ulD@O6u8-#-mhD4y2vGZKjqD~dy8-e`-Mmcl zv%6*X)lR9$v~H-LU3t2;=keFu7;htUlg#F0YKI=8iNX4?3NXR?@`MQBsj5 z5Z&ly+=}sMV9D)v?zkVkKDlT9(_0;n(Iwy||@>|WxpQybs>p5^q z8uI6epmWTwpb1LLuO1zXLZE+D?yFOelPyXU>KpDtQ#c4|*GZfF@iGjM{Z2p08Gt#;S@N&-pw!~p*HT*Sn&dqB***X=fSHxcZg3JbCQ8nidx+)g&jVmk}P#@TWQj(Suip&mE3g@rmaCf6xeH{o;tR7KKjPmMj}JWtKZHWu)L! zW!wfecGT`ddw@E^CEF2l%t&W9-XQI9%uSywPWB3&JQ*4J6Ke(uBdz3+UC)FXLPAX4 z1L|M%H3mZsPb-5Yc5BTk+h5R0)u*+o}xCke4pW z3-3FsR&_XMV9Zt1Jpj6*fBE~^K!ue-xHk1`69)t#7$LjN^~mOYRnd}2xdSzFs9y1> zzc)PDe(+>ga-{Jr;Mf2gL|DM_sU-z(O=K>0k(mVcc(gxF@!N;-uZS(&|6-KK8m$J? z*k^y44Ud2r2TiH4<+Jl5wX<*yWdeY{SPqN*k*39*0r7+AyW);L*l>IXL)R+^lA_1M zRkASNcKvm%6P?gKDIT7cwt*o3@b8|5@&Z`trudq zo#M|>W8L-m0<(5D|I|)#TYsp{P;e6U@N!Y=DQ6WG`6yhXxY2uzH$QN!c58OGW80u| z>}p;^qkf|(sS0be$>lG`>>q0R3dq5J(=6DEp8Sop*IfAY379nc9_j5bLhsOV<{0e?zB z_#y!u4^J}p<(dBE^XE*TZp&`p!aW~8LYL}6`z!<=7V~~IZx6HlXVP0PRS6^d%s}bL zYzzGNOP<>o21;W5n$4T4^+zA><0e!Iy(XeaF%S0C3?O{3NOm%2nKvwaDMGoA*JAu~ zVD}A-4~4c2wRNQfvd#*kN&8~|H2(SZ2ir)aT93ZGmMyQeh|dOSl9)mgIz{7J<+u0f zC*`{E;b#$C=RL%9BtmPOk(^3vd)Ag{MtI7A@9iM_EPa4+V?!G~4Gr;xH_adGCW=X2 zJ6SqNF2UlqvaE{@N+02Od@hJyk0hF4PgOyq7Y0@@+WNH2I+=XA!$Dmf2A&x&VUcqvnx}*2*NeIyJ6cd{Nw)pyz;fr| zQ7`s^y}N;K@Io(-z$2^f&!a{)X?L;-$THl7`5sCM|G|I_gJUgFuw78kq|PR)d+|(@{}a$h^Is_qI0ndH$_eIQ4#5 z7}Vs{tTorZta$>DOYUiykX;J9{NnhKv3`ArGq`)$1T{;XjAMK&4}Dj1<+Za2#&8TH7#00t)2GY>r%mW!?!AD8|e%2$+4eTE><-ZL5E%}z9`?sCrZB~T#^jxVK_gKLmcspu3 z_$h{Wd*`ya3ijxMTR+(535&TgW>i+GoxlQxLwi6A^9J@?%~L|ce+4w5;VC@bc_!#w zSd?&kCp4g}ZbWf?-#+#_s3v#QsXl5^kuN?G8H*hiL>%8VJ}2jcgWi}5Yb$w?@1w#N zR|q?0=`t@Ioyvd1*8dwN&s0|(tWQ21Y@mw zX|Kyl(=YA)i8x(DktgJ!-eTwGzOBZ4nFmsNL&IAG9!CqeQsTJ9AUY;F0#1t5RWHJj z9v2PY%h;(z^g|N`qp0}Oy_TiEA%YchL0wZ6z*~6?1c{2y{1oSgS$X!zd5MoD zxzZ3Bja&+e1tgtW-hm5fJ96xDTz&K&D^ku0vhjP$A*RB`^M zxW9pgY>L?O+HW11C(c6k>__NJ-%vUc6p^Zdg3~DlpPF)%o{2o>XU*N@kN>+`V-E;_ zHL2Sxr5cMir(UCoY~mnzH!nBe>GinoEh8mwajenERt+)GFpJhxmNwFCe7m;PpTzoWt_ed0u>rwcg6+ z?rW=_mJxakLieCE0xzuC)Irzx{GX(>XxUSM)r5wQ+w+XqBG;@HFqyv?mcKWOXxTAB z`(KO%42uJefLHdX4}I3xf7G*Q&(GLvqamSC+rrlKugA&)BU#+=(11|p^4BW#Txoe6 zHclkbLpZRPo6~czrf+pVO7EmA`ze&U*_`h2Mi0BSI9|If)>2=^O-_H|%3oqH?fRE< zSZ%ze#JgqvrTGAE)-OZG`BXoqRog{ndDX+^jd3#3uimlpa zonBCBDD0WIDh@f*>g2*OLO~S&C9_vg1ebMIdF+w!ZXlLmTaVwx!1;-@PSgi~VBuLeF^ z4`*k}hCZsBX=*=AlSH>-d-xa&7;gZ&m4^64zn(QIRkdu#!L1l4Lh6gz${Ga^c~4sc zqTbvadqL{9)(A~Y!}SdUgR@`PGqLmW+4z)2_mIu&Z^yphLTbsICl=Y^Qc&9A&Bet# zuKQU##jhyIJ&zzuC(qcRW|2}!i|*zhDk||#wTQu)Ou_Jd3`S%em;KbCi>VVTT4%=S zOl@z!h5Vz=L=R3F0D<)NrvoWBmZyHZtNgvGE33A<~9{UxX#$yHday!mzsjc zG#^7y$xX>)3vf0-`gyOa>vZ@Q_W3He3g?sJ=$5onDTj~~^DM@W(>}f0_V2XJ34CJz z?+G!%rfV z^yPI>A?dF~eM9p3NHrY^2kSp5uhZ*sH?H+EYM~$mVJwW)Q=h=F_Wa#x%l@#baF5Ih zPxfHxJib$+&zQPSA0x_DY;dk#`rE}-R9N;&k`*v(XoGNPz)##mbj5qItRFqY_vHM= z20WJ8{IVyzz>xs2-3;6xag)jEy-!lF)atQGDg$!?%&~{Jm$94upbKSO4@AwTSPyE3 z1lRIVH}=@yr4Gv8Cy0QnFX=S*Rz71yt&ie>+&sDx9rOXn=P}<@|zkZuEK6leYEFXC?!;|Oj*sr<|tn#8~w>(P6ZT~q~ zQ9L8ZBfDXp-)i|qI$vAi-nx=l){KX&| zmWJt3<|0kMN-YVlIaSJeb1@m$r^9Ns66LUj7|7BxSDNdi4C&1kN+!>4(lmQ;^6>)~x_R^H z+4|BCv6q%KI?DKe%ry^OT12wp@b1ZRYE`erNBwo_#@i^5*V9dT+1;`6My2bwx*QyNXoi z?Q<+ok!-OiN%?9?FpzN-@3S{;$5`1Tc^mU;?-|%NoP2B&x2?7x9N@6#x^Ui2CFd*K zxMs|NhN5T+yQ`kJ4cvZc8`r76EqFoDCvJQk!6MFYvGm%&&0W%rW}S>Fcjb!p)* znci9Ly~x>_z?g#^Vakh;4;j zqCAv7@Wi2wdH&wVgM2_5^H|5VwQ{_ccnDezZ1ObkOXlxF1{{ffMnMt4iQePcwL~Yb zp9Gr?+*Tr{Rp>ncV)7D8-@1T(@?=imtX32GC)A%l<&kW%@xF9RgpYvBKzi>%Mwwyc z$t>>3$xC$MC}k#_Z=xsdyzS7W-4t z8nv@*zJV#L#G5OQ-9v{>H>vJBi|De+nsMIf!y>!S!ye9!2Ja9hpb{``xm({Y&g0&n zI3V@B)zie}g+x1iu>OwnGxR|wcuOoPo9SLiH=PTaoM#vPCBN%p*4zxjJfO}I?H`63 zBn!L!$X$&h$6>5!1=ec)Ns7Oz@@jp4AHF0zBdokQKb;~tS%rb4o}Bb;UtjoER9kLO zO`2hew#>nzUERuY2jeWs&H#CEQ)Tv{rZbBpRb{GCcCtNJ(XMlRM~aI$0PWQfsW{{ z6))Tn-#5BnIn}xJ7K!pWK4Z6pW}~Ng==5Ini0CiIWrZpVNgBvNk-qYVzVANBTQp0u zCoIiM3d2?DIr$-q;4c5BA`FP$yxi45r(&-lD_2K)M+*SA3N zjzCYv88KY<=iw5Ok&k&>);(7iAD`W1(LQn3265)2c3J^iW4krA&SC8{NOkQF$t zyK_jG@lGc=c7Wx=3}S0g6z?V?BF3NDi3q9Q(XL;Haoh$Y23v2`MEPuf8jD?nGiWn86q$I_J}&36BW#%!t{Zu+|Sju4s?&$T!} zl*U0uebOdy^O~f&r9g8(!7RvQ8K=S2vB$^xFeG2e&UQsvj~ewOkF6M_SGfqXq!Np$ zbgiErm%kJkp?`V@bMrkaQi<;vm167TgzOkXjY1v~YSnvQLboIX3?e5(WBYBiG?H0g z`X4lw5JWKxYbpPF2>4456KdMOQuf{()bJ9dp%>+u%!&%d6p+Z8#`WJt?(90lLfy zH_^eGJi68|q-+OQnS24C8Hy_gIRZ-#{Y~c!pOxC&tLQ6>Vqs*M&KfWdxvn>b{C+Owr%Q@IKG%Fs$ z#t@t^qcN$6TGCTi$n*YVMYzd4kDCZ|tnC7M^a`%ouawchpf56U!N+mN(Y$XVei`G5 z7J(OK-;rj7`9VE&S0s~cUp9W1ZPrllR;BLC$G3AH2`XJK*{qw24EfZiOmCmcG9aNg zmx|TsKzVyxHr~|-aHh9(rhHBdDJ1^h&*~i9$;vln>sq6P)iU>yTZA}P2SK!yQr%R7 z9rt`uf7D?kOJ*4;H#uCdPb2ZsxdbI%<#_xTL;O^YC`D%epmtigQ~|;=yQU)Cql?%G z@Cj3iJKuDMLFJ0zBFUwdyc36!#b&?$x!Pqp- z$R1MQ5FK%i2M=YkOw*?15ylK@t7U}u{mGdwjH8dS zTdq%b_X8MYL5>zPRAdbT7^)69uyuyaXY_zeDwXI^50gD%_=>!*IWXEkOdY}Fj zQ((26_n=?1*({60x)2os78VEXf7wr<-2|gh$t|5x+xEJ~&r~SZn}lP#23?ec=xE=&hBO$sY`JoN z+3BP72+`X|&mUdZ3X*QplaSmmHnDwaUrX$0F^vQE@h3Rkh8iM@xp`utb1rOCM>9;G z&O#mN9#N;jH?LOM0&y~oB2!Vdavy;2E_l4=3>&?$?NFG_uU6b4S2<~X++lF0sFgBU zN9vnrHM!GxE@otZu2wN|3gh-ad4B`s+$s!?`b1#6^w2XG->L`vZbXl z)6~oGf}>=IwX2H%18MUyiI7*5SGuN#x)SB6h@DN81G~c+w$xJT(%U-erC~-g%KKYS z<^}COh~~7rryXxkxMlnei5X5iEtf+c&bBk>|l3WXAu`D)E?Xt?i391thC;mP#L zHB3^5)ojLj5D{}Q`QRAK@v=6#DbHzkb~`2Oo#?u+s0LqpCxgGGD+w~Rn}_y@vM&(B zVY!(`1O_~Zo5A6m`e>ym9>bhSrhPTj+>*v1BJ2$Y?Q4e$`N{&`MNOGLfc2|!!CxQI zs2wGZev*aO`IHB+#PhX*MdYWC;So->{{cEf@b+t8svbZx@CA=BG+gOh!c4ORzY(LeuZ7=y+!%Dx1n~hhf1_iK(E*cam(+h4 zQ;hjCJhD4$kR|!|gc7XSWislCL_!S#4cBdmtyJQ?=T|o^3P7C2W!B9(uBQi~!59`_Q>YWNQ%_?nR8*6)Q4QoIpV_!^H+i!on9T2w`ARrPnt zTP<5Z;D3r0A5)%j%8dyIuJHb2n*#}Dx&4qm+p4%#{`h+BcKhX&#evX}USs_`7PvR! z%Q%A-P2fF|PoYM3vY;!$H z1$~k?T&%^6$s@b1%iopopK$gPDhG zZH-I8MECOWUkrEeW>H@ve#5-u=nWhW(@2iv#WVmd!SY1bmnI!kpX43*xWd9=ycg6g zbdf2~!5Ba8pmWh*%B7}raU34? zh+GaMt6iv^>{WVOhfgoCbz0JpnQT>-Q2w4k8iL;oS$P&&!09N8G{ii{w!N0;QJ7nQ zP=KOqu?gCTJpflMP7c%3wtpRFbM#bY;mm-WCA`olDn`0-EJFZmOhZ_*D8I3FMuJbv zQDe7roqR8*locXMU~`kgpHV|2Mdj1bXIF6azBoQlvJL!XZU^BDeH?f zL0`MXCe(b7lDnykOS#)Y6!lpc6h3=CR5V0pOH6O;9@*Q+Vnw1ypEMqi_-do-DD0EW zdU2aR@%BSng^$#NKJwMUO$7k)G#E+BF;yq3C!xv*jA@mJTH$Z2!*QrnfgBUpRl~|7 zxHDhU?*(1^rp_N8SA2_Iru#z&dol#@bM6zfzi4dB zEYUzpF8IomG~%&nv0Chp;eG0pR+)yUJ6F!<;SFANO7AcSXhp*En3Ow(@?$HaFWS#c|m?_zLO6j>c#9w)mz@Oz;qnNJg_w_e%_}5z z_==aT+2R)zkokCCSzr)&qF1-5^<#Kq)s;|P*=dLjN@{ZNuTsXNXcJi-e~M^(jz>aB z1%r#y?h%2=KfV0Pg}{!i)a1tQqsM2jvQKZz?X7%b*yGw>xmdN`mVfF}EH@@#SR^1I z;4Af$mf!Mmoq8*}kcHdl01}|RzPR<|EUN)d)dN%X+>%VfD}v{HE_I}yK&uOlQqPubMmW=4orJM^)~Fnp2Ah0VtzDE z^Bl~l?^{Xx$tzFkUCuAw>dmrjIO{KC#U5e*p_dvq0WA(v{uC1MBrccu@U%IMtBg}v z*~^n1YV}K1g>o#Ta>GH3_6m?`>NfC90wHzbBUPEh@P9huv}%2A63@$m#GcNf?|-x+ z#37nT?8Gy-LV}ns>=ap;_m68=WW{ zM7y}E0XSIDc0o($^id3ILzb+(X7BEZ!YpZB+5>natqZmFLa{DmU0-JBWij~;HlcOp z6wt=!4zg~a+8KUMGo;7N{JkI?f#p_{iOATzfhkQF9=Dq9s1;KxIavryxe|@;dFulg z^l-^m&lo#{M1gfN@)FWBs;xBUmRE|Vwpcp_9Qr_a&B%lZ>4i?zg5 zMJx>q#0FLTr-LS|_|Q4aDYt!m!+ zynfNTKwBSmAz0s4&pd6?%a7Bp46sgvozO%f9WrI}xrC z6?!!c?aSo2of_xPPlfg3gjE#s%XF>UyQL=LZynY)*Cv@=d-qR=a$FOWQH}I>?`jwF z9ItiPn-=sbN0C2ur6q99WqiFE2J&~%(SAX%p;}9zOYC_8j+%;?2+7dNPjMHTqqQ*p zTfHP6$eyw37+OO`u58c;wi5R=Bc=j@tH7edyyvb&M^MnKIQf}ZC#zbm?Z_e_Lrc0S z{yb*c#Mn1A7W>IlJOxC2t}Zct4)4&1@S&CxP9g2MTefMaBwLKzEdWIKUvgud->VM&9=~-G`$7s%F73y0uEos%X`(Pra+^MG^?x^-0&}?PZBYR2_ zaC6JbuNj(KTXkVlQQxm}@SPz{lzPRp_~_+h7?7nXcP`157lLqiap|{8Q&%B65fBo5 zM?H=&@zl&zlo(K1+S}~rZ_DvGpZHD=gKR5cfBFU~ zr8eyzIV5tjz`KQoEKe6j=5{WITTqL!Vpua9Xo@Z=AmW*IP z6zGi(MX_Z#U=Kd%S38v*5%yp2A>#X0?KY+P04ZZp8gIGb2wCh}yhi6iqYsNu{Qr!< z?lDX6vp03z+8VaQ*yy@p=lL|`#M6sDSj(>>K%%g!mkkp025&om`^3iSl}5UmsVEUx z&j*RJbMW4C1p=@lQ@3AZ%=`GR?$fZ{&sgce^pdr~=qCC9AW}}~ZITMBcm=#lz#$pN zt-l_L1tKl`5IJB5sslDhaNtu9;uF16ruR^*#Zj8o)l%0EG6Q zbU*)-uMCHMxT|<2C;NWLhVS_V$Ti6cD(e%pw>6`v%VjF zhhd3*+UbXC;?a)KgTY5L=R(qcZo{62}bSz!0&lnCE$EsHf zQ>`;^v-NpyRN`SiVt`!5#h#3LlbX-15eA}kI9h_;KYi4tPt`FJiqK+(KE8= zR^G27Gs73Tc0`PQ_WxWlWgBp^dEmXgInNpv<#buDQS` zN_6vSPTeT-i6ooyN!b`wq$~Y`;p=-t-xZz1K;}S<13J zZpxfmViQA#z{VuOv1WL}bkrcoZTb0ER{qV?k#bb)nveBeM!Aui>^W=tkz%#_+>)YE zm7Dj8cyEZoK3q-VTc3><8-G>gBEI9+Do50EuCsw>F?gr8w&}t+&w23*|1XAxvAJ_CmDoue4P!@P0{TFD9oAqj3w{)%V%_ZTk;t9Tt!p;D>rv;y zJOrQXr<2|qER%ww*r$4@MP|M62`H`3V#@#d3RFfn^f6^nFR#m|t((%?o%P5u15P($ zvVpX%g5_?Xcqu8PVu@3mc?adpjIU;gpiLurt1&GV;X|xNrrZQx{230u9*n38)LUg> zx2iPArYv68p!NV9$aebFgE_o!lLq_XypDN>oMY!~y3;28R5XvS>g)eJXx7m1QhKpv z$dYn1gI1L8N5y2af~O@6zOcJ^d1M)%8_i*#x+S6ImYrWxbhy>}`O2b<%_slJ^1byo z@l;wThh?L$g>AYy3k;czn`F5&(}{tJ7!_=Le97WB2VS1>#{XIFPmd!e13G;5pka4A zqiIu`uoKfC8TQBMGE7~0TU~pH7T>;Uo4~Vi=QAft^h^7JZ~i3ZKnb%6IFKPKy7}$e zu^*JN4Dwb+&ZX(=;dXI+sgWgzdD@vmNty&MPa6NT08!;Ho8n^%Q;P8v$&iY4L0t-f z?lxYV6As#Hvs2ZXW7|MiRn%Jc`q`ZMDrl2PZARkqLo7k#<%h$=n)DCpt>gMTv$6}X z3L2s|@5&t+w?ow6`sWuS?U&`wejH)Tmakjp=sn&bOKt0wwGWCU6)Xz|qYf9%@KXQ} zr;g`(M&^3|M0>MOatY?+9YRtE{X3on={9V{|Hb&DrhU9X(=|3=@n`A_LTmu)%C00y z>BcqsbLNf6UFX`)?{QSQ{deBebkrrzHk{AD21j7{(>673B?iVSMvcAOj$QH`1WIS~ zD_!A}W9{r}@M_*=nrYhcWWrTr+|U85PN%ska>zDDVB_he#xO?8R8BKm_Q(xMi8g_{ z`Z$jX73miBV)BxpoFwdHHlj9;HnEM$t5$3rgmmXgQpHFbM+m_9UaK@CF<#8pp02^? z=dR~kB&xdEfV2p?{9?>iCtRIiIGM<`@eQl|4BsSD9-jcuxL%v>-EepDmUn6St=dGj z%ZRt`ZkEaq0gj~+#V8Mq9NNa^L$CN1x$jf1SIip@ruN>iY)3=_^qqt@e?s04I5cU5 zPAM1|@%)}X^3K}7#&?20`_%xp6)gt2K8wnac>RtHC(h$W9T45?rtcn?A8TZsg zH?OK34+UF6Z8T%bYwpil6G~=;X=8+@|300txAwvFx|d-DbS-pG-mID9a2Bqjf$`wv zPhF>T?{wEzflDTkqKLv@=Eh<&UCbb`fs(%bcV>#{DtY~utb0E{c|mO@G0PcrP;J$J z)!F~Yt`=6v)Mc8(&t`SCiLS-Ff~_usJ_(?;fuxI7_>_hqO#CVP!uguZf?IHvYA9(N z>c=}l7g(>ja>Ni3;g`1FJkUEq%yJCuP4{jWnLJ(a{#{>&^g;n=igjpOPV$F_=m`x| zV_#2}ZR`EvP}&)Ns9A}BB;bnT{x1fDzqU2YE+o}JRYaBdHTP8jx0kCfoc{Jrr<8`^ zK=$B7y>@x>L^=!8cQ>wvPmD(_a-V^FxOmK6DP$Q(AD$cyzw;wXcRz zJ7}_%>-p49NN+gf9R>Cvv+{AR4EhFMtVZtX>N|`E+(ey!enI)9Wy5-K#@)0A?jY*m zq0`29nc<=%B^+fkMfkFzN*EQg)00bNWG2HOOT=D5N#39UaPPJ^T3As_oVH?kaR&-nQFkfG8;=FQQ zM9;o!T|_|!axy>#DkVi#Ii@S!D-8KfaL#htqtp_8d@W&bD|+Tk8N5z9g&amd3D20< z-+bx~p+qLfQwpjL5RKMJY##C1D?yGQ=3E3R6++8p=Cw}zHtpVanKoZyR0iMBwO5Y|Wj>dHvzfAj138@iIX7>AD<~p1 zV_ptNL@_dnbZ0J_4Wt)Xl>)DK(A#RSs8VxYW4N>lzw%8oDe7=rrzHhRx z>n-iF_Mr+$5yGSUNnkwY7{kLdKRA?u{;7G{XF}z4Y$$Ic36XEFI^)Uhs&E>z^{#@)WoLJ) zN&x}%%g`K(i|*iscJvlrcJCRLpb(9OOgijj;f8?uMZpitG(Nu(qNCFvl29S>W0MIs z?oNr)oM-PJHfQVX#L)Y!6-_!K+gHB9uv6SUS{gd)qp1_hWD1cIcM`hn@Q5bP(Er-q z1xqPKglkmR@ZmO~*L8TkzW~-IPseE3vwC8BZc++a+MtaYabs6dv)VqyC1pw zDM{)w6?}MjA!FpoI1ECR1R>@@)|R?N4KJ)+vDw(ifT$H@fB81!DWdYpWZ@qW%=spgVJ{u1pw6PsCO^z7-r zOW!R>q93n&-_fxYpNcQ(HGWG%is8Ve3#X`k)&DK@@$3J9S8ypzEC=WN1@lZdyoDbks#^W^hZ_4v4c16=fxyY9j0h}hN_4`d;Ek?QYm%@*1TrdqV$`6z=;$Nu&(8ZVta~87Z_997(a1y*y*>>R%frY~Pw^LU0m8~tGxGxl|MG$W zpxsS#dddc)HIjKmzsefP-qe-2o?;IHq`iE4V$eI`>`(9iU+fXhCR~7A+qko`r#aT+ z({~@4)$S@83p^oz;Ey_k*;dLAXu@%3O3G63meM0+rGy+GrA$zMec#GCz*XM&TaI&q zG5GGOq3)tJ>$&IBee06vgBMl62448a71Vxuqa)onm*2!AR?X5<$DwGTbz%uc(Zsc$ zr;z_X84qd0=K#^Ex5Pa=YpHSFy>EXto15`Wui0nRs{&pbP}`GJcmIaRA5*+ddqB=l zOzyiPH;UeEJ<{4_IPn|L&cGes#E0BgQi|Mc>Q+u|h7g`#;W-fn z&|F3fMKzobi+>r7?QDIukAb_=w`V?Y;^v9ZQ)bfKn-|hgC)U(A5MZ}0bUcCos_+=C zy{I>tS(J5Rn*?{4i)FZqAL$z!O}5WONqK^t>9W@E-o+OjSVETTL&cIsMAr;QS(p<% zLS59}=8-)m(tEY`5Or1+?`S7N0*v=BzwRUt$i_p16X%Z4S8cvD8bLmqywu^lQ7*u| z9XVn(=oDMPwg541`+9Rsa$a*U12~i-bBcDBLEJIlc8-uqk*@+AY; zUPcc2@$`$#noyuaCsc*t;^`Ot!1=NyBCDyR^aZ<^(1pyyCgkYpbNmCXu`cx{=MW=a zdPyR--9Bk>DThY_wAl8Ka_6yqP67Dst&@q272YA zP1<`1#gZ4$AWeLMO=iNhH?5A|4y00{P`neY{tLzD z@sbfj;dg5H)k$AJd1*btr;~q0S$om;P0iR`iW)hegyNwU6}9r`zt5Q`uJ`2ch7rDO z)rWX__3GXkR(l;CrNPEzE(IV`IAYOOCG;d0w=F3tiAlfP0yEBv6cZHt%CLH$nerjH z_LNG>ptD4ViDbL((XBCo{bkD5LsZ@4cL6SZv|$JxW> z?5i+bU0PCtq3x3k7CGN^6-B1Pv~6of5ePO^zAPFAWeEw68*QANHeTk6Qpj{$&9MJX zP{@sIV>9w|P0_R50q+p8<*YY%yJZt4k^l&Jrsq(A>|yXmWu7(MGC*yr!K4LNR<1WZ zW~O<+NnWY(F{`pc#dh?Js!561wpRcpd9FUD)@P7tK<7b$^M%FebAlK~dI%wLvuS~1uv(OpVO(D^U16)*EV{YQYNNT;v>5`&k{4|>X%R>-FjojGyh&^j~PIx>lCoECF zhY3$Z79tR;&HpgeUS7}mg)#!~7o0)=r)Tir7KfzBGO>E`9iSK}e3eyL`-ezi&YGNm zLYMKRtpu{bq+8U?M*mWFPQ>y2rnh;z2KFU))8X~~Z0i94SLfM{?~ZqaQ*%sK1WPiR za!pRel#ebEuv0d1Op-N`z&A}UWcuWCMFwhh=b6yFSCjlPOu6|@P^~)3rfTI(k$|+|a2@xP8S_}J&t^rw zL^&C|c*Pb?`_s;o54RFfsdGH0B>&X84(Hi|S1uHvTC(I%>h(W&O@J1WFZ3s{24ve$ zBTzNo&K2cH2Q{eRf-eFox!XuVdYpNqf{tFL@~*|YPO?M=kd_?hyg-rXtau|+ zEno5oN@zfJVm&>#0K--RFy`85@Z#kBS<9OfU->h*qD6o7aY;}+!iZ&_e$W8~Oo<19 zaK*(_a{1_}TJ!n{S+OXFqFXyuP4yU#qVn*EGuh zS4h+31!DW9gV8r+&Y!w{kKB3~N7vVri<~dyv!ZG;r;x3=NBgHVHjO3)He9|oTC%iC zXb)UboXJK^gA-o}KJZWKNEFvnSQ$`O5|+8JE^o12upxzS`{+#e8_OXsOBbox3dJ#t ztDHX+r)Mpk9P>ZKQFSwfySwdD!n*iux@87G!ZAzB-ML~|xS`>yb=64mMg{NAz zpG^yx8S<_HMMJ&A#@z2o9d%dt6gWEA#8e6`onep_9yfyc4PWGx(Cz0Q!Fxf5uOL3m?t~*+W)%6dW6?Z(*s$&X6b|rL<-b*i1k#=oxf^VbRSsunJ9SrA>Rt|J8wPW0aXC4!cW9Ta#X7PIeW}Uf@r8B9CBa5aR;j4%mjBU@rV6kT zQCPChIUsu~Inm?jCCk1jfs5?7NeY)B#JA{q+LW)vcisrwGv88Anzjk%3}bkD#g}8k z7O9rY^oSX|LGuiQvxUiKivs!IG8mpZkxtE>%FPhm4~S*HKG)won#_}G4SbJP==@0D zKFtRbO9)2!y*Oy{@?M!}#~X@6u|rVV^^)V8!NHrZ~EW?`N5Mu8f;1 z&j1Qw1DELZW-Gaqb$-R6A!})Tuuq`;GyWe9Lq47Uj7$6U$iScMg=3DBAdWN;0E*pWSfdffqgS8VqYUQFi z`i2lsetqs8!dY)MmdmFD#%&72JLUp?h|N@uovce?G4k(Irt?dnbPGqy6AN`a8SxERYUj-3`U+9Ey5zOS&&RS9 z(yo;YX8P4Lzw$AnJaE=oB#7jQ=hCITpebsUz%j+ax(6mnI7WE1a>M%toQSk?Pa5vf zk`CIbK2#7HT99ZgjcP82i|vE%_Bg`7{|EvNa!nc^jnX;#=hQyiS~=2HS{iE0S7Z(a zxDzm3tO#rdB8uuw5KtcAb)4w^7ChRQg;P+K?brg_2DPWrEER#GBJI!t@4f z3b7N^nO_10`ICwY{i;Y;!5TCgc)(d;LUIMl%&wRN>ml1+OGe!c6Mv^nMIHIi>Hime z;8qb=wfIUjcG&-y&~teWhu$Bnz0c_>n8hTSuW1Vuv$&})M|}8QM3XBd$Y_FWKBNB# zk`p4{8KiJK0(>VOJp|d#9}bz}9A?)XlN*hSxbt3|EmPvrDGvfL*?EGG<<;{nZ-YgD zvIL2tFRPa_LT0^`Owt^Wgfja-$IuNrED#B zqWxz!%K3|J^<(@rM@Rt6RtT&|{&QXTl%;FQ;}D`#)*fDlXQ^^@WGy);^@4R^hxjzl zaeY3!DN2V|!=o)}PyT=uTaSunH4}x+OVB;MM>M|HbY=8YS64bvT3tX}Wdhd{@$Sx$ zVpziWx?r-3_tF~Nhq$PcQ?0{?LR;l& zWv%{%MwOcGnRDA)v(P{|KsL5ZkB)d92D=y%+rEU_d;1RL8aWpMle3g;=G09HJNe`z zoH}%B-y%idwY|uScPIkItH@&Ix5Ade$9*?YBR36og7nvrP0?YqO&nOplhLkb=>ryC z@2)3nXa+1~ZLBDXO-khObqPM!YyNQ=b$5et2(9AN!d5WNq8^v7%bTaqn+L?qj(ckx zrpDjVLcczvy!`?q5xXh~m!30=WxC&nUIc!4W5NX*Alf&3Wm%T3;7ATSza@NDI@&c( z94|+Q(xKLtDO?bqC|Ex7QK3cr=*@17IS8izgMJAsb@j@E_moboQ-!42IQRx}2b!XK z3iPP{rA?crjCvEY@RI&KHm$10v0#xSmw&gNtmo}_4Iy_r zPK`aW;WWW`-$q(+}OHIv55LN2t>tjGUCkd)*tM;e0wd6)lsf5sQDb{!K zhZx}XkHVl~!vKtDOT#yIXot5%Bz6n656P)vu3M*IxocL}NQ!`*dQmQ}Xg|B4PF=f@ z4Mfs9?G?;PUEHj$`3y;%s-DX2;2`em@WClm6X5f*hVhO|)h+|CDeCJj;r`_V-83Tc zhau4j#)xUoV@{52oy1#qulxNBlP0*y46J6YWtVJqig?qtCX|$g6aOv}|L+>(f7|2- z^ohZ*IfD3^>Zf!>idI?VpZssbk9; zH5H?J(aZaJz?H(g#1B-S8$fq5${G#Z_lpXJ4c=uwB_OPk>?OPiLcTTm`pLo3Wt+f*Dj%eAyA-Ruo zlGi{t6<+cIFY2IOfA@%5GlY{8DfI{`vL`Gsd_UdMqk{?fao5%ctqvT&`jAc*sV zH372=QLKGLTA*3y!dO2ZvH$AtsbeFErAmwrjYgW933lj2cJ%tvSf)!V9SnpsOGo&a z*3SroYboh{-bI1=_y?XiO}yo^^eS$3ITB#xeP_R}eV>8;2AM9)ukdgph zP(U)h-1x$oYjXJG+i7n5VNL7JCSGyer?MEN8Md5oI|V4aXB6EozWbk6%W<4hesccp!ffK~S8D0uJ#v#rS)q(Fd=MbqMVRU@9>pvpjeIO(Ad zDF01Bf7RWRuwC$*fZ!@c>Fde}F4sV}B^tr@UB$H9ZCr;lyx0U-O#UX*?%6ySJ-!U!6lx2I{BV^uw6!+b0E=gooGET0ijy2l#nJ zVJ@v!e$Ac>3ghT#fgT*8OsBqWS5zY4Jy74e;_N78u$XYE*sge>Zu!?h9)Qs+L$r^& zl|P(r+Ok%cOH&oM zG0O16r8de*LM~f4HMnj0^pgt8pF$xSlQbGw>A}(jTA^AoV3FK?N-DU`c@d1LES8Gb z@YK5En9V7iX*$0xR>!X}pOqdzYx!|2)DG(trA!U?+$UzZMh*p8|LJM2b4B zIYFm^lZ#@Q<(cFLm=C3$Unj>E$@of*ci5Lr@sMiyKTKpPI#c{QtycCYvcs-sJw45N z7V#|~{gA!IbAiYhm%--MQTC{Z2qCAzV|$wXiRL_&0l}}P<)$&8)H$tS51zP?fJj)q zb)pc}jsg?Quw$*~rFB;g8fmKY)ME)y4ma8OXF!4RJl@hu{l$`#3+vwm7dhwEW~s8` zpK3F+kELq_@1<0aG dw$5-_(zC+1dD~7>W;(naZ~i+YMB(@Re*mf+#a93T literal 0 HcmV?d00001 diff --git a/novelwriter/guimain.py b/novelwriter/guimain.py index c9b10dec..7be6ced6 100644 --- a/novelwriter/guimain.py +++ b/novelwriter/guimain.py @@ -51,11 +51,12 @@ from novelwriter.gui.itemdetails import GuiItemDetails from novelwriter.gui.docviewerpanel import GuiDocViewerPanel from novelwriter.dialogs.about import GuiAbout from novelwriter.dialogs.updates import GuiUpdates -from novelwriter.dialogs.projload import GuiProjectLoad +# from novelwriter.dialogs.projload import GuiProjectLoad from novelwriter.dialogs.wordlist import GuiWordList from novelwriter.dialogs.preferences import GuiPreferences from novelwriter.dialogs.projdetails import GuiProjectDetails from novelwriter.dialogs.projsettings import GuiProjectSettings +from novelwriter.tools.welcome import GuiWelcome from novelwriter.tools.manuscript import GuiManuscript from novelwriter.tools.projwizard import GuiProjectWizard from novelwriter.tools.dictionaries import GuiDictionaries @@ -843,14 +844,17 @@ class GuiMain(QMainWindow): browse button for projects not yet cached. Selecting to create a new project is forwarded to the new project wizard. """ - dlgProj = GuiProjectLoad(self) - dlgProj.exec_() + # dlgProj = GuiProjectLoad(self) + # dlgProj.exec_() - if dlgProj.result() == QDialog.Accepted: - if dlgProj.openState == GuiProjectLoad.OPEN_STATE: - self.openProject(dlgProj.openPath) - elif dlgProj.openState == GuiProjectLoad.NEW_STATE: - self.newProject() + # if dlgProj.result() == QDialog.Accepted: + # if dlgProj.openState == GuiProjectLoad.OPEN_STATE: + # self.openProject(dlgProj.openPath) + # elif dlgProj.openState == GuiProjectLoad.NEW_STATE: + # self.newProject() + + dialog = GuiWelcome(self) + dialog.exec_() return diff --git a/novelwriter/tools/welcome.py b/novelwriter/tools/welcome.py new file mode 100644 index 00000000..3e2328c2 --- /dev/null +++ b/novelwriter/tools/welcome.py @@ -0,0 +1,152 @@ +""" +novelWriter – GUI Welcome Dialog +================================ + +File History: +Created: 2023-12-14 [2.3b1] GuiWelcome + +This file is a part of novelWriter +Copyright 2018–2023, Veronica Berglyd Olsen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" +from __future__ import annotations + +import logging + +from typing import TYPE_CHECKING +from datetime import datetime + +from PyQt5.QtGui import QPaintEvent, QPainter, QPixmap +from PyQt5.QtCore import Qt +from PyQt5.QtWidgets import ( + QDialog, QDialogButtonBox, QHBoxLayout, QLabel, QStackedWidget, + QTreeWidget, QVBoxLayout, QWidget +) + +from novelwriter import CONFIG, SHARED, __version__, __date__ + +if TYPE_CHECKING: # pragma: no cover + from novelwriter.guimain import GuiMain + +logger = logging.getLogger(__name__) + + +class GuiWelcome(QDialog): + + def __init__(self, mainGui: GuiMain) -> None: + super().__init__(parent=mainGui) + + logger.debug("Create: GuiWelcome") + + self.bgImage = QPixmap(str(CONFIG.assetPath("images") / "welcome.jpg")) + + self.nwLogo = QLabel() + self.nwLogo.setPixmap(SHARED.theme.getPixmap("novelwriter", (96, 96))) + + font = self.font() + font.setPointSize(48) + + self.nwLabel = QLabel("novelWriter") + self.nwLabel.setFont(font) + + self.nwInfo = QLabel(self.tr("Version {0}, Released on {1}").format( + __version__, datetime.strptime(__date__, "%Y-%m-%d").strftime("%x") + )) + + self.mainStack = QStackedWidget() + self.mainStack.addWidget(_ProjectsPage(self)) + + # Buttons + # ======= + self.btnBox = QDialogButtonBox(QDialogButtonBox.Open | QDialogButtonBox.Cancel, self) + + self.newButton = self.btnBox.addButton(self.tr("New Project"), QDialogButtonBox.ActionRole) + self.newButton.setIcon(SHARED.theme.getIcon("add")) + + self.browseButton = self.btnBox.addButton(self.tr("Browse"), QDialogButtonBox.ActionRole) + self.browseButton.setIcon(SHARED.theme.getIcon("browse")) + + # Assemble + # ======== + self.innerBox = QVBoxLayout() + self.innerBox.addWidget(self.nwLabel) + self.innerBox.addWidget(self.nwInfo) + self.innerBox.addWidget(self.mainStack) + self.innerBox.addWidget(self.btnBox) + + topRight = Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignRight + + self.outerBox = QHBoxLayout() + self.outerBox.addWidget(self.nwLogo, 3, topRight) + self.outerBox.addLayout(self.innerBox, 7) + self.outerBox.setContentsMargins(24, 24, 24, 96) + + self.setLayout(self.outerBox) + + self.setMinimumSize(900, 500) + + logger.debug("Ready: GuiWelcome") + + return + + def __del__(self) -> None: # pragma: no cover + logger.debug("Delete: GuiWelcome") + return + + ## + # Events + ## + + def paintEvent(self, event: QPaintEvent) -> None: + """Overload the paint event to draw the background image.""" + hWin = self.height() + hPix = min(hWin, 700) + tMode = Qt.TransformationMode.SmoothTransformation + qPaint = QPainter(self) + qPaint.drawPixmap(0, hWin - hPix, self.bgImage.scaledToHeight(hPix, tMode)) + super().paintEvent(event) + return + +# END Class GuiWelcome + + +class _ProjectsPage(QWidget): + + def __init__(self, parent: QWidget) -> None: + super().__init__(parent=parent) + + self.listWidget = QTreeWidget(self) + self.listWidget.setHeaderHidden(True) + + self.outerBox = QVBoxLayout() + self.outerBox.addWidget(self.listWidget) + self.outerBox.setContentsMargins(0, 0, 0, 0) + + self.setLayout(self.outerBox) + + self.updateTheme() + + return + + def updateTheme(self) -> None: + """""" + baseCol = self.palette().base().color() + listStyle = ( + "QTreeWidget {{border: none; background: rgba({0},{1},{2},0.5);}}" + ).format(baseCol.red(), baseCol.green(), baseCol.blue()) + self.listWidget.setStyleSheet(listStyle) + return + +# END Class _ProjectsPage