From cff151196b7f7003b93fb0cbad9426ebeddf3f2b Mon Sep 17 00:00:00 2001 From: march3 Date: Sat, 21 Oct 2023 14:41:22 +0800 Subject: [PATCH] =?UTF-8?q?Python=E8=B6=85=E4=BA=BA-=E5=AE=87=E5=AE=99?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- objs/textures/two_way_foil.png | Bin 0 -> 75049 bytes objs/textures/two_way_foil_circle.png | Bin 0 -> 24204 bytes sim_scenes/tri_bodies/tri_bodies_05.py | 65 +++++++++++++++++++++++++ sim_scenes/tri_bodies/two_way_foil.py | 29 ++++++----- 4 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 objs/textures/two_way_foil.png create mode 100644 objs/textures/two_way_foil_circle.png create mode 100644 sim_scenes/tri_bodies/tri_bodies_05.py diff --git a/objs/textures/two_way_foil.png b/objs/textures/two_way_foil.png new file mode 100644 index 0000000000000000000000000000000000000000..090c94cdf1a3b8ab4dfe6c69c0c552c8b5c696ea GIT binary patch literal 75049 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

55`%Q&nQSLcCr zGS(YapohzMS)UB}dik@|Ecw<&&nc_=ii-YwcBp|YWL4Bj5 z_3oS#O*D6Q+unHZoJk8$ZT%jiaD9^;bEW@LE`=fMd_l1$MHV!H2LFpT3NH%R{Vg6DIsHR81q73YmHDPvY_ZXm% zD$x8L38AC;&S8#bY$=Z`_ZPeC<-!Wwk^t}nTD|$u7W}hILnJktA z^WZTz1>Zhoze99PKFU`SQ)!=aTS)y2>mZWO0vjcer$w$RT!YjnSdojgYcnaQ|{xcWNha0_l*mS-I z$0|h6)Whvt2lz-cGIf>N_2hk=9%#q6Bq?FfI2M%9(~98y1Cp5`6L^i^?YD@p`^~h}z97(*z@mwKW4`V53I`nUn z4GWWnwJc7nsr-SSuu-8B$Tl(PF8X^=@955E1MrpAEU3{;$-+^{Nf~D%BTr;phOT2y}9WCS$#c( zL?zQ;n+G7IOtb;>KvC1hwSG<=y0bG&le`{J?U{bfn1l{Kl~K_7-y+WHrHuG-TNG;= zN6E;Q34aD;{61|^D+;F3lSC}rfU;FSl}#Jf(?KP+~J`{qutFfH-6Jy z(K`o`4r|r>rP{){b10L+@@qCGza(3QP_l%t8G%<=3zwIN(Qsv$UZg;hm2H&W2@$3r z_{(g;f+pM5sfAiYX56jbj`dcvemiWr6(zn^n!%=PZa#_VBtE_U*;5#l788+MVHTxh z@?Kgl^Z2oo+@bD+i`=>_o8@bRs^I|?$zOrJ0;A##xBv21;hWf1=qoVP6UId&kUvDQ zY!ECc0za^!6#K6YUY66gS4Q*};}rpC+jQ#=(R+lyg~0sJV?1~OBD{j0cJieU?~_8A{5%?AC1v|Ai_r?(3AjK<(-Y`0JOX~7JC z{S#neZnQLc6idvc|%?R&Y#ju)g} z2p|@8yst@%WbQN8sUT$}VAQ>ofqD*@II}Yl* zH8f^PtM~S%oF|cnKz+^$BXd$%nTOOB_b?CdI#wpl?vaT5J&9w5-}-AVzU{x2G>|DFNcg-tY$T9&HA8v1YPbDFT2d z03DEwqkBFNqd{n?L2jIb%E&DMxgCW{Q<~v{gNfo&rZ2^(drz7EWd%T#@N?A#I&}LA8QN@M}zUV5i z?q;g2yhT~p3M^p=v7TXz#Ra6WbKG8+sSFWB^fWut!W$Tfq!Uf*%6fH`O<7HV<9Tt@ zWFaxovB2B(Dykco^!o<3W804W!;)!gd7#(xqySr0ABkUh!PS8CwwlG@#GN#$}{FNB=ipH zZqfjx6J?(t;QUf9qf%PrGvr^YZ%7L?HrP*C?AlsGj%>!E*L=OKJ9j2;FIDG4w4#Fa z{G@er7A)deh&Ds_tADRr2rTu-W{fjnb1P$PdT58<1{U&>78i=M7G0Jm-Y1heJHLgN zYU>xcwBn>6N+CDoRpx@DfZ(Q4#gdB1!P zy~5Hw;;9S?0~rN<7T4rPyR-oR#u&gAP4K? z(2nnR-208b2&YLgoBBEN_LlR#$l82iyjT0#E^$ah=lUyYfX zxkKM%^#EE#qYGp#tMsQiZMRA?>c;>xFpXgr1KZ3biH~_xlqI6+y|T7y*D8lrTj}yw ziL(fgl9e>4?^!P zgb}`Cr;Vl&49NKd)K>>Ohs}|sk7xm2M74R+Vrl|t(*H|(NyG-!V7sSfB!2<`;sLE> zpDc>zboS0wch{041I(Tc5$YX~){%zv&(-TecOjIRH);*3<=#-t=H4>xn;Sghb6ePZ zjgcko6~e=EZYl?fP9dc?oAiCl+oaT14>xne9W)sMCDy`q8DlC*oz>#E)6uqv!S{K1O7^nL)es)0!fE7Yrub&t zq|^+06DOw|PoH;!j4s)(9ITm&PtXNrakQJ0^a&0x%Oa-S z5yx-%;*gz_*!Qv&@lI}PZ*Tj)si1z*6H-R*$hU1`9x#liHtIhHNTR#|WuTRM=QHR< zyK{@O7F5gl6Ce>tV5piuz~8NjL0eR1j$OUq^0SkTCM?e#DzZ5qVGPKs73a^5zrVA9 zR2BNFV)zK*b2tz~{DS*nqicG7<`=-_Yg{#-A2JcrRla0{*I~SfNf4ss@Y)>BL#F+f zKvNQf-D8_x<7JN@()|jcf^{vjlsjWUF60GHPzhU|Q}ttdUFOWRUP_7Sx$YhYmb)9X zE_6#M!pMO`Rh-b$u>$R6Bs;ko`dFnMLz0Cf+%#WMlWe5{sl!tx(j?YE2n^c{Jn@{l zfsQYCcoi2B94x%HEu(K1#CjGGfUIEMAH}a4MZMBoVNiBsW&71MBKtu3vTTM5wAL2n zgIjSbio%^)Z>B9IbkQZaS7C~=y6mVZL`OrwE>DLuxzp<}f!dJ6nKOg%=%b4JNq_db z*&9SDQFbjmzk<13Cm5SKq<~LpPF%{5sxA!PrlkZqRa><)a7;7u{P2E-N7|j`ZENPnjT^i4WED2#Mx7 z3(V0??|i~SGj$Ux6?3?uQxRR9Uv+Tv5}QxExu@(B=xO22WjpaPbBNWNGU+D4pyanT z|HhX1y0X;O_63FFI2cYZC(pe8C|0?>>(N#l;f_d{@Z4AmQ97|U$T`^NLdFgWq zD0Ku&VP(iVDw8!e;t->^!csNLr=`Y_k8s`=GtlO2YOWuqw^Vy+)B}o(>lYHJTz;~U zza22uT%Epb90~4qP5hfN^hw4kP;2pg?QtJ9)jvDrnxVkI&Q3(R|f8P&(rvNl=Khv?=C!ne@Gn*0L)dsP(u*@*hWpLBQZ zw`oH~+|TQI&46=kg%Z}tpLne*XSAZ+ogzY zE}2-{w92gdzUIOv8?30mS-;j7jfD#ddyOdnd>q2;%2@2<#+|k5kFL>UR(`sDA>`da z<$^)Ua*VP3uYWy;pHuXbJT*!I^b_n-d_MHcX%U_+P>b)i| zDACzZrbeeas|z+==`555u%gme&KVVvJ-o*^0WYz2^U2`T+O2=uzV2Y*6R!rq8cI9r z|2L9ZefpjN;bdU7y`yZxx1qZ&W3KbN*UDv+E5I=!7Z4DP|5cKHK-(#$<=2!m(3+LH zvmb9(7Y}p|zyCISVh7+%PyO&mi1S*~2i)6kZ`lp{_*oY&;A?zYwxz(&E3a2ZlBr_tey7jhqa_!}aN2I)@gnF}zutH2O-2^U@Dy zU)ikq3*Unk#S5D_R~nIhmA`0Z(|H4Bf3>-N~U1M5W)FuY_J&L2RbZq)No(3iDX*GX+b1)gxzYyXT^W#0%T_5TC>J2h2^-(nJ zjq!F^8-`5hh`^Own&&$7OxExvN={}VP}c-yy)ZHq5&JwJ1+tPdOgX6qIeF%Gx_)_u z+hNzLX}s{+5@WLwgx)%13D@EM$=4GnysX|aq)H#9{@*pp!@U|A725CMunl0?*Qf)( zuA;m5^l(;}tYTZ7>4 zv|v7c0sBs_omu3ogX}DR(7W^SqVr8uM@Lp>EbW2bpS^h^PqrDzCC^v=Hx&+h{sefZ zA${*A1*79wmAxWa4kA8?_xB~JjTLECV{0mUV)9^h5AoAni6S7||IFqQ`fc5RjCB|i zWq=d0UcXsZxoFo>_SWVKup*LF81Hwp=S@o~n=T7K{15pSRDbK{8C7;MmU|Oq%@gQ?GM_w}G>cdoxt= zmSyq|8r9EE0tABP92QJ`f8`kn@$2~IX7STT{sUNHeu;Cn6>; zjqIy8DCqbXi~E8*+Rb!udS`yA&{%7G#ZWKS0Kwa*_bWv&(oE8XGIXlc=J_s8`55E+ z#!LSjv7J&s=_Mg-k6uXrVKe`0K_S7UB3@f^$G_;JFC5;HdAi}ruGvfoyYS1@ga)ZW z_nIjO^>x}9-|~!>80c3`bvX`5k`h?2b1^O8m^Ws zyA`|2?b`z+z++b8y=KaLV_?rg0WNwJ}fT@8b&Cua`SG4i_&bu+e>TAe?r;0ne@&Ef0U{ zwWLBu$vu8Xu@li%L~3Z^;34m7=IoB8;a0pux2*67LlxlYjGuhH#gc5S(=h4m>1}W* z%%X?rtO=Z8lWt&YoQ&Scy)y3N#nW+X4V`uKWTNBqARs7S8Q&LO*6xcjfa|y<{uOo5 z+oAuW4*cWaqtlj1+)UN#Q;AKG?wC>LD^~0r=hp%=U`P1qw(HgRaNR1X##0x3Q>Mkq zrTYMG-}>KyD)hVzGs2F~$x_KLx#vQHRkM<|rXEf?uWG8ERl{D;ZDKLU@1C5*7%O;> z(h_fLU#EYR@k}qH0`O*Gv;jfca^`cAw5rJlMTxsJ4SENCn zU&YkrUWFRie0u{{+RrWBZ6DTnI9=#My)}+FiT|zTzl`!;)^!VxLA7tpo~2&2=ZTeJ zMcZDBi-xT!Ph8|{ z*2@S9=?BY~EiEDOF$?!8dI5-k>%k+m$V%IP^)|f|yb7}NNf{gZ99xs$wm@Oqk0n!3 zwd|nVUbxC2FY%?(%EhNljQB5@pFGl=%Ha1T(ULyw*;@4Za-X+px%8El_cmk0Xz6IZ zcl^$z{>=igp^RE}wf%uAKVWN;1$fHZmu1Cc;q4VDsr$Zk$bzqU*Z&%$;^aTWHd`MJ zs$svm7eUt6&pi3t{Za-kGHGGicX(Hc^UuhiuVUeYzriBW2M07OR(UFcE4(1@r zCOegN0G$hMocIB#^TGH^tp9ZNglaazi8_^j2U(zOc9l>4Z`Y9y=t2|5z{NPf6}W=& zYnso)HbbrL=v4LEzwB&ILlpdtjjdY?_s|BaXDS8!#mLG^iMv%Ny>~5(_&c2i@K5P# zldqF+IoLbh04C3%DCxWWVpP;zgxY~}H6Ah`JFo>y2+fSGa8o9|eLrO^k`koh`Fka0 zq6#%Pif$;#wClcKcL9zKrpLFxTU)EL9l1xA2;pQMM!rik?!(`oG(#z|N`NYwwXVF{ zvh*!E9CNy2;q^Y9V}h=B4|>O#IA2*C#F`*(vg-~Vq-u<^Hi3dJmvbf(Ye(PA`)>&i zte7c>0cw=&ZRixXj0uoxLGj2|ZJu+4hX*1ES>AXDJnJBuyMFHZU&&45Kh!MP&~JsA z1gQXGg;xGA!oj+VvuSP^fZd>(3;XWPzx&@SnCDe5-p%_mPSn9QUfPyrR~Bl z$!&d~42B;?%yfezL>=gJ$f6ZFEP2l6+6nF{?&EK2mmPxZ^<%2N3WoyI!u7x*12+G= z*Y%rD?$KD=!nFd6FHR#o*Vp=58vH40B_l9CJxZMWcdWzl?VfDhlAm+HuIRX(ZYI>i z9P5Oj8ai(!nbsk8c%SMUoito{5vUk5z&kJxj!3MfItH&@FNq8+E|H?84PrAtyrq=F zh66FZ`%?i?=t?2GawyG%CY>&dL_*;^`|U{|3O#F*T|E~ghaWYC4MI+%Y2~rLY^x;nsEK7fZr2{7dRC z)9&nywG~M@n{1hcPq~n92;e1Ra{(Sf@oB6famIvYGS2h059$n)6>wKHhlU}$TOg@5eQ4<4q=r@L(p-hrc9 z){W9n6VI9MUJcFw9N^EZbWzC`ctZ-Gc(lQx3!=C zd)D{UNuMh!x`xpiBjYk5bix}0+_px*%-z)+0i7uK7wsD)eT3y!|pxx z{lCxTAY|wFon3{M(GpJYf{WIxf-r#_8;2h96JDh?vAZNeQ#pQLkr|sl63l}Jf11&L zz6&=bNy@vh_*;qc=o@5~vLwX~og5r67@?<~hJ6MiL`%GO?va527vtCw2)Xj`<(V>V z@3Y(7u{_GAgrER2_npk)@zyyZ%)0P!$h)>poQkn-`H5a{kD&4OfTOW4AqTXcGH5o8 zWGRPLm(0Yb&lzI>4rYBz3wBPcxmS1>dfNU=>Kk5ye}Hahh1vx~NBdHjH_zlcO1M|X zk)1;{GYtRUzP3}ZV=Vt20Ib307&>4E`qJJ;0U4FRV@2Z?We+UIlSUfxTj^fm3Rb zwP)+`E0?By>Nu>#UHiwcLlla>Nc@-(SSphS(MDO?Z zFo^a6mm0+qI<~)v9ien?LRMzxo(Uvm^&Cv)aXjZxXuF^Wb;}5zW1ctu1pP_c^JB-fGa3ka#SsH?)9M<2v{kvFy<+vZTCyy1 z#F9I*QE(61+RRJp($;!qhd<48@dsT6FfCS-_Zsr{O2jf#I0Tvf>%re!@$4fq-`0w; z;=U(8%DP5P`&{5PJ9*)g_r7LOKOsO*$=L>OlZ23eES8IOZ-9&Zo$6fou5H&C%1b;> zn)o7VLxT_YtifPZlfC~=ui+~mg0?QWUuKGOk6@(yX+>D%-TmsvhRk0tBCUVJs;o=4 z_%_R~KQc2>&3=EOH!#4uur|xz+4qv3Q}1A7hQ$-P&%gZwa5KJuw>(PF*c>!bJ=~fT zcL1i5{Cea~SQxTx0@COk(irLB>s#!(9_j@P__-y~Ty9EZU?|ryBL*<7~ z%;EwE!o}Uib3Fs79(?DKpuk+H826DzU#?sJ>)WkOUc#HeDH_Y&HjG5?gxKs2_JNIA z|HA+8GK7vF>?ZVv1HHV{OZQaxZ5y7NZZd0#kHWAxx!UvCoxPW2w|vjib-48@ z^u(#oo5#oA#vQ#}wsm&x^$vJd9j@=XD!kM|oP9}49gfxt+OnbBap#0?PJ^uj!N$Fdc|2d1z2rLh@qPA9Cyzd__z0-n=Nqr6?x?l&5 zx2^mBZZt{CSd#-M{x>UI96dn7;Fy+77Gb$I}<^R4e$o*2S z5Mxsb3qNFeNY%-FaIgtWiUdozps>Uhos9Jc$f6hNMn3OvmQQ*){ZS)X|RiDevl1 zT9jVC$d*lRuQj1iUEc`Y<$3-;Cm?`b$mSaLrV{Qo{~f~?;=IGLi186UW1$+CJ}v?O zeodU2f5?`S)*I-BqDQm`2RS{p+|O1J9T&GYSw!L&)|;V~I*d$inEb zflu_>jq@?px3@kArl0o6e9G)ov;$|VZ0gZ9aG-?fRO`~xUGF&MBFDT(*OxmkgN|`9 zwQEU0b9dYJxxDX`W5V1Fm+r27+LJ0#g^=-%akz`QJ7PQ}^G1(+4+=5*s$RGPRWh-5 zHO4XjA<9cxNtd%tKAQ5;(r@8fRi88M*by2c?p<)|%i>R%cmFm*x_H|x^y2ZHL^k%Y z)=_Y;`Hj>>yR#Nw^5RU==vzXgvpM7O;}7<43Fsb?nU~@Zc)A858X26s{XCuMCrNIB zEA2gPixg<>A@clhYv1rB_Tod}cV?*H>jr8Pu;GfsMAIUy4l0gm#urg)x2ERqzB;!0*Yt>OQG(#U8 z6y}yuIpT>3Ml4xJ9BU%a;x^ZTPxM*@F+aN^OF`fZx|G(&?8Y%`4awq9$5e=e9NGmW zu48)61y6%qTf_7Dq34sUy@#NtW8TIB#PdUpgZ>KXBa;!u>!Bb0nx&I#Pw?mLzC$xc z=>7(smAfrC#-@L{;dAcx6hhv4l7tavr~MSHlFkT+I2g}goX_#2=9T~}{v z>Xgn`uI@|Io_^_qj3YnC(T!ZI39iX@=9|_8?cu%$Zg5D3U4t~wmY)!YU)OTpS0vxo1}_Ph>_Sf zi^)?P=42y#xa$S)CoxAOnxQLe-tOy!wIl-t!M}mTvr7A%Qa5^^?e7In#t^RSQFvTU zlCMFFe_uTNaUqK{dtBU|+%&%--174nzg1c!=B{n^Ac2cuYMjaSF%Tc)k}=njSA>OVxA)r`U>T=buf z7UAFrqbCBi1xh|d`}1T{UgRshM<)5Af&SB3$JONi-;Z*VAN@czBa7=mcf5?qV4ERPp9-o(^58jW$JBy&&@@v zp3jpBYd5)*!DyTsnkd+6bo9anf24321(8g#AQ3J3^TX|ak(A;=8TDg-Nt6GT9UG9<_pWR?&nTb0>} z2$4}kK|qKYNSH#PicBFfGKPdCG7E$-CO`#Po?vQ{VJB;d5WPfr)qc+-Jh()$)S3**BKnAzH3m*N+8qGr?%#3Re4T z9xx)+2F=dV*`!~NIDQ8VTqf=_R37Hfi&E7VY5WiQ;gXlP7}EbENl&1_>gi&P)F zeFH(Rcl-0sOOk$ozy13bDU;c^B>%#)FB@b4nE69;;jAtCf{tf>WB*dDNhi!=mb?V< zQf=owv-?h;`t~Zx(~>c%Ctl9nngR(w0_KT%dR_es)nv@ndPDN=JV%fB!-xORx&0rL z{cqs^xp@EK<3D`-Z+rPaa`=xN{v(HPA_fqc|LunVcEf+W;lJJRO?&>28T`i#{$mFJ zF@yh@!GDU8WEcGJE|C9Z!+-erPd5C2FB^6rk(%A3Zb6l0bfE(xvNKp&JRxXu@9ZqG zKh^Qb%JxI%3&p<SF;Nnll#=@Ku;h#d;H;IF{vVFSYv(1$e1X63zx$si z-kv>@EKDh>UyuJ!kEP5$mc*?n^&gP`aPl9W{Qq+A#N`KvN)pti0v``Afp%Ejf4)Vc z5_7JmT+jdVKLQv3Hydcvmtp-=|BWS>a%dl5yD>l?N#O6!WR-W*jUKKIP_|i$8}cDO z=I1@p2cAi8#eob?UDf_y{N&3q>&ue#g_@s@_nbT&+Ie2`iZ=ZtcyHDJ7w*#t^86N5 z;TGl{A+C4I%WfS9etuqY;=EP??4gB+EpR1OqeFNP1weU8VyA8HkJp#{r5Cw}Bq5R| zd++Z;LH~>46}tS7w{zVdM;c6JQ6*1EwLKWqAp|`XWoUi-+_sFAe_D@(%I%fJm6pan z{LKAX0#0((_G|5r8;=s3FVN0QB1lrZ`3-7!6XHv?Cm0f>w4L;JEpk@{u_BKN*F0$d zO6tx?87`_-9iE6`10vDSnP?O$ta`Q(#XE1kX59Umoy zHvxY0aePx8=edd9`xU6g0swbZ)YV&=k=H5%WtU{LEiF3_nkDhKJVKTz1P3aTHlo?z6X{( zkn`a*m0Y}1qRkB{iSZrdMC_UfC13dKiJ>RWP{%j<`HG>QtK%^hl9?o0D01#_fkboD zMM;cHij|c20=bib`BHQ78||!r;KqN_DvV@on&{UBN`|~%m=2$tQQ;i(dMH{ybT3@% zj%5CAhmIhDv-BzL;)`vC&8_y#EDsaOu={pEobAG+KcyGR=YAdYJ3eZu2n;6{FFiB; zq%X77(W(4H=U`Q%v^{+fSP*3jID7R~TZ+qHBa_?B`M@K?;Y=`%BQAg^;cRz&g zW*%(3e^zqKvfyZLloeY`gLks#UO1vo1sLP*t;{BnjPaf+K1?)C%8N5dxECSaFova!q5bQ9Qa%K zwYdSA?q@`eun7u6F0EoGvT}EZcpPPq34O9}ev|~pp%c%SnZueXM?w~dt+wx7yyH3U zO4N^2W~y*>f!m2zRpV;Wsbeg$2kK_=J=AV7I3%-u?L&C*7I0Te${{^fpJWo&Fkj-x zTgso2eBbur+9&*w;t^Wz#_AGvV_svq`;gvG&QLSbDZP3{)6#&j>7Sta=}W>(2cDey z9I%RB{SsP9JVDlkZwzjH&c;p5jK3%U_TK&NXA~IuToPb!!>3Nml})nf3G-^937`g{Dn(Z((ld=OA5B(86K8U60|b) zZqT8oBHmBJJbeJsEf*GF7X`mlsIvZPER{(vjLVYz>NVa__SO;X3sMp0=$MIL)y8G% zMcQl}vwPjjul@_EeIZonj89%B|d!it{GqbxRycD#?R-YYs9s`A(p z@r2d7?Fv!3I;Od_0Q@$QPc*0grl!pZi3RH92oa4#h=$>E!}sDM4VY*=kQK5O=1fVY z#lLG2ep~X_sYfr`EKDpg*w|q~-#sFtS-CyTz$N z-3O6T7VuUA=tf9>0~F3G=Cz|3iIT-5e^vKB0Pl!8?R`_%2OfRD%&pnDuNO*7-v!aT zay&^5D>}g{InDDZ#??73T^xB%?cMr!nG%|hewG1GrzF=LF!EG_n}cr053O^|1dS`L zK_}O<1`Y^$u)^t6hgRRT`!+9&PtU(qIdt4nRYD4h{FP@L|6*$Mc;kW9A$-;B9R7>u z);SjO@$#6}Bay%+c=YPRCE%P8v=BI_`fD*dA-;K*Vf{st*eXR0&po#n`q9(Y#|r-8 zH8tHLSjCEoFA{37|MrVV(FZ(_-qGIMZ5&EjFyqJRLlpuzMsFpHHItvBXNfYLO+`9u z%#5Z|fpoOXZTfO7h;>DicjOn{@Rzuq$q0*O>sx0l4OTmSb*%CD@#TD0enj(pO)Q2e=RQLzdD_i$DtzSOC1If(whYrQ z=g@^&H5AQ9-Wl$2dg}m*r>{Q zYO*AGY{`w9seh~QH-ya0Po7*KqPpYWu1mRlk##HL|SIqHsC)K0WnhAA7eamwWf@g>;r&b*f1t4#$ z6aUTq`UZE*X?i_%hu%|j;;f`Bo78roP25j6J$*T2-WCjFu-;i=X{%^G{uiJD_#^lA zifbL^NL^STl-OuqZ6D#45npM#lJgpq^FcyHoX8)cc^QSi-r5+i$VhX{g4t;wH#DJW zY`Xk|8Toml2qoJ&r*d!FukYXw+85?49S_s&Pu^T-N#?xh>2jvrNXjJZg;9>HgPRG2QwzXe4 zPxqM8D@BC4f-2FFzgBh>yz?d;sN>Z{hZGw2{|O_@VD_rvakzsQa;;joAR!Uh;FFTa^yje7wtaLY1*Bb*Gj{jJjyBYp( zU-S6KAQR-QlDs437-&T)4EDkUH z`%MM8j+ZZU-uI{ON(o$g1mtqmc9jU#v&}~llp?96RFCWYN>QY|vI7Zr_zvSbZsU9V zDQ@$-KIR7!OC(;n@cT7QU^?-gJ*MY%s=Mr5F^*HXKcep#fOZ#*Y1W;Ug6yBU@wBV4 zQ6+K4DzP1?KGp*?kp9gNb~-2=6iW_6ZiF~3|J`$JQM)r?)Z}S5_uyAw=Z~LZe4dN= zDg`(>qkc%UDom|#)4PbF3b9sbp3}XEiGr>_sKlvh4CZv_J3A>$plDQ$%VW)0RiLA{ zI%8g~zp*p3?0;C<8s_8<{}2RVC3v*>(Se^iqnQk9lhxZXC(l(zvIsg^#4k+v+3^L} z9DwoL_{|+b>aj(ob^-c;tX@MxsRHzBYu|ubezW-Ca$AmAJha1_eHaAZYNOgSpQ=te z9{`$_z}&8t&E2G=wuy!n&Hzx(r|1qn&cEEr6y3K;hffzdpB0#A@4#%D@)5J;SuH0W zd%k#xozi)>g|IR`CC~cqg6RB)UA!l#XF3$Ov30}uCOt~OtJr}(#U7V*Px@U2g(!_FUHRS4BgX|wjsnTO3BG=w0$rDkf+JGj)1tcaUqAPRmtuf|}Qk$G+<9uzV9uv6*=1 zfx`VSiV8vVD2_5Kz9W&Ku;aG=$U87_rNPt6PQvblQIF~j`F>S8XEV3+%@B3l?mqsQ z+qVRbP{)lok4YgW@t*%uLUH%cV|A@)Md5-bs-14O#&^WzDBDaeaj2J3mS|zsa6;lR ziHF(*9e?+FE@)?Y;jbP{;A6slovF3Cqptb>OuI(>L@xNNV|(w;z=g`Nw^e7!v7u=P z_Awl%VT+Q(YkX^w>TXZrPbr5#qMk-`@E-wYVqGzfnU0!X>n!L9^3~?+=|)Op5IF|u|FCzEEk#X zp0NN#u7Pu>3T%Z4N$${I#&~EbnX%xXyVEW4Ro=0>6S>T8@w!3Lu~4nTWmI{4h+i|I zqYyR4eXcrb3k}h9uaCV#s6DX}@=>w?+ciB6=Szz!w|Uq-bEyno)x-^uFk#xGz8x7G zX{9~9J#ut}*cS@Mg51T@K^>h5YF*A}FPX2r3(npZ5Hebpm|U$l=sL-P4XIt#%O^pG zfByC&RcC9JPOvyrpvG`kvPdJ~#y3)T2wQhNm3FtnzjSb>Y(q@$zPFEGr9fj&*PyNx zL`R%gclf1WM|PYI#lA|2ahC0s`63Z4(Qh*KgWAId<3GazXc&LS54^|EiZcr9&#N2G ze=nG8yi$NixmetY?EVsuJBauG^AX)~&Tubfu7!uW5aruG@cihA?F~-)!5HOh5_QA1 zD&X$nq))UB_AxfRhoTQ58RL93sbwFgHE~G`dmkgELQFq&ID9X zKga-WG3Qpn);fZjak;RM3hc8niP{gCcFi#5ir3!-K?sHQ(h|iP- zM6>aslg7JO*_mhma9v-2)w8F@gzKkrMAg0PQlbRt#&FNki$>E1PkXK2RR=^NZ7k=~ zSv>fFg-GuaMqnc-CY1!OH*e63@mK3MzT630)v=hYEI~$ESK{G~aOJCgb&;Z_7Q^Dl z>_6KFhW2qKYm-}W#3#?ibp7?B(C36fanOO+M7^zWU#5M{W{}0`c?(ES`WmtMBOE$Z zyfV`(TXM1pf8w_1^8Q;kXN8poUqQT7O|r=nT#jA64t-Q}$5fISzF{@E{I|!M36z_~ z2tmb7)umHER*xRF9&bHL4j6lHrxEqLd-F?vu7;(v2W0(wI%e=CNC=x$ zY^IQ^?wCd*I9)WQyMEU7cOxz+CPhmCE6{%=kRlAxtLY!WHFhUi$?G;XC?oAl(|P`) z)80AE6ri(rFtW{}?nAMb=CdMazWr6~9AlEcqFrp{Jh`GKcD>F&)HVC6Ldi4Gp!eHC z_4gcoZ*PtXI(%QJ-hS|}UTiSQ9MYRr_O!chGvB);OE_b@w{xxu2F@|7x)_ua4s>K+ zPE86f)xd-?FpJo`eul;7d@)+_o3$Kkt9&KnqaK?`d=Sh~#=@Gh>AR|C@i|F!O@Z<%hVpI9I5|Oa$q8ivG%Ml8M-oIhi z{>@R;NAdzw!Zm^s)jGB&qbAOp;QX?ttrsAkWnZzDM&6<;$C>rA${7xjV&s~x1s$o< zS7i-Ix%!x`yqtvF0LdrvqlbWxfA}{#!jO@712rRs87S zS@NgMh4Qq);3_J{+OR9Vw0^S=VO(u*TyNj;Zv#YpVd)#CUYulZB0DejXml9DRvUyh zJ~|`TKe(x7_+^y2Xx?{boRNpGk(yifW-ZS=G=WbID_2^(t5(3*Y>ozB?0BVwO^|vO z>0I+i;bkX92VF&%BxK++SZA>6kp$1=e@;guji2PZ2t$4@q<9pf6S6W>7CcoI({@k9A_GG+nq6 zoQifW&7v<1EP9aYp3oX3WxhVmJ8%Ym$C2=WHl5_Tyk4mM8mq9-O9?GjsDtc=QmA1F z6SWoqaN_FPxB|%F5h>iy=LC|hHK>mH!amqj*FND^<#0Fqen|BctVu`(_IhLCNG{Zq z_RG#Tx5VhP3o*_7-=To8Zg_&`rn$qKrmfrnh8yoIl_kp-%C>=EjaMY?Fr?l*K9o)g zK~xt9=onsK{x$xls(OGN)76Vr3(kxe!-tU2}pk`is)XkV4{83RXB5Zlew_3>qijv`w?7b=a!C^Tgi zAS0e5CxxljVQco<>-FQtnFG;&L8d%fpZe|f`UkU6<4W^Q%1Hb}ye5D-_Jvw_gFeorzlqy#P8 zT|1`N5NteBbbk?x3as-KjA}N@F;>%u@Z%)b`b@7}X_ag{XwF=B*1E~`{X%)V?&qHL z$xvF{XZ1~OldVXcg~DkGc(d5A&ZoT(2hSWs1K#a}!mf2xlM0@3c(k2BX$2+oAi<`( zviF@iJ8B7;C9V{Uf}ff~-(b9!aSGfN%D0ADBxa4+g*fH6azOa^SF|CX2c_ z3y8}z1x*eIeuN(i1v+(p_03$o5cM1>Q2a7j{F{VyIPfWx1?_dzXz?bB|H3t`Gote5 zVL*h@W8L1iqVwDblPf^t>d2b)6h8g#j%6*qJIeR-YhN7vO4LwLV&wEF#M;jl-Cr4& zG~hp%$CfI(3{fncVvlYomy^IxBpBh($7a}n?@k?iuR&>YX^15Gx3p-8a>y}9zo9L>e~x`>k62!8_~BLynJg106huc zuPfI@k1&Mn+4N{e;#u0BGpX?_akn~MP?Ga^4Qzjw*UwqP>y20jk971(V53x=??dGL zf+za^OF-jWW%Dt4oSs%?MtrU*PfvWA#mZ4>&@&&7`m;0b;2mu7ADQv4QMQ`G9>-ts z58NjeI{{6AUa*L-@S|!<4(B9_9@|U5d3>Rz7$3dpArc5Q+&PucKJd6(wpk1&$JKg- zU8O$?an=JA;WIJQBf6uTNOHVJ!v9JV4SYFoTJ&v?6u%rAb z2tTHsVCkAR6^z?hD*a_%@!N?}PUxefmwcm;fwh-Yky9|0Yt?t`&gD~MaD5PAc_cN* zg=@^rwN;KSIq)-R#{M&XY zEq%c3#`L_mdqTR)d;NC*NA8=y`#xBtg&LJ_1(`GbM_EH#jZ7wWXO_nA&TjP5aGN<$7}12 zaQb-ze8RM)(_OREtEzqbu49WI_Dx69;>OBix%uwD*2~DP`JWZCPqtxcc%j_VnQ}tKp8Q-iS74csN`S^JLp^MX5Zj*v*f0%+L^PD!BZfXB~r%?^_c-CL1WnV1W29q) zCJiSl5^PH9V)qOhn|&%Yc;cl0%oW{?0zTZ{I{JTT{0`CSHn*n3JR1`OoSw82d9yQJ z{OT#?KdNUPAtLNLrS2zJn64@3>&}ntw!zK6oO60hG2QXvKiwkq-^stulpS+}dto%* zzT4{+wPa;pqcXx5zckx=V6gS5$|T(5TXIGG75zuCerI0Q-+3_>l>UoaBBF4@)k2^7 zJA&gOG9(w*Uz@vb5i2q@=tn%MjLgf|Djjud1J5 zT8mlM&k%AvQ3Rj(0G@+t^tABvES#ZVon-=x(uSf;F0ft4>^De)I%kt+E6@?p4{?Y> zF}7X6UfqaT>>|*&d33mXuxH@RzPH5eEQ_hFo$a>7h`Q=ngT$`hbNy&Q1_SbQtf zWHyG!PixD+u$ATOnO?JzrDMP_^qzZBgZF@UaWStd;P3}L5*N@ZH!kyqL*wlmjv~Cs zc`}H@d|o&eUx(sbXRW;)`uN!!`oRuzW59A$Yr?tVrmZY_p*3}n30~jgySP{bXn79i zvR-!g6k9sME>o5eM8zv_JW%SMI{Pg+P1ZJikMz6qiudfU+)T*IR5H8=0;u)r|mKGuRY_jiFhqJMP0T#f;l7DEN?~%c-6Vi>n(e1asdkF0xd#~snc0S-MeB$Big6|B6`R9H%s6!k5rC1HF(@?_h1K46`ljYitQo;XdkO-O&e9xdMhmHPmvVlYQE@9x?^ zvHH9N5aoFbIIKB~8j2`1)C;{6*ohxwQd@_%+Jz*Q&73$o1mL1km*9hZ)ZUWeA^UvW z8qwgE)?vRjs_4aQi`aNzxlWFrtpPVHyW=v0L)~;t)e8&7752ur3mqnI)RqLO2SEZi z0d1h;Hl*lF4xsgHtzS<7TSSXyMMQU_=d7uM<{eF=m9t4$2H_SZqIf?cYu_kX#uU^^ zN*0#Xhxhli6q~3&K@_gmd!ee=`#Ud5_c5M<(R;oqv7#ar@SQf4eQeM6iCBJz@u%sY zJsV0fMZjioBoyA}_%DSFx<;VG(80w7h%}8a!e01FSEbV}L)q3u_dtAJ{i~z%Zt?@fM=;&&+E`Hc5E2QmfqFvPkt;$uMuBIf2 zw3(cF(@L;~y!8u!{jw+mtkY&9183g6427M>%+@--P|^~Z-1BkP6JRP5jD@j+ZAP2e&I*0i=&5cC@vxtM zwSC|!hy@N#n-1XXJv0X_nII2AYDq-dov5fNW4Y}hk2R7pp;1veZtI9SX2-G#m@RScic;R0inzgVuQNG~GK7Ic0d)kDb8(Cu)-z2Rkz8|D<*J zA)8jb*l}Hb^eRIeed_{%t0rOcoHhur%{kUJH}!>#g#z5n>yndHuuU5Y%3mP!nTB9K zuj(KHQq*C8tu^|PVOp2%;xK(PlTiO$q&Mo$8QpJa@?V=wr%3!Lu^!?kw(UXDhQO19ZFG-iRs0h89~+*MtJnDjDt zRm@jw&=V)QkI*tWMqJ`Mc+Ruq5ukQ0SpxYh5TjX-Bcb3?PbL3dKF5D?Ie`d=MJ1dz zd68z-{2g3B$6jIs^~KTHy>@fCU9EbbOsYP2AIkwx6t;}NuT~nyk9nODX|>*ch}3y3 z{>yTaRCgTrVHvOmTZpI3k)&UGX_TrgK0Rj@`xin*@z;;v>fCK&bOkJL%?1bq`Ve=Udo*@Y-Te=bKE zAJu9UYJ(=AW!c?j&+Z0WW>7R%i3!1$6N`I7xdt0`nA z5>E&EdVlVYGmnmlikqCVTe8?fMi?WVtc4z%{v~4nvS=7LHGZ$xP*9B!A^4+Z6_7*- zrY5UMX^#+45)(!Ad-UTWxHw~nE0cLj_n9F1_qGXH?0&k-9GxZ7+i1z`aW2hP?OSH+ zTCB8Yv=Tx5T|vn`e!@nxzZb7h3XCkl{lPPQ(P{OAe}a-{II|*}{~(oeKq!oLO_O0l zRvP$&W3E9kq(wsw5Fjb`m8R*cKs2n%>X#XdjCtA*anV3ofyB|6HpS7m-b1`D=}J(N zV0WkQOq;5^{kf)+S=F=(LXx;TqdcEsL8xcR9n+R)ha_366n=>xD2A2-UEJBwEWPN1 z&k@4+YUY3+X}gsnl$=|KUQ*#p9%m3D#Sdj0d_DfX2^{qmL&>1EK@ zJDELxFdSsA=<><_s^}@H&9tN$sG=|6^9%?&WWHX{ld&b-x;n}H9>Nq9A*QWV-7iJ1Y2-Uh+&X7$b=D&+vQ7MJ3F;OQ z0LDf_lKItxrO)qbWv1+NMMgrH>Mqv=WFO?Z?nee3Hr?@`>42VF7-xqfOiP zo01sV1y_Itw3=|^Zj!uJdGKIgrxN$PuQS9#t zBZ$g_LGq;pWzX~LH!-B9(W{uQTBr6+1~*~w9v?LmIqs!H1TxLeTWW?1S831OkA!lV z);|E-4BY(I-+1bZ@!MjTymM+#5W$vX_JPY@aeNj-OhQ4JnOk8%fZ5-Ryy8ATi29gZ zK}_E-<{51aF6uRf2KZ?Ly*NPfWz@+KnkKUDc%Z(Q_-lc7S~(%AV1@)Z9A>2}k@_%W zDDsN+svSxjKLqFvPJ0JZ+mMqQNEwk>@grcOBrrlv)5dbW(6~}Z-@QD#%U6uhOXo1@7b29@i7wft08`UK>{^#D zJaYQ|_2- zX1>`BCbF+}7_0S%yV*5)Nktp%uGO+aut$ztEFkVgd=Y_eIk~&TVhZje{k*KrZ^mD# zGh0O(4^n3B1@w*^LIU9UZl5u@QL|#z+v)?)xK7mK@95~mevWAgxE8OZ1;+Nmqir5D<6~{8+fLEQCkyJRB`6EoA*W1lnV=t3ysW3_a40+?>s9+2 ziLpeNaeyn^6&Ch+XhdkaT#78U0tHiAJTd0D4d>p%&I;w(T!0frkG9rTGc5Zt1)mwm z0UE@d7bQp*5uBq{SW7xFVr@Qeg|tE+<758zc1ug>0{X7djf|8kd|%riXrZHm7|F9hhb*-Vhe`8x#rf`~s~jL4JMB2-ypM@bt8k_iAd*Be5m_fXZ4-9ZM0A3O=fXeV1r+*V zr09j~jZxQHRk$@*wH3{x11Hi-Gt2Ip z$Ex7Egz+im`&iI@WLsD_OvNGNd3W4*OT~6lf}Gb?M8uWt))TK=W%w7Tq$_a7MO7%9 z+re9Ys-uRKAu0rw(zz!1y(bjRWjEw`$mZQTLS`b(&A->1X_r+_Xq`myz!v@X)RC;z0&(Kc(06#YKD3G=%l9P1zdzW;rY_hEho<{` z(y5>O&J>Nhp2@KfY?QeLu0N^%grh4o-|*QmABnHan`2*zi~K}FHL!=dwOIbhJa;#y z<$KN;bY|D9@LZs~q)w>UE;+j@v-SK5E`u6FJM-M!oW4YfFvMQi;>k|*{R3nUYGE#0n~N;7J*~qRt3LNE zM2k*lwLA_R-Z8{r6MIS-wHPZE%dwfAt*bw;{j1RB+jwr?C6S)YU) zGw)2;Lg9Eku32@g2_X8qTYWIX7+uq8!Qv00w0&c*){pUU_EzX%k-saZk}*W;xXJ1D z?eD$xUdQKJ7w^Om5>Ls#!8)p>k5V+|T4>0;Ie>F@OWql5z%@Y#s#>kW)41E5f7@4`uEEywFt?5{+C&uT%4&BoQ|$lcQ`dbVtd`8DQH>Hb zS{@g}pjteHUT!a`zLqhKpAtv|p&5Nk*PMJnEkgYmlND!rZZ!#t^DJIZ(3Alp+ll3j zkSO-T8GY7jqy8AZuV= zMH;_YHQP|Dr2{@3 znuRkpWH;i@&qR@ZiMXE-ba0t&bOtWN)SeR5RMa;DyFtW!Dr}Nrj!2`%Zx;8maCYt( zl+ssU>f@Ax+VAF#uM3t&PU^ob1HFF=}Hc^DpJcLEM%!;NWIfwZgd2` zK0rv=LiBo&@c2=;nFjkdlE$-?QfP`SE34;C9wR=2{XEErzf-3yUk0Uy(8}^E;%DB0 znA%@`-|=rv7LF-r>?cMKCyKgGRO0d8x;KV=!m)@flJ(c4Nh|YtV6_avb~}KV03Ex|;-OhOLZB76sof z!1@r|gL44F1DpVGX$pRGj7H&UDs&Nzb01hE^>txHp)^NHSUucHOcqvnzZ~F|)=ovG z0qKj#_L4gW^7Z2l_9*n)G0dU;Fjy0jV9klp=>SxEIEuuULGoLZe_}){@lZR;AE_iwvN}|ItXN^ZLa`Pd*kOED^Ro89~l^^ayeK}h071lzmITj_6%8{y;m*^ zv?;s+gMHj2le4D7Im}`VqsV=&ww{$-ZiQ^;c|ch5Pa&{Iem&@^c^NSQp^VfoDIy_2 zLerbZPvud*Pma1gj^vY4>agPvs)n{sW!kFP7xpnU-46ki-SWW?a-a>c8TFo9IBP@-^35&w{7tup2W`hv^J^29*RPeft<-p89@(pc8h- zl&b?HYyq_d*tKrzv^~Xz86ILJ;J~jANgD7VVT8Xv#iQKTiV!M8=aB4ot5%Wp0c^e# zx>Nk7&X68)6jS15e02Md0VTjidW(QEjZz=sjPAVQ*)MJkG1xjiHTL?7X49_^*=F%% zmN;+{c{fSxepc-8k#0G#D1qx7f6erdx0+H?BdskCRj?VVEQ3SzQ-)?xtrK?dBRutK zLVqdb6h%-O$Y>tc*1A^%6xXb^GwdyX?f-!n zR1E_PJT6%q0$zW)`$nE3`mz%L6OfOCjSe*y7>u%SP8cLS$YI}w`S~^FB?xg{GuA62 z@}aOPdm+PR5ecL#Z0vaGJT=zI$6L)+Viqymv*_?OX%-|&NRNJFvKn`#)vfBLp;LMw ztPoIbIRO?GfU}Tk&;700Kj7y=dy5ejg*tvt3S~NzYRF-d&EcX2=?ePsIA-HXj3H7S z*s&l`eiI0Ti70YVOmwX7YoEc}5pyFO!dJGWtFHssEVb|Yo#3VIlSd{Ay6lB$OV%Ks zwHpj^!gQSxC^uwQ-Dvk^wg`WEPYDwGbH$tsBBc$J)g4ll?CPA&BfOT5lYY_Y3olEc zpc=Bm@G$nqqH|!@MJz;W9l5e))t6N92$P^@Ke98qSe_Z zef2lEgH2j`uCYH}TGRu$o~TMpE4jZGhZfzBKrs$g#_rkZ;zRgfmE#;MRkVv#KgrAi zA{Dk=D7x^)pPoQPbKdpUlwl74Iv zF55m805IRhg*S{h%u5>BwDQb-4B<{jS#kHiF1PX^qrdI>c~0#DM&dSQLAY>W)9!8a z>AWH{Pm9@$big-~G=Me7@~K@TH*)YO-DAVnO%n%%sU7x!vXQC2DfOrE$;hbb#RS{% zCdh+Tw2dp2>dlcKfh*q%E}R&>)JS>(BLv8X5t9^XdG+!V%BsbTz_>hJ3KV#}u-tEd0|a-*}-3mNDGTEh;j zR)-_p=7Gi-J%UA~{1E;$??wl*$*_<@xg9Fcd2*vH))}>S3@xSu0ppd%EJ_%7t`umE z-P@p1w~O*LmLf;%A@RTgx?$;=7pHRdL=|y39Lf4X5Zz^x4w%R4$4R$LimBkIVHGAw z@Jhm`S6U~kyC$sNOaKj_o+lfL$d0V}o}e{ovcd-xl$*_`VaTjfjEe!DB*V-l3G5TC z@V^DvyvQ5+2q!`ahzESz=`l;~Ldpbrb2oY%)}n)$9^CU9P=V8@!@(~uu&j?|-#;Zt zW--iN=jBF`7dB@Bd*PKzsNW~6(OkpLA!Os2TSAun z_Q(|J?&t0Wf+QpHrS3}jDEQ6pOFeKHkywaA$1OlQsZ@ccdskikmJPHD)}=L;H8h?i z3_6br41^K+BzgE`uxHNI>6D3qPs@&ZU##;xQAQYx7ljm46L;YbmOw&aKInx zK7R)~Ust~(ejKFk{@eZhV<$tj6gTr5eu7i|ag+&9UY#}E5 zz*MdV^GrXvpL<~S^af1c1L}6|><^#V7BB<>$rpNXQAXD^8>#+ybv`D1FDRs*;NuGF==# ztsHRcu$cwjGevs+2dNgWi&lQU$j#YDzmgc6q=?hZ52EFOT?=sBqs^obrXi z2oUm@+7pHLPCeRy!^Ua1?_QMpJ9!i5Da7tAScJh~b@-x0O*Yd8F(5F&*-{#7`kEFIdginxh}(Mg*hxTLsi}*#olSjah-A{fd&d{&E7a|Z!i~v*6f5qbo-H$X ztEoQ+TFW93ABcv`{a`Sja4xG=-fbM{Ab-jl;MtUsPCtX3laryld|AK#x&;kSdgfqS zdCiNd9rKEQ0Srgx^a`V3b4YNMPB7KKkzVkX?zQd@1OUSQz;<(e1>hHBn!H^)W0Ssi zg&uj(wVXvM3628J9E3(QZPxvg5zG(Ez^MbQvESYWOvf$l_AR;#x40+sY?-S|NSS+e zM&F&RBK(T@_PJ)%ly?R5Z=Vm?6(TW;pNOkG6EVs3Gt{!}Y`+JJ{ijYC@(IMFnN~7_37FMHPWt$qYVi$m6FOw4EN{bvLsn3vy zV37Wf7Om!AME~jnrex3+%gj1X%%ho(MNIB&am72Cc>881g4l6QSu zI!_fxD@F!zPF7!YDeqnyt}o1}5~qnL_TJvD8@$;=dJ z`LphQRP8+!Ah8I^#N!i@!EWbzNh+Zf%2loXc3OQcyGHm1sLp7Oy;rut`h5#zg#cH!?c2uzD>RV~VO>{9v+Ipm_}akkYU9&GzzIsOXg6V3gMUS*kg{+_ z$Zo7mUf?q!VJ&c#?}H0hAWZAv;>+hiH*4ybT?Bfe!AL*XD))U+xMCYv0|YpFpaN?A zM4W7Xrg4bSZt&%~&oamNBF^sRl56O~Lj9$^S;d4xvtIG9&}fTaiQ|X-BR(SQYS`%l zrN&VZO50*WbQ5XVxRa$EnlTy7X;#5-Mc1$G_Lpo2bOPF##V66*yB*0DdLuOPBVd)6 z(smtwYYv?Q<{88d0kUVqSO7=i6vI_+WRw*)o**I#?$tNX-Y7FSj;KovWZrkyyGDrI z>g%$o4XYh+0#s#-EOdgt|47cB3cJJcfX-4(a02AFp2yZ*&r zKtKd5^anD*c)1_Ds&4kAvkHPzpOb>|!H;FRpd=w6N_+KAs{&qDeFch#2B^YMKxJCj zg$K?|dSyKq{dj5jmT^8zr}_Mx9hqYR_a%rtmcZsWt?|#>%Xd%_o|)`NLyVoT$IuZs zN%5-+yAU90vt*0x01GpRz_)GZ3j5p(_X7-2U12;+c63*4_H@EZ(J1SA^J$`pZPj-s z#1$=j^2Uq@#x6AnIG;inlUhBk&c3lr3a=o`n0$?VU~U+hHSNPM)KlZ)$`$6O*<^|F4p+Jub=f zeV1h?Yi(<4C$;6OrP)EsQUq$7Vr9AVK%Uz?U@BUgnj&De)-scPJR%B~$B=_3cvS>`kKf;4`+R1+hv&VY`*7XYbw6(qexRxB6CL~~z+-WzNPu`{ z9P}=J_{f#hW`K<|FzKucZac=jF;W;WXp0f73A4QaGW0gt^QJt*QLbz(^V@aI8V1vG zmO#FcL7Wq#E$`yc*7W?L5Av zgy#RFZOu!m>r^r$m*YJp^q$SL7w0wl=ZZM;odA*rj>a3pYwegWQrAGG{JxB=)_~He zHVsXeE(B7aTpa6sKsjwa8^Ih1gyVD-ytrn?7n^1WpWcom#-|`?*Fu;uU@D2Bn7Dh8 zvu!eiXp*Zkmrv46oCxQZ27HLqLp`4*Lnr$68@S4Cq04f@gtWqe*KNX~VU04c$jUZx zpz2MK^F=|h$;H;TaKJ@;N3gbnf7?zycf8ZbU-~Tm*Jx$kvg`{lm8tox#)5~52~PC{ zyQW+Oaz_{-4C}r)g3y6BeYo@7q0WAAq9bKj;)oNysXM@*6-UMW(CVt}b49_Q9ie?u zauPoMh$VPFN6db@Sl}j6>914YtOd_B1=s8K=b>OgLe0C624FfWQ^5BkF)W`wB^+(U z|8U1OKOGiRTXk#EYH=s>eyW7)av^r_AdMV-gO}feYx;C zXL^h;y7NOYmIIjt5)O%AzKUb>zXuEOe=m-@=VojMXRwjS!cbBpv?e{K4n0c;g%mzS zz1SIn{T0`0&>KXV&y zxJjm-VDHA2t@|l-w#s7kPT)7!m4;`R3-5Bu`1aG98J(u1WQs#9PY^fVMF|^#)-q3R z5;M4Cij0grA)VzQ&08e_3+KqztNKFeAZ?C~3>5cx!UiB+ZTX(&)-@u$2KELL>s+{? zSLw;_0E+D@d~`f9V)C|}w%Frh4vCL{yPJm<-x0=bwS6<6v02h~ejjsgC+Yt78}V1i zWfitImkvH_vxK)G9`_>3Q^F55F7C@)*&Ifd75{yNQ%>=dE1~O$e$+XfK!e(9;_XXL zirQqNkog8`V)ZQE|CeQA^j4`_cp@7veJ~nLx~Pa}c7r0*S||F=Zfn)K$cVLie~Q+= z{JGR?4s^yM+c{>k`v?D84A`4(txFpK5ClyAj5ajBZeBSy$6UR9kL<@l{FfO2(}q*p(1x6F0d$5Ya-go6?De z>RSb+W@~K(&ErTP1t*emXzpUoFa6i%WK5%cg&D*}^wW|otb#Ss!M}AiZG`eXj-Uyz ztFjb8dK$VsK1wncWj|m!YHf1X%=_0kKbxK-`JhiICBXAcpc zqq`TnEJG|MCno+)yO*E%VeXR)QU!`qO2Y*hNJba^orZw-Dbw`;I!pbbJ`?k*@IUeK z7rG}7e3CYJkXe-g>k8Cj92tzId{X@y!Q7ec)LP;gqAWxIXPNbgOW$*$~i%{uuqm|iB3rr z&Wy0ZBd>8MVQ5CFWPZ7%o&kgw;`U8rkjZI;w2-zK8Br-|&+`8+4L8BA@HsGW9vJw*CF7k7XbE-}6Pb%!P#lu9RyLM1c<>ASW*!u?ywy*z- z)NgXdExIRZgpHnkDM)tt``mAx2HL7hzps&EeRr-wTxDFB*!^V(epUR~yB99B2Wk5=`NZYK@b^6lNQsw+ zM0&^Fa;4gBG!(l5ZF#aO^5_ZA%{*f|OGr z#(|@p?VTgtc33m0pOB9lLA7jAgzY{62`Tc9F58aeDfv4VrZ7@-)h~Ywy0e|nr;;6S zPsrx;F01LWGW-zX2RBU^uV@3e>dEGMED`W)qwz*+!4nxT@AfqPaxz%L6P@volZrn! zdmK7S@jiTPOE5{FF#1z5dgZW~ukMLq_u)tBw`NOonJ(e*8|I}A*b3#KKs5c{r-d+UQv;eg^@X(>=aQNOn;@m-Sf?$=M`3*s2gpJzfE?j59w+d|r z5m1Xm5eZD-QVrx8HO{8z&DNLm^tCbHce~b5WF_jJF%vYx3g&LdoB}1D+9ipa$9=M? zn7pP>@NAGu*jKfKjQJUd5B~}Z0Kj*dFs7p%cE4DWYyHf+*6Mkp2hr$nk#%k1i%1ac zWRZ|K*1Phg6rb&E;*7AO`5#tIaGimIe6EH6q9_lrD{kaEo(JUG5?%Bkr7vY5Cq|E# z_?)QR-6Zyjw9{Nz07Yn6yY{8)-V>-tJBZc?vb9s-++&|t$(nX?-uU${3*Q$sXLV^3 ziT?hXJpWom5p0zrBjp-HCQHNu!h=>({Pekuyow|E@h_@7E>=%5uc86WA*yF_bk)#CLDnes^q$At+L`-bEkj3&_4f-x z4PrCzUvR!fg~9HTrNzxk^Ys-_GxpZ3u))vzHfTC$^~Bs%2P~M}NY5DGA}`F~3MU_T zAmKAe+L1g$_DGQ1bdF_^52h!1 zsDC6SjV+M#)9&#{h?Q(dIbMTjia{0zWOyRHc6!2`bzZ;JWr{g4S1Z;3)t0kkS-2;< z-NpfRbBC^UXq;)1m)1t5eNc+&<1b~A%@mh2SuXzgMu2?uJIKEb>cf(Fe0H+g@wvHr#zH^&p&0pb1pKr_Mh$DiGsFpKz z%>6+~vrbLuDLXfOzQEJw;j`S+5+D7~xAL%rIb3Q0s%14OQOm<0GPXYk3+VOVg|;%f zRkhdaFsYcE8Uz4^)@5-5>F8mCNBrJVzDqx)r>FH6D*P<`##axp3wk{A7z@2DJPmK@vhw{7N^;MFb5J@fvk zc$wEcKGg0SybrbII(g^Q(>prh1;?35NB?qslm{4Y9lLZu$C~}9pfZ`N?)m&Bh;@_8 z2Cd5pxc#%A3T!L+o<&z`+NhtX03mdj6vrzv>5Eq{dxlduyT${M5T(H?FA-$$6p$Uz zPO+9c_$rfmjwv8goY?Nqziu}V*y>1d0w)+9uC(BubhU{Yb&7ddLS}#awn@xL8;@%Xj@fq8(l|zs}mzDJXcL@aIR}O#1IQe(Ot}uCM zgBaMUw&pt?WNGtAg2noe0I6L30zo*yp4w^Fn@zD86xVW_n5hM8n$?U{Bt~^Uogbzz zKG8I|N|AXb#LFxjq%A-ML6LKx&L$nD;eYtLCP7x4Cu~9=x_I6Bx)F7D!ai*zOagbC z`#A>`!qKGY9=yt+2xjyz>$Y9h?I35=1O@anCw3kB7tGF^D)l1mxRE_TUBBqm;%PXz zTnJwTR!z&@#B*rG1ImmiUWJ~itTGXN62nOmafzZTJN3ELCkHy=W6~qPk4~Q*+&>hM z2`1HeD=h6rmW^nL^EASSCgM~@N9zmQbPjzco6>nc$Q3nvs3MniH7JJjZbD75sEC_g z9hdPxtRu~#3#|Ti{UI8!&i)Rwaq1%f|39WnH@oVMR`ef>qcuhaz6QJ>DwJ0aC|*1i zqiI^)??+XOk5JUVlo3X_Dq`E*KQ6p4oXwQygiv45A(P(>8rHwsJtQ_d$Y`$Reohvi zT(M(B##I~u#F^#K&K(X$j?uhfPA)z1##^= z@I=`D2R_+u)-d>00nrx(-siiWV?uI0*#r2HP!rb&x+N}7^;5C13zoSs$SlIXI5ll@ z;OXgzE&C>*~}O=%G@8q3TDFrUHTk?xtphnlu{;K=Oc+wo`cU0qqeH^ zzP_Jzm6s`A?RT9eMcqu1@-Q*S!Gz1g)jVJfu>h@Y5t(Vf$dQgiIL7Un4w7Y~6U!-G z-p$4+CIIJBov!gvOw5}cNa$jTl{T;R#>s1h*r$nq!U$HP1eo$CH6m$K`YOhoYXwPs z{Pz9fAk%Zqj@Vk9&|pyP`?fSWM9dhtuk>t z5__F5z9vlfI|4^OYQ`S2Sdu!*J7y)n0k{&mWY_n!znq4oZ{_o zYa2G-R8w`54Y$cp`pypl<7r$|YB0#{>uBfPx7eeN%sX!p_I!+XUi`Hpy7Cu)Ayo5w zyr%a*l|o&-l)hcpGrB6dfciaR*-)1Y<2CYh>u~B zC;u8CXXtE2sNJJj$wG!uE;`p(GP78AWbRfYI~+lPMs;S%ZZ(7l}&yNfVMf<>v}MJ)2wJz0w*&4n%dsmPL`NJDMUMAV8iGPnY^LA4(@m=8GMb31{J*){oCsZt-6cHzHbXbCu`w>QKm{ z`}M%HbJ`Awq?AZULKR~V00x(Ww$j2>}PXrQiJgf3NyXj=^rgGXgKT_`DF_5lFaJAEH ztJ~`C!~rHV4(onfhJ!oog=cGD@}-8JqBq>s3K(Z{>n2w8mfju%h}}Exe32WB>}p;! z#8fs(!KyuIe5e0ZiQ6+y+*5^C^VUc;9(!jsd;wY$2!@xOhg<4H1v?hlhArs+X@?&z z>NH z%S}`aFzp;A-_R3fwqt!1q{fWjAyXNj#c9Yq7kyEa-Xf6~%3E*C9Q!GBV^bHqbo&n8 zks)1?-_a&w1;aEgGFJ;**%QXbyee}&JfHR)4{*ALyvei*`=moj&~Z(q6*BDJ+&=-d zCYh3R)>7%$z~bMS_BpBs^|IsOHueB!6wvESEHdeS9$=7*>q9L;Gx4@KBgpGOLDKaB z=?X$ctIf5*Bxv7kg{?qd6r>7UDTIuej+6M2aem}{=9loKaeG*wd14e(yZ<9ibdp5o z{+y?jUZ7B(FR;RMII;DFf;K?oZH*yUFhPc+;bwTiI7u&HudHt?(2cEBX5|1#_~Tfh z>aYM~99q{(@FJfV0}(TbXWMpoC1-=pUVDlIw*LjuCTVF-oWr*szOPfl?SNPr*S-Ij z;*Z%L|5ER*`2t($WU~9Qf^F=5zAfWjWMowa@#{g%w0STT@;)6{4=m_Ruhhxi+Qfn5 zo=b_vnx21fAT9AawTV|MKlFaP|1Y!Jte(&JbBM)E`A*aQTU7mt|5zFg6Mc488m3QH zCe9`DkQ*O$jEj9QL6xu-yfwrq8{V%{@iFsF$>t+zO5xQ6?7^r@l}(?E z{S?+F?z#R4m{xko`=(m<+Vj+GN6rjIt-y&UgYqoOgBO3wck`+X!oEjRFOKUglK_^k zrUdbRdjfb-9R#!nJ^KgwpnBnoX5y!Rjg4~3T#VfbyxoliW<<%C$aM=%Y z5SKV8HiinohlBdKuW-K8_Lz|vi%n%pZL;e3;ykt(P;3C*#9dHw>91o+ej{~x(B#YH z5s3?r?U3mj8W`$#!aCPgIPbgdYP4LqtXraOs<)8SHgTc!5BZ0$cS!SE)KwGLUieOQUgzE}VTjTk)0x@_w< zv{&!)ci4yhH*?$iXQdnJfPkuLlDg@V*P3Nki!35{hT=HQgng#pp34}{>lNb_uv3s- zJIYp6yhs3xktW>Gm`-tU_Zq({*!Y%_U1j-b7XB<6QDgI1g118@?_GNX{xYv}AxDC@ znyo>T5jEqCs+%z*!r(H}NFuSOtqGhBUkB|ZmwlO_V5=%wG%zBIm_8Pv~sEdX`Tl`x<2`AG9w*lZm+Cpvsa$-EFNpR@Kfjtx8bEei4jGh$vZB@NY&(H|h z(59PMO>p1JAEhoyl;-Id=W-Y`mjKMaPk8c1BD4|L8?&I+STz$?r(O3K}0gOVE{F6_Ge!X4~@Kp_@5JR7&K604}qaRjHD2N z@5+4H&!r@N+vA#HTLYRGrY9 z*L|PfwmJzmiWX!SO}_LSoA)%TZ4=+mAXy6b*Dx@ok!n{OnTr7{rrKMDZW)MsqUqpD zyKHGJgv|tqVWW|%iORIqZD?f(Fgskty%=lLv#nf`rLx-49c-%i$(?VD@S>^@u~9~( zGC#j#JL>&2Z-xHQq%9g~_MVoQL@IGDbCrDfuhaPMT8mOVJmSETDh0SROu-W{)v4IY zgPb0??K(;F)SeadeyK1%m~6)0C)B``(#5P|t}pwNbfVTC=A4#h+T94!21lW^!5w|; zis!;VbW^w7P03y(iu9d$=Q3#GZ3z?h5gppg$Qnf@1)>*E=C{@6Kl+gNy@3J`-VWOg z2&+17sly5hoE7fN;Cq7dbcT6qR;jz#QZR6OT43|mFBFZd(J z?5a|pZBN|$G9Hxdq$-TyhJ`)Xs@f0nZYlM{*j;#x9V(wz)t8h&}n2^cKaA z1w!ynKs(|5o~8-(G92)Qqd?lP;KX283$fU3D8vNO!!3?D?*iZbW`+rf>JE904;0b& zboQd&ybvpiM)-P?f9+dP5%s8tVoT2)dTayx)(>TMoS7Bg{q`BwupbnaH>Vb`M7Lai=v4r}<_d?EuTrEP+~^H8dPtM{9G|bqWGb1B zY5em*<9EDY5@56_pQwE-w9~XPT+hY6zX1luK75TBN`@_D(Qhk7zlh42x3Ji~T=t>}ud!YEk>ccm#xj-iTKx8BdGV!-yM7yCry*;lP8aFw*1DiP<@^M`Zu!G1 zc3xFx)(#(lAPM?nyvM)m*|rlp2@miz!VsRYDKz6+0awOsQj;l2Z?+5AH5gSHFZF$? z_4_m6-X-#t<9^4iW{_Z|Tpt|95EoF5|^3|@EN1lZ-HL6j&E zv&8*8h>ZQSb{7yZPRUtYCSUT0%}euUpp2bU-A2V;qsf8W!Yr<|2vwDay^jfdDaZ_Y z5R70yqmkk5;d_5+akLu}_b0T)kR)EmCK2vLr*@#{$b2*5$?Oz7`zPR=IkNg`YQwK+ zlb=f074uRX|8QLZpU3nS$lSd|QORZU{~WA8{>JAA2zI(>oXNN9)ij^fXw=rB9~jj= zc@D5qz?(u#?P@v0paqh;2sM|Tu>snA>sj0>NU!s^kI)qZ@eG%OMa{%oO9e2nKfX|o zgs6a)V}%>jKRKB}mHH`|>=JyV=NdpuJ>vTYXq&LBnSu>sjGyvCE@cJ)xI*312uLzj zZfx5jvB=cM{YVQy{4$F|okN$r4!!JuG|Jc*&NJy^mvcKNQ;~(9D6FI~RjBCD@qU+` z$Ucbx`AVhyrrev-!r5KDb${(=fGy;G!R~(33m-|g;FJ}v5y3Rpi=V^vfvtC z9$%4fTM4ds&?#s z6+en*)>zZF4r~a29}3@I-3*2VmRs@SK*oluXjC z-5Vo~Bn#+5@P3OxW*S&9;LQY*e&1XHf#DZIg_>S7-q>cuVE(;bv=J0C@?~;3t>~*7 z@)A-*ZLI_N%gKgonDj!B?EnR2iN7&u8La8I1Rgyfc=XUWEfhd?pGjC>5qKex<(hp1 zDJ(C2u79xn>kx?~HDRG^dd}29L5Y=Ra(-^->~>2CY1f8H{BJ2T;{;U3Ib7U~GrlWAz{mP+mu{QuES7Nr%b>VWEJ! zBH2kWwH0}#8+JEVILU$SzbqeI@)NyKN8b?v*c#pZK$qMI?x@N&3lo^bvY+jXk!^dU zjudv-<|&sjt3|$=+!XxSPJ9SvJb~f!%dwf*y(ep}8qUPE6IkhBPI42AHNp>3V#m)-P*EIv&o!w_0TaG~vN0PGTBBsbnETOL&Hdq$S zyW=*W&0Yo9d-nR_An67H(kRN7F^lV7#jNtt5EV`ZF5Db5}3$JB59t@ zIX=0xcR3`uvYRR8))!mmh$z?uNYXOF79h~E1(-@){-CAE7DC1j(5rc^+$|kJ){@a^ z-veOG>QGskkE5y?*nvZ_DaLI5yiOB4x|>cn^#wcNh&!^Dv1wpfNV8rPg^>a&XF^A` zKG)K1-8NREn*$Inz&{m(2CReE+Ch{VY%ptcA5akEAja5 zttK(?^_)s2$ak;!j=m_iydN0w4ajwI-3I?MnH^Y>Il_%aEgr&$1~w>#ko+q^&|M=i z99!-}^hI5SDEmWfaUv5Pvb--`b*tDIR)sO_w^VtIKPC4dl4xjRloR1)%-&j|d@XhR zRr24QpmvUJw`;y%+zO;mlxHd>41qnATob;s3-epx)-QpcV1l=#qZ`(*{O*8hHLyK( zWMKP~?wb|D6unF~L>a>8`-RkV49VW?A!)}n(|*jltZ0+C*ZP*+n1^LmIw>cH0ohzV zxDtZ3RXWf#8fC(U8l{|(Wp9o^;?up_S;dCG3VfC-95VT??OIRAfMDt0=Rt4ave^A& zb1=E+*+Q*DJpfm%LR`n@g(vZI)t;x8_^c<@g>D-G`8rs_5$>u6=3RGNQy!u`y!?fj z0AJ8}9hmU`<}Zt)SWksYxGUMZ8p<0j)_hLISmIAJ0L(}_(R-x zX>(FFSTw;+95=M$zEz-Jj3ap#xv-ms1DgRxqNEgLZhifi_i zal&tQH=o2;B=2xkltiycLyGMBP|if!pxt5{Q7%*WloLil#sc`F; z!v_~Y3s2R2S<`f5iU}rn)kfDN%2B>v?F9MTV$N*NH{UV9#QCfy0W+}|(;80mUb;T# zzf~BZO2?STHpYU>2S*-9pq+L_`PKnqknL!r%Z5h)#BD&SOfXdQEU5N5GPudB%|HVs<@d z`hDGJyLA&s61*>|UY5Z=w*JzRE@M3Nq}kx#Bk;zKk`C_jeVT=1{~Ll;GCSf3CiZ)d zCj=T_Ch4_lDR_oXD4g}&A6}00Aqd(wu*gq7s5KPmwZlnbi%?!Vi2C3A;GID|FX!#N zu20aUu1FqpXv=CqC6TaTBBL(_XDLF9*_lc?B?xqi>$??MEd-TpA=M8Ev|DxpyR4Ri zQ7FYnk7dH7qM>6R1CmJI33wm(Ge=8VzJ(=7@7T-%x**{?e+$5nc#JcMEjD=1#i!EE z##V~Jv1%6yA@>z7SQ91^Y`?9rH33!FP9ZVh3_BKsf;*u-iIDLrwM>w3#vPVa)}g_u zTJMDUW7dk$l3GfvI36sPU|ls@jcuW3`h-Sn9^V2xzb#9S^kLO#nfG(bvO18nOIQt- zB@iflkATmy;wpz3TIpr@+1fpZzuFhWzaiL3ibu|O#4@PeR3Tni zOIQzfAp`X9#vL8T$^bW1i}^R}-cqvj!3ED=ihXEYJ;!z(svHoYw-IC z;OBNv5l45IQ5LOkD=CDIaX;ff1Zp`SacNrNRo8;)0!7W$eE<)w!@olKM5%VujThbt zF8x(m!?n4_!L|kmnneaqx89Fl$6{<}epGx1z?&s+MK^fjt7NpaJSv~fIaWT|MzPH@6 zx2}A1Fe{{mWvJ|tv7=G7oJy?WfTafA%z1GYs9p70{-5$?+~3_MjiiQ$l! zZ@>naQFOr*p=h~4An2PZ$_~x7s(QQ=JA+tdbyp+Jkz+Y{#+~7|+{Rx(goh#n!KkeR zIn`E$8sSR7tjJtBAGy#C=KIu?o%tT-Q&6m@PAdqwSDa%jq0DiF!&rKv7^W)y>aAdB z?e3|7Yr06G-PDp|`&E*S`4%gIrzZ$}^@l)37vy`R3~o4(7ot`(npW~Q4Lk*0bU{`( zGD&MGcwU2g5JgLb%3SuiA6t{j4yxxII|UWvm`0&(tJ8qp*inY{MFM>;NdYTyo z^0WHKk;mzpw9A?fT_#L|meK=K;`Vx;iF=5*YbUhZ zXg3?*Sn2{@i%+FM63p5<<=o1X4aYqH&8GN=&4~cu)i@~M3Dy{>LXeGBs|UbD>MVPI z<6pV9^@Ikt^2tx3`4WUpUqGUw6M+~qw}B<`tJZ*pz#9)}jO|+)8|#3KY0jKyf|Nv( zI953R@zsNj6QR$Lj=7*?5rB z;RP`k2$Hh8b|lV%4QAmIqxa(;Vn2+yv(`yWgRe0>Dy&BB*>y-M;eZ~)s7p`Zc+ODAn_z*HFvf* z24zrjjn~@#yvB7bLDldy@THov6nq7rf6eWy8YM39mqwsF z21G*a2QEle6ynADK1MbeT8l1IDVWX5ZzE|7?c<6!YM3~iHP7Kq-T;nbiFHo%aXi~5 zw(vQAq_1}MAf}h(w3uZqa%Ks*5#2Wxv~zoAX@vl~+j2e780=!s?<`HK#JVhYS)3j1 zpF^qQgvV>VzXWq}%fpU{onsDnTcV608p4-tE6}ipvV^fYW?_svl4l57Vne|#bgkF48Ot6+@MxWmYt~Pb9?YwntuQ!O3p{t(J zP5n5(zwW4A(~qt4jG_^EimxMqmaYYH1iY_u^&lB2&zfi%O3n+a@u?|ei?99IxC)Da zGz2gv6>}yfhBMrrYP~F_q(!x8$XW z<3r+S&+*ZcE!bKBFL^!JdbamaVoMhv20KZL6%fxn()2P|!D3usUje}Ruw?IVCQ83L zEXauf+>@~d;%tdJl^EDfWo%?sskJL1S2kr>vHd!#KjD2OM8U^;KIas3=nCJED7CQ` zr_wAq{Kl{DoChX!I70J?6?wmzv9X5S#Rkc@@u`tKTMTf=)GveBN=%)=Z39b!TiSq+ z0edxK_9bobiFi68AS`Z7H-J0RDV+@Tj2~gs1_h)mp|vaEzzdp+-U&#J;4F*A&{cFy zTZ%>LB)`EM13Y$fx+4UWB2;9KpJ2NBUbQIWe<1eU^|&Q>;(q_XHEiJ0 zW4UDNaO!}x`wf&@ZVh?P^>!ptzy1FeMNS&Qx+ZjsnBeRCtAsUA;mhE)WK88G7T5{_ z^S|iXp~djITtKPqp7s=6?&hXy^R$bq_UUB>9R{~KT3}|N#J2uHD;+Mmm;Qf-TGIT`SUr2g@d(8YqQ9WnYzpq_kU?A!iECz0$U5OZ}2>$uVP8M7sZUW}|wk`2=N%#-*6s{Fn3Gt_3Fp8+N=`Q|z! zEU1b@%1& zX-6iVf1@_weGR@=fYFn-zj*+BtJ3ek2}u_PIjy>y(IH3}nFzD$LYQd*>wH6K*KdPoD)BY1=BW=~;z&rLAYI8SvF`pM#f##St`V^Q@Oztc;PI zj+q;U|LdWlS!M!tEC3ExJ>bVOHHyUEfZ;r#QFE4bhSaQ{hR*_2&#y&+> zz8JhEUk~Pk4%}}TrBAXQrp!xc~vpbkIl9F&ud>%NtW%YnW(fE0$TQv|e-3;d^(FRFlve{Gz#oI8-0^9)^D zb9M;fqs(p2G4mrKswK^xy6j=FC)@Y+#gOqT+`=HHEAi>BC9{^CZY(Ri4h4eE>VZ{I z*tLaB6~bo9+y?s3*19=Y6{-9?PpcYw4Klu=E389NErYRjjF(WvgcH_)MaZm1zB!y{Olwr{I{OMHIo?B zQ~51oIigM*=vI$N%a-|s)y?V# zd7pWVji@1n_wN9OF!JT58qU#>cMTzLNX{dpJP8RK>#$PNPp^{Wo-f6{8&BwEt;+(j z!Y@MeF}5_UCI0b@E8b1ovW1eW@I93G1tTacU(5x zzYGJXp3_7RzOOYLW^8=LIDj9E9gON5Zw*Ifq~PBm92crHv z&y74@JjqX)*s@C2EdWP0e@dI&62^O&f}hrcyTGJ`pTZx(4L=Ar6iYs_>!Rilg0DE` z%Uat-fc}PA0#?Tjeg1e%PuvDpAehnGK|m~2Go@PAkY?Mcz_DN^fEU%jR!KY$p6)a2 z(24Qxo4tV>n^0c@Xo;l;^5fqRap!f^un1Q(&t*TQ z4QIOxauWHE6vkeIzliWD1OOHp5yG; z4Vlq3)WDn$A`}nacqvtWR}|Mfq^uh4k(l>`{yh)a{{vdW_5fSXS3)w&{9k#;x;SJW#Yk{gFXEfnT=j123o@KXe89W?n zpr94OX;tAi*P0sC9N#;ndyb7`CY3q%Zs{x;sKkYq*8*!8I*u!w?HC^PR_e zhf5lWOAabFI~A{6yAnD?C_7#{d48OLsFq8*cohI#89E->uY24Jm9k}qLLs=&r~n#M z4ax^3G3kL{$TtFjaUMHmENH1DN$lGks-}m}uCLa&Gl?#_32_Dzq)zM(d~bjxNsbQ*UJ?2Q#eRgwKOTcDFEnfkN!xltC0mpE=w zg2}ZSaM=}(9|~~f8kB)7=X`zcby{NBprpOvDH7P?icUMZt{Gqb1vYRq1>Q-R_@pBF z)+)qyy}e=guHid&cL-)Cdko0p<|YC$3KC>Z!Q?LYh0eKG%Iw z_!PJj(W22Ze{KaWvTWE|WVN;VqJhHiqmn!4*Dp^3f2i&mORCf~YF3+WxjOEpojxlV zbr?7VzCz%>6{>9L?B!gVqjyXMn&v_!v!oUa%o{v-0IFJ2u6R7Y+TTF2^wHw4-iC1$(@giU zRtf&5^L+>(Oc2m$yN1$HhxNSPbN$zxvK>j_Pg9a=UG0v&>#KiW+Wcq%9$UeD7~;Et1< zC6jl{;tX$sE2l_w%AcUkm(J9i5hpjxTC~fHuSaYs`F`jtT|MS->~eamAKbX)xH4fV zTetaMJqr9tU$(j$Txm%E96ZH}lQ&UO%l}=mg0CU1T|s>FP<|5H*th&YPCK3drR=B6 GxBd?a&-RM| literal 0 HcmV?d00001 diff --git a/objs/textures/two_way_foil_circle.png b/objs/textures/two_way_foil_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..a6045d5cbf03590b5fe9508d3c1ed366b86112c2 GIT binary patch literal 24204 zcmeHt_gB*W8#nFDmM!m`m6i1^Gc_|8HtxjIG_^9tQMo7X!B8uk4l>P=iWR9@j-0pv zXKu+!B7&O~0Tlri(FeGn|KK^#Z*mTY^WnX(@w#5u_5QrMYYN)4OJ)}U0N8WO=wAx} zU>jNV-ML-(&lOD*C*hBTuaR{C03dl#^xXvbnEnp{u)&OR@p|mjnF`lyZ(rL)-?zQOR3zt=A)qVdv23nvdWkFGzjx_jCRa4a4$a^e6@a??8tK+A=DEr$Rt{{VhkmN@MKBmw|lVesoG z0N?ijW*2V(w*mg-CXl58f4<1&?gYec0;HY+o!or28t~};Q;YMPYwH1@@~)n^u(h^e zQ>1mdI%snwb{il#?%}(AS04c)Q?H-z035rr8E`}4VCR-&CR;vT?7@%ZI{3b*FxmvD zZU4}jY}})9sN%zKnUICKk+I`r^7Ws9i%HjR06=EByKe1@ z!8_X2#ORa@&5O0z^kvO+4srr`e4e^i6SH|MV81DWMRJ&&9N6O9yy<5U-ZK{rAUy!M zQJ3vBh9o}O?D`E|jt;xBdQ}1S`EHAzyxcBHNye!spRpImqk-!hqmYs4aIUa*Z3sFC z@cVc*HNO`9T;TWEC%C{Oj@G{Qx|$D;%wtMVSk?r}zZ|5JrsknRMPIFkL zMf|_VTR)5)n2u1NS4m~It9srPlUq)U%w+Yah{B;}vsQLSk?YBf}lV3XlfPX(d{ol`PJ9gI{%B$U*UMF8u zE4}&g_J6PLK3S``|N8ccNV#2~|4F)b^j@vbpRHv-x5#{w`Z&73v`+2H9@@wO+oyD2 z>FtmHLDm0L^HO5#wU(U+A0O9wE%hYs&xx*`(y4JcAnfE9eHqer+w7^daq~i-hm#PJiPJk)T~nJfvTNW63?U5>XlC_tW6ANDcl+L%z2~lUuVg z)vu?1`flEti|X6?{k2Y}%`NXw!FN?HU*#UW6!h^_XWEe)?O#>U{l7oDySnq-RHp;0 zB!-_W+)VzR+~fIo$24vF`C`cKJumk>Z#H^z=BVdU*wLJSFh^BWO|rN3Ca1RCyGT@* zO?6G#mjb!}@PFL@!4Jo`9r&R0;lYRS547+1?g!jA=nwlYdGE*leLw6UAhHebm)srC zmFPS2qd!;ves%8Uf-Z{?3*=pbxdR&KAb7UoxTpB#3&T$@jnMZTF~5$+9zXI+-Fg1u z^#T6}Tj=LKQ|>$g7cbA61aITZ2CKqMEN=vScgb^!cgdLY>)f>WSJB9v_F($$uH#*M zx?n0>R18##20Zdz^277BNKg`v^n~HhIKrTlSV6uSS2NCMaCE$NctH|Xm#fUHUQ`VQ z5oUnBj`Xl;2~Hbl@APmth~vG8=19-523XySS{E^e?3#&E4t^R zM!!k5yH&+Ex}m#op_MC6GhexmYlcb#UGgAuPx3BNoXMVgkDs`!4}ER?+BAVX+nMP3 z(WR=pv^TJ$qvbp~?@wOqY@Bv~x+m%}Zm?!(HTFf;&Ge?*(U+r}lSoPM_H9Xbl6ZM3 z4}cHC9&jEI^KK2;($CYq2dupA%37uEPSZ(iFaMUGmfskh=1n~`b_jX4=Pbw4hom;U zI=gH3@~xqN9lg|$+nC!hZRINK`Z*wj zttp*t{I2~#a&WS=rFYKT9G^^R`-e#xW>rsFF9)4gokq?d^zIw(&~HNg;NQ8BCfjP) zpwGItILCW9=GQTvk&~8F&wfW!wGXzpw&!CN%u3QvqXsT|w+uCcN3iX%M>;@#=asJM zEx=#E&6&{5SGa84393F$DSRM2HGIb^im$uUEnWrUN zJhv!rP2HNcLvvf~w(9MwyMc$V@0QqOt>~Wssg+)kU3SzUyPp5peYkCB#$g-Tm5Uvx zO%w*C;$9MVQul{LvX@P!JIZ&y9szm1u26J8nkv1FICS=Z>fbNSn3q}x`UUdN59Cc) z^IfrV^T^zoO5Guka{pl0JP$7mFUQ%mipYxZ6;DH7E!~_?J`i~Dqy*#5MB|@E{Ws$Q zn`vGjHPR^ za3Lz~h1pHqm)I}nMVN})dhe$)9(>?l8P-MISaEx4W*GEKL&D7BTv+_k_mxWQI}iRH zpyUw-{RUOE6VnsZ(H48$lSUJwI{+f3y0C zQnaOX$OSb!iz=s3_qiTKyIXs4lHl&xLyP+h9%1B#IE&{!Sy?yEJ+r#>AvdwL-KSvD zrqc27;}1^vSsuy#;0F=^lm6h4=bQJfVCkn}#nhOUsY5@U6Xs1KQEp?}7<420SGrFg z&l+EN8|!hc|M$zeJ^8Zpv6He6-nS`%pP?R{xX#kfw$3e@k2M+Kj`F;rh0mAKTxdpw zUHbz;{tpap@HA-vKO6#M?|m+RSeL>|oUJK47i#5+y@}xX^e~?dBW0e*R^g|@hburK zW=$w0EDN@Sdy_@?2!wc%3-S1332%$bu?j{yzLRN@5KTH!rIN#VCabBQcII|i*BbmQuqs$p)Ml(=>Y3H6Yj@e*D~`=M zzs-0+8hmY4l^4b4pX$lf5VFlf-V98GmiiOofH5- z8uH$u$q)drti1K_wR@qY+2PiYV>FOrY zA4?fsGkrIXubW4)s}b>{e*i4*P)^Lz89b7@U?}e6=F*n33F)wqC2pPz>vHSJxw+ab zOA+!n;isnEi$~ebo$}owdWsBAyCWDaX$}7*dIC5+nU`8zemQa>e2eID0*l6m2Tnw+ zeo+-sb3i1_xO}{QTrhqbA}4wVymyh|-pz}MGG(@J7CkR1;1O$ForN&{Hr@-z)WTbfo&i^ky{b}y{L1f zSx}C<^~@fs@f{Rj3SMG`_=aaxiCO@LcK!OvX}ILcF9E7qtEv^mef%+|zdcKs)Bpe# zZNt+0vGnV?oGLG$$enz} zV2%3*>Z0ZmNn33h9B%$2;bS%SWgLg#ryvba$L;|TsewS2z8X^NA? zY}%i7Ss!7NDHKM?L*R%^0-8*J!&g%n=?q`{-YdKt(6$ivsH`RLtk<^(LQ-IAh9f050pq%+lR_?#(0;Z zD(w^?@*uG02ksk`P3K<*ip?UtWO7SkC1pZG+wpVXN;b<28pZE-a1y*ro3^8g{ilE@ zD>LFh>RKEXhZum*-rzNlkEPK~C4W9Jcp%#1NHp1bS89^ytvkmp&Bz!&8y-asMD$9# zLsMaM)?%A~lcXA^$T7^k50yy`iQ95F6Rw%LPT6(x$d#3YgsTqbY zm)eNGx$OgTOji)6+C;@t@J=*Mq^gGcllAY@P6sSo`x3Yr!#M8wk2b1H{>)3weCuZT zj>lq=QCQz|J!jIWAb*|Ib2;x*h3w_czJ^ui^~<8&{$^T2$Nb0m4^Jbtb;c0TMQD4l ziV~T11rHO{rh(JNd!b~x1|sz5;Xw=kKr(X>km}}IS;5q{2MNt$saHgoRM8ITIQSQE zHFDk$?wN-vk++4yxuW^uB~74<`7eQd=ol_%8<)uFiO#l{>Z2zQKNL0B!rY+iRR3N= zxYGpR-ENLkyy}`KPjpl7xQ8lN~wF;32OKWJcEtmcpB)eP4NE z`I@3x0K7oXiEsJDyJm1j4OWq63(t@{def3Fi@y?`yGHR89U>AEFDI~r_%bwo)1lq8 z5F4k6aD;ahU$=hcesnI%@8H`((M(sP&D`F!OAv9p6+Lr zrE3d{`$XO5bTgy|Fmd`agPx&$%CU%O3@bNndM{1X2XJPR{1X=xml{SU z#LNbb1b7H$FXtp4)&65W)B#`4+)rf%iXm)-E%##V+!2#}X$C&fi(2f>A~RlPvK<%N zzkOC^Gv@^zvh1M(vAd;c=#p06dRFNaV`h7GKO#Jy_G#u@ww!(;lQ zwPV1~n!jto4TPtSuOw5|J|ZSKooAhaDmBRPK~8(Ps1Kl)55J*g`;6s!^h(!XTPA11 zd+!Zc*hh=(z2sxmLlpdEv$)$urNe_TWWOv8B29|WlQD(5gcd3zx;gDW_eAZH*6pp$ zh0loz_LqXrO26V}674}1#JYVm1*3xRvg1C@VjD8*Y@k3_?Omg|SjK@umf_Nb9MkHK zM!-OFa6hMJTpVy}S?|(c3I56jEv(q|*K*DuEL4mQU1zTz4XDU5EJ>d8V=7RneiuZG zj+A8RzeO-?InNNV`c-f?(i+Ba+siBY!k>M035qg%!wk8iD(dKKV6~k~WDi7hy$5lc zErb{k7RqKSEQ)V*)j;=ArW%GnyJv|BxKJxXh+5WsLG2oJ?c5WXhk0Ka!Mk(LmI3B3 zc8mg7o_57W8F*gnHM-WgbR^6YFrt3LM#6Zln$AKcmrADorOQ6=c-O|IXn~`Dzj}D7IvroeB@h zH2#aoE}YJj;whOUc*|wlWR}7({gxI#!{>`GR!cP7vGIdn_%Y5SY@>7yeY=i1HaI$) z`|o0WsJ+?RI~dYZRfo`T@Si!`hgS{z_j*>(R3&v0&LNmGf7UW-in`MJvSUbKOoiSv?R>Zl?N&rnd5X^&f&Fn#cf1J1LAU3 za-6q;eg#oW&>~tklKNO>#y*Gw$(Rz(mKRZ;uTO~G&g=0rpT2qjU?H*w(-mCX z?E*OgP-Ym+)76+ko_`Bn4ATnBo4up~UDevkgLdx|6-@z;+7HhQ(m++1hkJp%Oz$;4 z%n`D2!!;<%80gT(e^UL=UQsV{_u=PJ$z6y8XmW3zftneg>ALQ=>fg1Ki8dFsEe{(o zro?N8ChZzf+LA)m)LCl_SPw$wOEFb?JIHDk!~|TruAJBkK3PF$Ql00>up#(Nspfjj zGyI7P2ki`#F-g;mb3tO@jEst(ete+$p$xK;LsFl!dBXQW#%cu;M}R9?iwc&Aj;7nkJutyeOb%COqn5iXZUMTw_2L+%(M1Zn!E(d6~x05lb#ah4q0vG zp=3|X3spOX9g99NAP!;=!1{jLqf5p#pbERpLG#)A!hWg@88p74D{X$KnG0P&ie2r| zFB_PUMwoOFfjaLI^fC%9`6a=70&!;>FG-c%5k@IYamfw=i`I_Ry|wS8{q-UH!^2>e zH-voG+o@=x&_=A9xFM8Us=t_H*5Z@)VdE%u9j^cKLJ*f5qO%ncudU91hZ=gBQ7`5O zP)7elq#(nORR6l5^P`>~?gUrUsU^E z=C$#XT<)}ETwKVd7HIIU)WNVxFx3pV@u8N#PTC_#zD$5`33}0M1 z%C2@$D>Gr0i@F1>v;!jN4*cP|{mZ9#PKS|_bA>NC7ST0q7b*8ms*SZIE1)dYlb*>Q0wkTH?btC-r1WjC}%`S z*xg{Y%o7FgpJHM2y*&ye>pBDGzSNb-uGfs*vraC!k&=k5t&ZaD;EC4kDqhDVMT61N zv#d~Fzf3PGN6}-MAY|I+Rdnf1#^Uww8b#RMa5W7rXI9xsE{wQuzi8-{X5DOL?o&_q z*cs4J+4-NOsup*TLomYT+&i1riu~p^*j37gcph2K_54>-fE{)yJN%GnTrJHg2shd2 zdFy=KN{!u*ZEYf0n(THcEk8wk=5}HJ` zr>8au&NT82mxNxel64+bhqzR(h)_cZR5)n%V1v>^1jj_9BB|ak9;uCh@%Sam0;&7i zHvl%JBfduASXa9I-h#NKddxNz#UB>iUtB!eS~W3Esh|3n)+c_ zjx>=jIXnuMz9%^M%b@MgUv5vu@X>iJt+FxJ+N@@-t+jFfMh^^lJ2{F3YOzxrO)zNROCRK4)D1jRJYQUqzn7Cn? z5#zHFJ9uTWJw=F=W2--Ytm!~)ja37ssFx)EEl_Gr)n$JDu-V@p(EPsMRbnZg@esrb{B&n|3c|4 z-0o?|wytnb{^Gy9p332cGg+$`zvCJaiil}pye7d^O0?#N!|#fQ*1Fy{xsxELr>9=l zG2jUzu=I&CW8f)=2n1PX#ER!_eJSWV_`Q zb~CV+EqUJ6!Ly@y;xm}~Pi1Kf?_rk-Lp{etm>^P7L9~#sVs6s|SLwU?&xz%i>_L!F zMTz-*DV*~mID4nivM9Q*VD5iT9~}Z60W&JO-D$-C!a&vJw(>#LO-jn3k+UWI8HPWc7b;eRH2L%hcI~DJ!#wP zG+P-AWX~+2Ft%$LSJpWIL`Q!qKc7;iyCN|E^(;)iMiCK){w#=Tv8OIQucR-FjvDD_ z)ip%%$HhxAOVC5$dKlz2M1Gi3{M&>5m)G2W?O+ks)g~o%+QlW)vr>YP;vzogNb~Ua z*)CH>_R5NhlLM^aR3qj>)Cx46h=)m=4yQNhA09Fu560H5#Y{VQRaDZY*Ds1ARQlv; zn#|ECJ&k$l1cx_k+z2os|XY~;#f=`Oa|5Kv|df1ib zuP8(YRw(E(&N+(TGLFi1Ebm%}X1qF%3%Q-@Key69D)fyjp3qciU91>cS1-H?t}sb= zbpI0^{J9V9ovE04l!V+2C;sK3&pHoKZ2wn|yiiK2LO`4f>(Xi{iy*O3;Mo*&R?t`q z_Njow8Pq28%EQ8Iju2gM@TZ=A)6MK;CaQZvfY_9omg_%Mkgl2Z%A=qy6~1DGUX)?H zMN59=#`#ls%}on69VcKfxs~!M)coii9CO{Z8k7n?9~68N=1ykLHdzV@CA;51Y^)=^ z6uV<(A^1UaCYDeJr0CeQ+<0g}#FZ6<_wCe@C$OV`*7D|1xbCj1-1ZklalOvgGnI_D z_r+z6!%Hk%JI*JO4vxZv2Mj0_CP0p`X)RtJG~xm$_NgB+6@$|Os9`qojpM*C zZ_p7FeNwPDHC0H$lm;Dm!=!R&Q=Y}%>_qLij4Z$EK`Ew^)au(8miWir_cn<$?uDee z`56gfj|NG<@{xz3GJ&52$7^{W>Zl=rk+sisc=y%a^#-hybRB>j}Cl3NwUn-ni zSpu2RZT3Gd-ZV)?SssI%Cnd$vjb3mwY0xP@)|)w@S^TXe3Nx@#oOCC+9!j@mfrrZ1 zGD7vBTZoboTc3$@19)5rujWT~g0>E^xP)bs$daGLNsoa~tWwS_Inyc|!iF+2?n0n* zx&)&KyTZNa6^Hhn9GNRV-sE7X+o?(3mS{3qX?5oBVlp0l9nSlb zi$(tdZHBSFcV=6#vho0!baD3xE4c9y8EOog@?exlo`3=?^rHDBnvr;qM zeIl38to<yC~ zrhz7bXu`pUgt2d)gtC}$s{H60^tk?GYzT@MkB8aQu~PKLSor-?yyP{JrXs12w3nAS z_4I-aet#Fi336!F1P(#upQ%&GB#h9fHaW>6dV?JKE^tUj1NM|~5@OeDCP=GW ze#);9Ket2d`A&@3(!zx1AF)Fy%?LgPh!$$hag|P2D#C{C<()fX;T?uxZP$S*@Z#gy zr{HX{!0=$`8kbarfVf2Q7I?Q($K6UImpGYbp*uz;FXaVORu+pfR-Las_)reT%2*fzc z-Y95-HIT;4U{@fS2`2_bXRQr#$^MqBoX(eLWAHv9hsHhUSiMJ#>~yEbC-rvISIw%ekexZPsNO0R3#f``dbXsD<>iG`c~`XnSx&V$eRz;yV-&<w&ao=+W8UN;+J8iu%JWzs4x{YWGNI!7#4{1jS%cFcxc4=TN#fB`xNvg zs$;blTDZ5qh|5^E5D7W-c7mNOrck$#_>%4AJ*4xZ!#s)#KEzqvWql4l^jcR{lXuR&Oo*6t5pfw6rcZhBgOMew#TFgrc<6a zx0*Ba1B9j|m6`nlfrlpwj z{K(QBQ4hl<#WO*@twQ2S^hX*ND|QmsY7l0TW=*{QZYJ2WEm0j4>EXR})m7TmJC@F} zzr=}A{C&S!%qt2s)mN~l3jDW1=q-28Fm-`UtkCIT%ikxz@abynay(%LjxDJlP{r%w zgqIRpY*|^4tGnkY(1y5|kUDYhx}-KFnOx_nx@U-R{$mv<)N{RCiV0)q;T0e!%ONTs zZQ9mjeO0pzej+b?Bk@U;JHA{vQ`5I0dRnCW+7C7#Cwht;+V82ih7Doj*z6F(P9D0O zl`n}-%5Yo_su{RxnIQSS99Pb97E+~y@%mxo5$*fL5ee9|AW3Qd`)LfdgtEO@mZ!H~ z0%;%n1}o%Th|wu?o9TAr#=E;fk6301U=x0XJrAyHF+MbluLsJ9E1Oj6ctyL@OPp&L zjNI14$ZQ?~rxJ~3Vh2ht&UC+C?!RdX0+kT{<#ub6!8iCFa*D4|AoWa#D>zdIXGG(d7{DxyinKzBE5KiL z>}F8Jx)=WN2n@}C09VcOF6Gmy?W9EY{BCSsO?er0AQZ&-hKRm@O8Oy?Fx(`&*GP~nf}LT*@+!vxn*n@ zJx^iSQ@l~xS|s)*UW$CT{SKtQP6VG60PYMv_hr52a@E5by0G9?tmw^SFP$l0U*-$r zX7_KP>|jC>R_lGvlpkbxszV^2fOWBFS8}V!54c@a``~ixp|vw^yqGI2Yq>JlK0Y%@ z;m%q1$}gC-x%``14W*&>x-hUJhWv-~OtDorJVhjq+RCn!1gt5lA%oft-W>~fDkKvk0b&K$nf8b)?CtmJux^!thCiGU9cZ%BYT(lo)d{ktFS!HVvn55sSVGZ2 z!v0qpJqDB(O#&n?)Dgp{YN@H+3{OIA2NhSo&c>;9BUI~Iu~5}>G%$>rIk$F({}~%X zN+~(P@6clk@sCw8S_l-=m(?R7EU)&oxM7{0VXDRJdKgZH^BNZopsLH87)McMiYPi& zYlJmqj&#pw#OY#;>8%o82*I<&Ku!vcr&H2}DKD#dex(KP>CiR1`8(E60G7TZh!U6nBOyVYM9rWDo0&Q;XXIgf zSJ`5mPsAGkOk=XY92G-h*}SIe42=3Y(0nuZFj`wsZy6vhTeEaLbhNJ|PMjg8s}6IL z=E_P<&y`%ll}k4e3qCss!sv?^3TZ8e9Ah7Qp@i!7m|~9!7`_+$WHiru6{GcwMgsZ8m(;DQ%^|x6S=>`?>j*x zX7vLqd3wYEM}pUSfufQ~8NP8pvXjG_OVw2fjLzY;s^NjlAVS%N7?MUCf}ug)%>vg6 zmOo85-GgC;EiN__Y9Bj~^|GZ? z0@9RdLJ33wjoMFq_gqhUZ*5c-l(;fjgtec$A>RKL|E5RO$w$>FDVngfu(qbnvOfv2 zJ5#n>A%MXm3f4PD*WjN}Qo^FmuXG`odClNFOT(;vQ9LW!`|1PXWxN#~FhL0$I@m2( z#+F7c47{))W~U9p*3(7>^9xV=y72A4=t}Dah|h0s-UCfR6tRPbaf8Ok#MLDJZC>?c zBi-h-Q1rKxP+?@`br=K=5tyL1tg@HE_3H*i|5CRZH#ajwu7)FwjvW2&?%XJ@gO6An zYY6MnOkrg6#-sOBWrx8uA0eo{3qC-dWD*RDAolqv$oPlOn7~pY2R5PqejwPZngR&g^y#+xkHOW|kLRR8B%0AT9 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 b9QX~m!E#Qo0%5QNW* literal 0 HcmV?d00001 diff --git a/sim_scenes/tri_bodies/tri_bodies_05.py b/sim_scenes/tri_bodies/tri_bodies_05.py new file mode 100644 index 0000000..c8ebd4d --- /dev/null +++ b/sim_scenes/tri_bodies/tri_bodies_05.py @@ -0,0 +1,65 @@ +# -*- coding:utf-8 -*- +# title :三体场景模拟02 +# description :三体场景模拟(3个太阳、1个地球) +# author :Python超人 +# date :2023-02-11 +# link :https://gitcode.net/pythoncr/ +# python_version :3.8 +# ============================================================================== +from bodies import Sun, Earth +from common.consts import SECONDS_PER_DAY, SECONDS_PER_WEEK, SECONDS_PER_YEAR, AU +from sim_scenes.func import mayavi_run, mpl_run, ursina_run + +if __name__ == '__main__': + """ + 注释: 3个太阳(ChatGPT生成的效果) + 可以修改影响效果的参数为: + 1、三个方向的初始位置 init_position[x, y, z] + 2、三个方向的初始速度 init_velocity[x, y, z] + 3、天体质量 mass + """ + # 代码案例如下: + SIZE_SCALE = 5e1 # 生成的太阳放大 50 倍 + RUN_DIAMETER = 1.392e6 # 真实太阳的直径 + # 恒星A:质量 = 1.0, 速度 = (2.0, 3.0, 4.0), 坐标 = (5.0, 6.0, 7.0) + # 恒星B:质量 = 1.5, 速度 = (-1.0, -2.0, -3.0), 坐标 = (8.0, 9.0, 10.0) + # 恒星C:质量 = 2.0, 速度 = (1.5, 2.5, 3.5), 坐标 = (11.0, 12.0, 13.0) + bodies = [ + Sun(name="太阳1", mass=1e30, init_position=[500 * RUN_DIAMETER, 600 * RUN_DIAMETER, 700 * RUN_DIAMETER], + init_velocity=[2, 3, 4], + size_scale=SIZE_SCALE, texture="sun1.jpg"), + Sun(name="太阳2", mass=1.5e30, init_position=[800 * RUN_DIAMETER, 900 * RUN_DIAMETER, 1000 * RUN_DIAMETER], + init_velocity=[-1, -2, -3], + size_scale=SIZE_SCALE, texture="sun2.jpg"), + Sun(name="太阳3", mass=2e30, init_position=[1100 * RUN_DIAMETER, 1200 * RUN_DIAMETER, 1300 * RUN_DIAMETER], + init_velocity=[1.5, 2.5, 3.5], + size_scale=SIZE_SCALE, texture="sun2.jpg"), + ] + + # 按照以上代码案例格式生成代码,要求 init_position 、init_velocity、mass 生成后,要保证在万有引力的作用下,能正常运行,不会碰撞 + """ +太阳1: + 初始位置:(100000, 200000, 300000) km + 初始速度:(-1.0, -2.0, 3.0) km/s + 质量:2.5 x 10^30 kg + +太阳2: + 初始位置:(-150000, 250000, 350000) km + 初始速度:(2.0, -3.0, -1.0) km/s + 质量:2.0 x 10^30 kg + +太阳3: + 初始位置:(200000, -300000, 400000) km + 初始速度:(-3.0, 1.0, -2.0) km/s + 质量:2.8 x 10^30 kg + """ + # 使用 mayavi 查看的运行效果 + # mayavi_run(bodies, SECONDS_PER_WEEK, view_azimuth=0) + + # 使用 matplotlib 查看运行效果 + # mpl_run(bodies, SECONDS_PER_WEEK) + + # 使用 ursina 查看的运行效果 + # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 + # position = 左-右+、上+下-、前+后- + ursina_run(bodies, SECONDS_PER_YEAR, position=(3 * AU, 0, -30 * AU), show_trail=True) diff --git a/sim_scenes/tri_bodies/two_way_foil.py b/sim_scenes/tri_bodies/two_way_foil.py index 4d7be41..4b357b7 100644 --- a/sim_scenes/tri_bodies/two_way_foil.py +++ b/sim_scenes/tri_bodies/two_way_foil.py @@ -82,7 +82,7 @@ class TwoWayFoilSim: Venus(size_scale=4e3, distance_scale=1.3), # 金星放大 4000 倍,距离放大 1.3 倍 Earth(size_scale=4e3, distance_scale=1.3), # 地球放大 4000 倍,距离放大 1.3 倍 Mars(size_scale=4e3, distance_scale=1.2), # 火星放大 4000 倍,距离放大 1.2 倍 - Asteroids(size_scale=1e2, parent=self.sun), # 小行星模拟(仅 ursina 模拟器支持) + # Asteroids(size_scale=1e2, parent=self.sun), # 小行星模拟(仅 ursina 模拟器支持) Jupiter(size_scale=0.68e3, distance_scale=0.72), # 木星放大 680 倍,距离缩小到真实距离的 0.72 Saturn(size_scale=0.68e3, distance_scale=0.52), # 土星放大 680 倍,距离缩小到真实距离的 0.52 Uranus(size_scale=0.8e3, distance_scale=0.36), # 天王星放大 800 倍,距离缩小到真实距离的 0.36 @@ -100,12 +100,14 @@ class TwoWayFoilSim: body.init_velocity = pos_vels['vel'] def build_two_way_foil(self): - self.two_way_foil = QuadObj(texture='wave.jpg', size_scale=4e7, - init_velocity=[0, 0, 100], + self.two_way_foil = QuadObj(texture='two_way_foil.png', + # size_scale=4e7, + size_scale=1e7, + init_velocity=[0, 0, 150], init_position=[0, 0, -10 * AU]) \ .set_light_disable(True).set_ignore_gravity(True) - self.two_way_foil_circle = CircleObj(texture=self.two_way_foil.texture, + self.two_way_foil_circle = CircleObj(texture="two_way_foil_circle.png", size_scale=self.two_way_foil.size_scale * 2, ) \ .set_light_disable(True).set_ignore_gravity(True) @@ -157,7 +159,7 @@ class TwoWayFoilSim: self.two_way_foil_circle.planet.rotation_x = 90 self.two_way_foil_circle.planet.enabled = False - self.two_way_foil.planet.alpha = 0.6 + # self.two_way_foil.planet.alpha = 0.6 for b in self.two_dim_bodies: b.planet.rotation_x = 90 @@ -173,11 +175,12 @@ class TwoWayFoilSim: self.sun.two_dim.planet.x += 100000 # two_way_foil.explode(sun) self.two_way_foil.planet.enabled = False - self.two_way_foil_circle.planet.alpha = 0.6 + self.two_way_foil_circle.planet.alpha = 0.9 self.two_way_foil_circle.planet.enabled = True self.current_stage = self.stage_02 def blink(self, body): + return if not hasattr(body, "blink_d"): body.blink_d = 1 body.blink_v = 1 @@ -198,7 +201,7 @@ class TwoWayFoilSim: @return: """ - self.sun.two_dim.planet.init_scale += 0.05 + # self.sun.two_dim.planet.init_scale += 0.05 self.two_way_foil_circle.planet.init_scale += 0.8 self.blink(self.sun.two_dim) for b in self.three_dim_bodies: @@ -206,16 +209,18 @@ class TwoWayFoilSim: b.planet.enabled = False b.two_dim.planet.enabled = True if b.two_dim.planet.enabled: - b.two_dim.planet.init_scale += 0.05 + # b.two_dim.planet.init_scale += 0.05 self.blink(b.two_dim) self.two_way_foil_circle.planet.rotation_z += 0.2 def on_timer_changed(self, time_data): - self.two_way_foil.planet.rotation_x += 1 - self.two_way_foil.planet.rotation_y += 10 + self.two_way_foil.planet.rotation_x += 0.1 + self.two_way_foil.planet.rotation_y += 1 # self.two_way_foil.planet.rotation_z += 10 + camera_look_at(self.two_way_foil) self.current_stage() for b in self.two_dim_bodies: + b.planet.rotation_y -= 0.5 b.init_position = b.three_dim.position @@ -234,9 +239,9 @@ if __name__ == '__main__': # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- ursina_run(sim.bodies, - SECONDS_PER_MONTH / 2, + SECONDS_PER_WEEK, # position=(0, 2 * AU, -11 * AU), - position=(0, 1 * AU, -11 * AU), + position=(0, 0.1 * AU, -5 * AU), cosmic_bg='', show_camera_info=False, show_control_info=False, -- GitLab