From b5f33839c559bca1813ea8ea416496ff0a68b740 Mon Sep 17 00:00:00 2001 From: Patryk Radziszewski Date: Sat, 21 Feb 2026 20:44:21 +0000 Subject: [PATCH 1/9] Add export, sharing, shortcuts & UI enhancements Introduce trip export/sharing, keyboard shortcuts, search history and multiple UI/UX improvements. Adds new components (TripExport, KeyboardShortcutsHelp, TripSelector, TripStats), several composables (useTripSharing, useKeyboardShortcuts, useSearchHistory, useCountryFlag, useWeather) and image/print assets. app.vue now handles importing shared trips from the URL, toggling dark mode, mobile map/list toggle, keyboard shortcut wiring, confetti on trip creation, and improved marker syncing. PlaceCard and PlaceList were enhanced with editable notes/time/cost, move/copy actions, category icons, expanded details and highlight/scroll behavior; DayTabs now shows day time totals and place counts. PlaceSearch gains recent-history selection, and TripExport supports copy/link/JSON download/import/print flows. Also minor styling/transitions, print stylesheet, map style-change handling, and updated tests/types to cover the new behavior. --- all-features.png | Bin 0 -> 88337 bytes app.vue | 153 +++++++++++- assets/css/print.css | 116 +++++++++ bun.lock | 6 + components/DayTabs.vue | 50 +++- components/KeyboardShortcutsHelp.vue | 51 ++++ components/PlaceCard.vue | 347 +++++++++++++++++++++++++-- components/PlaceList.vue | 66 ++++- components/PlaceSearch.vue | 70 +++++- components/TripExport.vue | 199 +++++++++++++++ components/TripHeader.vue | 33 ++- components/TripSelector.vue | 135 +++++++++++ components/TripStats.vue | 80 ++++++ components/worldMap.vue | 60 ++++- composables/useCountryFlag.ts | 48 ++++ composables/useKeyboardShortcuts.ts | 79 ++++++ composables/useMapMarkers.ts | 94 +++++++- composables/useSearchHistory.ts | 32 +++ composables/useTripSharing.ts | 91 +++++++ composables/useWeather.ts | 53 ++++ dark-mode.png | Bin 0 -> 88503 bytes nuxt.config.ts | 13 +- package.json | 4 +- pages/index.vue | 3 + stores/tripStore.ts | 165 ++++++++++++- tests/components/PlaceCard.test.ts | 24 +- tests/components/TripHeader.test.ts | 8 +- tests/mocks/mapbox-gl.ts | 6 + tests/unit/stores/tripStore.test.ts | 2 + types/trip.ts | 4 + wave1-initial.png | Bin 0 -> 193616 bytes wave1-trip-created.png | Bin 0 -> 408640 bytes 32 files changed, 1903 insertions(+), 89 deletions(-) create mode 100644 all-features.png create mode 100644 assets/css/print.css create mode 100644 components/KeyboardShortcutsHelp.vue create mode 100644 components/TripExport.vue create mode 100644 components/TripSelector.vue create mode 100644 components/TripStats.vue create mode 100644 composables/useCountryFlag.ts create mode 100644 composables/useKeyboardShortcuts.ts create mode 100644 composables/useSearchHistory.ts create mode 100644 composables/useTripSharing.ts create mode 100644 composables/useWeather.ts create mode 100644 dark-mode.png create mode 100644 pages/index.vue create mode 100644 wave1-initial.png create mode 100644 wave1-trip-created.png diff --git a/all-features.png b/all-features.png new file mode 100644 index 0000000000000000000000000000000000000000..747fb53d1f7f0b7f610ca3e90ce7954cd79522d9 GIT binary patch literal 88337 zcmeF3cU04By0#TX5EKMy7C^cP5&Ai>EOGrpUzPOb=duI08Gjq;5=dW+AEY~94_xG0jx$o;q*iHRwN10AC?c2BS zsE)RV;l6$Jk^A-?@L{B*-4m=WD86ssv3)ukSByQA7AbAnmG?XO7`v~h+go1faPPD} z!w50wIG~yzblF4w^2FuS2RXjKXWZRits^XO!zMPK8Xzn1xbxi!o(=!_i?6R-y?U_u zY@D`6Q;3e97|w6SwL5DvBg<{+DK&)>$Y0*L23%PgA(i1#S+BBgi`_}So&9-qX<3vp z;0&Xh$nJ<5Sqx1kksvE*3)(%jTg}Q5vcvI%SB~x72$$Z?aQuAiw|~i!-&~pg_V6(X z*X*UB-(LFjNovfSN$S79`dA=>-dkVb$2Mt!?~Pr+ng64~54=ObKyi5#9D1i0LL4`sG^?5ax`M0s8dhX}T>iLK%<*uw zoyJ`PfJ)N+@$7i$3O4@NcO~QB|2AuCoyC`tVP4arJ8tEF86h&5s&azUKp-sQ8 z@^~rh&lz!u{No)cbJQ&aAp$y%rLJ#)cO;-oQNK^HRlvcYlgXI;6^idQ;!}*CfM4VM zZ8p=sAKLHdGjFb4G)e+fHxcCHX#LKvkH4ntA3kUts?6$59*-h&KsTc(Yw6etFY7h3 zR9B5WgqM`4|qxN9}&0#I9}cj;j%IqodnC zRL)^@P&t)=fyAqcqYIsg^`AtD-{F#Q}$w8+n|dtppoapTf~ zb<9`As=bv{$*i>fW7QlXz#-TbDo*Dh1lL&Yx^D_x^`5m8#roR<3>@_$4FC3@KMGv~ zkcmI826C+wwu?ir_wKeLD6UYmwqI+v#_{OU%XZz&+s8-a`HTIck8twLb1~@*-mI%hN9G|6lh1 z*`_yEN=lk=qz=<&HFXk7R@j|Zquhhes1bdrV~9kr${9iknq1hTyIPo6LWV=fS4?)B z^YRRs%OAMj{IL5y&jm`fK_BdZ#vs28&EySpZ`;mAE>9pRQQm= zlwN8lwU*k?Pk2Ec9&PCiM{l!In*r3_%285Y+|S)_Rrvt=?FnL#y*c%b=;)! zMxixMxUMJy;sw*aPn3Y{pM(4Es!HJ+@d}fg4?}b{R6Mc_K70j{4c|s7g!E?9-(|(1 zx329*P+w5zpp)CXHdG^g?%p9EIBHASo#CK1qSvXEQ7VFZWe#iOdk+}4@?b-$-7!4~ zJ@nBW4sY;X-zZ=9Lm{RgI?fOgF17%uNS=gO7cQs8G0DJ$vnmo^MuD%B`CG)+lDUaf zGhVy2`&qnp-#DV1({{gSi-E0QwAr8@g?OZVI*J!Sb+Z6A$St_eP{M2Q6UkP#wR$;d z>ZtIP{&t`OwyE46L7j&#fJq24fI5cW$)oa-fP2S8&B{gJ4cBn6viL45R1M;jyfq9w zz7mDa+o^?~k`?!z^&kk3LhdY|!d_VhEyv?2IdwDfQwxjP0aFmeJNyvx5FqOLEe9tr zXA6tZ+34u6qvRA>4P;-h_t^*K_ok#=9f@iKR0c#z#TQm0?snx-RZ$0cdFjrM)b`>? za3Aa1hHvn!t5j(zCaU(UtMIFWD$wVczCd3G1ci))INE`LTLd`yb-~T4Wdt>mI*nda zqk<_Oi=^L`4!UzS87scqK1#8H&Ow@BPWOW<73;%XaFxPK;Bh008vVg{k!_!i;@SEe)E zZ)Nw}ph*`>zO#T^HW;F!!hI*;YsPmZzb&qoXqQJEMXfH{wr@1EfamRr7X?Qy)fU!| zw7)KXD~6&{sNbO!^mZflDgMSEC&_)hAAxnZLyf#u>*(tq`K$$c<5oL0nM&EwAxxrU z+?HsUg5){l#cvXTE<8VHc4l{*ydw#P_`@xiq9hPdonI-D@A?0Osd$cl4^oZy~PrFQvx@z2ru^C#^70^&98n0e>+?cXnZ8_aVIGB zBe)MJ?(yyw-63?HyY_J|^yw%MblsP`5%wp!gwZ@q*66Ar7}zi>0{q3pq~(5j^M!qO z1;-yQD4^B=??@tn>38$%)TN7W9YQ~IYXUIi0>G_Yw#Qqz;V-~;=Z|#W?oy(LK+J5^ zcv@5k<#$J0Oq4}ib8C&if~zjvUamYtd;S0&Qv8*l(}{~%+POi6{@Pa0kdHx1{f_VM zK*>=bcgtQbG^J>2Q3)K0a%K>(B)>767&*z+uH#06T(4CV+jO0`$a6yG9?#YG&Dl?b zQ);)3PvUkeTR-Ib9$U;YXxTc~Yt#@9_EnN)&)w%$?$4b6P_gjRz)Y_P_hW{R#-ei% zAdHEpI1qPsBQ);|_pE+Dfwd8QtTu!^9kl`J!(Tf2YUcXG_aVyU@mcPPHc;Psxf&&| zFJZnLxPYf*w!6n67u&Q8ZZ64cTHp)?*DU?bMeCc=G$+R3-nnqs;|{ZZAwDSr0}>BV zfsK@D_~emNYxW)b07ra80g)H^Tm#SCXLEc3BJLiSUTlXxnCp-64H@z#ZsmvHLF=(q z`*du4Uhk#mK^LH8G{G@%v_$V$RaF`4xR6db1>Hbc7vy){!crGuWo2e2Y`Vid=h}>0 zN;0NzRrDakk@`U{S)&bVS1IyA{_5GxiZVvY6hM!oj#QT;3VEr^(MTN>?Xr=)ATDhL>p^t|@y>$55`g4dUGA@c6<@Mqg;C#%AcCqzCFoj3=bvWY}Xw3%vrN zXJ+%}%MFjxTV7)Ms38+rB7UvGYW!vM1YC^403~Vj1$&5hkB2%ENSj6l1I5a=P zgj+OzVTxygc$rLgi=Bs1&Z^)V)=C#9J2z^4U2^@Ny;vVCdiH>{cEzW%QYZQnRO-%mEasmdZ3=^j`e1@RMPzD4O3LkTM0+y=it8S<8a@G znAlOseo_)xOX?Qq?l*?*1B)LtNn$rni~GVzp}gzlc#L2-*ICAaWlGVfA`OH$5(w3WEs$hjOUui0-IHn3Mz*-yjc_D;%H*^AjIRn1Ijz0S4x#7qww)DPs_h&w2 z4BXEOU1J9MT%Qp^)SVOL?lHTOxG;YWM#)2*vxvF3p_C)&P~eB35(B-IC^fwWj%Sxj z+~Mt5H@<_NU)C4R=UOsma-23hL%EtQ)ftU`7e6sm#eG>ZMsLe zvLVe$%4d!Qn9o9sEaq_Nku8hf9H zGcGDS4eVe`3>Fa>{ri5`0^h1o+k<@02J^w5Ix;(t8{H4CIM4UF?P((TleRCuA$L%s z^p$dZ3Ml{7)0L>?S%-*(qZQ|eEDJ^OvwS}H%7(mSQ=L&7AA(Hkr%RRJ?v2U*Q9@G9 zM-Gqc?@3!5wy}kcCIxCw7qi>b@#6=`%_PI;wV1E5vsP_F+==IsT+;$3%#9}qqtdrwK{ z#NB!Pz2yzr*-jj=BN(#( z9-=)J>0030G01XB>9Cqp*g2e)sAi9C?KIb%!94K9TWiC2U~hEu_-hw?Jm%(tmee-` z>EtQ{v>xaScwUdGwkLk1R>nC@&S&KaM?Kj25~R_Wox*-j5A;FYJpEI~bkW-?006mf zp&!5&cA72Dpdq0&o`d;C{5d>oizIpE^WY%fbG%SBW#>^nkVJpxP~&W{ikhlRJf{V> z)akIOBY=kNB6U9373i0{7hw|wkwsVBdf$E@cggc;DT?Uy0q(y1+n-O#s~-Uw3KHm7 zjIZ)XzX#=C9m?E0*CC9f+erasXRq7mmir?7jxn?j(m4$AM$2_{@?3sBRtly*gSIqY z<2s|79m;h_!(lS>Vv8H5WvZ+-)u~4e=lvEVHh$IY^Qgm|d5D)NJx)F8NfUUdyW$M4}9_=1_Amk5`!@YPX zL-alP48a=BlQ`$mT^jr_rvNaQv%ba__+?6X$V!+8KlK$n+6 zcf?R8D5qh<_tvY`A0U$~IxFN|s|_bWXkOHtmZjZ|rpG-Mki;Gx%yvA- zRZ6T4zY1ttg}M~a(RH<;xf{Yz8)1@Ahy_-~b70wb@p|F*3=GQe#+m_9I3vUeCb~^4 zsY@PRE(;S>(FQg2GqAY1`3!STxQW)!L*5S$k^}evkmeM+XhkiLKD<1yHPKC}wP;<0 zT^4JT2skzy#8zrkp$fAYEFTuA1`71f5&EaNcY8Q*BJfdeQsvman&H}N1%+b^o?~FW zdl|L_+;u;DPM_b+fGe8r^n-@G6LeNwz$>$|;^oZQVig}X;^tKk&t8B{lt+LjZXLj# z{}!G9Zr(O}cJ-uP!ka{P)%A(u7r0}gFu)~3{muMQYkoa%;RTvX?XgS0v9O*@KL{|_ z?+O7W0?Y?Ic21U?LS_}rzE3}FaL?}mT&`=`m4G+EB{4t>&AL7PTu6dT|IPMx+kta}vxxkmon%0YSf;1icl;0RJO zMO_`@)v^2r<6=!35@g#fXc4hnKHD2obgq`YiMAMqnkRh4VMM}tyAf-{N30RmGM>aK zZksU5-e%#+I*L!C)18io=ohha;pLD9_1`lLAa0`c#>_rZhngZIWULhP?9;GT;5Z#= zUq$dk{x^xLCl@*#U8WU5)`pjdQ`Xa3tiE3&Tj7@%511aG!k;+k*qS;!daAGrU_A#v zdZEB_xN?h`Feod|mHFlJm2d7V2svDXHNb`+d4C??2rz@|qaO|fkqT&ysNgLXXu{De zUo)If2(A%C=4zyBOpzLbc;>Enj?RRq8GVUX=;!Z;rr1?a+JwbWI5SyTuez2kH~@a9Ugb3(++J9{n~ z_m85of$b=I*XMO2gib9xlLfJYrE^GA_e?o(vtr8H}bGH}|f<%3Tjf2uZ^ZZ_8J#(--4 zXgz`#?zfS-yhYn1yhJtoQoU4s6y_ISlr2OBelj_y@3XGrb5ecQ>4dk!5lN_ey{>Q% ze3m6&D8{cE^hx_5`k4T0!7{h&6Ye#5-Eq2(^w4~dseuQfDd;{MS@Fg4(eo?m z2)dd*Ga9mQwAaA=ss8O0gPo<+?VEQ-(N!fW9~pfW52N{?KQ!l^k|HRmEDc0XR);nk9Jq$-pdbWN`+L-)@O?{w?8Xot$XxG#0sc3y#X&NTi zM&~44SNQJZ+jjcjBbl!XC+zK-Je7F}K_*{0pVK@3(&oViOSKH1Cp9l52aZz5<)T1# zSx)WA;rX=rQhY$uK1s(pEA+n-6}FhPva>sBoMU3>Rpm;Zblg|)YJZ(eVR`9c`ue&T z;C1?I8;bLm-GDh*kMy{``hHLkSsiN@p7t(Fg=lqU5UU8Iqo~Jj)5NRwtAa8Xh<}i- z@Qx6L$2*2;2;x##$ItCyfiy-xJn{ncl2ItpRf7Y4kb7C7-~8bs{LD07hP{-s4M+m} z++m@4FN(vNRRE{-fCXKRv7+`u)TPTNk&M(S79DxnH+_QNu@%mCA*&0?E&bA;AbTN@ zLak#O!lItRx#+!x+J7u36x4H{(dCA@@P~H;Dn_TAbWrjns|+_G?%DJ>{jqegsMH|9 zO*F`SL2t!89$A-A;c+N@A`f{QZ3zs69Oe|2`u-;0$jEr3|N0o58}xi@5uTgttnm_DKsZCZUq4$wa!a$jFp1gJ@ zuht4`|C8@};gj%u>|2Z_!(x9yF}Z9r@#a0ct^6+KDX*6WS)hs6G>Pt+esbse5nKST zl&rXlLh0VbV5~$VCWtuS&=ec~y8W&a^(ZiO9e_=3QX59Buf@=7W6yo4=ZqQjJQwLQ zTquL0y*g=22lW8Au0yyPyHI-1`$tu>KUgU7qn}LPpqbY76`R}9ba8P?im(1mO7PRh zXqtSJ7p*sqr@!3 zWi54{odMnT)Nhtar#`neRdH0>dAyJcT^uH?GUFwTVc!79e2c&@+g7URg$uz|K&>JH z6Ilb=m+L5`uooYa+Te9rxE=Wb`40RkbWC;b*&S#3SphVqBUwIcFPuh!;>NH-q_Ax#r z;F_6U+XX~xDOv?)k?vzZ9gtRsf+)L)za6B^#C*^3p~&aLVpn9vgLlqjfu6`#uU*uha)O8t)8z@CVe`SkXK}dRxeM49xOS@w z!oKqIJ8rF^l&v2EX2U(?ASn=(K4}936Ykx)>^Gp+gBkGlq@s7I=;seK7c z#kTh=iyo3hTEljtpKgfgk@UeYxG}60QH;J9eCc5t_<87C${q5A@Nf>^Xo}1CK~@p# zfF6_OdTP`^`6Ar4%{c_C@P8>fTxS1c(P1R4bc=m&fX01D;`-vw)o38D!96QTO$J7n z6;yHUz*K`~yi8K>>FhUWdVA7k#h(CeP30G5#l67?ocnY4(Q1dArRlzzE@sbIpz#&T zqpqtJ^4FpBa}i%6QRY^C(q%n`vDKnDxfr?v&%apX=l`QZsJR8^VQ`g(95sQO@LG& zh*_Y^$7V+_9K*}b&GBmtJl6au9Ach^Jz^&L|qa-Qx6 zUvsHEyi1jLwvKPXqd(!kTZ#tX8MJAzc|%D{_p9rznoeTN4DLCo3+!J3hnr#=GS zyB3JH)co@I++pL9joQFaO*+{1pHXJO>IvF$Yk`CIV9r^P>G;i6udxxF*dc2Bs%yMC zReHLkL`h(^+jWAa({6sE^%s2Bk4rVY9fYt$T1q#fDpg=LnH(dnMVEI%OzwYXgIl_; z6bT@2nNP7-LZ$+Ezf3#~Y5x;HWH}~D=t-W{=S2%ZU+)1 z_+35Q!Zq9h#3T5ftK~)_;HBoT(%qAPw9nu>X-{hqVB1UJBTWA3;TS6l*cr(0bLlWb ziNl<75b~HId_WO4VayhFSs?Adm%qc*~}-SozUp$L~9-$7&>n8u z(H~)}2jCfo4`{_svU_d8bzA!zZ%8)}`q7+%5Z#uNe!$h-Q>e>o_0QNqeWVcGMziUL zJS^bJkZ}Pvchtt*X?WyIBQtzytxHS--w)U)t*E6iMVyPlvC^ZB4#893ZktVOF5X%M)geJOF8&2tGMNRf9u1;?jV&68q#p{g!me#-xYC;Mt zML+hN#tUbz1}6)PKreX>x62rMt7QjpRMmA=JCh5KFwg4iDx5P=qwjUJ{Vl5@Ink*d z1tSb@OU0bmPnMh8%W6VuWL@`@x@2V<>He10{42%5&bOTi&Ii9w2!!~LB~mQxAPiDx zVkmTY>4c*N30^fU8*gHl;P2#|;#Z>YSa7--OuRf4Y(?Q%Gq#`yxy)CzWOjx z=erQy{5-x)qHaMiyqlu_wUkJ&`hfgemHv$L%jNtfd!^R(g=cX#I9*}u6s$b>%r|Bs z2duY`X#E$juU7;7)IWEw6*U9Mxf1VyOZ*EUC&U%u0N!=c1cyFQ>|WW*I+jQhPeHUO zlMo3nlO!KfEp9Om`5le^2FU0*?;G&V#?X`7#K8Mn*oE#0CG(Z1PC~ikM0MrER5A(? zwR^}wTXEE8K4>j$F)&ulA+McLsI#kc3DUsf_rCty<*y&s34p|C5 zR2y2g?K%?$aZbcpD8_T5^m=%BViz3@eIY12ah1bITzIb35P z=W)n2wCJ^8f!;{9DveQ+N+Iahkz~JpPXj<3N-xGD<2fikSGfrFl9a;zqV73^rI7tl+NJtK zdeXOuTRc#zJG@H}S?HMK&KYFbo`%nU&rg}5g%gjt<)kDs`)E#&Klm(d8~rnNacHKL zgH3FP-i;YZ^@dZr1qwbp662ZJK{uceQvd9=Ao|gar`$)Gd(uH> zojH@WSDkTdBpwKxfZW-yoD_Qb(%z9OUs-^td0d0;j_TQJMPFI^k+bG4SCpOrt|G`x zujccFE`blADgi~@vf}Nm=Wpa2s-?OTUWsv^L2PaP7XU9BWJM%>RwNz(fjJ#10|@hfHqqZ}>iX=1b|<3wJhY>b&A4mF?yx z;kBF0ynXYCs%Y;B*F;Tv*%6<6P9{ykXj#}q|EW@kydkCKixLOjEte<-$A|526}>OT z<;HWsM`EQ)Q$%b*QZbL;-!8bMsUUSE<}owwQyTzuL7o1m!Wfqze3{|cPv`>rK3DS^ z-L02o{(E(SGGgm77z=TKmk}u|uFn~RDu(!bv!@)b+Ie|nzwsr7GdJYAbNgY+_9$cS ztzrW;kI5Hc0`F*Q=lU>!U}tg3Y-BJnz+$2rKn(ckb$Y8{9=@rw5VtD-exKA+$om<| zdc&KyQ^<>;_HXh?f8dYzJ2(Fsh^begr zldTm9bqNtpJaOGFW_D&ovE-^Ty6QvwD_f7I7Lh6MFpa&lgukX#E&UzS;Ew;Vc;u@E zmAvQ`qkxJkeh;qtQG}4|Gk3df499c`{<_BE09o-u{jcMuX~kbeTl~%j0O1f=t;i29 zC68#;rCR z34ibdr~N%e;4fbq*!+o)a=a3C*itNL=A`%kpcD-&pP+1VA0++1;e&wKV4zYDJ3ZcFzB7RUahxF~GN5xfgxLq*!K zy!vN9qleVELCY(jkDs1;{V&`Mq~Cqi>8Sr$ThzpQ%u6Mvw%$t!bC$}$ zCVU&~f^BtnLtd>^F&GXK7>fj_o-sSE-Bw!XK6S`r$F z9O-0hTKchOJXSu_V3v}&P-<4PVWjzzJGe}#DS2UDxc40Q=TmA4US~bu)OQ`(X!a#x zWX0Xfdab2QuO}^(3c(Fg!%)5xZDqZVol3SuAj~3Tbbawf2qtL;tqKd6FHHn3d0Z%e zoF-0MJdi}oWX2t_seSHF`3IP2s|A1T`M30KnMXxzVkK<=nxo0c`X!!2Rq)+shrF-q zv!%59l}A$KE*0GC1<7RuZir;$>2)VKGg#+n}ebxG;gwS=GhIfsl5I zrOLv6VpAOj;otvEV$6ahg>D&~`&Fm%*D0isLX{rg(9-A1hxS8T#3~RT+{SbN5SnNv z=Woj)V|rG7-zNt`cZaaopfA$dBwz)_rwT9C&Wet+C6tdb}R8#NM z>^ZxS>-rB}QMsZDOOuh9331^mxR|E?KVThxirF%f{-9O;`eey=xJ-Q1Xw9^}s3tz2 zNAd;S0OB00s3~Y~Qv8CJqIPu(|5`F?fsVfV`?s3&+EbrD8J~9}EvAP?kYO!+O(j3d zk_3Ykx!mS9zN3pz&q#gc9FvF9&EwwyZc9b9j{}N4Z1}4Z&h(bIpYgO5)ufI@(?j}8 zI&EJa*kmRslBz~&d7E|#JyXCJA8L-cg1pZqQq_`SsT!oY?AZ?e0=~L}DB^uFXNK5m z$2g!FiMf8xJyFMej60lW4O^fuC+kS(qJqOK%<#-SEjOgTf2<~+*Q{&yx-wiNaxbnm z#~{S4_I?oZvgBoh<3pLI%OYhS!XuxGpMNknS$)2?lxkzxHL$z4=kSt(xBCU2-q;SVKDKqjw25!gJ+ET5>Z_Ijx#-VL3kL z{U72I(@g%3A7}>i-_Q&t(77=(wQpq~^ZS2JOB~Z)&1?Jvmm!4S@pQv7#e1Lq#*)&1 zXOMM~yRmKni?`+SbQ!*~yp|DPs;YyJKXQ{|sG^@t|ILzJ-j)wL5=m30%R55vGv9`H zrl??3f{!VIf=7-Xz#wj}v4?Gml>HITXu6t1s(&SJKWZGDoKG=CKHn46(9X8XYr<`*JeAwRf*;O5k>C7M zE(e?F80^6H6bVOSMA*+4pOa6YZ3q%zpCmH#;5gwnD_4YT-o#q%?U`=AmTL6W!i`Ew zgc%o|0Vf=@gP!mO;$7H*uIaDOZyqPyj?Xy$<;i@e;6%buYe5ks@GxQluV?pnAjXf( zBqQC=M55}&mFx1j)a!`9@G!iSzuY+c9FqW^y`)>fVfUzj~h7%-_!5%TlyH6B%1Z`P`?b=JVhU|643N<*n-Lrwg6& z9J>?7)OlI)Rbg_KNY)#8Jcn8Ouv3oV-FwGz32)0NX}<+0x6}ZT6HkVl=y$|F9Vg7e z!!UT=WF7N9rA{AHQK7`MB>aw)|XeEX<@F z7p-a2s(zN^@QM@STv>i+zkYQx$0)mTJ(6q%-4$kmWcKcS<9r={FJ8yF(sH6kL}gh4 z{Sd7#cbGy~tw5^pBeQ@m3zFy;Eiaz>U^7gEM6T1W$hVWoR*$CKJ96IR0g!mXfbG=I z`}O_rLdbYskAbUIGqVuL3Bie3S3aJoXFvDRgX6Nk3)_Ag{p}&gduI-Od3)Lp{4}_T z)&2U|Ep%kouBBFI0&uO7o zOFuu~DTd~_R{I@_VRUawd|dY4wcuslNw$d6y{1TCP8!@b@n}DZdvL34_UZFL8o2H- zemsy?<#w?bd~SSOah7d>Xz(*ONxS)vvZEX4?#{rRbn?@QUSp5+MwlX>ky%gVQF@X+ zzB=__4?$o|PMJ+C?f7XpDh?i`?a5HE}9)mPO#xUrwDoB1AU|;GCQ1E;W-1hMBElIDP`9imj=k%^dfG?2Shb z+ewvnPkr($cQ#WA3M8)!*NVe&t$38C;H>3a-M*n)pIL2g2a7~Ak7OcY^+ZF_jkSAy z&H-^NZRb`aD@C5TY*{~jX3q&{F4Ldo02?Q8o7fZYtLJ) z+T@HE+i0=kO$V1SzN77q;)43^%=27Q{WXuQ{ghfyE}yHTx7hEU@bEe_rb1);Ro&nl zu5a!W>@IEh6i(2JpW#6ij|VK~Cm5Qs-M$&mvHg{)@BOv9FIYMD&Xm8MH#TaTJ)bil zEKQCkY>!wIs#v$mj84A9R-~LTll($e<(w?Bqvi9E$NaguU95AbD<_+S!oG~s_GhPa zA6Vc_ic~eca+UgH*XTZ)T`Jh#V2R>?<+b}Y_&C92K12VX;*;g$ka(Z}LVG-JP+!(5 z#6EgH51(+Jmwe6#%h%cP#5;8LGr0BgAHI=moP?k9!e0#hHZHU2z+<`_7!KFY0et6u zcukNLfYOU$gv_b)SquZ*^=wI>WEKPelnq7S+m(k|?Q%fJ$J%jc?>3o{St~W}E{xgG<8Wo;0Y*fA$gv?%2s0A;d@9)ppkPn9>bB zWwCT~{CC|@TA){L71-c0t)Li8;ifJ^=etc%U)Rb_pL;nwBCb-}+7j>zxep&6Si4Kg zz{V3ASt>s3dqKR*UCpMX42t^iJ4~{>+|%@H-H7?Vwzcy}v|dqSYVM38yt}OI4;ZLs z@;_o4TF}JLVQEa~SW(!YQlJ(3gQ6T&R&BJV&NNe|tQHuUtC;dqR{R^_kr%p+$#$A2 zdtr>*6uH?>_-9}vu(6Yc3&!RvhdM794h~@6PF%cj0k3<^)#pUm;4X>#^WZOJBVQO@ zmCW=Rz~+xt!c0%^Gm{fEb%@lk`7aC(h_k5XEv;WpD1>8l$e=(CVPUmm4ALEj+*w2* zQ~@nfEi+(j%gF8#3SN&1>YN4Lis$fThm5h`Zo%k<=X5$KnuzDpppCZc!@D%#3z<5U zfw;;1ZzlvDjoFDgqe8eyAGGb;|7PZTPAR6u{TW4wv02|B;hWfomeapQkN&*39DvyfM)= zDeJrjNmr8a`4<9YlHy~(#xf?PyGIXm&}dn@>`(*eHXny190~;vBRRGR$FJ2OAvjl^3U2iwKRd}T&=X|Z+ka!EXMEc?vPQd63-!#3iYR?+g-J(uKL z6fUw%m!lWHy4I?FgI3g5kBY8F|3+`z*c!BS-LpGF%cT4E)6)=YAI8hGojxag{b2%Z zb`UQcQBBYMw$xd+{r@=}8U!wEoT{-JJiV-WUQk_%H=Bo2Gg?MB-?>}RZgoOUy_ze# zk;Uuy4TWb?u`#AX0p68bQmDK=eacK2fiOwj9-`+g2{JfFE5eL)>&p1<;6E7K%&6TG zTl72X@J79QBgmb7m*}d-PdS=${h^jIe6XKa@^Xnr;ct-WU)vpGtu#|lMf_yT@Q&#g zrqF1_>SrH|Mt>GKDK)Vh530o=k^{IGtc4DNOv5YlOzP#&hs| z)JG71d)5)%Gu-7y&SDW8X=#)(OEqM7%BO)^i~J)GfW&&U368L0v+peU`go2<{CRlW zonQU;HOfCsWGBgi{JTi+VIWETgVYSd7%%w!lW#`>FzoI4A6$lwPN|rp~>1@8!fJgC8$BY=lN4MG|*v313tpiV#$Vdky!<`d}iBobJ4r+7r*h}&sQY* zWtKp)ix;*}+oL(8&iI8h`ds_G6f{eW@S_RfcGB=V4aIqZtGGq+oCBuS`z7_lM9H4i zreq%GU#D<7p<#veu12Zy2z9#A{46U1N-^G$&(J&UbswQ4-I~&B_#yHsUsx1y!6{Vf z9oV1-DmeyD)EWP~rj$k*MOY0cFklSmY8DHbqftIN$7oF~PaGp|qaU@?AGXC6mTDPy zVOn2lTFZbo`rh|;i(?I#JhwO|fFQAN4S-RwA9OnjhTlEbF6sgOTX@nSdWH!q0IcC5mN;`o@J+J6!X#6!X+OWZW zp+!OpJF)?n75~CO+;5ZNR@VA^?8Nw^O$C)hm1v)_1c;5xdYtQ5{})nZ=B|ZgOpDqc z$B|?5oZ-bAyB3|dKv<2@Rd4x%B*_(f^()eAV{qTCg)own6d;rjwMk7Q{pAC9n-I-;f5Ql=R_^}B@aQb};@E~BQ)8Rocn2CQLTg(a zF4Y35FLSU}crDvRd><>DmsO3bw<$fDwJrLe{bDBHh=>9Aa%_vF!36e_s;dLu|LOw?u z54GrpZ}1-HmKt|P6X{8uSvs@ajFtU>hG~y6I(8Z@$N#banCb$Ha;wqZFW`Wls(MoL ze9mI`Y!LH~RXF1aOy7gk<^|vSAYj;*bwA=GiD(rX`Y~#IrKDbYUt8*P<+p8{dq=P= z%}LZG*;^$$r61(m8q63_MTGQTXnf!8NYV=*NVlh?wjcSLz2kHW5xkNOQhrc5(7V} zIv0Pj`=5LdKzr&LlBYt!Eyr6~kAJWE$tFAEtEnEzIt6Oy22KCY_|Uma8>fmq|8t*j zoiA@qeO{)D(|wEi;7Y(O4)-(Ui#9FEGLFRQd`Bxh@&~&wy*Y=swP-B!Ti{+TwK0@5 zwD%8qx3qz17Xiin=!kXC9OOqoy01hDa3hV4kZHXqS5ws5g5TZmLgu7e(2l`FkoTq+ zUWVQ+Wu4p~kNNvHm84Najie;*uJfS6pyt+{XK~#^F{sOuM>t7Vntva;ylQ*!&A?oK z@h>u$AIjrLvsCvr!M$OSqA`;-K57?y$3nb^Gpp-uOcio4C%UZvRCSzj$}6WBb)u3aX;E& zX^xDa`u=Pck_czIs#l8Y(YO30`xVF4aIeys+NYnVul&}Ql2CfZ>Uz@xO}U%nAH}lUgEq8%H_bAa zTHZJT4@2hzfk}ZOO7l*1XrS^LRPLz%)JbQe=^+|56@T;Ckc||k1K=mBiQu#_LSJ37 zr?CvJs51h&Abd|~xOaSiL6ctaQ$FR*G9?^wZmr!a=BrAZ_22iwF2Mc^aFo;S7uXTJ z;=Sr&ZK&e&Q4POe>M2H5&{nj5wL*-I?XSTO9xS-(Y#vg@2Mcab?cLT0NE=Ume{X8gJP$2$%A<$U& zrHCO>%wxbMQ|ct0>!!%JgZ~R^Lp@WApJe7j|68ZZe`0*tkpg)q{9gSnb*XlFDy%fv zdeb68Lv6bullQ|8J(rvN%WmaIICdAbBJ9IiOAa=>jm^l;pm{0-L0I(C2TqEKv?BY-?>9enZ(Aot!_!RKF#|h=^-cKM$-MQ5%%aj z>>=WxS&y$42*~~k{Eo2izY)QF-Nt4cQD~dTUnDTj+|qFNu+l%E9t95kRJ)StaKD}< z0EkcdA@)@ot~YJ8&UcLN)Rz{wTCGrj-RlR@W64iu56HY>c3<@p4Vs*;bebETVV4!p zS-vMECEyXxNKQ#Exos}Bw}%K3dWanS&vRt5L)R3zP?4v4a1(0FzaUcUv}x4OCRibn z@g4hfYPUso&Xt>s=`@4&ACwlod^3X0Iuit{$#^mO%s!|1^NS%X%l`F`k6X6xH9>mb z(tZS_3%U`{5pB@^vuh>FU7M8u*xj_x=I!4g(%Ck^#Zz>~sJ{g-raOzYAN*jwFOZ3R zOFQJ0MWsMBlaP)7s%gc$hxf-1ekg7c^g!jKne8nP{;X-`7u*pXs<`7xeQ>Y*fUgX! z#*A~%`Y@-7ji94{qB7nLT)v;Y&=6(lpw)IvKDVa#`1fkvNyV5C^ z$ru?(V8D5ksNWdUAAm=J*1;{`8?>&Z_YW;C0AFuE~)0 zrTs8Fa>o9-Bi2+g)kXYQ!s2xJTG#5nxwP6em+GS|vf>spns>}kz4f3=#MsNBZ228Q zTm}LHXq9HC7OP7|ehx8=JEk~xd5<^B$+u6$UY7DqpU~%;(bXkYH$t4URd1Ap)IU5? z?z}YuIrw0@g8`+QoW5g(zxHQmbs|;;RZ3)(vMxDRt}-^ z6zIY`WgT@0FL$$EE-MKBXRRsIZhO5cfw7rOv?jhCdSBX4?$Guc)6@Yv`YVGoYRS6D z3%D=79si7W1n)J&n(5R#&`5Q%dci{;wh{;ah66Hix!#)v3K+=#tEgrg1)_*f3st-X z$he1m#0-ny`hU!wcR1Gl|Ncv4MubaQ*^yi**_2TknH7o4$|%`nU$XZobRi=mdy|nZ zBU_o-d+)t}FROLeeRqGqpYP}R{oB#e!Mp2vy`Qi1d7h7RoH^kprLmoS;KdcjRlII) zJbhV(Yn^UlRcw`-(6Jb1;-~tfYF)Q)z$upd70@DjxIb&jbj>oTxRBv?^0nO(Ck4}y zY83do6+sVQD6@kguoDY2du%ZOsO8k8(aEe1Sr%AL#a;wEi+FZ7Z2QHZI64+6KG(CAVH-Cz{U!lx z`$~jGzK6KQ2Qee7kiSe4(RJDah!u+Hz)Nyu`3WD~+@N16k`mrpYs{-Svqp1h>A?IT z4&)5U_;()OaSi_ZqvST=@Rg^H<}jJC`A6!6oc%Z0_8Oyu7oC=ue3# z=R1hE({K##KbXN40UnfDUN=|meaeP@T~yA}JCodHMv*}yHzCX<_d5DKLsi!g<~v9? zEXs#FtaglO%U90x_hDr@2jTZ2jOS~GkDy83vy(BdKJ6iUrjGeGgNS|GC~jL+M(cZL zd5Ka#fzKlPtzSe#eIL7}2{G&rNjzX`5f)VOE<_Hlf6A~W`&G{{61p*V!ZtnlN5aN0 zb}OE7M1N!J5M|qFZ+LNW-#bdf6ZSMU(6cY$qwX)mDImJ>-YE6-TDcv~x<)76)ahB{ z@A9xOA5b-Q{Kna#93mp^&*F~u&SInD(dzKuY-O|rUtGDLU1VS} z^^BMMq=96}Ywo}9uCz|NmD@+&+pv(BcuYd-G}9346L<1FB>>*v^k97aVm zzeB&C5rnTP_33slrbk0i+qC4!9$n))My{hYYUTJBd1n-pm}ugFm~eYQS7k}O2=T~^ z-5t41e?B~9TOdCO^8wkk?}}>ERBCDigVsZDl#pp=!;V)?uavc~BF7r_e>IS%E_M7H z!p2e}_Y||_qYgN_!U@Q%S$syi+#3kf7=oVCT#~E%ZpbOiD*Ymp7+z#+@0n2q1*JD% zPf;7;>@lD;8r-7+vBj_WUn=lgbx%x6QuP*0=v@iI&ywuCkY$(0)#g>VM$OZ@^!D$> ziwEyGTlC3oyo0jSKz3*Z2f^6@;s+?UuZjheSGb8_S6cPUMt~IZujPxBWi0ZcbmjDz zW7OVFr0)uDyWEF|VlO6IyM3r#>=?mBwp9HveILB7+ON7;Nqe~ditvN^6^6_W7@brpNx2b;Z?4 zI3#SO+i&LI(IU?b!mk(-A%C?!klNj-((hXxeJ3hGxl1#*n1)2U>_ij-8vz(#e`DE* zivP*7F=O(58s*QVi>7$Bo5*|}77E|u2*^MeR*U^$C0Rl)1<(kJZ&p_qUd_75{f4GeGUG`wW;=)knG?zP4UPQWqcboeqA zN0g#52;@bNz1_^r`7(gX`7miKbB=gP<$LKZHBvPFWu*8O!Rud$7CEX^cpZ>h5R#q~gQQzmWg6F|mUS6t{-Z~9)1PqF z5GENs2V{Y=0LZ3e*XTR$Ac@0QDPI|I-(O(M){yepSvxT(x)Xo*L&m4|N~V~NG$Rj! zPJCn=SV+UFkD6nRcs5btRfECwbRyg5SAo}I z>7hSdmFzsB6@F)U4Dr{!wPD4rU`z(#uW=P!>)u?PQRVzXBH{P<_BUL>491yJ z0V<~ewz_AZ;l&P8^sTKzxth^>J_MVpg(vS+)zzSH0ljH|WwN{O_rl@qT}5f8Wy~n$ zDhn!v{N)XlVyH?uMA5sKC0qzFTF)S~Mcd=(Kx=$(y;2# z37`EU1)HiYP-DhKg9pOHQ>9K+^UwRs&DFd4b~+x{5o{)QD(C#$rHSCzrO6sEw@!l5 zpxRl?en_Eg(3iu~14r_5_7&M{N=!S8hBr7F{3cobA_?(VZ6~pIKeweC6NdxnMqcL+ z8Q7hNVV^ed6GZun5t$lx9qnuTBw&W zk$a~g>Wkb4$K9qNsXk3p4q>J)q$Bi~BzXDG{Kd%H&3*>K0o;2!^9alCX%271D$+X~=fFM&~%Z-eBrzB)(|)sZt9hwTDu z(9TsmmxFvtVy|Q|o`kZ&@B%#d*MmksVu~f#pyPiuYs`y{ zua}-Y0Q`gc3oZb`Lt(!})VfdAuvv2&#hj+zqF=m}$SM$7rV~PL_SD5xAf9H1hAfv8 zd0+^gToPA)#`mK`ru0{=hRPmRLrWIWyy$AhblMMY3b>P8Uzyiad(#scdAHo# z6=YwgTr#+sqmEv*9&7b*_vMkjR7&vm{-lPeF`H9&480!rYtW)JPtz+aoNtp&4qwdap9@sV}SMAQGpkg=R9Z<*irJ9`FAc;X?)OUy@T1SySK zZtDK;wj(Hj6m|sh0)~JYGlEn>A6MOQ9qPB(06N1gQ?#xDMSscx|9FFPz<%<`F1xw+ z+b7nAxz8(Ht&ig1&-7`%H{oJ}-J2H7?zXxqjv=WE6XNB!h(R9Rt%Re>UuY*<_B7{5 zCwB+NP3qO7%}CZ?!zkMiuk<5we+auSUOaIG3FVspiy4%oC80p_f=Yl^QPe;tT|-6; zg(Eg1!mO-#f$mPekeUrT`xBvWR?wF?K~Iyw z(QUnTkb^E+=!u2rn}mNFNE$^OcCG^3(f(==8v#9&jZCmlJ$aPXX_yDz(5qouSoeh$ zv)s{aiNdv@d-KJQz%FB9|IQ84TY#eBqhUbngg{3ru^CB!&DsH$?WSgZ>C+kC88D38 z-*`xr60bQ~K4A61JlKZ-$5OZmF4XGhC<;IL;OdeT5C75)8q!1P0(S{jR9EW8YDMP8 zdcHPwD*TgtnI@K5Fags0w3VH9x0!db9gUp}t>W%t`eKL&4KJ=RA#P>LJUV1_q zGfd7cB_kz-pIZ;*2(FYSPk@VrFLCLda?qJuBHe5CkF=jD%|?&2PN9{wbpGp z)-!wODDb-P2L%p{_K|Vom~I53O)K#vFMcI9zFXb-qr1AW^{6q%1=N`VKzHX2cbp&z zTY|%uE%D&WSMRO>gw?myE7*ltCAK3z56)LG`>Bm0hc`qO!`;V`cNXbrP%p>lL@G`| zs(8pQe=|%rWS<2(#@2w- ze0C=$MRoKlUz>h78@#|I{(JwYEvw{y5~Yg9lZ!*5t>P$(a#u9DSD+#_S&?xfa_3b; z)H7?N70h`}rY9Def?r&OGs;T&06EhO!TES_p%JB3o_(bU*>-SWv2b-EXJ`6%#tYO# z<3)(2H7%3rJ+yN*2~C)gr5b$Pe7evXhWeAdL)prCpUIH;ZmurYoW{LLKHIC~VfIWC zq-+xKR?hmPwO&Ao2Po=ga~^(A%ufJEXyg&LtGOjt?@0w+f7)C2VZZeiKp>eiNvTsz z_2+2QzsVGBMC_8YsEFtw76e%X?bhy&CG9hA*y$i1(mvC zW=`f{*`KGZy?V9ib*0C?YOz4#GJyCst?Q3m7a?OOzj;4tna-O{tfxB=c9%n=M=`TM z8R;mhXnZ>^(!$k(MV_}bZ{KXNeY#?Af$6_ac<(GlQ$Jh15BK{rE{YbsRXm?A5+uU~ zM_CM|X#er-4phIdri;T>NUe8|)8j{C2BMo1_nUtkHo0G7^A}84s==*c8HP_SP`wPr zK0NPhew<=ZQl@~K^wu&X%L{YIj_Kl$iid3*@ko3}2VH3V3DjlAwV!h>X6}--+eoGJ zc2@;F8%isAtd}J(MuD(!f;%ZLfOWLvXqho)s9t`F zI2tK*_LfBqmJ;hxp_HM*+q!MtJU%bfl~3GNe4}6ehC+A-Li7M?$e{T~=C zzN2)7)vdNyzS_r+ems z`|5|dSb*iKLh`8bAI;vgSNz#H!L?aFb;KA4;gUZXCj=k7wmi}T{^e+~vIxN(5^%xX zmn_7jA7^p56r;R(@NF$J8&kzV2{)+6DUd=2$;CA9Q$g+R_{Dp7jtaa@AN4d}G1Del zR7IUEB%XWcIg@zF+!j8*f+M0h5VbKl#OvN!P2V z50kDmVaAEfuUZZ^BL6U0cr>SVenWO0rcI2?K`RO5PksL696s)g?i=`Ktzjb#0!;E3|5k)=) z>+6_-QMkzIlud5--F%VDn7!xdCMJ9K=~Y{rZnU8b1pbAKg#=i z%1hv&kR5yNH4ySKL)p7hbkD=#*VbiLVPAdBa0wQBvm6S?F&8N-yP^X$Fo zBMQWFh=gLaua}OJccRFwfT&< zRa2ARU8Stni{{x+u$pVBn;`Y>xjCci`OfDS73O86{3=A^Lahm3o}UOKU|p7aP0Eu2 zO)=_#db?$XFFegC_M5~u^0`^3vT{7M80w^%pR*Bd9>RtBx{~_ICmxCA$FpZJ9_ z>?F=$E55VwR+M zliT9D9ZlQnYb$V!Y~z6qi|$F0wQUiz_$dI2*r$G`YXR!#56+76dUQTu>)giwjJ`E0 zDT=KbEqWhZTp2V*)~|KJ!X16!$LBEHM^O+y>~bIJnxGM-A83N{o<4Se%x9`_wD;f{ zl~=u*@DG44l_JNNfL0%;{=ac;<^cCVR~Lk7ds9*Es$+|d4rnouz_shm$au%V&h#?v zG`yd?#pAu`mFJFp&1Fbdm&{VWfyn`}z5#`!MNCq;tX|hTxp#z8R)ckyS0`Kt>v5m| zzO#Zi1JnOL+?>e~+xv4?+7bIR;Ke^$E2N4v1~t6D?u$S~6R~gFFp*2MAu_nSGV}1r0U#9aSW}yrF;%}CFh1;#J#}m*-rE| zo@Fl)Gd~h-xYr8d7*$3&dRzIRkmYW$Z1MWT!tG&T&#NPz$d;0WT6mP;T|Yk&d&RG` zb^S@v%yMT&t!$e0jxJrlOEBFx%J?@%MjD*>D)~e`EG5oBz7*6!$L0qRQ}oB&cq${-hJVpuA`O&Y8Y^)o#ri3S zONOq$b6AwQ=@|%)s-1OXql_KZ89*|M34?NLHz{q&SQZ*wyp)Yld}g}lG<)a#oueDb z-bu+^{or+Nc4{@6n?#}Z+F<=ms>B#YY0lGZm#n01^EWNR5nEc&z5bFX)gQvAivjolIx#fr32BzqjTX5(N0~> z*hAQy^3`7hBGj4Ux|KorjnF;-KlzUN>HqMzL~)j(pNU)(s%cB+DZgW4ytPg@_(({5 zdGfRBz29v=z)$+G3>F4kFT8}jYN}K9KdV+jQ)U=qkIEqPy=FrtkFOJimaTrlQH18- z1J(+zmuo97s@ZXxsD}~-E9RRsYdw1?4AYh4AGZ%JoA9JJT+elkuICX)%|0nAMVS`F zyZi%)3n7=g58_gViKP9@IpUND%GVVLb<{FVS1PXC6y^x4Fy&e_riH6%Q9FyqP-mG$ zJDgt8S-~c)Z1jILNR%oR-w5ZSIy@@E2Obp7QpLN<=T6g|mtp2S(gONpthsl`0KzXs zv_F@!T6Y_p+H4nX{ZieY$wEarQjk4wWrHg|Z}{#dbX97%PG-_~$HJ7%uQJsg;68s6 zDjFn8%K+{3U+q8Yx#z$-yLI{i_emoELiwFdDfT?yO=Nh3!~yRUxhCoP*pthGZkO=X z$zP--oh#nlt1zL#D*&vApB6ifu0VL$J@G8Jw9))4zhH{_D2EKeK*DZIGNTU{P&_k7JR3(+vxh= zC>JM%IGS;Y@)@q18wdQ@j3yg{atIdxVC+qxd3n-wGtG>4Jd(2nDWdeRP>h59$B|6Y zf$5-}s;1wE7&<_U|D$;`ov^*+!G1SdnZ~zJNCw4^p^#j|G*72F%-%Ry*WE}r>ZJ%W z!gigVkJhJ-RB#q+eSq58AtcG436}$(W7YMbPT6D4#q=qi;kB}snvkgTyM3BBNJ(OJ z)Xx$&hQ6Hn!2i`yLE^V=fYj^byzPl)?3NhS=B4v<2K92YeusI`o2yJXN-AEa>a(}! z*ukPCrrzFs&2X^vlh#3($$cVBgFEE^0OQ(JVOw_s`H-&$lN*7a z!KB3wc=u%XN1OY=@4b<8mXMMd@dq+R#?5nxKanZgES+({-EEKhY2ht6Ujwk>=N3c; zjK29d@t;>6#7{48s)&(LQvL+}d^t~r|0K=s>-+d=SKMd~wt@+y$Uh9)C0a90 z15qJ`uUpd!3n6#CK9c`!_5(AQ>6xjFHU<~(6HYodgqshQ6GHd{`nOd(5?h2rvvT%O z;_aX6Km$PcOND(`l26O`$gTgGM&YkuIaATjdiRjIw@~9p^;Yra<<3z;x7R**nN*E$=6=2(po%_(yo2=$gt0n) z4ZoPBy*hD;LE-L{D-mF@Xr0t+RZu*KuzoZZGiQ#o9-`%)dIHtq=b-M_;^V+{_`ZkrC)^gDF^NF( z-aYk~LdC+k5)FdijNy~~;rQ88zPc#-OJ`Tb`_s^Zkh7yd2F+ z`gU~(|1f(xEci6|t5l&8+XCUXW&$n?SzdBSqK2r{Kih?*1`UotT1%m3@oE>24oud) zQWMBTdN8|D8NpplWjFRY6tboJ2 z&Y9z9$misg1D_uyY~{+U?%}IU6sv&FjYoC}5q~mxjOh^b*#Xr&!h9w)ei&YQ$Famc zHFR!rLNk@Ny(GS?U~8@&H7D`Xs%sQ5qppSt31te`IrqHG)|64S{IPEpzdMInNR7w# z_?!HJg(+TJPCqrP)bJwt^AIk@V(92Vo1(i+LU-IrrqqD#gv<1_Oh<*$0FDc|DDnRD zk=gv|GIUE@Wisz;WGA_;4C6h*xcU@mHrd`_P{*)Ie6?zZyws1tp+ONAdOo>z01#Ig z2JB{7%otfFX|Eer zX!ym(!osHFaigH&)V1eT-mxq5k{~{EE0=C@Cx4mc=)*u^-D~U~mu?m$^4#>xsmkgw zjh$m28l1Uc@9|ddZ}%Q|t7{iOx*k|GyQ)RZE2(x)d?#0Egnk}@VP#Ba9@V3n*Qb>} z(Jav8U#X{7x=%=PruUfZgb>KtefJGJ#fku_ZWpF^gMB<_7l z`*DzdkfJ<__jweGS zZXGotrSuVx%B}^&GSgUtb}O`c7spreNBX+A$Jf>$!ZFf(m0s5_lo?Z){LZCm!(lgj zvuvMiaqrV)MHYP003Ae0-;jRdV+=c`bLQu1gi! zSb;`geKB7Co!HIjR(&g|;Ezy?(s;!mv7T9B{SJyNVk`L1gu(`;wpi<;(2DYh{;!4# z6Iv9ZRivV8)JJ?NpS_PmGv33k9R3=$Js;Mb%3vJUEKZGP5);NSzZJ`-$|rR(_KdyG zRYtxr<$af?=FM4wtV|k?Xqy;Dj6Isg=IxiE3rw9QqD9AWFH1O!4SyENyFVRMg)#F3 zKU^$b&A~~K0U`4|d9R=Z31NU7Tzj8umCbxO{X*7Kmsgrb{2@?_jJw-i`8=iXAwir? z{3n8V%t7rcR@pXwERNMctSca{K>uW<_yFg4uO4*jRa(K76AMMoyn9D1cl9wGKmLxmd8=CfZy#QA~-PaD+%guyr0W`E(yfppfX zP7|Vqni#VH#U5tLYvd=s>b|Ddw*2KJykC{Fsyg@ft5blU0 zJTZ0R#pYxJ_ohM_y7fiVJ9J;mR^>t2>MgYqIr0?voq*AUr0MWoru|}f*&e+^d^k$Z zX8Ms95PP%TH_{?cgy)CExg=wSR70mIbSCYEw44Im}qV<9|oE>bP9EO zIVM6=Y0$*F30j>l#wiXM!&8XcHj>I{ik&WfqgurFrq8q9)Kw(QD?T?_(L-FR4@?-K zgCGWO)&Et%_*TaHeKlGf>W@{dM>dOtD%SsnnR9LiG*Md>p=(lOn=$0@x80h8;~w1M z9my-$`C_VG^a3O2H8%a&UIC?op-U<haL7wtPJ<(?1DqSeb+s-KNcwaQ%<3M_Mmi z`_}9iyjK~MfYuJs&5A&P0wc6_>JDqWYfw*0fD_w;hZ|{rS-~VEMxu()WX>i;uPj17cY7`59kj<;5b{)@4(|Z9Q$PmnLyHA8KtjWHV7b+3Go6 z+xzYoxt5I71AEyoX4R4B%_h~edLMSs&!&?mE@7Td3qEchWb^O!=&Mu*IByI%)TpQ+}ABQ2{+ zk`Ms(pz9CBi{DKexpY?FYOk3KGr}Y9U~(#d3ApNkAPgi$??_3c1Ya!Y}{8XXP_$$+bm+>Xp ztm!5*nQw05Pkkl2Q?+SkZ-tQ8P`;dRhqeym9hx^sUE80I5m<>8wVQgEJ%2TQJ`SgT zpBCPJW%HOBZB3Rr{fgjZ==bRm$q^1m#XUNsXR|)ML(HDkTR8``z8xAZ_Vo*PPqfC$ zYij+a9!DPz#GFk7{RF3VLqnJRz=N1Zc56?k#a;EH6O8ylPEF|6vvmD}xRsHb0lywL z?*7rRG1h_XW0QYS?mo|9N_fpj1k}5SOtkdS;ipz-D9ae`8#&JrVloNNI@=9Pa(0TT z$t#zh+FXm?0K9Nsq&@`G5XDom3xgEp(WBa%(FSK9FPCG7*JKqm$~Q<-R2;Os|Bh|3 z@8v9X-t%&P(=WE(D^ooWE4owUNqea1IHnA2g4ZhpMQck&a5g_L4&B^j#)-tCRk#cO z%OB?pkVNSONf83WKD>aBS#R@az$fDh@xag7Q=iC*58qL<3c?&?NU+Y5D%%1(@^@H^ z6_1XiJ~W0aKVvOY8O)&kJpUVX*3>AJu*wM=GFOwk#)gP&ery&Gs0SLm6XNb}VgXj6 zBK?`Kk7g`fP|vDrUTV>XM-{|vo5s(`-{B$qgYSZ5mmBn6?}U5PSf7s>elR8|avfKC zh^y%I?);VpI3}ufUpmz*{8r95uwGa{#UmqRD!BY!%^IuVmXnMZ-%7?1#tgFZm7;xW z7Tuf;Tds=5tMB_(|3_lR`T3E%z{L{vXZw-iu-Z*y+g7*d@{|L5B;O{CPDxyY#Hsru zI8qZeMn-X+>bFxu$b8rVDukPE&6*ZvMOK_{E}Wm9GcbTb1335-{DVeM7+Trjkx5#n zT#e{Ev|S9&zV_xcIxJn4EWqDdu*Xad+s3m}bLvPO@k;|`OelI6liT$PTCZR_Os>4+ zh2=c)iQ&7S)&RHL#@jnmqP)BJs1`LaqAhy@s}n`kh*~0FghBmY|R z{>j@H{LsVb*DX>4A)4nH**0*09bOzT|u`TnxR~(=pEFJo_3uJ+g2bZXH-S4JNW7zs`xQxJDlp zul_fu3wraM8O&zMBc{~p!ud_U#{`D9mSh+8b>e>*GS-*@D*tfG;H{BQIx`@$7BTWM z1BdKS(x+MQPOGz#{ZX{v6{Fo7=K7)A{X59Teq7`ct?=3~4dSU9($ZPWvxK0e|pG#tbk#$bJj2QD?BWH0e%_R;Bq4rcLED(JggF=5qnJE>1vCn6QAmpZ3TtP$)0 zNpE(0RBv9{=Ws*PoJXZ_nh4D$jZ2`^KjTtTLt`<~yk~lpcGc?bkrqJtj?}We=M%I56fvRac3{8Q=wrm{DG2qr4H|T`(iJ@rYW(0lIP78F z%Z;o*^cJkTlqO{r{Lgd83#;^%`kb%ESMu^~-k3hB_R+G`&O3$Mg=$OWN}9mL}c(UQB?c)e-G3pZhC`LoXf%TVuAMz1FisIt(h_OQue6*(qbxnHw&P z{c7qUoO%H2=O#PL)JhI&-s!chM6f2sa#YES?kF=O;%*-M+Vjr3Fs(}W1YpAdS=Y!8 zqw*)Foc(I?Y->ESc$O;U*nFCu!v(TN^hR`I?y1J_U7tLw#}Ano&jPl3W({^Q;Er1_ zHTOuJsZfTPO5<|Vp6ScH|jI|mhIyC>|x93)t*Z zV@z9hx5s}@`RV#K`cL3*rL=X2?!JH3-4WE$Q7|a4;=Kvq*;Llj(i*L^0)-fx1?>8c z{fSabG%@$=`?0Y2>6~(VVd%UZ-QFh4kz+=WVj;Hc$kh~c1@rEW{92VJM#Rw5F6-{h zZ*>as2-JhnZQLp3)cSa?G-okGo>5pt1mZNQ<%`^cA&rNPgy6q*z;(V@DnC+^Cyk}0 zJU0qjSsJ|}8mmhTXwF?MRpb*5l8aPhjOyb&yR}JjZn9a~?d?SYM}MCg@$C zF(X|is2zt3mDH2ct}v{r%UvP(*fy~r8r5g{kzHC8i7J4OkYXqc+hQZ*2~+X0G01;r z8&EhTxH!N};*G{G=ZfYB+4VMEj+{+{&HFc@tIJ!+B?~6ITnfka zd;;fudU=(3O5szO(S~k9$nv7eeELEbdGBS zUizuUS;>V={t*78fji0Ngkmsw2GPP(5@DbikN}IFSZT8KN?PwWR=+#ej#3sQ(K-528bbgMau&W!G zPb8b23|Z7C@Q|h`IRSagNuQ}D?)Xvcb%hrjrTuawd5Q`XUKwh4B5Lb0rDu7{*g~XO zlRPwU0oOSfhlHa1%mviR`wCmjcvUZjVYS9iW0+zrkUV$QhGe``V9rth{4t)2J1RAi|-M;v+=Gt;*t45|l<+jNF~16A!xF z?9p%Fq_&O_U0v<4rg3ida0`~()+VKif`KRa%-yZW9AjBI{cRY#%iZ0iWaaK=y{6en z6KQEV|DB8S;Co}Bz5CA0aki-CDOK&Z;|6#Cr41f0WAa#wG`&%Tl?2A%XXNJEph|AE zZ6C%>{cSI9)h62qGo1AH+u3h-wu)~=EUV2Fog%F{O=O^^*X-OZW&!>`n^mep@JmDV z)^;8!!2~v1ykb0)VOUxzXuAEApV(T(48-l2ga>)B-&&>x`%y|kaToE7DjjFc87o*h zOwbwLlAt6DsTUwu20DK9xVmb`FANa(zR8hANu}v9Pf4XF(!%~N+z1OpG<7s#{tu#; zP^Twa?+R*z&zR^HWn5<#<$D%Q(K>7+V%h@9da?z971raDG%l2sBf^NuYX$zCbWSr9 zPsb)`y3i1F#xlq_?7rybxaY`_!6TE9HK~;K-%-Es>I;`vmwSt+H*=!%ybdz(1raZ?C4k@~As9&t$ujs@ANO+p)DkhY?lv98{$$a6Np< z{n5+`n+ZD;r>kL`}yw_J9qXG`e^79}QL zj-S}uZU9)2tj1BT5p zXy!us_!VlUZBGVI(3nd&!`w>kSG3A^MOg4(EbH%m=F&q0=J89o3u;(auYXLB^f4UU zc(h#LGz|W&rCbU-2Mn^1;Sl`1c_jDYE>zLn(I^8V?79fN^YWUvd7ZH*El8Fu=2I?jZT7V5 z$LT%zlJJDrSwI|(x>@+my^ zaY5i@X&@wl1qr-4ZVT1PYZss;T{tnV>v6e68TvL~eyQbEb;Oj3lkLry+v_Dlj)oE# z5jNxs3;iQesTVA0s1u?SN*g{!I(l+`iXpzmx)p*?ScE0ZXJ>L^@SMPoOwd9kc`a@- z%=2c1Vpna_8i^K1*BF2&y$$-t%$} z%-zUj8=XKu0hT(czTM~JGltvq$c3ju{RDbF#`v`p=CQF|?!Hg%GL|74ac;D1zHR)J z1FM{RX|uVSB2&4$u^z`HUSU|+Hn4(hd2ZZ!h{jj1oxA^(7oLrGW*(D{gnJ(|wi2uv z7x_y=?e;{4B`&2k%v1dWV@06jwA0lgVdBonu?p@rAo#;gDNHt-100xRCVLBn-%B7M zF8oTDM9RSL+Q5shhBMkvIuRM{b7Re9{jX?Z?V;nl$^3l>s;sv&5AFw7(--6+pkMt-fn?k$5b1EM9055_FD`)#g7e;}~6PT)Fc2}eL{w+8*6 z%_UCm^0`!SEz3oYyPu{Qe#3pnzwx5L>P=Me9AkYi_{20eh(yfNWfofT%sGMIe8(0O z!As`^=W%KwU7MhNdo_@GStfWiYHpSAWaoN`qH~RyO85qM0V&00e4#3jR-8C}$&>Fs zFMn1Tp<%vI(tD+a{Oy;lxC8{6Mbq$?JQ$K8_RZJrj=8*N+qH5y=}9)E+#)LZ+6jQ1 z;GEVAThrxv;1eB#i&WkQ;DZ1t?BKv7B)v4mu-9>(mRl7*;92Ncui+n*a zr|;IwCC)CjF84Czg^w+$-D;D^aVHbsz<=t}|Z(B6Ad9)Cy z^3Y}B zru5aZ$#agx7!lrWlMH0liiMQ*W0WsI0|d7-8jeI@(*KP zFtLZ-MKC3ou+XY5MAq5#NrDPRw5SAE){U0i|0hG9n=2UhQuLHM_8!_WVfj3Msp>@a zozgm+*PF4Oih(mrEBa((1(;X9B!&@3>KCp1-C-P!V#X4a!m8s-dT zfi`yc@d@wNUTSo!RdeQU-<2rJ(xpzFx-^xdOuQ+GsWx}(LUQ2buLr%ciE?IVVPqYi z%w9ez^SoNej+nB@N|QI1|=j2XQb&m2K5-r}oO*i%1Dbqk>iK zL5-aBrMq{V0tCkh`k~>hBZg>EI(dY(>cNivbAl7)MPf>v+RJJrZ7NkBROTHnwb<&h z2-e+rWHacJ9JtOnG6~DV>_?+4ro{W84}*+l#xBS8a)U=F1#2RfjL4e1RKZQeb<$~W z^%z6RUD2`7x#$Gpv%enm2$WumpJf{^FRGuLwNfvN&eMIAlAcN;7y(74Y2T2k9Y2ZF zof(-~<=}OaW~iIB`x-AAg$ei&%oMYmUYWFgk_?gcBECU5RuPC?O&wKnYP&^r3=5?~ z@Le*Z&kpl5c#ZAodW51ZsIfd192132)?a1Es!Ld+OH_c46JU$64}ja52m)(Wjt474y1D0+UbwQ zd}VbasyS@kjbLbVKNX5u)~*lTV$-YkD5`L%JTsMs;|-Zh`Gm06hLJdz;r5SU;HoYR z^rj`lmcX4?4hrtOoqi={=`(3KE1fPMJruAvShy+W7rdDVZ#$|zhjgRsNXX%C*qtV{ zKz|#X0I~5YDCamIAt@(^tqQIJOLS&|`Hp-IG|cRd%;DLkzToR{Z~uP)dpE+d#sdw8 zX=ll@6YV}HN5kw&ZNTHq!kA}#o4zsxpF&+rpz=yk%1m)`02r9%paOe;>TH5CNWXXF zu}G6jsw%1~FfU1NaCefFwoA$%UTUA{{6}WJ`8N4m1$#F-Qc)n-{WoX5|Fik-HF&LC z=ggk~&yV0t7KiX-cW&-VoyXb!pSET1_S){Zc-dSf9i9zj|a1zLu7ZB z-V=Yv9~8Xg+}+kYt{XcK%6aIVs4`(BdA&elEUdV_j7K8-TC9n~#~}`uxTpAueaLt0 zVu|1;^GL(ORxytg^4Px?+*(jl3N0y5$L&jx0lt18HW9*8NskcBWlG^;EyjXN z)9kzanFKXJ_A0}}7tD~HBy5SE=JtYm#Mb7A{%o`5gZ|AGvjUB5sUH}@EF-l--z2+r)(r}X>=861Gb3UB22STdhNTXzP$L- zAeUDv{pEU0vN7^IY(Dl6yIF>WJ7tD|CP@B3$YZT9k zm|erRAzXGj`&xt6S2alrY52_!>skR-;EShg8_Aa4sM8waGTJmL(^YeOY8@+~0yK|T zp~a&tB)QPt#L6)6GaG)Gcd~UR>DU?ed$9&Y@lA@y>=KbBy!%$MmGVk`lLc-2HY`7T z(?-E+QBo2hE-b?8fkNJhCCf~O z!8L3bdZlR%9x0^)BFnK;s06VP7vTa|aGoVFEIuNBt&3k}Fh|YYD#pw?t#OxcXGn0e zJfbFbCJOgU+_~Un<~EPv0PR>v1ixX@gzy-4xfFpNDYlGHY#|nS8ara52-)PcV&17W@sPMsSxoQv86Fcj1gIx<8r2 z-8{{84>YJMM>>4aU2bx~9+NY*FI{SgMny@Q(C`fy>-@rVi{7OFHs z=}l3Zlt>ql4$?uTNrxaEf{KWM^b$G((o5(NT80d!Ag+NO7cDw$qEZv(e&nM^M+4D4CGACaL zJI!I$px@ClEF0pO_0wN9vSG92dWdBNWj=5F^|d0G9fZ$cvhUbGF`Viwy~KM}=c1AmJU8#$ z^80HX#Z+En&2}m{F%_+x7WjphRMMjPz{u^ZHQQRQld+S&*mq?bz-GdnBJ(c^8{*79 zSDySA3vlRbbKkq3C!}P>B~yQgsfT0vXW-RR=ZK%zAKy1y-lZ*m{_Dnh%B1l9gA^+I zXR%8KQ-~t#F>?jARZAX<;klH*=Xa>@z{l2GF?=D_gW;vW*^2%g)7gnv8r@Pgxv3Ot zwiS)?rH{KfJ)p~dj)Mpza0E@0|+)RE>{N-ayZciyY= zoQ#oKH`;_k@c4VwmFf?xU+6obsYBN58Y6$xRX=$9m&>LzaWYm(+xqJ9+!nD$i}P+i zPsLw;Fxkg>SH@p{{DnX5dVGXB9XGy4Dwt(5=YD_GAogc@gHIF$`kj-RXpFn;_93emK$GValNVUFf?FYa#$NHUd!MU)Q<5S^vp!>m<}WwO(6k%Y0*C&Qy%s zl%eHq_@?Hy)E3A++e_Op71gViE~=qXSCkpU!i&=c)%C?CWQ6aNhZnKP4Kr>BS_+aTu_VUkKwt<1@R}a$y(+VWkx^EsB0@Or0Q#r6{JAIe@ zO+oLg%)7?=$h-=n{4?BZuVd%lyU!iNTZWf{fg12hcQwEjg~8dB9BfgPqO5=#>EX|~ zThF9+7`Xma{3C)NBU4mp(PLBgYo;9YAiip~L2nolpKlpjT8}EE)R57@igz%||3{$H zRKa3)D9inPKA|SPj$+>KtLM*7s~>CltZpqU?FlIjg*dp^bf_FFTyNz_mI_HH$|X&z z{$ds!8>VX->7xwzee_sYceeTq?Q`?+^|K#(3JGY!d+?1(p067~Hj>G7sBo{IFUHM? z-Mh7l8+-O!0AQ&Oa_nMWA4R914^^aNftxuE|gO!`Bnkce1WP#28& zZA$ajsB#t%EWegTLb8;Szm)YcOOZbtBWfmNqozY$u=VJqt*!Al>n7FmPL)|$jb-NB z(QT$FBbyC;KK8e&*b)F6dDx?0)t2QRWI*u=pG}%oD8S?h+q!B! zK1GQfz7FBtK;{Jpj8=-;v~Ng0w2E9ifpWd?BMJ*CFe`|0t$!nk8K;G$!mNc~n4Udt zrRpLTj$!*=KYZN1t8DS5x!lFTIr$>>kMrETETisLaeOSBNCshkpP{^Vz|}TQ?VY;w zNW@HdH+ATCcVagJhYK2=)jB;^HZm_uu<%R8_wg6|z%-}blqBiKTOO(2;9e+S;;-Xj zTziS+&wU_5h(8WC3wXFkc)L}&6J$I9Wg36oCz%SO9*;#emEW5$zm@1t7+JWncB`7X z%b=?5^8=04Vw9VgDs$Yx6EOw>PB+#^6b5~=sbjjy4<}S~ppJRY)zcce)pInRA(GC# z*rLoF`z^uGZ+oJtMw;fc;rS4fa1_$XOB{`o*sg7IACdL1zAM`s)PvRN`qcS54qFGH zQ_osHajLqmN7VDBh@%OPb2;^I)}b?1(K_K>5oBAxT4!3y$X&zN_pHmfKo&cl{GJY>B0ra59dFh8ZR>f z4*?v6i9Y;~jfpHD9MD*oR($+OYFO(D)?|Mb4<&GlI2 zE5+lB;3xB<5$IL=^QH*WEzw`dAK5mfjykUVzr_i39d2XNYwt$lST*ZFBi zRQl0|c8=?8vXFc^3tnE{iAuxP!J!2RepzB$avc0Q+uIyc=*RNmS zk*KgCb5>bU4m01L@)*sf*iPtBRX=Tw`Y#j#RwxlHFEsWTB;f&~rl$GdQFPp^JvljA8_R;>n~er`5C~%h%WRs`T^$A7lEvq6aRB&$x$@ zD(O}}1cPkcPHLLue-GACAg8*B{WVSw>8~S?^yRNf{FyH*W?FB=t5R}qyY=T2YsLQi z;fVI%p}H=dCKcxLZ#Ga{2OqumVw;20j#J8OwGkAudhRx8cdo(ldnb=F6`twB+bFq( z!$)ooaDl?h0iXOr`xskYn?Of@TY0qM-UmaG;8mMpEbZMm1#-l`O~`yPp2xW*jOxhj z25O%k>>>VVzP%>9MV{_!z0GXiP#H{9JJ6J0ALtw6-=ndyadG3;SFc{3HHo|$c?tst zL_JLWQ5_fz?uO^{57aF4MMXy=DM@W@XMPLBAN2>=cnRKOadFinf4Q75gJ7(l!|%Dd zaV|OmDJiizlT|r$%a>6DekR@Oxxs|EbsL4?lQ+$@3dFN=eG^Oz?CsiYiBMEeCFh}o zcHqf-+0_rhP;7vgd;imZ7mv13Y?{6nRD?30ORnnCrpg`?5Tv@ku{;E-&{bl$yNS!x zKJOf_j$Pt(6Xoj;-E-J{ZQ%T*Q-k>tyY#^(qP-f@Rn&(_jQM?;GoaR(n6p*xNI{~) z6_sIQBUGoPG0q0J4rY*<6`||EcxvHolWdLkyc+wGA!|&_+9Z<=WO<`zIbS#lk&~01 zT_9=`ihbkrs`E!_M4V}TZ7R%?l!+lV%&UgDOu87tG8ChR@cMr>TyLig_)LKAA}M`ER6Zr}8Rr%$&6-#vd87MRmY8OT`H}3vU7c z9iJ!+jQq-H_HbInK~Hn?r&5Vbq}+fAGN8V>Iv_+dfOnM?Fg^(akwzGVrY1@ah2|vH z_O_dWPKp;L%j~}Kr&O23Jx%}lf!^8Z zH8M5v!A7AnRTk=Qcc-dWZoqKh#z#w;>d;&oqSHNKEKB2uasE*v7Jg|T=mWzdtlD2L z-a^9c=zs0=QSwFU+TZ>P%?VwLMY~UQkiebvK8nX%F7My9?lN1z+_MD?9f7Z9RHA*a zwH=j_E?TRdHC>QZm{IyO6fJMP}~$Tj>&p+c6kgErWSIr>F-AR2rIhI=@n)PI!?X3 zVuE>|>C-zOXZhr8_U!CW0(Ou5+Yb&#A7|6a9~dpKSp^=$&*t$Uk;7+##}6E4c;n=t zD>EHeJL$juRDei@v`M>6T$Q*?yHUWYk;iGUf9=o(@TPZXhkde^N9g@$W zyNTiBp*SS5fp#}&!wWWbX4w@&q_g(Hx^000f726kkc!4uSri|O*uo4=I`H2ew<>Pi zgg!DPqQpYIV6KC60ec0rcL;k#PUzt2ai*9ktE8z_o%d7@f`SQEVLoMf+-oVJ)PV`< zHN_QtaUZn#-F}R9@%W3=GLY0zz%)z>B#iBG1Reb`etq>7h&-*lbwGzSA+hK_XguxDrt_#6sFdW*`DU4*5Jy`l_R(#MNJi$#GT(C5h6&P6FiZzsBo zb^MlMG1Qwv{{6iSwS9yb7(%u}cILP4->lsv4y}xonP{0H0)Ht`o?azj=K`WtHSE4) zenDf>hqIsb>3xuF{ox%-3_H8*hp)^Jhzj_IhWZjD{qv&0X^u{A*8D$vOZTuRW2xb_BB zOUR}CR>3SlON3Ton#VtD;lT|aXmfP4&vq(UJE@0OH5};tE^+g>s1l)x{RIYTb4&k$ zwz%a2-44r+B|i9FTWU%OK^y)%loISjA%|@>85Rv!m=&A?d!cpgBYw#V)OBQvVR}Q3 zC$%U9A}0i&)?yIDtdk{2%G|75?F_-snOB-;Sf+s}#3JoGq}4dxW~-`4az?E(Hi}V+ z=qFT1k?{jFIf&ap_ZW}MWaqxd=d{lrOtbbh&wrojUGN_&hqafB?#(u+XSyn79N@0G z5eo3uZs?-IV|~d!bdyVEtmerXQlrwM>E|bF5P2hvr*)S7`F_tfY%+CudASPVdlZ%8 zG7%SXofGA5{4-c$lU1aLD@*|0xHoajc+V@Il}!O$@18wNq+=U%=YVgXmg5M4M~guX zKfegdi(qTiIsG?NnpO^2Jwi_gZ6L(sAhH*&_(y%1J3IU?@nZv4-O{J-3Rj&|pmTqT zP}m>I4^85JV#04)nLrzF;RXWgPuJUibsDaHq2trdF<`O|Ty^tN%wayDcAl>8upCAX zMGL$-i8eAa0w?mND#$%+9TF4~!8KY`QC8}%igQm^xs@xl2lX{~At@p5V=J4m_IT<0M6pfX?wN)8fIV8y3MvWM+p5y2-n^ugn;z2a8|6hy84UNT9` z9J7TA>%GCsr<2=pBY07LIIb@5J< z)aF0}l>JHY$}W+Eh_3ritfrzBcDjfGydQWKWaF=D5xOlhRZc@U7aH;WsGUxMxPE`^@m6XoD z^^a2y1`oF+Yrn$~o65<<@`UfQu(v>tNc-0u@fS?i#~IV^;)p{hC);5qsojQ#q^!zC z={Tl!EhxY4>Gt&W45W@k-Y&KdCd9~iGnH)vb3BHuLz}XbhYC&B_9CfQnpF)K1#HIu zAMhgX!KpEza8t3Vw6}Z$rgqzF zlP7YVXUsF@{T3tkIs|F7Rr(9VPRso!g)Qri92N&|LWk0u^jfFZ#<)nxxh}Yz`LtOD z+Sq7EWaL7o4Q1;O!Wb-pub-6?#05g!#!n@?Vq8>ODur3FH%7x_%+^ z|t|)StdMUckw5P?G#syW82T9hy$kP4u_;)Xcbn2l?c|qj2K+>IY?|_Qz z^_F}092=b6m?h#=Uc7X_Sc7;zo{{< znJh0rhZ=d1sdUWZvo=>;pl{&*q#-&8VH;D9TsZ66>fDh5wqNl{YH15X>&9sEU5b}< zotuLbzk2qbp_uk!;LhJh)}u8JJSfAgVhbU~uWm(wIVztr=2icxF*@Xsg?zR>iAx;Z1vG%Hg}obx2M_O>bqx~V-fD3%l?Bb8n5_D0%kT+ zTMxYQ7Kq7Ek(^S68u5vf5t3q*UPvI$pG+a=iz2ChPop`0`=1SQjlaB%<+@uIwAXFqsA_R1LJs_m& z#7DFI^T+HiSUFOW3MGP8NiUS--_!X7qND3h67!{i34cANj`6ue=EP z{08t~CEUZRS)Gp~C_wchoJDMy95%siK=zw3!CpWmaBpXQ-$uTKq}lk9LJ*_01)lQR z)VrgUsBS(7we97gJ5HC{qn|WP!P*=KQ=->&+@>0h-zd!v-4V|bUpjczIgs5n|4l?U zL(VFBxZvSF60aWDV!0uXn*xDKLmq3-c>*P|xL$q{7%j3^!;IUSOa}!;eX)Ow9n-Lw zX){Z5%q5VrJoqL{thGO`H{O}y2=s_PuNSf&?9P)zf}CCK%t%B6f_w-El^1LvgJYM| z*+fJih_l_`3}RGf0J2dj%-fhR*K#IdD_p8P@3_M*Em|+_+?D$WVCnJV$eoH$NQZl1 z6ybVJ?rvD#Sn8A4XDb%F{?DvZ*@+=RHn-f7UFxv|5C{~BYSs_)w0$yc`RdhZY<8>t zt^R%u?mGaSaJ(~*DbWve-gH`W9Y7*69kwRRJ+x!vf;m5BWX-43r-}hwrLE(TBFzjP zzsb2BJMc)s)7ldQ2!a8~u4HE<<%kfR-AZS`*SLdeTK^zpLv!Ky?nMR;*iwo~>0TB& z&nx+w4Y)Z=rwPfWO#f#J%XzW-u52w!VQ<+r?V)$<@lg!mbrk>jThi{!*CXCRp>=k0u3$e1iB_b^`jZ{g$pUy|4~(xWem)hVcP7292|VNU+~cF z_#f=s-1r837eJv6%8$-ZVtUZ?FE)DZ=|7+Up9BsU>DT*H*@NOZM)zps+N7fY zxYuwFzk<+qsX~B%*w+b*bQ zP-K#$Xilr04}cmVH`x?U5+6eGG))o4+l>$zA9CrSD}1g-yDnmvnVt3aJ!psm@M5<* zC~QX9j~g%NY?`YuFIxhNY&)C+od)7QxrIV@8hdEBJ|7T#$p?{-7&oW-Od$DcL>E_QwOnU$PKee}k)VjgCMFcpcd)*wDWR19QAkaHRQx=0UbvgZkHOzu z_QlAp8DMP>d2y=YeJ}RwV8M4-mpfif{CXYdIJ;vn)=oruBic4T3Ii_OR_(8|m(S15fFdnO0Ov0zzs7%9M7ejw{5AxD( ze`%|4k`5t>!TCi+)v{_l)i-c~7E&G)YxdTcJW3GZT*ewJ7IKP|qoWjR;? z_gN=vJYvKy_(_XM5Dvb}Q{gxBt3ZL=%WxBglx>%(=ZM#yx*_kB8>9A`A7>8&BNp*rXrk;03l*i?JnZ-O z1|N1|E%kr6aO&)z21j1quVbp*Sb)3Xj_AD{f)y}O!*!TxD~}lLs~fV%Z~m>Sxn|-i z>PrA<(CW+(qWCI8a%i{hRr58`HwbFKkHxiMgQQysn;L~4Y--TBFF*zv-AmSJel5pp z{|^!H^zkx%Evn_^X2!i<9VZue#BS}*TpJVSjt#;+#zpPgbO-UBD~b0c=RMatb{ zp?Lw-MXWSOtQK6Yv%7eb7>)k4>x(CM(S(|!tBh|qXxSVtFg;oc+H=PupNKxh6LVv8 z2iwR4ir|2$1?Ad@xmjsnL(pH{D-(^5*>|TK(^rR~6{ZMB%1!-Q&D_Vf`^g^Av&|Zd z?Wt0M0c>|uZ||jD;u}=O_mWp3cK1T(i?Wr8ep))3X$>#Cy~RRLM?iBh_XlprwOpi@ z!1j)ClkdD;Tzj2Ep~Ho;*x8vl^Kh?apW4kg((|a$d{}&xX*nHw zP7q$Wke3h2QNk8Z4cgS2cYwfC%uPs5zS~J&po51b9Am>2+L-Fdc5`x`?($ z-(bt1HB>A^{e#0PiczCb9Lx0fYj}}0_KrvJ87}8y1d7(qtaS8!s`fU5G*i#sO6P3L z-}$xi2@u0?T+mQaG-6-0#an0E=uMZp9RiM&36t^rJM>Yjk2CwC&TYfe)Z*vQfh8{g zj&!|0^mB6aLt)YGERT#3;NG0DT6;2jePMEPWsRwXMxZ}(D@?>v)G@ z>MGNH-XG;?HtAr?4k;I-De!u2sVI8!Vvt`dEtpUf80g&kBBlvD3)5XCc|Af^N8h*D zV*=U68lD|5X5#e2Bv_lEy!A#M^(jO;b`z%A2IqXyw{Hw@RZchH;{|kXW`wXP=rO&v zeO<*iOI*eCx?{Y*DsLBcYQ8B=HRCOMEv)C})t~yeQhvt? z_YL=tOQPHN^oH&@opL&?ugMb!_z0K6L(fo^xb2CblOxvkn!aoJjk#mrc_W%syU#1D zeteS^ImbkG_tDP3L^36l_v#p{jB+_1s(vI@wg*Z`Z}+6H_zl_x{$$73A}a zf7L5~ArYbkQy`XbpDEL^b#e^|C!O;68TY;WK;Hc_vGT1OIn^H?5)muuW_s)HbkNt8 zo~TnFS}8+Q2b)g}cm9%;4a{HZ$UK^`Lw*y{k^rZFWV8(!I2W$~k_zc~NBiCZK`)~B%g(h3G zhF@K5aT&>s@37fLT((=RZ8#_t1-&I2I}2Hz0^xB>33oIRP4=f0xdqX2C_q*=N>_@= z(%npk>!mcyh;$gX(VLihwQ9P?giilstt)CI8e+;93hAZol1*KBb<=&_gl^Boawi>O zH#E>-VQ2cQXEcm>yum*pFt`y_%)voi>ow%lvDv^8>>eyNx_s(S*^0j%@PJc0jfctZ z%5p+$&xQwcja+9ad6Ap|JwA0`96+%)MvetN<>)vRgnRz(^I~zIuC;|R7GE(bLp>?{ zD3s*c?XUKqK)`&R$L@M}-F-eO#J6pX8|1C3gRi^u%ls&6i|V&S6Ej+rLudpN!J598 z)z+5$?Z<&fZb}mCZbB}@@*x3yNPVQsVH_a0(3$_*=Q!d3IXIxLq2u|46efF}Qz`OW(ioVuT^^sIWsm!s9& z6-8~S^AxEy)V!50KC#!-l3-hyWG6<@?dX&5hF7cqJDJOBy`^&gyzp+k+yCDzcrNBY zg!bnz=PWpIRMP;2^7-+%=s&bR@K@{IbG{rncK)Htfj|DICv^gO?`O$e-J8IPfD9DS zY=)?d0~aqGOI$WgTKY#dmXXg`{Kkk6VD0px_RsHE!n_8wL?w58^SrY9d-LA^)-C^+ z+V%gP6kW$!{F{*c8V1njD_XaVzbJQPU5Ab@`pVc^>Uj0oy$aMs8t%_DJ!X$h6h=Y^ zYk@{N_N*1_r3~y`y1NCv547-IiFa1vTD+?lLttAsNA6RB;;x%a+hv~P&m?VVqT3{6 zbxfnZWS8xttCeU^H2tWJO9!nl4F692A(ND1!H@Zm9m+ld;t&3V6Y40rKe=AdRh=+H zm*1M#)}e*21S?NW{VIq@=3yy#`Z9y`_6tV8fGeo|N9RHg;SBG#Cfus#?xIyt z)%ffqgPeMh$hyuH(7rG*KP1Y!7_}4??Umw9)C~Ez0Xq1^f6U*g8ZcP5!%{TLkbdn6 zJ$*{kXKKOFcqN{ZsQiQZ3C};Wl#B)InBI-I+&}O5EVt1wh9|+)T~kQq<6n%7(D~RD zw7=-*yWyHStOwU3+lDTA|9ky`0FCpMN&0d=OEJH&%k^*|*!E5N(Lm^ptzXsf9ehhW zuz<&WekSsqASxIsJ`&%@T7juo?ofhaH?KX4_O2Mzx^>?D@S6<*kL}kzbriim(%MA_ z5~~s!eUJ{c4nq{LlV3Sd+AV>yYUZX#T#`FycL}OFS9C+;Ya*vWY18>m%4TV`Mt(aB zl;2iUjc;b3PFsV6pEvWpR*?=rW|yvYLc2?F7dRMNxKEWi6;Szn6fqXAgM~iWTx_ix zRS0ZXU>f-*&Btw%C~cFb4y5CNp2(b7EWN}|y~RvDbDAi|l5;ZhD9%|(gk2$U2@NEb zL?&dxeLG307+*B2Qr5yXK?R_EV_ zFXEM`cqclAMNlrQ8J-t~qN1XvT&E=idOEc&{33>Z^&O}rYCqb`Km%lz?QRYyU9o8= zjIJDn@*E23R?f8r-(1KcMXXAWbew!&;+!;f_vCmaRG>2pex<)}7)rEBC!H1hw3jdf z;%nHHLJ$#1w9RBracDm*lo2(LaL*|aJm zI*T#W?&%T~^_hI@n$vX*87o0Zq&cwNe0m|esKNDFA7ip>m9SOEE}R14&rIg#R@L|2 zlT9|!;~)M2Ls*^7cRrIUYa^3?h{)nU5s!b4-aeQXMi_K5Wk|j5GHSGqpxd3vcM2Qf z9S&UDG+Al2OwFS<>&s&el3Sp3;JTTT9FhJ5#O0!P{EX3f6>{(^uN30zV=>2xr!k&6 zDko)MtDogOAO-rSiow6yq}rrQrn&{0(X;fdHEF!?-5r*{tZVNeW>vEQ4m(UUYj2)r zCU6k+>5GHfpP_wsiKl4QY}xt>!`8rH%Zf(pPyP#(v&^Jo?(nmG1M$T^{{H>C+ny6_ zGQNVAD!KxG=c0%U(n0x>eKMVhJ^S7USCi<(;V}Y&&@BR9#K1x(3$%ieF^2~<3hBSG zpYuXQu^1~zGVM;2LdMw~Cr8U&&O7`xL-sy4Ptz51DRPG!W2@V?bMEj5SyFRH`@4=m?uP_!miTW_D(yV&s3FZDk2nlk{$m5x!-|DyJsgaHg6L$#~Zg6i5AOdXcv4Vb{QnZ}YXJOqLuATkB7$Me;J*JO5rl@0X7heo zUU7;9&uks@fWheoa#Q;bDk)sAzlJjxP19ReOU}?G2aZw!%K3rAsXeEP5eX&1j%&M+cYQt|AcX|Ep zi|p*o2a?(H02%PkN;B|oKDH;kQmv4q8v*SrO!SZ^i|9&Od?7F23s|aPr(v4rIocqN z8SXv{Hotw^q8~;f%{m_NFsb}IURjK}K9=Mn=C{FM;Z6AgX+8oA2`NlCkRWXHA-L*yW8EBAMj%=C9JXQ*^o z+g&}w4|yF}m=&|nJ|^0A4rT{kpL-DaZ26PVYE$iTkS`4fVZtn0tCLz@Od%zq-D%rB zM9|Sd93x_xlaqR|5hC@t#H6+QfwWIa+bt>g1({&I5m|ROE;`d5@p_oBm>qI9SvFzx zGK(|Y9BliHr+lS$ZfCU#k$f{MVz;eG8_DYddCUVs=8&)3f~z^rrqSQngvmyHhoabD^pdeF`}gU;k2jc<&mk$Vo4@Vlb`$S@jv2eEo$JV9omeC%-f5R^6v353KKLYmFjwMI#MpN zb>1FvgZjkDp{nz#*w|+=D_9p1%O*BrC6WMxvIkwKXJkN3pJy%qVgbl2*%jlXP`t;) z*Wt1Ti;Tx*0F`jtY^wIS;T4m3BERmtHSH~!HNu{-mAeXiQ8~YJRZa%?T(ii%a!Y)- z`pwK%jum=)PiJ6oAc4;jHWsq*7WXreOX>Xz(4i@%lF?Do_G&At^1+^BX7oYF>;`pN zIT_pq_YY>1xgtemj|ZlIOuKw44Sl?{yj%-D=u9bI{?PXQ8qmHHBOq!19BkM$TR&L@ zOQJ~)6Zi&Tbpsva1--gX76bTCIOpvq{k_*W3h(_H6(u(tIP=D<)oKguRTJ9YyX@6U z+tlRWR!h5^#ELY*N276@qXMFmYj{LUyCIsfHrmv;hg!%QW`d5p=KMK6?*#1e@FAJj zj!{MCqfmWc_<6tvg2hH|YCctnaIThMv`*vrguUub3%?z=*}fKiw{*pjqSt?7%-4)0 zne2t$9(Quu3z@Wgt-Y=Dm0Y_N&!W${m7bVvy4KS;P=Q`e6!TFsCR9PL%?lsk@)Z`k z+5Ia@+pIh1LEw`O4YL=mc#e#Rj-@TP;d-VkxdlhhHP?VZ;Q@E|_tjZ&+0#7>*cJ`R z_j=DNKSA=p*u@5z_my$x!2ouwG^QmhEBP+WMPgcCoSc93=U!01YH8tn`1Id-=8OfO z`hf!F!n?y=wr&Bt+vcp7?rO?XL@pbC9%H?2SG+5m3uzCTg3Oc=-Y!*CF*QVv&o_%| zx*O(l5nY>h=bBC;8rWwg$0z;Xpo1yj3ow-C7Z4&!>Tn_@d$wuL?^j>Gy^BuPU@|sf zW_h;U;_^(}=3E}?SI4{^vRJElvUWLeVJRi-)R$eN4dHrVwom}ke+g2L&1M7n#9EHG z1lW?O0C!>oxK}yBnE=^<9wmK7^&irzE0c+*_4E=(T$ojGv+UhZ*LS#NQxO)`z}zpe z(a!WcvvX+Hcr5a$#6fd1e5ZpPJm#0+9q2^a1u#kIPwLSZuo~M>{WL0~ z_j!0fKN3wZtz+cr>BV?0f1XJG)=rFjli5$JlQWP=Og7p6;dHn?S(T?Sr}7aVkJK2d zZTol`4}9V?zVhwInl|f1m6_X8{UxvmkdGnzhqSJ*Abnc_H5|GIW_d=SS7oMTxT+ihEdr`G{g_xHU_8~w{61-i|4>pr* znJA^cckP~E>%B{nD^1-w&-_L~!BY}IJ>f*G(%1qw4`oO>-ObF#1UK1Do^g&DCIKoi z`)qTRNK^gbON}BOhrX5@g;uLuFN2U-nr;@7347wFx48yxErZog1m^_kIho2iL9b5- z>Wey+@otG`ES*VEjb_+$CY_aSRmS0aem2BK=p%@E6HgD8L!!+FaCAR5WxEm+UeW76 zi78i5Tk~yQ$!Jo@;TG#Mml)eaUMY5sE7GgMwImz|I) z2oljHPTmvP%uPbY3E0~tLR>vuwL5QUs;%wAk01Wn0@pwLhwRGL5Q@RUS#=fHQ9xDn z@uT!ja&;Gbng&?u`Nvnc6;%8C#YDaNYUPlIX$Fd~^xveLQV+e1dNDdL*MqUZ`Z(JVGP8f7yK0GD8oo1LZ!Vj5XuW^kTI z)!%rtH?IPI_uT-u^RmD<>8A2QUlSQtRDMMffI1S;L3u0_yVxljH`uUQ^I5GTRE7V2b1gOBoWOlq z)IEH;`e?w2YqyHR{;=FLuHmnCc1QQQzMuY{xOro-qs%j2$<$uPQb{lXe)AjPxi0Md zjhjM{ja4EGl6!*~a|wL-+>ES=daw5BG-iFLer8prtX8&6nKp%PruIL?9F5(r70sQ& zuwC{piL_V=z{c&QgrdM&==+=A%We;yYHbEygep8^>xR_w3;YWZo0C@fp-xD$a5P-UX`d!Ati#o+Mq@SwM)f!q~Eo8w;9PFnm z@7nZ~VXwvANm+{*ey-~jFdHyQ9Z_%}dB9U=S)|l&gZytGxu!j=dHZk z!WNbPxo(H;zE`R=+x7SF^7EH2M#MR;ucS{F-{+Gov3MjYsb)l*92N!s8=jD2aqE(n zcGP)=P;w`qvp8PXNGJPXcV6h=usi(wqG!XK#b+8`KYF7DUC%iy{fzh8VwqCR$Tzt^FRo$Xw3XuSEhs?kN^Oy zcQlTc=m`XZSess(U1akwX#>O6R`AltFNhV=nfD+b!zYJJe)f$2k^@OcRJ6R2XV!UhM2g(r5(-R|HRS z?B0D;BGFb?>#YjxsG$wYV>3!Ve|y1&WKORruz+=oQAaDfF{X7((6MVQ@?y5m-YIUY z>6D8>K^1;CXt=z%xF5gFCtfchp1CD*4WM`v_aw@TH=Bz8d!4M*5_#xj+vx{hirx(_ zOj5zkuZ#^6gZ{oyJYJfb_oO=iYoFoU?>;%@$Gf1cq)ahlzsuw^T@9UN7it=6aq&9g zTxE^(e*1N8-xAOQzbpGB-R0kewTWMzQog=XfPh z9Pd9Llso|b`!B2wK-$smOZ1V5Q{(3pa@5o|xpv^ViZ(YaB!O{)QI~Pz~ z;Gk`i#GBtNZTsWOO`a6dXN!jdGcs_e(*A!q=nKRelPqqBz8mVV^9zoye&yi|!p9;G zbw)BI;JTnnZ7Z`ss@8_)=UXm~Nk_+NebEHA+xb+Pt8?;#n3k11-K>Ze65BQ@e&ORq zbpYU0EFf>V^fr*AyR%`Wlu9O1E|D+i*)Xi=&?@MCntm?=TcLXY( zhB(xi!EC)Vc=cz;)vNmcXWxMokyqR1?ns1VDCHd*dk))P@a&KYC-JMQsvfQdyr?v& ztzA*acQf%JPRpb(F2u0X6l)*u&hiMRoSaC{yc_HvA_i>lGLi9{0}`1kstiCKc6NLM zAQb&~!{^*;dJl0;(TzLPLV{uZsbNOtY5?U4ZgE%9FnIl;)wG4#LPIFqt)88RaQkd}cH7_7*ylLq(EjdNfiP87PmV4=oDPd{)s{LHk#yewEuP?Rx6-Dp5@^-#bg zL{60o(5Jvc=2OB{SGh*^)o?DLCrm&b{J1oAy6S5`nOSnSC?PM;qzpBCn~L!=TpAu1vkBfTQbYH0Ssd+ z0LVURbjnF%7CRrCzuIb-LpXVzE54(?zQ6Zyl=E9WEo{EEfi}5KZe)Z<>UXa-1RflR z@Uu}j{Vx_kI!;UhVv-g#isr-4qrJJj6wB#4O7+Nk(CYj?P*#Z@`vbtelm{j$Dbw%3 z$RU$4#@^5y-=Q24oBX`vF6%m&q>8n0mQCm`8h%r~_e&puJZONXGo@$(=9q=A|Gfa9 z_?>{J6oC6!VN-m9Dak7;EU#|zta{p!ir90tvkDh3a@Top^j%HI^x-FLOo3o0C$qg`jcS(#EDn>7S<0d$sxQ zjJ(cbg~RXLx0ZS9iw z`(AUKMXViHxTESZ*-XxsQo}A*tUs?G$OC51E>lwyOz6{5B4?8;jO{Se`GAHR&nXQ5 z3xJP;e*Ju?f2TM;U;=cNM@Aq|*@?}0xRW6W&lwvXv+1jEfkj7-1IiIY2hmdm6l4Ge z5uHX6yy1Jq9s#!gelHX2^n+np9$Wslg)=G4Q3d}d-uFH);EV2?@RARpr&yGk zq*aU-?fPS6#Jp z%ckyCCLpt!sVsni_;l?_0H7)UY_wj#{qi33GT69wT~?)>&39)(Y^oe7iwBfgn@$4x z2hsq(jPwWvbQ@)bh4pU?5WbZ_Xy_5)8L90b92oVG`DW8!=g%Z+A%eM#!xmjv)%S6p z%6BU-n$@yOPiD4hI%bhSWccR^v)BQ#_Tp6nHRMI|8HF_Bx0AN_<0>HDvP+Euk@f#_ z7@wejo^~S?KTpPDAQnd8T17H+9V04u(AW2&Wv!DaKZ*~Ibg~Enw9)2Gf>KhE$Eu=%OF7rL25C(d|c{TM(7)H_h>`lA?jx?%RZ*|N^< z)xyRPl+13KknF>k_tuq?xyzvJ1t%hwoRt;T$kdr8ut)B@)w$-&ObbvVm2v|EkwR6;C_VW!u5&fA(FS=kxl${vyus|PMYoVNe_sLX&bAl@?=%}MWwm!FRzd{%&=qLU9sv&&2u4#*#f8;Q)|T5 z7c%lo8-AqYCApAVpv~W9)O{Qv=9?NEbD&4K|E#aC8?X{XFjhuZ^noZMAu9rb-RGeg zxW6J%=Zwe9%2I18uWYS4Ql<%7H<3!UbH*4O6Z@W8{;9;z97vA`;>V{I*0)anfyYtg zWTYIrnw&06UB-Tr@hauc!9p#WL(xw;f!sVM@X03obRQ{w_ zF5Nx~_X9t>XsXJs*4DqaX#5*s@Um~`JXWWy-HiJY2ESqO?4q+X_Y2}q{3bfRns(ag z`_BAmc;4_A)a_hT>GY!kFKhH(=e$Tz!H+)PeV{X&D9zmE{dKs#6&$8^ z`}S=SbXTQ&sbl?vfFl-*;e5hGcw$l#E(3R}n0k+==3TeawELFB(6>l*xe7*LOP811 zZt)0hhW~n_5c50!ifOm}Ses5}m0> zJ6Yljui7IXkqTNydBDkb`qExr!>6C|Fgm7%JQqRb7OUhe&;-OqhfQEH#QrGw3;<6i zCV(n|m6e&D^-y$ZXv;mQMvhc+5~$e>-x%L57Cx`?hg%r+7HL7H-nvE@|$@<@(yR5e!WNNka0a?)#Bw(`Bz`3OHJ^~F*u zE*;6CU9k>nZIRnnj+5eTIrr{Mg(nLY#-V6HtCCF=46QO@hC*0q` zP)w$evm8O7qYE9LEzjBMx{tbD=E?^WhS0yS?rhJZ?ZU`7G@ItKDY%v@IB048H?=_u zA*lup{rp#dkp`V$v0CSBL-n^>ApZhWnPLW(Qcw^Jttg}9&h&-)E!U>JD{hlQ44xT}A;dNJwy=1QHEbtIM$KJC7|7Bp;3}0j`(FX?*vGYaPye zd5aHZPa~;&F=vQTSWLR#*nKVM{=Z`q6VHBg$-37x779vaS>(*7>kTa4jHQN&`k>0P?Ynpn}wY4hX1`J?_sS19gMf9+6FGn6Nn7gFJp9DT9c=9@ThEEfgO; zTJR=~hb_5l;onlBNfyQV;1HSH63=o|q3NNmNV5Lr-s?L}i`J8z^FQzx%NqM?YjY{` zP0g2E4r7X)7C)bD%XuCSHm#&{Z87I7(Rd`X@7K!Om(_62f5d-WSQto5f71sJLUJCT zZa@Z(Kq`JD#iunouC1qZ+zEq(VSI;50I_Q5WaWSwMJotyKk_kici+|;US?pR|IAZw z(Pxkx9X||}W;j~pt!zo$$&ml*wKNej|HSWogc5V-+L=XxoL7WbPqK-hv!N$Q{!rQTyZ>h;77~Zx4X|%~*5% zXOqE-z;un~=P{5;fGQ%}nWjpsMYIc9sqJWqaUH+N#iI8|zhV*;MRM%qC7#1WAGmbW z?YH(#RTBr`&SJO;gBlf5vWNI2u{JO!3JPk})VCjC4p{MWiaovdxP_QuA9o^ZX9k8+ zqo4;ncCRxVbr9Ix-qBz)3Qm;xPB~VL>1iZx5Est$zV#SPl{|zxf%_M^PT5Gs?*ugQDrsg2|pGFwCQ*!6N#knDKh+8P^9qQfOaCB zDTlHm8j)#Os$s(mo2@hW@&b${0GHUMI;x&ta?;{h_{=IERy1-vc1Dpz;MTr#9Hcgz~7S`kJ0Tq-c}JPc^wyib+-sP za1s*+h>c8tIyrfRsOzemFXP(kx)F9$4QJ6lWoj#be)qy5PL1RodbF~gI$bA{aLs8U zMW=*5eD1eTM+-F`q<8)9d3q`F`_oi;M75S4&tj%FG+7XB(ff!Z*OA*!x5>L2t+DVP zQs3wvLB&5bTb8CIijgSRyaf?@Mjo24=;pEhyw)if3V$NG`OR2XQ*$qr)H%X8v(ZrU556rkI=tGl=LAU_&+e$W=+zhIAwX=mj1KP|J7G;>*A z0htp%67|ij)3CnzTy{HGCdd0S66oU2jvA`({LrwO73VBjdXq|5RzLMq(~c5V$!NZi?sOUpHU3FJ#>OGL@$ z46kT1tIuF@US5}ZQG?;}XWRu(_P4DA+^%X%G;O!k7iTp~2IO6%#d+A}tQ0d^T$)l# z0*#tl40X$yuAQ@jPlZquzCF!BAJnLIw^a%0ys;e7WC&}({+VCIo$O0jl>4Eg=InG| zX=+gmIP3RfwT90<(1&Y-Yf~)v(u&!tdoj zm^o7rXKTZ*dg1SjZswB%yXr^uk@$GMfkr_g+0)86@gySy&mwj6i|{6u?iW+vYp5b{ zLVU0Io~*5h{r}Z$L);{`coHlDA#@+}le*(jKE?PCbzK4o5F*MDB!hZa0B19)Ky z4`K0_B-?N8bsW2Y$5XIYq7?pxoinzsa%W6c-PZtb>hU|_Ppbf4g%m|^gWZh2_wpoh zC;iyBy##D8?v9ZmD4X%wqsZ;q4gbZvD?RZGVk;YSvj+p>PF7aH^P^1F`ny=%+==mo zs!C{RGpN4{Q+=9Y#2IU!NPB!3baIK)7JMj~5ksXXlQ4iQDsuy&q0|0S_rijS+5FFm z>jbIOH6aAiFpc7cAD`MkTzQ!{V_*9SIv}ONXZh{QYxRHQU4ROrtEXq*QwRW!hOlvu z{ailB?<&fF4p0)v6<2}yQ_sQ7kConT6!F0k5gN24>y6^lczD^N|JZyHS2y;UOnfN?qua)xv%_o_cPb9V4M*P>my;^1&301ymG+EKT_zbe} z7wz=_y1W69;aUyzIMUzPvNCso0(>NYyOX)rX30Hx&zM{0ViEY|?H!85b9wm7( zYYL*ka}zSmXamGkF40}QB6f<>f`pi;Xtm6n;AL>M2^o|xI*Gw&=r6oX>#zu?Zml=Q zj)Di{lurAJq}D)CzO}_{_(p3B4!vTCG9CLH`Mzw`DBU3KcNZ3c9}7f$>>zBMao!r( zCa=D4@gtWaOwrt2^x#+8{TiJb>%}vp-|C4pEsN{yRC=M7o~T)wPiTE#P;zp)k$qtP zqudYl@aZA5+2sC~9 z{57FGy^9Mbzfdo{mQU`kkD_NeI;epJuE5{!GV#MxMAS#B0g>A`SH;^KFC@kzOU+VE z##_Xxba~lqluTCU#AgL->p_)a{Ykfp;&|xUA!>+`$2y|cdqG`qGH;nj+v*Rt zzjEfheoksryM!dIvYR|DODTIRC)3l* z;<+*G01~K`NT-vnx%m#@qNx~k`INpZrY_7BC8RrF(4r2I$D$e)3c3}Hpscj97wycQqwc$_fDptu9zd(7neictM1r;og%DDS=njnWkEM?9HlSn*Em zPJDmlV?om7gc^Lvcx-GUZtENg0G)^YRf%`>&Nq%YMlvjaQsJ8Dibb*Oji+@Jpm0z| zNg?@#T~_CY-&PxwvtK{^mXyJmwA8C~ACy{#Qc|-e5)>|(mLF~mI(7F%FesW`hA?=x z%lZ(g<#b7(i~q7A`nJ9Z@WD@m=_w@3Eim9RxWTj}ws?bXSP87Mp9OQ%e298Z`nL26Xn=khXiRnl?j}&nzX*{Z_vX_KSy>FdJ=1bFhP+6E~f|R^-iW-o3hoD?G>(cKh*Gjac}pv3Feniw}JXWF2Nz{ z&25w&(B62tKTBB!1>vv23gA4sjursx-OgYcmKh9mdAo1KmO zv2E+QM4&Wp)gwMNE|U$OformZbZ)pc>Z9#uw)e^61R%?Rc}eCjf>N)9#OhE@zamh8 zn}V|6=0>-B*j4eqcB;RXcuI|+Uyyt77op)tV8I;l#G`XD*5|MC$k?W;iZASzDKFn{ z74h$!f6vg0vR?!9z{kx7M*Z~i-j1EXHU#ABH1#&WORmF3ALB}W3t7}+i7)E5@2L86 z`(>T;`6@%Y1e02AkAAI%X*x`dmAY&IN&A{hKnY-?a^Ix=yRyn>dS_}D9DaxCHpx6C zdQi=3Pz(&>29x(Qm1HG%YNxTy>@lJN*lH(nv^#%%QYEOiMhJ6irba#*RZV$SLOa~k z&jHq=XP-C>GhnssruX_l0U*H6*a$3^&yo8K!i`nKEkzo%!ZUkBo1>`dp_t8qhBZ(Q z|5(WRyfCPOTW#M#9O3`$ zWG<^hzknLRMYuzMFyJ&(&V5TzU0GS3jZH_CLDEZ%G?A!5qNb`ft<|?J!GIlFX;4hB zWiU5B@91hfyouE-dwg=#G%lL_OcvT!pi{cU9)iFuENdY$o{LjD*Ml9Hvugh4%yDKb z=1tA~~*O@@4#Nc!@Xpj1q^e;X7bl=^4UeP20v$2!x!@juA?MB5LvSP!W z(bCwXS~=6t&-h=?WA$LRbGhkQhWSX`RP?naB~u}@?$Emxj{&8H1oajL3%wAiVrq-B zKPfr6&op=2Qi31H+9@ixeuHN#Dy4f>DvbV!i__%--t{~A0lyJ?{~cKx(FF-m zEhbHSJg-zqdv*UVP_RFRSb3rZ4k}#^9xN`3TLc0+9|8$;10rJw5;8ItvFHu>oSmYf zm{{uCHe`6=2yOaF^k)QhGN^SB#q1E7@#Xjx)9dhiSux4X*MvKsQ|RzpF?FN)g8NtC zy)18K6i3Foion#AQIJtznYu?uY)1m}>Y}HhU+^3oDx3+BKGv$KeD76eE_fv7zyq%I zXBEQ@vrp)l2A!MDKD|_0*oGH>n*hF!8ivuGl#BF)gdhM74W4SHjU_g5*$=%4Sy`Bm zd$fG@FHJcvLspqv<)PW8E2Ou9)d}*530iS59J@$$84Cwn_T?m{gWxxfqj4~X`2C{E z*DPYZqI(osT^x*kJuLEy!ST^H7crB1FztF}8uBtw@3ssCf1pr=(u#~x9r3wo+IPQb z{-2h)=p5>pRhdi05FY8zS&Dz|{y$p<`ai2J|BvfQ|7%?7SpQMszp#LdC-eWYDE7a` zP5kE??wB8k2eLMrG(s7^G&4$xQ_NhmOD=#e}X+)#FKuBq<;N4fcl@4Dk7UlEF2KCexQFLzWyv|***swwMiQWt^L+K)G2 zbJ+Qq1H$&oiUZC{XYiaJs$PC_{zWZ~<0H-rXUOAzMpkA;C50h;CRvM;U7!&HNpue= zYMND{t1Sc&@g1eEQLth!}F554@xMBKLBG>;WJHBZuVu_1?$pzlhg+K&<{r zS_$-XXPtpnp-i=P9yE`>VV1pKsw@#vl#-YKyeCl~m`C*Y^fM-<3`9qk~JfQ==|P96XkAC|-{o)jbt$b$w;+Tq&9vdk^{W z>G^vgdGzuM6v3~KAPy(A6p0f}v9)8ojPE2R4dU!MOn zxRxq>9h7VHm49`I+rs*xjLux3(i?O|=+F-mYNhVP{S`2hoi4T7czDKO4)n0F^Uw=( z>qs#IsUR4QL%<$~cme5+ngi^IKs7-H*ssEbU%uQ1X?yNx&qTN=PEJ#C?qgdgvUZ>0 zVy02#aw0M_|#^;SV9uKWuKB`{I9>kYp=SB)h`vK%s?e~`SiuZ4FnRbRaI9+?9D zpH~Iq%%+~%-wICE&4Cxj$K#1XNAUG0R6+@9v57IM%D`@iq*(h>81q^(^(vomAydej zm5d_v;I#XTol&LNyIG+I#+RLw(qxl&y9!TY(urE+6)-@69o~4nFv`GEkMR-@Ei`%*R zT+^PmHg1~uQilJ569AITmw1b}V}0r*zt$df>zu^3(}0rPam@Z$FHdH}do zkO}H9%nHQ5JeAM7trnFH+(o>tV=iBgyVg&4o%wBAL3TkGZO#Mh0~93__>Bm_Ar`_po{8DuPG|THW?AP3o8N6K**0(PTdEfg_`bH#LiEHMbSy|p zLL;1jw2zFOk`^!Z)QV0|G^*bMszKyABJFMtpISBeavctzo{6qA%So2n$n#Cjgv zqRyM@t7sr_-d%?xwy~QdEkf;9ydfR4!d};vp(J=Xphbb@YhKFm@($yhnfuu zwYy5{;Cpyf638Mpu9Q-_S*p}}A4z5}iacy3g0gBiNL^g!!`*w(4}Mg_>E*_7_N|<6^P6~zxyRfK zAv%6gv>Bq7l;O+mb8y@o60&#A+px-Ua_Y>XxdLP#oUHqkxs#MUI|kT1ed$S@E5o0G*E@#Pv5Ik zZXedau`ybT>1z&ZaJS`0SF|`|7>HZ-s{K>+5l|m|u$o|&rmw?S{8|NA1Zy=azlhAH zF(t@IPe5Mz3>Hzi1f0SbYqjL$qG`;=@_o-RG}O&>JoL+pu$Jj6JIM4_!_q(NKZ^)|!idRD?U`h8OBOr|*T+70|rh+4S4%U~9zgjP?r|!u&s37@^g_;F+@K zNUzikuVA0l_QN^iV6Cl(dkq;L$2(qwnIdW9n5Or$`BeX}Xx7{u&cwV~fV;y`SVARk zClNMI^C7&{x7EZCAd&2pBYsC{JA6Vaco#DT>3+{ytm&ORkn1Mi-E8sgHK!0)sl@@u z8KCwXElGDrew)*&_X0yzZCsC@%2>3>p1e9?GFpYGo|Tpw@moiiO_-nQ<@^puK$A=V zkNb(on;tUIK+zJ6{9+Te2OiTM85d+ib*?vH2*TWwc z;CzV`X{nktou3YV)&Xuh9>W^qCNp0SP~;v4vxRmp^#c`Fm|D@4n)fGfwu+BZ+`ALb z)rb(!DcASkr|GUO=KogvT;V_5_q#;j4x^EH6c!fdg$tu_MgcFKI)iOPgXx{g0Mj2s z+y(+QF)V%}M!;_m|F~gd?ar5T&Po?v`&nUUOAfa<=~n7Ae;mZalvTV80Xn~?#Q_o- zaJtgCo|}$f(*-h_SzwXWJ%10R(@R+hTKS ziCJL82k$s$*-^5dt4nV%?@Yf|p#i(Wlp7{kb?%QsH{(avSgIP~#M!C_vlO^cEjBw( zYp3(dChKdTn`hmimFT`p&t{q`#%_yn`Hpn8-Y|>GepUa;Fk`2-zqxdapSSf1sHX*% ziNJ#BbOxT0pGS{bPq(22`T_q&AA~Wg?91C+;LI=*D13Hzqgs$P6x0I$_2!1)h>zaL zCv}Fq)$#%}{)c4`hYk=9{`KaI$Mpyt02(C81}$P&x{mr=c@$eGyTdmDCUOa6Pk{Y? zA`Oo8-JILN9-jN8)NH9Z$Vc7(m{GgE=hSkdN0iw>|j)Ht(toYGru^)h$E0ty!T?MWNsmE*& zU=8q()>z+Pp;0*91~z;F;K5_l#tWayf-P$X2uZ@fqm$7`K!v%E29;<@FaX*W(u{t* zA30RT8haeyCw0GprkRKB5eQ{4u0xvuESiSVl$k5Eh@u7*z}{TlTLgt(h7R9|7f1^J zver~;Tv@*F5FntC7Hs?u)>k}c=LaC7#N!R`)vgeV1OLs58Xe%_v8Kh*!aWZjyswDa zdDV3%r*gYw-k}AOwCU=HE2(EcDUHJGn-C%4C19OU9yc0kkqn<^JMldt#hCh|UBIq2peqeE)Ne?!Quj>4|=$Q=>TFkZKI}aH7<~S4iW_oh39_`{9}5v$~@@t;ilH zqkbPu4wLmdcX1w*7)V@d8j@yk3R*;i446ivne+9tSb9aH=d$LVmQiW3E5HS8v9|T$ zS&vUFy}TZy?2Z7x7qgy0z_7+Ag4+bGMlJsHL^dGNSRXG1wKuuuPhYLwJR7tbZTjd- zGgKQ^Ts2Tt;Ltf=lE#c*q<@qyka_w4tm@N(n2`vZldsEwsTT%sZ zr7Ib`C|@Atnvy5Wa^Bx3URW4OXfiZ5E)SRZ+F`l0v<&B-dQQG>E}6a%mn#8J)7u8t zkym4lR=ab0ds$uxi*oA^-9OIp_Lw=O379(EM^MYi2lHZjpp3Wn%C8pOsc@E)Qpuy= zdjasD4@H0Pkre!5O*!PI=BiuU+PR9vJa2ETGo*97Oh??aA2XpZt`*_p{VP zAZ^~6B-!;d<}H-7(k#m4Eut*{iR6;e#a(^(l1{x!o_Scc1PYeUk3yDXp6&Si}WYL@TYNkXnAK z#L;B5xfjeh+4Oz~VAapOdF*G?;$yY2TYz12~j^&tbofUGc zB+!_BUufnqx1DHW5fO3!6_pOGEMr*$PS;j|v#5pHiu>A#^+8QD(d4MEU!gxEZ_-G ziz_*|odOJjs#*+KoCxeGDpaf8R$6#PlBX`*amF0t5r%>$ulvik4k^QN=GbhSad=?Z z6b}M8$;$Pg|6FrTc4q!0nEznf=g%rmda1>=tPlA zOK_^W0C>UY(}|zi3q+j(jqZz)brW9!sNQ|;Y@E`F$4dJQta!*{1c#BR-!@S{<~SXA z*(oL0um0*TF^|{~_MBd=8o8|9#v25dVJpGYNbf&2Dm#!A6!5FGo^2Z38aL1cP`uV$ zMqE>-Be_k_A#5rqGIut!@kWQ?({F1Cu55v?(5~;dr~#woXM6$LUqD z>?_gxYt_2D)$f~{kAX2Ybqwg+h=>pnSR_?UBFgP5!8-kdstKt$5>GTIBEZFR0<42+ zOVmk8$l#l%=3vaF+l*nF4rZN(ZN_ECTjI;{D1Oz0XrKavn+j4JiO=HqTU;#6f1p=q z8xeli_5H`+W;RPVq9HnDad#4D+_%g?=D5G&oO0pHNY5b7;{jTMW4Jz6Q( z2-r&sKZa%MzF?; zUeq5jF?VP_+qb^&{{f(ar0s|tIjMV~A_JEg;4LXP?#z%MPi(<@yLL$ZCYXp3cj~&j zx_}w5X6ZDuIM2Gb4r|*DSIUXTO8piLdY(oJ_#`Hj%w+ak85=uUhK$10T#mlbm~$BN z*C{1-+_jeGGp~1Kre&bxcX|yATLQ*-zDF1tu;YWs!wc9#1M}l&T0Jj%Vn``7&Sr%d zp={cRZMr(LU?B`5T7TNcm~9#^^`k*S5D4l_L%P2PhnrmP_rc7|gTMH*8R<&(Yo|w{ zK0(skk7A9KJy%z6)wfJ6GBGoIb(^~vFW+7Id$V6FKy`^}%zxWiVDw4g(w^u0_a=ve ziFeH>S77W=dIq$wh}+}_o6Z0@@bFHppNi89gIahVq8_Oz&oZ0WTCH!Dy`?Y35*qf2 zD};=c)JBw*oxSFF;rPm3w({aHCygh|(ZEC-=e*li%ZGz|v(uywoo%WX& z@ba}fn*-C#kwxK_A0RH}#mpT6;z(ZYkR|$IhpcR-%C5i0;H*<2$s$P&)=#c$0=zdf z;_l%Fw&;kZKnWh7bBEclc~hw|U@wlm?=N7bh-u&kEGmd(=_;E}zTZzmS53kj+^lJ9 zo2rb)Q=5FfUgUf^j;3jJwWdQ*au)~#r3cvHK-J{ue-ui6H@45d^K$~qaQ2L-6+2Hd zIgy~S>f=C7K~8>f>NnncKBuLGJG)l@(H8A3)S_sYV#M9Fb6R+SG*@^uRz5QdWR<3- zE9X0(x}7N}&8c}ZQ`+VS95QjI8)sz!ds}+}etY7H!#cvkqXq)WPh5SHE-btKfo7)P z&n1PYNH0C@9Nn^kJs3M}#X?QZE>>I3^({fyL*Rg|krnT_>Yus7&k3KA@^qo z?X?VDW)vcP0Dv}A6ql1{Z#tioK(WUT6S;g7TAt9Zo!M-42*}&sE%$-3P3~hijQl+o z5JqSTc8{HzW#CIHVU?SsbVA6P`jj`82ALJv?A=w@?IL>YX&Sz^U9NRG?)eBFS2$?m zt%UYNLH5G%i?U$>K!U^rh(Ax1;D3u9m_KdYCnfWG=8)43l2yIrpTtO^rY=DyoGe95 zlyNd|Mu1RjCL=pf$66KNR}-afgNOMHHD8uT)J>>iwFL!yFQ2xgcCvsfWt42NzA#{ zQ<;REmzisN(sd`43{}uY3I6uK#d8Qi9B3)!PmY>AHD|D)AKq*l6W# z4!YXD+5PK9T!8oavh?K)piLK{)t5`>&;Mdb(*LRZ>Hp0{&t)I|hu*ILeRuzR9=QMY zp3`?+r3b_7m{GU%??&lvZbvfW@TZ9-&#rD2ZT{i=U=k+q;5H*+W>}|p$-=jd)kj~- z8U_14vwYczT;UVQzDAqw*&7^;|Mm%Uf&Me+JGHM44YcNx4*I=kCuPzmT{TYNoBa&T zoZyV3B#uTdT7TRLh6a)w1z=-5JejA^i+^IoF7^J;121)!Z*TKoq#RKsmq%|uVOqKn zvc6XBx&ZAz{Pzd{`{96b@PEa~`6J}e_b)8qe;K#$GR7=lJ@Xc0jt|BAFgrZ=YD%wK zL-ES@7P04p)8=QsNOHUvLCUXLMs*8SS+uN;b99S4Nx4V*ZRykC=KJ;XM(o5q$J#RS zYIp;1Q{t+YYgY;IEXie;JhOxhOGd0CKDO8f7}>8W8_~xqDrx?{r!``Ik7mXb#hn>gJwnP zE3rZ?Iqb4n-q~ggsg!(f`G{??6-n$4EFDnzV^R$r-H5PmrZy>zQVMj}0JnnP`40&|9yG!op^k?FfifB?KFye-e}#z9cd9HHH^}Nawj0!y;2YNriQF zi}A+kP!^W%6N)Lw0JX8tU7O(0Qi~q=;$2>$hlGhH3V6DqPunUPXi`MCbi5Ml407i- zWgqRpEuaA~-$=Z}+^whWZ=a^gZuPlB)@s5@)+0K4y2tgub23Bmp42b*F`2U(L+mJM zHsNU=9QGqfUa$*K4jG7fmhbG`no|C%^^CSe?uR$|iGbmte(w%a0L1yra0sIZv~6H0Z{DsW8p?{sh~}_S)dx`SAIs%Zt48ZyI=Pzesy6lOgb`R^ga+ zb;sjROmp5p8ac1oEMsm3^&a1zZ*ODz8A4W+-oU|xH_KKQ9H{ChqxaSc-W)F%pc{Jp z#c?h%W5Q!*o*(}BxzWv#gmN@HS;iyE3)Q2oHO`=L1F|Fw~5w zq4y+RMub-4SA}Ln(Uock{*CbA@ig!KaQx3|pNWw!la^1dFUFi}EEB(<&F6X3yK|E& zj+5N&mOJ&E>&;&7?lPxSBy!W8v%gQbu6|%A1@7DAMb%OwqBe@!-NhF_1Vd(8F(w^U(V4GT2cw+IEFfAJ2qS|Oa}<%K&fuvH(eWcvFKT+#V-TG zSd5Xzvgd+P8ozoOkI3F^$Z;CX>kV!&$P{ssS8iGBhx^ilNJVs+3#`l3EpFr6*R4hF zD)B8B2Bm#FwyLB$p6Fl;@O2%YdY}G)?Q;g=v{6B?CJlIvmkMX;>|tnd3%@L=Dy`dx z);e);NLlLvg4%lp38uRHe2ZQMyVB*?-KITXNmFbX^CFf)1! z9kxivpmmM?Y;ZG5M9_z&qtl4*+a#J7W8{6uXOYc2*X!Iox_38VJ4GZcE@mhWe|PKv zhD#J}hdLp$-+61)%!6B18tH(L>*1UR_P8BBMsd)UG! z=%5G5`JNc5>C&@Fgy$_YBj01X+|R_`xKz0(WoP0eeD|s38MZzU3@5e`Wr+h3yj8-= zh;Aav-lOYNw|8d)HZ4)Vm5jc*{P}LduAOW+P&`P8XmjJ8Nl=7}V8?e(mk@@Y+Y}r^ zTX8EAKHWXYHX1LS-gqyG>ZZ&}hTl{twtrgmAPa}hKQO%L@Ql-+$S`5lvlK;wl| zG${GJz0W=FZf!aw*r{gwXlvCl7r#`t)qnPTyB4Wo9Z$f_ydc5C(_*f~CZEYz&D=1g zR2~_rY=o%K$?}G14QGlBvQj00{b)CTs-9-9#viV4acd_lw(Jy)p50~G=^9MYZ;mSi zH&eaWR}7BcGzvHji!R@zB@$l!7)0YY4UYL+J_$Jf-UbO2H8}mKliLj_bhB>z#@jT}|{lawLg{hgPt5X|_-p4=i z%Oc6%94xN~4oPHrwkde%`?pu)ml*B=tG0VTgLiKf3FfDiY1b^p5s!wa zfSKC&e%XQ1F0?<3r6x3=e!JwdCS$iZ8SKWU-H}3rh2rJltk%$H7}^P*4xHvr$B8Pj1eM zpVekSlQW~NIUb1wCjCO+je{oc6J(YK3WF214;+VN1H@4Z|e2~cCN3ORVL9A`VArcuqpH3VzI+c z(^4Jcse2XV=?~c|5HsFdT@rH#$1Y+PZ@ZLR4v$#$0=%bDu$zz*k<+&~3DT=@J-g;D zE=V^Hfi?dAfbHxhl9XB=(ZBQLZorz*U%)8eRaj|eJ@-CKI}twY`jY0b<_7CB@v=ugS{NbQ$8NuV7&pQ= zXm&WX+}Y3X&#Bt$7PC~v{ygh96GY>PijKT_(#WLn24cm)aU?@X>*m-VPtydK1y5g1BTGk3^OG9I+2wAtYfiKEWGThW_I1-sPmTA0BBb6XcTZcd7 z{Pk_O>JR31vu5}f>oN1UF{=zaB{9|B2O>Ec_3zd?qS02ka)+jg)5T>Se6_=sd>H<5=D=Ri~{LHl^j02!mQV49`{JGAr(GFMf>yx?M(EAW+A`ShvtM?^5k!7&LUV-m()wCPCxdoIzAF_j zifbAAH3HTVb2lkD_(W(z9d0u9HCj$T<~WP7u&AV(!DH3`n1L%I4>)QRz2zmro+xa* zHLPfKGSlL_jSZq{Ubo<#^F0%8le;0^Sp(764u`L35>}W@?&8m(G8VU@AWdsci3VOr zux&p_3|K!-?E>m}Mclm0heNxEg}~_FEgM=>4|Xv08EbeC5qY*LbP}${>p<1Kz|eYU zdLG9>jeLn=3p9f89ey8gMbm+XgvzyG+Yb6gNcngZ<+I&ydpoumPl=L~FXZOLOrhY6m3j6}Pdtp1-xyy zHNQh^ePlTowJ;OwGQZiVo)UE947z!19PUGxdvn{z5yL%>c9oLv^(8j~V@3}Zr&_sfC-mJJ99n<1!qrI@r zwR7#mQs|1`9ir{ceg_3~uzR>wIJtX~W^uKYb(6MUrL{~`-RlY5_Z(!cU%q2MEdjB{ z?~N{oJW-4he!A~#|0^4>!Yo{y)LFG|9Q5AMFX5hTYa+sH&@Ij*NfzH5frOaUlbMZ| zJc=ZnLM!AX6$ngZKp6bwlO#~THtR{7uDpx><@cvhiY-IIfy!>KiFR9<&lES)PEMG5 z7=GPw@SW5=>qTxP7FwoUHU@H#1D}QBD|kK%k6V-o3%evD&MZ&Y?~!GkouDe8`ngl4O;=l&iQ)3tWjN&KxdkSN9RYDVF&F*zatqxCmOL8 zxJ5v+w%%}FFgg$3%&?bhCw-vZW5xvWkC-KS0^%0=~n zeaY4*CU?7!nX_Yqz;KDsIp+3LfA*CJ&< zw(zTJa%RWY*|nq29Lg=?imQ94Z%?|?ekR#sV+QF#vqeu-sHeJQp?;xcJ+|fiUkHUV zYdn`q9!IO+^Y*KR`N1<6qa$p*J=IC6_}&*IakrTkWl427)TZ6JNWF}ma=YJxYj1Dw z2f@PurTP-Od8tl0z0S~2DAyttnLMsiB?am$uVL2J8e)<6l3&li%&<{sMv9di7O5w) ztszDQKaj}A+r4l1E=`uxaH-dSti5drSVo>REe5HT>l}-Z!GJLoni@&uIZgn(+9Zgy;_KnkLg1 z2pQe`4?@dBobzdYb(NDG9m&uo zUSw7JmTIt3Oi{y5@mFa)bM-)3kC|#xfi5g=xYs^IeuI+JtOFm!Uz!mq6(b(Z8pWCf zNE2(h>IOPlqR-~4B9vEy%?nd~Wt;geY7EQ9;7IE%b-V3?gk%>6mtIekm-#+b00dg~ zb~3nQR$&P1tQ1}7H2-b{8)pvOeVB)qMS5pF1OU=5@!+snEK~0NHFa9+k>P69=CO0x z&tw`63a{YdL}6fU6 zvdq=*%?ihgxl5R5d-JP8lZ`&@W(C21n0m+C^R#oWb;?!G2D{dbU->{iK&|nMioX=& zq;N+eXY*LFDRHCP+g!S_;3%%U(aW|Ut#^$vACmhb9bj7Hhwrkhsf7L2C7W6`Y!^}3i75!j8KBqH+=9JGsyv$>({v)n&<%v~(cu}y8N#%;U>P*hrikJ5H=^^LWUrTxf4RwPK6ut7cC56##lwdsGo`x3tw=S0 z0MH#$kDvOHnzl+sYRBx4R>_RFTWeLcXA_xB#yXlkBQ?`3PTWV}ut8)JX_6eY=xvLP!AsQ8Fr^oC1I@GspCe+2V;Qcj21t zb*7&vqN~h3up+gW76StSc8QztR1wXzN<}BLLg-!{P5_DKTMx{a1OWCTIRyY+ zY3`^ZYKtUf6Z?)i=5BPdJ=-1tU{8`$0MI*TTp+V`*(tE-dGm%2b0-v$kOBY_Ku!Tb zx0>-*9aDDBal&Q3w0PNFT+yVe3%D)2u0RR63u!^t% g000I_L_t&o0H0}Mrwcw+T>t<807*qoM6N<$g2R?4LjV8( literal 0 HcmV?d00001 diff --git a/app.vue b/app.vue index e3b7471..b26e5f5 100644 --- a/app.vue +++ b/app.vue @@ -1,22 +1,76 @@ diff --git a/assets/css/print.css b/assets/css/print.css new file mode 100644 index 0000000..e709904 --- /dev/null +++ b/assets/css/print.css @@ -0,0 +1,116 @@ +@media print { + /* Hide non-printable elements */ + .mapboxgl-map, + .mapboxgl-ctrl-group, + [aria-label="Map"], + [aria-label="Keyboard shortcuts"], + [aria-label="Toggle dark mode"], + [aria-label="Show map"], + [aria-label="Show list"], + button[aria-label="Export trip"], + button[aria-label="Edit trip"], + button[aria-label="My trips"], + button[aria-label="Remove place"], + button[aria-label="Move to another day"], + .cursor-grab, + [role="dialog"], + [data-sonner-toaster], + .fixed { + display: none !important; + } + + /* Full width layout */ + body { + margin: 0; + padding: 0; + font-size: 12pt; + color: #000 !important; + background: #fff !important; + } + + .h-screen { + height: auto !important; + overflow: visible !important; + } + + /* Left panel takes full width */ + .md\:w-\[45\%\], + .xl\:w-\[40\%\] { + width: 100% !important; + max-width: 100% !important; + padding: 0 !important; + border: none !important; + } + + /* Hide right panel (map) entirely */ + .md\:flex-1, + .md\:flex.md\:flex-1 { + display: none !important; + } + + /* Trip header - clean print style */ + .rounded-xl.overflow-hidden { + display: none !important; + } + + h2 { + font-size: 18pt !important; + margin-bottom: 4pt !important; + } + + /* Day tabs - print as headers */ + [role="tablist"] { + display: none !important; + } + + /* Place cards - clean print style */ + .rounded-lg.border { + border: none !important; + border-bottom: 1px solid #ddd !important; + border-radius: 0 !important; + padding: 8pt 0 !important; + background: none !important; + box-shadow: none !important; + page-break-inside: avoid; + } + + /* Hide interactive elements on cards */ + .opacity-0, + .group-hover\:opacity-100 { + display: none !important; + } + + /* Show text clearly */ + .truncate { + overflow: visible !important; + text-overflow: clip !important; + white-space: normal !important; + } + + /* Scroll area - no scroll in print */ + [data-radix-scroll-area-viewport] { + overflow: visible !important; + height: auto !important; + max-height: none !important; + } + + /* Page setup */ + @page { + margin: 1.5cm; + size: A4; + } + + /* Ensure text colors are black */ + * { + color: #000 !important; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } + + /* Keep badge colors */ + .bg-primary, + .rounded-full[style] { + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } +} diff --git a/bun.lock b/bun.lock index a9e3c74..7966300 100644 --- a/bun.lock +++ b/bun.lock @@ -11,6 +11,7 @@ "@vueuse/core": "^14.2.1", "baseline-browser-mapping": "^2.10.0", "caniuse-lite": "^1.0.30001770", + "canvas-confetti": "^1.9.4", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-vue-next": "^0.575.0", @@ -29,6 +30,7 @@ }, "devDependencies": { "@nuxt/test-utils": "^4.0.0", + "@types/canvas-confetti": "^1.9.0", "@types/supercluster": "^7.1.3", "@vitejs/plugin-vue": "^6.0.4", "@vitest/coverage-v8": "^4.0.18", @@ -387,6 +389,8 @@ "@trysound/sax": ["@trysound/sax@0.2.0", "", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="], + "@types/canvas-confetti": ["@types/canvas-confetti@1.9.0", "", {}, "sha512-aBGj/dULrimR1XDZLtG9JwxX1b4HPRF6CX9Yfwh3NvstZEm1ZL7RBnel4keCPSqs1ANRu1u2Aoz9R+VmtjYuTg=="], + "@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], @@ -587,6 +591,8 @@ "caniuse-lite": ["caniuse-lite@1.0.30001770", "", {}, "sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw=="], + "canvas-confetti": ["canvas-confetti@1.9.4", "", {}, "sha512-yxQbJkAVrFXWNbTUjPqjF7G+g6pDotOUHGbkZq2NELZUMDpiJ85rIEazVb8GTaAptNW2miJAXbs1BtioA251Pw=="], + "chai": ["chai@6.2.2", "", {}, "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg=="], "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], diff --git a/components/DayTabs.vue b/components/DayTabs.vue index a6e4e31..7efdd47 100644 --- a/components/DayTabs.vue +++ b/components/DayTabs.vue @@ -12,16 +12,42 @@ function formatShortDate(dateStr: string): string { function getColor(index: number): string { return DAY_COLORS[index % DAY_COLORS.length] } + +function parseTime(timeStr: string): number { + if (!timeStr) return 0 + let minutes = 0 + const hourMatch = timeStr.match(/(\d+)\s*h/i) + const minMatch = timeStr.match(/(\d+)\s*m/i) + if (hourMatch) minutes += parseInt(hourMatch[1]) * 60 + if (minMatch) minutes += parseInt(minMatch[1]) + return minutes +} + +function formatTotalTime(minutes: number): string { + if (minutes === 0) return '' + const h = Math.floor(minutes / 60) + const m = minutes % 60 + if (h && m) return `${h}h ${m}m` + if (h) return `${h}h` + return `${m}m` +} + +function dayTotalTime(index: number): string { + if (!store.trip) return '' + const places = store.trip.days[index]?.places ?? [] + const total = places.reduce((sum, p) => sum + parseTime(p.estimatedTime), 0) + return formatTotalTime(total) +} diff --git a/components/KeyboardShortcutsHelp.vue b/components/KeyboardShortcutsHelp.vue new file mode 100644 index 0000000..8d4774d --- /dev/null +++ b/components/KeyboardShortcutsHelp.vue @@ -0,0 +1,51 @@ + + + diff --git a/components/PlaceCard.vue b/components/PlaceCard.vue index 630d334..7e3d525 100644 --- a/components/PlaceCard.vue +++ b/components/PlaceCard.vue @@ -1,47 +1,356 @@