From dbcd580b4b02aeb3169460ff9d70fca694e5286a Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 17 Oct 2025 23:11:52 +0200 Subject: [PATCH 01/13] asset: added camera placeholder --- vr-project/3D Models/camera_placeholder.blend | Bin 0 -> 483788 bytes .../3D Models/camera_placeholder.blend.import | 59 ++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 vr-project/3D Models/camera_placeholder.blend create mode 100644 vr-project/3D Models/camera_placeholder.blend.import diff --git a/vr-project/3D Models/camera_placeholder.blend b/vr-project/3D Models/camera_placeholder.blend new file mode 100644 index 0000000000000000000000000000000000000000..f92bac24e649255e200216840fb8e7ccddf0812a GIT binary patch literal 483788 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�p!PQP(@Qx4l0qs8KDSF=77|~+>!$d z+X4o#7=%Q!4qV>nLzY>C*`To_@ahmqr2ytuWWttVL&^`3$*Dzo&=~-5!3)Zw;H7KE zu?z?S@NH6{IR{9I0B6O677~HhZs!+4WFV~^Pz4EDTLBS;9`gy##ULG^!WgCl)EfpB zkdX6q8IW5`kZudC$pkhUA_N-eODuq}L0!!Ja?mIpxU#HdD9!}A7Geb`ULhueb%R?) zRZu%1A_%9V2qR8+M%E75ND7|G0nNLE=bFLIB#=E7phIK8btnUZ2@N2~F{fpTIXS77 zuwDi

MingJEI_*C5;vTI~(KqcRM6S|pyQKaE`&7GVU;$l z5d}(3sm1Y-qu!z0-ayyf6+lkLi3e@;104*ZfkhB>%XBLE>KJgb44QQ)0Uav=nWF~v z+@YgApu!DY20%y1LF{j4!9&_`W19<2l)85BG64s;6WA0umb~V zdj{yr;M90fOoO}C5VwF*NPKB&W(sI*JP~xI54aDN2^x3<3xmhiAPowHA&~Vj4B({< zppqKYRRkw{&>4;lpaZv{UB8U{a@f!?l1O4vE;z$7Ac=unJIDgy;s;p(G9(YalnQJY zC=q~4m}0OHB!a>1h13do$^so}l$vjx0`UNx2Q>=8&j+3Cn+{q&2`g#fa?mk5NWldc zgeHL(O;6n+jX1E`~dE(_Wj zR+?Cn3LXRmb=@GFFwvF4j*9?W1>Ss9o(Vc43AFDQl$aP0T*#@@XqQ7nyE?EoD!2@S z+)xmo0=r!fI{K@u0}1|rZzWeH^eE+~6|u7FR?0UbCEO2(in zzX;q=$z~{qp63G}ZO{VU2wRj`4x0I30C6Ceg4$du`Q@OEb(zr12GTM?2U#bA+MW3Y z@t|=K$Z2b^ZRL>N=+Jp~(3nq2B?D~gx)?F?QXF3jI1i_zYT!DJl7R5GH733Csff7c_TNT9OYNT`dA1?+fC^ z7lW=ADh2O71A78`UPo?fF=*x}KB=^rp`wUE3%p|;a>!6YX>v&g_#6P}p=IE#3@$yv z=@1+bTBUgfpxqy!@!8b8RPaG+(4$5{7ej)MDF9sv3p#BpJ~y!de4A-%Y9465w*o{| z!h#&Ur5-fj2?+vFB2UbLvOx#ILz$p{6?kJTq<8|C4d`Nt#h`ihbkL|eXaXFRK0!x# zL9`W?rk18cHY-3zPZ==9L0wcF!jL1qQd3Z+^Ye;RlS{!T7C{dP13QnPqKZmTJ)(u; z0xV{MmNGCvRDrr+sZciLT5?Erk^&lw1dpYImN`N~4k%b`FECjw&qz zg-v#9C1?X7$kfteh;u>gRB*o!L=+c;d&BX$pp^po1>jB=XkGvu`JkCDun0qOMrK+G zLvl$GXmY%SA-@=OUVcU;=m2Su75OQk^J77MtO9T;p;b^)1j?r%w?cNbfRZ$X1v(@X z%qoU-D8Z!w=&ZEN6o&lryj0MD6J*veJ2w+lQfX)vHyJo}LUxTq!W%RkTLcWz6L&_ z9@J0-n*tRpfZR6+7J@7-gj|gp58*)1_63a=!#n|+8qLoE-N2BU2hCy7Y8lknVt^dN z204u*GX*?y6mJ0Pl!4|;K?mZ4XsGF+UF^99@t{#%$OI_3IE0Eq9RLx^%`67TKt_I1 z5vbdn4kD5mK${73GmA4p_cMUjtAJ_HiV`p*Baj?BCghMfGo zbcRwe2@Wy_@WJ${pjLyKNqh-IX=Yvtm{A70S~fGU#3CNFfw>$qs^sYsPz0)LODaP> zT@p(Y8PEk>^Gb6)OHy+&Bs}vW~PCBCU8iO8bisfpP^@M~)V5|gu2Q`|Ch zQW>DWfm-O121QdafAMwmhOixAOpejr9%?D-EfW(rFu+*Xw1|&X%dq5~i%&9aD zYNmTYs8eD|at4%}G{_=86vP$XQ663fBC1XAFfpOaq% zk!EoBNG#4^Nb>X!NGwXsWk~WYNi0rgNOA-(cX9{c;|*a$UF?*Y&JY4x;uoG-lnONn zqJRNH`6O1R7D3s;Ir$|pCTKafH}p~fuuGC$@(WUf!OIMt^I^R%hG5XuV-S;Ii33>- z!uH9`%Vr46Of5HZfjJfGJODTJ-mNqb5)KGqXWw|&JWzwbAQkKjur`ecn4u`SBn=|qm!DY- zu{J)qB(UM+(mfSRhD@-tI{N^?>fU<~*C z#2iO(?En)2^FW~k9*lu2bj#1l$uIXw1aJfTH9S(*Gg44V&^im|>#FEsa%)}f9uu`y8aWHr|4Xz$6!{8f|TEXC% z>r|S?0M77EiFqju0g0J;C16bqB>{=xJG#J<9>HM@$b1+FNdqL^I)jeOfRt3A2x9>A zK_xY$0D*HM5{^a58JT6N(D-r(C1q#uhSOm1Rf=#ILj;}NAtgEz846mULCeJu!jSL*1v@mmIfL#mM&i3xfCdwg1mI2v6_3!M z1eJ8Yi3QMbhw>OaK&Nx1g9`m%$YELF`11u{LYV^6jqJ?)BB+E5yyIRbbzMmP#QD27vC~K^E}IPX^a&$YMeHB^Y9mP|VFNK~@MlwG>ljMp0&7Ht0Ar zWTg;~V}u7JD+cH1l%*CSD~DtiOmT##Km`tx4sZz*1TAnOdBd-?C<#>W7J=#paBg?X zuV8?ba-iA`EbpCK2@wi_bg{too?Cui2}2l|1S>B_Q35d?BH^Bz54x5DWCrMd7;yGL zl|ijioWa+~fRw>G(%-{k#n>;fa zTxJJDE-6D1b56`FODu+GT4Z$~iy6S~2Zt9ZP*AkO+D~A0$o7Ei4kROsN-~pkQiH*V z`7uC>Mh2(S%$yY0v^0i*#G(=y4N}Gso>-O&5&%^Q?m78Mi8%~O!O2CSvAJN-i53iQ zIi;B?F8QD%IpLOo#ZVmN>*yEa2x_8(O77C4RERdWocwaQCQv9rgdvW~FM>145$Jnpk6p!$QQie8+suzTolSrau0AR2JfX{05MC7G9jIO5T^iAdx9r< zz_L&QFdIDY0@?e5;DcGvdjg?}1xbj(*9ElGFBjA+0SiNBuaFgjMZj{9@lsGKLE<7S z1uFo_fkvI+l}nO)KssmuJjp!(B+dYBXrP2WxTT9tA{cz$AvT$ijLhV0tP+{Isc7QR zP7?#@uu?QBa9RXcM%X0$A=6h_rAkXcGb-4mz)eVO65uq9O~NO!q$D#L-PvHbL8Tz^ z1QAKiOE1a5W{gW>F}gU+>sX|~hWTa|73CLUGt47DA8YsqLvP{5rpF(A7#KF0VDOTE zY%;J)8JnDMX--LIK~5z$xsc4f60G8>6(yxbSi=(1x(X=DufV1eBI^j6@y8|&%GilT zSgnLgK}tO+2OPS=@Y)KSi3r({qEtv15!O4zrrfZ51or8|KJWUz=c zU=f4nR9LeZ(=bFo3t2acQEs3uHz*?DiUurP?3-8s>-iuX09FAmH84a$-Uc^+vC2S3 z6fmSPt;g*%u-#yDaI5hLtyu}q&dkfp%u9!t=g8Kg>IHWcKz(CK#{k+Y0E>cJ!VF+m z0AesHC>1pE2Oi#lFoRNyOLIyf>Ow$sa!~UTA`p`y$qCYFF-~#I2X(F?YM>gRQR!Kb z5AFDS7UYAQ2cS;8Q%-(zHUqTu0Jl3pYzATxQ_l|2oAX0 z0a}Suz<^*vI_$+6nV{q3Q}a?my~|>T@cg2j6b2vA5%fu*_yxr?L{mT!=*9xDelQc_ zM=;;LC^H3#3ueNqVz2_R2$C^QiP@QX>EL_@mIoW?Sp-_92-+)$CJ_cYe;ahDQ6-v$ zb3Wvz1<(>$G%0WxqKUzs2~PA#&Ve*4VU7d^MP*JZtd?T{l?uV2RsguJfeFVuf(DF( z!B^@clsM)TWF+EO04s?pBiA{<;_;j#d$ z5=?8bDnqp_1avq+UI{LXFr+ap!BB!~0epxFo>Ne>0j4~r6_{#ZJt%lK2?kI4J?~*!UC$05xRbT^kUG0Yn5Of({`AGlRk7PT*c}XgInE5+BS2SGvI&i3O<$E~wiK z=~aVfL|{qU9n$UtS0SLe9Pn@~D0Cf*N*H{D!H1(T_<|yc!Ph50zktCP+^6$(O-WB> z@C|WGOipEhkiO3OISjsF0Z@MywJqTbo+X4$<1zSp=9M5gpc#X_bOhfiKR*Y-^UN!; zK=2^_6-bjB;ucU73*t7g13*f_3{V~_W&l;IU|)lR6VZ7FJ0IRdhBzAJz0fcQ-=NfF z(E1qAte$I5YAyqKP7E{%0}^pc%*kPZ<$7q$6@ZS^0S(unhzFM@fi8SR5d$@qGLzx8 zH&{QoKtNFi?#`izfEWHavrB3+XfF+_4CFT1irVN+pUQcn}*? z1Twhok(gNo30KfiH)Jdh+A;>UOu;iAD0-d3JizTp=%5s`96Uop)qol}ptKEbAY;+N z07|>5iFwGTFn|U_JoD0WK#K%Y!93?wP%26-&VVFm6xE<{DA4#5WS9!8lqd9>HWW$M zih`W{6x5gj_j8LDu1Di)7`%OCGl)VK=< zod=bfh9;O?lv<8rsDCngAc930z$BzC9G+NIfT9OdD1^C#MoF+_%U?6gQX!HqsW~Ny5HC5S zNuih-8iwIxP+A1*L{SL097~*lX3W7OZzwv#Q*%;K1V9-GQuC!2p-A|FdW$(2Aq;Xz zaB3l@TY_Cu)0{H%QW!uCaLobDG}zn*o})@lf!Kj&Z3-e0!;>he3y6}m!Tl-*6k(^t z>{QSIE~;n%xEl?ULlwsq2}sOK%|TTJ3LI1sw7M>}I3pwjNH8#VHLbufY8*oN6%Zd1SXi zOu$}zA*;ivR*@w^jlIMo)Y=+N44S@CM#!+%-^k{I2E}3i!WOW|@)$t}8?S^JfT6%2 zGE9zB9!F(`>_E(B7P2h3T0^g>kQG43kWgFzpV9}#NhNf+Ehn=8){t-y2!(3HltYMs zi%|#{JoN~gkB6HKohS$MVY0r7phFl@b%5nyE0bW3gz-Tw?g9q*7@B8ZNh;{7j#ThU zKuqCa@L?xd)I&-~Obu9+Lemhm=>*mi489N(!bGwGVjE}`4zgm4iu2E zm8!+iQ~?r$jFo~|L8(Qc>qEfxGT3e4k#ul{25VL2=YdNRkZLq>ur8dfRw%au z)awGXU2}3W3yM?We6T8T9~&&~lv4`na)69>LE$-N=75$sCFY=rdY6_bW+WCt7L9^5 zIp&pQI_6|1g7$^N9qCb;8k|@HwgGG*xETXsfm&fDaD`woa8(3W0x}R)2$F=rCOKym z<>w}XnIYx*5s}3(COE}Gc%XJ#Y6Ykh4Km8vH^4bRHz_!^032#y^`O>Uaw$Z0F!(rO z7tq~mAm#2kiAAYkMIrg1s|rc208d4Pq*lNdnSsrLaX>mlQY(V9 zD`CpPK?UPDL$2t7ah-}Xle1wQ*SxaKqWnDYm>kp?_r#?9BAC28Xoes)58}s=)CzE; z1|}JnUzDGhp9$momKK9G`c zkdy`y3k?I^B8*T2Ptwrnf~X2ft?+aWMlu}YS z<(8S6lL8j=%qu7@0o4Nt9;p5RITtJiFZ1CdpriuzHCP2WJ0NsJi+zxCSUu)iQBqWz zk_zgJfYrgoAyolrpbJG9oW_b_JsuP(M16p%t0=z$-04QqfZPv4kpMXcs}+zg4R}}w z+O@>c=bTxT3|gCtPMp#KMW9H@EK7APf|Nlhn&Gl=A7ht>Om)Co{m4NH zb_3iPEHQ(sAh0wMlI~IL2}*@rs*34zx6GWJR7eSoq9ddz6H-i~isnPoE~Yu)=^RMu z4ATKAZc~d;i({B9M1v>zOiN_{1|?R4N0X7oz+MEo6vbXpk_^G-Ah?Cji3Ok)DBwmq zvU%tVP>cmFok;ad%uP*!D?^b7mkD^}A>~5|WB~wbdU8q4NiBhADHKy(N-0!ppD}g=0Jrp%z%g^>4zEamS2>bn4AIQLPH507hrqv z$ipqiuEsYp6X8$nN}xMTkOKs}La=*4_CcZvyCRr{_|%}<2vG_1J9bmCgqd>=`0fX= zqria#GXYrwUYJ2w@98RdAzF zoq}c|!YsVX7{KKfq!t4C9&9m^7?=+WWl-%0Ikpv2XnN*BDr>MJ*e)gK{9Mp}T(B5M zuL08N^3ALOOT)|sRV9fkQ#C9#CqFr}q!PR=*(Eg% zRB1B=J3%BFK+|HNMfUNaeMG4#a6SV_5F9;VRxoG^Je?ufDLAlKk3DU*}uUunD z0!@2@n#quM9Vi|^lfK|JPoUA3%)E4H_ZzYr2`a__+n`enI?0702)5wgKMBEh&d-DH z0EC(VX>Tz2CxM0{89-wq;CcyE?jd*#pdJWl3=;zymxL2A@xW=|BjCfQRBh(;aZFU=fhRyj?)vh&Kl9LxL8APInKR0gNSY{=SCh$65i@R%)Run|0| zj_Bur8W`Z^_TT|9#FEdD{QMlqOeRO)(%;92xcO}9JHy+H$Np6NdywS zU<1I;fJGE2V&KXk$r7^X0lJBdA+!uC>Rtf0g~7c5l7nD8h%}4`NhJ_o7=&^Uh=-_& z2dz9wWkB%Z7P|+;g9lIx@sq&N~{E(ou3L>tqD#KNKEL`VTb`9l_^Du4DiC(zX){nEO^5{ctI*C0U5hE zgHO-^uMq_q4>k~*bfKPi3`zx^TftDC3rbl|1ik=sSLr%MWEO`0ugH%FqCFOcXfjt3)wpYaxysa1}7JR*l@Qbfg%$$ zv<#I1ZPd+#>@fyA0~$tX0SDT59t=8P93J!Fj0YBiY-0s8!6rZg8A%>AObCgAA_gQj zNHIj10aRNRfQL}QEO0puW;qw-7eHj;kq_a56E&Ci3SF1SgcJ>EX~`Prof z48Ex;nTY|QLoxF}tCTWIbCdECGjqTtID=PtX7hxF?nt7iT8s zfkuVF0-$~k3IpaJupz#g6<|qNVE~)X0jDRh3TVKiN`Q7*qRfvoc$B6>N5fH6Iu(Jo zeu5o{zHSF*Wf5q&6-85cMrKJWHhbY(paZ}tx?BUn1s-%b7VH6Vl)HjY$F4$KZU8Eo zQj6RwAnL%Qp%4x{_qYUwgA`@vr9&Dupb!NKz;%IxC$lOQMbIrLvj9Z^6pttZ0ie^= zQAC0=b5ZypPJTIvgxeKdo>`QGA_5xMMG*iO{ouhcFw3d5q!^OdLF?9_rRyyskbx=$I)4Bx=a-WR&ss&$5(%{PJ}0pfAr8x47!u%Y02c*~ z!w07pLL3{MS_roilrX@yfqexkP9UoW!G}2%gUc64(F0yfh$QNkpOcbW1l|H%R0&oG z5doFM&_Ds129^PdF_h;*&i}}Vlv>b|9c(v9A>2h^5pd2$aXnZB;(kzeL$DAU!BZI! z3FyExc)AMI&;w5ff=vdEJ)js25`bs|vEZhG_Ic*#q=MSj5Lu`Igag|24JuL~Jn)8a zu<0TB1x|@Y5K&N#Q(6q+!Y{;f2JHaO^K@YdMqH8w5yKQgq$Id@*jy*70U@Ac-mnV6 zI#S@aLTV8-7~sZ%H9}pBa1Vw6JW!Av9h6`0mI=CKjv*LwmosREY6&>FLQ*T>I!ZG^ zTUsFtR7*2qbU5fpQpgk$=sp4n7ZhHQ13^GykV+nO&PXxjxR6j!2n|V&pvn`%2ZuX^ zi5Rd3mm3g4a1{pOCxOo$fy}fAA+BXgO@Z!vK$(`uCI+7Fz&2kGmH^L#KuiZSk#`QE z7#&=ah;%;?iWHKwKy$w+a*&=Lngu0^CB>*hpi@!6R|vtXTogkPvY<1m64PO4$KWu7 zA;}SR79T?rDCxk)2a-U^A2bBc0B3=_#wfga{{mF$cuXDfpmGzU3LLG_gE}B0pxw!N zpk8WFYC%2&xKal9ZW+Q8bF%&5H=8qn9OIIj22XM@J~&~3>mHa0sGPwRbwxhA8|(#0 z>EV(ITImP62m&k!b|AP}25+=M%>}n`)4*gVh%|?4C%6haKdVlUdT7#0q8B`LJ=3QA8!CE!Y_xFjV$x3na+0&>(^d2R$`EdYoC)dY^Qh$86eN$|KY&kfJa zOUW;XoN58;{6P2&<+L2JKj9@20#i0hGngn)(Z(;#BSAs{BQj3E893gJ=O)PN9OiKgH z!4xtifer@)^B_(KS8j+Z8`QaAfc16Y$qnvcXk}iW>km4>(9;F9*ALt^pun(#frBB1fq{X81{MYlh7Pc41&k345exzh z1q>aG91IbR8VoZSDi}BzL1tAjG=OatV31(oV2}X2MT8-PVFt4SBgkbQ3<``H3LIiRLjZ#VLk5Efg9C#ILjyww0|Vm< z#uZ`1%m^F1A_#E1;YV`6%0EV3>YLBA{YX|kb@zB zA%bBCm<=*HgF%2{0>cZ22(ZmE3=s?x3=0?p7-ldCa4;~aFhnqLfc(b9z~I5?!N9=q zgC&DmgTaI82Ll5`1t>TfG#C`v5*Qd53Rr(IPGCr2*ueyftqw*81_y=!mITHOsSg|r zKptVZ!SI63f}w%If=PkFg291-hoOQYgQ12&fMEs00Y(7^4h92;84Mf@3z#YxG#Ct+ zG8i%#IT!;NBN!eqNH7L4-e3q|tY8daWMKHfkic+(frIe{qX6R!#sJ0x3=)h5j0ubZ zj2?`jSYTiP#ghamUYS7QU%|u!PD2(95ey)gGcaf{fZ~dQA%I1J1(aqWse^-ofnfqe z0mBZ41&p8+<-ouJ4mk&qIAaH+22%p#0)_<)3JeVl2H=nfh0Y2F0fqzyP0~CLZD;Nq`L0UMNb})WmJis`Cp@E@;;RHAxZ(w}Da)SY6z5?S5h6x;? zTx`L3fPn*?10@(d7&sVqFfcHH!t?>d3I+>C5DZ|nVC-NFU^HN~U^HNiV6b5HU`$}F z0K*fEH$XAN7{K7cXu;^f7{IuI5hTyS3`*q;3=NE+QsM%G2RQ!+Fc>g^;?96UfQf;@ z0+h!XDnNw`0}D6|!3h|gdl?xNKq1Y*!2$|l2o?Z`tOGbSGZ;j`C4vis27?R(4}%B; z4+9TF1Zx0e0_zM`9dJ3}z`z9d7pU~%VMqYyaYhCX21bSh%o7+4m_dcy0p<(LKbTK| z;SJ^!%omtXFmo^pFkE2S0CtlDgA0QJLjwZ~0~13BLja2hg9|t}v#@~j3n&+BFhEp- zN=`-w7O*=&c?T5ROyD@jWP!>b1+W~bv<1mSFibt9{Dts9DG$T~xd5gL#1~*-0hfdz z5|qL~Wgf^}PFLm3=W{uhT#N*3&Ra&kR%8zFcdIoFflMFFo5(kFa$6tFdP7t z<*W*Vpwdl&L4u)y;R0Cy28IXVk{y(WK^T;$0vI^JXoD3_BP=>4$+Kg8`%tRF8m4 z93Dncy%xeC!P3F30kWAffYkt8>Vj%DsDWS#QeuHrb1+O`VqoB4C}23jAi*TT1SusZ zFzjFil@*|pYz5fI7Z^4$oL~UuqZJGW;Bw9aTqFGem6hO{RRUalX>bH^fbs&UR9*qL zi-Vyjnk|h6+|tEP-4E!=QK&U|7HkDy^*IAWa7d8zUS`cK?XqvRM26+ZZ7%4J{GAJ>yFeo#yFsLx_F{m;~ zFo05^G=l_#3&|+X=&}Lv^&|#2d&}EQh&|{EdU}unGkYK~5X!*7V921xz{bGB5XQj55YE8F z5W&F25Xr#85XGR*V8)=q0E(|@uzxfeco{SpVi;H$Vi{N%;uu&M;u+W(5*XMS5*b(+ zlE7*h7?K&Z7*ZIt8B!Uv8PXWI8PXYa7`Pdj7+e{c7%~``7%~}{7_u0c7_u3d7;+dG z!0qH*1{Q`q1{Q{V1{Q__23-ag26l!*26l!b26l#G26l!L20aFD27Lw(1_Opt1{Q`g z26l#Wa9hogp_0Lnp^Cwfp_;*fp@u=1p%!eX5raE8W{enQ7{nRsz+oiDP!CQQp!C7S z(7?dN(8$2V(8R#N(9FQV(89pL(8|ET(8j>PpvYj%(9U4Q(7|BD(8(ai(8VCe(9NL9 z(8FND(92-N(8s{e(9gimFoA)cVIl)N!z2cFhRF=<3{x1`8KyF@GfZP(XPC~w&MWU`ekRB&A`quhk>18E(1HmJO*}#`3&p~3mDiL7Ba9iEMj11Sj@oAu!Mn~ zVJQPU!!ibThUE;4BQMm7)%*8H4l=Ma9AXe-ILyGpaD;({;V1()!!ZVKhT{x6 z3?~>Y89?>lQ3fjpP&@1>13Ng^o@8KRIK{xuaGHUg;S2*4!&$JI> zU}w0=;BDBpCu3 z>=|w_urSVhoRhBr`sZy8(|m>3wq zdH5ZJD}ykD8-p~18`#b789*&{28NFe3=E$b+!;PI*fD%zU}5;m080B#4Br^o8NP%4 z&H%2heljpH{9<5W_|3q;@Q1;LApqPy^k9%?@L-T(ux9wn;K}fhL5$%)*ltj{1#0!$ zGk{v{3JmNFjEsy7OpH7X%#4f-8Vp_xEQ~A+tc;8d6$}mxY|t`-jgf_cosoxugOQPe zlhK>OjKPb6oq>mei;`)!syGu$KcB#&EU%*!{Eap%E-+i#t3pJ6N4<+pG*wmjG*!vj6MuyU_UZ3lru6hR4}qLR5CI$Br_y4 zFoDamB!((RGX`b`9)@a0Muv9`whT3lDGZDZVhpv6#taq=#thO7#z=J*H$xqxF+&G~ z7(+eSFYF8rjO+}JjO+|ejO+}}V7qu2S{NA^S{Xs*I|D--IG))V+8NmyIvCj*IvLp+ zx)|9Rx*6FSdKlRmdKuXnVj0*O`WV?6`We|7CNPp)$AIcO7KVw8ObnA485kxrGB8YG zWMG)e$iOg-k%eJ8BNM|6Mka=tjK&Px7>pUVGo&yCFr+eoI*hXz85tBA(imnlrZY&u z!$pi?4xlw2dm>IGeq#3fI zW+^f7Fyt_7U<9?pav3%9 znE{j^K>31&VJ9P~)dNb4Oboji85njmGBE66EMQ<}C}5CgC;;2Dm$8t6nE_Pp7BTE& z0H|lXpOJ^*03#2>L9jg_^`O>L3Bw^q7KX!Mu`&iThH?g0hH?gJ zhH?fO23Q%xz;J}If`N^poZ%>=3Bxf)76uzec824OEDR?YSr{%cR5CDwR}m3&RaY zc7~g9H?lL_Vq|By%~;PM&H!>J3&R~oc80r*>IGkjxYXZQ~C10xf|Pevw&UyMu)zZuyX z{xC8y{AJ`}_{Ye=@Sl-|fq{vIfsu)Yfr*KQftiVgfrW{kft87cfsKiUft`t+frE*i zfs=`yfr|-LCbBbdGqE%9FtIc6GO;u8F|jc4GqErTFtIQQGBGg-F)=X+GqE#>FtIa; zGO;s=F|ja+Gl9l3*%>65SQsRk8X2UR8X2US8X07m8X07n8X4r68X4r78W|Lr8W|Ls z8X1(B*cp_W*cnuqniy1>ni$lWn!)`&btV=D4X7J5nb;Y$nAjP#nb;Y0m{=HenHU-L zm>3xJnHm`km|7UxzEDXBf@(dC-HsCN}VX$RlXRu>pVX$XnVQ^q#VQ^$(VQ^w% zXK-d>XK-O+XK)4km7T#2%`fgu>mLmU$WLp&1$Ljn^6Ln0FcLlP4MLoyQsLkbf+Ln;$HLmCr1Lpl>XLk1H& zLnaeDLlzS|LpBpTLk<%pJ?1j8GvqO`GvqU|GZZkfFcdPeGZZngFcdSfGn6o~FqAT} zFqAQ|FqAW~GgL6KGgLCMGgL9LGgLFNFw`)yGt@G%Fw`-zFw`@#Gc+)%nw8JHP*8KfC{!R6&fralH%hCT*qhCVQV6FB{{Fl=V( zXOIG?QBXZB#;}D+jA1Ji1H&dJ28L}+3=G?u7#MaiF)-|8g0y3Hf$|%;+yu3wKUc4;FfcN+FfcKL`bH)U%*=BbSeR!puriA=urW_!U}v7m z5Wp~(!Hr=a0|zrZ11B>(0~a$p12;1}0}nGh11~c>10ORx13xo6g8(x-gCH|IgAg-2 zgD^8Yg9tM_gD5jQgBUYAgE%ugg9I}>gCsLMgA_A6gETWcgA6k}gDf*UgB&wEgFG`k zg90-1`}o`22*Ax1~X^3HbU}h$U5M~AjCI)AQP-Z5EFlHu(aAr_nmYpGjnVlh$c_9O6q&$k5 zkwJ)I5d$m3A_i%OMGP_wpt^q{Lo_oeUoB=}WmwE0&9In3hQXO3h8ZRf8qHY3AkDA@ zoDXA}LH!4DhB#(WoyNit&%Bg@jX{hdfmw_pky(r(iP?f7nVAth9`}yHnL!wwP9+&q zn8g@UnZ+2=zJQx|WnHd>!m>C&znHd@K zn3pl+GcRQbU|0@rXB05AGZZp|@*xvL5%UTLJ_aU+VlW@l7ARq6XDDT6XDDN4XDDZ0 z&LGOToS}kwIYT8gJ3|#SJ3}=y6GII%sJ+$*9tQ=rNo$!|80wf=80wir7#f&E7#f*Z zFf=ipAtpw`>jeT@5vomxuvomxtvomxvvorKCvorKE zvorKDvorKFgW5qLcd~%nFB6zoF$goTFid1-VVK0s!Z4Ycg<%Ra3&T`q7KUleEDY0` zSr}$8vonC&G&7mm8D=rFGt6dYXPCphl3^}0JHtF?c82-P>5IF2D^ z9t4FoxLn`Fz|Ua9u$P&M;Sf~*Ff$Xw5oQL4eat2dN0}KIjxn<{90#jsXE?#k&Tx_$ zV#W^!P@ifu0}og~J3|a;{EL~1;WX5oGt5j3XPKE8gc#Tv&M~tyoM&cdxWLTLaFKZn zxDNygcQJ-b%v%}Qz-F*8TxMorxB||Xp!^7O!#21aNc~l228L_QpfVREx1E6nst=R~ zFN58@14)dX;W}7sCj)3~AEX~NOAM-eZZYm+V1?_2m?^{nGIKZFz8lP-F%nQd1&M?5 z_#OrUupWs2Z!)tmgfp^$`~Q$}7>HVs`#^ra#f& z@BL7BfZV{&aF>~d;T|&+!)<0JhWpG17`VXh0NKaF@PL_x;UOs9Goyzy$i9ONd|AwNGcmklW?*>F%mALb`N+(`@QIm$;WIM>!xv@- zhOf+^F(!6~Z_Mlr-eV_;$EXAos!U=U+D&maz39m5jCAjrVZAj!hcAjJaeW3V$wvoJ8ourM;n zvM@5pu`n{IFfuZzGBPsAvoJ6yurM$vvamBKu|UQqm01`VR6y0@9} zV_{-YV1by)#Bh;8jNu}KG{Z&k+!APPR2?i2iYFEZ4Hgy#O;Fc{fr&wjg^59%g^59j zg^59zg^59rg^59*g`L5Gg`L5WL)V7kKK1+Ft8?OO|$s|=PbCJa_ACJfdrCJZ(#p!U=?23wXU z20NDP4E8LLzWY=LP@ZOBaA09zc*nrR;K;(x;Kaht;LO6p;KIVh;L5_p;0BH#b_RDA zb_Nd?b_P!tgg?Akm>9fSSQva*SQva+7#RFm7#RFnKKnu&^^kvamBmv9N&ak!Thch8PwWhFBKR{2c>B9Lo)c zcoqhR1eTi&i7Yo6l2~psB(vOPNMX6mkjlcskjBEokj`?6A%o=-LnaGk9wUo|ogtfr zfgy*5fgzWLfgz8Dfgzve7DE9GH$x%IZ3a#TSoneBh=D=|5 z>=_u^SQr@E!D>wyI#?JOI$78mxG0bM+Vwl6i#W0uUF@rwCV+Lu4#|$zIPZ;L0JY^7LbY_^( z0&2%TV_3i<#;}lug<%mWUokK-EM@_vF(!s3EKCebS(q4>u`n?#XMwbjSFo@!tYl$f zSjB>vS6t2VoM8nJHsv(c81+7>x4zWC8 zU}Jc}aF|7m;Rp*8!%-F{hBe?e0RzJ^mX{1-V7XTe$DwXK!NSgf+};6=FPvmyXE?>e z&TyKAo#6~iJHuI)c7}5-Obq8)m>4dwFfm+Y0oB#)43}8g87{N1GhAU|XSmApnt_es zHG?$6Yj`;!&%nfRjRmwi;SB=^!y5)^hBsK`*cp@=K=Uha8FU%mGDtJLMN`AXaGiyT z;RXv6!%Y@;hFhRK1sV@yVPUw#!oqNug@xfB3p>Mo7IuaQEbI&qS=bpKv9L2dW?^S| z!otq*l!cw)84EkZa~5`n7cA@yFTrVzo#7P=JHu-hCWbdGObl;Xm>Ax%FfqJmVPg2e z!o={Ag^A%43lqa<7EnFI#PEfMiQy{?6T>$a28Qn}pmlZZ3_n@kG5lfy^)22r2r#^7 zkY;#~#og=-zggHB{;)vCMnGlEUl!1KAv?oAsN4Rturu6d`M|&jTBpFu#K6eP#K6SL z#K6o7s;fUTu&{n&U}as#z{Uz1KW1TIXJujFVC7=qWMyFBVr5{M$nu$CC&L#8Zq~01 zJgi?Ccv-m__*k78_*tD91X!IJ1X;f^2(f-+5N7?xAj0~ML6r3ygBa^K265JJ3=*v0 z7$jN0F-Wm~V~}S3#vsG`jX{?68-pCH34=TS!eGM6!eGkE&S1vM!eGwI!eGJ5!eGe?$~U0CE(?PdD=1$vFj%vK z#t7IMY*<+s*0ZoP*s`)S*s-!O*t4=TIIyxaII^-cII*%bIJ2@dxUjM_xU#Y{xPkPr zvNL$FvM_kEvM_kDGB9|vvNQOwvM~6vvM~6uvM~6wLeh8uD?39VD?39FD?39lD+@yi zD-%N~D+5CqD?39tD+5CWD?39ZD?39JD+@z3$PcXS46&^23~{V14DqZi3<<0(42i5v z3`wjE49To43@NNE45_T_3~8+F4C$=w3>mEK44JI#3|Xw~4B4zK3^}YU47sfA40){V z4Ee0=3*Jtn3UkSlJn7va&PGVr6HT&C0+qhn0b0E-M4WJXQvV`K%1!)jbPY z85kC^GB7M=Wnfss%D}Lcm4RUyD+9xFRtAO@tPBh*S=kv@v9d6%W@Tqs!^*(0mX(2F z9VmWT85lOOK4aL(D#oyhm4#t5D+|LGRtAQxtPBj>SidvKgVXsBhV87N^6NRn4pw%C zovbVjyI9#7cC)fG>|teR*vrb!u#XioM(o1`nG4*{3hDP9U}a}G$jZ)eh?RxmFe^L5 z5mt7Fqo8O;W#U3Op1x&1S=E6NpQOS$-o1*A7Sr7upG!dNP7Ll z0CEcx!zotKxcDyyK89Zm(hR@A;{*x}p!ChcaGI5g;S4KijDv;YEGrAcIaU^i^Q zEDWz%Ss31c@*6WN<6Blxznzs)ngN1k82&NDF#KnD$I8O+o|T2+11l55N3eNJ42BFG z44+sT7(TPIFo4>uUsw_I4PRN=8NRWyGkj-dXZXR&!tj%of#DY`8{=^cX$DSk__09cSlK}Bd@is#F5vY++>9y=+>Fu;++cIqK;}Z#ab_RYnb_M}91_nVk76u_Ub_QWKCI%5UCI(S9b_Ovv zb_Q`aP+kyYkYHnBkYt05e@U^iGf1BGsv-l%118700tgLJ_c?Ec{U~n z1vVxIMK&e|B{oPpRc2#hP+{Qv<8PwQV7}VKV7&O3s<7EV`eE_YS(qsdT z@q+ASVbB80@i8jE+kv35X;7MAVbEq{XV76|XV7I6W6)y*wIkUX^x4=M4A|Hi4B1#1 zjM!KhI57Of&S1<2YUhL6k4y|xKz#`|P(8uIV9Le<9`iC|V`4C8V_~ph1GP(e87p)GmUoA#`N}wM!Zq+}H#exiHLw znZ?3zo{@#Yl?_sMh%pE;@?fY%wcDMIh2bMBNDnAIH8Oax2{VG$%P262FnY4FFnF=C zFnF`EF!->sF!-{GF!G_82hs=f0}FVah#woI43S`DVUPs35rr8+ZGTXIz@JSNi(6ps zW@iXsV_*nm1NHeqW`g1xQRhG2NO!|Ve2mz^Pm zjfEkU4P;jnLl~O`qaccU7KU(W+%U1QgWDz%Z0rn?Z0rnC;PeNI3y^uR_+(*-2Ad_x zC;>JH7S|9pwqQAS2FMy2c7_->c7|AJI{CrC#1PBI#1O~E&JfSW&XB;y#E{4aYO8_V z&d!j;#?Fw;#=wxm#?Fw+#?Fw&CWXasnBk%aP6yJA>1;A+=?~;4NSwK{u`^__u`^_{ zu`^_`u`^_|u`}ebu`}d?(;6h*fzmW+3@49`ogtr%ouPnDmJzb%N{+FRjfJ5Ilt)1M zAJkt330f&7E42b4Ay7=^%Li%_?Z85aJC zH0=tFAJ8~nDH~`Gik+d1jh&&K4K(M?&QQVD$WY0qh$UUY>;vUTCI(QvfY$DU!U(hu zWEK->9$pD8EJ5x>*ewrT+gJrH3lV7sl3qY-x~kb&7;3=j0purTEO`ReJbN}sJb?UF z!2n9zDva#laDc4usAU6;`#ae;6Xs2l=~qk_hDLFJY-3urzPv_1mlwswYQHg#xT!mb|_MlEch zI+C5Cm5rUDjg6h59ULA^3>|EsaA#-e1jnHUG;Ba=A7K`9x!DEQ$Ij5r#?H_KPCuGN z>S1E&Wdn_MvorLuX)$Vn{mjhJ&&I$ofsKJ-A{!IKBsM07$!sPJQ`k%xrm~qZOk;Cq zn9kP3FoTVOVI~^`!z^%Evop+QV`rGd#?CO8jh$g08#}{%aQz9YV;LA0urV+!WMg1h z#Kyp|n2mv92^#~$e@1qOrEKgB%h=c%mb0-ltYBkdSjh&86LyAGYzz#m*%%nsurV>L zWn*Ai$Hu_09$Xh`GjcHNFm7PeWfTFs)r5hQ#e`uaylg|n4=8RxX?7DE6T@aU28Jzc z3=CV@*crC5F)(arV_?_;E?d|ccCxWB>|)bnOlQ-_NH2&mhLq>(EbI&)SwZbR7KYv6 zFlS-d1CFCP;BipU-0EI7c7}ay>0-!)&IEETFZt;IfwoyiQ$+!3-?+i^Y`jC>w0;gE=EB zgE^x#gE_cObc~G|yarW_!Ge*4!Gckm!GckS!IBZO=MQ3zKDg};D)+1y1sNYu5u`pZ)hpQ#y6}Gz!SJ^=0W1w*`P&>T9smuxHyuh7Ps zF){pRV`BKj2I@}$at876kncsv6GWXgesft6j1 zfsI{^ft}rhk%Qfn(Tu^15j0PAjFE|flbwlyiyhP!1GVQF7+Bc68ATbq8KoJ#8D$t? z*uc4ucWBy=!nHUt=nHZGVnHZGW zA!|fb*clj9*%=tr*jX6V+1VL1*x4C0+1VMi*x4Dh+1VL%*x4C$*)K5Yf$as2(}Vh1 zAon8jgCc_;qdq%m%-5fho57z^n!%qDG#4Mt=Fe!r&ca{_wcCiDiNTniiNS=OiNTZ| z6dnPLTnqt>(hLENkU4tLI2p)KObljF|C)o?{nn?CcD7>`V;y>`V*}>?{n9>?{mU>`e^L>|u;9?BWcr?4Ug^ ze;M4^0~y`f#TY!;gBU&8#TdNUgBiWq{TY4OEf{>+!x^=Z;sP}P0;)4W^*QpmEoffb zj~z144XWe)+1VKa*qImt*_jxE*x4C^+1VLF*x4CE+1VMw*x4Dv*_jw3*qIn2*%51F zqS)CPqS@IQV%S+2V%gal;@H_4;@R0564==p64}`qlGxc9lG)iAQrOuUQrSWIFoH1+ z9H;CI>Fn$bf0!Z}mEmrMtib`b>oV9G7&6%z7_!(w>s{Fyvf0@ga@Zm5JJ`CMTy}Pb zJa%@5e0Fw*0(KULLUtC0B6b#rVs;jW5_WcmQg(KRGIn-`a&~rx3U+peN_KXJDt2~; zYIb&p8g_PuT6T7ZI(8O@dUj`q26lFaMs`r21hjgaouP@HogtH*ouQeXogssro#7@M zJ3|XQJ3}jbG$TI)J3|{g3qw0QsN7{|=wN4O=wxSS=wfGQ=w@eU=wWAP=w)YT=woMR z=x1kVn841?Fp-^|VG=t#!({dtMmC0T3{%({!0Y#?g7O1soiI2L$1;N2qoBB&&JIdf zEDST)Sr}%rvoOqJXJMGl&cZN@kcB*rOO1vPUy6Vvhs&r5Cfa zGb{ncDLXsEGIn-`fyCN7+XJ=T=&d#ugJrTUecsY9# zIL$M$fcl!rjG(gY>d9>}6+X*vFoQ zp&lX*GAo;r1I;Xm9I}}?jI3ZaptcyYxw&9}fci6>EHL-M>;##e$H)oShc1t7em>NF z>X7|aZIhJ)Tpv8<(Fhlp2k-M>VK~7Kasy~50w~S0Gn|B~?_-0=-D3fjEzQt$gG;^z zZvQE;{jG5RX)wPH&WE_K9nJ@xhrq-D+T{SUALJGmhBNH!45!#x7|yb@Fq~s&VK~p; z33oSazY1i|ybGFMSr|?*u`^s?XJ@zwD!h@&ztNl47b=J?!C><&Hzgzci7n(?y|Em z++$~AxX;eS@PM6(;UPN{!y|SkhR5to3{Tiu7@o4TFg#;tXL!!e#P9-MKY{94CWe>n zOboBsnHXNPGcmkjXJUBE&cyJJorU2&dn>~Sc2GSe#_*9{jNucz7{h0FF@`Vfy^Kr@ zy^PWfy^JypeT>WueT>o!eTm4)t~`pwS3@Q0n9;V(No!$0;( zjLZz|4FB0dYZyR!Co{5w$HqZsurM%iOk!l@n8?V)F@=$nVG5%(!xTmt@E8*V12YE$ z0}BTW11ra5#u!j*pJOs38^=^ec7~~p(hO6p~F?J3XhFwgMbtn2v(-`>}rZGx0 zOoNukVhkJ{Vho%dQy958CNpw#urs(bF)&y$F);9OFfiN(?U#b;<>i>p$Oc`f%g4dM zz|XDum&Y;D? z&Y%tUD?5V@2Rnl<2Rnlv2V_s2J_iFsBs&9x0SBb*W5@w=KPc^h+QXps3_F7n2NQ!a z2NQz{2NQ!S2NQ!C2NQ!i2Lpoz2Lpp82Rnlm2Rnl`2Lpo*2LppG2P7=*IM^BNIY52Q z>5L8>VhoNPGZ>vXW->Z+{9v$vyB%Z)sO{UtV8;U5>&L?2!okAe%E7|m#=*ki&H?H> z-evIMxXa+lahJi1<1T|Y2dsSz>Ql~Q^x1&qlY3mH>57BQxB++|4PU|~q-0F{A@ z8O<0LFoJfwXK=7HWOA@DWN|>!V>Sn9Y={ZmZ_VMD1#W{RgZDx%VPs@rXUOGP$_UzT zo5!(?5wuP-pM!y+fMYqh&9atx1tTK^4?`ZuO0d2{4$vAWHb!QKm5fCkEDXgQp!~Fo z5j4(O0%orU?L1*v&CI~ChM9q3Ei(hdI%d#LD9}6#XeSg4Ln#NS{lm^s#=*i+&an=h zH$i#mJh%>64{qbjGi-p;^T27bf`f&jl7oSvii3fn8l2u|gT-sWafVp4w3%rm*e$hS zx6B2%&!VCGY^ymy{kb_{f2;!SZQxi0E;k@%voO?iurM@mK+I|chuwT|_+)Y{1p8?n zGXs*pHbKK|GovuWW=3g-&5SY(TNs--Kz&0<-T;LOq#l6G`+@drH*>Hvv~aL9v~sXB zv~jRAv~xiADS*~pbb#_6$5uwjnq*KJFUHWtA;!?n0ZOl+v)0j;GnWME)e z$Oub+>|o>ut6^f8 z!NJ5ZlY@z276)jJ3lqa^4km^<983&z!De$a%;Vr@n9s43ksYiaG)4-t3p6eU2`fVe zP+7hUO`eHi0oa|OavCJRn~@EyAF?kLHV?3n1JwT71J}EV1Js{|q0%C$-o1=` zV7(>`OE^pzmU5UdEaNa?SkA%D0Gg)&&A)-hs#kEZFs$TYVOYfhsq4ep*cn!H?1TFg zH1-KH^D3xa&%wyBmIE~J0#d`yu#UroVLjNc{fx|DyVw~vfXz9;C;{bz+V2~oVYG>Z ziD5Gb6T=n`CWfsXObpvNm>9NmFfr`lU}D(G!NjnOgNb1`2Lr<%aM{bwu$P0KVIK!O zc>HibIL}{aIKaWcaFBz6;Sk3c21wX`W;o38o#6<_Pllr$puNqYz5vMo2O0UnZon6x zp!i^6I0lMm4t9p)94yc^&7e8GLyTNt{U!`2z;y}>!$}TyhEp8u45vBR8P0I9Gn@tK zV*#a&!_e?zXE?{f#BiR2f#CuN1H(m7x@2Qu*w4Yva0wi*pg3Y-xXf{ckriwO z8QB>i>w!RZ2{*$vj^ohu1)Dnn)vFM9f#weObDV&NFGviuh8B`nLGvhL43M!<$UF*Y z4uyr`ItL5G4Gz$p3Me0d{BV+y5$xAfj67iaG~-QS+X#E2iF%@ z!DTLJ-QW)n&@M|*xdI8N{TxgTKf&=0%HvlUe{rxd{N`Y1_`?CIm;Z8HW&Fo+h4DWJ z3j+fu3j-r33&Rgkp5$Dp+lx1e#!z#z%Vz#zrRz#z@Zz#zlP zz#z-X0A34d$N(uPLFFZ=to+M(8(MbUVUz>ga~H}7GXwaHyWloTP??c1Igh2(W9yI@?$_Y6?qL+<v9q&dI{y!O6hj$;rUr#mT_n&B?&v!^yzl3l0MYhCfV9 z41SzU4E~&;dIeP8urma3g3{+RXqezHX977*7=kz%7=k$&7(zH387iS=9_U<%P^cZC za={wBzU4WiAlQGPaAsl%<78qeWn*Uu=WJw%;ACfrH7^- z9F*o*7>YSr7)m%<7)m)oJE}ot4Ld^_Cp$wqIA21-8MGcYn(-YYXnl4CCksO*CqzvQ zBNIb3_zVXIhAK`5hH6ewpZ7g9-Lf;(aI!Ge;#CVW{~co;=Lcx{!oX0^$-vM6E+g0( z8aYAhao8C^>vAqInJ_eQGB7lAnlQ9*GBC7)^CqN?#l-Lt9{!+lThN>UXl+9qCt?q2 zJ0}B!5U9Vy#=y|Q39=VdoH-Y=7HK? zpz`w@G~7Y%0hM>4_5!F3XM*lgg7kA|bAsA%p!P1Py!a0FCv2Yv1H&9pIDyVLVukJ5 z_`wJ|k7_O_XuTq+|I5xWkCUBYJ|}3*^d}=T!w<#mT`jI4I0A+wWC08W?}fl^cxyhAU-Udn84>`^l|)QWCWkD z^_LNJM%r>t28I=!pz~i?7(nNdF){oD_s2jdi>>4Y?dWG=SjEZ0u$uE9;~LI?jB7a= zm_Xy&kh2OH8P;*~FsuisR|bX+oGc7a8CV#eF|aUfI&3g0xK`<>moS7KVeMdV-Oi z;SeV~!(mP~CRp1tm<>`66oBgwWHT8UjzGeli4!~*4k}|97>;s+);B=bW*p;WU^vd% z$Z!JeM-C=P|An0iG!70*o1p!Ht&HppCpp;}PJz{MGC}(jU^Sq5Pf#E9G}s<4Bss|5 zLXh47HcEKfpz~vCw9#H=QvNi>j zmq2NjmkH7~2bl*c!8GI|!|d zyT<~uo1Y0%E`#)f+zhfGq`*^qt& zD4&ATFR0A`N`t6tvZR=F!R0M8!+BO}t-%4MVJ3!;tPBj7I2jl&bE2-pu_kjJ&J|AB zS{!L6GX@#7^aJWwf$AVxCQw-jTAzItR3~tC8P0AvrCwY|c z2CW}MUyHMcO#w*_BrZX7grN00kTs4?3}I}FNO==f{)5&Iu`}RXBLv$2idZA0!~|(a zgW{B0>ll@h(kiG<1mzpZsg|I2J!l*QvgS?&DLt_>5Vv-0Is@qZq&sX(3^zHM7;bT@ zg5%>hClkXRPDo$nE+-SiJx(A2c4@4 zItP-M5wwOxohg7pi;16siD4o$6T@>(7KRs`EDSF>Sr}e%YBRm&Y-4!C*~ajelbzum zClkYaP9}yAoGc6vj` zos)^-5(5*%4^B|OP>)HBL61qAK@Y4J)Mf;&ZT!i}#PEv~G$seye+)`Dknt$wbIN{m zvNQYvwUfc~Sg^C|7#RL?GBEt(1f8X(&jcE4{m%(%vl%e)GUziga6!&h25moLMg@KdHh>3;4 zkco?ng@K!kg@K35n8}R6gb8%+9cZs9XuTCTc)uPK11}d710NR?13woNg8&y3gCG|Z zgAfj17^Juu7^J~|VquWsVquWwGG~(GGGUVEvS2b}uw(+IKTa-4 z`(KE`ib;{dib$Zrt;W-?kci9_9?#Kpv*%*Di@!o|*@%Eiv0 z#>K;+4h}0&yNa7ZgiD;Ej=_ovw0>WM3$oV~bas;_7dwL%7dwMC7dwLv7s#EU{VFUB zx?Gk_dR#V4W(>AWpfPe*26HA326HB926HAE1}i3gE-NMjE>k8$E>k8WaGbF)7<1Wy z+g2uAEDWYx_F(^j&PQcpuwydgieLnt!3vq%0-ZbI01Yottb_6aJA*lw7=s0u7=tA! zY(QtaLd~`2Vqvi1VqpNC(U8T=!eGl4!eGZG#sCQuBPM$;TP6oC76wNydnP9?MfBvAUn+11DFIE9Km5L&k)E2I%iv+fr-JBD+ufsFRoxF zP+J|e77w&G-kXbo!H0{1!Iuj(t`Wk-#=y?t$HmUz&jmSCB7lpXArPF_LYdeYLYRWM zLYRWNLYP9hLYP9i*crmO*crmP!k9p3MuO&$Be>WZBDvTZqPW-@qPfDs=E277L2EHV zX~P}7PcZ_ITqHQYxj=I_Tv1E{pmph7Obl^cObkx!Obqc{ObiKJOyIR*iCjz!NnDVz z%w#Thh7>L)hEy&FhBPh)hGonw4C!1f3>jR}OrUdpGP&3pvbZ2?jr-Wx8M3+98FIKF zy_u}q+IF?1Q381lJT7z()9849`B8H%_V7>c<-Tl2CU;vL@gW7%|vq0m{Gr1TTW^u7I z%;sWen8O9>tIXwMXPCzYGA9QdZ}YhzeP_@aC%GK#3=6m*XO}Dl=jU7|Rt6@9MO;h_ zi@BH>mVnbS3&T>bJSNaSv1MGKzAQV#axQj;72tHt&aje;onaLhJHu)&c7`=v>MgZd_gCeLHy;)#lmn29HNwrgz{0|Cm5YVp8W#)0b*?73I?(tO6GJl-=v?y~;CKbu4>}bMG_J+MaFdIL z;TG8JRwiDso0%AHgWbZyaEA-jz6OnBg4WS9F`VIIVz|r2#Bh(Rjp;rY3&R6028M@R z?cn%(1kPg}Ow0^S43D{(7@mO5>;%W10z(&A%~LLRhG$&e;PmsHi=E*G7dyjCE*6GY zTC#;b4>=j{WsSXFnyGBDp(FQ&bNta8dyw$VLCXE|KVb1_{%ke ziIrgnlQhE&CeZrZf8e?w6xK7DnBn4}w#Y0dW(F~atxW6;|G7Ym8)q}IGl0^N7y~0W zXq(oaC0vMtN+2U z98B|YuK=61my?l!mwP2tY!#U1<6aG>_j0a*(rdwLXLB$z%;i`I7USn$52ZIi>5X9e z2g4??T2MJCz`YqPCdj=7;!jZXf`Nqr)UIM;*viDpu!Tv88`4GuwF`y8;j)d1nPDrF z2sb0ce(;)^?shMg|#fMuq^;IWOGj!RkQgqW)mG09JQ^@gkW1!EgyoA7H!;R&$1n zhv6*O6)+oO?^Uq-e-4xmg&Lp!NtcJb}9PDHeA@4^1zfAgG8r(b#n%q1LTHK&?{S{o6YICzN=x~1n+ojF@9ZbtJ`~a8Zka&cpFBb6LA0~#M zOsot);O-Fyr+tunenI^Yif>T51f{XxOsovQu&DimMeScER)#-V)c(Vw_CFIV!#^x) z8JIzR4qfg$j3x}X8M#4cS#X2eT9AIHJ~tDC0XGwaAvZgN5jPWqF*g%~2{$`~DK`^? z88;JyIX63l1vfi`B{w^R6*mimH8%@`4L1veEjMUvnw`Opn}xxio1MXdo1MXto1MXl zn}NZZo1MXho1MXx8`Q^VVsPVTU~uPVVDR8(XYk}^VesN+XYl4`XYk=>VesV!g&{kG zA2&OLKQ}u=05=13AUA04nw=qto1Gz;o1Gzqo1Gz)o1Gzyo1Gz?o1Gzon}s2go1Gzw zn~~WFJeJMG5Y5fR5W~&HaGQ~dA(oqoAgA)cFwA%UBTA(5M%A&HxvA(@+4ga#f2u6Z%uEdMGkcgp_m>nivoN%Cvod#ZvoUvagXWJJ7`nKb7`nOH8G5)G7<#$c z8Tz={8Tz@|876SEGfd=0oSDf9nk!-koudglkA{I^5;qgWWNvnbDctM~Q@I%!rg4Mr zLSSIH$;`kootuey1~&`COm5H~8+L|S-0Tdqx!D=!aI-Vay9cW@!cvW*P7}IAk2-9RnvbD+4F9Gy^A^_!jUQv-R9u%%Fb325!*$ zDbPMg$eK%iCT?cX*+?6?xfnKaGcs)EW@OmH4LZ%8hnbndnPDrpGs8A+Zsq_66NVi4 z`bJ*n?c9+3!OOi;WlB|3r^>tJ0|QH z_Hmmt?B@pUV*-sufbQY|-AMvEBOY{rgc!pL7BPkc++qv|xj|!CVho44#TX8AgXYj! z7>;m5)~FrjW&xk&bqo|A4D1ZYL2<&s&TxX8o#7-Xow2bqoZ^PuUviooa)-$oZqPj@ z>H#LdKTnVX5>3O5tO zRc^>#DA%|d7_M_OG2CNfVBlqDV7S4}&Tx~Po#7TYXq_n&!)>1~G;Q++qw5xy2YBaWgVM=4N4j!tKoPl=}|jGj1`4=iGeE zFSz-cUvjfEyyBk9@S2-};SDzf!&`0!hIibI4DY$w89s2cGkoM`XZXYo8i(OxcIF6S z{LIb6{DnJ(@hi6gvl)XRGarK>vowPsGiZMmXiN$;w%-QYTLa#64QkiI)(WvOe1pbm zHw$RpkPtY%fW|Mqxj=c1iQzjpXpBpk88m(d+K={wTZmbVQ3ZTI5a`_NpWt`}oy#S{ z%*MdZ5DmWj0<@l!i6H>IPLG}87q=)gXlw)|r_0UG@SB^R;SV=EgEFHSGw3|WzudJ9 zN}!uRK<5X7%OP=Q(3rx1&|(uF76wKh31(3Lk%@ift81yfsF@L zZb>q8Fi0{>Gf0B{3_1rMw)O_Jk4l-5oq?SPbW*MqvowPgR1FhDIP^RY(7g>B4ARWP z45G{&Jfh5;JR;0oJfh6MSj3pQc_8^4WX5e4b_O1h8+ce4c;WU#)^hOifa*3D27Vq$ zxC!vcFoVwU1MSrk37a&cn_i!NblV$-~Yd z#ly}Z%>yd?Sr}w^KzGrA=PsBh!}DN0gDj5>GY|OeCQw-cQj4g!Kxa70@j%wr%kzNJ zEE9tQ4-8@VmQpo#GuZ@#Gt{$#GuK;#Gu8) z#GuW?#Gu2&#GuOqITs6bUKXf7smH^_pwEM-LkxJB7z}xs7>szB7>s$?8BBQC8BBTD z8O(Ut8O(Xu87z3%87z6&8LW8NkNnhn*pShn*pihlL@C2ebx{g&~-Sg&~B8ogs;t zogtKmogs{eogtiuogspUogtEkogs<`Qh&kfvS=Q5h8P|ehFBiZ9$$8bI39L}cpi3! z1Ri#VM36Z=>E@t9(m?Y9x;Y49x;Y) zo>PoHJUDFihiNVVKUt0=`pg1`iX%Oi&u-fz+w9L2hSYVwl6j#4wkKiD4cO z1H*hCSiLC5uz*LLc_9xA!y+CQhQ&Mz%u9GcYYY{cm-4VPEaPEkSk435Tl$J&1&

    >QYtJfONqnVEw@nOT}a87#hw33QeW3wSMwJOekwDjqS0)jZD_BpIGD zNHaVG-!TE2w*#$(Si{4@u$G5~VI2<(!+IVTh7CL{3>%^O9n{_c?UAr!2CYW|g$Dz} zCLRU`PBzeZB?H4|9u|fzJfJ)(#;}zK7RD;fyzo2?%EKVHK=ucCae(#$urTzqgX%rd znrtS9Z9J;XX5jM@)tH&#?HzSyGX@Q2J_b;G0d%I63Bz_CXNDbMcd;|<d8xA*g~GaTSyXE?~i z&Txo_o#8MKJHrtkc7~%o>a z45xY68P4#qGo0mNXE?{h&TyWGo#6rxJHtgDc7{u!e9FVlaD|7R;VKV1!!;guhU+}+ z3^#b#8E%5g4<2@g+dS+HcX-$t?((oR+~Z+qxX;7R@PLP%;UNz@!y_JchQ~bY3{QC2 z8J_a6Gd$zrW_Zq{#Vi6oKbM8!1rH0uOCA=6S3E2XuX$J)-te$6yyanMc*n!S@ScZ- z;R6q7oec}aM;;c2PdqFPpLtjqzVNUxeC1(b_{PJ+@STT+;Rm>`(Pjp%75T}-&hU$e zo#8hRJHsCy7KXpzavu_Qw-`a?s}3_igATJagATN92HO`5YJ;#a{NrI^_|L<_U<2Mq z%)$UVWY!71pIDrsj^Qr@Bd;zq8-p&hG=nZwKLZ03FAD=RFUV{UMo_yBG(N_{%fP_O z%fP_K3ku^zCNTyE26kS^S~m_}NIMZU4#mmKz`(`Jz`)JR#K6PL#K6nT&cMgZz`)PT zz#zcOz#zyAs=pW*SlB%ng?Jelgn1blI2l(ni14mq5anIVAjYf5EXV*F!w0SVVq$P- zVPd$)$i#2}>~D4kab9)?30@WkNnQp9DP9H!Xk_=4D|};bmb^bxur8oW#ln!HTl z`!=+ASs1i=Sr~M9Sr~MAnHV^DnHbo4nHcnVLG#HB4Enqb3Ll{hXL1TJM3}(Eb{pIWo=Dh3-7QE~Xmb~l?R=n&C*1YTtHoPnhw!G{NcDzgs z>o}Ph?0K0O9C(=+9C?`-oOl@+oO#(9TzJ_TTzMH7+;~|S+y?@-i^^@iH*@^D;36@G>z3@-i_5@v<`n^RhF9@Uk<6^0F|5@v<|7 z^D;0*@G>y`Wn^NAlo=4E1t;bmgz2cK!c#1PBN#K6MN#1O~J#1PNR&XB;% z!jQ<@$dJU#!jR0%!jQtt!jQ_#!jQ(x!jR6(z>vXf06GzyS(?EBTJC|$C{URLI(rzD z)(n|J^LUxOp!-Zf={KJti`R&mg~5nfn!yO1_CPlrX7hq>0LW*^;T2=ZQeGB@GG2Cua&X!;WDa03 zWfo*GVXlD2ZzV4iLlrL*Lp3iGLk&2-rZCj9Z-c&9S7@|rV)<}X0=ReTIg3~juib{@#TptVF6%%FLG zc?Kqic3vii4qhgPPF{27E?#biZeDhV9$rvel7*p{mxZAZl-_t)82WiZXLo?+<4qVQ z@LDp9fZYx8*F=!Nm{=Gl@v<{a=4D}+!pqJum6x4i8ZSG;bY9RMD6qRk(CvgTliOjc<>} zcVK1#>xYyDpfg`4@j8O0{~2cUGBC{HWnh>K%BSFa03qw8=kY?$JeFcJVVKYB#0=X1 z)y)gBe*rH$!$NRgZe&=*+sLq(*O7S%uQM|vLnFgdUKeIn2GE%>kb74^XU&4{?s5g+ zSp&M;2mQVq(EULmb3y)KXIRF|&aj-9g<%CRJHtv|7KT;4>>vIotK?q2QNFrPF{9~UA*iJ zyLnxi_wc%bicN;SpmGRwUOX=Y!+u@{h7LB+_y7~b0bX{7gS_kvhj`f;4)d}z9N}eW zILgb;aE#X-tPeDA2RaA-I4?WH30`)Flf3KJPV+J_oB^4|#LjS*m!07pFFV6| zUUr5HydKP;`DM`gNf&vU7%uU$FkI$kVYtG}!f=(>lR2Hif%zJ*1M_uWOXls|*336} zZJ2NJ+A`nbwPU``YtMX#*NXWrFFV6MUUr82ybKHvco`TT@-i^=@-i?y;$>iX%*(*= zgqMNgDK7)VGhTLv=e#ToFL>D*Uh*<9yy9hIc+Jbe@P?Ox;Vmx%!#iFEhWETo3?F#e z89wqdFnr==VE7E88Jw8E@H#Vpo!5f-2QNFrPhNJ0U%X5Vzj+xL{(#CN zUIvDLybKKgdBNB4GBENnfEI`{F!M1nfc(b7$Hc(O$Hc(K2l6Kq13MoR0|y@y11BF7 z0~a3?12-QN0}meq11}!~10Np~13w=Fg8&}`gCHLRgAgABgD@Whg9sl3gD4*ZgBTwJ zgE$`pg9IM~gCrjVgA^YFgESulgA5-7gDf8dgB%|NgFGJ-g90B5gCZY0gAyM*gEF5B zvkIRZvnroEvl<^egE}9m%)8E@!RNuO$;ZT?#mB&)&Bwry$Hc&(!^gm&%g4Z=$H&f~ z&&SSSz{k#D$j8oL#K**7%*VuF!pFj3%IC!lnpZaCV_-1nV_>l01Jywc43>Nh3|4#$ z4Ay)M3^t%JVDM%J-S^4^y%WTi4^(#efW_?i*ct5k*clx7*clx8e3?P(VVwBb8Jzjp z8C>|-8C?0;8Ql0-7~J_77(DnG7(79KXYgb8;`3()^`X7_*cp8I*cp8JSQz~HK>34( z!JjXH*#tbU$HEZ6$HEZE$HEZA$IcMU$HEW-wwr|^l#hiWjE|imoR6I$f{%qEl8=QU zijSQknvb0!hL43ImXC!Yj*p!oo{ya&fsdUbk&lHTiI0ULnU94bg^!&fm5-evjgOrn zosXR%gO7nBlMixUTNWQXLpC2fLk=H1LoOc+!#6G#hCDtNhI~Fy-21bDb(bN`Eqsu6Rx2NgH|3|)M|%-ww43_X0@4845Z41Iju4E=oE3={Y)7$)*DFihfOVVKM(#xRA?i+L&^ zALC z=VM`5z~{@nkS~DQojs6w5nmAVV!kkNTYm}PN9Y}cVhl_9#2A+Gi7_na6JvM}K1&MZ zA0~zsd`t{0K?@5Q85lTt7#LRZF)*y=V_;ar$H1_bkAYzw9|OaBJ_d#je4x3laORDC z5zL$TxEVI{MKW&zyC;g7jUkFznjwl=h9Qc1D_=D8HgI|ejorjBvopjnOEbiP<+k%h zG4J4GVlV~Q*`V?|mKiiRif~&TGaEx3vou2-xXrMW4|LWRs7=bku!}FAS)3uBS(+i9 zS%x8jc{g7o^Bz71hP`|Y4Ey+4820nAFdP7-Pc9aQI4%~3gM2IuhxnKn4ny4nI_F0W zbPgFGH^Wgr(D`0s49ECb7>g4AsK9UCSwXSKSK($G(!rr3_~jO zZaxNv6MQTTC!u-i6dw!2X+9Q)Gkh!zXZaWy&hfD@oabX*Z8u*?UL(!Obj>pm>6#IF)`c%`w!IS%3)?^$Ys9G$G~uh50u99m?atVn57x= zkitHS`7U1+^F6+g4EOo+K|^2+9~c-I9`G?SJmh0yc*MuV@R*N*;R!emK+?xkK9Jc3 z%)9xrnV<2AF+2ySA2Eg(d}0hQ`Er;87{Zyw7{ZyQ8N!)m7~B~?GvqVBf}6#{@S2Z_ z;SC=X!&|UBnHXZB>yO^?F)_Rcn=QuhflrL#BcB+i_|C_`@Pm(m;U^yx!!JH2hTnXk{%|of2SYKlG(#~stTGu(n0NCPF>mK& zV)(zH{N z>X@Y&>cDMp&|T>K{45Lt{45ND{FTf?{2+5`nRjznF$?ooGmG%oFpKho)}+=mb1-l) zi1CB$1eJsA4C4HtFymm5;Adx$9;XdgJ}3=t`Qb_QvFb_M}{b_PLy76uu976w^<76v(fcJNv)d447a1%A+ZQY;LL z{45Mg{B_LA{GhQWNE=v%A5_jwU{vK7WB3RV0Pf|WOn55Vs_&1W_IT9VRqpUWfo=-V{qjc zV{qe#%wvH3><;#KBeMrT1A`|&1A`Yo1A{j|3xf|o3xh8|3xgj&3xhv@2txor3qv43 z=p6T6<{gWCdO{Ok&OezMwEk@e7dyjFt|`pY3=9kz{5Kgg`B@mU_}Lk<`9bF_ zuruWFvoqxKvoqxJvoqxLvojR%vojR(vojR&vojR)vonev}t_(AJA=P)yZ)y;*Aw}QiG9@t)M&>RtT%@}B%T>(2t4?9B}KRZJ^D6cTgXJ%%Y z&n(R_ACyKIn)w$%?Gj_?;MZpWoio$PzmS=eVIi|L!$PU8iB2ySZ@w1q@i+?e5H~(Vh9)8emW(%2nL1_V+|3TwIpf!a|42zfp7?v_~Fo5Ji zeL;4Hetvd_3E;2;<#&)-AT^*>pAa>mG0chlAhG4lJYaq743qfT87A|C))|8IK+KuK z4?4RJv^N=)4`Jr4U}gpDVPOEBDF)hOG!<;tN@gyo_<8UhmFx`D_}Lkz^MlM{VStzg zGh-DqKUgiO56!{=Q$K?raz>Lf3+P^R7KUq}GX+6saf0sg1iJ;MA9M;H$S)B6Apd~o zRQlLh7-oXqvIZI+=;nd^1~a3HSq$7}1nn6BoioYJaEM8TVHUV-gOp9P`62i0&f#Zg zn9C1Z9}Ai@Wn$O{K0kzmVIDs>0|zrV!+d^7n{WX?X#9|cVIjX80~>=IgEWI11E{Qd z&%gk#mp?KvFnnTI%gljOj)7qjKWN-y9kVD-HSP?b8JHLr^D{9l;b&r4%Fo2GjGu*J zIX@G44Js&atl;Nn*vrVmu$YmBVI{vL!zzAmhSmJ*navnBFpJ?eSBzl||3ikg{E&KC zo`H#B9X}JpdVVH`4g3rY8~H(VPYev3z;z=7!)AU4hAsR|3|sj(GMh1MVg{{I1lh08 zB*w6fe>1ZHUb~zaw)2DblrS;;0{3Cq8FuiqGwkGNVb}%Ef18*C7`8BT<1_=L57eds z#V5!tP`GRbmm45AD1vXquaSY_3_kc)~Bn z@RVPS;Tiuy=I8to%rE#Om|yZAV&22Y#PEuriQzRr6T=&RCWg2ChndY7jzHs$o#7q- zQD#+~_D*4V&ktIIxr*Tf|4N3B;J5(A2`nx_@y5>ZiJzU}Ge2Z+>`w*;hA;dK3}5*f z7{2i{FnkAz^D}_c9w<(K@`L7}K|)#$7}{h0Tu>Oo0F9v)K-I(A50)I0R{#Z0R{$E0R{#(0R{$k0R{#R0R{$60R{#x z0m%Jc+yV>?JOWG%yaJ#xKfm6&J45yf-8BQ_FFo62QwoDQNpu7dz zC&IuWDZs!WB>=h+5)>vZ4AKH;m}POs2Phwb)(C*kn}y_2839n;jvOCi46*_djB)}X zyBHYc1y~pq1eh2U1sE8V1Q-~U1tJ(#1VDKTlE0o1>jWjN2whtpkR4C(@63>pFq44MKA3|ay#44}Bs7GPn}5ny4^6}Z66 ziBm6V?t_6rPk@0zU*ICMA|7?1^aI*I3A+c*K!BaWPymz$LHpN0?PV>d58(0yQvN*x z-FqPbX+Omkwn6Fd5;N|4<}x0+E6j`x z3=Av`SD85&t}vT3Le}AOL+^=kX94xk85qn3t}&Z2TxVuvU}3NjxB;eR8E!IjF@SE= z1dVOoVzv~x&TJ*X!eA}H$Y3MD$iT$K$Y3kLz+fl9!eB3Oo0*N_2D3TiRb~eP76wNF zNZQ%O$HL$waEDnCXBggQb{1e^a1j8FH8C=r=M!Ua6}ZXl2G#E_z{21m0P64DWj15D z$IQ=gk6D`G9=NRX6kudf1E1*)ntNqo@DgBQ@D^ZT@DX5V@D%{HZ`c|91lSq;1=tw^ zz-j+JGe0;_f%XrA`X=lQfdcFdK?3Xy!2;|IAp-0Spmsp006RmN06Rmt0Hkg30D5-A zABG3aYzz;Wr5PT8?N<|EV2FUGNkxX)43P5$L1E3!5DCtspl}mo&|-VQ93}98Ia+{) zAx40OAy$BcAx@x`L7jn#AzpxqAwhtNArTzspf(O@jU42>mn4wC1sE7o1Q-}3xfvKz z1sE981eh4o1=txf1lSp-GO#mb3a~R|380>pmkmmP0_+UA0_+TVptL5y&QKr#SD6C<73qW`BfZWUiKI^7NfQg}20JP5lQqI%~urt&Puro9WFflX=FflX zfX;nlXJ`>%XJ{2*XJ``ut-}D_J=Mt2F7S|<5qwtTa|T;@Ji+!*!rJhVy;&Us>|H;Fj0V=VUhql!(;(=hAE&h6JTeU zCcw@xU4V&Uh5!@8OaUf_SprN9vjvzK<_It`%oSi_m?r=##~}6VbryDp`2y?=3k291 z77DO4ED~U0SS-N8utb1~VW|KU!!iLT1|LQyhInRB*@S$)J3GU20npuaps)bdSD>;F z)RzXGvk3ApXgm;dUZFk{sNR3b9KcY@#EW!i1*FZ*z<`<#Kzl*h89?i~RtT^&tP}w4 zDJ^5-WN2qtC4d}8p!~0t^f%1sE7k34q4Fm>5nAFfp7FU}rch@RV7Afq~(i00YB$ z0S1N(0t^fn1sE7E2{15R7GPkwBEZ0KRe*uvng9dCbpZy38=$&VfPvwb00YBq0e0|N zn2HR~z~e)A1Q;0Z3NSF-69DDO=gj5|PnhouJYjwy@PzrHz!T<20#BG93p`O@M*ny8r{j4*>>-p8^aFzXTW(K~<1}K~0c>L0yo6K|}Bvv!>t+W-UPm25mtG1|2~L z231~Wkh26I6M1`9z321`K( z1}i}Z25UhE1{*;J23tV}20K9p275sU1_wa~21h{#1}8xV24_JA1{XmF23J7_1~)+l z26sUQ1`k0722Vi-1}{)p2r@AE2r@AE3NkSG2{JJF3ofuT~6fuTx}fuUNE zfuTl_fuUBAfuT;2fuUZIfuTW=fuT{5fuTu|fuUKDfuTi^fuU89fuT*1f#D?R9za0` zh7LgnhE72ShAu${hHgOyh8{r%hF(DihCYxz{0t2Jf(#531Q{463NkQE0@=gE&M;Y! zfnkau1H)8728L;Z3=Go+85m{=GBC^(WMG&j$iOgLkbz;2AOpi(K?a6-f(#7v1sNC? z2r@7%6l7pnB*?(9Sdf8Xi68^RQb7iWWr7S0%LN%2RtPdMtQ2HmSS857uo`3+Xih?q zfnlv61H(E&28Q*53=A6t85lMSGB9isWMJ4V$iT2gkbz;VAOpiTK?a8Hf(#5h1Q{51 z3NkS45@cuCEy%#IN05PGuOI`%K0yYC{elb(2Lu@y4hk|b91>(;I4sD(a72)S;iw=3 z!!bbyhU1{L4GI@Q28L6D3=F3Q85qt8GBBJ4#U&#H!#P0)hVz093>O3$7%mDjFkBL3 zV7M&Ez;H#7f#Iqk1H&~z28Qc`3=B5}85nK~GBDf{WMH@r$|s=wB*?&UPmqD(z90j` z13?Cchk^_Yj|3SQ9t$!sJP~AIcq+)i@Jx__;kh6K!wW$MhL?g246g(k7+wo9FuW0D zV0bIY!0=9xf#JO%1H%VF28NG<3=E$H85lkbGBA7*WMKFz$iVOol%9AQ7`_WKF#Hf? zVE8G>!0=1ZmH~8z#cyaHG8Y8ZQJ}K=6}Wx(ko7f`e#0!y0Ku@e;+vSBGyf5M$^2LF zCG$VQm(2eKUotZYy<}z-ddbWr^pcrb=p{3Y&`V}kp_j~TLNA%wgNC+`7#51xpND8qtNC~ksNDHwu$Oy4B$O^GD z$O*AC$P2MECCMtH?9xFiA1!FiA7$FhTsz&Y&a2&Y%ld2RbK+N00JU@Qb#+hiid#9%7K!eA!E&R{MC>Z5?xHnTHW2)zfdQMQEJ z{ehW>;RCZY!v|j*elNf>c6rx*a)#O*b04Q7G+>!uoGfp zuoq%ya1df*a1>%a1ml+a1~-=a1#QZ-NwY=F2uxefsuv5Lx_dJQ;3DZ zONfQRTL^StISYf25DSB^5IcjP5Icjv&?jaA@Hh(#Lx2zqL!b}~Ly!;)L$DA#Lx_+L zQ>YLNLm0?RA$EocA;_NPNFjEHC?R%+Xd%$}0VsSvGlTZhgU0-hv9mD52(d843cY2H z6Z*o;!|;V!n&Au7pP;Yk$F4kJLWtgnA<>Z`ox?sq{CFi z_<^}VNQ|LSh=rj@h=rk8=qs}o`w!+4p`Xkw3_qEr8GeHOS1KgVP{;6#nU&!evoymm zuvnQ8WPJM_!*6CbhTqK648OtRv=2hCj^G41d6KRYH*c#qSvY zGP5!KVFsPcQ4KbmfuTl-fuRoB$1%PYi4cg;*Fa^RqBa5@KPv4(FinVoVY(0l!wew?hM7VP46}q77-kDGFw7BRV3;e!z%WmUfnmN71H%F#28M+~ z3=E5e7#J1{F)%C$?Q7&ZwpFl-iL zVAvwWz_3+_fnl2v1H*P928JC%3=BJk7#Ma5F)-{FVqn-K#K5puh=pOF5EH|GQ28Om z#BflEiQ$kCsGMeCI4s1#a72iO;iwP;!!aQShT}pE3@3yb7)}Z?Fq{%%VmK|t!f*zZ z|Abf=&Iz$FoEKtYxFE#Na8Zbb;Swk;h1eOc2(dF<6=G+&1`1Ol76x@tyH|*T;ieE1 z!!02uhTB3+40nVW814#*G29apW4JFQ#_&K$jNze>7{enWF^0!NVhm4B6mi7`AA z5@UESB*ySUNQ~j75Cg+2Atr{`LQD*Agcum!3NbRg6Jlg|FT}v`L5PXrqYw+jCn0u* z&q7QLUxb(#z6vohd=p|~_%6i2@I#1+<);uk!!IGo_|0!228KUE3=DsTm>B*EF){oX zVq#zrW@2CzW@2CxW@2C#W?^6vW?^6zW@lg%2HgqF#K11h#K0lU#K0-c#K0xY#K0}g z#K0rWz`!faz`!TWz`!rez#t&Zz#u5h!XPBf&LAwz!XP5d!XPTl!XPHh#2_xr#2_Ke zz#u8i#2_Wi#2_uq#2_Qg#2_oo#2_ck&LA($&Y&R7&Y&pF&Y&dB&Y&#J!k{9|$e=3B zz@R3~#Go$B&Y&U8#PA2S##ESzK}(o{L0g!KK}VQ@L06c8K~I>SL0_1i!9cj3!BCi; z!AO{$!C07q!9Md_fx%UniNQ@6H22ER;0_WOW?=9XW?=9VW?=9Z zW@hmbW@YgeW@GUaW@qsiW?>0n$YlVnF$)l8W(X8!W(X2yWC#{!WC#&vWC#_GW(J*k zQozi_P{_>90-D={oIk?D0$N*Bz|6u>$jr;a%)r6`VY4vYV&!82?YV)dV`sR<%FhB? z--O_U?l}-(0qvU%6V3RDLW8Ty!EcViiV#Xx72hYPba zLL31&JETFwa!3-)4QNr#F(hMOC8<;`&W#uzR3+FS(2YO zBFxTED$LGMCd|%IF1&@YLRgrkQdoqgN>~)CpPivvn4O_Un4O_kn4O_cn4O_sn4O_P z7*rp#Gc*dbGc*aaGc*fB#%fxG85mlH85r7xA#)1t!VC-@!VC=kBb*eA@+uwR&+ z;eaqZ!$DzohC{;a42Ol;8IB0EGaMCWXE-Lz&Tw3qo#BKqJHts~7KT&8>hAYBM3~j=o`}sg?&P*7t3WqRU6P9496lP$!F3iMmLl|;Dd@COl!%bl(20cC| zhFii+47Y`u814u&G28`*JqrT^6Fb8rCUyo(Hg<-4!t4z9!RZ4O|B$ltfiMHZLr@wK zW?*!t4w$gh6dkCWe>73=FS8X@s4f;k7V3!y93ChPT3? zHH2a;3<99BT5*;D21yoH21yoa21#%{fYJh}&VDB>#lplO$pSi^$DC1`g&E9dVR$bL zYFEj?`6l4=XJq0055l0Zl!Nm>3bQbL5|)SaKMS)kBr__&`4IhzEG$s-zX-E1d=-vh z{3d*h8MNEfj7tgJ&hTMkVfZf0!tg_wh2f_#3&R{%7KXXtyXisqxGA%M)~AEcr#iq4 zx+RjGVGXMai#WIp0gdB=_9KAibQu`7F)=Xw5(f1zAm^0+7G`1K1&?#HF#Hj2Vz6U@ z?5Ek!q|EYHScwHRXZBARw627K;Q$jm!zxzL9wJp1GX^ylb_Owq|H3Q`3?eKHj3SV9 z#KaK6%p{`D!YrZzzA?{?L5qb&L>m;o41o+fEUY3rENmiT4D2F|3>+e$y#`DSoFYsN zTp~;i+#+HOJR&R%ydo?Nd?I2D{32ou0wQ7zf+AuJLL#~>!XmmXA|kphq9S4pVj>aD z;vx(T5+a~EMLiZt5q%aZ5e*h;5d#)81|1eX1|1e@1|1gAdLJ1PZU$Kq9hMI8y1-8i zav}^2@*7|caLYjngIEJU~&EJZ+N02hOmhzSd5|56g8DT@e$DT_3NDYy-m z$p~6+$G~7M!o*-B0vd1SVUT3tVK~OY!(c1I!(b=E!(cDM!{8vo!{8_aYFjfgIEg^o zug)S&41o-0EG{DEEG!J>EYb|-EHVtHEUqG^EN&teEW8XBEYb`XETB30N+B@@cM;I} zaZC&zB1{aPA`A>(B9J=6Tf~yZN5qoFSA?6vPsECag~5tNn!yV0zB&e777hko7HI}u zs2Br-zlaz^fCvjiAlM90+wLGUAHzXrX@-N~wm!sP)-1dExEX>#=7Qa+#u6+d#tt_1X@!83MU&DGX`5076w}u zX$D&s83s_ig8EK&EX)jcEYb{iVE3`G*|R|QmWeS$h=?&niij~piHI>oi+o~;5dr0I z7KT_6$oyfPhy#lm188m-R9-l;urWBYNHaKs(^UrpH-iTk3q!mJ14Dv{AqxwGJxij9 zElZM!Jxj8PElY|>7^50e9#mw2>^n^rVP{AaVP{AeVQ0t?f!tS^DZ7GY;-5piK*W^iGVW^e(kZ54545n*s;k!ElO^Few+ zL$?SMLyrg(L$3$}L!SscL%#?+!vqm_hKV9f s43k7abHic`lSSNE*cjYcq#4|xW`g>gObk;*K Date: Fri, 17 Oct 2025 23:12:10 +0200 Subject: [PATCH 02/13] feat: defined clue data resource --- modules/you_done_it/clue_data.cpp | 46 +++++++++++++++++++++++++++++++ modules/you_done_it/clue_data.h | 26 +++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 modules/you_done_it/clue_data.cpp create mode 100644 modules/you_done_it/clue_data.h diff --git a/modules/you_done_it/clue_data.cpp b/modules/you_done_it/clue_data.cpp new file mode 100644 index 00000000..0fd87642 --- /dev/null +++ b/modules/you_done_it/clue_data.cpp @@ -0,0 +1,46 @@ +#include "clue_data.h" +#include "you_done_it/macros.h" +#include "you_done_it/ydi_client.h" +#include + +void ClueData::_bind_methods() { + BIND_HPROPERTY(Variant::INT, id, PROPERTY_HINT_ENUM, NetworkData::ClueID_hint()); +} + +void ClueData::set_revealed(bool value) { + this->revealed = value; +} + +void ClueData::set_id(NetworkData::ClueID id) { + this->id = id; +} + +NetworkData::ClueID ClueData::get_id() const { + return this->id; +} + +void ClueData::reveal() { + if (this->id == NetworkData::CLUE_MAX) { + print_error("Attempt to reveal CLUE_MAX, invalid state, aborting"); + abort(); + } + if (this->revealed) { + print_error("Attempt to reveal clue that's already revealed, returning without action"); + return; + } + this->revealed = true; + ydi::client::send::reveal_clue(this->id); +} + +bool ClueData::get_revealed() const { + return this->revealed; +} + +void ClueData::set_image(Ref image) { + this->image = image; + // TODO: Sync to server +} + +Ref ClueData::get_image() const { + return this->image; +} diff --git a/modules/you_done_it/clue_data.h b/modules/you_done_it/clue_data.h new file mode 100644 index 00000000..62547959 --- /dev/null +++ b/modules/you_done_it/clue_data.h @@ -0,0 +1,26 @@ +#pragma once + +#include "you_done_it/ydi_networking.h" +#include +#include + +class ClueData : public Resource { + GDCLASS(ClueData, Resource); + static void _bind_methods(); + +protected: + void set_revealed(bool value); + +public: + void set_id(NetworkData::ClueID id); + NetworkData::ClueID get_id() const; + void reveal(); + bool get_revealed() const; + void set_image(Ref image); + Ref get_image() const; + +private: + NetworkData::ClueID id{ NetworkData::CLUE_MAX }; + bool revealed{ false }; + Ref image{}; +}; From 075878ec172f68f06c8ed4867313c7bb7f6b5dd6 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 17 Oct 2025 23:24:39 +0200 Subject: [PATCH 03/13] chore: adjusted network test --- flatscreen-project/network_test.tscn | 42 ++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/flatscreen-project/network_test.tscn b/flatscreen-project/network_test.tscn index 744faebe..04b2bf72 100644 --- a/flatscreen-project/network_test.tscn +++ b/flatscreen-project/network_test.tscn @@ -1,4 +1,13 @@ -[gd_scene load_steps=2 format=3 uid="uid://bbvpj46frv0ho"] +[gd_scene load_steps=3 format=3 uid="uid://bbvpj46frv0ho"] + +[sub_resource type="GDScript" id="GDScript_yo4i2"] +script/source = "extends ServerNode + +@onready var revealed_clues_label := %RevealedClues + +func _on_clue_revealed(id: int) -> void: + revealed_clues_label.text += \"\\n{}\" % id +" [sub_resource type="GDScript" id="GDScript_78ugl"] script/source = "extends ClientNode @@ -16,6 +25,10 @@ func _on_connection_changed(connected: int) -> void: client_status.text = \"CONNECTED\" elif (connected == NetworkData.CONNECTION_AUTHENTICATED): client_status.text = \"AUTHENTICATED\" + + +func _on_line_edit_text_submitted(new_text: String) -> void: + pass " [node name="Control" type="Control"] @@ -27,6 +40,7 @@ grow_horizontal = 2 grow_vertical = 2 [node name="ServerNode" type="ServerNode" parent="."] +script = SubResource("GDScript_yo4i2") [node name="ClientNode" type="ClientNode" parent="."] script = SubResource("GDScript_78ugl") @@ -43,15 +57,21 @@ grow_vertical = 2 layout_mode = 2 size_flags_horizontal = 3 -[node name="Header" type="Label" parent="HBoxContainer/ServerInfo"] +[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/ServerInfo"] layout_mode = 2 -text = "Server: OFF" -[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/ServerInfo/Header"] -layout_mode = 0 -offset_top = -312.0 -offset_right = 574.0 -offset_bottom = 336.0 +[node name="Header" type="Label" parent="HBoxContainer/ServerInfo/VBoxContainer"] +layout_mode = 2 +text = "Server:" + +[node name="ServerStatus" type="Label" parent="HBoxContainer/ServerInfo/VBoxContainer"] +layout_mode = 2 +text = "DISCONNECTED" + +[node name="RevealedClues" type="Label" parent="HBoxContainer/ServerInfo/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "Revealed Clues:" [node name="ClientInfo" type="PanelContainer" parent="HBoxContainer"] layout_mode = 2 @@ -69,4 +89,10 @@ unique_name_in_owner = true layout_mode = 2 text = "DISCONNECTED" +[node name="LineEdit" type="LineEdit" parent="HBoxContainer/ClientInfo/VBoxContainer"] +layout_mode = 2 +placeholder_text = "0" + +[connection signal="clue_revealed" from="ServerNode" to="ServerNode" method="_on_clue_revealed"] [connection signal="connection_changed" from="ClientNode" to="ClientNode" method="_on_connection_changed"] +[connection signal="text_submitted" from="HBoxContainer/ClientInfo/VBoxContainer/LineEdit" to="ClientNode" method="_on_line_edit_text_submitted"] From cc6d326ef5a522cdfeba3f824227be0e8896eb34 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 17 Oct 2025 23:25:31 +0200 Subject: [PATCH 04/13] feat: improved error checking in ydi::client --- modules/you_done_it/ydi_client.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/you_done_it/ydi_client.cpp b/modules/you_done_it/ydi_client.cpp index be03ffc2..9931b9e5 100644 --- a/modules/you_done_it/ydi_client.cpp +++ b/modules/you_done_it/ydi_client.cpp @@ -137,8 +137,10 @@ NetworkData::ConnectionStatus status() { namespace send { void reveal_clue(NetworkData::ClueID id) { - std::scoped_lock lock{ connection->mtx }; - multipart(NetworkData::MSG_REVEAL, id).send(*connection->socket); + if (connection) { + std::scoped_lock lock{ connection->mtx }; + multipart(NetworkData::MSG_REVEAL, id).send(*connection->socket); + } } } //namespace send } //namespace ydi::client From b475472544ec97656b7c0d34b1238f0b75a58429 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 17 Oct 2025 23:26:39 +0200 Subject: [PATCH 05/13] feat: started implementing photos --- modules/you_done_it/clue_finder.cpp | 14 ++++++++++++-- modules/you_done_it/clue_finder.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/you_done_it/clue_finder.cpp b/modules/you_done_it/clue_finder.cpp index 50afb267..727eb253 100644 --- a/modules/you_done_it/clue_finder.cpp +++ b/modules/you_done_it/clue_finder.cpp @@ -1,10 +1,14 @@ #include "clue_finder.h" -#include "scene/main/node.h" +#include "ydi_client.h" +#include "you_done_it/client_node.h" #include +#include ClueFinder *ClueFinder::singleton_instance{ nullptr }; -void ClueFinder::_bind_methods() {} +void ClueFinder::_bind_methods() { + ClassDB::bind_method(D_METHOD("take_photo"), &ClueFinder::take_photo); +} void ClueFinder::enter_tree() { if (singleton_instance == nullptr) { @@ -52,3 +56,9 @@ ClueMarker *ClueFinder::find_current_clue() { void ClueFinder::register_clue_marker(ClueMarker *marker) { this->clue_markers.insert(marker); } + +void ClueFinder::take_photo() { + if (ClueMarker * found{ find_current_clue() }) { + ClientNode::get_singleton()->get_clue(found->get_clue_id())->reveal(); + } +} diff --git a/modules/you_done_it/clue_finder.h b/modules/you_done_it/clue_finder.h index b33dc2b2..e24450f5 100644 --- a/modules/you_done_it/clue_finder.h +++ b/modules/you_done_it/clue_finder.h @@ -18,6 +18,7 @@ public: static ClueFinder *get_singleton(); ClueMarker *find_current_clue(); void register_clue_marker(ClueMarker *marker); + void take_photo(); private: HashSet clue_markers{}; From d3b6ee7d831a2b39332046e21185c7d28a362bda Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 17 Oct 2025 23:26:54 +0200 Subject: [PATCH 06/13] feat: disabled vsync for vr game --- vr-project/project.godot | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vr-project/project.godot b/vr-project/project.godot index c658dcf8..24883bc4 100644 --- a/vr-project/project.godot +++ b/vr-project/project.godot @@ -15,6 +15,10 @@ run/main_scene="uid://b5m5h30gog3pu" config/features=PackedStringArray("4.5", "Forward Plus") config/icon="res://icon.svg" +[display] + +window/vsync/vsync_mode=0 + [rendering] lights_and_shadows/directional_shadow/size=8192 From 5f34fe13f6f26a08aa1a56d837f02bcba15c61cc Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 17 Oct 2025 23:27:17 +0200 Subject: [PATCH 07/13] feat: registering clue data --- modules/you_done_it/register_types.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/you_done_it/register_types.cpp b/modules/you_done_it/register_types.cpp index fe1ed098..c72fd6a1 100644 --- a/modules/you_done_it/register_types.cpp +++ b/modules/you_done_it/register_types.cpp @@ -1,11 +1,12 @@ #include "register_types.h" #include "client_node.h" -#include "clue_marker.h" -#include "server_node.h" -#include "ydi_networking.h" -#include "ydi_vr_origin.h" +#include "you_done_it/clue_data.h" #include "you_done_it/clue_finder.h" +#include "you_done_it/clue_marker.h" +#include "you_done_it/server_node.h" +#include "you_done_it/ydi_networking.h" +#include "you_done_it/ydi_vr_origin.h" #include void initialize_you_done_it_module(ModuleInitializationLevel p_level) { @@ -18,6 +19,7 @@ void initialize_you_done_it_module(ModuleInitializationLevel p_level) { ClassDB::register_class(); ClassDB::register_class(); ClassDB::register_class(); + ClassDB::register_class(); } void uninitialize_you_done_it_module(ModuleInitializationLevel p_level) { From 3ff4935e021b6567e83d812253d504ac91b1db76 Mon Sep 17 00:00:00 2001 From: Sara Date: Tue, 21 Oct 2025 17:39:21 +0200 Subject: [PATCH 08/13] feat: added placeholder camera model --- vr-project/3D Models/camera_placeholder.blend | Bin 483788 -> 448992 bytes vr-project/project.godot | 2 ++ vr-project/vr_base.tscn | 13 +++++++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/vr-project/3D Models/camera_placeholder.blend b/vr-project/3D Models/camera_placeholder.blend index f92bac24e649255e200216840fb8e7ccddf0812a..ba265e9fd634bc7917b18a822328652e55a95650 100644 GIT binary patch delta 56123 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 diff --git a/vr-project/project.godot b/vr-project/project.godot index 24883bc4..26ad616d 100644 --- a/vr-project/project.godot +++ b/vr-project/project.godot @@ -17,6 +17,8 @@ config/icon="res://icon.svg" [display] +window/size/viewport_width=1440 +window/size/viewport_height=1600 window/vsync/vsync_mode=0 [rendering] diff --git a/vr-project/vr_base.tscn b/vr-project/vr_base.tscn index f317419c..d9b06c8e 100644 --- a/vr-project/vr_base.tscn +++ b/vr-project/vr_base.tscn @@ -1,4 +1,6 @@ -[gd_scene load_steps=2 format=3 uid="uid://ctf3dsro4aqon"] +[gd_scene load_steps=3 format=3 uid="uid://ctf3dsro4aqon"] + +[ext_resource type="PackedScene" uid="uid://cq0mv68n1jacx" path="res://3D Models/camera_placeholder.blend" id="1_bibh8"] [sub_resource type="CylinderMesh" id="CylinderMesh_y71p3"] top_radius = 0.05 @@ -7,6 +9,8 @@ height = 0.05 [node name="VROrigin" type="VROrigin"] +[node name="ClientNode" type="ClientNode" parent="."] + [node name="XRCamera3D" type="XRCamera3D" parent="."] current = true @@ -19,7 +23,8 @@ mesh = SubResource("CylinderMesh_y71p3") [node name="RightController" type="XRController3D" parent="."] tracker = &"right_hand" -[node name="MeshInstance3D" type="MeshInstance3D" parent="RightController"] -mesh = SubResource("CylinderMesh_y71p3") +[node name="ClueFinder" type="ClueFinder" parent="RightController"] +transform = Transform3D(1, 0, 0, 0, -0.25849885, -0.96601164, 0, 0.96601164, -0.25849885, -0.06272071, -0.034197945, 0.03913331) -[node name="ClientNode" type="ClientNode" parent="."] +[node name="camera_placeholder" parent="RightController/ClueFinder" instance=ExtResource("1_bibh8")] +transform = Transform3D(1, 0, 0, 0, -1, -8.742278e-08, 0, 8.742278e-08, -1, 0.03785751, -0.042704105, 1.8867304e-08) From 46d8749c2cc26c01fada9de9960770f669a6d0ae Mon Sep 17 00:00:00 2001 From: Sara Date: Tue, 21 Oct 2025 22:57:28 +0200 Subject: [PATCH 09/13] feat: implemented ClueDB, ClueData and ClueID --- modules/you_done_it/client_node.cpp | 19 ++------ modules/you_done_it/clue_data.cpp | 4 +- modules/you_done_it/clue_db.cpp | 62 ++++++++++++++++++++++++++ modules/you_done_it/clue_db.h | 23 ++++++++++ modules/you_done_it/clue_finder.cpp | 19 +++++++- modules/you_done_it/clue_finder.h | 2 + modules/you_done_it/clue_marker.cpp | 36 ++++++++++++--- modules/you_done_it/clue_marker.h | 13 ++++-- modules/you_done_it/register_types.cpp | 4 ++ vr-project/clue_db.tres | 10 +++++ 10 files changed, 165 insertions(+), 27 deletions(-) create mode 100644 modules/you_done_it/clue_db.cpp create mode 100644 modules/you_done_it/clue_db.h create mode 100644 vr-project/clue_db.tres diff --git a/modules/you_done_it/client_node.cpp b/modules/you_done_it/client_node.cpp index d131f88b..e61d6fec 100644 --- a/modules/you_done_it/client_node.cpp +++ b/modules/you_done_it/client_node.cpp @@ -1,11 +1,13 @@ #include "client_node.h" #include "ydi_client.h" +#include ClientNode *ClientNode::singleton_instance{ nullptr }; String const ClientNode::sig_connection_changed{ "connection_changed" }; void ClientNode::_bind_methods() { ClassDB::bind_method(D_METHOD("connect_to_server", "server_url"), &self_type::connect_to_server); + ADD_SIGNAL(MethodInfo(sig_connection_changed, PropertyInfo(Variant::INT, "connected", PROPERTY_HINT_ENUM, "Disconnected,Connected,Authenticated"))); } @@ -37,25 +39,12 @@ void ClientNode::_notification(int what) { if (Engine::get_singleton()->is_editor_hint()) { return; } - switch (what) { - case NOTIFICATION_ENTER_TREE: - set_process(true); - return; - case NOTIFICATION_PROCESS: - process(); - return; - case NOTIFICATION_EXIT_TREE: - exit_tree(); - return; - default: - return; - } } ClientNode *ClientNode::get_singleton() { return singleton_instance; } -void ClientNode::connect_to_server(String const &server) { - ydi::client::connect(server); +void ClientNode::connect_to_server(String const &url) { + ydi::client::connect(url); } diff --git a/modules/you_done_it/clue_data.cpp b/modules/you_done_it/clue_data.cpp index 0fd87642..8be71c2b 100644 --- a/modules/you_done_it/clue_data.cpp +++ b/modules/you_done_it/clue_data.cpp @@ -29,7 +29,9 @@ void ClueData::reveal() { return; } this->revealed = true; - ydi::client::send::reveal_clue(this->id); + if (ydi::client::status() == NetworkData::CONNECTION_AUTHENTICATED) { + ydi::client::send::reveal_clue(this->id); + } } bool ClueData::get_revealed() const { diff --git a/modules/you_done_it/clue_db.cpp b/modules/you_done_it/clue_db.cpp new file mode 100644 index 00000000..ff20dbf4 --- /dev/null +++ b/modules/you_done_it/clue_db.cpp @@ -0,0 +1,62 @@ +#include "clue_db.h" +#include "core/io/resource_loader.h" +#include "you_done_it/clue_data.h" +#include "you_done_it/ydi_networking.h" + +Ref ClueDB::singleton_instance{ nullptr }; + +void ClueDB::_bind_methods() { + BIND_HPROPERTY(Variant::ARRAY, clues, PROPERTY_HINT_ARRAY_TYPE, vformat("%s/%s:ClueData", Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE)); +} + +void ClueDB::ensure_data_valid() { + this->clues.resize_initialized(this->clues.capacity()); + for (int i{ 0 }; i < NetworkData::CLUE_MAX; ++i) { + if (!this->clues[i].is_valid()) { + this->clues[i].instantiate(); + } + this->clues[i]->set_id((NetworkData::ClueID)i); + } +} + +ClueDB::~ClueDB() { + if (singleton_instance == this) { + singleton_instance = nullptr; + } +} + +Ref &ClueDB::get_singleton() { + if (!singleton_instance.is_valid()) { + singleton_instance = Ref(ResourceLoader::load("res://clue_db.tres")); + } + return singleton_instance; +} + +void ClueDB::set_clues(Array data) { + for (Variant value : data) { + Ref clue{ Object::cast_to(value) }; + if (clue.is_valid()) { + NetworkData::ClueID id{ clue->get_id() }; + if (id >= 0 && id < NetworkData::CLUE_MAX) { + this->clues[clue->get_id()] = clue; + } else { + print_error(vformat("attempt to insert clue of id %s into db (min 0 max %s)", id, NetworkData::CLUE_MAX)); + } + } + } + ensure_data_valid(); +} + +Array ClueDB::get_clues() { + ensure_data_valid(); + Array data{}; + for (int i{ 0 }; i < NetworkData::CLUE_MAX; ++i) { + data.push_back(this->clues[i]); + } + return data; +} + +Ref ClueDB::get_clue(NetworkData::ClueID id) { + ensure_data_valid(); + return this->clues[id]; +} diff --git a/modules/you_done_it/clue_db.h b/modules/you_done_it/clue_db.h new file mode 100644 index 00000000..cad0b130 --- /dev/null +++ b/modules/you_done_it/clue_db.h @@ -0,0 +1,23 @@ +#pragma once + +#include "core/io/resource.h" +#include "core/templates/fixed_vector.h" +#include "ydi_networking.h" +#include "you_done_it/clue_data.h" + +class ClueDB : public Resource { + GDCLASS(ClueDB, Resource); + static void _bind_methods(); + static Ref singleton_instance; + void ensure_data_valid(); + +public: + virtual ~ClueDB(); + static Ref &get_singleton(); + void set_clues(Array data); + Array get_clues(); + Ref get_clue(NetworkData::ClueID id); + +private: + FixedVector, NetworkData::CLUE_MAX> clues{}; +}; diff --git a/modules/you_done_it/clue_finder.cpp b/modules/you_done_it/clue_finder.cpp index 727eb253..62a30fc1 100644 --- a/modules/you_done_it/clue_finder.cpp +++ b/modules/you_done_it/clue_finder.cpp @@ -1,6 +1,8 @@ #include "clue_finder.h" +#include "scene/3d/xr/xr_nodes.h" #include "ydi_client.h" #include "you_done_it/client_node.h" +#include "you_done_it/clue_db.h" #include #include @@ -16,6 +18,9 @@ void ClueFinder::enter_tree() { } else { queue_free(); } + if (XRController3D * controller{ cast_to(get_parent()) }) { + controller->connect("button_pressed", callable_mp(this, &self_type::on_button_pressed)); + } } void ClueFinder::exit_tree() { @@ -24,6 +29,12 @@ void ClueFinder::exit_tree() { } } +void ClueFinder::on_button_pressed(String button) { + if (button == "trigger_click") { + take_photo(); + } +} + void ClueFinder::_notification(int what) { if (Engine::get_singleton()->is_editor_hint()) { return; @@ -57,8 +68,14 @@ void ClueFinder::register_clue_marker(ClueMarker *marker) { this->clue_markers.insert(marker); } +void ClueFinder::remove_clue_marker(ClueMarker *marker) { + this->clue_markers.erase(marker); +} + void ClueFinder::take_photo() { + print_line("TAKING PHOTO"); if (ClueMarker * found{ find_current_clue() }) { - ClientNode::get_singleton()->get_clue(found->get_clue_id())->reveal(); + found->reveal(); + print_line("FOUND MARKER: ", found->get_path()); } } diff --git a/modules/you_done_it/clue_finder.h b/modules/you_done_it/clue_finder.h index e24450f5..f0609bd0 100644 --- a/modules/you_done_it/clue_finder.h +++ b/modules/you_done_it/clue_finder.h @@ -10,6 +10,7 @@ class ClueFinder : public Node3D { static ClueFinder *singleton_instance; void enter_tree(); void exit_tree(); + void on_button_pressed(String button); protected: void _notification(int what); @@ -18,6 +19,7 @@ public: static ClueFinder *get_singleton(); ClueMarker *find_current_clue(); void register_clue_marker(ClueMarker *marker); + void remove_clue_marker(ClueMarker *marker); void take_photo(); private: diff --git a/modules/you_done_it/clue_marker.cpp b/modules/you_done_it/clue_marker.cpp index c8201423..96dd26fa 100644 --- a/modules/you_done_it/clue_marker.cpp +++ b/modules/you_done_it/clue_marker.cpp @@ -1,4 +1,5 @@ #include "clue_marker.h" +#include "core/config/engine.h" #include "macros.h" #include "you_done_it/clue_finder.h" #include "you_done_it/ydi_networking.h" @@ -7,6 +8,29 @@ void ClueMarker::_bind_methods() { BIND_HPROPERTY(Variant::INT, clue_id, PROPERTY_HINT_ENUM, NetworkData::ClueID_hint()); } +void ClueMarker::enter_tree() { + ClueFinder::get_singleton()->register_clue_marker(this); +} + +void ClueMarker::exit_tree() { + ClueFinder::get_singleton()->remove_clue_marker(this); +} + +void ClueMarker::_notification(int what) { + if (Engine::get_singleton()->is_editor_hint()) { + return; + } + switch (what) { + case NOTIFICATION_ENTER_TREE: + enter_tree(); + return; + case NOTIFICATION_EXIT_TREE: + exit_tree(); + default: + return; + } +} + bool ClueMarker::is_visible() const { Transform3D const viewpoint{ ClueFinder::get_singleton()->get_global_transform() }; Basis const basis{ viewpoint.get_basis() }; @@ -16,13 +40,11 @@ bool ClueMarker::is_visible() const { return false; } Vector3 const transformed_dir{ pos_transformed.normalized() }; - if (Math::abs(transformed_dir.signed_angle_to({ 0, 0, 1 }, { 0, 1, 0 })) > Math::PI / 4.0) { - return false; - } - if (Math::abs(transformed_dir.signed_angle_to({ 0, 0, 1 }, { 1, 0, 0 })) > Math::PI / 4.0) { - return false; - } - return true; + return Math::abs(transformed_dir.x) < 0.5 || Math::abs(transformed_dir.y) < 0.5; +} + +void ClueMarker::reveal() { + ClueDB::get_singleton()->get_clue(this->id)->reveal(); } void ClueMarker::set_clue_id(NetworkData::ClueID id) { diff --git a/modules/you_done_it/clue_marker.h b/modules/you_done_it/clue_marker.h index 1494397a..0a6493a1 100644 --- a/modules/you_done_it/clue_marker.h +++ b/modules/you_done_it/clue_marker.h @@ -1,14 +1,21 @@ #pragma once +#include "clue_db.h" #include "ydi_networking.h" -#include +#include -class ClueMarker : public Node3D { - GDCLASS(ClueMarker, Node3D); +class ClueMarker : public Marker3D { + GDCLASS(ClueMarker, Marker3D); static void _bind_methods(); + void enter_tree(); + void exit_tree(); + +protected: + void _notification(int what); public: bool is_visible() const; + void reveal(); void set_clue_id(NetworkData::ClueID id); NetworkData::ClueID get_clue_id() const; diff --git a/modules/you_done_it/register_types.cpp b/modules/you_done_it/register_types.cpp index c72fd6a1..76544ff0 100644 --- a/modules/you_done_it/register_types.cpp +++ b/modules/you_done_it/register_types.cpp @@ -20,10 +20,14 @@ void initialize_you_done_it_module(ModuleInitializationLevel p_level) { ClassDB::register_class(); ClassDB::register_class(); ClassDB::register_class(); + ClassDB::register_class(); } void uninitialize_you_done_it_module(ModuleInitializationLevel p_level) { if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { return; } + if (ClueDB::get_singleton().is_valid()) { + ClueDB::get_singleton().unref(); + } } diff --git a/vr-project/clue_db.tres b/vr-project/clue_db.tres new file mode 100644 index 00000000..fdb7cc5b --- /dev/null +++ b/vr-project/clue_db.tres @@ -0,0 +1,10 @@ +[gd_resource type="ClueDB" load_steps=3 format=3 uid="uid://dlf8dxiter8b8"] + +[sub_resource type="ClueData" id="ClueData_kxjsf"] +id = 0 + +[sub_resource type="ClueData" id="ClueData_du6rq"] +id = 1 + +[resource] +clues = [SubResource("ClueData_kxjsf"), SubResource("ClueData_du6rq")] From c01fe1f3e56aa7bf5e4802f8c3c31ae9c1f275a4 Mon Sep 17 00:00:00 2001 From: Sara Date: Tue, 21 Oct 2025 23:15:26 +0200 Subject: [PATCH 10/13] chore: cleanup after Clue* implementation --- vr-project/scenes/game_scene.tscn | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/vr-project/scenes/game_scene.tscn b/vr-project/scenes/game_scene.tscn index a71de797..fc3133b9 100644 --- a/vr-project/scenes/game_scene.tscn +++ b/vr-project/scenes/game_scene.tscn @@ -34,16 +34,6 @@ glow_enabled = true [node name="Root" type="Node3D"] [node name="VROrigin" parent="." instance=ExtResource("2_onqr8")] -_import_path = NodePath("") -unique_name_in_owner = false -process_mode = 0 -process_priority = 0 -process_physics_priority = 0 -process_thread_group = 0 -physics_interpolation_mode = 0 -auto_translate_mode = 0 -editor_description = "" -script = null [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_bw6k5") @@ -64,17 +54,7 @@ shadow_blur = 0.635 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.27989578, 0, 1.4924412) [node name="ClueMarker" type="ClueMarker" parent="."] -_import_path = NodePath("") -unique_name_in_owner = false -process_mode = 0 -process_priority = 0 -process_physics_priority = 0 -process_thread_group = 0 -physics_interpolation_mode = 0 -auto_translate_mode = 0 -editor_description = "" clue_id = 0 -script = null [node name="Stapler" parent="." instance=ExtResource("3_ycayy")] transform = Transform3D(-1.8868132, 0, -1.8585076, 0, 2.6484175, 0, 1.8585076, 0, -1.8868132, -1.2748423, 0.9004388, 2.876501) From ae96216b1ccc2ce2af3e892c17da2dd69e596493 Mon Sep 17 00:00:00 2001 From: Sara Date: Tue, 21 Oct 2025 23:15:46 +0200 Subject: [PATCH 11/13] fix: removed ClueDB unref causing post-exit crash --- modules/you_done_it/register_types.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/you_done_it/register_types.cpp b/modules/you_done_it/register_types.cpp index 76544ff0..12e163c1 100644 --- a/modules/you_done_it/register_types.cpp +++ b/modules/you_done_it/register_types.cpp @@ -27,7 +27,4 @@ void uninitialize_you_done_it_module(ModuleInitializationLevel p_level) { if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { return; } - if (ClueDB::get_singleton().is_valid()) { - ClueDB::get_singleton().unref(); - } } From 237639459a11a710a0956003ea378e2414d97207 Mon Sep 17 00:00:00 2001 From: Sara Date: Wed, 22 Oct 2025 15:32:36 +0200 Subject: [PATCH 12/13] chore: added better error reporting in ydi client --- modules/you_done_it/ydi_client.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/you_done_it/ydi_client.cpp b/modules/you_done_it/ydi_client.cpp index 9931b9e5..d30652e1 100644 --- a/modules/you_done_it/ydi_client.cpp +++ b/modules/you_done_it/ydi_client.cpp @@ -140,6 +140,8 @@ void reveal_clue(NetworkData::ClueID id) { if (connection) { std::scoped_lock lock{ connection->mtx }; multipart(NetworkData::MSG_REVEAL, id).send(*connection->socket); + } else { + print_error("ydi::client::send::reveal_clue: No connection, exiting without action, call connect and try again"); } } } //namespace send From b77604b28ca0219c145e67ba5cddae7880905bbd Mon Sep 17 00:00:00 2001 From: Sara Date: Wed, 22 Oct 2025 15:33:23 +0200 Subject: [PATCH 13/13] fix: client node now updates new server on connect --- modules/you_done_it/client_node.cpp | 19 +++++++++++++++++-- modules/you_done_it/client_node.h | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/you_done_it/client_node.cpp b/modules/you_done_it/client_node.cpp index e61d6fec..4726dbb8 100644 --- a/modules/you_done_it/client_node.cpp +++ b/modules/you_done_it/client_node.cpp @@ -1,6 +1,8 @@ #include "client_node.h" -#include "ydi_client.h" -#include +#include "core/config/engine.h" +#include "you_done_it/clue_data.h" +#include "you_done_it/clue_db.h" +#include "you_done_it/ydi_client.h" ClientNode *ClientNode::singleton_instance{ nullptr }; String const ClientNode::sig_connection_changed{ "connection_changed" }; @@ -25,6 +27,9 @@ void ClientNode::process() { if (new_status != this->state) { this->state = new_status; emit_signal(sig_connection_changed, new_status); + if (new_status == NetworkData::CONNECTION_AUTHENTICATED) { + reveal_backlog(); + } } } @@ -35,6 +40,16 @@ void ClientNode::exit_tree() { } } +void ClientNode::reveal_backlog() { + Ref db{ ClueDB::get_singleton() }; + for (int i{ 0 }; i < NetworkData::CLUE_MAX; ++i) { + Ref data{ db->get_clue((NetworkData::ClueID)i) }; + if (data.is_valid() && data->get_revealed()) { + ydi::client::send::reveal_clue(data->get_id()); + } + } +} + void ClientNode::_notification(int what) { if (Engine::get_singleton()->is_editor_hint()) { return; diff --git a/modules/you_done_it/client_node.h b/modules/you_done_it/client_node.h index 983c764b..717a1362 100644 --- a/modules/you_done_it/client_node.h +++ b/modules/you_done_it/client_node.h @@ -10,6 +10,7 @@ class ClientNode : Node { void enter_tree(); void process(); void exit_tree(); + void reveal_backlog(); protected: void _notification(int what);