From 75f84ce0036b3124225a2d3ab6e553e6d04927e1 Mon Sep 17 00:00:00 2001 From: Sanjay Madhav Date: Tue, 19 Dec 2017 15:07:34 -0800 Subject: [PATCH 1/4] Chapter 6 copied over from working --- Chapter06/Actor.cpp | 79 + Chapter06/Actor.h | 68 + Chapter06/Assets/Cube.gpmesh | 53 + Chapter06/Assets/Cube.png | Bin 0 -> 13887 bytes Chapter06/Assets/Default.png | Bin 0 -> 1571 bytes Chapter06/Assets/HealthBar.png | Bin 0 -> 4024 bytes Chapter06/Assets/Plane.gpmesh | 70 + Chapter06/Assets/Plane.png | Bin 0 -> 565962 bytes Chapter06/Assets/Radar.png | Bin 0 -> 11794 bytes Chapter06/Assets/Sphere.gpmesh | 1532 +++++++++++++++++ Chapter06/Assets/Sphere.png | Bin 0 -> 2310 bytes Chapter06/CameraActor.cpp | 58 + Chapter06/CameraActor.h | 21 + Chapter06/Chapter06-windows.sln | 22 + .../Chapter7-mac.xcodeproj/project.pbxproj | 398 +++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/Game-mac.xcscheme | 92 + Chapter06/CircleComponent.cpp | 27 + Chapter06/CircleComponent.h | 24 + Chapter06/CollisionComponent.cpp | 20 + Chapter06/CollisionComponent.h | 17 + Chapter06/Component.cpp | 27 + Chapter06/Component.h | 27 + Chapter06/Game.cpp | 250 +++ Chapter06/Game.h | 45 + Chapter06/Game.vcxproj | 147 ++ Chapter06/Game.vcxproj.filters | 135 ++ Chapter06/Main.cpp | 24 + Chapter06/Math.cpp | 240 +++ Chapter06/Math.h | 1033 +++++++++++ Chapter06/Mesh.cpp | 175 ++ Chapter06/Mesh.h | 42 + Chapter06/MeshComponent.cpp | 52 + Chapter06/MeshComponent.h | 26 + Chapter06/MoveComponent.cpp | 40 + Chapter06/MoveComponent.h | 26 + Chapter06/PlaneActor.cpp | 20 + Chapter06/PlaneActor.h | 16 + Chapter06/Renderer.cpp | 296 ++++ Chapter06/Renderer.h | 96 ++ Chapter06/Shader.cpp | 162 ++ Chapter06/Shader.h | 46 + Chapter06/Shaders/BasicMesh.frag | 25 + Chapter06/Shaders/BasicMesh.vert | 33 + Chapter06/Shaders/Phong.frag | 71 + Chapter06/Shaders/Phong.vert | 44 + Chapter06/Shaders/Sprite.frag | 25 + Chapter06/Shaders/Sprite.vert | 33 + Chapter06/SpriteComponent.cpp | 61 + Chapter06/SpriteComponent.h | 30 + Chapter06/Texture.cpp | 69 + Chapter06/Texture.h | 28 + Chapter06/VertexArray.cpp | 57 + Chapter06/VertexArray.h | 26 + 54 files changed, 5915 insertions(+) create mode 100644 Chapter06/Actor.cpp create mode 100644 Chapter06/Actor.h create mode 100644 Chapter06/Assets/Cube.gpmesh create mode 100644 Chapter06/Assets/Cube.png create mode 100644 Chapter06/Assets/Default.png create mode 100644 Chapter06/Assets/HealthBar.png create mode 100644 Chapter06/Assets/Plane.gpmesh create mode 100644 Chapter06/Assets/Plane.png create mode 100644 Chapter06/Assets/Radar.png create mode 100644 Chapter06/Assets/Sphere.gpmesh create mode 100644 Chapter06/Assets/Sphere.png create mode 100644 Chapter06/CameraActor.cpp create mode 100644 Chapter06/CameraActor.h create mode 100644 Chapter06/Chapter06-windows.sln create mode 100644 Chapter06/Chapter7-mac.xcodeproj/project.pbxproj create mode 100644 Chapter06/Chapter7-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Chapter06/Chapter7-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme create mode 100644 Chapter06/CircleComponent.cpp create mode 100644 Chapter06/CircleComponent.h create mode 100644 Chapter06/CollisionComponent.cpp create mode 100644 Chapter06/CollisionComponent.h create mode 100644 Chapter06/Component.cpp create mode 100644 Chapter06/Component.h create mode 100644 Chapter06/Game.cpp create mode 100644 Chapter06/Game.h create mode 100644 Chapter06/Game.vcxproj create mode 100644 Chapter06/Game.vcxproj.filters create mode 100644 Chapter06/Main.cpp create mode 100644 Chapter06/Math.cpp create mode 100644 Chapter06/Math.h create mode 100644 Chapter06/Mesh.cpp create mode 100644 Chapter06/Mesh.h create mode 100644 Chapter06/MeshComponent.cpp create mode 100644 Chapter06/MeshComponent.h create mode 100644 Chapter06/MoveComponent.cpp create mode 100644 Chapter06/MoveComponent.h create mode 100644 Chapter06/PlaneActor.cpp create mode 100644 Chapter06/PlaneActor.h create mode 100644 Chapter06/Renderer.cpp create mode 100644 Chapter06/Renderer.h create mode 100644 Chapter06/Shader.cpp create mode 100644 Chapter06/Shader.h create mode 100644 Chapter06/Shaders/BasicMesh.frag create mode 100644 Chapter06/Shaders/BasicMesh.vert create mode 100644 Chapter06/Shaders/Phong.frag create mode 100644 Chapter06/Shaders/Phong.vert create mode 100644 Chapter06/Shaders/Sprite.frag create mode 100644 Chapter06/Shaders/Sprite.vert create mode 100644 Chapter06/SpriteComponent.cpp create mode 100644 Chapter06/SpriteComponent.h create mode 100644 Chapter06/Texture.cpp create mode 100644 Chapter06/Texture.h create mode 100644 Chapter06/VertexArray.cpp create mode 100644 Chapter06/VertexArray.h diff --git a/Chapter06/Actor.cpp b/Chapter06/Actor.cpp new file mode 100644 index 00000000..b10a5a1a --- /dev/null +++ b/Chapter06/Actor.cpp @@ -0,0 +1,79 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "Actor.h" +#include "Game.h" +#include "Component.h" +#include + +Actor::Actor(Game* game) + :mState(EActive) + ,mPosition(Vector3::Zero) + , mRotation(Quaternion::Identity) + ,mScale(1.0f) + ,mGame(game) +{ + mGame->AddActor(this); +} + +Actor::~Actor() +{ + mGame->RemoveActor(this); + // Need to delete components + // Because ~Component calls RemoveComponent, need a different style loop + while (!mComponents.empty()) + { + delete mComponents.back(); + } +} + +void Actor::Update(float deltaTime) +{ + if (mState == EActive) + { + UpdateComponents(deltaTime); + UpdateActor(deltaTime); + } +} + +void Actor::UpdateComponents(float deltaTime) +{ + for (auto comp : mComponents) + { + comp->Update(deltaTime); + } +} + +void Actor::UpdateActor(float deltaTime) +{ +} + +void Actor::ComputeWorldTransform() +{ + // Scale, then rotate, then translate + mWorldTransform = Matrix4::CreateScale(mScale); + mWorldTransform *= Matrix4::CreateFromQuaternion(mRotation); + mWorldTransform *= Matrix4::CreateTranslation(mPosition); +} + +void Actor::AddComponent(Component* component) +{ + mComponents.emplace_back(component); + std::sort(mComponents.begin(), mComponents.end(), [](Component* a, Component* b) { + return a->GetUpdateOrder() < b->GetUpdateOrder(); + }); +} + +void Actor::RemoveComponent(Component* component) +{ + auto iter = std::find(mComponents.begin(), mComponents.end(), component); + if (iter != mComponents.end()) + { + mComponents.erase(iter); + } +} diff --git a/Chapter06/Actor.h b/Chapter06/Actor.h new file mode 100644 index 00000000..cc6f746c --- /dev/null +++ b/Chapter06/Actor.h @@ -0,0 +1,68 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include +#include "Math.h" +class Actor +{ +public: + enum State + { + EActive, + EPaused, + EDead + }; + + Actor(class Game* game); + virtual ~Actor(); + + // Update function called from Game (not overridable) + void Update(float deltaTime); + // Updates all the components attached to the actor (not overridable) + void UpdateComponents(float deltaTime); + // Any actor-specific update code (overridable) + virtual void UpdateActor(float deltaTime); + // Any actor-specific input code (overridable) + virtual void ProcessInput(const uint8_t* keys) { } + + // Getters/setters + const Vector3& GetPosition() const { return mPosition; } + void SetPosition(const Vector3& pos) { mPosition = pos; ComputeWorldTransform(); } + float GetScale() const { return mScale; } + void SetScale(float scale) { mScale = scale; ComputeWorldTransform(); } + const Quaternion& GetRotation() const { return mRotation; } + void SetRotation(const Quaternion& rotation) { mRotation = rotation; ComputeWorldTransform(); } + + void ComputeWorldTransform(); + const Matrix4& GetWorldTransform() const { return mWorldTransform; } + + Vector3 GetForward() const { return Vector3::Transform(Vector3::UnitX, mRotation); } + + State GetState() const { return mState; } + void SetState(State state) { mState = state; } + + class Game* GetGame() { return mGame; } + + + // Add/remove components + void AddComponent(class Component* component); + void RemoveComponent(class Component* component); +private: + // Actor's state + State mState; + + // Transform + Matrix4 mWorldTransform; + Vector3 mPosition; + Quaternion mRotation; + float mScale; + + std::vector mComponents; + class Game* mGame; +}; diff --git a/Chapter06/Assets/Cube.gpmesh b/Chapter06/Assets/Cube.gpmesh new file mode 100644 index 00000000..de40a15e --- /dev/null +++ b/Chapter06/Assets/Cube.gpmesh @@ -0,0 +1,53 @@ +{ + "version":1, + "vertexformat":"PosNormTex", + "shader":"BasicMesh", + "textures":[ + "Assets/Cube.png" + ], + "specularPower":100.0, + "vertices":[ + [-0.5,-0.5,-0.5,0,0,-1,0,0], + [0.5,-0.5,-0.5,0,0,-1,1,0], + [-0.5,0.5,-0.5,0,0,-1,0,-1], + [0.5,0.5,-0.5,0,0,-1,1,-1], + [-0.5,0.5,0.5,0,1,0,0,-1], + [0.5,0.5,0.5,0,1,0,1,-1], + [-0.5,-0.5,0.5,0,0,1,0,0], + [0.5,-0.5,0.5,0,0,1,1,0], + [-0.5,0.5,-0.5,0,0,-1,0,-1], + [0.5,-0.5,-0.5,0,0,-1,1,0], + [-0.5,0.5,-0.5,0,1,0,0,-1], + [0.5,0.5,-0.5,0,1,0,1,-1], + [-0.5,0.5,0.5,0,1,0,0,-1], + [-0.5,0.5,0.5,0,0,1,0,-1], + [0.5,0.5,0.5,0,0,1,1,-1], + [-0.5,-0.5,0.5,0,0,1,0,0], + [-0.5,-0.5,0.5,0,-1,0,0,0], + [0.5,-0.5,0.5,0,-1,0,1,0], + [-0.5,-0.5,-0.5,0,-1,0,0,0], + [0.5,-0.5,-0.5,0,-1,0,1,0], + [0.5,-0.5,-0.5,1,0,0,1,0], + [0.5,-0.5,0.5,1,0,0,1,0], + [0.5,0.5,-0.5,1,0,0,1,-1], + [0.5,0.5,0.5,1,0,0,1,-1], + [-0.5,-0.5,0.5,-1,0,0,0,0], + [-0.5,-0.5,-0.5,-1,0,0,0,0], + [-0.5,0.5,0.5,-1,0,0,0,-1], + [-0.5,0.5,-0.5,-1,0,0,0,-1] + ], + "indices":[ + [2,1,0], + [3,9,8], + [4,11,10], + [5,11,12], + [6,14,13], + [7,14,15], + [18,17,16], + [19,17,18], + [22,21,20], + [23,21,22], + [26,25,24], + [27,25,26] + ] +} diff --git a/Chapter06/Assets/Cube.png b/Chapter06/Assets/Cube.png new file mode 100644 index 0000000000000000000000000000000000000000..623b1d393be6fe7f30283571aa174fc008ca992d GIT binary patch literal 13887 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 IedED@12hs)@Bjb+ literal 0 HcmV?d00001 diff --git a/Chapter06/Assets/Default.png b/Chapter06/Assets/Default.png new file mode 100644 index 0000000000000000000000000000000000000000..165f4df70b405becce349883c026a5a3200c2bed GIT binary patch literal 1571 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&t&wwUqN(AjMhW5n0T@z%2~Ij105pNB{-d zOFVsD+3&NoU649-QVi6yBi3gww484B*6z5ywE zsq734tTR1b978H@y}i1Tk%58bfWe>o^;6~7OcLH@l5EBBW4Q{00RsaM0|PU|0S2;| z1FIeAXi6MUxptuU$qqV5h*PMYhunyR#W##5-yZ{;1PmBB2RIE-m;y(W5HndN4^qOV jFa-ilqA(6g*8U)kal<;+uf2w9;NsiU)z4*}Q$iB}km{+& literal 0 HcmV?d00001 diff --git a/Chapter06/Assets/HealthBar.png b/Chapter06/Assets/HealthBar.png new file mode 100644 index 0000000000000000000000000000000000000000..ac9370163892becfb855eaa6dcc3471340a6b51f GIT binary patch literal 4024 zcmaJ^XH*l+(ngv{0tiY8RhobjItac3iWCC`q)3zAq=ou|G?6YHq?Z6nm0l7EB@jA7 z=%GjrMY?q9?aOz6-XC|)*?s2hnK`>NyYrl#$hR6QRFuq=L_|bXkT;6jL_~L(3Azvk zIbl8(o~$DPxuu$lA^{0<{<`@y0q(iJG4vqdo&O9?-mXc4a`#^dRO#+K1qIDBHkTb} z6%i4Q5=8Npt~Y!qd(efo&*w`nsuUA03#L{w%4?|SIXCHElC z#ZxondK*>RT-t{HU$VWRw!o!Pd5yg22aDiy`ti zTK7XgzndDQVVV8&#O7o2*xeq3%px~>BmKgZ}>FB1+vp}eLF`JOBX#x8TnpZ{i*CyR0{Tpn{RpEW~0{FW>0ck36@zB?S9=U-K> zR$l*Wgg)3yjYRvNHh`%*Xgvq7SqXeYL}xUzLuS*iM+`$#3O+&pkXm3CNio-NXzj^T z6#>%_Qz%3`Z$D$$QnhnvXQn{%0>MGfG{Z070X)I!WK&b#+~ZJe%8F6lCF<#%!lV07 zqMfO*MnB5mW~Ex)>#odU?}cGwd682MKWhzWk$OCkj`Q;@%=sULSpZOdM(nP;aky0j za=ni3k@v};>%E;FD!Hs-kJ2KA;>jF%NPExD;M?OG<%j+{glTnKP6&41ZscE;DB{5Q5QT7LTq5)2w8QfGLa? zbTb_oMv*Tf9ewQ~zb5gzndcIDa3y{KL^tV#a#^aiR084C<-`yaWH43W_KFpW9vz5^ zFdTJ%mqbohqpP#R%K|B6IZvLv~ye+N^WnGu;j0YjHSps$=}y+;RlEN!`dyo9ck z=F>vv-77#}I6I}6k%BVA9z{nossg?(p-ZlRKjsEpOyfxy+gRXBzZ?Ga2m&3mAKnL& zH_KOT&q&4+dmr9BICNnIV#F=47SjC_th(vqt;Uj)w~)$#)15N7&P}SEoT41R0KOOh zKtS-K0*2r(9=~0q*nU5HluzNANe3_DVd(hcvCO9v{EFJrzDINdqUw=JM@(>@UP`u3 z;IPhWXUO&H(Tvj%=o847x(&u(wfoM5al3!3|?!X&D>70L!KhAs85Wj_viCFZ4%9IfB>=Z-Erz@df9@p8UVQVM(L0Bel3XGoFm zMtn|QjO+dt*+King}_5b4*9|<3jFOp*=F4ZwB+n6zxWT+(r^yOyxIs;H(t1GcDpHH z!FhG2Y35q}QL>evp5ykfz@YBg{xskOVJQi()%O4EqA4oAbpFw-8sE%prWX}2=M!Zg zx=t|YEV~qT>{j8^6s_Aw`?d!e&wj2r^S()5Gd|nLm{yw^Utfo5Uv-||CIE1*t%wlf zati3m#izR=^E76yFU}<^KNk_J)>}(Zj<~U2lLbaRRZN{46v$Vxikd%EPKc!H%;(ew zthRX!?=kX;4a9{5ncJ!RS=f@Fi@8ehIE1=F(Q#CLqX_|E9!GB`5V^{0b_s>gRPhR( z`JJ2)At3wQZ#Q%4=SRxI|7UCoovj7^osvU>|zN@x+Bn zX^G4oEAh$mt5e+>$KbpHdOOQ-u5^xgBFmTUn8^M>JHUSZ&0= zoVd9QWGUaP%Q;?u!)vfZAhu}0+v9bKx^I664eo3Vn|wJ4$LxKR=PS3K?(>tC+Z>)Q zv6+taGr7KjD~6iSAH3f@KOs1QrxH(Qu3F;> zR7hsF;Ljbs8=?P|cdm_W5i?wzCTi|V#_BV3iaO`v>*4>bdAqIif&y;kN)S@-;_ zMhN$l>C&pn^}c~pkR|aR(ZA+j%xUvRWZ>nyDP1`VFV z>woeU23zi!2NHb{;Y{PcD`hJYJu@e-I1^)=)#>f?spVMcrep8w$@GcW+#XAFQ^wC) zW8BtALE!_Kn6ROZYM&UiX#t1UGbt$}B!}}e-{Wf7?R(_$;dyDcgW9!;yrwHC#rWxz zRAbKWoLs(J_m0x;0-^;SAUwY&dzwbK$?u>tocl<5-VRELEGn=ud@*A{3*M zc@$W%GOpz{Ay&249m5{jGHU1Zw&#=&r_0i8X#nFv_8bWMFpNh_(FW}K4|}QF>_6#2 zB0xwYQ-!3jn)1r(vFB8MkrpF<^3zeh^502lG3;PAMwPU1T&yf|CEc_N<%!A?V+NSV z$Y`mugB8{ITo|wWON*c%_zk{od^O1PDEst34wNqYJ5Lwvo~o^or*8+dY?EGuU*# zHQ4m`m~>w1an78rj9q6qc8T8GU#c)}l7Zpw(IZ=3I{|;{G`}@(BH^bx0#m~Ig|FT# zCAggMnK%@zu-Oxm2Uwt9eWe<^6M-u1aav>$DJCFs|p)`mK zN7HS^h1Gla9`Gw!P1-1qxfhBqt*tyo_8<*o>|&cTt_9InZv7UW{u0qt15Q%6h7ZH! z$+t5#^d2y9wnXQYIY2ER#B=H9zc{^Ga06^;k;ZmNF*HhbO%r=P)OtpVtM&^0C=>OQ zB~0|0%Nj#^JXcR_p1q*&;Qg&W>AWHOSPL1db#3B&Lq&0YrsjYj?fmg}{Zt2S4RLlc zc{L0zMfW7cXk)b{B%i5x17dtqD8H8BQiHo^=1J@XD@KS?l% z(l0I7$5gpQfqpS4EjR2fZZaH?w`SE83qL29 z!%7Q@hYyl3ShJSJd@o<3H0=TP(ugf|Z4d7qgv8jhS_MzsfYKV^+1Z$`LHVSW$1PiM zaRXN?df&FrQ~YfR#{cieq6-Z*b%KGGH5sl~Cmhcv>g%Fjqi^k=0v|I(l&~eSmu4$3bJi8;UkX;b^L3Y{b&51{1=e>5*I|i9xt&7SjLgQz{-?t0bOfd*3s|L(3Wx{ z8;~ZKhQ=klWmjvx<3?j>$-KjK>qI_B1#bLThUMf3z(T&?2d=@yLq>^hh>^}9ETW9v z*-<(^Pt2XTG@_CbXcZI6OV6S28PzK9IvP1JBx@T@fs8hh2r&iq)qcOXvM@ii|7(-AA_GJHYt}E0wr)FmQ20sc@b_p zI=b{ped!3q(G=$9*yToc_~_PtaMfcG6Qth&sb0&9QCGCR5k_lM6N|)F@K-x8 zfanc$u~6(FB@HoZE{b0bN8wp$mx`@1cIS<2Ue$Xz+2mtG3>)pwoAE}$Rk1cqoB$NJGt(L>Dm)Fk0AEC+)F!lOr?k>R{f?IGHAixkDf=tjsgTv)L=YHqj z^G?;&erjs|JbU-zu{+N!={u|sXS-o%oqSU7Pj~S2nl?zq9qQf-h@DTdxt2ig-PjROtwQY^<#{QsA z6MqmfVEY-}aSA$D=xK6sd5PW7(BKmoD1!_`Z@rh7oV>~d$+L(H1=c^t<#8#iW5DV$Zo1yMss4ugeyE(kh=UU^~hFQT{+G!5r%8{Rg`(w`vHojHQ?7fED*l+ zdiFXP{OJ112i{M3eK32~o4zu3!diP)S%`@7DCEEs5;XzMfbGo=Yg5VRo{25DdtD!8 zA<1W45g~Za{wy8NP!aVW?4H}xE$Rp_T}_N7TYO3hUL&xBP)(~1*ic`~)HZG~8k5qk zmrZ}U?R0sTa&!0j@pfEb*P{~v{(X3e;=0wx^71W6bYpD)^X5h&N5wNr@!f~rlQRkr zkT~ZOZwF7QXL&H3-L2$tl=fyYiZ}CASXyku%{x! z@9X8s&#rktqTMb}H0s5xUyt@@dXru2?!Bh&oq5M14;XUDlo{6cFY^M+C;kPH-!;8& zk$;Tywx58a9lHC1$LGy_+%7&#<)$XTzFaf&SNb)+idx)W!rp^uu@@AuVbAj=T95xN z#sc@!vdNTf$(Zbe&}d8&O&o_$uL)@%%u@8oX&lBA<(=4h@b>G#Yv?Q7tC-kRWsAb` zg!A-MVgK_MC(Gh<&{!83DTt3}pkz2*b4aB26!A~RxPaHdI0j5`AP0C6{VQ1~mmM0x zZfs+1mKs7FfQo*Rl#LWm(?vChlBi3np_-$2qeqH*4g(9%F17NnTkXz>l)(yX2-N#+suZ!9Ob#u9jL=Zz( zR?f^-7pf4rKl`jo6bP#ZNsgnqcUlS-vd;pI%z}{rG|u_YJupxGd@;>Hs9Zo;;2zWi z>|uoEX|AoIF2Z+>G=^YOioRu^;eC%mLbCuEs0duPhudTUNFHUVz_q(5={2{$CjZMc zSrMP7NQby*OZji*_#2Y}8OO`Rg^wBgh_=UV`KoW1vSUpX*1+=o`m?OQUPR--Ak}_M zEAv}uK3rmpz1)59vAux4Y?$#?l5(xS%v_;=Z&nvr0!$Yn4DVqH++7vro)x|n3SBpQ z!EjtdVv(E}>4*@~pN#qB@^$rHx8r1Z0h+AKS9gO-BGLk!{! z^N=O=u64@)!50<~;Mc2LB)IF>`+GPV^Rx$&_jbRx^M-RP(O5Il4h|#Uf<25aI7cX0 zN;Db{?-XCGWsmj`&vBOvbi&D^ds*AP3`zE7PO5#BlBR=er+c>OHlKd^p6LZk4jSCQ z)$K@E$l8$Xlm{z^`m^^o>jd!|p8Vw&1QI3|a^=6vKOFw?A*bR}T?U5eG?JsjB$a1m zR9W^N(L=QPSDc8PI2Lj5_LXuD#E!Lh)QizLyQ?Da{uSJ8Pan)e(qN206B)Ih=Tps# z!>*0>MzR}=aYDq~IS(iKZHOQPA2alRf$4|n@CYErm2k%hgR1awCyP|zS8PU^yb2Tn zJ#h~47`DB>DSwhR7IqfI*`z6_=5=EVcp^*oS+0sIGKR&+GAWgWWZP!-D^C#7UCyB4 zkReO}6OuzgGH^7v!>rwjiI@R_Q^0oMyBGTeze@+{nRlxbFA`Re3cO_I6fS51rBF0* zC^7f}rvLRB+7yK_J3H$J`iwNC25J6qg<=-`%mae_{==H7^c)cF8SfL=%llyv?tMZ2 zhcSH1CQPkmIM7fx@u<)pzia=lh-RG6{k^TRnb`#%O>N*QAe@q{nsxrwjFnJWOsu1~ zd&9*o$OS3TMDGXIYVnS^>L5C~wxHW_*N{*2*Ip_}Tq32ISHiNIkxu9u$%-Cwv9-kg zEDdT%p<`Q#HK69%&~b<6RK>xc@{>ygTe|{u#a2DP2850xAXi4TQ#-P-(3#H#AuC`d z1fbAc6QL=mp+p& z+qO(o$Zo8(rJIzo?|vPX*^6XaOO!Ab0NKSSg0!gi$<5I}f#ex!M`FV6QAQ2*`Kd_D zoUpXQCSU{*_;)Sp#xl)zrBm9@iF}arwbW(d;ezpY>ITzLqf8r?+xs>JzfaJP)%gjk z;69yH2jV|fKDwU_y8S1+BfVh0-H6xw9kG?vTw&$*_-vk8uBWLfrCy>10=kHhnob@! z=Ed@IYf98_3o2$pW6KL%?aT}U11!VXNAWJX$&;$wv4rGIC4NMfSej?ejMu)>soRSm zF`m*6i>Gm%VFSHNk(-psoqx*eS*(120Dg`5o-r)XXkC(2p5|tx*yt&k@78I&>d6~x zRT9F?=dg6@HGJb&hgaXjrRWkdns&p}r;XP4{MYCWNEL3qE}HuHnvy=(&rz72`e>wp7M-%Wun2wf<|YDO+r6%X zTkB9y49G&O5W8@x{PIrk*jk6{Kj(rWVuIN(n;p294J^5yGfgFT15|F6qg#xwo^>Yc*Svy|N7&qkNOTvo@I&{w~Gm}5@WuzBsLd_h*&;(eX*-FVXPOs z@8wJYQep3`UC?gXB1TZ|3%Ei!ScnLI9;S59nav77SwHX{ZDw|JVQQZVyZ=d}&Glsh zKu^7-+}?tl$2UGfwE}Py*2K`yjKLzTRg(VP^djmd;TsR9zwc5bJij?glq@MdjRN+q zJ?=dPR`YVJRC5zqv3L1rYoQ&JkrGj`GH- z)k!7*Us4L4qC7Qs^x!+zFDG~;`pzraZ!~2wSZnU;<=H>r?i}VSzy*{?Mo?M#gD6)* zc>%uRhMY58B%kSqfnYfJc4nF11ax=)Vsc!i%m~xYuj#0Gvu*ZrlX&;o|LWh<)Au`| zbGsXgCf{(=SLL0&Q0D=PVWi%KvZpH^ROXq=PeQ0oyz zi1oeH=N98z%ib;a-aaau5|>T)UK4EaBDrK8Wvc+|Nxxn1q4^^!5eFUfG3uhjitb8| z#q>cIgE%$$J5*VzUJ#idAev)Dm#J+Ayt!%}f9~7DLxGpsq7ax?{5LownmJ>I4`VyO&Nw^L*`@PZ4=8lP7SqYKdK&Kw$Ph87K2(%I6S~g-x zN6=#E9#vPXhLNluqZ#xMCxQd>=o&SO%OhI=!B!vPV;z-ard9)HxK(0^<)>t&rZ}ia z@m((UKYa@-FL*WnU7a-NXL&eHV9wwuREYz)IMPB#IrfnG27@aSlXm4|o`)1CagTX- zxuM4nA~3Y*)iv~=Y$x2}S~9nB32X)lL}&-PDzor2qiob6F%MEzYVM3ziJHTVkAG*m zy)@n><6jwmjheSvEfJqNyhz*AKUU#XZ&4k$At=B=Ky2q6L*U=|)hKj*%kIfJ5;*Wt3#v%-XjVnuqIJBp+SH0W zKt}?MUyMi$@}V-K$~;m-C$9MdI3q7lKx%k0Hn4R}vg;lQ(M$hI$+7>?92$vWj-?gB zL%~rO!vTXa!bBvFJL8TPrEY4ZzhfdMI7Uw)Jn!j7x$M;S_x%T}J)xcJUWA^O!b!N0 zT&xy}ZKfXtL368phZouoCor@txq$!d$GM~Ss} zSui)kT=BXHq{n&p-edM-aM-t2c{B&kjeaRB|vA z#wJ46g>=DWKc1Qg=U%$DAIM-l(_HA+jxIU_I=O@vU!h-D6e zd&P1+(xg9J5&XNivY&5ZI#??9nWEi6>knr&HT-vDvZ_!ieXXhLiZr)gQz24VRAnqsm{NR$C zZCeWEh}e^I`0XYWTi+xG17B9|s|7W&o##Zcoi*3~k$Yq5!JxZ)q&(FR|KK_Yh1-y@ zcL8>oxI(nohShl9-1-_byE=NSQyC+(q&yjq6xAVf#}6mH2q`N%5w0DiVDqjQw**V8 zVXz_pbvpW42S0iC8g(UGeR1&J_N{zhHdG0++gwwaX@sCDTBhhky(Ja6(c#!6mZe>_ zduvmwk~Q63zdBR1qFv`+Z;G~oWb6+h`&aB0+|90_u8-X%aT?d-r7+={*M{@F2RC`a z04fXJArp)`WgtaRXpk!6C>QBE;{kdZ>Um_jrFq~x_SNH#;o$C#5T|4<6#dDHzv4Kw zN6-`d*tE_l9=dQ%ozIra-K)H9rrj%k8 zvS@h(ks}t~VV`E*XMkA$tA6ufhaS-`d!d?))p4JbV;qin}^LjfHrE}3!_thSjBNZN$U5+<$M2Dicj=0&l!ktPz+ zk~yv|#NDUUMChRk{;Mih?3XV1gCqeNS0T2W+FvAO!+=h!zm~lXd7M9;t8~6Jv+=Hi zB(4HG;$VrjssQ|Y@bezVHLmS5a+)5?{)w%K5szWP50$|~{ZCW<+>^g={ysv_ zM>1VIJd2!yta`oO#=ktVw-*Q=>4krUBtF?O1!k9{=3;sL2@Gc9{@M0GOXUS4h}k?< zpsr?GzeE?F_KPQn=I>sf90m*{95F%AWh3jUwwHn@vAjx^09f>z#e5J0diR?7T;2x` zY^Jhw$rG%dvjgiSe^&<(>$e z9D&O?o(9Bf435KLKkQ59 z1qF@FFt?9k_M+6eDI>tX>yIps;>rkQIVCprK!xK6<%Q`7t#;4fD~u0P31f?<411@Q z*_`E_h#z%&mkf{~B6%&13P%);4Pv4jOvMtNXan2~0g$@vslavj`H{X6@pLYrD@n%ZKkjF}2VQ}Bg$^&5Uv z4hjVY##QO!E4h+v7@>UrpuDhds>UmGtQlsd6@I(k>vAQwc3-*dyri_YIhK=>EnELQ z%$S)h)941K9x?u5YFW54u26F!KcP&bR5u zj%ee~TS|y&0Sf1K>?^>xIXO!?L?5bpII zz1<3q_BIQSf0NKOS|`|yw6xQ@qu(Q{HV+LiE28eo&s7%KQb^Bb=T>O7d_Yb4<82kf zI3_(o6%kyBw^g-j%wFk50l6$fP*?L4;N9Q(phtJS7_=Ee+7z(0hiC>S)^{|IuagL@ z#YfO;fp*US>D;iFXu;EV=o=I8;Y(MP5RubfQKP0FSqDiYHx&#Y>2Yn>4X^*0IlHX04ENO&1(}++zd+Ms(dT&k{y+g~;!uk`KH6IIi^Bl9J*d;V`u-Oh zODc~Vu=lvNRDWCwVk|OVQ5|=wOqDyUZ)XySiAYSV@rfzXQO!}=H`8-h2etkn2RN!+ z!oduu03!z?)+Iw`mBluAE#wt5h!wZX=AA^oz~;La!ux)H!{}&}tbF7r`Pb3aOLjs| zeeT6K!+lMZ4-YkIynR)h!MwSoj9BFP@w4C?7QXbSPG;(g2A7U;PM4!b@B)2+oC_{n zUJ0w7QL=i;n88<)ku3_{T%{j7ol-Ju3Y-c$oW7qtw zah1?Qk)FEE`Q$;a!lgo7nR*&>ft;lEuEbg`uk7)Vd#}eoX{X(g?5;xG@fa?&i9o*m zNZr&iXQl(p0H<$8#;Bt>WqT7Ud$=Tpn>*3A%%TUEmR^w`Sk8Gi&fb_*G#X9_3xwq) z36v4dw6oguw=#kctG%d8%wh8T+-|+qdJ?^>14rDG`Z_1Q@Hfa^t>t*smQkN3oXOXD zqsIoOmV5)l-{0XjVIbmk?%N1wClIL$GHD^DSOHlplt>&>ebCI*R_Iw^! z##--5-AD0E-0BTMABcM&o<+y^BnEx9u(q9k;{QzoUSrP-x#bllOI@Qc6FD6(ZMlQW zzOCyvn(!);BYCpcQv37zfQ6Pe85Vdcy3w^7;_Qqn+K3eXFklCyPC-r{2|F!g#^XoF zTIio+N?1~5j|vg%;dof@hW*JE7+d18KLJe{bHTG?>y$3USm!5m&wae8pK`l%(R@Fa zFCJXtZ2QRJ5tYJ{ZgHL2`J{)e$(7D?f3R9~sum7m!L{bjSp<8_9e=>I0oous@wOdv zLf;n+SLGTbv;@dvF80uf-_kCX?h_T`H0p&R2e+E$)9a< zfcf#swB=8J%HX928_m3I=WZskUgrlKWxz6p^!q!7^Sw~+V0J41vbL3aE+}4+^|_>^ zMF55%6mr0=SHHONt$4f~XTT3?h1tCBEt;EMXp3^4a#^SIw3lawYCh?=t&R}ry6n3w zHTL+uGshRR**d?jDc^ykBmF%rTlPvNYHjUr2eY4qDM`suZNeeHU)1U;bpjqx*}72a z8%EC^RT+0Ez|l*12F@gRi+(c6|M3F+f6c=;ae?AajfFmvE7%V7H!uQg}F-XWsh zs=L-6R(NAP)9rYa{e(ACv#zl`8dfF{H%+OvSY;!d9to;6N>g%OpH+(a9{ISDd_Q-H)u1zzJXocrk&#CLPPlbb}vRXJ@UJ&m1vlEQlvTs*A|vOcI#NC*8ld|km~1*)>QVO9tbmAHU|)W!fI^^scebbs8~V>pJ4j1J0T z0axD=8wHSvq<{P#h@9lM-tgcRn$(|`jluDq6E=1Xz#b`?4U>tbn<}h}bnjc_xHFy& zcd}M(Lt)G`#|01S8x4>Wfc(mgK@vX>?oViqi=D-Z#Oi%@j{#4ZoH9{*#@n(Od zCkCC{qiP+dlRkBDSkm3Hq6J|U;99$*h--Lss zlIzM?(Zza6=|{Q6Ba(5W69?_C;A^y^3^=PN|(T`qZda(Tp6g1{Kw<3ZglQo08ymP!FNN$$B-r988EY zsk2wTYzHkRiRI?WW|zu3sO(gt0^|g0qvYvu_byxc8U@Fx{t*`FS#b6D5M69K!E}ld zV*Dis>EUX^75^vETCK}5d9C+%vt@@4Y<332%bVgEKO{^8g_ar6;nx4sb_ZT(F<B@HJ&fg@ZM=#q~@VO}BT2d^lBj5*QI)4OpQwP{6j#dw ze0~QnJZtcXqZ!{lt=D<~^16!XVA^uu;_c8$a19KRd|5jK$3C(%ep}S*;Hpv2*+6&i zawS2~4l-RVj_2SnoMj4h{}&%V9tiI0$g>=ayEHy*^WLr?#+%*NxXiF=^ONgk`NQeL z4LfYue{AvxQ)dg9HXWNZbk>HA4c1p~C)^CF2?j*)n5%pQx6!(UTLUs8nt)* zwZN*=C~dk9qv%7RG(P3C^1Azl{2po9x`oFN9omwD6bt7M?P)Kl|HSV8!A;{Kt9>3@ z(F*(O||cxHtgR8o8@+iTNOYq1}hEv(hWQUAcO+{%k_G_a-O`Xzcc(O<;dDe9%V8F5Pt~X(npw*$uHkR%bsH{gg4- zPTr=5h9;BZT3aq|KkdlL{YZ`l!a_QrP09KHOeg>FidX#I;CfnvnyqmeCwS3ObjVyt z7p`L!+H?z@zs|ICUIMr2(SA}kNs!dK{C7Vm?EOYb28*qa1TtGAZ#~3WvDY|HmdVW9 z$KLp$BJ|V~cWOGzdY>wo4&iZbr0fPgA!d86{S(M;4sVH6ALW)+_Lodz{YloS##T|R z0)(w<8anf0Wi9OdCY8Myj7DCx)Xiwy&%QRIkT|E7qsDt4K6Q4)(N6j~El!A?1bGMM zL!hb2ZvzeknUd`|+lf2jb$l6gx=3U`U!P+v;Lx5LJBEC5%=^JIP_`Y@FLJCTE$wPM z%|R^+8&d@b;;Zli1(xF(e*!*@g7ASIDk+eR|96}^psdbJIwa&{@1%GJwDOwL%7~h^ zdlFDc?zkd&;c1t>x_Aq|04V8ZJ@AZ6-n5(YonA?efyOqKg$&I)|JDZewPNmlvzbLh zXlp2%G!J_+>5%g+JyR6l3-UFPECo=`-^%NBt4r~{sy|=^qQU>|bymk8$TVm?H2xoxwhn=vl#Vtm+ab5yeHY`M_(I{u0&pZm*|sbzL3fI>nU1-?a-aR)x+R#Zhaf ze7dHJ_*6SxSl|@ok7>j&xlw$uYi=l}5-YQjh9Icvrt-)HgCfCsGD~6FG3L|2k+K0SZTYkr63rA1eTz}=|A8^D})T4m8AOlS-mR5G# zz{frwf(q14A1yycY^99YG*hkQWM^PXeB1e(Z)~c^km#$u=-~aQ%2B}qC;y#F;!(kf ztoHjhPedS%O=gpIyImU;J{$tE{q8G?j-nK^)?;sZ4EdGdMHdb;$qfBrkG0bidDWiK z##+4yHoBXzESSwwtK=2Su(_Yywud}^wxfQ{YE_+zdO0S@H#&_g&zqe0mVGjDi$g5ksL z@$4{SiEFsnMSG zI(dryd)j`7P6CymgATW(`#{&{>di|dlzJ95ShzToB$3(=+r}HiS8uja(nzqu*9m_r zIpw9y>z73yY8ut_Ra;fo zYY*zrm8!AYzdhdFc{UbX&=y<^s$jdhDNDnWYB-v%p&ups#|yX>aP_W!negd)K}|oS zaf(UFL9?_wdDVl7SO)nhZ=I60M*@bR-=)56`f=osXWC#IQ=jvhi^>RbmZ>u0T2?Mr z7!&A+Ke{!v;q+y*svTausZaR*Sg@Z&YI1QE zObUyqe=R(CXt30)PagXC`!yVL{#uPYrj2x|8mg|kcaY>t8T{cd?Q7PMhpBv9Z~Z{$ zBb#+yoSj?09Ny?DG ztW=&}<9?r)Ha()P4YEu(YY~V2jmC{#-L`;jDs17f_5M6o##;K3_Pb4v+l395hC^-^)4tYJ(uDAeXKxxhVatYd+ z!3lAl0*>u&dA!4ntn1j&G>;W%M-$WL5;kAo%;Dayc&j`8y1b7WzF3i_a8x2m$|6W# zM@dB|AU>{ssLJPOkzaCtE1c>Ka^g29g<>A}+$)zec*!zqT;!{*4@SEnSs^=a`Y*PJ zWgB87sf-^LWXkAn@Rs~$jJGSaO*KEf9}eZCyoOOUEF=pa84O>;gv!t8u90WUja~{lVqu{8YNpyQ743@w)Po~ebpG-6(9U)A=L+`<}Zlo;|}Z-4TJzq>E+$=+ZXvJ-KoaO0W}*! zd$uZ^%ctvzG@Sb7W7h6z`N2TTuQd`Oegt0)1{CV z-!*Y7()IaZgB)t;#BBOte=D2sMvfvo(ykoS)b)Tw>GxKHQA0P?*MmWh=b2gL`>i)= z`pudBqxn~O+`1VHd-`v2LqH8e%^upSup4%OBR*aq-xI}qaS}`OD_xX;prEMRzPz?} zLgI#HAuvz1L_@8IywG+#%SYPgR~=2o@`vvgfDI<|-=X?w>UItH)6R!2R)vC?PmFGJ zvP|~v|IVCOqro$5-f{0$jH7Jd-3hC~R(YD_(vAyQ7CK61Iec{5K)DQo69RSQ_N zY%Q1v7_>Y8`lY>kk0Z*{YtwB7Sw+Ij^(m|qPdYX6wrJXj?DuFLet+|FwHxS&M(e?D^sqi6b8 zqUHS5G)$!@SC(x75~al|@)oCl?Yo1&lK9#zM#1n=)(0()mKB0XP#daD-$f1`L8l`* zvx(bG9i;maxc!m=79D?}R-iYx8ezo@Gv8=c?3ggaZ_yarcAjERV)W#|0@V-7sl!)S zT!8I`N;Mx}-@zNdk*h1=aS9t58`H?>|qF-rtc&-HD)9aeR|%V77TB{mh$}ke=+`X^eHXs)Ouf^K}8H zn}Ro)WgnLAiAoTXGhD%3GELQR{Faw|s48ZP_7a8!^kkWdwPdRqj@njj9eUY+W=|>? z;mHUd5&o9IMG)%ewvo*psST{3MphKWXaJm}7q@Cv1J0Q@=1GK0U|)hYDE9FMQ8yXw z1WTANL`rH)dV(peZh=KtE?eb4-S2}=w4<$;zQW~KsL#~IuG&s*$JG}`Bru3qgh(J7 z=CJKeP8rJRpasQvOnj8*9G*SQHlE1^n`tKdo>P4cX!?m<1?!`oyz9{0j7qOF#}jFC z-{{i{fj1{%(bJUOAEq56P?^XAC!+PXRi}F{x!SHny?grlep9|)Q2yhjfq9#Fxtnnf z3ipO?TJ#B%>$?9zPfe_Bc$+g2jeb=|EAb8f&~QB&EmAj>q!|{zvXifyyrU!9r)y=_ zOlfuu6}?>fw`ha*+A$yb$O94>els~Kla_ZIA)m?H5BJ`VTo|EAE-~Xj;wy&Xp7F>$mJ~y=M0$Hl%Wj$2^vpf=?v~4JaT$2Vz8>GMW zzG>7fW256oiC{h-_))sXH8kSGYep00{TPrR9=x3da%G4+HX*>78!RjKIT}y7S)=;y zoT;Gf*BP9-Fwu_Y`{INkwZCKzpKLsS#83aaGFM+ECiH3|sCG-#h1m{$r7z?5>~+gA zk*D;yHZQL$tW7w1&Z@)5(!%$f8kUpQxK41_7_qps1s2zyk`a7xsS9FD{E?DSU3vLr z*Y`IjiX|9y2x4+xTurGmgZ1EjtDkolW0V&U535XIvOOLL{)W7ZSt=Rx8CSdIacHEN zvV+bZIsRhSLy`^?c8ooQ?ViM5+a{>Mhli4(rCAHM*5}Xevgp5HY|nY&m*>*}!+CxC z-S>Y9S-5nCQ`NFn3s!d0#8e?gwY1i_bf@*x!_(12q$G6F2dkF_(%GRqi{gwl!=VNg zZdF0k(8O=*@9BTS!by~J{gG&}4vP`AMXz7}$U!a?zM!pH6+56K>`Px@i!m{=1@+ET ztt3ajfSXF^7l?1J`56&1EgCJi0a`;;`0yihS5w<3PY;cnjI-LBonZA#vrK}YbhiX4? zs;RK&s9eClDz46Cmu-dv4C`a4RyEC({-c~W!@N>Jrn#ylfLyzudO1^zt8;f>qC%VU zAh5>6*)DPK$$$l|0K-O#5D+H>^WHB8nR+{@x2iYxI!IbzFO+@PND~Rs0*x%2gC8SizJ2NVM*ed!`z>sP@OdeFcz*HBqy-iw?<#AJa3tToUzdpLcn+@roZ)CBrV8CwtbH3`6MH(B!gVRWfrKcE;TwGJ2BGT-c$0!uemG`{TaP>EjB8Sh$z=dI1W`TB#=ZPn*nJEoHgqj|~J z2MxkL%;cN?inPWEbp{(ydy^8#fd5#Lg*LOrrB;sk%IIfu(`JRtsl}y)7Bj5*p-*)!3}fGDlI)Ov;O{{21>3Z3Y0~TL z>vMEQ<;hkv#sZ7kU&O(%9~|9`&aD47eOsL~O#_OyDN=6YoVG1`EsVHAi#x zB&}VU;u(Io|Bx$Jcx^yv5iTlfGth#s9h@*bcYQrI`-(IY7+ijGzsIfFTsXDgTuSEH zYSFhDFr8oPL|HX@6&=HSR13=b+bHBt-Dmb+UhS&VDW7w>{_ZHiSIPXvP49oJFWddf zE*DKLZ{v&bAz-O8>*L8^C}cLRWi;=hskH11Harg6?5lV|F|8CNr$tJ%?2~bN3R`od zRF{sWY)2D2#KjpNXPlbqjEaWAd7q>5D28h2Kg(8_@)?fPy&Im!I zvMbVO;`SX6dZT&T*zBwP5jsk5$5(QmM0>Ul{x~S79{gzz6xLcj(XsBH)qHU9X$x`E zD&JyA6N?{R)Z*H(AV|GMu-<>NOA|AVO!We$nPlP##%s#7i+y$HTD_xJv2O1T9(5sT ztPQvjDG!NUtL9zZ(@11^r3glzhgCmR=7FIl{-t1To-L6cyS5s%;6qwRseGIoC{34o z%L2DR`;d=b|2^^KVcNkaN6+v3Q0KbZWy7MGpY+zjklt#zshUN5^l_t^(Pysd{U;}4 z<0K+%%8vJk<<~_&xGoYO;^^p1j=lH)jxFb|WtW*vKBf=W(qGFgOFRxz79AFpi3sOd z3jaHiUi3E_KkTstWA^7Bexdm0orYN4^N}#*cAZRs(${hkmmZSfFobY=kPBQRrL3%) z7}+ajNN8pwadVV4IOvni4<$wcd_lGQSSPzK1fL#m+bOTbSN?XB}IrvmE$*! zs(Q4V*kTTbj(2Lc+8J+`su; zI3cZF+xC5_PgFG3h*YLbz@oYTD9nqB(I0G;^dZuH528@qAlGXn*D6(oK2yWf6Rdp9 zmH}m%{f>@a7XQZNm!xsqQeuZLSFOe0Lk2RUYkcLPRFPnpMW=EF*5b$AhZW!h52d51o(csOPMpmd)79!RdT zG*3ZcRTN}(OeV!;0hH|ktryT`j8hC;0wVu4InaRjnz-sF>`k`m|7%^#*9WRa3Un*d zT}>2N`6E`ABX2G-P-fjw=JvJXY=VoAo6;v!fWWNhRq=R!&Za}M$}4HXF1T@)``F;2 zOz>wd87oG_=-%^zcMId=2_f+n;>)j_KW@YQx)MZ_cpAZY{TMDi9DlQ~@Ar%V1LToq z*=IJtKOIAN)94EFTfjprRo#SD-|f-0cL?4ozeiABZIZQ4Nv{))X)T{H=ZUK0{=YEV8V|KA`~C-M7!`^=*i673eJ1+Bvhj z>h{otIKJw;@M4G08*fvyg3v%U!Q@a%_;F>olu9XYIxs_*2XQ ze?v|O*Oz?eZ>?$IDdndW5~oSj$z*lRtvB|`$~Y`2rMzcq&moY@u*h8+dr?}Zm6;`^ z83PGVgd!`V=jQuFY*ZN+_GuH5)8(ltSLZzzW z`F28Le_ySfq%t-ml2zHNYiDR!6TGO=-1{+8w+mubo^`#iMEt*gk}7Zs$2WD+awu%5 z89FK?rd?~tk1CYvb}<*Np!xhE4yt^4VwhXnj203Vh}MU-S{qL5dTE&2hjnz;Ld>w0 zE|tIRXQ_!uD;WMh^+YKk;T({G?$I_0qK&lbq$i2FxJe7EOc7+znWuZ3u4Z!*ueWVZ zY+m<(&!%5(t#n+lwdL1?B#|zkw2(f-QXRmj-u`8tB_g~}E>bJ8l9SNEEzIV9;GQkur~)c`l5v8eRxu*uZ=vv5>`_Kr4sOp&*y;#a6YanWjoQOjn~U zC*iJPi=>soMjps*$hHi%HL{LSA=b+9kd1?(Uvl{MFI$k_*H=bsX*@9}CYJ|tA}-rm zzL2C%%Hrn+DljJL! z0xJjXPAm{VLNqNDszOR_gbmcq87#X5`U`YRted_;!!h>2Ti&bWIN2QOc#M6w#)IC# zlwP2+z{$6aNW-p;L=Hq9wQ^w30=K6Gn)i>>0`TW=)u^fFD#W4hLuIGV$!8v?ktE0n z!AVCw&8{wM%iqGnre7-ZwB1sPMeD+-ZWTd;2e%&?bq(e`2bttr2@}7`31Q(DO@+&_ z;sLpJzq}@ZDZQmJ7s)D(adFI3n0~FUe7^!QrbY>7{ zg6Y;?Rj(wT0x`B37jR24A!FQg5D6g@vJ$7Q0c=Qxjr%y_Q^gN`4Cj0CJHu_Oh7Ikh zNUOVHb$Bk38?3BlcIzJ&(?d(yAFkD1$|#Y#b~9Lfu9Q-wBV=jj6es!L?wR1fcWh9T zvv`QA>aoOIrN(K)Qe6;2`mxv?im<4dF<5Lxp2y=hnvva~A3kB-Ui@EB$$dZ1-fORQZ55T1SG1=%1nykqk`F=Bo#z>C2C4-Z#5pViuAMMiB2FVZYu<(=X? zjNe<73%rY-%W&<#@pqvl}(r83TKDgT&`>RZ3>yuD4$1jp!X1jHM>C@lzS}AH@iOsXl6bhq?WK*(7#>jikrjH#A0IZX0}P zcAzW7`DjIaM*3FS5g#Hy@#?yfnE25XWX@MmI>`Kt6_0EYZq;7=Q(fvqNy_=HX^CuX z9K%(-`(r}(tJjPI6*Rx`ILrStsVnrZQ3d7$jG5wrxMl#rKUUma?M#<@b_@BxNOvJC zHAd3wPDdNR8_ut`$y|cEz|)buvDRe7V^3V{vAoW&;YIcuzN>4+mJwwR3~;mddi{hw zSdaO^^RHmpM&ki^ZA?vQ_|yjO)BH(UliE1O7}a|6CM~A~E2PLkCM19?hR0kN#T_p_ zPSWGP!?q_8Ngr)B+ow;;8K&bR=?d=|6y^^d?P;Rus>KUsSVYeU2=N6y;q@h);okj} z@&AcGF`-kRtDNSEAnSr{GX`#ec>>-NKX@@5Zq0@+Y$Lw8d%cXdT|A@?nmHDW4dX}G zY3MYj*ms(k{iY<`mT_zWLnOfU)!nwcFyF<*0jK=h47v)9bWTy5$ABUY*F=f63v>Sl zTPu13vw{bSIkE|0s1B&{%ShmhLnImpT~RuYy7aK$txP*YY6v-sdF~p=Dy6;;wZPCL?8Q4c>{a784Fub&fT(YvRO*sN#6g{TWQKty z&m_1c)0}c~KA4?HfWhA#r9ah~i%%w$I35U&Y`vjUESZzj(Kb>^?tP0SpZYgSw~RAu zz*pnm6pP{aXAE^Hqgvh3VtTFfTu(D+lKWd+g*QPpzgErP)?B-mgjTP1^zyFxN2R|D zcsZw_6!Ejhs`kWk=i$UmQd z#C0);30HZvv_B}ZG9IY98^-OSmW}=&FA80ZrFNR^bIR*QwfB=uo(tsRXpu!|SdOg) z@gavdSZ(M}Gmw~uv^iq^s*&a@6*Wr+x$JNzC%gJjC&Fci5-DU3{WerfMw&<^YqY_v zXqKG!D={+VSOb8z_}RAyf4;C&*Y)_Ff_Z)`pf6jy2DU^3nglY3825H47^;N}OoR~x zSl_4zoZ4O_`CRjKX}!es3d>*(E?eoxm#80nVo4#|^YdMU`u99{u6wkdS;ue3?JaH{ z93bpP=IfM~mFUSaosC(wC`4XPg6#|L_0IT%Qr$#O?dsv4%9`3wimR`pBtpZ2Z>q|5 zuU=d$uYU2lgu85vZ$^m9B?aGLHm3$eKhz<7_fBm-x*N&X~`w z)+-0LKYcz@og`!+G=9FmHrVwa__uaX+331^m+ee{@`}O-Kj)pzrgBarE1sd{0%mz< z$H^S+gFCg~Fq-Z5Yeu5+S=lk;c$|ZtvB=FoaY@o2-@qg|I^}B#e*K~~b&#v2Cpo8t zy5x_?5Nksff|>qCrxa;ryRAj($~2iN8!y7=fUYf%HrNSU3YTafk3OV%u9!v<0WOQY!Z)C`= zsy~)d*2HK<;JP+ov+U1yvWaEpX)oRl^gt(>?aN(;d(y~S@#%buSXr5hWrTwMey62R zeB~P!J+rDkJ@AX8kJaxRIfe_HgBeb4aq=U)hF*j^Jb8G1{!Y@@7ussRf#>VXAPX6$26aFM`K4&RMS2mI6P!W>6QBrh-$!qR9Vh9d_(k2SJe z3Y!_ku^Q*nmaLzHwW2#FcZIgK-1L0ITN&--w7oNLIXhXtpnVvA`uporF;PsJRv^{x zHh0=c{uTJQTru@%&Z_OQhV6aKR+`UC>>rN$_3%z2@$S~D`^_k}^FAWubr=o?#?FE9 zVeSt~^Ug1}WOOhLSU>3;^$CvTQsIlklW_XU4J8(SDQZ@HQ(h@hsx{0Zjz<>T-)`+6 zn+O~LY!#JMFw|c%^F#0z&@(+2xU86=gb#Xy(HjZ*7!WsMU~EbC^g$@B%G@KXnz!@p z;7l(Lib2dRsQ0g>L@KT{2LQ+^m}wjRT7V$t0*VjI<&5esl?{@+SAzD`hS_pqa&t(SLoVSIAuV$ z$m^BJR%u?q@3to6|8Ct1l+r@gVlKnD>zI2pL&9-pnXOc!L2GPrq?ZQTXRTZ^TAPHJ z-oA!x?+5WF)LMQQQ&4hKC})~c==)cl6y53ePV0KHlCe!0~1 zymvpQ|LnyDk~I<#$z1xJ{(M*WzWo|O(uVijcT~7qh%!n{I~90xk48!p1&5>G5$jw{ z)oYvAbsVM#w@r%s#dXxIK&<~RP4<3&+MI2Y5&Cs4bh+rV%X*iB|05|ct#0MvVWVz> z+qpEy$E$SEu??NOe0&65=^&}maIGNQ=Kl}B|8FPvO0XWdI_GJqO+5c;NcG*b5vl)# zg=D_EPm#0DaJWoHy|B3kwxa|8M{4)E@^!env%0Mec98904WCOL&ytZ=j^Y6Wz^U=p zKiyxN1Wp_?+_n^$p$RLWKiilQz89Sm9=rP6y#b@lz+4)z-@@y4OXdC{oKj$*4e~;g zZ<)Tk=$Y}GdZ4U4fe?ygCOlY)s$}^@FOZ;Alkg1_&AYjl z2t=s6id4Z2H;KgW&O#E$wQh@SW=Y4K?MSTnj}rOT!~Q19sKwoFL=+!h*M z_iQ4ha;i1MYAzyD0Of*dYjUlXoA&%;+IedP z3K`CBBmI8x%-R3@(CZ1DNi7SFc5k6BT3Dodj-B6U>=;yDvbe2hUY&eHkoyoX=RzZ>eb?@+i6Q8T&|AR2X67;4j{uX%b^M^IlHICwVe8HYX~>Nj0?qAXBe! zx^2B>!?Sl5a3}DegXDa5i?{1R>EIIw;eXODA{Oi5Z|rpS+QB%^rN7RJ=C0!(<@>DY zIuY_C!pZpD4&u2%y6^CDNz7t$X+!uP{aCECOUlvBw+%g@^l(YzY4(|n06ppZNoF%6 z&B^TZ)~ZVMJ_sV82a5n0`GX54n#iYYWXX9d^3%z*Y;16492iM3}5G+g9#rp9)o{50addW!+1l zV}lxubjMIE0zCQ@yhg4jlYlF>;1>TRe0NKAV%uh)D^A)@=)UM=M( zboSEt2pCJB-^Y|t4X|6!@U(WnQMbl0D=9X`s&+j_*O8BWH+j^YAiuXlriL`SZL)rt za{YbCCUojeJt8%Eyhi^vJ_}!#&Pcq?qK;k{Wxzc=tW~=o>3UM|dwsrxvFVKcZwRlB zFQ!!}YnT;|s1xi=jwqE?W;k=>EW2$r_`D%9=JxkSHbOj0;1%khWCz_1H(S5i1%rNY zq<-LCHguQu%_}tGJ-}%QI=41zpldF?36kHV3MnZRRmjyYKvD?)w3_ClQM{N_yyR(7 zlefkQcz#m!pdQ33GkNbd=)P(9AwHSI^g{l|MXpf@S9~u)Uz0xAD3tVeGt$!&bzi6NI%{5Fc4WMGys>mpr3WhGl(uvCFyARsd%b*45klkD_YS;zOdQIao=Z^L z^$7li+w+Wcla(B9ictFHPF8$QU=Ugkkx>cvUt9BjplXd83@e_81ZHPp=<_Dbzia~inSEAHJ5Z@6+>Q2 zE~0NrJ*ok15Hn#(Elo4bxjTICm5HzhIPZLnpGD^@O(WIfh!z?Pt9ZFYWatBMp)w<) zQFJ@;6EO&=pHY`1_*&`rTjg5u0HuNHiYIUXb4LGHCU~Tvk@#ISELEv}Mu}SafvK#S z6fQNw?#eh?*e!9?v)Khf=G@om8H^0X3hmj}63!uWwABCsMF?Ml$oF8{_rXxPQJ z9(d9tjd)6pUR2`43<>*79V5-aU?7vya00kNB~{Xi+zmzS7KG&Nzte1=bML$Hk$Pi? z`u=Gndi)OdS4g63|K0qOah}HPuDO4-Z#(bhUtv&@{EnG9CbLfhh~`h_m$S;h>L*W5 zc{13lOIFj~Q-1M0dQo$saZ*XaKc&&q{1*&Pvd+V%tA;o{885&4P1PS^{4WR{EJw0> zpJ%?*kgsb;3i#djjflqR=;bQ#p>1uKzh}OcD$?9xjqQ(&%^>DSiwDsfmZwt%rTP|v}a~H*kW3&|w zccmtE&pnjsH7=FQ^;4ULfO@vG>wPUwFaB!_Ehv|oa6(m-{8y-$1O&y=?Bs45t< z<%`E`U~`C~O&mXVrO2Ds4Y2 zaq4WkCeijqq3Qx93*k+NLEUjk3d1FKi-IpNwUjZ&UD6jD-4Kx^rY)e!7yQysOny&a zU*0pkr?K%v`T&%>E&E!>*Ld5yU?C~-=D%S)htfO8rsZ*w3HQtJ*v`#HO3gy#>_kF( zU#jAucxk3tOAQ6M8S7t9na#hOrEUHq1PbC0OfkNp!JD=CyUYh^qu?cZqPPja4bEFp z^NTBsm@1{1RFB)uwX>4a%4ooKHT)I66=3UKQa}1y7|s=dRsQvM-(cblh6G!Yh#=FY ztGl^;iGAFnWGKs;$@8r0&j#8ee?s&pBYyb)&xSwV^7BjRNX@giHR-B|=NwPQGHc#f1@(cJPi`mf$ZU~Bw*8Tmp%CUbI=L@_K9 z+EgFGVe#8{Hfw=gQ(`D|g8Gu6LWe&RIZ&^TRKD(yNH7o^xu^@fYt?Dq0pQO_?J<~c%N8x9rJyO59-k%qu=Vy~BfQDe@05QPf723&O>o8rptd^I9 zBA?AlY#y-CRHl|H;KO_=QEcOQRr|j1L0i`$b&vgHg^9N$Q!=*jd&>(D{;MKPHujF3_Nn}RKZ=;2nsYrn>9-M_0!5wp?{R84Qu~)L`rJA;Q z6yH9bC2R$GZ{vK~iAMO0pqZH~L3UdzGG!=X!*TNCL^cW^Re=KkjPa4$u&Mv#$i4nrNncR9L;?G`97BF_>l+~r5 zu&JT;f627}%ycInOv)WM#w(thS;W-h$}9KpSChnpgTVRch>q(%!BlN|DZY}}#fbd} zaqV$e)+=7O8R|5&@d^!!4vO)k?I#RMS~-TyfDJ)`L1-t<*!83rdFP9s^yOeMS@2YX z?BwLAjk4wxzOsd;W1i+;Z6Bb%LP)Z;;(TcKR+YFrjTue#13i>EME>Nga8>Pef^X&g zjUrcOmVq6gmEm&u3G`q?_LCAv#&Qlvi{{OjYLGOCgKJ4|HJG zR}h1s)b7=*Fd5RP_NySrA1#!nx9W|YP;CzN$Na*U+r<8R z90|}5oYK+}3hhc6-K-wgyQ&qH73>$dHBGvs-l6e8?d*Rd#DM|#Y)Nc*uW|kJQ)y`= zx-rUS7PEmin6Yj~V+`*rVkg(dLfjnN+4@?AN5+{*Yx$ieCH(4t_zBk(ZOX~8lC$MW z_+2joC;FDQhEem>L1RiR$pcDoA!Wh;QJ-ONj%beiD1Hj-Lg`zx_dm6)wwp1>tY_fp zqeg4x1Z;DWG?hdpEbX|LF!S_Bpw!&RN)C8%^#vI4kVX53y6ji>&4z4Qv^3?z5T35 zN}))BW^dyrL;C4)K6?{Q`ww*}ZEE3b_A=jk=+L`v*{b;~uRF78t)>?ke?OJBae5c)F zi4?fE(@}pZ+@Pkm)Ej}>d?1$l=J|b}VMU3pre#FlKSNs)hXm8VP$n z$!_;UiN|`ROR1)eysX$qUA~QRV^>QTk6(oCPLZ=mb|n5^Dq*ftfN;S5#N)#wxQ_LW zM0lhRL-E2eu6v|_qMbtpoKw~meV`r>5CM^Li`pTU^frt4t6s@TK$l2%Oa(dDVj#_( zz^r_9>d%x#-`tsj*cS`3oP;`f&BjJu=0B2AF{Dt>t5^sRX%&8CA~`QCdG2y29}*56&PFHAXfv zVk!UqX8t}tzhVEwQV0rmnS#@Sr_eX@?l%dXJ`?#zZ~4fzaEcM`*=~r2-RtKX2f7HG zsVFfRp~5(fYC zbb=)i1`wap%)p#-hY!3(``@|9%DV>#46KDX-QWfFBmb(uo0|y<3$~M{-<$L3kRoyF zM<{`O8_vy<;bLf@GP~|98GDnsz}_U_i2C^(vmgJe%C;pyt4b z&x7$vU@whs-Key*w7KPmnPb*pym*zUQHZ=~51vG_E!&+lS8B6+gd3Z>#`Zo2|go6Fg0C5mYwG zx1+lwRQ#ScC6D(M^>&G!QE05WYji>@^__f*6HwlBLT*!x~fvW3)?MgDQ) z2o|T@J?zO-yMSocbVDz7W03@hF_n~DZ7GR zFYSjL;b1N19c5sJ#TD&>9n}XJm~&Y5fw?~!V4^@dq<28%PsjhEUv-zDmD93cZ+O9K z1`B^7J0V_U2~FgOj9cNDt|cQnoMrWB+ZhQHz+It#yxX$gyfx#k>Gg+}S2^=7*JdS)gg;m&T|xaw8^#n4aLuCkgM$b3C5;>B*`RNsGG`Tf4y zDKA?s82z0?7iV)R%RsdkntY9@=!>LYrEi&8Pm-#qLUvY>w8^|=Cx2E{epR7BcYBxyoN{thw+>}J*dEb%{H0FNTe(ctf0*r=2bK9AAf zxt`S0ToduJzPVOjXSm|sTuN_|=zT|+K1(u8m;JeR&8XS#=#fQBMK(bBxP#ytjq% zCGi2e84`?J8GhIfj{H#tnv@ ziNOIbCIi*3#vJl};G*v`%c8>N zB7aM;UkR+Uuue^tURu$ldGmz^KuwMCdQCH%O(L7Yf4H`0?Z%+HvWGwa>?%09U4#+% znxdMjJ?b7Ur!Rw&REW4gZ(m)aWYak+NIK323xWUHDkk^q6^i&xgJl){OkoHI5>Jej zL!F8c>TEVXzwv1}+A)h8*kVWNcK%oLs}6tNL3$;@cqTDoO*?tr>fNwK3?OFpN+eWD@=asyBs@hMuiXfVlX`|AvG9m3JmE&|kkNN_8vlGs&dc});8=Ia~? zjy|TpI9iaXS2XA*L7yG(pew9hinkXRlgYvti&aOq?}Fl>DAh-{Hp(ZuP}k*ej}?qD z;Zbdr24dPN0^nW#n;#v*U0To;_)>i6Nz+>9BZr4UI@MNSe{gyQ=-$t;Tf#fN>S(F; z&6`l-56(sx_Tvf+otO5M5M>5rwN+Qf#b=QP0MC3k zRuC-Eviyl*q$q9ng$!u&^mZPDLx(-4n`G+WaHO?2BrP#_aET1f&_+4Oh@^W%51}WL0ugE-(~$ zpMoB=d6^xl$;9>Jryih%(B;gkGfUT?3Rm-3~e^OHN{e@#IKwh%A z$L#mc9Lgt@4S5A7vB{Fyqt@`fhN84(f4FL8HFaqf{QG9H?5Q=f`yn@>>cMOn3zB<4 zciec(awD>2YaGa=!(Ia!f5D4l(;4?-*v9<>$d=8w)a@tI?Af&5-c*~5R^y*w%~Izg zro9JIT21njt?AknfRqL4-5zzJF4 z$4RSgV||E6LuV2gkM!nu)KNL}-si;#=3pv4W15*#`Y^KB_}YI55*!yIjBgsBtF3MK z*P^%(P}a+Q%9Gt^pK!IKi5F%RQ#CU`apVk^p$AF|0I_2=8Tr)i@hzU$s{IF@L?$ zAREJIJtx{DU#sgf3A+=_V7h$Vf!GZQi9 zB_1;0;*C@qvY+S~VjyMU%TTIXKP(XDb$b4=b=AYlIVE3s6NmTLdR5syyZ{ijl4IkN z;%+y;bM&*bn$RzmI4~AL;=Z;5TzXDRlbIB4^qE@!li<~`B}P)cP3G~17uhY62kQSs zbN=7@2oZ{xif@>kuV4y<5VtRDzZ>xmO*VG7KaA$%EfTq3@doG7X>(jGLG~qdE<`HI z`rQUPecJVeD!syki%;u>_`-&(ePWC?B>;8H(Amz{n=Jp;z%#4^1uomAEV?S1R^&mL z8|EaV#OUoEtqbQJWSZ%M=k)#Xhw+0a7CWCh8pkRnq=8YNG@Aq%o`-Cvv4bz=mW;=!6Qh_L$QKRW7b^F3q>5rDx;AEyeYs;yL&bWne( zdg|^dxYN|^Y-^O)5EIaL*NFN(Uup>+XJ%~8GgRQ+N-~`WeV|y;uB8cSMkp|ny3*w9 zFktm)^It1xykQ^M6gzzI%iPID848a~$t8$~;UBqyFaU>_D79}iVzGusYf~uQfne zt7*Q59CL*cAm`-5YvFDCx28N@Y{uea_{urVcgQFPv(8`OKY&Gj_eLr@0=JRhv|q0SKMYUC*Ro1lF9ohPG`K#ikP>kEMPO6%P;pX zE%lPBD|H3h(i*@Ugg(Zb1l#67VF+=Bh#i}X??8nBs*P|v*Or25xlGJL#l;}zpW zyl_0c;a+s^9l?zZvI{qW0b7$4;+%hoNE<>+8CePZlIr@l`gwH3g+ZlG@0iC}&&0>q zw+<%tHkfohNM_Auf^`-(1m<%sJ=#|EP`7CPlI|8$(-O;P?fH5Ha}TVF_YFahrHQNz zaGDLg7d)s9(6TwDm3oIui-s?4oV&m~ySyeDP2LfPDqy3xT-Np|(Wg$?jX!Y1A0mS& zg2OK5Eim4zTu*!pn@fqPORjz82_5E^x*3Y)&W)YE#HI)+mD$f>e%8LJ_r%ueYxWkbT&*gT#7eI%j005E=- z??)%&7GdUlVMY~~wKU8A2(==ks!0*y$2KeYHlF8OMu7p30ydDwXV<*Y9!f_4Yk$(s zg=uU@i`k1B`YuB`+NxHoPk(+k0D5AYmzNildjqS55E5QvwGWabElU;&!1=R!r1wp4 z^G>dD%o=i%WdCMcrSdk+%^jHX+tCyRqYt!~7;65V6PfuLf&bHg<@rSr&Gmggzu%kG zv=OQCO;dLP;JqYz)vGY-ns;tiX7%(9`~H1ioesK3Xn|D}ymavLj!O;ttUB1q+(0yo zjQcEdZ(%+|K#jQRvoc2vp%{^kE_!!z{#z& z2YofRl@5*zkbHT1!4l;wnuCTR`tM@dYIoI^kr!a;Ynz+I>RqN31TJ5WE#W^X-T&T& z-dEXAMRT@wsJOZC8xQ%FdaY}Ui+==%TfJ{Ui;Pv$AIG9QXbAjEvnrN(R|O$FYEtyY ze#E*z_64)u=(EsfKW?CxgF2%lVxsaiQJwc!e*+-knP=TSd#wtkeDP>-;_{8Howo;i zXTYz=SP9DdY@_Y@=rsuH52mZ|Sc!l!={d8;R3Dt6%_8iBXkunvKg4R8h_rPfjvWk# zCc!t4cl`Nv`>K0Mm;g87qupc~@C0<}GeN9>%rjtxZ9xoqZ|nYP-8Ea%6U*PqJ2pCS zZto>|?c&DggtdDnr-N}xHcXyq?W}UxL$~y(kgFWIOSIKb$h3?{h zT~biv$yn$9Br9h%lFTi$WCJJO)GcKG)pdTC`B4ZzkfjOgbs|)X$%t;m(xQMwm1k$5 z5{Pw=_d|||QMW=8E$MOaQgJMZs^p(iHc;_Nn>ogVkmUTA?V_f$J-;_kfM`@9d;TTsU#AY_tqK0HQ@mHd@9Xx5m)TF6bKcK*dvB9e0fci!q{FLegCVc!ZeC4$J zg}Juv2k7i%PcN);_<5kSkOEVq7PMcRu2I_&E>D;Ohv8Xq-fps!B^BR%2}KAlF3hhn zNdkc@TJ(z0T-mkj*IAs8ggj~rz_(bR^kplzNkpZ{`yENOGc>L0o38h1qLA98azTqIvM8=7{RKga(}Et@{sng#qUa${9x2J%el@wz6jxb$f3j?R%gyM~ zwPt*jlr;NAOAEDs*4D5RKTj-+mr{{`uo44!>nNo>j3aA-FEo2pW zLL66M7q|cQ&`*+s_jfYjJzLj3XP8=q3d@L@H^fxl5IkdM$5F?%I4*Y@)SPTq%sM5} zYKVHm?Pmn)E$Ci>7)n-b`);)O3%>rVbn?D1+2<5y@K{XdC%aTCTYBIlY@(~->rfx% z{or&bR)Ui!)~bnr!KbC2%>J|39(IVHO)Hq)PNPMMB^gkV(Hv0s)r_Z6U#`8Yi52|7bK{dkogrumpwXHZNeA%+4{3ZZJWJ@+VQtXQ9%(G~z zz^W0?HmX$v_%V-vD%@4&v-6^6EoA=?mnRpkl0lC#SHKVVpRE(Gd>45TC~PHL|3@e4 zjWq6IiLoBj0}_&5xNpYH4t4?&8||3E7nvDaQ!qH+)s zonK=8P5AYpHEuQS)~Dk;8ksQlU-f1qvNoN1Sz2GlkA09oBy~qOj6Fr}>`6lpVC`R( zwZkz(_{*eHY+tg2T<0Y_nAcx!izdQK<4>V7MsPI>`TV+MT?JSfprr~dY=mPHVo+6@ z&&K-Ml98yR|F_Jexu4v1-ou}AR?JJk8qPadW+Z;di(oG1;$A1rvOQ&9CgV*iPFvRt z;~1mJiZo2r0#~abTtYaSJl-q~A}-i&2EjRO zXD)>F6jAKgt2m#x z)Wj7TN`%!BjQ7ON?C~`!tlAck(0r$tm~sU#=@~&1PXpDAMKQyNbAI-Rjz?}M3n9=; z)3zv$(C5OEKTTBpdBBU^j<6nbc;JZ*_PAh0SmaQ8s7*X$cu`H^e9BU}Z3XN1%oYoH zrjk2n<{rEDwKLSVtg@r>T`cIDxA*Sji%gekl{gc+4VOCkBDJ%iNS&m_&re!~v3?8A zr?CR;4D-K63ddJlZw*tkcRfzz`-tu?xRiDuM8D_`01m-#PLuV*gtB2ioPTZOS6d!WspP)PHabf~&_0{T zL|{g=cW?XReAUL1sCE0`-E`!Rp)>zrw$>FGXm}+YeuFUYUTwrDn(%qjR)1&6>Pmje z=DSBa^-W|IFr;rB9g@4z(?`-pzo=fI@>#-_Zm=j%yHT}*n`%|P}x~_MI6`nU%>Rl~=+vkwMYeuOs;5?C9_kDJG zgLM9ZW%HjaRm0S|ni{vI1`S_8t%I5&LWv6Ho%N|@P0KJ8SauR-r8;|$Nndh+`~s$r zvSRlMR=++G;an>{)gSX^v{)|lt$13WzqI!-DXvPDPh3eq;W-rMHLTQ%LoU{iRj$); zj`NFl?iX(LG*UPgCc?WlCD?d##STyUzcW#oq2Gh*Wpt8%pr=d7 zbKk{eUTl({174ho#?M2USAyFDU$@1m+TpBV3@1+wGxM)f^evxu%B*5Ga508IAbqg$ zPZ=0hfwp~BxBY4T#?-2B9zF?I%gVBEO;24rN zh3_w&_G`1ZqQZ=Ro{T$3-&2-vwza7}^F|=vhv$L5Mi#x({|qXzBVN5;wRp4bAr(s{ z@cFxP1-h)cVVk<2Q2ey;EEvfv6kHn23iY!!!tSa>p{~^+$44HmX}U!HW$tTDp?9R* zmmETcRgy0Q^y2u7TGuJVGzVV=_r8(iV(Yvx2fRF3K?g)$OpEb-1AV`mY`}eo$2c&V z=33lw!Pn-~f33rcEO5JE9;d7%td*%OSTNC~z&7NPAf8m8y)g^g{u5g6`L{#OOiIU8 z!?hy)iR0H5n3&QJKcz=BW`5f)6#DaucjdM16WZTJi9ii0z;CO+LXa8t;|XJey%jHE zEGvz+7NFQ<5|37aLeY~QiFJX{Ftoi=?(|&*)^R8vKhTa(cssk2wW3I~$sZX|N}nE* zJE?fms~iuE-{sy?9@I{j<^~X%Gyo*&@%cahxBo*f!1u>T6%>n9>6MoT1k)7&(tK2T_MjJMSN;bn z7P&d*I}Y5WK9*_UjmDqEx7Qvr;bSX(#x0v?qiBT#nTE?^IWqQK_n`*jH3F>ovrk3D=$9-nVMthFQhx5btT0^No{V{8jRV zC_5~7D2$C##DyDH&*x?$&7WwBm415=DYdC>fZbm-I@E=W9(2I+$MWvp0$_qyOu_N5 zZoKMBQ2s`?dQszJ%7=*BG$0_>D=xD2HbsV0+YC1!hgkPUZ*1@40hogrXxXVk5jW72 zMbxL%tiNMOE#>>=XQGj6smgeB2r+H5trqcorZLhuoNA6bErJ^z*>||rKEA_7MzJ(j zW!j|f$vFY92wUe+OGb4*1hKBY$L+T)h39p~kiMcc9#5Tdqu6sP6k`hLqC@57NDib- zVKD!xAbP%PYm7?kNqjV7U-xp5twnGxLc^f+?6Se-4!$eu9b5pzVigQIcCs|DEVi`8 z_n6L9QS$FM9Q8^dU892vm%&fT+l%( zq>@5of&dQX8fRR?JpIf&aw|?B+bjRmY8LWC`~cE#h2qURJCCyWzUH!8GW#=qtCMO` zeFfto7Ja2z>szH0Kyas(eBprMCCz+L%FkKBv&Gfzg?F^>R?Zd``ty!+4NFUgY!%&` zK989B2nmfM%yQj!ciT`<=Axecihlq{#930omUk3rz6w|cnx6F5uu^p2U3%<{_kq67 zLM-@>hv@l4qGSRBGC&zXTj2#pzCT1pVF};@N>k;cQLtn&zJF%m+E&L&@V`3|aRFv=izJnM`G|~z7YuPFfk=Bh@Fk|6-u*BtCv=?2nCts2i?Y|g?U4Itd zAO5x%T~+o}rkR2lh{a$J3hAE@omI)M=2!4)nf^_v^0%cMvcA6C$bjor_J^*(v|O~j zHOQ9janC16`&LHQR}1b0O;jaAz=uR;#wu4#c$7D9w5l=h20~-|>6JBs-f2!j9g&dx*g`qDA#>I(zq8=(YU^VEmfaKA>3f`w--6tp z>z^E>7uRfDO|Kz2R3;mNljV04Wm)N_*zCoN8$+!e9IiL9=Qu3z5BzX#}F?2 zwRf>(e?8BEKG)eSGZ(M0TVzi+B{nr-bV^WH&o@$G%qEM(MJPPS0I+9sH*eUBKE0^8 zuA6VRl>EM~+jd+Rq1)B1TC`qM@oSSO^!6lcEY0CcB;aMH^LMJfKdT|Io;ga0B914d z951vk5+4Z5gOKdczWmr#?<_dUspNx1=Xg&^cNbWi5}c?6htzTbBRufWIaHk!W7qM$ zH_gHX@O*UV8zLU)&#gFe)7)p4+{^HvQ$lVPo|lxRa_=AW+QyWJNf&mOM67P}WA@t^ zDU%M9kH$xwEm)Kgu-ov6yArI{hzzh`&Qj|{3B>H`8uUIYN*(FZ^CPrULo z8R%zreQemc1XsTX9BLU|BN()l#Xb!)W`y-F4j;4RUgWf(V2Ihxz4&z4fzvYcBv$SRXg%MOTA9+A} zZ(m|ldw1uVwYPYBhYh{I{}uSOMS1Hbczk&qpc*Q56kQC?xyNJdm0rz0d?=4a)rJr_ zd;)2iH|T1Pna|GO>^*$v+-KtY}~wVrr%Ho~9)Q@jpJaZD*f(?LlO4YROXB~EFY z420&)7OfQpj*drJZJ`S8z-GiTjxYbj)66$T22?1V(_i*pp8{VD)!Nvton}?WPCi!3 zGVoDYidgfgMzGrBXZXBnCx0FUPr|j?R%q5`FRj7k9R~f{le6qvC7p+gENo|a?<=g@ zLI*qu83&vcDsqZP27=eG@^TrcXe{dK-!N^tf%*2Rx@)QW^+Bag(G}xR+0=PhsqQOB zT~ib9n+bjG&FANiLZ_b-*yxj9zt>kVF+~{h#ZaD%Mt z0*`RHY!&QPgEfT^i`E;6)r?&YI=?<-w#l>Oa}kigH70B&LP7XHWL;H2li&L%1OyeN zK^mn-r*uh6NQ^G2(cO(0gmib;XhwI6uH=T`oXe1_E^L`Qi0t=?tx4&1fH_|UUWuX1R%L3doU zfY{tM1UzLjCbij6Kiqh~qrcMb5neaAKSy0s!a@T+Of78;YO=Y%742$241E`t6Ip(7 z7uX*i?1leuz|}zneXUtvbVzu};@`9NPSHc@)UPSWAS36jl?0N$kbHW?vl62u@DH69 zB>o_ur}D6r2^ljamsLk^C#%9aM@lTliNf-1nGC3Ea^U4WCLiu_u`FI{D;EeB(7OJC zJ$!@r4926g>v$2pif8qF;DTEDr(zB!nHkEHA{1LZi35QxhgyugiUt+IW+kgl2oa4w ztr@QLS9foDjSpN#c%4B>1AA@rUzqc~JqjT&k5P$k!U5nts$sPEO6r1d zwxw)K>YO&^$_^!qPv#h!fpDD?; za7K*WL!?zM62+P>OI+|^ND^+X}qgzd!2>23FMC3g4sZcToh066yHZ5c@H)AQ%7uGD+_ z{H>w}URL*20Z2f+p+Z~ZNXw?$>3y3a$B!s5t_T|SWVSahW{!lm5Ai&YWQ`e5d79i0 zm9gVeiA{9hD;=3A%M;OZ4#2>;bcdUYi(_Yk2=(MU@^@D-3``Y$U!8T&{@sN;-(5`Q2fhKRZ zbK^t&?l(dr2~a8D;cBF!USwC1?gHphBb}|NfT<-Yd0+fAZ6F|$n-(_B956wyiS1~R zQzubvAOFkhaz@WA_@@k5SNBlaQg^Hva3JU>wH_hPG_~(mz&pI_&U0L2ueAujToC?# z!;{bTo*?9(7#+mTO|>CUI;P}1=K?D!=eOlJ&owW&6aaL%RkXq?1H`yF&=Qq%_dRiE zVknI;R9!YH2=luFirj<{Jz}mj;^#$;M#S>*wWC0MNOH9aa9dDsQ%J_7S_MT8x+cUh z_BYEg#FcY>WP5TVB9Q=$mS3G{oOD;YPrde#Ny#2c(oIDcdZ>k*{PYv2o&Q~B@1S4 zl?LVZvu2&3-DaRX{K$aPe_^UNyRy1^h_uVsS?V36m;?&VQx0AJyPyA_&_sfHI_o%@ zHE&+i3g&Lo?PQqlkEH#PcbC+%GzJ=v?@Unn_M>*wwBk7xT?{>2@VKy_ScTwZD>CG zoeQ7a@7YyWz?l1)FlxP{FyW&6N)xpSd<3pST|AXp{`#9IqD*vRMfP=~ZML+xJOksw zX4L)5HW|>g9H!$nzIOPB`|;=}D=TViCGN$XAvDJ9Y~`=4^10T8 zB2hiqqtnzhQ{VGDRj17s_9ICy?<^nU^Ye|HUr&?GRZ0~~3=VM{4az9WgD;CR$LC5n zjuM-8wKVF8=6&gIj5tVPue6DD_~ly`0CS7SCHzO)bmIfP&f&3_~9g$WxhE)M;EsE4v!KG=Yg%tw(MRzUmTzP z)%$!Mdvltx?ED?9*P-}ee_=_H?M>f~g~i1TF^S{*%n|XDT{G2>4q0@(ko)rqAdY5w zYlF-S?CkeutZ#6waO~fXysZ+ZAK*&&F<;N*-H%!55;XT#9T6?TI-`6i9wb_$KrZuw z(J+YLjU?cG)hmtT=FknP*&GJU#$>WdH%l&!A@-@RW|8lThpdW6K@$0cET#i6c82}| zmvy$&2w|=zA$9SgW}V{^$bFij3XVuXQY_eR{^&Nfu*O&97gr(0rgExA@s4hO{M!9v zpf~qVZV8uoBQcElX=gu6%*?^mi0$%RRmNxFaMO{Ky7QOW=d{4s^afTs$>H=?w$aP zr1hu~)6O$&JL|cLwn828Wd})f0TAc9-SG7CC-J#SD!J_Absw3ETo$?nN9r&@jbX#K zpH@bygh}{(X&(ub;Z+fjv&E}|XO7-#XAmodx(UsLawfhRLKVaP=_L|S2nY;pd|b=f z9AaAVc0n6je#swGE-b{7nsnjeeorr35Meba7`x%CYGdN|QTyPzoFP>VTU7pex&8O) zm!|U$!uX0BD6yL2%(I@SF@X7fwv8Nff}ivnn!>)zte( zSx0fAg!~ZT*pv|vc+?ZL%KUWjDB^fNhJ2JKNKOXu&r^F1dPpu5oD&y|rQKbt*~ixt zmR_`%R-s+VY&tI_2wyWr%L99pY5C;j(eP4#s=8WFUvId}>FVg9O7wk9|6|LVuY4zd zg0tq-^@voE`uX|U<&4=b8m4XGurSg`w0=j0`*t*fpzfbaXpy?kjN&2WpZR>ypF$)H z9k_Jb;DF&?v8v0f0Kq^|w25l-X814?HA@xj7_S~84d;zy!T>BM?epzLr zj=&Db0qPfKYTj6;LE-)^nAaD&s}Q8+?@<{eR|C*~^Ki zyQ~=?_L33Qb}{Ro_9?1?bNWZn-yoP!*ZRrk5UwrmiUQ-$=m+9$deq;8{;BFWHzi0I zfO$6B)P;tRo3!B<$Xxq9?)@3X3%Y^e@N-3_nvF}n7GOYo{xo2;LARmxR6FJBuC+C_Aw#r1HpE2A`TOfgSSbfy=l36Q1G}TFyTVU(f_SDYI%` zv?|D8UBl|wqRuu}BY%VuGT?#@i+3xH~B7@4314_f$mDSE%hKow5@9yD|ROQ#$3cR<8@z3Wd(jb(Q$; zJ)OQF?MnQ|-V)^hz{#Lku4potR!%wbYv%=!NSr@(^TkL#*OgBc^BcouGvfKsX8DQi z9%Xisj1PVM-Fk9mt{KB+`EQ**Rk(h}&?rNZuV*e!ciwg~(lPK_&mP>Iu(GX@UIu)% z+fVeYP2g2Y2=Mo(Oq9F*#8UoJwkXm+0Sayee;JwK#*H;8GuZr@r$GlK5+gEM2le0- zEICLDQ)4uWGy57ynT)Q0vAn3)kQA0`~W~6B@;l8%BRJ0EyI$Jd)Bi4j3NDS zAlszHwM1RfOVNOiuNg@x4=0#1rIHPwA@4osy#oSmrCH^gl5Mu3xp4-oeey23y zE4UTJ=$$yA9DG?!E4M$Zw5Rg;tv0r8wzPiSeHWsqG-G4MX?9T2I?Q8kh^W()#`7g2 z`?q4fJzbRmX?J$Dr_}<=z|6MAm_1>;s4i0lO59MU&nH^EpNwJq0+y09nlCE$1VJ+o z3J-JyE;qKFt_Bk90)50?zhmOjH(QU)Xxr%DO(wdIC$oE9F>7YG_Vu7z8qGSMpEYnv z){@0&^a6()0X_Y>dDB|3&M-n^Ozf*qzf?!l_7WC8G~@b5O}wPIe{b#_{nYEX)qRkp zm&65V&?`2PJx{~=GcT_Kb!VDV&NFXo4r3OpF@cKAx}bJa-80o z8#3EqH-|qzk*Tghd^z3KM<|79r~L)EI;3r9Q1@_P^-OHV4D<@>$0Dz0Q2fX9i*-Zw zRe`Vfu3bl$V5OZj2`C~uD8k+RQ4Db95^Fyo&0!q)r7_5$lvna;lUk_Owb z$ML^*+82<}y6Oe_b2)2vi_$?L7tOy{%x-EU>J4{iI~GKV^tC=I(n zf*~+GDxLCO$B%og|bZ zCE7ZP;Gni@>`=#(vI}QWbw8x3dP2+#>!sA0V-P-Y#si$4 z)j+)#phN-LjLomdqi8sri%E2y;^Z9WQ)>SWgbYckLpd_M){7g9#Zdt-Vf-k1DFqU zGd_yn`(B~_9>RudilwA~KQT#r)KzJ6wJiI!YJOWcRxv08eFQm|GL$+1_q zAFYhA<~XcajP~Bj@OXO-_7l#n`7O@IoUOZ0t38Y{JV{Hu*;|2rIB{VV5WexDuUB%V zVeNLT)b_WV6QxXxZInCBmEizD;yB~Cn+}HK(XV=o*u5ySuMfM1EVChDj}az{LlYFK zgq(#8b&{#+ZV_JsWX>bn)1YhyZ?@U?#_4JVEni7d>}uB%EFL}P3OG&*uq+JD3#mu^ z%9K1YIhuk)GGCTX2)p>JL#^&1{GuNtT8mL$TuT+WEqam^`^PoPnJ_G-=AM6~^5b`7 z8wCA6|0@*cHQ{k{%t|NZk9tNn%4rH7dClO{9+cGk{spO?*yP#ixh{9W|Eo`e*nuR6 z6e1tWjOrqaz}BUDJrF$s1Z6!2QgT71AP*r1U5O7^Cp^=7u~K0l5F*X49Hnk1U5zmQ zpidC=qm>3v+WQlcgA#D6*7s5=%vNwU(XG)!6rQANZa3^E}M^jgk&u~6c?yTxk9!E49sq41(F$Bp8(4n@bZ zqlzxpaSEtRi|ezg{5G(9zN&B|@;YpIxwF&Wl8B)R-!zNC(w|1%GW}Yf&+9ixbu3v{ z3k(YJp5*kkcbfqy=O+R7F2fu%D$1J=DGo-?yp;IXPYUsgc2WXRb!aa2OGngXg zzzQSE>S#Z0xZ!tuSZ{GPB+VAt0{y^#$FvyuG=61bvD{DH6~`ky&Mr^IP)}(K&AT{H zwS}HOQU9a55jruk8C~lbZ~lCOO8WDCxM#3Y9?iYPHP?e z20%*+A)p>6f~q(aR`E;EBIVxy5LOAS2?K%sZ_YnOt&&T|} zyIS3_{N43Dm&+9gv8z`ILrOR%7 z!>@J+%(H!fs?>vp#P=qf7Re<;O3U!w^PP!~#2JloYJrM$2Z@AHj=6FbdQ@p8x|L(k zEIW|Y#nYhy)9}vRoo{qCX&LT^~VK~Y->RCsr;|%#Xx5d!t4?gh8%Efg0fi#gJTkXZ&!hfK0 z3GpX$7p!Y3)~lyQ#KSRS9GGJLBr|p-GcDOJM8Xmd$c+#vco1mIg`$x>iw@j;z8@qb zDyM!@lm7L(NJ~5^z82hDtMF_gur#zU>-ozsLZFeU?EVAOPj-lx+^DI=L&HzI*|Ah$ zix#}92ss}{-8=v?R+9{`3Y^LF7~hr9qYoowVSV!~UO|QM7%N9;%F#PW4yVo@yMIQl zqLm&a9Gw%Y%VI!-<(BPc*1ZkW!=+5Vf)~J4aK}5T!Hc;BKHEcYCc=OJXNxfu;-%_nQTn>{*Q|<)ZznskmktMV|tQ~@qVOV*@yE% zj%vmxeVccE>+;6meA}`_)d}3QYo-z>O9E|`g_m%B7{HUw`#IfldRvyGQ?H)g1;mcZ zACk+e{tohEV$fTKnc}$_V`bt;v!#yrhyOFu57By4{WVZzjI1~^bIhP7OVI+-OQ8X~ z$z-XP!#f{+Q)*8z!h3ClZ+Xxd1ztdTp^! zIUeQBg(UB&W8~GK3oNELl=!;9A{|tE%}#Ht_@Eq{)aJSQ4=HoR)$o`<+@RNT8%ko( zUuDo+Fk!CM!}OC5L`-Q02z=v`!#g$>G|QSb@8H6q(Rkhit!NPN_-j$y+Ta_vw#7=& z9KLf(#E<~J))VcyH^0li^HJ@mzdP4E%k2*&(%s3d^ylUc+XYU<&4^a+8_VVkv!xf9 zF?uPEqb%+Vfb3bamt{^N5LNZ*Q>}Xy58T97ks$F%lmLFhQQaZHIDp$YxhUhC803{E z^d})ib=s~>+sy&8R{@}&APWdWJl!9=Ix*vy|5I_qgdhZsL%r8_{i6js!Sk-MVLSV& zxL>7$S@q(^q_wcOe5gkL(z+IOqacQUVD4_FqJ>6|UC?11fYwUDO1ePMH+`bo?tU2$ z#)VN*V0|(JRcU~?3CEjFieH2%*N(rAeF7^l{-*`7gpO5PN!}W3&C!Axbz1FX@BJO+h#<`rjJP42HudUu`WjO1y5d0Yw- zvrx-JLNj01y!xZ#Czl0PP>vvckz^>B?*hK>K6nZt)m|p*EvzHa~(!|3j*er3Ll@_sE(bRh5|K;`CVoh@2IQ7 z=oG~w_?xhwWTnlS#j(V3F3b?{|_<=q`9+ki%qde5Nx``ZJ14gdnd3|cT+>AFr zrw?Z1quXK5du_=H$Kfuwf;?)6^3J-maKMxQ&L;-a-T6cf-e0WIytZAXFcno>HciWA zjrksRoK;}|r-NwbKfAg`50H+HQLWADQmbJ!l|vQ&sePgk52As2c0->%adL}qvOKhi ze#>3=Z^%+|j&FEsO&t4sUz30M`2sxR&S+88pD|7Oj_G+P9*l|FL_4voBZrV=XtTw@ zlK5ZTkNd==_MURes%q;DP41!vlJ-(IJYo;eo|P~>|0KwcHuEnCtT?=$_Jtcfo==Nu zkXmySTK@HnKL_}Y{*E5gx}ubR;BQ6zGI+fn#?9=ws)I}QQsNzQXgK!!4lP4BEDf?$ zEwmvbsf+n-B`WA2u5a5&)QdMx_x5hM`u#qmb8uv-IpB}1q=!JYXY$q=Wtmb0eURC9 zWE6FY@$U~(L|q#+nc&_tUI~N6z1z=qgLb*1AxX<~dfShz`?gx^R=y6? z>p~g42Z_O<&z}9Q0;E|uYp#|P;Qr*jxt}jm_XNht>c}KTf)@@Se7}jQm2fId7?vv4 zJp?|LiY4rOyA(aLzG;ux1r3eRgi8!h88U3LN%w!TrpEL3OfzAo=RAYxJ^b^HcX2%N z_6^RJ5@#emzM2}#|E5{bL0r+5{}vofz(67B6=y`1pd|?1lX;0tNsGU=wDWC-rk4Jg zSdBlj4^?AK28{9*YqE=wwcWO=gz83L__fj8G{%;`pOdam+$9KUNKJROWf|DVwq!sP zdxBN(c#i}AtW?qOjp;D})SuJv(TZMd_X~F3gfm zQs+kuXbCZVwJgq=+B_9R!S_qZ$Km|)Q%PFOQU?{gOVF918#R76A&EF`|Dlw3c7PO9 zavvuTz`Jm?)?hXu*cw!n}ixHOgPb;-$G1su4|{314-OI zz;a?Fsh66WK{9qgjhWEX?q8^wp%fC`3N~63nh$BTm*dBT31|ljqB&{?BW?yX-k8d7 z?X>Fj5B{?_o~3lv-**{TBiDGLL3|F-#&4^dm_UiV^}mp)|4k+NYeX(vel8L7Ri9po z!k9*XpoV~3^NF5#qnf!WA~`~Q`uQ_M%V=S{8!;qbq`BrHlA9Rc(b1vE08?nu3K-P0 zB-u4{F)>XdM@>oCfV|T{UC^<61g4y^rCGI7PL^%ZI+kSrMIy)W2+C)@u4*h>yFDo1 zdII%GGT1!)zOzS1!;^)FPgO=;HUs6;$)QWGXFK8afi#RFfY0I|&r)}OB}#WW)q87t zn#4)I*}!A^4z{goH3xxYd?@9o*Q>{k3Ynv7muuJWuaB=D@2{_Z(!~5gQmd-?nKQ#c z9mjtU)(u1*+tvMXSCilbu`YQblBcbI9>GEIjo=2At_TlA@TZ*ceJ6p(=Qq((Gm6bkWgZZLe-ngpuj-SX^KoppX@I^Hu21MRqMgEjE2P%A$}*dk)dU6-29(6 zdPp6&?BDcJZM+j=nTVaC;kr~Y$hN4#_~NDbTnTY`U#Jnql! z&uK@fh?sJW^l7tdzxmB58nBptjK#ETPu%%714fvb*P=fXJUA0rQj^Z_x2FxvUityM zwy8Q4KVcKg5qkw>2{gM7`SwYpm)25SDTtaqN&8-nMX%O&1SdDh%%cw^!w{fau#Ni_ z&60#RvNb&OBu|aU^MNDfqe#reM|nP)!w`>j#*x1s-&y;KR8@ieK1vBQmJNnuJBedT z4v?>wdX)$8O}pu*lt!p=JQL1~(Hm9mY^&?-mXL?T*(%Fyr~A%ZYu@T?({q?yT+#EB zV*gr;vI!YY)gQ>bsjuv>(kz-jVGnS})^XmEGsF;n@aK3E6I3gY$LfD33yU`X>Kwyc z3G7g=olhO?L5iERUaX23Joqw5+>j%;8v`ohVOL^|4R(1Kk%Z*lG=`Hkavt73ncM%{ zhYH?w{g>AQu7PoJbvTy6M0QOZ_~)sjU^CU*qEv zk+I)6Y_^CRXQ0_6^E(O5rFKI&a!#f>?^(WJi*%;xzDeRVb1O3w6x8b(F*#mudBnzJ zNz&#WJp}rq3kV4i&$+t2g)z{kj0|)JAsmsi*vmPSLnNWXMj0Bn~r7UD7X*p)0s|#mzB#DbRnj zTnSTM?2m#18;rkApt`Tu=SroEE&rs>hYOUg%;uQf1m1#2R0?a4>NHP%sD z+N#oQ92zO2rTZA=?>iHCXvHSg;&skD7JpaTFP*4wr#i#d^%Mj)VCg)$F7kn2B$_3k z&vrn}d?NnZnT#2l$wz=5jG@EhAfm3)_B#)unRu~=Wltpra<*XNF?~Rn))FG_O*t~= zWJmU`65Y6-EM$D?vHxA-V>hs(=R8n1D3Wl>CcWZlW##4gRN|X}2`Hu~6R&&jcxi*x zAR^jR)O$=6RK6qULvwQAaG{+4&ghUzc|&)?XzcTbZ>dWQ(jrs|kTzdK-A_{5DThVQek+W@X*0f3bhvo32O1jBDroe{Iz&;S^s7 z4vOevcakWu<93)m`0uCTNbL}}!n2{7_}?4vz@4mgcu!v21{A1m1lr*{hGb+5mve!H zLRoUR{BJR;fT29$xvy1D?XTj>EvWdz<6nBr|G@*^DzM_euG-~&l^75hmp{;xmmx*W zM{Decp*4@HIm>I<@c}2RoTL2RpP=sn{w*22+fS`6k%huI)%yoa%LPHCn8PF6^xwR6 zQCEMGu9CPjA@=M%j{#`awE$19oc>$@*=!usBWE|uvM+sd(jr>OR%W4sVRFW2^N)Z#g!UYGKf4MYR#3`gLC*N^RIsypN})*Zx$ ztY;O!Kv5`tr@Tee%;}Um89`S^gom}X4(!E8l&qfuvKHO!qV^0YM(6dgLV%;UOLaLMIe!)Cl10Rnu{K-Qt!YkQzG1@r$d0AY^fVRF zp_c{Q?A~^@v5N_3WbF5@{PDFy>vrP@yr6YR37_J+WdD~OCs=)QAWJSV?h{oE#7B}} z4ZL@tUa|9xdIk>sk#QK2Z$WCZ)9eRz+3$sv*^&O1jh_|6S_B{AT38}7%Dsd@8Lk2!he(<} zvkX{OWV_Oyb$6j#x)N{M)Xh|TRcgN?{L-nJWY;j#xw`AKVnx0FR1$#8i460Is5E$C z4zEv~^tUPTX)J#cF>R|x;4gfztmRofTX<+E8bUt-IQryly0!1XlJSNgk?mXd$z75k zJ^+%{o1i4@(G>;cii=Z8F&GZkT0B- zUk-&ha(juKkmn0Syq=4?{IZj`txIQ$>Ce^xYY#7EMM0YXwOP2FNB|`L^4xY{`K3xx zF9v!}D~3rX>}t+_C6O!ZA6?()ZGf$r{SQT*1Ve;5#@%b@(V)Jv*fD2~qUQk?PU8Y4 zntqX~TIO*tihPHO3RA@XG-@B&93rMFv6$F6M5{aE?^wCdE9ffS$#6@0r;0S-h> z2N0_3H1kl0OUpJ=C~*@d5Eg$uQ_hial)cu-o(50;_Ddk7?#kXhceENhOSJ#8+EXRR zGJvciHO)JZ6UQ4H+q$E5{9s+e>2OX|**{Y26Em(*#^bJcYxDjn_{{ zU{(c%!tw`h2fcP|eEku9^Ta1d>HCh5Fv4TYLJ~0P_&*g*Oe8|o^VgYfNh4gXJ?Y@bX*$iAW6Fu zZ?#cNH7<w2+{A|o|zVT!Dqp9faUvmOHUg+os`N?CFNv%Ji? z6wT7};MDAGMLqbh>6F*%De@y z9BRw3loY>gTfX+puSg#|uUcxW7;_RjUW4|K5v#Urem{@V%^IW~B9bR@IfKT2QNEBa z_?oMgBysi}S`Ab^r;6D9aKq7LbGAdmjTl9X)br54Nez*K|K?CgBf}EpOM5ueV zdToKf>m)|EAlY*5xjU}H&XRcvB2$oi8~^n`~zG3^s?Bl-F;nV-0;Y}#M> zLlO2N$IyI|)>khkPwep?JhsPtGZm4LF+tcuZom(N#`<)QvG`AIfp&P_qdEtMh z9=vUj851fHY9`}gNh^(VES@9&LWJHhz>}4sL*njesFed5{!&@BjZ)|>Hn)h>wHeGY zEE+$v)r`<_nYwYbDLfS3`riFRQ6Z=wa*~iS=y!`w!6~oMbj$@`X9FAbZqUovBlN>e zA;8!YXVfBa*>iwl%Q`?=27lc)D<2D-M%KV$BAL`lRNU>+awy&j6S!O3cki6kOcho1 z7NyRTe>Z+mrZSYsCeduoLcpMAAG#qvupID$!RkP{tb^RA=?t=Ulnm|i$f-@qEyC9tl=j`afZKbZ&rbL&fxK0)KEIkma8lF&ek z-f_Sp(FNuklnDaVf#7`bTH5c|nqR%?)O`|Xezx=m$q~XT_$TuShGqh;%%5x4gZ3L#zgsrD ziQ>71ZFE^hmAig*7krDJ6Ls)FthaeIdD!?Me%MNTu5GqWCjg``fcTX2G2aE z_5Ul1wfd4uUuVBkRjpn8&G`}_cuq;7FXh5!TK+EZmm_iLg-{Up+C149{hb))4%79q zvvBD#uvpW);=&PH4$k~QtnW`Ukx9l%<%WeDVBaL8UG86wBlhd;x6Y$rXvWqO1Wlsd zN%?m^xP2e@=KKPbYaB>VeEwS)uNq&3Y@S$$HyWo~&+_hdPRWunCHdwJTPdk?Aho~R zzpF}vv}Q1H5y+S_7{Angu*4DErX)6^TzFI3R|)~Q917L-oYSZgNVSB9PzX+&BSr$ z+5xv=B2iV>M2-4m2?TDSsyeC6Au58pa9EE16Ciryx@Ld~Ff4b$DXZrQheUeMwCaz~ z#&hJHA{`{i^CaWP`;|dHmE>~2?@n%YEk{}3>vIqqW41PCYOuxt{i~=q0}l|6goww9 z$O%}a$#lrit0~x1H27etM;r7#!M)z8H|N@W4|1>S`2aRV% zG0e$vq>ulcFN41jSUIY{B77wUUjK}ch2NTKBqglO-tt(ib~-7=zrFM6*&4(XVM;*C>12vLw3L$Ed~F5rpf9H`V|}*}TP>r^3V}t%k-PF^EoKdb z=9uGBS+Eaf7Bt5{u0shndwhi2F^^tnGQ1V{`q7hUVoU#mD_gCvDmAF-99 zDT)Z573-djn##nTKQqXBf2l`lCkPYEINwn6p61_h%NMnn5#I^;ehnSodO+(@Y6X1O zhQwrA$V=PccgsrKEH{Xgrlp=o4)Yla16TI$eI9jk<-o%T9eQJRtR3alE9LfRL|JLh z#EZ0i7JG&c*yoayozj?{>_@goNobX9n+N#-><@NpIcR{U?gabs9VBjWqd z1+b1yp7&POFXEc*J48FDSN_V$rJt z%exrF&tr3wgip%DcVZMi#2Gb}J>>jNlRaP2S%b5kZyQYc4YPt?Y8wXp^7uv0$^Ujp zONV4toi`fLvjz&k?!*3~5sNgMj+dIfOg>;A&;Fa)zOlr~q!B?f6wbxU##@s=rmxg7 z1_aE^4o-?~5ho+_^CTV@ zyB@EDydqvat&2j(3`o%1z-zL6V$aloREjn_VwDX(kybSJ3p3iB=k}W8jy;Qkj3pL! zELM#ypkgCM-b2I)i-D@oHFjO`uXL$XkG3DKC-a%bHk#8$+N|)_$Ao8w4=2hji>>w& znj=>5c>8mOj!{Tb0~xND1H#y0IALtcg7vwR@|4Al0K;l4yIBUL=T+DbuTJIUc-S_N z!T4WU{_@5}pNhp%Rmk0^ zoYb!Q`n-N@y=dvkoW02CxUQ-(A!YSUO}4a&7POiwlGzN#j~LWLC3{`@-+6ZeEp1E1~h6yQn}GpNa5+Ufr$%?hgZ&F}01R zM4=giD@W?a9z(2S@6DY2{@OY@9bct%J?_6s;Z_BU%%0$Fq%8M@G#`GJ9_FY9sM(JH!a-F{rDCl2G7kxb_ zxJ-9=f(wiv+6aqGOtp&ysO|>FDvy~g)%dVIK99mfQx*n@#nR#=}>LCLC*lbBV=livnd|Gz}#m4_mIX ziz5p6LVF6NGdGhRV#uPdZ*)d`ZaHK|z%JHCX|a7*74=a$ zGHIi}-xB_ErWN?JBk%KTi|eXP23}UUDx^|?;rYV7$2hOX@dNMV=W0(kpQ*;zFk{;L zrzgiLK8Jc^B@!(RFLb2u20rf1!f4_>o;ZF_`gM{4gSpDw>hLF>k#HTR#(DRlJ|*Sk zEb;FUB@uLm$|0rN@$m|6k>|-to+jduW(K{c#Y%|oS?X#l^U&3}rf_iB;B$uLfnex) zNuU~1;^CJ)Z)4TNoF<7eZJq66i4t(zG-o7P_I>C}zPP;cl5KLfNn%!2dEz$td*Bb$ z>wEo1U6H1D{wd&%H;wy-~gKf-C4=4A2y!@IXMkd7Y?OV`xCuCO=E=Z zwB0~Oa}8}5`U9Dzem%PG_)q|=;vB;Q`)FvOAJ)=$;p-UP*9IUHS)!KGrH*b6 zEs)BFTl|#2AQlHtv6WLyvaoDtcl(!;qb=ss5(tbn#(c@)gd;6KuPmjYpjnUY=XWTFt z3FB9;-1gWyFB9D){&U9mH?4*M@t#CTQ=*T`o}sfym<+Ux(k>?+svKY;CA?ywtOxW< zcJcaGCa@-vO-J1}B(zvD&0Szhs%OMpw4z`Uh8S`qejsl@q5PC`IT6|FJy>AYy#TJg zS%&LZBo1h#w?@UbgGDdtseP)qw59NR{H||BvBuKcU8PE#@=NUP;SYt_|U*VD{OS5Oo3xwVtF``_(i zm--lAa#|JXg3B#g9jGnQ_ZGTaraM}7v`4hrw=MY9c%+nVN>Ym~EOYcK?-7mA1;SX- z>-`ii&gL?iV??{UbeOBFT;7J2%9Wubirg6k_aS%zW?`vc{k5ktvPV~)vI<3fr zQqI|GPcB^{@m*K;WX-xd@x#q)Qg|up^TqSIdNs!4R(_)j_n}HPj(oC@3qOJ(P<{O~ z^}WMU-B;!rfH0nhKPH9wwlxuYzE(;76IZWl97D%4IoaVtFRt4@I^&J1LS_Sk_bZ!aNgYN@rh%;X(DGN$DDfTyt zec4FXzhWoF(Tjq!_*qvxiXgPEOoLGiLjf0UwRA(W)AH6M7@Ww4<% z8oFu82VGt*hK=X!Uu(w+%Km|Vy9A!@y-ew-`3WpgC1H{>B)IC^5g@uwaBf|C`Pt`z z2zp1YY=k<=+ld|hx$RE@+mhAbP~E7XY+4W3w|9Oy+bx8|y%GP%)>}rk^+!>nxVt+A zin~j(qQy0Mpg5G4;_gx?UL1F@3T)^ z`g6D8u<*)W6GZSl_wUEG2;je|S zINJqp%s-9r^hs9!>mb055aQ-qgYL`;$wPR4ceJ~<1GcHP@*}FefZkbWJmpuD#0by? z$mv>KCFR@eLh*}FhUv}3HP+&t^~TxR*;uFVvlWyd@bYrn{l|KDmErJqiNRVX-&4E@ zrIX2{@I#8w&gh(rrERZ*7awc*8lu0#ig;bt`7@IM-zG@bO+3Dk9%=1Dw}>0p`^PhpXf|gubIx=l}t_%(42A zq+VI&L?Qgp%9&NEP8-CpX~gnNX0&F6ua7qLXVu%P{@e2cIqP~IgBDwB)Yyg##lA1C z-=bEU?!OuD)%ba$v@fp%jPWB&JX}{LzW)Z+mSVpjDq8T-SJ9b|9%ul3XZ(F_tfAEJ zv|MVro>^+C+q>?_RjAT1JF2;i-+E>~cK!AN*nO!WVMl*}mYJTiuwU+!%EZL1M6qfZ zroRlG9C&(~WiUueSXc09R_bnVMby@~s}wx2WN z6is< z@l6*-@AI^WJ<-k$+UFAzHKv>R2w_jQxap|S}T(8H$0&W zEFe!Nka8&C^#4*yvZ1UVrKpO;HJu9LWCc%=@Q#`;4tL2^j?)@kZnzI%^!cU!f%I zJGOt%qYb!0ZfRdWIYwD%smQ=uD%2J7JE>Hp-8~V)agMDs4{*`OqI$a*@YZPsN$Cr+ zq|JS0zL+i2ZX)foMgN;TY!%6uraz{0Y^GDUH}sW#NKxNyv)micAl*iB94yW#$p2Z{ zcFi)rY%C>m?n@)6O^{P`0ZRSr+Gt!F1yZ^Lb?cZ{c2N&^mgslesheJ3@!Yn~e?aS; zi1)?T8OiLa^rV#2?=O_ zxjse4B$x^5KM5OjuYo*;=7R*37vG_^mH{PvO<1ousG>v9>

f^d`$1SWU;ls{#eO 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 OJC3v3J9i}3@Qkku+1{5>GS0E&I^v(rNbtf zy}3FR8i;?9^LJZRLQsXfiVVw88odwIeV?j9R*X?>-Mc8&r`}jemTtoCp&5kkbNIpB z*i1ZXWwn5uNi0H+a)HqAMpVh->&6g$Y(2v%vs?=7+i9_+!-Mi=;V6q%cpjHXQw1K< zCc)KKQy1czxQ{A5jSL2i&(Cd@R;SjLr*s>Sy|4D7nx;vM zEAH6%kSL~vAjksmQI?5w+;F{Fk%grku*G8!@l5C_+Fqg`55MkSCc+4VvQW z?Y9;AkJE6lX&xsZv!GjQQ7h`}0s)BIVE&=P3UHk89LOJyBiQj0>oS=v@Xa@r*`n

qV){!IF7_hq`HXyj`S$aO)F$ zqZ>W2=&QJ;v9jhO@Jo^pRfxEUTis0tzxt(CLEsC?s_D;YOGJ?u693lEknuH7ZBzF_fg8xF(5eKeIaHwc)&;-eB5^r`gG^{u4e zXf~ekBc(B_^%JE$+l*jm!6p*D%61-f3h=qbt!S!0+?>>;tx% zF)Mbys3shV+|oUu&Is3jJ~UDOIO;?_Mi}(H9bDU=hvp_NRjH1hCzVM9n#4L0*sAM2 z;R7u!UH_zS;#Ui3q)e&~--zf$mdS`kqhr|XQ>l_?L0Y(%thW#vyM1d)O8|0hGF(G6 zjbOP|@(%inz~$ICM2hHX@t6!6HI5t+P@0)2@?K8?38$uaD*qo-Z^6|Dv~_DE#l1Kb zEiMI$yGxOx#hv2r?pmBead)@i?$F{IAh^3j@O*jS@7{Cn7#aHqBpG|JHP>9vv_lpA zl4?u{As-JVGedvr<5a@jBI*>;smkTPyr6UVD&^=s^q8~b2}BM`Su1j4E3 z!09{u=^o}bdFneGiZbQ5;lTTi@h=7BQTFL-JJ5skChckNgNgksSoj@&F-O`g5bOQ3 z!&Mue=L8A7avjoQajVx=)xjV`Or(ka3?|#uY32Gy=1?=!xXA8ofLEH*i3ok#W7of6 zease*Zi2yCBvRb|J_GJ3sx|Xyj+WQhESks8`z@=uAB{(aizTfGp&Yr|FImKtU8CT~ z#TR3_9v0{-VIPr~(Vi9~M>2DPA5?Ud>{U7K! zgzFV3QNknqzrrzZ2GmF*u-aJi(@}@NIC!pDI;LLC>1WN&L`yJ27~hKVAGsL1v6zuT z7SDh?;1A_LCE0sA8NZM&7pNNL> zGxeB|GmJ?(-oj@@EG zkt9D6iCo-t4B5N{KLq@sH>3F;{ep<=dO=C~2=KzHQoRKX!efn?D~?h+t4c5vAT=BlnT#4Ef86;N-?fPd%`nx6 zZ{EyqUX0Q^svjqTZJadfS#KWv3TusjO$GU|+XAoe{w4=I5QQ>g^ayq_H z)ktT%>#X`Le81;XB1xj@q~UOk%dABLjqj^}2z93YyiUK6A%J>3@|T$~5WEx)V|`@rrGH zi+X<(89m3!agUL=io@3KNvg(Pi$NwIPOCqO%|XnK+sVl9`Aw$Rj2Ir`6+bukb!)R9 z$@Ff?yr4*Rb_WVnE5?Rr4@l7bGedZvzubOKnw|4u;Wswc0t0)Lc&H$PKK`KU$Fl*m zkdMLd<#{!lyloZrHZ@JewL#S7+h-K>Z|3Y}mD6PKT#clSr^NIe_Y$^MmsvFfE) ztwypd-i{CqD+&)!rAhUYR4r0}()rOBCdNp9eT7BBz`T+md(}Oeb!vjk{`6RB&X#53 z3U9pzb#P}bmVxr~VJWSd+m9<9z3Djd8Tl=z*I55Dj@lymZft5-~FS=jOZFx}|cvPSf2l!_T}cs}St{R@&?2|7Zh&@eusML+=yRmbo>P%5-ae-in6aJSDl6 zYQ?5Bh88h+^#B^sd$ypxVDiTjUdDHZvwW;!UnBgW(6%GRXDl{`T+6+*@H3e4-udx{ z)wk+_F|t4i1n|G9Y<#I(RC3KRow7@J=Ay>Z2PWn}eJn*AdRnC|0AHC0))oKIJivay z4^#VGRi*dyw7-#t1|YPyekTD(>GUNTZq&2;RoH86QgO^Qf~)>L7f@*P(CG(uS|V<` zKx;|1b*B+%rdlvDKyj>g!#87FD^9G;kgYt|1dT+n_D$t>zvb9wMabc#h~cToJ5&yV zwu3~yHZ8U#E2-`Fzgp2~3q-I|ch%2U-wLBj%@R3zVHVs@%R=X2*H+2pN}rzJOI$n8 zyHq$aZk1SU36Fu0SWeHDCE@Hj<>#~29F+M-8c~2#!{uaQAmRrV$ytq0e?k|(R}6B; zDYyH#0wT)qfBtM9a{6+zS^dPq*F;#BWF8eN zq%OS92byGMk$)7K_qiUZ>Y+MK;!E}524LOP3s5LqM6P6jZ-~J&-`SfJ)xcz+H4TxX z{dG|HWf?AKt%(kAzDC%;xXUi1-cL8QWh;mclkEY|fqaRPI1O6bnA3uAtgqtlNYQbd z3zl;?m?U8>%Es#fGU+b?>YX6n$;;25&d*ny|J9XG_9G*6XG{40>8!Ik58HJ+@B56| z%*)(Xv5Win4bjwzwS3K{;Q$#|&TpI6D4g+91HYb`=+g`pB=nCdBT_MfP0YTb`>G1F zTd#H|tm)C+bjI!6_0^96)cJ?^)6{vA5Q5H8co#xEjh{xn1pc5G|1+i+-)ntTGf;G> z1w8*ed25zcVO&wWCN_}44en5vnj_Wd5 z(quet_{$EWLo;)xQp#ceoCq8GAFuZaV+b8DH7wz5Q+_*2uL% zdB6PnfBmxe|5SqpB=`I+ovlh0c{&c49~~Tv7m}mCFV(0yD7v+YWD%w9f7Q4cC#9|IYGfiiLQiJS7fY8J}7Yi zg(w)yRv|CgP=OJFJAqodJ5*bNji@SE)T0xdFunPuGP_mBa{dBLj4&v1Wg($zNIK~8 z%-XAj!)UlR=Q`@wU$}14S%#^^Q)0L^R;MO+%#OgtQxdTG`0@!gM_^NyYEFZ6h*0H0 zXQi&BP0>DWs??k_e$}qgcz3?K!e+N2JYA2WU6}82$Fz6U$x3(iR3j`l61KAP?eOrh z04Cj8^}KkPsTjJnv$rz%5ouiGQyJ);Q&|4nW&cTmmoF!1?P2|ySaH5K`N&Ft-BgY= z`TPYslkgQy^MCHNFUOd(Ip2}My$1}Bo(0i2h`g8G^v-QqJef>z3(DJhZEz@_2kaJG z-6F%`H)mlWS>W>Pd9qmJb)Msi$JX+5YS(z4&T^YdhbLGK7ezM5X`z$b!JZ3bw3B{7 zKCf>(2$J^lF?_(gP;!>XIGPsugywO&yqh-}OIL7mui3sHgCF^~SoMs>T{sM0LWRyG zCUlz#3d^+QE)3(htk&}wi<>(^6gh#m)j!WJQ?RI)0NoTpTJM4TkpDe;*&tQROnaWt zCeFe{-~jTt33-7$9TI&O+1SLvuCK{*iedO(aQi}sf#^EmzlAP+=mr#67#*yOscdPW-4Il_H;IZ>>uGi#2SsOrLRR|Bc|=$PG0?z_xdS zk^wpg0*k`HZNr0PY4}8izy)#dU*)!YK&$;*g@0k>-w8bW?zj=V%yko)@Xq~645DBn zj&naY&|-7=+-*B%j^G;^`GezT5k{0@+-B9z>bG!dyd(dLpkH$aYPu0|#o(6O=iCuY z=L+u`p&2j`Kb}}pcDf1)x;FpCLR(%u?2-6$?7I1N0fvF+fMjd#beS8v83|=nXJWE| zw6V(C;$aJ~#)u3)97b0^c5&30x8#%_8@8RQd5p|y^mcN6iHde@z5%$!dxw#M^WLCN za@*g5b(4c@YGbO36s#?e5?-bL!vR5(l#~wMa^e1Gl2kW{G}$Rp2aEH(j~hoibC?KC zr|A<9t6UdyJR8XrrZFlI@G@9v#KJ90Y7nq0fLq#dGW5}GKxOQ_XWCi?u{Dyg+o*Z5 zaf*@$OZ%E{38iJD`2=4AsyeVk{& zxt{U?S*Bq}P4>RcNZaQc)7Zy*D8W!CH5C&48?EwWyp5alY#q6nmRzdljC=tlA&gUC z=ms0Eum>O(h1bB+K#>}e9liQGjkd6F+>@;`Wx`rMv7w+*hhvP*qr_S0!hvi z+>*vu4K6s%UNr#(Di<@#JGz~rz@IBqJ#1WV)Jg_AZ6pziF}5ouWwr8YMUoV0j-E|_ zW>x64m=)O4O`>};dfPKw5L!FQm@B<9ZnvcVU_7>ak`Y(vJf+SXw@r< zm4wH+H&RrYPjrKCm8&FoeV@X<_e^`^}aTkt-ka zf4u->SMxrg?N+3%6`Hkok@4+3;VR;_F+H!xUs3z>6e*Vgu^niX41`!GtOz65W28$s z+7tQ8fUk~6DD=P!Ha;URACX%)(dY~Cixo7l`Ps64=!;WfO0dqydG5G>NS-jDUm7@5 z#MWaa2+7R*cgQV^V#U@39I=V^r@uAW>Z0B2B%PFrIN^42 zV!qqya)5jdg*SDxR!>hiDNcg199$y|%bMMP(CF6Sa~PCX-itt{!`|)A&gV0}z2h(X zdXI($skIhG#1{44PxDzv>Ghs)nrwtNXJ#!aQDw&#U}y1T#<~41YR+JdeQT=ct;G56 zx=Q?qJw4)@vhVOA40-C$@ny4+ePC49{$x&vCf0-L!;@j!xOnKO+UBdq{2_Lr=wNQj zH)UXfigS~=l%j35SfnSNuTI{nYN$MypUn5>n;b^Di*Z_tQg2NS-~Gc1vZni|i{^q` z4DeGPhvE4DDFL8$fX+Mk2sRIrtP8*VCFOZgmbyB^QaDs&8Rnwbk*<$dVW4H#Kp}?- z@)CJyRBix+Dy(3AjIuZw@mkudu1hUpH^5x6gYH5PGgg*|~n8KWCG0qS_Mf&bfCK&SPHqqD)`_G`u zZ?FX4hcr%Rj0DV?!%8@<4$OOEy#lK6YcICB?jkD#%DMc^IRpkS)8~YNrHCn3Pvb* zYxeAj5xgvV|mcw7; z)k*IW1t9jEL2Z48(?nx?^O1kzyNvQDp^S`%JVa3|r>};P{{qatjq6+Mua%w0b?e`C zADKkV_B4?PqL8qhgs+ODObPS)w<&VFMpqcGyBtYX!(XtfZl9AB>iqBn|1oLrvYlGsKp~+5x}#2jNykR}Iuw%fH$U6s{YECxd=9M@HQ#{rY-@ zGBG4=$KHaCZ^SZL&E17>7W@5fh&%iatS6^pH5~UEAV7(ACMwdm+*~By*Ma6$KEZMX z`eL80O|=R>ZT?_W<0VA?7PLvqj|(f?U8=KnFO*;V*=fK4PIo4qQU>u4NN51kWi_qn z?AfFCG+?*Zk$xY(}n^jt}oy zg<~IydU=ai^Jq4SgBKv7tu$2P|y-GJEHJS$fXO<5pzF z(?-*#fOnY^n|(n+Hi>l54GW2a6{s=+e}670OFfpd)kK@v`AvxZ;5!P^nWXzwP%-Qy zOg(OvXAqO%-qMn;R9?)%dARaEE2?ipC?+WBHjxSMp_EI7z$H5+b%}{N-QJXqb#`P~TxHDCHN()r9(`+emgAo`b09rES`quH z{TUbe>i@mufM5=Qw(`5!r6_W8(2>!Yo!L2?`x*Q5lzs)ixj|$_c{KJ{qLdxj=l+7E zLUgVT2boT9=<~bpz8MUzCk;df=cus_nd0lT+8<^!w4%baybAScyG+SlyDVRkpf~j! zBOu%#+8w$D1zk<)0eis@emy9K)59)BUB*eRNy}(hJjqn#QZSO(K9L>=Ba+@$0=WCe zC}z^vE>nYo&C-?2`|K`>K?C->(s8osrYCn8HaTNN$iV%%r-sFqs>i9?=7%KD&$(mI zECEmZ%4Dczu>B|G)fO1ukuVrSBw;X7%9b_88kV9Z>O!CBn0H?&V(6G}%5yCDDRgm^ zUmRWm={jvk;40-iMVbl1P)>aP%ky*i+_!ce7{K3usAea(3z%1m-8>^vtE8vRw-l1m z>Ob_G=No&cT~_TrkE3xsEzc%@2*c8ohs6ygI8kb_ABUfqCHMj8KJs?pjA4mMZ5Shh zOmzj7#)T5d^Tc3ztbZKd$a&zfoyM~F0lk4dnbnjWO2%GP%ZR*X5b*mlImu6>4_jcR zqDq%%-$?ZgudT{QcR8dlz1)^rrk_lW>7@3&a{!yJJkr8hL#r0_q~SIO6eW0JOatoG zaTj88dvy5mqvdg431Tlg?|I}*22{fDn5v)Yig9W;>H0awexm7T0^5(Cn2UQ7+>oN2 z$Y*>daM+RVf@<#^^|v###u@yYdy(Ssi>4b1OYiHq{X-a|U<()Ms{(o-`L+?tQliVb z6YoR8?C#1n^(U8ed`WwAXw%p#nW^fN(p=Crho#wfPSI(Is4Hyxwawc$TjBvo6ZB0G zuA}L7d-9^0=yN4M!`NQ;o3Tw4?g-UIm6e;ZjDdn@Qz16ei!6-x7mNqJ{go88tJmif zuoKjLoV`iOSovd%z7!chHbi&SOM(g`GL0B++cIFM?iKP6^1nx5I^wbw!(@zbgvTvU8~F4ekS1ItQsl1I-9Fqp=syCfZt-tSGs?z5 z6-#&@4|e)s{qch(KLKWs9te6vbbn_Rk|(V9K*wdU<rwa9`qH)3&#rFV!;saFk(71|@V)1IY!q&1taYEhCR9jdvCzl;X?8)MNuw0jj~6MypILAf!o zy8N)a854PXe4E_dFKjqD#AhioQlv2URZ&o$@$vcjq_VppwLd~Zy19$}(8-EjeT_50 zBx_5!Yl`_P_gbNwA=h8oL*A=2<*Z;hcfQQmPKSVnmEul+nIs%a7L=6KW)0GSVLpsq z#tYsjkx>TgkG$1ZUT~I|<_SzMJuy<`J!q@&Q{bh7zcm0V3;Bf9joMaF0D-`V7dwZ( zAoq0sk24fJe?1xQ_OZcdf;nVs=eZsFsU|)a^ph-L?BoL;iHW0;ZM5D9gEoYo0j2ST_VY{ z)<@gY>!EfvsM*@}#7Y#(mx;L_cbXvkhnKw>$9TC4~3q0T!AP*a@X!xOU z|961^kxX3dtGSA(@f|fykm&~r=^6yu*5L`_U`iFpIfv7sJmZ)-cjUL+0d+g)yRm<<%k^S3b$>}7T64hZT+LW93K9qqudY80!ON6fg7Y&mIb z@w!oAWc$tEXQHZtT3_pZwe;ZocVNpR&~FPoNq32KHY{Zy)P(ZSXYRSsr>O!}()3D+ zZ~D*AuwWoz4#N`h`A_gSLIhiC3H^^M-Y31byAdwOLxtRwhjYiwy4t$R`bt49a_MBo z7CYRz7x;0)*}{GkL!l#~u;9PdJYVfiTfR-A&8~tgP}@&CcCNk9eMo?(_*N>HV6Z2Y z5vX6+8CB-^Fd0oWj&p~-k^!?}_mL+n1q5xrYqgGAF4tg| zK%O(>J=mjTCUmrab>iY@AF0(`SH#{N0N@zwAgW-^F(MSydeXK$yG-gg&jtHB=OH{r z@}x9IUwA0L6i7hGn|sj2wpU5WKX)wfz%Ue3iGa3~d9b8e?|Jm110#QPCG(~2BrE|6^=`dfX$v-=ejM@32dd) zToUPn*h9ji|ByC_ZN{k0{dgDXO&s;ixaIwTn!xz*rPW_Xj0jZ2uqbA@Wm@yO2Au&t zta28SiSOvlST=L3lyhSCXr=B3zFKg_TiIP0ubiJzl z4>{RPY$wgaNZkP4 z#(4>%pC+Tl>b&eA_VjRox2^UreP^epZ;VuR2|c-Yl$8%+4;?$SAt8$Po12^0e(_9; zOLX5Zf=iJ$08~Nu9j*MIKUmAqG~(7x;+Nu6O(3Lhp)zH)zL{8za5gtMjNGFqcMKkm z>TDl~D%ih^$+FV8%M!KqTda=*1bHyKhU@Hme91ohL*yY>xaB(f5AeAKTWl;y`-M!W z*0E(@kRFKwt`x9jNsgW5>?X;3BRx)QhW9nX-6AUxa@gj6c<#)6_zE;e7;Cy-pkMou zD|@E#+h-Xh6_!3g)#61{WA*Vh%m)`mBY|P~zq+O_b9p;(|4`s!yiZ-J?XmYA2zhml z#i5{}@Cpo+l^#x*rpTAeU&f@KVQhBd83MXkJN19|TkUar6vC4Pw}VqV-!OM<>bk?L8+E`SQf< zLrx5uC`C%4?$|C-NWJgDiR%nSN3$&=)D`nAj3++ReOF<0Z`?9u>+in!Ox(qnN zZ8%RN^6XuA?$&=1&<48aCsButR>eH{Ib)BSt8ZR1jIJfv1SygtLhFW-SML=v z2f;Im0EBE-Q@`1htW*L-J1h&!nK|-Jm*dDkL}soGN$CTy+J$>Z?s^T-TrPR-FNFMF zKepQK+YBzfe0>K&AW~EGas_Fl1*Q%CPt1eFM|w%$PM^yN{9D)B zXE|i>p3qccKe~H=p(}0ZXdH5KutlTF*T{IaqV5NjH*a|SBnjLsP>>o4a-q_ZjYGNeqM)2{Edy=q41oZ3 z1CVV3`H!Gaf#wAi|J!{GuqSQF1_^48_pExomKP z2~=tw!S){Oxn+Y%bLk2}*8Wx8C+lE;9?gkqGmJGgKbA`Lm)YKPe(2+!6U|5hwp$jGgEH zo;PPqWfS_6k^gblS#2Akg)5ycBC7^Y_W3(S0+P!V6#fbQbnn(Usn{ZMh1Pp-G{%LJ z-|x|9J@|WPQPt5^BgjWy5R>MQ@56On=Z95Y7hO%!x3GKIm)KjAOTtiZ0ycs`uwQQbTzrVgWvghk{~@^x0#afu@&iU-BprF&_a+`S{1&yH2_$ z4E{?}&e$^os}{$GPQV3Vmn?U7YY5`)3uh%d=6OjCZw)J!)4hgC`)c-m?8}suRfFvK;^tJQbvpC*V<#9sGNTaAs z9yrMB(N3`a;u@e_7`Lb?D5SXfjFGpd{%GefO{Ij>=o6<$cK&yHf91dL4B!>wC4}{~ znH&DwAPQBBberuK^sXmv-@lDwBWN*@{ql2#8&1AfCfBbuMM~i_4U{g}P(+;X3 z_Vp;kwHb;nFgI`H;8e#Nz|?-}kpwO*x%h^iI)<8`S!$&8J1F!MVj4=}DmN=kJ^`hp z>>f&cHz{3DNek?be~>-Q{Y=Hm8>9UY@8Vf^BraNYM)N-U2!mXTe>C0tyfcY-dQ20# zI(4#}@TLu9r6FqW;1Wy>kg5(Q4-_Kv}`Io4F`Q@gIlY&nV0{XN* z1o0sGO)b-dVS^<%)dA_+`bw(00A4=-EMrW5D9Q|p18sd{S1fDJvr?NB)vmphKIjQM z(0+EmyXm~Mg(u?kpT6#w)WfeX^N8j7M1AfWFPIYs^nC|`d05Zxn&P4=a@uNAD2*-m z#w$Qd(=uD8OU>NB9FWsn>=X%M>YEQxQK@rBC&E@ z`e5U5_ou6sP&DyhlcL=oVJFM!hr!=Xhl_q8<9tr=l&QLN4>?e8mm#--({p6j(267l zSS`FQN6-_H#6?YJ_S162aAj>clzfJ7K_?S z+xR$*G+=-9r4iZRJ-&zHQ;zp68EXIWDK)N3`YJzfE`gWnugrCz1%KrCEhxsjBW6&s z-(_j?K9TcMO8^uWX{;mbFt3>5kzUVLCC*lA)}7^#+fQGa(R)};%zk^l7+(j*S^B2? zl_30I)eo8kL_O)0F<7xPW_3W_%?0A(%UW*VdDm%}W4tzAcqDADbD0G$ljzgcrR7LT zW_xC~QtuuAgvm;pEYqnBnRLcLe7B)P!8+m=*L%*>HS|C`Q1 zjT-LqNfbkl^$X7`zEjsww+HV>0R$4Rug?pxLeaKKMy6+2(* z1Uz)4eS%d%_3!O9zhwV z-M}Q_q52>dz149W1#};Vel>mlFB*{*$Vt<^s0FRzjd|3QnYkjhFP|zJtX;o|@QCDb zs~svu`G{G^8DW)$uh=o*1b(f#j!edh8<{VV=%wF*k9M&T<;z0#?k0aT)FV1<#6)Vu zODnK$=#BAy&uf1=f?fSCV_9#ucnZhAAnCl#kn7# z;D^IfP@faD5urhyk55**P;avW=WVhU3xE-=sQJ*NaiA(}ySze*sqwGQWp(R+Z+|?i z25mvv&k3vJ8ny7Jdql;yY+`>pk4$cJE*F;yr49FLxNN(l%-iq2#R^@TuckNPhU5t= zZ06kN{4h|NBqvShVwif!@YmcB^;8Lr=gOzBSr^sogcLS*Yy*uTA-c@(_eKzW$ICQL zl{luh5`w*fsOXV=pDj)uoN>`cxGWUQC&bwd7e?!?M(`TBTWGz#q-ub-Y6Rer*J@?a=sbGq}K z`fzNw`<)(zb9zI^Y(@EBO+<7YFn8&Ibl7tE{4C>nT2#@#@@fxF0TvJE$}5Vt;@$;Q zN^F2vz;4-;#hJTn0XXJ?KELdT8mbb)SZmQ3z4&RBo|DnBn+LuPc z#kTlxGP&@dIzjdOM1JMw5=B8$ZB~Fn7eg4~0ruM6v!pbuP}G@EorfOH>VU^4Co3lJ zAOGkhC=0nWffMJmQ_esV3QXCDFP$FfV3LY`eBNKHq+$vb$W6FrMrnF~%l{<3+?&W3 z-6A)Om={ISlE_m?%r8+@T-rc1_6D?5!_vQ;lN}8183NsrVLzo{VQGB${9BtOr85bFfW~s7(s`(zeL}Tl^-9@vlKIJ`R%NHVVh&unJ`pD zPnX`R$4~JO->Ak1t-Esjh^LhctTC*48SGapoGL&nA9UFCKo!k}Bm@M z=`b&@f5r)BxfMO4Y-)V3o>slR3-Cx>hq2|PsRJgJh0~gyg`gIU$}*k;FK)dzmVNDG z3WHtf^7)$(MMw7zRa|iLksw$!^h>U4h=p|5rh0%uoYTf`%D<7Xn^9Q?mQpZ^T0K8= zFL1~E?+oiVRtA;%+(gH@9NbTiwr4biLJ^-$N6DqSn&Xs=4a1kz)9nBgs3a>gsW}8w z*@9gNN(mXbjy6VDposhn>GdjIp}Xm&zpg}B6%PT6A!8S2@-B6#8F$VKc?yvvxzO-Q z>>~TyxnA|UrpbvnOCjDzyUaIEuH+nYl@!Y!VW1%w*-)2u?fv$`y?|YTUj-ZYV2>$o&t$YV}R<73}Y#3fL7)~s&-zP z77Tqo@>vN#IIIU<`FCuAPj^^5zYpUADSGeQd;VhzoW2P(Y^8#{@Fm|#;D@}eEp0mi z2{FRb2#RiFi=DijB-0lAG!PrYakbN1%Vyw#6PNQZH>+_SqUdhhM6>WmyPC%X5jYa1 zY*dG_P|ol+c1=%ru9lfmIpOWCAJNNi?iriks>6QcS-_y3_ONbP4n~_-*BgvfVk1S~ zR{XV@AZ)V_C&+INGs>NRe`!R?ro^ky4U|=kyVy_RH0XHA6+*7x1h3vj`s~g~7%`Z% zR6C);5}9Ijk*kz5Eph3Lq_h`?t8sn;ZDJcX(_C0z z{9BJvXSFHKYs(6?41cwzgkX;%rd0BS3%!`V{Dd1+h9K9|kdTm|)BAYrrt5*oi}(6k zWjBm2n1hUf2sSU_x*NrXIl>>7(!ol(oWV7X8SxE1`tao@kua;ZjW^3I=N2OULQb?agFL>P%OjQLqa%)hd2)>@j{-u9^IP(Nu(wA zq%iMXF^Bh_!Rn!TUL4TuI;5f{KWn8~=S#T(go73eQxK|pmIL-jq=b|=LJRtIxQ&gC zy*Ht}UALrEk+&9GtC( zs4sT7)m_jEsjma#hY(ZQ^9#!d)Jd7)bR`&=MPeYeYhw;n9Dqd>CYLj<8Md3+k}c~^)_MNtC(TKCfDSa=90LyqE3#WS%VPT5R z0@4e9r2x=P9prxusw=8KPTRGx1MVE22c3D`9eR(aoTY7B_mI#cLl>a4_I5D|A0|tYPrUUX2qt#)n z-YlnFv)I%ueZ&EEdd_@kfRbNZD?Pj%>lC4Vpv1bYT}7ei!NctS_O`!9f?USMIs}}I zVB3khf^65aHt(p~C2|jH;ayD5_)q?miyep6UzBThgB5{4L{qBGgzhH6@vB>A6Tf99 zv;}weu=xRc0QU0$6%;cL(Op;N3cuuF0@5r~Uoy?R^GD7jxpb49Oo2(@$$uxgfLBLS zeo2QJz;o~0CIpzL9xZ2myiu6S`2)>KrxspAQJ|#RlldOHfli9X+OUrF^1_y;AbK}t zcf+!_!NYVn;uZ{oVRuW<#>hQ1Sq`@+1XNP%9VLE%TFAz5+X{s1U!cW7#rNX-zKUN9 z4yzefIjr(`-FKcUdzsa8bBXnO;FvPh62AqPEd!O2z`PrLceCeaW8NXfoIg>CsU@DB z`0iBVvQJ{iDTGDHA6}l2?LYqTPc{uJJOLZ60+!;9Hg1AW>Qj>7nfhyV^3eUt+z@lB zD^2={5~(VlsC?ZbCDK^%<|X+4D3s=?hc{lllzHG36Mb%RKb_3&ecfk!^bv9H-E{6; zj}*p{IGd+^Qpdus=WMIi`uwmX1Q0vSa)A$AbeplaBRef( zAn2Cn56ii1r}O~;btljvt_K2^w-?9Hxpn0l0(uDoQ|b23C+x&+!vlpxXVj}+`zHw` zJSe) z`40{3s<@GTuY<2o568ZW{8$8|fCvi6Wsa%-a3WXB#(CG-i?*9syxzRWJ6=*)2y+FO zstI(d+lS1Vi$_nI%40#A?rgN}2Q5Uz?i-2i( zvp>M~34~YUh6#p=cs1x_7&{HWtCm@8u`ieYb2WPW6z(RD{y&Yo|7R{d30Ym3^)~|DE?8!sg?wkEB1YqT!^Z#G@Toz+<^AR@f}GN#6h!pB z>%?*j_W6IvI)uITg+x84)`VM>x?Xd_XTSQMc%G4J(8LMj&n?PQ6655yjz)>F2wS6!7 z=%yW?k?ZyITi<)TWNQ;N=Zl<|$T_&8H16@gJ6it`}ff%~XOc~Pinf?c%|^IJ7|742r?hyn0+n3slCXxUO| zxV@x|>$mOR0__HyldGk}7VQUI>Y5eqmtuUfgn>?eWcDnxEqpGGUxe;#S1Iq` z|MG~~ewrmZ#tkPdT97F!vspQ)EHQj?KeYcPqkJdegz^J@iJ*!@2D-7m;ha}cVDWyt z0arO{rp|sO{+B?4gx9ChbF%r}kAsK5TRQo@RycxUd;6W-;u3h7lcC#QLNr-gyLt}v z+;5g!avz3D3D>)$SPPkgyn#@rnX0abggTmjzYsa!^M|6?%F(x#oSBJ-Z#Ng}m(8}X zKNoojEF55a7#@(YrvpEoVqZX7B4@PuCTp~<$_w!J^GeD-LUgGDq1%`w(>LWtsYU6mv8_}P7 zl(q3uBF!XC(<^VF4{`E#WKCyrF5k$x&bz3dCqQN)CHJF~ywQK<07$|fWHS&#w%Hpf zTO-kc`sIPmF{JJukpu@2YB;Z}I1ecfM?`cbCxWmt?x#t)( z@G6yG`w}QH))txYblSYm$aj=%kRAXhiaVYmzG#6kG&O5R|1T*HE(esM-h9y6G1mLKPl}Wlk-5wyF?$T}a1>NG#ItKad8hmhtNMTy zCA!b7!&ij`BU0eyoWbdd*1O~f-$!7xW7;pXT)r-g8Tmp@%~E4#0EHNYxBlfG61THa z)-^fGmK|$4e)5z5XqyP?k{{(_t=!W?-%EXI_PK^;c+7|L{Q-ee^D4xj*%1U(JB9l+ z44iq3T<-iA+qxE+?A6l;Q0-ajJu+HgOJ3A*bLVutXDY)W=EgBlwO_5q-Y6bUc5#P01_6 zXi7;fFg{LJBdH1TY4oVpv=2Ca0bC8J{R;}YjdShJTk*YrAK}dPK2-XCqnRgjEXY3G z%k%xmkmk_%S7?6uSRfCQ5Obm>*7|No{zyQJ&5RQMx)Y89BXV<_ul-A&RF~2%U0U>) zlR5sk0_6_dBI0^67!pfi7=}T&$>`qaF8)w@us#_F^5@3!1f(Q^xAp4l_|D44z*f=Q zjit-+c8ORA8Q-5$zfTK-5~-=@gKDe4`^vhw7R8Jjcox`w+-$1QkJm?4uV=m&KNUWi z@m(z8SGNT}BN=8Z-HsyvWkXiP+~@$Eu3G22xc(unPQk0Cf9f5je)fK^LkRbb78fla zJgjZUe~2ewn3oyKa7qJqG-AN$7>y22|F@J3q=A5atBI44f2x>Dg%v-*7-5ALc%jy{zA}w_XIxXI^zM_wt`@XnZB)%X2XU_M$B~Jn(a)vv zx~-!_%9aGm_g2HdhAK>92CZ&C%n)x<{b&%dt)nLOB!#b5PkPJveZ%q#9B0c#@d{P0 z1f~H^GxVFp+3p*b{kp)l-Rtxd<_S81cm9~=;ZI-Yu^!(K=}?(mfpI zPqb}_){riN8+!i+4f$hD9w-@E7^Tiu{n~yB4O6I?0W}9y`z_EYP~jcxKtRSG z)&ogT0GYpXB-rRhgm5}KFroBFbaUhL_Xwl^){KF+?~unw?C$VCW!L=Htzt&{M(95f z(5a)OV(scGUgOz1PKzTE_^SZ4weJOH17kqD{&?$)gTrNo2T6an`Qta^r8c&pC8^re)J#DSBsG}X4 z`Y82ghhmAo`0vmJb75j~A`H{~uG|7++V^^c%aeZL={NCyjApt7&XBww*L;Y}>Z&G`8&%H0Pe@ z{_cIB_sjmg_gZUa&7S!q`7o=$7*$+Jvfk|zagxS#D~?ByGd=gF%DZhJh4iAmcYU`Z zbp223OH8eRMEcbJXdfQx>E~g=S+_E&29Eynm>s0eON;U;Qt!f0m8@c!q|;xji;icD z+V^qYm~x0T&oCIj_lcRVDj8d#=V56@ zpkhT}{NCHv3^b{X-F2LESUkr^pdq$t&-}$CRzoSArjDN!>J4iAsKu7e1qqsq zirpLV;Vsi&dxi_eY<)c-o@abWo$({dw6F<#^afLxUV7x!SZqbx6MEOrp7c~LtK7`b)+3lNL`$OD z$!Ujl_=8I&5<|eILVLVc_q=3*{X{IkAkKm8g=97hEGai0smAf~w#WhHcJI_qFbBr> zK#?Aq6sqWA$=%J)c-6S_Vwut0dnm}xM>g;fCeWE*^t=l$(DgiCJYM4WWCZoJkW@9L z69cSHrbzX8(OiQ*Fb~V5T6X5c{)+TgYJRo^vBxq8@eoLTm{Mw&wu6TdZvQ&I)b}Y^ zytGA8l@~X#oxI4C`BgX0sI)sB*jO_gXL=8n%Mr?uwa$rcbhLq`Nu8ZH>Ej#_d?#+oOjGd9_OnoKQ(Ol7k7Gmv5@;t z8kK{*gegd!*TLA6&&N`cJ+P-I2J3AHltP=~%{NpOSZzK)#}BlofoYrop6{{VHcg2S zryRbxxIZtD9erC%Q=<=m%JT&oMsN=hk-ozl7-j`v8f3 zwnorof-(`zh*1|O=<>a-g@1DqNBk;#^pknb;mqTwvU&70C;lHhuwP(pb`brC&Ci`Z zUf_=SBz_H;$0x^!xI3X^E4J`a=h&YY ziAFuzb+X<+rGAZMKE38Ya<}EJWW$52kK6Z~-WRup?(+74Af=rP73y;Qzb&{S=$+LU zRbx%7oS9A2e7A$xszkF=Xq;SmBahixYDfcO9#cHbT+-ebyTQ6H5_+7Ew+vChANwis zYn)<21p@RO-nFj>{Uwi(T}SR2lsr3~}jgYTzoAIxAG<;C6p(lkxz#%XDIK*kHQBqp!RAvt+X(TC|(h zZudHylFHID6zFQQU9-B~uErQ}mA59!SvJuz?t=nD`)Ah$JwNlSs?3vOSaNErdf-A9 z!KHZPSXh3avGsJ|)~}U9T-PK!x~=V#-_v``3*>KZUkgw7au7H|SgDQ}$bvPY*>ODi zMf-zrC8|3^Jr|m?fr)Iq?zhl4a>YH+4xLl$&08(izhJITbX4&+%AdpoHB)p97LXW^Y#7m-Z_q1zf9a3USzFSGm)m3>zUD4EFRI6+v~G+ zY>xO3@WCc5tj6cfGD6`K$`6OH#lg?P-96^*F}n0I6doHh9q~-K4EuBxx~{B~3q&zd zx(l>b4q?_+zCxtXFbW4TIPlF#+c_X>I-%|8l?`n#SVO^nm7dz>z(h^hi*3F!uP(d8`Zx~p9G%%=nCpcvDkTLBD3Lg|-G&Y6Ls6w=$@K|;DJ>Giv?%ZuS+`EN_rZK{ohd|hi z`-0Orgx0HYtPKN(>C$_7SxUxt0g~kOD{8W9a#M;0iNG2sfffrR2+Heg=oE=y11#(5 zvG#%$lmO8o^e17I?duE>_jc+}&r`HAQXRS%HG_IWIP5Lkj^=1_1259L;f^glLu_1x zPVyV-k=cv^c#?c{M-Jh&#&M6RG^&>&Vz&+qm8ko%%n0=G5(D%E@nB_f+RF)8 zG#1$vfT}!fItByfa0E6MKw+2B$i~;q5w?ZfOoufhIislx*9sD{B95tAd0b2p7C%In zfM&88v-JW6qYOQV7z&_}C%Ugi_85mxt@!x4V@Yx-uS>1NTSl-Ng-zvL{clb4Crp%L zIiTj{pL-f*V6iNwED~9rhpsdwOa#6e3dCxVWC#swS@Bp1HD2CVOetoL<{KL9n(Ril z8AMBctu<;64AwN8?`f7Q&4JxP^+%f@6-+r7Snb$D*iP++i5pE}{RkBUYn~S9hDs5g znC|2-Q3%+X=iJ<1P#<4LQHt=LI>9|%qfDHXDu2_FBucQa!ZyEF2sI(W0?r3mUU|Pk zlA2P?NHj;{XrZmO!Emv`SO-%)$!1^H>?o;*Jj(7Xjg0|z78Yw7lc~bLbu)#n`~rBT zBslU`t1xGOH%tjxY(0kY6Rq3r;#JD>E9AYj>&P|TC0F~@bje^SlXm@t)W1lg^AD#F zEu=B8>~Th05SI1vvwJMd&7PPOu6kkVX`EAJxu*v zCh<(dQ<#k?S)HfrKr&s%`_z{gyQ&aoDMgdhHy0#{&HSS!`1E&|3UEUB%X7q8GNZFy zDhDa)R9F9$YBSkDE-AYn_(Qz4ww;~0W&Rm87`!(a5qFz8z|U7`qj-2qNGnPE%>N$?z~k8~mZKUIB8k{MJg|O@*g@9@ zRm`Z|ar6fl4{A6SUdjQMLT<{^db+q}2dC(-uW;+L!lPqO2Z9l+)Jil%+)#$&&U?Q? z--<>U6r`mMBc(%eIf%1`8=AO|xqLKz!40Ntv|Ka=o!9m=E=&B zhv<3^vG^Qt=(;x8aoyjbkk`1;(eXX5TBWy-FvJ(6*Jdr_?Or(Lvtmjtt4V=Jxd|FtS=tZrxn3 z-cEV$C{Jw&h{zcU9gTIzq&RnT1SXiBBrKdw?xn4IBDmq^-+CVDBlvq%|5<_FOmrLAzhK zjUe^O9p`e`+=VE8Q&n;hX4~u`w3%f=omJ5#iPw<>(vYy}iThV;>o{T;=lgfVg+53 z&u1X+-zaXuO#rac3BWuu?NxZv+?`^Z9z zpB(m=3D(nE^P54A)vmvueU+BV3yFu|TBFFxYcZ}^@!hO0mM?hf`&(Y#dyzK(Xkf#G zbc4eF*mQy4I}sJim};~WCA{aPkqe_&0O6ZeR|B!>x22+F$L{W6al*D0_=vCJ!rZ9% z?R}iyY@NIxF#6w;)hMxL#0C`*^a+!lIA3|2f^URjSITv4zXbO3f<_Z=eT470bfq9M zijVtG-i;eqBoBL9+|oOWXzw-7c}|~ypfw*s)NTGo;>=d8w5cXJul6r>e8As#G;oi& zi_ZihQY`gyg5uv0IpTt%LGvGEpX4C;kYKjXY(Pys2z2l7^FR1JknCscDNAQ7BPZ*E zwk*m0NOk4J)R>;tc@NAGOaUW2Tc~Zbi?(QRpcZ0k*#y7MTs*TsD_-D)(-(UAGvN+B zze}`m1aOyx1Rq8bVQDX-7+Ym5VrZ+C=cHQV{IKK&p4niOB(7HFd!Y0+NxNwWN3mOO zSD%rJq3rv6i$)^g0^bUAH-<%oX3m}nX|=@(##!1#X1xbvy&TI(3Xs(uWAjSh=Eg@@OPu1E~m`}E$wsK+tGY&Ln-AV24s5LzJ z7}z8jlK z%1{J0kyi-A<0W^w@T$qRF_)8}wtbCYD(i0$%MV?MYOd;2OCHUAjcgth)Ukxb*(#mj zv|0U*5@q)m+HKh)bc9a@$deXauwc5n9L65yw>W%e=KkYt)2use*2QD*tdi@x9V*+t z1c@3MASNFiOlgcjG4dQo0LzTE+Y}%ljZ>1>3i~^hOP7MYlCjH9?`GxKMEYIgOZX4u zix!{tKkTPd&PrJIPdDGNdclTD<~nsLKIoy%;RbqB#n_1pI5#&pBuJpoPu7=zJ}9#i ze3QHZngM{^r8H)>zTzYQA?nv&$9NHMvF&HZftrjf^2t zZEVfliWE>RJWF+H3+M7|gI)yKDteVGpRFPXGAyJwuVfIZVF+MVi`)}`N~q$8kJ%%S zvU-(=|6U~iOCO-SJBnFh2l#KePVbI#cLi^3BpjX$rV@qwObDMNX)VBW^27WfJbtaA zznJzNE%1+u*eI>=D8xLz} zOW@)~H{S#=Rs&DbDeHF7HECIR2#!qsnjO6sovmWZWY?I(Mdb0~sq)te*iNG&2dq<% z2jy;d0oS>i+ONm$4w^m(UYX6s)2&DqwpKChLZL>xT%O(pDJ#Un^*7s)gybQ9B^9`S zL%sf$Um`?`_OTn36==R@XVyg3UBlGUGN+L~kCa??^g~XzBT?U5D`m52&^ZsT8DQq! z#*Dl&>T;{!yyXO%`hZLOp^8e(Oh#;da0Q&b*-{_MuARikwvyi)(dyW5i0DJJ7Gu$4 zT3?5;(vyPZM>jP_*FNP4^yb~X@c8SU1O@a%_fy}_16nWk9|NSqs*K}T_3Cc^B1bUd zDecq?6B)cr?12liTIhw&YAXVuPPRyR;Y7;~BN)A^Os)j9q`kDtcgKyh@$6g=)Y3|s zfp%d$pYpWSHDpc8+3YI4Y#WJ#lAPdA-gnCqrCc)E@vtw(8@=Pne&fW|tlT^`f%>^= z<`cfHY%nua&@^`Yn^4f?K7)mjuBov0W=t7_tLA)fhO{ZU(kis!`NilOapMe*}t(DUMjvkcCA=;KdldfmnQ&(QC%!LqFM8P#3tHfBJ5QUI@S& znECOSWqB`KZWZEcfaz*3-gzr11xsjcZ~TnUwD8}EpxgZaiR6M-bH2kSrn`%kNy9$A z8u5)LP0}w|N}Mn!aDysa01hfB`qsjy@7g4g2E1Thc$Z&KZ~uC(f?Tc6F5Xi>vk#!B zPxx1nIdyi${H2SI|6&9|633v6r>L8q-j_C$Cx&za2A8wX!{)pCqhN#$O%*;gwitnL zqWYXK#T@pBB=$IA`63muT3<+_bIM-{&dgx_{5Oy+=36_u)ly$cj1EHlW*eeAE zdZkCz%J0hqRIR&;45sadUX%s+^-Z}Xd9o2Q9OMA+$S>!u%}Sj{RbU+m+6pjE9u+BL zow;ZwQ0*@fXYf*dk0zM>M!~B})!ox!7l8cJSFAKb5*ZkY(XYaoAQAo&dOX?r>oJs! zCP5+3-W+Lu;fqUTT6XJllCQlkI-|;>6d3SY7DbsD=~WI(JSP~pp1(DLs)1P%Ccgax z>qQhaWp^NpAsa}f<(NyjWzSo56y;{{i~ADa2@w*Ufn@9+bW0-ugbt38qGMwt0yM?N zPUeVUt?t{^-cL7#I$_W0ESQc#sV%rlg-Vt4>SFOPZN_MnP_Ju}-C9!N6^=Z^*=+<_SbMU(PN94{p~#JUxI@#z2DbJng^SeLn08;YzB@xybIt=nWM39DQ*ydY*?$g zj)+-G@3ydz&x2LOeo*^U%GQ?#$s1cC0E`clh{FFO+y>M)bK|J5=DRH}pD)lR)a()= z6yxSC9oJ7y+vv>+TwYa%krV$)RGlf94h$d+Qh-zdAP;R_*Ehwrg_`BQ66$dqD_U+Q zH(oWlRWh}7?0L1nG}l)22glnzWX}A7Z_~s3Gl64_yvi9$7BI0CqVry0D$q;Dx$y#5G#$x8NkQetWU)8iJ2y*$#({94=&qY3+PS1=9S zfYnr|8CQsm$Pe_y2E1GC-FNSdT)uhca^?D?0g!?CCj=^due;dmNgt5<1Wm0d`3xg6 zl*2#!Y5NG1RoCJCCBoa=Tp7Xo4l#h4=mOi=RVsJlXrOlNkJ4zjD9uX#=#5 z)NVk~7KMr`LnSC+1$J8ISi_Fps1pQjCIL6`{C>Ka@Fs0pGD@nq#eCMxY`Bj&Jc{|M z;A(g%UPxNg&A30d(@fi8q2flMH$Pn3ekKb(_z3Iqeyrf76*H6#l)7iw7R*6O*GlxH zN?{-Es&@VAXc^&X-~Ed?J3TQvXjkiv`rt=5Q9w9!`R#5%jo%iI=#&|1TZ; zGKQCvg4u?R2mD%-%8}aPEqe?%yJ74v+udMv`1T*3yi@Nb2!PG-mHSN>jSajNMJ;DO zP4_6E6?%FISEmIMN4zg7^%FHTH)Z1{25M2AwCZB)`N`lbesQQ1d0v!g1pZe_2ci|I zA`hto*k-O`bDUf`yRV_$nKl&V+j!n+F>WdqPhA~}M&W_H&CKuLZ0fmOW+fN==DHpjA^iTrV&fRraJ$ z@%0~Y&EM!VEx2sj;IeA4%euX6Ro-Af1#ArXgRfGu&CnsZwCVG~78MTqyzf<*iPzl# zd{SRn=u@6TVrLw*CIJYL@+ zan{0>m?J_A9Iu&Tnk^)N@b|K^{E8-TwV~JoRXv-=MoBIp( z?qB?>ebrP3=V3|1ld0Gh>hj3KqH{wF_z4GB_9SFpSe!T}^J4vuijCH?yvi7`Bo_w`Tet9FI{BRt=@-?}9 zPa(+Fiw`CbAy(P*`;?gR4{1xO-=a0eIJBZXJTw}?ifhAP7)tUX3mg2;hbIz#WUmG# zNMpp?*mT%dJ1V3_>oZA)f|(MnE0K$EF)VzxqL(tUVO`p(O!TyS`aFs;=IvZZ8y@s> zut}lNlA4LExWcEyT9=1s=zTa!QZV)g3%X3EePiA>n=L8s26Wom9}b446aqP&C4HGTaQ7A~tOHKmTb z&qEY_Q!CGuF80Xb$y;tzy^GPyy!~7b)}@ka%b#?XP(86ALUHnKhof*Z&u&#Q|K1!i zu1I;wlr@_YRGBrX#CV9AV(O;oy0yT_Lo77#GUv`(ykx=#6v3iQax=xZ4A%b|w=Tkd z=YmUgm-<2J7`=+SUOuN=lg}SFMyP-%JK#-Ot*wQzw*+NGlzY)Z2?A1ZeE*lZF(hg} z0V}L?#HrAwiOQ<+DCrVuh^B0@q&;XjGtu8plFsl!p- zjAz)tI#8^NV#OOuKKx~0SoW7(=4TX6EcE2U(hgXb@6Ka))yRLi7xdms1y?^Ihn=`u zt(@g-Xud9*1Zw{|ByW3u&jZ4vPS~Vd-9|7zDi0nCT9(Uf^-m1MkB*KX8r64Qn20qb z?}Zk_zA>|{c%?6W&9wotje(rfHxB{m;*u!U9(rJJ^_;yW$(W;^0j<{8T!ios5zzxr ze_G9i$$@SQ6>mY=)=(ZBF+52P(6hVu5eO9YfmS$KWU0a*U?jyX7(IhU(e*z>576K- z2<#P{18Oc;iBgfn91a+LsC0{`!o(zvpPeDmO-1IDR#}435QG)&(*Na@H?M1YGVpgM zmbeMp8LMHAl|lSqmYWF?36j44SGcpzs1m{ixpf}$_gB_+tNFOKvg-pG$tgT_8*NITo9#<^Z!Yb*xKbM>o-hziZ=QCmDgW?!696I&T$|+n){_$~ zn)pjmMLxBrd+rlVn1@cY$t4_X>@jj6QEK}IVmt2H@-0YEGt1Wz5OEpb*7f>0tVRW3J}>vr&RtjUK5ARV#GzCFYBb;oW=ujui0Z zDvXKc+bbYpAR0rJk;1?s;w-3GvF3Tdq(xTZayY=CmvSzpgJm+$l5k(e@`;ih)AS;O zvk}1MS>y+<+#PuMaV9A>l_7ZFRY++mDrPE& zhfVWLo(bL~L$4u=+Z`D^2)|*(!mnN|i(WiK%jyGueHGivb;8^KYTes$!u);4Yt8xH z+kh&#Oy%I7bu#EZGh(CcrscDqL%j3e>vp00g1@IRvgxI)rORQGqUn+Q==N-Ti7#Ib z+1pqzwb-SNWq5jhbqzY+K)I2j;2VNRnWG#cxD*Da`M=`9u=--!b|?QKpijE7{X}z` z1>JA6Dpu>6F|RLawdXGpJ#+3j$3D29zdk*=sl4C{`$I@wFUsZ{KX8GxW`f~gcG5t@ z${iurJr-hJ%!5mID)0^kL&;DP*JI6(A8a=e!3RMiz;aSd&VxIT0L!N124d@O_iR_a zh_;$pzymwOKOit+oTt#c2t3&LX9aD1;0|uz%DVQy{jbK>=oE;%7I>6qR97TL$Unjj z0kI$sCE?}gyVt6FcXgobVXGs+t|#4%T{PK%Y)5TPMC9S!SdHWUJ6E}g#w4=*R~1VW!`J-ezk4Q4)Mui;e*3Q;yI}mgpSUpwdv6mGdJDY1W^9WgZ9NX^viIoRa%wkvv+x6bb|Z^f zLe7^XS@k=&?>l$Lx~tM7sH(@CMYU~hAH9Cd5#-K~psYps)r5!ur4nd2x#j-|#@l#+ zo;kPzt-V)`c0`INy-bz>b;6uE8v>`)W!1xAVrf(ly3}~f&%G~h6nQJlJ5c`_yMK|& zqph$rz%Uzn-|&5jsm8$$ppi<3>x2ogaWS5I|9pEJF!OdryCg-4O*ps)wQn$#XD9Ac zG3Ev4 zIJQ0!w2iW9Dpx$so2jR7JW%_Kg(>F{1AWi6T-GNkPyI4Q&-GAW@`` z8)X8ELGj(KXNff9HA8W}?cS0EiCjm@oXHIz}m1 zjKnvbWs)_hE~-E)a)CK^&=w<3VH0x@uy}`2nOi@VvmaS76RwH7f|;6W{=ogCHVfPt3fQ2hchxr4e<@H_vgK(aEzqv zPu+TRUAO+Ahu1C|<*=^QwQwF}$a*JYqO{-4O^T@D&@rmq6bVg3ZUz~6#D4XMl931g z%4%si{#H1{vXfkje5CQs@~7RkFXPx^a9(iUJ*6 zKS$DF` zBeTz6vnifpj}Jdf2@|vx2J(~NHoc!)!~U54@@d41$6VRl?{CI6wOiJB#H=30`<@_@ zdzWh{^L)2MFrjFF>)&<&stpE>V(s}q)*gV=pL>QtPjR4MAH4@45|BRx(4UXk(bIFJ zqh{IpS(|I>l1stSzE6NH0z>)-1SnI<)NVr7J<-S3n8A z%ku>n4Gm2Z%1NaJ&b0SXT7SS&gE12~UmYIIMObTZ0rrHKOfZF#f`uj@f-V{u9vfw* z8qgh+@CPNTsSRo^sxG2lefl4cV$^?%U+zJep^%c1U7YCGt};po3#3u`I8To3NuZkz zfvIRt?fTYqd98JI_GN)$n%96h-XOYr2zD8#pz`K0RYHP-f+&N%@?V?-lk0K}CWo)f=TCH}P*i6SYHC zjb2TL&{MNTyB}9y&X^bI>FHo?zK%euoX4We-@C2g&4EM2!^6W8#;9op2t3=+jr4ms z{^BE}C_ak_wr&#veLQ%%x9LgCLIv7lGj>VF(^%Uw$J96x+brOU=c!U9&aoSGT({OV z(px0hd}TY9Fdv|_5b=y_cTY{K)%ZtL>#W*sQS5MSIMn7w(N;(oJsrbMtOg{I6Mf$1 zJ%4Io1buugOzGaQ-?}6`1l}K|9}wljZ|`hA9q9aMFX0%8l4zK$r}44U z(m&xeIZY9M*aHSQW!33h6d?fJLV4`5GLL31&WCOJ5R-=SIruPnlKxKBC)GyYxZxoF zz4HhWR+5 zpSe1Yg8cbDl?QjefFux_qlHlZUzFVdLH|blNkLEnrKP0{#wD}$vt+qvd3aBAM-Aka zI5UX#P_T!R52yN0Q-2t(FFW}aztc-K5^&WQV+`n41m;%=VusQV((9#26r#oc3;UoM zM*ZujtowE9VN;vn&S&P#HE4mL_v6-1LraJ>ewoZEhoMh@maQ3+8wGl5SEk9aBv-^} zwy7V-E^KnLT{ZtGcE*LCLA5vo`Y$+2GC5%3BIX+cVA$ETg#5h*7AH9YfB5e%7T~yw z9r=5AKlE#~tbj5&ekFgkZR+(cKEC?tC< z6vYuzt#~q=ce9v}(1+I5a7}8V#w|Cc`A}oXQUmmQrYvA?Di@jnk3wv07F}IkOYdV0 zl&NtlNEi%F156DY5|$BkP)d31Is7D$7R8wz z|8gV3=FUf>iGr1rlOu!k?l`p3dXoVo3II~aCIvI8?zdRqJd`TWK^y~~d_6qMdxy`8fV!qaeES|ATzn%VOsad<{dDr8 zwo;240ZBYOh#0f9ap94M2+92o%wYfSvrRqq>LDz2_;bGuJKV(mHl|4Xs%1Yom2;Tt z=Aha4pd1{xRJ38;>LBBYfZ`MEeIBAxG29=MZYAm3Nxx4n)FfUeIri?IM>Gshee`Re zU;}bv)t^~15jdo(9-@}3ru8o`Pgu$s#uvV_0Usxo(@)y#HksAo8sv%fG31?zG%Qzg z1tYQ~WlV~bF;_gpj8d)n@xI;sV-ofO224(>;cS3cst?b|2l5IIA3p@4%0vokPh@l; z9m{P;!Gpkk=P<+XMbPt~+wunJKMK0x z_*Cm(IM{IL9WFKUD>KbG;2Zc12mJ%}-FzOtunQom=$FTF92_~1fLC1AczKN8x_y1A zovO~-9;0PWs!E(m1LT`&ge1jIi-+?!W^hlG@)y6_uPtvN{ZZS|wIkPsp zh9zl&Jq&6`Xg1VKynoMCV0o9~-GTg=OGm9Hu%QR;n zs^nSZI2AA?MEfI_yQw9Gz={srRLdKzwe$K4OCd!(QVy5-@EY^#Okte} zxFsfzh6v+;n`vUKY+xM1Ig*ELN(NxGYVUoU{;DfDckGCz<4GNQ;T&iLwNgj^24jbl zMUcmZ$VUmw$2))xAK{kmB%E8%j7+MGmTqyM?3pcE=FKnM>T(35-3SQRrf~V7rSg;5M_C~V%9h#jw>xU1{p!Ee(%V) z4~Ehs8llJ>L3DR@VK47cl~_Rl#A8SqAcZ~4ij2QUhYv#MaSnh#>n-SF5@&)j#vSHN zpFvXcFhMo~xud3YWthmjegE|}=He;l;4VN_zi6-2mOcD=rkurDQhi`?o2 z7kspvK|U8#4;)Hi=rTB3ID7s*L#LV#3)QCM#h;vTUb64vkqH|Uqk4F}$DL-Pq4AND zISMJUPwc0WiR>PX#dr3s?I@HzG>-es27L1I zvKG%m2G2r951>a5AeAyr3yV&B)L6MzyAVsI3cQ?6O=8L)d9T%VY$o4;>sE&qUNZy^ zJ3Yf(ilGaZ6F1xpfBoLnYhz!YXqh!Tq=c7>;#U8hxg`q~lqWsRl8n~7Yahk{g=UjK zQfuckp6%EcXil#9N@Q+~HJC?G!zG3pJ_$ZBN6-H%%qKUl`lbbS!ur^Kd>!{-@vW&$ z@|^MT^cs2f8F~GPsqOtFR3__Xd6c>T4H{Se#PYct#!C;w&VXo02rmNikCtxkl2fUm!QDQ8tyD-x7uK63O5D=bAk`UUjx|B{B_r+@q%=yee*)x3Xk@w?B{vKF6+KO^i> z0m}m!=mr##mPSWB5fkykRAMy%*75|4DiKcti22L^N=@_~fiU_kaeO9J5Cb5&5Z}dV z$ba-zOcMlfi=?oEv?`{M=5y6(OT?Df=ry*`qdf|L3g$U`xYVaIh)9%QsVwd%CZI=2 zQM|J|uQvg@VfkL$@vps67clb|N zod!PUAVl5LJp4fWM3K*uf_BOecE2Qj5~rq06vsqOA2O;MUacw1MP*DK}T}5!-T>`^r#({!sGOe8k`)~xPv=?SZ5Ki<}gh{QNL++e# zQ=U`{cIz+w95WJ1PiFkmzso>-ZV&&H~yMEy3~1$(NwKkJ)w zfoN0}M$)K&_Yg7rUkn|Zs>V@5Tz$iuxzwRxQ&brWDrz+61qF>GuqdpZjQv_T?1S5I zgCR#-`JK8fSktJZP6)+<62MNHaIm5o)9I5u<9*AD0Vh30K~S zhGW5%%h+OHt!9no59{b5*KOzT_0*3}4KmdanrXU2%Ux zoP44e9+!;4S*H;1cLf$Bi)Rmz>>b(9xal+|n$4q~W8`n6|A|NNqJU{nrHkc3ZZY|u ziHE2Jwcz)t@;>zuHp@vPnkSQ$_@T>o!=XeAgiRB~1gJ;e1m;51aSw`4TznK@h?g~8 zgR`Kf7)ObZT3Y;R&B;T%EC47lg83_k!^6*S??I#jw74%AW3vQ6@y9y122Vg_HrKIBcKQz|XPZ8BfFMNSnN`==( z25SF!m!nHXf_!|DPPyq1oBx=!zGu>slQ0LUeU|ova3&ili&X3a&17m1M7$R{KLx37 zclxwL`xPAvSqkbg_#Ltp3lMwbKuVb<@800TU+5$Egg_1}GevN$6crTPj88l~oOk`7 zib3#m=MEGe40;fvdV?+51sxnv0g!-a%Kk`CJD;8YdeReATuj~8yUy*q;G;!B4NOlI zeg3xneMljdjbeBKmc|LnQYx9{5Gu7*xSP?ULVq+OowKT8EJO08n&TH$pI!1sNsl(ZoG!M z+ur!ih?=*(8Y%1e=wbzm5W8}rF?MbhqM>Urei5kLgWhsUDvVhZDg(GPn7{ogRL|qgvMyD5DuAY%8-UcDG?~m_f$jhqW>GB+R@#qnP#t2f)OYjLIKtVxCts}3&u+iUZ3MOG$(_vh1-DZQ}%HsUN ztDRh*b`&*fj+;Tqq{E7X{_IqZOCDjR<_W74FjrMIcyJal$hXI?3gH7jgk4@)Mm5X0 zr$i~BeW(>KJY9FDHB^9CdL@ zQ|}+550aP+;s@DRiuOCg2+>?hPEsb2|5UWt)A%LL*iJdM7s!) zUVIP*62`iH`=)xNJHrWBXyzfIloAo9e%z z`W_CV&tQ%(h5kHL{)7>E9lyclkznxqoCPg{5_(^ci5Ma1k)$cUxgFzFZ{3Kr?M@IJeOc44?& zpCf)?ItQ_|g1sbQ2`Wm4eU4pIf+-mNTdJp&g1W5BNa}e{Mat`iTVOnshC(zNo!;Q> z(~al>S;ursY9QR>i@ft!Xcxw zT)W~O|0kNl52q!SbRIrYCh_alb8+ebJvLvhD1beVac#XK!;#Ru zKCGCwNT$MF|JaQodHHHs^p7HY#hpBBkdRsV@iXU$?H*;hVFM=fRem0~YrdnC+qSn+ zC;H_ilA;o$JH8WsE9(&WFM`Hs5@}fYY}ix-NqU*l4M_tcHdv&#KC2zoP-QeqtI=px zpp_Rzg2Z#&HrgC6U7RFTQ~RVjD*Y~_?*ZIpVVE(fPm1nqJ|w> zraDvy#iZLy&i%j;O=%y~`^a^;+p*PD{%|w-0uudLZ6+EvT-n^SzXKuIsQ3G4=XNH*OE;AZX4;(|B zpqrdh_C*`XD(X!W;PqW}*lY?M&9`jr&Gb2Iam}h4m-)YEjLRQ-BF**hLnpO`Xe~$b z&L<@6%`Lk>geP0qP=t5^YcGPp%{;jW#BnOA-MeYTQcB?h&b<2wUbOhkH1nBaN+Nn$ zxxjR+$m>DWFlH~g=BOLBsP3f-m54TG&eX|fBw=-%KIiOh@2Rwcj0@tg0jF3#DBQP2 z3H5MBR{(m)xy@zpWQzfvh#WrNWHYCq9mQ=VGWWOour0Q(P0|`t76hWEps0mpZh}UT z5tR6SO2?RnC@Zxrj{I4!Y@p@FE@7094Ck&{nOrfTUjvTH2vhtTT?WShZe)9sCnP`} zm07JLU32J>2-7j2HL2+a+|_+LktsH;(VcKR3Ry(%)uh6<=1*5zTw36tG`!tDZ~!BA zhVY%d_>$Z-6k-jKjG*VAq1I<0U8<_6A|P{Y)#gp zefY2^BXTSTs|5T^#PL|kU$wQI2|1)G(rU1$?c1fj zZ-s_@2uJ#NTGb+#psaDd2H;Pe-1t*hWYUPb#V+Q3?5`%xL$Fa_x)D8);6Z18Vr8~h zpH)g_f>N>q$a=9!o!O9yGav^m7t2^N!D+pK<(>_0ow;Po!eCDO;#xCJkJvqH&cr@3 zqofL$q@6IaKH$voclm>QH2)7-Zy6P5)HDG?kOTrGxDy-(cXtae1B1J}OK=G8?(Q(S z2Z!J~xJ!b&gy1sEo6q*_{+}PuoZGj%Z&h{me3F=WS&Hmf=Wq#+&J@0lChesqZ?}?q6ZUyVU5%m*XfvB4>ONKwj*YVIe!=EJfQ`6Zt?3`%09F=JZAGeHmkg*gp z5*Zdf097DYkq3L6y~H_VveVcV`BU8c=%ONfzYlnbg?tW!eMO7 z@NALBG;nindihv-y&NRq13(n@NIx?p>EVS!3D;FsYBv6u%!b-(xwJeJ>QAe1CK6!r>==C$=Ms(ZA?fpkdK6B7v=5fYF4{~F%Fwc z+ax!iN03<&z&{edqc==l+61^Gifd6Ix%)VJ7F}B;rVp>HL6$MwB5`mobPUQ9vEtcX znS}ZQI|2s3o5T$z=OXw%uu55)7;>%=K4bj>B*P~o2iN_y&x8*Fb0o7}@GH%;=#o(ru-zATHVPhDTuI#E_frKP1A zk8`BBab-1Fcru~*Tnlgq<_&5~ozTT3^TSP{fgB@3M0d$bnbu0bjos;1gphGTz8@@o zlYg6>NnR;1c;3eSc6}NC=9Z-qNdK;GQf}qAnojXLe>VGE)(+tn9gEh`I!a8d?3$ZW8^R8q>FxUfx5#W#oZeNhj7IPna^&h*X6 zGD28w3cfM#aQpD5IhY-WNykWB@ghBJLojo_WMF1>gY=C@pj$gKI7H$)_qubIS5563 zgbY}iiMjvqJuK|~vjg-5`rX4p@!sKe!#^fnyaWT-;8zu~z4ZxdN6|faLizE)H6VnZF#M_Q_4j-Ac!rks z`yUV?KRy26J@dGCXcm0rk`TEiWy{jAd8iaJe5@wT-NFQ-qz`&-B zM>`S8WN=H-N{U{4b#alS$igdBl-JIiXY_&|xRCNu+nEZQal~vB1F~JrsHKsS-cL;w zey+5p8|HO*Mv_r6_KwA)c!1;{95Z$z#(B1h1){|)5R|Hgltk8N!zJm(YUgmG+2;rF z#I~sq#?0^#DcUWpJ7AGyU=@c|=%p2B)*1I14s zdU?f-;GhbmgG;hx5E_|w+>1)PTZ^}SqcCa56O`{60SyJsQW8V`-)!4IWD~m>Q}{cH zC`n>xS%g~OF%0Zi!H|M9a;+GjVizo9SnscJg~3fTrxE;K8SJUgOy5dhyPVQemo!Dl{QTiNW&$#YsWcg}5}bJ{3Bh4pKG z1skhPFNzU@N#c?!y)CtH(oL-kC7)8vU%urD2oO1?50Ue*b4OISpgC-HRm^v-yqAB_ z6dl!$dP7Q#iNX@4?MWKx0GjM-W32JNqQ5hCZ;E10uaI}|3C_5J&_!9zi>yh8U>!E& z??2(nmpoRZt0@i<$F^>I-`5!n_4JlShs_ZZ4I$ALT`?#EjOga|&WqcFf|?zUd6%@8 z+B71=@XL+8emt%&SV;iO{3mLv>quZ%UPFR<3AywWnz z@%fd;fD;y35~Qc)VRY@flvz~-^hCr*GNKx%E($Cwi>u??uFQMkL>o34gsPSQ9l{IF z_ItYQQ9jXmj`Qb!_K1e=yy37J+x}DdbFTjlxx_-Zl%Bs%sRhVo;JN#i)RUz+@d}H- z#6e&D)3&<2HBPBg>GVHiXmQL(TBeG6!Xfc4(O|;VFpU~g!?C6Y^@V-~8h*c2lXIIE_sAz7PP5j|y*;M^Lly0VJu|ipLWc5(@QwMu{IfiPl zMxJEXTMpgL1;@W5j znSn;1jn|B7Hk&Q_hw1z2Y;ku0z>_vk~nM*pr_j|9&dik$5`D!uD z@*C`XD>^Z&M^=eq$;)b?bEzlTX=xT!DT^gGUwiR_4z5cISnMMV3*vFE2oyOU(YA~- z2@Kqr)uN9|zQcPY#x4BZe|W&}t8EtVb&BAlP34nh-MP9#-?>uD!#*RPo9M8=j&I5h z${KSiiR@+v&mu=C3K|QLWSYjAFnJHY$zv$LjPz?~D|srm?TlI^ga4Keslt@}j3emy z2K|$}yBm-Bz8ekDGO*+#ly?#Zr+R$C=1Zy z^bOVX+R&HIR{-h%ABp%65{!ik+dj8uPL-<{LyVw*m7t&u8v4IPmOrej=Dz@sCienn z`${5zNhE(Sl%)e;_==GNK*$^)1LYUK9kldLagWGGuuAdptDnK-zI=3IME=>1^aq0n zkz3_EOX}p-H}n&>vRxLnXhE*-6?(k)xV*~ddwcNZq8q!0)syncckwT9MOTR=d-7OUe|D=$@bf%%`5 zs&`+-oRatv{$#$XPTrI@1cZ1sIP7?rJ{eftzu&B+0!H#TzM}-m%0UZ!S5}9L6)b^v zk;4s9mDmsD@ZzH()`wBfJ>PmB4rLN~W#P1PMd#)8 zS8CN!mIaYX@k0}_m$Ulc)0KwsJD=~H&q3^MMRJa5baS>b{SjLHIy&7_t~Ypw`x!n> zytyN|@QM;g7h)?#y+-NQ+jrM_P$K`Q8wj{4$_LGzl+IA`@3j#0D(yeQ8R)C8V5@)u z10Xuvv1|mV9KkTDR?j$(9C)crA9$*Kt09l1?TX?u^^LD5Ib+3&8}^rr+8OspyF`P> zs^&MF95=3Xlhd7@oym{L7dp8yyT$QK3)lu84`M@iwFrC32-UlCI(iy7^0JouY*e7s zTLT&0aeY`IKbyuBS*@VT`&L{HMcZulJ%m*aSn}AeH?aPE$;!2)Xpq7M>ti+*iU2Y7 zAEP+ovNU(gWw!V7Pcv^Q+5dJO|M>4Oc&~Bd_z?Pgu4J)X&SC>YVZokhu{cbU4UrUL z1fG)kjPLmvlgCK~@Y|inTB;d=(^N3Pn{Z@A39Au&mQ*lHw=&?nN=T>_J74Ef!C|9# zq_iIrcp$&Os2bhe*OMo^l!NJvLVjtWvU5rIwCrRl+m`&N703&nKU`=eA zN@uE(6ZTRRVobpFES>VrxC8cos8Xf8+^BD#5%PyUC}9R*MsKlC?~tn$jGGahF-S*0 zpc>9bM>Dc(t7*}U<2L+toKhdtXZp*IfDnvg=d5)hHpkEcVokb4hWr${mmW?YV=smC z5y&~NQj#z6!oz4F2WK06IMwt4s_(X*Z1G_>WW9Oy|1R8B!)5(cSgsPn=%B7GqrJ83 zg>xuii@ea((%Z=tGpz{vBE>q-w9PJLR(|O4T?xCs0d35Z;iHPysAPXXwj6birTrye zt(nk=^re6qR!4AY5O*z!S2wawn!-^k{o?|n%AxZ-xO(#)kB4sR;F4)9eO@GeFCd&r z3(Lg`Ec2sb)lv;B9VEV$d?(_K$2oG#v73zvq(w5y%V0Y`+{+P%DHet19l$ykN$^s;u^g2sV>7$H`s5@|DO2Ecsq}$1DRs#ol{`!JW z;(vKa${vAYqe1l6J0u3aH`snxXUta}J$FxdWk})~dS-OD$5#62nYYGMSb6;f1wmn` zgF8f~^Y%@Wm*`3mNRz`DgYyVwZmK4WG~f`!pytHKhD>oFG#| za<-zA{o!vk|W)iqOcjYP*o#I981QZG~XG6&tX}I#DrZYqtP`ID+q&vql1;ZG?-McgUYyrF6;$i{xO`PHU8*0{O2)HnbQYLrx8Zj3~ zWt-l|I1$LC9?@R(*at1=QB_3TEzCJo6YBNz;jA2~q9c#y=Z=_!5};7iLavpE%(@-lan`d&y*ERa;s!>6d4VgAkk}TaB%d#Ux{)|Rce@zT#h_I z)M}0=XhdX;L-IUdxzIw^x!FxJdX&?t20Y#Oap70}^3Z@eWVB5=R)Y;q`ZIzWD8kJD zs>+2O7Z8Yy%>7sS_0F7Hopzw+L|dw=rkO&cLx+lG{D9&vHye<2UGMYy#>jKTEI1=2 z7~j3giUN~Y-s>U}RMJO;1QF9b??JEU8t&9$^vK{v>_($l5z9|P`Fb*423S^0#ecd) zYSHstWOltcclBD$W#7HF)puo|dNthLH8AkxwcdBs(0{+=PlJR6W*T(gKaBFsug+A+ z?(Li;;@JJsy4I~5=<&?0)XZ{0(~4sHzIfA3^~0w6sD#ggl2wN>?=Cb5EJJG&JpvFV zBf}k|$YbVpk$W=vE+w;CDVRC@ri1A4xX713+ARxrLvlljzZ?8tvB4YP_@AT=HTvzZ zXTww;5cLc8;2Pik2Hi-@$+Hb>u&-fe$yg~VAX@Fa3X-2}pSC!59#-8qa40wfTry-C zy`$EN;-;#ysQdvyQ7n%FcTo@x>uL?oe;(%zQr`C!OE#1a<4%QI)LW@BRl|_M41lz% zITL3^t|k=**VMo>rO7Zw4#7|_YfM=Cs#^hhnWU|@X%-H&$!r;Q?ODXM~9FxiuF$Uco;j{!6=q$uOkoT37 zCZPkrvnfs(!y>hXKmSPF9cb8cMPPo-kjk1maLWRyDbL>kB6_lK)-8ef+H*qWmDr?d zZ6Y|9$Pu&?Iw6`1P`SXYt^tJ#cSQX7>s-@!Hr0$Nx8W&wrP8jeHFEYzJSCsm-S&Q9 z;)(?@BLCLezJM86&5_$K5t~B1<>Kc&!Vndy5sqNY$ox@DX6Mq8q5rPbs@%dXx1yh$ zm{aKKl)W>%_U5{Z7zS(5+U_^QWB{VlhPGD4g;fn}Q|=gxx~64_F+%es^A|*~l@Aq^ zFf5WN?~TW4R5pBktz#gkfG=p{?Qe4Zr( z)RqN&TeBPQExG44zlvNq&{hOX9wyEeTGuYWv$8rIX`vjoMyxSIOHWEX3;CASQ}y@H ztdTpyl9+A+wi~I*yIcb%=@HJ&!IE$dGq?YJ$o-F8-S8fwC`eFpsfEk~ct4PB_&Vu- zRp$Rztm>+4uouJ0$cEG^ZBVv(;R*sEIPj>8DZWJ9ahf&XR_S6tXL|Nd4gr!FqiSDjN`f6hg6{_q~Q8V`_DR${f5Pi&$$#p+23y>u>0|zXSx5#d%}5td-xrA zTzU&X2=egH#|FYX^R`k{o^pPU*c$H*K&!LIsA8HPh5S00=u4C|puCh>F!YQWI+XhH zRsH$!M9swjFi42K@2-xba8r%_4oLww%!0!#tf;xbI;8IY&4t)&>*zP+9CN0cyeGnW zv<+Co4O=30Uz%YAl2Bw=8adEFVU7r_lWdCg{|h?JxLb!Hlr)A%8BI!nVgT;H6=u7-d#GBe@d7%G2yx`@MGC zW^YdBZN#!NllUFfP)Uw?u25IeT$WiXo^ggMB6XF$(Vn?<5^bjMl+zZqZ&=;GL-7F5 zJg&RL4H3LsqB3y+r*f^W*SMf*pYlJVEPQjLNFZd9UmKo0z0io?X zf9NMiK0$Zu=F&GHH7l=zv=0W9o27PRYM1~UESbymW0bOnj`nSMrljdxYWvlP)CG<< zp-xEhELDExyX|&uRVTC58iko?dLV3Aa5BYK*296@ts5WOC z*_U^z!Dm?|AB@Hmh=-m0+nsFmSA8Z8Hl6<7wZ>Q+Ddj*8fQqWOlnTiMs;xxxp3zj# zGDTOuHme2zuNV)=O5Z)UPepRcZrcQZXTlQFSrmwR=y!#yA+ycj9=~v@-c7BXA+X2G zFGw&JgU_Fok_3(Qrr&l)C&(@(6FE*q7TWw8lqbC~+uUN~P0c~{e36+>C~hACOLg!G?G+c0Gb%i{T?f^pHK1(FBqY)!$7eoS}TcP=l~r#+8c6>^yO-#zUKC zS+x5tgZj|$s;Dk*-<4`-$xf!`2p$WRwC6S1*Om++iqoyMxuP|dv|UgdBhi?%B^)eM z96&QUaa@fvbc?fp(`$wyH*j7xqOC4J3d9ZXP!pJ;RLN6E9`mWV={2qw5;q_mi#1YzHf}OXk+b=-C`>?4rv>hJso8?ZRvON6V-|HZrcIM`p@dMg z3fi?ifM?BK&j#)DCYIsY3)w~P+N%xs>X)dqCSsNa6~tCW_$QOrClvsP9z$u$jdvMc z>?e~mQ@b3rj|XGX1$BrvqQ-EgT|WkMkU^H(v)#7Ln5p21Eh#oeGc}$y-~%=s2cg{vebf7PxkA?3?sKI`;7gN#2TlW6#i<~NVu5;eU3`(8((#jw2`~LpaB8_i{Y!)N?a3^ziP>qRl2<4#`$Va4a8V!c_iPZPIvf+*M|`pQ0a(VaVWS zfGn6OB(D4?n(>Kr@tAI_72~y$5CrmgBID*5%6+#!oZ?kFrtAU=x-Dtc>W;k;h2+my+%sH$cg+-Wt5$BYysJg|0QlTCR~JDs_~!+N7)ynn3Np)~HV3yb5&m6|R(n`)vBn1JpK zik0t~HC%#%_oMiUYq(Q7TXMWxwA`QQb2D?sxT945HhxvZUyOPGwt-gH?yGx1`}>h@ zJ|>Hc}-+)0!Uu3uE^ThYSaOpwF7GK|J+C?@nlDxe|Cj8E#y* zGfyclBWk5(T4WMMh)%pf%W~l+P$->w?1H&Doo#vTldwn-q}+3Ur_ttQxejW6QhS^;K&1?A`6jn3EFlvh(i4 zp2Z)Ol;{vfmOa8q8-C2p6MX6dmM*{-LRH4d-P~kr$cwE`Ps_n|MvcJ=VTzslJA(na z(9>71iv%{$ALEqWadO@V-QBL(d`7;kz_TSsnh!bOTe#LxtiGu3Wo$RMt28s-W6l`Q zyX$k^Shb~TC6}R>u6h1Gu)awS*xpCE=o*;!)mrlI8CTvhlPBLSA)I09 z=HmUNGulqhyHzK}$#Ettj!ie|&0P2IKtI7k4NM6B-a{nI{u{x5dt@F&LZ4|CZ;Hs} zz9W2WNj`>kvL6eSP)P%|au9UG*eLi)zo4qVQP!Fx??DdvI_ZLZ6CM$}Bge=p+V(x_ zelhUXf&_}F(){_}aSn5t)%};&yA;^MMAKKNaBl_yG z9ezBHa1fZFfNY~`PdTDFMY<4uFm#I}Y1XFy=Ag-VCq*bPB9CQiI~`b`Y%&N(y`Dz= zT3@}EP~lDPlhNN%cUr$iBv`eH{6m`Z0+S5y;eGp8K{nYsLjBD z(gzuCG=)Mf1T&1DFXaR$$?5F-Xu-|KT-ZANOncD`;7I|t=1Jwkw@Et&;xz`l<3V|q zWY%z!n9yd#MZSVdn}k`!IzsH|CCP7J4(10~TSBx_+m4t_OQadswS(~ze1ctQv0v9+ z9eH>QPdFxD4eK=M)W_)%eOhXO+I=j0E8)DByT|kp8->Q1mV&9V0ZSbhRS1D^6>-_662$;4*kU%$%3nI#C&$&Qxg!cL|H4MqAl;!C)7z-ICnk^R?|qbJzc^L z;Ae4gOafsf7#Iof3Fm=;tWW3VH-uNEfpJk38%X!MYw1(EmKLmO43QdE+mkQ+;BDn{0AII0RWpHPn@>TC_eq-%+<^QHAAq3Fod9INx>M`{;af)xGR$jhtI_k&O z`S_!BE_ojumDfsey2OqWk7H{=%BIGB#4uXTk4%FbLWXA`U$c~OhEQ#$D783*^(k+863N$2(LRFNk6L5wxgrODP#Wk}J56r@RI+GbIVX0pHz{jAot zqTP#?rjZ*v!S6Tcr#eb=D~XuRCm9U>rB!3HoXdWBw@-e;NHg3|A>FkguGAdv1`=S* zpW1BpN#m)oJbn#p8*a+Tt{UuQvY9+P)HUA0O(|*W6K5gWNO{n&?u;#9hY9A3uDSSo zUo%9P+Mxd2*=LJe$5duisn+_Eyu8d(B!|t;w^5=uR;F2u-a?CtSak^LXm9*!TKgK= z4(n$9roOb6TyD#p(fplObqXXmn%J9*^F<$#E!uq~oD!L8s!9x;lMw0$*me_Mqcf?l z>b&qaEQ-K?5!kX}uXOHdWaElrmRSWyivzKJD*p^W`e^GEt0U-YcaG-y7j^nJwpb>P zJUSPxqE$p^JbxcdKD#w5pLnrynX}vQML%Oi4fg>pXfc?t8c?HgP*cmM)y zrQ6G~o~yn`ai)(g80?XwLwCq6`6gpNkcAfB^sz#e0A1EWEweoWtQ=!+r`2R<%SehP z6K2$V<26XYJ(hses7zUi5wD6KqKu#5uh_nk{70xKN_|CnHj#QV zwLySPq(r^t$n6S)4|?Uayj&T*P|Hw?Y5!tC3#=v`NNbH!_V3fn6!sX(l>0XYPkrzv zrmwsT%c9qH9TUhBZv*R3QlS>V35T;v^}>+I__?fGL9?3>^Dg|PXzgiFx(so8m3{GK zWQ9dmE@sY6Za08mPTt6QsyT<146&a*M7GP`dx1uS*TPicM462<{m-4$PN?6~0D#qG z-Gi8_s}4AiRh~JvG=8T=SJ8G#Tx3Zdf17kz&Sg^yK5m_AKeCl3b>Pe2_=wo^!SQF^ z3aCU;B<9vaq9(;Vqula}eBf#X4{i`i>S}2pVh+&}+Io8&fD)^BQOs3@V+X$yAWusz zF+~EAOI=~zQm?c`D{>d9`GwkYb6PM1qz=pcBTNPzWTH+&4x?clS3jNUS3Q-$bf9~u zE~;@eCn=}4ALP{GyLGNkg#wYmv@T2V;^$QPu1s|mq>UDyh4$UmP2R`nJT?SZ!X?`K zm`E}71M*|N0+8`r@&77ENKl(k8h6%v^>yzG9gF{8eXY>*);&;?r=Fp*dC^!;qpH$@ z0qEsLT&aEgo|(o?Rc5E{nB?-VQoQ{HxwB?$S&j3@_-7|}o5f0t^VfCoyDCqf{^FPEp0IdkLh5#KP1rRVk>K9+8!~+!f5sQ zrRBT}_v%)jGr|l|dRw9a3is|MD@gHylT~m7m5(`#k%*Op^O3;Vwe`s#c8RhEI{iqX zU!1tLwhr|y=VKa`1J7PEvmSW$5~*iy5*w|v1%VyrwAWm2a&s|zM=lDKP2}Jp&ED_<*AS{t3jV&nxVa=ZAdl8*=14} zdZeIW}{m`rhsl3qSc!c7f7g^?Ydt50?8sSwJ6|55*O* z(O8F+N$EsnI4DR5f>A)7{80hQf~!Vj!~M@W6h_F5^wddVr}&nQ zXs^vV{Bba=UpN%@TsW%;Tij;ar#Svh&~|Y+uv6~-mLbJ#Un!TmVWTpYT%xLo<+Z>w z(*hUL&Hm|fX`sMV(JHXm0y0{1{(;f7VO3CdiN}-Xc34?g)8eg@o;Fmb2x!AvMUP}= z@r9N;+MPsWfX)Iw``no6t^f*O*mUuK8XUTk?qlPzjjlN|5Bt^%o^A&qEZM*-Q=*ggcGiqUkF zgPQ3!VzVm<2vlzpQpL;wRF-&}b_Jp?s&4z0rwfc|1+cgWx~R9#-6=^%ZHrTFXOaO) z3CREiMf^T*j9Mh8Yl{T}SwbKb=XmA$k12Lr+20KoSpt==f~CXJVbB_)z>t&e?O^H; zc-E(CGJUrH(E_wYtTWI@+?z_)a}`hO2!4w@aT_x0?p+PEv>aNn#{=bqR+!;Roxrt# z=Qkq{(cAA3~p-(e^jY<7#N{c1&Ir5PaljriU~PsJ6&lKNWJ zR3UUDOE|EtUUbpb6K)7T}VpPDnAig^V+s}z^8(3 zR>)mrqZdlSt;Wc~I>%3=|7pU-OIa~eocbwApT8JZ_q8)&Cz;8QsgG2_ygZ|G#C!TOc8Wvm5kB5v{FklVvdevUr;7u6qNs_ z@GU^5IN8e!`TWHxj`z!UUk?FcwQiWV$zFTSca0g|$TNQ)92&!`)8%^(zIA!ca}ap?H=F-He@ECq)+mG7r+oaO9S$DCGgDgolXVqFG)mu zWnuAFu0VJeZDu60W-adoFGh1)7HNXnDv~1BH@!w0>vD))RN;>x*uq~+E3Y!Xgu;$l zQYsw}s<_5C+G-2)$;mGSZ^oIuT&K*d9{ahzGtYJ`MyceIbbMPZi?DAjOqs;i zMkDqoV5%;t$O3>7(Z$J|qj-N6=Z{i?CFJ`UY}TgEXH1wk5v%`|$;B6$H!Lep^lpaQ zrCwRX3}a*1@723hShn2)im?*4EW>AB`*ZDrHRJwvbV};Q6gkhHVd~M_%!`x8w@c&7 z##q+3Dw!B))ktH&WPL|xK^Z7)3;BoALY1!!2$R!jVm?#28fB4|5?~hp^od4aI>EMQ z*=t;{A>Adp{df93R?ip1CXcvdI?u!ZNdjA^*GrcMHmLML!e4}1qT(Yn2JbG7gvqgM3aAE2392Kix0h+sUnO78T$6;t4)4^jEdTNJT|%)i z2-&E#UK(>)z1S^Ix39{%1zUK791*(&Q`BGm5E*&72W&>JMFcg+ywk9ImiF^`e%(d1 zniBjSb*hfFIG^4l%=s>Otg)pR4;uubh1dcw`)eE;s)pp8GGDdEdy-E2VTSKG6fm=0 zOy$&WF@(Jj)+-Mx3*u6mO+lIu(cU7PsweiK+y#5mGiYqBO;q4fsSAZ~D8A#Jd41>I z2-&&&nSPF_;_;Av<(<(5C~U25wk2w$v6pS;1d;|%`cSpYn{XiVF87XP%kPO1D9e)v zL6vG^cD7#X*K>bKRJs?-IHjKA>@n&o)b&^{YZKX1EYVDSJq z!y1o()ar-*h2H;5`ggFRx=_?TOSNRUq)2T+iC}5Ls)>Oa@$o%DDZKpx)Cf;v??(Ny zuvN&aLb|o79+lP^J)IS%99gyp0_x+g7}%}=1vb;wr&?r3`ZIWgrQ#ngZ!{V2vLf3{ z774WB^VCG9HE-KX9p+=r_w_6H*%&L8E`OBgH;3Y{yI;B`2$?-)WslUhPPCWGBYo6l zkOYuo1u!RTe}FlPLVwAvxNah6*(f)oU(XJC>vwSP_jHTZYEmbV6?xu-(UaMlc`(Cx zge;sx@vHTVA2NJhRJ90!FjD{(NL{!9K>T&Eg4%pfAA~MJxA8uicONXGb1Tu-D^+fR z89MQyeIiS=nSlGia?qKHWv1da8!ab$um0s1smH{ z)BNl~XJ38dC5}*=15*+&(VWhKXnRJgES7m9hvdICJ}!swnv8MEGwoxs^0fX-+N?oi zDT8O)))>x`V{WnBr7|_K(ottRp4BP$fKc*J7raw#)cRbAw@U7+AU1QUw^+2o&kB1; zwS4^XM<)rFmfer{wO&T&wR-vvd3BA*Y+G9eALR9Fmonl1g@v%%^OA2Tt<6-^pME3T zNVUEvI}$wv*UNu1=>D~r(B_|n21|^u|0;?b|FjzAF39k}iKQ?9w)NtOe{U z%i7Es@nfUuWxKV}`mcWt-uYzJRmcTM#w#H|>miM4g!ka`@>01k{|@imO8Lddpy#qd zr-3_aRzvL$Tqh7j6XcQ?^dd;GND?FK z*VT-pRT*mEn5KNH!gpuxQEXgWrFMOD>zCI6yy$upxYVRrz}@6vDc#yuAOHA?_|@jk z%*3X!?ki`~lQ=kkb4tpop8QNGshe*V5+s8h|D1`}UwQqO1`KO4Rx}14^dIh=&mP*7 zK0hbkF$XaSig(Gmi7#@~t=3k2kfW~wuuMQbg>++jS zYj%gJ?x+_`N;!GG^CoU}-|DWxB{i`A0hch|c*>vi?9&-HX>o;Llk@Ams$q|M_#&4r z%VFN%sc4f4dg8`^Z##ZsMExlb^uXJSknDa7{9XeO^_$#tv88+EmhtQ^I6Zgch?(JL z_WUD%?ndv0{kPj@d0j**i-h_RH`K9dFMUY&y`JR0e}MSM=0VT4 zj5Dcy9`@4khS67l{QISM4AeLJ(f+^lzCh5@GXda41vok4mWD)xa zx4hP3npKsDbH@^)j(ITB zBI{X@V=H^_`7*(eI9li?$7oQ$T#GlCzGE~Pn@R^)fGlv2SGBAFY&6VLSr+ao1kaVPes+jcP10b$+woreL+pnV9{#{q?rgO7?->a|M zbb8Qkx+hyxfa2E`Fa4#e%nE!h0icTB37?Ic{B_)7^7P^-f;O;%D}K*V@`+hS1dIurYx%9Pa=F zbjLEltX=td=nZo5e4chcOVp|VMPbn42 z@;iGLy`p|f@Ure`57~cni~*miYZGb}=yH?5XLh*CLR(#EWE*Q|L^Q%_pWgvdV$PDW zq)ssdNS=91Z|ck3RO)U{N435_pzI#pAo=$!vFmGG*kNY;r8{d>qU%2Cd42L0rN}k% znH;|V?^a&e-I!CdcUC=%HPH$Vucn_ooo1&B#3&zZt@cM-8BVJoxBc1Z~R}| zRt7jrLOGTdF=3M^#L_%x_(kc8(eJx(LBVizb-ivl;zo)0r zg`?z5;y*my&n$hqdYDY`d~Z)O&s&g+Pr^&&Y z4)4tT`EA&C!gx0)-0kq>hioX0PeZJiR%S2VR*kPDAtFw4P74^rrRn`pSNSH_A8noC z7y6i@kP4J_?~3NiKvnXmnPh4lZE$PL16a-Zm$_zn*t$J-)i)70Rx`m;s~=LwavUQF zkREPHRTJBjU|+8Q;!SzX&c6w8i7fuuW^$^Xs;|t!=Z_82W5V^mJJ0Fzhi)pCsj?ea zq?+<>zrER{xFL2U zg}VBu$}Zb{M~r;?s$wQl+om%pS#|Nu2}F!3!OxarJ!03)A zC%Rd+znLjm_B?H9+;-IZIpq0Y?fpR+)+R`EH6w4`dCM_hFrlpO6tDDYK0c#)uT>Lz zu8mGawsIofx8> zdDKnxlZ`N_t?j?>(zTIS%sMyeQVC%- zn&f3x`{hJL1O9?nUNYazZgwWcZpKHR=btOL7SKYqQlQDF)O=>xAcJdy*pu#j1z+J) zi@yl)(wmpj+0HJ}`1WTAX||3+x(fIiKm8**F|q41fT zudYshELCSak)Ktk=6xk1HtJ6_u*LGmd1I6Kk2S}SbM4>%o^n3d2#bRYb8a@J=-z(? zu2rb?DIe{sB?iwE`L$R-$Mcy!XD5))r$aEH5X2O5>p3p0QGf}~(uq(%< zWjiOp`j16??h*DBhY}xNXrJw_?~2yaje@d8fUFCRNJhHE=x1RXPOkAhz&kAcH5L?e zz0LUzrW0#DOSND<3B^l?o;3SX)2MuAovU3Tw7R zsWXq+>Z}V()LPcy`DOgRhu^kdoS^%%8}02G>3t=sns(0GT;V*xe0gE%Mu%JH`(!`9 z!i9#9KBnJ>nHOtcWOivJSA!S+lLc)+zr_}24jpISjg@U!Kw|?H> z^J~#2z5!S20iR9HhM6C}c;uq!NZBiTtFf5=y&~5Ej#jQ<}=uU{u=E! zP89|Wwr(;aIL9tS(pg2kI+tMW=jcRgBW1_u$^nE5#xrUedWwkfhKj$}V?5$kEEMkz zF;Ot&gD*+DTWDIq_G3QbpT3Y_C~gulEUPiDdRsq#JT86CDA1|nw{NH?^k7j#NURL9 z&-@v-o`hRml97>8>5gq?0wB7cQ&y22MyoyGQ*C(We;G_U02R6XfFrUF*GOKONtLjj z^}<;>QfV9peMM4;#xW_&M;3_Pk?5ktB$w2Q#aN?C=NEzH@kYo+t>YQl$sKJ=Qv0o~ zdi`YH^8ZkEm0?kE-4;+pkWfMz6s3`lp+y1dZt3nGI;A8Aq`P~D?hX-<7)EO7?(UAc z<9qM@p7;9)Kjz2GK4+i3*IIk8_W_nz4f>U~%}4uQe#jBCaSL5?UoyH&(LilTBV7?F%jnZ4JQB!zy@6pG_7+}-gsBD9-z zx1Wraxu3mHl;gGLthLqKO8>=tVut=bLM4}#70tRRhT$_|1;g2@B;ludY&nb1Cd6fK zYv1m4*JhSX;Ok|~TL%JilMqzQRq01(8%5`2nSl@R!%~~f_*nzFIr8w! z#`hwwmt=Yjq=Vemeau(&AD&NUl+o4NrkSaL6@t%vI(qGG|o#w~RdH zW@9VRYQV-w4gEXwaf)^RK+3Rg719qDwH1Oa11QlXJ*L*T7S>KI+!-#pdoyus`X#5H&#w6T#87QH_8blU`KG=+|6+fg^)ufK{MW$2RJ0+J?Fs&M zz}fL}Dso+E3KZZZ$QEC54#!#e=gv|+7IQwtyEFvtMMJb-UBdu7=n2R@p>0tRr;vZ% zV2FFuF%)?jpVv{03%DCUW*R7^551;qy zDa@4QnJoWyz=zph_?!N0K6frP3(!KrB=R#U*-q5J0X0>=%hiYRl){bA(hsvMjQ#jRDJUypT{ng4 zBFL#Ys^%%uC~!58#7BIWc!(5^QzAs4J)RAb^Hoo8+p9lMr+wyoMfNy{42#%(e|44a^G^LrxZuYM z9{jSzd@%JN@7WiFO1ZP}C5}QGPP6al#7qpQZMsDPE+~;;wv2!;MKabnDIE|w;b|7e zvFp;{FC#tZTqL|mQzM=-=i0*`jP@RxGFt;SfQM9Rvcd&IP3LFa{u;9G6_6uytZDc( zFlPEZ?axGDU@1rAl(>h`H~v@eh+s?tL)OZm|IC)8dL!rWn$$B3<()dqU^K zoR_`>WFu2hfVVXv{qQN%0uA{^iagP->0UIGNPk9cp}k+j0Ns=9j#^fWJym<-9PO-~ z?hg7IO5FZXUa#~kTR!toyTu&Sp0}Pu11ibT!GbIDJ$0BnOkwBTLi_$)@yafB#9*#m z{6hhKjC?XnaiUEd)4o$py^n$(ed+Vr!5j7EX+hw%obl8t_&HlZPF(Aa~cbodk<9oKN zKkhFci#uw4wm+n6XM6ud0F`Z!Z!Fs*`W}O=!nJf)R8#1Ncw|>SpS+=k(hlQYdEbXgbrWs}^E{4*4m%MxOv~JKMe*F?aw9XY;ew8nk`Vi6NVvs! ziH|bV^g!2QP3y<_r`*LnU!y21oG#nKxdl#+Qw2@Nfm@L| z-Ort$QibQQQY#*~(ybsB{)eaBigQz`hg|M0kquGi){bt@(t4KXG`>oixSJq@NoUR!8f8L&T*r@-ly-OBQa*4 z43CB$!B3uj;31z5daALnW)`d$kqQsY1{D!X#hQS`#YI&o7k;zY59u0@olo#PvDJoa z^6jD3OH*o66!SP!8tF}w;nbJP!OWZV5AK~CN;v>iPQ|3ONyBBLu5Ln9%gr-#%)HEI zbs6-T_dBjN9Y@4xui@IpZ?YMrGZ!colY*&ScWo0W8}8`l#KC9%L< z)I146GISi%UT=Pp=4N=@EOxgCq6QGiP9%9Lqh1x{`P~Qz2*+4~hscJXF-;ENu5~M% z?Q7wE(;GCe*Gcx;Q{m(H`Pxt|w>)u$AxNn>Uba`wa#mqeZ6$dqbmv7<8Ce>Cg=&-b z$f!}S=sDI5MHKLVCzeU0(J`}_v?eW&Rs}9l6udz1@$77EwXHDM8yuQ3P7J)d z{iMf{pfy8&MRTsKV}-kx?CdqyBM}?G)k0lyK(vrD12pu+x-k08Wrg^UQ>s;)?Qj}P zv3*f>vU+maq~cy4-?-IDD!=_khQ**kh_4CM!pOaP)VO$OaZt;wUmK)plI-M@+jBkC zI~0m0VqjM~+0xNiO}Mw2EcnY~|Mq`h6C%Xj{Hp1$py12L%9inZh3d59C5x&r@0$N9 z+xz?cWoJ~TDc~a|QX!W!fWX6_B3nG853B9dotn9dL_q~`r zBEIiz(|zq9Ime^OR>}{1$I*X63_>JT z*3WE^SS11A)RULC8*$UbtILL$bRAb**T(#$d_p6!S_X7`j4675_2Ib5naN3pd12!E8^rasrNP4?o|^z=@{!&Sv4vGK*p_R~>?A`cD&%yG zLq7`wOxowYx<$55hxQ8$OYZZTAmf<4gSR19mxp70VV1lV2>wHi{ngtHBXdHd{RPfu zXO}k1(8j!&FD;sGe48fY&<03cjQ|)|8#k2T^Q&=meb#x6m2x8|KbR95V7%%pLb4GdMxxOXddnsvEa}uB5 z4>}$$!DK%IT0EZ6RD3Hkx2K~=EyG(2#*8lr6-bT;hUwGwjyt?AWnMSj$$h*RBbn?gH!nXX-Z<8%(Az^`4zyDE(=G`XdpyOgiT6AnS082)fE z73izY_Y`^>`OSHNh+bQ*lK8@?A;g_6T*oD!w!Yx%E-qz6eIjl+Zd{2Tk8Z~pwB@rS zHFCGKwLy~@75{TX*CX$ffRV(gZ5*vl_R@_{JE#{~K46(A#bi|e;G+uv_R z?VX&k#@+2*LU!w&H*)Df9Zck|j3ZNs${TWFsOSFXzHu@V!A6Qu&#f~PGuOWF7p@LR z1g`8?q9ce}aUKA-AA;h3yP^>9T_XKnB#cZbi|TGRdzeHtvnQ`}$hMKo)ia&PHo9}^-kDJZhLIqwn9@Z*9_^@ozV|IGUEAyH5t*Q| z5P}3%oaZ1HdH=ZT6hc%}uBh1xH*$gRO;&qaK0n1h`sn!P%7O|=K`0-GBRaBmhR^cg z{jzS-){Z+u8>KLfo7t%INg?0auV|cabP?k^`3(Iy=v%n;W{)?E^1FA7eds@2OmGuf z2HJZSnli+lu0Vo{R1Pzk84n7C7liRx1z&l#1QY*w5@*v|SA89%q!)U<+j-xiSR79o z)9!nB(0KW9wKT`Kdi$V)vMGHt;HmIz*iyq&aoV9&AgyoJjkfJ_t6_^p6S44k+1ROFLBNGF^V(-q1pQu$gp_Wl>S;N@8KRj#YGrD;N(sH! zT3E5M#1p%FdH+Rquu_1m@jST#l}#b5N@ntDpDumoNXk#r(Su<)j~zb9?Am)GyHg`1 zhT$X0dzxBNH$R}JqM1NpiM%z^cHR4)LQyLdmt=vsGownCaa_`qm6fboTu&LVMsG^H zqG9(n0R69zauz|Oc>?hP&xD*;y$g$GYQYM&1s`#E3ptaRT%p3``2L=3HzQCU&2_Fn zVS79hrBx$8HlAB76$W^A$H?xUY@tzS|9+@fC*Z^#qwj@1a^qxke9z#NTI%0=z?>~L+I%bdiBY*}NX6W$RsABoEv zPqF50Z4awJ7V7@Ab0a?RMylN2VEgRf!F`2jEO<@wq`fs}>N-sHzWZ?}`*9%DsLCI) zXK>)vKD*&u-HCWOa`P8rxibMF2%a1xAy(E^PO4-9xyRR$4g>p)99&~EnUZjwOp~BQ z^kTorYgoMBZ3tKbw^<7m<;uQY(*lp38LX2)#YGd+TxzI$=hKyv*Uv{zi)9H8=>AMP z!El?B7q^TYN>KYM4Iav{2Lfn5kn7iK`ckkc7LS{5i*fy!tXw;3;!Lt+R%$P(wN(Zt zT8-M=R&S%sFD(ttls3YKnA>qNxa%t^KHi{kh7euI5t!}Ut^s(Xe}nUbyfGQe+loE> zX%1lV=olswn8rMd{coLC1rOS-s7cg5eI=+j!t}~GH!N1*=l2d!9!MQ?=fDImbp#0s~yB~z|tbviDV^d0s!pe_F z`-=Xz@rf$?Jz;p4M~KVh(4P(PW~jwvao2a&l78CgOnLVpY`8NYZAQlzVa%1Y(iTj) z7wg1LNFu7ZBX^K#m*UabQ5V=G7%w0!!Ldcm5fz^zUKO2srCyM4PS()r=-BwJRgq*! z$pIwsO5r6_bM`yv=o(qy!e7p7>2IfpMA3ZiW9~88MQ#MivM%;6tdADkYjq$C3-Z@U zH!<74{~ay*aV>qll3o+d(l*sP$%?`X?gZXj?Egd)Te{*S_~^!D8u4uWG)W@eN^nL_ zB-k+u^Uo`O{MFK0FA)!nZMfJ$P@>aVrLi9Q9!RA793DVF0apy~mEYee5ea~Z5m z?CT~OeK~=;8mk7U$CLX6x;H zdE~c}tgME}3XFqN$cJFE=<*edZh97_P5Lfqpt*+yaCKId+*#ySGV#=F7^Xtr)0YG& z3PKGPP{hd1MvLVJeb}tE#uw5TGf~eLzz*JJgB*$0bPX~ofJ-gT8F_J#&eGN8%~tjt z(m&X)haE{RzbQBV(Wj!B7RDXC$IXKWJbFj}%+|rAgD8yNq_~K1Q6!%24 zb*^MwB>Jn1M(O#}35gOjyZfRzF&^2k%5(1o8q=((t*AI+uSkMJ_2t4h9!O|u6a+7b zC1SEE3}y~|{|55^B1(;iP#<2ECeV^_zNmmZYgmw zAp9Y-(nW1{JAl|znkTPex5EdU7Q}KE4c8PV6n8;HBKtp<%WR6*uRX&hVTMY_!qMth z*l$vP96x_qdEJ_XS)U@3G~jO@Z7Dz2UREzv)AkL9sXH>GqEA1&%TfYnO*?)wNqMoY zOgz9-%$wf&p3l=Mr_v1gsLt0rHLaKAFjd(qX6>-zY3Sw5Z80Z*dF=NNRPH6cVeOJE z@Am#g_eTHNAF*)cXJLT!*1`I%qqC_)K8X2Z+}kM>(6Q_p)vC+t23VBTDkT;y98zPG z@S((ZWwGiy>W+@=H>5y>rqurVQ*N^g=o4C;yLT>*6DYKZX8053Z7H-hYnY`8yLIW~ zixG^V479+rpl=O+N(uhYbwzU3fNSb%<72^xtv^*4D=Xcs$wQ}GNQm=qLl3t$@PDX( zxIjGc#f>B=A|3g#*Ou%e{`}lRi(Ke5yVvB*Fdv&h+-4(gE!w2;thbkcORCtOuWeF_ zn6PgM?NJQhcG!SRvXPAU!{b$F+^4J zc6jkB_A+%I(98?bqMD`|^3Bb@Jay7|$@eM~NmREAQXHJ|Ih4UiN4AIsDQ-P0+>4TT zta}{mRiKB5hx@fKs^qO{y2C8Fawx2&qSmxI9GGQjg!an@f<@`4mvs#BY%3(Jo$V8Y zm(?WX?VVvM0z~8%(FV%PhE?h_1a4LbFrSl)abzZ2%?tGlA=@G~-HR)J#uZ#_>v|_& zoAMzNCIkx`%5~%``oq5+(f?J@2#@O+Y+P2tDsAT1rhhB8!^4q9XkRC?SgkUdnpx`! z+Q>NY5n=PT1|e$iO_K2Lb+2L0JeLJ$02nM#SY_fV_QY9j*nk5%;^f{-nJo3a@Sb{t zNuifg8Ktgr#Tz9KJ5*vggxn*5<3x#$QwwAkW>Ntz;qMsr(N}oW@R+e9@H!whZ@hjX zx?VC0(i73~E1n!6eTERphH+jy#{F6Xj#Eu45fn1e4HePdrr$<|a~71gH2I~L1ml3> zvo!HhhW28v2E0>B{RjU@>{P37D7H`V^zow#N8x~{d&vk05JHO6dyeC%Jg|54GapPa ztbFt-YyldML~-5uqc3#y+Le}54YKmhgk2gNU`4YG%p0;8GTY_z!^QHKH4`1xj8VJd zOyw!cD4Jcx;LhFJ#6u@an|Ng53}5W4w&g`3yPV`vwVjWPvDLI8xW>r zrI^~A<2p@Io9CN%`F=0vq$5=&{3=k*0%_QZJSbY((&huUPl29acWh}KrkW4 zOUW~R^|9sj#7y2q1rD$qGr=34coiU}?%ie)H>0N^J84R_iAlWc7PPSLv70cTn`8x@vBj-;wG#@B(%&92{xq_wDW$9;U__0Ph>h>$ z#o-b#V09Q!U+Ba!eX_DH!@aqHPKl6n@s5-Z+PI zyy1K+9$)&qKtb5X?dKMt!u41#(iB^pcHRXQ1?0EzQGxdTzi%e@H8oNG^~O>)q9^R? za;3-nZZq9se`BK;=|9OQ?=QvJg&0)a|%w^gqlQgE0k1T_UFm@`FpD@n@sCO*69<%s4xs3XmsZ9*Pv5557%~9fVHuAcBbD8I zNLrOByOYVo^65V6M-psxzEFq`@J(&9>6nmoD#_dHFMTYrjFW@wbboHD+`d}j?>lU6CyZdU&QX|EuVcUYwGPA@sgC`-eB}%vjC0 zclY-+Yp;2z+dTW~4~CC{%&OH43cKxEJ;_D}$o(c5$kSYlH0GQ~wibV5cXn2L;oF&U zWRy}0UYPxjVS@C4)3!8@Z#b@U#ZEDXooJAbdyM6br10Zc{RYc&HnYGgh;aIj*ha7WZzy7sp2aSb z&iwjJgev9|X_qzo@G#JEe=0k~|F^@gCDay0_N{9|C#1~J2=5}v47x{WUf2}gjZ%a1nK4x>NLTT`BMPU@yUgp90^(+NiO4M_Le3Uqo5(e0eM0#`kL{solmv2)Khb+*x`ID25e99$;C#=o1ea=*H6QPSr+Q&jtwd!ej9k*rmG z&4{HE+*_C+!A!ElwL-pqHYStZsxH-g_=KK>k(L}okN*;ZJpXR~{tj1HSE@BP_r}QS z`hOY<ylBi+tP?i0qA4usS-$a!SQFGAO;5j%inok*A$ z?D1vbol0<`zWpA06y!lj2cueSG*g|(Uv{KB&DoDpX{t=X=KkmRimvN2j|Rb(*fp<% z|F3S4!0+0cC~B!X4@^TYO-r6cSiv)lD5sjVGNObD&OU{}c>HD}TABoUI zME>+=v1B9=x)fJlaP9O%Y+Qj??`=4CrlJtPf9nXLHGS%;Bdge53u7V{uYhZC?cFX4 zv^?*e`7Utr`P@f2(Gg-jM8rrGl|RyBLzMr$X7*9o4IBm09Sr0K&$p~#*u;3~9cSHj zGe3)f+E#>W#9GPnkb2NGT1hym zh9w1|h`Lw6Z-k8l)bEUK{GGSr>eGA-puX;^?0xTNP_sL;TkT@4KxsUgLM!#A7k$jS zn^%%zjyLlZWk62;&jP7b`9BBZ@=6r$KrJ76%9#-Hb8Q33DzyVIEq1#K`!b|@@e6x! zcY+(Tgl!kna6$eU@nxmsUJWWm9GXZ!MmK+V3#8?0eCX)8oG$O0s>vwLESGx_ZQz}L8mguHkc7Fq+ap=4Rt|6DtX5Sx0KcFz(hN3{LF=CQ>Z74& zSkOml|4UzpE5(!@N%~*@3p5ga{iw-rB))-Rtw@3EyVkS3h1}FX-MHjuQ=CfrdtuuE z>(RmLF_HdzT=)lD8ipp$e6i{#Kjb6_orj@vPJhlGbugLqBiFoXQz=ccX12-K*YeVx zX&gh54OHbu@;|#0K_!FasnRQ-@?WrESinmdT5Y#{Jgqcr~eTaG1MJx}W#!GYTJ>8gsZgHyV08G@~{#XEyT9+N3mhu*x%m zueSw7dnn<|8X}G69+H%7u04J20ebJBi5)t&KYJ|%$A}l=C7nr&JV?BhjF;eQR3--z zS>jSWy7&&Z2*!QA&B;TROk5F&A&9S=?Lv`g7t$mz9}0t_z;e3SUhdP_CqZqUJIm{} zN`nfqSR19?LmMs$V1D+O+4Z$~{H3QB=jZ2j`^|r!LK#Lkfy{jmz%;TQk9;yU)AoCP z2(%a4UXo*3YAdBCX;b2x_0egSwD-v~-{{W05#6BxB|VjWwdC3I5m7%XH(WJT)cULl zncr_B7YKjJ`SGh$er&^t0Rqx6*D_&`efD7ywE)!=gZT$RA-|R3tN&mLNF4{~<5z1f zR^9!neEvCrk4ScTLQp1bX$}zmH!t|#ul;Q{4N#}tQGeQTY!RlEHQfFv9ES=DRY zUCucmYcVTrLDSUIRrbya#O$#FNU_&rsggnarR76t6ISRzusi0%_-++ zt>P*1oZ`QXfXc!*PzDHvHvkmsw;a>CBL(~@17+zJlmseL?98ehaOrtCu5Vu2?mbcTyMay@a)#3S67?z6+LxxI=Av&&U*iCN8!| znR{m0wUKco2{LPFBqHc?>qbV{G+X@vGdDgBXP#&whzIINyu1AsK|xW`nfHdn@QolG z_AsF>+b~w`WN@KMIg&C0YwQ8~OR+XhwfpvV1bj>yO@2AzsB6mhPXBJ(YUrh6cUBahRKiX?Z1G?5 zs;Ee+%$xlL#CR__A>||gIbbp05&T0Wg%J^ep#|D+_RjzV0ilXmhzFr}KG0Ec`NZFrG&ImhNAiMdQ8T$3YL08#{kmuksDpXx! z2$5ND^J-E`oj&oBJ`e47Sb5&C9xf62`%Q62WIQW2ueF?(nzY7QmM^8_Wzi7~S*C8H zRHrlUzDulrsd49Mu#xcf)^0g(|1R=Nnjy+e9=r3_8!-E7+MDHC&*!54{)dC=#Eh;( zr1Iq>KX5dyH{NGs`|`?F&B|EBw)D;U$8hPjecYhpR*m#Nx}=y?r!Q<$R!lYc6dA=q zBC5t`n97lXCo1)>WHsPO(cK=YpK?R?IY``?S41ve7y0s0#(Wv_gpa~&IAKnRWF(IJ znKW&wGc#Ol?4+S20-QcH&}bmo5pX;7V((pgg?+VB>!6y2#GS-cWcvSW0sJmPl$1Co z&zv%OI-WDzz1dUaD3YB0D0lwuLkan-mERnXA*_2+unv&N;Mk~k@BM$Ghy;;*;(PsBu2*2Ei%|k+{1)Dxp4Eu!7=+egkKmSmMmHB!=MkxpKiQz{uY1h6K5~9} ziO?3I=4%}TFc2%wcg=em2}7JQH3T#!1CQk+5@ViEtFHznXcvhv`2OGoeHTz>66=4H zy65&s(&T+v5@_wud-_cSc-W{uyB9H1A-2F3A``2#@xjzJQ+gqeB9JE zZn!*d(I-@~tRwjmc^oq3eRr?Pt3D4N?)`T-Dm#)5>_yd)ObkBZp4h>Yg2wz{%F4My z(d41R(F1DSFtgLYna?Mt^Xa_>-iu$`l4xB-_{9}cVaiR)#X1bh-RTuLPn23e+7AA_ z#YiL(AE{8LB_t5zar>MKvqeXd^HW(WuM7K2UBdsIsJVxfg62oNaEEb@;rSqTu~VGr zTRdLqaW-YBQ7R(cMY}FA0|4oPA$404&4ca$3bGdL7?0K61^E8ZR2+f6h0wW26>_LJ z?;TmF(I^H#idW9B>cpYFbQ=6)Zbb|6QlVcSZ?Cko ze0-Zv>$q(x>LNzLwydz_J zN5!+10;A2wi<;Z*jWc;KIQC_rfC<~9?GpIUXuf_DO7~iM%k3oa9q!1iy?r`b=CyImTWW|ifF%V_GEOB<= zZ@gDF8`Cd8jou{azZMi5B;`w+`Awcf3KB=1=F_F@E6gin`Z}n@03&3A`$^o2`n|R% zTO(Id_j#u|KSx(P`AjX*6GO`F=X&bEeCl^eVaCCis#1}TWuR^MSaSlg7Z>h~w1Sxm z^2Om7p&1{+7A@~>^_JX9ZG9${dB8bmZN>_`4VGd|-CMv2aQSp5$g&vBL<+3DX$Cyh zw{J1U%lj~Y84`~d z$=fSAdH%{Q2&AetUJzGnsqxOARU@?-AD^~g25$>FG>~LuLWnN@)rDQVvV=jGY3FBH z7z%&%6dk{|rZ1YZA@i++?u&Z=ykHv} zAr+W^d!mqQ)|)$he~HHO+JgYr}~%)4hL+9!`DT~ZOEEie@O~bC;{G- zi0h*h7Sfw!5@CFRm)nmT<|l^?FuGM`cuR-q!F%jc7R|UnkNJ)QY&IddXzTx#mX&cj>_5Bx}j(d+fBCPkac&st3J=s16QY|EfOkb|IDf z3$5;NkC#aucpwk^Pj!=Ka=n2U9?;c(w&wCqo8Z(V?6vD8dW==d=%2`Bv2hW-k@pgu9tAyLF_-vem1Ek+rS@KGi;)Xn53(iuJ*$Q+2jSmy8EcPcRwV(FCD@u zVF~klZ2!YFkO&V+8uu@3L~%onT$aif^q2F|6*lh3N8YjNa_!ERTZHoq=r z#u6kl6Uq@+uK?ho?zNzap>aU8hO7>hF9yG_Bz*(swrdD-Yt}70^1egzNc+gHX{W%M z&rYCnoJ%xQ0jZ5W(CJHrc;7A9CaG(fyGP)X0oO=UQuNz0BI7i|7ri81?$N@%F$G_W zczs_Z%+gyV)-C)J#BoSwzu?ViHcIboYw1hXvg!TGhKA3_?cvfJ=b{Y<>wb??&*%ft z`do64ol?}(_et(-?boLrZ7kacNq63$@StNb4byh2s=6n5+1s#L&s~SfNv@fxP%ezP z&q_XFX2-=t!@Ty!S%)_A;O%c0&5sxgmFzc*Mr#xk-@%@niSQV_X6LwGi+q8Cj1ouV z>1~q(bBb?zf>eq>F;B)$c2!*TWOHiBuRSe7p1iZheka3f;7v%8aL2AmIHUZv+J{|= z8>uNboZ^O+!FZE$Qz@aC_K^Hx=)>ZO22tgNj4ogNJGzR|wsTjA(@+F63} zPK(x7@2YqkbQgW#;A}+*kEHg%>A7OsV>Q15?NE{`pJ;#G{bK>g$k5W>E&L?eA{@Eb zJoDWnKmBhx<;x~mn)Opf-VoKZP^Tk?+48iWp#h%kFTC>`T%{R49HXD0oSjP93dNJd z&e4q?eH_t-#ZN6j|8+H2MQf>FBIy0o6)6xdqP<{FMCLqCwlYLMn~N*cdABUd>K?3J zF*0xE7*A2CAOlU7rCc&=S=YZ|N=0=srv+K%B{8cWKw|vh4m1`NxNU1KZ z|F6CM!jTZBk4=H?_|Yyg@0hg8C%tljOfD%?8SX@&Xef3AzM1-hhCuX1cgo`KNt)lVaXjB4~$JK$L)__yl?-Sy1o@vevMN|@U)HUt|!K4iu@x?c^n)|5iOF;R}4+T@+&tS~n)Y;^=X2igKTnvUa*#D^eepzN9155; zYvDAK7kl0Eo?O9$R^{2->(t*VSOft)^$fCHSZ4O?oj;zrv?2z&Yxh(>tFJ(N6AySE z2JzGy^G0c!%KFNlYi=-TZ}uSfie5*x6HHz`SZ~rAygPa|b-ZDpHn+b(%vGy1rm{oP z*WJg-a@G&Ez411yQaAoVCuV*(3=Ro@MWsJky81DQKtK&`SdXVDmV@#~5QYZ1%Pv$! zTRF%9#%C98o7Q*!9@1PPkf(~CdHGF#QeV~v>)3|PBP(G!ZH|+31W_M~su5V}K54%+ zo;GoPvcwr_^yjBIOEGH!1Wa1ZEMSs3a@Wg>Ot1SwQ5r55zG;jVId9WN#>+I^r5or- zN%}|oI4cCU?EQYN)p;zP)h>^ek+o~cB(llti3D>CT;P|&CEFd1(Q@?HkK2~{e_b3C zhrO4SvfHs#|3pYjkg?C~mG3;h>2i2tI>a7j!o1iB6Z#Ja@y{RB#0cOhVX9xmLVi|y zoJ$o(k3Tx1dD-XeiRY$Hd?fWd1SpV^@p+zbsAQomf4lN^`1~R6XG&Z-H{^bqv~1R9 z%d<4IEN$iU(Vd@DO?f@*!i(Y+355#Wob4`XeyaU>A|csm$-~R$Ka$ba^Xe-PB&16v zp6zn7CVbu%QyWWqj*OgdLl>@n$o|O*JB7gU_o722nfA`95?UJBVYSUtg3->0S zese(?*)4x6O728cMok@cCqGbHH_;p3Py7_PNbci}yo!)ANqOkxuWf;2v5N<%(kkZT z{T3Ex|HGDD6w$DRjh1&{%yCz>`cynK$d}WnCGi8nUZFlxfbMA-_{>9GD@|5YjtEg@ z&==5gw}m{1J^_Zd$o(VNG{DG6gPv1&_n}%qc|Gl8O5ZoK6CG za^|hH_U!fG9fxmRGBnl-8_ccG033&l>=!Xd#U~2K{GB;#U+#M^47E`zH~z&JAm@Fr zua`ocq&)S+d!HQEA+)YxnZ8#X?8Y9Y)uojnN44H7YI20~X^%>=O2h>PH~+FxNSFi3 z#Vffvt=H`AG~ab4C--g8t70$NoKrP)@XrC3R=&-owK-7%Nr*-;56$Gy*!Ks0!$V?G zl0S~S(|E<$E~uvVfIDhPGR`9dDjWyTa9zl4X5$VN%EL8NeW!SY;1=}qX924XS=F9C{5MV%(i#>kWb6d3ya=qd7_Eyx7 zqWgtxhbc~FO8E;fKe~*#2~Z_x^Jl}{J^=AmZWm8?}J?9tC^}&#Smzm5@#0PkA zhzUl-jtdhNJF6Wj%xNA};{Iw6C7wt(Y)Vp%v7HVksu9k<7ZBS4a&?d>RM+F2B%S$x zn)II(6%&Nmz*rIOxR&hYB)UShUU$+OEu$5Z?SzpGTO1U3A*4jA31h0Uz9niXl(hXM zg?>=akI}NoWulDW&E-zCoqkCwTJ`K(eA;gbzPw}Xo+_nnkG?aO*I$JLGHNGPH2YqB z?R&MG)!b5#uA(2_=k(g{qfX2QW1*Hsn0g3VXMbQPsgr4=^{Pg(Sl}r5OCW!h5htWheYe^0+fd>a zBPu(8zxeiKC`CrV1D8ovEB~RfPwm|(ieUb6f%Kl&txgmo?YH~l)2c3t5Y{MjQx zMNh$JltA%$JuTYiYqSoYceRYwu&G%I9}})C z50}=ik#ZI)D>RwA+;6ltIMbQz;K9--{bCXuUShX85+jB-a2Nh+__wg8xfx%e*LI1GVJ$X34T||knP1FO* zc6uy?qfeyrOVY}>lkS(W|M-3Qx*Tm28TxVSOuJ>9ral}m4Sa6&Ex5MiVc#R{J=QMP z#7W^MPrLfWN`$L2;EN7ziZz@|rNHAUzN&vCw%oPF==v8@;gfn-J$+#7#840{Uk_wh z+YnTZrv4R1s;P&M+k%)h_=;Jj^Cem|R<;JQwlx_q>TkqPc~ppsn?9?h0PP?RHOl=V zN!WU6W?e4bd(>soWq}ku>Sb%XEKIVPE{)&IP0CgXP+JQ(a%WQzRK>q+ZsDR@k=1fN zR1^BOE8OQl55Xd6av3}~zF*wCXc>;wz(y%r`d3kmEU#iB5L`pnFAyh%N%T)_dC-wq zsD*#qrHEjvO_etFkvEIIkL|st#rO&2Zpt6&EWaO!ov8*bBUKLK8*$OoW*e=-aL$U> zl_Aihldo$|D-snPMwaLaFEj(3Ug7FF)T@z)jke5dAGS=cIE_=m0gO|I*uQb9UQOoj z2`~?o4Nr6$e|X4CFb0y84_|c;Bo@%P4fF}H+L-3i3{XbR>1x;7kPgRbR~t8{!@bJJ zDOQIzjC&llC4CJwdoFS*b@Tn*Y~ZWWzXtlMr!NGi0ZECH3}Xu(TW@4eQ{aTkYEGTG zrPv~Du1@w)54x`7nVj*c#b#!e;l5m!v(Lo?QdWhc`q{c3OStzz82wh_<|&P)5>C3BS8WU&}E2L2Hk$Qzulje6lPGIBIV6Z54*zeGB_Eewn0f!H~ln~jyiN0D=e zzDplE`&*pNunAIgSlOtMlMP?$oe0f$r{X?pHI@a=2!-)pC7sRF4i2a&B(>Ty7Bh;a zk`pm1c4}JJR}(Uy86H_TA{6-NfK6$Irv2js(P8<*LPE&?qr?9y6KBn`S@H6J*m~=z zHrwV~823W4;?P2IC{A%{akn4|Rvc2?9ZD%q(ICa0KyWGUZiV9RPVpiIa?WEc zeBWC6gFmveSoeKhGka$C-gB|h(~2>K7@K7N`c>?uDKARxgZQ)^ygk~n2nh<^S{kDhEE?Gm(G2_gN z6^^lv&cGWok>ks>ZW-D=q(7d`(li6_0uK6W`|g$fu%*5tJ=Fi}#!J#ZH9D_{txMK8 z3Q274AyOVVidHUBmhNUV#)q%OK zd6%*mcMqYLr__S`V{UGpv#<|;%qnyf3$RxSmb=W>nq7H|2IGw3tjvTqUkC}x%4!3S zY}8miZ_kWxM?WyXKTyn%g}}wAa-3_LEHCn#4I=ZPzXP{EgSHS7n_8nUWzkVe>Vwnj z#&m{Tf7yDTYyQ^$*(XjyQlaf9AM-{eI_7sW>|b-%PTe5P;O?E>0-;+&*ldRuGs_;K zoQAA=I-{Iyf=72e)w{Pl9TP!cF)Rr|K?1-19C&DDu;YEswY(O8xF9odr9|Au7N@;Uxrp7r-Yy`9R5SbiJJGlEU#$u5$ellmda#tiX<@%1E< zMOGh3-xRuus8~GCHJHs@pxbgQck=2Vrvg zEvqEs*i6yK1yev`3rLB18tF9S^PMtA7P`7mTNyE+KHjXrP>sPS6?*8>C}-=P|Cv7T z^ZlZ!UIMYd-?`bMG0YvBj+qm^-j%Q6b&QWWJxJ=I>{!y=TDWgPe=jEZ*u^996eYjz z^)XEjqI$J<+Wu#}9scBt&xqJUYL8nEx00SfhU8J6W5^Cevm3in;9Q^_0A^i)bWpLRPgeh;S&qAcu=3MYsllL1(#R)ip9ut(T!9x*eyB#+G+(=LPxtK-`m|@hxei=uSamGCfal(=)n4C8gj@2ymFcm zDZIg5r~PQO1O-Y=V$~Kwo8o!+O?fFINC?)ZEgM5jjwHdXdD|>Zi`0em`^ATA`ySnOb1H}FR zOT|l?ni{fR{&!il#`|P`PJGiK(ldOC()K)+<^~aRs)@7ZE9-&|tIW`e$%4x=RZw+m zLEnN_J);a1V1i>ancv-%Wkq?@Hx4r>J?jL(JZ555zK(w$t2bmsnLX{33RqI*MU!|r|Bl+u-c!d?yIV;HXaeeBJZyOs%y9ylwBbVhTE41hN4+hvk| zXW-OAKR$5XZJLoI{j=F!?#`{}8(jvEk75T0+;X>c5$o+QtuIZ$jbKMi&o=bssQgvt z#6WFIiAl~oYKyvKwdGf?TEkpO&=KMo46T=Cv#Ir#Msupr1|%e%R(;JF<#d}C$QYYD zt^7BEf)VsBhqNcY49iuD3$lND_fgJ@%SCvy)YB{Dvj1k+W#1= zBPfip%?`fx>CdkqHmnUO70;;3o=6bT9D7t4beaigK@K0)Pa3I)s^v)(t5wjAG4)bu zyK%|lYT-|UF17R5dlp|`^QlDeyWkiBULU2u>8DD5ONshOK>7|@nExm>Qv@1h!0=*%hj z)mE zg5;41y9#u4H?{@Ox#ajVbO+puQ~I!ScjD_&M7Y8tqH>ua_+HC>byUEP?E|) zSK6RAKcFsqnMi1^WhtSNp%KMkwx;()6oI)+m~&B?5^zho`@( z0 za+Ye{T3yfqP8xm~9}fkG5K>ESuTQ`p<-;Vp&|UywXJ@QpnK3_}Z#gu*KVQm;EDS(n zEC5P1dXHE?%3opK&Mc_aWccO-x`Az`*wFR*;FU_NpxT#Y9zrU&+@+GhtZ#_fsIL2E z-uR2yb4{8ryJ;THc@ck<4!FIq$SM+{f;C^X4its)ovZrLzy=-ZJId*pAJy9LM4F}Y z$%P+y`)b?s02YS=+BKvH?%?KT1mG$aB z<)fWCcrqtVhjm*5%PT7gFDfDA3ujLyy%X%$H3VmUeyQ?(rT9@l3;u`v4B?&F7!D8T z8Qr~{&l3}>LK>04J4%J0pV2W!f4>ofxWgYN;9Cj*>MjYV2MTLP1M$#!kTzp%{5<&Moy{%~>|?P`1O`={MeqH@+w z7wR@*88;%#(+D|a^z4sgYAp92 z8`;}y{hcvro0TFmL8CTQ@FuRTXkg2^$ja)dC4>fFUirX7b)KesSX}F%>b`V2fGY)b zEtyxGJ1IZSvrSQSyf_4on)9aG(n{I;I)vqky&M->-{K|VGLCR(p#}r%oV@6s-mTxP z*L{E+!zBtrUj=QHPzIFF=MlP24eRh{XC7b1I|3!Z0c&ALtGnXr@T&K0M-YlCFFM^8 z#=4UXbCCO|yh#ga5A!pS70eh_!D@DA9O08Nb?*Jw3)TNm%-@&$Z9qOKTt$#KYRqpr`!;GGR%`d z>zFV{5t--9s>XPpXibaW+wUesOqKXd00YM))xW3qHp9aadPv*#Dm4$my3GD{z0@4`iNnK;tWtAlEJ5^ayhFMV>{II_7gL~v# z!Dr8ca|YZ(VZf z_^a#mT}_c~drw{BOWoFG@RXITTVEZaNvc*1{?T8-P)bUQZNr%gRcl9w zNx-j$Ips^UDY`$&_zSi$Ve6J|+^PXHm8b8QBkPp~mWP%J=BXkC%QUf_-?kRa$YrgQ z4vwO25AR81oXfxz2OlT`la@pWm^?aetPA#c#C$l?hsvwW|CLz~8UE^AQsk|bRU5R% z{CRI$7)U2M+@q_xcCb!f^OYS;H*Cr5?-22FHwID0azuqE4cjWeW_K}sjzO{78u@8}N~CyI ziKcv3bBc>$D>;H*sOj8+hP!ORu5?69d*?Yc5~T91x9u$r^{G$2o1zNk^L3%FGOEi= zLZP&KvJ*lya}QgqIg8n7S;{(FyyT$@bV*0N`PF9{ilU;?Wo&HBneoK@ffXp49&Wq7 zmV8vRFQIR=ulR;#Mfb)LLd~S>4C}(K$mmodo?Yv8WSW~y)N6z)g~e#O-nr_x{zBnu za}wu`t%0PahG!JW9&?FDdhB-hv#GLZ3?(qYcEJThkAKky{|Y>}?;ba63h+1-a`;9VO2Yeu4J<=4OI~cqVUFy~nvL8s!GV{3)9hyR zD}e7o^Ym0kPm+U>{Q8r?VHjYC7(n{q2_*U_DncdNepj_mG|yz%P6UVH7Q}Y z!Sm_mCy)&RKa9)zOVV2K&h&-tMs1bqGk%u;NV9U$y`{tW{MTUsamzAl5iXGPcYeky z&%HL9MxIYjC+UW=Qs|FSDL*SyR73WQ!C8n#7rs)}70ZB?MhZ^@&jCM-zPw^PIdOQ z-2=S%6BZ@O=Y(F+$GKX^i?Sd(*_bHKVlMrw|EiJ^K$Pb8>)u?{9y$A;!JN;*ukx%* zhF?74rISws$;j4sMD4#xgp;~uuS9lC_|y#U%L5E`H1>XB=$R4&avn7h3%t`*SVYWZ zv^A{=#FTFY4s)jwWn&T$c7zWB=cI5S5ly2->$?{gO&AeAjp zkyFIeRi8; zr+i<)oM(%})N89!_UFkt z<>QR_zo)bay@UUQHFoO2f`p56G(XT#Ac9{`A=jqN`(Oqi_01>L-V1dB1cjqqM_G7i zxaiPI#jVdEn4|jQ8I2O_E%`(5z z0a)0S&y+hSUsTkX*iMw8IZFwH$I0c|AKXUrvc$ScV2UZ-KV~9>SfS`ch18dJYlE_# z&@yx-b=up9TU>leZNV`uH-j}g>ckmZ9lms)_75nbMxiXZkFTbO!zG6K!rOQ&Sz3py z6b}l8HT%e%{UFD$smH<`Z2VkRZf+xDcQm^<_V%2FK5G5fmg4`^wCcq0WW)X~w~64) zGFvgNmpFKn`#1y&xSiW1hv3^k!V&w;8vI!~mJ;Voo@C%|szHOg#&uDg;{j998MV(J4mHW8=X_Y#9-{8O}v(ky?go9`L*6<9jWZI z4$OmKwPe|z7k>C+s8sTV-cIv4ZlEum!%`6g)}_@Ttc;V72LdOA?2Gf9QbC#|#U*Sb zNfNS`oAZSt(q3u-CHa*~X1AgZhGFM?i>dk2lXLyH*)bTPQ4Fp^{gitvds33Y zWL>iuEYekkV-yJ}gESwk+4Fn{db6G zLNTXhKHx!)QM=4F&HI(A{BgTC-T8eRxz9%p^FXJ{&8E%mRo3G}*^yD*^`Y;bVAyX+ z-k+MHx0H;Z^M7$mpNYE*QA1MD3buVOc9M)~!*(Y25Pn=6PE}!Hil=u^kG=?%Kf>dY zYA-Vr5I6(zLx|Ge@TK1V z_u&etbYuW&TGK~Be1qFtoAO}f6@qsKr=1pN9Q?(}Y{}pE4@GA7pUo~IoNh_|zuuAJ zkhPT56fyC7oKMJSmgIG9h^S_Msn2JT*t7B2gEXiC$|>9$4FiR}^||kSG}iH*^9n1O0SNyjgucyDq?02%luu<{tpj8(&0$~ZZ zp8Hy(*r?ipB;o7t?FEhL$wtC?2j!@HH^~Qnd%qB3*%Eq#osL6Pv0xEN6rw|1rR@+v zK#WwBohRo2Hs%bW{Y99S-;yV$DbLPpy1^r?Nz@gncfgcP7~%P2exB83!e12?EwJ?Q zk6Fx&t0hh%${-7OX>EV9l8O+ikn1GjgvdnZ(*!xIEYB;PGp{ESS&}W(iXDh1-qX9U zqydB)ay)ji9NI1huCwLlnK#QqjB5x%0uSEi9(mf^mEV{1ZWe%=yk*~+kp;+Q-IRIW zB&bd@p9~3Y0d{T(svQJumPI#DUw*YR-vau~p^Ks^!HbCqROp@ILMH^cw^=W}FLs?N zRD0*evuVQq)nh>Lb=1k=)z3AQ()y8HNaG2FG2|tBZRmpm0p-J{o$r650IIc;ISMy6 z(5Kexi+p6v-BUgK@98A?aV=pZQ(_9X=6On$E>qOXAbS=Y6y3mERl3cW!SQ?}~HXXpN4EI<1|8rC*bGPtus>#-AN%dRr-5LMEJ8>Jdwy z4EG3uPoCZmLMEOT+yk*cpd%w(iO~$L9XbFSxbgI(PG)qt9r@TntWD9f?N_`2olhZu z22D24n++MWJ0$SynMFP`Nv!mi3Dz;Kq-GvlJeBoS2QXTi zVjIb%j0sji^_D5@SZ&N*$M$ndtqeBh{% zD6&yR8RjzJq)e&TXrB`(l8{=avIc#;%_jm2e6i+h@Ti?F!yk!C)AJ(@Z4kX;U$?C@ zw|YgY--mzA+Z&;CbrFVL3bgi

=*%S;0>~kVD3)Jlnlu>y&;~%pGY7@5xAKhQY`P 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

rEfoO{?Ac7Z2^fG5 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

C9qT8~TN}TL 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%0A)5 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

ntLML8vnvj9y-=z%-j-KE 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℞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 K02=jOll}+UOxTwI literal 0 HcmV?d00001 diff --git a/Chapter06/Assets/Radar.png b/Chapter06/Assets/Radar.png new file mode 100644 index 0000000000000000000000000000000000000000..d20ef7346b91d93db5d715426d897e71098a0fa4 GIT binary patch literal 11794 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 +} + +void CameraActor::ProcessInput(const uint8_t* keys) +{ + float forwardSpeed = 0.0f; + float angularSpeed = 0.0f; + // wasd movement + if (keys[SDL_SCANCODE_W]) + { + forwardSpeed += 300.0f; + } + if (keys[SDL_SCANCODE_S]) + { + forwardSpeed -= 300.0f; + } + if (keys[SDL_SCANCODE_A]) + { + angularSpeed -= Math::TwoPi; + } + if (keys[SDL_SCANCODE_D]) + { + angularSpeed += Math::TwoPi; + } + + mMoveComp->SetForwardSpeed(forwardSpeed); + mMoveComp->SetAngularSpeed(angularSpeed); +} diff --git a/Chapter06/CameraActor.h b/Chapter06/CameraActor.h new file mode 100644 index 00000000..01c3eeca --- /dev/null +++ b/Chapter06/CameraActor.h @@ -0,0 +1,21 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include "Actor.h" + +class CameraActor : public Actor +{ +public: + CameraActor(class Game* game); + + void UpdateActor(float deltaTime) override; + void ProcessInput(const uint8_t* keys) override; +private: + class MoveComponent* mMoveComp; +}; \ No newline at end of file diff --git a/Chapter06/Chapter06-windows.sln b/Chapter06/Chapter06-windows.sln new file mode 100644 index 00000000..f560df0f --- /dev/null +++ b/Chapter06/Chapter06-windows.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Game", "Game.vcxproj", "{BC508D87-495F-4554-932D-DD68388B63CC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BC508D87-495F-4554-932D-DD68388B63CC}.Debug|Win32.ActiveCfg = Debug|Win32 + {BC508D87-495F-4554-932D-DD68388B63CC}.Debug|Win32.Build.0 = Debug|Win32 + {BC508D87-495F-4554-932D-DD68388B63CC}.Release|Win32.ActiveCfg = Release|Win32 + {BC508D87-495F-4554-932D-DD68388B63CC}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Chapter06/Chapter7-mac.xcodeproj/project.pbxproj b/Chapter06/Chapter7-mac.xcodeproj/project.pbxproj new file mode 100644 index 00000000..6c774b07 --- /dev/null +++ b/Chapter06/Chapter7-mac.xcodeproj/project.pbxproj @@ -0,0 +1,398 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9206FDC61F140707005078A2 /* Texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9206FDC41F140707005078A2 /* Texture.cpp */; }; + 9206FDC91F140D40005078A2 /* Shader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9206FDC71F140D40005078A2 /* Shader.cpp */; }; + 9223C4781F009428009A94D7 /* Game.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4671F009428009A94D7 /* Game.cpp */; }; + 9223C4791F009428009A94D7 /* Actor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4681F009428009A94D7 /* Actor.cpp */; }; + 9223C47C1F009428009A94D7 /* Component.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C46E1F009428009A94D7 /* Component.cpp */; }; + 9223C47D1F009428009A94D7 /* Main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4711F009428009A94D7 /* Main.cpp */; }; + 9223C47E1F009428009A94D7 /* Math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4721F009428009A94D7 /* Math.cpp */; }; + 9223C4801F009428009A94D7 /* SpriteComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4761F009428009A94D7 /* SpriteComponent.cpp */; }; + 9223C48B1F0CA3CE009A94D7 /* MoveComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C48A1F0CA3CE009A94D7 /* MoveComponent.cpp */; }; + 9223C4941F0CA766009A94D7 /* CollisionComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4901F0CA766009A94D7 /* CollisionComponent.cpp */; }; + 9223C4951F0CA766009A94D7 /* CircleComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4911F0CA766009A94D7 /* CircleComponent.cpp */; }; + 92279F471F17101E00D5F4B9 /* VertexArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92279F451F17101E00D5F4B9 /* VertexArray.cpp */; }; + 92CF0D721F3BBBE50086A0F3 /* CameraActor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92CF0D681F3BBBE50086A0F3 /* CameraActor.cpp */; }; + 92CF0D731F3BBBE50086A0F3 /* Mesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92CF0D6A1F3BBBE50086A0F3 /* Mesh.cpp */; }; + 92CF0D741F3BBBE50086A0F3 /* MeshComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92CF0D6C1F3BBBE50086A0F3 /* MeshComponent.cpp */; }; + 92CF0D751F3BBBE50086A0F3 /* PlaneActor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92CF0D6E1F3BBBE50086A0F3 /* PlaneActor.cpp */; }; + 92CF0D761F3BBBE50086A0F3 /* Renderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92CF0D701F3BBBE50086A0F3 /* Renderer.cpp */; }; + 92D324FB1B697389005A86C7 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92D324FA1B697389005A86C7 /* CoreFoundation.framework */; }; + 92E46E941B6353E50035CD21 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92E46E931B6353E50035CD21 /* OpenGL.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 9206FDC31F13F7E8005078A2 /* Shaders */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Shaders; sourceTree = ""; }; + 9206FDC41F140707005078A2 /* Texture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Texture.cpp; sourceTree = ""; }; + 9206FDC51F140707005078A2 /* Texture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Texture.h; sourceTree = ""; }; + 9206FDC71F140D40005078A2 /* Shader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Shader.cpp; sourceTree = ""; }; + 9206FDC81F140D40005078A2 /* Shader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Shader.h; sourceTree = ""; }; + 9223C4671F009428009A94D7 /* Game.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Game.cpp; sourceTree = ""; }; + 9223C4681F009428009A94D7 /* Actor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Actor.cpp; sourceTree = ""; }; + 9223C4691F009428009A94D7 /* Actor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Actor.h; sourceTree = ""; }; + 9223C46E1F009428009A94D7 /* Component.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Component.cpp; sourceTree = ""; }; + 9223C46F1F009428009A94D7 /* Component.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Component.h; sourceTree = ""; }; + 9223C4701F009428009A94D7 /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Game.h; sourceTree = ""; }; + 9223C4711F009428009A94D7 /* Main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Main.cpp; sourceTree = ""; }; + 9223C4721F009428009A94D7 /* Math.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Math.cpp; sourceTree = ""; }; + 9223C4731F009428009A94D7 /* Math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Math.h; sourceTree = ""; }; + 9223C4761F009428009A94D7 /* SpriteComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SpriteComponent.cpp; sourceTree = ""; }; + 9223C4771F009428009A94D7 /* SpriteComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpriteComponent.h; sourceTree = ""; }; + 9223C48A1F0CA3CE009A94D7 /* MoveComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MoveComponent.cpp; sourceTree = ""; }; + 9223C48C1F0CA3D4009A94D7 /* MoveComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoveComponent.h; sourceTree = ""; }; + 9223C4901F0CA766009A94D7 /* CollisionComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CollisionComponent.cpp; sourceTree = ""; }; + 9223C4911F0CA766009A94D7 /* CircleComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CircleComponent.cpp; sourceTree = ""; }; + 9223C4921F0CA766009A94D7 /* CollisionComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollisionComponent.h; sourceTree = ""; }; + 9223C4931F0CA766009A94D7 /* CircleComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleComponent.h; sourceTree = ""; }; + 92279F451F17101E00D5F4B9 /* VertexArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VertexArray.cpp; sourceTree = ""; }; + 92279F461F17101E00D5F4B9 /* VertexArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VertexArray.h; sourceTree = ""; }; + 92CF0D681F3BBBE50086A0F3 /* CameraActor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CameraActor.cpp; sourceTree = ""; }; + 92CF0D691F3BBBE50086A0F3 /* CameraActor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CameraActor.h; sourceTree = ""; }; + 92CF0D6A1F3BBBE50086A0F3 /* Mesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Mesh.cpp; sourceTree = ""; }; + 92CF0D6B1F3BBBE50086A0F3 /* Mesh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mesh.h; sourceTree = ""; }; + 92CF0D6C1F3BBBE50086A0F3 /* MeshComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MeshComponent.cpp; sourceTree = ""; }; + 92CF0D6D1F3BBBE50086A0F3 /* MeshComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MeshComponent.h; sourceTree = ""; }; + 92CF0D6E1F3BBBE50086A0F3 /* PlaneActor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlaneActor.cpp; sourceTree = ""; }; + 92CF0D6F1F3BBBE50086A0F3 /* PlaneActor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaneActor.h; sourceTree = ""; }; + 92CF0D701F3BBBE50086A0F3 /* Renderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Renderer.cpp; sourceTree = ""; }; + 92CF0D711F3BBBE50086A0F3 /* Renderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Renderer.h; sourceTree = ""; }; + 92D324FA1B697389005A86C7 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; + 92E46DF71B634EA30035CD21 /* Game-mac */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "Game-mac"; sourceTree = BUILT_PRODUCTS_DIR; }; + 92E46E931B6353E50035CD21 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 92E46DF41B634EA30035CD21 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 92D324FB1B697389005A86C7 /* CoreFoundation.framework in Frameworks */, + 92E46E941B6353E50035CD21 /* OpenGL.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 92E46DEE1B634EA30035CD21 = { + isa = PBXGroup; + children = ( + 92CF0D681F3BBBE50086A0F3 /* CameraActor.cpp */, + 92CF0D691F3BBBE50086A0F3 /* CameraActor.h */, + 92CF0D6A1F3BBBE50086A0F3 /* Mesh.cpp */, + 92CF0D6B1F3BBBE50086A0F3 /* Mesh.h */, + 92CF0D6C1F3BBBE50086A0F3 /* MeshComponent.cpp */, + 92CF0D6D1F3BBBE50086A0F3 /* MeshComponent.h */, + 92CF0D6E1F3BBBE50086A0F3 /* PlaneActor.cpp */, + 92CF0D6F1F3BBBE50086A0F3 /* PlaneActor.h */, + 92CF0D701F3BBBE50086A0F3 /* Renderer.cpp */, + 92CF0D711F3BBBE50086A0F3 /* Renderer.h */, + 9223C4681F009428009A94D7 /* Actor.cpp */, + 9223C4691F009428009A94D7 /* Actor.h */, + 9223C46E1F009428009A94D7 /* Component.cpp */, + 9223C46F1F009428009A94D7 /* Component.h */, + 9223C4911F0CA766009A94D7 /* CircleComponent.cpp */, + 9223C4931F0CA766009A94D7 /* CircleComponent.h */, + 9223C4901F0CA766009A94D7 /* CollisionComponent.cpp */, + 9223C4921F0CA766009A94D7 /* CollisionComponent.h */, + 9223C4671F009428009A94D7 /* Game.cpp */, + 9223C4701F009428009A94D7 /* Game.h */, + 9223C4711F009428009A94D7 /* Main.cpp */, + 9223C4721F009428009A94D7 /* Math.cpp */, + 9223C4731F009428009A94D7 /* Math.h */, + 9223C48A1F0CA3CE009A94D7 /* MoveComponent.cpp */, + 9223C48C1F0CA3D4009A94D7 /* MoveComponent.h */, + 9206FDC71F140D40005078A2 /* Shader.cpp */, + 9206FDC81F140D40005078A2 /* Shader.h */, + 9223C4761F009428009A94D7 /* SpriteComponent.cpp */, + 9223C4771F009428009A94D7 /* SpriteComponent.h */, + 9206FDC41F140707005078A2 /* Texture.cpp */, + 9206FDC51F140707005078A2 /* Texture.h */, + 92279F451F17101E00D5F4B9 /* VertexArray.cpp */, + 92279F461F17101E00D5F4B9 /* VertexArray.h */, + 9206FDC31F13F7E8005078A2 /* Shaders */, + 92E46DF81B634EA30035CD21 /* Products */, + 92D324FA1B697389005A86C7 /* CoreFoundation.framework */, + 92E46E931B6353E50035CD21 /* OpenGL.framework */, + ); + sourceTree = ""; + }; + 92E46DF81B634EA30035CD21 /* Products */ = { + isa = PBXGroup; + children = ( + 92E46DF71B634EA30035CD21 /* Game-mac */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 92E46DF61B634EA30035CD21 /* Game-mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 92E46DFE1B634EA40035CD21 /* Build configuration list for PBXNativeTarget "Game-mac" */; + buildPhases = ( + 92E46DF31B634EA30035CD21 /* Sources */, + 92E46DF41B634EA30035CD21 /* Frameworks */, + 92E46EA11B63615B0035CD21 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Game-mac"; + productName = "Game-mac"; + productReference = 92E46DF71B634EA30035CD21 /* Game-mac */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 92E46DEF1B634EA30035CD21 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0830; + ORGANIZATIONNAME = "Sanjay Madhav"; + TargetAttributes = { + 92E46DF61B634EA30035CD21 = { + CreatedOnToolsVersion = 6.4; + }; + }; + }; + buildConfigurationList = 92E46DF21B634EA30035CD21 /* Build configuration list for PBXProject "Chapter7-mac" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 92E46DEE1B634EA30035CD21; + productRefGroup = 92E46DF81B634EA30035CD21 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 92E46DF61B634EA30035CD21 /* Game-mac */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXShellScriptBuildPhase section */ + 92E46EA11B63615B0035CD21 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ -d \"$BUILD_DIR/Debug\" ]; then\n cp \"$SRCROOT\"/../external/GLEW/lib/mac/*.dylib $BUILD_DIR/Debug\n cp \"$SRCROOT\"/../external/SDL/lib/mac/*.dylib $BUILD_DIR/Debug\nfi\n\nif [ -d \"$BUILD_DIR/Release\" ]; then\n cp \"$SRCROOT\"/../external/GLEW/lib/mac/*.dylib $BUILD_DIR/Release\n cp \"$SRCROOT\"/../external/SDL/lib/mac/*.dylib $BUILD_DIR/Release\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 92E46DF31B634EA30035CD21 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9223C4941F0CA766009A94D7 /* CollisionComponent.cpp in Sources */, + 92279F471F17101E00D5F4B9 /* VertexArray.cpp in Sources */, + 9223C47D1F009428009A94D7 /* Main.cpp in Sources */, + 9223C47E1F009428009A94D7 /* Math.cpp in Sources */, + 92CF0D721F3BBBE50086A0F3 /* CameraActor.cpp in Sources */, + 9223C4781F009428009A94D7 /* Game.cpp in Sources */, + 9223C4801F009428009A94D7 /* SpriteComponent.cpp in Sources */, + 92CF0D761F3BBBE50086A0F3 /* Renderer.cpp in Sources */, + 9223C48B1F0CA3CE009A94D7 /* MoveComponent.cpp in Sources */, + 92CF0D751F3BBBE50086A0F3 /* PlaneActor.cpp in Sources */, + 9206FDC91F140D40005078A2 /* Shader.cpp in Sources */, + 9223C4791F009428009A94D7 /* Actor.cpp in Sources */, + 92CF0D741F3BBBE50086A0F3 /* MeshComponent.cpp in Sources */, + 92CF0D731F3BBBE50086A0F3 /* Mesh.cpp in Sources */, + 9223C4951F0CA766009A94D7 /* CircleComponent.cpp in Sources */, + 9223C47C1F009428009A94D7 /* Component.cpp in Sources */, + 9206FDC61F140707005078A2 /* Texture.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 92E46DFC1B634EA40035CD21 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 92E46DFD1B634EA40035CD21 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + }; + name = Release; + }; + 92E46DFF1B634EA40035CD21 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_ENABLE_CPP_RTTI = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../external/SDL/include", + "$(SRCROOT)/../external/GLEW/include", + "$(SRCROOT)/../external/SOIL/include", + "$(SRCROOT)/../external/rapidjson/include", + ); + LIBRARY_SEARCH_PATHS = ( + "$(SRCROOT)/../external/GLEW/lib/mac", + "$(SRCROOT)/../external/SDL/lib/mac", + "$(SRCROOT)/../external/SOIL/lib/mac", + ); + OTHER_LDFLAGS = ( + "-lGLEW.2.1.0", + "-lSDL2-2.0.0", + "-lSDL2_mixer-2.0.0", + "-lSDL2_ttf-2.0.0", + "-lSOIL", + "-lSDL2_image-2.0.0", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 92E46E001B634EA40035CD21 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_ENABLE_CPP_RTTI = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../external/SDL/include", + "$(SRCROOT)/../external/GLEW/include", + "$(SRCROOT)/../external/SOIL/include", + "$(SRCROOT)/../external/rapidjson/include", + ); + LIBRARY_SEARCH_PATHS = ( + "$(SRCROOT)/../external/GLEW/lib/mac", + "$(SRCROOT)/../external/SDL/lib/mac", + "$(SRCROOT)/../external/SOIL/lib/mac", + ); + OTHER_LDFLAGS = ( + "-lGLEW.2.1.0", + "-lSDL2-2.0.0", + "-lSDL2_mixer-2.0.0", + "-lSDL2_ttf-2.0.0", + "-lSOIL", + "-lSDL2_image-2.0.0", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 92E46DF21B634EA30035CD21 /* Build configuration list for PBXProject "Chapter7-mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 92E46DFC1B634EA40035CD21 /* Debug */, + 92E46DFD1B634EA40035CD21 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 92E46DFE1B634EA40035CD21 /* Build configuration list for PBXNativeTarget "Game-mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 92E46DFF1B634EA40035CD21 /* Debug */, + 92E46E001B634EA40035CD21 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 92E46DEF1B634EA30035CD21 /* Project object */; +} diff --git a/Chapter06/Chapter7-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Chapter06/Chapter7-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..7d6d9a2a --- /dev/null +++ b/Chapter06/Chapter7-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Chapter06/Chapter7-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme b/Chapter06/Chapter7-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme new file mode 100644 index 00000000..cd67dbae --- /dev/null +++ b/Chapter06/Chapter7-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Chapter06/CircleComponent.cpp b/Chapter06/CircleComponent.cpp new file mode 100644 index 00000000..626d5090 --- /dev/null +++ b/Chapter06/CircleComponent.cpp @@ -0,0 +1,27 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "CircleComponent.h" +#include "Actor.h" + +CircleComponent::CircleComponent(class Actor* owner) +:CollisionComponent(owner) +,mRadius(0.0f) +{ + +} + +const Vector3& CircleComponent::GetCenter() const +{ + return mOwner->GetPosition(); +} + +float CircleComponent::GetRadius() const +{ + return mOwner->GetScale() * mRadius; +} diff --git a/Chapter06/CircleComponent.h b/Chapter06/CircleComponent.h new file mode 100644 index 00000000..b4114d4e --- /dev/null +++ b/Chapter06/CircleComponent.h @@ -0,0 +1,24 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include "CollisionComponent.h" +#include "Math.h" + +class CircleComponent : public CollisionComponent +{ +public: + CircleComponent(class Actor* owner); + + void SetRadius(float radius) { mRadius = radius; } + float GetRadius() const; + + const Vector3& GetCenter() const; +private: + float mRadius; +}; diff --git a/Chapter06/CollisionComponent.cpp b/Chapter06/CollisionComponent.cpp new file mode 100644 index 00000000..79c626fc --- /dev/null +++ b/Chapter06/CollisionComponent.cpp @@ -0,0 +1,20 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "CollisionComponent.h" + +CollisionComponent::CollisionComponent(class Actor* owner,int updateOrder) +:Component(owner, updateOrder) +{ + +} + +CollisionComponent::~CollisionComponent() +{ + +} diff --git a/Chapter06/CollisionComponent.h b/Chapter06/CollisionComponent.h new file mode 100644 index 00000000..4074fa58 --- /dev/null +++ b/Chapter06/CollisionComponent.h @@ -0,0 +1,17 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include "Component.h" +class CollisionComponent : public Component +{ +public: + CollisionComponent(class Actor* owner, int updateOrder = 100); + ~CollisionComponent(); +}; + diff --git a/Chapter06/Component.cpp b/Chapter06/Component.cpp new file mode 100644 index 00000000..9b345987 --- /dev/null +++ b/Chapter06/Component.cpp @@ -0,0 +1,27 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "Component.h" +#include "Actor.h" + +Component::Component(Actor* owner, int updateOrder) + :mOwner(owner) + ,mUpdateOrder(updateOrder) +{ + // Add to actor's vector of components + mOwner->AddComponent(this); +} + +Component::~Component() +{ + mOwner->RemoveComponent(this); +} + +void Component::Update(float deltaTime) +{ +} diff --git a/Chapter06/Component.h b/Chapter06/Component.h new file mode 100644 index 00000000..26d6fb87 --- /dev/null +++ b/Chapter06/Component.h @@ -0,0 +1,27 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +class Component +{ +public: + // Constructor + // (the lower the update order, the earlier the component updates) + Component(class Actor* owner, int updateOrder = 100); + // Destructor + virtual ~Component(); + // Update this component by delta time + virtual void Update(float deltaTime); + + int GetUpdateOrder() const { return mUpdateOrder; } +protected: + // Owning actor + class Actor* mOwner; + // Update order of component + int mUpdateOrder; +}; diff --git a/Chapter06/Game.cpp b/Chapter06/Game.cpp new file mode 100644 index 00000000..40a53ec9 --- /dev/null +++ b/Chapter06/Game.cpp @@ -0,0 +1,250 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "Game.h" +#include +#include "Renderer.h" +#include "Actor.h" +#include "SpriteComponent.h" +#include "MeshComponent.h" +#include "CameraActor.h" +#include "PlaneActor.h" + +Game::Game() +:mRenderer(nullptr) +,mIsRunning(true) +{ + +} + +bool Game::Initialize() +{ + if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) != 0) + { + SDL_Log("Unable to initialize SDL: %s", SDL_GetError()); + return false; + } + + // Create the renderer + mRenderer = new Renderer(this); + if (!mRenderer->Initialize(1024.0f, 768.0f)) + { + SDL_Log("Failed to initialize renderer"); + delete mRenderer; + mRenderer = nullptr; + return false; + } + + LoadData(); + + mTicksCount = SDL_GetTicks(); + + return true; +} + +void Game::RunLoop() +{ + while (mIsRunning) + { + ProcessInput(); + UpdateGame(); + GenerateOutput(); + } +} + +void Game::ProcessInput() +{ + SDL_Event event; + while (SDL_PollEvent(&event)) + { + switch (event.type) + { + case SDL_QUIT: + mIsRunning = false; + break; + } + } + + const Uint8* state = SDL_GetKeyboardState(NULL); + if (state[SDL_SCANCODE_ESCAPE]) + { + mIsRunning = false; + } + + for (auto actor : mActors) + { + actor->ProcessInput(state); + } +} + +void Game::UpdateGame() +{ + // Compute delta time + // Wait until 16ms has elapsed since last frame + while (!SDL_TICKS_PASSED(SDL_GetTicks(), mTicksCount + 16)) + ; + + float deltaTime = (SDL_GetTicks() - mTicksCount) / 1000.0f; + if (deltaTime > 0.05f) + { + deltaTime = 0.05f; + } + mTicksCount = SDL_GetTicks(); + + // Make copy of actor vector + // (iterate over this in case new actors are created) + std::vector copy = mActors; + + // Update all actors + for (auto actor : copy) + { + actor->Update(deltaTime); + } + + // Add any dead actors to a temp vector + std::vector deadActors; + for (auto actor : mActors) + { + if (actor->GetState() == Actor::EDead) + { + deadActors.emplace_back(actor); + } + } + + // Delete any of the dead actors (which will + // remove them from mActors) + for (auto actor : deadActors) + { + delete actor; + } +} + +void Game::GenerateOutput() +{ + mRenderer->Draw(); +} + +void Game::LoadData() +{ + // Create actors + Actor* a = new Actor(this); + a->SetPosition(Vector3(200.0f, 75.0f, 0.0f)); + a->SetScale(100.0f); + Quaternion q(Vector3::UnitY, -Math::PiOver2); + q = Quaternion::Concatenate(q, Quaternion(Vector3::UnitZ, Math::Pi + Math::Pi / 4.0f)); + a->SetRotation(q); + MeshComponent* mc = new MeshComponent(a); + mc->SetMesh(mRenderer->GetMesh("Assets/Cube.gpmesh")); + + a = new Actor(this); + a->SetPosition(Vector3(200.0f, -75.0f, 0.0f)); + a->SetScale(3.0f); + mc = new MeshComponent(a); + mc->SetMesh(mRenderer->GetMesh("Assets/Sphere.gpmesh")); + + // Setup floor + const float start = -1250.0f; + const float size = 250.0f; + for (int i = 0; i < 10; i++) + { + for (int j = 0; j < 10; j++) + { + a = new PlaneActor(this); + a->SetPosition(Vector3(start + i * size, start + j * size, -100.0f)); + } + } + + // Left/right walls + q = Quaternion(Vector3::UnitX, Math::PiOver2); + for (int i = 0; i < 10; i++) + { + a = new PlaneActor(this); + a->SetPosition(Vector3(start + i * size, start - size, 0.0f)); + a->SetRotation(q); + + a = new PlaneActor(this); + a->SetPosition(Vector3(start + i * size, -start + size, 0.0f)); + a->SetRotation(q); + } + + q = Quaternion::Concatenate(q, Quaternion(Vector3::UnitZ, Math::PiOver2)); + // Forward/back walls + for (int i = 0; i < 10; i++) + { + a = new PlaneActor(this); + a->SetPosition(Vector3(start - size, start + i * size, 0.0f)); + a->SetRotation(q); + + a = new PlaneActor(this); + a->SetPosition(Vector3(-start + size, start + i * size, 0.0f)); + a->SetRotation(q); + } + + // Setup lights + mRenderer->SetAmbientLight(Vector3(0.2f, 0.2f, 0.2f)); + DirectionalLight& dir = mRenderer->GetDirectionalLight(); + dir.mDirection = Vector3(0.0f, -0.707f, -0.707f); + dir.mDiffuseColor = Vector3(0.78f, 0.88f, 1.0f); + dir.mSpecColor = Vector3(0.8f, 0.8f, 0.8f); + + // Camera actor + mCameraActor = new CameraActor(this); + + // UI elements + a = new Actor(this); + a->SetPosition(Vector3(-350.0f, -350.0f, 0.0f)); + SpriteComponent* sc = new SpriteComponent(a); + sc->SetTexture(mRenderer->GetTexture("Assets/HealthBar.png")); + + a = new Actor(this); + a->SetPosition(Vector3(375.0f, -275.0f, 0.0f)); + a->SetScale(0.75f); + sc = new SpriteComponent(a); + sc->SetTexture(mRenderer->GetTexture("Assets/Radar.png")); +} + +void Game::UnloadData() +{ + // Delete actors + // Because ~Actor calls RemoveActor, have to use a different style loop + while (!mActors.empty()) + { + delete mActors.back(); + } + + if (mRenderer) + { + mRenderer->UnloadData(); + } +} + +void Game::Shutdown() +{ + UnloadData(); + if (mRenderer) + { + mRenderer->Shutdown(); + } + SDL_Quit(); +} + +void Game::AddActor(Actor* actor) +{ + mActors.emplace_back(actor); +} + +void Game::RemoveActor(Actor* actor) +{ + auto iter = std::find(mActors.begin(), mActors.end(), actor); + if (iter != mActors.end()) + { + // Swap to end of vector and pop off (avoid erase copies) + std::iter_swap(iter, mActors.end() - 1); + mActors.pop_back(); + } +} diff --git a/Chapter06/Game.h b/Chapter06/Game.h new file mode 100644 index 00000000..34546f7f --- /dev/null +++ b/Chapter06/Game.h @@ -0,0 +1,45 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include +#include +#include +#include +#include "Math.h" + +class Game +{ +public: + Game(); + bool Initialize(); + void RunLoop(); + void Shutdown(); + + void AddActor(class Actor* actor); + void RemoveActor(class Actor* actor); + + class Renderer* GetRenderer() { return mRenderer; } +private: + void ProcessInput(); + void UpdateGame(); + void GenerateOutput(); + void LoadData(); + void UnloadData(); + + // All the actors in the game + std::vector mActors; + + class Renderer* mRenderer; + + Uint32 mTicksCount; + bool mIsRunning; + + // Game-specific code + class CameraActor* mCameraActor; +}; diff --git a/Chapter06/Game.vcxproj b/Chapter06/Game.vcxproj new file mode 100644 index 00000000..bc3c7d07 --- /dev/null +++ b/Chapter06/Game.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {BC508D87-495F-4554-932D-DD68388B63CC} + Win32Proj + Game + + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + + + + + + + + + + + true + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + ..\external\SDL\include;..\external\GLEW\include;..\external\SOIL\include;..\external\rapidjson\include;%(AdditionalIncludeDirectories) + false + Sync + + + Console + true + ..\external\SDL\lib\win\x86;..\external\GLEW\lib\win\x86;..\external\SOIL\lib\win\x86;%(AdditionalLibraryDirectories) + opengl32.lib;SDL2.lib;SDL2main.lib;SDL2_ttf.lib;SDL2_mixer.lib;SDL2_image.lib;glew32.lib;SOIL.lib;%(AdditionalDependencies) + /NODEFAULTLIB:msvcrt.lib %(AdditionalOptions) + + + xcopy "$(ProjectDir)\..\external\SDL\lib\win\x86\*.dll" "$(OutDir)" /i /s /y +xcopy "$(ProjectDir)\..\external\GLEW\lib\win\x86\*.dll" "$(OutDir)" /i /s /y + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + ..\external\SDL\include;..\external\GLEW\include;..\external\SOIL\include;..\external\rapidjson\include;%(AdditionalIncludeDirectories) + false + Sync + + + Console + true + true + true + ..\external\SDL\lib\win\x86;..\external\GLEW\lib\win\x86;..\external\SOIL\lib\win\x86;%(AdditionalLibraryDirectories) + opengl32.lib;SDL2.lib;SDL2main.lib;SDL2_ttf.lib;SDL2_mixer.lib;SDL2_image.lib;glew32.lib;SOIL.lib;%(AdditionalDependencies) + + + xcopy "$(ProjectDir)\..\external\SDL\lib\win\x86\*.dll" "$(OutDir)" /i /s /y +xcopy "$(ProjectDir)\..\external\GLEW\lib\win\x86\*.dll" "$(OutDir)" /i /s /y + + + + + + \ No newline at end of file diff --git a/Chapter06/Game.vcxproj.filters b/Chapter06/Game.vcxproj.filters new file mode 100644 index 00000000..6d53aa83 --- /dev/null +++ b/Chapter06/Game.vcxproj.filters @@ -0,0 +1,135 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {12a47348-9a6e-404a-8d7e-2ffa91eb59f6} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Shaders + + + Shaders + + + Shaders + + + Shaders + + + Shaders + + + Shaders + + + \ No newline at end of file diff --git a/Chapter06/Main.cpp b/Chapter06/Main.cpp new file mode 100644 index 00000000..36c41e1c --- /dev/null +++ b/Chapter06/Main.cpp @@ -0,0 +1,24 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "Game.h" +#include +#include +#include + +int main(int argc, char** argv) +{ + Game game; + bool success = game.Initialize(); + if (success) + { + game.RunLoop(); + } + game.Shutdown(); + return 0; +} diff --git a/Chapter06/Math.cpp b/Chapter06/Math.cpp new file mode 100644 index 00000000..9e1b7932 --- /dev/null +++ b/Chapter06/Math.cpp @@ -0,0 +1,240 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "Math.h" + +const Vector2 Vector2::Zero(0.0f, 0.0f); +const Vector2 Vector2::UnitX(1.0f, 0.0f); +const Vector2 Vector2::UnitY(0.0f, 1.0f); +const Vector2 Vector2::NegUnitX(-1.0f, 0.0f); +const Vector2 Vector2::NegUnitY(0.0f, -1.0f); + +const Vector3 Vector3::Zero(0.0f, 0.0f, 0.f); +const Vector3 Vector3::UnitX(1.0f, 0.0f, 0.0f); +const Vector3 Vector3::UnitY(0.0f, 1.0f, 0.0f); +const Vector3 Vector3::UnitZ(0.0f, 0.0f, 1.0f); +const Vector3 Vector3::NegUnitX(-1.0f, 0.0f, 0.0f); +const Vector3 Vector3::NegUnitY(0.0f, -1.0f, 0.0f); +const Vector3 Vector3::NegUnitZ(0.0f, 0.0f, -1.0f); +const Vector3 Vector3::Infinity(Math::Infinity, Math::Infinity, Math::Infinity); +const Vector3 Vector3::NegInfinity(Math::NegInfinity, Math::NegInfinity, Math::NegInfinity); + +static float m3Ident[3][3] = +{ + { 1.0f, 0.0f, 0.0f }, + { 0.0f, 1.0f, 0.0f }, + { 0.0f, 0.0f, 1.0f } +}; +const Matrix3 Matrix3::Identity(m3Ident); + +static float m4Ident[4][4] = +{ + { 1.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 1.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 1.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 1.0f } +}; + +const Matrix4 Matrix4::Identity(m4Ident); + +const Quaternion Quaternion::Identity(0.0f, 0.0f, 0.0f, 1.0f); + +Vector2 Vector2::Transform(const Vector2& vec, const Matrix3& mat, float w /*= 1.0f*/) +{ + Vector2 retVal; + retVal.x = vec.x * mat.mat[0][0] + vec.y * mat.mat[1][0] + w * mat.mat[2][0]; + retVal.y = vec.x * mat.mat[0][1] + vec.y * mat.mat[1][1] + w * mat.mat[2][1]; + //ignore w since we aren't returning a new value for it... + return retVal; +} + +Vector3 Vector3::Transform(const Vector3& vec, const Matrix4& mat, float w /*= 1.0f*/) +{ + Vector3 retVal; + retVal.x = vec.x * mat.mat[0][0] + vec.y * mat.mat[1][0] + + vec.z * mat.mat[2][0] + w * mat.mat[3][0]; + retVal.y = vec.x * mat.mat[0][1] + vec.y * mat.mat[1][1] + + vec.z * mat.mat[2][1] + w * mat.mat[3][1]; + retVal.z = vec.x * mat.mat[0][2] + vec.y * mat.mat[1][2] + + vec.z * mat.mat[2][2] + w * mat.mat[3][2]; + //ignore w since we aren't returning a new value for it... + return retVal; +} + +// This will transform the vector and renormalize the w component +Vector3 Vector3::TransformWithPerspDiv(const Vector3& vec, const Matrix4& mat, float w /*= 1.0f*/) +{ + Vector3 retVal; + retVal.x = vec.x * mat.mat[0][0] + vec.y * mat.mat[1][0] + + vec.z * mat.mat[2][0] + w * mat.mat[3][0]; + retVal.y = vec.x * mat.mat[0][1] + vec.y * mat.mat[1][1] + + vec.z * mat.mat[2][1] + w * mat.mat[3][1]; + retVal.z = vec.x * mat.mat[0][2] + vec.y * mat.mat[1][2] + + vec.z * mat.mat[2][2] + w * mat.mat[3][2]; + float transformedW = vec.x * mat.mat[0][3] + vec.y * mat.mat[1][3] + + vec.z * mat.mat[2][3] + w * mat.mat[3][3]; + if (!Math::NearZero(Math::Abs(transformedW))) + { + transformedW = 1.0f / transformedW; + retVal *= transformedW; + } + return retVal; +} + +// Transform a Vector3 by a quaternion +Vector3 Vector3::Transform(const Vector3& v, const Quaternion& q) +{ + // v + 2.0*cross(q.xyz, cross(q.xyz,v) + q.w*v); + Vector3 qv(q.x, q.y, q.z); + Vector3 retVal = v; + retVal += 2.0f * Vector3::Cross(qv, Vector3::Cross(qv, v) + q.w * v); + return retVal; +} + +void Matrix4::Invert() +{ + // Thanks slow math + float tmp[12]; /* temp array for pairs */ + float src[16]; /* array of transpose source matrix */ + float dst[16]; /* storage */ + float det; /* determinant */ + /* transpose matrix */ + + // row 1 to col 1 + src[0] = mat[0][0]; + src[4] = mat[0][1]; + src[8] = mat[0][2]; + src[12] = mat[0][3]; + + // row 2 to col 2 + src[1] = mat[1][0]; + src[5] = mat[1][1]; + src[9] = mat[1][2]; + src[13] = mat[1][3]; + + // row 3 to col 3 + src[2] = mat[2][0]; + src[6] = mat[2][1]; + src[10] = mat[2][2]; + src[14] = mat[2][3]; + + // row 4 to col 4 + src[3] = mat[3][0]; + src[7] = mat[3][1]; + src[11] = mat[3][2]; + src[15] = mat[3][3]; + + // for (int i = 0; i < 4; i++) { + // src[i] = mat[i*4]; + // src[i + 4] = mat[i*4 + 1]; + // src[i + 8] = mat[i*4 + 2]; + // src[i + 12] = mat[i*4 + 3]; + // } + /* calculate pairs for first 8 elements (cofactors) */ + tmp[0] = src[10] * src[15]; + tmp[1] = src[11] * src[14]; + tmp[2] = src[9] * src[15]; + tmp[3] = src[11] * src[13]; + tmp[4] = src[9] * src[14]; + tmp[5] = src[10] * src[13]; + tmp[6] = src[8] * src[15]; + tmp[7] = src[11] * src[12]; + tmp[8] = src[8] * src[14]; + tmp[9] = src[10] * src[12]; + tmp[10] = src[8] * src[13]; + tmp[11] = src[9] * src[12]; + /* calculate first 8 elements (cofactors) */ + dst[0] = tmp[0] * src[5] + tmp[3] * src[6] + tmp[4] * src[7]; + dst[0] -= tmp[1] * src[5] + tmp[2] * src[6] + tmp[5] * src[7]; + dst[1] = tmp[1] * src[4] + tmp[6] * src[6] + tmp[9] * src[7]; + dst[1] -= tmp[0] * src[4] + tmp[7] * src[6] + tmp[8] * src[7]; + dst[2] = tmp[2] * src[4] + tmp[7] * src[5] + tmp[10] * src[7]; + dst[2] -= tmp[3] * src[4] + tmp[6] * src[5] + tmp[11] * src[7]; + dst[3] = tmp[5] * src[4] + tmp[8] * src[5] + tmp[11] * src[6]; + dst[3] -= tmp[4] * src[4] + tmp[9] * src[5] + tmp[10] * src[6]; + dst[4] = tmp[1] * src[1] + tmp[2] * src[2] + tmp[5] * src[3]; + dst[4] -= tmp[0] * src[1] + tmp[3] * src[2] + tmp[4] * src[3]; + dst[5] = tmp[0] * src[0] + tmp[7] * src[2] + tmp[8] * src[3]; + dst[5] -= tmp[1] * src[0] + tmp[6] * src[2] + tmp[9] * src[3]; + dst[6] = tmp[3] * src[0] + tmp[6] * src[1] + tmp[11] * src[3]; + dst[6] -= tmp[2] * src[0] + tmp[7] * src[1] + tmp[10] * src[3]; + dst[7] = tmp[4] * src[0] + tmp[9] * src[1] + tmp[10] * src[2]; + dst[7] -= tmp[5] * src[0] + tmp[8] * src[1] + tmp[11] * src[2]; + /* calculate pairs for second 8 elements (cofactors) */ + tmp[0] = src[2] * src[7]; + tmp[1] = src[3] * src[6]; + tmp[2] = src[1] * src[7]; + tmp[3] = src[3] * src[5]; + tmp[4] = src[1] * src[6]; + tmp[5] = src[2] * src[5]; + tmp[6] = src[0] * src[7]; + tmp[7] = src[3] * src[4]; + tmp[8] = src[0] * src[6]; + tmp[9] = src[2] * src[4]; + tmp[10] = src[0] * src[5]; + tmp[11] = src[1] * src[4]; + /* calculate second 8 elements (cofactors) */ + dst[8] = tmp[0] * src[13] + tmp[3] * src[14] + tmp[4] * src[15]; + dst[8] -= tmp[1] * src[13] + tmp[2] * src[14] + tmp[5] * src[15]; + dst[9] = tmp[1] * src[12] + tmp[6] * src[14] + tmp[9] * src[15]; + dst[9] -= tmp[0] * src[12] + tmp[7] * src[14] + tmp[8] * src[15]; + dst[10] = tmp[2] * src[12] + tmp[7] * src[13] + tmp[10] * src[15]; + dst[10] -= tmp[3] * src[12] + tmp[6] * src[13] + tmp[11] * src[15]; + dst[11] = tmp[5] * src[12] + tmp[8] * src[13] + tmp[11] * src[14]; + dst[11] -= tmp[4] * src[12] + tmp[9] * src[13] + tmp[10] * src[14]; + dst[12] = tmp[2] * src[10] + tmp[5] * src[11] + tmp[1] * src[9]; + dst[12] -= tmp[4] * src[11] + tmp[0] * src[9] + tmp[3] * src[10]; + dst[13] = tmp[8] * src[11] + tmp[0] * src[8] + tmp[7] * src[10]; + dst[13] -= tmp[6] * src[10] + tmp[9] * src[11] + tmp[1] * src[8]; + dst[14] = tmp[6] * src[9] + tmp[11] * src[11] + tmp[3] * src[8]; + dst[14] -= tmp[10] * src[11] + tmp[2] * src[8] + tmp[7] * src[9]; + dst[15] = tmp[10] * src[10] + tmp[4] * src[8] + tmp[9] * src[9]; + dst[15] -= tmp[8] * src[9] + tmp[11] * src[10] + tmp[5] * src[8]; + /* calculate determinant */ + det = src[0] * dst[0] + src[1] * dst[1] + src[2] * dst[2] + src[3] * dst[3]; + /* calculate matrix inverse */ + det = 1 / det; + for (int j = 0; j < 16; j++) + dst[j] *= det; + + // Set it back + for (int i = 0; i < 4; i++) + { + for (int j = 0; j < 4; j++) + { + mat[i][j] = dst[i * 4 + j]; + } + } +} + +Matrix4 Matrix4::CreateFromQuaternion(const class Quaternion& q) +{ + float mat[4][4]; + + mat[0][0] = 1.0f - 2.0f * q.y * q.y - 2.0f * q.z * q.z; + mat[0][1] = 2.0f * q.x * q.y + 2.0f * q.w * q.z; + mat[0][2] = 2.0f * q.x * q.z - 2.0f * q.w * q.y; + mat[0][3] = 0.0f; + + mat[1][0] = 2.0f * q.x * q.y - 2.0f * q.w * q.z; + mat[1][1] = 1.0f - 2.0f * q.x * q.x - 2.0f * q.z * q.z; + mat[1][2] = 2.0f * q.y * q.z + 2.0f * q.w * q.x; + mat[1][3] = 0.0f; + + mat[2][0] = 2.0f * q.x * q.z + 2.0f * q.w * q.y; + mat[2][1] = 2.0f * q.y * q.z - 2.0f * q.w * q.x; + mat[2][2] = 1.0f - 2.0f * q.x * q.x - 2.0f * q.y * q.y; + mat[2][3] = 0.0f; + + mat[3][0] = 0.0f; + mat[3][1] = 0.0f; + mat[3][2] = 0.0f; + mat[3][3] = 1.0f; + + return Matrix4(mat); +} diff --git a/Chapter06/Math.h b/Chapter06/Math.h new file mode 100644 index 00000000..51de3a26 --- /dev/null +++ b/Chapter06/Math.h @@ -0,0 +1,1033 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once + +#include +#include +#include + +namespace Math +{ + const float Pi = 3.1415926535f; + const float TwoPi = Pi * 2.0f; + const float PiOver2 = Pi / 2.0f; + const float Infinity = std::numeric_limits::infinity(); + const float NegInfinity = -std::numeric_limits::infinity(); + + inline float ToRadians(float degrees) + { + return degrees * Pi / 180.0f; + } + + inline float ToDegrees(float radians) + { + return radians * 180.0f / Pi; + } + + inline bool NearZero(float val, float epsilon = 0.001f) + { + if (fabs(val) <= epsilon) + { + return true; + } + else + { + return false; + } + } + + template + T Max(const T& a, const T& b) + { + return (a < b ? b : a); + } + + template + T Min(const T& a, const T& b) + { + return (a < b ? a : b); + } + + template + T Clamp(const T& value, const T& lower, const T& upper) + { + return Min(upper, Max(lower, value)); + } + + inline float Abs(float value) + { + return fabs(value); + } + + inline float Cos(float angle) + { + return cosf(angle); + } + + inline float Sin(float angle) + { + return sinf(angle); + } + + inline float Tan(float angle) + { + return tanf(angle); + } + + inline float Acos(float value) + { + return acosf(value); + } + + inline float Atan2(float y, float x) + { + return atan2f(y, x); + } + + inline float Cot(float angle) + { + return 1.0f / Tan(angle); + } + + inline float Lerp(float a, float b, float f) + { + return a + f * (b - a); + } + + inline float Sqrt(float value) + { + return sqrtf(value); + } + + inline float Fmod(float numer, float denom) + { + return fmod(numer, denom); + } +} + +// 2D Vector +class Vector2 +{ +public: + float x; + float y; + + Vector2() + :x(0.0f) + ,y(0.0f) + {} + + explicit Vector2(float inX, float inY) + :x(inX) + ,y(inY) + {} + + // Set both components in one line + void Set(float inX, float inY) + { + x = inX; + y = inY; + } + + // Vector addition (a + b) + friend Vector2 operator+(const Vector2& a, const Vector2& b) + { + return Vector2(a.x + b.x, a.y + b.y); + } + + // Vector subtraction (a - b) + friend Vector2 operator-(const Vector2& a, const Vector2& b) + { + return Vector2(a.x - b.x, a.y - b.y); + } + + // Component-wise multiplication + // (a.x * b.x, ...) + friend Vector2 operator*(const Vector2& a, const Vector2& b) + { + return Vector2(a.x * b.x, a.y * b.y); + } + + // Scalar multiplication + friend Vector2 operator*(const Vector2& vec, float scalar) + { + return Vector2(vec.x * scalar, vec.y * scalar); + } + + // Scalar multiplication + friend Vector2 operator*(float scalar, const Vector2& vec) + { + return Vector2(vec.x * scalar, vec.y * scalar); + } + + // Scalar *= + Vector2& operator*=(float scalar) + { + x *= scalar; + y *= scalar; + return *this; + } + + // Vector += + Vector2& operator+=(const Vector2& right) + { + x += right.x; + y += right.y; + return *this; + } + + // Vector -= + Vector2& operator-=(const Vector2& right) + { + x -= right.x; + y -= right.y; + return *this; + } + + // Length squared of vector + float LengthSq() const + { + return (x*x + y*y); + } + + // Length of vector + float Length() const + { + return (Math::Sqrt(LengthSq())); + } + + // Normalize this vector + void Normalize() + { + float length = Length(); + x /= length; + y /= length; + } + + // Normalize the provided vector + static Vector2 Normalize(const Vector2& vec) + { + Vector2 temp = vec; + temp.Normalize(); + return temp; + } + + // Dot product between two vectors (a dot b) + static float Dot(const Vector2& a, const Vector2& b) + { + return (a.x * b.x + a.y * b.y); + } + + // Lerp from A to B by f + static Vector2 Lerp(const Vector2& a, const Vector2& b, float f) + { + return Vector2(a + f * (b - a)); + } + + // Reflect V about (normalized) N + static Vector2 Reflect(const Vector2& v, const Vector2& n) + { + return v - 2.0f * Vector2::Dot(v, n) * n; + } + + // Transform vector by matrix + static Vector2 Transform(const Vector2& vec, const class Matrix3& mat, float w = 1.0f); + + static const Vector2 Zero; + static const Vector2 UnitX; + static const Vector2 UnitY; + static const Vector2 NegUnitX; + static const Vector2 NegUnitY; +}; + +// 3D Vector +class Vector3 +{ +public: + float x; + float y; + float z; + + Vector3() + :x(0.0f) + ,y(0.0f) + ,z(0.0f) + {} + + explicit Vector3(float inX, float inY, float inZ) + :x(inX) + ,y(inY) + ,z(inZ) + {} + + // Cast to a const float pointer + const float* GetAsFloatPtr() const + { + return reinterpret_cast(&x); + } + + // Set all three components in one line + void Set(float inX, float inY, float inZ) + { + x = inX; + y = inY; + z = inZ; + } + + // Vector addition (a + b) + friend Vector3 operator+(const Vector3& a, const Vector3& b) + { + return Vector3(a.x + b.x, a.y + b.y, a.z + b.z); + } + + // Vector subtraction (a - b) + friend Vector3 operator-(const Vector3& a, const Vector3& b) + { + return Vector3(a.x - b.x, a.y - b.y, a.z - b.z); + } + + // Component-wise multiplication + friend Vector3 operator*(const Vector3& left, const Vector3& right) + { + return Vector3(left.x * right.x, left.y * right.y, left.z * right.z); + } + + // Scalar multiplication + friend Vector3 operator*(const Vector3& vec, float scalar) + { + return Vector3(vec.x * scalar, vec.y * scalar, vec.z * scalar); + } + + // Scalar multiplication + friend Vector3 operator*(float scalar, const Vector3& vec) + { + return Vector3(vec.x * scalar, vec.y * scalar, vec.z * scalar); + } + + // Scalar *= + Vector3& operator*=(float scalar) + { + x *= scalar; + y *= scalar; + z *= scalar; + return *this; + } + + // Vector += + Vector3& operator+=(const Vector3& right) + { + x += right.x; + y += right.y; + z += right.z; + return *this; + } + + // Vector -= + Vector3& operator-=(const Vector3& right) + { + x -= right.x; + y -= right.y; + z -= right.z; + return *this; + } + + // Length squared of vector + float LengthSq() const + { + return (x*x + y*y + z*z); + } + + // Length of vector + float Length() const + { + return (Math::Sqrt(LengthSq())); + } + + // Normalize this vector + void Normalize() + { + float length = Length(); + x /= length; + y /= length; + z /= length; + } + + // Normalize the provided vector + static Vector3 Normalize(const Vector3& vec) + { + Vector3 temp = vec; + temp.Normalize(); + return temp; + } + + // Dot product between two vectors (a dot b) + static float Dot(const Vector3& a, const Vector3& b) + { + return (a.x * b.x + a.y * b.y + a.z * b.z); + } + + // Cross product between two vectors (a cross b) + static Vector3 Cross(const Vector3& a, const Vector3& b) + { + Vector3 temp; + temp.x = a.y * b.z - a.z * b.y; + temp.y = a.z * b.x - a.x * b.z; + temp.z = a.x * b.y - a.y * b.x; + return temp; + } + + // Lerp from A to B by f + static Vector3 Lerp(const Vector3& a, const Vector3& b, float f) + { + return Vector3(a + f * (b - a)); + } + + // Reflect V about (normalized) N + static Vector3 Reflect(const Vector3& v, const Vector3& n) + { + return v - 2.0f * Vector3::Dot(v, n) * n; + } + + static Vector3 Transform(const Vector3& vec, const class Matrix4& mat, float w = 1.0f); + // This will transform the vector and renormalize the w component + static Vector3 TransformWithPerspDiv(const Vector3& vec, const class Matrix4& mat, float w = 1.0f); + + // Transform a Vector3 by a quaternion + static Vector3 Transform(const Vector3& v, const class Quaternion& q); + + static const Vector3 Zero; + static const Vector3 UnitX; + static const Vector3 UnitY; + static const Vector3 UnitZ; + static const Vector3 NegUnitX; + static const Vector3 NegUnitY; + static const Vector3 NegUnitZ; + static const Vector3 Infinity; + static const Vector3 NegInfinity; +}; + +// 3x3 Matrix +class Matrix3 +{ +public: + float mat[3][3]; + + Matrix3() + { + *this = Matrix3::Identity; + } + + explicit Matrix3(float inMat[3][3]) + { + memcpy(mat, inMat, 9 * sizeof(float)); + } + + // Cast to a const float pointer + const float* GetAsFloatPtr() const + { + return reinterpret_cast(&mat[0][0]); + } + + // Matrix multiplication + friend Matrix3 operator*(const Matrix3& left, const Matrix3& right) + { + Matrix3 retVal; + // row 0 + retVal.mat[0][0] = + left.mat[0][0] * right.mat[0][0] + + left.mat[0][1] * right.mat[1][0] + + left.mat[0][2] * right.mat[2][0]; + + retVal.mat[0][1] = + left.mat[0][0] * right.mat[0][1] + + left.mat[0][1] * right.mat[1][1] + + left.mat[0][2] * right.mat[2][1]; + + retVal.mat[0][2] = + left.mat[0][0] * right.mat[0][2] + + left.mat[0][1] * right.mat[1][2] + + left.mat[0][2] * right.mat[2][2]; + + // row 1 + retVal.mat[1][0] = + left.mat[1][0] * right.mat[0][0] + + left.mat[1][1] * right.mat[1][0] + + left.mat[1][2] * right.mat[2][0]; + + retVal.mat[1][1] = + left.mat[1][0] * right.mat[0][1] + + left.mat[1][1] * right.mat[1][1] + + left.mat[1][2] * right.mat[2][1]; + + retVal.mat[1][2] = + left.mat[1][0] * right.mat[0][2] + + left.mat[1][1] * right.mat[1][2] + + left.mat[1][2] * right.mat[2][2]; + + // row 2 + retVal.mat[2][0] = + left.mat[2][0] * right.mat[0][0] + + left.mat[2][1] * right.mat[1][0] + + left.mat[2][2] * right.mat[2][0]; + + retVal.mat[2][1] = + left.mat[2][0] * right.mat[0][1] + + left.mat[2][1] * right.mat[1][1] + + left.mat[2][2] * right.mat[2][1]; + + retVal.mat[2][2] = + left.mat[2][0] * right.mat[0][2] + + left.mat[2][1] * right.mat[1][2] + + left.mat[2][2] * right.mat[2][2]; + + return retVal; + } + + Matrix3& operator*=(const Matrix3& right) + { + *this = *this * right; + return *this; + } + + // Create a scale matrix with x and y scales + static Matrix3 CreateScale(float xScale, float yScale) + { + float temp[3][3] = + { + { xScale, 0.0f, 0.0f }, + { 0.0f, yScale, 0.0f }, + { 0.0f, 0.0f, 1.0f }, + }; + return Matrix3(temp); + } + + static Matrix3 CreateScale(const Vector2& scaleVector) + { + return CreateScale(scaleVector.x, scaleVector.y); + } + + // Create a scale matrix with a uniform factor + static Matrix3 CreateScale(float scale) + { + return CreateScale(scale, scale); + } + + // Create a rotation matrix about the Z axis + // theta is in radians + static Matrix3 CreateRotation(float theta) + { + float temp[3][3] = + { + { Math::Cos(theta), Math::Sin(theta), 0.0f }, + { -Math::Sin(theta), Math::Cos(theta), 0.0f }, + { 0.0f, 0.0f, 1.0f }, + }; + return Matrix3(temp); + } + + // Create a translation matrix (on the xy-plane) + static Matrix3 CreateTranslation(const Vector2& trans) + { + float temp[3][3] = + { + { 1.0f, 0.0f, 0.0f }, + { 0.0f, 1.0f, 0.0f }, + { trans.x, trans.y, 1.0f }, + }; + return Matrix3(temp); + } + + static const Matrix3 Identity; +}; + +// 4x4 Matrix +class Matrix4 +{ +public: + float mat[4][4]; + + Matrix4() + { + *this = Matrix4::Identity; + } + + explicit Matrix4(float inMat[4][4]) + { + memcpy(mat, inMat, 16 * sizeof(float)); + } + + // Cast to a const float pointer + const float* GetAsFloatPtr() const + { + return reinterpret_cast(&mat[0][0]); + } + + // Matrix multiplication (a * b) + friend Matrix4 operator*(const Matrix4& a, const Matrix4& b) + { + Matrix4 retVal; + // row 0 + retVal.mat[0][0] = + a.mat[0][0] * b.mat[0][0] + + a.mat[0][1] * b.mat[1][0] + + a.mat[0][2] * b.mat[2][0] + + a.mat[0][3] * b.mat[3][0]; + + retVal.mat[0][1] = + a.mat[0][0] * b.mat[0][1] + + a.mat[0][1] * b.mat[1][1] + + a.mat[0][2] * b.mat[2][1] + + a.mat[0][3] * b.mat[3][1]; + + retVal.mat[0][2] = + a.mat[0][0] * b.mat[0][2] + + a.mat[0][1] * b.mat[1][2] + + a.mat[0][2] * b.mat[2][2] + + a.mat[0][3] * b.mat[3][2]; + + retVal.mat[0][3] = + a.mat[0][0] * b.mat[0][3] + + a.mat[0][1] * b.mat[1][3] + + a.mat[0][2] * b.mat[2][3] + + a.mat[0][3] * b.mat[3][3]; + + // row 1 + retVal.mat[1][0] = + a.mat[1][0] * b.mat[0][0] + + a.mat[1][1] * b.mat[1][0] + + a.mat[1][2] * b.mat[2][0] + + a.mat[1][3] * b.mat[3][0]; + + retVal.mat[1][1] = + a.mat[1][0] * b.mat[0][1] + + a.mat[1][1] * b.mat[1][1] + + a.mat[1][2] * b.mat[2][1] + + a.mat[1][3] * b.mat[3][1]; + + retVal.mat[1][2] = + a.mat[1][0] * b.mat[0][2] + + a.mat[1][1] * b.mat[1][2] + + a.mat[1][2] * b.mat[2][2] + + a.mat[1][3] * b.mat[3][2]; + + retVal.mat[1][3] = + a.mat[1][0] * b.mat[0][3] + + a.mat[1][1] * b.mat[1][3] + + a.mat[1][2] * b.mat[2][3] + + a.mat[1][3] * b.mat[3][3]; + + // row 2 + retVal.mat[2][0] = + a.mat[2][0] * b.mat[0][0] + + a.mat[2][1] * b.mat[1][0] + + a.mat[2][2] * b.mat[2][0] + + a.mat[2][3] * b.mat[3][0]; + + retVal.mat[2][1] = + a.mat[2][0] * b.mat[0][1] + + a.mat[2][1] * b.mat[1][1] + + a.mat[2][2] * b.mat[2][1] + + a.mat[2][3] * b.mat[3][1]; + + retVal.mat[2][2] = + a.mat[2][0] * b.mat[0][2] + + a.mat[2][1] * b.mat[1][2] + + a.mat[2][2] * b.mat[2][2] + + a.mat[2][3] * b.mat[3][2]; + + retVal.mat[2][3] = + a.mat[2][0] * b.mat[0][3] + + a.mat[2][1] * b.mat[1][3] + + a.mat[2][2] * b.mat[2][3] + + a.mat[2][3] * b.mat[3][3]; + + // row 3 + retVal.mat[3][0] = + a.mat[3][0] * b.mat[0][0] + + a.mat[3][1] * b.mat[1][0] + + a.mat[3][2] * b.mat[2][0] + + a.mat[3][3] * b.mat[3][0]; + + retVal.mat[3][1] = + a.mat[3][0] * b.mat[0][1] + + a.mat[3][1] * b.mat[1][1] + + a.mat[3][2] * b.mat[2][1] + + a.mat[3][3] * b.mat[3][1]; + + retVal.mat[3][2] = + a.mat[3][0] * b.mat[0][2] + + a.mat[3][1] * b.mat[1][2] + + a.mat[3][2] * b.mat[2][2] + + a.mat[3][3] * b.mat[3][2]; + + retVal.mat[3][3] = + a.mat[3][0] * b.mat[0][3] + + a.mat[3][1] * b.mat[1][3] + + a.mat[3][2] * b.mat[2][3] + + a.mat[3][3] * b.mat[3][3]; + + return retVal; + } + + Matrix4& operator*=(const Matrix4& right) + { + *this = *this * right; + return *this; + } + + // Invert the matrix - super slow + void Invert(); + + // Get the translation component of the matrix + Vector3 GetTranslation() const + { + return Vector3(mat[3][0], mat[3][1], mat[3][2]); + } + + // Get the X axis of the matrix (forward) + Vector3 GetXAxis() const + { + return Vector3::Normalize(Vector3(mat[0][0], mat[0][1], mat[0][2])); + } + + // Get the Y axis of the matrix (left) + Vector3 GetYAxis() const + { + return Vector3::Normalize(Vector3(mat[1][0], mat[1][1], mat[1][2])); + } + + // Get the Z axis of the matrix (up) + Vector3 GetZAxis() const + { + return Vector3::Normalize(Vector3(mat[2][0], mat[2][1], mat[2][2])); + } + + // Extract the scale component from the matrix + Vector3 GetScale() const + { + Vector3 retVal; + retVal.x = Vector3(mat[0][0], mat[0][1], mat[0][2]).Length(); + retVal.y = Vector3(mat[1][0], mat[1][1], mat[1][2]).Length(); + retVal.z = Vector3(mat[2][0], mat[2][1], mat[2][2]).Length(); + return retVal; + } + + // Create a scale matrix with x, y, and z scales + static Matrix4 CreateScale(float xScale, float yScale, float zScale) + { + float temp[4][4] = + { + { xScale, 0.0f, 0.0f, 0.0f }, + { 0.0f, yScale, 0.0f, 0.0f }, + { 0.0f, 0.0f, zScale, 0.0f }, + { 0.0f, 0.0f, 0.0f, 1.0f } + }; + return Matrix4(temp); + } + + static Matrix4 CreateScale(const Vector3& scaleVector) + { + return CreateScale(scaleVector.x, scaleVector.y, scaleVector.z); + } + + // Create a scale matrix with a uniform factor + static Matrix4 CreateScale(float scale) + { + return CreateScale(scale, scale, scale); + } + + // Rotation about x-axis + static Matrix4 CreateRotationX(float theta) + { + float temp[4][4] = + { + { 1.0f, 0.0f, 0.0f , 0.0f }, + { 0.0f, Math::Cos(theta), Math::Sin(theta), 0.0f }, + { 0.0f, -Math::Sin(theta), Math::Cos(theta), 0.0f }, + { 0.0f, 0.0f, 0.0f, 1.0f }, + }; + return Matrix4(temp); + } + + // Rotation about y-axis + static Matrix4 CreateRotationY(float theta) + { + float temp[4][4] = + { + { Math::Cos(theta), 0.0f, -Math::Sin(theta), 0.0f }, + { 0.0f, 1.0f, 0.0f, 0.0f }, + { Math::Sin(theta), 0.0f, Math::Cos(theta), 0.0f }, + { 0.0f, 0.0f, 0.0f, 1.0f }, + }; + return Matrix4(temp); + } + + // Rotation about z-axis + static Matrix4 CreateRotationZ(float theta) + { + float temp[4][4] = + { + { Math::Cos(theta), Math::Sin(theta), 0.0f, 0.0f }, + { -Math::Sin(theta), Math::Cos(theta), 0.0f, 0.0f }, + { 0.0f, 0.0f, 1.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f, 1.0f }, + }; + return Matrix4(temp); + } + + // Create a rotation matrix from a quaternion + static Matrix4 CreateFromQuaternion(const class Quaternion& q); + + static Matrix4 CreateTranslation(const Vector3& trans) + { + float temp[4][4] = + { + { 1.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, 1.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 1.0f, 0.0f }, + { trans.x, trans.y, trans.z, 1.0f } + }; + return Matrix4(temp); + } + + static Matrix4 CreateLookAt(const Vector3& eye, const Vector3& target, const Vector3& up) + { + Vector3 zaxis = Vector3::Normalize(target - eye); + Vector3 xaxis = Vector3::Normalize(Vector3::Cross(up, zaxis)); + Vector3 yaxis = Vector3::Normalize(Vector3::Cross(zaxis, xaxis)); + Vector3 trans; + trans.x = -Vector3::Dot(xaxis, eye); + trans.y = -Vector3::Dot(yaxis, eye); + trans.z = -Vector3::Dot(zaxis, eye); + + float temp[4][4] = + { + { xaxis.x, yaxis.x, zaxis.x, 0.0f }, + { xaxis.y, yaxis.y, zaxis.y, 0.0f }, + { xaxis.z, yaxis.z, zaxis.z, 0.0f }, + { trans.x, trans.y, trans.z, 1.0f } + }; + return Matrix4(temp); + } + + static Matrix4 CreateOrtho(float width, float height, float near, float far) + { + float temp[4][4] = + { + { 2.0f / width, 0.0f, 0.0f, 0.0f }, + { 0.0f, 2.0f / height, 0.0f, 0.0f }, + { 0.0f, 0.0f, 1.0f / (far - near), 0.0f }, + { 0.0f, 0.0f, near / (near - far), 1.0f } + }; + return Matrix4(temp); + } + + static Matrix4 CreatePerspectiveFOV(float fovY, float width, float height, float near, float far) + { + float yScale = Math::Cot(fovY / 2.0f); + float xScale = yScale * height / width; + float temp[4][4] = + { + { xScale, 0.0f, 0.0f, 0.0f }, + { 0.0f, yScale, 0.0f, 0.0f }, + { 0.0f, 0.0f, far / (far - near), 1.0f }, + { 0.0f, 0.0f, -near * far / (far - near), 0.0f } + }; + return Matrix4(temp); + } + + // Create "Simple" View-Projection Matrix from Chapter 6 + static Matrix4 CreateSimpleViewProj(float width, float height) + { + float temp[4][4] = + { + { 2.0f/width, 0.0f, 0.0f, 0.0f }, + { 0.0f, 2.0f/height, 0.0f, 0.0f }, + { 0.0f, 0.0f, 1.0f, 0.0f }, + { 0.0f, 0.0f, 1.0f, 1.0f } + }; + return Matrix4(temp); + } + + static const Matrix4 Identity; +}; + +// (Unit) Quaternion +class Quaternion +{ +public: + float x; + float y; + float z; + float w; + + Quaternion() + { + *this = Quaternion::Identity; + } + + // This directly sets the quaternion components -- + // don't use for axis/angle + explicit Quaternion(float inX, float inY, float inZ, float inW) + { + Set(inX, inY, inZ, inW); + } + + // Construct the quaternion from an axis and angle + // It is assumed that axis is already normalized, + // and the angle is in radians + explicit Quaternion(const Vector3& axis, float angle) + { + float scalar = Math::Sin(angle / 2.0f); + x = axis.x * scalar; + y = axis.y * scalar; + z = axis.z * scalar; + w = Math::Cos(angle / 2.0f); + } + + // Directly set the internal components + void Set(float inX, float inY, float inZ, float inW) + { + x = inX; + y = inY; + z = inZ; + w = inW; + } + + void Conjugate() + { + x *= -1.0f; + y *= -1.0f; + z *= -1.0f; + } + + float LengthSq() const + { + return (x*x + y*y + z*z + w*w); + } + + float Length() const + { + return Math::Sqrt(LengthSq()); + } + + void Normalize() + { + float length = Length(); + x /= length; + y /= length; + z /= length; + w /= length; + } + + // Normalize the provided quaternion + static Quaternion Normalize(const Quaternion& q) + { + Quaternion retVal = q; + retVal.Normalize(); + return retVal; + } + + // Linear interpolation + static Quaternion Lerp(const Quaternion& a, const Quaternion& b, float f) + { + Quaternion retVal; + retVal.x = Math::Lerp(a.x, b.x, f); + retVal.y = Math::Lerp(a.y, b.y, f); + retVal.z = Math::Lerp(a.z, b.z, f); + retVal.w = Math::Lerp(a.w, b.w, f); + retVal.Normalize(); + return retVal; + } + + static float Dot(const Quaternion& a, const Quaternion& b) + { + return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w; + } + + // Spherical Linear Interpolation + static Quaternion Slerp(const Quaternion& a, const Quaternion& b, float f) + { + float rawCosm = Quaternion::Dot(a, b); + + float cosom = -rawCosm; + if (rawCosm >= 0.0f) + { + cosom = rawCosm; + } + + float scale0, scale1; + + if (cosom < 0.9999f) + { + const float omega = Math::Acos(cosom); + const float invSin = 1.f / Math::Sin(omega); + scale0 = Math::Sin((1.f - f) * omega) * invSin; + scale1 = Math::Sin(f * omega) * invSin; + } + else + { + // Use linear interpolation if the quaternions + // are collinear + scale0 = 1.0f - f; + scale1 = f; + } + + if (rawCosm < 0.0f) + { + scale1 = -scale1; + } + + Quaternion retVal; + retVal.x = scale0 * a.x + scale1 * b.x; + retVal.y = scale0 * a.y + scale1 * b.y; + retVal.z = scale0 * a.z + scale1 * b.z; + retVal.w = scale0 * a.w + scale1 * b.w; + retVal.Normalize(); + return retVal; + } + + // Concatenate + // Rotate by q FOLLOWED BY p + static Quaternion Concatenate(const Quaternion& q, const Quaternion& p) + { + Quaternion retVal; + + // Vector component is: + // ps * qv + qs * pv + pv x qv + Vector3 qv(q.x, q.y, q.z); + Vector3 pv(p.x, p.y, p.z); + Vector3 newVec = p.w * qv + q.w * pv + Vector3::Cross(pv, qv); + retVal.x = newVec.x; + retVal.y = newVec.y; + retVal.z = newVec.z; + + // Scalar component is: + // ps * qs - pv . qv + retVal.w = p.w * q.w - Vector3::Dot(pv, qv); + + return retVal; + } + + static const Quaternion Identity; +}; + +namespace Color +{ + static const Vector3 Black(0.0f, 0.0f, 0.0f); + static const Vector3 White(1.0f, 1.0f, 1.0f); + static const Vector3 Red(1.0f, 0.0f, 0.0f); + static const Vector3 Green(0.0f, 1.0f, 0.0f); + static const Vector3 Blue(0.0f, 0.0f, 1.0f); + static const Vector3 Yellow(1.0f, 1.0f, 0.0f); + static const Vector3 LightYellow(1.0f, 1.0f, 0.88f); + static const Vector3 LightBlue(0.68f, 0.85f, 0.9f); + static const Vector3 LightPink(1.0f, 0.71f, 0.76f); + static const Vector3 LightGreen(0.56f, 0.93f, 0.56f); +} diff --git a/Chapter06/Mesh.cpp b/Chapter06/Mesh.cpp new file mode 100644 index 00000000..556684e5 --- /dev/null +++ b/Chapter06/Mesh.cpp @@ -0,0 +1,175 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "Mesh.h" +#include "Renderer.h" +#include "Texture.h" +#include "VertexArray.h" +#include +#include +#include +#include +#include "Math.h" + +Mesh::Mesh() + :mVertexArray(nullptr) + ,mRadius(0.0f) + ,mSpecPower(100.0f) +{ +} + +Mesh::~Mesh() +{ +} + +bool Mesh::Load(const std::string & fileName, Renderer* renderer) +{ + std::ifstream file(fileName); + if (!file.is_open()) + { + SDL_Log("File not found: Mesh %s", fileName.c_str()); + return false; + } + + std::stringstream fileStream; + fileStream << file.rdbuf(); + std::string contents = fileStream.str(); + rapidjson::StringStream jsonStr(contents.c_str()); + rapidjson::Document doc; + doc.ParseStream(jsonStr); + + if (!doc.IsObject()) + { + SDL_Log("Mesh %s is not valid json", fileName.c_str()); + return false; + } + + int ver = doc["version"].GetInt(); + + // Check the version + if (ver != 1) + { + SDL_Log("Mesh %s not version 1", fileName.c_str()); + return false; + } + + mShaderName = doc["shader"].GetString(); + + // Skip the vertex format/shader for now + // (This is changed in a later chapter's code) + size_t vertSize = 8; + + // Load textures + const rapidjson::Value& textures = doc["textures"]; + if (!textures.IsArray() || textures.Size() < 1) + { + SDL_Log("Mesh %s has no textures, there should be at least one", fileName.c_str()); + return false; + } + + mSpecPower = static_cast(doc["specularPower"].GetDouble()); + + for (rapidjson::SizeType i = 0; i < textures.Size(); i++) + { + // Is this texture already loaded? + std::string texName = textures[i].GetString(); + Texture* t = renderer->GetTexture(texName); + if (t == nullptr) + { + // Try loading the texture + t = renderer->GetTexture(texName); + if (t == nullptr) + { + // If it's still null, just use the default texture + t = renderer->GetTexture("Assets/Default.png"); + } + } + mTextures.emplace_back(t); + } + + // Load in the vertices + const rapidjson::Value& vertsJson = doc["vertices"]; + if (!vertsJson.IsArray() || vertsJson.Size() < 1) + { + SDL_Log("Mesh %s has no vertices", fileName.c_str()); + return false; + } + + std::vector vertices; + vertices.reserve(vertsJson.Size() * vertSize); + mRadius = 0.0f; + for (rapidjson::SizeType i = 0; i < vertsJson.Size(); i++) + { + // For now, just assume we have 8 elements + const rapidjson::Value& vert = vertsJson[i]; + if (!vert.IsArray() || vert.Size() != 8) + { + SDL_Log("Unexpected vertex format for %s", fileName.c_str()); + return false; + } + + Vector3 pos(vert[0].GetDouble(), vert[1].GetDouble(), vert[2].GetDouble()); + mRadius = Math::Max(mRadius, pos.LengthSq()); + + // Add the floats + for (rapidjson::SizeType i = 0; i < vert.Size(); i++) + { + vertices.emplace_back(static_cast(vert[i].GetDouble())); + } + } + + // We were computing length squared earlier + mRadius = Math::Sqrt(mRadius); + + // Load in the indices + const rapidjson::Value& indJson = doc["indices"]; + if (!indJson.IsArray() || indJson.Size() < 1) + { + SDL_Log("Mesh %s has no indices", fileName.c_str()); + return false; + } + + std::vector indices; + indices.reserve(indJson.Size() * 3); + for (rapidjson::SizeType i = 0; i < indJson.Size(); i++) + { + const rapidjson::Value& ind = indJson[i]; + if (!ind.IsArray() || ind.Size() != 3) + { + SDL_Log("Invalid indices for %s", fileName.c_str()); + return false; + } + + indices.emplace_back(ind[0].GetUint()); + indices.emplace_back(ind[1].GetUint()); + indices.emplace_back(ind[2].GetUint()); + } + + // Now create a vertex array + mVertexArray = new VertexArray(vertices.data(), static_cast(vertices.size()) / vertSize, + indices.data(), static_cast(indices.size())); + return true; +} + +void Mesh::Unload() +{ + delete mVertexArray; + mVertexArray = nullptr; +} + +Texture* Mesh::GetTexture(size_t index) +{ + if (index < mTextures.size()) + { + return mTextures[index]; + } + else + { + return nullptr; + } +} diff --git a/Chapter06/Mesh.h b/Chapter06/Mesh.h new file mode 100644 index 00000000..a3c93ad5 --- /dev/null +++ b/Chapter06/Mesh.h @@ -0,0 +1,42 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include +#include + +class Mesh +{ +public: + Mesh(); + ~Mesh(); + // Load/unload mesh + bool Load(const std::string& fileName, class Renderer* renderer); + void Unload(); + // Get the vertex array associated with this mesh + class VertexArray* GetVertexArray() { return mVertexArray; } + // Get a texture from specified index + class Texture* GetTexture(size_t index); + // Get name of shader + const std::string& GetShaderName() const { return mShaderName; } + // Get object space bounding sphere radius + float GetRadius() const { return mRadius; } + // Get specular power of mesh + float GetSpecPower() const { return mSpecPower; } +private: + // Textures associated with this mesh + std::vector mTextures; + // Vertex array associated with this mesh + class VertexArray* mVertexArray; + // Name of shader specified by mesh + std::string mShaderName; + // Stores object space bounding sphere radius + float mRadius; + // Specular power of surface + float mSpecPower; +}; \ No newline at end of file diff --git a/Chapter06/MeshComponent.cpp b/Chapter06/MeshComponent.cpp new file mode 100644 index 00000000..64064f7c --- /dev/null +++ b/Chapter06/MeshComponent.cpp @@ -0,0 +1,52 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "MeshComponent.h" +#include "Shader.h" +#include "Mesh.h" +#include "Actor.h" +#include "Game.h" +#include "Renderer.h" +#include "Texture.h" +#include "VertexArray.h" + +MeshComponent::MeshComponent(Actor* owner) + :Component(owner) + ,mMesh(nullptr) + ,mTextureIndex(0) +{ + mOwner->GetGame()->GetRenderer()->AddMeshComp(this); +} + +MeshComponent::~MeshComponent() +{ + mOwner->GetGame()->GetRenderer()->RemoveMeshComp(this); +} + +void MeshComponent::Draw(Shader* shader) +{ + if (mMesh) + { + // Set the world transform + shader->SetMatrixUniform("uWorldTransform", + mOwner->GetWorldTransform()); + // Set specular power + shader->SetFloatUniform("uSpecPower", mMesh->GetSpecPower()); + // Set the active texture + Texture* t = mMesh->GetTexture(mTextureIndex); + if (t) + { + t->SetActive(); + } + // Set the mesh's vertex array as active + VertexArray* va = mMesh->GetVertexArray(); + va->SetActive(); + // Draw + glDrawElements(GL_TRIANGLES, va->GetNumIndices(), GL_UNSIGNED_INT, nullptr); + } +} diff --git a/Chapter06/MeshComponent.h b/Chapter06/MeshComponent.h new file mode 100644 index 00000000..df4bacef --- /dev/null +++ b/Chapter06/MeshComponent.h @@ -0,0 +1,26 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include "Component.h" +#include + +class MeshComponent : public Component +{ +public: + MeshComponent(class Actor* owner); + ~MeshComponent(); + // Draw this mesh component + virtual void Draw(class Shader* shader); + // Set the mesh/texture index used by mesh component + virtual void SetMesh(class Mesh* mesh) { mMesh = mesh; } + void SetTextureIndex(size_t index) { mTextureIndex = index; } +protected: + class Mesh* mMesh; + size_t mTextureIndex; +}; diff --git a/Chapter06/MoveComponent.cpp b/Chapter06/MoveComponent.cpp new file mode 100644 index 00000000..c7ce995e --- /dev/null +++ b/Chapter06/MoveComponent.cpp @@ -0,0 +1,40 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "MoveComponent.h" +#include "Actor.h" + +MoveComponent::MoveComponent(class Actor* owner, int updateOrder) +:Component(owner, updateOrder) +,mAngularSpeed(0.0f) +,mForwardSpeed(0.0f) +{ + +} + +void MoveComponent::Update(float deltaTime) +{ + if (!Math::NearZero(mAngularSpeed)) + { + Quaternion rot = mOwner->GetRotation(); + float angle = mAngularSpeed * deltaTime; + // Create quaternion for incremental rotation + // (Rotate about up axis) + Quaternion inc(Vector3::UnitZ, angle); + // Concatenate old and new quaternion + rot = Quaternion::Concatenate(rot, inc); + mOwner->SetRotation(rot); + } + + if (!Math::NearZero(mForwardSpeed)) + { + Vector3 pos = mOwner->GetPosition(); + pos += mOwner->GetForward() * mForwardSpeed * deltaTime; + mOwner->SetPosition(pos); + } +} diff --git a/Chapter06/MoveComponent.h b/Chapter06/MoveComponent.h new file mode 100644 index 00000000..11d18cb5 --- /dev/null +++ b/Chapter06/MoveComponent.h @@ -0,0 +1,26 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include "Component.h" + +class MoveComponent : public Component +{ +public: + // Lower update order to update first + MoveComponent(class Actor* owner, int updateOrder = 10); + void Update(float deltaTime) override; + + float GetAngularSpeed() const { return mAngularSpeed; } + float GetForwardSpeed() const { return mForwardSpeed; } + void SetAngularSpeed(float speed) { mAngularSpeed = speed; } + void SetForwardSpeed(float speed) { mForwardSpeed = speed; } +private: + float mAngularSpeed; + float mForwardSpeed; +}; diff --git a/Chapter06/PlaneActor.cpp b/Chapter06/PlaneActor.cpp new file mode 100644 index 00000000..3744c5c2 --- /dev/null +++ b/Chapter06/PlaneActor.cpp @@ -0,0 +1,20 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "PlaneActor.h" +#include "Game.h" +#include "Renderer.h" +#include "MeshComponent.h" + +PlaneActor::PlaneActor(Game* game) + :Actor(game) +{ + SetScale(10.0f); + MeshComponent* mc = new MeshComponent(this); + mc->SetMesh(GetGame()->GetRenderer()->GetMesh("Assets/Plane.gpmesh")); +} diff --git a/Chapter06/PlaneActor.h b/Chapter06/PlaneActor.h new file mode 100644 index 00000000..3185cc80 --- /dev/null +++ b/Chapter06/PlaneActor.h @@ -0,0 +1,16 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include "Actor.h" + +class PlaneActor : public Actor +{ +public: + PlaneActor(class Game* game); +}; \ No newline at end of file diff --git a/Chapter06/Renderer.cpp b/Chapter06/Renderer.cpp new file mode 100644 index 00000000..e6351e22 --- /dev/null +++ b/Chapter06/Renderer.cpp @@ -0,0 +1,296 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "Renderer.h" +#include "Texture.h" +#include "Mesh.h" +#include +#include "Shader.h" +#include "VertexArray.h" +#include "SpriteComponent.h" +#include "MeshComponent.h" +#include + +Renderer::Renderer(Game* game) + :mGame(game) + ,mSpriteShader(nullptr) + ,mMeshShader(nullptr) +{ +} + +Renderer::~Renderer() +{ +} + +bool Renderer::Initialize(float screenWidth, float screenHeight) +{ + mScreenWidth = screenWidth; + mScreenHeight = screenHeight; + + // Set OpenGL attributes + // Use the core OpenGL profile + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); + // Specify version 3.3 + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3); + // Request a color buffer with 8-bits per RGBA channel + SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); + // Enable double buffering + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + // Force OpenGL to use hardware acceleration + SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1); + + mWindow = SDL_CreateWindow("Game Programming in C++ (Chapter 6)", 100, 100, + static_cast(mScreenWidth), static_cast(mScreenHeight), SDL_WINDOW_OPENGL); + if (!mWindow) + { + SDL_Log("Failed to create window: %s", SDL_GetError()); + return false; + } + + // Create an OpenGL context + mContext = SDL_GL_CreateContext(mWindow); + + // Initialize GLEW + glewExperimental = GL_TRUE; + if (glewInit() != GLEW_OK) + { + SDL_Log("Failed to initialize GLEW."); + return false; + } + + // On some platforms, GLEW will emit a benign error code, + // so clear it + glGetError(); + + // Make sure we can create/compile shaders + if (!LoadShaders()) + { + SDL_Log("Failed to load shaders."); + return false; + } + + // Create quad for drawing sprites + CreateSpriteVerts(); + + return true; +} + +void Renderer::Shutdown() +{ + delete mSpriteVerts; + mSpriteShader->Unload(); + delete mSpriteShader; + mMeshShader->Unload(); + delete mMeshShader; + SDL_GL_DeleteContext(mContext); + SDL_DestroyWindow(mWindow); +} + +void Renderer::UnloadData() +{ + // Destroy textures + for (auto i : mTextures) + { + i.second->Unload(); + delete i.second; + } + mTextures.clear(); + + // Destroy meshes + for (auto i : mMeshes) + { + i.second->Unload(); + delete i.second; + } + mMeshes.clear(); +} + +void Renderer::Draw() +{ + // Set the clear color to light grey + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + // Clear the color buffer + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + // Draw mesh components + // Enable depth buffering/disable alpha blend + glEnable(GL_DEPTH_TEST); + glDisable(GL_BLEND); + // Set the mesh shader active + mMeshShader->SetActive(); + // Update view-projection matrix + mMeshShader->SetMatrixUniform("uViewProj", mView * mProjection); + // Update lighting uniforms + SetLightUniforms(mMeshShader); + for (auto mc : mMeshComps) + { + mc->Draw(mMeshShader); + } + + // Draw all sprite components + // Disable depth buffering + glDisable(GL_DEPTH_TEST); + // Enable alpha blending on the color buffer + glEnable(GL_BLEND); + glBlendEquationSeparate(GL_FUNC_ADD, GL_FUNC_ADD); + glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO); + + // Set shader/vao as active + mSpriteShader->SetActive(); + mSpriteVerts->SetActive(); + for (auto sprite : mSprites) + { + sprite->Draw(mSpriteShader); + } + + // Swap the buffers + SDL_GL_SwapWindow(mWindow); +} + +void Renderer::AddSprite(SpriteComponent* sprite) +{ + mSprites.emplace_back(sprite); + // Resort sprites by draw order + std::sort(mSprites.begin(), mSprites.end(), [](SpriteComponent* a, SpriteComponent* b) { + return a->GetDrawOrder() < b->GetDrawOrder(); + }); +} + +void Renderer::RemoveSprite(SpriteComponent* sprite) +{ + auto iter = std::find(mSprites.begin(), mSprites.end(), sprite); + mSprites.erase(iter); +} + +void Renderer::AddMeshComp(MeshComponent* mesh) +{ + mMeshComps.emplace_back(mesh); +} + +void Renderer::RemoveMeshComp(MeshComponent* mesh) +{ + auto iter = std::find(mMeshComps.begin(), mMeshComps.end(), mesh); + mMeshComps.erase(iter); +} + +Texture* Renderer::GetTexture(const std::string& fileName) +{ + Texture* tex = nullptr; + auto iter = mTextures.find(fileName); + if (iter != mTextures.end()) + { + tex = iter->second; + } + else + { + tex = new Texture(); + if (tex->Load(fileName)) + { + mTextures.emplace(fileName, tex); + } + else + { + delete tex; + tex = nullptr; + } + } + return tex; +} + +Mesh* Renderer::GetMesh(const std::string & fileName) +{ + Mesh* m = nullptr; + auto iter = mMeshes.find(fileName); + if (iter != mMeshes.end()) + { + m = iter->second; + } + else + { + m = new Mesh(); + if (m->Load(fileName, this)) + { + mMeshes.emplace(fileName, m); + } + else + { + delete m; + m = nullptr; + } + } + return m; +} + +bool Renderer::LoadShaders() +{ + // Create sprite shader + mSpriteShader = new Shader(); + if (!mSpriteShader->Load("Shaders/Sprite")) + { + return false; + } + + mSpriteShader->SetActive(); + // Set the view-projection matrix + Matrix4 viewProj = Matrix4::CreateSimpleViewProj(mScreenWidth, mScreenHeight); + mSpriteShader->SetMatrixUniform("uViewProj", viewProj); + + // Create basic mesh shader + mMeshShader = new Shader(); + if (!mMeshShader->Load("Shaders/Phong")) + { + return false; + } + + mMeshShader->SetActive(); + // Set the view-projection matrix + mView = Matrix4::CreateLookAt(Vector3::Zero, Vector3::UnitX, Vector3::UnitZ); + mProjection = Matrix4::CreatePerspectiveFOV(Math::ToRadians(70.0f), + mScreenWidth, mScreenHeight, 25.0f, 10000.0f); + mMeshShader->SetMatrixUniform("uViewProj", mView * mProjection); + return true; +} + +void Renderer::CreateSpriteVerts() +{ + float vertices[] = { + -0.5f, 0.5f, 0.f, 0.f, 0.f, 0.0f, 0.f, 0.f, // top left + 0.5f, 0.5f, 0.f, 0.f, 0.f, 0.0f, 1.f, 0.f, // top right + 0.5f,-0.5f, 0.f, 0.f, 0.f, 0.0f, 1.f, 1.f, // bottom right + -0.5f,-0.5f, 0.f, 0.f, 0.f, 0.0f, 0.f, 1.f // bottom left + }; + + unsigned int indices[] = { + 0, 1, 2, + 2, 3, 0 + }; + + mSpriteVerts = new VertexArray(vertices, 4, indices, 6); +} + +void Renderer::SetLightUniforms(Shader* shader) +{ + // Camera position is from inverted view + Matrix4 invView = mView; + invView.Invert(); + shader->SetVectorUniform("uCameraPos", invView.GetTranslation()); + // Ambient light + shader->SetVectorUniform("uAmbientLight", mAmbientLight); + // Directional light + shader->SetVectorUniform("uDirLight.mDirection", + mDirLight.mDirection); + shader->SetVectorUniform("uDirLight.mDiffuseColor", + mDirLight.mDiffuseColor); + shader->SetVectorUniform("uDirLight.mSpecColor", + mDirLight.mSpecColor); +} diff --git a/Chapter06/Renderer.h b/Chapter06/Renderer.h new file mode 100644 index 00000000..613bb55f --- /dev/null +++ b/Chapter06/Renderer.h @@ -0,0 +1,96 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include +#include +#include +#include +#include "Math.h" + +struct DirectionalLight +{ + // Direction of light + Vector3 mDirection; + // Diffuse color + Vector3 mDiffuseColor; + // Specular color + Vector3 mSpecColor; +}; + +class Renderer +{ +public: + Renderer(class Game* game); + ~Renderer(); + + bool Initialize(float screenWidth, float screenHeight); + void Shutdown(); + void UnloadData(); + + void Draw(); + + void AddSprite(class SpriteComponent* sprite); + void RemoveSprite(class SpriteComponent* sprite); + + void AddMeshComp(class MeshComponent* mesh); + void RemoveMeshComp(class MeshComponent* mesh); + + class Texture* GetTexture(const std::string& fileName); + class Mesh* GetMesh(const std::string& fileName); + + void SetViewMatrix(const Matrix4& view) { mView = view; } + + void SetAmbientLight(const Vector3& ambient) { mAmbientLight = ambient; } + DirectionalLight& GetDirectionalLight() { return mDirLight; } + + float GetScreenWidth() const { return mScreenWidth; } + float GetScreenHeight() const { return mScreenHeight; } +private: + bool LoadShaders(); + void CreateSpriteVerts(); + void SetLightUniforms(class Shader* shader); + + // Map of textures loaded + std::unordered_map mTextures; + // Map of meshes loaded + std::unordered_map mMeshes; + + // All the sprite components drawn + std::vector mSprites; + + // All mesh components drawn + std::vector mMeshComps; + + // Game + class Game* mGame; + + // Sprite shader + class Shader* mSpriteShader; + // Sprite vertex array + class VertexArray* mSpriteVerts; + + // Mesh shader + class Shader* mMeshShader; + + // View/projection for 3D shaders + Matrix4 mView; + Matrix4 mProjection; + // Width/height of screen + float mScreenWidth; + float mScreenHeight; + + // Lighting data + Vector3 mAmbientLight; + DirectionalLight mDirLight; + + // Window + SDL_Window* mWindow; + // OpenGL context + SDL_GLContext mContext; +}; \ No newline at end of file diff --git a/Chapter06/Shader.cpp b/Chapter06/Shader.cpp new file mode 100644 index 00000000..f4e67ee2 --- /dev/null +++ b/Chapter06/Shader.cpp @@ -0,0 +1,162 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "Shader.h" +#include "Texture.h" +#include +#include +#include + +Shader::Shader() + : mShaderProgram(0) + , mVertexShader(0) + , mFragShader(0) +{ + +} + +Shader::~Shader() +{ + +} + +bool Shader::Load(const std::string& name) +{ + // Compile vertex and pixel shaders + if (!CompileShader(name + ".vert", + GL_VERTEX_SHADER, + mVertexShader) || + !CompileShader(name + ".frag", + GL_FRAGMENT_SHADER, + mFragShader)) + { + return false; + } + + // Now create a shader program that + // links together the vertex/frag shaders + mShaderProgram = glCreateProgram(); + glAttachShader(mShaderProgram, mVertexShader); + glAttachShader(mShaderProgram, mFragShader); + glLinkProgram(mShaderProgram); + + // Verify that the program linked successfully + if (!IsValidProgram()) + { + return false; + } + + return true; +} + +void Shader::Unload() +{ + // Delete the program/shaders + glDeleteProgram(mShaderProgram); + glDeleteShader(mVertexShader); + glDeleteShader(mFragShader); +} + +void Shader::SetActive() +{ + // Set this program as the active one + glUseProgram(mShaderProgram); +} + +void Shader::SetMatrixUniform(const char* name, const Matrix4& matrix) +{ + // Find the uniform by this name + GLuint loc = glGetUniformLocation(mShaderProgram, name); + // Send the matrix data to the uniform + glUniformMatrix4fv(loc, 1, GL_TRUE, matrix.GetAsFloatPtr()); +} + +void Shader::SetVectorUniform(const char* name, const Vector3& vector) +{ + GLuint loc = glGetUniformLocation(mShaderProgram, name); + // Send the vector data + glUniform3fv(loc, 1, vector.GetAsFloatPtr()); +} + +void Shader::SetFloatUniform(const char* name, float value) +{ + GLuint loc = glGetUniformLocation(mShaderProgram, name); + // Send the float data + glUniform1f(loc, value); +} + +bool Shader::CompileShader(const std::string& fileName, + GLenum shaderType, + GLuint& outShader) +{ + // Open file + std::ifstream shaderFile(fileName); + if (shaderFile.is_open()) + { + // Read all of the text into a string + std::stringstream sstream; + sstream << shaderFile.rdbuf(); + std::string contents = sstream.str(); + const char* contentsChar = contents.c_str(); + + // Create a shader of the specified type + outShader = glCreateShader(shaderType); + // Set the source characters and try to compile + glShaderSource(outShader, 1, &(contentsChar), nullptr); + glCompileShader(outShader); + + if (!IsCompiled(outShader)) + { + SDL_Log("Failed to compile shader %s", fileName.c_str()); + return false; + } + } + else + { + SDL_Log("Shader file not found: %s", fileName.c_str()); + return false; + } + + return true; +} + +bool Shader::IsCompiled(GLuint shader) +{ + GLint status; + // Query the compile status + glGetShaderiv(shader, GL_COMPILE_STATUS, &status); + + if (status != GL_TRUE) + { + char buffer[512]; + memset(buffer, 0, 512); + glGetShaderInfoLog(shader, 511, nullptr, buffer); + SDL_Log("GLSL Compile Failed:\n%s", buffer); + return false; + } + + return true; +} + +bool Shader::IsValidProgram() +{ + + GLint status; + // Query the link status + glGetProgramiv(mShaderProgram, GL_LINK_STATUS, &status); + if (status != GL_TRUE) + { + char buffer[512]; + memset(buffer, 0, 512); + glGetProgramInfoLog(mShaderProgram, 511, nullptr, buffer); + SDL_Log("GLSL Link Status:\n%s", buffer); + return false; + } + + return true; +} diff --git a/Chapter06/Shader.h b/Chapter06/Shader.h new file mode 100644 index 00000000..3e0f81a8 --- /dev/null +++ b/Chapter06/Shader.h @@ -0,0 +1,46 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include +#include +#include "Math.h" + +class Shader +{ +public: + Shader(); + ~Shader(); + // Load shader of the specified name, excluding + // the .frag/.vert extension + bool Load(const std::string& name); + void Unload(); + // Set this as the active shader program + void SetActive(); + // Sets a Matrix uniform + void SetMatrixUniform(const char* name, const Matrix4& matrix); + // Sets a Vector3 uniform + void SetVectorUniform(const char* name, const Vector3& vector); + // Sets a float uniform + void SetFloatUniform(const char* name, float value); +private: + // Tries to compile the specified shader + bool CompileShader(const std::string& fileName, + GLenum shaderType, + GLuint& outShader); + + // Tests whether shader compiled successfully + bool IsCompiled(GLuint shader); + // Tests whether vertex/fragment programs link + bool IsValidProgram(); +private: + // Store the shader object IDs + GLuint mVertexShader; + GLuint mFragShader; + GLuint mShaderProgram; +}; diff --git a/Chapter06/Shaders/BasicMesh.frag b/Chapter06/Shaders/BasicMesh.frag new file mode 100644 index 00000000..b1bd6105 --- /dev/null +++ b/Chapter06/Shaders/BasicMesh.frag @@ -0,0 +1,25 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +// Request GLSL 3.3 +#version 330 + +// Tex coord input from vertex shader +in vec2 fragTexCoord; + +// This corresponds to the output color to the color buffer +out vec4 outColor; + +// This is used for the texture sampling +uniform sampler2D uTexture; + +void main() +{ + // Sample color from texture + outColor = texture(uTexture, fragTexCoord); +} diff --git a/Chapter06/Shaders/BasicMesh.vert b/Chapter06/Shaders/BasicMesh.vert new file mode 100644 index 00000000..428db6fa --- /dev/null +++ b/Chapter06/Shaders/BasicMesh.vert @@ -0,0 +1,33 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +// Request GLSL 3.3 +#version 330 + +// Uniforms for world transform and view-proj +uniform mat4 uWorldTransform; +uniform mat4 uViewProj; + +// Attribute 0 is position, 1 is normal, 2 is tex coords. +layout(location = 0) in vec3 inPosition; +layout(location = 1) in vec3 inNormal; +layout(location = 2) in vec2 inTexCoord; + +// Any vertex outputs (other than position) +out vec2 fragTexCoord; + +void main() +{ + // Convert position to homogeneous coordinates + vec4 pos = vec4(inPosition, 1.0); + // Transform to position world space, then clip space + gl_Position = pos * uWorldTransform * uViewProj; + + // Pass along the texture coordinate to frag shader + fragTexCoord = inTexCoord; +} diff --git a/Chapter06/Shaders/Phong.frag b/Chapter06/Shaders/Phong.frag new file mode 100644 index 00000000..4b334fe0 --- /dev/null +++ b/Chapter06/Shaders/Phong.frag @@ -0,0 +1,71 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +// Request GLSL 3.3 +#version 330 + +// Inputs from vertex shader +// Tex coord +in vec2 fragTexCoord; +// Normal (in world space) +in vec3 fragNormal; +// Position (in world space) +in vec3 fragWorldPos; + +// This corresponds to the output color to the color buffer +out vec4 outColor; + +// This is used for the texture sampling +uniform sampler2D uTexture; + +// Create a struct for directional light +struct DirectionalLight +{ + // Direction of light + vec3 mDirection; + // Diffuse color + vec3 mDiffuseColor; + // Specular color + vec3 mSpecColor; +}; + +// Uniforms for lighting +// Camera position (in world space) +uniform vec3 uCameraPos; +// Specular power for this surface +uniform float uSpecPower; +// Ambient light level +uniform vec3 uAmbientLight; + +// Directional Light +uniform DirectionalLight uDirLight; + +void main() +{ + // Surface normal + vec3 N = normalize(fragNormal); + // Vector from surface to light + vec3 L = normalize(-uDirLight.mDirection); + // Vector from surface to camera + vec3 V = normalize(uCameraPos - fragWorldPos); + // Reflection of -L about N + vec3 R = normalize(reflect(-L, N)); + + // Compute phong reflection + vec3 Phong = uAmbientLight; + float NdotL = dot(N, L); + if (NdotL > 0) + { + vec3 Diffuse = uDirLight.mDiffuseColor * NdotL; + vec3 Specular = uDirLight.mSpecColor * pow(max(0.0, dot(R, V)), uSpecPower); + Phong += Diffuse + Specular; + } + + // Final color is texture color times phong light (alpha = 1) + outColor = texture(uTexture, fragTexCoord) * vec4(Phong, 1.0f); +} diff --git a/Chapter06/Shaders/Phong.vert b/Chapter06/Shaders/Phong.vert new file mode 100644 index 00000000..b88067e2 --- /dev/null +++ b/Chapter06/Shaders/Phong.vert @@ -0,0 +1,44 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +// Request GLSL 3.3 +#version 330 + +// Uniforms for world transform and view-proj +uniform mat4 uWorldTransform; +uniform mat4 uViewProj; + +// Attribute 0 is position, 1 is normal, 2 is tex coords. +layout(location = 0) in vec3 inPosition; +layout(location = 1) in vec3 inNormal; +layout(location = 2) in vec2 inTexCoord; + +// Any vertex outputs (other than position) +out vec2 fragTexCoord; +// Normal (in world space) +out vec3 fragNormal; +// Position (in world space) +out vec3 fragWorldPos; + +void main() +{ + // Convert position to homogeneous coordinates + vec4 pos = vec4(inPosition, 1.0); + // Transform position to world space + pos = pos * uWorldTransform; + // Save world position + fragWorldPos = pos.xyz; + // Transform to clip space + gl_Position = pos * uViewProj; + + // Transform normal into world space (w = 0) + fragNormal = (vec4(inNormal, 0.0f) * uWorldTransform).xyz; + + // Pass along the texture coordinate to frag shader + fragTexCoord = inTexCoord; +} diff --git a/Chapter06/Shaders/Sprite.frag b/Chapter06/Shaders/Sprite.frag new file mode 100644 index 00000000..b1bd6105 --- /dev/null +++ b/Chapter06/Shaders/Sprite.frag @@ -0,0 +1,25 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +// Request GLSL 3.3 +#version 330 + +// Tex coord input from vertex shader +in vec2 fragTexCoord; + +// This corresponds to the output color to the color buffer +out vec4 outColor; + +// This is used for the texture sampling +uniform sampler2D uTexture; + +void main() +{ + // Sample color from texture + outColor = texture(uTexture, fragTexCoord); +} diff --git a/Chapter06/Shaders/Sprite.vert b/Chapter06/Shaders/Sprite.vert new file mode 100644 index 00000000..428db6fa --- /dev/null +++ b/Chapter06/Shaders/Sprite.vert @@ -0,0 +1,33 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +// Request GLSL 3.3 +#version 330 + +// Uniforms for world transform and view-proj +uniform mat4 uWorldTransform; +uniform mat4 uViewProj; + +// Attribute 0 is position, 1 is normal, 2 is tex coords. +layout(location = 0) in vec3 inPosition; +layout(location = 1) in vec3 inNormal; +layout(location = 2) in vec2 inTexCoord; + +// Any vertex outputs (other than position) +out vec2 fragTexCoord; + +void main() +{ + // Convert position to homogeneous coordinates + vec4 pos = vec4(inPosition, 1.0); + // Transform to position world space, then clip space + gl_Position = pos * uWorldTransform * uViewProj; + + // Pass along the texture coordinate to frag shader + fragTexCoord = inTexCoord; +} diff --git a/Chapter06/SpriteComponent.cpp b/Chapter06/SpriteComponent.cpp new file mode 100644 index 00000000..e6ad2a71 --- /dev/null +++ b/Chapter06/SpriteComponent.cpp @@ -0,0 +1,61 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "SpriteComponent.h" +#include "Texture.h" +#include "Shader.h" +#include "Actor.h" +#include "Game.h" +#include "Renderer.h" + +SpriteComponent::SpriteComponent(Actor* owner, int drawOrder) + :Component(owner) + ,mTexture(nullptr) + ,mDrawOrder(drawOrder) + ,mTexWidth(0) + ,mTexHeight(0) +{ + mOwner->GetGame()->GetRenderer()->AddSprite(this); +} + +SpriteComponent::~SpriteComponent() +{ + mOwner->GetGame()->GetRenderer()->RemoveSprite(this); +} + +void SpriteComponent::Draw(Shader* shader) +{ + if (mTexture) + { + // Scale the quad by the width/height of texture + Matrix4 scaleMat = Matrix4::CreateScale( + static_cast(mTexWidth), + static_cast(mTexHeight), + 1.0f); + + Matrix4 world = scaleMat * mOwner->GetWorldTransform(); + + // Since all sprites use the same shader/vertices, + // the game first sets them active before any sprite draws + + // Set world transform + shader->SetMatrixUniform("uWorldTransform", world); + // Set current texture + mTexture->SetActive(); + // Draw quad + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, nullptr); + } +} + +void SpriteComponent::SetTexture(Texture* texture) +{ + mTexture = texture; + // Set width/height + mTexWidth = texture->GetWidth(); + mTexHeight = texture->GetHeight(); +} diff --git a/Chapter06/SpriteComponent.h b/Chapter06/SpriteComponent.h new file mode 100644 index 00000000..4298e0fb --- /dev/null +++ b/Chapter06/SpriteComponent.h @@ -0,0 +1,30 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +#include "Component.h" +#include "SDL/SDL.h" +class SpriteComponent : public Component +{ +public: + // (Lower draw order corresponds with further back) + SpriteComponent(class Actor* owner, int drawOrder = 100); + ~SpriteComponent(); + + virtual void Draw(class Shader* shader); + virtual void SetTexture(class Texture* texture); + + int GetDrawOrder() const { return mDrawOrder; } + int GetTexHeight() const { return mTexHeight; } + int GetTexWidth() const { return mTexWidth; } +protected: + class Texture* mTexture; + int mDrawOrder; + int mTexWidth; + int mTexHeight; +}; diff --git a/Chapter06/Texture.cpp b/Chapter06/Texture.cpp new file mode 100644 index 00000000..9c2d2070 --- /dev/null +++ b/Chapter06/Texture.cpp @@ -0,0 +1,69 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "Texture.h" +#include +#include +#include + +Texture::Texture() +:mTextureID(0) +,mWidth(0) +,mHeight(0) +{ + +} + +Texture::~Texture() +{ + +} + +bool Texture::Load(const std::string& fileName) +{ + int channels = 0; + + unsigned char* image = SOIL_load_image(fileName.c_str(), + &mWidth, &mHeight, &channels, SOIL_LOAD_AUTO); + + if (image == nullptr) + { + SDL_Log("SOIL failed to load image %s: %s", fileName.c_str(), SOIL_last_result()); + return false; + } + + int format = GL_RGB; + if (channels == 4) + { + format = GL_RGBA; + } + + glGenTextures(1, &mTextureID); + glBindTexture(GL_TEXTURE_2D, mTextureID); + + glTexImage2D(GL_TEXTURE_2D, 0, format, mWidth, mHeight, 0, format, + GL_UNSIGNED_BYTE, image); + + SOIL_free_image_data(image); + + // Enable linear filtering + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + return true; +} + +void Texture::Unload() +{ + glDeleteTextures(1, &mTextureID); +} + +void Texture::SetActive() +{ + glBindTexture(GL_TEXTURE_2D, mTextureID); +} diff --git a/Chapter06/Texture.h b/Chapter06/Texture.h new file mode 100644 index 00000000..07721267 --- /dev/null +++ b/Chapter06/Texture.h @@ -0,0 +1,28 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include + +class Texture +{ +public: + Texture(); + ~Texture(); + + bool Load(const std::string& fileName); + void Unload(); + + void SetActive(); + + int GetWidth() const { return mWidth; } + int GetHeight() const { return mHeight; } +private: + unsigned int mTextureID; + int mWidth; + int mHeight; +}; diff --git a/Chapter06/VertexArray.cpp b/Chapter06/VertexArray.cpp new file mode 100644 index 00000000..755b224b --- /dev/null +++ b/Chapter06/VertexArray.cpp @@ -0,0 +1,57 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#include "VertexArray.h" +#include + +VertexArray::VertexArray(const float* verts, unsigned int numVerts, + const unsigned int* indices, unsigned int numIndices) + :mNumVerts(numVerts) + ,mNumIndices(numIndices) +{ + // Create vertex array + glGenVertexArrays(1, &mVertexArray); + glBindVertexArray(mVertexArray); + + // Create vertex buffer + glGenBuffers(1, &mVertexBuffer); + glBindBuffer(GL_ARRAY_BUFFER, mVertexBuffer); + glBufferData(GL_ARRAY_BUFFER, numVerts * 8 * sizeof(float), verts, GL_STATIC_DRAW); + + // Create index buffer + glGenBuffers(1, &mIndexBuffer); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mIndexBuffer); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, numIndices * sizeof(GLuint), indices, GL_STATIC_DRAW); + + // Specify the vertex attributes + // (For now, assume one vertex format) + // Position is 3 floats + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), 0); + // Normal is 3 floats + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), + reinterpret_cast(sizeof(float) * 3)); + // Texture coordinates is 2 floats + glEnableVertexAttribArray(2); + glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), + reinterpret_cast(sizeof(float) * 6)); +} + +VertexArray::~VertexArray() +{ + glDeleteBuffers(1, &mVertexBuffer); + glDeleteBuffers(1, &mIndexBuffer); + glDeleteVertexArrays(1, &mVertexArray); +} + +void VertexArray::SetActive() +{ + glBindVertexArray(mVertexArray); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mIndexBuffer); +} diff --git a/Chapter06/VertexArray.h b/Chapter06/VertexArray.h new file mode 100644 index 00000000..a2feb52a --- /dev/null +++ b/Chapter06/VertexArray.h @@ -0,0 +1,26 @@ +// ---------------------------------------------------------------- +// From Game Programming in C++ by Sanjay Madhav +// Copyright (C) 2017 Sanjay Madhav. All rights reserved. +// +// Released under the BSD License +// See LICENSE.txt for full details. +// ---------------------------------------------------------------- + +#pragma once +class VertexArray +{ +public: + VertexArray(const float* verts, unsigned int numVerts, + const unsigned int* indices, unsigned int numIndices); + ~VertexArray(); + + void SetActive(); + unsigned int GetNumIndices() const { return mNumIndices; } + unsigned int GetNumVerts() const { return mNumVerts; } +private: + unsigned int mNumVerts; + unsigned int mNumIndices; + unsigned int mVertexBuffer; + unsigned int mIndexBuffer; + unsigned int mVertexArray; +}; \ No newline at end of file From a4c10bd9430a7939f4553e53b2418d7a4965c740 Mon Sep 17 00:00:00 2001 From: Sanjay Madhav Date: Tue, 19 Dec 2017 15:19:15 -0800 Subject: [PATCH 2/4] Comments/circle component --- Chapter06/Actor.cpp | 2 +- Chapter06/Actor.h | 2 +- Chapter06/CameraActor.cpp | 4 ++-- Chapter06/CameraActor.h | 4 ++-- Chapter06/CircleComponent.cpp | 19 ++++++++++++++--- Chapter06/CircleComponent.h | 10 +++++---- Chapter06/CollisionComponent.cpp | 20 ------------------ Chapter06/CollisionComponent.h | 17 ---------------- Chapter06/Component.cpp | 2 +- Chapter06/Component.h | 2 +- Chapter06/Game.cpp | 2 +- Chapter06/Game.h | 2 +- Chapter06/Game.vcxproj | 3 +-- Chapter06/Game.vcxproj.filters | 6 ------ Chapter06/Math.cpp | 35 ++++++++++++++++---------------- Chapter06/Math.h | 2 +- Chapter06/Mesh.cpp | 2 +- Chapter06/Mesh.h | 2 +- Chapter06/MeshComponent.cpp | 4 ++-- Chapter06/MeshComponent.h | 4 ++-- Chapter06/MoveComponent.cpp | 4 ++-- Chapter06/MoveComponent.h | 4 ++-- Chapter06/PlaneActor.cpp | 2 +- Chapter06/PlaneActor.h | 2 +- Chapter06/Renderer.cpp | 2 +- Chapter06/Renderer.h | 2 +- Chapter06/Shader.cpp | 4 ++-- Chapter06/Shader.h | 4 ++-- Chapter06/SpriteComponent.cpp | 2 +- Chapter06/SpriteComponent.h | 2 +- Chapter06/Texture.cpp | 4 ++-- Chapter06/Texture.h | 4 ++-- Chapter06/VertexArray.cpp | 4 ++-- Chapter06/VertexArray.h | 4 ++-- 34 files changed, 79 insertions(+), 109 deletions(-) delete mode 100644 Chapter06/CollisionComponent.cpp delete mode 100644 Chapter06/CollisionComponent.h diff --git a/Chapter06/Actor.cpp b/Chapter06/Actor.cpp index b10a5a1a..ec9ec3b9 100644 --- a/Chapter06/Actor.cpp +++ b/Chapter06/Actor.cpp @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "Actor.h" diff --git a/Chapter06/Actor.h b/Chapter06/Actor.h index cc6f746c..f381dd2b 100644 --- a/Chapter06/Actor.h +++ b/Chapter06/Actor.h @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/CameraActor.cpp b/Chapter06/CameraActor.cpp index 33334f63..885f26ac 100644 --- a/Chapter06/CameraActor.cpp +++ b/Chapter06/CameraActor.cpp @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "CameraActor.h" diff --git a/Chapter06/CameraActor.h b/Chapter06/CameraActor.h index 01c3eeca..bb9376fb 100644 --- a/Chapter06/CameraActor.h +++ b/Chapter06/CameraActor.h @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/CircleComponent.cpp b/Chapter06/CircleComponent.cpp index 626d5090..4e40d109 100644 --- a/Chapter06/CircleComponent.cpp +++ b/Chapter06/CircleComponent.cpp @@ -1,16 +1,16 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "CircleComponent.h" #include "Actor.h" CircleComponent::CircleComponent(class Actor* owner) -:CollisionComponent(owner) +:Component(owner) ,mRadius(0.0f) { @@ -25,3 +25,16 @@ float CircleComponent::GetRadius() const { return mOwner->GetScale() * mRadius; } + +bool Intersect(const CircleComponent& a, const CircleComponent& b) +{ + // Calculate distance squared + Vector3 diff = a.GetCenter() - b.GetCenter(); + float distSq = diff.LengthSq(); + + // Calculate sum of radii squared + float radiiSq = a.GetRadius() + b.GetRadius(); + radiiSq *= radiiSq; + + return distSq <= radiiSq; +} diff --git a/Chapter06/CircleComponent.h b/Chapter06/CircleComponent.h index b4114d4e..61c63ba9 100644 --- a/Chapter06/CircleComponent.h +++ b/Chapter06/CircleComponent.h @@ -1,16 +1,16 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once -#include "CollisionComponent.h" +#include "Component.h" #include "Math.h" -class CircleComponent : public CollisionComponent +class CircleComponent : public Component { public: CircleComponent(class Actor* owner); @@ -22,3 +22,5 @@ class CircleComponent : public CollisionComponent private: float mRadius; }; + +bool Intersect(const CircleComponent& a, const CircleComponent& b); diff --git a/Chapter06/CollisionComponent.cpp b/Chapter06/CollisionComponent.cpp deleted file mode 100644 index 79c626fc..00000000 --- a/Chapter06/CollisionComponent.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// ---------------------------------------------------------------- -// From Game Programming in C++ by Sanjay Madhav -// Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// -// Released under the BSD License -// See LICENSE.txt for full details. -// ---------------------------------------------------------------- - -#include "CollisionComponent.h" - -CollisionComponent::CollisionComponent(class Actor* owner,int updateOrder) -:Component(owner, updateOrder) -{ - -} - -CollisionComponent::~CollisionComponent() -{ - -} diff --git a/Chapter06/CollisionComponent.h b/Chapter06/CollisionComponent.h deleted file mode 100644 index 4074fa58..00000000 --- a/Chapter06/CollisionComponent.h +++ /dev/null @@ -1,17 +0,0 @@ -// ---------------------------------------------------------------- -// From Game Programming in C++ by Sanjay Madhav -// Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// -// Released under the BSD License -// See LICENSE.txt for full details. -// ---------------------------------------------------------------- - -#pragma once -#include "Component.h" -class CollisionComponent : public Component -{ -public: - CollisionComponent(class Actor* owner, int updateOrder = 100); - ~CollisionComponent(); -}; - diff --git a/Chapter06/Component.cpp b/Chapter06/Component.cpp index 9b345987..c4ed432d 100644 --- a/Chapter06/Component.cpp +++ b/Chapter06/Component.cpp @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "Component.h" diff --git a/Chapter06/Component.h b/Chapter06/Component.h index 26d6fb87..19e21f02 100644 --- a/Chapter06/Component.h +++ b/Chapter06/Component.h @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/Game.cpp b/Chapter06/Game.cpp index 40a53ec9..0cce9cb4 100644 --- a/Chapter06/Game.cpp +++ b/Chapter06/Game.cpp @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "Game.h" diff --git a/Chapter06/Game.h b/Chapter06/Game.h index 34546f7f..288a62fb 100644 --- a/Chapter06/Game.h +++ b/Chapter06/Game.h @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/Game.vcxproj b/Chapter06/Game.vcxproj index bc3c7d07..182b0c8f 100644 --- a/Chapter06/Game.vcxproj +++ b/Chapter06/Game.vcxproj @@ -14,7 +14,6 @@ - @@ -33,7 +32,6 @@ - @@ -59,6 +57,7 @@ {BC508D87-495F-4554-932D-DD68388B63CC} Win32Proj Game + 10.0.16299.0 diff --git a/Chapter06/Game.vcxproj.filters b/Chapter06/Game.vcxproj.filters index 6d53aa83..5a07708a 100644 --- a/Chapter06/Game.vcxproj.filters +++ b/Chapter06/Game.vcxproj.filters @@ -31,9 +31,6 @@ Source Files - - Source Files - Source Files @@ -81,9 +78,6 @@ Source Files - - Source Files - Source Files diff --git a/Chapter06/Math.cpp b/Chapter06/Math.cpp index 9e1b7932..a16e7261 100644 --- a/Chapter06/Math.cpp +++ b/Chapter06/Math.cpp @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "Math.h" @@ -99,12 +99,13 @@ Vector3 Vector3::Transform(const Vector3& v, const Quaternion& q) void Matrix4::Invert() { // Thanks slow math - float tmp[12]; /* temp array for pairs */ - float src[16]; /* array of transpose source matrix */ - float dst[16]; /* storage */ - float det; /* determinant */ - /* transpose matrix */ + // This is a really janky way to unroll everything... + float tmp[12]; + float src[16]; + float dst[16]; + float det; + // Transpose matrix // row 1 to col 1 src[0] = mat[0][0]; src[4] = mat[0][1]; @@ -129,13 +130,7 @@ void Matrix4::Invert() src[11] = mat[3][2]; src[15] = mat[3][3]; - // for (int i = 0; i < 4; i++) { - // src[i] = mat[i*4]; - // src[i + 4] = mat[i*4 + 1]; - // src[i + 8] = mat[i*4 + 2]; - // src[i + 12] = mat[i*4 + 3]; - // } - /* calculate pairs for first 8 elements (cofactors) */ + // Calculate cofactors tmp[0] = src[10] * src[15]; tmp[1] = src[11] * src[14]; tmp[2] = src[9] * src[15]; @@ -148,7 +143,7 @@ void Matrix4::Invert() tmp[9] = src[10] * src[12]; tmp[10] = src[8] * src[13]; tmp[11] = src[9] * src[12]; - /* calculate first 8 elements (cofactors) */ + dst[0] = tmp[0] * src[5] + tmp[3] * src[6] + tmp[4] * src[7]; dst[0] -= tmp[1] * src[5] + tmp[2] * src[6] + tmp[5] * src[7]; dst[1] = tmp[1] * src[4] + tmp[6] * src[6] + tmp[9] * src[7]; @@ -165,7 +160,7 @@ void Matrix4::Invert() dst[6] -= tmp[2] * src[0] + tmp[7] * src[1] + tmp[10] * src[3]; dst[7] = tmp[4] * src[0] + tmp[9] * src[1] + tmp[10] * src[2]; dst[7] -= tmp[5] * src[0] + tmp[8] * src[1] + tmp[11] * src[2]; - /* calculate pairs for second 8 elements (cofactors) */ + tmp[0] = src[2] * src[7]; tmp[1] = src[3] * src[6]; tmp[2] = src[1] * src[7]; @@ -178,7 +173,7 @@ void Matrix4::Invert() tmp[9] = src[2] * src[4]; tmp[10] = src[0] * src[5]; tmp[11] = src[1] * src[4]; - /* calculate second 8 elements (cofactors) */ + dst[8] = tmp[0] * src[13] + tmp[3] * src[14] + tmp[4] * src[15]; dst[8] -= tmp[1] * src[13] + tmp[2] * src[14] + tmp[5] * src[15]; dst[9] = tmp[1] * src[12] + tmp[6] * src[14] + tmp[9] * src[15]; @@ -195,12 +190,16 @@ void Matrix4::Invert() dst[14] -= tmp[10] * src[11] + tmp[2] * src[8] + tmp[7] * src[9]; dst[15] = tmp[10] * src[10] + tmp[4] * src[8] + tmp[9] * src[9]; dst[15] -= tmp[8] * src[9] + tmp[11] * src[10] + tmp[5] * src[8]; - /* calculate determinant */ + + // Calculate determinant det = src[0] * dst[0] + src[1] * dst[1] + src[2] * dst[2] + src[3] * dst[3]; - /* calculate matrix inverse */ + + // Inverse of matrix is divided by determinant det = 1 / det; for (int j = 0; j < 16; j++) + { dst[j] *= det; + } // Set it back for (int i = 0; i < 4; i++) diff --git a/Chapter06/Math.h b/Chapter06/Math.h index 51de3a26..752963f1 100644 --- a/Chapter06/Math.h +++ b/Chapter06/Math.h @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/Mesh.cpp b/Chapter06/Mesh.cpp index 556684e5..1673b2b2 100644 --- a/Chapter06/Mesh.cpp +++ b/Chapter06/Mesh.cpp @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "Mesh.h" diff --git a/Chapter06/Mesh.h b/Chapter06/Mesh.h index a3c93ad5..3c1b5a3e 100644 --- a/Chapter06/Mesh.h +++ b/Chapter06/Mesh.h @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/MeshComponent.cpp b/Chapter06/MeshComponent.cpp index 64064f7c..1f4cbdb2 100644 --- a/Chapter06/MeshComponent.cpp +++ b/Chapter06/MeshComponent.cpp @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "MeshComponent.h" diff --git a/Chapter06/MeshComponent.h b/Chapter06/MeshComponent.h index df4bacef..48765568 100644 --- a/Chapter06/MeshComponent.h +++ b/Chapter06/MeshComponent.h @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/MoveComponent.cpp b/Chapter06/MoveComponent.cpp index c7ce995e..5b51c6fc 100644 --- a/Chapter06/MoveComponent.cpp +++ b/Chapter06/MoveComponent.cpp @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "MoveComponent.h" diff --git a/Chapter06/MoveComponent.h b/Chapter06/MoveComponent.h index 11d18cb5..def7d389 100644 --- a/Chapter06/MoveComponent.h +++ b/Chapter06/MoveComponent.h @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/PlaneActor.cpp b/Chapter06/PlaneActor.cpp index 3744c5c2..5398ca4c 100644 --- a/Chapter06/PlaneActor.cpp +++ b/Chapter06/PlaneActor.cpp @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "PlaneActor.h" diff --git a/Chapter06/PlaneActor.h b/Chapter06/PlaneActor.h index 3185cc80..8187b64a 100644 --- a/Chapter06/PlaneActor.h +++ b/Chapter06/PlaneActor.h @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/Renderer.cpp b/Chapter06/Renderer.cpp index e6351e22..0e59ef07 100644 --- a/Chapter06/Renderer.cpp +++ b/Chapter06/Renderer.cpp @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "Renderer.h" diff --git a/Chapter06/Renderer.h b/Chapter06/Renderer.h index 613bb55f..12746df2 100644 --- a/Chapter06/Renderer.h +++ b/Chapter06/Renderer.h @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/Shader.cpp b/Chapter06/Shader.cpp index f4e67ee2..8c4c202a 100644 --- a/Chapter06/Shader.cpp +++ b/Chapter06/Shader.cpp @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "Shader.h" diff --git a/Chapter06/Shader.h b/Chapter06/Shader.h index 3e0f81a8..088d8c9c 100644 --- a/Chapter06/Shader.h +++ b/Chapter06/Shader.h @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/SpriteComponent.cpp b/Chapter06/SpriteComponent.cpp index e6ad2a71..eb7b77aa 100644 --- a/Chapter06/SpriteComponent.cpp +++ b/Chapter06/SpriteComponent.cpp @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "SpriteComponent.h" diff --git a/Chapter06/SpriteComponent.h b/Chapter06/SpriteComponent.h index 4298e0fb..6c5642f2 100644 --- a/Chapter06/SpriteComponent.h +++ b/Chapter06/SpriteComponent.h @@ -3,7 +3,7 @@ // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once diff --git a/Chapter06/Texture.cpp b/Chapter06/Texture.cpp index 9c2d2070..ddde35f0 100644 --- a/Chapter06/Texture.cpp +++ b/Chapter06/Texture.cpp @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "Texture.h" diff --git a/Chapter06/Texture.h b/Chapter06/Texture.h index 07721267..6c8892fd 100644 --- a/Chapter06/Texture.h +++ b/Chapter06/Texture.h @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include diff --git a/Chapter06/VertexArray.cpp b/Chapter06/VertexArray.cpp index 755b224b..24731ebc 100644 --- a/Chapter06/VertexArray.cpp +++ b/Chapter06/VertexArray.cpp @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #include "VertexArray.h" diff --git a/Chapter06/VertexArray.h b/Chapter06/VertexArray.h index a2feb52a..1cb92299 100644 --- a/Chapter06/VertexArray.h +++ b/Chapter06/VertexArray.h @@ -1,9 +1,9 @@ // ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. -// +// // Released under the BSD License -// See LICENSE.txt for full details. +// See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once From 75f5b512ebabcfd11e7d83e09a87e1b2c0dda352 Mon Sep 17 00:00:00 2001 From: Sanjay Madhav Date: Tue, 19 Dec 2017 16:14:05 -0800 Subject: [PATCH 3/4] Chapter 6 done (PC) --- Chapter06/Actor.cpp | 63 +++++++++++++++++++++++++++++++++------ Chapter06/Actor.h | 14 ++++++--- Chapter06/CameraActor.cpp | 2 +- Chapter06/CameraActor.h | 4 +-- Chapter06/Component.h | 6 ++++ Chapter06/Game.cpp | 42 ++++++++++++++++++++------ Chapter06/Game.h | 4 +++ Chapter06/Renderer.cpp | 25 +++++++++++----- Chapter06/Shader.cpp | 20 ++++++------- Chapter06/Shader.h | 5 ++-- Chapter06/VertexArray.cpp | 3 +- Chapter06/VertexArray.h | 5 ++++ 12 files changed, 146 insertions(+), 47 deletions(-) diff --git a/Chapter06/Actor.cpp b/Chapter06/Actor.cpp index ec9ec3b9..b3715cca 100644 --- a/Chapter06/Actor.cpp +++ b/Chapter06/Actor.cpp @@ -14,9 +14,10 @@ Actor::Actor(Game* game) :mState(EActive) ,mPosition(Vector3::Zero) - , mRotation(Quaternion::Identity) + ,mRotation(Quaternion::Identity) ,mScale(1.0f) ,mGame(game) + ,mRecomputeWorldTransform(true) { mGame->AddActor(this); } @@ -36,8 +37,12 @@ void Actor::Update(float deltaTime) { if (mState == EActive) { + ComputeWorldTransform(); + UpdateComponents(deltaTime); UpdateActor(deltaTime); + + ComputeWorldTransform(); } } @@ -53,20 +58,60 @@ void Actor::UpdateActor(float deltaTime) { } +void Actor::ProcessInput(const uint8_t* keyState) +{ + if (mState == EActive) + { + // First process input for components + for (auto comp : mComponents) + { + comp->ProcessInput(keyState); + } + + ActorInput(keyState); + } +} + +void Actor::ActorInput(const uint8_t* keyState) +{ +} + void Actor::ComputeWorldTransform() { - // Scale, then rotate, then translate - mWorldTransform = Matrix4::CreateScale(mScale); - mWorldTransform *= Matrix4::CreateFromQuaternion(mRotation); - mWorldTransform *= Matrix4::CreateTranslation(mPosition); + if (mRecomputeWorldTransform) + { + mRecomputeWorldTransform = false; + // Scale, then rotate, then translate + mWorldTransform = Matrix4::CreateScale(mScale); + mWorldTransform *= Matrix4::CreateFromQuaternion(mRotation); + mWorldTransform *= Matrix4::CreateTranslation(mPosition); + + // Inform components world transform updated + for (auto comp : mComponents) + { + comp->OnUpdateWorldTransform(); + } + } } void Actor::AddComponent(Component* component) { - mComponents.emplace_back(component); - std::sort(mComponents.begin(), mComponents.end(), [](Component* a, Component* b) { - return a->GetUpdateOrder() < b->GetUpdateOrder(); - }); + // Find the insertion point in the sorted vector + // (The first element with a order higher than me) + int myOrder = component->GetUpdateOrder(); + auto iter = mComponents.begin(); + for (; + iter != mComponents.end(); + ++iter) + { + if (myOrder < (*iter)->GetUpdateOrder()) + { + break; + } + } + + // Inserts element before position of iterator + mComponents.insert(iter, component); } void Actor::RemoveComponent(Component* component) diff --git a/Chapter06/Actor.h b/Chapter06/Actor.h index f381dd2b..05d6b1b6 100644 --- a/Chapter06/Actor.h +++ b/Chapter06/Actor.h @@ -9,6 +9,8 @@ #pragma once #include #include "Math.h" +#include + class Actor { public: @@ -28,16 +30,19 @@ class Actor void UpdateComponents(float deltaTime); // Any actor-specific update code (overridable) virtual void UpdateActor(float deltaTime); + + // ProcessInput function called from Game (not overridable) + void ProcessInput(const uint8_t* keyState); // Any actor-specific input code (overridable) - virtual void ProcessInput(const uint8_t* keys) { } + virtual void ActorInput(const uint8_t* keyState); // Getters/setters const Vector3& GetPosition() const { return mPosition; } - void SetPosition(const Vector3& pos) { mPosition = pos; ComputeWorldTransform(); } + void SetPosition(const Vector3& pos) { mPosition = pos; mRecomputeWorldTransform = true; } float GetScale() const { return mScale; } - void SetScale(float scale) { mScale = scale; ComputeWorldTransform(); } + void SetScale(float scale) { mScale = scale; mRecomputeWorldTransform = true; } const Quaternion& GetRotation() const { return mRotation; } - void SetRotation(const Quaternion& rotation) { mRotation = rotation; ComputeWorldTransform(); } + void SetRotation(const Quaternion& rotation) { mRotation = rotation; mRecomputeWorldTransform = true; } void ComputeWorldTransform(); const Matrix4& GetWorldTransform() const { return mWorldTransform; } @@ -62,6 +67,7 @@ class Actor Vector3 mPosition; Quaternion mRotation; float mScale; + bool mRecomputeWorldTransform; std::vector mComponents; class Game* mGame; diff --git a/Chapter06/CameraActor.cpp b/Chapter06/CameraActor.cpp index 885f26ac..5338b1bf 100644 --- a/Chapter06/CameraActor.cpp +++ b/Chapter06/CameraActor.cpp @@ -31,7 +31,7 @@ void CameraActor::UpdateActor(float deltaTime) GetGame()->GetRenderer()->SetViewMatrix(view); } -void CameraActor::ProcessInput(const uint8_t* keys) +void CameraActor::ActorInput(const uint8_t* keys) { float forwardSpeed = 0.0f; float angularSpeed = 0.0f; diff --git a/Chapter06/CameraActor.h b/Chapter06/CameraActor.h index bb9376fb..a7e3923c 100644 --- a/Chapter06/CameraActor.h +++ b/Chapter06/CameraActor.h @@ -15,7 +15,7 @@ class CameraActor : public Actor CameraActor(class Game* game); void UpdateActor(float deltaTime) override; - void ProcessInput(const uint8_t* keys) override; + void ActorInput(const uint8_t* keys) override; private: class MoveComponent* mMoveComp; -}; \ No newline at end of file +}; diff --git a/Chapter06/Component.h b/Chapter06/Component.h index 19e21f02..e2be424b 100644 --- a/Chapter06/Component.h +++ b/Chapter06/Component.h @@ -7,6 +7,8 @@ // ---------------------------------------------------------------- #pragma once +#include + class Component { public: @@ -17,6 +19,10 @@ class Component virtual ~Component(); // Update this component by delta time virtual void Update(float deltaTime); + // Process input for this component + virtual void ProcessInput(const uint8_t* keyState) {} + // Called when world transform changes + virtual void OnUpdateWorldTransform() { } int GetUpdateOrder() const { return mUpdateOrder; } protected: diff --git a/Chapter06/Game.cpp b/Chapter06/Game.cpp index 0cce9cb4..cf7e03a7 100644 --- a/Chapter06/Game.cpp +++ b/Chapter06/Game.cpp @@ -18,6 +18,7 @@ Game::Game() :mRenderer(nullptr) ,mIsRunning(true) +,mUpdatingActors(false) { } @@ -96,15 +97,21 @@ void Game::UpdateGame() } mTicksCount = SDL_GetTicks(); - // Make copy of actor vector - // (iterate over this in case new actors are created) - std::vector copy = mActors; - // Update all actors - for (auto actor : copy) + mUpdatingActors = true; + for (auto actor : mActors) { actor->Update(deltaTime); } + mUpdatingActors = false; + + // Move any pending actors to mActors + for (auto pending : mPendingActors) + { + pending->ComputeWorldTransform(); + mActors.emplace_back(pending); + } + mPendingActors.clear(); // Add any dead actors to a temp vector std::vector deadActors; @@ -116,8 +123,7 @@ void Game::UpdateGame() } } - // Delete any of the dead actors (which will - // remove them from mActors) + // Delete dead actors (which removes them from mActors) for (auto actor : deadActors) { delete actor; @@ -235,12 +241,30 @@ void Game::Shutdown() void Game::AddActor(Actor* actor) { - mActors.emplace_back(actor); + // If we're updating actors, need to add to pending + if (mUpdatingActors) + { + mPendingActors.emplace_back(actor); + } + else + { + mActors.emplace_back(actor); + } } void Game::RemoveActor(Actor* actor) { - auto iter = std::find(mActors.begin(), mActors.end(), actor); + // Is it in pending actors? + auto iter = std::find(mPendingActors.begin(), mPendingActors.end(), actor); + if (iter != mPendingActors.end()) + { + // Swap to end of vector and pop off (avoid erase copies) + std::iter_swap(iter, mPendingActors.end() - 1); + mPendingActors.pop_back(); + } + + // Is it in actors? + iter = std::find(mActors.begin(), mActors.end(), actor); if (iter != mActors.end()) { // Swap to end of vector and pop off (avoid erase copies) diff --git a/Chapter06/Game.h b/Chapter06/Game.h index 288a62fb..6f567720 100644 --- a/Chapter06/Game.h +++ b/Chapter06/Game.h @@ -34,11 +34,15 @@ class Game // All the actors in the game std::vector mActors; + // Any pending actors + std::vector mPendingActors; class Renderer* mRenderer; Uint32 mTicksCount; bool mIsRunning; + // Track if we're updating actors right now + bool mUpdatingActors; // Game-specific code class CameraActor* mCameraActor; diff --git a/Chapter06/Renderer.cpp b/Chapter06/Renderer.cpp index 0e59ef07..43a25fe8 100644 --- a/Chapter06/Renderer.cpp +++ b/Chapter06/Renderer.cpp @@ -159,11 +159,22 @@ void Renderer::Draw() void Renderer::AddSprite(SpriteComponent* sprite) { - mSprites.emplace_back(sprite); - // Resort sprites by draw order - std::sort(mSprites.begin(), mSprites.end(), [](SpriteComponent* a, SpriteComponent* b) { - return a->GetDrawOrder() < b->GetDrawOrder(); - }); + // Find the insertion point in the sorted vector + // (The first element with a higher draw order than me) + int myDrawOrder = sprite->GetDrawOrder(); + auto iter = mSprites.begin(); + for (; + iter != mSprites.end(); + ++iter) + { + if (myDrawOrder < (*iter)->GetDrawOrder()) + { + break; + } + } + + // Inserts element before position of iterator + mSprites.insert(iter, sprite); } void Renderer::RemoveSprite(SpriteComponent* sprite) @@ -235,7 +246,7 @@ bool Renderer::LoadShaders() { // Create sprite shader mSpriteShader = new Shader(); - if (!mSpriteShader->Load("Shaders/Sprite")) + if (!mSpriteShader->Load("Shaders/Sprite.vert", "Shaders/Sprite.frag")) { return false; } @@ -247,7 +258,7 @@ bool Renderer::LoadShaders() // Create basic mesh shader mMeshShader = new Shader(); - if (!mMeshShader->Load("Shaders/Phong")) + if (!mMeshShader->Load("Shaders/Phong.vert", "Shaders/Phong.frag")) { return false; } diff --git a/Chapter06/Shader.cpp b/Chapter06/Shader.cpp index 8c4c202a..cae3ac07 100644 --- a/Chapter06/Shader.cpp +++ b/Chapter06/Shader.cpp @@ -25,15 +25,15 @@ Shader::~Shader() } -bool Shader::Load(const std::string& name) +bool Shader::Load(const std::string& vertName, const std::string& fragName) { // Compile vertex and pixel shaders - if (!CompileShader(name + ".vert", - GL_VERTEX_SHADER, - mVertexShader) || - !CompileShader(name + ".frag", - GL_FRAGMENT_SHADER, - mFragShader)) + if (!CompileShader(vertName, + GL_VERTEX_SHADER, + mVertexShader) || + !CompileShader(fragName, + GL_FRAGMENT_SHADER, + mFragShader)) { return false; } @@ -91,14 +91,14 @@ void Shader::SetFloatUniform(const char* name, float value) } bool Shader::CompileShader(const std::string& fileName, - GLenum shaderType, - GLuint& outShader) + GLenum shaderType, + GLuint& outShader) { // Open file std::ifstream shaderFile(fileName); if (shaderFile.is_open()) { - // Read all of the text into a string + // Read all the text into a string std::stringstream sstream; sstream << shaderFile.rdbuf(); std::string contents = sstream.str(); diff --git a/Chapter06/Shader.h b/Chapter06/Shader.h index 088d8c9c..929c9e41 100644 --- a/Chapter06/Shader.h +++ b/Chapter06/Shader.h @@ -16,9 +16,8 @@ class Shader public: Shader(); ~Shader(); - // Load shader of the specified name, excluding - // the .frag/.vert extension - bool Load(const std::string& name); + // Load the vertex/fragment shaders with the given names + bool Load(const std::string& vertName, const std::string& fragName); void Unload(); // Set this as the active shader program void SetActive(); diff --git a/Chapter06/VertexArray.cpp b/Chapter06/VertexArray.cpp index 24731ebc..faddcf6c 100644 --- a/Chapter06/VertexArray.cpp +++ b/Chapter06/VertexArray.cpp @@ -26,7 +26,7 @@ VertexArray::VertexArray(const float* verts, unsigned int numVerts, // Create index buffer glGenBuffers(1, &mIndexBuffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mIndexBuffer); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, numIndices * sizeof(GLuint), indices, GL_STATIC_DRAW); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, numIndices * sizeof(unsigned int), indices, GL_STATIC_DRAW); // Specify the vertex attributes // (For now, assume one vertex format) @@ -53,5 +53,4 @@ VertexArray::~VertexArray() void VertexArray::SetActive() { glBindVertexArray(mVertexArray); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mIndexBuffer); } diff --git a/Chapter06/VertexArray.h b/Chapter06/VertexArray.h index 1cb92299..5deddc4d 100644 --- a/Chapter06/VertexArray.h +++ b/Chapter06/VertexArray.h @@ -18,9 +18,14 @@ class VertexArray unsigned int GetNumIndices() const { return mNumIndices; } unsigned int GetNumVerts() const { return mNumVerts; } private: + // How many vertices in the vertex buffer? unsigned int mNumVerts; + // How many indices in the index buffer unsigned int mNumIndices; + // OpenGL ID of the vertex buffer unsigned int mVertexBuffer; + // OpenGL ID of the index buffer unsigned int mIndexBuffer; + // OpenGL ID of the vertex array object unsigned int mVertexArray; }; \ No newline at end of file From 2d4b46686c1ee04401b72de8c46cace5579df7a1 Mon Sep 17 00:00:00 2001 From: Sanjay Madhav Date: Tue, 19 Dec 2017 18:22:25 -0600 Subject: [PATCH 4/4] Chapter 6 (mac) --- .../project.pbxproj | 44 +++++++++++-------- .../contents.xcworkspacedata | 2 +- .../xcshareddata/xcschemes/Game-mac.xcscheme | 12 ++--- 3 files changed, 33 insertions(+), 25 deletions(-) rename Chapter06/{Chapter7-mac.xcodeproj => Chapter06-mac.xcodeproj}/project.pbxproj (96%) rename Chapter06/{Chapter7-mac.xcodeproj => Chapter06-mac.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (52%) rename Chapter06/{Chapter7-mac.xcodeproj => Chapter06-mac.xcodeproj}/xcshareddata/xcschemes/Game-mac.xcscheme (89%) diff --git a/Chapter06/Chapter7-mac.xcodeproj/project.pbxproj b/Chapter06/Chapter06-mac.xcodeproj/project.pbxproj similarity index 96% rename from Chapter06/Chapter7-mac.xcodeproj/project.pbxproj rename to Chapter06/Chapter06-mac.xcodeproj/project.pbxproj index 6c774b07..a5b2a6ce 100644 --- a/Chapter06/Chapter7-mac.xcodeproj/project.pbxproj +++ b/Chapter06/Chapter06-mac.xcodeproj/project.pbxproj @@ -16,7 +16,6 @@ 9223C47E1F009428009A94D7 /* Math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4721F009428009A94D7 /* Math.cpp */; }; 9223C4801F009428009A94D7 /* SpriteComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4761F009428009A94D7 /* SpriteComponent.cpp */; }; 9223C48B1F0CA3CE009A94D7 /* MoveComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C48A1F0CA3CE009A94D7 /* MoveComponent.cpp */; }; - 9223C4941F0CA766009A94D7 /* CollisionComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4901F0CA766009A94D7 /* CollisionComponent.cpp */; }; 9223C4951F0CA766009A94D7 /* CircleComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9223C4911F0CA766009A94D7 /* CircleComponent.cpp */; }; 92279F471F17101E00D5F4B9 /* VertexArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92279F451F17101E00D5F4B9 /* VertexArray.cpp */; }; 92CF0D721F3BBBE50086A0F3 /* CameraActor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92CF0D681F3BBBE50086A0F3 /* CameraActor.cpp */; }; @@ -47,9 +46,7 @@ 9223C4771F009428009A94D7 /* SpriteComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpriteComponent.h; sourceTree = ""; }; 9223C48A1F0CA3CE009A94D7 /* MoveComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MoveComponent.cpp; sourceTree = ""; }; 9223C48C1F0CA3D4009A94D7 /* MoveComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoveComponent.h; sourceTree = ""; }; - 9223C4901F0CA766009A94D7 /* CollisionComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CollisionComponent.cpp; sourceTree = ""; }; 9223C4911F0CA766009A94D7 /* CircleComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CircleComponent.cpp; sourceTree = ""; }; - 9223C4921F0CA766009A94D7 /* CollisionComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollisionComponent.h; sourceTree = ""; }; 9223C4931F0CA766009A94D7 /* CircleComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleComponent.h; sourceTree = ""; }; 92279F451F17101E00D5F4B9 /* VertexArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VertexArray.cpp; sourceTree = ""; }; 92279F461F17101E00D5F4B9 /* VertexArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VertexArray.h; sourceTree = ""; }; @@ -84,31 +81,29 @@ 92E46DEE1B634EA30035CD21 = { isa = PBXGroup; children = ( - 92CF0D681F3BBBE50086A0F3 /* CameraActor.cpp */, - 92CF0D691F3BBBE50086A0F3 /* CameraActor.h */, - 92CF0D6A1F3BBBE50086A0F3 /* Mesh.cpp */, - 92CF0D6B1F3BBBE50086A0F3 /* Mesh.h */, - 92CF0D6C1F3BBBE50086A0F3 /* MeshComponent.cpp */, - 92CF0D6D1F3BBBE50086A0F3 /* MeshComponent.h */, - 92CF0D6E1F3BBBE50086A0F3 /* PlaneActor.cpp */, - 92CF0D6F1F3BBBE50086A0F3 /* PlaneActor.h */, - 92CF0D701F3BBBE50086A0F3 /* Renderer.cpp */, - 92CF0D711F3BBBE50086A0F3 /* Renderer.h */, 9223C4681F009428009A94D7 /* Actor.cpp */, 9223C4691F009428009A94D7 /* Actor.h */, + 92CF0D681F3BBBE50086A0F3 /* CameraActor.cpp */, + 92CF0D691F3BBBE50086A0F3 /* CameraActor.h */, 9223C46E1F009428009A94D7 /* Component.cpp */, 9223C46F1F009428009A94D7 /* Component.h */, 9223C4911F0CA766009A94D7 /* CircleComponent.cpp */, 9223C4931F0CA766009A94D7 /* CircleComponent.h */, - 9223C4901F0CA766009A94D7 /* CollisionComponent.cpp */, - 9223C4921F0CA766009A94D7 /* CollisionComponent.h */, 9223C4671F009428009A94D7 /* Game.cpp */, 9223C4701F009428009A94D7 /* Game.h */, 9223C4711F009428009A94D7 /* Main.cpp */, 9223C4721F009428009A94D7 /* Math.cpp */, 9223C4731F009428009A94D7 /* Math.h */, + 92CF0D6A1F3BBBE50086A0F3 /* Mesh.cpp */, + 92CF0D6B1F3BBBE50086A0F3 /* Mesh.h */, + 92CF0D6C1F3BBBE50086A0F3 /* MeshComponent.cpp */, + 92CF0D6D1F3BBBE50086A0F3 /* MeshComponent.h */, 9223C48A1F0CA3CE009A94D7 /* MoveComponent.cpp */, 9223C48C1F0CA3D4009A94D7 /* MoveComponent.h */, + 92CF0D6E1F3BBBE50086A0F3 /* PlaneActor.cpp */, + 92CF0D6F1F3BBBE50086A0F3 /* PlaneActor.h */, + 92CF0D701F3BBBE50086A0F3 /* Renderer.cpp */, + 92CF0D711F3BBBE50086A0F3 /* Renderer.h */, 9206FDC71F140D40005078A2 /* Shader.cpp */, 9206FDC81F140D40005078A2 /* Shader.h */, 9223C4761F009428009A94D7 /* SpriteComponent.cpp */, @@ -158,7 +153,7 @@ 92E46DEF1B634EA30035CD21 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0830; + LastUpgradeCheck = 0920; ORGANIZATIONNAME = "Sanjay Madhav"; TargetAttributes = { 92E46DF61B634EA30035CD21 = { @@ -166,7 +161,7 @@ }; }; }; - buildConfigurationList = 92E46DF21B634EA30035CD21 /* Build configuration list for PBXProject "Chapter7-mac" */; + buildConfigurationList = 92E46DF21B634EA30035CD21 /* Build configuration list for PBXProject "Chapter06-mac" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -204,7 +199,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9223C4941F0CA766009A94D7 /* CollisionComponent.cpp in Sources */, 92279F471F17101E00D5F4B9 /* VertexArray.cpp in Sources */, 9223C47D1F009428009A94D7 /* Main.cpp in Sources */, 9223C47E1F009428009A94D7 /* Math.cpp in Sources */, @@ -235,14 +229,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -280,14 +280,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -374,7 +380,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 92E46DF21B634EA30035CD21 /* Build configuration list for PBXProject "Chapter7-mac" */ = { + 92E46DF21B634EA30035CD21 /* Build configuration list for PBXProject "Chapter06-mac" */ = { isa = XCConfigurationList; buildConfigurations = ( 92E46DFC1B634EA40035CD21 /* Debug */, diff --git a/Chapter06/Chapter7-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Chapter06/Chapter06-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 52% rename from Chapter06/Chapter7-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Chapter06/Chapter06-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 7d6d9a2a..f7e51f57 100644 --- a/Chapter06/Chapter7-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/Chapter06/Chapter06-mac.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:/Users/Sanjay/gameprogcpp-final/Chapter06/Chapter06-mac.xcodeproj"> diff --git a/Chapter06/Chapter7-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme b/Chapter06/Chapter06-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme similarity index 89% rename from Chapter06/Chapter7-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme rename to Chapter06/Chapter06-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme index cd67dbae..bc5246bc 100644 --- a/Chapter06/Chapter7-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme +++ b/Chapter06/Chapter06-mac.xcodeproj/xcshareddata/xcschemes/Game-mac.xcscheme @@ -1,6 +1,6 @@ + ReferencedContainer = "container:Chapter06-mac.xcodeproj"> @@ -26,6 +26,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" shouldUseLaunchSchemeArgsEnv = "YES"> @@ -35,7 +36,7 @@ BlueprintIdentifier = "92E46DF61B634EA30035CD21" BuildableName = "Game-mac" BlueprintName = "Game-mac" - ReferencedContainer = "container:Chapter7-mac.xcodeproj"> + ReferencedContainer = "container:Chapter06-mac.xcodeproj"> @@ -45,6 +46,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" launchStyle = "0" useCustomWorkingDirectory = "YES" customWorkingDirectory = "$(SRCROOT)" @@ -59,7 +61,7 @@ BlueprintIdentifier = "92E46DF61B634EA30035CD21" BuildableName = "Game-mac" BlueprintName = "Game-mac" - ReferencedContainer = "container:Chapter7-mac.xcodeproj"> + ReferencedContainer = "container:Chapter06-mac.xcodeproj"> @@ -78,7 +80,7 @@ BlueprintIdentifier = "92E46DF61B634EA30035CD21" BuildableName = "Game-mac" BlueprintName = "Game-mac" - ReferencedContainer = "container:Chapter7-mac.xcodeproj"> + ReferencedContainer = "container:Chapter06-mac.xcodeproj">