From 8fd8149eabdf0d54350103dedc0be8ed593893a4 Mon Sep 17 00:00:00 2001 From: "Andrew B." Date: Sun, 4 Feb 2024 14:53:52 +0300 Subject: [PATCH] Slight polishing in support of Orbbec Femto devices. Preparations to release new version. --- K4AdotNet-Femto-64.png | Bin 0 -> 4423 bytes K4AdotNet-Femto.ico | Bin 0 -> 151230 bytes ...otNet.Samples.Wpf.BackgroundRemover.csproj | 9 ++- .../K4AdotNet.Samples.Wpf.BodyTracker.csproj | 9 ++- .../K4AdotNet.Samples.Wpf.Viewer.csproj | 9 ++- K4AdotNet.sln | 2 + K4AdotNet/K4AdotNet.csproj | 8 +-- K4AdotNet/Sdk.cs | 13 +++++ Product.props | 8 ++- README.md | 20 +++++-- .../{win_x64 => win-x64}/OrbbecSDK.dll | Bin .../{win_x64 => win-x64}/depthengine_2_0.dll | Bin .../{win_x64 => win-x64}/k4a.dll | Bin .../{win_x64 => win-x64}/k4arecord.dll | Bin package/build-femto.cmd | 27 +++++++++ package/k4adotnet-femto.nuspec | 53 ++++++++++++++++++ package/k4adotnet-femto.targets | 9 +++ package/k4adotnet.nuspec | 6 +- 18 files changed, 156 insertions(+), 17 deletions(-) create mode 100644 K4AdotNet-Femto-64.png create mode 100644 K4AdotNet-Femto.ico rename externals/OrbbecSDK-K4A-Wrapper/{win_x64 => win-x64}/OrbbecSDK.dll (100%) rename externals/OrbbecSDK-K4A-Wrapper/{win_x64 => win-x64}/depthengine_2_0.dll (100%) rename externals/OrbbecSDK-K4A-Wrapper/{win_x64 => win-x64}/k4a.dll (100%) rename externals/OrbbecSDK-K4A-Wrapper/{win_x64 => win-x64}/k4arecord.dll (100%) create mode 100644 package/build-femto.cmd create mode 100644 package/k4adotnet-femto.nuspec create mode 100644 package/k4adotnet-femto.targets diff --git a/K4AdotNet-Femto-64.png b/K4AdotNet-Femto-64.png new file mode 100644 index 0000000000000000000000000000000000000000..1f019258659de931757ef08833062f19452a8599 GIT binary patch literal 4423 zcmV-N5xDM&P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TV&Mej|>m}U>%w8eG+Qw@aJEZAf0WroZcaEO65#ZJKBWH!6&Y!b$6gBMtO z2ZI9%0!-E{#RPQ$qMD+of`rP`D|f%|fA>ATha{7+;{;~)&HUVZ|8~#$PWjJ$LK@MC zMl_-kjc7z8{=Y&qu63|ywccL$NOP}OB6Qv8e9WLhJIy4OCX?LiKT<9y_15ZW5<)=w zTHRc9Q)YVH@_LQS-QDeShwG24_69VtV6j@NY*tIA*(|?nk|JwI%+lP(a4iA5SLrQX zPFa8de&rB{!y$#mH>JF?NZcM*U=q3T6T*$j@S_Y$YB5_RIwDb$;+soiVvKgN(yPN*>D<0Mh)Bq_h0D-!3$)vcfbH+;n;njlDd)4kkZu37K<<`jif6pvj#lmQG(m+7UVNYjOrwl z`~OmUb{hl|;&x1WN1LSWTB#4dUtV)8Gv~Z)IzCSd94Ex2S;UJ)uf6t~3>q{@DVv|4 zFPAT0mZG8}MM6qSigfDKN!qn*Cr+nR_U+pzd-m)RyWOtB<543*LpH3gu9CKi{bkzV zUrAbOPl<}L4L467wro*xQR!1>a`wx~yftFA(#2h}bm>xg`st_Tq82Ji@7MS+1WhD7f5bOZq!<=Eg=5m&oG9i=}JVuJXwz zpGbCgwoIHjQQEX=qZFrbw64qLlKc1X%cV<~WX+m2GJX1V89jQm96WeX)~;QPWD`}d z7f=|kBc6NiIY~`Tm6(_q)n8FjAr~)RlwG@asqu#P_$F|EWo4zhuWx-tO@;JsF;%7x z`MI=f-{C9si$j(!yi<59_Ei2RDK5JzlP6D>Aw!19h7B9!=FOW*F}ixwrcD(AvR~jWTXroI#db@3gp_gYihjK0-6e)^73+(Pv*>-qxNMU;ru&y z?x=mcb?c_Qsj8|mioE9)- z=7FK>$anx>o{^Cu2M!!ip3u5=Ye`5*P%eMv$`!eL_pXY0lF`0>du6?rEnCXWnKR{s z4?a*9rN^8*cP@}H{h)AEp1FktefZ&r#z-h;%$T7J!S!E!@r5*L(!?0~W>ChtbLT2K zC_j@o2@Hk_4nZP#{y}$S2H$Zhl_hR@VeBa7HcV*KrcIL;En29!FDxvSGiS~ycP}n3 zRxW(w#tkJL$M_PS7GuVYk>kgYtDMlKOBY2HmGCzv)2UOZ%Ju8lmGUGnE-o&l#m2_U zx^?U1?AfzwKYAJwyia{iDFu+&%*;%cw224jnW3?NE)g(MX-$o!rFB;doRrhpR65!7TJO-H$={PbE2e$nD#=m9TVcl162y6z7qk=FOX{J^e2xDU5mU z$2HtLRIt!SFy!b>M16CpJabV0{{5wQ@7~h4Z(o(H>9y=9F`P&J*m$ozz~p;Y`>KBd zJ8o?@yRuqvwkP}SqheWES;lNp36kRk$GIWbFcEUDKlc2>5*+iN0RH}l8bPn2Wr+vJ z{Yo*XaNem?r17hZ_XtNgkNBSIpINK8fpad(S!R0H;(gNUw{3zdN)0l%F=roM$AhL3(CrT<~vb9 zUXa$fr4n!tw35;iRm{-U>82Ez?nKM-h26V%m%)Pvt61jdes(#BWbue&9|fbUs}~r; z(yQpwETsI^qJONuM(_lpr!_Q}N)z-fdLb>&d_-j_14EQ~fcG>KPb(5&Qik*E%?s|E zB-kZCFITa}96({YDHpRSq9sTK6=zLAPyi-Al0dSUdHeP2rxau+4o*VM4@Zw4RYbA2 zpw${uj7m?KFhRZh#EBEqtXZ=`3d?i;|ci_N*%9`AmZbJbWOT1@eE?~B$ zLR6kgY~8w5Mvfe*NFfn?vES8$1*Xyzk`|+qv@R`8Z|T*mmr|aIEImD44j(?OtV#s$ z6Wr(xG!hkL_|Z#wd?y!+XgSt)7***!b((_V@Jvx^t)K z<)i1AC;ug1g%JN=<2g)&z51shN)w6<;s;tvZ-~m z`oNf^+tU4+wK<>9B$}Z{f&co@q}-J+&$L=C!+O4ogq*NZ+qqI7bHA)+Z+8AU*^~KW zsrKM}_k^pMeD&2=RlG8GSRGPfx;uqqp~JB!pL|k<0xLjTo*~3>f6{qWK!V-ga?k&Oz5GI3LzAxR|4?}px9dG}n3{`##FX-ZO>c<_9;-rFG zUrBcH4ske9)9d9@X4haa-`bnkm$%(h(Vir(W3~n z7A1+cfzmZ$qO@<;OA->}9riG7$oRLltU#ddT%q@IyJS;&c}2&f;=58&1CW2f!+ZD9_VJ9X$7=!;&Q_rY*95GICgCf!QKcCN9=ab38 z(i6J3@p|x`^zGEpt#)Yw1Mq9++tQ%H0jph3oL%3J2hC&_CpfqYSQ7!nXODc1xJaJpSjtwL2GQN9u0f1}RYw;6OELyq4qH zW|*{Fq` zJ%MA;Y}Ni9$IiRPqwMj981t|X}D$idSkC>>hhhisjx6fqN4r?YkZjCVavDi$@(Equ`ZaRSLpG{WN z5h(Q;=54I0@WiOK20SirQz*|p4x#Obo`1ykpsUiOez&i!19XW5JFp%~;&-xpg6UPT z{#)>ft7<$5P;~hI6?wyr#{gVa-WOn{E4Xc0dZW6*NJL6a2PuI&yf!=RYFewp`rBo1)VBzWeb5d+~jeV>u!%zFPXHu8}|=^^5`9H!UAp1uZ4%a@s;}ATn zvu}0~0kEtMPsh4GliUxBlB>%+|7{E@VAD6q5iI;GOSlQ10CzR8cX>_r3?3;y`nIr;St-_qi z6IXT{HFkN|-x@;-NnIkX>NIexbqahZ-oF6``3P%!+hZ(x{ZBs>G9mvU_PlI%_xUyQa1uGk$3vNtwu28IW498UI+c+OxV zvPGC*v_)DbAw!SCQ0JUug+n>#z{=gU~NCLHYs9 zN8;J{D{MVLCO2UpGvqdUVCs158XR#$ns$vEj0AoZM8|-na9gCga^m~lDsl8V#=YA$ z@c#q@u>e<$f`ZBgG2uF5dIns5H>XMBX0F*ifmtBNKg+>=cAOn|Yv3?zjng4){Ye2|!-zZpYV!;uoWoYJ* z-y1@J;*M|m%2T61yqH_}!>{VZ>yDphS>OdB{W}+C%|dvnBW~;54AYjm8FkkAv3)^S zoeaHqS+2HW)}QNLv+<4E{w;52Xvo^8t@AU@>t8!>LbYnbbI7{QKW_NlexMrEPHnpJ z(0P9`K)_72gT~`yjXKu(OJKH}wju6j7>|u;L?ar}h(PLi`c` zjcx`*rkPeT@5ehD49}ig844fJ8{@-zrK?}cAn`aJ5GH8_*{0L?IHW`r)L`f^fDSM<#(7rEw1f2W2 z@7S|@I(VP?qLc5XgZ(Ey+242k52iYssSGnA=6N=Fclm`EpCT zyt$;TTVdJP!SC$mjw5~?JbI*z88b$P3>hN9!NJnGb7#qyFP}7P)=Vl^tSC*JHI-t; zib?kD*`-8@5>lv8Au+h+mbH!g{ut83=Lf%_Kp8M#fRrp*QpS!QE4_R7mh$Dxi@UqK zu(?&LRFSGxt4f9p8KiXS((2uiIgPAs(C3GZEeHMBbMQc!GIgp1q3$sO0n!BZ8Il>K zUc&}bvrcWP->{)LIy;FWxs_yg$u2#6_fmLK{>S4TgF=VaY9=Fk_Y=QC!=z7}4&sp| zzf{kZM`~ovFAa;9l^WR!NcGHl#ltzDcsS*i3N}vC-L0~m=rT4;rtV31v)7E#XS2YU&W64Wy9{c99SIC)a+qmoL66F1t>TlAR~d z0?y!hn2JMMVu+Kiw`^r>SS1;=xt@4!s4G4j>x%ytgqv#0?9cki>ix$6-vUlY1D}tn zH0EL6zoDMOwdIByA7%2c9QOv#Kf1l;aM{#$sD$?(BcVNfWJ8OAvZ2`k+0cBTtZCHe z)tZKVUafA}`%eO&8MnUq0KqsQ8(aJhEVrZWNVzv?{xRToc{FsYySFic9+z&PWQNel&C#gH$D7;-v^Z80~DQMuH!AwS~df;>**TcxS|ICN3S z$xgxd>NjaDBS#v?!fDf{$yAIC;u6#0eQn+qP|`R;^m%;NYO@>(r@}RH#rvGG)r7@N!%&Tehqkhs%~LC)x7lkz<{L z9)9Z?{Gk89fiijWWEnbisH9GvT1u5FC4qr~;^*flJ$m#|_=zt~nl$3%kt9o&Ok7-C)VR$tK1GTYk{3QevdkHX|H0Ar0T281?-O zzkU1mG4xliTvVx0=2mVe^W8hfhH4#TKEXUb`h6bKR@dn%zIG<2A)_HBp=Qi-KIKS?JdP|}XJ-5$_^s0ETg|zfYD@ObX z>8IsHd_MSl-4J@h&&mNmmcC^LQyP$ubM|yP4tVU4e;WM0bilI&@AOaSBhPHS&qnBp z_l{SBcBDn<2WSmwj(i0G1ET8>N4~mv=Ndpe;Bo=Z)bLxKfnyT$fR=Puf_EfG9&e=Q z)b(E(w+nuK*r&kBI?JiN#N!v%1#u1G2iqcC4d@MATi{GDBYBOX8c&tYStadJ(g8uHLL_Q$j0%a!1r$$(=i;sODmFfV*#JCs|AJXk$aYb)*X zj<$t)@|}OclNIzVL|HGySHiOgpe5ovqOEGS2z-u6^EH+*{*OFEkX`|GC?6AbkpF%N z>2LcYOvRj+gLY)P9K1u(100lZ7}8>9p@_={T%o|lH5<%P!dO4nXF>w--X3|&B5nwt z*8^JPUDby?gOG>oLRcdTOMP+FHYSxfXbWp#a9<(pACSxFeOWk^J5QX*QsQ(<77(NaUz{; zKd}z5KN?mcKCMbap8r%kNH~A?8VH{j%+HG6~w+^`+P9 z4Zn|E5&qloX1D8@XRyqy-ATsRY%89C_vmB)WdwpSsV-Hm$W8el`kjeLs^Z0XVbL!o(%=_sJYWu zsPnb|#&M5_F23ZMzk)Pw)l$Zd8z-DkczJoLXU>y2rx`zfyz;?0$H<*Kw*o%bs8K`B zo4R!ABDHJRR`Vv#mvkP6dj7;vgTW<>bSqX(9uHk~`A)w%54ffmG&WexKR6eeIdi52 z1qI2hS+ivJ?AgM38Q(cy<9vbZj+`&_>C;E*)~&1R?$xW8qWzOkK2h^F=F5>IhnnAU zeUo#!JbCg+-n@AwOP*X(CvQ=?(|^u`?|aX>Kd?g=88mc=YV(vSQ>1zG=2E9l9ckIJ zrEuQJITv}N=T%%o?c2Ana1N9-lZQj2VT%c&0aL(nLKoE`9p+YHgWo#Nc~~l`mEBFg z?>GDY?LM;}v~jO3K7PJx&3XO$^-2!pCFkyo7A=x~{rX7&){%=8DI#`ub_xgiPZ?QT zTdVr2SFbMp`}bFT=e&_~Q$ng#sZ{#r&70M{nRFV`*sHbU@B7YvaBsle@2eY}WgzB` z12Ny`TzkoqC9-tsQkgezo{A$KTmxrW;%1#}5Bmn=3EjJQSGuP2aK5gAaqJ(QhjR{X zu(y^v&iUnD|G9Ubk6yKXMuk=i_fYWI3+oBpF}Ls0v#0a|USG`h`(qD4(VZM+?UJLs zt??arGdg9KOj(>`-c=g&m_iD>ztioKspsja6Ls&vT(mUw@Oe;)hAO@$)+)%`!JJE@ ze(JBPn|%8RAfv%bf=V`|?mb7{Wr5Qm6T+%I9lq@FZk#-`0KrSmJ;g9(v3H}>>u~su!=LN4@ zVLhiW->;6}Wp{PLZmjo(g=5Vu2jZ(Ee^;HCA@XybY9Q8m>LYDvbR5qLaR^d>NUw){ z&G>?_GuCMqBkx?S+bl(>_PVh)l?G+}F9+^;L(ZtboO!)Q%xWF24)APOxW|O?{L(e7 z0Tn?#6H#V6!c7PtB3uC(ltcP{T~?K0yie#z#5Y5@NX7Yv&ckzkK413Vo(bjefi@q$ zBi}N-j|4yRg050n1IxmAJZC`sF}$bcyXhZrwL$ty(>VQ%GSz`|_2VxtW6wME5bEj7 zH01Aqaue=tKEbujF!0Px#dF=#H*7xY;rd=6%AQBNvT1w_5jP(F1t(0@^IG8Cj<}wD zN13@elU0|`rhiu_?@kZA`%sVCYXZ(XsDA)LH{|D@`*hR%`Wf|9LAk@oyF>Fxry+g{ z>f_mfC0Lux&UnPt$9pL1DT?+^#q%1SUx$!q5b|+Nxd-xWMcFop8_0B&n~1b6s4ob# zwT~%dJmaIZQrocDBltFyP@B3efv8+F9b}wI{vem^)%q90$fJ`>rjv4vBrtE zQ76g21fAf(BcK) zdTkM1=EBIWsex|~`dq9v(daTf8@K4%)X%A7nRJ=xG!Nij3w?Az`OV0u*6(#5)L#;? z9c_szhkSiN(*%S&A{QS}Yp6OuL!|j5?FRYBchre9CSjwZ(-xq<+I%+s!#R$$$P;mO z+^(4Ob~+vP^L)lM{cakf4(k7M#(|f`kdJH9>inK*KGSFLje7v+QJ=C?rfGae8hN~4 z$0J`y;2oyYyhA5|{?CxU1o_qg7i|L0yo9Yn+;<39BAkx+n06q&Hp(0Va8F?q-c=tZ zKFBRO=rzsDJq>lqG??x=fG@oyQBqi=M_fofZ=!UgcxnL_)l{qU(*p z9sN$49u53dK;u2o>S-!F8Mkf7ZzEPnL>q4zR=tVTu25OZ7cDOCkL+C0>kP^(wsa zAjw*!pm6W0V6mby%4@WIx^ST^`1DhmJ!iJe#hUq|#fxO(q)Ae{UR`l^%^`(w*1Qn% z{x^U$Whz=woQk+fSfhagnxkY=cqs|mvgAtFNm3<$5$v_47w#8uzlG=P8sa=U_guJl z!}V^SbLYMb_W-yLkuqgUwQs_`qquZ&e&zLQ|AD=FT(u}?yYd2j(cUFLIyl%$Nf5KUYF}*l@ZkzS_lvj>r^}dzEKksTirg>MdxmT`!H^}btgP8hK>OW4yw==Z;oe1x zR<9xpq3_%u<9;b==N${~hjIUlyyHF+X{J1=Tf9R-nqUhQUgD-sF^>Ahck>E~He_7R@><=z|jmB~l)n6z>4PM;~|{;4@I59P@|#%G<*{*n{tfVl_C zK2@}6QN;`5ChyrlNDK4uyy*%LPtd>mZ~6nqsQpatt#PlD``WCBy2^UUTk109Pd(%Q zvnlEIqV>0sU5w(?lu|XTt9@O{jr-c$wrx|o&GXdMbLtNF zayd4z53?=4zP`%Nunz8D>psde0h&JU>yn2&gUx)@Z{EQoEj;_pa;88W%+I{!&6zW2 zR3G6!zRt%xQ_EpsDF0a;37R)EACh1ol6UbJQd1ChH^s}W{dM+3zL&!p^q$yzrrdaDz_g4mYZ@}0c53_f?TT*h&+Bw-D9KXLO#1)y zU3Ym?Eu*bt-)7(BS#sJi+DF==RjXFXvSrH@KiI!%6SxP@ae(!ZU$i9z%{$sno>}2I zKsq=UQXgs8S%&GlOkAOsCG*lI>pC?4jWv79pFZoZO5o=8r`rdKvz_rg0p&~kP8}fc z=sVEX@vJ(}hj7egI?rtoH_zY41zKO2hy8*ff%-&x;wtmDxRj{NU~45AlH19tc7X!g zH_F8DYQGL&CW|W>&-Js8`~?aq9VL%xCpnHyz}U<&nC}hImla*flZmx$^0$IjBJ(AL z%V3N13D6tXyQpG2AO z$zQs}-)TC}e=)3{E~l)i=81X00s+mj*0N;mwlU8~t$co?`&2pH%10uajgp9_BV}Ks z;j*tG0AWOvk+L80|7{>GhgzNl zBU5&$I~H#cZ;7yQz`_9w2P_;&5(kXuhA@b#zeI$mnGyL;%L|5!Y{nhUecE7{WixIP z!(jVtlfTFA=S2I;_T8{k&9M7HgJJBn%JuFbeRh=JQ3G~g7ri!yZ`S+LMd6n~E7LHN zt-_8<1VikK1TqBv|Mp)XD@45!3_(XEL(uhRI~eo!c%IX82LuAF46gX!@@L_Ig##82 zSU6zefQ17V4!k=Da2^PEWy3SSJBELENu00o1nl{Dx8hCe&$M0jhUbfOK*?|hDONn% z-V&BcF((zXUcUXPbb6uQezU#d{CjR`8%~m*9WPM@y z7Mrs@)>`8{lr`RC(pCKfH^q9_b(n^@Gi`Nu1{ineaOIrr^;JJqvaSYebsjIu7KWmOvPqNDs5IM>H>p1S~}Rs5K6-hJPVb91rIqT%e9 zH}Fo;c<{aw?L7|s2k?9p&u36>oKDBNN}kL63TG%|-A&Tz3~}}~E6RKgdF3*VH-E;t ztq|0+SjXd>Yh#oXw5tZ%%kLx|0}Tfeegn7#T7Cu2tyd@Qc0j&si0iJ)>Ja%O0Gp79 zcdaiW&qk)<%vfH;N5YQ8v>$bpMg4;K6*1+#LQbHb@n~O8@USGxmqosqbvootjr510 zqn0jX9s*}J)crH~P{=&Z^c{Fs1LiXh^kqkxUw}7&@2Ed7-oFPl0S!e!!wld(0^U?q z>G*CTXxWSJQl-ZkQD>a9%!K+%ApbM)u{!fyo%mU5@IjrkBYxod4tnXR(k6VC0_9I5 z?pxrT#W?=q`6zUxxAE=G|F6&dlIJ>aqmR1lRK(em-*?s=Rs9b2Wd!2TyvtDLILdwtdcFh?Q)-+#L?2m?x`u$? z4Ul)2j%SFpWhm#j+t88UCrF95pFudpG>?8pK7LQ&uqx*l)&O~50dFD5dNAVW>U?GvV#-37Qo+`y1KsIyPCXs^LVAoH z$w4dQGvFC#(nB1W1|3O{_NTixbx$n$V~pi^=0F@qJX;~7kaW-ktg>4EEF7?K;J?X% z=ri{I2z||fcMCfFH);70b)k*t0OofP^!uR?LDPS#PPB6};4I)<6L^7V-CpzXH>4di z$;+~n|5Nn+r}5(ZTZ?gT;|buQ3E;lQ$=mV39g}=4^MpA5({!5Sm+3nlWn!2+?tFB? zxt(5sp6>uXWXks8GJS_Hz~>#oSK%1Dt;ajmPnvtFHn1%-cEx-{(7e6+U8aPmmvJFe zUI%Qthck$R?~2K@VawhFmddlC?+L?D{yk`58`u`K=|0XmO+_0s>h_w3;1lmWT;m;% zo86|$zLuk8W5d3(u0d}j)bA~8>-LnjwR_0gI)Hk;{!Y_*KEjY~_!@0to7DZ3pe;9X z&!%*&woeSr|2lBDB9B3y`g;BVuY}buLCzd!hI~Y1|U~{vcesz zeLoLcD4`7pNdDqQC42G0QWSS^TyS@wapT77&db`hYh~lcjp__K&!O{~=WqF)EuIVK z`E}kW_!yx$=*nKKu;fMCwl(Z8Y%AJ)K*CO0%f!%zxUV5cagMQ!TVctPFONEt&-3|g z8@~g_y8t}z&3gts^US*wywAY%<~%pOVZ#P>Zl33uc}JlD&dD<0#{{G)E814lt&kjP z>CNv63i^B#*vK{1iD^}EZr%lV6>wLEvSgciUxMe`(O1-OcJK}a+f3kZgz&sI)A;=_ z@`>NQ<9Tl0Y2dfx5(4Joy#ex!XRpa`p2z3;ciz)UsO-C@T@dB?9#Sy1-a363eS0;!?+N6 zvD0{|l^=EvvgFx$wu5Kxc}{)8gbC_C0PhR%eg^Lb@GL%`8AqP*960Y*@Vo5P1K!mj z{igS)_)NXxT@2or<2^c_<0lVzr-bMFdA^@_Ajp4y7m(-KS;icX`8)48QGdu&)BJoV zFhBD!%;1t;YUV2{7dwvQn0OoCw7h)*&oy!vk`&IFRGTPM(n)!+t+aEKa6gfE4A@5A zwIQEKC)3Ci-fAx+^R5f^gL!x-fVP77*El}VHn3fk3xRaE9yI{a)wM zq2>Ya6i~l;2TZ4#hP-1%ev(hL#|-)HPS#Bx@OOuJKa6_JkoPR?oiahzg=4qB!&oV6 zNRQth@>hIk{cJOB0Pjcg8=2Hi@_;ybcZ2QMzd=A9;e8a|C*ge}_6^!f;?eimC|ln3 zpdQgi#&riy=Vi#U9Dmq9c+bN$jn6Dk{;{91&Aj8mHu4*nypzK_eY{`AIP!>XCnV3D zQ9N=Mk_%`vW&ao8Jf6!K9AyUdlJ|S4N96swb?a0grCixw#*;1raZwMLM%%?UQx_<6 zjvc&L!+f-L1U~a_9Pf*o#_M$Rka@^M@-(jels$Ev?PtH{9Vpsr>L2;S@s4t*F7v(` z`N4i;lPQB#cXboCnQb?1{~XXw`_269!<#m3QnrnEws>EScdbYZfxMtju>G_Xw1u>3 zq={u|$C!`(n!sn;6@52J$Hx~kKl>MTz!ZKJ9uK0!OqzE7WkeggX?b%DGg9`c{S z`&qObk49YV52kn1SVrrJX&HlKYN?hrpRmnZ|M^_O z)>-N|Zlv1Ge#G|C{)dK!s`hE0kMYz6>Lx>ucWf{3fRQhZr{755mt&j0o5+wfQNMT> zk_G@Hcj7H>d;po-Om4 z19gfvg!U^gJf=8JpP83*MMXua`;~E(HKewas?K?0+7BP-)_JtQniG6ul&Act^XyL? zS7?8z+q4C|`^q%Rm%#CnIzm3NpK%_*KEpX6adFHu1lCYLHsx#e8DV4?3TL7Pw9@SH5|bK<^ha-%HR9=4DD zm3EUfQf8F1?(6gmX!l4n>*SqM`pxv4_^$7Tn%^PS_e7b8_KM$8;2ePbpl#%RdZs0W z!yKpSJALMa%Cn7aTuaLJE|c+{h|Q<5CbW?Azggvs^E}(=`^cn+ejH^=eC*GpjqRg; z(%0g+OMi^~qF(5+EwT4dHJ#=m`+Qf&`0FBsO6U& z{Vf^v=VJqdjq#pz-qaaod#%30wxZ43K)3qCnrJ2o-g5CVzQePx;V>EIR$a2$8Rufi z5Ys+G3WL}dz&MfD_3t>-^pEs8t8Ho-TEJcQH5e*vBi4B@qs_5?(@-XdXTzFU1n%+5 z?QYZLaMRJUqjoRwTU5E_)FXAq%CwD^XA1``9I$Y}!T}2hEF7?K;D3<=#_tQf$Nzss zmyHg8sZh=Pxn01DQx$U9-?y#ia>9_q{xHI$fq``=_?K|me=N{zf`4(F{kJ3juyrVI zbMW@jm-!s3+3bIM`(-|VZfyVHo^9eOwI*c&VX%lG-?V^mK3tRY4{P8;xfy4<;SQ%XTWcjmj zz`_9w2P_=0aKOR=3kNJ5uyDY_0SgB#9I$Y}!T}2hEF7?Kz`_9w2P_=0aKOR=3kNJ5 zuyDY_0SgB#9I$Y}!T}2hEF7?K;JrA2?}lc_cm49>8;zg57a~jHeF#{~6^E8}N_+mi>DXW-0t%;Q+qRYV801;THM-S2+H0Rf2B- z=hGp+FJ2UBn^9&F=vKc`pwr?Cfx{1ZLqK;K^K``ZQ+0cVtVOua1o&JdA{GA zw=WgiJ|FqFp)K$Hja;-V7uvNB{M(4{sTYr{uEfTH)|Q}0AX~wA^()0!4(%uJMdck6 zJ~h64rt$d3`F2%i^tOhv;sdrfrd?nf^2ACr&1d?|Z~lYEUsU~mVJDdeK4gL}JW+KR zakVoogZW2!)&pL@yf%4Htb5X?`S^_XHBmGnKjtfM(1h=?FVXeHg#29!8x}*5LrLc$0hwqusiz`oJ;$Tk;qusjBYKbWmUmkpCy-75#mzM*=^Tw4A ze6EBx{zG7am&b%J2LDW95#B$AyuMdud_%uvI{K>m9gWCE z`)$Fu3(@#y#Z{+y9Lm;aegbr+Khr@Ae}ChJjt9<3rsWV{m}$uOAadz}cE0oyz>6aI9fqP;ChRH?y{r$rSr2h_QBOngsyFhvn3v}}e&>R} zdvum~pijPW;P209 zUyP2R?D*)iS{LIAU+X;7hkF~3t9$E^p?5USOScy8w==KT{2hAssltQ)j&J^F)9JwJ z2Y3z|@1WntvfGerQPn?3hg`#Nti)Rf+QHwDkKT|!c(dHtZZ(gO^&39u zlN=NITTh3;pN4pD0esD&+Z`}24FY{ez3~lO0h$LQ-V5>ScPJ3LpvzI3~x~T|)fE9e%G5eynfU3)sD! z#DTa9=oddJI(80^m*_Ud`mH&{bDqR;HBR{xC+a;EohK6EF~Er!7_ENm zNcoA(1Dzj~5FO@eC`0-G20AW3`|iH-S#=)pIDj~5yTIQTjEA04AEE%RI-d@q6FpS^ z(IG2!+`EKm!$IP~SQw}Lp&vOg29ftspe+hCk$;p=jNQTSXr@No9hJu`M9taH58iBb z^V5CS_d`ylzCQiSwD8GewKqOm;UkrWtd;yR$Ik=4)Qyq7Z|IM(dqv_aYZ?z5zJhde zjMwqtz0qg$4r!(1%tOe=Q?<`8EY9D@06p!Q4w`<3&){rcKB0H;&Ix5{I}VxVLtm~8 ze3UcWy_#vbgKZ7k&w*yzJXh2Fd`4VPl^?&G2cEP-KWz^@?NPoxbfZ1?IJ)0j81adD zIrDemr;XwKFHZU2+jPSE`qa;zkuNLg$${TND-K#qg1@}tt^QCx4M5GUknb|!EP!_9 z9Qbt)G(Ca8(p=|HD1_fsmOc+@0>7wJ%3lYL+pz7W5-Mw&20GKA{6*Rl*!}8E1FnVa zUzlUY>+8aQNsDs#(8ed6hneE!GwAqI(T3l3G*5fmJNkeV>W?LVv^NFnJ42kP^A6gm z#;iZD{9*&%okM(r@>k`IW0tZV>fNYEa(((2#ok5}^6z08)ElS#-&UUKC?6w#(EJPZ zVxwiSyfP3E@MV%Bisgb7}Y} zDS>OAlK+%F39kQRY*W4!+M?$5x(?`3G2nw8giZzTe8a!g`Qi(K?+y8bPczv@(gnW7 zj7z^BxkF#}?efQOp#sMs@M<{l3`f5khW8-AZ1D1}_6cS7uuKN&y@PW@a_^abTQ{z8){2cR&Y~Vp>lz$B!*ciFwK+JFWnU+cD z8TAiCd5+af0Q2|^*(E4{*wMVyKlH~Fa{mu2jUVe#(-bbhup>GyDIwZqwEy0rhgl9h zG5VWE`eKbYPxjwRSpK6!jN`x8`;Gr-kFo!cjobbwrhWLm#F+6PzoGcXTqQ9$bRP5p z$e;Zo^aW(6aKRpQVxNQjzQLIL#=KgWjW2`_g{%G*u>BV02e~FFf8s$I?gwx!K&@wC z9>{ekHO4`1ed4Ptp?K7- zH0C(D*0fwwpHcpE;=%a*&h{Vc8tK4Ot|Qa`f3Nu;i-a@_mgg(OW!^WCdz73a7hhIkdzd##T zqCG>156^#T|3v3w2wH8Beh%%8LZ6742kSg~{*OHGEdOX9Q|Tb;cxU;;F6Ths{2jFX z2|mA{{6}vqqxfRvQ>=DleP*^w^A0%(Un)s<0KY5T0PC^a03p|>f8JK}F}@J%JjtNb z7a*TsZ_fQX9qhpt){S>D{6Md08TmsG@VoQy9k51}n6h!@!8%4!=#-jAE7{?9 z(cvQ{i!1Nl4aZWTt=Cy6Y)?7!Jcw8FN1hE#13vrnLpR&ux9c6i7bp00+(UB4Tu1#L z^0i63(_jp9k)`AFo%<1j1uH$ff9?TzJu@qQs-X zJM%@6U-AAIbZ0E_ zftOxLW85vsD-w0zg3XUazP}L1aqbuBz)e6T@)6e^gl8~Ly|s@)wywzk2k`*tBi#ZJ zM+3O#9ag2RB?afx&vBITusEe8u%gw(NEYXiOZB0)}d*+ zg|^&8TZ)^v#q=F}$@F{dQO^GS;4Sgm9_X$e@}@w&sZ7iN)6cL0$rL@_A@*3SiI<+l z)Qj=V*f!vLTYlJbEAYS$K4Xe={WjQ`=f`i_+bX)qs|4Wukj=_oeb;N9vF-%&#=}P@e|Piox3>BGpv~}Awk1dhxN`47#H|F!zT^KO85mFquUuG{|_|37qlA^R>Lk^EzQ&)`Gz=6|7n z$i6k;8Q{?e2GY>_e}U&8QyXR9MO*pobjFVYK+DI(oBtFoGC3@_Obqdqaa(80*sURe zZzOQ@p$`P#NWkU;9|Z(%{&0Mt41%{%7PDo-Hcy$hJ^w!`f7x_68RXsp_`i~%Ezbd> zAaJw14%lRYkAMg0e@2;5Ho;q7O7PaNWkN`MS@P98pOvHz$;8m=z;|5B{FUE&c{+TV zJnT15?(~=;kzJ=+;3MDxWkH!d9llilgp9PjAiGmCDYW*x*aO)3aT?D{?=`?bS8jHm zB-cAkkZbM7%jI@sT8_MWG-?>7WY5B?cZPVZ<#d*%%TsLIK z4qM26E6dWp|1@Z!-0Ct}Zgrk4=Q@m)oh^pRjC!4As7Dj&TCJ{lR;^=!55$8msJCm? zx-tZ^m=2ljXfagDh_a&09uN9d{_@{w)PvwHp)zJug5!Z)dt?pSZ=>vK>+kiNC6T~& zsnd8_-K4LytzJh8R4y-WfRa@zO4%xv;)F7YFIB066fa*+ik2-ch0BzZB7kD$%1Fry z<)w7x_{+wJ(-I#yugMq6q99~K*|e@+TUIpbBNrhv%8oLmER`*w4ul+wR|g>b$y)Z` zcb~4xA8hR--K*7;%w#uCFus>8SyJ5G+@wg6BI54uF3p=a zm(HC#OV6G?rF-}8(!PCrY0#j7D#Lt*3m29$Wy(kelqYC>A4B+`q~||@Tg#**WaI={ zdBQI2Z|$vQNLl{rx6Y^oyskE7PkV8v=S;cPX_D+|K3po5DJwZk7L(GY zN=d0WfHKdQFP{`DR7l#iX(K^FL9%SwGTF9mo9x=POFsYnbNS+nFBI(Avq!dX-!2+u~=E%^YL&d|xLvrQHrF0=K{Fb=5`JND8D68C%S-H|>zBtXU;*-n`1r(@yyK_{h?wOJ(QIok|yI7sihtFQrSD7AGgCSoN9KZF!C@i-h<= z*=2wXTb8IKXWIrU*;2-oHP#1u>2UykpKEw>zt0>shgevnix_e`DZ5VFZVEYaK%jh?k70`zEoA1*nK8I%BigoY zD|U8vN?%Otwmip{MPm73$muL|Jvu_R`18w5ZIRH&2b{?7QQ}jZ=Psjg5`u%$ZXG<(fTvb~R>H zsZvF1)~qQtYSfTQl`5%mo_L&{oz=L{kYy=z+7kK-;o;#jXwV?Bwzif$dGf^6uj#Oa zf6F8>yvUX(msEBuDkoZxQ8NAmvW5+a!rD+VtPS*~J$N!~iPDeF_4TM3Pft&w>!{^USyJ9Tdh`%KKR=l?X_8EzK3(;1_HjN>m@q-Syu74S zr%uY&XU?2ia_7!188c>7c4p$li9-K?zT@!W!xer_!+#>AJt7UXSt(PdloTmaNb1z7 z6+P5p()ORI_rHzP;F3u;)a|Wg{L9cKdJGsM7&{JCbtHKd?Q%^-g#)o!+(Kpv47 z?Dw?y>({SW^EldQ+91lkV#SKepQnuH&Yi1Z_UzeW4)ptV`sB%zrB9ze%1%(fs7D+Z z=o`?Nqc-+e6*p{5DmpR7yvaTIa`*KNV!!p=f2S*#`^P1EPI^2>5=dxz2kV z`xs~21W0|iQj)@3^S;%q zSI6*F^OkW;;~K$&1q)Oe+5?Uc9XobZwuCy6CQTX@M|(rPp`NimJ=VNSm@HW`sav9)#e{k3yR)6Nd)hA}uh=(f^C=I?p0cCd z8B(TN<_y{A*}o}U0&N0uXRWideUvQzRuMF8Y#O zhh*KXm;NRF8RDdlfAYyEO7}RH(MC}Jn8tC5_Kmc2J;UGMU&XQgNul9G=cP<*XHr17 zgZ-F#$bQba#Nc8dpxvPDph z0m_*^6=lz7Q{dVU(>RWBen9za9nkpbYjBN;y2kbrKXrh8mU7eU35f~W?>Vke_VhQ& zBd%Q~rmSfm@|ks$2I>HHn7B>zyz4V%O`A%-a^Hk=DDI(fPDD8pFYO1{`S{K@&>!Lc z3H|N@1qvveWg5r6LOs$nQKppbTjigph@{QttZX9XL?4{ID^a3^k_T<`;K74qd^m0M zDSP&LuII!hcT*kUGxeZVt5y;m92}zq9AouZLj54mX#<7~8KQKMHiNdB`c59a4QSKp z-_yR(e$%g@-~YC9@uidZ)B#^#U!?=oE9yXe`4bb*Hd5~72W=`t@{iB-Rj3=xL)z&F z6DQ?bt5z-b&NUVK&g>`LOX0JQV;^F9mZ3~NAltXgzpyxDbyDqQU*>uY`zhPW{z!e} zdcF4bw9RLqrR>e+%ywunPt#+=)TvWr#$}Ejv;$+uj#V~*?P7blwj3H7s@ll@OC5L{ zP*z-rpl{!>VMDdfL|(kDTtexziKK~sA%V}7PeNtlOJh0qbMl3KfqOdSF>L{TQ0iCh z+O?Iv;vACmF6tm@p!}JiHks>d^p&btuP$ZFmQ{0TK9g_k1FWAi^~h5=LHW}+sGhr! zq;Sfl`WgEp$A0eJvfr@pb4=GhANxGVaP}>>!Mxv7?rc}nrcKpeu-0o+J)pi5KYc~& z68%By7J<4*AE=IYM4+#NnC;L8qJ+4tErc6TkbQ*a{T;v1oBJI?>;-+jU zNBWnP8}*v~m3(Fz+fQEUxt8V!=bt*zoV(E{qx`+Sz15g*Dp$&yG;rKXn>MY| zS?(1#Yt~HJ1Jk@5XXsNA7j;Ve0i0jZ)^SaU{g}3hYXxi{`IHba4}DF}A9xOd_A8qdlh1at$Fd^u&dqZR5Tt`vB*Ll)KKy{zgBQHlSR&a>~XqFUJJ>0pu-hTD5A` zl%9~!?DNzS#x-u-SlLgFGbQ>oWlI@T*5>}7mcM(>f?}{TsIi6X@Z67~{?RVc-=Lh> zH`#XbmcCiHZrxNHOl3-1$QN_qm_&KgHt77EAJC^@UnS6g8ODDa0^-}$x z;{$Qhb|wVO!!d;Z31!9plu-VprV&5w3i&|W{I2-fA7~?KUnnb02m38;0_9JCkn3L@ z7dT#!ha4Z+|MmF`_A%-N`#*g(=AnLReD+SC2xXfn`J-)=4cFjlk4X#llYWXG`za^d z2l`~RU)uIluJi-6oivv}-$|#b{8^UvRQr-#Bh)?s+st;5N2G`R<{Aw9Ao&#+FhBQ{ zh=cPz))`m6_lYA;>MZ*Q?JUQrq~fE_uuoI}InJ53iSj1DDSzVEHk4(!S3#Rk*|T1j zV;>=3sS{kUHpNA{Y%^s{ocvwg6u;P~xdzX1m-T7;!u@^rf3|zemMtosW1#NKlq+oz z_XgsUJ>y8D&d-qY=YA0V4UPfSDawwvl{Sa;(}&<(gnGw!>LleH7m!B;>Jfcc))`m6 z_lYA;t|!sA#K@nz$GSMKn984P^OPC+Ks}`_DSzrTbud2p(?*&1 zf9jCA{5jTePD^>yPE!8#4=8(%k8EdLz;yNp>MrN}q$93;?-NIy9Fyn+u`g2oNySH* zvVG(m^_xBx<<9;_8_s?~--R}u`fQ4yZA?s@E@P81olv%Km46PS{Aq8=Z`x$?pW{FM z5YE-u|JhIJ8`5Xznh5QMmMQHS*B|1NKkYKl2I;(PJN+N}YMiGNALYjW&$R)L-E0H% z(f-pm5U*~(?(3!@)0l_0pMJ#K@|%`T>@#tW7%@W8OMAvKDY0cu^RaKyzH2_vZ=)`d zKjb6r0_}upnRj`%%HSx~Alvxle*^ahPPXuqsyXs2e$l_6eCgv+M=5{$6!dv0f66K> zEKK@V|M8pv{bBM*uLJAxoH9-bSSRVC zy`ay;ew9%Eq^1!+`vS)p+9KMUq~g%|+26@y+7a@Nem(tX>ORvbZ=LsDLqqzsO16|S zWo_>NGwwtSU#XfM^0!Z>#uwT)&H>n8>7URJaethBihY#wr;hNQHh?<7aYO3>Z8qmH z)M3uWId?Iay_P@M{b^G;pJ3l7PTB<89@-4*9oL~LQ}UiXPY9TYb(zl5$-9KgBsPt{ z4aa2aD))mDL(kiAQ_i#@^yfHs@|peqZRHZ1Zb;{#WJ?*xC;yX_f3|#LNSjKviT#{w zE<6uGx;RH6Pbr^Svu3F^Q0fPH%=K{UK=0nY)tZRb0onpBb5onobS-9ltZiIekk_I=uazW)@6@{M*6S;f$Zp^xGd}ZQ_r%bCrwh76fwt;yJX;LV@v2M=yI0ldgzSAe+ znRA{6p$^bCa2-JF0PQ%_Xb0#Ia9%*0%`t%eopL8|Ows+`blsopd-O3Vd(LIK$HDQ1 zc7}RH8schSd~wXrbA0qGsGoZ8pW|(OW#Wn_9_kX;pJ`9%nA%;n zUn~2X)Ve8C$~Ip6kF(z=n)^!SEI5Cc+Ac=^oPW~C<6NI>74!jU2e>xDen9zCW?BbG zE1x+}qt8ZJa(w4pnffql)F`D>)DzwB^_~y)N#6nCe1mP|9whaTy25uoKc@T=1C$xd zaqpCM60{G&c=}n)V~&e)^dXpsz&#M!5$Yn_!#Jj!m;0yRSr6A&e){Prr2?l;olaCp{(GN61ouFwW>F2H_F`%N7n za7~c%CvZIA*ugPd%bES0c?f)_EVRuhZm!kP=cC_7ABSUro@1~s@**j1)_JuKP=?f1 z_FvY;bt=lAc;f@Ey>owyG;<80U&Fjf)k957QbXDY*2lRM{V~pm`5u?fCWMm0r zjyLyFvR3lP**~2BJjU~%YX1jw!#dfqZj-`B>9*E?uGeucNMDe1a@NoFNBRO>>*u&k z`OzQXypVZmFK9RDJMft{fqbXGpzS@&uuoAY?Dv$twlAEsQ$JWI_i!dHozQ}Q2@4-_CXa~4fLH|_S0qOx| z%Q1lSHu9SD1CGDkH)cNaR?DAjKOE=T@9Fb%+^0^^=CBOoG~Y?n`vC1GanXn2n8f`o z(nc9mH)*f<%)UTAT|3s+e$&mU+JJ0hqoX^v*=X#uJ9`fLysP{wRU|YtOZY-2> z%>9q?+ZN&;C@$@9kzYqFlgn*_WP9EIs@?WDcgHqs;Qj`2a8I5(z_l3q`Q#mKDt!Wu zP1FaDRqR`|q0B?uPG69^L4T08gf@fyouGX^@}9PW{hqR?&&E2*Gfl@o9rAo3=XIvC z*3X>l{nPb*2z+cK+Z0--uaYsp;YFFF@3+JE;2$?7Kv~$@sdL6WYpj9wGmXG=NF3K`x3vwY zTK0e(~V zV(UPqKcCkhEM7%xi(8scV(QR!S;D{h{vmmhKXpbKRiu{esW(W;jQ#!r{Jj|2PYCfc z5p}$e(cgsmi+b>ECWqF9KX6Tt2mC$|zZ-BF-;bbPT|^zM z#{wUo2b2Y6LfPDcjQD+@==~k~`ZqDIzuPy!XYF*r+Q3-l7gC4d8*=`@wL*SdnBxQ2 z67O5!gYba7rwk|y%0$iWAR{$?2f>#Q-h#_oJJZF{y^|Cr)3HW4Zrd>6<8Mto!|w~| zIxHdk#m4}g(+6+)4YE0c@q4t456PM&Aty33=7}!w5$mF^o~XwQ;Uw6Fi5B<(JRt8W zgCNLa0%U?Yd?LkY$!6hzg##82SU6zefQ17V4p=x~;edq$77kcAVBvs;0~QWgIAGy` zg##82SU6zefQ17V4p=x~;edq$77kcAVBvs;0~QWgIAGy`g##82SUB)6=YamMlqHPe zz@3;UPBOj=-d$eXyu2-UQtS7$V)L@Qe4mZwN$*4%8&yLhW8M!M z-z)3-Z_B|bJBjqu?~x*})w{d9V?dzYlP3Y{9qn~D@cm_gNLpe0jqg$F{f>S&$-Rf=cv9nv={=aeHZSs$Z-C!H@_sH1kcINu|GIqL)nLbxD*LMjtEnp=Q3t`&7 z`=I41Q5=}uv~is@DYK*mSJTw1TeG^6&ru|*W9!2 zHYl1oa)?8D`~8vD!B`Nv-7NnpN}LSnIak7fm1k6y%u7D%+9Hwg)rYO|gF1FmP|OIlCP9 z?g+hecVAuGu-k5jayDqYvB1K)lU4?2E}naSV9*^``z+_{x=osrdVG--6N)YU?cV+r zxtedvb9I$_`qGmMmVDm-w};kY=XxBu+5hYPzjqvwI`ZU-Lie_h3$5$cal_GtX_6nR zUo?H2e9i5;dM-@8*?mx!$nt?1BF6@ATkWu9TI&IAU&}DNd_`=UW*px^8u+<6A1t>v zPtg`V?oNNXX4*q%r(uhe=MKs|>u&k4PN#YqTH$!udY_yd8fLM5@@JEI#oW^S7vK8h ziUpT@whPMBplJ{1?W^5qe^Q|7VZWUH4ljB%IPZ~0%cmbGv7q~@-5#aRraX6OYuNPX zSBssm;_#P)-HbaCPqTT=nCNOB>HYJxhCz42r{8({&9++yvo3vl-D!V?8;`!oKmYTm z#r+F5*pumV`z}^pEEgG^Gz9hv%9kdrdl@y;iFWG|#!XUcO-46@AipJv{u&&=nn<+CI5bvDPmYr@7=^?d3ju z)ya9!H_aP2qKP9et{w3-aO0uS>8+y9bRYn}5zPnK#pcRGZ3Y>QO(cN6F-&r&EO<8S7Pf z_ThU+PpA3oSWxb2C!MTpN=2=5KWWJL=ls>FYuW8;U*xevrN?C}?QEZB<=Q2me-)U$ zSN^X@{+vvWCOH7C!(JHLAl@pL@aqvZ656=rPsrsy%Z zJnIUi-&ElHV~%+$q-eL`axTx82ZA3YfAW?6-ovT4^%+Y17uT zeIiecKJdd35671c2fF6!H}uG-Ic{H^QOU;ZQJZgfd*q0+%jk6e8<&*h&s@7Uv2LD{ zH6I^Lzx;uh!M(8axcukG``;?@o0mgZ*CDC%|25IE(Vi>UdV4xe=-j>9||Im4>hE9~SZQx_4`6HJ5U> zVb3#vTLZ!^dtzF|&>AlxF%B%;{H*}3d1w>_NJ=HTVFWAiNg-oC;5F_}wk8RYKY`S;>BPJcFD(6jBY zg$ooaGPZW^<=w0+dv3quTj=Y9RlF~zj-0;2?NXjxUN(V~hb*XBa`Mk1gT@`~T0g3C zv0PbR+-ds4uI-o4(j847ks>gnZ{V|~_qG&B*`rw`0I+i`Bvs^65xAl)K^c=-e}r9 zu=bkcWqX{mg0lX^Pakd!4Xx9zo%4XQSs#yrx)-@ov)Q;j_3GwH&wu&mKKa8B{~rGE zL-h_FvN~j|+hoJVKBWf?EYY!MfD4Y~XyhrG!5Rn*hnRyoe3 zY@g+L<;+L7H_W@YbLf!^ZMsaKFu@kzql)-p!~sv&E6qACn6R>})v&&4!`r6LG1IQ- zr>Tz2$bN9c3jZlLZ+7-cU2mtS=fcNV-J3Tyqz~)&v{;F4-ToNz=PSnyVOO_qED&0^ zlE?YmEA~arygu{PQNzX89&R%yhS!;W+x5F!KaEO_Q}5DmDwa_|55| z*+yQzG4x3Gc~5FJ8@IZ^yvvinD0aN$>azv>s=8bsRL<7U?)L9K_?OOM;_Qa`+^VMv zHq1Si?8_StOHNLRit;PJta15l4o<0U?StJ<1~;_*?$)iDr>nk74Jd4I-*7H`}CoJznfcqjERKUA@}ARo&SWYp=07 z{cKjA6woDn&8AQP{x$mdFVwz6hqJeCrJY{eW^d=TdpkGTWxd+jac-_0Gtnt?=9qc# zhY_p4{yGP{%(iW{Mvg3#&B1O&#q1Y6FxKI7%3<9Or7T^pT=zSNr=Kr<=F#sBvwAKZ z*K}p()RPV$c=;q^aQLvB``im<+5gPFfK%|TU&h`THE^W)3mHg;)qjJwcp{Go0^t+!O!^78A|1?sMAZa?1RiC5)~TecjG z`r}!N{uc|Mzj*P$fU+A(SkJiQIP*w&fcRH_aeX*CdeDAP&xV0rzw2im-ZtZwOp?A- z!O)3Y>o(1pyyCK=jUs|;)bAg$x3|KXyD@aHLy_6Dz8@q^%ZJyw|Cv_44j*y=8puHPuUJITU1L7uM@! zmZ%2-uk&BMb}gs9_0q=qr`7J>_!nuraHgw$ai`Qn%4eI^(|Mvp_5)XU^*?**k{zV8 z~Hhj#w@XhJ{xm9C2# zdTh9~-*ctMlFT(D18%+A{d-HB%dgjW`|;|`PR-M&=@FVCdwxfU@tc0y_v)L9QGFj( zi|{Nyemer4F1}Si+{_GKWnqr`*p~b4@dRFe`HRzQ2liE${uc)r5MR zlGj|5?t1B8#Iy5X1Dnpv*?afd9yLd{`rYmSNc-x)sJb`Wp;KB)q@|=mTDltv1rbn@ zk_M5I66p|7x?4b+7byWrrKGz-T2eahGvE8Uf5G)99bx9o*?X^NJ!`FfHddWqR3mEd z6CXMX5`@`mV^^v2y}c9dpj=;0@;2bk<#4%t>&%(JK<*ah2tE z(?T;Y0}m6Wd?lfbMe=h#DMv(0U5i}*GrhSTqa1k7OG(LsR^3Q^^?ljVu8QwlshF0#^${Zoxfi8;X6;e9v)vrK`nJhEDib(RXux;BouwIngiX z8a?#FY-)^vK6vl7V!2tBefF!NEc1sLdBW zDN>aDN9@$H+Z!9LF-%IoXJ<8-aFWU=Z2^a*uJ@yz*3#a-=m@(FuLxRZ*40r-U2SOX zcQZw6v$VAETGOK{Y5kY^edW zs8rX~$i%;Lq>0vcC2F2`75||^f&RA_@7dj|o9mP2=pOC{d_-Z>?%~ z|2SM@c64-%v@dwjdL3`K68fIXg=8nje{&r)jB4BEq>Uc7?H%@S>>1=W4Z#kzP@BWQi+1Lb(+GzA# zioYiO5@x;r&l9R#W@95wl||o=zq1V$mIJiZ*4jDn%Ej?co4|m?`!e6FEqHESCX0%T zi-6DGd%A^C)^w4ry%l-D{$WmaL}5{ptcQo_!QtU^UP?1T>Mxz-k%~~-oDNo0;9=4& zTmOcZ@iEbg%Tv|u5&eFSBKQu4ctX1DnfRhhFZU_oD-It0BbF*sh*El=9NI-1x+r-? zlgYLhDAvWSBAZ3@{V0#;`NmKl5jsi$y>!lC%Z}S}-CBCv_jecCdU~JkiJBWKiqLd! zPge2yUVFpiHh&KYob+A#T5w5ob1_sINXIf`2lxRACA)n)tD=IK?%fgb`NhR>Vp=vE z%qF0L?eHC6d#{Pl%P1&dJa8fBeBy`v*6zoXmd}M!SexYa$S`2uBH-f!)p(l7;IWTD zHe^gpXraP={=1U&5cS|w)j)?2h6>r?K*vJC1eLbrtH+?n7V-<+OZ`7|C4sZ9U?IQj>~ zuJQn95uSA=%~wxC)gi0OZL0tJO)&?_c4E+L;i z)2ST#$(zW9v$BViv9zBB|KK{Jo$wy^o zGybGXP1{Z9YJjDzQ?$5>n+2* zjx6FM7_Ben{9nV%>3?u+eodr0e9wZ>Qz>yIjHT>Ml68s@yxe$z$UdL<+HC?94Cd?+ zRJTiy7SyPG#lcA+)GUBB`mrm1s0NpntA* z%@Y1O@aRRw6LO_buc!j(&BjU$d8s3xH2XY!#j;}T)^L~3=ad1SPV3miRSV08K1MmS zqy&Hd@{jO-JE@jBwW(h=8#d;9D|`FSKH>R@&d$zi+%7#1jOecSQBefdwYAGYkVV}0 z%#uy%N!yK!ii_nmG;YB-!J242lmOr^cU+VeeDL5oKt**X2Mtc<_&Q3+|vmVpV4VfJw&Z#_lSYkw8!qLyo2zmv7X4cky%VU%hqZ(Ww6-C#Q8H8nx2e`c!E@Kt@ z?lh~btKa@4zqTTd@{F+-qy|`nW@KpU-GhBg)g3*K&jw>^A*m}k5w0Zw1oYU|FL)0d zM@L7W)H&ZX@x6MJ+^Vc?Xc#JWxkw1$Ev=%0!>kg}YS!}W^Zor+EV^92$WZOGSB9N( zgbxEJt1NXflU4J6PfdkI-VuJWHTLz>f>KJCbT!)>>ZASTE~le)?S{H(hvxqcRo@np zCtsb+N59z`dk$-$yQk-(N59U47QO;vZ+6#*Lcp?L-ob$<-S^r9sx5Sf85ISq?gDks%WwGZ)Qm6HZ#B1WATX5c_03J$ zw{L}wxhXW$B|=+UTNnNB$$janOMTY3CGDN^-3p)?a)-p`@JW-;S7fvpo^C#^g+0CEcB*6=3M@J$U?2cWZ6LHtKZ*`+@ z>iF5e8sMdAV(E~)871crfW0a+}@d#eze59#6_=E+bzr=cuG16$bo`g%*o^-)3UMiXcN$T|X#5g!uC=Ir53>C=m3CSZH8 z4=eymfEir-qGRHJ#Ja-A-81Hf`E}PINmP%~>)vB(Cn5;068x|+T#(b;OqT(pXB6^# z!*vO8s10U4@5@en4r>Y?lZXTp&(L!+Zn7VXyg(*tJywX}w9DUK5{?T9M)geC@RTxr8!F-Mx<(c;G$wXYMcN=%xl9~(OZR>+k17Q*-(eaYCc(bD{eM)B|6zb6+JP^L!4$8`zfRP**0gXw^Z zSgItL@rK+lYb1g4Y$(+H(_9vAzetoClaCpj`nq$S z3O!s!YpaYm(A0_gH}`=rRsMLosVw(rEt~DdV73Aj`k&4pMbk7d&jx%I1*!9BcZY@^ z!Kw`ln&n3CZn_zkx+1;j1LSw3AY*C2i!QilHK5Nze0Mx+c*Cq}a&PRZ!(x(Ux(rN5 zyKkO=7YoPJ4#D%gH{nC50j>17cz6|7gW0L`<6~n>ureFVS){q^`}Vuf2Fppf|LmrbU!NJsB8x(zbiM{>4?h67cy+(l>>@YpH_O_0J9S8+2}fyfLp?VEla-dB|!_{=urVV!?|(0R&~&z$ZL6>cEF?k zNy`kV(JSVtNp)B4>>_Xf&Xg=N!9!xLtgU4@$#X2Et*zO)n=hSDudWa6PcFPAy;tv> zwnA&aQ3cm5p6>C7YGrj*L%G3)gntK`QzXy*{$0|M1`C$uQ-`M8aPXJm+(G#5_U1+B zI%gk{mZ5?A@8?D%&DV!9Kc6q{iy+^g!!RVr8t$B7kp*K+%O`eSZGHXEtNW}%FIe^o z2?(;ke!UecZn@af!=)MUs?kdlU`_b0kvmM6*^5FXnjZ*`s#=r2A{--c#FLt`Tl3yva=m#0pR$5XFCxB%$^ z+Kkhw@$W%TIFBi^P>3)ukRnLIWUbGYXUWsrD6s|ZL`+^<`~_FmWWJY}`d*?@NJR%u zBdH8wr;UCI%)$DRz783*$xk@r1s$XifTuv+wY?;Dr$~R$eI1cXTmH3n`26JWY)IF# zwGrOHp<$MkVZ6?hCn10S{3$8VVha;-T#!y)E(3xcK%e?}ng`x@v`D{uV4%QgcyqMa zn)+B?PKOMHE$I0(^YT7?-}>{%g7fKroL>vqUjz+rwCid;{18m*i9KEGpalIZ0i9$7 za>l)#al!%>9z8IyO9M@LjeF3FY`8#6$;pXN<94KC&P1IHE9gr@Q5r09NaYFGZt@Xp zsATSt*3QQ6`g*3#Lx$rRns>{KO|+DhErU5q!-=8wzW(PfGDN&~Q`MZ7nQe^N> zl_L30>`gpQ0HSs}@>zr1D^XeK>*3@dXI0-OlMI%tdny4vtJxmwbtBiqqUZhO)RCBQ z9@_fWR?m=$tJt&n;YuLAQ0}eOrO6ba^I_FM8?vdfvbB|PpfQPm1-CUqk-NUWeh&!C zU|@;LtJeflac}3}Q9yMF%l<9s7~OS9k%a+X2M8Puvzod&cL}iE(=)0KKjws>(z9BA zDJ#>u|7!!9@r4C5@`^-t79+`G%>BECdCdSP@LF<#luHluwXuRs62tdF?%z2|(IAoJ z-c^$gwfU1byzzTtB5}1HE(-dqTqELv!@|;1NuEdC5iH+Ht6cdOIU2TI3!D-UVH@tX06JfBsw zva=bv2-DmrLysOO>>eKo78dl;(NShu8KFrTMT|1DrQnh) ze#_cnR&A~D4rMHRVkkVGy@Z(#MAw&HQG-!3@=uXq|BGMZu{%-H%8F~tS@X~r9EKM$!*85#m54x6}pdJk`5y%h`h06aP8;k$E zN*3LvV_*>f*~3zhdbsjRxp98&Fi*wz2ez~51q^qi2@g^Uc57HXJfl}30pJCf0jlH9 zw)oT+$pHGyswz@AT)?_Ridp|jUpv4xl6GbcB>Xv(a@(ea+5tZdtPTp@yLS&I&sO4` zm^7X5g0yl}A4MZ7yZfBK4L}+c*XqmZ7Zqm5+mitCO_^URb9B}O#!dcwtN+=DqF8_u zlC#WWY@}WVq&aAjAcq+zuc1Nw{v2nIbG+`yiP5CnUiP&qLOUXHQ*;EupfU!Jjg4_$ z@PQykLja(K?7!ec**H0A^dlt)Q7?U@QZ+4&(1>M-td>a>bTY@cbc~F`uCIO0Io;Et zJc2WjY2xwKAbe~1ZO>568_JdXxjew^L*fq$s;%@{L*?d~0BGCMR)S$k0+tpU zG?KHZd+u)cKVAI4EP#Zyf;#h9vB9!OdT`rfcNivUm+lg@^@Sek1-)jCOg5E9S1c@OI!{Nlnw6PjKTl_{ zKLD5*Sj%xcwgT{ST588ZNA=fHAcUJdzSTFCATq{(H!0}?x(9e&uxsp$&4-HJHd z6#2(2dif7h!%eZOa&H0|D4bR|8B4~u7EdmMr;A*Us`ioY&%3Bxf~yxGX}kyElLbu8 z$<1Xh?q8Bs`QtRC|z+Gg?7ge{}Io}B>vQ& zY@NT7l)TG|CNXUa7CPDyBLktleuu5hO7HbJJ|rho8%3ic;LO2^n%5NDZeB)jt;`A) zUyYYOL#n-ZDNMDs5y5T#jv^A)mnh5eSbj7RnKg5 z7_MXTXIJW@jnR}`?v}YFMkUx3m{?IfEo(9!*mgyGKER4r2?DH3tcV_P0T3r-+L||4 zsGCfpVYS7vY7JSI4O(d%8%uCBlZ8%2SlqQFu%{}%lH#zl)uWciy#KRtFecX}@FcRMn z$?P%8!RK$W+i0}@8NBNceUvfK5y2pzZ-JnwH_Zgy@CoP9vlyWbW*xg+OAc&QXoTRc zU(sT|_b+`P^B44G;8Nhw`mK4my1D(a?N*&ygo7g6K)O8LU(TWJOHi!MSwLJ`X%#?E zp}~X+)3xJDxmPl-hxm@^SCqox04*#4tx7r)uEt0WpUwNRT6 z4xFLQjXu{wx?)JH_n)${7@Ui)@mi;rL)X-lJJ_6=BrB)==XD@TM1kwp?ry=?uFpwv00?h zOTc;tb}g}dEB@1`%*smVk%t>9Xm~ZaS|e?}SE&Bd{k#QY`%3Yvd}~}0ovBWB#$ez> zZ|f+Q2AX)b-7i*gD5y5CUw`?veR2V$e~4d&^#_&8-29WM0drb;M?gR(0B-;wpf8o2 zIZaIu`^elxXpjP)L9qfokzdd1FDjkNC!9!)-K0#3jSMJU0JBPt8R~L2O6~=s`=dGu zD=U>Rkae(742^#;@0;gg$4zkXp}40jL9goR<)zhw2qA}4U=dNvzXu2X;mkndlQIzA z08~IU8%=Fsy9~xL(U-WQc85kZ*eZd+qM=TpkzYwIZaF~|__D)7Y(Pqy7 ze5%^|NrRhR|5W(T5Wop)#=o1J$-K9Mn7zMP(nqn-$?UYzZ@tGBisg|Wt7|p$Wu7!L?L)o%|h6xs#i5Q^)7GO(qKv zaD40r#7V5K%Stf2s0g>gZAaC`#!8SnRle0f_I{x`vnn!s*AO5ogWgt_tf zF@@c=GHrbQ_Y7MIcfmowIbmM06Zff(2S-K%p$qCwe|V>_uMZ}UEHs`|#;t=S25=;+ zfs|h_IwQzWZVgrE)4^@eks?ci($X(10-DU@9d|owV+~f8dZmQ z&SPO>BJI9pM;8X+rM}0_z6HY`otA7p{6L>R|7xe{wQVN>PuuIn9-n}KkrIDMTc~cA z>*;^mi$jBhD2DMM%?~q50BMF}>Z-fiLrGabsbaEftJI-(7{58%$iPUtf+ig1DlpBgi81ERDl)-W`=XIyjmr|JqMpQmkIU;f7)o$gxm>irVp!T>nm;VWn)pLvzp4Dev$I;x7o|K!Rq0*WJ*g|wf-hDH__ zS3Wb&JzRn`)6fM#S_$voy?dmdb^-MCfcMaqcK!`L{0hI}vew_x=yAyV_OG#en%HNS zXEAywNJt>V9sE(-OA}yx>&+;&fX)Wou#F4mNagN@RA3|Yw9y4M6Nl~+){-B#BkAZ! z&6uBXl5fw{#U-OaC4n`8N5S1&bQ@eIq?(b2RS;iZM;!{5ZEx}eJme5)kkYqH*-Z(G z&2h$US*ZF#br>59f|JKeh_qk6WV#!xDhaB|yhnl=;Gz4!(Z^2U&LuND!{3maT<_+P zgbvu!r^mI;k>}^0$yk-v!}%p_zvN|d1~UOgAwdFBI8`QQewL_-nH3MXO>lXnfQA-T zqW5j2Lj)35Sbx0w^@$xBPax+q3S3%x;of8d0tlmqS^EnImaMJ_Ry+3sAE=xB<%Y}_j<&n8;9y9)aH zqlG>0T}u&59<(lhdb8|m1m2-0MTD+-prfML&elJ;Z$1iRgoFgi0CTIZv9C{uQx(=; z-{;`?0TqC)HKosD#%AqhbJ>}LM(Q$6rWUC+_J+EqN*kXVgu64 zU2(UC?iePhc}hTF`fOfQQ0^$yK?Sv)ti+Jai0(J(mB<+1`p~tk68BqTfGJ7+$MXKd z-eMcl^?Y_RJ3EUUuqJZA%zvIv+Y@{=qRxRfpW$d-%$3D_LZKbOhKZfqfQj5Q88J@91aG3Oc$2 zZURz>dR{y2;_1Z{qim!^?+jIWyS1f7ni>sq6(Bn$3Omrcrx)0)fXL-^y7yeqz##oC zPX73o6NrVN0}|BE`-p=R5BjRp__Mdq|80(nxULhyKY6Ssc~$o6wn`hyZ72E9=ccBn z_AUTemh^+Omfe$E;uY?>xgrGrzDEXb zqYS)?7UECoLz?lhzzWeKtA9?FKbJF#2{U@bc#Cobk3UJ>;??7rWvF4m^ud3W&C)iS z_@mzImunSEbHlEiZwAv7mJkz(Z|NdEsAUu1oL(A?CqQjl0u8=nrp{&K40yVU&)KW? z<$XMUnt((@bAD1Bg;@Is=C*gNsXf2fLaT}Vd4DY07X8Q16mU9Lofkh)m`HPyr+m~g zd`WfuWq4z#NGwzoat_wYyROT9KaC8$&PUfETtpoiWS>i`c$bfI$4B&vTUmxjjPI*C zhP;e$>N@jpvCq#_DQ}~NsG01gvRE#uLtYe4Uw-Sn&m49IU2TBH4#*I){P7V%PaFnR;+<{W96p^9G7?Uao42%a> z1C~nc&^LSjBzd4|-_J+OhDwyv*D4_U1{Of2;SJ0f~ z&m_2kmp;B@4{E@luIQqb1L@#uN1H7WX{N!k%cM(w#iga4;3WitmT|}a8;V606_Bo; zcrK)SJ?FLi&~~aiv|p8y@S`Udu(XEV?{~r}c=G?;9yqjeaOeW5nh#7k23_ao5Xycu ziK@xAeLuzm9r>ww37!>K+QNs0$h;lM!H$Q0!UY~3yN!pMjSwO*JWijq?G)c_gnVQ) zOhZuDnrBdbaPLdd$_$d=1krKAs#vgL&&M$bsK4 zS9xB7OjoU!xaQ#v=@alXvIJ0AQNf`D8qWpsQG-%r6*)Vk+;;zd8)WMCz;(*b%fs+& zN{?5K)}MknAsC@q)zxH36A*$5N(CG-mfs=Pb2)HxN%-i?NMec+Zz_n;t4BQ+*x6&) zlC+ORF+!5j{MOv9(C_*U*GfQL=|tWJmp|&jIJNc9AP3d)e{JBw>I6u)0)`0LPC$>c zj{fY81*y)i3a&YK&ASpR-=r7>$@{*edmkxx;SQApqH})vtjw(a=utq5eLW60pL8!6%5OOppFzPZESvk^B9gyTHIV;A?+y) z6Xr98yIrgs)4A(;xw+^_-oH~j9|bjSWo@nCK|6#v;hwdE3m5=;Dc;=ndlVvcVw!=B zqP4|3{3R?_RTUb9<30U<`fj2F`@i>C5MKn6vB|?Rw#Li4noj1BsZo_!Fz+iMFLHU> zC8fEAA|0YmrT~)_Q+UP^&7wCkCSFd9+ys&;j4^%&#TwxqQJ?ol?ZEpJxy9uyN}Y}g zg=(&m3J|b|5qv?UVCvv|G0n!!onPb&J`v2gaL}fy=aQ{}27qjIxkS<2a9KtZTF^hDUdR~VNuGG1_@BE8n1b|WZJs`U{CN5LVz*1n_gt5ZoIGFjT3LMk)*T^G&!1mko{h8? zuo#mhuznym*PYk4=+@LIXZDsoI3JBO;lHAR>IVr6LP+qX4V&1(l0s$-U}T3~h(~Wg zBu&?I`5O{y0OdVKs> z5=r1Cje(CjJxDcy&*l5)=YK*ew|2i@a0BNau1`lw1`v$_OCNA)fKeh%GZ-9!Ebzby zg3-vs@2yFoWY@FCsfaZ)xde)wamFbBK2oVHn`-Zluz>NSk#Hx1`J=>3*=uO|4l=OF zC|T=Jp4t~h2<>X7iui-k5vxea!lW!Tjm$O<4I!Hw_)YA9kGBmN894b*{4R^fzC)B0 z3KS^c70|vR3pS7gIgZc2sPA?;F2;Ps(tg>DqTla<2vUDlHHltz_KCf8@Oc$mL3wx~ zHX>8!Lx{*;IaLq+OV?Q=NH_rw8Lea(Ys2MSQ(Tca5SYdBzO0q!POW z`ZFkSc?l*zmO8?b>pfXGJ?UX0`>fWus>JxbO(>5F31ldcK|)xCZMH&|AAXW4v?8$p z(uRwh#bx==B0xJD-|D!z-n|(LB8i*g6HIMY=?smtQiuE^vc!RDkAd*8!0~subG6*{=Mr~egUNZ-vw^)=QuxN2}Ij3mJPrVd!?q0Q`NYjqh2a^b5 zJ8?KB7G;u#DDC&EOBav6K!zL}_fY>fotQviKH1X?Ru3S@G5})#h6hW{Z|GjZlSFXW zt&kwC84F@2(W}lSN8JMR3kRN{Y64ywdCFa6{l+wr1IpO6f>TyGPB(*JF{ zvd8gc_H98;H)_x?Y2TBEc?Rp*aLa z4SIF(16=;wV6nh3Y=odS1Pow@ft{Tlav+eL1X=O~D}r-3EwXECDZnFiU+~A`1(sXg z83VR25~HE8A5kb>+Q<&{`n+uSb)x5fW9GT|tgzoyIqBP=mGYJvyH$l9Y}6VELC{<6 zJ?HS}iQ&<(5J2_+?Z{0WjN4^w`zG>P*r)jT7hsG*&hFb`zqoa0Dzgg2q*{cV&orRq zEdWYE`#kXF*2h3Pv%<|%2vxA)7;=(B`gh7G6yKdWs#%*2y=+{q>s_4o(gw9_=L?7PTn&?5rRV3UMwsW+@N~uq+Sb0n#@P> z!ics}KZ)pCQCcZ|^Ytuz{lC_Na<{c{%|-e~t;%n>rmlPg)RSNYxm4uw`bG|oMDinWTnj!phw`C&#xvf04$zmhPyA!9A783kv z%uhqx>z~O@=um9fa@gYC-_zq*8E*^yu?9ldkN^I-6KwxM$4cbBJ};PpK=PoF$hx?= z7!AQrg%Ggmn|-Aqc!!2;te{6-9@<+_2gw#TRI~!$cZ5b2S@KIONHT_nM@WXt)YrLPx@VUj5 z7?VDXTHlKYgC&i0(FzwWMuX_Af)on10)JBb`M)hBm1e|sIt|SZ0WAVaQbBnGEm#CB zRc}dCqlP@E#n_+BuuTWm9|7fIzozWnEoAl<*ml;SRbksB&?`tTA<)E-q+a=gJV+%x za3^=c6>933Q}}yr|92jN4|fb+A!mRWmY zaIr}n&;Fzkq5F$5@WhKqwNcGNN;}OmDZ3u)AI|v%{M3O$K;Ogptey-~ zJ91#k{v$N!M_bSn-vgV`^h-*ixOZw=g)v4?PO%j5gg)gP=+fvy5-!n7n`Ys1e zVxq6AcUndsJ=NH=vDQ+LM8hKZts-tv{CTxfz?f_$=KjH6ps3mVw zlMoC;jw0%J!jQ`Wz#JSWYYn2&UivCSWtNxS%yzqf*On^8l=Xt*VqV8Mv~Cq>(bAj-G#WZ4(RVdO^s&r zX`?bN(B)r4IdRpzSXiKk?OaF!tiN9qiXLTT=iwMrwEvyzSzd7R zsv6Fb=Q1TASS}NbQxzPFowTSL?C`*m`F~k}{dsWt2+-~gqQ|1rgvx`!3eiz3Tt2EJ z>0hQ)l-w+AA3uI<(6Ki8FxlaYR`nkd?9Ds7ZRpQ5j}koV!?7HVR*iXi8XsJzg7u-@+6+I4@~KA)(Ohcu!vC|P_Qg?1$a{*PTv2x zLPXZCZDZ`u($!afrwF0oAD}DA3wfcGzIeBi%vNG0s?ukk1KPd5z4!=((6wnE$9kut zp=?|-4!Rt}H>}y}MJzrX=6g6=M

KbeY2SRP6T<{#Aa#nxmEw&3G=K{n)%)S^7}` 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 literal 0 HcmV?d00001 diff --git a/K4AdotNet.Samples.Wpf.BackgroundRemover/K4AdotNet.Samples.Wpf.BackgroundRemover.csproj b/K4AdotNet.Samples.Wpf.BackgroundRemover/K4AdotNet.Samples.Wpf.BackgroundRemover.csproj index e06ad95..df8370b 100644 --- a/K4AdotNet.Samples.Wpf.BackgroundRemover/K4AdotNet.Samples.Wpf.BackgroundRemover.csproj +++ b/K4AdotNet.Samples.Wpf.BackgroundRemover/K4AdotNet.Samples.Wpf.BackgroundRemover.csproj @@ -20,11 +20,18 @@ - + Always + + + + Always + + + \ No newline at end of file diff --git a/K4AdotNet.Samples.Wpf.BodyTracker/K4AdotNet.Samples.Wpf.BodyTracker.csproj b/K4AdotNet.Samples.Wpf.BodyTracker/K4AdotNet.Samples.Wpf.BodyTracker.csproj index fc60735..65b2ac1 100644 --- a/K4AdotNet.Samples.Wpf.BodyTracker/K4AdotNet.Samples.Wpf.BodyTracker.csproj +++ b/K4AdotNet.Samples.Wpf.BodyTracker/K4AdotNet.Samples.Wpf.BodyTracker.csproj @@ -20,11 +20,18 @@ - + Always + + + + Always + + + \ No newline at end of file diff --git a/K4AdotNet.Samples.Wpf.Viewer/K4AdotNet.Samples.Wpf.Viewer.csproj b/K4AdotNet.Samples.Wpf.Viewer/K4AdotNet.Samples.Wpf.Viewer.csproj index 74b1248..67ae5a7 100644 --- a/K4AdotNet.Samples.Wpf.Viewer/K4AdotNet.Samples.Wpf.Viewer.csproj +++ b/K4AdotNet.Samples.Wpf.Viewer/K4AdotNet.Samples.Wpf.Viewer.csproj @@ -20,11 +20,18 @@ - + Always + + + + Always + + + \ No newline at end of file diff --git a/K4AdotNet.sln b/K4AdotNet.sln index 6c4f4ef..d137d98 100644 --- a/K4AdotNet.sln +++ b/K4AdotNet.sln @@ -10,6 +10,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0 - Solution Items", "0 - S .gitattributes = .gitattributes .gitignore = .gitignore K4AdotNet-64.png = K4AdotNet-64.png + K4AdotNet-Femto-64.png = K4AdotNet-Femto-64.png + K4AdotNet-Femto.ico = K4AdotNet-Femto.ico K4AdotNet.ico = K4AdotNet.ico LICENSE = LICENSE Product.props = Product.props diff --git a/K4AdotNet/K4AdotNet.csproj b/K4AdotNet/K4AdotNet.csproj index ce9c0e4..ff265e9 100644 --- a/K4AdotNet/K4AdotNet.csproj +++ b/K4AdotNet/K4AdotNet.csproj @@ -22,19 +22,19 @@ - + PreserveNewest False - + PreserveNewest False - + PreserveNewest False - + PreserveNewest False diff --git a/K4AdotNet/Sdk.cs b/K4AdotNet/Sdk.cs index ffa1e85..e96861c 100644 --- a/K4AdotNet/Sdk.cs +++ b/K4AdotNet/Sdk.cs @@ -13,6 +13,19 @@ namespace K4AdotNet ///

Static class with common basic things for Sensor, Record and Body Tracking APIs like logging, initializing, loading of dependencies, etc. public static class Sdk { + /// Is underlying level the OrbbecSDK K4A Wrapper rather than original Kinect for Azure SDK? + /// + /// K4A.Net library can be compiled in version that supports Orbbec Femto depth sensors via Orbbec SDK K4A Wrapper. + /// There is no full compatibility between original Kinect for Azure SDK and OrbbecSDK-K4A-Wrapper. + /// To distinguish between them in client code, one can use this property. + /// + public static bool IsOrbbecSdkK4AWrapper +#if ORBBECSDK_K4A_WRAPPER + => true; +#else + => false; +#endif + #region Dependencies /// Name of main library (DLL) from Azure Kinect Sensor SDK. diff --git a/Product.props b/Product.props index ab1cc1e..7306238 100644 --- a/Product.props +++ b/Product.props @@ -1,7 +1,9 @@ - 1.4.14.0 - 1.4.14.0 - + 1.4.15.0 + 1.4.15.0 + + + ORBBECSDK_K4A_WRAPPER \ No newline at end of file diff --git a/README.md b/README.md index 549cb91..0bb3669 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -**K4A.Net** — *Three-in-one* managed .NET library to work with [Azure Kinect](https://azure.microsoft.com/en-us/services/kinect-dk/) devices (also known as Kinect for Azure, K4A, Kinect v4). It consists of the following "components": +**K4A.Net** — *Three-in-one* managed .NET library to work with [Azure Kinect](https://azure.microsoft.com/en-us/services/kinect-dk/) depth sensors (also known as Kinect for Azure, K4A, Kinect v4). Also it can be used to work with [Orbbec Femto Bolt](https://www.orbbec.com/products/tof-camera/femto-bolt/) and [Mega](https://www.orbbec.com/products/tof-camera/femto-mega/) depth sensors via [Orbbec SDK K4A Wrapper](https://github.com/orbbec/OrbbecSDK-K4A-Wrapper). It consists of the following "components": 1. `Sensor API` — access to depth camera, RGB camera, accelerometer and gyroscope, plus device-calibration data and synchronization control * Corresponding namespace: `K4AdotNet.Sensor` * Corresponding native API: [`k4a.h`](https://github.com/bibigone/k4a.net/blob/master/externals/k4a/include/k4a/k4a.h) @@ -19,9 +19,9 @@ * Written fully on C# * CLS-compliant (can be used from any .Net-compatible language, including C#, F#, VB.Net) * Library **K4AdotNet** is compiled against **NET 6.0**, **.NET Standard 2.0** and **.NET Framework 4.6.1** target frameworks - * This makes it compatible with **.NET 5-7**, **.NET Core 2.0-3.1**, **.NET Framework 4.6.1** and later, **Unity 2018.1** and later, etc. + * This makes it compatible with **.NET 5-8**, **.NET Core 2.0-3.1**, **.NET Framework 4.6.1** and later, **Unity 2018.1** and later, etc. * See https://docs.microsoft.com/en-us/dotnet/standard/net-standard for details -* Clean API, which is close to C/C++ native API from [Azure Kinect Sensor SDK](https://docs.microsoft.com/en-us/azure/Kinect-dk/sensor-sdk-download) and [Azure Kinect Body Tracking SDK](https://docs.microsoft.com/en-us/azure/Kinect-dk/body-sdk-download). +* Clean API, which is close to C/C++ native API from [Azure Kinect Sensor SDK](https://docs.microsoft.com/en-us/azure/Kinect-dk/sensor-sdk-download) (or [Orbbec SDK K4A Wrapper](https://github.com/orbbec/OrbbecSDK-K4A-Wrapper)) and [Azure Kinect Body Tracking SDK](https://docs.microsoft.com/en-us/azure/Kinect-dk/body-sdk-download). * Plus useful helper methods, additional checks and meaningful exceptions. * Full feature set (all API provided by native SDKs are available in this C# wrapper) * Up-to-date with the latest versions of native SDKs @@ -37,7 +37,9 @@ * Unit-tested * Multi-platform (Windows, Linux) * But most of samples are written using WPF -* Available as NuGet package: https://www.nuget.org/packages/K4AdotNet +* Available as NuGet packages: + * Azure Kinect version: https://www.nuget.org/packages/K4AdotNet + * Orbbec Femto Bolt/Mega version: https://www.nuget.org/packages/K4AdotNet-Femto ## Dependencies @@ -94,3 +96,13 @@ See https://github.com/bibigone/k4a.net/releases * `K4AdotNet.Samples.Wpf.BodyTracker` — sample WPF application to demonstrate usage of Body Tracking API. * `K4AdotNet.Samples.Wpf.BackgroundRemover` — sample WPF application which implements the background removal effect for color picture with the help of depth data. * Instruction on building Unity sample can be found [here](https://github.com/bibigone/k4a.net/blob/master/K4AdotNet.Samples.Unity/readme.md). + +## Orbbec Femto Bolt/Mega support + + + +This library is compatible with [Orbbec Femto Bolt](https://www.orbbec.com/products/tof-camera/femto-bolt/) and [Mega](https://www.orbbec.com/products/tof-camera/femto-mega/) depth sensors. It is possible due to [Orbbec SDK K4A Wrapper](https://github.com/orbbec/OrbbecSDK-K4A-Wrapper) that implements the API of original native [K4A library](https://github.com/microsoft/Azure-Kinect-Sensor-SDK) via [Orbbec SDK](https://github.com/orbbec/OrbbecSDK). + +`ORBBECSDK_K4A_WRAPPER` constant must be defined to compile the Orbbec-compatible version of the library. See `Product.props` file for details. + +**Note.** There is no full compatibility between [Orbbec SDK K4A Wrapper](https://github.com/orbbec/OrbbecSDK-K4A-Wrapper) and original [K4A library](https://github.com/microsoft/Azure-Kinect-Sensor-SDK). Major differences between them are described [here](https://www.orbbec.com/documentation/comparison-with-azure-kinect-dk/). But actually there are much more inconsistencies. Check value of the `Sdk.IsOrbbecSdkK4AWrapper` property in client code to determine what version of library is in use. diff --git a/externals/OrbbecSDK-K4A-Wrapper/win_x64/OrbbecSDK.dll b/externals/OrbbecSDK-K4A-Wrapper/win-x64/OrbbecSDK.dll similarity index 100% rename from externals/OrbbecSDK-K4A-Wrapper/win_x64/OrbbecSDK.dll rename to externals/OrbbecSDK-K4A-Wrapper/win-x64/OrbbecSDK.dll diff --git a/externals/OrbbecSDK-K4A-Wrapper/win_x64/depthengine_2_0.dll b/externals/OrbbecSDK-K4A-Wrapper/win-x64/depthengine_2_0.dll similarity index 100% rename from externals/OrbbecSDK-K4A-Wrapper/win_x64/depthengine_2_0.dll rename to externals/OrbbecSDK-K4A-Wrapper/win-x64/depthengine_2_0.dll diff --git a/externals/OrbbecSDK-K4A-Wrapper/win_x64/k4a.dll b/externals/OrbbecSDK-K4A-Wrapper/win-x64/k4a.dll similarity index 100% rename from externals/OrbbecSDK-K4A-Wrapper/win_x64/k4a.dll rename to externals/OrbbecSDK-K4A-Wrapper/win-x64/k4a.dll diff --git a/externals/OrbbecSDK-K4A-Wrapper/win_x64/k4arecord.dll b/externals/OrbbecSDK-K4A-Wrapper/win-x64/k4arecord.dll similarity index 100% rename from externals/OrbbecSDK-K4A-Wrapper/win_x64/k4arecord.dll rename to externals/OrbbecSDK-K4A-Wrapper/win-x64/k4arecord.dll diff --git a/package/build-femto.cmd b/package/build-femto.cmd new file mode 100644 index 0000000..43ef233 --- /dev/null +++ b/package/build-femto.cmd @@ -0,0 +1,27 @@ +@ECHO OFF + +set MSBUILD_PATH="%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MsBuild.exe" + +cd .. + +package\nuget.exe restore +IF %ERRORLEVEL% NEQ 0 GOTO ERROR + +%MSBUILD_PATH% K4AdotNet.sln /t:Clean /p:Configuration=Release /p:Platform="Any CPU" /p:Devices=Femto /v:m +IF %ERRORLEVEL% NEQ 0 GOTO ERROR + +%MSBUILD_PATH% K4AdotNet.sln /t:Rebuild /p:Configuration=Release /p:Platform="Any CPU" /p:Devices=Femto /v:m +IF %ERRORLEVEL% NEQ 0 GOTO ERROR + +cd package + +nuget.exe pack k4adotnet-femto.nuspec +IF %ERRORLEVEL% NEQ 0 GOTO ERROR + +echo DONE! +exit /B 0 + +:ERROR +echo FAIL! +pause +exit /B -1 diff --git a/package/k4adotnet-femto.nuspec b/package/k4adotnet-femto.nuspec new file mode 100644 index 0000000..11779ae --- /dev/null +++ b/package/k4adotnet-femto.nuspec @@ -0,0 +1,53 @@ + + + + K4AdotNet-Femto + 1.4.15 + bibigone,baSSiLL + + false + MIT + https://github.com/bibigone/k4a.net/blob/master/README.md + https://github.com/bibigone/k4a.net/raw/master/K4AdotNet-Femto-64.png + Version of K4A.Net (K4AdotNet) library that works with Orbbec Femto Bolt and Mega depth sensors via Orbbec SDK K4A Wrapper. It includes sensor API, recording and playback API, body tracking API. The API is exactly the same as in original K4A.Net (K4AdotNet) library. Compatible with .NET Standard 2.0 and .Net Framework 4.6.1 and later, .NET 6 and later. All required binaries from Orbbec SDK K4A Wrapper (win x64) are included. Samples (WPF, .NET Core and Unity) can be found in the source repository. + See https://github.com/bibigone/k4a.net/releases + Copyright (c) 2019-2024 + Orbbec Femto Bolt Mega Kinect Azure .NET K4A Depth Sensor Body Tracking BodyTracking SDK Wrapper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/package/k4adotnet-femto.targets b/package/k4adotnet-femto.targets new file mode 100644 index 0000000..4b37ba9 --- /dev/null +++ b/package/k4adotnet-femto.targets @@ -0,0 +1,9 @@ + + + + %(FileName)%(Extension) + PreserveNewest + False + + + \ No newline at end of file diff --git a/package/k4adotnet.nuspec b/package/k4adotnet.nuspec index b1a2deb..b67ca61 100644 --- a/package/k4adotnet.nuspec +++ b/package/k4adotnet.nuspec @@ -2,16 +2,16 @@ K4AdotNet - 1.4.14 + 1.4.15 bibigone,baSSiLL false MIT https://github.com/bibigone/k4a.net/blob/master/README.md https://github.com/bibigone/k4a.net/raw/master/K4AdotNet-64.png - Three-in-one .NET library to work with Azure Kinect devices. It includes sensor API, recording and playback API, body tracking API. Compatible with .NET Standard 2.0 and .NET Framework 4.6.1 and later. All required binaries from Azure Kinect Sensor SDK (win x64) are included. Samples (WPF, .NET Core and Unity) can be found in the source repository. + Three-in-one .NET library to work with Azure Kinect depth sensors. It includes sensor API, recording and playback API, body tracking API. Compatible with .NET Standard 2.0 and .Net Framework 4.6.1 and later, .NET 6 and later. All required binaries from Azure Kinect Sensor SDK (win x64, x86) are included. Samples (WPF, .NET Core and Unity) can be found in the source repository. See https://github.com/bibigone/k4a.net/releases - Copyright (c) 2019-2023 + Copyright (c) 2019-2024 Kinect Azure .NET K4A Depth Sensor Body Tracking BodyTracking SDK