From a0d76a7080e263e2244abd67eb8ddf6667194b25 Mon Sep 17 00:00:00 2001 From: Jeremy Reizenstein Date: Mon, 13 Sep 2021 07:07:46 -0700 Subject: [PATCH] join_scene fix for TexturesUV Summary: Fix issue #826. This is a correction to the joining of TexturesUV into a single scene. Reviewed By: nikhilaravi Differential Revision: D30767092 fbshipit-source-id: 03ba6a1d2f22e569d1b3641cd13ddbb8dcb87ec7 --- pytorch3d/renderer/mesh/textures.py | 50 +++++++++++++++++++++------- pytorch3d/vis/texture_vis.py | 3 +- tests/data/test_joinuvs0_final.png | Bin 11814 -> 11962 bytes tests/data/test_joinuvs1_final.png | Bin 11815 -> 11827 bytes tests/data/test_joinuvs2_final.png | Bin 11661 -> 11825 bytes tests/test_render_meshes.py | 37 ++++++++++++++++++-- 6 files changed, 74 insertions(+), 16 deletions(-) diff --git a/pytorch3d/renderer/mesh/textures.py b/pytorch3d/renderer/mesh/textures.py index 7e73bfa5..833f1a48 100644 --- a/pytorch3d/renderer/mesh/textures.py +++ b/pytorch3d/renderer/mesh/textures.py @@ -1157,22 +1157,46 @@ class TexturesUV(TexturesBase): new_uvs = torch.Tensor(new_uvs) # If align_corners is True, then an index of x (where x is in - # the range 0 .. map_.shape[]-1) in one of the input maps - # was hit by a u of x/(map_.shape[]-1). - # That x is located at the index loc[] + x in the single_map, and - # to hit that we need u to equal (loc[] + x) / (total_size[]-1) + # the range 0 .. map_.shape[1]-1) in one of the input maps + # was hit by a u of x/(map_.shape[1]-1). + # That x is located at the index loc[1] + x in the single_map, and + # to hit that we need u to equal (loc[1] + x) / (total_size[1]-1) # so the old u should be mapped to - # { u*(map_.shape[]-1) + loc[] } / (total_size[]-1) + # { u*(map_.shape[1]-1) + loc[1] } / (total_size[1]-1) + + # Also, an index of y (where y is in + # the range 0 .. map_.shape[0]-1) in one of the input maps + # was hit by a v of 1 - y/(map_.shape[0]-1). + # That y is located at the index loc[0] + y in the single_map, and + # to hit that we need v to equal 1 - (loc[0] + y) / (total_size[0]-1) + # so the old v should be mapped to + # 1 - { (1-v)*(map_.shape[0]-1) + loc[0] } / (total_size[0]-1) + # = + # { v*(map_.shape[0]-1) + total_size[0] - map.shape[0] - loc[0] } + # / (total_size[0]-1) # If align_corners is False, then an index of x (where x is in - # the range 1 .. map_.shape[]-2) in one of the input maps - # was hit by a u of (x+0.5)/(map_.shape[]). - # That x is located at the index loc[] + 1 + x in the single_map, + # the range 1 .. map_.shape[1]-2) in one of the input maps + # was hit by a u of (x+0.5)/(map_.shape[1]). + # That x is located at the index loc[1] + 1 + x in the single_map, # (where the 1 is for the border) - # and to hit that we need u to equal (loc[] + 1 + x + 0.5) / (total_size[]) + # and to hit that we need u to equal (loc[1] + 1 + x + 0.5) / (total_size[1]) # so the old u should be mapped to - # { loc[] + 1 + u*map_.shape[]-0.5 + 0.5 } / (total_size[]) - # = { loc[] + 1 + u*map_.shape[] } / (total_size[]) + # { loc[1] + 1 + u*map_.shape[1]-0.5 + 0.5 } / (total_size[1]) + # = { loc[1] + 1 + u*map_.shape[1] } / (total_size[1]) + + # Also, an index of y (where y is in + # the range 1 .. map_.shape[0]-2) in one of the input maps + # was hit by a v of 1 - (y+0.5)/(map_.shape[0]). + # That y is located at the index loc[0] + 1 + y in the single_map, + # (where the 1 is for the border) + # and to hit that we need v to equal 1 - (loc[0] + 1 + y + 0.5) / (total_size[0]) + # so the old v should be mapped to + # 1 - { loc[0] + 1 + (1-v)*map_.shape[0]-0.5 + 0.5 } / (total_size[0]) + # = { total_size[0] - loc[0] -1 - (1-v)*map_.shape[0] } + # / (total_size[0]) + # = { total_size[0] - loc[0] - map.shape[0] - 1 + v*map_.shape[0] } + # / (total_size[0]) # We change the y's in new_uvs for the scaling of height, # and the x's for the scaling of width. @@ -1184,7 +1208,9 @@ class TexturesUV(TexturesBase): denom_y = merging_plan.total_size[1] - one_if_align scale_y = y_shape - one_if_align new_uvs[:, 1] *= scale_x / denom_x - new_uvs[:, 1] += (loc.x + one_if_not_align) / denom_x + new_uvs[:, 1] += ( + merging_plan.total_size[0] - x_shape - loc.x - one_if_not_align + ) / denom_x new_uvs[:, 0] *= scale_y / denom_y new_uvs[:, 0] += (loc.y + one_if_not_align) / denom_y diff --git a/pytorch3d/vis/texture_vis.py b/pytorch3d/vis/texture_vis.py index fb94133a..37f5abd0 100644 --- a/pytorch3d/vis/texture_vis.py +++ b/pytorch3d/vis/texture_vis.py @@ -36,7 +36,8 @@ def texturesuv_image_matplotlib( color: any matplotlib-understood color for the circles. subsample: if not None, number of points to plot. Otherwise all points are plotted. - origin: "upper" or "lower" like matplotlib.imshow + origin: "upper" or "lower" like matplotlib.imshow . + upper (the default) matches texturesuv_image_PIL. """ import matplotlib.pyplot as plt diff --git a/tests/data/test_joinuvs0_final.png b/tests/data/test_joinuvs0_final.png index 3394f7f568b820f4933bc46a4adf3d3a65bcd789..4fc3b6612ab08ecfe064a13478bccc24795f6600 100644 GIT binary patch literal 11962 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

imOMGER@eYFga;NIejGbVDE|y?| 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 F{{x8n8^8bn literal 11814 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 Sg*Tf22B;}%Dt=Y43jZITx_v$X diff --git a/tests/data/test_joinuvs1_final.png b/tests/data/test_joinuvs1_final.png index b624ef7599b57b45417891be19608e30fa31dc22..09ba1d7878df1067ec98db1b8a874a1c095fae9d 100644 GIT binary patch literal 11827 zcmb7qWmr^S^zNCVM!Ezf2auLdsTo2*K)ORZr4d2t5J~CoP#Wow7LX96q+>`yx|^9h zzyJMspZ|yZY0mS^+Izn%&N^$a^+sx_DH7mP;{pIc@KQ-$3jjdqM-Tu3qkpD|Vf+BV zefv^gM#m@nAm@GZQ$y1unCQ$%CCi(Ge}r|=JnVE6HR_Ivfm`CHK#Fh;1VtFW%=vTm!Qb)SD=Uu;Z- zNqJp)ow%>S(e_dj87J)#lZMr?k{wFmzFltbQmH*^T z10ZA-OA%ySIRPGz5jFxcYZdU|f;0b%P;K}FNFi2HJ<^PiLu`(xDRje9Vva{G&Q3Pz zdp?gnWH($~El$C2yus&I@coGHhr3(o1el5shoD-}r$**^zGlgal4|SHXl1jcGsLZD z6?E5nEuFP;#+i26q$T@BDyTL|Nb+v z5rDCg@#2Ij34@|hQukB&lmvw8U`&aIL?0p+@rRkGPL`N7EbI-f)Q>z=qtEXtFJdZu zBOr9m;jWJ$;ciUZ^Us_cdzPuB|G8@N65c11{eM$&kpO;(@Q--tQ;67!+-KUg$zS~! zL{rpM0D7Ut&kgY;j!z1?9v?;m)lW2kFK)iX8K-S88|U%`0nbUCQnDq9)rmK z^Ega2zSV7BVjQchqph;md8oMtWtd1`&Uh2P;-mbm3zY;9l!c#LDzoCv59f6b(H&@w zaRY!2pFp3&_bIO=L1ig$x?qhU` zDvs1yzYF!b)qSF&C61c&B4{LLIL)m{djK^jwpg^{^X-Lg=t-^AmYs| z@^{-vX0;5HO+oE18n%V1JZTf%$vuGqdFrT8s%}?m6*N$#+Mc*aTh|Y7LBwq+*(9@@ z5kMfx?xFatEYB%NGP}HcH=}5g&?-d+g*arNmOCitcnv4Aa3J)V&DHC6FI#9%InQq4RxXTW?kCB#~C$`xbD}?{y}TV-jcMFMbQ(nCEXX_!6;MRaT4x} zTc@@Z$0jQ`u&yTtr()6|BLY`TQmY6t)*VQVv-E|zrc=#o!!}G4#J9))&+{ygsD=CN z-gwg?^nrj?nUj!Qd6VEVChq&MSVy;|gy2O5Jab>aTav<^lkw!cD=qH)ul<((e2uPb z&D-plswvvk>`9a_g=v#-etokia3bOkI?y~%zpOF2rw!mqLg|=N?5g@o-dOogrkH&Q zzW?w!S`wFqb(nm(7XRrX{>{s;n26cPaS?PNVw?FDr@I`(Gu-dFK?eH;cX2IJW6iX- zZ_3GCwq!p7&4a}~$*XZF1)N~#e5@LRD1xZhz6Xm7;D$N#pBt-+S8ke@MZBra+jGP( zC6qpf2z(4ON#F?Xs`c&)#GC-{qy=^;lS|pkw*iIxPihRdCm2@FxF5L&enEo@DRB%^ zWk1evODFX+XqLZIXqLJAvco?;_!L&9>D5|1VzNQ&pSb9062Ia8<{I>xtSfR^2PXg| z7$<^4PLSmDcAnWM5FLAj(HG(p*fX&dKx+(2>kYPp8N?JNCXwsHr_O+z zizJvcY&uA?SlGj;Cpo4|+lw&l*tsjwXOc-;k9qr&d=?&Dakzs5T9Mk5&z`2hTf1*D zX~;65#|5a`ZR+cFPkHuZRpCOWmYHHB^~Aii-HNa~w01O-TN?r~%y90KkZuJ=ZQ>*0 z0;rHcPTt_doz@nNH?W`y`ClMNonp0%L3GY4)oY|>IMT@b0*|Al@WFvMv?RF2gF=0~pBoK@VogH%v=lMEb}3Dh7CyNK6HF_IGwTsfz%3UV&Osv$eYI>q|&S$=09Q<%&u)Ejvp6xw~q zeC0|UH8QN<8bX=Yl}U%zh|J}EM~u)aW$9KKc_I|8)pGZ<6JK8HbnKN&rODXxqKKqH>HjyXS(Fj zSxJo?voNG3lK{L&=94HY*L6?iL)W2t!(8eJx{AMt@VPKuBXo+LM z_%4VpUUV>Pli(D4vvi>{MNHeW3iG}6gZ^!otNzZL5O0-E_zJUYLi5~l*?=iEqFaz- z>y8+p(#r6)zWUJ(;lum^#dnwnUbmm>manRe9|q3uK=^>yXU&$+3Be`)``9<)AH|!x zGA^1&mT_w^_BH4X$~JbSc*yZ-qob6T0?p5Ec>kf=mJ6}?s9s;PxDQ*+Tg}_`7HP0i zvcN)8`|;+}TANpysx8d_CaJLuAaL& zgq_^bVuY2*BbqP*Wt%PJSaRz@1k#KKUmT1d;}@L$;y2T_g%}6(;n(0-`}A=&GIPai z+HctRh-m)2;RNr@Yy%S{=JAp!m<}hto7W zlZU_P@cgqJ&bj2aQ7;-v_dtN>md1S_veGgo$JdpkaSTs~n+fltB?HlUoNawWbd7gB z{R_W}fA}r!iVlPA!p-hqR_SAXxhOu+3t{<_3y+i0UZnV#b^{>N^A#K#J|*E!OeAaS#JMe4gnQjG_haQ5t~E8pb$P;J*=q{cBap$ruOUDUZmET zVgv92I@0$rYiCaZl~=O2#N?1T+|8A!@;lQv*2@)FGk(8Fgd6$fxvwBakOnwDk(G*Z zl(m9ls!Yu7q^4`~jFdZwCjxfs5YlkR%M?3D%kl%^1)g%)${Gj*WS^0k@#S&0#X7y9 z7vg`a5W!gXUKwLbLw@Ou;{DBD_``Irw>{`BvpcF@$QDA!2Zbx!d@~gqxBEcW;Cnk7 zIGzj%wy-f$S7&H@w&Ilv-oo%=OeALSbS{OaL4f$>)1}@f$jhBn1NM+khDHHy=wW z0pY*DKG} z_i|+7>#jvWN|`Kr+s6Gt*K5987y-_6W|uc16mVRNb#>Omu8e3b`1*B1E%s9dU^Kv3 zDq)&+%Zb5uxkRM6k4@yt1sc zPuwg&wP%?_9Z$+U>{fYTaR2pa->+KS(LvKIU! zB8V~{{{UA^aguNrib5PfK!oT6Q}xSul@F-Me~NUe4I6Q6v*PuXx6hcP665s(7_Mm*`8}9r}wIK5vEz;eRTV;Sv1U7%O-qkcl^7t)>gfScC3rDw;k92Ma!&B}{v^}HV%xcsDmiMQFtdY#~3ERU+~RZKeN#p?lXwmff(Q9L6jD zdo?8>XyCn6i(L|Q+>X{wvXb;&|>?G$H;7ziGC!eUJV+es7wNU>; zcjMV5eA7SBQjr z^zDvrDDFM!5hmN%(Xuw%w_d4GO}#*a7H&eP*96U^1-_jk`wrO>Ka~K8_VSzJ=Q38| zww)?Rut@AOx_nLkRr>X0ZdcTUg}RmCrl;9UFOn<#x`dZuqyz@0%HTzPF!7fAB2pO25oEJ#x&5zQDdDqX@zvo)pEahfuucxX zp*^x4;Z6ddyv1kz^EfVR6DF{A{ivX<4)qQ74SnL9&8o4DzQz{2_(m7%6QX?{%>iD~EuUBOYl^A!c>)h0wuYw7%UJ?L%86ZpfZJ>!^UJqz! zdZ6v?*g$IDz4KUy#&V2k`Kkz+61^=8|MimAAYuK`mB5$U_g4fSw9NlwEM2;XGf#jfza|UXpM>if2H6Li@FO5aGkfR^4y9XZtXpDW*-3wjov{ zW3bhkU`o>o8@O7DVC$qAh(HylCbZ5QFFFS<3ryUIM?wLOw-cJi&jFN==d;9_c*(ii-1Fy2_{gmy!4;Y-)Z;uBugl>2j& zOJx{3k)eQX;^_&;z-+O>p*J-mBJ}|mTFMxD9P{j)oa+*7pQK`Y1Vg||GyX-mV*d5b zuYDON2{g9VJP`2=H$Q7i_?0##s?nj99S|XKatOA6D(3*z@TzGH?vUxHxs=2nE1d?` z`5F3zrw?uj5?U9DPNrW=ae*T5xR>N~^gc<&Nv&SXeC-_jL&Ue6@dw8FNW20(pc!bF z2o|6wTi+@7yZ(XJSxJEt9Pvgvxh1d{p04B>eb3f`A*nruWxx>&W9H7!4v-YOfT60eQ&1bmjr586Vf#|Gr ziFnY_0r(Rm66kOw?z@>=ZT^C@hIcHDd;QUQ z&o>SCpRBVWY!Ma|aqDDlsJEDW-xY&ot#7q=zf}xRxTA_#f%oUzkBr%X&8lQ{6$dDNZzZfCY>5MnBG76Vz{{qs(zf};C|`01Kt0Q^tU8;5Rw zj=4?e>4n8-B#y*0Wk|^MUO%t2#b7-Z`}!8b3c*Mbw>so<*!2cvZn>>BG$vGs?ziLT zl8^`8ZyVbyD4tmLXu0Q4FS@9QX~o5oHcnK8>l;dr^bwu(q|qIADPpE)eJs;C71Wv! z?1SI}tK=E48y(m|Eh z)1sw73v~V?Q_u$FWuOagEZ+`R7LQYjsl)>y#cVnFy52Z54I4-=vQG+)H4vzUK5c<0U3 zU|V;@SC4qP)Wr!H{dIX433z&@C;U_IX=t}bmr&@mZ3qCrG}LnzY*|T^cZ2nqk`M57 zMM_P1bI(E;f13|Pct0@z^nXUL_w`7n{WrMVp1~#erZx2r zsR?Nh>G~CAkW45%tP_1T3w2wtM&yvIv0oh}7=d>FGgeKs`&B(VZw56wC!~^40_aa< zq9aa*f-kX>(0CQE&V2s6Sf81SaEZtRrj-Y*5gUp)_Nl9N^3slf8D6L)?UB(hO@5zS z?igzKK;N0WZnW3k^DGp`IX7`dEF$n9^={@bLGcr0{5+R-c>6GgVbD|b`!95|GXX(+Y|O&)l68hETnk{p%K)GM2XiZ}2pJts5IlzXFp@*|>cE zp_+Xk{nO3xyD^~up^^oRJ% z6JMdaLqrJYcFU2r*W$4P;$=ai0`aXd%?LPg(AyvCNx` zH15sm`y0`9O{SJre(CIqk})0-Y&>8S?OCEts&_|tnp6hHFab~^l<3KImkl;gbe^() zZ;r5gy)N!2;`NU@`1@yV)UWGn)Dw*l*O8%49a*0N%}WOFfK3)M^rx}aDw_%ZhtxED zrfL*lrsr_-acua!6N1BZIbZ9sdH}+WZ36EkgQ(Wl%Ny0X{|{LbJu;@5P1Aw5a%a(w z2}Ny`agv-Ce&Lr{(aT~!mGUS!_p%lh-SNb&~s+jHfaTsY+Rdj`D z!r}3v!+*Dr+)lZJ@zwoj=Jc;{l2fxhXu#>OkstW9fV>I8uTjT!cFNP;KZTAyK9S?) zqnRJQqOcGA$7USJM)VMZE0<)gf%Rgi|1G~(0Qx;l2-1SCMLaq};Ns*4j21b{k;CCW zBfh^Ma44@jR4Yda*%M6Y2e9Zz& zbDH&qW^<~tq#WLhZ_$R>0oX1FAP28Le4YKerSD~u+#6ccAT%+LT>+c zkK*Gdin)FqXDo0C2EW9vCChwoL(&QZBa|4^r3~Yn}udsrj7^q?epYN21*~gAl zkU}zRJ2+_?1;SURL)thQi-NB+)GQ$O*v2iWuS&Q<`6&-$Nm(*#zc7jd(cZKNplIe1`a+zl4A25Smdz)){kJ%dd{1SOuB6^gjxeYx@n5jZ-soW7KW+acaZ;Co?Se> z=1zF;^&|hcF*@&#yo~%9z>ts;ik(fK@!Gq*92MS&VGOIc|6?+12i@Km>_0xb3oktZ z(OTivuSg0DV9I<;wj~3d&&Yjy9JKy6@t%CU;m%bK4;p&E;w6{2$E&>RdIm;21iA4Q=@#i`(PY&&x!?6Exe#LO!Vd|I}ohrOSHqUaVeG)~$`^6;}NKVOP+7%rVk zdzCf^+H*~(TgC={aZ~wkn3BbvzrfR&-O;I3tedi?#O^@$N+OrqQSS@q_wngUUgz`#Idp0S&lmOAvePQl45H!7y&=rmk} zpm>F03zqqcL~B@jMPw#ouj}LT+QPI9oVdvsAtKlCUHnM;S*O2$)d11u?KGDD%5l*D z%p?9|z1Z#_;TAk`{a@%XJ0EL6p1tRj(s%>?@7zqBCK6=(NWIgyX zgo}|9u|D(9$4SCjsMPllSLIdHo&7aM_-OLV98BXaCKVM-y6de>cP|zZ*)yYM=Aati z1#c@Z&}K>Ny$4TM2ztZXxJemvKJ?IwZz%}xBXyd}zCDg<(g%2l!h0^RqYJIQoBjt? zHGbi$&~7MtPQ)kaiI|KT=*1+Wl+@wd&=3%<-{&5c8uG(;OGteA=@+khNVocqqYp89 zM=FonI|T2XtDE>hU7M#Jg8_t+)&ytvh1m6*Kl%oy(=z7WXwpv5_JLU@Zqoe#mxepX zme?})#*xj#4>S=c-aE;PHcUmMKhfaT%&eiQjbrAJgY?zbmy+eu&~BIis3^SBHOaq` z(G**fDYTE%rdpqp?2-q$a*8sf3?@`H!^D*$yF#Y>9M?q+rAGez6+f7IQqxmR?t&` zo?8YyOtOfYi@ZZs%QeDT6rY!bz@HD?!CF1p{Pz-AU^Wk$#PI>ykXI+(W@aBwW#};9 zeO|$9;94RUwGK2ve!yyfWOJ)YJQsU`!Qj`Y74Z4~*^S|;r~JU@d`&BxkJGw(df1{F zweoo8+wCV&ETZ{T9*p}q8Abdu!X>I**+tnj-L4!;qy!_0dCdBK!IRir6_u5z8N7Rt z|KYlPrg<7|7LC0kZvyn)jJ3hUfhoVcqBLA4chm&BecZFlS;2)SkKl3#(VhP0N;3k_ z@g`sRe(byD3Uxz~B+-zMh~Y&EuLf}$7}|KHsNZ)Gf+f&c*xIiY1!iD28;|YD?Td}z zN7u*QF{fVYCYdHB=4{l1qlupGm`vt2DJhSoQC?NSIsc8Mmx$TAA0?)Ivrpc*-@XW~ zM@Hzw92`7yLbA|}Akeq36>I+uf}N4)7Ah`5Gy-^cSg93DUAw5w(*030#>^#ij~rPZ zT>|y>h+-&G#gyQGM(1QKFqf>mIIh*YUloXEws4=lQI(`URTm9*Yfg~jD(;LLn)O45 z9>))${KJNkXCO*hL54OIcse@@@Kq$oWEEvs{Yjm!DbpQ1tt(w!vF2Qe<^vS|K|Gq{ zO&6>`gekHNa3N|xv0m>RrzK<045`~06;_29)N`Zv>`ALOQr?CoT!>B*jCY`DiZwAK ztmE^Bbb1Me_UbucO5OD+tcR#))T24VHHhGr8nK970^}q zm%fs>!b_q?zyoPUC)s)!x?De)QV!;Pp4)Xb!*J3!%hMPYJQS-V98(@SR+*DUB!G)% zP4usYs%Y*WVXKCvSJxqxuw#FiH$9xIbAeT>1r3>CDlVLlz=Zc1)!}z?c=^29VmFb) zh@bLb?=NsAuL!pPtkOSRsxk=~qILfq8uTRhSDYv8KSs!5z>?Ol+hw3De)D0%ihJyz z8LR}{a!jBSdEv^}`dj|hLGrt>#GVpl9wFEm?J;5f0IwnMlneEY;X|@3SdZ$U|BdHu z0=?m1d!;t)-Ii44VA-KD>DTD3(Z*P3Z01dgN?+Y__%6f^4&{>Xux zbo-Q){S*r1^ zHgWs&>|ray|ClDVy7~l8G`26GOrH{Dc5QfoynBHrjtEhRb->Hut5(T^z0d0DJn}LL+kJk)z+R8>;#DEZR?lRyEvwx zJnlgC>fHtJ?f*!0#%7JlW-%3OvXvkeU9d%lQAWKb&}EOLIvYsG(>-Obe|&s$$Bxr} zWxDWiM2x1x)wjg$GVLXC5Nwt$a6PN?vNPo6-C*pXd~FoDMPE9f#{ai z#OfoG`F-2gmm|aS>|%|c6E{C6Ug_g9%Av>Zth${me1bRx6%T(zBani{@Q|a;TG@qsUKR!z#R0G#-Lt@F#w)j@C!beFDLcO|qy7WN_spbQHpw?@(=qa{SxVl8Yl>1SdBT{HsT*J< z29rSH!y|+dbz`;K$qjc5#Q#xKC|8=^&bo7Qaf0WhQ`NtJnXom=lCtzwc}w znP|J&WjsLQgi>@vTmSu1@unN#tOzKLH{CUryKK6??#8Xrc6EFD9%I(JY6va7uitn< zgr5T@Nc`wOaz~3-EA=d^X;a!`mq}@ohB;;TDbB=M6&n_2Iq1Va)m1L_04$MygRqQ9FN5$`ZG86ysnGkIGah*FP7$n0sb!m00hMUOoO4~ z0D$nJwmQrtIRBvF#k;#&;oHzRE_cGsCX=PUkP@hXNn)kwYi;EuKoI69!DEmk}4|xV8YK=u?;w z&ZSepAG%UjfZRk)3RTG|R{~c)*8gMCTvcS0-@311XaC(Jq}=?;3dix!z}HNVOFqr5 z#Z>gP1>Z;pk4uMK--t~CStNe_XXA2g5M%YQS-V-IwnnI(&tf6}Lr?(&_0P4_7@G*< zw9n2nJnW(^fcTO0iv9^c8d>?hMt7glcG7}#-Pjo45k*i|FImZE7_3*D#(2FDY*$Vc#V-o&==<|u$DNre%A zjwR6pPbsO{TF#_w{!%}G`SHOl3k!i&yu^u(=Xp5F2wcbu0;xs6riZRw71%_4Za<{8 zB7C4q0hb&9Bf#Jm1&=+zSLw&OYe+>G}29*lj60@*T>ZcpFVvKo)@qJ zJb+hBJSTw_1{Ru$_~E8tphLt)#2u8+XA5d7Nv9h>CI*tFAey1HvyGwDkPVu!7C_)= zttj{xc|?Ed!a8=3noo`c1Wq6bCCcoPKz@yKa$vO}5mecBd*#Q=a-HakW3sEU?HC#${Wu zKJ?=yz_(nm|Xim zaQOqXob{pWO2Pj0`f1jAz7Xl1%N(zhdoYzOQ1RhUU$^#|CzsMA=uYhAot&*QpV!PU zY-TD9N({KNh6;FPA9*tcW!^G;{C=|D$M$ohgt+nX$_Ye#ddrGXR7+7yQ3UW;+$ z*Qk-Bag0{Jl>Cmkd8I+Q0dG+sUb<3BjQ6S+b+uDD0FL;nUW%7?{;d?%|dtm~a4iUd0Nq_{WDs$k|${-zXLOJGTif z8p{x7dx?55HWqpN`II{iGx3f@h>^g*nZfHD>k+1k8n_5!?p?J1G+^3B+nve$cO*hta!_OJpm4o@JCL zkhUG>JM5Li{MDeI#b(E_?mZGw^08Pg)vfnKWMxcG<`i(Al{36O+wDv&M>|5n7~VC2 z<$K{{9&t{arPdQ5T}x1cKR)Pw*nYDWq4fg_xW{-)j+gzm#7G*mXw=H8W5q-|v{CTM z^=d@5(%bc7trDH4nq0Lw@)wDUS`kSCy{PBhEgCI=Pd!jvcD9!v@A8O#01YC}9lOt= zWz)4KW>;x2(jTRUP#kONWw>32?m!xe|1I~-%LyDj;Wvg;qpinVcw5HUSk0R zalKe_Msf~~mjc0Q-ih9<%OuM}lEM|%%c`#qb%I6v--T^RS`o695jTpPM;OXHlRCveXLXDvsfMX- zffTSK89^ms&)%xpCfnyH%aqpa9TM_HUyj<=Mb zx7meu?VMt~Ug;?F04ALAdNG(sTFIPB`RkBmaBp&JN;8sNiDaLkKu&{x#(ej_k z^)aIV4VL?wP&F_LY^MtiFJUa_4ImoGD{Ce%Nk3fSMwVU0he!(i=~BW7M88L~Hj&)_ z{GJtCYkuSazM6lm#v02#4fr5kJ@@>e<1zk?gVQU#&xjSCO!>cQ6&Tg1IkYwDGXj%K zP#MJN6a*H(Em{p}HS3wf;~;Sj^yb=4(uBc3Je=sQgJ)hh+bv~4j_uHdBc4f9sL z){14^B|cmvCPO;L8O11S1g(S{Wy+-t+DxQ7*<#ha3P@Zf-y4;!n9X%xk$gZ1;|+J` zl-U1;BaBzAhE?RF*?W6<=8J8Lm+VB?Q$AYDZe3~B3^a`?+OC-juWa90g!L9h4a9q^ zdNW#mWmd2WjCIxF~n)0W88b2-91%s9;Gx>4;yU((7gJYrp_ z7z;U8oMbctXLK79ws;wN8C3HhL{5CdpHihEBts{*PHBRDGxb7WfR~b2^yms}0A_6w z&Lx>;on?JYqkmc-g!c`62ERkAfe0fYA6fDZ3GMqH-Q!Ux_-!8ZsDw$y#KYvT3G!B} znLhU2@5udxRSZIIcI(~Hu8bE=rAC)_39PGHhHOepXjh&o{5ww*VI5ephkTfA<1snO z3&NZ-?`Eq%o;kDkxhF}XCAcs}wN?5~V}IgPrWa}X16FzQaW2RK!P)!Q$pfe?f^0g$ zhx@iHEK@70qjD4y$H+OC4QyN>PEk_}!F4Zo z@RxERm(QA&32`mscQXrNdbzMuyYp4=N_@e7X?NX?G|6)n49(f7e0md|Y*`y)@+n>Z zyF0`O!j514q0y@1C(>B!oYNb$!{92nak?SgnxQ<0+!&&iboK&e%qIZ2z?yuEBkV4s z)VwJQ8CFZ!U#JcmvO5IvgTh+<)iRZf`KNN*_6_UHvfCGBPy6^iX+Kq&SmNLO$0lQP zwH)W(2h&27yb*ofHf*_}q!ZEY>GJG9sF%};SDN#yMveKqo>Q(>m)(WetlSDf%Ji&= zC+g*mP4&(CMJ+(5!;!gt`Dt!XS}9Y4g9|#gK4X%D>z29J ztChAI>EFFor1G{qATdYVfFjrH|2nb`9?M^)ta|-)^}UV7hEmc0Z@c&l==Og$jv?Hh zPy0zDQ-8ofv8rHB%9CJHoK5`jYcT^-3Dx*mE{Xm(r!_&TH+_n$Q)d7+h{~x{P1aPW zFX1!Cof^3EdM0eLgG(Y|mFf)vbB>MM$k>X?-?ZaSya`iWC#G^M0|{V$u9;Nf`_CT@ ze*HtN;R|OHVY?s=jws{l2}z()j``~}BT^Y6-}*=<;|qk8EojuX!!xLl;!CUe4)Us7 z!O_2*(d%@yE%hcwDRPPy4nY#?_le?PEU)E}x&=Jg{WHHOLm9F*fO#jwpG`Mj^?1C~ z@(?FlhLxK%ZUM~omdZC670)RhxW&>C#Dd|mu_X$8$#$AY@hq@g@35w&o#;cHaF_qu zKmqRlT}m)r)R&>Uzs;1*)n2$N=-3&fFan!^Qci~#&gK79eMapDQHyPp?r@xDzKgTA z({8QHC`PX@XqQuR+fgrLT8ZkA>L|P-1#ity`DZaxOuR4(_Wmwlq#TLK~mu~Je z?Q1rLhlF9V>hTGUMI;|Jh1xPE&uu*s#NX5{Kw=+1@W;F-Z~{3dXmJDj#`x5t1vN3f zg^{iV0X*IvWb%1;p%d~ZrNX96>IuiP56uIOwvxb-A&yB4L!+c*s-Q3$t_*;B0xizCZqn+jIvF@U`Dw<2ne;0IeJT&G! zpXWVCjS&Dr55`lE(k{8;-_IhGGiu^jxkPVM3?s+4X{`X3l=MFL198tdwX!)0%;AJv5WsV{sN`IRp)0={M`o+Z6OzDC-Y-1#+wP9hqRnWg@B*K8WtMxoTDyN$_B;0#h@e)Cs zSAFV)MipBFH+sN_$tE-|1(Xqw2E2boBGJnt-LlN5f_01vl7z^^?sw*0{xh7{FQS+L zh~T|PzEshv=pz0WdIIo!_DG@lyVU37RC#I{&3U5svN?OGE?yqNEEfB>w+Sl_J^WR^ zgO5%7+D0&d~(jy^Ctd2;LDvzb}&dh?AyI-rtmKpd-I1f{+Ja( z$yT3k5JX|tm(ddb;*+Fw1vAKv0Fba6`Cq+uw(+!W!G@L_f@7%YFEN?6$zfW4Y}e+SkfA55b!uY)ob4#7-v-;-$06eIhoKC%u9=RNMRKUDA{W9d7fQDQM~0GhJEYAHxwB1!&p>9yQ>#yavb^}MS~QY{oZt#E`95xgw= zG@Hfw<1x%iU|M#DuDJhXtp9|kq+}`bTE2`mItR0;{;mMuHg6-Mh7bfY5 zH!WE}Qo84v@RXv8&J)(^|WcOv-7I-B8K?1P^Pj^Q6yjb;TcVW zbvl{EV`@w2L_?aVQo2(`Sowu+h_mv+O8CDmz5lxq18h*WAqO)M z__7G@C9!<%;n3D}-y(yI2AF;ia8lbaASO0GUNgCJtL2>1l}@}6RHStXEe#Vml&?!7 z2O6?lKq>qmo045onUXDqqpMzu1NjUAClh9V*KBeE)64?A=W^I8W`@tWqppydzK5?T z!|0s}QSA25l&Jy|d&x|-c5JH1kt0u$L=f8xh1pxT$$*BNeR5#py8cD<($nn%bee@i zzD}$H>#am0oS@ z6--_khmP!NT$_P%LMXN2QCZY;KGIShNL{VE>#k%O$7rF1CD5S4Cp&mrYTH#G^$62^ zt#3tmXfE$ICVIP4^>T{yIvJPrWP&8BitiF_4y@s|GKUo-_2JS=Fd(@5xMCi|Hc~T* zy-pkc{z60c!>axs_DuX*o1RzAnQ=kw6CE$eN0ms-cO3%OPe}|_f#OxZLw^^67rQc+ z+CDiOuCI|@Bz)|ls%BJ702cFwU*S!2xq@dmWwmK%O5@Io&S4bz@B4>Nb>XjT`ISj7q--^gkz zW*{v8P$KI^)9|YHUQwtjp@c`iz1-;w?eOI?DgBYOuRb$<^Q@C*@_h{fK&ZYq2O3o6iQu_u# zX>R-SGRtGqsAnZtgKe71$xj?Ti6P!$T0d`+y~D^t4}7n`xIPI zm!dn5x%zDem36{xu=|f*=5)Qh_TlC=s_3eh>!3yc9-)toCjST`c6{RxTRJ0rF~AbB zcblz=H_9M}vmra=`=o+~*va@W!=tcOX2sfo)*8LBQJ z!R-G%AV}c9{X7~rW2{foq7r&mG<Jo#Gf@8dF)i?8g>$Uo}{mMPAd$H|WeqHxhmCYy!HWnM~cf|yuQuCO~F{B0I z)YA=x>As80sv+^P!4D+hG>k|7&KM&V<%8wZp9MEGHAHt0{qoCZCR0P$J9>WFJ9kZ< zE3-WQW)QxYQ$v2&s6tQEcrEp&P&;W@t%cc6k%v>pOy88V76hU07HmF-u_)tX#)b?+ zE4@_KZkKVSqVl(dlJojkR#QNBdEbwnX|jV3dA|B#B7$b_!#jdUVrIZ$hOYQ1JNE1w zltAr?+t_%-5}F}RFy6MMvtcX8%xbLi+#`^@^~VT=p?-Hw7?kYxrwc3qS8i2yv< zIoFb{0H^ai6(ka^{HnQs_a2vt_N1R^%j*>l!qw7yxGBK}!s`7nRj(84g0b-{5kn-# zLQIoZwF0Y#5RjlcYGf3}>BxSwb{EZ?X{e0&dR4xsrI@g+*?A6?^Gzlk0zGae=8J;C z!4;o&bisB{nO;u?-G9vE0@pn)YNA8jj=s`%gb%>Pt;ICXcjC%MytV(s=l`K|$kh**%IT4`PB|#v;OR|t00yz4?u4)`w0iUwQqN_18oE&K~1q%NN{za*>QijlBCD&W(V<4f1vPp~K<< zxTk`E7w6acdz}wWf!ZQ7>DTXhV$3VC$0uY!|2V=SUo(1Ck;t>Y`hT0*!z{b=I?~F6|rRteQuQqAZ9EK8BJ9*Zz$_r1nNS@I4K*X~1 zw8kAN5GVg~Vs`|6<;Pjy@1yR;%Ui0Yi@+u;}2A}As1ws^Iw^PjU9K07Tj$%R` zN0$ykaJpPjo{>Po?eL=|LmH1tu0d$+qBr-y2=W!WU3S_=7vmU1I~3F9j~ zL^x+8whUN|>-5>jGBb&}7>!Kc;w$2-2eGmqd0Uk+L^1 zxvccp-jnnsbrSO3cP(22(}F(gJ{^Kc`BA*n(Y_WOa$jk~7Z1ek>7;+nS!pG!o=5Q! zk!7uBI5vuv$V`};z09{r0`n=E0s#|@)K!ZyA`6wVIwPDuecLpF z{7xCcAF6yvZHAkTVBy(syt{ZLSmS7rEmoJ)ez+Q9so;a{8A=K_6m)A2>Wm^h*W!rG z3|<<_A>>yvZJbp$D0r+>BOGlI&RKX9k_}M1MdU_Zs8Rsmpk*hg-X@ZSMdgIpl2i+S ziTh&mt$;8C4;(q(2kIpWXaO7Bk@3@nTk(ppV))bGoN`z}m%#_M@S@-?PJF7&)407J z64wiI!A;Q>V+A8Af$2txMglpgua2u#Lru)Ov3LLz-wWRFl}5Wle0Xjn=p7$R3m@-W z;|pF2EhiQrC_|e1hct0Fr~$EKiFQ+Xr^B#iG*-wTeWD-5y^&SO74bKHJSwjyzV9mH zSWolrgBsy)0o)8~56_~~K_4u#`E$_JAL`Jkp5!9J9}BTjVi12EMa^Y~)j15unCxSw4+idttiTY zoUzRa&WJKiUbPz1l(U@-;09~rzQ!6J$Y9P{+v{74e!g$%Q4{$52lKY+%evnKzI((; zukFH;u6FgsNsTcze;WCDYCaw34TFK8>bUuBC+-&aCI`Q@_S};LN0mFM)#VG>-i;n$ zIbCzP+_gYT2utXMqXu9=K#tcU<(IbNSK+DpT)E*ohMJ7(wt*BM{QZEgzq>nwk;0`~ ze`|UZJ5Ag3z3KHX2H)iIz>(YlNOwqCFtRcy#X zSm;pFMAF0(%1!&X^5H5z6DZO`aP4Xe% zu)EV=#*_XIlKx?3HxmPo6z{cnFC>X_jsY_RGmHB ze0)1rc%JT&gO;^iepW>fU3Nd|6iH@Jn?=*>3~Zc_7L9!%9>1lV78iR>TZzQ4I4S%! zzBJSI9kIsVM(NP-^TnIuLxWdV#GUhjJbhH?&X$CUwuZ+PLSiW?BEwjkS{Yjp)l1H9 z-Bp~lS`>imiJ@0}&<3m0XTA_y_NE*MNG^}Z>@l&eXX~hH3f3%-oknc0 zo`O4aH8ctVVX?T<4C+P0-*c{|7IcVw4v7@D7%rI2?8ALPV; zBT~94>Zh{Pr7NLOoINgfP^F9Cn0P*&L2$9>EF$*MQ`!G|bf>Q$Q`<(;9;xqOG1BQ% zy^gKiEZ-htzkGpUQcW_h7ILL_9;Zr*>d$S~TsjzTSp{fjB3GNOzKs9f#-n{2kNUw=UGZ7kJhM0AgP%1D(GGJ}fgUjZCDdMmE z=vJ5_3J?&6QzMh-5iKajyS+LEWNddHGfC$B2T3s7NZEvzc@gp|ih!BL;pvgek4==Z zhL7ky_uI*dd#jwwsH){iCSe5SX~(ZbkFIwnz-Q6dseq3Ih|Tk+Q!JVOU!duCl9uSg z*oellBQuRjZ75`Cmso>XbqJNkjVfZha0!bjA^wqaduo4@Zl~u~yjsTaY%9cUg_jUk z17B_lTK%zEiA&#c+!FW!q`b^}yMnXPwpH-^Uz@5zOF#cv2=-s26I@5fvG43p3*W*U zgI3>;>D#TM98YPCSwXt&vbN`(tEj477)3G7>6J9n&rX}WM`*mF=1=sjq+y2FJgHw_ zgt2n|2G>-QBn&(M=u_x$Byi_ycfjCJms#f>ISM8xCbH=>D>%~;IXV38W;yAi^?{I2$ z3OMAnP%BZ35m>GX$_mzWxQF}8$F_Iz6!?4iYNhJqU#lD=B5%9 zR5aUI8lm*wx@ZqSpQoMDanrhN-hwN894g3YcrFR_O}r@(=J4EE9(&(`)$Ts~JIFi{ z0utEd6UlS!e|q>$$2!bBaHZqE_iI??ca-eTbE@!kquqSb_S2g&P0XKyqkn9d+{DQH zvCbc-{tp@q|F`(@v@9l+wVcSOn1iaA3)H7ql5n5jQgOenqHl#{*=^Y`z(eH9G-A5- z3vIzU8#+8qYuLae%1%fN-7}x0M9O)h8kC@=M_3utN7r@8uF0|kz7DRB~*_zs-TpoNAJZ#iH7WkT5nu*OtgHu zdsOZt;i05Q1MEAy;l>MJHYE-a=~JrP0+lO`CnPq=ZnK|dX(jx|*yfQ;FxoXJ~ zc;kn{G0|pGfn1CPfzFtoj(V%{tl_NTj0Eb_Gr1o%&7I??5-yo9WwR6Uk%7Lwe89Af zu&mC7O6Yf}Dp%HZ=a$JN^NTa{USH3cam&8qsd^{hj2Gd=b*2IqweTYCu%8$uc>f_Z zOC4d23j|eMYo%EUk)NJz7)kh2dRkciNu~xW;)xb{otT%*1z=edpeyrCW z0PC%JaQFN9Z~bx;GX@eHo!utV|03sKdn@9nsIz}vq^2VYKF^2(oL3{jHn*jF?DOPy#uZ0~=ertnQ#PgHYl=-I1eLi`$JDz0U| z3G0yX<`G$O)eSUMo1Y^0zN9G^RNwplA&88<7mfF6`4)hT#?19@UHFb1cKBwI*!Fl( zS-Rb0@szHebC;^Y(onW1xok zW8dn_#!$nsXz|vp=drB&-YUaQ=J3SFPF1j2bF|@rSV!Bmu^b1@O8V-C*01)8D28C? zkFDz;SPdvHH&84T0YvjcX}AsKDA2`)Y>~w@nN?GI!HP<6`+77lX!%IR(eEUegvNV_ z$%nUMRi?V7nz(a+;Wx$yU*Cm)EDepS+$RQ#%3!QM+NI}ze-H5{mM=sKc}c!x(r}f!~RP01DJu+z@Gqn=E$gU{@{QZLV}W=?_t0B z#+=*Drq@2A{%ISq>lqAMBmvF>!p@nDUOHgJ5) zIr*Ne6}?K0kB@b?$dB`Q#ef+~8A^rYchyX)W#pR`g{R`^ZKfgoWWQypA+Y{a}`6?hFkiF_}cs!ed^FBKOT5ncWy91=k7A#qwM!w?hJ6H zr7hiWJ<2=A`{lO?voL4g)VS%v6ESz~M=karl@vFM+I^$7WM2aXK*X?5mtS!V(k{bL zKQ(;KQM^T3GqIs93M$`L8WrbP3cQ7^nYx+0z;RMea6bik&1ZS(&Gs0gsOz@y@gGWoAk}faI$K02P_=CLhDuiHoqK;JhYo@J^Dw1;cM#* zY-)tgslwcf?W-YRGdB}?{`ljV%L4cx6`c~Dh;REu$BEN3KfW;iNN5zNJx0 z&q>STtA1AftUKJ%63U1FA!5?L-eapdIm%fIN^h2?IO&-Jf2*$@H3bCoi}gF%2#Oe-y_GJ55XjDPSL7WM-NKJ&dXxL z`6Wj5vqvKjpZpw|1mmFxbs{5$u<%3&UV4IjnLxIo2U{7RA59JQ|AH2NxHq(#2#6>Q zj7oog_$4oGhrf8A1z-DB8Hnz~_<-{j3Shcjp4*KO+Qpz>e*WZ?iFd$n69I+Q4#We(vB&b~!)TG_}U zI?{Bao=xW$RG1YXM8}EI@@a-aZa6GJ^ku6ZM!q<5Q~@&8#}x(D#kVUGhTwU--;fVS z`BF;Xm|(BOTCX_{_H!EJR`LFRwZn>MK<_X-{D0G+|9@QRYn&~>kHqy-H3?4u2WV^P Ksn@H)qyGoKe41wf diff --git a/tests/data/test_joinuvs2_final.png b/tests/data/test_joinuvs2_final.png index bce00ed073b877a86b3f705df97d8ca9ae605a1a..2c93a46101bc90b859d22f482d1e3c45ac1e3880 100644 GIT binary patch literal 11825 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 SLNp2vc=K9a{)enZ@c#iJEWlp? literal 11661 zcma)iWmKC@)NOEw;1mt+4#nLH#i0~;r^VfZL-68KiWY}LDOw~gP^4IkYp?i|6s@{X1ygQp=%PorIdNo5zH zvNQZ=I~Y7kz3NxFI;#2xEV#HAy8&TQy=)cQB88*Q%9#_|&ei#aCo8AEQ}-i%ohMCA zpX)#Oco+uAPe&Yf2Q-BB=uV#AuTDvI#u?(LIa>-RJYtI#*;QbbJ@NPi5OYYQigIrJ zfj*NeZVo7FRVPpsU2sKn{YJ|Vm^7{Ye;a+Hy`iHKZ!RKRET*7;Ma>!N-@5uvTA(B4 zPZ^&(i`=2rlt&D7+iZGortpCy;yLUl2nyRrHS63uDP*BiI&^jx@d3c z=JsXxEg7*~=n^YE|0e+Um{HB}HAjY!)X_)x*JEqhe$%R5xQQ_Y#2>#x9O&i7CvB(} ztt(@p&>3_ZHXI^i+S?Ew;v-@w2fx#e3qx0CdhPre41up`)R5O&FF*nyBPsWiMy5{52)h{hMI>ZhB71 zRtPmDp>%_@`KhGq=C8UgfbL0NXz>cz3g8m+=stK?MyA`E$1& z^(CWVZeEOU<#HS!%cRYWfFA@gMMm zHpVWS8E$TwHeJzPrF2?>n#Ckx)p;Y|cYYPGA#*aGoTU%Ida@B;n<^MvXt(vMmC6i= zU_pXReVV-wcPKyx{-~zQ;(W*x!KR4ES7@7?%i1qnV_rW(2*MB1taC%7Y(SZA(roMt z(i#~T)A>m?*6+nz)UMoTnnZWbX_UU`VCnnJI_RZ^LyP-c_-Df>$mg*bsc$KgDUx?D zyF_=LM<=(ZGK*Dnr9%C^RcIAH0XjzS8F`!!EuDr6_58)w2AD^2C_45Lth$Ako5B|5 z`W5nXm}QKSA(6GuW%D`h+Zn! zu8P5a@$}>sUo0M-*`7n`ypk>N0ZTBicGv?=>w4Jh$5H~VuGnXhAJWNWv0448k_3Ca}YFL8y9_B9}Vk-D_K&G$}J1t{^^MM1pdaCtQmL*oMyiQQr4D-SFurGQiZu6H~Ea=1iGoM=y;iQ{<=+1v-r~NaGM0I!^P~^ zEF1j-+h|mqAvXsUU-pgQ+38OjeK#7bbf-~Ey}lJ%G!tJoTAlCo_ef97KjS;(c&EAk zwe5_LN4|e3pXThhpa;>bbSmhcN9w@5Gt2DKJEutGYvAd*`^DF|qUgc>R8w%W4=-+*>w}^j$#~)?w zgYWZ1Und5-g6YhG8@|05$c_83ni4NoTMWVGlTERIqW2kz_s}z21q^u{<7LYzZ-oY=Kt{wW7v`wNB*pbfe^hk>`f** zHyO;!u#;=CXxv7}22~CtqVi=I@m++qduF9c;`+Wpm9*)N3SvK}^w!HvzYy%Kz!$-0 zyk)3`;4jBZD1R0Ij|A-TKzdBX!3!BOOvE;7syRv>Xy!adJRb0Y0F>DtxL@NJLBZIB zqA)3Rg^iMT0jdka(gKMR&D2+!mK$bxz=kC}u&&eCb~qm=sb)p@S|#yS%$;Ioft zIME6rZ}idK*sv5uF6X_G@17#~%duK0t#3_o1v3SQBx1R!e}Y<`D(ToZUY;D`R7b=6 z^;P?A@E@ws%+I;=xH*2Ep7t5>+VY}S*f%fxr4|&!fTqP|Q=o>erN3#~2y!Q6Zr9CY zEZpq~#$pbz;M9uq{V}2F_s^&~c#!}Hh`E9I+I9V89$`uZ8}Z_!hbc%OAX2YrPI4Q{QnpvrmDCySLw3F4UR)Y$qvFDrbd)x)G~B;;(LY zuIV@!nc6#e102&@7^wkBpH74z9SzF$tnldG>BjZ$%(Nlf+qeKn28FWz^5IS!K9kzh z-SwIgAOjlq#PbvC>$0(~?&OjNix)sD2IA8v4uV{O^q*xm__U;;$MP zH8T*T>U-teA8+&faxqs`%Qz{E3xfYfL_Vmh=i!?jICx(=l+l)a2qs^0F>E}&8i1Br z;A_8DLezKPKwTs|WJnTu+M@8)kCp-LX{Efz>-6zhTn-$UE0E~775Dy+$d_$exCU8x z-gelGvd1K6Yw8+NX+ZF$_BgdsPr=V&;~Ti+mDcO&oO`h=&kxr27eHR=ITdiw64P#X zN;<%b6nyO;gXQiww_iJLU|`mLucHCj+l{q~fsUkRO_`nBNE@zTc76Kvgs# zD6eI{{nFAPrOc4UU9o$F*Y~>1;9Ri`O-OqM)JPzZ<{VOTCorzc&$D;>IxP(QA zUMe6Et}t7|kiKzv9=~&vFSF07SHp9#!xGaUsYEJ8PQq;WZ;y$@G{C52{uh|5T5d%Y zEW%%(KC+1jLDB748aeb}Ew>5Sgwa{IRp>(Dc@?xEJoJ3x`&c>n47#gY_yJaJ;nEe| z2@@JVvjKiN5JAi#>n7z9*m6OHxp_~+!wP^5OkK!|s&;4Io`lVjJpOG_*z`lSlN>`# z1Hi?yEJyikshlVK3Zs(fVr1q0Mnyz6;!rZ&2JTMbBF-n<`Of`mOZkcMZ_il zu^zo*tNm#H?7mzy<}%@tx%9a!T2&IAO^k=(>n^03kUlm|5=b{PN1KefkWKj!uF~{P zXKQ65)B_!N&>0S+$N$RmoxlfJp#HG=c=%;N}sD$+Frm%_hWfFV*M4>K@Utr%>nz8~N~2EZ1Z(G+IA~N-_2J@yJ`py>L%& z_g)yJ8ObusITn*i^F^JzzfL;0ZIx89CO@VucG1f~S>Lf~rr-$>{s0LbZAg54Q%dfN z21tV4Nm*utN^cPFOYjxrAlO;EobxJ6jc89`H&4y8T6|`!2cJI@C~8e~^bQO{^h_P4 zsPoZ8m9@dDeb};Frn><8hL6LWEy%@+46Zqb%E_I4OxZzvbM8J*nv5* zD&3!^X-`fiJTqH2juN^Bg1Aor!1VMpn{v!5EXT zF%BW8-{exluwM+~`e<8{FRtwl;k7Q-1@jGx@clv1DRk0!pe1!8$iAvBpVudjK1!sE zAvNnaT*=DHagdmtuXR@j>7u{NrL-l~+ubyxH6*=o#LKgNa=t$BWaFMmeuo!uel+mb z5fu*&v%23kCkj3fj(cDAlkibPrR#5d?TD1*es%7E6e(W}5{Ax3L9Iu4J`z5UVQ1Ej zbT(C?kw!g%kle27p7CgQvYLro>8T7to9pa!r>f}$(Y-~iY~{y#Vz$;+OZ#!dL%=b& zHF@sHhvk#(ni65QFlAKm;}K9j>ycB2(c*&1N$f?RV;0lpTuXK-Aq!M4)iYRsL^;jA{X1Y zQHosw+FUdx<0J5y&QFj_Wfn?DclAZKODT8yAu5ZqOA{C$9NvDKm;1nQBV;(&21_>c zz(<#JQ?#dST`(iqsh+tN4n*OE7#$<}3WJyRaAv)Xp|6Sb;pu){_tU=Hpp!xlqET9w zrCzd@6dw)OC+AII`WvCZ;&Za7;9teU6GM;FhQ(1Bj7|~dq`=mZONkvU0*ydUlP%wZ%e(?>^kg%s@hdl zR;=tTF*A?nMR4)wvKca#KPBejcL`&0Fhk`gG&R<5a0VH_?bXs*(|RbrC~mZQIugAQ zA`E$v>eM2po(nZaf!>y!_jESids*GQwZdHK-COP}S<$>+&L9k<@2iNsd2PIJQG;b{ zNG0J09XB4-1hypev7Y?>)-uvcm)Z{)n(pNl2#?n+IPE#+lq1y{%kbeCM%@kG?uoE8;{D z^*=&i;(-Nj^MfAqkU=cdWRR*EVwDyf#n6;Z_o(VRgavwcd9o}2m*Z#J>CJ2toT=22 zwrnAyt5e}@4Lk&iovRT}X*wD3*$gP4Pcj7YZU})+?)F*|Tia5*0QR$9UC1)0k;(&o zOcx2op2WHmlhOgVrNJfq!?bCg`mLw%QuneA6C#}Rz$c%RY#8qH4!8&uWiR1I@DImx zk6xKbuAgeaDG8>`WpExjj^uT1@U-K1=Iq{DIbz3HXb}bM?+FSkHnkBjq}MCh&1v`Z z-pebZV_)Gn_NerUUH$XJOOnkJ7WZ?!w~|p3q^E_)fns97e9R#wP}Y}^K+Y3}8~woK zHMFUkoJPafGX!Ccuf+w)_*x8%rs)x165D9 z`Y8%y=dqZciJGl9g&#lBHrFVDdeX+ZL}Ji^iw{0MC;aY+SDt^G2}R=h%KUZa5ZC+II#K;sNvZ#-HjynbnQG~+lOgLc*l!LB(<7f(5+dp#~3|% z&0uXX=OwBH88(NMs!yE$TBn+O+`x<}*&>8SAOkKU^_a$J_}k4+0eA20G8{8gjWK~Q zBWmX#gVxWNxRInzYlB^#4GMi8ODa!f4`c78d@^@%Na;FMXC?Iqg?+FVLVE(1c#`j@ zh{L#I9jh=in?uqaffUk$H^&dg+l=3&8WCqls4(f4Z``Zu(%W9!S+yZ=j+W)J4Frto z>Qr6*4MFDz8QVoP=z~cEv90aH-FBRF($QfuCtG$I4vA7eQNP0qlgY~W7+u3&ib>Pw zd&_A>S6Dtto*%fdf)OT8JSn}-3H@=z-81=b9sIXS8YqBcZgSgx@GXY*W(#b6ZExoB)bn)HymBEx=?4PJP@n-=+I? zu7UHU)PS&4TNvruY)R_I0S~q~QQdU|0VnG9j~13j2XHBwV4&j%X00!X?rrpf8qYsn zc=IF<@xBv3wmYWS&V@O_NN*Uv)Jz^sHrsPeK#jL=Dtx&%F0GAGN*x zVc7^~n?kU{PaC>^EPpu=UEJRzeF9fd7Pa9=Er@fS@22bav_Sc$;QHv$e5q*Zk6Izg z5+J^V?>D^iBk=Y87esorOYeK zStf&pApI6nYa_%gTLSGoOYVql%YMR3epG4^t9ADzsxFn&$##)wq9qT8)RV+vG%}-H z1W~oL%^dsqui9Q<+%jC0ehW8qDjA>OR$C+r0$Ql_p4vFTnWPYn_xVp!yhvj$Z0+R# zM5ZtFddaW~0It*aeYL7`6&Z( zQbH!l&b=u9ZX#=%v=i}Wg>-=^V9{@AM`46dvQSG=%kd+VtTgvLp3}v!kezSJTBf4m z(-uZoB@_p-Kzp5fPeQ0oUNQKrLyu;RGW#xMZCU-IQed0}<@pqiDnP&UL9E7NFX0by z;@RpRW(BB4*C``-AuK^I-I^496*6ITEcbK%QKIQyZw>h%dr6QsCK&MJ>wnvPJOH38 zu1E6OBvG~2mNjO|gMIwSm;|!FA+)A+6>~esY1WRaQP8V##4P*FWU&>CaDf29C57|s zd*sfSgBnHBLs%*MyBjsOyuGRS z@E7490B_cWy511H=>k&Z1 zji<+Uui|beO55yfzDGVJV2^$ZT?vf*#Zh2m>nqT9<7Y{ej|-?}od)VX;5ct>6E$q9 z)8n$mjV)q5lhs^?%6G;>lj8#vy0hm*m%$ErVuhcb9oLax(Frb5d*ETkkLB|&?i~uW zsM#2!7Hk7{pdj#&5yyNX*<^wH<#0P#^4QK_J^Vz)=aN$=j10~s7=7{y&p8xT2Gx7& zUV~wRsrjhl2Pe;Z;~$RYwT9OO>hDxM5xb6$;mHl)p@z8hd;aTa*ZvNewYKPiw3;SM z)$!;0FL}*xg-~b9c{Nl^@v$M*0H31V^Ir2j8<}rbFtH|E;UNBYPr3aQhrsh=KM_*% zR#Q|STsZE=WVKi|!)SwUgh`#>K1@t;j!mzjdXm-DmzYTq^NNNsGQ7nVE>fN)8apE$ zO98|4q4rZ$OKdo_2+n^&cduH!Gu?%}DY3~bMq!&y+;@lulA;O-85ew^Afh57*Z8zP zp|a+ebR>T>WGC-nc#u&e;YBfJ%JOMIAhKTzAC`L0sTsK)kzvHzz2jr_O$1$a-rJZ^ zwOz4Cu{MleXwbjOHKat#K=y8MkP$md^1-6fRC45V53&|(?jv5c(AZa50)pQ?$W}*s zRzMlza%6Z1QE2vs&k~o7|Hq9z=>C)O2#M0R2LBH~hw_Ky;bgTf|CeyV?9bmMx{-I1 z=tFcH8h#@?)u|qsNj%ZDG+aTiAc0bRg_zMSzXHy0nQ_p3cKI7kyGEV{A(sP?ZEbuL zq6!(pa$o5-!tBDa%1$EP-(r>M)^CMdtjxZ{rF^9gsV6mYAd>wZF-RNJg$!t1YFyEO z?f0-O?ma0p(Bc3e0D6VJyw?c)2kM5(5@Kg;dt_jOZvu*#+)J?VE2o{WWtZ-C66Jl` zK(+8Vx7veP)(~yG&_JE={H}szJ;!g=qY8}1Xv+^|n2M-yU(?|5K~nb;Qnr0m3h1b6 zYzFIxlPT$X7WZx~*1!~KZ^PH_ZA@t{cRB4FQ6WmVW_@>-+eMq+Q^C-%H6`j4;O_Ja zV-<)4i*IV72=pJl9dZX3y&ZX3RJtN^nZczkgp~)S7{facac#9{PALrVDp?zt5O@&V z>EC}){&Z^ahv|)%^oq!i0HESUg#ncqZXjb`;C)iReavc?d7sf_5+Z+wtxyPOg!MTYkpU{qvX z(G-pGCfLkov^hu**{OZg7(QLxl#xD*$;l*vU)n>-qV#3#fARYo@^svWJ_F$mnqn(GTk5;pshfja=oURt?CBf1 z56B(sJ-$^W0I9E^o1Rx$WZMI#j+$tvikm`0Jg7bu<_3K~jRz6peKpC4@c@=X&i$@j z*+|RYJn&6aR?i`P{;d|~fG4`_X8II3)sw`-iZ^b9-ksZs)p_)4#qpu-!DcF0J^r#3 zDZbh2W>vX$!E&|~E2P}k9VW4B9+*JELa^pa4K zNyOCj;HMP@YZ*ofHG(qA>$HX;BP6RE1m9Wa#bEQYM!pf79Q{D0PmuPB1eIcb=~xeP z29O=0xg|3IJ?>pm2>d?-$!kQ+X84Xfi!g0x>iTB)5QCn1(vm5smUwK>%NQhd9xE+2 z+*eTKSX9pu{`u|TziG`Dx_8+I1R%ABI}WZFz8t%+SpYS!#C|9~zYrZLyE%#{VL%P| z%Ka0vWmX`*ty(KLCLGG=(&=*Ehe%E}D*Fwo-awjq2A^W_M@`itLsPpB)2rQs2hwu1 zS6Y837U#9~eL4$b;RAw)y=c*><`BZ`|HX3M%^l?)rl04l*Vag?f#)oEcx-K=I(=Xj z7o-)6Lrea9ssYj1SQZluv=P%;6&g9Pya{A{YC{rsyPj8yhvyVdLNGg#!?cNuzw9RY zbJxW#@-6E9PNssY*Ro~+7wOa5$_z{MR!WtX(eZ2x3rwoN0W>menr_Ov@8<#|0!4Hq z1?HQk(`L|@QjLC~yR}=vym0vlX5B^BEGsiqJ!IyOov(_MnePgNf3-QY#u>UVoo-ob z(ErtIOt|i3KPW$*^!^-n)I9K6PME?nz!lk|(Cf$WPeUSl6BIv_D)GOFORiLxqC$?> zwyg<9h68(Kdn9%9M>@Fse%NJk6u2c4BpqjyD?fo34$7IKb001`BQuvcs z1}8ZkfU(1UPX)(%DA@Gae z3yjWDUXrW8zl#q7$hR6d3J{mY^~a zUm<(`Tw7OId@^TaTLy&E!a%3J{%W=G0DwZ|}fO1gFvc%dq%=Gf5JY|=pNv-yD6H_wg0 zmi1fN&>_uIp7?<{N?WYk8Z-0s?@@K!{o#)1v{po3Bq+7Vb{x=G{@kFn?AUP1V9Fp+ zs?g(Oq|=D*dcbJ6j%WY*Ge1mRla{Zh029Tosh=X*vpxb<%N*u_)$Nyp7XB*EkoAEh zL++{tn{k8j^O4fEp6vduW;L7Y1uv{ywDAn`@;Wz9#NX}q9@-7;Q2vgOvr9Q8(ujt|^YTp1_bxjRa9dDZZAUt*4>^2b5z4!%Q&nvf*nRGR zAv6gKo3mGP6cf^jWL$)j@_lIOo%s0^ge}_qk5ProhyNh*aau#b@#i?t@FCaxT>IEJ zog9l?1x>Wx(CGJ0d3kqp3P+$8HPrLJ-V56J56(U6nFW&vW4VWDL9Pej7#O1Cow6Z5 zzG*R(HHvpqzJ6T->57o-T$Vnr6z-yRvuq0d@%zL6~F6| z?AHC_)|~JK`vWcYP!WF_){F!gku*H|cb{UP;FSdG#_pj;tP6E1xJ#RTMB!V9?Mp7X ziK}(Q$A9_6iU^)Tr3mXHg9@&>1(ogA@row z7!AC9NA6u<6r;U!%Gh@h*Ok?~8?L0E6fq$2=BZ*(Iv1{Xvq6D&{g&A)Z_Ex`w?e%` z_bxq@`5@lx*as}pc7!_OG9l=+46pwzH>D1{dTjDd>0tXd$Tp7ew^rFd%gxf}q&6fM z64Iz}7`Z^;gJ_#oU0~W*7IhP+r^JX%Q@F=LiBA*>%3k(|aPL zzsr?4t_Mt6SWaL^*9CC!?CxjfaY=g5zC?+&==q~2Lk{w(BP2Qy+^nzf#bThAqrcZ5 z88I4y&1n?{F+%vIYE|CC`Cw^ zJ)12lPqLgFbW!PHX{Lr3P7WLD+$NtM66KE18MF#vVvSA*^j*XW@-_2$JLk=ea5<%m zs6)(iXG4ewUXMJU3{p{lXuQxDe2OBd4~&RI?)=*CPyfj?YX3NeMBB^%P?XAzHnZ39 zk)F1aDa0*-Zw)g^lYd5zZquD8NNX{(|3TaF-(IXD(XTtb>{Ui8Y3-^QcWr%S=JI#W7I^6(;uF)BG~oxKtNYO5^9ey(`6N5z1Ao}VNseDgtm zY>wze$$_Xs=IN*}!z{%0#U0Q_QO|c71|VkMIq=atFl(<5J6(19?$0P}o9rfECh>TN=pNBh!L1qR~ci*TBy;^|lC**f#&b&|eFe;R6WPe`J z#&T)o;++_}DkmjQWgOQC?GiD;$dVsn%F@+)kl4@N{eGhyWyGr)i7i^*tNh*9`HK%f z?C&BkDCtQ?2G3jN=t*SCp6Yl~1!eU>TnsyZYD^z`|Bx^k!YSMA^*TQ|)fdVd9QwG^ zgxkOz6p^8T%;`Y9E?+HMb+TisiHKpR7xjclbLjdTRy&i84y_fZZM5lwwm+!4i$5Ni zO6D!}|Hf>AxcDA-=|*Blp*Hu;gaPx1FFyFgC`MUX$-m;Fb@=%YcUbYe>E>*SB9^Gq z5nk{5uRp?WKlNjbcc6A}07`jD!;uct($%IXU^YO*#05ekW*=q0>YIM7yUC4#LM6@# z(@W+~!2bjqG}hLJp(dZ8i|>XU`~(! zCD#4G)t!+lGwCf-r+ZWJBb+oE9k#m^K`$eItdvd_$`PCy{*XuoKOS6H5uPs8oYFQF z*zD#a7*sXICAVYYOP%Nz%6?fam^`7z-35+!sOfrKMR`ny@>rV!^JdaTTB