ࡱ> `!  DB誸cVc!` @. xڥKP9s̠A-D-. L-*),3ѕ Lemg#XXYEP4G撸*p~<eq|db!EQ$rZр= 1C9|ML)X-UyIcU.4W"k>ȋr-7[y~ivnj|H5Qq<ɉx]X]YO ߘb'7PUĻD jP9[=g#›`!!WϮEqN@ @ xڥTK#A~H`DDD?BT3{wsJlpE"BMZ?  W q}{۝!`2lZطeHX dR1/鎌1HGa "N<×p4`k'랿S+d'+H9OqK& ̺o~RMڳg"W ]i|yZ;}1DU<ҵ4C/2wVwS*[$'Ҵc/NJӯyBo־_󄶅bǮ+VCeײk}y0匏q3FE4ܥ1xeN s_KƽN%~*qxŁ# :ɻqcME|$ ܥWBp'u[dMxmmq"HU<Jgº_rdD<%U&`!%{,reN ق3d>#dO؄4s0nps@***I.] Hv=\Y\ teBT`!=%(TMj  _xcdd``>$d@9`,&FF(`Ts A?db@=P5< %!@5 @_L ĺE8@,a 'ȝATA $37X/\!(?71vŗ6 f3ˈ+$SQ 1Jp"$XPn ~Y%@L }C\+Ja%~&0?9`wa5+sszp b.A\ p#n. "F=̕(J)s#?i+_Cl,)$3zxTh1۫0 1B习) !@&+KRsA<.h*E"0b9V)`!Zh ݪh,BP6(xcdd``f 2 ĜL0##0KQ* W􀹁ERcgbR v  fĒʂT/&*fe-f Y_Ar ,L ! ~ Ay +1#XLF]F\ LU J?Q ײJT'2W&0;d䱛? Raa.#5|.hscb nv0cdbR ,.I񸠡6*W`![ C*:q(6(+)xcdd``f 2 ĜL0##0KQ* Wy A?d@=P5< %!@5 @_L T̠1[1DXB2sSRsjW|)obF:`zA2e~دO eMa(w ln>dOH-$b.jSJ`b`!)ؑŒI)$5ゆ:T\~bX`!o@5y~v (Mxcdd``e 2 ĜL0##0KQ* W􀹁SRcgbR vТ@=P5< %!@5 @_L ĺE,a K & ro{babM-VK-WMc]  07J`rɸUByXA28_ M \$\PXͥ>&0^)v J GDAal 60%0PG1@sAc [!n``GF&&\  `Sq 3Xmb`! ]1'XZ @Pv xڥK1KiXADpp8 8(Z]+x*X7(AW7_P$8NgKϜtڒ^>y!#zA~bؤ1#z$5n҄3)fz bb(F=ZRuo(?HS")V;_^ijbҍ%~Rsl6238y =?wDyTح%=hk&|j9\z.a^IEo+4Qtjn`r?c*>Ͼh,V [C׵57W=j.\{McpڧxyC_G撁HH߮=IrGPx`!Hi[GvKy0 @xxcdd``~ @c112BYL%bpun wc@VG  W&0;>r_ P{zyn/<4ssؑI)$5ba\a u'`!-g!yԉ0@Cxcdd``> @c112BYL%bpuTYV,,@ă!Yb̶YNV_ü%%oٝQ:`9: FAq0ٳĀ5i͹|J3u.:mㄑ/Ɯ_U}{C-M՗s~ K1rayh,9iQe=-ɼsNͽ&ӻ~{w[~]^:O3U:yB6t>!"KK+):܊ AoxuS?Af^yR5x>'eYi쿗`!re_j Zt @Pqxcdd``nf 2 ĜL0##0KQ* W A?d^@=P5< %!@5 @_L ĺEVX@V /ȝATNA $37X/\!(?71vŗ6 f3ˈy%H&cK|.n? @WφY}|SD $ L#ݚpw\[ǁ&ϊ,4 Y>i#D; \PvW1p u pwp{˘AP*) @&CF&&\ @f``q{sl`!Y Th}?H@ xڕ?K@{ImRH+]/P!QcFK%88?@P88)'9B 'ws9rGV])4*$$A hC&+X(Pcn4S   P%b%,e"jUi;VgK]u mjᜄ?(gxh2v%3nKz=e>1>SQyeFb\O 㚧qnBc&r>I*vCIfsЯ3}ZߞgDI.昢jGw|ݎ>?J 㭐qzxt~.Ū« N/$Նs-C`֮+N~.`!1u5 ]a?b/ @"Hxcdd``~ @bD"L1JE `x0: Yjl R A@1 7$# L av@Hfnj_jBP~nbC#%@y mĕhR7]WD& Ma`$LAJ! - | ]1nȤ/ \ثP 0#L:ѷT˹&4=f5zgY29_':Kg|OmaئWy"p .Mx1Ͱn`QQԤB}M׫S_)y蝵!Tw3DZ`!bPeOPƖ#n*@@0= "hxcdd`` @c112BYL%bpuعPTIU*A3]9% &8 J)…%ǒ5\Zɤ3TeC}>o` KQ)]UO_I@0~7`}I\t>BVYp<O<xp,uJZg?t~/ A*tsEa[U.pCtA``G F&&\, uOv{`!V9H,J @8>|excdd``Veb``baV d,FYzP1n:&&n! KA?H1Z ㆪaM,,He`HI? 01d++&1RČ`u ,@RF\۹@20>'*?CoG` r  b.#Hnb3>a`{5Y MݏoQ {(u=p<.L@(\P<\M,l pafm =X!pAs8gBtA``G03)Wx ],`YF('f8Y`!nYAKRߨ `@hn |<xcdd``ed``baV d,FYzP1n:&v! KA?H1Z πqC0&dT20$ KXB2sSRsW|)b pi#ul J" _g `0_b$?J?GP-$ş{e\ hRQ^%^P 27)?(9e䂦.pJ%F&&\, {`!ztuyt횉+O wxxcdd``$d@9`,&FF(`T.! KA?H1 \ 3zjx|K2B* Rj8 :@u!f010uX@V;ȝCTNA $37X/\!(?71!pŗ( f3ˈ$H&Ɓ͂a!7#~&0WzI=GK(39zQ2yӢ7dEyK{ E"Oir.%kgʹeyo8GzNd4)2$ztuyt횉+O*2$ޯv[hf,c $0e0e     A@ AjJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@d g4MdMd0ppp@ <4BdBd 0Lg4VdVd0zpu pp<4!d!d 0LU ʚ;Vo8ʚ;<4ddddЁ 0r0___PPT10 2___PPT9/ 0?D$ 0Essential Math for GamesO == &Jim Van Verth (jim@essentialmath.com) 'N             Rigid Body Dynamics    {Simplest form of physical simulation Gets you a good way towards making a more realistic looking game Not that hard, either{    3 Rigid Body     fObjects we simulate will not deform Brick vs. clay Fixed model: only change position and orientation f    2Dynamics    ZWant to move objects through the game world in the most realistic manner possible Applying velocity not enough  need ramp up, ramp down  acceleration Same with orientation    Calculus Review    wHave function y(t) Function y'(t) describes how y changes as t changes (also written dy/dt) y'(t) gives slope at time tx  NU            c*Calculus Review    2Our function is position: Derivative is velocity: 2    Basic Newtonian Physics    All objects affected by forces Gravity Ground (pushing up) Other objects pushing against it Force determines acceleration (F = ma) Acceleration changes velocity ( ) Velocity changes position ( )l=v=Q    Basic Newtonian Physics0Assume acceleration constant, then Similarly Basic Newtonian Physics    Key equations Note: force is derivative of momentum P Remember for later  easier for angularjZZ)Z)Z&)b    Basic Newtonian Physics    General approach Compute all forces on object, add up Compute acceleration (divide total force by mass) Compute new position based on old position, velocity, acceleration Compute new velocity based on old velocity, accelerationN;|;|    Newtonian Physics    zWorks fine if acceleration is constant Not good if acceleration dependant on position or velocity  changes over time step E.g. spring force: Fspring =  kx E.g. drag force: Fdrag =  mrv   h                .Analytic Solution    Can try and find an analytic solution I.e. a formula for x and v In case of simple drag: But not always a solution Or may want to try different simulation formulasR&&f    Numeric Solution    &Problem: Physical simulation with force dependant on position or velocity Start at x(0) = x0, v(0) = v0 Only know: Basic solution: Euler s methodS  -4        s,Euler s MethodIdea: we have the derivative (x or v) From calculus, know that Or, for sufficiently small h:jb9"(    9}-Euler s MethodbCan re-arrange as: Gives us next function value in terms of current value and current derivativeFinal Formulas    JUsing Euler s method with time step h&&$4        What About Orientation?    PForce (F) applies to center of mass* of object  creates translation Torque (t) applies to offset from center of mass  creates rotation Add up torques just like forces:E[    2Force vs. Torque (cont d)    To compute torque, take cross product of vector r (from CoM to point where force is applied), and force vector F Applies torque ccw around vector:0>!N8    E        Other Angular Equivalents    ,Force F vs. torque t Momentum P vs. angular momentum L Velocity v vs. angular velocity w Position x vs. orientation W Mass m vs. moments of inertia J         Why L?&    Difficult to compute angular velocity from angular acceleration Compute ang. momentum by integrating torque Compute ang. velocity from momentum Since thenNH    )    1    Moments of Inertia    Moments of inertia are 3 x 3 matrix, not single scalar factor (unlike m) Many factors because rotation depends on shape and density Describe how object rotates around various axes Not easy to compute Change as object changes orientation(ZF     Computing J&      Can use moments of inertia for closest box or cylinder Can use sphere (one factor: 2mr2/5) Or, can just consider rotations around one axis and fake(!) the rest With the bottom two you end up with just one value& can simplify equationsFS       Computing J    Alternatively, can compute based on geometry Assume constant density, constant mass at each vertex Solid integral across shape See Eberly for more details Also at www.geometrictools.com&, Using J in World Space&    (Remember, J computed in local space, must transform to world space If using rotation matrix W, use formula If using quaternion, convert to matrixll' Q      Computing New OrientationzHave matrix W and vector w How to integrate? Convert w to give change in W Change to linear velocity at tips of basis vectors One for each basis gives 3x3 matrix Can use Euler's method thenZKs <s>   0    s !Computing New OrientationExample: "Computing New OrientationJw r gives linear velocity at r Could do this for each basis vector Better way: Use symmetric skew matrix to compute cross products Multiply by orientation matrix fRS2S#Computing New Orientation    ,If have matrix W, then2    $Computing New Orientation    BIf have quaternion q, then See Baraff or Eberly for derivation&C/N#            m+Computing New Orientation    VWe can represent wq as matrix multiplication where Assumes q = (w, x, y, z)W34    C    %Angular Formulas       &Reducing Error    Keep time step as small as possible Clamp accelerations, velocities to maximum values  avoid large forces If velocity, acceleration very small, set to zero (avoids little shifts in position) Damping acceleration based on velocity (i.e. friction) can help    'Improving Performance    If not moving, don t simulate Only do as much as you have to If you can fake it, do so objects on ground, don t bother with gravity only rotate around z, don t bother with J simple drag instead of full friction model ^WW@+    ) References     Burden, Richard L. and J. Douglas Faires, Numerical Analysis, PWS Publishing Company, Boston, MA, 1993. Hecker, Chris,  Behind the Screen, Game Developer, Miller Freeman, San Francisco, Dec. 1996-Jun. 1997. Witken, Andrew, David Baraff, Michael Kass, SIGGRAPH Course Notes, Physically Based Modelling, SIGGRAPH 2002. Eberly, David, Game Physics, Morgan Kaufmann, 2003.lr*Py  "    ?      a               *                    /STUVW  ` f33` 3f3` ___` 3>?" dd@,?" dd@  " @ `"  n?" dd@   @@``@n?" dd@  @@``PR    @ ` ` p>>D$ 0Essential Math for Games j(    Ngֳgֳ ?P  X Click to edit Master title style!!  2  H<gֳgֳ ?  RClick to edit Master text styles Second level Third level Fourth level Fifth level!    S    ZE1 ?``  ^* 2    ZE1 ?`  E V*(2     Z E1 ?`  E X*(2   N  6޽h? ? 3  Lecture Template 0 ( ~@K@   Bw 1?P%  w X* 2     B w 1? % w Z*(2   p  0 ?*P  w,  B\w 1? @2 w RClick to edit Master text styles Second level Third level Fourth level Fifth level!    S    H(w 1?P  w X* 2     HLw 1?  w Z*(2   H  0h0 ? ̙3380___PPT10.QA9 PH( \@d@   Br 1?P%  r V* 2      Br 1? % r X*(2      Hr 1?P  r V* 2      Hr 1?  r X*(2    H  0h0 ? ̙3380___PPT10.Qp {G SK0 (     N4gֳgֳ ?0<  }Rigid Body Dynamics,     T*Fgֳgֳ ? J F H  0޽h ? 3380___PPT10.#\z  @ 0(   x  c $EP   x  c $*  H  0޽h ? 33  P0(  x  c $PMP   x  c $M  H  0޽h ? 33  `0(  x  c $P   x  c $X4  H  0޽h ? 33     p  (   x  c $P   x  c $K  B  ZD8c? 7 7 B  ZD8c?7   c Z0e0e    BChDEF @  V 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Xp`@h0@    |B  TDV?` g e  Tw Ԕ? `  xy(t)D 2     Tw Ԕ?  yy'(t)D 2     Tw Ԕ? Q @  Uy$ 2     T,w Ԕ?G}  Ut$ 2   H  0޽h ? 33g  (  x  c $wP  w x  c $4w w r   6A  }??> S }r   6A  {??  {r  6A  w??  " w  Hwgֳgֳ ?b X  'Derivative of velocity is acceleration ( (  (  H  0޽h ? 33   $(   x  c $P   x  c $$  r   6A  ??H zb  r   6A  ?? 2 H  0޽h ? f33   $(   x  c $,P   x  c $  r   6A  ???^ 6  ?r   6A  ?? F  H  0޽h ? 33^   (   x  c $ ,wP  w x  c $9w w r   6A  ??  r   6A  B??v   Br   6A  ??  9  H  0޽h ? f33   0(   x  c $lP   x  c $#  H  0޽h ? f33   0(   x  c $wP  w x  c $hYw w H  0޽h ? 33j   (  x  c $7wP  w x  c $Lw w r  6A  ??   H  0޽h ? 33j  0 (   x  c $$hwP  w x  c $hw w r   6A   ??~ e  H  0޽h ? 33  @(  r  S mwP  w r  S Dnw w r  6A  ??T  r  6A  ??  H  0޽h ? 33j  P(  x  c $zwP  w x  c $zw w r  6A   ??i\ H  0޽h ? 33j  `H (  H x H c $ wP  w x H c $܂w w r H  6A  J??xf JH H 0޽h ? 33y  L 0(  L x L c $$wP  w x L c $w w H L 0޽h ? 33y___PPT10Y+D=' = @B +   P V(  P x P c $4rP  r x P c $4r r  P Z Ԕ?? v2 P NԔ?0  vB P NDԔ? ` vB P NDԔ?   P T8Dr Ԕ?   Ir 2     P TTFr Ԕ? j S   GF 2   r  P  6AX  K??q   KH P 0޽h ? 33y___PPT10Y+D=' = @B +y  T 0(  T x T c $1rP  r x T c $|2r r H T 0޽h ? 33y___PPT10Y+D=' = @B +  \ (  \ x \ c $4wP  w x \ c $w w r \  6A  L??   LH \ 0޽h ? 33y___PPT10Y+D=' = @B +y  ` 0(  ` x ` c $*rP  r x ` c $L+r r H ` 0޽h ? 33y___PPT10Y+D=' = @B +y  d 0(  d x d c $@!rP  r x d c $!r r H d 0޽h ? 33y___PPT10Y+D=' = @B +y  h 0(  h x h c $(KwP  w x h c $w w H h 0޽h ? 33y___PPT10Y+D=' = @B +  l $(  l x l c $,rP  r x l c $r r r l  6A  M?? 0  Mr l  6A  N?? # NH l 0޽h ? 33   p 0(  p x p c $, FP  F x p c $$ F F H p 0޽h ? 33  p t $(  t x t c $8rP  r x t c $r r vB t NDjJ?w R vB t NDjJ? w R vB t @ NDjJ?%vB t NDjJ? vB t NDjJ?(w [ vB  t NDjJ? w [ H t 0޽h ? 33  `x 0(  x x x c $rP  r x x c $Hr r H x 0޽h ? 33  meP| (  | x | c $rP  r x | c $|r r r |  6A[  O??o  Or |  6A  P??2Q P | Tlr Ԕ?  Mwhere 2    H | 0޽h ? 33  me@ (   x  c $rP  r x  c $|mr r r   6A  Q??] H  Qr   6A  R??0(v  R  T$sr Ԕ?  Mwhere 2    H  0޽h ? 33  $(  x  c $PwP  w x  c $ w w r  6A   ??  r  6A   ??;  H  0޽h ? 33j  0 (   x  c $rP  r x  c $wr r r   6A  S??@bJ SH  0޽h ? 33y   0(   x  c $,rP  r x  c $r r H  0޽h ? 33y___PPT10Y+D=' = @B +   0(   x  c $̻rP  r x  c $r r H  0޽h ? 33   0(   x  c $]wP  w x  c $w 0 w H  0޽h ? 33 0  ,(   ^  S *P   w  c $X%w @2  w "  H  0h0 ? ̙33 0  ,(   ^  S *P     c $4/w @2   "  H  0h0 ? ̙33 0  ,(   ^  S *P   w  c $ *w @2  w "  H  0h0 ? ̙33 0 X 8(  X d X c $*P   w X s *Sw @2  w "  H X 0h0 ? ̙33' 0  ((   ^  S *P   w  c $\w @2  w  H  0h0 ? ̙33xV=oAu8 "ĉ DD(_Q!"E JZ:Z((~B63{ad govvo}xpGhh401=$Lf髛0pi(uV[VS?ԿV˗{oקbou vOAY0n/ z"?@ [~ڿe㿆'oC=t1z] GFpD:@a&C^{ƿSq\+]^˹dM$2.e[:^$1/ʝ\YJz/sT]I?ϨL8i 3Yar2=}IU1I )%ؘ֍EXEQ:1|L8RD=ι7gNj WwScxJJ(7W҇sP+VƮY3N1WM,m2uƘw<5/l1)̬W\pBQ8}.?\0F>C)W`_'yݼO} r(a*5 @=Ș /l/b_41!sW㟃}3C3ٙNZ}~).RiO+倦V ;V$ER,ddYYW56&k NcNr@;=YcU^)Y؝W;(k0ɞ{&-(+Tu;7ͨpۙYLMMUKKDj׏׏A Lp *~l\?n/sZN ,i_8['<굊|7^HZNxsNb[j^2UK&HW.ݓ9Tacݠna;n%Xi!#V^&ޏ~x.1ݏTIQ ]!+&Dt1:i0%v%9v8\y^nջu11Cg.>B'G՗aFqT*K;Sߡu Zxm ]0(=<~Ow}?; N&G ]gP,,Pߏi\)Ҟns><4]* ~Z.{ ?:,13cDzR, ?t@r X\u 5/%L}- oUX*c|'sb4 :vș ڥ+{A6l~HHxC/*:&ttit"ik<=-b6J}zfz6HUSE CO9y=In7>QT+"Y G3tMGr0ujTLvZ1s_-iWaO!}ᄳKg#c>3"q b8\70sy(ϻsQb\0"AxĞ(ă3rY NG"8>ɶK}[yjkw!߃O,ksN Yx ucuA'jv>3+buևh1O mxr͓2:}Z?=yb xb[g1xIYmQZH:|}wYB4ʐڙ\@һOT F U2ƼګXWND᤬)#HZ2?"4~!oױ`L0`B7Ky2 "w- Κ'3k~م- c͓?_؊u~MP,=rnŨZxVkAfv6` "E,Ai%<4Ʀ'ObJ74i*Jѳ7oՓţzxPMJdD-}#{o7яMB.@E$0t\[vn0Tا6?i%`#7_bcrז>:i2הXGa ,p'&_&Ɏ ̟ ~Q;aU-sv* )9u^w/jc`?k °T1Y,pjNW6[fԕ\gLߙpWij W=7O11GlC;#gEG/,BJlJwx5I"G0s..& -2ekbX,{e*rIo/^#\t U;ShK/ƓMj{+);TNn]C=Az?^K)+zFޜ笸hh &٭ҲһdAG#Aqe q~"UkG,}o҃>}b&s)s͗g#__Gv03N|{{N!El"O7}dtVi$ HsgvfrtxVAOQ7(iI<@jcr0(Rm.=p`E=MoheH+8C s6^G> h#i'1@I'!:>-4/1Uaګ3R1_*khn!JE/%KR}}~,drXpV9d:ޥh1U1"{(Wz=Mu1kRQ-c9'7Is &ICCu tHι5yeztgzwR;J ||"w\ȼB/[5VsEl{iD_Ki!ϙnaWE)bNug'g˺dixa:7gEexPa^)69?Ϟ mM&n!\c@ κe'oe|Кp0222=+d֟!!Lay-+SkZ8}`ʁ}Wm-*[?OEr3Qf揯+}kÿ}I M5vxWkSA4Uc Aԃq(ڀ'S4i#"~@[?JW+EoxZD[Mx/y o;;33Ϳ}wA=A _  ]X5Eߑ=ju| o d 0+R#f1%sR%<ٮ=cx3 @,Vgxk?CG/$˶_ ' UqV8M*~ kKjߊ럶 ~r%rr5O@=5or T:gFW7;?d>hB&1|1I{ZZE*6Dze,8>٥|A֕Cɮac6H@)CBJFKV1)DmR}~S/!0UA] AUsT sؚE>e3C:8 !7ϩ]Lo8걵O'?yXmΡL" Gct*6-EwV5'7U$3sݎ̊{y¦ Zk+ Kbϕ -7i);ܛFO#UdrQݨXX NbB!!(V{S,[Sl/H\tR;D9]ߌطf3GN{]OO u)?s'Տ^oUփ;[lZO36 wN7t׀ǒˌݹL1'"D"ЪY~qPJ>^@ \~J>qɢǛOR uPKse:Wk:`.B o @T[ywzpbnlU5T?MkxVkAlҚp-~a!Z/V B0FlQ%$^̟xq z77;RLfޛ7̼7ẏӹupF LdB7E& 5F#O<б cw1 =ڀM_rSD'\ ~Js|-|NuO _ ë)PEy,AJB`-Li4JbgJ]V!"ŘY-kڰk:c$ū;b)ʫ>UwȢ,tjvҵ#Td狪-?B8oiEǡIh2:Tk+8/@,W{y$|g2d OzG潙H}yp4;"0UFٴ]t!j)` L|*`@ - ~#1, *p97ë-a/=2C-N@[? h j[=U??xB>ֆ~nIY|?؇)<AH= !%v ߅y?t{?͒Y6g+F̂1Te7b#}Eћ~W3Ⱥv;s81d%<dsP!S}y! Z3UJXGՙ>'ܴܦ.5kBF!_|?\g>%H?UWKZ94aV={@?~ޥAL.Jjk=owk4{iP*L\-ބHqG'z:^Ou%P6 Q 3Yv +ez-Yb^WӯO0e`tJ3ˊ>0._I3M/Pu*P"l.S2ycKk"o%D|=LQɒ5lA1DrʴCvGn9v&eBEB?&?ﳸN=FL[^~ ;2nqv\kdczl98_R}3suB gn3i񉌛4̟DsNsI< zy3`*uPĊyY*gr$_W1iPg.Э7N;}"Ow1/!bYh)W<&fY~:CgTݑS"Ao~YT5_2g<vQv2wxoxVOA3ET)hC8l8CSċ F*Ńފ)v)-6,p= ލЋ1v}uL4o:of^{ovcOЄǷF ].: ?8(~~u?X<4=qnS%/e;aO^Oi˦&PGٿ` {mۏ}yL⩊:|>*~ 5Zy/=a 3E !A:jsA5Ⅸvfk3l텒(KY;o"&S5^$6s=.gd] ?L8yAf2)<ӃdsPT!ކ\ D;x%l!TEM"+˄`&];,a úkPes̔Y;Ím$Yg*yjiǛoS>rZ_Og'&NkK6}!rr"'pa0[u%FΡ̼o<1ꭚ!mEΆP:rLLo?c` +D`ߞV֓x.o7F#&L't52L+(@o,ރyH}[B~@ಎ&ڵMZ~cH/uttmxVOA3]"z@) `4@1%P hz1TD/&Ԫwl_T:jb V[+bpdL[6# IL^M wW +}ʁąT:51fcDjڌvFD*<^S^gd] ;&}LE0>NQtJk8 N*8]An q1(ۍhSG:ɺ!`(Qh_(J;WHǯq4OM'LV`wo|T8&w%CO o1? x![[į6 FЉWqf(D26͑T26 abgّ1-TVIZΊlIZZ+!悶\[ ZUv4ձyeuiyQmWdUr FOl|G[^}9ޫ7q[W~:AF?dFqO*xvh6'No5LǀJcOf˵A>,|}[3&Tgp@#}.6yn[r9yxb "I ?ЪsFc D,ˏא}Kwɚ7!RʣR;~7 bxgxVkQvM4TUІ`O ࡱ6= 4FlӤK`{?TЋA/^ԛSCDu.iReo7;3޿oo<-8 XvMsD G J۲mۙ(@ w` jC8. ~#pkbb)kŠ(7T\E(l4^pc%XB?obK )~yG_|Pn?@ {aAC(QyO\]t&cW4{&71_3|hd҅;1csi?e+\; |-0wLQGU4B/$}r.q:ۓ@T0 b,jX:'ŒMns KxxT bPճ>mex~ ERBU3b?a,/ !ś_A)F6Vfa*/+ks۴/ xXOLUޛfvQ--.FtB6l[v H@dP9UiLĤK5^j G4~NM6{{y{;W~ЯP$y>"%@%_Q0x!ؚ2%u۲5rIC: k=X1{^N;c?2Ѱ=nΔg e-P(  8nh,&Meacx2~},mφ3 `KV@T *`9 DNVrj!Db'b>nDQ؋؇h@G܏xMfASoƄqE_RF\f_D}VFtcxt O&‡#{>^^|b؛}fճb_q?>kDU_GTf}_KB>K>Za-vSs~+e|^+j,(鞟;9MM n }Dy[M="8Jڏ;u(q ϩVӭY>(g:}MTӂ|NK'/x} ^GN7W|W}^x_dF@w?jk˶"3d9l3$ "ٝ=X @<ߤA_PZߛIcCY:ϧ4& V'{YEU" ~7/XzwAih !tF'@<@TOfo tS(UaZaDd#9 ڄmA[sV` m:zZ]q\H>m5"n ),B+d\͟!~U;FyMD ~e)}L_UwQc`?Bk!(*,[^wz9Z٫kl.M+u8Nn;'^6zJ(s|qpt^fMg(S<"=)CIg$,ĄKI-!nLK+IڦIk&wm_"_f[[?Jm:EwYW5z~ʳɣe!>i[_S6kqzEGI> 6dD#As\ܪģߤ>X!()^){~@6 L#sף( h`CUnu+;{zJgw1_YsCx;LSQJi_hCya 0H\ 5ZMe L)@"M\t 0褎380ih=VJy9s={ν?n=y`4(vȘBR\c8RV{±Iѥ1C By(VSX1Zt\7z9wPӐ4Yg5TC6gx}/KfяIհ ڧ3b>͟V4W_̧ }*~WKjߜOA3 cIW@R1`m`.kOH|.6BL@o( [&bz`˹Jb9!#T.}%PcFQ+Y{˨;*-Jv1Qea%|K[Sw[]u&R#CMv HҼ9ZMQfs(2vՆԶKrk჋C`4IXjш2,~(ԚL'iϲO𰫒,+'!'#FtɜOOmG?~t\@bg|z܎/ӌAʿm.~[ߺVMV|wӌNm!^2UN[@V 2;ż*?P+G+aޛqG?Ƙt vCpı t-;ZƂ+SqH {/ s iS\2OنX8Ш? GO9”xW;lA;:QD HABJB )(qA8 DAA(t2B#+i$*3 |Hkuvfw>;~|+(N0PI@ b..EYzMFE5.eۖ~a+? Kk(c<'()˟t6<$^8tA*Ȏ!8Z:g T~?ȧarjUg[͈ޞ8pԒVP[Im+jcP*s`^s}x-ir9zGMd']{xɎ:Zd*(A6X~{[]V9ze>+iBH duro\8=UHK^hc\b]+8㛭U٬OU=1yU2IMGsctȽ\SQmn5^=>_m,w]&BH&=LjNXkmZ5n筞$ss ߍqh|Oc-3[eS}yپA{ڝH腄=}(Kv^.I;s>x1=e` g8(=X`A|z'+[O0(!G!y}yS Q~kkܧv>rHEUUޔkK0n){\ Pr;/ERKdhLpz r53BgDOH!y'|Gr۠OU"K~Zrn:Ègշ17`qѷg V pUF4JjF^E2.xTOǿfv9p~^M:60mBl T ԝvp6z`T>nЭ+N18iL3ixH_ /T, KexWkQfnSƶ"xků<4MASI1$mn@(F$؃$(CQ"q)&u7#QQ ev̼gM+ r6XP*\*Vsy6}F;Qrk AZ1bx=Oh_}α'saN#Zb.K)LT[=Oq{FhW93a%hۢOf x9E.@5:S;ƕR135lFj,"¾N"sr1mO=nJV =L%h"ʤix)xƻ5Mۮ%ٯ뇼~G/vw_b^w*s/9`us~,hREK_)6\Q(z0zԒ. ]UfHZa b70^< i[2mRp./OZOnD># º$~F:_WY6 簈&}Р~ ~w)!Na\[wy'13ZXXQM{pÆqo eU?J\ٝ~?O'cꃟm` y`-\OP.i ֱםgv{nxN^j͆3]("KSW*1dH4.h媠2y5Ƽ)Rv#4'9dk5ˑ%!i %Ąteؕ$>Is97ԶhS,cd1W,Tfh _}SZm;ewYl֫ ͤ%|2}tk0c-#kz )S>$e*߄_>iߒk"\7g 983}cj$z_>4qfpռ{ yԲeG߯YKpU^ޟu]h( ĴhoI&cʗIJ+z֍*+z04\k旕2]"F,KX0Vrr-t;%D(Nr2[9 ;'$H9FQb\8x;6q>Qȸˈh,I(,4%Lʾq;!*)葟䙔j:kP ?WS< Cw5U?[ 523Yi:~ƿ"MFWJqTYs*Ƚ$bu0+PZ# o*r nxn!l;'Ng76<1|[ VB[ GC0ۊAv*y|(EM,I:7T ixj{`D3pI&>Y<{aOli2IxVKSQ?9ԹP14 VNS!"flp-L( $Ї>T__%eB~ 4(CEEVDu}=ޛD%8s9s}Xw/HLY#8TT*NrXW'ЄYW'.hHoFj@>_;}i#"1ޤ6@V6}(x*oǝ@ <e"~SNIg|$ ="ِ ;%ba}(q^JbW.L5['[xit\Q׉+s<}IVr/7Ok@4 ]x(qպ=<:9^அSzv9vyAպOO;9TfKD E1Iw2f:eRŌ#snR&:?(r \ ,jfDR1l ZD6vn;I*N딉+\#G`8rR5 )dʄ*mLF|>h2[Odܯfʻ&wL/Sfq<1U8cL07||}V "Cf*M1&SE/,ATB{, -BD,3Isc ~ _Uh~?~C='}]~MV-LXY.Rϗmv$"8Ƃ@G+1:^cʕȷl3y3K.?l¢pxVQHQ>sS3[0$bb("X BT/5mꦲ@$ $H|@29hN {=wνwi1owz 3^3FpУX,>KcG'^|Cϼ7h `HVGb@b>xڸ)]SZ <)BJI?C7耋)Ƿ`|9%w>?+T_(ץqm~T|7m % l(&l\G"4vrk)j׽y?vyma8=[wgugN?ɩ:~ˡoV_^K]; ;6GO; l<1^qhx{Guk^N,׿TsiunerOȎI@^b6dir+t*f=BWAĘQ3i>e~}.c0(CX"R1=a+j;U(.@t ٌ:U<9Cs ٜ[k(r7$~ [ `rJHD&U#Ǭv-:T"9B,hT ezd ǘw;d@{PN'u+מ'CuH5N 0t xW]HTA>3w` ۤДTr ]7V2l2Pz({!G)"($z,2۽.E?๜朙s̙}8 fC mȦ4M>q[2VU<yK7 5{݈m'O_пc!V4{{>4[}-ѶpȽSShJXsQ'oU?93o/,gvy>Wk#& *Lr)l.f5Bq^|0ZaĞ rϱ0;rrH'4Dw{?C InU7n [BpDg7xo-#bON& u15,+'f'WmVHS#|cs4~X(KJtܛ:drY.J,,UvOVج-*82ĈýL#f*7\Es5ǃp;tVcCOwQ)W<}]E|!dk O$ᛋ%z EH4d-&P[QTvįρuM%;nU yGXjƾY(duNEr_O:`˯ A!|z%*scI:6Yt/WȌ4xWOQ-t VD1@9y`M(,.Ԟ xgJY=01C{o QIf{7Cv 9K~9ƘR!\R.ʁMT|zUyߑqH!4*_Jfm񂜾\yqi4Q.L﵁Ou@->Qmț.忧|:ncjj3j j!Sӡ Ywu1Қ.s;Hf:IXB̊@DʼnH/?gϻ'\gȺ<Ԝ6)a&k=.f)n*hBY 52nUsT l E<Ck`$fݚ&?@ph'̌5x*Kgk1Yg6ӌ?kn=mfioN8TjC8:֢ݍae?iEڪn֫w sKsWŷ]-N/1)l.qV+.{|Tn%ъr\ָYDUڽP$v8llyD.c [' jK|.S몟?WBcLc:ډrP3_>:^F/ +:Y#-OyXxJ=0znez?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root EntrydO)PicturesA/Current UserSummaryInformation(PowerPoint Document(wDocumentSummaryInformation8