From cf9f022d393317a7bc81ec1738356cf5cf7a5eda Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Sun, 22 Jan 2017 19:08:31 -0800 Subject: [PATCH] [pybullet] getNumConstraints, getConstraintInfo APIs. [pybullet] updated pybullet_quickstartguide.pdf Fail clearly (assert, return BT_INFINITY) if link index is out of range for btMultiBody methods localPosToWorld,worldPosToLocal,localDirToWorld,worldDirToLocal. pybullet getConstraintInfo Fix warnings due to Mac OSX 10.12 upgrade (with backward compatibility) --- docs/pybullet_quickstartguide.pdf | Bin 249092 -> 253251 bytes .../ImportColladaDemo/LoadMeshFromCollada.cpp | 4 +- examples/OpenGLWindow/MacOpenGLWindow.mm | 97 ++++- examples/SharedMemory/PhysicsClient.h | 4 + examples/SharedMemory/PhysicsClientC_API.cpp | 25 ++ examples/SharedMemory/PhysicsClientC_API.h | 12 +- .../PhysicsClientSharedMemory.cpp | 197 ++++++++-- .../SharedMemory/PhysicsClientSharedMemory.h | 8 +- examples/SharedMemory/PhysicsDirect.cpp | 99 ++++- examples/SharedMemory/PhysicsDirect.h | 6 +- examples/SharedMemory/PhysicsLoopBack.cpp | 11 +- examples/SharedMemory/PhysicsLoopBack.h | 4 + .../PhysicsServerCommandProcessor.cpp | 362 +++++++++++++----- examples/SharedMemory/SharedMemoryCommands.h | 30 +- examples/SharedMemory/SharedMemoryPublic.h | 19 + examples/pybullet/pybullet.c | 134 ++++++- .../Featherstone/btMultiBody.cpp | 29 ++ 17 files changed, 841 insertions(+), 200 deletions(-) diff --git a/docs/pybullet_quickstartguide.pdf b/docs/pybullet_quickstartguide.pdf index 86977363083f31d7239b9fa2998adab23ddaaa70..8f49ec179b58381d2963de13c836014739a3fe0d 100644 GIT binary patch delta 136082 zcmZ^}1ymeO@aT)XyR*2<0=sB%cS(Xnuq3#xoPf!404B*iKz&?580D{6o{Ja1jbpSsffaf)U55xxo^CiCXLJ$NdF3`dQ zp=OArY3aWag&|4~mR4RcBZ9mDe(;M4C5QKp03m(=FF+f>qwVPE1`y=?uc2e@V+8>6 zf&o05E><4@8RZB3|9*IsWC4a^0(>A4uaFfG1O!=uEX{ym0W*F}KG1u93rjOgD>Jb8 z|I#4;zp6kt;2D6dNc6+?L5eGE0KR>)2+MR7MsiGqPMZzMf-N^*!_1(_v*$v}cZ6hQ zsHsSBxHssvX@3S0mzgmBx$J0egCQmc;E}a*b#sL|4*G8znr0uYTmeD?P$5KGsFx5O zz7A|Eu*Fifa`@o(5dahxfJP!xLiz#yaLDh#{D_zd1Lwg(L5R%an+s)ZsGc;9RAY-~ zbb$JpdmtjBhQMb1r&-b(Bvl;N;q~Xf_V_)HO`ot3%5x4?wJm0+hN^PQ8K;NEQx_TJ zkfxXdtXazy{|48}wvlBI(US$+*;KUI)T-aa?%A;PMOb!QzM? zAiygC5Cnpu>)cY%7AkV63ylUef|>&7p@!mRQM0KfuZfPf$f00#fF%1%p*4kQ2c z{v-Fac~JfI6YmK<{a3&|w%P!25sTApk8pPyhhpgSo&54I-3+ z!Uzg45Wo)tK@;g^p_z2#&=Y!eWH3xg_@6>19W~U5K?Q10|8fNx9V`T!E6fj}e_q+s zQ$x8KRiNSw6faj%VEHS+Cj`x6l!YPMmnO{Ne@#5b|1|hP009Ahs1uVc6pxV>I?1FA z^=72S0K&|I_y8b&AT)?Y3hKj1jtk-w1b|@tWfCvE3sVxR!bFSC%Lm&Hm|-9^mr)8v zC~#gD5d_08i}OF2nwbVwKoDjWECkhHm4#9>Q$TZ=k)VpKD$o;VS`;wM2yD)DY_hN> z1?Gzd0T_Gn_Jy&tQa~YWXea`FuuT9#16d4V?!Z(8K>r32fKC6!oriyF$Y`+jgp~(? z092Av8U|@!z>C}eff2SBW60=0J^;Vqi{?wTK}XnNd+{!{0e+G5BAsfdTviU}!auG_;(P?BCMz!}vc<0cadjKOdeI9t0g1WQGT)ndQTikP80yT_X>CDV+bl zO6BqxamTFIvhEaT}h`3EL+xoQ#aOoV>gcJ{4B0{Enz>u zowk}406EWQ{oRcUdDz_B=`ecQ6gRHJy8d%={MP5}IpA)c0CKZA3n@Mc0Hm2dQ@-bY zZOoeZTjQ+MuiHEQYVwcT+pzdD`YW1^Y&?jQhF5_9-Eo*vqh9j!sF8`pt8rzdrq*V6 z{QZE<zocBDnf)7!3WgE{e)GDJ@H1{i34SVeDJR+q4>-^{9}-%n)O z4OtFVdDKiRv#uHiZ~jJ=x1{)~YTgavmYL{x|I;+EalT~L*XcFv`lYqkx1>e#(bF^5 zBs^;*@?*Am^Lx}=+?cc0_dI7i5lNhnfka6&WfYg6Blt8@pNAl(*Al26(KlbRS;qX- zHuZ_rX^CiIU;pWF#z~qvc6^|psoaRcWlPv-^;Lv2R?t#}2XCBc za?@&Ktz=~Hj(h@7Vlto;UiVjRP~zS~{?1-)4!316vim6n3$yW~n8PpIU)HG(f3fLR z433uLSvoj_*~Mo|sr-U^zinXLbQlc8r&LW>=#PeH|?yKY_ zlhHaRG>Tmd5~4BCja;j_M^A2oiniw3_Sobpap+6?+>4qR#;07!DX1Dz!e=8b>wX#& zL1s(L&XFMeQ*~y5EsiCK)1y-rLu+X3M_%-fnku0S3aXM}IGI)|bulikv=r0& zdEvT$Z=sV-7(l{3Z-DbH-_MleZlJIYT2X#Rq36&S$a((jlYE1KZZ{1_FKv6I5(mH0Q3O9?1WpP*q`S8=tY zO0IALNpnQQu^iBx^nnP5JaUKea<+vGuA2?ZbDPLv;K8zI{sh-Bf$yRX8ciDB| zQ~ox851H%4LBdxjtjAKvxhAmnT4}R7Kk0YBE*?@sW3JIvkyn_IbCE0GHFW4iD<(7G zl-2pJ$d7M1+y$R4<;$V4$8VBqbsEFz9tkFhIqAN!{z9_T6+!n+1efNE{N9EGll)t8 z!E;YecN{z}XYL%MfAM;E(pu)^r=kE;&l79pH+D>z$AgFpT_cmEY%O>4{lRn`@* zKTOXGpo;2tUsKL>lV&60uwFw&?r)*%SVpsKh|FY09x_M`V-$-*$W||l7K-M|%XIt1 zCGGfAH96Vt25fj*kcOJ68Ve(nus z{d(3zStZqg`zji{6*exm%bCfwX6HZt8ic-_>-4J7T(p)Y=cS|EoUV`lM*Y2y*B-Tj$_2kGu zQ~FiC655XMQ2Z)t)J5ogWoovuYSg#00Go!&Qm-1wlL|1b^Qmgsy?1mGIEUyzw;J|h zAy3id1PW$VTw1K9G;?prcFib#nA27+dRH==43x?K)D#~`8!M$v%RWc{gP>07Hv+`^ z5fDh(XdGHoNun(z32~0tlx-F=EaC$fh{ ziDi#fV(0QvfBsln;Z09pj-Q%jwF@;PT`XrR`)@T;gc@fw4#&iA%7*p+5{Ok#tur3E z4+`fW{G6MMybUMdCh_L5&uVtC_;o*Gb7UaeBLv34V0neetF8}bSq)J2s_vSK zH`Kiky+zI9RFOO&L*B(Yd21h>V_gfk9Y$D+w}T#vzv>N-2{7grN_mvDN{~aD@bb(=)52!=K>l0!g+cHsZVbm|-N9EclTSTl_vM$N=ftV)mSEE&CAi9;YZSMSN{8 z9h012J2>9m50RX??qZGPJTSow;iq31;FlR~1Srk(N%wnV0vxfaXhc1N2s+nY@r>Sdz4iO$MX2aZ_3+QpWH!`%GxYE?an zAXC+R?Gt)z4UPtHUS*89)+H=^$D^hA`s8Svh1al>*yWw=m8I|@l0o>NTh+DZPqn}U z&QtuczdVZ(DZ=vUL3j!!KCgSVzPO<%?6=$dYdjDt4LBzF=qR4O4P=q}eX@1C6O+4xj9ZpR=sxO8hfj7HWMbEy^4Xy==G&M8AzY>?<-qG`Z4b)bF+JcNaxkA4{N<@+ z00j*k7lvv@cd3IOB;41*jrd#e_)Vv*=h_{Xo9p;=Si@jY2tOOvr;xXAu(C_uY$(1m zNY-BWhNtk`vaLK}&vF?Z^%2AUU zB<1ZNQ5m;;n!l>+?VSr)gZ>OyL{=Fy2tpw#0fjyY98l~6d+P()<1xJnH`6gD>Ss2x8Ld^44mVQR z_@K|8=5&s6cwVI#8xqXP>xIIc9uc~Ytw%WbJMe@6UPg}9>sNTx8zUBY){LiYzYEnyhku`gf2NXTf+E6I#;b=iR)gGxYm$_A2THcO>5uE=+O_z9Yu3T_|uMVw~6W z*^%b{q~a2|Uu*==*g2@PR^da=AQbC4`Xf1J2=Fq9)P# z^I2-kK-!zM`2Lh=)+jTK6b78L7UaE}U?t6knQW zs%v23DPLTsTjmP$bz@Qf4aFBkWcD}Tm@eL^>ETSOT|`{)&s9W4)|x{{@WWyP*z6F< z6_m}IQ@h6?$hk>bCdfbEF>PZQ1?JCBQMDu<@QwL&?S|&GA^Qfg3iG6X!YN%drfdht zV9l`1AXzbrhM)b4?^Dg_gukYTegzMi$X*|K-01k+DK4weHdEJ-!`o@Yy>VTA?6(P9 zl4IhuhM%mJj+YKOMh%AM?S~)ud3EI6Z`Yw~Qn3|7_6*d0M{|TG96}HzJLJLefeau% zV_VA;3OMM~fvuQo`|(m&+n5}1dBYs#wa1~PP&0=Ei2E!E4x4Td!wo1ngl(|9QCvQ#6osjV{x{s^+$nFGg-QSCuSJjDfbyl|d z(;RLg!GCsCuJhJ?D^4FlH@e?n2L=MAzb4Aoy(4@k0 zcxZv#y}uzQI%PPWHgHqm6S-Cy?H!<2e8x%1>dmZK8{asG6uf3zcudrfeBn0v7ry67b93emC6 z5P#S+$^A>x>dHvUuI==Ydx^2nKYiG*Z)~XU8{iB=^t~5Nd_{q#lO7px!rQnL0`wo2 z6(^Y)pI6&W85}d{YWS-9`YlI+WWr`}%PIGGtj@sG@YiQVRIeK+D+kN}dEBycfU4&4 zKwyu!!mu;a|2h2Q;}e2CZvXGkWQT3uMpM(*5&_5l%d-cddlW2wEM9)B9`@h}dL=&A zBzg9VAi0h9*HQP{>?!w2^^GY^_BJ-c!4!=|^@~MZclC8O6BEB{R^F5FUc9;ng_NGG zoLui*+&=|8KfvxOA+t@3O@mE48NSE1a6xc^B;TY0%ho+{%PHDwXE6dxEa32Qak9Zb zuO_P%RuNevkP}2>zft&KPj+i0!j)RU^?sFK1-VY0QC|Ba@ZJze-q!&c!sEO?gw-?r zZNwdS#v;)(;qQpu!;I(!dTM-e_Pi>mg-cL}O9XkUk%<$fLjs=BbG+dGWViY5#;|A3 z#Mnn-FSh)`ZS&n~u|Q;jqfteQIM4xETTb)O+~>nB+`+4Q!e@&!XN*vqP?JJ~_)MaS#sgQn&fJY74L z3AjB{NEpohkWgv3QqnjMxRh>A0iGBxO`cZFH+Fn_ct2gJlA|5F-knn~#kqUZH={e_ z4c2!_+DQ;!KoiBKFM_$|0`NAhWqoCNWC=FFz2#D#I7wQgO%NutON@j_kFWv3T{OwGP=nsft4y^ z)DM}6pbN4JTOMgkhMY`{U_+-Yt^U* zI$3-@2^_0C`VHb%PdBM~-yd(6WNbC<%&h0$AIm>2;(5qM)nPl}G9WLy++uBt3?3E!aI7#i zsx&OkoAh*PV_Cg$cgbuH7H0=bn~I}a8BLYH{e6UUpE*#9S2(l>Tt_S05*fTIPjP8- zGT!{#Z%?nPQmJSAwJNqw>d8xPR*Tfo`a6V^ds60h7?3$V#{Gm|;fb zrJ0c_V(Plj9R8)*-k8EPT4`gNe}d;S$c-!9FEpm7`fXJ?Yc#`YDE%yhKoB)uUL(ls zEs~4olJXAg9wc`*Sm4vX&~{_ZF~soc8R@d5kyzgB&i71_H{!ti^J3@&;(&Cc0UIQB zmi`;Q^*6Vgx9%*ZX{fIeR*zz62Z`cy-?C?StrtLdY^LASX0-$Aot`T) zxIPvO#c!7%>^vpj3mr2wWp92kwY|69BYyZk=J_CV)^pOcR%KjFUxW8$uCKj{cAjGj zl_w`QD^VQhI0ZAj-#?5bG5ydk^z_9E+C2CLA>h(?2?;}mUc#rV&-lyXaU)Q<+g35ZED8r6& zU1n%~T(kR&%qRxOi!Xf2tF%i``kv4y_1KF98T_e+lCUNVbcHoe{R&W>Tb#2fW+t!_fKa}$?gefmm+NaRC41v?s~lsf+6Qu z1DSLNL{9##*ufVO8i5>~@zYV96vX7^+HPc4UH8f2S{vAS@n-kfyoQBAeXj?0vjalN z$o(VvW^fwcZ0l@|BwyT-*2U9m_Mvps1Nm;k^PU%jrPej-a%sofh0taoazVxq@H7gB z1_k{rvS}{&_yK{e6%38-@XBImi2FCLyh;lgg9Y+aEeu{HR9*h}@Ut!~ZrztMcD7aM ziynRAf$_21{wX)1**fiOW)3_q40D#Waq;#yRLM8EeZ=aUezZYyyDAuOBs%$%qWeIh zImbU47Q%A2cIf{AQp0i}$zP{2zm2VZjzB=Hu?h95*^k*q7`ch$pspXjE^9J0| z92bA7(%g;p@x&R$g1_Y*U671&!ch)Y`F&ffIVD*!F%q?NL(Xco-M@;)pvM)17yP-N z?rp9(eYPHM$j^1M56eN1p;Dss@f6C1g`Y>T95#=Vf!xUDRCdgk5Dq_G$uG7XHyPRO z<|E%V>#uXgPjAide&3!qnPh$Nih~GBSY@`FZs{yg?Iil(onT8jMxfkHY*!I$$w>4F zwc`Itm?kSL3paP6s1}bQ%?X$G1l&mjzsiu%DdWcs2eBl+2Rza^BURH>GRzFodC|5bIe{21W?JE3{G6sFIv!fnD;4+7G z*`v>@5z33LEX;_gn(&4KCv^x75KI^I8P>WW}Ic6!iwFzrh8 zkf&neww=zuBV(t1>k?%DR1?`@hiJdOdUgBEl5^A=;)Qwk=Xut`nWx7;H1a+&9=LL9 zQFe#50$dH-hU1EcOUHo|z?G5+ZP@=qT4e_)f+jpcf~(Bt^$NTwK)I=)d@zc*RBL>R z8O~??IF6&wCo~)O^JK@Plp8yK5c9gpDPZqv9p0Hxk%VMUDyZ$#rB*?QnXklo3PWay z)iuL#mmgam*#)h6J7%!?9ZIi0(nu|N&*wj?TMz?>YI?3cO?( zf$Ijuud+?%A>R5R;EB}d$T;8q`I*wbP2~X-dl25D-BYNd@&2JtRGs7J;{!tsW<>V< z#yiYk$u$HD7M$OEm&5|FbeLAe^Ln9-59(UEVjh3aIN~$CAEMk|P26tKWsF)jhOJ)Q zwrXC5@tPBdz`08dnJMd_s4gdVgltzz2nQBo+7*x2cNUgvAhGdin4(oOna&M`Q>;vT}WI{ov_R{B~x z;uo7S)(I@;3TGISqt&2|EIEccA}%)WL%X<3n3 z(P&#`-e$Q?YG!`JjIBYD;nK&xG1Jk~$u2rCnpac# z`WA%zHT(xr-2=r(958Cg12$-iHR(Iu;=uiuM)J~E)+P%Cqtqp_ z9P>7R$$Zn>`uFF79`cvbzCU|5ZmYJIk~F?O7!G8{SH@L3?-}7&d`!b+O8b;F=mFUd zV-mz+y2es=7<`j-aMC{9c3!hJ#47A7?WgCGg3drR(DW3$rOcz^P}uORWxHl;MQVUr zW?t*dk~kkPgQBtZColhYm*Ik6QDz* z97BG>b2osF-z&I1oWx8v*6*__izg&WX&CgGcF-N1K%Z1A2kKx7i?CukV^d0c1ZF`5eovUx4BRgEXIKIz!h>N)S zv~ELYhUa;FB{(}Ht|<+V17AgbYY+htVHUS0fV`wx#Ur1~zpxC5exar#q! zc`o)g>iN>E&0S3RY@ssT zQQoxutqg9oQ|vR(68!gdLp?a$Zf!4wtnd#&S-oI$e>j?;i&IRWJrJY{%_NNQlwS

Y>r;<18T?77q8BDkH|i;OE9yy)CohJ0sEiYtN$B_~p%_wj zr@|?4e_#Iwo}@>J4AZlFxuk6~7lpY~wj@}Im%ON(XlifI3FUo`$7rbUJMjLk$|=!M zn6M`Hb=UPNgFwQxB{n2i77!CLhBR!+rLRE45HEv?6d`Mw7YxwX$O332Vedv~(c9$F z8RRi&KtHU}Kd5IhjV8ug63(k;u^9Hht%+@wG?C5TW)W57Dh*L_3gx6z8Bni@K4j)e z^vPpEnUMU8#{k6VukKX3iIPoFtVug$(CSrAO?=$4I>)ePM1}N!XH1`aCwdc^*_$xi zf6yysu0$2d;+P<~j(bDc{>d={+8FVbF`=P8L(lI1;6&9P27Zc7V%p$GF;6Ymqqwa=q=St1-P~olM;b5HPmj|#? z;foWCleQD6V}1y8?H=vsxg@>gcw}jlgyfU%om>(;hCC^K{aBlWUl)v{K^h$GllrO; zT%%^k@0(?BW;hT2i;%^>_$B-3-48Fm6U&x4hra|_{MdH5S(Ep30e|^?!$38Nhj0E; z_-3|stynrjsvG8|{^Iziwe_uhpskWQPJtZ_1b1kUkWlU1N?uJe#wGS-^v5vxQ_9;o z@cA`o70yVml{hLc6hTi4V?f{>FN-ujVNX-zm}#e9!;b!I@393m%*CwA>8n$VX4jwU zQah2aqea!ocFczTB-KCd&<%g5R+ArU)n~lwf4dg>kl?~BF*0MJdci0Uww)INf3<%H zI%E?og=FK4pizfGFdlTQ(Q~ds%!BcT$848y-eRaGTc#M~Pw!#NL+1(b$*p4R=PjtJ zozK+MM7yB7YRc+LYATM`elhf4eZ(F5+VO5Z@25&Cx8c)TR0{5^hyMKUZ!7g%j;s4-CC;`!r59%f{F&bY zJ1jgrq?UKrlbS3YuWA`KxXvD@?Nk0eTyA*Y)}_F0y<0eNY`vXXL|yg1Zo8Hcaw8Le z*oACr#8Ex=RclCy25emLw71fTn#5CA_QlOw^c_@hUd^5P9D2R-fZ?Z6bA{|t-LdUo z4yxLdbmNqzYHV|aP`@vC9!LI8C=xA z&5}}a{Ip?hk?K~-*?sKs5wt9}EN{cN(1{aE0yR**&42YqRMCwzkMX11HKm89CS=c9 z`-x0L%d=xyr}x7eY3p)$+-cfht^<=TrHS%9P?iYi< zc`K^@Kvh#e^3^tztge{J-hQc|Tqg%!{^jf7t;>ivQ}1(*ei*M+pMUyozLV-;g;`nV zj;7MQ_^a8=V<0Jv8)C6q!(qGppbs&L^9S%;k?3->{mM`vaN`6B7JGk3?rsUP$7&-R@Ye$Y<=PN4)KGybF;-Gtkcaf>@Ug|Q-n^fp%E4yZ~?|JIigpNY`CkctW zPbiMNza)D*sb$_+ShDExwGx7RDqVt&p70wPEFSkAQdCq0PhCb%NZZKhxo@$JeG7M% z;&s!ou+tPxCLKGWMjG7TDP|gq9{2X1>I5q2T?ChOGAu}$R_XGG>wFf*b*xKR_|=KZG4%{)juxAalj^_=?FNHLa#elcs<1p!<5V zM4sW7wVZV#cQj=#_U)rI$_v#mBcrW18rsP|p{A0BuQ4LN&pCcO#P>;s*e)GI26cG8 zSG@a%o3&$vaU0Dgrt*xvr@JF+n$lt8(aeM}lEyTi1Rs*dId1euHwNe9K$3a?v1k~Cq2ceigUv6J7GgZ+vBk8CftFvZ9<`n5zTqQG ztwCA6X@eU~4M@$lmnAf91vvb!r`~Ue61X!PdRUtk@FGU=YLns8IBkU4i}f;4#|hx< z@nYp%{TB0gm)G$C#pwnPV}`OS{@j<2sjE#SK?kmBrmK~MLVtZRfP76#H7>z#Mh6#0 zYK_U@Xr};X--{aiBGZmcv2cFVvAumDnNH8Exwbe3$S~G_`}KBQeKSA`@e5je61=;O z|KH!z)HG2bw5al57NnHP#TsO$(bVf+%VBy|=F6GVRI+qjBpbH*8L_@$3d!$rFHD?T zxqp27n=!SAJs%rplMBI|xdZMy%AStDondnS{i&Og4!H)8C`^P@$MqI>98-n&2U3GI zy2CKRQaY1RG!wuqqm9g##Nw-}8Odw(Ni!yM#3FJJ@;A{0cA5l{Z1dQ`##OnDs=itt zNGcZlQz+v6hUHAs*6+VhlGkAV#f0YK25)Q?PsuITupAOkBo{*JN^6CMWZsk;gy%)$ z93k@=+|nG9numGG5jaO7J%p(b5%OZF1H8_}h6-gQiWF|1CS*SETrTtaOQ=eqjlW}f zWfY!&v%ja1k;NHPSX^C8cj-D8$fkTfF$=&X7tg=)Be~RBfJ0V{Hw!?TKq)v%JT7(b zI4Uc?a#wUZj-Q3>m-|&;{#dvia_Zj0X33*o5B-^Lyjxf~fruAv{D5dpKY>_>Pms_a zJoTwAQN7DH3VNJJox?woX?7>F+~=O&F6$}7QsDjrMI0GYJ~Z&xAQDPyOP9~@^b zGf|EgqGnp67S%N|?5-54zG-q8Ken@*ydYFus40_8Z?y$M0DlXz$OsM-H~u;(s;}QN zx^0)kv8SBPHM?_VbpyuGUnz?ziwzz;`0cda3~t6yyOhGy^7>fi#wPCCC8yG`_Cbtqf6wMP_eRW@vZ^K zazk&GivUFs`l9^%66rYhtrroNk0Jam;YAR|v0Gi1qK#-pQl<322n+=#m)GVD1{4cUDgG1|blh9M_1QX#@;#;R|FM=*yW4&KGj&tip zgfUU)L6b32B_PZZl~dLYL18Jq1oM5lY3p z#mh#;Yy~Nz7wS{m5{jf^N!%>xb|w&3r+;aeI%UYlLHnJP)K}@Kxcw0IaTo^8EQQOe zsN_?7`d!HMaX2``6SpC}HB>k}{!#Q;Q8xUjKvJ#Pwbt1F#fTSCatdbO2N8F9KlZOH z;7GXK5Wk4To_MN&uotm)%0UI{*9v(N`A$;+1#B0Xi0#(OXFYz6v~#n{vHk30yX#+| z8Wzq`&RmL-i7CPEhC`*ZYd4oW=4+NOeG&w@Cl$Oau?U)IwKUXN(K2cSx&ofE-D~Ad8hv@|_}O!O;XqQlqg5 zo0e{F$Ud<|R0Z-|*3qV$2lAkBG;z%2*YLw#&aPvl9-Svt>6`r7u8$e=IE9J26a9Z7 z0yXrpMBnz*LfNuLkej?_U6S~+xl5xj$mj*xnlOEeP(7c?j>^>bcgtArr5UHw;w}|> zaeC!@A0v!p!SsmhazZIJ0(PcxYTs?KK}NNRu2N?uu7EK~YuUN|S| zBsegPWdOC1S9Q_#4(R-ARu>0+NS(EA{TjYRZ=i2sP?2S}DJZ5odo#?{xa)$uBDH8S}PQny9k2TgIfL**>* zP1F5MOxRYLJyS#nX@sTX(l)mgQ{=3)$zO}4$QNoWu@~jBYs$@_YTQlShRY`=MG{7y zvFJ=N|IU86U}`ne%*%7)zhMX^Fqr7zU^^4U2~RTPe*XEC<&)P{Wq9ev6aY~{PsZBa zKS?&x=0Ux`b)8gsaM`oB5=HZ_qEdNu(|Q#IZ*|4kAN@!4=FtN+=ys4ATQb7`>HOTK zO23$R4ujKp$or=p7P{s-Q&?ek?)MWBcH_s?(K8rznz#& zNn&Rtr-7>2Z4OuB(`vuvx!6HGl&wE4*mb^77(xf@xFeG~etIh4aQx&;WRn(pI5#qk zUO%}@r(~U0FwSvAwtnP605l zZDn4ntf0;U9&ln;L;K|p`#TTo&*;PVNWrCoo^598eZ=-5OuDf6UQxCXvR4NLL#}w!Z2K}w*9EbaQhGkcue zNVHXGnSCm{1DPz3=+q&a9EihCR&Co8<$fIb9X0!YB1xGg-by1j0nKa-TBK}0t9`g_ zt>qJcE49A*n)G}hK^*dyj`n*({F^ln&0qWCsR#bn^EkwATz!~j(g!7PLqv@BoYFjh zq-y?-ll2Wha6i(pVC796ti}oa2R%Pbv&k@ zdz$JLt7i_;>P)gACf`inrQL{bJo<)nZfd5;ZR^d{|4_wCuA#PZzrK6N@V01^v7bns zN}~|!mYkyz(!l*?MiIoftsBPX4s@O;{JV)RP8xJAB+>@fY2umOb4ND`fPB$To2QdK z3;1nqA0tYsP%;RSd#m0?x6l9Koq3_B)vw=66pm{0Y89b{ErRB`t_%{&w)}z^yiEQs z-vPYBg;Zg&lN+0_-cV8&V;S`j?(J>wK_lraA;e&7;ybG@*lUy``g;M&2cJTJv&fV< zm+<-9a7<3|Mr#YdG3zR5L^UV23)V{wC1pj+vXOgdcS=+V*-Q?IcM#zYJ=Nv13xOmM zZ3K&)v&i-^nX??_uzXuNAxpClC(#Q_yMnJu*E^Md9~LwQ<+X$24EAq!S$EYsF^FMl zpqkQOqc*&I#PA~IUdL+hwBRN6vA7T7B^bdd&K0{MD|tuv@vM6$UeAn`>gUO-6Ha_* z{wZIRpclFVBsTQEy2Fn(w0kY+9e+U=U%j?i(F!tdmkB*`IBK8y4HQo0qtEHbQx(Nv z7cZ3h^^6H6h68wqM#4Wm2IizIy;JO7BnYw!9H9;y975U}WJsH4BAh{7r#RIK+Gn4= z#Jx05MPFB=DRv3RhSe4z?#X3aG`~w*``|<=(7D)X0(n~Qcd+={yNH0?#S&b(F@49B zM|a;34>a_v+HPOd=^~X1zpxG`*o)o73PD|iqY5=$(-jdEBK47kP~Bn^C>SxKGX*3s z>`{p*+>kA7*l;-2>zErUap5PIr=joArlyv{MUTf64bvbq z8_jQh1zD3LR}0#C*Kp3ZOh<42tY45E!$8RO?#l zT0NDfMr`Qh{2X25FMpe{fhdH~(Jiq~4@^|Ij5(hqU>S&itw#8f)<8~obNU83x8XFw zDbW3$@qFf?|KBf-l1A*fDTu?Ai1A1!XntgVY>*qe{W$o0jbQWSUH=l|(Jqct;NK@U zKO9q6*x89Fv}+58%8E~4mWGKZL9jo3%h!mBbrrpipQ~GoWlV{+_L7o7>melNB3#qNx`x}#BliM^dYEA6}x zAEKS&Cf{zFRqRvARK6Vzhx7~SAxLD(nAm25Gr1RfDzN{kz7*oAnMb=8qtT7L6h^ke zJRo!;rmd>1$m7D%lo`W#4Gr5et4S48&tm4;z;MET{i~^XQhFg9r;uS!tT}C#H(HrrP^6So$_{>lPm*6bR%5lndv{FWodL=TRcA4cW;6cF;*eb* z_7 zlh9HiQw4oKOwQnNH>+I}dw~D&^HqtK@i;Vqlx#4|auvxng#4q~N2@CGBL}RdP!d;) zAC?k-ypKKV+_3MG?CSQl$*>sSfqmM-gP+#!))2eCbfKSepFb%rBuFS>8$e`Vxoq_; z-n1czGpUT@INpsOJb0Q0;g6xM5>lSQ`iHx22sjru$}O?AbGGyRkg*;O>C?*Zkhh;% z!}!z_e){S`{dJ?D$45kAp;dLEYre+lRLuKa%E%!0x_P3@P2(PpFEMRP@e_vee_Lto zH^uHE7uT(Xz34%CYNqjh z+!nNvq2AfRdX&Rg3Em}*>IWPic*5RhSVN=EO@1cPb`tdYwxY?{8h)lLo=)g$mOd@ZjfGL|OJ_ey1!`;EVYd&~J zV5#_YzG%_|7fK7?>*oNZ>wg3H4NOlUMUZ{> zwZ9m?%oI`9g3^#Y(0}5Y3a74iu4|X%En+VZoYN~RX=w>K+`h1m1U>WwqDVA2#%H92 zbAPl_TDUrEq<%^7I)4Zy;G!6B!G040*%7JO{J;Ko=R6eG%RQjLTkbYPlL8rMClO4M zA~*qo^6%jhJW?1@N~+=+gVJvzvF-MXqHnow+tf(UeSd7pz!#|v-+WBl2Dc2G_~E@9 zJ0zg^>i^~#np&=9c(r7JNisS5-X8YP4+ zc`WZ**Sk^W<;|9+x@wLcEQOJnk0835n6#9kdA=@S92lS${o|90@4GP7)r9CfCf6I_ zG;_{An>=TRczeQxixJR=WzIlWHK^dn#4ivn@U@@BJK6`j&UCd1v6%+AHvJHLpWs^O z9pkP#^s$&d{*My%H1*XhYmL&DX1xxjNA6dwZ508=&up)_{qvq=9l`TPV4KbC6CbV_ zszv#f73(1Z?R;F z2jc3})oQks;A+_#AQo=Hj4JP;(+lD)77hxvY;2M5X}?sPZ(lMfAVM~3{YydI#Txf` z_>{B9SXk(V1 zZh73Mp;OIt^!NvR)I6nA^zfM!f0Ou<$#aRt+t7vvjD|+ZAhouC6VwV&qzw~SqfbN~ zyriDOqFfvCHP=19GBwHc^)CID)?RDrgWczRoMHQ;KmY2pmlOQz)n7Q(aQ+Aen$-m3 z`eh(?oadZjeNTPQ-yYyMhd77o5T1X1u{pRW7{kd!nU9fCO*s8E+oZWv_rCMz*D_fwfmg~?eV#;1BBybQ zo5zu_E=H~)JUEqQGUSW!e392aOzzY5aMW8(BQ8IhR?*cpRdZxDN3> z6$0MhFICjY6Ew)<#>gt@EvvUF6_>I^ivQ5)kk+{JF)wGC`rsySDL;nB-5L>#lb9pv z`9;%Kv&Cs|UT+A@eDK&TpIkL!BLbdn>Tc?4TE2~f=(uGi$6qNiMgsR{EXF4XfK|oD z;1oeB*NZn@Bs0&vC;d%|oKlD$NC>rnZa@tj^qXk7{pupaXCH z0$J#)Nr8JTS8eWh1p(A58PNC1SBF4l%8$-Vj|)RGwF(fi4{B?R@hcb)N`G4VVzPBX z$15d}$?iErM{Y{3`S(ws7XK{&*zL6JYrjQB*wM%@&(YM!|E+`QBeXj>*>ve`lWCk* zaZuT!bNxeIq?m=EmXAke{CaG)Xte;M^ju`3R)XP{WI_TmXu}f8G%?jMx%`R7sg3tp z(p{Bjmu)iea8hs|*Wx{o5m4Y2AY>`>OXR5IM zp!}O)sEGU1TtiL3xNJAfV=%TJZrNQ$PCPA#NdrHZ$uV~hoH-0`a}c0tGROl=j{AB7 zj)sr&#on7UyQvSp_c@7g@kAX#t%q(!ck>T>KG57G|AMX}7$kRdrdut`N$^p}C0}>bS$>eM*H^_! z3lV9Y5z@4!qKx$^7M)aEHu|wd>A&BzpJSjo3l(=?M3;KydQXtSNk}|g%&MOpK_T$! zNspF#{HK?FALrj*TdI?=glUtKMm_w$kWM2sBLrePUDaMjIb)If(Rx;!U>x$XW5q42 z!lchYClmf0!`oLy)d!DiK`P-z- zN1!e>pT(r*5ADTUyr#hc~N!S!*)h z;~x`8z&F42`gqVS-M^EC>7FC!yjbKKwMk!Ys}axJlFz7|zf7WXT;3hDM|#2#WV+?* zSW_Hvvoh5=92B9eM3Q-i>hRX=)DS{KzH)HwXO%h3^e1sa|J%=RJ3n{cP-0Uucu0j* z4Qe{Bke{KnS~$e;?#N~4IyQ^dpY6Nt}Pccret?9j$jca%49 z)NQ{Lm7`nV9)G8Db$dE98(RN_LAr@{)V|_T79XZ(-b%+cW?X$w%1zq}>9~hPT?9s! zk1&vGm@m+w3T8QWu+T-aQqmT(N+AQSQQSJ*Q@xiyk)}u7J@P2|t?iC3isyO`9nbm- z96upVNVG$&)h=Gi`d+G-Z&d=uNY zZQHhO+xD5WulBz0uIhEsRSWNWUO+rVyWuU%7=G&byM4qWqA4iU6CYHzh}CXFm7XUu zf?-1JJxSY0>M}|}lENC;&?z7My+{^jB5WOAD+jb~gb8&?+k2 zESE<;r+>2wI^G1cTzPn6@|^}jbR%CQ@C9MK3@lsvde|QroI|KlbryaJy$HRh z=RB1uI#IkWj3}Ke*_V0vmc$VqoScN5oG7J{x(Ra#Q{#J&aN0+{<=h0RkbX*i%s=0o zfobiTXhsRJcoZ1b(5)r)DnVrT#u<|THX!zn7&r;9JJbV0V)rC#jLg9Ir-S%!nDmkp z28;&dR!R;qQ!$K-GXkTq*s7-($U10{Tc-u2VYw=y%_@rLI1Zt3Z4q&aLy+!UTH@NY zXO~W5?)yd%7ZXqsOqYA!`5MZrK}PnoBoxfbNCcg_9+mvx+##H3lj z`4ph}OfLdbx|n_ksErOP_Z>%!IvQN-NQAJk3My!}sHjQ23B~-ZLPFFcnXC9M0`k*- zHCWHS&KSYDO$#*Ap2Ub`2HevjG6;i3MmkAk#%|GWdett`!Y((JHX}V`DLEBS0dWBV zm-?_-N@`j)LO~vR4n)u~hyXqeMsVzj77bWRAde69Y=;v7$y7vKsX1ToNwSWF9p~%Y z@A6LXF`cShtj^-CuQsq{JA3IY^tsssGkO><9t|Pjk?oH6T)qhJhDZaI=5c)5;Y`jY zcg^eiNuLWMwDES4fgM}^ceq?mm*2<$WR7QYo0hcaqTr8~Rc-kOim~&x$*$!8O zaUMNCE@UuoHUtzEgA=b&q;f9AB2mMi>`=1HNj)sVSX^&{#DY**K3^W%uK;lYbW4mx z-3W#ZLZebbrPhNpPvs(4V6T3Jffn#a6X{kuC-jOt`6ZX=d>QmzIOfvD(-d=fbew*d z7>v^l)oJX6i%-8%M{%1JCwCh#mQd}Xy(3%ovN`7UL`8xXmh!p{q3bW8)lhe$;?1f}JG@qd^IaM8ULC zwG1KuO9i}OZ1Qd+?vcL8vQ`sOI3c*#9AePGZJ@WjceE56Q);i>iQIcHd~5#wmQ|G1 z!+ywkAq=t0rz=uATI-p)_XEO085mKk5^5K!cIkdUv;JryeXxL{0>k@PfPhE2DtOhF z9$#;S-*)E!P>sDm;Zm;dB@6_O{H0sOiSq~Z2^&*7J^VqiNtqQaz!M*JKav)IC!?zV zRz+3CAsb4KP@N)qvRHOrb+qpuyu7V@?sLzzgu?@H|4A$eDvP%%9e@msx5-sTE9q-{ zNO_H3zlQfu?fS&+B9`~C-oJ zW0$_@V9&7@bMYwg95@P~o_BXLS8I=ps_S0v{#0*#|3F3S@I*X!JUSF0*>?yU9TG_)T!EeGv<(<}3C<=iq{GQ-;pi*7Dh zQKc;Z6lOx@6=_jH27a|^RGvu^SBW%@;@hLJ8o9zot38-$O9?|$s! z){#o*5kX%;r9tjNqOj8#LjID~;S1-^BH9VOYiE)4!a&^ENSYYtZzx(eRU@TSa=G7U zqrAF|C(jghzH4kYl(xWu{bVQM)=$0h(r#Jh=Z#1n*%4+dg>FGF=`y4o@xZozeVw zhz$nHZ{Q`?{?*%q`07JuWBxevJ^NkMs`!WIEw6G-sY!q285M7Mvd_5oM;%4Vv!irgQ5cOzn^n5#sUTlhCIe&=#)>L zziFr_(wvIhjBnGZX?kn-{rh@icY$pVH-4Ti7pOk|(+2{do}?>BM<$!SPcfTt5{}g7K6EPTVRB|lLcK&MzEZMUu$_V6I~=AX5yR~gsckDAgUpS| zLp1Ae#oJD0>K7?hV_hS^j?0OJeNyR+fyN#}M5OQ+H=zAGi=irmdXK2EAg+R#Wk41) z6bSnm@M3T$6;TsOTYGY(PZN44%yZ0>JUA#wX)s};eA^tF%eW&-ayvS5Mr$BB3(g3bC6xK?iexEHjV@57i!Rm zTWweqqp+hJvnP}Npp{z7UM`mHsQF8&!|q0QHd!pO1{`*H3eS62R;o28;&*Q8xZjP$ z&U=sio%@AgxXIJx>1j>FCAZm8xN>#m+au2Bz%CBbokK@z{?%5u(^M!I)VIIw2S8@8 z4z^YT6YrHJ<%~9tB)O=3X7MP|NR1flk^0A2t~5X2a7F7&Cc)^1Iqrf`z2{p4Y&z|S zAVp=~q7#YnLY2iTT9U_h9S%xi7M@4HU-T7GxJ;m|zt^GL9-ZQbyc@mG?~}nKNRN6| zI&F(RfNBphf)CkV#YJuJoVeVm5wH><%k2_(j@Rf?<{4>NYZ&TaJ+nV2otIn!gff$8 zB{Vu^f_s}TBIV8-Xg>+S7;=8RBY8zBh!zT#I4E(IjK?09*fVpc`0EiL)|swiUHWBW zc}TUFst#|&)2amIl{tphQu!(etVd`XC`+MFE64lpk)&L&6A=qz)$VO^0E-O7B9D-0I4Z0XXY6RH`EX_B{Gr-(AWHX?aC@{VA zdnw5o1l}lqtBb)Qf>I@-erV(31aW=dbK{{+CaJBbMuyWRhggQpfzjb|d@I49%5dk-bqS`5;`NGJE z{xe_j{Y(-(nC+%>i5QwEtJ2NoJ7*ZrXFq8UiUe!~2d7(hf`+QC(9<(M$!GJaR&*S_ z8>K{-^*d<=&}uJhX>pm|IV7poQMKB>$^^qxud^O~&4e^2J0y)dxa}3#I2TP6V@As| z`%m&Ft~!&IZrMKGUjstipV_~{-|Dcodt3o>Nqw6m&p)4wYBpKO$(5V3TG7%80w$aw z=sPNxT+~5a)T~itMyOqxLHU+=D?uWVnCKhF3#Zf%u<#)qKn*DPw=25bn)G4oX&8VR zCOd7x$93msnrfJiJ zwm#-;=zIs8q-9wpokA7C#G$ZXtuEad0)OU61 zVyQebC5Qhc=r-Rr;dl`EGdoR5TX_T69*QYc5_5-aBNf^^ko`BjhNjb<^-fACp;Fy9 zU#mUv10Gk4^AE!pUtqXvb-<@JGNZ0fA~B+f(cb33qsf0`HfCzJDsPO`hYGDl8%T3N zQez2b^1@l!%bA;pe@uQm0p+kyy<9;%N7+c1Ol6ePg7A3bkm<}A1d&Z3Dd%F2ETNWS zgh+^buk&za-EiWeuFmd2I6A|PLtdCl zn!+FnFqRc+Zp?LS*MpcRw8KoD45|kkIsz78^lbM1wyH}f_r2GwjrjsBF$sPY)3gg{av)5WyxO0FLZ>WYhDzwKUj4; z5b;j*tT&LUYL)oIkt)>fkX8hMRtevkgp2TPmB+Jb%EH6ruLqFZHq_qcUP=p(#S+x+<3C&Mcdvpj0 ztzmvUDh5Fz^0M$E07-MWejSW&0#A~Vk5`mhAzZcvFk9{&?Tg@VK0XGJ=jiThi(Pmg zIL-t-b}D^i+gp^JfCgBs2}5xV9lp<4~o(oMXAz7J@=H zHZq2cWDwF2s$kX$R`rtRrE3KkSZo}Po4CmJc{t|55Ng-+f8K?f2eX`4pJ)Rrr=6x2 z9Lg4zo3&C%M9B;kC zh9bOj85U>K9tRzpT|R9UmIY8Z3b5&@bJv4lv~^HJspnporyyih{x zM9~8V!d)|GG>Lr9TQR06c%z2xkL8MHC17&L-~ogY_+G#b^Ix=4dvhdN#G2@rcx_#> zT02~-+gRbl&G0*wjfW3GxXR%w4ctQO)|eZ)X19Jxc=od;-O)R{&C>2HA7a`(+S zCepsL+GRzH7Ts;~-fExq8ct7i2Uuo3>OE7Vn{J++@=g zU3bfK$-{eONns6|w?UEHnit0t}VeF+6hLBhd(*Wur;HKLjV_5=VnxQCt3og#_l%8MowqJv-&ww z_k5e=2FYVto(vDh#s5lEOAFO*CC-vd70T#HS&RR>Uz8{$Z%@TWHa#>ciFMyN3pcGB zwUTie7$POHl*UQe5u39)BaK9awR{|=r z3*8u14xeqY!^svzowh@_#Z4cIq|01SJ%KsPGB)Qur9}htED3rljgrVC!Z0HTqbzL2(-H@{ z;9gkOz{K1gZWOCV52r`9dGd(Hp*4)%s|+Qf12sE!gtyZ~;%n5d_U*W&$L^Sno?bjW zxR0)Y7L{ncZi~g2+j8?hMnW2>j>mgC-{qqpY<#Wmj+1Yb>8~Ei5LX74c0ea-1Qp(W z<0Z;0k)MV`0Jpb}P*lFyN$K@(`Gc4K+#}ccCAa&$k6^*TC&xpcfwIN4h@d6U5ROGX zdeT%WiNB?tPo#6_TD&#|rwiR1!YIJ_G`$acD`D3`HlC=xG(7MtdqQxcTctBW>{1td z`HxvnYp#_r-iE=se}2$rH=y@&BHYqgNc3-8)#X-fqVC|h}Ge3_dM}Q9c zvvq8Z?OkChM93Qdb5MRyNq(du;r9?m8MRdY(RIP;FKszdXeVzcB~{ttcLn3$kD57g zq(2r&os-%mCKnhSX|SlBLX4}7+Yf63)um#Dz>Pl>RN^r^T2?22zyic*8r6o$i?0TO zoy!z8fqPa9R~;8IPqT9=hAF0 zSIMJsOB?D7yUk63nxNe~nDuhm(k(;GoLkQYMoHXd2WE~9rj^Fl2Wbb&<`x`v>~R`T zXIL<{t+Jl9r*x!ZrNEo-TkMVXhkb&zmI0pd(2Zic#?dO@bl{awWQZG**-^}fueg$CQBlU3P2 z+|DhMal5%89N^O3`Mlvc#dEyjc&(!a?fv$qlx;P?_rMvmri8N#B}* zok%KD_)x;^v0fEQTWa}hOJWdwKo%$9_~ijBtoMP-;q*sD#j~D5t~GKj`6)f53|q^q zXOs&t2rwey-7@=5;@QhnY@vw^Fkrk~WAlx=y+7KT3dX)@9n)*|fPLRJu1GN>X7ayi z{i|5NUsp$9kafQ^tuu0Z6~hJn1)Jw(=%$n^u{zy;!Mhrg7JRv>(@Db0{2}B04|5KiJPd#rL+@X_qp%($Hg*m=os(1 z*~!#;+_Z)BYB&t+E_Xk}^aG%;qFK}LK9G0My2j6CFgoyko?NC}QO+5cFb|J)32dw5 z32w3i3VT@r33oxDyMLGiqppm`6vvpto<36xEa`vHd&Ic7|ZoaT11Lk%C zW`DNWd-^LT-R%>Turp`8-^LO6?dO>&B+voPC z2g=3$cnqS4bJzSfXRb=C1uQit}zGYW9J8ZHk?h$==3d3U@!lMiwra1n$sy+ zzfHf~?Im!w?rw3#>zTdqe2}^*>-B0st*BXAK7=#A$X1xFFAn_~(UW$#KQsOFec7to zwuLVfYG*Jy8DFP^P7ApFwPDUs`7~|fBboHEB}R`CC9)IQi~Rf){MO&Ts&+6vJH%1#;t#{$n-zbIGhOMD0ouH!-myjt?EA z2y4L8;+uPq~P|(~AcN93;NwRsZRD(C>*TK-=bp zWEyPkD*UmZ1r(V2*ua17F(G-sQfOoM`lo%QKWoob;r?i5^K=oPyVnG$=4P5rPyx|p zU9tA29{lU?8+i0ML&L0fvqQWeRN8;2#FOi@vEaNUpSTg-@W{iJ_}X#? z+llbOtkR!o!_~LaxLR^tp~;eh1e$CpFg z=!?faS27-Sy(oA7HwjkU(}+T@pwu<4Svy{O3tqRCMh}}HrD;gqBq9q zoZZ4)s}Vt2+);m7d-EV;SL}(9YZBz@kPo)LZrWIX{Yua0XKted?I{zM1=G7qtoL< zFG*I~y*_&{*jBc`sl8BP@CDAv&DAOovk+Dz&fLgS`&?F~=rQCGp4Y*_r=+(lp4z7n zUPKz)bT`m_?0&oPPmR;Q9l~My+I{G#;QUKOHmO}ZHr;b+BYp|%V0W_=R&?Z3l|HyS`}TC3IFAs=_; zCbgURR{rJ!b*;(1e7PQ)e*DKK`P+kZ@BCHVgA0%jqk})y&A#ya8ly!`LtPlozA*TH z{#E?}SF`A*zJq^$D*g-G0D9CLG?+)@xExe;#b^$ReXJ->77F{`hx-f1mutoC?)`;o zvJTzpT+RS=yh1nj=X(x!1q>8*eSrhCK3~FnBG->3b*)rl>_6S)e(^4h^BhLZG?~3t6vXeyR>_PU4oT^uwKLHd;r%C z+AqbFH+ z(ui=zLGZl4SKXUU#q!aB8^9UvB28XS7g3{>RNx4aa z+5vhxwMM~H35AHLcte@wOzCG(j731s}t zTH(2?BL;aqfI}vqPED22M;e!PL>+z2qVJ1yuz_-~%cdTCR3~3ys|$jq=!ReprT3Xz zgu11Qe>13t^>_w*9P>3yG+2UlLHJwxP9xTgl6lIFIjNN7THMkpJ#s`L_bcv3Dzu?@ z<-o^rK#Z34fqYhx$zv1iF49r(+ljz1k^SG}Tbot@<`rS`YE3jlP1^^0+1g447%jqe zP83&Kcf-nE=Y`B@S8U0D(yfCKa?2wk9ZkY$vkQHT=|+(*&P7(DNXhBgMoMN0R;URiQ z%B(N|_skn>Bsj0%QXj{vvd61AU*Em=8t zKgc;?Rk0zT`zC7t1HzTs`V1bvje|;)i!j0gwyFF_hbo3=9pRT|4&0{o;Au~^m7b!X z6bR0pe2*8p(WS~|o8WI2f<;>+`5P|E7V8s05C%a?VH!vJ@h`;#Q_+KHmOTUJJG!-} zikP5OBf*2q#i5B|<2F2lRF8y3%+wi#{B^SkymW^|DhE-Wfv?F6WxQK6hWtQDCPOPA zIT`sju(m@&J;kzOv`JUWFDpG|7Q;g=9B^RNtcg%%- z*r$V}%=X3+v|xpqhA3P%1@l~qK+<6Ac){({EU&6Cb&}?tnKo_I7qyw%{c?C+C5dbb~+opWbw!_;CPbnaS8W_Dc;tJlRNb#%iP}^iovD#!tq|zL5ej2dJ=Q2yY6s+_lX5o?CME_jw4Q+I^5Agc$AnfD zJDkUaU5uxo*!1SHDtQ6Yr=l~nnV(~m9cfJ1j+NYHxJ}ZPC1-yMQ{~j_tORM4BsEr@ zw3O-0nu^+IdhDe)MCE0|8xjj)q6{HUxm zA>FX71;p^wXvq=haj?>y`U{ zd7y$Piq~h9R;sJ%Ql-rF`^i`Q6{dEc+@KHn+fh*}OdqVl*y92iD?&O{Dlqg!7;pYZ zu(3gkDak_1Zz>^TuNc_Hv2#FpN1iIoSWUGzgm~vq%Ca zh;92vYGx`k1nwnDI9{{UCJKMja(x8M9UHJuL##IF*;vSPwnu?sO-qPaIX&hzUqON+ z)pFVz2o@RuBbWvU)8R~l|AkFz)-2+mn%``&tm&71DF=dTW##Z9lX2L?qz7G&Y##?b zIrCyEMq4V|<0X%3Z!H) zt1ttq21`ilnZ>NrFLFpXd&gw_4t~H+*;w(AfQ}kipbfdOXWqWRKI#Zp?k8Y~p>gh~ z4aZ#(uqAZ)rP7$aQk9B<1p{dY1 z`^N~n_veAx6*W=@hqoGzVlcdM(R0~+eDDw{BQkRCOzOTII|E1RXpggpg+?Z?o8D26 z)W0c|-R77Tr*`?`kfihQxk{%7f+Qx&B6&nkH;{Ge{8EZ?mV>{ryo-NVDCf)@U0idZV zXtjQK)h2X{@e-s@;q9}&s-E3%Qc#_c8sI?n0|{!jnD zTx7XZ1Uj6sC%8b!;60e1U2fN96<*ve^Lz_-H}^0~OJ$w?2?nIK`5HXkwBP1k~?WY zV4Go3K*BIU*%|)79}-z|H#NvN2xD?L4G1A92jl;E6u$jC1^ly%``<|JLACX$^$|qx zY1N1PPkNP7XGx}j*rO1{f**t!UBr26gp~+^xl192feritl)f+`0a$@B{6a{PFv3ELelY&x zfD~arB1s$}5rXm)@E=ngQA!`Z6eA`B#K{moDF$RP1_OoqaVnDmB#M162@J-b!b%SN zo`i;>Z;Q$W9p7hwNp?A*m0yVf-BnU4-}}cA%~+sEsLxlc=VzPQ5{m)KeIaj4+^0z~=Q{O$M?`tCm(nUU;I$~yMX z3(F`SZ=rfw;ly_;I}d0$6FeRN+lzkP_UY}*<6-!a{MAjGvT{<++z*G6?af6W*#4ei zcQS4OtCObZ_@YVTb8(o??1^*@VwUq^xzT&JP$(Pp!x#rezfET5!uw}zk+bJLK-FS# z@2$iYK+29b|j4RJ>#l3s~n zMTgz+IaRu4@-4~Pp)w?1$9BU{_ zzXOV<;2%6|^FUb>&il5|Z-C9$PfZp^b)uTza<^o6WR3vh?(Dt4;R(J65CtMPX6}iU zU&yQ%Mnq?DM~8Plxk!!C*NN=|hLl%`US_VWKWFf!hFp=WTm6p>A+9Rt(s-Yri!s|9 z1GW6opy7p*{K-3>#&z?V)fdDNcg_D07yDJu!jgcejPbje+N%20H8L8cexE7Z|4p$e zILJakKyA}c@ccz3DJsa-ed_$GG|^zPo!!x52nqIho%b&#|z7G0YjCut};;M?(pc zE5R<#L}Leuh4PHH>cI&z=VrMD-~@~#d*fb&92TQASt3Jtod%f#3o|cqn1T}3ivFHj z@;&a9ESyD~9h54&k4q*m^_uA(29{VI-}rGMrjKkVGfYnYN2AcvhT`R=D<=N{Jp72fbl-hV6#8g1f)J9Biu#0ys5y(z_Q5@}U0gd%z>7tFOE6{)na{J%O(vPo$2Z5RYiiF+ZT)&Z){mHvime~= zxJ#^-Q@2@wo-}uFrNp1XejN1Y&9PFq(yHdLTIP+oZjdw{6rLXp@}2*AS02#;S_GYZ zbGjSmbnFd$M>AhIm)o^ntQeke@YKmuYSH5!T1)$PxXI5g9c;UuP;Aq#q_{rxXZFI; zR32Kh`(s-|Po#HPKAakEMvb=S?c0qE<89ke9_s+``OYUtmQ+82G=YgLjC@&c+zLf4 zjF*uK6FQ@ld^MGH6;DdI-c&T+xryy)QclkMo3W`{tNvm^!+J~b`ie|Eku;LqZL4A>b8pmjfqK_Kt*BYtJW6@Gd z$;W*`gqyhe`=wS}St7WL{$plo)=9NAX$zt7ZXI8&gd$p>MLL1m-?1@F)f)NwV=_$h z_^9voubF~WIQ5ZaQ+Sd5FZNW*Vb(0jb^}C!F{(I6L60oEXoh7p4SRV2Vyvs~-N!k` zIIZThX>G;-(7hyuz384ZB3%$?UQPNHQa&>E*AY9plceh;Z4HQ4&RYG79ws_}K=W=D z{`hH>0*{rF-9s};jnMJ1%=L<@1L~Ml?6GqLNonCJ2kAL@VY4R0s>8V2n$3lDXw2|G z1a_Xq@wL=SS!RYx1F_Ac@YwSB*i*K#E52TIEpynsSEXug6xEV*=eJ zk~9d1{?yhm*5G7U?n9411!-bc-axxaXe|e6X?MyMa&Sge6BJWA(dJzp{a`}*R9;-b zH5E}D=|ob#7ktjbW=R3eIOoK;L2C-2f^yt1LR048Q}HxhKyt_|7y8;FAAadYJ86^M zOr=S7;dM{qyxd?`NA#qcf>Xn{3D~56j4~VBYl+ww7_e6I&bpsoV!Ed&W{J2bY4#7- zCE$dqOJ7$BS}Ng!>|tHkwNNAV=jjWT41*kmkJ{@-`UsQfK@aF&p)&l#Y<-an+saA7Q&YC}?kOg9FaePYI%ZuMH)qCBgHWbw`Xdd# z61*6!#FEXoZAniFoUxt~s~G!LEF_8djP&+ABq7KL`dQ-LYQMTp9o*IJ)-G9t*(3aw z>$buxQp%9y!OWl~7Fmrm!D~~GHgC78o^qhmtrV+^q5aYm^YMqRTB(s)qJKmdFVd#C zsc~UHe?iB8g;*wUvx3O}AInLY|7AJJ`aeFC$zyCFlmG|Y|4E)MwKSvmo8Wx1bz_gg z78WDpU{HR0{ zYX6>~hWq}!yE_i&%WGAG`*=Jbr~Bsk*o~5bNV4odX1lfUx#8pccKfOO^>%p(tmCcj zHg|7Ivx9lpXa&<+UK``7~xc1slz#$V#Q;huA+kB95fTt9hE54U$8 z@1g1L^@Eq`=;~bnyXWuoZ@6uSp@Zk(@Zq4V? zetT!QVP8dDVq#|5HiGza`n4UvXv)E>=D?g@?D_mC2Y>1u39wGVi?@&B^ilOC8+XO} zUfRX|TIr)g>|VE%Sq=PCwFnN85}Os5=ETCVzZ6mGB_LAQLyi8E*B(sd;Qp)uyBQgB zO1PEa=K;GeUlh{LN~{g(3bB4uTZ96Hdzdy~745h^2h>aybX&$Bh#VuJ^mjgbI{QKU zsyRe%A#%8v0^x(fMxcGQup3h#K?Y%vg~U)ldRa}UD?FFj{Z zqLlw3Ltkw0mSR9EECK{nk#zvA_YdRbpVyR<^lV;tpsoD)Gmn$M+$}xdf0;9!ZcYC( z=#yB~Eeq|#{mTTN+t8%p`iF{KU~W1V-SNseQkiiKEw(U$YRn9%G57><{Ff3;)oMEg$jqI+>PCAm7;B*Y^xrmimJsqBXUc%1HsUr_P?^CsWTpx~gD@xK zek}3C?WFzBjY}|z<;BG%C20@(n?-y~khR5rJ36H+mI$Pc?aAt3OEZ@q7ma4!%&GBy z&!U{mpiUaIf_ISJUzBMwZyIpmk z!(!{k*6G2QjCd!w^zr1#hJg=FllbWxyW6=8S@YO?P|7qbR>^go2gS7h?$69}{9i8! zQ?%JV(Qk*udsG3`M`<0+rVF}89E`O#iLv$V0`2Yhms9D8%$)qzZ8`5Yc@DOpD%TI3J`}Td=l5)Q z>+9oxaDs5s;hO!-I$8}4xBRo(iUF%1lpZK~GGxjhHv#Nv(ZwpK5JGsu`#v!OPPuY^ zwMvSMVYS*s*X+33hI8ffbEplHA?&&Mp-}n*i<8C^ROA>vu^H(x4A9sPMC`l)8hRnf zIb&#aK#F4&L&$CIq6P)?UT8{0JHz4VZLTm`IrW1=Hke8L8D^(6+|DM= zYSiw}rQ8K*>KX@AbScTrWwvy4+DP+dSmbmNXMxpCx}}RFP1&cK*~D>_buB`j!VFaujY%>F zEaTm)wcK9rRV2M3xI{)X{llhl|0+n%K=%`xY+UCH6Nge8l1@J%WC_QhOWL0 zbXIhiGAWgK=~pu?yuYFbkjE+aFJ6g4r#z2(@tKJ9d8jH4;oz8V`1;|jH$5kRrJ@sz zfxm2-ITTK1Y34~aCnFArtbvN9hRl(@?IQWGu5cKp2H~pVrZ&neqxgMuP#oq2?u(iC zXh+yo_A#CdF6E(md$Ny@&mOdm5Znmlyfcn%nxnAjO~s}!^^LmxU5;!=?rrZc6_vC` zrNSl;5bwXUwp)E)iER}%)-rbeA@oId0E%KrM`3bnwGg`mqOuj@2CwSe3lBqq#$g-Z zCdqWKSqDb?a7uOiVh)6Iy61MwlBx-;|FBlE2Ew~=+5@jM*B8jbs=!#5?a5%HFB^OQ zgK||ro493$t~{m;^Y))$=uF{jxUWTK%qefv70>R1gxJjZn}vVekadOoxvhV51WZDd z^+qA?P^7~OA$hB;AyjD~t1Y_N!OE2;G+_8Gv>^<(azMZ{uWfo#&OxVd`yi#Qa^&SoO2vI3kf#SaTUZrO~#8tWY-;lz;V-{M9Z z-mz6C7zk?BmD*rH}*bP=teCmU3X*QM3HPqmd_x zLSs*pyuidA=Mf~TFrD@^m2u9FTZVxbc}m3~Wp1_~k^kO`#pyL+V%qQzaDi>@#6}~q zb>82MxYR)Ph^PU&-6KH- z?mYNA6$)-gG-1WKTaKMe7QfN44N|%!$ z2)0SFa$}JG2}*<`PL6{rAZ3zt;lp5$FGUutzaV{0G$T!W7sFOULb^VnHy**P8sc@V zZJSB@#{e-!YrAVcw~fmF12Sxm)7iYiMd%QgF$FIJy(WdSl{JM55Ac36Zj?>kWc2#)pX9nie$ly11^j_(1RES^Nd`!lKOn zxe@9O_e#4aPH`;30j9;zy!ln*t@R+0UkvN(bRXVZkd_#254@Pd+r5PiJ8uU5fMrpT zwPThR)RJdsW5Z1wQr6CV2#_R9KDKD9yQxv+F4HR>mZ!Qu`5Koz>9usCMTH%kf}0DF z5PMgbKiP6-fz33-;YDxBqUWcNj66+C7kUypH;3I2JkQM|m5;#a9JyEr zG$q|2dZj+BDZha7r4UzN71cNyKv}%0GZXdA1BU?cu7mx={~p-0vybG$xVL*wj6j< z5@dXsz4>nLX|uz|qv7+JC0#dt9->I!l0V)c6M9N- zS_4IZ+l>B4R13`c|An%}!0O1ZDroY7B{zsEA0*aPKjTxs(wRztaRC1BN8{;K6C(Zf zf&yPxh^^mk3*wVXod5oblp^==bie&1uzMJc{y*f{orGgo<=-8xOy>qB6&=bXser}S zTN}dxFYh6#O7s0x?+o!KvgD*uAAYH1Xsktzqy-4i}x8!kIFOmqY2tb(wiMUt7NQWQN`^12# z1O`K`@{_v=Xg;t&KF<^;1-iNj{&RX)(Fbg-(pI2=aDG@15#8f1IF^3K!9<)I{S;Dd zg@62BKyHChu;t-vKLa_3uo8+1;bU~4aP>me!Z5wGiP@l-^QqnZic;mdn^;QZ^dSiz z2aKzfR6^gJ3BZcWWV7|+7#Zgfl;ZUZv-q$tIskEuPLjl{(tyr9Xu@9ur;a(=B5Xdc z*u}Jwt8g;Lo+5mR($0Bb1$N*sP$UTS9@8k$B7`$aDOP)V7iRM zHFuJ@)kv_G4_pt?>*T=1HMZu)o`#F0*LQswgIqq5>aA1f_}DvG-E+@HgaXW*DH^@MGc}s z9aC@hyDQee2O6anNpW^rGuX!DrX<7|t zaP~c~<65(*d}fFpZ3(3H{?C{gq~W9E+iYA#nHqRe?QaS_PAW=AD}2bp-4O~74JXrL zUjC3vA62g;Z<`A{Gai*6K!bW}V3TtN`BWGHZ_<^vR^9!MTwR-C$;l#%!dhq(lCE;X z1mKKEhPSm;Uvf0I?P7LKI{og|uN2O@nP_QZ0#++}gWsr|HO$k0h&Lr#;OCu|IF(tP z#&c>t)j^BC3yS>wk6!kmaZ4`Ajn&<_8{S`@6gL4k!VO-9wY{tat#z`pEd z4Y%3_owb2cZ-GJ15}i&Wqu~?CbRk!?h=g?aTtVmB^3s8bp^wNmap#ZYM2S*1X@nvr zao=nY#LdcYoX5$KL!U{#Tv!E56HC|HOk+}L1CxR}bmL2q1YHaqcu4$W6YuB&_J=?2Rwwb(=!)wjhu2c=iZkHLeYctm zv>DyXo`^n+PkEEEL6a^{=%0L3DgZolnaEL;utyHmbNK9|ESZ}XWKu&zA&3&TE?oks z_TXJ@;YwOHjib727sX4|wt1ZVK_XSBsqx;E&=diS!b9BOG+SJnRRpUySUoOI1PFuP zpbzfxagsA|Ha=d^(!Aek=5Nzd;$2XKRQpCvPPAZ1ps&P!5i`LdW<>9Z1c2rj2jfy$ zxC|bdJ8=&r`C@n~0eRh_ucJTB+O}LgXR0xBXOsk134#_+p04mcDCmr86b_ zHG?Br>1)?z+x&uZDD$(EfmaM96r0%buh+YotvdoRvb*`h=rt#QHv0O_wE!Z*YSZ}I zb;L(iYL#ah70wKuE&7vtPk>rMI&_|oQYJ_^jKA4{(MN;P$+#00Q^G!whr&QRqr;uA z1Qyz?{#|@(u7*kriVV?{jgPR!cP0_L0Yf$+`eVgHG_l4D?kc<)%W9Og)!aTBpRj2tbtFXwk`MiGq^3ccCuuyNO@$^|R=vMAp z-~}*1Z|2WYyMI>9xFKxI*3pn&VYrP5KB-Fs3rR{S)Fz}MT^ zZ7o>I5j^(e9|G4u2>@D4!9faUPVEqu%|)~pz$eA=zL-Ul!!%X9gd7Av+#OOzpsR6b z;)}!dH!%AcEaU&FXKUtYVgr*N)d(!`|La1v{{Yhh{%0rcN?*Gkj~Cfru-7Cnabfj? zgt&w?Ip+f|Y6ua?1(`(Z<^G$zi*Z{&k3lh?T&T!w#9{M_X487N7vPb#{qx>& z6{dVb4^ACZrsSU94_5vIZ$|ZCr@$qL8kwb*q?zH)G0Jc&yUsA*-Y$M|UuKa=%s|#XHiK4IgQBX%;ZVo|E91>x3 z&p|#4Yzu?5C`?k($VM{}B($UI_BnwUlHDgid60=Z74I zsc%AO`<6Y4(``EqgHT<0{v!(9pLUQ`U^{(go<^9prAuAfR!H@8fAG&y{lQsOd8<8n zk?YJGZ>CUC2pd9?i@}Ybphp+5cyEtdwVQ##fdPocH9>7)wE-_`pJIvWyj+OX5esj&WDke*Mld*Q+Z?1?0^(-Ktr&ZJ`BXv4Ksg$S zm?0V2r2fSoeGAhqi+LFF1P?8vCU?BLKM814i^E(9kN1^lWiJTcVBu7NlH$cNMU_*kfirc=%x{pW589v6ohNGCv==dEPwYrldkaE=??aVs#_X0gD063 z$l-WqQkG4PS2wh@6uaiP9qz|SS=`6ff<1K3r?%>Yg$f_E@XTzrDtT91dfQ?LDgY>W zMd2-pQiPxJR79=SUuS>?8^m^u>7YCV5_Q>bBjD8210N7=O}w$=P$4Hy z5#}j}0;%#Ujhqkd!@BH=P^Ty-$@=_IAg?gMW-+9^R~*z6(np+&Fsk6mm(M-{9*~#U zo=f`6c9>3$N(|ziqs~FDMK%BI2?1d$@P8XXF;0ByU5FL4Vw6M+j)APX8}uYP#SQ(w z5gIIw-fnYNqxN!|p`g!w$9iV$j&>j2HjOXfm@w-BE5Bj;IDomiohV;h#9Kh;v(c(K zXWTq?aaeyh2GQcKoOOZybprD2k6k4oISh4?{#f!C^|Z{Mie*|=NHoHYRRa7M8N_VJ z!CcQpX^V57{#nhCGfkXZW|(O6cT8|7ukswZjhEeEb}~67OGH$&XlMCjeM-hgW?gk& zg4>WLKkd|0a!+nRe}-U&Eb}lU&6iZo1QD-i;7PfROHEL2_reVct z(r}n?Phct3?^al9ug`pg1;7P@nJ?5ti^Cl3@EbL#SbRpCSM{(`9aLa<1B27Z8>9&i zq}Z|2DYBP&)PO2@56F>m!9~UP27!mJ86s%tuzON-$@T& zO1cvJp~=^EH2!LV+gV6O&)yutRRBLLX?T`TK)Cz`-cR7-2Gj;3U)?${--j$3<}L>{ zTqudCmt&b*%jFzx39!?`d;ZEm@T64IMUUotbxZmtwN(DFc2BX?$o2}J!T)WhMOkbW7Rqc;yFT!_f7s@cLh>g6ebkgO|~;Tea^M|zOVfI zgy;kYd-FzUU!d?>v@_D+J9@h(?TBRs-JPB>4B6A;y|!Ls0r1vZ7*o)ilFBlyeUmHuDzrYi6O&W_n!O(P=N(TV=J zdy1KlNGm@$pK;oBUMuEI))>Ewya5#b#>BPv`btMwzQv#)edsi_lkOiYV zJ^-FWM7Q*m6*a+t8G+Ex&+i0u^H$VxxI5u-P$KCx1TY*^vR8V~P7TyD(v;%5SCU9I zTe3qoE=kj+kyC;qD}mw_m(4IGX*c0n3NAa6r18%?j)Dt{FG+}`snO|Lhal)VvsV0; z{Sq7JD-aS~BnR5WU&t74Bkz@!@$~@LwTu#~lPD$^GXPq@HY7eHA|lv%)|hcSgUeIE z{W@5W7~mYvR|p1Kf^>-6rv%YPZWRvW=it;v@em}j%~TY53f>p;n9zi@(J=_+6#RF^ z&TiHd5|vF{>ey&Ui9u4EWAiQw_g%`ao9+SJ84p$se`bSWfbn&2Si&(Z{*6wCOFeWt@I?qLL%bS{KwM-$kcXNV!B#sVPnLnHG}*x^2PHlD01TlK zL@v#3fmK(8UXsW2GSe~590(U%d0mTK)8u?^FQpJ9%($>2>ao&|+fb;v*1lTH_Ktqs z2Oxa*#TFxTgFy5V!S7lEuhp7@)?HKUL6z8=TEYK-LNh){jxFEb_O^6ATVhJ*9_cN& z6C=n1Tcv~&Sd;ak95@0F#d|&%@ypE}($y{riM%G?53lsaKT^+?c-T7NayX0};By>c>3!ubl zlO}&h%Ua;qiscovWp3+EEc&3{ zOd5YRUIAit-pI8>#-DN5?^^5?^WnUX8vN^;KOH}3jLxt$&*r%Q_2<-pbLG~3u5k$v zc;si-xM8u(J(;YOZ>b06UF2>0-_{gGRVP-ca2d&e;M z$l(jIM`{mlaMEKmD(l@+ff`k%{gfti;@{WI%~*+H?0CcEFZs*e@D>H77ME#1i|SX6 zhan0S%ieLPhFT77X1;~l2#2%stxB8FvJ@GxlcMUw%*Sv-wTj$rojZWK?cS>BBP+$o zBkXUrdu(R-H|o^0Sn`jh$e}+-bjwJN$+#g$`p2SRt}Fyjoar>}1BN-uXY%7>CRFSG zf{9u;raU|gw&-1|(?23B9<~$bcr3G+$1R#FT?r_Yn16ky|CNZw{F;Wt*54iQF2k^j z91o&T8!}_)Ryf(G9Eb*}3e1M3FOY#TW*`-Ctv zp`y5u5twQH&XiibBf>BspFI=;$(jfZ4}d7)8IUaF7L}#oDP_$pbV}z+-VfmjANfRU zYVXF_2-sqH6{cNkyTP{noZUuOIz#!r6nR^8baq?RdNrQ{LKeE#qvqXeoX69gk7%0x!B3MNRL$cQL;V|m*2 zBBL1MVyh}A8aa7DCf!ni{L>l~`2A`SH~>J~+U28gJ#**56oePz8;l}k;wIDV4MWQG zMiNq6B?BS~g$4(3qNFna?|(ApgADIHa_!u5Dko=qzlU>}g!u#f6I@#gTT@N z1{5fewbd&x1tTKD1UW^d640r`??5M72NUHYx>g^H4X2MJ&7!KPVO3bndEDQE`4wM| z?3d5+^@zQEZ8+kY^{-FmKk%TlXG7i2ngv7LfBySw)*js5?fJc5p0I@eUvGQigyUBy z-|HG+ru$`;{}m{0&!QbSmYoQ2zk>k!lw7dsIO6x+L;Tdf4T|30ey@9>TUh#SACwOD zh6Gj?5nBem0$A=JWNk^UtAM}%aOa^Le^)eK98Q?Z^CEm!*R;w zCqpF@P-{INqeqEl8y&LRJk``?e0vk8idpa){7iw0b3r_itvYvo}QyC13 z40PT~Y7AIydRDO##t;`pM2~UtwK^0YKkLfd-rw3Y7?n*bEQUf~nBG6x(}-)eZ7%`2 zXx$p-WmVb`sz`O7ABZH52m#T}??2bST`@#63mUIMQ}d*r8d;{T9E8Yec>Tnp4&^(Pyl@%y9t)&%ej;r`Jg*O$T(iN7lq~7QuSFn)C zAZ0ZbkIt3Yay%^lh3v|;<+JEIQxZ1{t(4*%Xtk|Cbn5Ma>Mq#RCw%9CsGUQP<4-f7} zIkNpNNnkE1`71jy6H7E{azV^odH5k$MU2|olUP?5{#?Sw&xb&22;3g{| ziEJ5JC%<{7%to`1*Ey}CE_BBnx65sri;Z;p%b&(wvryn-l`sYBv5!oV)^}>IhJq3}{rqD2IokJB%LI2iQv@%)<7O#UdNNegmvLKZzRhul@D9xvy z7J;ELx*Y7TGW-PIK-;1u46psd?t(+5EWaMvsH})X4jlYfnv@w4lnTiJo#dSf{@unn zt0u}Ku+1P&VTA)==;qFs_7I-Cg*LE?5aWkQ00EJi!E%VV&9Ri}an39n#0^9>5hsB= z^F>GmA#ir+nU61Dp{O04+5j^*s}-z{{soQEKMGeC!M*S(jH_tGU1vpZ)x+3|>S=gp z0*a)58yCk~18U*AC>~(i`^UQ}i=?L??#1``F@zG46absPJqk=9v>{)ke#F=N>kvC@ zIZ8bu7>fe&k?yr;0m zg8OLl%8hUBYj{fZ!t#W$kFut?pkA;o5X238UUllcZXx2Emdbqz?pEXpr>pokus`@HkQfslO)hI zPnDd~NTr15cF-*=zX_8)KQ1r+>t_O<+b>!UQr=zbRW})GxE!+XTjzdxh?gf&m}<>s zs%e(V6ik-hN^Hbx^kpC8Po&)_wXHQ0NK^CqPbc=d(w6D>?lQIoz+DApt<# z=`afk=B&XmZA;YdU-N5Oy)B&wg&$o#hl5;XGIlc|hlgmg)S_wex5MA@$lok$Qeo%N zU>CO0=Pj;q9IvWEn<7}BRec9zVYm!7$1<2KAFv*A7w^Zu=M_jMI;Mat=5z?&%D6{x zPqMqn*hCpQ_*a{n*fLRT{G?8^jRmN(GqqQDH!b(F;f7Y{*~UJ%GtKT0z;2&_>07Ni z6EHN*wy{CNv5{%!(BErvzvj`MgbiF)&r{J{PE=4;-&wQ%i+WM*Jz#x~#Nv{Q8dkj? zRbJO`RY9$Pm2m}KUhBH5ZBj`^wzA}|qiWVni|q#CZQvIO8xY^$nG zILAqeNzfOjUB&cvrDM3dvJiMw#58V{Om-!Av!R!G`=NR_9 z>izX>GMc+;w5#p0+2}r5W3Acb!f|DY+=X!CGs^RO9eLhS<+N)2k{;||W>KWqgqq1H zATHUv@n*kqWZcAZ# zK{NsuuQz00fMhs>zDPPzK)YOPMFM}fp(7b3q<#97KpPJc+w<2_e!pA zc&S7ab*|lQOu96&9*Md?=^(Kp+KR#SN8{|MqXA;Y$fB@8B zl}#h;AQ5nUcV7Zy4PUV1+nY)qKZ+#^_@#UF_N?%o@q0_s2(uZ62^F}ICK8wta|5*b zsc%~ky&-iP&}=Bn5b~}B)VA0c6x|~6CV@%dNyJc}2%QaJ)>G`D%89%lSQ!RApmeCC z??;N$pqQbv0@dOO; z2TY0{ig6ooPzJSX0JWH8h_F~W&LAgw%+DnGYs*sD3@h!rsLF|Y5x5jJ6gLGzynPjV zVxlxl$WA;A1b8Tx1vnrMZj|IysH=_IfI1gyMVnlvK>&kEyg`B+0cuKykcS0HCMXJO z`fV|lPC{%P=2my))HZdw_UhbY8#%JW%qL1J>4p~&xk|0V_**;4H$dLlkE!MvK!|AC z0;5NHk37|~aoPkg#EXGy^AMrw``+SPdP-74nf37b zz?=q1#csq4< zAXJtfvB?+_dph+1iX*bE>q2Qw@ucNI_P!mQ`8Sa5$$>2S77xPA^=B5kaojf_>_Vf- zb;&UN$*Q4a;KXo$qp3-klK&$E|9129u^kE^PMHo^`zDbkG7mFSRLSn-CDwZcb)9oFB_IQQhz z?3@)%B(B>rCl3~nXt9%uoC?)&+Lr+!DMpn+!d)v*r_TBBC1PS>nbaY`xg>A*5wYBe z29Cvj&|yzX=lu5)1vscO7|=rdGZ7WFowd-12q*WYc+fyzuapsXk0mKgk>B|Zw$SQR zq@3PZ+spO*b2fKJvq^$Mhr&^uj_ZD`$GC}5SuEJ5zut^{ zSINSQiGE7$7x;uxir0ZBQu4^Y6q9Q00#H~XRh2om{hi3!ZP=D;Mu-b;Lz!MC@X)Br z;gq4Ke^0`2gfx0Iw5HGrVAG2_tC+bjzA$`ohy}%Wf~DxPh8@b1cdsc0l3Y43b@`)W zI0_zsGx7sSP8?)#O~>~~l_dS%KH9d}J-^Me@!grc z{29|~30c4TOvlfRb=Ot_hj_6?>vUj z$M?zDlNFHWy>OFkF-dMHY` zDyZ`CND|!5QiH0+edWlcCdcgVxqX^-Kn1N5(?qZH4SALro9V?{;5um`6lzAOJM4+U zml7{Tnrw|~E_sg%UxT3jH#e!rtx6r+yEi0k($?`aS4F&^lKOBs57&;}>c{$Ek-A7F z!d!fuLRM?~psBtRBOyCDp-0(-uP>iKsQK`rAbwp}XMGTBP){%-;3-;$ZiZ^e-4dxN z*vXA;h7+y?p*L4aGo5=8mSC`WsV2gc`z)`NGn&JaiXcgJ4f z<(lD>dl5Mi@0^4|(Jp3+vPIxm(--pM`2p$+BcF~34|rtvxijZ1mw91hBDZPbT3)CO zHKP}2PK`u9$xjQ?s+ zQt>z3(!o2!&Y1HAWG`RPp#H^|hcliUl<~H!eN!JAiAUL&&JI;`fvJ4=zN60`7~ij2 zLftqR(R7?8U?Z%@BE59Nxe8;jkj_iOXPMcq$OZEu)yUylJxy0VCDZ& zQuyE4rJ-eDen8xI+m&C>z%2Ow@)rmixCKR~p969M;haMYRU`PXk8dIOVh72`-+Wne z9cy68zpb??sG~}xWD0Se0fI^|@hx^Aql}2X0-g~?bU^+eXL~n*jeiFPooR*kpI?Ex z;=ZmOZ@qvI=V;8{ug}}Tc(aeU-a5>2xOF&nTymASJU~xK9e>Ef(i>(??x7BN!MB2c z`YYow>`Q6+ETUjnLTr@&o1pi{=TRU=(Ae`^I%IVVVv=r$-@lV*OOX&~LB_jQvNKM1 z!Hq8}$ldGKnvKX;x~+@Htyc3por)!j$EWnGhhD-8l+Fto-FVSYn^WbXa$m|E8wXFX z^WG1Xe89rCyF?7y8};5^voHD9rj%NREAS10P;s4zjfvF^2|W zK7|vNwL>`f(9?IdU(iDI;1( zq-+j|MN|;Y9k|@>F*RXu>^C-7{6ChrpfPg`8jB#}G5kdl{F2DhE$1b0yyd0H`?Rb9 zgOhyH4d1}y2q^Uva8LwGs@8)j8%dPZfb_~(s=r#E@fgS&-kdYGG)Y0{&(_sZFy|$M zK~cd|goLjUjt&d(9Lw!Pc}%eanJwS*xg$A-ThY1fXIL*M+p^De$IjOVSp?vYE*HA@&S1vP(uGjafz}RhHUzDBm%t_C~^z{sS-e~Fw0Aix2 z(C{zRuCFDv3n82%=TW7}O(rF5FQuat~~`JrPR9!rX5{GQKWIA(I6=2#ZV2R9Zg7)1}o>(g*fb` zev!^JYkI0(93fH&_lD=?en^lGU^Wva$U!9Q3=ASrgk~bRXbjClvRFK)9DPd^yX*zD|5HQ8;It5M8p4^M`*iFD(J7 zZH-ssW=EMkvZfPtL&b8gN@`&)uOON;H54uZ&#ge8@n?gymodA@mgS`U%F+XY4Zt%c z^#Od8Yswu3-@9H3x{Fr8?*`MDK`p*i571{DG!Fct!Wf6Sj6s7_3$K($1Q2ez1?IcoHID%-gRDp|EA zQI6%S&(m!n9%gnVdOj}<-!2a)W3{kVa+p<@@g7Y z>mb#CCw4-X>Br2TC50vORT#3a)Rbgpo?Urv*!0W7jv-DSGA<_OMI^vvy~anBi@aM? zpmk)%F^)kQ)eOyd`uPuJY(KJa(3+UeWOB(AC^UW_p(hQ68FPro2=-0jmW@US3&cC} z3=1`{HobtkaX8L0pISAgM!7wk8s-hWY#AOZ zq3z|C&_672SrFwJOSwLT0lXG;u5oSNIjKD zveTXQ=FG92|D>v0`E41Sud;)`@@vdZVIq)(z4Nn^>Zk$Y-?GQpa$elZk9K|NxU(6; z2c9?Nd^A@lS}nrSkGQMEqgq`$ZVfm!E`y-in&f_)-K#LwAR-)_yqo=Nlnw#XmN_^Q z@sX(#a%Tzjri_t(plQ$C`EpUCi-8_jO`8imCetR}zDCJ-vF#Nm?wM{LZ-tt5oHSvK z0IRQJ62JpAVzp-J<>1$~-38_uKomwjTZJQZh2iFr5A6J0N2I2;rjtD@i`IvK}jDvu7;eUWs);}l79~9qSPPyIqIOl2+N60J zp$X0qjSNU=xhA0XD6S9{O_J|yy{p*iW$FzO8s+Q^=<#+qtJtGh2~U-1@Z3N~5Upw> z+86-v+!W#EiIQYrNvGU@f#Mb`3-!G2h{ja4g1*-AKn00LSI)bPtaO1-X7n^5V-hjnQE`;>0ltKw?ran`<%;45GEUB8QkPi4|z)aG7 zd85ffah@KjdvEQ--Dnoj_{K3?=_#OWY*T7Z=*g%KlU-0Tyj0i#Bd~##Bwq zuBZNT)&@51qq8Th9B<>ri)Xt!d7T5`=~#Z3s5sFP-lUk=d3y*(Z83a5)}^9s97EEH z3l7a>e2C#I*3rr8z44+mq#AKTHjQm}EVmx`XsdEiH?|p+bOxWES5%5vTlHPm& zpC@g4U$tPzWT7?mWkq*an8^>gv);ZG0~w|A+p!qfr-q`N;C#5O;`;{BpbLi`4i!PZ&F~P%)jPg?i$Vp?yT!5+>8jaHC1dK4)_4;MW=wexgiDDL6;VdX3TN(?rymWKm*- z(Dr*sk+ZE%W(>LW#&s7SD?0BTc?^f|L|WSs$xNq3j-IaqW;MK9P6eB~e z&f=#p@-op(XKJ4)z9jzZ%Yf;2%#?SQP1+=zc}sU!2%~?XlFoOA`t}N29!QZnt_I$w z?IgQ%dO4r|v-nNDG)#|w5m#AYlP1x0?Y7L3{IaDIRjbSM_pZq=o16XhTSqBxR>E|J zKovj_f%^q>xVN>jNtmKX+e(`?-?MKnv3FD)`Y{H1s(!A8PT4&1OBO%>I{&=W_F1v3&WGKjoa2yGkJB^1rx|@FnJB(n zd_O;qCPz~lGOIeo*f?OvY?X=PsSTt@sL@ad>Kyd5qIyW!-;wP0cv72hfcB7G<4O^@Hn;ws(=MzFvSU%N(g32<@LyP~2vvRFHa zb+?;h2rLN$$ccfg^jfl@;*Ux5NuS->$A%&c>9CmJ)s#(Wki~+rfS{@mEN~Xn7HO%7 zZar#7p)2(Owh)zpj ztWm9P#Q<#^1KoKT88C^v8OZmr41P-_mU?kZLv?`xI?Zl?IGD0X65T9Q_u4_1jJ;D} zfX5GFzz~2*5EXu93=7eK$n`T6cZPtd1}S0XB1h=v%VQ6f5lt7`!(T1bH5D2LjL&Pn zh}5gNFvJe~yYnuz?qTE)rm#~6MUm1oC~r~8M9%9$f5c8)QWNj7m-h&VI>T{Lc$Pj3 zLU3XLerVD$D1ud`9RJF#tp*B@-l>~bD))2IP2#u9kXu*k<#aqU!moo5VqwxDW(@0x zP$i;Em>x1!uQ~b|k;e>r(lWO~h}&<1nv#{Ed4B zFnw2OX3A8<4WQULwof_h$#XpLJoU@b`bq$6qI|Cv8)YW=Wk;~v6ev22BH^(R?}@5? zePthK)!eS=i6&BE5}Pd6&@X{Z20~M0t8A0g_zGPs$wxZYB(SqaHzMB#LG5|Rq&->{D{dk`vaDq6 z9JyAHx#-dB4f4;>t#{xGrQrN{L5n9Q`<-df4v_MNpF|t}xY|!ydAuP7= z1yiNd2-WMh79;9rnIb5Gj;h^&0#M+(i>}vGE2i$z`CNSX%#8r-1;R4SEW{#P02v!1 zva74ydh-l(mD(hBx0w6571>3a=WFZlsp4yxUb^!?jRte_zZGGly&2CaI%G!J_=(yG zkybF)=Lw-~FEUZwbF>S9!w{9rkg+ygk!BRASmz#lf94ndcwwtAr(th8#w6nEd~8oR zTGLr(6x7AMLAuhVs6SX|KSp>zANM-VrkO%I;`b?IJmvjp5PuZWP_2hL_I?qJM2PSu45moEasGcVd{f@3Nvp4)V;x1uUnpjuX3Kj>qeadn7Xb;*bMBuTmu48@+nEJK=o2c@3QelOP z!>sGX!taN0S3{WP%`*zS$hcOpl z(SF|A>_%3+Z~_*Gu6dp@j4vTFt27X&Ek>WLYvI@!03=+hd7qCD$;+^ z80t~bO>TphWCxP4NPu%pswv1(Y@o}LL03g*FyUt&hiq(;a-Gt5DNJIm0?z9!0b1cba7~uAl9RY=IM*DT8%xYeGl;Cy93M6b3MbIL^zpyMwmpNcJ^g{uz{AL%+yCT2=HUF@v1xO8%tkv?K)6H2 zSvb%vgP0C+R=vwYe+t`G6}9@+z!YwAm(}Jtlyj|f!n7K2;XA`8nA*+hKnzdb3{yQ0 zW9%of@UZmiA_{0bS`dRmp73yT%@DUWk2kJUK0)?cJaLIr#G3Uh%j&%GzCLf;+<7Ra zBxstQNIl&V1&-wN)!6KoW_F+u$~IcN5On)4ya(&oB|K;!-u7uT#_M*WN#SxK_SLC+ zUv1SV!U2dT_B(sw)#V0WIIn#;s4YQ%Q7nE9?c*Zxc>@-TZe_TtW~0d_n2oQW3}p-* zx^rX{A^gfUN0qQ@mTZ{}jM(^bq<pZ0t8L#cr z&D*?u?g0BbZP-anr^_P&g$BZesZe9yVqTV)Vw}9c^B@mh1jia7#2MLq^#brQ{cg*+ z$5Nb{fGx&EXjU!N`${S-VP5z#g=OD(1V%UyZF1c9jTvqA@Dal9DR?CNyZL=BAvAUN zLS*{iBz&@8F>>(B1%BZbPrO;jb$3n8&`hk#o&!pzo8SM8{yPZ+Dnxx&=Ii1is$PP5 zP`QZ7R}sdwVY;#7N)vdI2jtab>j;C<}|s-&IwlDPisViK&%Rr94o z<5nD*K3-1;dvv}?o=vt+)Ua-2Ae~#g^?Q<2?AB%m+qi1YBrR)A(W?ALR~L(!!X5U{ z(>cJ=fRkuKgg#7F6obcBNPf`%Wv$JcfXwV)PxF0lGm{a{GG{%$*!+H3%tck0kgJu2 z&EpP%GY69}Cs?(Re;GuRXfB2t=hm+qN?T!{A#3B0MJp%^BHep7BqN0E_>jd^#(_EB zzwC{(cSVUtLw*dK%hdV$xz-*rWE`%H{AK{Rhw}bthRrE|la_2rELDr%qs!ls;NfM} z$@#~H)ne?NV@Z7Zbm|b?2#L`s+mz{1hb$#ya44{OQZlKEi(}&Q%Tao!oUs*{^+Yz$ zJxW6IsTGwV?3$E<)1vaL6~-N?Hc{2oK!yhij?73Xu+}yiS5xNcs)+Q#4f%VQbfSPH z#-r3xCAlQ25LY-Ipo2GLkr&A9v9ujb>=&TD5nT zN6)iV$fc?TddfHpC9&aM*nehPWdydEZ&`H!YJ?3cE1=SbNu9myKVuwK`PYQ!WW&^x z;c(86fefSUE2KII#$EF|PZOLRc743Ab?_e{C5*{cddJ=WC1B6F|E~dcRDs-cQ_i)T zI5H`y6-DBnpZRAsQfC5`j2BltQ>xPoK>dk^#Wc+9;O*^gS+=}c7UQfAY^bchTZ(A{ z5K#Ic>~5SC?BV---ld9SQGESM{}0Q0Zz!wZ^yogggQxm*6hJ-QC^w!2^Wg?rwtwcMA@|-QC?iSa5fDhvoO~*4F;F-VakXHFLYCyQjNn z`rgy$T+T-6{tuLuaVnemkP@|pAMntc-wXVm@gwWQF?V%gTmuJmQ~*(V%J;7=4#>%g8q!DnZo9Q7aZX~J*K&#KXnzRfmECb{?Y zNy;BZ>)t4iwMgca-5NH(Ewz3#SEUyR@zt^_1W$4xBqi?qLJM<}kj@QZ-HZM!&&azyJ92sKD$#ag{6Y@7~KT4pJF!YgPGTcJ(H5y?1Dd)k|d|{o@CstxPrU7$OOsxyg{=1bDe; zettp05lhr~?HvDSfO|e~=KxQJ6z1Y?-1$zBC@q$vGtWuk=7i;g0CLiYh1QuERoERD&RO*tI%rA z9OM4(mm^X{rmLFR#~{X#FLr55%}u>PVe!{6`|ukG1Yz8b0?ZT&H!sR(BhFQOX$f=w zk@UKik{z(da)CKmrlA@h1SLZhc*1{(r6}X3%TpxG3Jr`b=wZ9e6()jKe&9j)_*33y z?T-;``=`aF^<&PVu?ylzH`b)7@&7Z=(ssgXP#PW5&JDDo|zHtsOtWp z3C7YQ@=8L#ylzmJfG_bKT~72dzAE{LSOu^K7bLdHHwm-A9_ZQ&OsAC(V7SO}!j)rr z^vP8C?vwRUtb!5#&LdIRmeSlgH$MC?@(F6xNSf9A0K93;3i9QWWpS*!r^NlC9|q{pwZ zGWKPHfLB7x{N}RG9;bv_yh|I2LAWy{mA?`-<*f=WhR=L1DxD$}iEV9XEK5pag>{FZ zEeyCcrh*|D#(+{RSwdtGgyCB&KM2WBG#$^~9zNp%3;V@ai#9ZU?bvyZ1Z}1=9If9k z9O8ADT4*EjtJT6@>L@t3>}pmZnc6=v4ibxQfCM*ag#2zkyjLCTSZY{it{jL!{jRKeZBzX$%(CI`az;2% z<#KkvG@a!q`{70iiJd2Orf$wg)kIAAbitMy$r9Z9&v8~RuZ2sI>cio0GuJNC+O*>; zz{na)n37zaZ>c7EidlR~U6(g|u1oNKvOj%O{p^-1cCnYum-&EfHmTgYB*E=?;@0bo z7cYOH<0ROdug`Yvo=_lv)`z{X8z)16q-T0zz&LjUR2S|X-u{BApC|-16F-Ixo!&A5R2PM_;Bvi_iYya zIZou5K3{J8<;KlLE-87%8=fKs(^2MPgHu{cSZ zMTs)L-{;vNeV6MZs>k2q^o@c=PmQn6;i)ti?(x_AUc3YJ)HG_Gf>0R%@y|>Bw2m3# z3YW;!{nVTv3j-%lVAh?POg9~aFzazE*A2+l@!!H~gnZV71eVON()1U(!vrfJmCX=U zVh$PPx*Rqf`Wc#|k^dci;;WeFoi$w1(d($)b61cm1uQ7{OHprwgOQ2FID<_1jId^D z7?vEbB!*rG^c(-TeQ|^ALqkC{ zl62(O=9KH^i_?wIU&=P=eT!(SJ8k+Yww6o`x}h<8PU_4Lplt7>0aQn^G??CJ_^P_T z5TeXP^0n`1l_p}I4K&KR!?fRIhS*P zG)u}qhBu?MISG@T?RCZ*Zn)JaK1uG>q(IamL}m1`ZFg)A7m|Jv;2@lW>SyEQt-GFN z7J|s!odH)R2OAaV1+;(;oZmiyySm?!Os;12PTN+DVM}kby!-MGV)Vd_to*l{N5>&& z=b?C6Ud)ZY+G!eK_tCFABu&nKN!#^GtI*7PuaF-1@tBEIG>eIHcVW}9yl*a2$ z4dYixIH;C0sV*<>S=d(sK0`-UjE|$ly?VymU?EOtw8X-ObCl+Y`u{e4<`$fdXa}Ti zYayR;TY}k+b4;}Z(q3vWKbOz+sqkrF|)h!vQ!y#2~Wc97pxYB&tv5`dJp~+=FYvH1Q|0WARkO zrAs7_>ywh&lXw*tXZHu3SJ<^hXklqJDX0u;Q~IH=s3(hisg~e~%fbDv3X0q&9@ruD zYyvd`mE@@$BT%kENxYwO7va5XJV~}FZ+tEHo++y@f|e+|=ad|e_wui5!occdEE=BM zWXfX5(W-xov+}vCyAEC8-O*PDtKVkxhJWa04VHUSiMJwt0KqB^B_Uyw zl2mD_l0w_c__PXsdmaI2EC)blfmsc_Sb|qWPl#K8@z245fl#XqXKO&W=f%h2Q6$!7 z^2`{dKn5FcyfaLk*Kf14{GzsASr~rcpT}}e=kAM*>f`>0bD{2Fa~Z&DUuux5SKK3P zRy<4)bJDfY{A-|m_8~|VVoeLbupDaxlZS8pwJs+`_&b=I$X+Q9of6Q0_HB%9Cqh#@ zfningS}H%9b)a@Qu8mqgNl^HK^6kX;Fnpw;3RifiI0JS;Wmik_+3(rKqc9w-3w^4{ z+eg<}*fdr%L0(HUH2%p_;%8|jxFS4m*TIyY%+eW~=2?TFo5?ATU^coTrC^4cah?Jr zYqiQ*qFSm(ZNx}DTN6>Nd42?o>BK$j_$Z?32UTDo?dKwAStRoV@+464E?NHrTs3)$ z8ItNVvhXtx9P9r9&n1aK&;kD^gKehL416y$qW6^MuJ+;Ya+`&KN0P&=qyXYSwj}cQ z??NfAy;)xjk>l-G^M^xx`vW8u5Fqsq_;(w_SPtyrFL>(2t{{JWC zwIgpp^PQ?XG|NA`d;8>JF|O@nlZr#W=ng+5Ti)qw1`FJkk;VQQTPF`(IZxPzLjm}xJKxXaR)*b}r3(BtOkTF}EC zpnwGBrM)9D5fhtdq2lTb3TSb(*U5%%?G0^NiKbX-us+DGRk?PtdSfp>dcm1&$D#JF z{rLJW`!sQReFCZOSg&ifNEF5(izVA{o>KjHh5<-|g-hyo$>(y+~ zLjjo}B}k@=r*Yp|v_`XUkG!Q_3M4T|?+dj#=4`(t%P*Hi4e4$q%p|x`lHsnkS1^W} z6r!=I%FygQwSZ-vyd7M#CiwrIsmh8QFr*QxQl^#KN>NU^E45DdM#LPZjxrdGJF}ne z-UPP0`=!}kyfcR|hw9Jp1jwr+hPC;ig^3O1F6kLT;KZqFYGM4;GT^-an16Z#ID`dT zL@~QNvk!vSu3_c%k#CI9puR^3KEe>NYk}26p`q!E`^9eJ<$4gNLH37!dO@q=MswZT zu*fm0<35pwJXi|$Let{pm#?@jr6RivzW{;)Wg2cvSAVQ=Ll0?v%U_&0v5wuf!X;Rt zbtSbSj3_ekQuWyWzu^iOs;R8~8jjX(k&*6nK~Eiehln?eibl+l*|F1H8#t@N#XS^i zz3f_sMob#41B7oeR9YKAT;WgEjHpj8G-Ci z=uQ3!&y1#$0gpp__?X-!{S)g%<+T?04J>W4%oq|ver}wFuL7I^1RXjI$+ub~3@b)0 zM8Ju-h&mkL9ZZQh4XO1xN>O8aa!D7sY4Vf4BG9anY;!P3yc%crcj*&Qsbr0|r!1jA ztYX@0PO39LU`^g8GgM#~JmH$40TsUk@UaKa=%%4{C=eavqL%S!5&Rj|CkjjDTnrF; z7edD?&W1@tt=;Qj;#Zl!sFm0Uo(0B!cgY2x@E@dDHa#@^uBani+&?^Az)^~mQlV|C zSzi!1-y|$>D&_(R*Xj>C@X)L1WNKlXi@DW}+uA<6U|~u_tc!V)M5R->0}Uj^N=Y4K zj(@iqd%9C23D7ae%rltNW37YylF2uI`?ihzW4YoQr5lixNFQBN8Cv}I#wOBVG7R%TR32df%I)$ zc|}bdS4x2Ekg#uy@8PD1tO~#VPac6_3*qSY!A9Yf=a_m z3q!>Jwh*WC2t^H#CQ_zCN2la2+6Jvw4UwNm`nI6YIjjkZU-GXQ0#8t6q81rn>u;d7 z`cY?*h=bJ|t~fFE<1geqe*s~TaLAf)UKw7q4eX8x*}MIp7xpD;Witiv3}02$+E*s( zj0S5sVuejIkPY}D8BiBx7~VY&f=bThoxNerBwM0|w&|$otv8gw$f0$ZK8-;}g5bk+ zMKgwLxI4X_4SqSVg7>$xeVr47Rz8=4oy;uf4Mmg1=!x)NR|Gq#g@Ia3Q)9( z$VtKtk7)m8oQ`>)D$l7i>Loqxq1W;uu0rKmKUs9x0Bv@Kx9v0M>kSr7MXr@@{`N~m zvu$6n#<@HUg$v4}Z!Mm~;3pf3m6-$S^kMRxn*mzRnfH_0PXy&p$Y&46w8IwWm)0+u z?_UvIl*Oidxd2=^cMgbsQu^_q3X;kt5OpM1-e51IDyXs(Xi(`SbCU~247!<%^+UrM z#PPX$Y~q5F!}Cjc1+GWe8Dw@fwj+X*5Dnw1z62G=qk) zMvmKM=$1*4yh{HRZg;j^t(MllNAT;|9SU`~*~XgBu>g%vzi}(wdl%{$NhP5Y{i1s! zxgvFbIH0ybv|xoAJ6StqV)1B4Q4V{>(T^kw_d+;}DlYTzYLTbN-wl*ggA}CXxcQ9# zL?7`zw%4!l^^g$x=R>F3l-sVxupALp$aoI&>deMYMmEy6Qn+bOjJ!ZMSFgCidd+T|OM|_5Vg^-Xb ztk0$_Pa$|iCKR+E9Vi9F`TcCa?VqF?&Sfx`+%v7bXm)pVL~UFmCaHBnINemAZ1sOF zlm;W}JET`N!}n($khf^r5fC^;zqSWqChPWDdj zY`r!n)~=^c5I&G26YZgGrfsqu?2=Q<$z&+;5QiimfU5>jIUBT&57DG}ZwsHf+n*7yT=5pkoV{4WpGZWVs(V>g8pjF&m#kEXCP{rudY3sjE8pi zOzjA(RHD7AeKarfX#nJ4A}+n8!rgZ6`dhW@bK5!k7yN~%T*gIrK5f+uR|k{H45z^r zmYEZO6lv=_1bbnK%M#v7FAAwY9Ol-OfI-*y!PueqW<7Y8*A^jJ?(`(LL?(n;bfdCL z9b*p7Fj+xxkNCEcQE8EUXD5T&ZcttX60%r=MUhwGw zOCaU%1-{dFcfi3}OH7>51Fh!{S`tSBZ2k^u) z4kB#${WmqvqmUn)T0au8J+EqOndH#mNMxC4(4hJ54A(J?N#W2~Rz%!Hm;mo$Joak= zWmk&cQ~M|%+qQPYFGG;)PX~A2o|{O;6(MrmNXK+l1F206%*H|$gdoDju0qZ+ zN2t7gdIphH?_@6+GI1=7G+ub8YarZ9z0Ca_9XE@GeY0{8`YS73ht?&9SzU7 zo#roxIhuT-kW75B7_I+g@UjR|<5z}Fk8jMNcD`YCS%eVJHhkThpI^K^X9AkXi2kiR z&Ni=#{x;pqV8ndlF~O^NFWcbbH`>D#kPA~L84ozh(5w2aEnMPSu zE2tpV$*&+G7aj9scJ4KO??9q*Hqmn6^u*wAIOIOq95OcfPp0r$o4qq~IaEdabWYWo zAH2xbtReyrPbZ|Q$jRmt9+A8_vEOyqGV5|18`(d=4AcdklI7X|w|`vKWF`)X&wv9( z6OzwGRr3_M?m{IRDpbmm!wXLj*ppwsE9yV+(^nx>hJ4qBiqeID$frH-t*;UOS*)H2xG1>aQzHk_Q66CMfYhxQ9w~sMJwi;6Fw-=i4WC*9PU*BKPR-|NK zulvRpH)@AaKJFUq3z57|SNqk9kAW90w?EQw4S*7>qp3Hga^^>xT-~&m?BihmvcHNB z?lOwC@ao;KL!KuwQ6G(Jf65Gqv;{3J^UhxXg~ZH;o{n}uEFG)R&fYlb+rsG#k)_?- zu-&o~88uDTv#R&0DJI=(g~JfcpU!}%%tztJ2P_X22wAI*{`&nStkuua8+d)azDvI- zb@#qsqvahY%I=V5*>f7#x_Nw^8p_6wCCH}-HMW+U0_EP7CG-4X!^DaCn z{cE9PPTL=Fk*kNq7#*-+)To~@X+iZtj+|Em>~ed73&uwAe$OPe#)SNzdh6dlcoe$vtFp7X*l0>lgc~YKySE>_Ud} zxe60w6EUGlUh_^e02wc}$><{Z-#Zoe0%PGhaU>K5$l9ZrvV3{}LiWMM0_WHL1BsF~ z+x0Tj0Ke@}#ssZ7Dog%i%1UGs9wLz%Nx*H_r~YVF$-xUdBbh|*#p8SM$DD`-pOX)p z8x;v*Ar0#O$Zx2Vv{p!`2f9Et9qtq(_QyFwtWe5|Ki_O10Fvip6q9%SeO72E%IC|) zRZwTy1f2-m97$jp%FiWu$(uiz54B`D)`5R-L&Hn}##_onm^UI~sRnW9)DAt418Vb8 z?ILh0!M_0-;zbI$ww)e&25o|5fn;vNi&D|F^KD+T67!M`wwelx4qMbE{$%^15$m(Z z3oNUSblZ9b0Os$`eE|m+*bNGLf*F~uT$R2q#FOBGyp`UxkJXH_2}~`+3;VVBa9laL zpTrqFT~Udo)8HzJ;%@Y{;tmzC zJK^&6IBU|B^^|g3|GIcQtb(+W`n#79stXDjhw!L+fny7sC2jnY#W>C+b)|gISvclc z%D>0b#+uKJUIUqchiO&cT%H>7l6P#P6di&XUyIjUWXtmes%kK|txD8#L|<=f#h)6fq}-89VVlxIY^< zylQgy+y_52;Wz|3&L@bO9KtLe#eN8Ej_aCY!W6$2E10dDaMiyMjnx784}jNl5Bk_s zeUjj80+d`AOy|wh8#)Q_^J26C1~>6O=nzP)1Y%L{LW2lv1yc&yOGV64%G@;+XStyS zAZ$5(FA9kXzeqTF!~KF3ly-B=wcx@*`*C%=dpPzBSZbMtr-_k5%8Xm49l~^4vg7Gc z_br_OKaeddxV=VSP^H?d2LtX^EX(w;3?%m%+f=`JEp9OR&RJ#;!w7)lm9BLx$A}Om zz^(OMbBw2b_OjNUe~|y(O$IY{)&gS#^1(HCOJ)(ka}O-R-sAq;CPq}vb#lp{iy#Tm#so%TOZP^i8m&m|Lsbj)pX!jyI)BHj-?m^ghpeFCv+5&Vf%>lWjhB_Z`;K5qdbiJCOX`0qe{dh<*M)o4uyzJy zi&YFcvc7lbtGT1$I$OT+)VUKeO+fdg@tl;_K{3D4MM34qub<|8wVzL*+?up{+CkTOV63{X1Nb1fma zrh;4jE*T}P@M6!{+`r4>$;{N9g@n>`^~KBBmX*#SPXcSTL*jboTV61CZ?EYBFW(lc zfeUI+&!^(dotoKRU88A{E@`Fi27h9(AheOYXYg5P=7N3289EZo&b+!e&))PTCfoO# z6V8wfx~SC=GO`dCv`d}gR(DxU#A z+UAIN@BDXCDP$-yW-j7bO_Lkajxx#*&F*|TKX+e?3~twD8V(*dTfjFx0K52&TRIM_ z^(O@KeF;=^+vYuiHvq|Hj!rlfPS2DRy|{}PID`Q|+ErMWROFJP7V`-EDZy!7Om}-E zF9h+!I=!!p_lJ-#?ZK{ZL_6as&&E*EGj?HwG-TvY_?|pPxDaSrf)=3FMy6rSgYrXeVHc^j%FCc-`w2r=ca1l_tY`p#V$|wm!wdtU~Uvq zPNiR?1@z2r+Q$0a*p8WETgUIFsx^(3Pp`=}JCPyo%-LI%_l#{A9cR-U=};E^7M5b| z+-Icv!(`pVtHv6J5^_vrYg5kEhkZt!o^+4SzgwJgwq-iF6M+2z7A*=}k*P^F&`I{h z>cn1zQ^dMH0BiNIQCITf+~_nGp}zRpVgI&Qj0wefHF+Gg!rnw1%={)p8z&D9D^sir zwBl>#I!pb9Q^5)jwW9z=iY_9N6|eIJ8L2sPPa9IOX1C3x+w6CI7pRY8JB%?;Wx;`F z*!0H5J%@$G4fw2)`B1>w6EmSP=I*_}f-ehOl~i*hQE%{9x0+Q-Wc5G)Q?Zt_xD8ed zJeCwIbT3+W(iku@rv&XVO#1d)j*X9$)j=Mgnv=_G#C@di)-1eTD(v!n~H!Ty7iN5>y)|@u9TzOEa6n zrN*q12@+%Wui8VdsK%S+vvgazEz;L8uya{8GkH2x%Of=5$PW!&hQs%Yj~qe&j!4J$ zzbl!?P6Sulbj+OA4Y&VYcXKtqsMH~0uL+cEyl|xcSS4DoLRfZmN}s9~r;~az&`(C&*Z!)OFZXFp`d^dyKkhOfh(7y@V6$4To3Ru^dIWvv|LzpwhvU6XiOej&p>w za>JJ6{?;fLFK`jlf>I-0_?_8}(a-ZN;O`ZnNtSz>{#eAB;i)7pyhuV@!&6y4i|M@m z%y?)2HwwRZs7hX$aJqkQEzeD1SU+J3Mc1eGn9F-;dqE6TFCO|{n%7js=$1w>uqc+v z?fnssS8Gh5HkI6wLq5w?-Td#Bag3HStCaN(0?q@I2>#T|-M-Qr)na4nE#6S`+p9S6 zey-=%s^qewDKdiJ;VAe3-+~M~O`*$5Geon-oE`?=9j$n6T7D(?gkb6P6# z{&O2@ovwfQ5dr%?o0@<34opOI%KXbiA`TJ()dDc4vCot=|&x;n_vMF4Yqmg&f|y!TE;U>f4m<_Epo5EMK2%ygmu# z*ZY{FuJ^4gyCS`EWRsnX3ym=`hxf~m_v=0~-^a6}q6@$vCi{J-vbSYxzowOVvi>Uh znMHTSD*sp6hcwpi>PD{>SD&NJz8#hj(3~#tDPi+IpQIjf^|3T`K%DJVic+V5X5Z22+ScY8rDR9 zC`JfFxG&ue;o9wYMl=TX-#Ki_rPxx1fee82v#T(ZGHnN+|#&h*V*j zwus5?!MFYp>B^VQV4Bo!v~=;ruePe%C|;r4zMl)y57cKAZDY)luQUkbvsd&M5&bsP zqJXf|J;enO-SD!L)hFtv>}phMrv2*OUEgcQJwsF5=|ufETOsG`fWR^lrlYo!z-Wne zL5kI*QKofu7}nzzi^;C0rD+P3w*<6}BvyM>hxk;TPu;bI?B;QN9Z*@nEFTg2#M$9f zhK;G%n5bUtThElCow)kz48sJpD_Qp|Witg)oPbqqqdj`n@QQPol$|G$B>)Se^`0)8 zzCnlePmQ6imzn;DCM@4FbfpY$$Kw6CFtzMAIP zRf^M1+ei%vk3#VVlJx?(UW6Tg86J)p#W>!bEK`xWe#`V7d-Fvt_o2`mBVwnHxXh=e zoujUdhAzK0b86D6DX|DfF%SkDLPpE`Fgs>~f;PMlHAFd^TFpvm8IT+{&KYjVOwUtv zc~O47C~_D6K9}2SM-@i!{+`cj6~_?|$wW+#@k^@Bx;KRZpg{yA*i@D4DR{I)>P2EU zB-^7&=%YT7qKm>b!bW7~hrEK`;gc9a<%Q&iZs-!8eS|oSWGrp`_iH!!_ug7jp<2ge z4m>TY3eqSxCEhL>o-$ZuQeV{)U)A`Q@d!NysFhci}YXMzm|j;@-Q9miPUcHlh;da!SN9- zVPy6W3FCQZfM*>US@-6epE;P2ww0=T-Yw^n5PG1j@6`hAGH&idwwihQowF7N!m0Au z3Vj8=&#p|klR4k^ip@4sdvil9@?ws*C0ekarX*_d9jMa4wRKe+j;3EHj9 z$SPm$2|u|;27&-+;w`wBEc`n<*KwnG;Cf~^^?bCY6OCg0QGgTB8bvRO(zfuLn+L<{ z79FPcszEPVYqO`RU*IzVh8!$qbFA-FHM?hG`Quz~L1rg2s`z{yIy3c|6-uCv!|Y3( zTd1178?z88(ULlny$(rKF@s(?B9QT$ydtV{J`dp2(`#}<>9m}Ki%R;>Mn)^a<-8}d zH0tMkG2obNrJhI=HS#I7uEAHpv;?7bk~^Zm2w67I;llS2ssW>iU8W(UJqvcIPFRnJ zX(4M>JC@U?b(U1Qi`*>>L&>LyQl42^xzYlob>^a1?kd}xh9z8d{Aa$D8ibb+l;rby z=|{X!IW>5>%Zzc=iU0g@T5G14cv)a&gnC&%P(IQM7NzMjZK;+|Q!&y$yVP3z9RHfL z2>)N^H$HYJ{>yV`tB~dUnUf0=Nwt(G-`Kqu*LYLn3)v~1;L9@OVIK8Bm|zR7=B!lR zmM#iwlLEQ(8U3Z|std+?e!&kj|98f<==N=&8S{bB5vI^TeEkH6f|I01!g%`%P82v)Za zw!(cYkyb@z$x4egd6X?AC(o)vd;dBdurCF4qt#b1K=!sGTTI6qd+H!O>N7dE+1QQI6fz_3?bW0@}r4MB8})J{97W zngE#dwPW&hAtCn(HH?F%$D74$+o!FE>}KBEU8y(-!DwK@!D&Z6U28sB&29HT zM=~jNOZ6Z{C6_hbgrU(BDSKfMa=>I5{sUzr@c`?rlOSutuEPJglBsOsW(g3?OiOFb z8Vk%SV2xsjaIq%G)r_Xd?`Zgc^jpsiCO`8MmB?4s-$Lm_vdOL|S_)gc|8d?06t3`6 z6ppm%{o;f?|wXfQ{{Kv~&+k3P2V4>qE& z$;Lqc4#jdjOPD)#x&;Gxn=GdfCBM?oLjEFVzPv6YLmwg9l9kpM-?{K4#YBB|+YA~; z=ksRjf2eeA%43xXMh_ARvsJ^{HR(`%CXJl$Ih9}noXz(k63BeVMk^erphurcF}fvx z6AnbV^fAJD!ZOukAb$Plga%R$w>81xy=SEY*4oZZ4FchckIY3i2}C7nf9_9k$6V-6huVoKrHUTkS{nLmq56M1xK#kUtsA_m!S% z&DU>j()-&}Rs1bj(<8-uAqMaaaaoza+v-$iGgv^`V~xZ115YgJ#M$vJ)YGVA)|_VtTuf?8F64~dFB9wzOSt- zn=)rfJ_g$ zP%ePdZY4JWpbQAiK|_+nyApoN(uYIspH?_x-^~7r>yO;q`^RL7iAfU}Z&dC(VH!LVbg*I1UDj;pcnqTYx zFF2qCz7f)7O>3D+T`~MOV8i6K$W_*hK69ax5k;5h3htY3YPVw=DUxMS;ESx);p#hK z;V7!bI!GsJd}PQbTIn6euG3;t6ZLV%?dLbygp?IZf7YQc+hkvD2u^V92H=Sin$OEGqP{g9vVl7!u3x#Vu-u=iZHq`Q=fzyb$}O6WdqM z7CVKb4LHie$kQvi)-Gx**S9-9$BG0{5KCny9Z{Nv{74%SMY8=pwSu51mQRC)#N?j%uRq^lh+XmSUzK<^csIq)+Y-ox7$>wx{{7Hb2~5aC zEX*%ON+m~-Q<^Z4F}{$8JzHl%NPsr{kw!-nN)!~roI!tEz}|Ejb-;Dxykw&&Px@~- zGJfqUJen#4I%}OX9UWlO_;>T4i?msNcnAJ-aw@ksP+hJMp+g&c_I%(~U#yW<_e_dP zG2&pIuoo=Y@gMc)g0$NF&tvMh5XUuOX@ItT3x>xcR%WJBdP^(EGh}J}WdyuC7={*R z9kJYh@iS%yt|PUMQRXjWJ`0JXgJEaqDNu;+XQ)d^`QX#p&d8#_Irp(>imxZH#n+ny@R<~ z;f!tK#ZiHas99)EJ8nrFd%R)dh zYvOt68;XTVG?jUQt(3su%4Kbfu%t%AM^dj=-=`(dw!LKgz@qt5-A+W8%Vvx58@o3M zEG`O=x#3N64aR6zl_K!u9?RPzGl3#W{tI`i@ew17g_~wlj=D6vZoD^zTy*a-9K|l@ z4VOtBX#5gw6mM~oZ>U;}2dT^o7ivux%F!=6=7d^GA0u|og90wUUeKR5^0Lb9oU{@= zorD<|2UFZHoIoPeLye1<-Ti)fc3+SDB~&t9Cq{y7xf}yjtKEvXDQujOJAPk3$qg%1 z;Q+6Jk0<5Uz@Qax5rnhGo@n*%GT6LHjPlV z-TB&QdL_>#mpaiGhw+kmr{LC65W7!^oBJqx)k%;4EyJ_gc$u-FRlI0aEcjndz1r4< z&M0a^J|;y`Y|0GFmqG$NG#CCHhRb$(nV|j%%=`An)AFd>-fS&Nb{Rh{y{SAk+_YF< zz;JhK}VjmKU4qSVx17y{w zFP;n^O`C1UlPE`a9v*ywE$t5ml1*SX~UA#jxI$*^<3 z{hgV?!`z^xR;={-<@BOaRcT@$N>{sGzYT{wl*%_u#kom3bc?SJ~Df zD3egu@5x3l@z`gnR=jS@)v+S?3A}m0%R6&j#od@WftMJSVRC*}!n>d;DFXNkvh(_g zGt5$=w?0!|51#%Lm;~yJqgVEGR$>bJqGubp@53mSmZb-GD#_HRruZ!)Q>C8tw@#$5 zCOhHldB66fQ2)iLVDCVJyF=@vF27>v=o;QPnF{CnGyUH2nP5m(8(s9iIBU+O$E+C9 z$>n=Em~ot(wyTLdGfrG-id_b8S$X=ZA6>S+w?J51Z1?w}SN{iZ%kK%G8M< zGn!GTfBZ~=PQ3h8(ldz20CjTHPW{Flj)^H| zzs_S?p0h@$8LedvVp=@1U#P#nqLX}OO*}tJLKU^IB=KH!4CNGn0ckUZgp&&AX3Er) zYUm*PR;5{)1a4?f`HTbe2_jCr7haI)Rdm1c|1=}q#f3gqm0SBIYk>+vjPTKt?bUUf z$w{j^RPfF2z3x{EEirvWjvm9~)Uf1|8EhllH}*^8oNel2@=aWLx~OAnuh8=f#ayXS zkjx6HsCbUhyEmq0UTZ8;7?}t{v6wU+a?dCy{t1OB>g6oA6bAxBw?oT^zFqE$+3h_^ z8?+_&Oxe$cTjY}~KPnHOLxF0tD*e|dNFQeaHSV{0@g$FFGZvM6yKe~157hKkk+xO6 zWG2$TvMT9M!0;jp-mf z3}t~r6GetrB*#iuNoTYa?JQlz9zjK1$r+N zwF2ws2nO*{S#jXc@a*v|W~np34%U|3s_SHePBZR-CkN)(o_rSljS1Z-Sg z4tYAfj4>&72}*=-ef#SBa&rGF|-q`LEdb1xx`Q)^{eM33D zzv&X?(AC+pjZVimTkdc5l}(ZgPgH(WGL~e_R0hJ1k;)3Rt?7k+4T@%^sEjG+#heXU z3nKzC{jmufPQ(5d-zr7fzSGL2Al|=j3FzLGbI(C65D2fyx$((Wb!7RoEW2xnZW+4m+-B$j-wXL zt7cJpX;-uC*;TZ}&j*nl!3dK~=TA8Uckt%Ta@ooD-i9IwIS8| zJGBz2z3!6Eu`?w^0Me8|@-N-oizA%a#Dzg9r-;qGXFe1j%H-XGR)ii}En@>fsPQct zf_Zr>p5rk0jM*oXYz4fR$|;Alo`Bk7d`7Se0~bjOQ+q!r@5gbqGNlj#&gG4Y*-wL8ObLzYu@1AMrv?Rx8`}Q-V<+QxsE(+=%Rwe5HsxununpzAnH0l|HB~zwJ7NL!hViS?OhHHQ z--;>hDwk79b8^?z-pX_f8T&OZ7lYe?lyy&PhKpOP)bbQl`7Jf%p%FQN(5+$xozh`Y zK^dn^`w$d-S$sQaqwB;-D==@mmATkEOd>(E8!9>?zhC&TFcXbY+M|g^un;oi6YvxQ zt2_@uTufR2rvRJ_a~)d68b>dPiEpKoTqj3ICSSiNU$iYN<@Nyp_&Rkv^`xquz?3`XnDa#%k)t({Tv_I# z0`e$F4OTyBWJJN^ggX@+=0Q~whs*Frwv-Ms*qJ<^0*s0E%5WKYj^{9$QaU7L$gfE%o>pZpAzs%wcgNjn+2YGJ7?n7qEv?7lt$D3YQZ%ZJLE!Eumh5W^=?%_6+ zAn)NU>0q-|w`m}+$G6Ug6HDDs5oPDjFwlrU5sQipJs1c zB+6A4|Yk0iEtHdP5OPlK#QkA zZRTma)Gz%kf@Ecvx!8@O1%U~hv=#9uwfD&Vs5^vV76N*0rv88wXq?ar%J7F#LR}(J z!?#{7fjQXz&Oyq9&}`8NxrY~cwu-8%eSDTWqcjhh%?7H%j5o$GLI$>uvMZ>i&fDUo z@rTMmbYnoqx77#j1zyHL#`Io(s7tIJS={NLW$owW=~@!#jM1fXy+kGwDi@Y4_J#t#pnw zQdd=%YP#oqXS%*BItU@GCDsb3>_5XMJ*{M<24P&FvvjL6beO~JK&i5j$~6H*ERhiu zbn*9q|B8z`G<-9*?bUz*7_4>P==&f)cnz3sGIS}t4a;iR!W~T;UYgo@ewQDYg?QsJ z>%Us3TpcT9jvq*Ao#D|?|I~9*vZ)I9@1Qn&?ND-=nI1b5K*M~3zZ39&(h*paG@U+} zwoE=?q$zDyBL#jOCN_BMQ45wDk$#Gt{v1zZryJL7l((s3dHG{i;HgJVX-+a}wp81w zU0!M^m(LJv&Pi#s#GuH+pejKwWj?ZGU2A!YS56wPk2Zsb%?o09$WVs?vM>tUld@?` zjxGpAX+`9#+&GW+%xnMOF+7!(zViTBY1oWKCkg?kM=#+4~>dQI(CF&!^#n*3q+@ z7zvYjlbyXdQ|Fw&2H#%pDG3{lZiqn->YR>m6jV-sp}{lWI8u0U5(Q_z6|3MDKeCOY z%~^H;a03c^aVtp#P4WH*10;94AX!`+^Hiq)WCIPj5-)%5?^6B#N+fC}D&$3OpDR$S zr-~c&bA!SeoT!E|c+>dvjrnjRVq^X{Z5T(Qt^B!kjFx0R83xqug#{VwD@8sMuB0p3 z5W;Z#l{`O!R#;=66O^I4$AT0Fc|8~Ml~6${u6zh3UgwQ^^mkcz)B>X$_HA7&ZgeuCUDW^MEV{7vc){%Z# zQCxou_J};uB~m|>b>yKJlHG8atT<&OQB_&7t`h$y@SnAZLfdxKplrsQH|3JXlaOkH zFqw*e!LD5~F_%ZNT$1FLhk;1|Fk0Ol+%!oQWORA9@!87qSh1Z4(6;_m6WHAy)?U2R z!NA4QG?|fn&wQ3W65YL$c#5h+XvdEr3V(821la1zk<|1V>SO}~q513gAp~XBAP6g=5=~O5MC&4cEQG4+9nrmsto!Nq73X}4M zYtz&=N63bK!2TXCLk+gIsYiCOIHSgp;Z2_-v#VaNdxiYTyArM0gC%W?TYa(a^wG>N zIs9w~c`Q?0t+e~;JP#T$JAi)q7YG+8O{&7MJJ$vSLrD*-?^+UI6oqrXcbed5A&&TG zc2QVdhv|B8B-Tz*_O~ri69Md>t8z!Lt!u`h>qD0b>&v3u+thu%_krD;q7lI-c=djU z)EQ?|vxZhHU*h+Vow>NO)4+lg6Y%p$v32j`~6=9+|D@pm8nsW%{lms1Im$J5zXTk&Mk}> z+3)!tuWgMi?h5{Ye*?dRKnP&4goLuxB2AT);gwot2@lB9vIQkrJrOex!?+Rzy?fwg z-i1Q@-^I;LWj(im^`?-@d_dZQ{~A(hxaj-EhAhY9G_w!fjSwVjKs&3Kv znfG*=N;~oJS+QXwl0Uc$dZvrbiJ|#K!95QW$6_nT?JjkjZY4CQixJ5H3ud&a zqD#n(h7zbn1!n;+i>~^7E_*o5?_t;kj;DQsfIvkoiG`8}U7DyB=ac(3+cDg!zq-Pz zqJ*mjrqm5S8QYEcL8wr76cRf|Q2i&=`U@hNP(gnCsq7t7yyPQ}d^?ov58@iPQBY|N z`Z7YW4?Pe7^7vuqixbXI9v4H9j=k^myqJV>!;?p5)>p3c(*|~zCzCXp${cP(JWHLZ zC6uXVS7co3`_J~fwD7e!Hi(E8(*$UYxXhA{4?PdEMSps22<8b66}|Jl`WxvkHg=8Pk2oy~Rn`?Zb zQ>2_iircTK*UGWXK^gH~m~XZ9i6Uih7KBC&Ka*?6w{bkCI;0H`8Ie8Hwr4Pg^(Oxz zBGjqtaf1|Ca}Y48pI(Lv@@h{zfZ*F=YNA=)5M(J z@W12$s2=Z(f#0uO!;YRIekV*;wm(^}de=A7=5!%PWQtX4$EI2v`0(7K7hlXbbR2!1 zUwiBCZorExad-}Sh1Y|>=v2vXuTo9p6hp}HMc;JJm}r1IJC0cblDMW1QNNuUIzLw) z5&m$NS(TmIX8kCA)VF89Hfp&lG7(Rue3g~f-i!Qz^n&EZk;Ib4jz`6j8@o{|cO^&8n<_wH~u$e@ZeVFXFX*RU4bc^S)NmJxm<@Fq8UwL z4jdx8>$}2ne<<)R3{h{rh50vFDd_)CHjT5>*MC9Qlzb;JYE(K1Km4AtPpG~EH|K_x zNwpZ`!IZyFVA!xQFLa# zhW!?dOvSX>zXmLP=$+hGk-cR-<_k@0i-My0zjV@rAz!*guEd0` z4xkXl65fw^Rc{5tUdK0&ICE)*sUq0iUD?!s;5-Q|&MHWxaC|f*Dii~4ou7}Ws+M`l zFvNU>b!PZo%n|G2i8sQW-X3lw5%PO*J1UOK-qLYu9r7i0T^gaqh|&YL-`tVzmmfp+ zC)%tJWB@lyf|Ou1GDi5r!2U5Wky&Sg@h(ecw}HOx@FsXi&bZy^@Qg&e1Cm55Dw(vt zmTLspegzd6)h^_xjd(IQ+O%6_zZW5i-w3eZrGs10Bo>C$fWqa4{)IL>9mctRp23!>TtEj3&oPJEKF%5 z-sUHw>#bhDtn%H3OgLYM_n;zqoV@Cx)F9ojPR)vX!ApT_jDD*!l!|mIC-tvJ^~y*;`RiTHRGR`DZ2)` z{r1@)kBfEF>bX$Bb9(v846M-fkfzbMi<}O$thNGj18G;U@QH7@OGscAzkDWEAc13w zfd!PvzjCi$(Ok-Z?W697chHxBQpX`Vy9cNHNeQ$}u3-GALV(9Pl4V%fZ%5+BO*=0o1n=)V@n)%s znP{h#Ank3(er-hzNU@$hf_H1XFmX{Eza)SFZGAtHVXa0=4QM!By!Rh`tXKZkCK@@} zseI7d$$RlonRt1@^O8lgdB^0>k-D^~V4eXLP?yhYMUtC*fIUs(k}j8XG!N|l(Ta}Y z?1d~j!Ye<;z?jaXQ4Wy{&EItL!kl*umfGGt?!a&V8U50jYB3!3)EHSsdZ8erM?ci) z>P;rGRGvz!f3*^iXmt0deW;GS$kGo2&_zKoH|iW=7Ba8o(mbDkrgP^ zgeI`-t()h_|F2o-VaHb&)%+BD!Fnb}eFkLWD8 z_dn_fATrt`4~EH8Y=46q>?@6G9jH{coW3R7Le+EsffFwH`7lTlLl+Up9b(xyBucINZ>4Q?ikOq8}pud*kPg`La=7>wrO zogL0ULr|MH_hJA)M&VqB+VRGAVP=5v21TG-Bq2fmm~CqWG!&bt{a)u^g56jQnYyDLUhn* zJ^_yt5ybqs&2z8fh=Q9T);2W9!Ee19k#vzC)%0hL+e+|5L5XB7LhS3e1>PUyS*(qB zW&T&dvOkguD5-*&E%On@(s#x|AEagv7IuVCDU5artBSf z=GIGyd=(TIGSByP%~H3Xk9U%jEafX>3(K|n;|0y)TN@DS8sFhNx-5hEl7`Z!?0Ia= zJEXC+Yi-A!n(FPyjaGnxQ$#f17(c(8X!kI3=(H~?d58`w z-AW!eoz&V~c3qEfVPBy1XO!P@PBSsd2AWo@Zhu0gHN(brjCKN(ni?HzNurBM6Y)#B z6=-wgNPWpeU{i6EjiLFvm>*BT&U?V^XD!^(6|E6yxwOuoBj{hf|CK>Q5$5ff@Yk0`O>&3=-hMq z6MdzFV*5JyiSR9Cb|dDIy`5~_nSrY$oyZt>{A8Gjf7?P7b7+1{hlqtNQdGsN$mJYC z(u2J)x?!aFki)?^`qFstiy`G>3Pl#CY)QcUlkk_hi(llp)BKW@zsx@Rsa->UZEHK9 zl2^zj&np(sGiy3IqhY+dyKn#Mb zlITjJmUBS-zV%NhRtd{r@$=6&u*3>gH@2}SELVAz0WYryhh=M07*v5!mEF<81_4yi zvF%e|JXx@M5>7u@RPkW?3iQFr!6Mb1|cp6 z$YWauma(W&Eibb+1zADC)h@y>iNHwKEG$M-ss0lWCR9!Q2QCI$tl^iO$QA#%%ri>H zT~Ahq5)1nA*Io}ybZ#uym;I~(91Ms;7l`RgCE6Q(#dAFaH43P3411edOSL8kyWM(} zk6W9v^a?JoU)E@%^Ljn945zhA#ek#Ks>x@5dZh`_LBjFA&02un7&L+*KuAM`&1|fiStYy>)QB&W{8Z6oomwR8zVYC z41Yv_!zO*mUGE0EvWCE$B0-cX873wub0-Rfjihrb}A=; zE}I&)x07+D<8ypIDYeH2MhE!qsk~Warm)~74o#)F&vcw_W;|OB6vkdK2nK!6g0Bi& zBB>bmToP4Ea+KYSQ4YHS_az z16@0L{N6X?gpA05#uod9`|ndWC0sLEbXYE2w$BOQwgq~t638WH;9G} zb53OR0`2^ow&=%Zwqo;q=7fOuuYK1_++5|^sgPz-2<~dK>mVZfY(d(Ut%9=fZB)?q zYg=hHoST-?R?#b-Rzc(9)Sg@DTG)ijp6N06w3Ij(H4z)WRf-<}#CNZf#GbWuM}IE@jb8yh%M!{a1H1GEW=%2{8tl8koG%|l7yZW%FtN2iGjPm7Veiz7zWZ2 zbWmFAT2_YZf0m{9d1wC2X`w3mXnptilBGo%8{=^fcv1H*0@C=QM2)BiMT++Gz}eSP z7CKmnXsD-OAlj&03-}ySk(%q_R~Ji`y5rJ^lERe$VK+3(n(>tIA7x2c9gL$$ulN>* zy6S}v(CipU4UHp1<(6Z4;N!##6@vQI-$U0h7$`;ZCTee}yoFe!<{b3pEok~ygePC_ zlJ@pp*l~fzeS}U{c^H2c1hu@xUa2#j?6of!&?*BfT~63naSzh4H2gqVc*-Cv8*O?m zbi07B)-HoAhv7Kg>5kU8j{F$%;KZr{swlE_y}zL!PN&tS$oy0_u`Kp|NL9+fJ#TEv z$BHXCbz@f!lQRW!&3TeF0$CS92%$;Qf5_#TzCTN)k#Dc-iYXf;qZ#^Pb{iTOvfK10 zVV3iCe>Am#6gRPA{6@$R=mwiijE?V`N52B{y$=nDHqtmj*hDOe;ETWm!)IV$)|ATK zsgaW-j;p^3-?L^Tm?zcir7(jXPW6Dk4-?v)IVNB8l>ldLt@!Dtu8#=Os#p?ym zxIv(NJ6=M34XFc26WF<$$$wuS8H#V0hIZoNjkA8YmjN3wr^2x}{sS@W{H(-Wias7A zcZcplmk;fc4>nAft>I7p{d6&>CK1-xXy-OlGa`niFR>Jq9)Sqm!1_NS8FK*3ZQ6Sy zrF_I;&TfICe5C0To7&@Krkc-`?f^p9A{ce|mpg>gZYI6;b>~tT5Pw?84KYZuYF^HR z|JyfAQ<+;5oSi-6R#E$HkoXFs6kXA|k1w|QmqV@L1+wHc*`h&%+}wFlWRiP1>}~}~ zGjN?czdSRGnN=A51|gJWku{Iuv-!L(GCq4hz3}Ys+qJNCo%tXJZEIKYKeI8%2?y(<38(S#ApJM(y6_=?b^fm< zhtS8}o;#c+=jKe1;NvA^9k9MEE@H&}c#l>x3Z<2|yPVedX$=BG^Z}2j52)X-C*93B zG*LvHB8yQdWjeZoFJrohM+)yT=09j$tGzC(e}1I54)q1toS%&MKQcB~t|Y$7Z*{#r z2|1RGT#Qd6wb#S6NqfBBKCTmn+4OxZ20|Ns9t7HFU`+o@Tj}PI?^x*u8*BA4{Zx9L zJ48ivXXATyt=<4o7buB8XFFf#FUGqGN|V>C;SHkGg?#DBoZLn^`^pZ3k6M!PUZ^{Y zGKvDQsOPl%-f`=`%hKzMKBO`2u(rXB>lxgBwN@Q8dGfb*flsZg47bZ=Xi$`-9^Z%Y z+wXqz>S8V{MQJ0c-U-lU8N5I)V$6r+Dz!qE|EI~E+MEW(#Z~@$?b~*T|hV$_vg#o0SXr_y`>YR zFoO@`O0@-GxuNu?vfU1^adE99`t}#Jg?vH+we@@pW`r|VjR;BRouRMgFr!LJPa}zn zurAGi`MxaVo&_$OH5Vim9$wIMC>S8jmYhy&WZfJQ6}J*eDWBM|Afl1NYmR-H38*x^ z;ab5(5%`ty7a<9v=fh{<4^U^PB|R7+;8ITeYfA&5ev$3_KyCcxnd{Vx6do&@9f4#{ zybQWp)5pLKa)fq%3F9KBP_(HJm10}gz^gEU!z7cIp~0;m&X%r{Cd=)zl{NN+1Bj|a zaAZFv_Udi>28~Kv-(F-T2}T=XDOr#aYKvf<~p$^sgZ`!-sHFdB8%NR5WTf zdWTis(WAc`fF9v2RtJ#R}XR<=LLvl=r`AElcUSnz(1~1CWeV@>Oa5iEba&;&e z+Z~8vy*T%p!h=d{w>DmjzaMfRnUBo8O_c-OWrkvi=a<~3D!Xi(gp(rO)!Oq^iz{vt z!)6n1=>&z7J=INDPop)ls3qd*(PeG3Sou5WROl*ieT`F=_m`*}Uj8h?&RpE4Z}6BH z-WPWC;AJdsFEhiD9tg1vwmOd$`hWydX=)rn#8Zz|8JWI2S0o8>inTdUh@MEgXLAFM zlQkk3Qe$z((NT}EyH*oIb$(%Chv2$kx5j&NJ1RFED~dWCc%y zDaun1^g1ku0!4Gaek|LVfXL{ryUioJpi@p8efj$<%pdsSmK0jjDrlX>{n0(Jng~V+U2)OG9~Sh3qHwS ztFwr|XFfflEAP<6bwz)YLLput1?xB2sqit_zT!9)9@no#wy63XQ>y zAZ+*ty0AhZH+$&~S3yHfuI{us-UEjrM+M2tGh|tWPA9lo+pkabV0R9Qm%We9Ze7iJ zo3rRXVI}RhKxoaGA&A>Ok6Usrs&wP8>&l`G2beq&7QcJMV>D^P`MM{mMpNs~3#R3; zTxa8NzE0of|?7VJqRGZBaF}F$1MxsYCq3*XY-C3tTswt#87xUYUN`+(dEVbd zMYu=xvI~EN`B(F!dUj=7ch_hx_}NIow)Nthqfc-&2F4qLclLFm$LBzD@l?KG2%Q`H zun5}jRo(WY^j|R@{1oGUdRK;Xo^BVtN6%P&NvlV``g;dy!dJebib6cl=>f%FnkcDn zUTv1H#X!d;9LX*hyJT0}5!D9QRs&fDYS)5NTJl3>Yc66071MRTjIwib;8b9@i0 zGU5f-{(;~hk+>udf^MIMurT^eF088)0fiCin%mGL!P%QzBR&SYU$ZZSe{LRgRw#FF zIeIM*4#jPpGMeL_1kQ+*Y+%RcsWuzH*iw2T`Y%PH-LR!o1ksrqk}z)CI73kL3>Cs+kk9!!Uv17NrjqE|~gWK*us*Do`Tt4(1(4mLSOgx?f`#CWFxajV_~>>3 z^ESDhYdVC%o~HFbU&?DThU)fIq}+mY2mf`p;d9~CQjW&;Tud$hI`@>b1XRG=U!wXIg4e6ys{02 z!Kxkz5Vzsh znAZ@f-(%2u5|6Y2o|5vds&Ukcht8=7j!w>oA*A~ER>3a1JuA)f^Vhp@s~%xnw)zLS zEUQuY1E^2+nJtUY41a8;MyyFMk1bXspXajCK!nsRzsbCGL3TUKCp0?&c&=h0hGq$E)!^*ZwBkNvv&y&?FSw^-iYES>(uV__{GK% zaV|GL$%xH_b8*2 ziq8&!K1rW;oqrRMv;uiirAsYCPi|@)DR)G3-WE%J!x8oS>;^2M%|Sw+_NC&_bPb&e?Po{&GGELXYx*piqXxb|2$NcK$H>P5P zBW}lPlKvm$rR{&AJp8vUk8>9W>$*M1*sWY5mGA$W^(H}N!g7; z`_}qnI)tAU4IIRn(%|eCU>xOnWg-=h&fXK)rPFt*Wp=ATG zL%b;{gy$<_pLTV)Tx)`5J~c5oVB-OClNFRt=H*Ozj^b^~Gkl=dPH4-y71?CEE$f(>MWYnB@t2S~JzH{C z!%F-cxj0Z$m9mwkkbYZ~{oMOPkaI1$rn_xNaPa56IHX9>?TtXMQ(v-ln*B`UNX^f! zq}TmcXZ3nvz0EdL$jt0>y*|77iuXc!98t62Gx6MQ(Jx-ExKF)Zs6Q%qaXLNAHiR&N z548mg{xzht6OvD0kSWMTb05TV;B2(HP5F;OLA1Knh8E9zu9zJU9K+djrg}ho%{^f2 z=5UoFo&u(nFvIyjir%MCr-D%fY|O0xlMJmLL(ci#Cr95QJMQiuyg<1S4t2wz3 zNG#C+3HciUqhD^Fa&fwseRB?0+1Gm7x~ZBoo>ODvj{33XI`_HdQo63+#rOV##wJ%@ z`gCC@4}5H1=<9iISx;nq_)sRT8~V7zeI=gH(~|=}uLmcuIRh6dz^h^5I+E*pQM;sp zF4ftQhTDue!rw?(Rp8Z_h{6*@~`GOYT%^#ei70SQ=%}~LYgX&d(D|s`zoT46OJ%@nj~NbMLhd|%ls>)eW?DaWB)!;7KXYq(~8y14%i$jA#{l-}y()&F6DBa9DIa5uC7a z$HL!JIKk2;+eLeEIcECU+1vCA!`n&411tvlv6VnAT$=-aJ6$4(i5K5MyCD`;6*T08OivmR6~U2bS18U9nT za%cQUN$rWrf?`mXGlb^|fD-$6!Gz~F$ov|3yX!T`;vS|&2}ooQ@=fIytq2zh^~Fw! z4{dSd4%=tJMj3@hTgzq3w-F;1)rbJS{@Lrh7q>j;G!YZVXy_5(HSM^uv(GIs0uw4v z2JgfTi-nxpkd(3;a36Q!P3m3yA+9E5=Epqq4SBXVH3?c;R}9h}z=DnYo^CIcoJ$;c zzsp@GOGP;%5D^QR&3$Z_=XIyU90P%icdS?Z%k_mTgkLd&oGx)-LU>7aKm>fEH8JRo z$(kGPfQ1`F7##LY0i#|*jPF05)haYEb3q4SLN_7dj5b~!tUxS8mBb%vlc%)yy^DlYhqoK(~RTWT*Z?ed(wGV zUcnB82#ku$Ev%^XROaDLm0$}|YPsJKy7D@|XZS{d;Nq_g8+d_0?6C5hyoFAe_+z>+ z`4Ir?<=K58dsi^+nl6Iy4~`?3K8P7*n~}XFVW&)je*g26u=Q z7=PikCDw`Yv%ct)2Y$|(su+oS;pk%(=$XgU4*o#Th-y>-5H7eCPr-VPyU5m`o zeyUe2n3$)5^|)!iCg*wyc=ue@ScD_{AbH&I3_}A-jw`ayP1xgXWt+h~EpoAAO*z)SS% zv6M3l^1V0wYhR*q{7SpK{@%*)tdl!#uf{qjy*Fzc%sVVM{LLKo;5;zvTyDjJmqwTb z%v5JgPOj37a#(f%Zb!kT-o%J&ti2pM4B84{263UmvTw%^fIx~;M%7rUYmNPmsX^f? z*W%d0!g+xnK@6_g1Je7SWy@$>=fB)y#*EP}D*MGR$Z$m)QB}SXr*iB-KP9AmA!v;OCpJ7eBPnXb*#PouXO313 zT!U5yqv3Z#{U@!!{6$f`e>*&KWP7UMJ|VTYglBK9c4kfSv)H$(R~!+nt+H(9_9?Bz zdc#`FUYV5ipRPX!?j5plKO*ZS$?l{aeY-lnpqLiuFoGB>3R3ju0cNL?E_+HG^=s`$ z-pSDc{Z)ummRqeQh*XKY6kwm_*83hN=sou?MNJR7X9?~B@U37Az79{ zHlz`UG$rce$@M*-bYr-a9m)QRZ7Zz|;a6-)U2-4dwL(#Am4oI#S=x^tWuu4L)ftsj zXP?K-^|v#a-_P;PQA&okBDj*=$5(aE_C>ch@ZfJNGjM;%o68*m;^MKLSfnF*k&27| z;Lr!4&IePGQgPEH919{roI=EBI7`mF4nWsdi@!;+}okm2inC;F^BQ=2|z}@BVk1IlBvD z2OEq0*VB=s6XT`ZLO5eu31Bk?}b+Eg9W!N}0mDn}S7|#+drno^usA-Y zYJ2U8)BHq(z|cjy3ya-p{z%JrR$av{$DB^F;+Ttz?Ykg2@ikZePUjq;$CpYDoAFpE2*Hl(g>P(gDWp=M+dfbtvlykbId-IH&?QC$-VU@4`9zm>Gqn zRMnR{hEz6ixc{#fWx}B?Lz`n_H`9HJ6oUHFg_CBZN6S^)Hzx71wyt~K6@IhznhQbB znr*)Gt!>sTrbnpL)))5NE$@Xr8h*{-I6!ZgG-OL=+*m?j)9bTwOKKc1D0xft)ZI|r zWxKoy=<@JptMOCgb-oRee%H{dZwz?OUG0yx!UIaUkJHQ^?!zt{|jyY7eZ zf0=#AokVmf`mfou9~t<&V{0M>Or?-+O*B)9OU7Hz@LvcrzZ*LK{|I5(kUhS@F7SmQ z=Qa&nH!mhFf5TyiwqhFFbh*))+KRq|a>j8teNfaZnYIubM}zsPcxr4;+vZvC9ZHO7 zDp~1n;jmuFE$^C@#K2X5o3mke(iT-yr}Boej~)4eZ3J=Ga;pU1kA5(4T7fI3mg9-f z;Z;ArHVt0?u2{PmWvrrcTAb4k4}cxak_&Fq2vjf6Pv*PjA?eNCRc{7Tj~F6P?c@4H##eJ~f0vOl0ceHCxBQ_% z{lZs6YtdN98o^c(?=GTHkhpW$ctqwQw3>_%_$>sC?oT?wF~?HNgJnnVEQS8^K#%S~ zRY~5PE>tdsa^ES%uRlJJwKP0(lAY$0sds_J)T82*Ruy8jBa*e`=&fJdAl95ZRY!y{ zp>F(u`TiY@dl+%w?w~1@1R%cbha>8`4O1f$#poSyk`N1hZurf}MLj-BNKzRD4^t=f zPh8j-sZ@^-F9XqiD(X0Mn<)Fn9rbz57H@P(opd+!L94&+1YCpKQ>JIf7pcA`;lP8n z#Cd0vhhAOZp?Q|HL>kN0D8^5mAgO$&D!{HKA@@e0AvOvc?p@AF8+eYA2+#3TVpck; zsaMv@evN9x)RmBn6v#uS#cud+kagA*F*uREeCPpDGQBBlT;w|w55=6+&0MW?_SO%{ zU%7@gXOF@BW@E=bfO@>|)It5;cTVj;yE>3MG;7%NI;UH~H}w>A*8nD`{N|vuHM)I%JE#S)~NEC+$*9$@q-xsc7GS-j^Xo{BzVR(=U z@j&NVqF!Uxt!BKT_O#M|;yTfBqp_eKNa3>iGcS?f#9i;Mgo)W?*cf-zd>pqHNS;LP zI1qZgR2Q2CSI=WmMUTD6mwofFIZKn4AOtP-)qz4Cri9(QivE@{l=EnXb@C`|Y{J+m za_Oz_m-lsqEg@zE!kZeGZm_Pgk4fAPy`T0zjfVC!qTZ8tY`gpWi|Sl_{pwRm8gP{S zlC_=GDwA&2w}dHv!(}Nh#s9~*4Vooi*%i#(|Fb3Cx-Ho-g7>oegd<4InGdKx2<_^v zBN*tjFWDK<3c|0WPrrqrN?x-+l;q&yMT z@&Xn^{O%FJ_x^yC0zh3Xo*HKWKz|Vn&Dx#x+hYnL!}HfDVNTb(pRUiFd@DkWUPQ#+ zVP6`@jb6_DWP!L;>$}-pEN`*SoJYT<6-L%U#P<2~#mV~euZrp~);6PEPL7*wxbELB z0e4jJ;mD4T_xD?gp+?i4sU1!@L6Wy8I=F8vNP;(O{#CGojJZfWUnF;V%@Vyk`8nsu z_xXbhefbSwtzu~?9ZS+BJM#ePK@|c`IR1$^;pCgMNpeV`s*On)(t_hlk8azc&Pchd z75~YPvIYd1$=_00a=}uYgW5M-$u;aPUwI}=#^ihS--HIh6D%mLWmTEGk0~OC@iEx} zi@0wQ*(}6QCWX-~qfV`oO=Z(g13R&VCd;t~rfxHN<;ry# zXWV5j=`04{!LpD}7sLLL`5uu86s@HK#S8{xl06K5$pszggxo`~zjR6NCI^R{oMBi& zzN5+%XVtQ+R!TR~zJWQ1dG}Sp`=ZsLf8z+)Nl{>5-Yg-U($)#45~rVbPDu84D2~C_d5n zgI~+nIRDGcQMV5<6&X1MH)<~F8$;94|SJHGG*FpD2?3Rk>6)Q>hy zz4PY1U5cPM$G=1MK6FKKMd`8V^YZMUdfXclDTuy-K*Tcn6)9t~wrGMBO>-ktHZo z4JE@fmtbcnLGd2v?1ap88H?q1fXvwf?vpT6MpoA|jmycx;X$hW5PIjGcKM3L_i1EN5XO^szZawZ|$~>&VxX#gx1U2|E zk3T+j*U<`_0)7Y8gmDf?cEnZ)4mz)tIr{PLpj49}}nKY?kH=V~ZSmL@idrC!_jiAqpe@LDxvAwrjrzRg~C7sgV4V z2E$T;YZU+5!EOYUUK^tEd02Z>E*(QQHrR&(`r(R{WEEMjtANyLbFCeBK*eL`zlQ#O z2D7Y|V@Cmdn|Zx|Db@=xxD75HG4}jzX=cv2a;pQ!o_{ZnnzRE4&QK+YA0XJy0=Tv#Vtu@Sg~PmCm)^-Bul#X8qgGnz$8KD{%GEv)Q}q8~`nj+GqxoXfcM zIK+xk;}@60Q2_~?RMQ4oO7n;8@$iKDAsSN4!J9wSELpY8R=>O_Upl8J2Jl654apR0 zYYV*;e@+ul@)!`(X_!c*BB^1sOsa7Ij&7^pN4s;DqS0Kah-&+hR2K8b>BK>Cg?ySd zJ(QRuy>hdZZe_?GfJ+QBWgr$1*-x@@`HiQ?xYCCt~Qg)9F$3hWGZ z(?MX&H!0$PEBbloyfoG7shb(>JC%6CPSuZZX0q&YFo>DNy6MHWX}6%*3(rvLdUj4> z(uk*g>AWgEN8f;(i&y&8b22|+4_%*i!_}-Bp_M;%>2&U{8}T* zV_AqDqMI!3{}*NN7-U(~Zi|+?Y}NCiefl2ovZH?9TY1{yzjz@c^{Q9-h345`ap(ZBwXc*uFku33IML`t44~0_V1Hm1!c#Rq-xa zr^Dci+L(#;>OAT0d`;y$F4uOR*UDv9B4YNwl~{pb_I@S|mjj{)N;%l)tHD1}nw=uU zjV6@G8YBXsav)d9#-BXRvLq3F1p3^_+KkTJwoF-`*i?gIECA1KH$y$9Y=2~XWKq`s5)DuYcl~au8{wiLvaRj z@pH?U3VJ{gE_e4YgFf$=c~>HdPB*qFMcrp0jsbF^!+?fqec6qT&Fh{MY3*=8y*Yc z`Mo9T*GoQmSmag?c{j3!@e5x7V$?8=6;2R1sj~qE<3MKckZCKX)s#BLRVMI%cd&RW z^6?MFkb$zBo<=KdL>P;R>m|nch$C(fBdo0C(#18hy~hX&k00CQHy=JwQG}@CFo5MM zEy*)|ofbY4rE>f`#3Ctv%KkEAdL?M9zp<;8_81dYc{d+sbs%Jv@tLi7#6XDlD13vc%@6ungmf!MdV~tjoATn(D1Dygy zXi`1hAk=X?z>{w-IDNp5zi9qhzwE@MlC2;ZlS8TRrdco9Xi#@ZXO_)50uXy$X{g4V zVUzFWri-pe#9wg0_y1;sFCEdXSnL@8{!WmIyf)ZOsC7r2Ca$_#@rcM*b5WS7PHZPt zfoFFKwY6r`LFO>7oN(EO)GL4#BbjvhC_52TM>d5}KpU#En`^rqNr*mYIbVrFfi>xN zx3t)ua|hqyW8Z@|_Ed|M0TAJcEo#&8LVx-9m4O1a zU)v)1)f)tbJf(U^hWT%2LpoLob2uGg>fJRnoJg~PTMH#65P?BcwHqr{KbeGrDG+>> z{fLxr@EX4U#nHZn_QoJuuAQ7**Z4oE7p3H+rtiH{HYV2p<{N#fy|x6!z@KBIh{^&U_sK7>Bfd%Nx&GJOuR$Clo~hL&RXa~SEN+q={nLB6 z|JyiveY>mc{SKKkBz)lIk$?g4(f@Savso!?bKkw~K-Lg?`HKGaemG30_YQcwAAjbr zyFC61vTZS&u!%~Kte@d{cvL#$aV!YB0ubXkPNzz0+o^Y^5B@$3zo|jU*6aEjVC!|m z`chgy&enBT3A4%W?s7+goKD>4`||lq0u!w--Fow#ATXr+j840LBA)zy{`yXC{TR^s ze)Bq~1V(`0KeXPuCi6a>1qnFC+@Q;sCw_OSEhdyl)dWv7Yf~YfRX9ONO*T)p_<*q4 zb|kpvdc?Rsln}IioQe$HPs^^a>?Z5l=wETlmwpB2;@a9d^7a$GoVa6b zDRVUrB{&hQzr*Zx{WfNL3hZgZyV(QUdOTW97ii9}t@9vQq>LdT6%^ zUC;5Bd&RtQaFWPxKWr=6>IQ?d^j}vEF(x>N4uwea6gsS)8sztiGUZPkecgsao7;8u z9}iUCjt)2*bN=eW^#HmtS7_^fjJ?R|Lj=_Evy5`y5{$HPa7Y+FFZXt}B0VqI<_)q+t*3a43kDOVjjcQKAWI zmz6U<;XETKa0AI)^bRYt?3s$v?wH^ePqtt!Vdi_!yCQqkT;TxXy63Mrpahr=TCmU%yM>wMs7XHLwOKMd1UFl-(+pq_& z5kbPW$ZNZ?p#gCIv|S|=|Do-uL-=j9+NU?x_CBM^mj#{4u&c?_wc7+*EECq|e`n`x znFHCV#nX0(**ey8N?v${x2a^S*m-WNlz=CxJUV)Jq3ohH*5|C<-)*yYMaaUocw6Mk zm>IFwFSm3Ly)w+r4D%iKn62nhw-h^Jvmv$1hL$wLvkYMI$HI3t4oUKkXTGn{|Dmgn zq#q4&4X%4(f8g>wmDMZbAzH(}#kBv0AT5|S24ill3Y6GfVgEIfCyXVGE<0Vz#b_ke zMYRaBa$h%6It-;wQr+$L6hZ5_wyYYmt;M_Y~v9< z>4;eMo(1p-PPL1YxYoElbCw;=2A1<4T`w|GBoRbBfimh`zapcgWug|N4SGW;Vqv<| zF}=gv&Ud~6I@t+#TTV%kVA&|9c=s}$Jm*=E+@}u_`DrWuFKt}%*7CzDTJ!K3Lh#C$5tYm;l#t zWpsS-%2-^^zF?D-+;#?WGT=B=V?20f7OLKV_WHg$bH ztU)CB8lSb*xdChzB4KbUm^BZ*U?~%ei2BG3$IAVuz?HNkjgA&SHL>(m{00MBt!;SU zMK5aQuFUS$S69}XSM9z1(%!S-ai!sL?`Y>jlWt?LD>L{JE@C5drjW!T#-e zqw@9E*2K_ZcK9%dUPVSf1k2rcXzxh=?81YZhwMH;Z5NNh*?s5nSvIRz=m`ONOmlH! zf^yeiLYyUmi)8$@stT(eMRWeCUhV5t$^vcEpS(l{giz8N$=&J>8Tj@%rMRx&}s*oLCsCCt*A z6CyS%StP0hOP$27#qI8Uh{xH7Ec#1Guzo;s25LbJ+>a z7drJIWDQ=7{qB($0ba3xz?Jb60t?p*SZZs+7wrLrwb)fDlg8F-NQJv&mMyA=9;_Wt zoT_uAb}FCPi)VyDnzbG45R*R~nc#IFn2X_Bnlp-wg725Y6@)`qUVf~Y>-xtU zjT*w$T8LEylQv`uI0EDp4`s|X57pPJsI9gl>1QNcq=$#_YSk^cSFSqybSt^0+2DsG zM_mC}=~X^DO-W~-?Z2QBZ8%y!Yw~Q!z~9MWAJi3X-GKMJ&C4GwN6D{PJA*C`+e?$_ zte)I#(VZ|+LI-z6r-jpfmEP_w)|Ra}IQUOkuDFI)h`d9YZri{xCmGuo${+sDwd{So zwd|G3n8Kn;n7|TCP>?nV$Wa$P2m%r2C<6gF7D_Q;ITl*hY#45b+PD@cZW>zMkq7vJ zXhfrfP=gW+xV0(b#p%u#xvUxMP*-iQ>ZwnsT*iO(E!%^P0UNC73QBy(?h0|IlmRuT zh$<+%G4k5YsYBzZEVsFQ#mi{e6OnnN3ZMHf&hF8-VaeqBfP?m%aE~EW{=EySM6Uu| z1I|8S?dq)w!%>{`M(emiaH<|cj&O`uj}(%05CsVSq!C>zCz~J~XyVo>S=-yYP?Hw_ zIR@=f1`{>Z$ahcz1)P9Y`uHh0TSFqg@GW49H-s%TkR%Cy=lBbI%aAKjncRwU({Np6 zo!2Z$Q+FFMG`ZAo7yKo9s1GhiN_U@+KIuD|12tk>Wr_s|1q@B)I% zp~1_QYS5NC;B?ool&!aJC#SY(EPbYS& z=qVm0mab^?(m+hD#UJwqvMQu$9`) zb6hjy@evSyTA|<>^{wXiFP{L_R34eE>@2rQgCJXcAY5elO=GGy357bWLi9&V4^u@G zFFm}NB_;|y8PB}-jR8(+>9fVVgaS#5*~kWP!o3nJ>KmTSF+rwNBbU=dOk1e+<&8M< z;#0CsG{D?p(-ms}wLAKcYbo2-K^3_^h7dZZ)wT%NPIz{g<+sqE1s{MIXnd-_K-%^HG#=YNi-b)z!ue ze5Ds4NIe-Kte{-@Qw#to5i!~!LJCYc2qO#jv=+Xl$Lb{8NFP5j*c(WQ1E3NE@^J8h zBD`93=n=TGl4%t>a}}bkz%nuv%C~~tq>3)md8F{f#=y)bBOTS_lO~(}EnDB;broX- zm%kdzJI=jkhAg2Uq~4O%Xyb5(5>@hzpiU>lXbQ!Xk4I~|*%pasPtI&%wd`b#JVX++^$Gl2pIp(#= z?sK|A<%P2Y729Oa@%q~$D9ZSOKTd)RR8Qmv6Lg_L!4im>k5J7w${bK3LvLI_8rrEH zs&>WRtCB{YTF(Grb(kVR43LaD{POyQr8-`n$Yc?$M?UQ#4N08deo2^`FI%G6#f%dR z<%L{pz3wLUWf4N-hbh3Ik>yIXIqVF&O&VvZB8kL*2g>YS#`17{O%6L+H9pBc zeAK2byYU!tTdB%xi7sP^)mVLvp6u_+MzHX+zB7l-oPB1{Y0p!2pXi#Thv*cqCE~_l zy3@_O+%EkygRh)hJ=M`Zc`~2(oP?x^4b=ZSh7}DE|H~vNGK3cNt$>P zU0q|GeHPQTzh5pFZ)fp{D4;`jf1iu32DH2nE3nfEZNB^smL!g-mSgz5*7NNe_`MAP zc)XpOIldltSK)~MLBX*4q|3&g%0x`{dS)MJh8iIrnw4+WQfXU|W;CT%2ut zAUIg`PT=G5@hKcGe{lD99<4z+o??T zTT(Cq;v9iUCB+A;S@Ew7XXDOL{>NjD`@Qc~koW&_yxKFM)0RWWkpVv3l*Plr`@1 zRp>OILXq>x18NS`eiUNv*J_?)MbNsam*nx`*o1}b&^k7Co%sr zX_uw0wq%=x&7b_+@a77Hpf{4D%fzBLjEM(43(SbS2f%Xg@=~B@ zrru;JXfTv7lxJ-;@Ji~rO*~6z;9^qg#in>$25#UcBGx$wY9Cq2zTg0OL*tEZt`RqB zBax_#;zEXA)(~SBw%{)~$djHp*xNJye!86tL1!1I!Ww^_jn`r7eF?zV3d-Xg=0wm zJ9qOv3(JD$GgY_(#~RXdig$TCrJYy}w3xIWZ1GgKxFpgq0(m%e*nH}AQ=hb#oJf=Z3%z3yyEGxomn?2YKzXmj-Rc8|7Wh*Mh`EbCA= zqOQmzZS)HJ+}5Q?!B|-SOO|V=Bk<-G*Jumv5qA7d^GPC`+nv+Qjj~WY4n753T=sJ=p+~j$eMTN`N&Ee2(iM+`L60p->9ED2TJ&s{EPLj&`aQ*A z$Wn3Kb_h!`n-D$ogF?y4@1!h)#c2MU&a*bbO#-EN3_3y{+fD)@qg@;mEs zhrb@fQUO8J&q6KvryS#2B<>?YD=V6q9tOI5F#BVAFwf1+CM7{2W{uyb~kwAw&xwymHsDI zPt?{Hv4;Zdi>h+gTGx@tukZ~zHjlyy*{Z==4S@XWsGz#J`ia-BCegfd&XSs3vLs#` zH7(Fui%xdQz4dw5M%M4zxzM=gqPjehha`(WRzE%_{qbE4#s&wS(>q#55?-qX3{SV^ zk;xNsEY+l4zC5m-;vQ}xa}d@$!}jDC_M;BqZd&zz-Kl`&gzjb?`)2nw_@L8uvj=03>LhWoSoP<*joEOb2eHYxv{^b%Rwde*gFC##qbofVvMVJ z%<43pHhzn1V3d+pdcil2&8My*H?fzG0le?{kXUoi7RuYor- zLXBWlBo=THMoU9#@ZD!bqTY$(IeF&iDxZtKe2ajg3Lobae*Hve3ByJXmv3hfdQ|dX zfG6gdDu2q)ISOC16|jKe^dtI3;?qM zP6{B;fwc^H^LbUCy!8#>2kywjmhQn?Oh!U$KnY``{dVw?*;Q@?{zPrW>si#)sq3!v z!!%uq=q~8MmE!oZY*R&76n@qul+|=@0IDi#bjF_t1Nh=>^4c(SZVhv)(S};O`)$x_ z0zR_IlGD-+NFZvb8qhQgXg+#!2Hep5Tm`traQV5!4DpK)eXQR(7gZot!stkQpkk_eJ(;s#HFAbZAaj=s8*RZZUKCiFI|s zr#{lLUE{R-s=)Wj06)RkD|QW+@eKF*&i1`HAb{ZYPT%YtZmj>j7S?xTyM>AT6R}V= z7Nv_J!l0-xNV}b_#Sf+22G9wQ&N##ZuH?U?o$l?LbZOZrSZ7vkCK+?!thZgo`Of(x zdiO&=g7c}YJd5}?iF{cjuU0hG)f^53B>{PWNYbO6Siphfx%*IqzeJwMrF>Q_X3^YU zzdx76TAV9k^J}EjQT%nLqO92&bqM!@t%8>{1y3v7K0=?a(_Zl20}x2TRZaxTwD90^ zF7zj9C{^a?F`I=544!L4)#Vl@Uz_aD+Yk7!b=L-76S#(=@1KR9+rzdNm;3**pQo82z=>Kr`<@Ya$1|?aElERA za%BDC=xQ&_y~eQ30W#~IOvuZ->Nav}ph&w#YB~I1IE{8-^n%>7sZ`fe}J+^{J2k97!|J235#dz`9Wm+6aw9t?R9I z)eAW@BUhmP_GMO(%oaixDUr0#mShsCkOxZ5HPz!&`;pZ24)}~we!lh0stj7 z#)Rb*d^^5nl+jPQ6jvdL*C6t$Ma!iaKXRnv(D*Z-kSg0k7gLMZ*wUM&o^8^yCgt*7 z7To&O4T(-sP?2Dl+bRqwitboSFhhi~Tr2^eXKc9AN(%iak#R=JnG zKs}DNHrpmU0J<1-x~kgKxsEL9eS?Z9xpUChsbQr+etSONr^bQ$p^g5~=L%U3n<$Lr zKq;KW9B9Iha~^$Wn>HJRad);adbVw(&;+m$n}jdhU#K4~oVD7r2ta5 zXI=mvthom!dkzJLJ|W8c1H>c~i)HzA=;RV34=6kV@}9jp9p(#=XG>-$7D7fB5b_hw zg#-yH`yTWPz@p6Mc0owW2axa*2e7!rY4J7dRLGfg`Rx4dVkONmB`G3qW}Z9lt-lJg~+*}Jp=iptVcA4h)-|4FzleObtyIj7X7a?C3n97^N^`g)wtfgtjDZ6*-FVoZ;mv%aEWSg1Ir{3)l~k zY?@3z|38W#8-^B~p=$hAtR=mNxd-sse?`0O-8B>F`FcVj_luyuzi*D~ zec8V@C)=tHx1BzNF1H)z@^uIC174rv-~qm$yNBs^tB1e8UTndR19V(%=`$=)-ro3J z@ktd0pSR=Dz%g`@3#Mx3(t^VaK>YkO4WHPloV!ZkPRG~upxUE$KXa@-JO({cq&(NcDO5&&po ze~U~6>quHty_Mh6FSf=-Lehp)I85?o^UCkL<4gcg0AJ7DIa@)!3dqmfeW^E@uTL0B z*&<}+%P{q4f@WO!jq}U#arW%h!M~>%)oKn#uCIHUai!xws!M(*GXT23)4hKu18V0?!92r9)(fOy-;N=Kn8(*Jlii6=Z$RAq)wI>Z7`_0#?d~-dP1zs=D?~HQ$WB% zMKUVUAYd3QAMpKI_scG212>9J`fk~>?}r$py>233fKiZZt_;ty0RB{W5}?gpm-}QI zjN53l{lX@Qr-?l-Xbn1Z0HhA;S+)8kpGI)8(Ae<7lX=t!*%;)71W*E33f3!FSk;2c z%_z}}Z~wOz1NbkF{_{RVmC2RxddKE4^QY_a416qa9Fm{vf+`0@>~GD-TS*kcL1VPp z&Z|Q7$tWVxK5@iY$puv;7yt;&cY6{EW7VL=GnNf_w)Lf5?!2l*eIZRez;#QEwNYI7 zRo|5+^H=bXFpu4^)VV#ZcbwQCGFul+`v9)4CduU0M)n4wq?RZ^JW~Y`Ks5QHB&)_? zx+v#p5ueb^=n-iC4)u0JUa~Ww9n3N!jZEVo{Q=YzAapwWqdxm{0QK`H$2q;Y!gk=P zX2z0sdYRs^cs`k~oq|+!ch<{nOXKpdy*L(P4G6#eb!@0a3fh9{;}=#E2UELqC~&s14U%DSnj{me=83)b*YO3 zrNMNK-el+TYLr#f0)X2LD=B_NC)BlFzO8J5h%jL66k67|*EH23AXMQ_Lm%t7A2(&C zo9wA?&yB5>&)Fnyw&;1ZRu=6Vm+}fzliB6MhqMLW6 t;3Xao*5>o;Y+4QJK|F*! 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 delta 132468 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%0A)oF@@V3`X7~ou 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 JX$ye$KLD_Q)>Hrh diff --git a/examples/Importers/ImportColladaDemo/LoadMeshFromCollada.cpp b/examples/Importers/ImportColladaDemo/LoadMeshFromCollada.cpp index 8a99da00f..348b96d7c 100644 --- a/examples/Importers/ImportColladaDemo/LoadMeshFromCollada.cpp +++ b/examples/Importers/ImportColladaDemo/LoadMeshFromCollada.cpp @@ -336,9 +336,7 @@ void readLibraryGeometries(TiXmlDocument& doc, btAlignedObjectArray& name2Shape, btAlignedObjectArray& visualShapeInstances, const btMatrix4x4& parentTransMat) { - //const char* nodeName = node->Attribute("id"); - //printf("processing node %s\n", nodeName); - + btMatrix4x4 nodeTrans; nodeTrans.setIdentity(); diff --git a/examples/OpenGLWindow/MacOpenGLWindow.mm b/examples/OpenGLWindow/MacOpenGLWindow.mm index 0f0d07ec4..80a11fc1b 100644 --- a/examples/OpenGLWindow/MacOpenGLWindow.mm +++ b/examples/OpenGLWindow/MacOpenGLWindow.mm @@ -10,6 +10,61 @@ #include #include +#include + + +//aargh, Mac OSX 10.12 broke backwards compatibility, fix it here for now +#ifdef __MAC_10_12 + #define MyNSTitledWindowMask NSWindowStyleMaskTitled + #define MyNSResizableWindowMask NSWindowStyleMaskResizable + #define MyNSClosableWindowMask NSWindowStyleMaskClosable + #define MyNSMiniaturizableWindowMask NSWindowStyleMaskMiniaturizable + #define MyNSAnyEventMask NSEventMaskAny + #define MyNSEventTypeFlagsChanged NSEventTypeFlagsChanged + #define MyNSEventModifierFlagShift NSEventModifierFlagShift + #define MyNSEventModifierFlagControl NSEventModifierFlagControl + #define MyNSEventModifierFlagOption NSEventModifierFlagOption + #define MyNSKeyUp NSEventTypeKeyUp + #define MyNSKeyDown NSEventTypeKeyDown + #define MyNSRightMouseDown NSEventTypeRightMouseDown + #define MyNSLeftMouseDown NSEventTypeLeftMouseDown + #define MyNSOtherMouseDown NSEventTypeOtherMouseDown + #define MyNSRightMouseUp NSEventTypeRightMouseUp + #define MyNSLeftMouseUp NSEventTypeLeftMouseUp + #define MyNSOtherMouseUp NSEventTypeOtherMouseUp + #define MyNSMouseMoved NSEventTypeMouseMoved + #define MyNSLeftMouseDragged NSEventTypeLeftMouseDragged + #define MyNSRightMouseDragged NSEventTypeRightMouseDragged + #define MyNSOtherMouseDragged NSEventTypeOtherMouseDragged + #define MyNSScrollWheel NSEventTypeScrollWheel + + +#else + #define MyNSTitledWindowMask NSTitledWindowMask + #define MyNSResizableWindowMask NSResizableWindowMask + #define MyNSClosableWindowMask NSClosableWindowMask + #define MyNSMiniaturizableWindowMask NSMiniaturizableWindowMask + #define MyNSAnyEventMask NSAnyEventMask + #define MyNSEventTypeFlagsChanged NSFlagsChanged + #define MyNSEventModifierFlagShift NSShiftKeyMask + #define MyNSEventModifierFlagControl NSControlKeyMask + #define MyNSEventModifierFlagOption NSAlternateKeyMask + #define MyNSKeyUp NSKeyUp + #define MyNSKeyDown NSKeyDown + #define NSRightMouseDown NSRightMouseDown + #define MyNSLeftMouseDown LeftMouseDown + #define MyNSOtherMouseDown NSOtherMouseDown + #define MyNSLeftMouseUp NSLeftMouseUp + #define MyNSRightMouseUp NSRightMouseUp + #define MyNSOtherMouseUp NSOtherMouseUp + #define MyNSMouseMoved NSMouseMoved + #define MyNSLeftMouseDragged NSLeftMouseDragged + #define MyNSRightMouseDragged NSRightMouseDragged + #define MyNSOtherMouseDragged NSOtherMouseDragged + #define MyNSScrollWheel NSScrollWheel + + +#endif enum { @@ -368,7 +423,7 @@ void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci) m_internalData->m_window = [NSWindow alloc]; [m_internalData->m_window initWithContentRect:frame - styleMask:NSTitledWindowMask |NSResizableWindowMask| NSClosableWindowMask | NSMiniaturizableWindowMask + styleMask:MyNSTitledWindowMask |MyNSResizableWindowMask| MyNSClosableWindowMask | MyNSMiniaturizableWindowMask backing:NSBackingStoreBuffered defer:false]; @@ -771,7 +826,7 @@ void MacOpenGLWindow::startRendering() [pool release]; pool = [[NSAutoreleasePool alloc] init]; event = [m_internalData->m_myApp - nextEventMatchingMask:NSAnyEventMask + nextEventMatchingMask:MyNSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode // inMode:NSEventTrackingRunLoopMode @@ -780,12 +835,12 @@ void MacOpenGLWindow::startRendering() //NSShiftKeyMask = 1 << 17, //NSControlKeyMask - if ([event type] == NSFlagsChanged) + if ([event type] == MyNSEventTypeFlagsChanged) { int modifiers = [event modifierFlags]; if (m_keyboardCallback) { - if ((modifiers & NSShiftKeyMask)) + if ((modifiers & MyNSEventModifierFlagShift)) { m_keyboardCallback(B3G_SHIFT,1); m_modifierFlags |= MY_MAC_SHIFTKEY; @@ -797,7 +852,7 @@ void MacOpenGLWindow::startRendering() m_modifierFlags &= ~MY_MAC_SHIFTKEY; } } - if (modifiers & NSControlKeyMask) + if (modifiers & MyNSEventModifierFlagControl) { m_keyboardCallback(B3G_CONTROL,1); m_modifierFlags |= MY_MAC_CONTROL_KEY; @@ -809,7 +864,7 @@ void MacOpenGLWindow::startRendering() m_modifierFlags &= ~MY_MAC_CONTROL_KEY; } } - if (modifiers & NSAlternateKeyMask) + if (modifiers & MyNSEventModifierFlagOption) { m_keyboardCallback(B3G_ALT,1); m_modifierFlags |= MY_MAC_ALTKEY; @@ -826,7 +881,7 @@ void MacOpenGLWindow::startRendering() } } - if ([event type] == NSKeyUp) + if ([event type] == MyNSKeyUp) { handledEvent = true; @@ -841,7 +896,9 @@ void MacOpenGLWindow::startRendering() m_keyboardCallback(keycode,state); } } - if ([event type] == NSKeyDown) + + + if ([event type] == MyNSKeyDown) { handledEvent = true; @@ -861,7 +918,8 @@ void MacOpenGLWindow::startRendering() } - if (([event type]== NSRightMouseDown) || ([ event type]==NSLeftMouseDown)||([event type]==NSOtherMouseDown)) + + if (([event type]== MyNSRightMouseDown) || ([ event type]==MyNSLeftMouseDown)||([event type]==MyNSOtherMouseDown)) { // printf("right mouse!"); // float mouseX,mouseY; @@ -873,17 +931,17 @@ void MacOpenGLWindow::startRendering() int button=0; switch ([event type]) { - case NSLeftMouseDown: + case MyNSLeftMouseDown: { button=0; break; } - case NSOtherMouseDown: + case MyNSOtherMouseDown: { button=1; break; } - case NSRightMouseDown: + case MyNSRightMouseDown: { button=2; break; @@ -902,7 +960,7 @@ void MacOpenGLWindow::startRendering() } - if (([event type]== NSRightMouseUp) || ([ event type]==NSLeftMouseUp)||([event type]==NSOtherMouseUp)) + if (([event type]== MyNSRightMouseUp) || ([ event type]==MyNSLeftMouseUp)||([event type]==MyNSOtherMouseUp)) { // printf("right mouse!"); // float mouseX,mouseY; @@ -915,17 +973,17 @@ void MacOpenGLWindow::startRendering() int button=0; switch ([event type]) { - case NSLeftMouseUp: + case MyNSLeftMouseUp: { button=0; break; } - case NSOtherMouseUp: + case MyNSOtherMouseUp: { button=1; break; } - case NSRightMouseUp: + case MyNSRightMouseUp: { button=2; break; @@ -943,7 +1001,7 @@ void MacOpenGLWindow::startRendering() } - if ([event type] == NSMouseMoved) + if ([event type] == MyNSMouseMoved) { NSPoint eventLocation = [event locationInWindow]; @@ -960,7 +1018,8 @@ void MacOpenGLWindow::startRendering() } } - if (([event type] == NSLeftMouseDragged) || ([event type] == NSRightMouseDragged) || ([event type] == NSOtherMouseDragged)) + + if (([event type] == MyNSLeftMouseDragged) || ([event type] == MyNSRightMouseDragged) || ([event type] == MyNSOtherMouseDragged)) { int dx1, dy1; CGGetLastMouseDelta (&dx1, &dy1); @@ -979,7 +1038,7 @@ void MacOpenGLWindow::startRendering() // printf("mouse coord = %f, %f\n",m_mouseX,m_mouseY); } - if ([event type] == NSScrollWheel) + if ([event type] == MyNSScrollWheel) { float dy, dx; dy = [ event deltaY ]; diff --git a/examples/SharedMemory/PhysicsClient.h b/examples/SharedMemory/PhysicsClient.h index 3e3248a0b..1fdb07ad4 100644 --- a/examples/SharedMemory/PhysicsClient.h +++ b/examples/SharedMemory/PhysicsClient.h @@ -34,6 +34,10 @@ public: virtual bool getJointInfo(int bodyUniqueId, int jointIndex, struct b3JointInfo& info) const = 0; + virtual int getNumUserConstraints() const = 0; + + virtual int getUserConstraintInfo(int constraintUniqueId, struct b3UserConstraint& info) const = 0; + virtual void setSharedMemoryKey(int key) = 0; virtual void uploadBulletFileToSharedMemory(const char* data, int len) = 0; diff --git a/examples/SharedMemory/PhysicsClientC_API.cpp b/examples/SharedMemory/PhysicsClientC_API.cpp index 37e7cb78b..08be193e8 100644 --- a/examples/SharedMemory/PhysicsClientC_API.cpp +++ b/examples/SharedMemory/PhysicsClientC_API.cpp @@ -1045,6 +1045,31 @@ int b3GetNumBodies(b3PhysicsClientHandle physClient) return cl->getNumBodies(); } +int b3GetNumUserConstraints(b3PhysicsClientHandle physClient) +{ + PhysicsClient* cl = (PhysicsClient* ) physClient; + return cl->getNumUserConstraints(); +} + +int b3GetUserConstraintInfo(b3PhysicsClientHandle physClient, int constraintUniqueId, struct b3UserConstraint* infoPtr) +{ + PhysicsClient* cl = (PhysicsClient* ) physClient; + b3UserConstraint constraintInfo1; + b3Assert(physClient); + b3Assert(infoPtr); + b3Assert(constraintUniqueId>=0); + + if (infoPtr==0) + return 0; + + if (cl->getUserConstraintInfo(constraintUniqueId, constraintInfo1)) + { + *infoPtr = constraintInfo1; + return 1; + } + return 0; +} + /// return the body unique id, given the index in range [0 , b3GetNumBodies() ) int b3GetBodyUniqueId(b3PhysicsClientHandle physClient, int serialIndex) { diff --git a/examples/SharedMemory/PhysicsClientC_API.h b/examples/SharedMemory/PhysicsClientC_API.h index 54f1ad1e1..dc972cfa1 100644 --- a/examples/SharedMemory/PhysicsClientC_API.h +++ b/examples/SharedMemory/PhysicsClientC_API.h @@ -57,7 +57,7 @@ int b3GetStatusActualState(b3SharedMemoryStatusHandle statusHandle, const double* actualStateQdot[], const double* jointReactionForces[]); -///If you re-connected to an existing server, or server changed otherwise, sync the body info +///If you re-connected to an existing server, or server changed otherwise, sync the body info and user constraints etc. b3SharedMemoryCommandHandle b3InitSyncBodyInfoCommand(b3PhysicsClientHandle physClient); ///return the total number of bodies in the simulation @@ -76,15 +76,21 @@ int b3GetNumJoints(b3PhysicsClientHandle physClient, int bodyIndex); int b3GetJointInfo(b3PhysicsClientHandle physClient, int bodyIndex, int jointIndex, struct b3JointInfo* info); b3SharedMemoryCommandHandle b3InitCreateUserConstraintCommand(b3PhysicsClientHandle physClient, int parentBodyIndex, int parentJointIndex, int childBodyIndex, int childJointIndex, struct b3JointInfo* info); + +///return a unique id for the user constraint, after successful creation, or -1 for an invalid constraint id int b3GetStatusUserConstraintUniqueId(b3SharedMemoryStatusHandle statusHandle); + +///change parameters of an existing user constraint b3SharedMemoryCommandHandle b3InitChangeUserConstraintCommand(b3PhysicsClientHandle physClient, int userConstraintUniqueId); int b3InitChangeUserConstraintSetPivotInB(b3SharedMemoryCommandHandle commandHandle, double jointChildPivot[3]); int b3InitChangeUserConstraintSetFrameInB(b3SharedMemoryCommandHandle commandHandle, double jointChildFrameOrn[4]); int b3InitChangeUserConstraintSetMaxForce(b3SharedMemoryCommandHandle commandHandle, double maxAppliedForce); - b3SharedMemoryCommandHandle b3InitRemoveUserConstraintCommand(b3PhysicsClientHandle physClient, int userConstraintUniqueId); +int b3GetNumUserConstraints(b3PhysicsClientHandle physClient); +int b3GetUserConstraintInfo(b3PhysicsClientHandle physClient, int constraintUniqueId, struct b3UserConstraint* info); + ///Request physics debug lines for debug visualization. The flags in debugMode are the same as used in Bullet ///See btIDebugDraw::DebugDrawModes in Bullet/src/LinearMath/btIDebugDraw.h b3SharedMemoryCommandHandle b3InitRequestDebugLinesCommand(b3PhysicsClientHandle physClient, int debugMode); @@ -320,7 +326,7 @@ void b3GetRaycastInformation(b3PhysicsClientHandle physClient, struct b3RaycastI b3SharedMemoryCommandHandle b3ApplyExternalForceCommandInit(b3PhysicsClientHandle physClient); void b3ApplyExternalForce(b3SharedMemoryCommandHandle commandHandle, int bodyUniqueId, int linkId, const double force[3], const double position[3], int flags); void b3ApplyExternalTorque(b3SharedMemoryCommandHandle commandHandle, int bodyUniqueId, int linkId, const double torque[3], int flags); - + ///experiments of robots interacting with non-rigid objects (such as btSoftBody) b3SharedMemoryCommandHandle b3LoadBunnyCommandInit(b3PhysicsClientHandle physClient); int b3LoadBunnySetScale(b3SharedMemoryCommandHandle commandHandle, double scale); diff --git a/examples/SharedMemory/PhysicsClientSharedMemory.cpp b/examples/SharedMemory/PhysicsClientSharedMemory.cpp index df2aed6a7..d635012a1 100644 --- a/examples/SharedMemory/PhysicsClientSharedMemory.cpp +++ b/examples/SharedMemory/PhysicsClientSharedMemory.cpp @@ -28,6 +28,7 @@ struct PhysicsClientSharedMemoryInternalData { SharedMemoryBlock* m_testBlock1; btHashMap m_bodyJointMap; + btHashMap m_userConstraintInfoMap; btAlignedObjectArray m_debugLinesFrom; btAlignedObjectArray m_debugLinesTo; @@ -46,6 +47,8 @@ struct PhysicsClientSharedMemoryInternalData { btAlignedObjectArray m_raycastHits; btAlignedObjectArray m_bodyIdsRequestInfo; + btAlignedObjectArray m_constraintIdsRequestInfo; + SharedMemoryStatus m_tempBackupServerStatus; SharedMemoryStatus m_lastServerStatus; @@ -138,6 +141,22 @@ bool PhysicsClientSharedMemory::getJointInfo(int bodyUniqueId, int jointIndex, b return false; } +int PhysicsClientSharedMemory::getNumUserConstraints() const +{ + return m_data->m_userConstraintInfoMap.size(); +} + +int PhysicsClientSharedMemory::getUserConstraintInfo(int constraintUniqueId, struct b3UserConstraint& info) const +{ + b3UserConstraint* constraintPtr =m_data->m_userConstraintInfoMap[constraintUniqueId]; + if (constraintPtr) + { + info = *constraintPtr; + return 1; + } + return 0; +} + PhysicsClientSharedMemory::PhysicsClientSharedMemory() { @@ -156,6 +175,8 @@ PhysicsClientSharedMemory::~PhysicsClientSharedMemory() { if (m_data->m_isConnected) { disconnectSharedMemory(); } + resetData(); + if (m_data->m_ownsSharedMemory) { delete m_data->m_sharedMemory; @@ -163,6 +184,34 @@ PhysicsClientSharedMemory::~PhysicsClientSharedMemory() { delete m_data; } +void PhysicsClientSharedMemory::resetData() +{ + m_data->m_debugLinesFrom.clear(); + m_data->m_debugLinesTo.clear(); + m_data->m_debugLinesColor.clear(); + for (int i=0;im_bodyJointMap.size();i++) + { + BodyJointInfoCache** bodyJointsPtr = m_data->m_bodyJointMap.getAtIndex(i); + if (bodyJointsPtr && *bodyJointsPtr) + { + BodyJointInfoCache* bodyJoints = *bodyJointsPtr; + for (int j=0;jm_jointInfo.size();j++) { + if (bodyJoints->m_jointInfo[j].m_jointName) + { + free(bodyJoints->m_jointInfo[j].m_jointName); + } + if (bodyJoints->m_jointInfo[j].m_linkName) + { + free(bodyJoints->m_jointInfo[j].m_linkName); + } + } + delete (*bodyJointsPtr); + } + } + m_data->m_bodyJointMap.clear(); + m_data->m_userConstraintInfoMap.clear(); + +} void PhysicsClientSharedMemory::setSharedMemoryKey(int key) { m_data->m_sharedMemoryKey = key; } @@ -398,7 +447,72 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() { break; } - + case CMD_USER_CONSTRAINT_INFO_COMPLETED: + { + int cid = serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId; + m_data->m_userConstraintInfoMap.insert(cid,serverCmd.m_userConstraintResultArgs); + break; + } + case CMD_USER_CONSTRAINT_COMPLETED: + { + int cid = serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId; + m_data->m_userConstraintInfoMap.insert(cid,serverCmd.m_userConstraintResultArgs); + break; + } + case CMD_REMOVE_USER_CONSTRAINT_COMPLETED: + { + int cid = serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId; + m_data->m_userConstraintInfoMap.remove(cid); + break; + } + case CMD_CHANGE_USER_CONSTRAINT_COMPLETED: + { + int cid = serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId; + b3UserConstraint* userConstraintPtr = m_data->m_userConstraintInfoMap[cid]; + if (userConstraintPtr) + { + const b3UserConstraint* serverConstraint = &serverCmd.m_userConstraintResultArgs; + if (serverCmd.m_updateFlags & USER_CONSTRAINT_CHANGE_PIVOT_IN_B) + { + userConstraintPtr->m_childFrame[0] = serverConstraint->m_childFrame[0]; + userConstraintPtr->m_childFrame[1] = serverConstraint->m_childFrame[1]; + userConstraintPtr->m_childFrame[2] = serverConstraint->m_childFrame[2]; + } + if (serverCmd.m_updateFlags & USER_CONSTRAINT_CHANGE_FRAME_ORN_IN_B) + { + userConstraintPtr->m_childFrame[3] = serverConstraint->m_childFrame[3]; + userConstraintPtr->m_childFrame[4] = serverConstraint->m_childFrame[4]; + userConstraintPtr->m_childFrame[5] = serverConstraint->m_childFrame[5]; + userConstraintPtr->m_childFrame[6] = serverConstraint->m_childFrame[6]; + } + if (serverCmd.m_updateFlags & USER_CONSTRAINT_CHANGE_MAX_FORCE) + { + userConstraintPtr->m_maxAppliedForce = serverConstraint->m_maxAppliedForce; + } + } + break; + } + + case CMD_USER_CONSTRAINT_FAILED: + { + b3Warning("createConstraint failed"); + break; + } + case CMD_REMOVE_USER_CONSTRAINT_FAILED: + { + b3Warning("removeConstraint failed"); + break; + } + case CMD_CHANGE_USER_CONSTRAINT_FAILED: + { + b3Warning("changeConstraint failed"); + break; + } + case CMD_ACTUAL_STATE_UPDATE_FAILED: + { + b3Warning("request actual state failed"); + break; + } case CMD_BODY_INFO_COMPLETED: { if (m_data->m_verboseOutput) { @@ -497,30 +611,8 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() { if (m_data->m_verboseOutput) { b3Printf("CMD_RESET_SIMULATION_COMPLETED clean data\n"); } - m_data->m_debugLinesFrom.clear(); - m_data->m_debugLinesTo.clear(); - m_data->m_debugLinesColor.clear(); - for (int i=0;im_bodyJointMap.size();i++) - { - BodyJointInfoCache** bodyJointsPtr = m_data->m_bodyJointMap.getAtIndex(i); - if (bodyJointsPtr && *bodyJointsPtr) - { - BodyJointInfoCache* bodyJoints = *bodyJointsPtr; - for (int j=0;jm_jointInfo.size();j++) { - if (bodyJoints->m_jointInfo[j].m_jointName) - { - free(bodyJoints->m_jointInfo[j].m_jointName); - } - if (bodyJoints->m_jointInfo[j].m_linkName) - { - free(bodyJoints->m_jointInfo[j].m_linkName); - } - } - delete (*bodyJointsPtr); - } - } - m_data->m_bodyJointMap.clear(); - + resetData(); + break; } case CMD_DEBUG_LINES_COMPLETED: { @@ -802,20 +894,7 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() { b3Warning("User debug draw failed"); break; } - case CMD_USER_CONSTRAINT_COMPLETED: - { - break; - } - case CMD_USER_CONSTRAINT_FAILED: - { - b3Warning("createConstraint failed"); - break; - } - case CMD_ACTUAL_STATE_UPDATE_FAILED: - { - b3Warning("request actual state failed"); - break; - } + case CMD_SYNC_BODY_INFO_COMPLETED: { break; @@ -841,6 +920,12 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() { if ((serverCmd.m_type == CMD_SDF_LOADING_COMPLETED) || (serverCmd.m_type == CMD_MJCF_LOADING_COMPLETED) || (serverCmd.m_type == CMD_SYNC_BODY_INFO_COMPLETED)) { + int numConstraints = serverCmd.m_sdfLoadedArgs.m_numUserConstraints; + for (int i=0;im_constraintIdsRequestInfo.push_back(constraintUid); + } int numBodies = serverCmd.m_sdfLoadedArgs.m_numBodies; if (numBodies>0) { @@ -863,6 +948,25 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() { } } + if (serverCmd.m_type == CMD_USER_CONSTRAINT_INFO_COMPLETED) + { + if (m_data->m_constraintIdsRequestInfo.size()) + { + int cid = m_data->m_constraintIdsRequestInfo[m_data->m_constraintIdsRequestInfo.size()-1]; + m_data->m_constraintIdsRequestInfo.pop_back(); + SharedMemoryCommand& command = m_data->m_testBlock1->m_clientCommands[0]; + command.m_type = CMD_USER_CONSTRAINT; + command.m_updateFlags = USER_CONSTRAINT_REQUEST_INFO; + command.m_userConstraintArguments.m_userConstraintUniqueId = cid; + submitClientCommand(command); + return 0; + } + else + { + m_data->m_lastServerStatus = m_data->m_tempBackupServerStatus; + } + } + if (serverCmd.m_type == CMD_BODY_INFO_COMPLETED) { //are there any bodies left to be processed? @@ -879,7 +983,20 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() { return 0; } else { - m_data->m_lastServerStatus = m_data->m_tempBackupServerStatus; + if (m_data->m_constraintIdsRequestInfo.size()) + { + int cid = m_data->m_constraintIdsRequestInfo[m_data->m_constraintIdsRequestInfo.size()-1]; + m_data->m_constraintIdsRequestInfo.pop_back(); + SharedMemoryCommand& command = m_data->m_testBlock1->m_clientCommands[0]; + command.m_type = CMD_USER_CONSTRAINT; + command.m_updateFlags = USER_CONSTRAINT_REQUEST_INFO; + command.m_userConstraintArguments.m_userConstraintUniqueId = cid; + submitClientCommand(command); + return 0; + } else + { + m_data->m_lastServerStatus = m_data->m_tempBackupServerStatus; + } } } diff --git a/examples/SharedMemory/PhysicsClientSharedMemory.h b/examples/SharedMemory/PhysicsClientSharedMemory.h index 854618456..57392d2b2 100644 --- a/examples/SharedMemory/PhysicsClientSharedMemory.h +++ b/examples/SharedMemory/PhysicsClientSharedMemory.h @@ -12,8 +12,8 @@ class PhysicsClientSharedMemory : public PhysicsClient { protected: virtual void setSharedMemoryInterface(class SharedMemoryInterface* sharedMem); void processBodyJointInfo(int bodyUniqueId, const struct SharedMemoryStatus& serverCmd); - - + void resetData(); + public: PhysicsClientSharedMemory(); virtual ~PhysicsClientSharedMemory(); @@ -44,6 +44,10 @@ public: virtual bool getJointInfo(int bodyUniqueId, int jointIndex, struct b3JointInfo& info) const; + virtual int getNumUserConstraints() const; + + virtual int getUserConstraintInfo(int constraintUniqueId, struct b3UserConstraint& info) const; + virtual void setSharedMemoryKey(int key); virtual void uploadBulletFileToSharedMemory(const char* data, int len); diff --git a/examples/SharedMemory/PhysicsDirect.cpp b/examples/SharedMemory/PhysicsDirect.cpp index 07dc561af..240cad4d1 100644 --- a/examples/SharedMemory/PhysicsDirect.cpp +++ b/examples/SharedMemory/PhysicsDirect.cpp @@ -19,6 +19,8 @@ struct BodyJointInfoCache2 btAlignedObjectArray m_jointInfo; }; + + struct PhysicsDirectInternalData { DummyGUIHelper m_noGfx; @@ -34,6 +36,7 @@ struct PhysicsDirectInternalData btAlignedObjectArray m_debugLinesColor; btHashMap m_bodyJointMap; + btHashMap m_userConstraintInfoMap; char m_bulletStreamDataServerToClient[SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE]; @@ -112,6 +115,7 @@ void PhysicsDirect::resetData() } } m_data->m_bodyJointMap.clear(); + m_data->m_userConstraintInfoMap.clear(); } // return true if connection succesfull, can also check 'isConnected' @@ -670,6 +674,47 @@ void PhysicsDirect::postProcessStatus(const struct SharedMemoryStatus& serverCmd break; } + case CMD_USER_CONSTRAINT_INFO_COMPLETED: + case CMD_USER_CONSTRAINT_COMPLETED: + { + int cid = serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId; + m_data->m_userConstraintInfoMap.insert(cid,serverCmd.m_userConstraintResultArgs); + break; + } + case CMD_REMOVE_USER_CONSTRAINT_COMPLETED: + { + int cid = serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId; + m_data->m_userConstraintInfoMap.remove(cid); + break; + } + case CMD_CHANGE_USER_CONSTRAINT_COMPLETED: + { + int cid = serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId; + b3UserConstraint* userConstraintPtr = m_data->m_userConstraintInfoMap[cid]; + if (userConstraintPtr) + { + const b3UserConstraint* serverConstraint = &serverCmd.m_userConstraintResultArgs; + if (serverCmd.m_updateFlags & USER_CONSTRAINT_CHANGE_PIVOT_IN_B) + { + userConstraintPtr->m_childFrame[0] = serverConstraint->m_childFrame[0]; + userConstraintPtr->m_childFrame[1] = serverConstraint->m_childFrame[1]; + userConstraintPtr->m_childFrame[2] = serverConstraint->m_childFrame[2]; + } + if (serverCmd.m_updateFlags & USER_CONSTRAINT_CHANGE_FRAME_ORN_IN_B) + { + userConstraintPtr->m_childFrame[3] = serverConstraint->m_childFrame[3]; + userConstraintPtr->m_childFrame[4] = serverConstraint->m_childFrame[4]; + userConstraintPtr->m_childFrame[5] = serverConstraint->m_childFrame[5]; + userConstraintPtr->m_childFrame[6] = serverConstraint->m_childFrame[6]; + } + if (serverCmd.m_updateFlags & USER_CONSTRAINT_CHANGE_MAX_FORCE) + { + userConstraintPtr->m_maxAppliedForce = serverConstraint->m_maxAppliedForce; + } + } + break; + } + case CMD_SYNC_BODY_INFO_COMPLETED: case CMD_MJCF_LOADING_COMPLETED: case CMD_SDF_LOADING_COMPLETED: @@ -677,6 +722,29 @@ void PhysicsDirect::postProcessStatus(const struct SharedMemoryStatus& serverCmd //we'll stream further info from the physics server //so serverCmd will be invalid, make a copy + int numConstraints = serverCmd.m_sdfLoadedArgs.m_numUserConstraints; + for (int i=0;im_commandProcessor->processCommand(infoRequestCommand, infoStatus, &m_data->m_bulletStreamDataServerToClient[0], SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE); + + + int timeout = 1024 * 1024 * 1024; + while ((!hasStatus) && (timeout-- > 0)) + { + hasStatus = m_data->m_commandProcessor->receiveStatus(infoStatus, &m_data->m_bulletStreamDataServerToClient[0], SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE); + } + + if (hasStatus) + { + int cid = infoStatus.m_userConstraintResultArgs.m_userConstraintUniqueId; + m_data->m_userConstraintInfoMap.insert(cid,infoStatus.m_userConstraintResultArgs); + } + } int numBodies = serverCmd.m_sdfLoadedArgs.m_numBodies; for (int i = 0; im_commandProcessor->processCommand(command,m_data->m_serverStatus,&m_data->m_bulletStreamDataServerToClient[0],SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE); m_data->m_hasStatus = hasStatus; - if (hasStatus) + /*if (hasStatus) { postProcessStatus(m_data->m_serverStatus); + m_data->m_hasStatus = false; } + */ return hasStatus; } @@ -777,6 +855,23 @@ int PhysicsDirect::getNumBodies() const return m_data->m_bodyJointMap.size(); } +int PhysicsDirect::getNumUserConstraints() const +{ + return m_data->m_userConstraintInfoMap.size(); +} + +int PhysicsDirect::getUserConstraintInfo(int constraintUniqueId, struct b3UserConstraint&info) const +{ + b3UserConstraint* constraintPtr =m_data->m_userConstraintInfoMap[constraintUniqueId]; + if (constraintPtr) + { + info = *constraintPtr; + return 1; + } + return 0; +} + + int PhysicsDirect::getBodyUniqueId(int serialIndex) const { diff --git a/examples/SharedMemory/PhysicsDirect.h b/examples/SharedMemory/PhysicsDirect.h index bdaced974..a8b4c6aac 100644 --- a/examples/SharedMemory/PhysicsDirect.h +++ b/examples/SharedMemory/PhysicsDirect.h @@ -63,6 +63,10 @@ public: virtual bool getJointInfo(int bodyIndex, int jointIndex, struct b3JointInfo& info) const; + virtual int getNumUserConstraints() const; + + virtual int getUserConstraintInfo(int constraintUniqueId, struct b3UserConstraint& info) const; + ///todo: move this out of the virtual void setSharedMemoryKey(int key); @@ -86,7 +90,7 @@ public: virtual void getCachedRaycastHits(struct b3RaycastInformation* raycastHits); - //those 2 APIs are for internal use for visualization + //the following APIs are for internal use for visualization: virtual bool connect(struct GUIHelperInterface* guiHelper); virtual void renderScene(); virtual void debugDraw(int debugDrawMode); diff --git a/examples/SharedMemory/PhysicsLoopBack.cpp b/examples/SharedMemory/PhysicsLoopBack.cpp index 626653f43..6de63e374 100644 --- a/examples/SharedMemory/PhysicsLoopBack.cpp +++ b/examples/SharedMemory/PhysicsLoopBack.cpp @@ -99,7 +99,16 @@ bool PhysicsLoopBack::getJointInfo(int bodyIndex, int jointIndex, struct b3Joint return m_data->m_physicsClient->getJointInfo(bodyIndex,jointIndex,info); } -///todo: move this out of the +int PhysicsLoopBack::getNumUserConstraints() const +{ + return m_data->m_physicsClient->getNumUserConstraints(); +} +int PhysicsLoopBack::getUserConstraintInfo(int constraintUniqueId, struct b3UserConstraint&info) const +{ + return m_data->m_physicsClient->getUserConstraintInfo( constraintUniqueId, info); +} + +///todo: move this out of the interface void PhysicsLoopBack::setSharedMemoryKey(int key) { m_data->m_physicsServer->setSharedMemoryKey(key); diff --git a/examples/SharedMemory/PhysicsLoopBack.h b/examples/SharedMemory/PhysicsLoopBack.h index 0eaea6ff8..3cbeba296 100644 --- a/examples/SharedMemory/PhysicsLoopBack.h +++ b/examples/SharedMemory/PhysicsLoopBack.h @@ -48,6 +48,10 @@ public: virtual bool getJointInfo(int bodyIndex, int jointIndex, struct b3JointInfo& info) const; + virtual int getNumUserConstraints() const; + + virtual int getUserConstraintInfo(int constraintUniqueId, struct b3UserConstraint&info) const; + ///todo: move this out of the virtual void setSharedMemoryKey(int key); diff --git a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp index af2d5c2d8..5d000f6dc 100644 --- a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp +++ b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp @@ -135,6 +135,9 @@ struct InteralUserConstraintData { btTypedConstraint* m_rbConstraint; btMultiBodyConstraint* m_mbConstraint; + + b3UserConstraint m_userConstraintData; + InteralUserConstraintData() :m_rbConstraint(0), m_mbConstraint(0) @@ -834,6 +837,9 @@ void PhysicsServerCommandProcessor::deleteDynamicsWorld() deleteCachedInverseDynamicsBodies(); deleteCachedInverseKinematicsBodies(); + m_data->m_userConstraints.clear(); + m_data->m_saveWorldBodyData.clear(); + for (int i=0;im_multiBodyJointFeedbacks.size();i++) { delete m_data->m_multiBodyJointFeedbacks[i]; @@ -1760,6 +1766,17 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm } } serverStatusOut.m_sdfLoadedArgs.m_numBodies = actualNumBodies; + + int usz = m_data->m_userConstraints.size(); + serverStatusOut.m_sdfLoadedArgs.m_numUserConstraints = usz; + for (int i=0;im_userConstraints.getKeyAtIndex(i).getUid1(); + int uid = m_data->m_userConstraints.getAtIndex(i)->m_userConstraintData.m_userConstraintUniqueId; + serverStatusOut.m_sdfLoadedArgs.m_userConstraintUniqueIds[i] = key; + } + serverStatusOut.m_type = CMD_SYNC_BODY_INFO_COMPLETED; hasStatus = true; break; @@ -1785,7 +1802,7 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm { //saveWorld(clientCmd.m_sdfArguments.m_sdfFileName); - + int constraintCount = 0; FILE* f = fopen(clientCmd.m_sdfArguments.m_sdfFileName,"w"); if (f) { @@ -1900,6 +1917,93 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm }; } + //user constraints + { + for (int i=0;im_userConstraints.size();i++) + { + InteralUserConstraintData* ucptr = m_data->m_userConstraints.getAtIndex(i); + b3UserConstraint& uc = ucptr->m_userConstraintData; + + int parentBodyIndex=uc.m_parentBodyIndex; + int parentJointIndex=uc.m_parentJointIndex; + int childBodyIndex=uc.m_childBodyIndex; + int childJointIndex=uc.m_childJointIndex; + btVector3 jointAxis(uc.m_jointAxis[0],uc.m_jointAxis[1],uc.m_jointAxis[2]); + btVector3 pivotParent(uc.m_parentFrame[0],uc.m_parentFrame[1],uc.m_parentFrame[2]); + btVector3 pivotChild(uc.m_childFrame[0],uc.m_childFrame[1],uc.m_childFrame[2]); + btQuaternion ornFrameParent(uc.m_parentFrame[3],uc.m_parentFrame[4],uc.m_parentFrame[5],uc.m_parentFrame[6]); + btQuaternion ornFrameChild(uc.m_childFrame[3],uc.m_childFrame[4],uc.m_childFrame[5],uc.m_childFrame[6]); + { + char jointTypeStr[1024]="FIXED"; + bool hasKnownJointType = true; + + switch (uc.m_jointType) + { + case eRevoluteType: + { + sprintf(jointTypeStr,"p.JOINT_REVOLUTE"); + break; + } + case ePrismaticType: + { + sprintf(jointTypeStr,"p.JOINT_PRISMATIC"); + break; + } + case eSphericalType: + { + sprintf(jointTypeStr,"p.JOINT_SPHERICAL"); + break; + } + case ePlanarType: + { + sprintf(jointTypeStr,"p.JOINT_PLANAR"); + break; + } + case eFixedType : + { + sprintf(jointTypeStr,"p.JOINT_FIXED"); + break; + } + case ePoint2PointType: + { + sprintf(jointTypeStr,"p.JOINT_POINT2POINT"); + break; } + default: + { + hasKnownJointType = false; + b3Warning("unknown constraint type in SAVE_WORLD"); + } + }; + if (hasKnownJointType) + { + { + sprintf(line,"cid%d = p.createConstraint(%d,%d,%d,%d,%s,[%f,%f,%f],[%f,%f,%f],[%f,%f,%f],[%f,%f,%f,%f],[%f,%f,%f,%f])\n", + constraintCount, + parentBodyIndex, + parentJointIndex, + childBodyIndex, + childJointIndex, + jointTypeStr, + jointAxis[0],jointAxis[1],jointAxis[2], + pivotParent[0],pivotParent[1],pivotParent[2], + pivotChild[0],pivotChild[1],pivotChild[2], + ornFrameParent[0],ornFrameParent[1],ornFrameParent[2],ornFrameParent[3], + ornFrameChild[0],ornFrameChild[1],ornFrameChild[2],ornFrameChild[3] + ); + int len = strlen(line); + fwrite(line,len,1,f); + } + { + sprintf(line,"p.changeConstraint(cid%d,maxForce=%f)\n",constraintCount,uc.m_maxAppliedForce); + int len = strlen(line); + fwrite(line,len,1,f); + constraintCount++; + } + } + } + } + } + { btVector3 grav=this->m_data->m_dynamicsWorld->getGravity(); sprintf(line,"p.setGravity(%f,%f,%f)\n",grav[0],grav[1],grav[2]); @@ -1942,6 +2046,7 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm //serverStatusOut.m_type = CMD_SDF_LOADING_FAILED; serverStatusOut.m_sdfLoadedArgs.m_numBodies = m_data->m_sdfRecentLoadedBodies.size(); + serverStatusOut.m_sdfLoadedArgs.m_numUserConstraints = 0; int maxBodies = btMin(MAX_SDF_BODIES, serverStatusOut.m_sdfLoadedArgs.m_numBodies); for (int i=0;im_userConstraints.find(userConstraintUidChange); + if (userConstraintPtr) + { + serverCmd.m_userConstraintResultArgs = userConstraintPtr->m_userConstraintData; + serverCmd.m_type = CMD_USER_CONSTRAINT_INFO_COMPLETED; + } + } if (clientCmd.m_updateFlags & USER_CONSTRAINT_ADD_CONSTRAINT) { + btScalar defaultMaxForce = 500.0; InteralBodyData* parentBody = m_data->getHandle(clientCmd.m_userConstraintArguments.m_parentBodyIndex); if (parentBody && parentBody->m_multiBody) { - InteralBodyData* childBody = clientCmd.m_userConstraintArguments.m_childBodyIndex>=0 ? m_data->getHandle(clientCmd.m_userConstraintArguments.m_childBodyIndex):0; - //also create a constraint with just a single multibody/rigid body without child - //if (childBody) + if ((clientCmd.m_userConstraintArguments.m_parentJointIndex>=-1) && clientCmd.m_userConstraintArguments.m_parentJointIndex < parentBody->m_multiBody->getNumLinks()) { - btVector3 pivotInParent(clientCmd.m_userConstraintArguments.m_parentFrame[0], clientCmd.m_userConstraintArguments.m_parentFrame[1], clientCmd.m_userConstraintArguments.m_parentFrame[2]); - btVector3 pivotInChild(clientCmd.m_userConstraintArguments.m_childFrame[0], clientCmd.m_userConstraintArguments.m_childFrame[1], clientCmd.m_userConstraintArguments.m_childFrame[2]); - btMatrix3x3 frameInParent(btQuaternion(clientCmd.m_userConstraintArguments.m_parentFrame[3], clientCmd.m_userConstraintArguments.m_parentFrame[4], clientCmd.m_userConstraintArguments.m_parentFrame[5], clientCmd.m_userConstraintArguments.m_parentFrame[6])); - btMatrix3x3 frameInChild(btQuaternion(clientCmd.m_userConstraintArguments.m_childFrame[3], clientCmd.m_userConstraintArguments.m_childFrame[4], clientCmd.m_userConstraintArguments.m_childFrame[5], clientCmd.m_userConstraintArguments.m_childFrame[6])); - btVector3 jointAxis(clientCmd.m_userConstraintArguments.m_jointAxis[0], clientCmd.m_userConstraintArguments.m_jointAxis[1], clientCmd.m_userConstraintArguments.m_jointAxis[2]); - if (clientCmd.m_userConstraintArguments.m_jointType == eFixedType) + InteralBodyData* childBody = clientCmd.m_userConstraintArguments.m_childBodyIndex>=0 ? m_data->getHandle(clientCmd.m_userConstraintArguments.m_childBodyIndex):0; + //also create a constraint with just a single multibody/rigid body without child + //if (childBody) { - if (childBody && childBody->m_multiBody) + btVector3 pivotInParent(clientCmd.m_userConstraintArguments.m_parentFrame[0], clientCmd.m_userConstraintArguments.m_parentFrame[1], clientCmd.m_userConstraintArguments.m_parentFrame[2]); + btVector3 pivotInChild(clientCmd.m_userConstraintArguments.m_childFrame[0], clientCmd.m_userConstraintArguments.m_childFrame[1], clientCmd.m_userConstraintArguments.m_childFrame[2]); + btMatrix3x3 frameInParent(btQuaternion(clientCmd.m_userConstraintArguments.m_parentFrame[3], clientCmd.m_userConstraintArguments.m_parentFrame[4], clientCmd.m_userConstraintArguments.m_parentFrame[5], clientCmd.m_userConstraintArguments.m_parentFrame[6])); + btMatrix3x3 frameInChild(btQuaternion(clientCmd.m_userConstraintArguments.m_childFrame[3], clientCmd.m_userConstraintArguments.m_childFrame[4], clientCmd.m_userConstraintArguments.m_childFrame[5], clientCmd.m_userConstraintArguments.m_childFrame[6])); + btVector3 jointAxis(clientCmd.m_userConstraintArguments.m_jointAxis[0], clientCmd.m_userConstraintArguments.m_jointAxis[1], clientCmd.m_userConstraintArguments.m_jointAxis[2]); + if (clientCmd.m_userConstraintArguments.m_jointType == eFixedType) { - btMultiBodyFixedConstraint* multibodyFixed = new btMultiBodyFixedConstraint(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,childBody->m_multiBody,clientCmd.m_userConstraintArguments.m_childJointIndex,pivotInParent,pivotInChild,frameInParent,frameInChild); - multibodyFixed->setMaxAppliedImpulse(500.0); - m_data->m_dynamicsWorld->addMultiBodyConstraint(multibodyFixed); - InteralUserConstraintData userConstraintData; - userConstraintData.m_mbConstraint = multibodyFixed; - int uid = m_data->m_userConstraintUIDGenerator++; - m_data->m_userConstraints.insert(uid,userConstraintData); - serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; - serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; + if (childBody && childBody->m_multiBody) + { + if ((clientCmd.m_userConstraintArguments.m_childJointIndex>=-1) && (clientCmd.m_userConstraintArguments.m_childJointIndex m_multiBody->getNumLinks())) + { + btMultiBodyFixedConstraint* multibodyFixed = new btMultiBodyFixedConstraint(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,childBody->m_multiBody,clientCmd.m_userConstraintArguments.m_childJointIndex,pivotInParent,pivotInChild,frameInParent,frameInChild); + multibodyFixed->setMaxAppliedImpulse(defaultMaxForce); + m_data->m_dynamicsWorld->addMultiBodyConstraint(multibodyFixed); + InteralUserConstraintData userConstraintData; + userConstraintData.m_mbConstraint = multibodyFixed; + int uid = m_data->m_userConstraintUIDGenerator++; + serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; + serverCmd.m_userConstraintResultArgs.m_maxAppliedForce = defaultMaxForce; + userConstraintData.m_userConstraintData = serverCmd.m_userConstraintResultArgs; + m_data->m_userConstraints.insert(uid,userConstraintData); + serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; + } - } - else - { - btRigidBody* rb = childBody? childBody->m_rigidBody : 0; - btMultiBodyFixedConstraint* rigidbodyFixed = new btMultiBodyFixedConstraint(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,rb,pivotInParent,pivotInChild,frameInParent,frameInChild); - rigidbodyFixed->setMaxAppliedImpulse(500.0); - btMultiBodyDynamicsWorld* world = (btMultiBodyDynamicsWorld*) m_data->m_dynamicsWorld; - world->addMultiBodyConstraint(rigidbodyFixed); - InteralUserConstraintData userConstraintData; - userConstraintData.m_mbConstraint = rigidbodyFixed; - int uid = m_data->m_userConstraintUIDGenerator++; - m_data->m_userConstraints.insert(uid,userConstraintData); - serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; - serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; - } + } + else + { + btRigidBody* rb = childBody? childBody->m_rigidBody : 0; + btMultiBodyFixedConstraint* rigidbodyFixed = new btMultiBodyFixedConstraint(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,rb,pivotInParent,pivotInChild,frameInParent,frameInChild); + rigidbodyFixed->setMaxAppliedImpulse(defaultMaxForce); + btMultiBodyDynamicsWorld* world = (btMultiBodyDynamicsWorld*) m_data->m_dynamicsWorld; + world->addMultiBodyConstraint(rigidbodyFixed); + InteralUserConstraintData userConstraintData; + userConstraintData.m_mbConstraint = rigidbodyFixed; + int uid = m_data->m_userConstraintUIDGenerator++; + serverCmd.m_userConstraintResultArgs = clientCmd.m_userConstraintArguments; + serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; + serverCmd.m_userConstraintResultArgs.m_maxAppliedForce = defaultMaxForce; + userConstraintData.m_userConstraintData = serverCmd.m_userConstraintResultArgs; + m_data->m_userConstraints.insert(uid,userConstraintData); + serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; + } - } - else if (clientCmd.m_userConstraintArguments.m_jointType == ePrismaticType) - { - if (childBody && childBody->m_multiBody) - { - btMultiBodySliderConstraint* multibodySlider = new btMultiBodySliderConstraint(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,childBody->m_multiBody,clientCmd.m_userConstraintArguments.m_childJointIndex,pivotInParent,pivotInChild,frameInParent,frameInChild,jointAxis); - multibodySlider->setMaxAppliedImpulse(500.0); - m_data->m_dynamicsWorld->addMultiBodyConstraint(multibodySlider); - InteralUserConstraintData userConstraintData; - userConstraintData.m_mbConstraint = multibodySlider; - int uid = m_data->m_userConstraintUIDGenerator++; - m_data->m_userConstraints.insert(uid,userConstraintData); - serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; - serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; } - else + else if (clientCmd.m_userConstraintArguments.m_jointType == ePrismaticType) { - btRigidBody* rb = childBody? childBody->m_rigidBody : 0; + if (childBody && childBody->m_multiBody) + { + btMultiBodySliderConstraint* multibodySlider = new btMultiBodySliderConstraint(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,childBody->m_multiBody,clientCmd.m_userConstraintArguments.m_childJointIndex,pivotInParent,pivotInChild,frameInParent,frameInChild,jointAxis); + multibodySlider->setMaxAppliedImpulse(defaultMaxForce); + m_data->m_dynamicsWorld->addMultiBodyConstraint(multibodySlider); + InteralUserConstraintData userConstraintData; + userConstraintData.m_mbConstraint = multibodySlider; + int uid = m_data->m_userConstraintUIDGenerator++; + serverCmd.m_userConstraintResultArgs = clientCmd.m_userConstraintArguments; + serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; + serverCmd.m_userConstraintResultArgs.m_maxAppliedForce = defaultMaxForce; + userConstraintData.m_userConstraintData = serverCmd.m_userConstraintResultArgs; + m_data->m_userConstraints.insert(uid,userConstraintData); + serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; + } + else + { + btRigidBody* rb = childBody? childBody->m_rigidBody : 0; - btMultiBodySliderConstraint* rigidbodySlider = new btMultiBodySliderConstraint(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,rb,pivotInParent,pivotInChild,frameInParent,frameInChild,jointAxis); - rigidbodySlider->setMaxAppliedImpulse(500.0); - btMultiBodyDynamicsWorld* world = (btMultiBodyDynamicsWorld*) m_data->m_dynamicsWorld; - world->addMultiBodyConstraint(rigidbodySlider); - InteralUserConstraintData userConstraintData; - userConstraintData.m_mbConstraint = rigidbodySlider; - int uid = m_data->m_userConstraintUIDGenerator++; - m_data->m_userConstraints.insert(uid,userConstraintData); - serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; - serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; - } + btMultiBodySliderConstraint* rigidbodySlider = new btMultiBodySliderConstraint(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,rb,pivotInParent,pivotInChild,frameInParent,frameInChild,jointAxis); + rigidbodySlider->setMaxAppliedImpulse(defaultMaxForce); + btMultiBodyDynamicsWorld* world = (btMultiBodyDynamicsWorld*) m_data->m_dynamicsWorld; + world->addMultiBodyConstraint(rigidbodySlider); + InteralUserConstraintData userConstraintData; + userConstraintData.m_mbConstraint = rigidbodySlider; + int uid = m_data->m_userConstraintUIDGenerator++; + serverCmd.m_userConstraintResultArgs = clientCmd.m_userConstraintArguments; + serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; + serverCmd.m_userConstraintResultArgs.m_maxAppliedForce = defaultMaxForce; + userConstraintData.m_userConstraintData = serverCmd.m_userConstraintResultArgs; + m_data->m_userConstraints.insert(uid,userConstraintData); + serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; } - } else if (clientCmd.m_userConstraintArguments.m_jointType == ePoint2PointType) - { - if (childBody && childBody->m_multiBody) + } else if (clientCmd.m_userConstraintArguments.m_jointType == ePoint2PointType) { - btMultiBodyPoint2Point* p2p = new btMultiBodyPoint2Point(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,childBody->m_multiBody,clientCmd.m_userConstraintArguments.m_childJointIndex,pivotInParent,pivotInChild); - p2p->setMaxAppliedImpulse(500); - m_data->m_dynamicsWorld->addMultiBodyConstraint(p2p); - InteralUserConstraintData userConstraintData; - userConstraintData.m_mbConstraint = p2p; - int uid = m_data->m_userConstraintUIDGenerator++; - m_data->m_userConstraints.insert(uid,userConstraintData); - serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; - serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; - } - else - { - btRigidBody* rb = childBody? childBody->m_rigidBody : 0; + if (childBody && childBody->m_multiBody) + { + btMultiBodyPoint2Point* p2p = new btMultiBodyPoint2Point(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,childBody->m_multiBody,clientCmd.m_userConstraintArguments.m_childJointIndex,pivotInParent,pivotInChild); + p2p->setMaxAppliedImpulse(defaultMaxForce); + m_data->m_dynamicsWorld->addMultiBodyConstraint(p2p); + InteralUserConstraintData userConstraintData; + userConstraintData.m_mbConstraint = p2p; + int uid = m_data->m_userConstraintUIDGenerator++; + serverCmd.m_userConstraintResultArgs = clientCmd.m_userConstraintArguments; + serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; + serverCmd.m_userConstraintResultArgs.m_maxAppliedForce = defaultMaxForce; + userConstraintData.m_userConstraintData = serverCmd.m_userConstraintResultArgs; + m_data->m_userConstraints.insert(uid,userConstraintData); + serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; + } + else + { + btRigidBody* rb = childBody? childBody->m_rigidBody : 0; - btMultiBodyPoint2Point* p2p = new btMultiBodyPoint2Point(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,rb,pivotInParent,pivotInChild); - p2p->setMaxAppliedImpulse(500); - btMultiBodyDynamicsWorld* world = (btMultiBodyDynamicsWorld*) m_data->m_dynamicsWorld; - world->addMultiBodyConstraint(p2p); - InteralUserConstraintData userConstraintData; - userConstraintData.m_mbConstraint = p2p; - int uid = m_data->m_userConstraintUIDGenerator++; - m_data->m_userConstraints.insert(uid,userConstraintData); - serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; - serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; - } + btMultiBodyPoint2Point* p2p = new btMultiBodyPoint2Point(parentBody->m_multiBody,clientCmd.m_userConstraintArguments.m_parentJointIndex,rb,pivotInParent,pivotInChild); + p2p->setMaxAppliedImpulse(defaultMaxForce); + btMultiBodyDynamicsWorld* world = (btMultiBodyDynamicsWorld*) m_data->m_dynamicsWorld; + world->addMultiBodyConstraint(p2p); + InteralUserConstraintData userConstraintData; + userConstraintData.m_mbConstraint = p2p; + int uid = m_data->m_userConstraintUIDGenerator++; + serverCmd.m_userConstraintResultArgs = clientCmd.m_userConstraintArguments; + serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = uid; + serverCmd.m_userConstraintResultArgs.m_maxAppliedForce = defaultMaxForce; + userConstraintData.m_userConstraintData = serverCmd.m_userConstraintResultArgs; + m_data->m_userConstraints.insert(uid,userConstraintData); + serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; + } - } else - { - b3Warning("unknown constraint type"); - } + } else + { + b3Warning("unknown constraint type"); + } + } + } } - } } if (clientCmd.m_updateFlags & USER_CONSTRAINT_CHANGE_CONSTRAINT) { - int userConstraintUidRemove = clientCmd.m_userConstraintArguments.m_userConstraintUniqueId; - InteralUserConstraintData* userConstraintPtr = m_data->m_userConstraints.find(userConstraintUidRemove); + serverCmd.m_type = CMD_CHANGE_USER_CONSTRAINT_FAILED; + int userConstraintUidChange = clientCmd.m_userConstraintArguments.m_userConstraintUniqueId; + InteralUserConstraintData* userConstraintPtr = m_data->m_userConstraints.find(userConstraintUidChange); if (userConstraintPtr) { if (userConstraintPtr->m_mbConstraint) @@ -3674,7 +3812,9 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm btVector3 pivotInB(clientCmd.m_userConstraintArguments.m_childFrame[0], clientCmd.m_userConstraintArguments.m_childFrame[1], clientCmd.m_userConstraintArguments.m_childFrame[2]); - + userConstraintPtr->m_userConstraintData.m_childFrame[0] = clientCmd.m_userConstraintArguments.m_childFrame[0]; + userConstraintPtr->m_userConstraintData.m_childFrame[1] = clientCmd.m_userConstraintArguments.m_childFrame[1]; + userConstraintPtr->m_userConstraintData.m_childFrame[2] = clientCmd.m_userConstraintArguments.m_childFrame[2]; userConstraintPtr->m_mbConstraint->setPivotInB(pivotInB); } if (clientCmd.m_updateFlags & USER_CONSTRAINT_CHANGE_FRAME_ORN_IN_B) @@ -3683,13 +3823,17 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm clientCmd.m_userConstraintArguments.m_childFrame[4], clientCmd.m_userConstraintArguments.m_childFrame[5], clientCmd.m_userConstraintArguments.m_childFrame[6]); - + userConstraintPtr->m_userConstraintData.m_childFrame[3] = clientCmd.m_userConstraintArguments.m_childFrame[3]; + userConstraintPtr->m_userConstraintData.m_childFrame[4] = clientCmd.m_userConstraintArguments.m_childFrame[4]; + userConstraintPtr->m_userConstraintData.m_childFrame[5] = clientCmd.m_userConstraintArguments.m_childFrame[5]; + userConstraintPtr->m_userConstraintData.m_childFrame[6] = clientCmd.m_userConstraintArguments.m_childFrame[6]; btMatrix3x3 childFrameBasis(childFrameOrn); userConstraintPtr->m_mbConstraint->setFrameInB(childFrameBasis); } if (clientCmd.m_updateFlags & USER_CONSTRAINT_CHANGE_MAX_FORCE) { btScalar maxImp = clientCmd.m_userConstraintArguments.m_maxAppliedForce*m_data->m_physicsDeltaTime; + userConstraintPtr->m_userConstraintData.m_maxAppliedForce = clientCmd.m_userConstraintArguments.m_maxAppliedForce; userConstraintPtr->m_mbConstraint->setMaxAppliedImpulse(maxImp); } } @@ -3697,12 +3841,15 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm { //todo } - serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = -1; - serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; + serverCmd.m_userConstraintResultArgs = clientCmd.m_userConstraintArguments; + serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = userConstraintUidChange; + serverCmd.m_updateFlags = clientCmd.m_updateFlags; + serverCmd.m_type = CMD_CHANGE_USER_CONSTRAINT_COMPLETED; } } if (clientCmd.m_updateFlags & USER_CONSTRAINT_REMOVE_CONSTRAINT) { + serverCmd.m_type = CMD_REMOVE_USER_CONSTRAINT_FAILED; int userConstraintUidRemove = clientCmd.m_userConstraintArguments.m_userConstraintUniqueId; InteralUserConstraintData* userConstraintPtr = m_data->m_userConstraints.find(userConstraintUidRemove); if (userConstraintPtr) @@ -3717,8 +3864,10 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm { } - serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = -1; - serverCmd.m_type = CMD_USER_CONSTRAINT_COMPLETED; + serverCmd.m_userConstraintResultArgs.m_userConstraintUniqueId = userConstraintUidRemove; + serverCmd.m_type = CMD_REMOVE_USER_CONSTRAINT_COMPLETED; + + } @@ -3974,7 +4123,8 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm int numRb = importer->getNumRigidBodies(); serverStatusOut.m_sdfLoadedArgs.m_numBodies = 0; - + serverStatusOut.m_sdfLoadedArgs.m_numUserConstraints = 0; + for( int i=0;igetRigidBodyByIndex(i); @@ -4044,6 +4194,7 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm m_data->m_guiHelper->autogenerateGraphicsObjects(this->m_data->m_dynamicsWorld); serverStatusOut.m_sdfLoadedArgs.m_numBodies = m_data->m_sdfRecentLoadedBodies.size(); + serverStatusOut.m_sdfLoadedArgs.m_numUserConstraints = 0; int maxBodies = btMin(MAX_SDF_BODIES, serverStatusOut.m_sdfLoadedArgs.m_numBodies); for (int i=0;im_gripperRigidbodyFixed = 0; } -//todo: move this to Python/scripting + +//todo: move this to Python/scripting (it is almost ready to be removed!) void PhysicsServerCommandProcessor::createDefaultRobotAssets() { static btAlignedObjectArray gBufferServerToClient; diff --git a/examples/SharedMemory/SharedMemoryCommands.h b/examples/SharedMemory/SharedMemoryCommands.h index 1c85c3b7d..1f599c685 100644 --- a/examples/SharedMemory/SharedMemoryCommands.h +++ b/examples/SharedMemory/SharedMemoryCommands.h @@ -432,6 +432,8 @@ struct SdfLoadedArgs { int m_numBodies; int m_bodyUniqueIds[MAX_SDF_BODIES]; + int m_numUserConstraints; + int m_userConstraintUniqueIds[MAX_SDF_BODIES]; ///@todo(erwincoumans) load cameras, lights etc //int m_numCameras; @@ -541,27 +543,13 @@ enum EnumUserConstraintFlags USER_CONSTRAINT_CHANGE_PIVOT_IN_B=8, USER_CONSTRAINT_CHANGE_FRAME_ORN_IN_B=16, USER_CONSTRAINT_CHANGE_MAX_FORCE=32, + USER_CONSTRAINT_REQUEST_INFO=64, }; -struct UserConstraintArgs -{ - int m_parentBodyIndex; - int m_parentJointIndex; - int m_childBodyIndex; - int m_childJointIndex; - double m_parentFrame[7]; - double m_childFrame[7]; - double m_jointAxis[3]; - int m_jointType; - double m_maxAppliedForce; - int m_userConstraintUniqueId; -}; -struct UserConstraintResultArgs -{ - int m_userConstraintUniqueId; -}; + + enum EnumUserDebugDrawFlags { @@ -659,7 +647,7 @@ struct SharedMemoryCommand struct ExternalForceArgs m_externalForceArguments; struct CalculateInverseDynamicsArgs m_calculateInverseDynamicsArguments; struct CalculateJacobianArgs m_calculateJacobianArguments; - struct UserConstraintArgs m_userConstraintArguments; + struct b3UserConstraint m_userConstraintArguments; struct RequestContactDataArgs m_requestContactPointArguments; struct RequestOverlappingObjectsArgs m_requestOverlappingObjectsArgs; struct RequestVisualShapeDataArgs m_requestVisualShapeDataArguments; @@ -708,6 +696,10 @@ struct SharedMemoryStatus int m_numDataStreamBytes; char* m_dataStream; + //m_updateFlags is a bit fields to tell which parameters were updated, + //m_updateFlags is ignored for most status messages + int m_updateFlags; + union { struct BulletDataStreamArgs m_dataStreamArguments; @@ -723,7 +715,7 @@ struct SharedMemoryStatus struct CalculateInverseKinematicsResultArgs m_inverseKinematicsResultArgs; struct SendVisualShapeDataArgs m_sendVisualShapeArgs; struct UserDebugDrawResultArgs m_userDebugDrawArgs; - struct UserConstraintResultArgs m_userConstraintResultArgs; + struct b3UserConstraint m_userConstraintResultArgs; struct SendVREvents m_sendVREvents; struct SendRaycastHits m_raycastHits; }; diff --git a/examples/SharedMemory/SharedMemoryPublic.h b/examples/SharedMemory/SharedMemoryPublic.h index e8350560a..071d371eb 100644 --- a/examples/SharedMemory/SharedMemoryPublic.h +++ b/examples/SharedMemory/SharedMemoryPublic.h @@ -112,6 +112,11 @@ enum EnumSharedMemoryServerStatus CMD_USER_DEBUG_DRAW_PARAMETER_COMPLETED, CMD_USER_DEBUG_DRAW_FAILED, CMD_USER_CONSTRAINT_COMPLETED, + CMD_USER_CONSTRAINT_INFO_COMPLETED, + CMD_REMOVE_USER_CONSTRAINT_COMPLETED, + CMD_CHANGE_USER_CONSTRAINT_COMPLETED, + CMD_REMOVE_USER_CONSTRAINT_FAILED, + CMD_CHANGE_USER_CONSTRAINT_FAILED, CMD_USER_CONSTRAINT_FAILED, CMD_REQUEST_VR_EVENTS_DATA_COMPLETED, CMD_REQUEST_RAY_CAST_INTERSECTIONS_COMPLETED, @@ -164,6 +169,20 @@ struct b3JointInfo double m_jointAxis[3]; // joint axis in parent local frame }; +struct b3UserConstraint +{ + int m_parentBodyIndex; + int m_parentJointIndex; + int m_childBodyIndex; + int m_childJointIndex; + double m_parentFrame[7]; + double m_childFrame[7]; + double m_jointAxis[3]; + int m_jointType; + double m_maxAppliedForce; + int m_userConstraintUniqueId; +}; + struct b3BodyInfo { const char* m_baseName; diff --git a/examples/pybullet/pybullet.c b/examples/pybullet/pybullet.c index e69395702..eef43f9b4 100644 --- a/examples/pybullet/pybullet.c +++ b/examples/pybullet/pybullet.c @@ -1578,6 +1578,7 @@ static PyObject* pybullet_getNumBodies(PyObject* self, PyObject* args, PyObject* } } + static PyObject* pybullet_getBodyUniqueId(PyObject* self, PyObject* args, PyObject* keywds) { int physicsClientId = 0; @@ -1650,6 +1651,122 @@ static PyObject* pybullet_getBodyInfo(PyObject* self, PyObject* args, PyObject* } +static PyObject* pybullet_getConstraintInfo(PyObject* self, PyObject* args, PyObject* keywds) +{ + + { + int constraintUniqueId= -1; + b3PhysicsClientHandle sm = 0; + + int physicsClientId = 0; + static char *kwlist[] = { "constraintUniqueId", "physicsClientId", NULL }; + if (!PyArg_ParseTupleAndKeywords(args, keywds, "i|i", kwlist,&constraintUniqueId, &physicsClientId)) + { + return NULL; + } + sm = getPhysicsClient(physicsClientId); + if (sm == 0) + { + PyErr_SetString(SpamError, "Not connected to physics server."); + return NULL; + } + + { + struct b3UserConstraint constraintInfo; + + if (b3GetUserConstraintInfo(sm,constraintUniqueId, &constraintInfo)) + { + PyObject* pyListConstraintInfo = PyTuple_New(11); + + PyTuple_SetItem(pyListConstraintInfo,0,PyLong_FromLong(constraintInfo.m_parentBodyIndex)); + PyTuple_SetItem(pyListConstraintInfo,1,PyLong_FromLong(constraintInfo.m_parentJointIndex)); + PyTuple_SetItem(pyListConstraintInfo,2,PyLong_FromLong(constraintInfo.m_childBodyIndex)); + PyTuple_SetItem(pyListConstraintInfo,3,PyLong_FromLong(constraintInfo.m_childJointIndex)); + PyTuple_SetItem(pyListConstraintInfo,4,PyLong_FromLong(constraintInfo.m_jointType)); + + { + PyObject* axisObj = PyTuple_New(3); + PyTuple_SetItem(axisObj,0,PyFloat_FromDouble(constraintInfo.m_jointAxis[0])); + PyTuple_SetItem(axisObj,1,PyFloat_FromDouble(constraintInfo.m_jointAxis[1])); + PyTuple_SetItem(axisObj,2,PyFloat_FromDouble(constraintInfo.m_jointAxis[2])); + PyTuple_SetItem(pyListConstraintInfo,5,axisObj); + } + { + PyObject* parentFramePositionObj = PyTuple_New(3); + PyTuple_SetItem(parentFramePositionObj,0,PyFloat_FromDouble(constraintInfo.m_parentFrame[0])); + PyTuple_SetItem(parentFramePositionObj,1,PyFloat_FromDouble(constraintInfo.m_parentFrame[1])); + PyTuple_SetItem(parentFramePositionObj,2,PyFloat_FromDouble(constraintInfo.m_parentFrame[2])); + PyTuple_SetItem(pyListConstraintInfo,6,parentFramePositionObj); + } + { + PyObject* childFramePositionObj = PyTuple_New(3); + PyTuple_SetItem(childFramePositionObj,0,PyFloat_FromDouble(constraintInfo.m_childFrame[0])); + PyTuple_SetItem(childFramePositionObj,1,PyFloat_FromDouble(constraintInfo.m_childFrame[1])); + PyTuple_SetItem(childFramePositionObj,2,PyFloat_FromDouble(constraintInfo.m_childFrame[2])); + PyTuple_SetItem(pyListConstraintInfo,7,childFramePositionObj); + } + { + PyObject* parentFrameOrientationObj = PyTuple_New(4); + PyTuple_SetItem(parentFrameOrientationObj,0,PyFloat_FromDouble(constraintInfo.m_parentFrame[3])); + PyTuple_SetItem(parentFrameOrientationObj,1,PyFloat_FromDouble(constraintInfo.m_parentFrame[4])); + PyTuple_SetItem(parentFrameOrientationObj,2,PyFloat_FromDouble(constraintInfo.m_parentFrame[5])); + PyTuple_SetItem(parentFrameOrientationObj,3,PyFloat_FromDouble(constraintInfo.m_parentFrame[6])); + PyTuple_SetItem(pyListConstraintInfo,8,parentFrameOrientationObj); + } + { + PyObject* childFrameOrientation = PyTuple_New(4); + PyTuple_SetItem(childFrameOrientation,0,PyFloat_FromDouble(constraintInfo.m_childFrame[3])); + PyTuple_SetItem(childFrameOrientation,1,PyFloat_FromDouble(constraintInfo.m_childFrame[4])); + PyTuple_SetItem(childFrameOrientation,2,PyFloat_FromDouble(constraintInfo.m_childFrame[5])); + PyTuple_SetItem(childFrameOrientation,3,PyFloat_FromDouble(constraintInfo.m_childFrame[6])); + PyTuple_SetItem(pyListConstraintInfo,9,childFrameOrientation); + } + PyTuple_SetItem(pyListConstraintInfo,10,PyFloat_FromDouble(constraintInfo.m_maxAppliedForce)); + + return pyListConstraintInfo; + } else + { + PyErr_SetString(SpamError, "Couldn't get user constraint info"); + return NULL; + } + } + } + + PyErr_SetString(SpamError, "error in getConstraintInfo."); + return NULL; +} + + +static PyObject* pybullet_getNumConstraints(PyObject* self, PyObject* args, PyObject* keywds) +{ + int numConstraints = 0; + int physicsClientId = 0; + b3PhysicsClientHandle sm = 0; + static char *kwlist[] = { "physicsClientId", NULL }; + if (!PyArg_ParseTupleAndKeywords(args, keywds, "|i", kwlist, &physicsClientId)) + { + return NULL; + } + sm = getPhysicsClient(physicsClientId); + if (sm == 0) + { + PyErr_SetString(SpamError, "Not connected to physics server."); + return NULL; + } + + numConstraints = b3GetNumUserConstraints(sm); + +#if PY_MAJOR_VERSION >= 3 + return PyLong_FromLong(numConstraints); +#else + return PyInt_FromLong(numConstraints); +#endif + + +} + + + // Return the number of joints in an object based on // body index; body index is based on order of sequence // the object is loaded into simulation @@ -2221,13 +2338,10 @@ static PyObject* pybullet_addUserDebugParameter(PyObject* self, PyObject* args, b3SharedMemoryCommandHandle commandHandle; b3SharedMemoryStatusHandle statusHandle; int statusType; - int res = 0; char* text; - double colorRGB[3]={1,1,1}; - PyObject* textPositionObj=0; double rangeMin = 0.f; double rangeMax = 1.f; double startValue = 0.f; @@ -4541,7 +4655,7 @@ static PyMethodDef SpamMethods[] = { "Load multibodies from an MJCF file." }, {"createConstraint", (PyCFunction)pybullet_createUserConstraint, METH_VARARGS | METH_KEYWORDS, - "Create a constraint between two bodies. Returns a (int) unique id, if successfull." + "Create a constraint between two bodies. Returns a (int) unique id, if successfull." }, {"changeConstraint", (PyCFunction)pybullet_changeUserConstraint, METH_VARARGS | METH_KEYWORDS, @@ -4561,11 +4675,21 @@ static PyMethodDef SpamMethods[] = { "Get the number of bodies in the simulation."}, {"getBodyUniqueId", (PyCFunction)pybullet_getBodyUniqueId, METH_VARARGS| METH_KEYWORDS, - "Get the unique id of the body, given a integer serial index in range [0.. number of bodies)."}, + "getBodyUniqueId is used after connecting to server with existing bodies." + "Get the unique id of the body, given a integer range [0.. number of bodies)."}, {"getBodyInfo",(PyCFunction) pybullet_getBodyInfo, METH_VARARGS | METH_KEYWORDS, "Get the body info, given a body unique id."}, + {"getNumConstraints", (PyCFunction)pybullet_getNumConstraints, METH_VARARGS| METH_KEYWORDS, + "Get the number of user-created constraints in the simulation."}, + + {"getConstraintInfo",(PyCFunction) pybullet_getConstraintInfo, METH_VARARGS | METH_KEYWORDS, + "Get the user-created constraint info, given a constraint unique id."}, + + {"getConstraintUniqueId", (PyCFunction)pybullet_getBodyUniqueId, METH_VARARGS| METH_KEYWORDS, + "Get the unique id of the constraint, given a integer index in range [0.. number of constraints)."}, + {"getBasePositionAndOrientation",(PyCFunction) pybullet_getBasePositionAndOrientation, METH_VARARGS | METH_KEYWORDS, "Get the world position and orientation of the base of the object. " diff --git a/src/BulletDynamics/Featherstone/btMultiBody.cpp b/src/BulletDynamics/Featherstone/btMultiBody.cpp index eb68b0288..dd5f253b6 100644 --- a/src/BulletDynamics/Featherstone/btMultiBody.cpp +++ b/src/BulletDynamics/Featherstone/btMultiBody.cpp @@ -430,6 +430,13 @@ const btQuaternion & btMultiBody::getParentToLocalRot(int i) const btVector3 btMultiBody::localPosToWorld(int i, const btVector3 &local_pos) const { + btAssert(i>=-1); + btAssert(i=m_links.size())) + { + return btVector3(SIMD_INFINITY,SIMD_INFINITY,SIMD_INFINITY); + } + btVector3 result = local_pos; while (i != -1) { // 'result' is in frame i. transform it to frame parent(i) @@ -447,6 +454,13 @@ btVector3 btMultiBody::localPosToWorld(int i, const btVector3 &local_pos) const btVector3 btMultiBody::worldPosToLocal(int i, const btVector3 &world_pos) const { + btAssert(i>=-1); + btAssert(i=m_links.size())) + { + return btVector3(SIMD_INFINITY,SIMD_INFINITY,SIMD_INFINITY); + } + if (i == -1) { // world to base return quatRotate(getWorldToBaseRot(),(world_pos - getBasePos())); @@ -458,6 +472,14 @@ btVector3 btMultiBody::worldPosToLocal(int i, const btVector3 &world_pos) const btVector3 btMultiBody::localDirToWorld(int i, const btVector3 &local_dir) const { + btAssert(i>=-1); + btAssert(i=m_links.size())) + { + return btVector3(SIMD_INFINITY,SIMD_INFINITY,SIMD_INFINITY); + } + + btVector3 result = local_dir; while (i != -1) { result = quatRotate(getParentToLocalRot(i).inverse() , result); @@ -469,6 +491,13 @@ btVector3 btMultiBody::localDirToWorld(int i, const btVector3 &local_dir) const btVector3 btMultiBody::worldDirToLocal(int i, const btVector3 &world_dir) const { + btAssert(i>=-1); + btAssert(i=m_links.size())) + { + return btVector3(SIMD_INFINITY,SIMD_INFINITY,SIMD_INFINITY); + } + if (i == -1) { return quatRotate(getWorldToBaseRot(), world_dir); } else {