From 2910eb15bd875786fcb28ad033b45384f5cea2d5 Mon Sep 17 00:00:00 2001 From: Pihkaal Date: Thu, 11 Dec 2025 17:16:00 +0100 Subject: [PATCH] feat: display projects as pokemons in pokemon platinum --- app/assets/app.css | 8 ++ app/assets/fonts/pokemon-dp-pro.ttf | Bin 0 -> 326856 bytes .../projects/bottom-screen/background.webp | Bin 644 -> 1772 bytes .../bottom-screen/project-square.webp | Bin 176 -> 0 bytes .../projects/bottom-screen/selector.webp | Bin 112 -> 0 bytes .../bottom-screen/visit-disabled.webp | Bin 288 -> 0 bytes .../projects/top-screen/background.webp | Bin 400 -> 1010 bytes .../projects/top-screen/scope-badge.png | Bin 1963 -> 0 bytes .../Projects/BottomScreen/Background.vue | 26 +--- .../Projects/BottomScreen/BottomScreen.vue | 4 +- .../Projects/BottomScreen/Buttons.vue | 56 ++++++++ .../Projects/BottomScreen/Projects.vue | 85 ----------- .../Projects/TopScreen/Previews.vue | 122 ---------------- app/components/Projects/TopScreen/Project.vue | 134 ++++++++++++++++++ .../Projects/TopScreen/StatusBar.vue | 59 -------- .../Projects/TopScreen/TopScreen.vue | 7 +- app/stores/projects.ts | 116 ++++----------- content.config.ts | 13 +- content/projects/biobleud/index.md | 7 - content/projects/biobleud/index.webp | Bin 0 -> 58 bytes content/projects/biobleud/index.yml | 14 ++ content/projects/biobleud/preview.webp | Bin 1228 -> 0 bytes content/projects/biobleud/thumbnail.webp | Bin 164 -> 0 bytes content/projects/lbf-bot/index.md | 9 -- content/projects/lbf-bot/index.webp | Bin 0 -> 456 bytes content/projects/lbf-bot/index.yml | 15 ++ content/projects/lbf-bot/preview.webp | Bin 1514 -> 0 bytes content/projects/lbf-bot/thumbnail.webp | Bin 260 -> 0 bytes content/projects/lilou-cat/index.md | 7 - content/projects/lilou-cat/index.webp | Bin 0 -> 598 bytes content/projects/lilou-cat/index.yml | 15 ++ content/projects/lilou-cat/preview.webp | Bin 28114 -> 0 bytes content/projects/lilou-cat/thumbnail.webp | Bin 2810 -> 0 bytes content/projects/pihkaal-me/index.md | 15 -- content/projects/pihkaal-me/index.webp | Bin 0 -> 442 bytes content/projects/pihkaal-me/index.yml | 15 ++ content/projects/pihkaal-me/preview.webp | Bin 672 -> 0 bytes content/projects/pihkaal-me/thumbnail.webp | Bin 92 -> 0 bytes content/projects/raylib-speedruns/index.md | 8 -- content/projects/raylib-speedruns/index.webp | Bin 0 -> 478 bytes content/projects/raylib-speedruns/index.yml | 18 +++ .../projects/raylib-speedruns/preview.webp | Bin 502 -> 0 bytes .../projects/raylib-speedruns/thumbnail.webp | Bin 162 -> 0 bytes content/projects/s3pweb/index.md | 7 - content/projects/s3pweb/index.webp | Bin 0 -> 58 bytes content/projects/s3pweb/index.yml | 17 +++ content/projects/s3pweb/preview.webp | Bin 1072 -> 0 bytes content/projects/s3pweb/thumbnail.webp | Bin 84 -> 0 bytes content/projects/simple-qr/index.md | 7 - content/projects/simple-qr/index.webp | Bin 0 -> 910 bytes content/projects/simple-qr/index.yml | 15 ++ content/projects/simple-qr/preview.webp | Bin 1160 -> 0 bytes content/projects/simple-qr/thumbnail.webp | Bin 118 -> 0 bytes content/projects/tlock/index.md | 7 - content/projects/tlock/index.webp | Bin 0 -> 660 bytes content/projects/tlock/index.yml | 16 +++ content/projects/tlock/preview.webp | Bin 762 -> 0 bytes content/projects/tlock/thumbnail.webp | Bin 130 -> 0 bytes modules/content-assets.ts | 51 ++++--- 59 files changed, 393 insertions(+), 480 deletions(-) create mode 100644 app/assets/fonts/pokemon-dp-pro.ttf delete mode 100644 app/assets/images/projects/bottom-screen/project-square.webp delete mode 100644 app/assets/images/projects/bottom-screen/selector.webp delete mode 100644 app/assets/images/projects/bottom-screen/visit-disabled.webp delete mode 100644 app/assets/images/projects/top-screen/scope-badge.png create mode 100644 app/components/Projects/BottomScreen/Buttons.vue delete mode 100644 app/components/Projects/BottomScreen/Projects.vue delete mode 100644 app/components/Projects/TopScreen/Previews.vue create mode 100644 app/components/Projects/TopScreen/Project.vue delete mode 100644 app/components/Projects/TopScreen/StatusBar.vue delete mode 100644 content/projects/biobleud/index.md create mode 100644 content/projects/biobleud/index.webp create mode 100644 content/projects/biobleud/index.yml delete mode 100644 content/projects/biobleud/preview.webp delete mode 100644 content/projects/biobleud/thumbnail.webp delete mode 100644 content/projects/lbf-bot/index.md create mode 100644 content/projects/lbf-bot/index.webp create mode 100644 content/projects/lbf-bot/index.yml delete mode 100644 content/projects/lbf-bot/preview.webp delete mode 100644 content/projects/lbf-bot/thumbnail.webp delete mode 100644 content/projects/lilou-cat/index.md create mode 100644 content/projects/lilou-cat/index.webp create mode 100644 content/projects/lilou-cat/index.yml delete mode 100644 content/projects/lilou-cat/preview.webp delete mode 100644 content/projects/lilou-cat/thumbnail.webp delete mode 100644 content/projects/pihkaal-me/index.md create mode 100644 content/projects/pihkaal-me/index.webp create mode 100644 content/projects/pihkaal-me/index.yml delete mode 100644 content/projects/pihkaal-me/preview.webp delete mode 100644 content/projects/pihkaal-me/thumbnail.webp delete mode 100644 content/projects/raylib-speedruns/index.md create mode 100644 content/projects/raylib-speedruns/index.webp create mode 100644 content/projects/raylib-speedruns/index.yml delete mode 100644 content/projects/raylib-speedruns/preview.webp delete mode 100644 content/projects/raylib-speedruns/thumbnail.webp delete mode 100644 content/projects/s3pweb/index.md create mode 100644 content/projects/s3pweb/index.webp create mode 100644 content/projects/s3pweb/index.yml delete mode 100644 content/projects/s3pweb/preview.webp delete mode 100644 content/projects/s3pweb/thumbnail.webp delete mode 100644 content/projects/simple-qr/index.md create mode 100644 content/projects/simple-qr/index.webp create mode 100644 content/projects/simple-qr/index.yml delete mode 100644 content/projects/simple-qr/preview.webp delete mode 100644 content/projects/simple-qr/thumbnail.webp delete mode 100644 content/projects/tlock/index.md create mode 100644 content/projects/tlock/index.webp create mode 100644 content/projects/tlock/index.yml delete mode 100644 content/projects/tlock/preview.webp delete mode 100644 content/projects/tlock/thumbnail.webp diff --git a/app/assets/app.css b/app/assets/app.css index 4962f82..70849ff 100644 --- a/app/assets/app.css +++ b/app/assets/app.css @@ -12,6 +12,14 @@ font-style: normal; } +/* NOTE: woff2 version of this font doesn't work */ +@font-face { + font-family: "Pokemon DP Pro"; + src: url("/assets/fonts/pokemon-dp-pro.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} + * { box-sizing: border-box; margin: 0; diff --git a/app/assets/fonts/pokemon-dp-pro.ttf b/app/assets/fonts/pokemon-dp-pro.ttf new file mode 100644 index 0000000000000000000000000000000000000000..92b78c298f9f2acb27341d548c3682a17bcbdb39 GIT binary patch literal 326856 zcmeFa4cuMXbojr{IX5Oum>DuAV>0qGZ$S_QsRkQE2SJ!1D##E7K@b%L8)>B)M1@A1 zwozfy3W7mYTDz6jlvLB2YD%<0-c(dtsiu|8^Z%~3_dfUB``mk<`y|o+`v2tQv+mk^ z?e)Ib-sk0>=SB(;e~7doh#b6S+Rltm`w?lm z%F~}HrAe4f1s#6JxNo^cS0OtlzE&xGUN4szp-cm9R2IKhY>)}kDp4yk5+bJkAlajA z(HD^ea)&R`y-;a-JnqItPZKB8e^!=m#EVqEkm*G+^4B<2_|l0GnG`<*2f&Lf9H6)X zMi*!bnGUzLGmi8~%RIfX@^{L#b@t-#q>Zh=lfSoaNpWPXGR?O3Gq`rU&I4oQtId;n zo7fE)7vz-}T!hrtz5;#4Hm-eIrAuSlPf*kHm@uY*XU5}%EE`Sp-IfdDO6Vmx>*|G- zrxzWX?}C1OXGQO4U-PbDF-cz^&&qb6xJT(Mvwii)|J=aanxqcW{MOj=0A1&~lC&Px z57)yNi8PZ@o(!2cjo0)%4zA;D(7O3ba3mDM#Eg=Ezd=AZf zfR5Gj($Gme^LAsdMkT`SK_o&mjt+m-CLS1QJNI*2aXOEgPxMQ{kA$_YGKw>d($9Dg zn(smD#n+EEN*S)63>W?)i74{Xz;?wcGcQi1x(?PgvKHGCoEswUI=YT}dxhfrb1BUV2 zc(UGZ?8np*M%l$9Y__9}>`EyxlUnpRw;f#oG7oJM-@1GChTbU_qW%W4B+=^tedB)r`gW@ ziY3W5#&xerevk4|=doX&d#!^G-hga^L3(N#c(pEi?i0ShA11GI%A>d+$bhkKnLfOl ztG@ctVL9p6)!pybq5URgerWaiL}`6^G`H%P`POJ#KOm<7y#plnOC8g8>UZ#X=&r5T zcmgy99gAzU-A{C#Lj!61Rr?1m+o);qn{LG!lux12uWK~Zb&X{{4{sA(l2w|vB|)Y) zv5w__ZhL6|TcEy--?q0HyzM&!k@Uy_|}Jbv2)?VUj^4#*AzUApt$F&6HqJ+;$APd9Cte!a)JwAXdvemeTe_2bX< zesYaZ{hk33by17wZT@MV&TA zj=OdClu`MRbRl2T?*YEP4ux0s_OqSW!KiU$YJVi!taUP`xmLS1kE5-iw9ueyKZDZK z81{TkchD7lC#X-^uZ+8S>V7cY8h0C1pY|0G0%_Z+`JBl{e?w{y($QyZl;46bg+Bbf z=ynZ(jACmiS)BvRXA|ofeYI=0Y4^%)FFS*1rprgao9(_bF7n#A`k;Wkh#)Q%FquzM zG5Mp?n*5ve4-?xR#Da@@2u8WADVFg z3D21Dyb14^@XiVExyvK3{L-{br(HSivD2P3?U~b_HSO8co-^%D({7ozd)haqeS6xE zr=6H~`}Dg{zi#^c>DNzRIsM(!H%|Z48Rd*S%(!UA-DX@i;~q2aIb-^anKQ1QaqW!z z%(&l-C(l?kKYP%!_7TGV|^;?=f@w%=^rI@XQ-#E}D7M%ooml`^WlZ`iALSh;zb>I}_)nGcKQTWgX|eiStP_Zk+M#85@XGW?ne+F2s51%*$t9IrEyC zb1lxLGndVL+st3<6Q?xdd?9hpoxPMepYYM=-hA!N%WwYmn|IuN@@Iv{Ir80+FO7V9 zqf2_nK3ebWZK9*N3I;XV&onpmycZf(-$52 z=#dv4S$5?4N0uIW?vdvlS#sprM}GOp;v>&I@{A*kj@)?UsYezbdH9j}N9G>6?~(HG z$l==$|K#wF!=E_3?eIqqZ$13s!yh`l5yjzV^^J z5B>e2+YWu>(B4B|KeXr2t%t&)PaOL2p-qQAaOe$(Rv&uVq2-63b7=CxV+Rj>?}gu6 z^u0%Y?-Add|Gf*pcc<^}{qEm<_tW3q@!d~;cl$qm|Jz^q*36rZ-}Fy6OdgDn5Ul&%pT%oX^1d44luv`3#)T!1)ZE&%pT%oX^1d44luv`3#)T!1)aP zpUS}bCz9u%NS=Qp`G0E3o_F?q2F_>TdE;Cu$oXW)DW&S&6!2F_>TdE;Cu$o zXW)DW{(q5yJB>*y0F9vP^b^}L6u7v+ebY6K%9kNe?|4G<*@=}qfVD~AzL>5ASDz=`wTjXg=0Ay~&?xOj?dSJiE(;cuuxD(fRC+B1>ApI^d+pbHL9zD)L_n`c*U(Euf*=kSwIkZ6>_ga?$sMaUNaYfwhG==J49Z4F>s5>ugn29 z0LZ>>KClirF0%RtU>mSU+K z`dg6q(EW0ex5E3@%_47ez+REJuM=528`v%Ks|$f!MSksiAc(w!{yPqctb_m8(fRB6 z@Xj?NzcC%a_WDJ@L6LVc{%$Ao9&Ee^of~$Fym!6GZzBIb0gj4n+$HjU#@~;<4?z3C zCg7yVZ+VeTvw+YC0yY9C zL_W3%I3}`v9yr|NL}dyU0%DcHSoP1;)Q{LgbHE0PueiyI}CihOw?fX>~Efm0%Xu?0ZaU(o)`l>qj?vQy;NT_S(AN93#X zf$bt+n+hPeXT8W@&jDzE9h-l1F|bNxFXMaB^S6tDeIkFi9Khx`Hj3N^|82DYezV9o zuLll@{KEp^IHwxy|Kn@`*>B;~x2FKK_b(Lr4(;#UD)LX;MgEyM4@?3!h9mUTdtQPr~iNG0ppRq-XnJr+Q6r3-Mt5!>KHT|ns z0?1qg-?hkHyHkqmrUDxQ=(A=6@Xk6Z#l67y!sfk~0JlhSpUHp+7@Lir*+-?g?^574 zDekvSiuNb#e?Sqn}JhO zJY*qoK#GSV|4?M+F*a|D6u&SPp#QL?z%eO)aVr4-{6zpd9zF|z_6YbMLI08HdE{m( zIG+{{Ifu-nmH`K)cr^GiQvll6-y+3hS4i==Nx(iSerb~wH_QcYmE!R`q3pgOfQ>Fm;@f75rg3Ll}ESv*u1n}vp zR|D&$cp7|9yB^pk#f{Kzg#X4Zz&Lvi_g#9EXDI2uvLnsEnp3>O^TbQ11o@2Qat|#V7C-6xEQ!aie<jQ*(k+JuLiL7vg-lHRv^0qe^>04;^j+$?NYpAK7jA9 zTnJ!i`=rxa_a0$z$=oevz4;@4J6@eTo&0m!VI4eXGD^Lp`4=`YFI#fd0GC z@vePRyn8utP>T1=1-47E0i7H0`@QIR?|LbIb0Xk@lTy47JMTLt#l|&KynhmauJ@mk z;seC^fjv_E))IccxCJZ(@Z*En`ye`g8{XeuA;s^Y`*#jVv6=Sfol^WRgLH-teyCq2RS@e7szR%+4=V*U!HLzET z&))#tCdJMLz(Fa#um(WqAJhNi-BNsU5wITEFU79e06PC}GP1kZNbwi&|K%iLpA=ug{;l})SM>i1dtZg;YuNhQ9x3*$l;W=^ z1H|-o#=m|*iodx0*Djd@bsHW9$~-*1)Tn{$EPQv3tF|8Pu-eRF{2 zz!u=R6#uwgif_^X_Ecc66#M4`yQKIIeBVL-JNWQVlYvFRMk)STfE7|4SRloBTfnVS zd=J0B5C8XXlj7hiDGtpB_DOMgtrSPld*l`=j!p&`I|}~~p#5N@6#p^_*eS&iS4weg zB7jfFj!E$&V)zj<|2hT0mml9C#c}li8~p#a0@x$Pzt0BNOYsx@`3ZV|5~MgW34rz= z;Q!bz#ZMOi=>E@TQk+EoIRV-o_^s|c?3eO_O;S$00k}=dJ1zx| zNqMIYQeHS0*e&IxMZg{@?|eOQRLZ-om+~U`FM{vlHNXieFF^73Det!y*em7zrvht${Zh_Beh%~pkk1Dq^C0|skm6HP&Rq!H zD&>R8>w|Yn`4HqDvQf&1&I7heIS)VP-6G{L%m!8iyQF;BTwptZyj7*$5+3fk%STNCu=8l_JbD9gT*}960**>~J^kxXNcmXgA2%IXE9EcE z2i5~S0eEki1uO;VKYk)W`|uLbq&k9oh@_GQ;vzJS`1l}d_HqGM1Nig`_+A13E7A8#{D0*>DOW;U3Gd1S zQoaiRUIp)~(DCZUz*=Chl&_fsYyi-^3L4i2DRr4bb0!?KeVy<0^pmn)v|w*6f$^P4K*FBLMx)@Vt2`utUnX zTnuamj!Eg!=dt(JWdO9d(tg`)V2zY-p9tXp+xJSj_67hScs@}6>TxN5ZIhJmSOA=m za@{&9e|-*s>^rgj8&?C^T)!GPDCN5td)IAJzK0yXXB9x3>xXg!_TCGA?=~rab2_kH z%J-r3eW#?{xCnsn{SJWsfqB4wDSwL?xOONvos{x}$p7|Sfbrj9{CDtg^KvPFcM`B3 zfdBVa0N~$8&+p^Q7JS*_fn!pB2>(8`N6J5#4Xg*y$+Ls3G9_}8+x~a|8OC&Man;#1i<%4@O=#VkD>o#$a4Kqa{W+#d@`^W zI3?vLZjthn__Ct~tOTHaia0)XLds90<1^U#%uy+CSpe*m^0QNcb-*zxKergb?&q=l zdGzmGCFK_c*e>NC&jSuh`9*Z@LT1+vDgOk$e}eu$rTwLefR{2b7VzoMko&V`z-}r3 zd=>!h%Ts{0z;P*eGqxKWf3XHQDdk^omhvl%f90r@w_@+F82>79eRYqNUxVjsLCQTX zU>UA)!h7_9ls|y~2S=s+7xeuL{``0)`5)`0{OKHE zpOpW(M#_`uJ$b8?|Fsfe{J$Ch*%V-#l&8>ldbO0d10$=Yl8Jzqs#qvh$?qYQJEf{< zS0|)utp|=vHDQfZcYt=mBw&|R6TuT#0DGjm<4URSgpNC*rMl;4siw^Vpikc*)eK~2I;pNg|5eANx_XCH*GvVVUlXLd z_F@3}>m~x=S@dUZlj>fJf#Xu$dy7=}St!-)DN@~6q`IHNE~)NMzUH834muvNOsWSW z|3G*jG*7CzwCC=V>cPu_lTtlo32=*454{>#C)K>!z;3C2f$@i-?_ryy`bEZmkvz}e zDb>So0QN}rh*eTOvIT6E%1r{cN%bgXAC1hT@!`>@q6Ck3TP1Al0%-0JfLyl8WYTB=%y$ZS4&IL|M^((7@ zV^Y0tvs9~*Sq<&=+ogKL8mZn$|Bdw5?33zEw@CG7WZ&YY@=K)RoL0SUg;Z}xel5Je z%Gj^%l6ObVyQmwrP{efsxQow>W`gNU&QXNg;Ma>52c`Nm#{X=eRDVt^e||u!FO$bFL*Km;I3?9zkkh}|3GA2ZFQ)@* zrTWTb0NSl{fZL?{s|`|pbs~W6ub!0ZYsh}>s8oB6q#Q<`g6RK~b`yVz)wQreJ|2PrYB-OWw z^;^)tjlbXCC)IxJ?5F*mB~ty<6si7Mq&fh6cQSyT?_vLY$EEuIcBu}c^WZvQ4*=~D zJcs51$R64VpzrWhU@3s?5!y$fbIz!at_Ai=^@Hny<-o1LF{%FLYG4(xNva?2lvCxKpnnf9tt)6>u|Zl>p-(*_tt+v0&*{JpX-$JR zo$=}Gr8Q$SuwPnN;p^42rF9Lm*U_G}Qd;-gE3JFa0X6`~rN#NBb)RF>n!Qe1_q`ZU zOg`?1?)%*$t^3cC)*J==c>w-C0RJ8c-vd`k>p>F%^gjrjbC&?fJs3Y8yjofhSpeX} zL)QX3q&06cK&-!TJrJbzu=xOT4}<3y7X#aXlhT@x&4*6`7<)Klk5~bmlGY>9_sGq{ zBLQHUv>vroT92L!F#hOW(s~SfAA{^;j!El!#veN!SSzi^!T&gP|I*dKZfWuTZtI31 zE$%5>PnZoL^F-o%BDxn4*Mim3dQuD6034Loli_>v0ckx2`%l>?t%d8Q^;GINNdqz0GX$+1olen8A||op1DR^i?0T5mDaNam-i2?4eS7J15Qfo1?YYOI$v;H zTFbDz?1Z#lxJgRJ% zrP6xkbYPdXRxSZfN$XWxr1k1m(s~W_*Q}S;s<{BP*V2FOZU7$c|5~qu|8@JNwR*X< zUVkyLQ(AAB0^su-;CbU3;HdEb#mNNWD85*7Wl4J?|3}(I^t+GOjx6Wjk7U!x^5U5y zBQMtW?R!VQsIn+{pnPlOTDhBiTfTMs6N}HLww(TV^vdY~M=7+#m+U5TLEC~+85s$T zf;l`r&yN~`Z}%!!_`>y*Q*M=mhsFqyu-W7Paue)LYuoD%tnRCHXoKpkeWGo?C7kIU z{2}^1;<86gJmS#+C^o4EPV_29Q98@dRYQ2Jt~)W$ZVwTg*Pb@e^s@F|={oMZ#(nZ4 zM2tQ-415=cUdPQ?M>GN62`Xj(hhD}1+jps4CD#oZ3*ppO(UJYnH0yilj4912#yZvA;%>d;uA}f0eN331^)uGYn|1ZoyooEA&(u%jR$D{bMx*%-YT~-~ zeWZ`WHtVw>J82*47jx2UHl0P&u0HxHB4ORand>mmKrIz4A93z=O?dJjsI`uLS@WAU zm}FZcttLfl$T&;!_G_rR2j8)&O}#M*P+f6eDV8Cy`KwrKMC(E4zpfG8hw62tO>cd* z6M5*Hji^U^v5tH>b{#pm74&fS*%RZbw>bS6SUAg}C+$&r4PPc#40E37u4?lLZKKw% zIto35uz6Tw$@ff$xf^oswAacG=($g|dW=e0l7lxM@ahek%2g({w}OiuT#uC=dRW)Eau zN2x6BjOvU-M;tR9Ik<+yZ(lagJ#qiPs@q1r5q375m}Pt%h#9Rt%$_!}RdchZ&D%ze zXOF!~bL7ZwjX?HGW^%GEi{#U0cq<~QadpF6s$ zr#+#$Zt*}Y8jxit;d)&AK|fL*g@kiXee9zLuEt93+&A=!`Lc1{FQCmdg3K=;v9&{^ zo#~J)4i~Y;W!d-iqlUn^ixs8SVH}28dx;)#x)TgyF>4j+%1J!=9^2XZc~pLt%K)h) zVf#6~l*f{W?(iDj?I1hn2~=qK)OkQL+Q+lakeuc zqxaAL_c$Kz0O;YOZN)|d_t-N%R6x&d?2)dkf;z7!x~}+hq}>s6?P%IYLg`{ew?}OE z)3(obX;L3;-X-TeV$3tr%!Ou8`%Dcj)75$Bpj047YT1@jDFMj1GpG6bb5zB|HK{qt zSvA}AHRdrgn>f^ylwGe9XmAO)W9X5O4(;e_M4}pj(@&ZmhcuPo)Ti5BsTi<+!mPO15766lF(LbA8sXI($4b;_u-VLy zUd?pmJI9iJ%2uN%CgvL+MIAsoon(Q7~GM~Xk~4de`J?bLptt!Lb7#WQ9e z*_CAIkps`TgAS6;bAHam6}@Y>u3?X4NE%#h*BS@V;e^|=6LInrU6~%#U#ceeGhcfh zUeNZ%qYd*vt*WA?2>^w>PQo{ve;DMD#tV)lxXXr#+Z`zX)CTTs?hO34;)Eo%=-3 zv9L;@SUw_lefwz-W4wy%Mmf`*WgYBS_$TB#uC)%|>hiFMww-Z(Ua|XaeVW># zFRoMd!T@A5uKfUjE$Z0zIupbRRc9$n-5!Vl8Y4rWt4%f_gIu%}*G{@Kh}z7ys2kbCxHR|Zo(-F;B z<0_e&<(is*R}4}wX2aH) zQcH9wCHfzA@jarhlJ1=^aam57e{B1DrN?*?H@Pk^Oagv8T(qS$@)monZ;b@$JlcI9 zbP?aw_N?!8UPUfxZ0k^(9!_T_Vw)}68ZC#jmP#4K`;&Dl z*2Tf$tfJGrqhy(PhZG(V>wi8wxZN28dgAxF6^Saq`(laAXpR*myCK@zbIda}yplALDa5L}e z`DY{V`xH2BzHWJyM;>MoRZCgh}8cg|F8nIEhB#_} zvNep>G%VIW`Yt+M;|mE}ufu286@xcz-Xc#@7F#Euo;_T>C+PQ-qvFsR(0XXjSzgDc zJ=uu=wcdzkP9+?gKzdIn?Y%8tp*^@H0pYE6}V`{=GJSx9N@-WJIhJ*MPu*m+c{$F>m02`-DOJC zOib+05sPlHIy+1a}ztM}&a)b}{d})v$x+BfXyI)E~tcBA@Ly+Rj;VF``lZHr?C&yEHGE-i;;c$#mYoU`4o6 z&y3AnqRrxQ5wm7!wKL1kgocuTCKs=XnzU*p?736@hZQa zbsKV;<)i~DUgK+r_qm_4WxJW~@yZFmeG}X~$4QdUa+)n??|kYCI*VsKRJX^XHy`UN zQEQE7Ja>xcgtB+8ht9NSSv6TERSmBBL%j!h8%?pmab|rz7qH%0trM8P zcsMkpP**ToJ)g9w19-=L*R*$y>f6}&lKaX7Y8&lB9JAH8QnP0vdZ=&YdMUTGNrhXD7Dn?qo0LtlxLiNUB~tT#62C2iP*| z&93%F+Zt`Vlwk7}_lY{rdflsPbT#HAYPM@ty!Om;pE*#uIy=GqF#2=K{VGqR;(0b5*9dc;vSAsA zOF5~Zc1!hntCL>O7L_}QNo5(brP97l)s<*mT61VC$67Z5eq>A!ZN=87On{e*2zHE5&yuy^ox_k+!-hYTRC{}i8T-@Yp^1G|#0r+9^NW>@L~9~_{E zvpR`>(bm4roNu@5D>XJn-;;`eUvw5{GqV;jh3?uC?Hs?ZNFB@jQC+c#K6GB9_Fyr2(?~m6bg7?l zru#Tf7F^^tOnX#r^jt4pb)tV?rnT}Qd1zk$^@(ffMq_?OZP*Uw#oF4pdPse3p9a)x z1DEoqSZUy_FXu7mHRl-)Z`?k`?z2>%I&#qqY-c%VUJXmPbCy1bD8<&;g?7(gpFKJg zWl;t63kP<(qlv!6G5m$Y<}QF~D>pcpq}Mi4E4K4Ax%F)3`Cg)r2aU5e+Oj> zL{B)LGqQbs(r$AoWtR4}pAKJwq~~|%(ie=HwQ>8Bp8qy{xngiFTW*P?o|#}dhrkh1 z+tE&7Ri$kqAN4E^$dXCgtRe*#N#7}S_&9B_ms(ZXgK>L`U6Va?kI~Sc=Q5mwn#(?A zJYL_L^Q_;<4EGmj*;HjA8-9MAdstXSnW2+@<0 zuI?Xk6-I1Vj}D^PsI~$CHV?XRlGJD1x^KD0U#<1=!RpORtTK0T>qAFxz7l=TLVli^*Yx;u-{l3>=mzFKTi4usozF4m9G-f%LYg%P z&h&)ExU{-5w>~T2O&y>5F4NDAUF?{p_&Jo_R#&`(-lp?WuhnR1MC~G7W3hOA>RWGs z7m+(4gQTrDB)PvFJm*RKSYAXQhOn+%74~ia>G|wJ>s&c>Z?PRq`##M!H16&Ayxq0` zHbd9G`j>EePnepjI78*L!c}M+;?Uj8@`Fyr)(&96a^PqK^_5)i`$*3+c&=PwtasDv z+RT<*ZPDb>+P+R`KN}gVZbHLD+O@|@_o<(7>V=$F@)T@;hN2OW`-ok_KPP|iL)1e2 z#BQ4BG5u-Ick}y+f%B~uWpkSB)$^|XK->=8fSk2R9l|@4R=$+A`fuc|E}MQ1bIs?m z8wSj&W4r;ix0zOZ6X&*XPHVo}Ycvo=nsfGwb5n!auZ(NEL;9!hd2d?M7 zNoRX9?JU{roxqN|?z#5*t~r-9CkwS5SJG_%O+#tEb*!oO^?$n#&d4@~EV}rqHpaAl zF84u~tb^;dYyJ%Iq#jSRl5)|pM#q;6oKRgg)E4^WB9GU9o6}JPdNWOxZaC1J>3IQvp(f3VjpW5wgBDbb1=FbeP}X{Yme-KSvP&ihp4&nmu_i9 zwKH>iZ>4KkuRU~+*Y`O3QTCmBG4nG`w-@s79IV zz~MvwRgykF*!`VqP|zbJn_$xhGMZ2Qgc+kX#`mv2`QsA)Ir@cnF@`hoE1%n%`MR>- ztkt#al0~%~`ee;9)_{6tkH<^XU^9;HDHd_8#9G zHLB|*$1uSEI*WuqY_^dZzn`78pzmOvtIQI2j-uYr5^eapPz_oGfY0rOUER0m3i>TI zxs4GF$n01xD5D12>yGc&+jozXhZ z5cO(bq252CXOFE`eC9AJqj(l_TVvvUllv~w$GcbglpVC2wS?_V1}XVrWA$vuUP#|n zdbog?t@_O6lRxg~?-%yXqxi`z>G@N0HH=@K>n6UvIQAZjZmX$)4F@FLku{|^;Eb|o z8Z@GmMZ4CfBg78jeZZA$Lyg!hqJ$9iPsMuYoX2qsx1<{G8&Ok|9Us%m@)l~ zSfisgmOdnso{anIi_a{jbZ8#*Zi`Em12zwu{cdlKqv3UY7Ad8AuQob!;G@R64$y2C z`e|*SFSEYDTk@X{T}XQ^%m?wqa2X_6&{@l{8Q)blN^) zlcJyLxnDoGD%-Vkc7HR2A7(S*)WdSx!)-5VykYN?hc4mf9@T#S(zgn1jsme_NHuiq zP64`y<^Vlh{?tqi=}+@IuI|)0EQJAHImR2%@Dl0}-kEgAe4fp3J9@kc zXW%Wqjw`35y+#93W#++w9-P?TQxmAZJb%mi_S6{tGz2<^w zx^ex?C_M-JAAV+pzaGClHKra*^cX*_&T=%#ch*t8ci20UNcd9shOyr-M03`bb5hr} zi~E#StYxj|c`$v~cINif1&xH&&1dJ|y7f5kHm@J^m2Jmdx7T&lie^0m;K(1Srfc8l z{s8MyG9afC_4^p5*8cc%jIpNmfiY*Ru@aZZSktf(6$K8)AMm%Yg@S# z8rMtSBm?vmdnI<2H0awgG?*rpqMhfIUfVu&<54UnkUj002OqVVHrkT&;Zi;>XIAZ`{PX``~`ZI&2i#FsD) z$W*d#&m{(53A$)4RsikL)@ym8Zy2Owv^^Xi+h853F>Q^({0{X#U0+vIFZn(u-WBxA ziOrvBMVlQiYBp;D3VqwPY1g|oWE+p8fwqsMc+%?)7;jpX&qbfvS7_CHYWoi0=j~^* zpRQ`uBh6v<%Xjt9$#rb7BfF-d5zRTczQwDv_1#$v z=^lo7W8Wq06E-Ui-}Cit=&0kq)o}(Doc-`a4{YzVCUVRlOJc-mjF>vrdM&IzXh}b5z~|KI$@k^dpWtByA|# zHqH=n-m#QZfp`AL@%>}IpUUS9^@l5Q)#KWcs}0j1anv75N1Xk?d4$*e1T~|yJo_}} z21dxJX-HfaozilA@fvj0j9Zpe2G(?LsjmYb0aFj_tN5W+|knS7_*&1L*2)@~X~7Io|npQ3ncW^^8B#&+UABNm(B%*5nzf z%-795e=p2x2Hu|Y9il~6mhTs9ia#*3X2-q@8+d)3tJH9^FmSHTdWtz_JMcG;xRzIZ zTy0QXn%|UntMRe!Y?0|1JM_9vQd|4|@=&jFS9<|BwUMtWa_tZIou(gR4Zzde!{mV* zkRzXYy1ebY7S7LphW{Q}eF^}Ftu)_f9S6o8Obw{dlQF8m7+mHbC|wo%>OgvJh0E9bLW!goHL!{Sd)GH%03OOL$q4OdHWnI zPuYj&x`=Oh4fDS~`DlyJn4^%e8!Bg!%UR}<1iABh9_=~(jiUrQBIX|cLDQ9E9 zm**u`49F}7d~~!Ewl%E%1dZx}GHkt>|HhA|ah`9oS2;%W4mH^$qx;mC(%}^y_4{;) zn5VivODF6SKI3~AmCre%)yEq>SL)fi1gqbgJ$}=&pEoe7-t-Kp$L|c-xi{&_9;8T2 zKjSuJ{_{9JY3oF3Tr6 zEe2?cGnf~RejL&BoNOuJ9aTpprl-r}vrC;(Qm-? zd|78Wmbk@_F4Gsfu<1|h#rMwtxa-148}W0r-}O!t|B_g(GR5j^?P;oAG}zy(RZ_-v zG4QU0_+t(gJFWeQyK6(EG)p-nPIH{U%^2-({U&}skHtD3v_=CKR42$Rg^24NEcKaP zXS0|x&zXyn9@m)lyDTKC`F%mxOt-f*s~U85dr+M$Bpbm(=V$Q z^`v_|n0HoTo&H)6zfJttLgOqML4ADp3Cyf>* z0&Qm_+9Jce*WtkljOKFosZMz8+&^${?6{&74y580l78db<1culUerr(z1}>me?Q?llv&gr^Tx>=DD{%JzYOaErIB{(bOb*(|eeGe^1$J z-#2xs9@Tf+gHtX`UGsPB`HNElE{8mzxb`j3_c{+Y8u;B*m;Gb4(>A&Xk7+}78n;W4 zdHO*1y+Flj$ZyXbO?uwSHB&x z>b+#clf25aM=EB1BpiK;8P3|FIrX%$J_CJkxv_JrUDx!iD$AZpi)AzGrxyShEg6-z za@%#a(miXS{ddkiV#u*@en&3rP;70b0oj9&afY;?BOLl~nO&_p?MtQ3^|-zVQVq2h zZTpx@qtlI8_c7g5Z3hBt6pi=HeA3Y2Prbf%pS;_cf1~Cl*@`&lDc5N2qgn>cFK52$ zXP|F5?}%gN5Dn=%hnV8Iec)A>=EZD+vTeonnTB@lmmlp{ez&V{4m+=X+J8?!u+r?@ z7{ojpGgEkIIr0(bD9)nl&`8YrIaagwt{~1q2a;oCucxnQMRHt~7=5($k-nFV>*Ml) z9)`jG<2y_%pOT6`8k{BPTy@C^qpx)Qb?L67je=$dUx@0B%dj| zR|GQ`(BPxrr+xM%tq1)!qURiDDP+x$u~&fZ8f45V#%cu3ma}%=yMpCl(ESGTwugdL z);s~*HEaN9nvG&9U1JjmqmBPT(APQ3w&mwwTcT&IFWoD%Por#CZQFxp-=ij^SY2#e z6f}*lv?gSG{d3^a7NV4%J#{}MQ@)I~sPpji@dr~nW25royZku^@08ScHvxk#Wsi1E z_leG!WiRy;H4ITfNNS~-_E5{6gLg`5AG21JcT|9<@30Q^@tuL5nO3O~rF!^o*Ltc3YzHl-<=q`Ok}N1?r|`{YN5KONVE7mfFtFy}@s zX}ezz$s?mWr!_`msQ>$voT-oL92l>{`c|Q8Hvk#-5s!UFjD9hvPW|kg!_I3${Xbxb z{N=szR$E8q;S)y~CS#?K5%B3OPLC)QWV|Z+wTXb`|Rf5>FG1i>xP>Vjb-RKLi9hM8Ehve z0*eV;uL+}c#1(8dLOmO?-yKixcgvss|DEe)aD6eHXC|N3a#ZHC$~&Ojvteg!v>flx zr@g)XCd075=-_KVVpPGh8$G0L9)reMQ7&>Ccd*$Dxjp1+O79!6_cvo0W8GM_VVn9G z-g{VWUcAi$(%DmLuI;tAD2%63eJ=CL|Mq&pKl3HwI+jQc^j#w_u8vGw!|i5K{(pYG zV0XyK{J=T#DFf|H#E8;!YP;8((BqrT5bb9lbSKg?x?+G<8u2AfYX`1|v~AD7`E~yw zegDV!T(OF^YE3IR>ovNLd825HQF=jZHgg$G>CJaa@~+);&DgB_MkGj^@6fVV!%{-9 zk)TnPKDAw@B^=*n38kLv^l8QAgU%6Z-6C@_9@SysEjAmoK4gu}vXs5BdxI>|j+{Ah z#%+MaK>jbvEQS~n2 z?tXm@4d<}$*`ZOj*%A13SkMkQgJrJK=l+pipTAd*8UnKLG<>bsPN{PlSI?;I*=&S{ z2eeHO$ZDk4UP9=RnfzUor1-lms4fFgU2}DNKveB_$@25_F3oYy2m0?Yl%andzL7Og z6iB4!RCnz2eNtOzXH1!HxMys>!`8X2@npTbcItk=4AgXuyiq@{?lOI;K=4ji$9hyHN$r z{W)GK4fpp+Nuy~FJ^ivO>Em;f#*gSX{f19&D1Spot_Rm`vUdhq_U74mvzxyo(8|!N z9pinr9Pc=@nW7p;7Tfz(XPsU(c-`kMA^SPrJm!5M%ZpfLhBW({<5Z@sC(7*h$BgjV-BpkmEU3u67M^ujQen1$F*-TYPRY- zvrai*s$9>vzjW=XmgcpSMG#W7;Qaku<1eyxGy@Fgsoj(Co=5cY!okl3^n7o2UBpd4 zR9n3#&~BVPte4NUHs_4mo31%x<2K)1@+;=fm+DuKYpSMYvnm{6wADuRE^1c4uyoe? z<4S4h_esBu(m!wxwGwS6@XIR0(+8|FT#PBc|DEe5OQcA&e4L)6>^r!#v4s|{_BfYw z&{oJcY;FRyy#M8T>HpS?hZ_m?)-=&JtqB`l+j-R4&f%F&uNmOil!9J$^6Ats$@l)D z^wfmzzWskkz{9N)dbq|q2{9rY^GR!$eKHAG{$HTXV>DR&U`fx=;Q9IZkZh%W*kbSS z!Q;btY8Q4}iOA(0f}J5~gpJyD?Ffm~o)^@6LeGlIJ~h{&=E&9}+BCy?=In2cqCEyw zQaRK8#2B$;J1VF;Ef&RelWn7-(Lti!#HYtx=VR;7>s&eOmEofu^tac;1?hJmE{Cu0 zVfK==w(EGH+5AAuQFN}5xGLZZj4O9A@Euuk^w7Xq`wvKVLQJ)vJ z@A1Ha6+*TqzvIUO`G-j}@(9gK0!(#1_ zaP%)g^NBlRuUu9s-ShyRu@rf{p7N#Eh1PGM_rYvF0+I+e?VpC0`=-@;YPVjqPP3i% zZrZ7G_`kxn*2-wNT{Xht;PMft9{Ng}Jnge@|4pusr<3!R$kIAPq&eV@r&+2*332$q4@i4c@oXOvI_fUjp+O2ITu=?c$3aG@W;P_Y3~~O`UO7K*<5F}MX$Q!F0Q{E9evT!#ygFoHmE^g zYJP{lSE%bwwIOduuuo@pwASlgSFa>37wr|$KA)-G0sF9JM0KG;J+&hw?7)CUoLgqO zeOF?wI0h$q%J&DF({pPVXUJ^w!&W6_q{E#utvJ1@a&z9y_Ss+P32t!A`O z8~sWNcx9A6&mDv#u1#O6U9Hst*FbrXuUAIswA!&|z33V?4twv|GGtkC>X}NGE_%sl zq-nlGeI4BQPB;6ZT2!*9KaA;|z@sgPjN$b6E!wtzwIZH z=m&?3o_E%3?U}bc`P6q^xP3p^eh%B;8!V}OTnn+yr_u5%QfxJC1M0ucR-mPA{d7ii zb-&G%Yuc4@9{cXVdG*yZ6m^;>rXQUN+eqo6RsN^95J$AncY%q{3UYeA#i-s-^sQg@ z*#M+*Sqv_Rbp+=nFj{rieoW5=^07dLwei+n?yhxQg-h0;1KoO?<|;3 z^@#l_?&+=^VqdTtLYL~bc)(^$X+Z61Zf85TA2vBv+TL?_rpZO$B;I%WQhn(amlr$g zs-fS`Tj>}CRQKt0uB!LhzO`ZVgG5~$wCgw;?MOwpD{1B{AoWD;@jQ>&GH>jfpwzs_ z-;C_BKC*rk)w@OZydHD9E}Cx;Wn1iVxoX<$F`kbv8MLeSi&P`m7;GGy7Kiq8Hl5ax z{*7bAe7ZCSEpwZOZhr=6U8VJK_G!4@v3yNuRI{#JilYzQA;MtmGt$TN>^2~(Qa)mB zTOVZYkZ{_$>TIVz5yQb6@Fu0)>D-EM`R}cJ%zAnk-NVme);$eJ8`QMSm{J3uzCFSW z1lpwGutpbnZq!#q;bn-^PQ)7ZF<@8ze6}`1~8npXUo=y zth{aih{R^ed2mA^DK!Oi~_(`#VLIMwx1>XT`_9&Xz^zVn16Dp_XiaAJp%D8eUr^zKx?l z?Y@oIvsK$vNe3v-KtKAL;_2aQoi$=s8@xk?6#2Ek)2TEG`5sDtFIWGj?LKn;79!SaYUZY1Auf)mPkN~eylS)@G_cWpeD1^3v&560$Op}l%9Q4f>Pb4fbD)2{ za^=}pgzDBPy0dWFLw9lQD(PnPJuC@B~n7?EnUHHk8&c`?(6be|rWEK7vZ( zu`B74ExXRE@8R`1-B8zgW*?2C&cFe+u3ahp{HI>w(kGM==eKoAlg_gVmsWPX$^~l- z$^Y!Ph@Qvd)7C3`)>ON^T-2Z%)oQOZan4foD)PY(H`(`U+je+weVY+>W*5ivdn#p$ zfwK?%_U`Yn&p+W;8J+E@6Fb`1Bg9-7-P3mskdlsZ20Wx4_XnuXJoO2?gfqSK9x496 zBjdPY#!&PNE49y==4rUL&)QDlm8!b~6xw;D$NzulbS&4sVf)?I!d3d)y>Zri?ISkl zS+~iBhMr_I*Fm-)J<(kyTTSN@pZeY2#A|0M^B&XVJ;M$kT#sx}AIzAK=W)x4as|mg zr03|w8}AW@s&uo8j!~-Ig0EZ>!Mj%)9PP=-bSUoayuav+$FER65o> zpV7bme%d}g>Tf6q*HGw@N$i*{AF;L#vInk&per%r(&=cA`OWt}T0{Bo$ohC=`q5%X z;M1WIFzh3)d0gD9%%WJke~smwwCi}_cUJ?eEBRCV7Vs;280vG5l#qJ-2Cz4&_B(O@ z40Dn!=3L}`ktdrDyP;=JvX9w^yzbP8c-1_P_sDwIGq!7wd}@P?maV(eHSfC0>`gtM zGUO6&@86-3tIJsreUIz|mOJ-sEa$O$XH*`ek0Wz!-}2uSbmwr|ApfG{L)Vy(9@ZY4 zx6sUQo$1nzGo$b$m-n+~4W7Z7(dJ1w(3&CpnsKHNRiDl@5?8{ewe4@!o$CRWFvc&p z4DvWzbtPPuVbzlyeia^L5Ntb+0I7S&gl-^fO^-Hl7ZYCaBY}l z@v23&OLMNy?X@8mdiv@#ze8Rdj`lY_%dFZt?OXk|^$rMMx8?{u=W}xk`3No4pJIxO`0OQG4_RF6C@mqs|r_GlSsyMY|fF+H)q}#sI zij}VSLY5QHAnnd9sdUb36YIKZ{C-~gUJ;*k1;%GnGX{B&R>XSKN^G2C0o1UT6_desSfR6m4xtUvATWZZi2WRM!>&y`% zm%W4HQfv{o{ms{9ns>dnjen6muHSsq^Q+~vUG(B9S)_jbx9%n4e zD4#+0$|WyD!l_R@aN64N5_w(eJ9!d4fbChT)mvUQeRdnGC6xfOf6aO`3k=)1Wj@(7 zZX`ln3-y}Fe%C&*kNo_7z(HG=hS_smiiUlcO7W$B!!gV`HYB->RgZ9hH3J>lNHnX+ z+M?!gKvsP6Ec+$@<9-oDk4$C1((k(2eyeLj?`U1YEf_dc~r}hK!cJ^%?x>LGpu5qj@SH^ha z^Ut31W*R+`dboxbANw}0be~3DT<2xxb{$dyDZ3xG?>9QXQ|)QLSuNI94UQTE)m1}V zX?B2z`34nUAEU9nY1_yAS-z}4)HkK+-lpq2(V?z8G*jlc1JlkGO|Oo})}SLMKzVg% zx7f8$o5MxW`L$T+TMP}XJY1Qkxk-Pq1%G@hEu&-5?=-I(awVfD`_L{)u4j*W0 zl^ZS4r)^OvuC?HOk4Wr}S2cuejfhOf)|NvaxzqLY7TcTJyZM!4MWgj#zJSyN?f1KG zu2&{(=8b(K<#IF@Y0wOFUUR0=CEVT5dwg7r@tSYITF8E?1+$HnoJYlVbxiD@P@C{=I}3{%x!Q^T?eW@@4}$#nB!(v^{K&=ZMG{-1^(&rD7k!;-jrIYilf&K52Bd=Hz3k zb2{d?UaCbUdu2|oWPdV_c9mPJ!e*X!`&&(9oYC9s$sbXkQQ4 z2BS6mK8=Bluf`=U;|{SdW4%Ik3;-!EpW6w$KDfR&Edx2fbNy6eyjM!eIzGhu(0%~G z^-e(B`Uz{>`aWVltzTo?1$sTP$lsrubg-CxZYS*eU?ED!(;Lq^h)-Y!t^rm7+y-h# zCF$mUA!A!@jOB=FMVZL$=!HnJ*`eRWX$HMof$kEvXOijv%E-@(uAz2^I#h=NNNwke zF&cfd0c!4Ud90o<#*Nl@9&Ba#s6EylYtqH&67~tV>3Xdi>hC2lNmr`Z4I5cwMzCbs z)q@b*+Sj$Ohk4{_1i-a<>a_;B_6}}x5#Vx+!)@1z+V>{uY`3AEHT5_nnVfl&Vl3mi z>Hnb^iBRM5MCIb_Yc}HCK?!2<a}`m-&wt$jTLzBsUg zkGS65Q@``c>kv=*+a5cMH0|l7&P~3T9`;Eb8q7CP?Q4iMTQ#)D^uO`Jk0-*>gzi5mL6mrVZ4j)jkcE zG2i7^`+BEcp96PK^+8v8-qoAf{Kmrn$KJcH+>#_|dQp*62H9 zJJNSRvae<91o31CPf4A=mUE2rJ~v{#a?E@Hz6QJ-HNh;jnp^FqXZlI2{C?+4@4>+# zB~AHmBVF)y8H-9MoBm`F57sQ+VW=CbJ;)o z@6nHIgl;{6HcPIozXQ1b4m2$=^@;bi=*;W-eL}sX_B%d!bJ=^6v2iuZ2->6?o)MlbNpLge|w*mPTICuMqTsUtDf-G?Way%SEKZR zkL!S`8!P=_REzI=Ji0CZ+x9;FDEy!m(A-6j4PbI#Ja+HjKd^^!8as8PZjQotX$4g2 z0ViFyD6feN%as%jpT(9QdKI&ss_q;D?k(|K^I)FUd{HG-ij+-^Y<7 zoO?0NTYMMRngX+~cHwhQ!msEC^lkRH#FO{3hc)JS&iUEha}T+Ee$5i-y{4C@*5uZL z4(I-$acQnq?TCebkMalH0pH3YpHMfgWw<%Lp%E!x_(c zW9Ccg^Wb-7{WDFZnEK}K(nAuTT-3vZ*{}&1gv+ZSZzJIbe`Xd+r+TK#H zlH1fHU1F5iF!wpn=@S>tRnb)0zB+F@3^X2KO{iP0+SIT3>>bc_dMTG|ZLyc2b+gY) zA4RI>&8vAVj^k18v-u2lgBpFxw*mP~{6$andDzF^##0)JkFN4a$&(yk7brUU03YcS z4Nciy7j|4dx3)b7+HGBT;`!8Xue0w?S4$p9Zg5o5)%+QApZY~l^$I)OGqT=R=z52) z&LJb8LqE>JTo*OM`T@;ZZC%4sQl}k+H3j?f>2jT;r9t@SR`T+F1)MFb1+)c)>r|Qx zwO8MHp?UYn0X6G==F|Q83tpxLIvYF${sqB@=S8(s$}cC_<>TCc{@d%n_UAlJKF-k& zPujL^1auBlO~1FmmQBjd8tI&*-`~v`LR?d=EjE;nc=&i!h)tR+Oh7Eg-=>#f8bExX6Q`CdNWyuG!%)=TXp<_;%8 z*T(^$-6=o^wf;JH%C`E!)1sCT zkM+nPkBGj|c&(33ZdKlF#7Fz&)Xw8N{kobZ>JtgFlXqx+?#uUMUjM#_apF*(_Y;Nz zFX4ff1U%Z2`Jw;c!z#~)mC{~eu&wv`Xjf!p!>d`?Lf+J6kt_MammY?f*~aXEqVy27 z9t%X#mh<5QJu34p8^-1~4mc%@y`^S-3;DFajr5Ul6lI0WpsjnI!MqHg=x@G#^(_l= zX(?5(Q^q!>TOw`Y%PZ9nY^Lt1R~NU*5~|7G?4+zXb9^jLL~{nEnM6X;U{efDMOtCsZs0Gg(6b;eVCOW!3=4i&B8 zqKQ4L_MiaE)9FKbQrJPiAzBXFt=ijs7a`Zpc%t`%vM-(*Q`Kx1 z#qspw3o+JMl@V~pSUAd&mGX)`VMwcIZ@@m=$A0wJS93tz=W0RSHVaZDwR~3ENi)t} z>YfWZD9wThy zhLjwUa>pL)&+T(8JYo9!<&?eKzzui;)2GznK6HlS??+k#NvX5ew_dVxz4>8T$VJxu z?^PrV*?kYYp6;C2)g|(Jv%TitsZ;FjuykY0kX+svrPFc%_H0Y2C{oYw7+?OCqp3mi z(6}n%sd_>4ObnX#=(RQ@B^T`QZ8@@@m4+|$JM7z4UVDvrd0Y>uy4wKPN49}p>B=XE zmpVNi-9$n0=$0_fGkyByRu9{ykzBQ!3Kq9T$H2DfiEi1U)7UJV`^7aDul`LKjnLI{ zZKb-(j~=ublBbiPVkfPX9fr1V#{K%f8`Sn8z}}%98RQux4ike0ean5x^X0;;vgW!Q z)^{OZzd|R3!FinzdR~6#d8C)^)^jjYxPqN}D_wUQ({9xVm}XgdrpbB!>RizoI2Z%S zv4+CAExhX0+mdPo^e)e6bZVA-+%xnqz861oJbc7!@~e7J9Kii!X;Y8bts^rZdU9$3 zi3Dt|PQye+yym%qYqhVQDF|7jkm<_@x4?QO(xj7o^oPQ=uqejRnjUBb% z5LOhwcG7~8dTNrgyuR+N_V_T~|GS%AKFZIv4GtQur&*RwJ2S>}PIco;#t2zhN>9p- z*{P9-F00+Q--$~DarWI^qcRvT$aRv~)S5aS5-Mj{#j*EZMw`6m3Sw)=#6tn^W93#` z@&ljmJxrhKcdt);su9+^Z!uaNDE3ni3u=`FOAm4-8HhKbP(AUCTy)51&KcKO$6oE7 z;x#C`T58dO*><1sY7c#+RC~d?w9v|)7meF|28?HQ&HCJ(LZPxffSM5+nWKfHwR%0} z2&dk7hCFsf_`^J2Z7Z)Av~0v%YRX2UWHo4d^psabbzUpT>d3J-d-gLOY~5SA%)oWO zs%IR}vQ1hK3YUF6&NIojsuMg{OMe5?3(i$E9%~=|&v)!Dx%Sx|(m1$_YZdE9yWqq_ z;`#_ke>?P4F3fiK=&o3q%Y8e)^ZTi~qeSVu!Wrw9{fDk#7TrhKfYt-NvMu^s!WtKI zD)Q`d#+q`2L&Ov=>~(zd&g9Htx97UJw`c3(dTKNGVclTK)$|dZw{52`kIN#SV7S-T z#T@OsWW?X2zR%Q+tLcNQopaRlGx104iJs1!?TO?#i*EGZulS5E?^`Z1)tG1{oHhCi_uq~i}WoX>A3}THYv%|-2S8QMIccsBeYD+EpRx&qyWbARLS|bZ; zKBaWa*GXcR{PWZ50a=5xA2N>2+38X5w+^g5B=YmWzx~FGA@+n|gFEG_oBF+$kJOd+ zAwB2!5S1+%fA9Oo)q-2#qRlxVd>r%r<-dnsS{yJk4t{X1d1~0<4&S+7J=>cZm)csp zgERP++|O&uNJ$$JIru->4=bnPX8v{RDGwNSNtF#X-v!lUYWje=#^hXl{WOXZa~@DF zo5XR}OJ*+*>Y0$W0g{{5|DjxQu@yZbV9FXxz4$)ZYT1fmvmWO&^OJk8X(eM$(ni=) zIOxokwXGjkdf%dLs^OK^F(tm;etzy{jbg;y`KX5kaE-dI;m>Ayt>%iU)X~8+uWQt{ z&Vgsv!pph>YMl9Y+7z$Hs)saZRLs(%uK4Df@jYkhCjL<@kNR96M&bb{>r2~apS93Q zzO(lF1cz=ppY~X%exv`zRa#h*#s`n$HMK0;C+wv~K=c?}P%p5!tx)=*Q{=||d;T3x zl+`2h`P8+vYoQH&Eqdh%Kg&%Sd-&jP)#{K^zC*@{@29ui4{|Me`uiBo73rr{=#@nB z04i)L*wVVLQL5WIS#+$IwJo{JUm588NUiB{;o{vPQRh3n!}xiq~t(ng^90=(u3HhrWw zdrEEY9n)K$KX5zxoBLYQpV!N~9O;PA)%>|h!^-IT>-c+dtDI|Ke&GAAO;=mxlwXtw zTH~BGeZR^TCcbY!dwJvPjA}rNq1rvY&~~uPzaBl`(FY&=UVhh8+Sx}vS35W+cSHAq zI{B|C+Lcl(#7Q5WLkIt!bv*w*TSpQ(>OHtyQcE8JEpbd8N7x@8gkMm`Ial{>_urK> z%6x+Qu&CRMizgMKlLo^P%lBpIeLS6O1XPMj&1<#IB|dvd(cJaSpiLI6&v&%Gz5e%g z8Dl8`a~=UT|1GsgJH16CJrgsk(H>B$r8=cFu_x)<&g;VCEP`T3G@)^r5Cu5;F2G!fT6VYdhF+FzI5;JTEn4rLt@hkVOv7HX_*_Aj^z z>rAtepSPaXNKwyScsN=hxrRQbM`_7=$896yTht%&>A7#=;8Ac9tTOEzi96+tvkYoQ z_u}JPZwB+De)sYl8o#=F$gm|;ONY$TXcrzR-Q*+a^(h^IRqP8zVd-0GBn8cyzJIii z|Ksfw063W&(4(`xN=#`%2YJR&BSz?1)CI-Kx(>m}6LSHt`8V&?b+&%>Out1wFltIK z8Rj?O-_m2M_r$jJ?G*Wq?xTl6kI z?DT2|&_72Gvhdt?jN#Y!h6Q?Ne$m-8sfXkmTPM0j4{0=@(q}Vu&EFS%WsTwZIeuDkp50M*1~A@NJFh>MsEz^8 z?v|uMC0n&qa>}lD!A-K&>v{J2-9b1c@6B8pCun_u&X++udKK?3P3E`Nxh6(l*#8-) zl>NkJ`KhcBtPHSs2NKi|q_0aJ^#;5<$E$yAJ}W=i{A&I(&Xxnj+gDG?jn<$5A3RVR z_0WhxUkvvbvK&&sIO6Uwfe*h*2PpkvKH-ym50{8 zp19*ob$4zT=RpC=!;Xn_&boEw-ewB-#M;?*+55?Nge`3ZmIT2nmN>GnCq=tbDv#u$ zpx%qqSxM`m%K^@hjky~1pYhZTV_fyXE<3eK(5`{TNW#trhJs|Gx+@d%3rqMD^gF> z=TExVDtUtbB@58kuyu1LNuQIB^y8goYzv52L?t@#wg8xZnwh9Ln^W#JQ)k8PZy#ta zgL?4g(-t^)TGT(XVxU8JVU+b1Mllsu^-+7p6KhPfS-RIc<^7np{OgBy{Aq8&oX1#L(e&#QztD#52(q2u`KKQt$&tnu69zFQX z9$V3a%K2~nQ(t?(+S@K)D@Q*3MV4nTQhYU}QKWl4-;y>i;7YR@5m4s{h#RNL9+bX^ zo}*7W&A^yldvT3eYYbW`ZT56RygY)| zE136_%;R5QYvuU{FJHhqSxBDx>^pT*cNxHbk=}NY#x+LttOJrxT>eS*`3`#A8`QrI z^KY;Gc6O-r5~nItTH!|Y&Ad+hGrFX%Q3Jj`Z2;%k7?RyBypiw;-Im`c?v1Rz`xXf< z)33>KZPU9UhoW5Igx${V&1=-W&$*M(8QU0}(0o*{c5*C>nCaOgJ)A#rt{u#adX9Ua z*E!C67-OGF1h3wae@#Ocy3L#gs#tQ{@E!KHU2-p{b9up|5>}KLIpn9stI__HSKop! z@F_2Rj{IT0v{s$GQ8vIQIE{d1CH-K0uhi@XzaL>cl_Sr%6)jM(Cu9#wMkq>e$JrX11V9r@g@eJLep|$t}f6^o}@Vu6!1op}LU}G8!?KzE9poeim!z zDMBT+*6ciKjr2>vk$SPm;J3a@R-Hpmv8%PEW`M?dY)_bNMbJ`Pat^9N3kur_#j#pI z9lmUP$iDHVW%eA^Hb>br2%Ke=j3LVUt*v_821v%vYsbzlILV!x~d?4}IX^ zksVn6R8F0Ahqk2-tlfVaOHMq?Jkg6Muu8Q#OMpesme3SS8$F;MjQn%yUpzcQ-nB;< zgFfVFn>l)?57I8^CYstH3ZSXCh zN`|%WXIS|Am2>fVo7o8mxDo?a6E6CJD;iv!>EtPu?Be@-uTkE zlDt2TJ8Yt_=&+5}J}hO|{e*Q^u1{}ze}k$#`LIqr8;2O%p73GZf8ow+@C4+@ohh?2 zr_Pw>(+(Y~J$YKvlBw1HlVvnyO#7APj(5k#QJk<2TJ~G@{Swxf^zf3$kaKv5ke3BadH>Q=TiYJPsb3S1Ip$svSuM)U5Cb>R!Wr2GjY`vcdX(=Fs6| zUgq3k1P|vub!Wk@Uv$qqw{#mx+H5Pxjd7Jv`~PfciJ^XxSu}xcmgUaE7mcB`gU0idvoZ zCC%Th@K%nWkgsQp!2tSI(6`Ug>^W1%+LLEQYUS{r!x;MlU@jxz^qcU)Rc}kG5%A%g zuJ8WtZOUjVE8$yBGLP!XGW3jeo&@yssQFx=p0C_`&&U|T$ck!2YwhvB; z9br?fe^dW9^{u}Zmbw1!1_*)Jm zOMh8@;ZLWeYQ;(|;@++AvhmqTw{6n~+dR;cA~^^DY)$F;MBHmm`sd}EBYp02QG9G! zkN#*OpBy88%{u5E;-2}}%Kq){ne&T#5XHx1dq7JC=XDlX?PHdN5BcnPgpzOsM8^^F zOnB(?=gj2KzBOrZzLYv)l`i*Qn%4A)7#eAZvPA*0S$!Q!B+&2gHkY}3mlI>NK67SW z+gio+J;6wxK`koq$U1UP^Z8-T)hL${5UpYs)3m)XNDMtbi>WPa0}e77IBj@x2AI)? zhv?-|$CLURH~Q%DdTn^~H=!6I9T`r|a{mnUWsLgiW({jWiOz?gU(O1RcNqcaN}YIT zo$8@;2U3X4SZ!F^hmO~?T|;MzBt%{ZJhWE4D;Bml&l9`u5$gSwhiHZ$j^{PS+g2g# z3N0T=Ts`FtYO3qA8Q0dfar7_#zp>4722|~^B5m`~)2gV`6m&C(UhO-b;ltVmZ^oTu z(NsTIlVt2SB%=mdM?K&&TmB^L{QTi+2lyBb9ASrL87n^3E54T)#eLG-6=%+iesD8a znwHfLyd{jpZ!;!c-hfY&4!N^YcRS(fcgdgoI!D`|)ZfeoQ4gpZp8+4+>ss-{_X|kr zviBlD`{6a;^)W07BX z>v@N6pclXyMBTZdw(80KVMia4LCd`U6@BtjpLHE@rXF)yHty7YRz3C^eRncPCW8hU z`!$m)B~NhbG~foW=_~4P_cJW|NjIXO&mKCS zVh?V%oAs{TIPm9jSD!yQ7nL4&zOFubtL6xL(0cfbcA)K3;Ay_Rzte7vxGC2Yul+Qj zoz$L9J>`yvlWrGRX9f4#(tjT>?W*j;k+EK1~GTTM-;aptSaz>_qsAcZIKB1#dL?3#phi_sXfSWjp3g|n64i#lv z_l-BFD~(^HZz5&V3|`39s%f1^K-KLVU~&qHy35fi z4xTBKHY;Gu5hd4qQ9d`h>|!V0`2FOmd``7X-?~$HaStoq91(!{R`#s^vpn^wgcSq7 z(ehqsh!()I*s#;?Tkfg!-@iY>C|?8WRz!UYyDgjU(3{+4~xtLnp}bDz$5KRMlr-LtzWVF>5geyAJ!37rN~8D_OPX3h)qt$j9hk*9t%N~S`}KM4eV3Vx)%cP; zwMx8Xng0cX1>@d;nu~Ys!uQlt2m6+}`TG5v;x}aZ7FssR*l8%5!lHpWi@WD_e~8c9 zXYggCcvwq->my;=TDClE`^+TU_OHdDBWF-_HEa?b32FNp=eFm+Eq9jm!xL_cx>eS| z^V~nrGc$*utdu7$;JIp-t#Q9TqeVWuL&nW>A;nI!Qm{&3ECcK@U$<>zU7tB~yPj#3 z3nRU509S1pojsP;@L#miKQvI@q>SV2a=)MU?QOii6d&7%^<)l~-p>ljq|7x@b&BPT zO;@uWvdkGIShhK%j(Dsmx{-WZz{eQK_ls^fvAoNYDZ8E5UhqdOW$UZcA#x>K{A~$! zMX#)~+_l{^rWsqT&fbC%``}_va^L(A^Z$_hW@6b+*43Q7t~LE(ojs4c`u7L#n~{bO zYew<+2&PXf&&sF75=~|f$KA^N`^CORj2UYWWP9fMNIXFOvjp`B3_47Im0kh)WYj5Z zBA>Tio_c(y*pp+zL!Nft+i!{Lxm59czTb%FKpTMhQnz;1ZqZKc_~0(5WVf{C`(zJv z>JPF(NYjfSkNjKjiR1p`VYO7Q-dfzitAzb`mUin@|Hk5KU(C-3S=WaWmfb>vy$nag z!i{VLtV_#w&vxln@Y4({4?W%|eEv6XrGu_^L}uo2;!9`GzX4LEnO>iRIvD2Bh!vyG ziEqE*IOo(S&wTn8(gD)o;ofRkk3&Pzf#YhaX$MlgN2@-T($PHnd(zJ{_+EMO{%;Y9 zHR(ck2|d@X47wwty(YZ zQ-A5FZtf#SE5A;y`g^-XKVt;=;L|m+b3f7!$`g0V!dgbBfweR#W!S_|Ii9`^DTJF<&5x0 z$wiGLLNil7Uw2yg4mM{Cvn}B0m9^#hp4K;eUNkLycA7u0t!6~>ekuDQ`crnUFk{Nj zdzt;_-x^d-JFf+6E-t8GHgKADGlj@6gW4u>7Ii>Dg#dDJIs4b8MRi+j)>uhGu<|btFA81fhxK> zrGXm(UGGt^$UxIf(Gp(ToU|FBK5<+2+M++70py?e>-T_Li*nKp)Kh$?uZNCAWgL|L zJ$YNK>`^yW;hCSxvwijN)03cL@SUzi8C{*7-<% z@;O6z?GMyPbLn`FbLe9{eU;;T_~-5^l&Dm6HA+wa4C>9Zl^Px!YVmDJtTgJ`j(13w zd;IT^fy}cENek%!zq`R)UE+KvqeD6|U}_KdJ+#!@SQeAafLW{X!I;FkAWj-B3L zd;XVf7UqS@+Dm>%ug+%!zS8r!zpWiK z*5AM3OZWqBPuk~a9B-elAkUoUxpyF?2^ljI&{FP*9-Sv^PWm0o=&!xMdtbi& zH|!J{M~4yOIwLlsZR;Q8DbA*D$nBPWoTaYMcA>2tI7!%~_2eQdicZBWJAC?gv{zm| zsA`m8XsGqh*a0T7_Ft|wbFYdS{5$;LTvG-dEvF}J0jKP2-^>PjtX;rXBfP5i=%c@< z&wKSxc;07Y^?9ndV=~~naW!BM=s8KdV&?wgez3?dy}V~Qn$auG#O2T{?-Qmkzblii z+s1_yu6EL)b{uK7>gGLOJIbz_R=JZOL@jN7HIEF=z4*i(7o)3pJ$t{kqkKAjIFJD+ zU&Eg*^sSjFO6M|gnUV9nnLd0M)4r9Ttod9Kz&pNhw?%*#{)9?-$cRz?n0~m%RP*EH z+jW}Q$Kr&z$)QmnsZXcgvL75*qa~>URilmX`sO~j74_)%_qxdMyUubqC!m_=(-Q-J zjI{;YV;zxs{`STR!p@89Y~H z_H(r;e$IHvjkDRkpL4{_kRD!C+ZF=c*K6*2uFxA0sj4?VTj0JPi6hcNBAt+eop&vcD}V-GxwTho-5)-5zng^0_z#uq3UII{c@u;gD<0@`%ZnzBi2Ej zC|}VB`Ca-wcqr$~Guo<2-#*(#_cMP#^&j=F_&JxaXS}}M z`VMUPAlJ@#PIdeihQFAhx$$IX(C6{q$Ea&Yq>raG&y4guSqs$;QO%*s9^sJccZE~t z(`PF?JjAD@N}}2il7*X+cUqEKE0$(ZNiST;e}8@|?H^Zw;v{>d(<+5gIUiVG*Y9-x z_If_dGbH@XvnL!00m4_Y%t2eFg_Z83nXrS^9$?5y)1>L!Z>4+C@oD;Pp2uyE&MqH6 z|CQ&(WpWzftBI?=9yItBjNZQ7fjYk`uT;=}^NKmZ^fjZ* z4^e`%xW+FuTg06RkLXpK^*LtMpwX!2oQFmbixvV8KCs@PB(Rp%`dRT>Le}-+y&zN-r&d=k@Bz z3ghUCJG`WqB5ysZ-$|nnire4eF~VGqXDxrOc_+@(hHX#ESdTJZPuD=_o<{V|8e0BH zSqan2YBm4XEizZ_zFFgMg3Y52{jNDee`y)93SUHi$hKO~3O<~*fB*Qe86!*j$eQxI z+u$k|1z+M%QSuo9j>M-I=NcVx3+}eXbet&+x4Cxi+K=kq@cnwz89Cqzuq5h&j!3`3 z({0UyYCtRM5m-hEqjo~#N8f_i$__>DAwPUSN1QG1-MY8U?9CN${qX^Pp~{Y}#e zO2_WuJ8AbISdu(zt-}uH8yG>>i=P^MBGe^oc^X68D_}z$brnfp^uAd$r1^|C)Qa?>%m=|yuLwu=(u=y z-Shsa-)A3d%Y)ULOl3KC+Q#)sn)I(-FnZ+yjZnU%2ddpoJ)pby1w9_s0!D__812>% zaeA_Ymc})YJyYPSIN8fU@r_SwOp9I5nZe)ao4KP5x#al&|2u4aW$(#nR9znlw~Bqj z{?KmnG-EoD@`TPga({00d|{yFibIQHuG>yaxw2CPEn_{`y;v>Q+^F;I@%Ck|8b|Iv zN*izg^1}2k<5!ONmYQqFaHv1OpOgRBSTK6vHS`ic@sbuu z^vnUS>;03zwLMo}MvH^FjI8&Bhn)5xW81;uq1BdK4~g@-9xV|Z(l}4z+sT4?54Sh0 z(Yfjm{SKp^5iRFGbX#_Y>$>(*8)cz=ns8d*0`Eu->OI==sf>x$`0$9LG{14e)fuHV zzE7VIT7wo|bsb)sX_8*6tToLRb5;~BW|OI)t~~KvNV$0H>ECcKsf?UbiihXQ0G}(1 zET+|sv2Dn1!qM|{o*52V1bs=zK0wt1UvtW~KlQoRy*Yxq zPeq_A=L%{2w$L;{m>gKbtv5Bsv(1^w3@(-obL(%kPKY zp3z0`G6GHwz*~D@(VW^Lz0*ta+fIgPoVdWNZ|&c{`|pC<7me|Q0(1mAbzSYqplG3M zGu5Eotwqmv;R~+u`QiILWLcWtoI)zXybryfowWwTT4oGTGnp1e zk#Wup+KqPR&Wz2E-Q&TqH1=AC1Tyx}_vJmFbX>fv!)lxF4Zb|*$V0h~)@&Za`0qM~ zFGG{)y{>I<-&=uw%(fA5t{lP(SKe;rb!())W)DpK6JHFddgPU(wMK9?dIp~XCxzRh z3H({^A9de`I{J4b%CDgV$S(g7)zD>)yDdo?bGmo^Egf+_62%N7WxzySLvo-Q>eyEocD`sg3rh$VdVd=Gz;Xg|+B#8Sg zu1TgWs!V#KSJ9sLo+nQ*#m`a_uHLFSVL3gmZ8^i*-s}ZORPj>r=*$oLzvKNI=bkxn z=4~fGpXb2axwq+p!?dWU=Rn(P_bzcXwk$a^a?AI~(Cm1A{l)LOZ3%Ln`GQR!&-8H4 z^@lub=?|~d{OvmB+vW6^6v;m#HT@WI*>c=<59+AX(nCPiU2;X8T!L!Q8~L?8;ivJP zqN_!A81`)CQzAxJukG5q{rn_bcW6cbZ3J{2sn1LWopZXY=ICzPkA!t>6ADLWtTKPr zJ28@gWM?wrDl8vnCb1syIzUR}ZT{`~c_h9f4Qpu-SpA`STS$}E8 z_pUP%rt6S3Wgj+N=lGCyF?RZhcFq!N$|TQ>z;4^>`+6_n*7v28bVxk{X1nBN@0hU3 z3Z0X%3D(vQXxMPO0ZtQM8)Ejgup`{`%NH*e(}7jMec-H7R)Sdq}?<%2PHiqyI`kHDLQuA zrW1qL?*DE3{R7)ZjGn7@wu|Gczv`0cc}U&u>0z(ljb6$e)oD|XNIgWve@}QhBi3*B zHJ`r_8%dE@Y8|0!Jq;TgT-v7VAnCKl31_>f9qj=QxV5?3pZb$l_Sg8WaC)X}J2#?q zoZG&`PWvCV#o5DJEUIfvfiesafZ-O;x=J!{{;1*B*?$Cytw zCzSj0FEi{X$R&P5aYho*+PR%_B{kdI`Cj0Yzem&IsL_H=QUXq2jF3`3S#np@0}BmV zk45Qva-r=}z|;FJsiW70xDWg7_1d8M^dmYlwn9Z8SPHr*M~-{C0sictKUDTbm-+Y9e>txUx?A|$>ln>bfGlY5 z{W1O1gMO}+*#=8Z{<-LQ@z-^~LUv=^V0^(J|95GMTMw?{Z0-Qp$EDq){kcsS8^_eW z*_L)`=iiq3W!vN2Tu)qne;=bA)ijsBQ3NHqZ1CI{uF+2^yrAPX91*n!;}XW2$JoAk zgxc)jUF(5%@_>9&cU*Yh_4oeEmh=DEV_)8xD8F_%ue#418sOWZV`(DV)h4n@REO?! zy$%~{{&Rl^L%wCX+7!=_2G5Z6+(!G!2OhT;Xd>BF{mPNgX;9Xb$hPu~y8d>!q#f+sUu8V(v#H`v6{j zk`gO=^w_h^l2~Dg8hEto#t&$uPtW%x|2Tbmt&OSuSXT|SZBw7S9Qfb2f8G9%&vSq@ zXjn$Mi?Z;gjb@-CKBf1gK4)*@j-K>k={)A>CT@5a=+XnuoNDMrpC!`g?D&)Zas_`C zv~Ry27COE)8c6h(mdEcoPI+{C`)}q(J0vl_T0qx3@VRVJK_LwpJAzZ$aX-$!guXNl znf60tJZ1ZZ=f&giZSDo9yr0hsMA>r$_5GwfI<#rafBiNT;a~Lsaqs)l6Y=s=Wk_X= zb_wxEd&AiVXSslcV9=&dZQQ<|Vy|teW88oJ){%YqqMqvhj_fyA>0Vi4-8&~eiaclC z*LDkhjYBTI#CE*Vy>vxS+uCwmoI{5F{uh3Q{(;Wxj1#w#>~&z6yK&W5x>mdPyz8$= zoex`iK>8_S%%@>p;cQ8LOPzPkmw%AXXwapL)>j~^pe-eJrd`&_TK{F>9yF=*`d!!U zyZJL~8E;-1Pw|Xx0l^QjEq@`>LqcdGe6+V8`(CTKh&x4gBe#h+yB!T{=XS`O^2b^J zuJ}B8y0cpAyn$cw4Ot-_I&p31f5CR8a9xiy+uZwpP$m{z=J}1?2bpcl_Y(KhdM~>2 zlJW%A8XpvS(`!(@Qy<_hsRPMJ2x4eBND)!(*m8G~)lT4e>gl-z#aWh`0L8&{5k zxCf^hT}6}3o8Q&nX0bdc9=?F$saTtL2da#e(j0jx_GawNV5sX^U8nXd@2pKf9Sf>6 zvu|;U1GNWP{UWQ~*cIovvCBf8o4)p38Of4iTSnB?p3nTL%ZI6lq3Ub9`i;*SA6{}M zb~to)f&pys1r`TG<3ox#xya7MZ)qQxu z_-sJmzva5L+HjN2M_wOyKK7^h1<%d;P&e-e>=a!s?jszlZYnUQ8n$CpJ$-E&xVFR> zjC+Xjr?EG@uetD1uGE|oH*+jFvJI%dlxUmet86!FJuQ_FRadTn|LAWd9628EPQHID zA*ERoQc5pFnu1fKL0zR;Lq1*W^ao}H%x`$RbWfUAHqegmJ;tte<|F;YbzMi)uHu{+ z*2lh7?A>QgmD@X|a^9KLBTLFEb051$xgQ_0jt#F9ivGv3*SKl%*v#>I>N5>}rT3z5 z_voG!2@hXhN4mZGHT3Sg{3^Zmrrw(wrhUSEdcu(qph%ZBtL(}ED0*saSP{-QXqM6C zegECdX4|j2{`2?iy6J-J^mI?X1xJ)EtQ^oaV^mXbwwH62MyRiEn`xT%4gA>m^6Q)T z#-I8WF3zvM1?K_GIyG9z9qH4Ae8Wvw>fzCkKAd^_$LQ6pb+Zlw{oE!ifv)%P)v-$H ze8u@_?0WC$G5(KapI4}bon^+H!!m!2D`b4wU&QQ!4<{?2~dVq9f#Wgom+%%!qk zS>)d2Mb3PQ*IbDQd?dB=aow|&gJ=CR7Zo*YqEYQAj+WXZap?j4&{Iah?zlIo26(~a zo;A+S4{}WjbwQ8PNa283P&J^w@vOWpxY$=u_rO@5-zrN0oiUoI_4Y?HiZcy*J z|A4E$vaI05L*n{K=vF-+RSzS&VNxtsJ>o@w(8c;N_UGrSE$JEKaUDd9VmaGRqoixy zQTq$$DyYqOJmY^|i)!z-pY&|9a`5KlR+^UIYc5SZ>i}|fC)gr71=E7$pL_1ZY@2-2 ziUPmXc&GUuasb3;s-Az#&d%X_80$p z_aVYDhaEXalor$PeY5VNFLkv8Gvd@c{olZkw6~JA^+#INFRH~T5}e`uei^-0&YfP&`-O{9bW#ee#3~R zMh!)QJT(03lW=0$7ft$h{#}K>N&Nghp|*vNXd)f&Y%LqgMzwEj>tHF?t*4G1y2J%O zXt+a3Iy|6pgK^D$*h0+vt{8vi$t?`5XF_Yz7S7cV&XPv<0khqVX{l!q$o^-1J`hO#+LEn`RH)oEi7g}hf zJqnbkV)YePTJM6J43CvUkhb_&+-~@<5lVh%IlcIsA2RH{4s!}8w8PIg+-2t-*W`)b zrhwTlN}#0pv@~c_ia%1nk3TG=!AWcQ+J8X%XXJdmkzk)QUe;P`)koHW^PJ@QR6P{~ zq-1=Ne;ePo{4H7k){ZskA=$pC4u9Rt)|pi+`Y+agUcu$$~{Fhw7m)2U_r!M3rJ$=`_ioH~Am2Gdi zm*#m10^Os(@*N{Qb_BE(;dBk8HsD&e9fYwX@;PQBSg07?vd1c=bm}-me+_wRzRaFNDlf;s}YBPIdaL1>V|}ea#W+^iV<@FwH)= zYNZUOC-)uA_nWBMzvJ*l@-pvD7kymK5-eR9Jv9kEZ|@7gLzcWO+qhcDvSihT>%cxO zt>?Pq!#T=mYYVW9W(g-7Y0h->)~TfyX7F1vM4_xbPS7_0H+=Q&@&)r#Z(OZ#yZiR^__ zXQZ;&5ISI$I{O^`$ZdxtORV3?RUD6Zi~n{vx7YjeT$d$rz!k9C<}B+sc+m~;4Y(G! z(5X!wgGv~ACm~jy@qN+<-8O%tqd61zeD$|8Z&s_bMfRQeZ(Q(`Eb~{rQ*^ahY2VBx zsO;em?2L_eyTHPmEA-cA2Gaar-bLc6)*Bact5_ekxn!YsEG|CjY2xDjZ~$BQJNwk% zCmr;zL%-===|1nT-=0Rj@-fWg6RMuPofY0khjpRHnyK|fqd9U&7tc-Qa{M~-X}nKy zWmIu-ZXr!=;{d{;catvHcgoX;9V*K5FR_&_%E6zk3zCq3^*O$DL@+9-iUP`Z`ap`#Y>krcL%icS5thp&a9_z|ePbx~zCxE;&y{h&g zVhy;KlGNh6di)91^6o?XZ^@&^tOm9<d^XT}R(TqAPmC@=k^bbRf%M;+@-B|j>Uzk9c?XgR-nM9jHG_4SO43?ze^V!k~2 zA1`O%ww>qTcYE0TZbwVx>r|+f{CO6HmXLHxi?Y0JboFqpt*d{Z=IJ#@Pd=5bQS!2G z4WMeFRlQTfJWER1;(ryi<$TIB!>*jv-vW7dPu&?f7z41CsyFID%L2H+UnIBkizPSY zG)t~nt$uj7%k-21NG^t!+oI3->{s2Ts9TKsz$=Wzi^NL%`hNK4)sw4^wDHD6@GY&# zGFm(djr@`~d-PsBJu~(C3(&-+6cNESu(?Q0g;tKii?@m$IzcpDiq&08tLDeER^@NJopq~qMf8H7fl)lT~_4}YjkIIaK(_TiEy))l?;I1)%ZXl~2|0b74 z$a{i2@FpImm*(Ujr&pH`;#(7ZVSNh9PcP&3@IB*`nBBy#Y&TqE_#HfFJjbGc-~P$p zJ@viezvJBe<+t`~*36h9#kmNm_`BT`pRoEK#tl>J6H56yVSi{h+w+c2cCwe?h5uZ3 z_Ovr0nI85Qe!KYL5g+y!UCoDx=MOxO^SmFM`AUbicwW+H*t3teX)00$yDV}KaEatG z+IUv5OF#M8wB{@^`_6Ys=W4WZ!Ly3za6j6G7jz%cxRKB;S#65JXA3W^ZPhRMuyvrv znOS9@sCQr&q#aQ*ZKS5 z-$U6qu4Z{BD75kP2`ZNyH?^s2C0i`&sc}JiZCSK)#PT-zPF5(o{s2# z@af#H2tDWzXX)z#u9=uYnvg;;$?+T*_Xn*)lN*Kb4gb{{hzIOo)FuQj$-F)lO| zuWtF%tNTWqVvQ35hNKg7!~B&Lb!GaThqMn3ldIRvd|yxJ(l6X)E56d=8+_B+Tdi$X z(Lm}Ml5OjDjPCSycs6N=u4;=CXq+G=tSGwdi)ZX3@2lRf{+cP~39yFO_6U4w>l~Pw z5E@#$My$OT2b__AvrbQ$jFvqSx$r198jEb8DHD3tSnnV8-rK@o?cupVu>BqK-QU?^MCn~w zWvw(CO;N5>gGd?kZ3M)^F-oj%iDR(5crY`6ysR(AVMT1=bWzgb%C zYXyB8W?W^EzXha?)bvfRSvsZsPrUPG-+ak0J+z$up#9*BA!}pqr9Wsv)xv(}x<>VC zAHTy_KADF8q?ysOKL+FI3O?A~%s1vr-?euxun1I({|(zkjyL2~0P ze?LbW!zdal7_&B@Wl|N6(!|^U%AYgcax|Nb=QH4Xwto6dT(mCTx`yS6Ghfx|!>0p^ z7PG}8+?FPkZ8sOywSPn3_pQT?JuCeOjmzf=|i-n7f)u%eYKf7~)k9`J^ zRO<(P@NxCFq#6OQKHiS+apSG9w||R4d}bMkHTGt<-A~;z0jY7L*5wE5ZH-JZ-0l$% zXw+_eHskGo&IWy#|DXNcV8&Q#3;5s<@c7D~M8hzjY4nhi`AriH4auzjV9y0oPzbJC+z4zg4?cpaFmH>NLQMkfa2GWL_IW~5Pg>_M04iL1L z$k10lI_3V;?=Ljg{nv{nGuqgB{JU$YIyyWa5y{k)0M)pnu1JWcjJ zukWE^Up_~TWvj;7tBkF-HKtwb)3>3Xof7wYyCvG^$G`ugywEQEL%+tGenFOGRvhi4 z9yn`Bb?wj0XkZ7Ulqb}!VZfH{g4JK`f;GQlZ~4oMU)T0+u4ktc6nM)`3FX7s>+AF+ z3ZF5rc~<^=h}HFm%vlDP=`rfEab}zPXqOM1RcdcsLmv+w0n3PP5324`o+J{{Kc;7o zvx3&5cnk8G-Wylb2UoM4(5y#&?Mn*D5#=DZK-GEQu_vzj*0b2{_qMjRGhSDNAE0|JZ$o5)(<&KQ*z zg}BnvU5zl>QwmB7{#)a^?iMfOY6*k!$)JPuut)l;y={Fa zZycj;<=ID;7x!6HW=y%V$ns!iZ5yy#cRn*a+q8pTa0lPG2R-pMw*lS81--9+@N^1xIkSxV!Tj<`LBkQOKln*!bdCoV6Dh z?-`qxvViVm4uGLy{$wJ)i@Nc6w&jT9dBC3^pI}!Gh`Rhb{b@aD4p8HFu4@er%+uGi)PcO`)L(wQB`F2|gW~Z$BIZB7m#3>+|%7BK-D=V8z;+HW*VZIqMG^3EwF#DGPd} zaK@8|JJqSBGKD^K#vj8nRe>G9pr2(44c^S-R7Pk$|4?+#3kpg3$?jWU8;MmD4hPnkMST_!c7JX%!Ly)#F> zg=e-S4j(@UL|)&_*YQBNohDH|){rm9^gJ_({OYg&##5Vj{=zC-3Xt{oi|Xwt^RzPY zk)3!3D%I;*n@11(tY^I?T-ORcAA4LY;3e9bz0~D<;lk%ylgUQ1Frz|yiHx5`XO6}m z@am0{##l<(Jf(`~f_EMXH)E#}?5e{%1eDH?hE7p0d)G7T)9*`c8{>QpKAReQzzQ?Qsm=?9$I^*cg+D>U(I9mIp8|%&122FKO6P!(MO={H|ytI?!^zT z&HR&Z>T?rsbLe8l)ffYiCE^#WR&r_yooQ8fTvi$1l~W;2v45IVdiSC8#6J8QPj>%$ z`1f%Q@*IcbT!A*Ot`DvTz9*!vcH*chDsJ7u?vc(yc}ZobP<55@Tm`5RF=D`omv&#vu&(*>) zoHCw$myO2u3&0kP!$-<*?@C=goEy`F;QKbI?S}@TsfppA8Rg6Tz?zy|3d`|8+P=%v zPrv7V@G+b`LxIKF?Je?Q`g&@&Lns^UbB&5TYrD?rcXPX6B&bdCWmr1p+zQSEIn5(; ze{vqjGswAT)S6~r45-DFQI*wh58B16+4D35^4Us;V!DU#{=#om9%PiP6 zv~D}7I_q(I=+391>r}z0D#|Y1) z4x~(}jXEgxpE4rB5RbCvyNwLixTt>UO73rA4_!IL4>0 zP;}|c_<-3agBli%ZR#v8vibzof2{BK^R7XoG6H(M+Pa256!X&2nG4pxatVB_J%`$^qLCdl4nkt z$2m9Stas}n^M#YI7JG#_N{`7|_0p!5Rhfysj%G+?=B@vjnwOC%UQiNSJL_ z*{0r896maCn*YYd_|n(8*^vP1gjaj$Ls%?n2`eZ11O7@!%&@-noSC9=lb6O6CsFF& z@qA{x`U{#nJHWQHp7N?!m}}m?x#yp;?~`ZnrfJ>5JFQS8q1`4NE?_q{l2HeJq@=PH9n`rK*o;*Ez2G6I;Cld~<9P5~WVN zgDrUK-?pUBzcV_|5%G-i%V!Ba&8|o~`;k^Bv~T0+vpt7wsGxSFtq)vMUvoRjs~_(yH5orBU~&N4(asvFLNsL}Oe=z!}H!g!{(KVGJwD$T@W8 z*WoiBtpVH8m;I#mdIrAv9+FJ<$eMlY*$+A9<@cmxO;dX$|La=zSG0b5O+O&cn!?Gr zksK4+wwC#F*aQZ-BW%QnMGby(rtVqubM%67>9R`5IZs}Fmf?uv!>mK>^j@5Yu5Am}G{zQHgXGb^T7H87|{`#Ic6wU`&ctoc%`4neM zihB?7j&=U_DV;`GdYfF#O}pd`f2h#6hwZFfBS!&FIzOI1+C^{L_xw+>5#P`E$^muD z7y*mZjo-Ve`osJV{5J7xT>r>3NNTIq`7%FZhkpCpGut|_DmlR@><7sH%$XKg<@^yx z#)4NKnv3dvt8+pp6O=#y{q^0m_Z0@2Qwx|}t&`+SDpxyXS!R!((r1nu(4J%e!Fy5m zphh-|u14u8TXl-_jw)BX=t4VjcmBERqqEbCZ@eVe@{21?w?{z5%08ie@=fW`W*&AZ zD4uUwcchQ?>d(a3mn7KRkW=fy8=KF*e08tg7^pG=&iNx8#hR#o%#&_xzvz3k4?Wj) zwWX$m(bPj*<-b>?0b;#Je^^tT)9r|-c`zzrmrhUi#dTgkKYPR5egHZ?&)P$t;(Zy% zt2`$yG|H=_`?s?_*Sk>Y=hz-&b5_wKP8C&qr`tD!_e!=WXLv@LUk{kN(BSHnA?{_D zV+@x2BaZ^Fm<^sKZ?9**Wwb+IXNNh#UNHO4@-)gCjWf&)QhdU;SKk3_T*=2!?E$|I zq!gSM^`Q3s^1bx1x$WCW&%h*OAge_wd)yxOv3mMpq2&ulnbgYhvh|V^j=yLbvRVdy zfNgrOC^-c@^uKVDL~--n=s=2iNOE$ZRXW+Km%LVO#M7D%Nx2rSwwul(W#jYj<~x)s zT-Kli)oA+Q>J-bMx0Rf-1TCsh>Xf`2KX{~gwX|6E@Pld;>kKsS;I-|VXQ$J%`Lxt^ zB%~dB$U{>CSX*??>np#`2#RCG2-_=IcD3T?NYddoz5J?^g6?!rI-U;u8qwh26OM!} zU~zvcw+BVepB^?XE5_>g(|)9J_D6V`2HyDI7!8KEj1hHv>zG6LZ-GH?9e^{l7+bi@ zEP!hIpj*<<;SVoKuZ%6}WZODFUObbz%MRNQ=Os%dqZuPOBnP?r?czL83byu?-x8V{eGZ@A-SaZs^nxRO)&p{;X|m{M9fx8&&#@=ZoxEO|3nK&p zCpkkBjBBoqTbUgS^$Q;B#Cpb|C;22?C0puQ-!HETwH6fo?sef1A#8aZz zzsq50MZK(*U(m^%zya4HDl+H||LH4pfrCbMph|;(Oa9%wM`&%{QD6CAJiTCyL9iXS)ZZ zR9aYAegFriim>oA&U|xUg70b6XN&{hQ3POBX~;z)Vz1L&dWQ$v)x+fp!vUY3Tt`6g4eU}_sbqtsg{rGfQVzYsC09do^7~NW3=&V@?06?|S-bR5nj|y|;M&EV*xv>2GQTZ zHy4ibN&1CK)Q@@USoA}VJxUzs2tD(pJ@fFX?2=QkaXyq&G-D4zet+AWmSB^aT z4Zg1~IB3LtcRAbA!;t`5KfxYSLVs(!&9$Ogh~{iw9{^D zZpbn8cakIZNL)yc{-O`vQ^#Jq2?}?nTG~DIMT-46-(UaiFVnQ-Gy<+ZJo&OCg%Vl; zb#<3!`7L@FKfr>UrN>D7RP~|u?tbcCV|gyn@$y^G+BX`XMKTIE<$$MFKh;I6b*rcE zetqw~(rD&o@;qsjxY9v=S&!NXj~reUH&YZGn=L60!1(TTR574?Am~aP?zZ zBw3}Yaoz1^&06;KfM^b0r7~yHlxWP=p}wy!z2iN&*DDi@%{^hRA5&szK<5ZL^=G}U zx{?#LT?Y7`9`2RH^w4js&)-YG|NShy96`Y3KaxLCKB;GzRNV$NQyfxhPYpVK4W4J3 zT#M$}@ppK=x$FsX8=JZF8Bzd+D`?$2c*@kIYW=Ls;?1P45#lz>TtCUv_!i-}*E(B= z7V@S0>Noe%RWyop&6EW@EdQ$Ss8Izq+tJhWJ>SE7_PaqSHEQZI7%AKeN3=M52;0ru zRK_&7*~R>KRr<554ec4xdKYA z+u$XsJR6ZlW;@xd7F2V@fd9F@ZT@?R``BCR_|N>yH-FpyukHVNt?BcWE(wM`J%Lo| zD%`hm;3iFvKKm0I;WPHGn@;#1__=EY<)EjT>j)UnV#tLySJUW^tnZ-#QSU*|NeC9I z3(m|K%BS6U$I~Yq?m?da)&&m1ae;90X!;69@3exR8YK#sp44?;ryRO_iUGaH7JZ9$ z@yp&p8wz3VL+U97n=(glpRsC$eWH9K`0!0H8SqrL{d`%^M#?ZT*x7@;`%%$@7y9&`H1cbWEZkCEbLdoIw@O6G7L zqz>v)yGDNN)I)CDCHM8yum*LfaHW5OQv=b#Q7n4^sh{nxm82-ke)6!*QRKsNM%3Bs zqm|e8wDcqJ>J{7E53Q$WsW1J5-bP%YD(_e;nvNxSM#bMN=zGUkvFrY?ADmdy<@O<2MikhqBmHpF0 zO;kHY@Y{g0Q;(d{O03`0J$=eperJRwSYiu3)mKstyLzcvqSp&ifJKTaGNza>$Y7KiPcEY{hp)#3y}53vh;iSSI^7f z<7mOdo&$)l>TXw^rnT#Vg?AGrUIdnJOCw3o(V6S1i=Otp|CQiKSpad7eJ5{#GET7R zBi5rC2kWHg=k9HEcQ|OxqF%YNK(811x2N@;=+jIzKX?_iR`9eo1KypwuI_rXv?+C` z?Z4DSZ)gGroc+D}DV_tq_mlXjaG6J=LYZ1s8?-eZ0jHlV-MZ2PcBI~=f4{W<$@|#I zSjOK_j(=V3tN)TGiimfuRW*xOoHcINE3AUPaJG`>tySHE`^1Z{WwI zJD=mj;@{rvCK}x-TyrmPGzM)!64ujp^^G6W>MHuDAks=%goR9eJ{P9oJDj$_DUbGz~XM1_~YqW zMA|}C{@C`$3jb#P!)GDA0aXS(F3@k#VzjnFGR6Qp#1GIz~B1Q;i`~e7w z8B?~9m@w>Sz>p~erp(Ib^ZBf`_Sxs$bI!f@`@ZkFn$CG|-?jJJYp>sXpM8GZ`<*T6 z#=XcJ=WB84LisGTyk-dX5=Q_XZSaU>sn_}JD!t&rg?HOi7p*aQ@9f4kW~)=_(ee>Bp0^Md?-Xl%GPPV!Nx$;xCtS}`_G^_7GuJ$gq|(q zjKg1)TzbcQ6_poS-j*aZ)#oKwEl`mXS!sdC^*RU#Z|D5Y>!qvj ze#=e|uF}WAj)w!c$Y!glc-W6m%TZ%Ici#rCNFHWb$)Q!4vr8ta4cs)&z1Z{Le4Q$* zoG}9*mKLxgEF4hUIT~PTBWhS}q)>bspkX}P!f`e(b?i~`M9^lgo13?E7$c1!Y?2`l z!!yp7R+;cH+YKDZYno#X-f-g>jWa+N9*&j6B%|RIE!g4NW~PIibUV(7Cdt8(wFqrw)OnaA5KE@}_$$}5-? z4Hz5vp^YCKsF-8ZY)2MK1Ja^UR&eNi z+2h$;yk7V|Y07}KRYWLjQzp(==!AT}y5H+M`@*-ZDmlepmP$G>#?}$#u*c%>pTnW4 z%Mt_VEDj!U$#K}p+(1rqXPe{pGL0j7Sa_QddBzq$6DBt%w`EK}iG~i1;3#JVxuWMP zh4Vjj_L(`(_3ms>gHe*@0gI>hgTTo{+1G7!O4R%DEo4e|)XRd1q0gnm!PUZE{7Q#0 zI*~o{Ov;3>j^66=;M5@wL{95vg@g^P- z6ZY5?YlY4HJ-f3tG)Bg{hLI&B;|q**^QA|z2wjmOGyT2CpCeHE`IBv1xDEc@^dwcR z(VqGIR^{OSv!l|QG1B;yR1$mt24A}mjB@Dahz=-J(5|{X(Ab~)qYkS%-)yG+XWvwJ z&{~XD?x9^CB`jI0H&OBvR9O$|7Bh9gg@2~>&nELorvfm-KBFR2m^+}9Y~+j959Z$S z84=VP;W;YXol9da;~w>-kj*Veo$X0H#{-W3A>YWEK~|^0+^Id+E%Tqe!LM``N3pW3|R?;ptjL1e#+HCl~ z&3;aDq)!+6GLj_&kQ6Ayh6a)MTUpuza1V2I?#S`-j!he$XtN(BxqGxECF-q4N|QFl zIcu6LclK?xNs{m>J1ZV+%JxJvXawHGk>>sj>Jt&f6 z2^+kDy70VqwPAnog**NN9C>)~B)@J8>RrQ@ctGLMR4gntC>Wy~uqMrH2BAhYoTX9M z?4N**{?r?1iP+bC;pV@J34Y??0a;fYpw}DfC?&t>E2h9(XqhlL(60`>gAV;FXjh$k z1MDW%C*LE-V3*HLHk>}oK}5x;Vo6@|2=S@7mmPRGAeC&&MaLX z@-B`~X=lV~{r6(I3J$VhcYkJn?Harl-+(vRZny<5SQ82=Dx?LQbH_nTni8n|~8HW-dNK3z~wK?X+R$`R?OmL+F}oBW#Lx z>AbaJoa4K9hia9%SY3RY!hhkdoZXF{qqpXgG;uy%TStNuIPz#1Zvmw}>nb&m#1BYe zo1VXvwDsKG+l_%fxCPv?%M|UlZx=?bWt^@LvIG2dw2fV*b6+1W?b^uNv&X?3oOM{t zNcjnMd2*4`7@KXJKy`~fp4Dg; zJbvO2DU{sTi{!Oq>nI(A@SD$)z7s>P9rv#DkSh-m@-RqX@e?luRl{{*Q>3NO%u#9w z+|lJt@H{*!2Bpn-^+LX?>k;S~?{b>j8d)1TdiH)xDPU1CjGVCh*NQ+t|8-B4C= zmWM>izGa2idjR0+poqVt#`hjhyhQiWQ`Bbn90Yv#l%bx5`h+6r_w+8u;iAzP3<~XR^Elcw@dPO5m%k@ZeP$)N`w4KY)$~I@bu)5=z6uaV8X(ojhEhFWx+x7Z> zQ2^$52|p)jKRpymzl!G;SD6kL*MpjH$y%=nY-wvNF%9bAye$5-O6TkJl1N!QL5= zJsIng(C0q-_n*nMN%nWH)dm#5;^eadGi_}FR~yc6d)E#PgD|$r)|Qx+%*%aSFmmzJ z+59LOEoAj*pjom7r`h%_=}{3iM^9LzV6XT199&5pMhPs|lJ_mVkc_-bpWgD^1v*Mf z3s`oCU)h72&xF%O^yJ$v>*$WUV<5(lWj~4~ZQssmvFq?Js`dGp^0b<=-cSGs>pWT| zb7t>!Vd0XWyyJHe!L3xVk+dBveJ%CCQs#~i^WwJei&#jNpHY=%z$q6CwspJDp7M^B zm&665xY8Cb?wW{0>}70b2GBFd=N<4UUV>quBpR`WyG< zcr9_$+n5y}$pVKi)4+|z1NK!6P2u%<>4A$GXQ^w!x;8UVUh_}MPI#;f?!fbn%a*dF z8!RcA1^J6BCjV4y_|`tZMR{^&9?sGjD+!Rcl7uGPRp`U=r|7B=B%+a5xpvSZ?t{(@>)QAN`9ZA9@bQ5qy?f0%E8kuEWxL7RNSK{ zCs?ZyKV{t2S2UB}wS4&VDsmG?PuLOyRG<2RUqz+#$SB+$jZ3|6{a%?{7H9HWVH_n@kN-sS66B_N*>Ui+u#2ipqE5k?#hse&?{Sfh{Rrwt*YQ`Hb=8_fZ3^^K(OO z@2ZM4hH)r_v4cjvtvI45wCeLV_)hZ?Uk4A2>Un^+vb?SMf+#fYe2@JG4$>;eT=QGL z%ewZPB@YkHV&zReeNN6RznRWY`_Bi!g=4GGKG_IdYR5KOie^A#dq$}!qpy4!vUab0 zONO}lj`q?5yo|g_^^s#A0I274y#BfMTYMN(*&u0c3cnLtl-`e~aL78^j&^vmW|y$ z=ph{XtB<->-a`v#>sn^OTH}5`-}~5~Z;(OWRrc&Jxy#k=Wd=-@b1xy@nD@{S-(#I- zLXSdCYZfpr!%Qe$81Iv-1dbwSamsr4w}%w@W!lD_RKxEMdgwYX{mnRDBBufe@?h_kcmgjanjYFKEbCcKhg z`mG*ahsQN;oPlq?($tF4APH(pPt+y3+Lmn(C>r28JuWR3C-b$Jg!>%B!=eW>@` zEZ<(vDN=D}o-W^Vem)`c;u~@mNyQ$l+D9V zymG5Ia-Z4rrk>S(`8<1=Mwox$c>qPK1=QXcbwL9Tb@>b+BNg<4ZRoS~Xah9RM4L6X zy|)8j?R@4mM?T&2oRNGd9N>4MUEu-yS%7q+M%*p6nP@-a?Ab1S!NTkJQiuB-i=Mam zxTRdkk~aWOwQkYhV^CTYw5~lUZ}4?~HzC)vMfbgP+Qr%e@7$&}$mHwNvf!dEIGy-< zn)3SM^_t5|9)ERu%=nQX*Gzjh{mS&~=)2>%*}gV~Jph_np6!IP(PYt) zz3oAf45_WJ8$EaDwiDBrk-IQ-jI3rUEWN>EzbnF9OOd-;2lwo}DaL)Rh8_=G4MQiV zt;pSimhIqb;2r&}ot=S}wSBsX-BpY3wgyIT;&x<(-xMc2=j6OY-f`Ew(pPqa3--HQ zcl&;aFB{?@wqf@%&7SqRzOvci2d+sgZZ&;nv16{=APZF!2!n16&a#dTiA=X1Bc=Pr9J zWXUdYl5BDWe%IcvLm$!Nn+!EVc?b^LXVtY=*nV>5OK!!1P`iZUg0|)d@vdIQMPQL5J-##{*q9@r4Gm#{-t8yI!+} zW}Cn0aoFPc4A|Qd`&_46-2)3wJ8|c)B^aoEe)t@0(@VB#V`GyCODbEYObRWC&*$;; z+NQ$@^&H_?lV1f{R~ta}mTecdb?;w^Lg~}bL)TXSl2gz_?!)!jcrfSE>&)Yq@-AM_ z*Yp&Ak=ZcIQFv}(DO<2IO~V^VmY(hJk>8;arI@_^M!pmw@1&*@}WJ@my1mgzt>!{0W0q+5BmxP^~U^- z)*X4d=vmL;7GGXp|Dah(m&~@Ft6f{aGZX7Q1FkpAdGlBwU-XcqYn#U_#-9OhHTw)d9N&1!Z)py+M zlwL=f-Dkko4w$8}Env5&b~ptu&beuy@f;xT0k?E5>FPbCbxwX9?6ggsw(YWOi(j`Z z-g!^`AfET$Q-_RIbkI~g@i#|xGY(BZjapfAYjmZR*08dFKh7T?`{BXWI=^j)f65PK zpJg^zd)u$Qu=e*n4=nTfc4mJLc10>)+0BAgV*dD&&U++=!?Sr^3zwb_iEnNH68c@=0fb8R* zvD2U~4Lu+}QDdZ0JbjinfR25{+Ek;OMuR?~C9HjjWmNfBd+xoG+Yxen`8lSaPr#AfBI;4cr*I?e@$i%#K5x?d7XRmc zJ6*fQ9o;w2G~DV(saJix=tgRk8+`f@-#NIqi0#MHcN_g)n(uCVMgdRhFsvgDHNc8w ztvbuMI%f289x-yFj{UdIhIRLr>wRCwOOj1ft_I@Sal}`S7_+~6GG{PzFYfle_&pw9 zoX)eC-3DnLEw1V5YOHz6+e zBH}_iTZ+b^$vzwn#d7rrWUt=;je0!Kw)w&QvD$a(;@x10cS|aMk$Vxrx6aNAxU&xq zsk=D$bFQUN2tgv78|r9lb_aC>KCtv-*xNlS&EV>wg-;0n%>Ykm$0yzC!c{( z53qci5SjpMlDd7~b@CTVx-5+3XdP|gE{;SJSMnn&4owU_jzWks%&(e9{yN`u`ofjJ z63X!n1&}`9SS_67Of!g1Ecem`y4F1*<^;3$?0G2UY9xRxWxJsODko5{d`Nqpm{Sjo zy2P3izPR!iC(D8^pR%Ec4nh?ADEtxacrw207f)&nO3<|AQ1jZ;Kl}@8Up|{PamS?TdQQh%+YK5^41fUcb>p5Nb3_0T#e}84-UoZZfw|RZJM=FgVLq}Wmkz67RXQ*eX z94ffQR~yj5(dB8)k?I-FM@}3qOlTXp#aFvOU&S1$Yn$8F$&v-R(x=*hiU!bEtTt)v zGYEI$R~mX+QfD{h6ha+s(L#Mh7S2%5QqckgM%m?n4~tIC5$1+wCHr{s^$aD-&eg6J+I0;-CO+<3KaP)U&k}k3=Gp4W zxTwG@6(e~K&E9A5n5WkOPtL6E(zoKeTr(}X`x174DJ$YjO&{#f;xxVFe5D+fX+~u) zUv;(R=tRN&CsFtOZPU+YO)%&ag<4%(6B=ozuwa>SizVlW@;=n9-w_1=T|cC3%I}tDUASpR>oWS`o1SeAv`N=t zT{o4#?%4JAPb3-J=C|}q@RjL zv%=AyX2S={Fi)9*Z9en?EWR&U#Ud&O4!(3^kXgEQ!! z^DOMb2zcJ-fSX;`$$9oM?z8v{MJO~b3my`QnJeRKcCvp%f6vi2tUbK|4L1L-)hAU95v; zJMe{}4`rBjYIp3VPduqHN+S)tQ3r>*HsBt%-j}@P?F?`{)USavxc3O4&DBMR)u&>I z#!l9Fw~o{(oQa8BuD3$p7xAOZ1B;#zCY?iO+sUmKBjkCLUZ4{0W%&^jB>_^d>|H?+ z*EW6jdFr-|Y~7Ewf2w(T+p|B1kOq4J-!tp0?vvP!Aqmw6+|B{;9ra zI_4?&0$+jER}W=hJJ6eWgM^_V-+Eh`u`SH4SxdTZz2#U3tnXCTS`^PT?%lnTQ#-K7 z(3hp`D7eK}J4VR1wmFCRZfsVzZEZ!HcY%!S{@jLjrQSe({NJ{LtZobHWpBai+qPqr z>_+w4N;KGc-G1b2-?!Gf8unk!S4Nf^OIy@;XB+XLDa$%Na2UtWWv*YI57zx5tzlH) zQ}?-YG~VaD@0q7h#~Ir0(jAQMh)k?&t)FLad1koP6%rK#LW{zj?*0Z!czr5+(2Ku! z-ok&XMV|rRW=p>oOdWxbbJ(lVaiSmV+@M4tkUCLxVwC+NMIzO$&MDB(N25j#m_%$d!X92Se)1s*OINzJ98#a*+V<=%Ps*e$2W$`02Lq42ht7N!H&?u`-J2M-Ks~iH z`NK1pY(~fOn;|%B821)w^X1O_uYs;cwgnZhqyco~uugz&*?Ub3C8c zzH4Y3c(SnWD1mAFzjl&(P>N}fNMF6Ndlv`&q|wpvX&X6qX+`8pm!b363<3DRd~f1( zExA}jQnGjs_2r32XcnLFfz7B^yqIhB3!V=lOHpTBI$|{Nv@juG>R=moXjk?#;W-`z`$vUI`ze&bTVh zKJl>IeJ0v`Cw|Dav(*yZZ^^T+&&_^HU36}|n42&BH(Jswi_bjmNPCvJcKgtCNA7jM zkCHH6_kaf9-t(M2b%RF7bK22oOS!P)X8$W<;6$4@Ht2ksHt-z4Ym>vZs8%0o(!dYO zNki02(~>1Qp3(~148oI@GS8>;l;^rz-fgjz4N&@})J3O~-?rxuT0)J7Rk6Q!o^$!u z_dLKQZSHc_2AZ&RtE^E^`Ly5rdSBpt?> z6?bto^rMtsfNZs+?*Yz1-9RNejK=wc`;jU?eInH z$~;E}+<0t?y&2ELb=|$IOP&8q?oYt2-ZK z(nM|GHNTu4w|OD*Mx!}uy!*tNPUTb^AUa*2)HG;?{zj@at#7i$%K`w^*`s1q-e#KSRiw4Y&FJ zRCoO@qs{@Bf5Fuj>CCry@1a(3LU7i2&HJO@Lw3>04rzk6R=Ku7&Hjn&v#j-i@)+n)84c`(|`0yGmE9NXKl$Ju8jECm?JosQn+V(b|yHyRq-9 z4JCD;_Vd*ozPLB{$i=6S&3YT^zSLzen$oc)RBP};=OSu@ zCq20b^l=qYEVv$Fh3;$g$?ik>XN$HymTl2mIJ70d^-qp!81Ed7RRZl*0UoP?U{+%A(pAbL#q|dMhyro`*ENxOuFso3(uiG?IuueGmC`Pgu_^>Ewl(~9Kw2xBgq7QmWs48eP?h9@7TS$=g=RO~;=z%#5?r>n zXlzijW3CZ9GUaGf%)J|)Mg|_N<^Z}2vh_LaC5sDqK+@*vCt9ykOwCKD~ zFUJTQN{f2e3(dYxun*-1y}bK=(Mz#UfAQL!tMFIOd{zr|`K-?C)J-}=ieR?8&UWd` z9=+1X!(Vs$_R(yB=Ak=u-L--Jo^~|UqnI$a+u)BH2S}H$0P>z^yI_m<$2txcI^r{I zXaQxHp`Pt-15mFZ4*Wf}2d?Xy4URaY$O_gQ>VOy47;r3((o}58sElb7Z0q*`NWH8) z^U8OSHqMKCZE@&9EeKKM`G&fo_=9Z8QQ-6tTk_gxu6^?tudM8l#`SpI8EUNtPV2Ox z!h)m6B`k(^qG)Ngqh+dlLeog%>Y2AcwqB#(p<>9tu9v6I>vu5gF4-M#ww?KI^r_$b3P=A&w$l4od>I@X_*q5*P<5SWHZi~XJag5C zlpO{JgL6%cpC|xVqS&SJwM_QtgC0nH+H{y5pF5>5F{@sDIj!mm^o} z=ceqR>KWjxuxrAR+GKY3wzNIAt48%}C)nk|jWZA2TG*R7T4U4n@co(eY@M6drjz{{ z2)UE{2qSVwcdLBIFoOkzC^he{$WO|?kHFxK{Fk^t+taQ4-(*dLEhcN!R=xITFGW`{ zz1fc^x_U(5k^O3+8$K5uO|5mjiEAi;nje5Cy0RDLr;qE`e+`+9t?PjDp@1&x5S14RA8w{$lME5 z&VA^oai4OtH}00V@Blu$zd`HR_j2_%VdXQ`$ql&cd_fbQbwCuw>ymHwpm)4~7vEhw ze)8SG)4&rYw8^$7v=dumWW%_k0#to{ukKbIJVw_Xs$A853-s;UeW^oIzMvmU7pNqQ z03@IIt?w^&Fc6`@f``PyV>CIa01%G*wi|Tt&=^|BGe?_w=C5}`-`ZyJxFN$^Of6*g z7=T;pBR|->zxujfP7EkpK=8>CYFpux%foc^7>!Tq)^j-9sX@fef<{_Y{4RC$prX}_ z?un~?(=;3Wc<+5Ja4dc3+w$T5zKN8zrjj!M5@qb0rumwDpF$QPiexp^ZK?0bPfDJL z4&=waX__gYdGuKKwIF#ah4x{hD0Cd(j6ttu4Ojcc-p7^2D$4Om3QEzQi|k zUVP_d)7s;{w7Kuu_i}i(d%pZ&VKbg9+U|_kJJ`5Zo96p%@F}DaqEN4{n*oPXt9#EB zhZgASbS?D5Cwh`Y;erEOx_NLA zm-z1KTDP0;(p}Y)`Wi|LSh=vi()q{3`rr)i;`(y!fE3x`0lOV&R@P?EL+tQZ z9uG*AJpl41z}-0>BVn&NwBV$=qyB2*VJQ`WlGnS})XTKmfFR(-T)nizhj@(dT+}tj z>D<+w>lXVdYM?nn*iZm-pA~oquA!t3wNu0QK!GJ?z`)BM$0zWL*28u4NfOCPr3K`> zCq18uV-W@4w+^{Gx_S4Pb=~57dp6fTF5WP|@m;j;LvR+yf-Tzj_!Ksn^ef%`&<@b0 zw4%*C9-gy4iXD(6NtCA20-pK*4m$@ zl;gWUwLiP%8v>NoAPYcNpiZcj9&k0^qcl$2FI0N0}a#?y7T~4Mih!EYD^DTxnG z82_^D@sv=~(JW1vH_DyrBUJBA_IT0)f_`g{)|b_JI=)$da+RgauYqgnNm$?KU9ELV z%Q%X5*-@gWQ#$6eNk^-hjd)PwxC0(g-)CLv8{e3^cC zZK1Qi)6REh#8J@#Wgq$KY_rghdv@8@0(QME@gA^i*w9YgE3mD8iRDZBduP{jZMfdw z>Zp8!-tstYu%+-iKy84+i>~l3@r}L6wY=hi?>so}#4%|xBF1=eRvWm?*ZMoj>+>Mr zqW@)_A8$Ikt>lWLSP^Es;?&QPi7&bdM_GU>ddqr1lZ_5tNQDv*pKChLwh^lC^*fvM z&%(CWwdhewO!YKq>97gqX4^=Q@hJ7%nwPfmH}LQO%Y5Kmo=fkA7cKEE;6)69*0}2T zXz%XRf@8be?q!^X{iP{<_i^z9G?P{yuyR}e0!|rSb`-of{>wN^j>-9Bm=DlQ{s17P zALIi^rR*s9;(oB?`SHt#)C~H`+TH!?s^WPgIBIguRqc3f`I{mYiEa$Q!us?2~K#xbzc$q4?|fd+EU*Dm~$Z(wQ?x zv!?n8)mvD=>z;9N@j7F|BWTMz#9!{Tr?{5a-u07MU+=pk2G*th2zBSn(C69T0v_Kj zEe$z>)-HD_v3muMJF0-VnzpGdQXTZm^}^%XkWxxo?Q4$j>fL1n>ts@J}=<|L)7&l6_*o*2O=CfzNe2fQg}uh?E#8TLYB+1&!(6VE&B z^;aHWm?OIqR-9jC4&Gs}g>Hg6uj}aKv(tlPG(VsZ|jZ2LiR$xzh;U#rDmmlAD z3+*?WOM^ORbUQ&?t6j$hC3-d-TDRS|{%6$<7f3v1Leglz)fKXaR4rL>FBKI^HYKhP%Rr`9{y`oh`!=6a18XYcUdx^+$Z zSxWvK@X{~z0v4?n9!Cvr)(N+(l)SC?`X5y<4{59Yj7!!ndSNuJL8l_>!#s|IH$@L}L(ARZ`zLZ=LP3hl+vj^JX8uzN= z0BN*A2jF<07IqQy@s9(v9BojJd3y2THWY_tJ~XW#e2#nX-)d{2VPDtL?E7AeK4lK^ z+16~Rx-WReAFTf~C`xcPCV^md$^DL;>{FyZZZ?`*Yajk=1 zUc1M+B6hIS*70eeX)mNJxRXmS+3vcctJW#)FwlR8t}gwkW9h2g>3-!EFMn<5=I6)U z$5YojH!yx|Q(xKO3A5epu%ux>OIz%Sd%}Z`9vttA!Ar6WnucALum$XPp?MUa2iWB= zEneWP_yEYe)h^f)4|r{kJisnX?u;zz@ZMv^%Y!pM!>$%kwi@c${u#xK@1)#${^>K! zp}nEtp!Ui#2ehoWfEO0BpT$uc#yVSgB4YvZiMHyFe)Zk;%ZJk@b}wRM>zedgBwL|X zpH+@}L$UBfWv8rg;M=Z^=uynu18u~0`)0p?%NwT#eOOw+S|v;O(z#YmP>r#*XvOyo z?)v2y>f4|wwR1oedDhFSoAs@c4P5Zf6#0;KLumm| z^zsk{S90P?cNDr-*N1|12^hZ`79mL=CRV(fM_Uy zTb=uPMZQF@Czaa4{iWLAp%*^8e%&VD*wGf6F&|EBNDePK4v<2fbpTd8*#7G{zysLL zWaiyIAL3p5U%qKRaC$%jW6(ie9UgWzSl0UY41{EF1S9BPw_JHTiV_DI; zxIV;VPVMT<4o{&iUc@gup1|ol(EU2`jr<=ud*amIN&XsLIm)4qVjWG$`A7Go8{or6xpR^~tu#L|= ze(nBmHr92-VGJQvlA%f0fVgbedh(E%_PJZOc}Tc1#y?X(zytCJHCAZ>_r4u*E&g}- z!GGrY05fH8Lf97Vf-Tzrzt0Dlx$;BW{jtmkzRAJwJwNChdskP8!4o={xmLWM6@?pD z3V8{1#N9VLI1(e8V7uuX2bb%_%k>8|OfCDFKt3SeWBzLOY-pRFeRW^m>5t?F?)UgZ z?|=9A?Qi_$C7vH@cT2685?JVv6tcGp6O= zLwIA1g{-9<99p@2u?l?#G>YaQW-Fj;7AcxTFKHTRDaRp)_Fb3b;@$9R7>gn~h}UcF zHJiyJzPoafJ4Ih`yFOH0l50wkhLqAKJd>0Rt_b!0n6n(ksFEc;w{2hdU&wcjYC#40 zwrSTpP+@aq>04u*##J-w8j`6!#VB7)#OC4+w^z^ zzJZ72%Ln_W-V}wbYj>AmI_Xd6jan*S; z*X2(io|}9M%@cCv#dGlfrUB0mJPY<2m-hW+nl0?qy4_IEHX?-DRk@&%j{yYHekF1} zspQ+(RvlE+eeyWMPJ&DMMZ{K;|*p z@(ulR;gRlzHcecC`bdj5K2h7113aj;cE8rPE^MRrbSIK1Y82-03c?VeEv%P+Gv=CXPj);B4G0 z(LVv9nGceEg5M>VnRaxIhY^}H02eYFk;LxG3Ox4YlF_;h-iLS#xRXP3r(L(S=bTTW z-8F5h-%IO+wZ8iNQuTzEFREwVZ}ff!dh^Vev`?kMo2&!MW&p+2qs^vr5pC=jTTm0D zU-XT3OK*8X6KCTH?g_Ndd@Q{nQBoWbMVj2MSB+@!k}3acZryfOkMW0D4}OE)y)Inn z+;(OjM#;YcO}4e*Bz*n0#Ww%=WchTi)HJ$z&On3GUt0LO9WCf|xq8^j2H)6lX%p@l z(D&F2)cW$pt24i)d=FTf_BF2h(OrFlx-P-9>&O;IFADO~6-Pt6p>5fZI!B>Db)46J zKlC`c&<5 z*%m8Ry?LILoZ-lj*yl_`u3h9A<&LEySMXwo<6${IF%oiKKn5gB_Ei~mA3N66ZbN0) zg|4Mrz0VxumfXJc8^e{oC8zvVZN(qn=yYk<1)ZbA;5AR*6%1?x78K;ldmfzO0r6?_ zbwSUzCCu-hAwQONFMi*+`>Iy$E$li&D!Em;!#0dU9+XbvfcCAne9U454}=9}Pr<;p zo9(J`MvuZD_1nt(xp?PqU{>be9WCfmW2Bd_+tGryqPioBW$iM~RvEjzr+H-m*OBda z9xt4`(DBS0k2X(_yrR88KUdWHbnFM}+jwUU(1y~Y-rvAvneZu@8K`+)1G?0&qc`X-W}@w zNmq-0?O#z}&#_C7$1er!c=~8hP%0x74D}Z-zK!TJTOMu14tU$ zJ!7^!%9aBjtGIgVZ?cJ88$@s~>$oq*y9==z@8*2>r(w)c`Zbvce&w-g*LxTZ$%|aZ z@A}_IO#a+=mRIDt@H)CbkC8p+z-!A} z+5-{y4A z1~SSU);{SV3#CJ>M=qM}dgK^Q4us1Hv@r5@Vln$z!R~zpLe4tF}g;=`t;}&-gNYU)6X!c+Z;abS>G*#7}i09Pv`?$K%02pz)CtVvFT$g0-c9X;vtV1>e=o*qj%vw zr3~x^`BvV%$T)wm(>eJW$TTkJoo*k%{=QIQQj8nF;w}G0^Tw1;ha{fL7scpqG zWC1Oi31e{Z({avl?#3v2b zK+=HfbZze=JVzowXiZ=DR;vg-BD#cVMZ4u_YIU);pYXF7kIxlfj4;`8$&YqTTC?}R zbAet`=y330X=t&S3O;e4ND>mG9#SD*Bmc|U;ov|z0FCv4T04u2buYD$E%~uN)1LG5 z2{?+IfivoqqBiR*30l8_9p)phSv3b28E0!UXv==_Lc3t$gF^bVw*l`fiKUV5>ttMb z_E}|3>v0y>=R$qaTqC(>w<`C zqyK53i=v&10l^(Cnl~dp|NQ28TdF? z`)mh05>mH`yu0UEV1l2I*93aa0MN9kIz zZor`s7oQw~;>EE;kI~sL2}{O-$~2BM)_`ZOy{3cl5cHuA)Bgy2u7na~$5AGIkwNjwUF z2MQD4=Fnx?OYnDIe&;l+huChb;1*IGut5?)dMPwyyA60Wnd8)sz7wqhI@&C#5=Wob znxXN);lO8&0<_+CjrMF8KB2CPCiWFQc?e5rKWVcCU-~KfrV0Cfv|gX)t-rnue;wq} z);rOj!EE$F#a8Q(QImB)o3y>&%ee4G!x#ra*;975^pvGHJ?+hYv@Glkx{ckQ`~Wy_ zpo7n0`&;Msk{jv89k3!)czLuf{ap*sS__!^I4Dt=A;hbASll^=4azf>Ifj!*V?x=HVV z_1xh)!>4_>%ou}g6nSTWzy>}cX{5I=+DK>O%g?D7q5!OXDwx039=Mq6ZA$KQ(bjdi z&k<+Z@GCc2pb0PiEOaYfQ;U!=^wE>*bMPk~a7EkHHgWUpv4q*iy>}OtMzXKGp*W$h z$E%^ve!ZWiXL9irhJR1|OIIxfCvgXd(p#D&zSb*g15)*YHu73?3a!+sDT0Pi;c)%} zAvvJma@Ui6=-~Uwt$&{}&Ruu>Wmw9loc@#ob+)V2S*O~Bdlpi+&~T(EO7-SQ?F}G+ zeTZp`)u3nNwf!5oXawLYmf2Perx`8rZ<8z$cEG`^^*a8Qs}V;2b{`B}2MfE;x(9rt z1;@EoOj>R1h2H^L>YP`j(?5}wE?<>Rqwa@yax`baw=}%)7Q_-)nna$}`m5)p=>4h9 zsVS&Ox#w3#9#PVoiaNP6YO)P=s2SEr~u`OMlQ&mY){MnJFaiP3{KY$ zjOF-or5C^AIY7xD+VY~8^m}4RX=%ZDJ$LfkIF$*Udy)%1N}qz=C*U5v#MDT7Q8}Mb z)F7j;q0i#G8?M|Wk$g}}I-z(1N)~|n03x3J6osRbCG3HYrap_+51-MlYkHq;x_m>a zVT^}`gtSi9PPKwjn*Qn{dQe~Q2lzeQuVTb42gXYyzl4+_dkHPHC|^?>^%o3^2D-qk zVB$E!Ssx3zjOD_XFWm7rFTq;86Ka0jpy^m|AVRy!%9_CA6Ide!AZy(M{-qT9qDBj% zt!NQeG1bTT#BS||87%&e@xfz}1zhS9^0F-*P_OmBQz`dG4V8=N78mP#x8iEWeYFN2 z|Hh65r}D>zzUU9{GHbX(1dRQ4*V=DUSl@;f36hWjoI2#MP+Wx#73exxmei4665g;(KH-{Cl!pXJ|wz zRkrw=1%d-@r^8TrviiCWX=}H6)3&s=`aRp?hJ4%LBVNGkzRTbfz9Aa-((e7+Zi~j! zxjaCFs?M{I^fEw?I@>4Kg9=*mA0V`DfCh+Bs`Ff@K70bF+=#ZV@!jI_9Jl{Gp#>lD zLS3?Kz**$mPuooFgc*nOQ45InI_IxFm&G_~4j@Smo+zq|b4lPmA*}^QT~HGQOSTr{-=-Ui{w{or_k!@t`b^=x?+yp6a?z-IFDe5c#Bg z75&|9URUy}@~YlEkI5SjhTLHb;cQpzm|N1jh2DKe)lABqNIN*X<()9V;VR{` z80mPYdR%9DmxU|J-@HNp3P3=Jp=Py4l$K@H>Z+M~IEYaQi?%H8?UsF>mRdsD4}YWw z;_cEt|1he2MM!SCPiuj{;5A;W@!k8K$SF?XMac2AQhc*bIsJ}Z zZhOS@EOang=&|lW!^SKM{LXoHJ=cB?XOtbw6WPKI#3rXDofrV7lXtoXQHnh+Ca~wtlov+7V z#ZS0Cg~XG*W(*$XJGJwK1F~K;zmI%hu@L_zuS(u4^Z61>N?(d)Z0Kvh>g#`J`uARJ z9eM4w$MST~-U)~C1Ban_KxVaOOhemI3`L)`KCL!l)eg9{U89%wQGd{R@L6ZHaOh82 z+%w>M7kjw9?*g*53}<-O=>38@aa5E&ObOlhm4*%1rqSy^y`M9c@Yj z9^VzHz12#pa2#6S9t?GaGV+cP@~}ufwjDr~0J|$Q5Ca zaqZ~iH4BFcFv#6_Y3oY=6_k*)P zsAMZJfJSb|P|q6}?aUv_NPhm4=ZH4uDlCpI4~#iQ=soE82w#*rd;dBieZn9Al6EPNIhm6}vtjELg{3 zl567FQiq0C;PpI@_r5jf-^8fHqpSf>S)#V1j?yh}s2gx7DUmHoTQH(fn|-eS@J)+4 ztVIuWI<}krQylUxs}?!Du^ZSfi(WvRahPKM((W6d`DqkJ(l*HeBu@5w;0HedQ*sN6 z+5)e7BL`>zoVdsO#9VnjBB7C>LJKsCGHCc7+01j)MYKjq;2T^qQeI|TvM^S?Y-+Dnv@U;e4Q1mEyRLix->FIn&4k3vltPxNOid!x-y6O~;+ z(z8Ecw{NO*ki(~C(S_e=3puI)T!FrlRWi45xd(eyHlr(x!1)ZK7Zih?Tbb2{JHe;r z_Y!5VY$E^GeS~|Rcn6=h8EO0A)OB{e`HV|<)#nl6%?Xq*~ z_D28Gj(+d`MW4?&kb$F3ht_bsG%`Tcd&aVjQkg0m^y4sTTF_F1MYDCke(N*W*UG=E z&kI&sksri%Ezz#}1-`T@Xq<_)LM{+kaN%t0FxDQ@f3oI!NkPWo5GT{9+9z_g;FI+W z@Ai?P@BU$(hxJd?G~*j+qHYQMGf1oox5bfMhq8(rdHcE_EntKV=vUfdGgoWs^VX%! zD{mNKX_2t&ZfiW^1I!qY8SRhS+;zzQvZZo%&o@3rP6Em% zwl}#3i-1*DtmnX%U(1mIvc(hT_<;|4#E-wP$ei`TH}^iNw2+e5Q6U+))jCdjq+{`f zkPK{#*67W|`;~tDJ}Upp?x6ccR4I%3Ah`yeHf{6+JLu3hZLZ1mPdmE8qy&v8M5#O% zAGT4_azl&76Qa(MD!^4;`HzV7Ys{5Z<{kOhoZnyhbJ^hK-uU=?CttoU2o`(p3SH$qoj+hYtn&s zDu#+5vJ%mW^X6szz(a=x-z)s;UR3crINLKDxPqK&>jyEpLk2yO8p{Vmn;IPZJ)i3j zc^Ka^yZ^okG}t=_^yev_k$^tR7(nQyEMdFT5r_72PTF`UdK<8y?CTdsB%Qd5bM%uk zBn7nIzO=pG2>B|!dBdS~g;FLQ;9l!YX;pY;0sHT^(L+~Q)6&*}t=j;u=(XOC{VMbP z(~Ax4(~_$yx+cQ8NtSi=xU0R#tpYWx<)`zly5!S9B9##*I|hfm_G z^`k|d{gUItI@-Wg=^BtKOKMhghYUXg9O<@u14Rye7ciC#80Y0-AqrCfJ zxmQkkOBPvhCs$;*Z_wY>np}HDc#txY%ZNRH%8mb)!eEAW$mMxd$R?!aF zBbR%Px#Aw@p_|?b?m9riN(VI6ZUJi+6wRQcLAM6H54zH?*V-{|d;f874F)H90^mZY zMkKM+0V|;1Vh)JUz}J0}(Lei<@hKz`ntU$Uy#%!C(c4gOq~cwxUCFxVM7`!I=VZlZ zSAHc4eMk8P>l~>Z2VT+eK|j<*Z_>I&3m$3fwlL7QXO2bz%Vogv(Ple&GYw><6}_Rs z;sFa+FtDO%sIyp(F6f<`e*e6GPx`H4#+5@xi1FeJAf9MnXa$^T#=g?PN)yGdfs(~h zEIFaxR}tU_-<;eXFUt##HWz2`BEPnV(jNE`cA3-J%3GW?l3X3d0(KnQy}rmM6^o;n zr47ZV?u%)epSNW$`8dX-kS8@1WShmNl@FB34Y);jLmg$Mkz>7WIXYlVnom(u&z<;= z{a3GKP-c_7M{W}iLumnPwpF|OWe4f9^mggH(Gfa>vZ(a#FGo5GAxgK=RbS3K=fAoG z>f#_SXpZfwS6tDyph$Tx%Y4A0UXcOKsK-&p=jhHE%v5gyugC@!p_mm zQc_1a^!XHC1~nI97Ckd)BEhdO*Rm zj-(LUB+1;L0+-ibbDZ-|c5ht@hN})Bk6E?{D17*|ffhZGWOY_5PF+-%TKt&&SUD6cr+`4hBL+Y&DRH|!%f=iuVQ*&%Nxlzr1|fnB(x?cyFW zCB@-4TFQ#92f4Lrl`FlkuS8uV2c_-EXLNz@-vv3A4=QnM0W}Y@UQ(zJZACF@X94y7 zfIhl=IB4=3VWuYg`*P5cPhHJco+_7G*i@_g@VyuIjAg=sbJ6O4<5^Za=nW;Ie2w-> ziFFMp(E=%EZ|<7@%h=9` zSW$eknRS+?EaJWI&_AyAZpwkJRLzCtDZ3^dXjhRB8rm!-+4!t@!%pTa?5&-~ZQq?q zz3aE3-`ercxZkFPmQoE6MQzr3Sj;Nv?9rEcqes*ZEl~%yCA5Gs-#I50Gt!_;;ai`1 z|08yEZ=ULiF*?rxR!)$=jtwN8qAE=;J=rz2@NBfDt=^S^?|9W8zp8yQgDP{R2X$y^ z8|yqwpVE8KhgcN(kI{{~jZpQ=_jXQnp(U~g+&Ef?xfD>!9j zE23d1dZ{^V_0STZCT&~N*LBO~J!#PORd<>>YD#W^=mJJD_%vW1#0d`|KY{`^mWE=} zgsj46f7Ww#XDN;tCg{OO^&W-L5&X#)ge3`3{-3Esu--^`qQ*Zy9BgO^R>p*(C^2TpiLJ0vv7 zF-i^}vCgRcWSXnLVnRP%U-`%jgUNP zVQErlIK&)1l{td^9ZAo4$0{Fh5_}bw-Eu&ncv@=T0*-khTS&(~LPKc*D{B{vOJ~I} zvs7`$2ykuU#?NS%XDspY9;VNczh%*vu2~~}$Z^79fF2N^YVSePGCphFp{u2r%iEs1 zEqIJdDO?}m|GaK0eGh%lQRJ?}+r3%usw1BcL>%tp&u^p>UhvbY#Ljj~0IC5BT*w6L* z=ngBWZB>stO*ZheadiU(a!yEzAJLkH|L#?H zc?0C)*w2+MCA#ELg3DJnTlTa(vu>|7j=TqYc@IE56DI#2O=x6cQ+Nxz$re$Hh|QHN zDK}%r%-x;;l_eB+D%ZPQqkR3og?!3f!XD8xdc2-#`fKpal`fN`lY?NlqxfoEKc}t7 zNdm?LUW~)}j%T8o(bTAtgfp6D3`hf=c4!)TGIuZ;@Tqgw>bDgtbHo+2f|@ziqg-m6 zTzYe{eCLD*HuP4{CR0RL{-IY%LwWLW`U!p(M*DH~N+aNkx?gvNO|TG}z8?CB)2#7-#r0$g-hM6%09 zyL-2xj541*eXAp^e=Hp>t%u|T9gD()qI8iD9U4c!6@KD< zFwg7P>${Eyu8x93Gq9mz!>q`5`Hm5k#*)Xn+VG?@ke(d+6^&Tm+swG~8;^ZeS;ZBM zx*iR6i_-H7I7P-s{$pOv7*Vm)oYp;;{*2@2Zhb?YJX3~X&1B+aBm3LnEsrdMt-^vv za9JBPDn}@4CJ(|dJh{%1?^mC}lwPAg~2*u3c85hqU0m*5=)x9;F`Hc3;{YH)&eJ}f5TqH?z6(o`>ZA4+fuy{~**$r)* zi{ttp++ikmj$kN`2FSvrkz?cmaM5b)h0JUtKBPb&;YYg9N&n=U@fdPlc6yf!Ib7i- z7h(x9Z(elYOimv5k|V8^L;%&J)qq0}yu#Yx2dwSD|HSYa_|&KS;og1xgu`#rhg1$) zOML{fo=<3V4hKH(gU&JkVx`<&nv-#UK_IeBuF&5%IuAq!9|t3_M0wPhVZIxRl% z=#dXlRW>wmQ-S5Cx+RoPbl$3X+^C_}rQj7>l0Vw%9YM)-=m0dVK`$^1L=S#x$z(J7 zx<*-N8(tiJ$ouB}d*-J;?C#z0EPs~f7n(Ndx9EYkXeMe1A6aVX0XNU@NMkud^ug_? zK8uT@wzcI8xBZ%BorA;!GRhK26YriK9&P!(h5XbR9a(D$Z4HN~dmQOOU!#-b^1SBe z^LlaUkleEn*YR1;>r@XNsE10M6a|eSj%`EnC?BoYd+z1mI?s|}CNJE;vHKGBl2S0G zsRvrMDRe-aqcFF+Wu^0Q7gYO>ejoUXc0J57L~W;L65ewvxT34Va;lu=db(< zhdxKKpd2}9Mr3aGwefZjf~jJW@Kz6E40UM*agK1c!;8J%=Ux82wC=;&Wykj?Zdw!M zfd(lP4hw076-(h8+B|H?h8FFiAH9q2;H!3I#pe;vToB z-hi?PV5O@q{metHzAbU0EZNc@6w+FwPy-xG@cdjBMZzAS+Op1OxOPJkZiFs2XT3G!+-aXS5T_ zQ(Wf@KjG@i`hB{i--q^)GHOLnq>R=1QFnoG-a|h}fr_(&@T1(*r~j{BxpYe~Rf!BDT~H-x6V5q zsOyQ@in7UyMjZOvi~-PyzlY#2w9bK_+9ARKvho&@>l$2E%+CwiHGSkAnPd7!AhfqmezZ;HTQzLg(c7{*E*abw$H7T zGsmvV#IuR!6nZ)Y4weCUiG1W{;TXa=S9PZLJ zQSuXQaENP*HXCf&-&=S{BE1URC^@&_3?5sF)Qxt|?6iw>#9J6~a*WoJljH(Qu1CA_ zy7~o!(t?7cs26)`WM3tS8_G0Izdipme8%yOs=&NonyNKVpP&9TdtL|roveRi`VDHV zEC!hSE1CNOOYoGc|24C~DgK|Ee)Ti|UDAAh`r2pym#lwr`nAveKT(G*pLydK zF-uTgf)PJgM-52mM}cn`gQYx>RU zw@|)?k>8*G@977C#Qz~MPf$KU`%ggq-RVad{WjWXlxKZUHhlgRTt9$b&r;%VO<(JJ zgcj5xH28a>c|Ls`R(t?Wz9Y+?Ve}K|^hDUVF=w7af9m*s;NGA99G`n5zlQPegOdJv z4u5@!S@?DQ`}34SUzL=iJ@Mj`Upn*2lP^IFdY!ud8FYUJKQbV;PDK)ybDViQBp@9 zTt<#`5r=oM1~C_&%D3-ki`hUO-UFW>2>17s;`#K);Qub2aE^<4P(k~eda+LF&7gZ?T0eSgLEo0;wJg6bK3^8^%sB`)vDd*tvTGVAvd zU;5~?_!r)~#QcNlkEVZ&TnJr%08X4e--8AppfKkmV`o5 zt`A(dpG^NL;>wKsKH8Bb{~6@{5L$3;r}qC0GGZP10dSF3e+BqwpnGTf_rc}+$dPvt zrQey}{pR~W{P73RzWcrBPrmcPk3W3=_Pc-i_PZZEefHjyzxA8H^_$;%|NH;-58i+8 z$sc~}$+tdu|4*KN_ebx({lOZ!ZaqnwKYjYahtDwZx4uRmVDX3F0)xNz{(H~A{rrO; zedqa;XCFR!`^obU-hSul58nRZ`%m8g^CwH^*S_=q55D*O`42z*#@E08=NR&#h7h|} z@t?0{|BEMo`SyoT{_IE3-hKY$FP}aC-oWt>pMLo4yYD^y;K@5rKm5)I&wltEx_#rx z@Bi=*{^9qYKB0&wKl%*`8{?~u_2T&@(Klr16{0(sY!P6(-`QF+m@`|mt`@_S$V|JpmB6@_6SjI(bt$K8WX)rwwSVQ+%a2PoFY z8mmk;N!_hazu&Ba3WA;`IfnWB%MiYtk|y+?2Sft^gTm_nMlL)lFj>b31M7UgAm3Wc zE+ik4=sxHx?oyfZ8~#yQnhnN%Ww|MUqo{0ws1N9DQq=?o6X44aQ-0HpeW8b;7PzfCzxvtFr6)r5Yxw`jUvHsp-32t{Ne7 z)OOQ>-H$^B(FqC zUWu+AO#+kcw9XX~z5)8xg8ljnOh zX+2$-?nYR##(BG1;UnZfu@VbF0J@A|_<-kjRqQ`l*VqCMKY?6Xxd0ho9pH4|3XN;x2TW{KnCqG4ixy-k*Xi`M z0mByz5Hc^!9|(gSJyjCkdbLqxhyVxDskDlGspDRR_6XYagmP4IKf(geWLKmbP)Pg$ z0MTRtpw=Nxc1n7>bp=F9wn53Y3CbXEM!*3*M&^kVn!%7|aFR7R;6(o@H3y2L1^z$; zPfAN8;dlaqNxf2enzj_2Dave|N?~3vH_oN^qKymbF>2f=J=p4%f|k7A1)w<39w=Dr z6_1iUA5G697?)j2#Zxa29&^%!Fd!|$z*jF5F3ap+i8l1Ws3gZK5^ufCxcut89@^Li zMfs3c<>Rkc97CQmd%XuDp{!qv*!{(Se@bhtk)PR;><{9SZ*5 zdk)h$v78kA^$KIiP)Xm=0nxh*LQJL-Rj&v{`X;mv^h8X(a(LM~FEe=3Id@xOKg{YS z;>&HQmjz=KoUNjUj+oZ#$g0ii70=dNqinrpAv(}AXIidI_9EDM93QCrT_7ABjtltx zZYWMB#{=kb7beHWS3gHjd_t|`?sz6ui)TnrOWneF;L*>x%TO;1(|Q>(1zpD2$hey` zJnVeLvuba9q@!_Hf4u^kcEA|f(YSj|z0BCccE+C0yTsJ%7KNh&+cxsr#(6h?y*wDT zw<-NSx~uc95%s!RF>Bs~E#237cYnQZaflybb-!)zt)$Ps=3RK}<-wy#qi|>QZp`)a z*sDXW3tA?<&Aal|>*gT%yn8eA?qbiodkCL*0Z|@XdO7_Gop<3Pa^6ip^KJv@-8hMx zch%>-Ys>~%+wuF2`}x~qdu8I`;6bSc+e*1hf+>bl$Y zUw7R!taaTzJ>cJXpo#k~;F;~-cLS4(ore6@NAldb?+%OKcd4YG0rwqi{KjK2?mMsz zVy^j%B=FkDCT=|XAnckyq%C6P6ZyVpu?iaVj9rKv`*p-x#Ey9fIdtqF0))gP&v`^G z1fTms{jmxE^B;T7Ux34}eFP{PMDSem_pfN`HGg^LqrDSNz4kHvuO>vW`(OSuv~h!? zEQ>8~?rq#)*R4K7J>-(UFeH?LNLOs3wjdHpKH>wB-DV|uSh5Nw=6?I^exWx_0OtRX zrl^-U-g%<-jK3@}2a==TUYGDF(T_wUGE_o(iU^Dq$uW+;Yc#n>O`dWK2T{T!k0u@v zFg_?&5a!-;QyyUN;Z+D>Ql*hM-h0wHFYY$Nq;*ny4igPEaH7VM7uPvDDM46&wluFh zdT8K{M>Ph$faS44SRvC`BWDxzSBGMJ=4hQ8BFyE*1m>eWSM`i0-Y3)y=fw1iBo$27 z0gYrTbmH$ANlw^vb3(>j`GO-w(F{!cXE=tnFj{@p8Za07ur~*LeC~B|!ZniNXhrWQ z$zmHhhmnl^&`h~uOU4744A%&pFo_94-`%<|P1k`T8doZNYkQkY97!;+o+b}lkGq4B z66GE|k4!Lrcws`1@!|i+>j^_d@bG?+h0!S}x@B>ZUq#H5r1`?7 zIZM}`v`cY3_(48+T_&d>9@OJ?NoT}by3{4biJCN~xs1l5$XC!Z$?3J0wYG()lnHg7 z+^_KS_*EdxJc)=FJ&&V~$^3aTagLkEQ_dv9JgJz5J&z0E4EWs5i`O&Yb9XOZ O&w$U}j;!UIT#gA;7IK;Z literal 644 zcmV-~0(<>ZNk&F|0ssJ4MM6+kP&iC)0ssIn|G+N*=b)f%Bj=7kuzxuF|8{AxjU=hj zp}`~ngh&AsPni1kuYxv`ls*4u-o?vdrkVdBQf8+9FWw7)UJHP`ns_e&+DynQ-V1;h z1A@8)fFvO@;)4-o&jqp~Z*m_A0RZV2!KzcvbvI@gM&J;S=z8#~=US zoqzrR@1*#T;y;T2DE_1PkK#WH!+8Dh{rK(ghh)EG=7%@ml%h6UIPCNC(>pAhfi78j z|8#?j-ly7Y%E(^#_cy2LW^(YJBN=8pwBf&XMkt zX;Kt42PcBhkybRlr^OnSTae{C-h-QY-bDtgq;$??4R`9IGL>_*YMw`kw4&)flP%KN zp?8pZFCluFhxZ)d(7vmx~9=uGvork>_D{9QW#S=iQD@3@87)`b^Bdmayu&VdLBr%$f{ diff --git a/app/assets/images/projects/bottom-screen/selector.webp b/app/assets/images/projects/bottom-screen/selector.webp deleted file mode 100644 index 794db16e9d9883145c2f4a6dc9f625bfdbeb10d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 zcmV-$0FVDtNk&F!00012MM6+kP&iCn0000lKfn(V7a$NwqTSzM4S_%s-Tp=k2#S`w zZvF%Q6{raSq`?q7jUk`}x!gfoNk&E(0RRA3MM6+kP&iBs0RR9mPe23^XP}^M8#dSOA2P!+1#R1~xpx1M z8ICDv+lI}x`-jYMZ2kiP0PoKK+g&8>uH8k_%pl3#kz{}y+nV!aMjd30rf_r75|f{(_*6djjbe?|6p2$1@vFr;mjn+ zkbpI9M|N3uzTFL*=GE*jAZA76HY?7zdtqzJnmsj@^{gpVFLq`S{sp9h0V)QOr>r=C zavCKI6P)G+9ik`U)*G#&A8iE6K898Lv`PX5j=>aH) m1vY#fitr`-&cBY6+;{%tE5Rw(&JU*ve(BQrpF~}~k!S^egos-J diff --git a/app/assets/images/projects/top-screen/background.webp b/app/assets/images/projects/top-screen/background.webp index 6f30ff3b35fb728b25b463f4c7aad105a3271654..655df55a73018d99b6889905dc031832939dc967 100644 GIT binary patch literal 1010 zcmV zObHVz+;GAzVM>@#>4^}rak{mTP>u$vybp{W5!1=xpgP387-$3(-1gH%{5W)~0xGP40 z>w)_RL>XoxZjtDgwME5oxn>an0&*U;38aXOc~P~s&}1OWXyy$8tamFcSi?>qIgd4< zR@yuusRm?K>PdHHV2$}0L^#6@#dX&N%3fOwHMt%T8RafS1i4FF~mf-G~Bgauo= zMdeAvDa4`#{?w&0ZFkPPg*94BC1EI>;aZ1XNlE(6`PD5D{Q` z;ynU`I_L*Ukcp7bCe0ljakNR;Jhw`O&ogOr2s7b=s;@?Rpw6|<2VigXgI9m z&g(9fs9i_VeaZw#Y26AGj}k<^gUQfmwC((Du2_oy+vq!Fog zrk`R=gp8us7xi^#b$RB_U_S8eDKKB%quZzZMgbkXgBDmGp?e1%7>?eZqkyj+{k+cR zZ^YDsC+DW&J4W7xs{#AQ;Vc$=z<>75!{N2H|hj0JioxDFZ@2tN&HP|`)yL)4k_5Z&U-%T)CyZtDMjYgGc_lSu^ zX!|z@?!}Ie z3H05#dbetzK)Sr92$Q5Fme*+>1e1g$)}dJ#gRd^rqg!q|fDR?EOAfoDqzD40rX{rV zP`x^X@cEPna0f6G#xCZuLzQ|FlqG?9yy;H=Aln9u?<^B&Y70aW9?$1 gG=Qc0gHuru&)iv@il2YM421+<@G5@NqVnMv06Z?;iU0rr literal 400 zcmWIYbaU%qWMBw)bqWXzuu!N0vM)$5%w^PKU_8KJXDHF_vPf~EfCz&EGs~9k1rp{n zFACQ`{D1vr-R|Gpm8@>De&F99?@;%@M*jcz|8E(8?|=VK{YU+mf5yxo_#eppf55(o zF+T8`?>442v$J~}cI`eN82o+SqNP5$8#aih+)mIsxl;IecMfZ$*$u8uDu?gHwY|4> z^}ko~Bk}Q$mA^rXr%BtIzS64ud?n=X&TZ1w?l1Z_5PR`u~dkb%>$MFDTje zfz&-;u`*aXM+ahP`T~Z3|Gy^uDfL<+Se;sa`ew!!lXZq#g;{^i9tJTPskC_Asd+S0 zG{gFKO676u8!pQu4vFO0eqZPy+|Itv`qx@}ri-_>TSe?Fa^PFXm3F6vn;~=K{i~Tj z#QLu8yma*RB!<$0V6!I*5zM}Q|5p1S*iyFk+%&zI3CydTW^PwxIv|x({xzzOb@A4` sl8r@A8f0Tc&hF$8W4N5Wf7Rs=y0WW_mv&EAVR-dmS?&pk4a^M;0D6kSIRF3v diff --git a/app/assets/images/projects/top-screen/scope-badge.png b/app/assets/images/projects/top-screen/scope-badge.png deleted file mode 100644 index 6ef0ee2629e5585c96922a6c15efe8c4b905fb1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1963 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj=!N$PASatA!GLXYq9OUlAc=M!AJ&?na?&#~t zz_78O`%fY(kgt&J5#-CjP^HGe(9pub@Czu^@PdJ%)PRBERRRNp)eHs(@q#(K0&Rd2 zoCO|{#S9F3${@^GvDCf{D9B#o>Fdh=l3Q9-R!-=qVIxq4(bL5-#6pnq8yn|O#%Em& z|AER-022xi%E3^{lJJTFL*<_ZVhk86u^9&vBT6Ah$~#PJu$lN{ju3GQiMAS>E!f1E z;$9GMGd2Uz#r`dlpss-+3y2DBbeCY`vn9P@U}a^co(q4?6JhxN{X6vx1i6|fVTh65 zv4syQVpKPfYOzd;F9@l9>vg0wdz)Y%=L8jb6Mw<&;$SjOH#-H diff --git a/app/components/Projects/BottomScreen/Background.vue b/app/components/Projects/BottomScreen/Background.vue index 5b2eae8..9efab0f 100644 --- a/app/components/Projects/BottomScreen/Background.vue +++ b/app/components/Projects/BottomScreen/Background.vue @@ -1,33 +1,11 @@ diff --git a/app/components/Projects/BottomScreen/Projects.vue b/app/components/Projects/BottomScreen/Projects.vue deleted file mode 100644 index cb19a81..0000000 --- a/app/components/Projects/BottomScreen/Projects.vue +++ /dev/null @@ -1,85 +0,0 @@ - diff --git a/app/components/Projects/TopScreen/Previews.vue b/app/components/Projects/TopScreen/Previews.vue deleted file mode 100644 index 8a8aa8b..0000000 --- a/app/components/Projects/TopScreen/Previews.vue +++ /dev/null @@ -1,122 +0,0 @@ - diff --git a/app/components/Projects/TopScreen/Project.vue b/app/components/Projects/TopScreen/Project.vue new file mode 100644 index 0000000..a054614 --- /dev/null +++ b/app/components/Projects/TopScreen/Project.vue @@ -0,0 +1,134 @@ + diff --git a/app/components/Projects/TopScreen/StatusBar.vue b/app/components/Projects/TopScreen/StatusBar.vue deleted file mode 100644 index c998f1a..0000000 --- a/app/components/Projects/TopScreen/StatusBar.vue +++ /dev/null @@ -1,59 +0,0 @@ - diff --git a/app/components/Projects/TopScreen/TopScreen.vue b/app/components/Projects/TopScreen/TopScreen.vue index 6673553..9f95050 100644 --- a/app/components/Projects/TopScreen/TopScreen.vue +++ b/app/components/Projects/TopScreen/TopScreen.vue @@ -1,7 +1,6 @@ @@ -9,7 +8,5 @@ const store = useProjectsStore(); diff --git a/app/stores/projects.ts b/app/stores/projects.ts index 114a766..0ae0fb2 100644 --- a/app/stores/projects.ts +++ b/app/stores/projects.ts @@ -1,74 +1,15 @@ -import type { MarkdownRoot } from "@nuxt/content"; +import type { + DataCollectionItemBase, + ProjectsCollectionItem, +} from "@nuxt/content"; import gsap from "gsap"; -type MarkdownBody = ( - | { - type: "h1" | "p"; - text: string; - } - | { - type: "img"; - image: HTMLImageElement; - } -)[]; - -const createImage = (src: string): HTMLImageElement => { - // TODO: how to cleanup ? - const img = document.createElement("img"); - img.src = src; - return img; -}; - -// TODO: move to utils or smth maybe -const simplifyMarkdownAST = (root: MarkdownRoot) => { - const body: MarkdownBody = []; - for (const node of root.value) { - if (Array.isArray(node)) { - const [type, props, value] = node; - console.log("--------------"); - console.log(`type = ${type}`); - console.log(`props = ${JSON.stringify(props)}`); - console.log(`value = ${value}`); - - switch (type) { - case "h1": - case "p": { - if (typeof value !== "string") - throw `Unsupported node value for '${type}': '${value}'`; - body.push({ type, text: value }); - break; - } - - case "img": { - if (typeof props["src"] !== "string") - throw `Unsupported type or missing node prop "src" for '${type}': '${JSON.stringify(props)}'`; - body.push({ type, image: createImage(props.src) }); - break; - } - - default: { - throw `Unsupported '${type}'`; - } - } - } else { - throw `Unsupported node kind 'string'`; - } - } - - return body; -}; - export const useProjectsStore = defineStore("projects", { state: () => ({ - projects: [] as { - description: string; - thumbnail: string; - preview: string; - url: string | null; - technologies: string[]; - scope: "hobby" | "work"; - body: MarkdownBody; - }[], + projects: [] as (Omit< + ProjectsCollectionItem, + keyof DataCollectionItemBase + > & { id: string })[], currentProject: 0, loading: true, offsetX: 0, @@ -77,33 +18,37 @@ export const useProjectsStore = defineStore("projects", { actions: { async loadProjects() { this.loading = true; + const { data: projects } = await useAsyncData("projects", () => - queryCollection("projects").order("order", "ASC").all(), + queryCollection("projects") + .order("order", "ASC") + .select( + "id", + "order", + "scope", + "title", + "link", + "description", + "summary", + "technologies", + "tasks", + ) + .all(), ); if (!projects.value) throw "Cannot load projects"; + this.projects = projects.value.map((project) => ({ + ...project, + id: project.id.split("/")[2]!, + })); - this.projects = []; - - for (const project of projects.value) { - const parts = project.id.replace(".md", "").split("/"); - const id = parts[parts.length - 2]!; - this.projects.push({ - description: project.description, - thumbnail: `/images/projects/${id}/thumbnail.webp`, - preview: `/images/projects/${id}/preview.webp`, - url: project.url, - technologies: project.technologies, - scope: project.scope, - body: simplifyMarkdownAST(project.body), - }); - } + console.log(this.projects); this.loading = false; }, visitProject() { - const url = this.projects[this.currentProject]!.url; - if (url) navigateTo(url, { external: true, open: { target: "_blank" } }); + const link = this.projects[this.currentProject]?.link; + if (link) navigateTo(link, { open: { target: "_blank" } }); }, scrollProjects(direction: "left" | "right") { @@ -133,6 +78,7 @@ export const useProjectsStore = defineStore("projects", { } }, + // TODO: not used anymore scrollToProject(index: number) { if (index === this.currentProject) return; diff --git a/content.config.ts b/content.config.ts index 8c14778..9b209b0 100644 --- a/content.config.ts +++ b/content.config.ts @@ -4,14 +4,17 @@ import { z } from "zod"; export default defineContentConfig({ collections: { projects: defineCollection({ - type: "page", - source: "projects/**/index.md", + type: "data", + source: "projects/**/index.yml", schema: z.object({ - description: z.string(), - url: z.url().nullable(), order: z.number(), - technologies: z.array(z.string()), scope: z.enum(["hobby", "work"]), + title: z.string(), + link: z.url().nullable(), + description: z.string(), + summary: z.string(), + technologies: z.array(z.string()), + tasks: z.array(z.string()), }), }), }, diff --git a/content/projects/biobleud/index.md b/content/projects/biobleud/index.md deleted file mode 100644 index 5fd2283..0000000 --- a/content/projects/biobleud/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -description: Biobleud - Automated Excel imports\nfor an ERP system -url: null -order: 100 -technologies: [VBA] -scope: work ---- diff --git a/content/projects/biobleud/index.webp b/content/projects/biobleud/index.webp new file mode 100644 index 0000000000000000000000000000000000000000..74a29464492712f74e5bea6828160906f3498b01 GIT binary patch literal 58 zcmWIYbaOLeU|MA6P3~;#n^3UxIMYgeZ-IdTmBq4-w zHPe5HlC9Qlj^syhaKV-VxsxCG5uiPz^_90j`*?$2p#CAhL~yh}#1h%J*8ix%)7#kqDUK zGgb;&=*jNEKVljt-sA;y^UE%y-?{(f#Dki&Yr-tO^M7!;@O<;n0q|OBx6JFB#fmGj z!mHGffx+5i@hcS0j9#(!AV6wqzUDlizZ-T=NJ@FXpEcqct>l*F|MEcy2`)d3QNYTuMs-7F-X1H6PW?Rt3y+cJ5}FQ ztB$}gnS;aLj(yfU+RnTs#%Do1(ia_qU34vwZF;_)Y))~eh@VJ!Y9CCf@T$ZW&va|) z7MV?RYMMc)A*#BCmQ$n)YKo^qg+oPUT>M5$TTnDSyXz1x891g9-e%#*L7`Ph_HkVW zX;~;Ec446MUBO#Wjsj@a6y>#i(=_Er7BoFC;$8EysCofHcVOn-|L0kj>Hwji6ydZ) zel7w%x=OJE_}WPCx9g~@0|@$&fiNyc+;J4g(v)bC5jETtX8{ttxYeyJ5xNl_=+-fD zNiswkA@PFSFh*pEG8OE>XLwsoJjj4cZ{3)1rL8&25tlAE2<3gL7Xz7d1&}PtmD5pn zrM$$NDMyKI>n4a&)3R#^xtj-O zu3StJbZ7g(GLxoQa2l z$3a^FA=|4EV}c6_SYrA}-Ev5{IEgWl4NJU~WA>D!sE;p7;CWZrjFW!|0nK zH9i0fac`4j_C_DCt#8o$%nU-Vke?j+-rD2&zAXUkgG0gq diff --git a/content/projects/lbf-bot/index.md b/content/projects/lbf-bot/index.md deleted file mode 100644 index 241b164..0000000 --- a/content/projects/lbf-bot/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -description: LBF Bot - Custom Discord bot for\na gaming group -url: https://github.com/pihkaal/lbf-bot -order: 50 -technologies: [Node, TypeScript] -scope: hobby ---- - -a diff --git a/content/projects/lbf-bot/index.webp b/content/projects/lbf-bot/index.webp new file mode 100644 index 0000000000000000000000000000000000000000..870f13e07397fa07ae6706548295d7258eeb3d76 GIT binary patch literal 456 zcmV;(0XP0qNk&G%0RRA3MM6+kP&iDp0RR9mSwI#LwMdS(Jr0wULKEC*AU&ihhC(=V zqyT7xLiEcHvdAqnzryyi;}J{N*Jj#C4Ohb300E4Q1T$@jjPc>q0qJYo;RX3v+f~h*^aU6$~PEd3U zs%L0~lye@lW&qln0z6|k4XMsKr-B6qtx4$BE}=#+trD9}E1_QPrx<`0s9BgTE3xSr zr|i2CTA>1Bwk%aMb>H_VSiuS^1#L;yOu^gR8sGxJ0^5;TGo4TG3aP3B5~>BZBBh#{ z>9_`EjaXR2HU!WNorC!L`nslo;1X=ctU8UZ=bYDI$VLRs1=p1^mJk|Jw*}3m5?zmB zg=$6HS@{^^>#0r)00julbQ9lLFr9*hupmoq?;Bu%3W3%zs|whdra^2LsjG4WW-c@9 y>(bU@)o+El)B=}bdu3t1m2@lL0JBf2=2};!TRG33rK{5HS5Lj5nHMngQg8sA@Xd1o literal 0 HcmV?d00001 diff --git a/content/projects/lbf-bot/index.yml b/content/projects/lbf-bot/index.yml new file mode 100644 index 0000000..ad79ff6 --- /dev/null +++ b/content/projects/lbf-bot/index.yml @@ -0,0 +1,15 @@ +order: 50 +scope: hobby +title: LBF Bot +link: https://github.com/pihkaal/lbf-bot + +description: For a gaming group +summary: Custom Discord bot +technologies: + - Node + - TypeScript + +tasks: + - Made for a gaming group + - Deployed on VPS + - Understanding client\nneeds diff --git a/content/projects/lbf-bot/preview.webp b/content/projects/lbf-bot/preview.webp deleted file mode 100644 index b90587672367b0e284984fe9e4b78aa321f8714e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1514 zcmVINk&HE1pok7MM6+kP&iE01pojqk-#4SblSE@SsxVQB9z2_XW`6rOHF~|DHdX+=}B}$SVx6SatA&OoA4-X)ydGIQ#pU0O_O+sWTdZTfWlgs(5livtafF>w1HZN`4vuC?exStMp^NN zdk&`IDK1?bEvs;)bskuteGJBFlN~0L@up@J2iEQMBpFHTW@>2?-9^BryY9yI0evvw z$?j=vo`&=Xs(QM4Y8FK_X(==#Mmp_TWS3yj2`G*VvzZdOk=nS(OY#90qjaF^T7%|? zihh8^giy&eP_7eKxO&|0CZB}6&_J5*_2qzK@Th?V@*@q!kOZD2Q#%=V+s5f#jnqU# zPJh6m2hG`sWjcvOAs!#Zg$*QLP*rMzDEEMp5)|~yNtn3!iwv{t?@Eit49e`xD1&Cj zK`?b7I%eKXIc#Fb2yYzXIVnM5?*+w{LX1Ae~{n-e{kRQNSSvvasgEn?+h5H%YU03WzJrn=}V z%>(M5##_{vutu2xsRm>UrdqK#aeq`Pv~Ok%sFf&W+j{!;h3{l>>5&bJ>nGv&v*eMP zRVyrlb`hgPNVP!F0jE|VL*gMmU5h^(yCiLdcP@s7vkl~#+sj3_vai5^o!4o$ zGo}A<(@~cA@xcF?eF!7wFg)Sp*A;U`JYn(>!5R)RZA*Z_T|K~oHqWqU=phXqu*3cD zX5!+nijyPR!gv}_SA|$mtTs`Bab*c%ZwsZyjC?r>1s~91qIub0{P|Uw|y zeW^l+z91ih;o9m5;iTz6Eae`u+lbf;%ys zY&R-+oH+j=Rxh*p1ozSd=GB(2dg#I}DrGT8tH*#iQo2Q`s}k0zGuwF4$+LjM4s=z* ztQEd?0p#c4X_x$tb=3*%ne#pKhi6v}%U-GcU8swhKUGTX5FrjO3gY}u>KbgcPbCM? z0-vr#+XsxU4R`k?RBuL{i1V~BC)BvN4Lj%7l>?$JKhVD)Vn#yt5_0Tg+zUoth*SyQ zL!NM`!H2#d1mZ#@4YT(LI$H_IwwIp-1h`!|;fvAF6&7We3o2Zf&C-TbuT2`V`}M!( z7w19!rj3{>vOFbFt;Sh8DG#cl+do2e%@0NFq?>5cCgni^Y%kueWtU7Kf`FArRE`Mw z&E;T}xK2*u*%Rsvv^=WZ4IRPh2xati;3XX43{<`|o(CP>C0aE!9T6kdJ=?d|*V0pp_!?zaQ;l zUKkn?Bl_aAP`*&b{XNk<^ksEpdVaRCfX4K6oJL^O_ac1hH{nY!!So_xhxr=H^Ikmb z4Z!y*mSeCu+FH1<20ssPEs{U=VAtUDU{6HujMB=vs%b8J?`aVwHlIn6r%g~3izS$t Q0gIINPxQaj{C{Qx0O;Z6@Bjb+ diff --git a/content/projects/lbf-bot/thumbnail.webp b/content/projects/lbf-bot/thumbnail.webp deleted file mode 100644 index 84b60377e264e40bf0f7f2bfd8347f00cc439a3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmV+f0sH<^Nk&He00012MM6+kP&iER0000lC%_2+g``N5BuO$5fyJp5#iWv05`;bS zs+yVIcSQduz(1HD`9gIkdwtTRkD6+9Z0{Ki%SikHWGlSmdwwAJ6SB%jp$~i>8J)Zo zppW2|j1J^Xh=J-J_ktMkh-PEnF*h40nTSuk%ww3cl4WUN2hn2bs`tg5u^VCE`zmG; zud|3*(F{bx8PPy&Y=~-zmm#X*U|E{yw#D=lm#VYHL#$ptFoXhYD}Xj z3(C4NfB~v&FCYT(iiyjK|F29r%ap6KAf6d0>xL3AClRo?TE-K@=@n)d`J|auY~K)_ KG<@{>^w$C@j(Ma2 diff --git a/content/projects/lilou-cat/index.md b/content/projects/lilou-cat/index.md deleted file mode 100644 index 888db7c..0000000 --- a/content/projects/lilou-cat/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -description: lilou.cat - My cat's website -url: https://lilou.cat -order: 40 -technologies: [HTML, Go] -scope: hobby ---- diff --git a/content/projects/lilou-cat/index.webp b/content/projects/lilou-cat/index.webp new file mode 100644 index 0000000000000000000000000000000000000000..a68c9e2018ed87755bad70d363ebccf7db138299 GIT binary patch literal 598 zcmV-c0;&B{Nk&Fa0ssJ4MM6+kP&iCN0ssInSwI#Ll}K&?Ns^Schnpu}v@ifi@R2WO ztO-b65!s`ud~#$dBe`;o}yGSb;?f!?N!|c zN;l%(Wmr1-!kD+Hs>Ij>lBK=3lv0Kd9Ypd&48gk>Zio?Pq9!5T04PG4u|bp2LFlGu zdCNM9A(0dw81ee}0UFVgTVg(P{fHR00M;{oG- z|9%7z;^cb@YtY@055_L?wA3;)Ey2{vOa^6%@yNE$+aP9Xg%1VHd%2WoL2*o2rzv?+ zXz1!R<;t7p3o4Y3#>oxc&2ok;IFl1dFy<>KeiR{|`>HDAGf_Bd(1}r`aD;-K1m2k< k2DAaWfftk^#E+^jB}d{#kpA^>;;VH13*AeWkmAQU3liKMLI3~& literal 0 HcmV?d00001 diff --git a/content/projects/lilou-cat/index.yml b/content/projects/lilou-cat/index.yml new file mode 100644 index 0000000..2956ad0 --- /dev/null +++ b/content/projects/lilou-cat/index.yml @@ -0,0 +1,15 @@ +order: 40 +scope: hobby +title: lilou.cat +link: https://lilou.cat + +description: Lilou <3 +summary: Lilou's website + +technologies: + - HTML + - Go + +tasks: + - Originally made for fun\nto celebrate my cat Lilou + - Now preserved in her\nmemory diff --git a/content/projects/lilou-cat/preview.webp b/content/projects/lilou-cat/preview.webp deleted file mode 100644 index cfceff984a9e44e5d3dd40ddd4b49640685b9105..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28114 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Π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 z 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 MuhM>t0v`Nt0Z(dJumAu6 diff --git a/content/projects/pihkaal-me/index.md b/content/projects/pihkaal-me/index.md deleted file mode 100644 index 7e69d41..0000000 --- a/content/projects/pihkaal-me/index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -description: pihkaal.me - my personal website -url: https://pihkaal.me -order: 10 -technologies: [Nuxt, TypeScript] -scope: hobby ---- - -# pihkaal.me - -My personal website has evolved significantly over time. It began as a recreation of my Arch Linux + Hyprland setup, featuring Neovim, Cava, Spotify Player, and Waybar. - -Now, it's designed to resemble a Nintendo DS, my first gaming console and a gift from my mother that holds special meaning to me. - -I started with just a few games like Mario Kart and Professor Layton. Eventually, I got an R4 card which opened up a whole new world of possibilities. diff --git a/content/projects/pihkaal-me/index.webp b/content/projects/pihkaal-me/index.webp new file mode 100644 index 0000000000000000000000000000000000000000..aefcfcad67204c26190e622e0cd425a4bc33e01e GIT binary patch literal 442 zcmV;r0Y&~&Nk&Gp0RRA3MM6+kP&iDb0RR9mSwI#Ll}K&?Ns<)Y!3Eq|S8#_XZt%pN zt7>|du6m=8Hb4>Dh?1FrNmhrG8l2RyrxiS{Vx(=P**JLc;B36DH{SmVz+Y3oRDJZ4 z>`3~W+Mmbj18_UCO)`acV%L`PvsdzyxBSD%^uWS9exSEz&Flt*(rX)b=LXwtPFm6kx z7hF;zrb;?40h$DmD{e#pkYsxx)+ELUoe==!bB^tnSb8Q;8UXScT?I?0vE4@mkPdE$ z<=Qr_-5C;+3|3E@wq>W2U8XJ7mTIeTBS_nDs*xK(*j6DxN=h~YkdXoal-leBlK@C< k?*)-W0Elg8Pl#=2C!mx^+6+j{WQlvZ7&*H_Nc@!~05@;V5dZ)H literal 0 HcmV?d00001 diff --git a/content/projects/pihkaal-me/index.yml b/content/projects/pihkaal-me/index.yml new file mode 100644 index 0000000..18df5f2 --- /dev/null +++ b/content/projects/pihkaal-me/index.yml @@ -0,0 +1,15 @@ +order: 10 +scope: hobby +title: pihkaal.me +link: https://pihkaal.me + +description: Portfolio and contact +summary: My personnal website + +technologies: + - Nuxt + - TypeScript + +tasks: + - The website you are\ncurrently on! + - Recreation of the Nintendo\nDS because it was my first\never console diff --git a/content/projects/pihkaal-me/preview.webp b/content/projects/pihkaal-me/preview.webp deleted file mode 100644 index 5938550986fc5782c1452efaf9893296c8d408fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmV;R0$=@7Nk&GP0ssJ4MM6+kP&iDC0ssInk-#4S1?|YTrP$GeiYE)OAIn~G|gR`G16noZTTPOGV!)(I$QM9~r#n~Li)?ULeb?~#k@|yvVeJ=z&VN~Xw=oVu3~F<03mCQL*OWD0L&J^vZ?{I1ypC6 zk6}j*W~~vmPEg!#K?QC{1!-{=s{qiW=7zbcPJnfSuz;IoY9Je5jv|i)u&~b(+2ZzU zal0W{1%QGzXw3!%VYo`{nTet$fUpJ-H3@3~QJYBEL3@TW>M$M@$yCc0dss(xfnty* z#UMScPD$7X=$O52ssTi;Q%l*wR2I;A6*bX$74@ve8W6>$WndUphNLv*WnyD<+LJDB zFTmpVLcX}rxGX>v)e-q;Aoe8cyh$p+z+6gcYoiVWPiW_-PfaTMv@;KCk)T_Pe5dN^Z-Q@OZw>6zX+7Yb}!4zmR1-k48>W|;O?*~+T zuYUIsOi4{MQ_}Np$tU%FH;}yV3deC!KfnLz{h5+__%#|kVPxzL{7vr9%bzs*dw=|_ zLuW7ocji5w)Y=COjC6*2^ParZ(?+`kyMr4qLua)10V+Sj1 w1eITrN_Afu7!Z&pVzb6zPMWyOz9Zc5C|ms%Z)Ta zw$0`|tuuc90|5VxG!;m$ZM$w8paY!iMAfE? z?^(=Cz^QqU19J@KVUg4Fz2zKZ6~=xaHGmQbjH|1r20*GQ2q;=*TwPRCm5Lg6P2F;7 zHC0oK2WhCOYD~G}!5|(%Y3hkOUkx~zfC^Bto`aXhDx17)DtT34Ttd{Q0jgU)6ULh$ zYU+72TkyRFk^=``P-VU|7T7JntBPt<1;+b}qxq_-m`V*WzH@>62I!9uX@CNAeD4Cj z{(SuY^YP=;RF31@7x3fr>&Iuh$zYBhHfjJ3deb88Rj9dXKmZM(y=ehd zfogJB!&ybdsw*ZlDHo*J3Zn&b!9ejLip()@F=lAF*QR7^5}gf$d=> Uk632xWIkb(!+OY?hr#&g9qF0jS^xk5 literal 0 HcmV?d00001 diff --git a/content/projects/raylib-speedruns/index.yml b/content/projects/raylib-speedruns/index.yml new file mode 100644 index 0000000..e359636 --- /dev/null +++ b/content/projects/raylib-speedruns/index.yml @@ -0,0 +1,18 @@ +order: 60 +scope: hobby +title: Raylib Spdrns +link: https://github.com/pihkaal/raylib-speedruns + +description: Awesome video game library +summary: Raylib Speedruns +technologies: + - C + - C# + - D + - Python + - Rust + - Asm x86_64 + +tasks: + - Simple Raylib setups in\nmultiple languages + - Inspired by Tsoding diff --git a/content/projects/raylib-speedruns/preview.webp b/content/projects/raylib-speedruns/preview.webp deleted file mode 100644 index 0842b153973111f92c1876b20b790e9db0d260ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmV={7--XC*T(ofAIEi9pCmx>5GEAD2TTi>5mCu8u)+!-|U@Jf&ZwUg1jh* zpEwoRX~2bVzPxLXKq*iG3c)HInE(tUL&Ehypd1#1)H7{Cz)?a&U@5@FiwZbm2?QIj zC%@Wg5dexocnou|jBYJdd%FT)2*ERFLBRAkX+oEr^@4gl1>qt{yKrs#6=UMO7;x?0 z=xqV0KYyO%4xOX|XF$bAeQqtl{tgo=u$+MUJdbr4ECO&Uz%=3BJD~z=p>kglng$Gk zy>~(dR%(keS_9e>0DEuKfN5awolt>QR4fOU1FryZBCz{}tI!r>v<9f0CI*~N-z78L zA?*oN`d(&l^otTO@S-3-3te!c&FnV-sK5b^-V@{31w`>7w8c=d9Jm^zDx)fp0CGT- zAHe*s0Bz=}z%Yw=zy~O&_ zinE@A@DIc2+k?C0oCPDPB$cd^RkBJ}p#w@*N!QFI7)HjCabz5s9Wsv0maIRPY?9~6 sR;)k6ESNn#nVi1e&okSCD`-{T}cN^kRsw|s=GdW?kse43GTOMaEI%3_?^#PBAnVE7xmFEw-yd%3F-sr0^ z1AP}yXp*5!BCeHBFIErN3sb)w!l%Nh>sK61+@Waf1B>eyLK5hUYDgX$6&KW(U zUW@CSnMW!W$g0PvItU;F=peoASOF3NP%=OP5&=L2K{HK2AOHw7^Q<}`3eW*S2cjU5 z6;b{`B?2S@d~>2We)_*~CjY0dKVH||H|ROL!F_{n5Ed4QU8X0Lh(HKvy3*L7dQN}} zBS=$Vmf0Das2TyNXiO+Dq5vB~2th!i=l$?|Tt2tmZH9At35J5UZJ3ll?d}giL`;Cv z!~s@CP%AXdQkLk@7TfYRZArFG+g3z7wryh`UT@T~ZQEA6{Qf?ApX;tTe2eJ+1VC;h z$&nPXRF-$v1QIeh>vJKoEoi0&y4yml`Ahc%dg?#Rvo^lcj{8M zShPGkd9*-yBLfa*AJCC!%_DuzUA=m4`sc2C!R5*`H$M+RH(c(SIluCm1Jp6bCC7I+ zPaHr0JhC=c)ZlRog+jZN>jSD|1)Q8;)1@ z<-z31-Me?C^NzHpp{UE7J0(OKEAejV6nn~O}LadCf(&FC%W|n{h3i0jnUT(fn z;iF;(V_*QI1AXEsSQv;<$#jrARZR(sQtmVq-+Ez%#rp2Y7!IW!0i7|x>4|_ zes-q3KoBr707wE9R{)G?AmhUjPqyqrd~EwtYhUfGq+~NdvaCX!tmKzM2UO;g?Nl+T1__<|h-0k_01- zp9<@1%=g+q9PjKaVHY4^F0g0;pd@aRq~Bppg90@bPn;}0X&kjZfVTzPY61%Y(cV~6 z6HsePXJ6`$}sh>S71!i8USVdENK(K_6l=Njq22(klrX%m1YXcM=7e3|EfxL zr>CWRN(<982o(V(V+F0vly!xbDxq>hI`XW2MCEf=ub!K()VBU^z1MIq*s@`=dd}JT z>z*YlZa6iJ;d7hI97eT8K%qa@_3PKa1h$9z9IxgpJp!wr6ZHg`!%#5}j03Ot1emY1 q1j=xGf6QT&BVZ0g#W*kyjDtCh^0$#5NDBmR|B2{*ulv>j diff --git a/content/projects/s3pweb/thumbnail.webp b/content/projects/s3pweb/thumbnail.webp deleted file mode 100644 index bcb71bb9461759a3e7e1420b2ddd5d7753f69a10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84 zcmWIYbaV4zU|u^O7#HG_S2!^>1|O oDwo*s&z~XVN9`$F#&1DN7yfB#ZBsS9py%LuG|p@8@ms;$0j`iB`Tzg` diff --git a/content/projects/simple-qr/index.md b/content/projects/simple-qr/index.md deleted file mode 100644 index d288f7c..0000000 --- a/content/projects/simple-qr/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -description: Simple QR - Simple QR code generator\nwith straightforward API -url: https://simple-qr.com -order: 30 -technologies: [Nuxt, TypeScript] -scope: hobby ---- diff --git a/content/projects/simple-qr/index.webp b/content/projects/simple-qr/index.webp new file mode 100644 index 0000000000000000000000000000000000000000..91db7bb90501964fb661eb356f9197bd70c923be GIT binary patch literal 910 zcmV;919ALPNk&G70{{S5MM6+kP&iC^0{{RoSwI#L_0WlJ%aZI2goo>yvV=jdV2F-r z2*HnvB0A5>>8@;3pSm|9L0lt^OCX_~>nD+Mjkax*6FN4!|23B53e~iYB$+>s)ppx1 zgy#-b{~bt@8aE5b=sqGq`NI8g9{ND$+iJfz%$kxwZ`J)(#hviKm8hQdK5g`+@d@-I~(rZ*z99P!5|gZPFgl?7M0v z{pdqx?R>GG#+{s@n|eLSGqJ^R(#y|e>&hYZ6TWPXFkVN<{)eEu3$l4C;~MMW8@^|* zj|6zb`J2h3(FQx2UuM1ZKvn&WeFds8xR8bfiz(pDiA?}ak-Ptf^%7SV;MdDW+!YR| zJa931jM;HD4(#rGt)-_SMMT|IsJSQK@`}HnPw(`gw6FdwEl)isH3?TS`tW~ zIi%r_#CX2fmd-glLJ{Rebjkgzi{jOAXcN@?s;A`~9c_>B>WE|GB4Jea902+(NwuD3 zowIPu5fU@r@v7*G+?~xRyKzUVdRo>FN2V-~QvOrBTejc`*}x!qjU>S+J>Z3g(@3vi z(E`{+UvLH3c-*DN%8mt^WgO=oA3B`C!eGPqMXYm{hpXp99~4V8mwtF>W703a#+k%E z=g0+McUl$Y(fQfSiyUJAw4zil~kVuM{1l<#k}s(8*X%d!Qx$fF!SEKM6eM z$v{V)RuNUz(SI`N{#$pQQz_DU+Wg!)j(vm4k3JsUDf2Zt4PCUJs0+Mx;PllPCMdk*}1 zV|qe$4xeowey4$g?kUsY?0c_N%O(+CW6`)vv{P35X< zrCtE$u|G^ud)1W^5nX;kahLD4rHj!i&cF-Yiljt??%$CbEE@!zk(wue@haS|HGGV09Q!GAOHXW literal 0 HcmV?d00001 diff --git a/content/projects/simple-qr/index.yml b/content/projects/simple-qr/index.yml new file mode 100644 index 0000000..d3c978d --- /dev/null +++ b/content/projects/simple-qr/index.yml @@ -0,0 +1,15 @@ +order: 30 +scope: hobby +title: Simple QR +link: https://simple-qr.com + +description: Concise website and API +summary: QR code generator +technologies: + - Nuxt + - TypeScript + +tasks: + - Easy to use + - Large choice of logos + - Straightforward API diff --git a/content/projects/simple-qr/preview.webp b/content/projects/simple-qr/preview.webp deleted file mode 100644 index 3d2dbf6d0b07ac6399f54bd5fd8a8eb87e8685ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmV;31b6#VNk&G11ONb6MM6+kP&iC<1ONapk-#4S)rNw$ZJ2~V?(PzZhzVfY@&vhJ zu=~mh4$-5d;KW5rwr#7CoI-m#3`1vXu{|ATNncUQ&|g_iGdu5k(G9=b{`%{*OfpZv z1oVFbC`FPaNRs$-zF$Q~Wq0rH(NH4BA)@~i@FBB5fNNZb%Dh_xDGaU%qkMO0RHX!s z_o<2p(M^o0%GZz@RT;3~fa;Xq0at}XYSg7e8N}TmcPry$U14EexqDgF+eKyUJXOZd zXhd%>x11MyRH&RQRH(3UUXm|4h<{ScFjlCX8;y-WXI`c@45TPtKWJW1g$j+k3Y~um z2EG(29oz4gXhdh@jeSKK3{eja2)wH~4s>&Y3KbTZD(r4vpzUr*y)#+^RtI-U^?>#b z328sbN39!;tx=)xR)>_4MtZM;NC~ui@Cd2!%DL+{rwou{@G9Eb4uJ`aYQoOA!{l5U zFW|msg1Z=%IOt!+4GCI^s09oJr8B&3#G*olMq`D}6FNJ;vyGLhFs%{@NDYG+*%fQY zmKyDh>%@FC8XG5cww~rjbT(F(kN{F{gBQt+)sq-K2?GzIUJu#v+wiF*e28VEv2Vqz zPZt4?u{_VD{*z}0&lmW&w^2$6J+kXz7QDLfXZ5a_q zrJ0^T5h9rWqr}gsD}@iWG&Z6#Zn(5WW$eQS;>W6d=HCd@+nn?2A<9#fqB2&_ua=d!)oxkgP9t6R8kuJh5e?-$}S8fD}~{OQ?*U(HV{CjLQ0d#=dqc z7pJ+h-u1n8bhBQTQ=_qquPWpJgJssp(XWpP$+5X2Y`VZyr6t^|!k>15tAc-W$92)N an-)096QZp8}|Y Yz5rAq(;K=Wf(E!@8Yorav?If70b&s@j{pDw diff --git a/content/projects/tlock/index.md b/content/projects/tlock/index.md deleted file mode 100644 index 1eaadc6..0000000 --- a/content/projects/tlock/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -description: tlock - fully customizable and cross-\nplatform terminal based clock -url: https://github.com/pihkaal/tlock -order: 20 -technologies: [Rust] -scope: hobby ---- diff --git a/content/projects/tlock/index.webp b/content/projects/tlock/index.webp new file mode 100644 index 0000000000000000000000000000000000000000..4438594e38bb1879612f86e9d42dd08d12134982 GIT binary patch literal 660 zcmV;F0&D$JNk&GD0ssJ4MM6+kP&iD00ssInSwI#L)yQo?$&!={fp`c5lT>gCfpjhm z$bl%3rmL#wuG-_*ns)14toG_jk6)XswpKFQwvGRPv~aX&RTN2T935_O!I!v5{~b7z z)J8osVhxTLz;EbZG4&2bZ_wh{yuLta&e;@YOyw#aEoB*b#9nRr6-sp57IRhEdp6Xr zt&rJlhl)PweYM3X((P=AxyIHSYwXP<&3M<;P&yl?v!13*gNv=Xb6#hgw|#h>&2|Qv zcJaUw#gj9xP9fc$g9f4DqNf@k^1`*keu@;Zg3L*gd9a3v}B<(Lp z%mz(#A!Vh>9AhN?d`>WaN`eNQhpZnd0*h;Gvb#Gm)*482JjGwjiL}VEq=+#R%_l*dYpvx3B8P-D^G7qc+}zV;6^7uWS&P)U-|ohS z@ZK&BatKtxdl3z!+}OKtljoD%1zDKab-95Q{JBd#j2hG9m6=rx{n7y7+&(R{ub5^(FHagwC#;ISw`N#XbC&Ag_^Jbw5IEKV literal 0 HcmV?d00001 diff --git a/content/projects/tlock/index.yml b/content/projects/tlock/index.yml new file mode 100644 index 0000000..c128a7f --- /dev/null +++ b/content/projects/tlock/index.yml @@ -0,0 +1,16 @@ +order: 20 +scope: hobby +title: tlock +link: https://github.com/pihkaal/tlock + +description: For Hyprland ricing +summary: Terminal based clock +technologies: + - Rust + +tasks: + - Fully customizable + - Animated + - Cross-platform + - | + Multiple modes: clock,\nchronometer and timer diff --git a/content/projects/tlock/preview.webp b/content/projects/tlock/preview.webp deleted file mode 100644 index 61a6e537771a0445697289202d4298b249e36ac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmVi+~>LBP6M*ESdS*iM{@JJz*qK_Su74Y(5Fe>6^&(4k7`sWSe5ChueX`+XVzPVsm@C+?}O9^IPhHJ0D# zy#E%C)-eYaYFc{o?|=XD!{m3LTt^5XUVn!GNdSG!N-QewCb6G53|u`7p$Q`a0_J+9 z0g%X~W!Eq@PVYqk$m}}M|Eo$X|0chx^&Wc>qiZ-?hh4dQX z#G>ME5-%83kTHarS=T`mm;%fJR4jhdUZeX|$F+f6Qx#W02ar6BBRCF+wUvG@Hm%=s z%Ot@=Ao*;b(sG029m!v2Q$jb0OX#^V$77Q3)IjS%@|S}c;R^I11YUiJ(pLchukKSF zkDrl*Pp)YtI$yqgnf%W8GqLttY{t)fe7=+QnXKRGb&k&A*OAOoJJI#zvz289Yg+g{fA-%~q#XU%GO2zIC s@v7BFf660$wEw8%@{?~Lsbj~KM}rRP__UdT3@pdq#kG9;N0cK-$TmS$7 diff --git a/content/projects/tlock/thumbnail.webp b/content/projects/tlock/thumbnail.webp deleted file mode 100644 index 06d00ac330ed31e55ca9e64e4813d910ca95dc70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmWIYbaSg>U|Ym@CYa&EKT{QrHL z+oYy#y>}#9rT5#v{Lk{`!-MsYPR!2n*8Az;1;#7a>^rjbif-R$S=;cSY%>Q2_7`Te ipC8$IN>$$D{K2P{FbNB7}q0#57bQu8pbv+XR diff --git a/modules/content-assets.ts b/modules/content-assets.ts index 2f4bab3..008e149 100644 --- a/modules/content-assets.ts +++ b/modules/content-assets.ts @@ -29,41 +29,39 @@ export default defineNuxtModule({ return; } + if (!existsSync(publicDir)) { + await mkdir(publicDir, { recursive: true }); + } + const entries = await readdir(projectsDir, { withFileTypes: true }); for (const entry of entries) { if (!entry.isDirectory()) continue; const projectName = entry.name; - const sourceDir = join(projectsDir, projectName); - const destDir = join(publicDir, projectName); + const sourcePath = join(projectsDir, projectName, "index.webp"); + const destPath = join(publicDir, `${projectName}.webp`); - if (!existsSync(destDir)) { - await mkdir(destDir, { recursive: true }); + if (!existsSync(sourcePath)) { + continue; } - const files = await readdir(sourceDir); - for (const file of files) { - if (!file.endsWith(".webp")) continue; + // only copy if destination doesn't exist, or if not the same as source + let shouldCopy = true; + if (existsSync(destPath)) { + const sourceChecksum = await getFileChecksum(sourcePath); + const destChecksum = await getFileChecksum(destPath); - const sourcePath = join(sourceDir, file); - const destPath = join(destDir, file); - - // only copy if destination doesn't exist, or if not the same as source - let shouldCopy = true; - if (existsSync(destPath)) { - const sourceChecksum = await getFileChecksum(sourcePath); - const destChecksum = await getFileChecksum(destPath); - - if (sourceChecksum === destChecksum) { - shouldCopy = false; - } + if (sourceChecksum === destChecksum) { + shouldCopy = false; } + } - if (shouldCopy) { - await copyFile(sourcePath, destPath); - logger.success(`Copied: ${projectName}/${file}`); - } + if (shouldCopy) { + await copyFile(sourcePath, destPath); + logger.success( + `Copied: ${projectName}/index.webp -> ${projectName}.webp`, + ); } } } catch (error) { @@ -77,9 +75,10 @@ export default defineNuxtModule({ if (nuxt.options.dev) { nuxt.hook("ready", () => { - watch(contentDir, { recursive: true }, async (_, filename) => { - if (filename?.endsWith(".webp")) { - logger.info(`Detected change: ${filename}`); + watch(contentDir, { recursive: true }, async (_, filePath) => { + // NOTE: only match /PROJECT_NAME/index.webp + if (filePath?.endsWith("/index.webp")) { + logger.info(`Detected change: ${filePath}`); await copyWebpFiles(); } });