From 807cfb4b57a03397aa297d741b96d5883e3c82a2 Mon Sep 17 00:00:00 2001 From: pennyrigate Date: Sat, 16 Aug 2025 23:18:26 -0400 Subject: [PATCH] added emotion --- Player/player.gd | 6 +- Player/player.tscn | 4 +- assets/graphics/ui/face_happy.png | Bin 0 -> 2356 bytes assets/graphics/ui/face_happy.png.import | 34 +++++++ assets/graphics/ui/face_mad.png | Bin 0 -> 2122 bytes assets/graphics/ui/face_mad.png.import | 34 +++++++ assets/graphics/ui/face_neutral.png | Bin 0 -> 2052 bytes assets/graphics/ui/face_neutral.png.import | 34 +++++++ assets/graphics/ui/smiley_happy.png | Bin 0 -> 1189 bytes assets/graphics/ui/smiley_happy.png.import | 34 +++++++ assets/graphics/ui/smiley_mad.png | Bin 0 -> 1060 bytes assets/graphics/ui/smiley_mad.png.import | 34 +++++++ emotional_object.gd | 3 + emotional_object.gd.uid | 1 + node_3d.tscn | 50 +++++++--- project.godot | 8 ++ ui/hud.gd | 3 + ui/hud.gd.uid | 1 + ui/hud.tscn | 108 +++++++++++++++++++++ 19 files changed, 340 insertions(+), 14 deletions(-) create mode 100644 assets/graphics/ui/face_happy.png create mode 100644 assets/graphics/ui/face_happy.png.import create mode 100644 assets/graphics/ui/face_mad.png create mode 100644 assets/graphics/ui/face_mad.png.import create mode 100644 assets/graphics/ui/face_neutral.png create mode 100644 assets/graphics/ui/face_neutral.png.import create mode 100644 assets/graphics/ui/smiley_happy.png create mode 100644 assets/graphics/ui/smiley_happy.png.import create mode 100644 assets/graphics/ui/smiley_mad.png create mode 100644 assets/graphics/ui/smiley_mad.png.import create mode 100644 emotional_object.gd create mode 100644 emotional_object.gd.uid create mode 100644 ui/hud.gd create mode 100644 ui/hud.gd.uid create mode 100644 ui/hud.tscn diff --git a/Player/player.gd b/Player/player.gd index 0bcd935..e74a28d 100644 --- a/Player/player.gd +++ b/Player/player.gd @@ -37,7 +37,11 @@ func _physics_process(delta: float) -> void: %AnimationPlayer.play("touch") #Look if %RayCast3D.is_colliding(): - print(%RayCast3D.get_collider()) + var collider = %RayCast3D.get_collider() + if collider.is_in_group("emotional"): + Hud.face.play(str(collider.get_parent().emotion)) + else: + Hud.face.play("neutral") if mouse_captured: _handle_joypad_camera_rotation(delta) velocity = _walk(delta) + _gravity(delta) + _jump(delta) diff --git a/Player/player.tscn b/Player/player.tscn index d766a2a..a87f215 100644 --- a/Player/player.tscn +++ b/Player/player.tscn @@ -96,7 +96,9 @@ surface_material_override/0 = SubResource("StandardMaterial3D_k53q1") [node name="RayCast3D" type="RayCast3D" parent="Camera"] unique_name_in_owner = true transform = Transform3D(1, 0, 0, 0, -0.0119028, -0.999929, 0, 0.999929, -0.0119028, 0, -0.33609, 0) -target_position = Vector3(0, -5, 0) +target_position = Vector3(0, -7, 0) +collide_with_areas = true +collide_with_bodies = false [node name="AnimationPlayer" type="AnimationPlayer" parent="."] unique_name_in_owner = true diff --git a/assets/graphics/ui/face_happy.png b/assets/graphics/ui/face_happy.png new file mode 100644 index 0000000000000000000000000000000000000000..c1009490872b8bc249114b2499b20d75d4ed9785 GIT binary patch literal 2356 zcmZ8idpy(q7ynM??wPx=xn#*@AuOq-G&2+BwhXDhHFC?05mAU)tlTOo^30{0OH8Ry z6r0?7l0-MrOeF~ougdlLR?qLB-+8^x=e*zNyg%pjIe(oD_dP^KIc+%r02E2ij-CJj z!$6oSvj#flN0!A#AV%Gy$QgoS=Z_^#NML> z-B4J=@Z96Ix(dAPR)n;GY^1YqGyq`xe>qIS0Dl}xu4ND?3@=&`<2V=<2)KhG5e)M^ z1aEz;`6hF_@Q63|kmhb6g%m_0nF2BpfdkqwH~@o?3*KB6yaa?d!6X1B zDEdJj!jk-*4~6hA+vWoY#-YLf7ys{304n831Co%^(#qNr#`)9r*Nbq@pH3Gb{L3Vu zz7oHco_1Rx^xv&bmX^P&oRky$HI2fdk)`S3h;4Pr~k3ZxvB}t|wUK1~NQtaLE!%U{3 z;OOd0j{M3(`?K+>@dt!bg?f2C;Lx?u6%N&5e0O!e&y7H1(`iW)8%cq@$m(8jeQo3D zrU1}FV%zhry*nQSU;J)1#F65lE9BI#eyS3LJwV@Nu#FrrpqqJo)9!q4X@7w<{ZNAB z`W%t3pPoA>D@Z7%_fX;zvQ`XhM^pxvYfK}D%jiwrwCHk`#fI`=w(NjXm*rJ2t|2U|HR5^l&T2N1V-^*J5pW{cuOD+UB2Wq7=dIFYy#{ z(nOzIcY+LIpsyIwS8*$p(%fi0mALXONui;$NY2y=bx`x54EFBGWv1Faet!6fCw^Kq zMcGAAY=PTqeHePf@xOFO=A@x_0=`*ydB28w+vwAkz6huLUEI)_=A*tGaUa%uc{ufB zHc=}%NvVVJl(U*OPLLdVoA3(k`uHe{jLuW9yuK&h@7RLLaufSd$H4W)Ja*o|)D{L%d1`WN_nH<;iQ5ToB z=e_Qu{W$SSyCyR>LwRs}!-!W_)d!PX zBAPJml%(sFe~p&55Xsso^wsRqd{;zxPKy&H0PxP^mQ zR7;F(QetX^Zmsb4#Q|7)J6^G2C%wMYiq`n9Vryy2FbRvfqPqQd%mIG^vh}R>7n{iN z>?3=hQPyAM0Ynxw)}V&4N@jcUBh;DXPNWBg;;DI9FHRX#*{ZU3>iyodS3(x~Y-MWs zymQIEpUG8EVR#tkDQ*ZLsyuDOs}rV`Bh(2wR3&s z(Wx}#3$LKNQs6o4oz)c zl;v z%k;-&P@j%XNF}8_LS=}GJ3pwmPhLKbJI~|$ZPjmJCOqfWEMziuR9I^}=Xs}lbe5QT z!NTo~5Rz~~YGhV$Zqda22V0>g;)zAvSb9Mx>P%`6cd3Thc15FwT@W*8w=J2_U{8;9 z6SWi*aZz~Ju`Eid%UH}Bxv-PBQ1+V9?E!(xE$TC{)`Q9mWJZ<=yn9Fv$#f}7{v z))?E-p3!wag-vfgZsZvHJyNciZsjplPX}``Q2~IxZ<<|%?AdB3zNeegqji7B894bR zW*Afnd6gjQ{&L^7)yVrzC8(v%}gB56ZAn zji8^!j{GO{r{TmY)HWo0TNS9=4#p!sHvBv+LSv#2@P-{IQ@FjV=^tpfP>wW{zj~&_ ztOta3hJMtmjV|ly6fSyy*;TR4dG2}Lt3kbcFQG9HeV(`>PayDXZNB#@B#D$+7h^s- z#EkNCe4f8gkiN-f!e^<70@pk^3`fu&G}{;7AnmwBY)(nbg?E=pUAHVsUYZL6VYKB& z!`z*6=<0CiZazWZlW3f>#BSScROLN#hJ-^WO`kE$FW=!?)wbz6U7(+Ui>@ccyS5q1 z_7*gBORL0XM@v@*7x{0_u-G2+XnLttmszcSRGY6%$wo4{+Mh?Xjj%+~&LdmbePyc| z5J5VP`P}@NV!txmOs+TQSyLSF`0_Pa{DMl0zV*F*#j2{tR_<_mcnG>Qw#Zd_?6Xzl zdLi5bmFhHuQ?${!b)J6-H^jjoi5rtbwY2S;u?hKdFH!sS4hgN;A9Lz60!8~%8*zp2 nYdwc&(W_p+*Dri_c2@Jq*wv2towmDwt#uM%k7LcQL#O`*68sIY literal 0 HcmV?d00001 diff --git a/assets/graphics/ui/face_happy.png.import b/assets/graphics/ui/face_happy.png.import new file mode 100644 index 0000000..b952600 --- /dev/null +++ b/assets/graphics/ui/face_happy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fjgddkynnder" +path="res://.godot/imported/face_happy.png-4139ba8b4d693a247d795cbbfdf683a0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/ui/face_happy.png" +dest_files=["res://.godot/imported/face_happy.png-4139ba8b4d693a247d795cbbfdf683a0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/graphics/ui/face_mad.png b/assets/graphics/ui/face_mad.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d584184c38705ee52e70a2877565e6f5553959 GIT binary patch literal 2122 zcmZ8idpy&7AOCHJHOxJiD8pQrhArEYV;F67@1h^-n9DqKSuS%coshXzO5}bztdhgx z(cBW}xaK;kkisJim8Bx3Iz2g4=lSRPzFwd2`~CiWKHtyfuWz=eyNd!s8vy`-0`-8C zHvm8|5*`eflH780|6P*+B-Y!-0jL|*c_k6BP_i2t02(gJePu{X^fph|LzGQmd@lf% zsFj>IOA?Ucc)K6m+yovEDM)gGZBYlnSOCC3+A@ed$}vIW)Z|c(at@wgauOIZA%G`? z#pYPJQx56jEi5gF5$vaSlAPv{qf{o9Y6ie1LK@J9NCOZFqe*PXKU^{~U;>f)?%$fg z5&{L3Byn^ zy{FemF26q9(k3+GjP>oIqJOLRVRta4*GtvM!jIV3gODG>bBwQ;BRf}Rtf_TJk!x|< zZd09+dGkKP`iwP9^=A=Sl-z|jRU0!OXplC3F>|zK>zYx5bUKtqi37*D$~TGJr}dPM3%uK-dHc-3M*0gA$FO47;RkF}WbZe*h+|p# z6|f|}+0);9F=oW&eo%Sb>q8>v*R6|O0=!n~jP7UJRfbNx5>d}v#^f;dd>+Rf zYN;$INWAM)Lc1E^gpzUezcA^gR%iHS%}8lm)|z$P5*pD zgXfrAqW-nOHX7BB>ZXm>R`^}?KcI5^x(?3Vn|3?b*up9GYXR7ft{IbEB?MpfIHevf z&XXe|iD89z3+7IvHZOtfmc1js*s52$^)u|qV*~dsk!6dVaJjV+`Ui(kJr^U0+SjoO#W0$cX}D1$lg{$2Rt^snlI*A6>d^G>IC5>8AS zaEmXg#<`wnh_Xq!_VPoiMLzb)XF-pdHr95RNY=@wUpn~)E#J~XRY$B?^;6Gvljrp0 zkO&7t8Q&nzl?!JwG+T&IxB=rE%pX_mI;zd_p5X-~>pyQ!(oEBEIT~(*ku`u@0NL~@^2;F7(QflGVCX9dQ4bmG<5N4z;;frzBzK}ra z2I2A}FP>H19oc}w}lh`xNnTT*BtuK*C~JN5i(Cz`B0YbOWZP>Svowq3s9vMZxVbfwYBAc#WD((EtlW`0Oo z;#(Q{Q;R61JAjvxRgV*Vn#Y`t$=b#ptNNQ)nl*tnNJa+rzuVRs!0G5+)>FvPO4TW#(V6xI); zF-V?G&H;mHtLHXo!=zwA7^gZ{KPU5M;C8a_lHN6aTJ5m|8s{F2N9R1BXO#8bISW^V z4mn!OnXYdjF(eaL#lLU@Z20L6q^Tc|Im3_dKt^k-*BsN2? zWF(MQ=;h?Hkj%r{TtyrIr>3+o>sp+v{fO}9U{*p6^TXQ{4j(ulx#N!vdzEJS!?)Bj zZA^cXs(h!jgX`Hd7(8*-(6W6HE9M2174-0NJht_Si1hAfUpv9a;KT{DCv7VCxvz(; z#IQcA+O{V2duIaMF(Dm3bF-MK8#Vl;Em7oP%UsduE>YXxIaL?bs#wxWx7^e5QW5Li zo7PI7$JKn)+*!X@OEoZirsC7`R88+Wlku+8EBlq*kzHlK`l2{7=}^l1=IZiz2r3({#=~M-1-awgjfcb#_1*@p zE3@VFB3iUg=R(9}R~n`~YAkPk=bz8uI+&q2`2)B0<`J2Z^uY2F4{ns`Zd4!iv!cT* zqt#_ChO^x-%E+Ww$(8mqna5BA{18_W3NTlMvu5S_TnJ7FCSV_Tmc MmE!JH=Ma$gHzH7aR{#J2 literal 0 HcmV?d00001 diff --git a/assets/graphics/ui/face_mad.png.import b/assets/graphics/ui/face_mad.png.import new file mode 100644 index 0000000..76ddbd6 --- /dev/null +++ b/assets/graphics/ui/face_mad.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cf4jyuwvoyu43" +path="res://.godot/imported/face_mad.png-19b50fd914baa0b288f50baa42073f24.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/ui/face_mad.png" +dest_files=["res://.godot/imported/face_mad.png-19b50fd914baa0b288f50baa42073f24.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/graphics/ui/face_neutral.png b/assets/graphics/ui/face_neutral.png new file mode 100644 index 0000000000000000000000000000000000000000..f523ae52fc24a78b7e74a5bc5b17b3f0c77b2368 GIT binary patch literal 2052 zcmZ8iYgm%m7XC0n6ic&2QY*kN255qpvI_+!peADq>KEdr!17v|npsw3Ql?m$hBjW( zI+h}kFiO*mcCnM8Xm=^m@i^LTG}F9PIvVG*ne*rD=UHpL>s{|&YwsWX*=GXS%=u=v zW&i-p_hD@d1OONb!UE(x$fN!V!9XS*P&~5#6H1Kt(EMotpgf0~iGoA9dBAp# zw?X;BQ2nA*SqBl{tglth>5>E4K?Z{X*h;9GfO6CQEbt%zxIddSSZ{P?0YqYwy+f0O z_C+Tjib@g!0Z}oD$>2$Nw(fF%@nLKbt{_&Xm9;kktmfdlWM%l$9@-%tQ5oi_oDA*Bn&)dg1Z zch|Xz@QS}X6+(D!89{xGzAFPg*F)%^U1S%Rx$1%nx!Z&4@e}|+=1K+rHk)SJ@cA6F+MqaubnA5d5&bV99%$E*&h{ne$^!P z6;5{EEqVBrd-n}5DzPzcdYZr22Gi@;z^TR!8{Ox{h< zL~VL1D&6?^>rC!Sfwod=S^vg#hXV!-OmuqKPN|P&aJM+Dm@h7DIe-db~UM z^#nSNXD2)y5C3bl%Pe{nw`C>DukjaZcDI)fabK}XeI+C9Z1BXy7>*~rlpyLJeU)>1 zW}~WIZKWy}S2c-=Kg+X7Kg&%h9$JdN&285#mU{k^O`EDK=lGEuPndBxNd@v!Vu@UU zh#BhT={n;Cf2xyAYDcX=G_Q+c&Ll3S2^;UoA{JpN_VRUwqGh%i%1n6PfCI&b5q5{Z zM$$;aJ2(&NnHlF$d~_lQC;v?Aka%8wTHf4>*(N{9+Y=qaS&r#mm7B~x^;gK^t5K2* z_Nj>7kwv6yc~n`K%A@)Bmo3)dFauSu^Z3^QdXx`v?`72eQ%`f~L_t2Cpo+ZwMADUgMS2V{o0?7PlqsTJHQ_Q!$o zyh-0e_pm(oFhuyh`b*zp3pyht^DPwj-3Kr+Hdkb+ysK+V(2si<@5Ja``6+y5l3kgr zUNqzR;Y+#uduq02SX3K+=(bWc^uC8xLecz0a9KF9zv?kdHQhfsRCah^-E>xDoUD}K z()mj4vHPNkI#^`wVYCS9{Lp(*(AiEA*OBF-YX~7{<-Y&&mw>!5tOcVJg7m>n?(T$& zzBZ+_iGULrpW0{e{Fk63WeU0Lt^K0-Kgthpwh0V9cos%Of2mBR6ZG_l>0H2>NEDpbu35(26 zQMB+7J#Kfa{e#iDq`2iI575(j$rb|9%y(v1HO&x3NWKwO_~Wlf7I;iA*EBC(0=>k> zt-9*bI$7|W9pLWEhCJDJU1)7v&T0EQFP;b=crnDz#C)=3P}PikNIxmtugTsa6fV<* zO6Me~6mW{244x4ypJ9o%NwOmxbTHL%Xy&PRk+sFWAy?J3MI^k@yS1gE=JmU}72=DD z;HxWVlt$JzkJ?_En-)^bKOkPeKvTZMI!6sO)P4w>#xd7$FcGq=TQy zA?L_uY;9HFGkE7i(HeRj{EIvQ_q5Qm8qi!6_raG5i6q!4fBR^@a%G2P_*MMWL%a>%5yco3h z3cC6-iF9m2kdg)-q3HFOC8ELp-3_DlvQq?NSwNpKk3E(#s%8vN%*z*~@NS&HxNktG z5qY7*2llE`f3XrKm^va=>Hj{pVp1@?^?b@Prcbk0kNz~SN^QWmroaBNr$jFtIxXCM zFx>_$iEmYXuE)2f_y0)pZ=&n2y>p(E$ovzORkQGNr?PBSc^YvW4ghAb}P}Ddy!=<3D4g--kmcuV&Xee9^E4~3+IJp z^^`J07QR{6NgkB$oV{kdfKNZAiy)uCQw{_z?FxCm*t*lPc84EhJGs7k+PAdkOzb@P zzSnL`-`^fY?{_^@qm4aD)}|r u37`C?jzrjRYa{y-(!9VCEmLx7WMoUC8CqT8e_`%-1bn>N+Z6Q3%>M!zI(rfT literal 0 HcmV?d00001 diff --git a/assets/graphics/ui/face_neutral.png.import b/assets/graphics/ui/face_neutral.png.import new file mode 100644 index 0000000..2dd7a75 --- /dev/null +++ b/assets/graphics/ui/face_neutral.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbcsjswtsq5vg" +path="res://.godot/imported/face_neutral.png-c76373830ea9ebe5d6bdbfc1696ff710.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/ui/face_neutral.png" +dest_files=["res://.godot/imported/face_neutral.png-c76373830ea9ebe5d6bdbfc1696ff710.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/graphics/ui/smiley_happy.png b/assets/graphics/ui/smiley_happy.png new file mode 100644 index 0000000000000000000000000000000000000000..1b5efc703cae3e0846a77f6655a3a65b653e0f2b GIT binary patch literal 1189 zcmV;W1X}xvP)uii`n<#Rymt1)I17A!00uf=Sq!5Gk6C{U6kWy^67MFhYQYzZR@Nt9vot zXm|>*hbYx5D8hMS4_Tvl2T_z4K~Z3B$S6oxFuwRWP}{MGRC_W#q>u+aMMBpU#27p- zIC!{t8MUU2i8`#Ug}Eri8!IDuCXK zf(l*iAuD7wF7T9Cq?}+#IMPFfE=U`4R>;x+aqgj5SdLsb_20#_Azy22#(kR`@;t|M59SFJTj;E4;e{_0D3I|M351MNI^{{z!o{A-;V|=pKKm7a^aW2VCAP@n3SPp& zB`2s_k*HLn8+JT<$&u}*d+H;GE=ikV+Yu&h)C;n_mg2p58N7H&>Apiwpu_J+)0x_P z`BKhi2&IG(ouJAgAqncF~YX#KKI`Jlo)WQwb!)H8*65aySJ@zQt1S#yTmta{G zjpa=0i>--%Ux_XB-nG{qn>jB_+f&lDyRJ8Va-k)P1t9``=RE%$ z9C8A!JE-_xdl`H0SBBR^me+D$Z{nw1Yj3UQ1aiX;ki36l7!XI&6LQ!QB#@b3L5Q^5fgAchbuN(i2Pz9N znM@{*`3JL-_@RND6ng*w01jnXNoGw=04e|g00;m8000000Mb*F00000NkvXXu0mjf D{81T? literal 0 HcmV?d00001 diff --git a/assets/graphics/ui/smiley_happy.png.import b/assets/graphics/ui/smiley_happy.png.import new file mode 100644 index 0000000..7b2ff07 --- /dev/null +++ b/assets/graphics/ui/smiley_happy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dla7tr4klmbim" +path="res://.godot/imported/smiley_happy.png-e27a7d96cffeb6588076148a53e184bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/ui/smiley_happy.png" +dest_files=["res://.godot/imported/smiley_happy.png-e27a7d96cffeb6588076148a53e184bc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/graphics/ui/smiley_mad.png b/assets/graphics/ui/smiley_mad.png new file mode 100644 index 0000000000000000000000000000000000000000..50bdbb86e85cbdd79dd1f41171cb00fbe4d5936a GIT binary patch literal 1060 zcmV+<1l#+GP)VW7=aPnm|ac;)#fU==;y_PkQ~g&1`}o z3!6(QE4`Oo(hPE-3YbJlCDcfAki`rym}WGzf-GiOfvlsUg(tn>q_`IbK|~H(w73-l zO+*fo6qf=Z%SfO|G5zuxMC2eyG5O-zM3jtd?7ysbJgbbv*$9Cp>Sw`D?|pU|i4l>a z8X=?3DoebNNj+t)5*LPe6+*yJ3BlFV zRgQJ)iU{e%I(3B*FvOvEr*xHLmAWEAm{_H*5CTRB5nvG|A|ZEeKP-s|5uzO>Aq0#N zqJ&nIgb)QZ+flZVXwYql2vI_-aStJ2{L|V|`LN7g)7eh%T{6bS{@_&`@}$=-rAP-I zSt+Yk#*gYdb4QrB%MTeA+-a(s))17D%07OFoZ~`VIrhF z>++vlD)y|xjw)N)4j>6~nf+c~#T-eIrlHo)BUSzpW+{u)__n5{8m+0S+zx3(!K@#0 zmPYc5Il7#+tRPProQA!-H_3UR^C~^His;#n^BvkJ1ZP}}HFVNj;H&Lh_Lo;O=Sr&e zl6G|ZQXk8*pcEhx%#9u|SSbsk;9P1^VsT7vDQjlXPo^n{PF5y_fDuB#2q9o}3)$$g zp^pd6OhgD6Ap{KQeu#EzMDK$TfeNu0$|y&kQRTo1=^gpaIs44jd*V?9LA4=0k)d&i zF~5_EG8G6WLL_NQ>-KLhWmLq#2qDtH&%*uwkzycH7TQetGL?B^_BcW-XflrAM$1(9 zLq_N79?EF3EVKDUxwHSzAS0(`HjOmJnLZy<``>ILN_r++^umsi-cjFGWaL;p${>0H zS8a~g(L}hFL>zH6EaTp&Z}iyCX6M~OhW7ZF*;`3Hr`wF;?1ba4MPmMD>lsE^t$^%@ z+)YA)`@FhZKP2w8>!8{(3@LJk^wfho>OxZ9yt5R^v71ClNZ~KNXTCtm?2j+>ps^03 z+e)7+OUW~V^nLKL7OntI5ug1yvWgT75ug1HU^X%3#fjw#J407S&PR$7TF0000