From 16015e0f125a065fd05f61350fc3d9e720ebac56 Mon Sep 17 00:00:00 2001 From: jlizier Date: Sat, 24 Nov 2018 21:16:36 +1100 Subject: [PATCH 01/41] Nearest neighbour searchers now return number of points found for findPointsWithinR as well as marking them in input arrays. Also added new method sumDistanceAboveThresholdForPointsWithinRs() for the univariate searcher (to be used in spiking TE estimator under development) --- java/source/infodynamics/utils/KdTree.java | 13 ++--- .../utils/NearestNeighbourSearcher.java | 3 +- .../UnivariateNearestNeighbourSearcher.java | 49 ++++++++++++++++++- 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/java/source/infodynamics/utils/KdTree.java b/java/source/infodynamics/utils/KdTree.java index 1076af7..8e5b6f6 100755 --- a/java/source/infodynamics/utils/KdTree.java +++ b/java/source/infodynamics/utils/KdTree.java @@ -1384,19 +1384,19 @@ public class KdTree extends NearestNeighbourSearcher { } @Override - public void findPointsWithinR(int sampleIndex, + public int findPointsWithinR(int sampleIndex, double r, boolean allowEqualToR, boolean[] isWithinR, int[] indicesWithinR) { if (rootNode == null) { indicesWithinR[0] = -1; - return; + return 0; } int currentIndexInIndicesWithinR = findPointsWithinR(sampleIndex, rootNode, 0, r, allowEqualToR, isWithinR, indicesWithinR, 0); indicesWithinR[currentIndexInIndicesWithinR] = -1; - return; + return currentIndexInIndicesWithinR; } /** @@ -2510,20 +2510,21 @@ public class KdTree extends NearestNeighbourSearcher { * @param allowEqualToR if true, then count points at radius r also, otherwise only those strictly within r * @param isWithinR the array MUST be passed in with all points set to false initially, and is returned indicating whether each sample was found to be within r of that at sampleIndex. * @param indicesWithinR a list of array indices for points marked as true in isWithinR, terminated with a -1 value. + * @return the number of points found to match */ - public void findPointsWithinRs(int sampleIndex, + public int findPointsWithinRs(int sampleIndex, double[] rs, int dynCorrExclTime, boolean allowEqualToR, boolean[] isWithinR, int[] indicesWithinR) { if (rootNode == null) { indicesWithinR[0] = -1; - return; + return 0; } int currentIndexInIndicesWithinR = findPointsWithinRs(sampleIndex, rootNode, 0, rs, dynCorrExclTime, allowEqualToR, isWithinR, indicesWithinR, 0); indicesWithinR[currentIndexInIndicesWithinR] = -1; - return; + return currentIndexInIndicesWithinR; } /** diff --git a/java/source/infodynamics/utils/NearestNeighbourSearcher.java b/java/source/infodynamics/utils/NearestNeighbourSearcher.java index 5f66dcb..3f2c90a 100755 --- a/java/source/infodynamics/utils/NearestNeighbourSearcher.java +++ b/java/source/infodynamics/utils/NearestNeighbourSearcher.java @@ -326,8 +326,9 @@ public abstract class NearestNeighbourSearcher { * found to be within r of that at sampleIndex. * @param indicesWithinR a list of array indices * for points marked as true in isWithinR, terminated with a -1 value. + * @return the number of matching points found */ - public abstract void findPointsWithinR( + public abstract int findPointsWithinR( int sampleIndex, double r, boolean allowEqualToR, boolean[] isWithinR, int[] indicesWithinR); diff --git a/java/source/infodynamics/utils/UnivariateNearestNeighbourSearcher.java b/java/source/infodynamics/utils/UnivariateNearestNeighbourSearcher.java index 3c3d3db..a06c456 100755 --- a/java/source/infodynamics/utils/UnivariateNearestNeighbourSearcher.java +++ b/java/source/infodynamics/utils/UnivariateNearestNeighbourSearcher.java @@ -414,6 +414,50 @@ public class UnivariateNearestNeighbourSearcher extends NearestNeighbourSearcher return count; } + /** + * For the points within norms r_upper and r_lower for a given + * sample index in the data set, sum up the total amount that + * all of these points are above r_lower. + * The node itself is excluded from the search. + * Nearest neighbour function to compare to radii is the specified norm. + * (If {@link EuclideanUtils#NORM_EUCLIDEAN} was selected, then the supplied + * r should be the required Euclidean norm squared, since we switch it + * to {@link EuclideanUtils#NORM_EUCLIDEAN_SQUARED} internally). + */ + public double sumDistanceAboveThresholdForPointsWithinRs(int sampleIndex, double r_upper, + double r_lower, boolean allowEqualToR) { + int sumDistance = 0; + // Find where this node sits in the sorted array: + int indexInSortedArray = indicesInSortedArray[sampleIndex]; + // Check the points with smaller data values first: + for (int i = indexInSortedArray - 1; i >= 0; i--) { + double theNorm = norm(originalDataSet[sampleIndex], + originalDataSet[sortedArrayIndices[i]], normTypeToUse); + if ((allowEqualToR && (theNorm <= r_lower)) || + (!allowEqualToR && (theNorm < r_lower))) { + // This point would be counted within the norms + sumDistance += r_lower - theNorm; + continue; + } + // Else no point checking further points + break; + } + // Next check the points with larger data values: + for (int i = indexInSortedArray + 1; i < numObservations; i++) { + double theNorm = norm(originalDataSet[sampleIndex], + originalDataSet[sortedArrayIndices[i]], normTypeToUse); + if ((allowEqualToR && (theNorm <= r_upper)) || + (!allowEqualToR && (theNorm < r_upper))) { + // This point would be counted within the norms + sumDistance += r_lower + theNorm; + continue; + } + // Else no point checking further points + break; + } + return sumDistance; + } + /** * Count the number of points within norm r for a given * sample index in the data set. Nodes within dynCorrExclTime @@ -641,7 +685,7 @@ public class UnivariateNearestNeighbourSearcher extends NearestNeighbourSearcher *

* */ - public void findPointsWithinR( + public int findPointsWithinR( int sampleIndex, double r, boolean allowEqualToR, boolean[] isWithinR, int[] indicesWithinR) { int indexInIndicesWithinR = 0; @@ -674,7 +718,8 @@ public class UnivariateNearestNeighbourSearcher extends NearestNeighbourSearcher break; } // Write the terminating integer into the indicesWithinR array: - indicesWithinR[indexInIndicesWithinR++] = -1; + indicesWithinR[indexInIndicesWithinR] = -1; + return indexInIndicesWithinR; } /** From 3c24debea5ef9525395d5fe2702c2550e64bdf7a Mon Sep 17 00:00:00 2001 From: jlizier Date: Sun, 25 Nov 2018 21:47:41 +1100 Subject: [PATCH 02/41] Updating PDFs of wiki pages of all demos to make sure they are up to date; includes adding the new wiki page for GPU --- .../AutoAnalyser/README-AutoAnalyserDemo.pdf | Bin 242490 -> 311025 bytes demos/README-Demos.pdf | Bin 86658 -> 152651 bytes demos/gpu/README-GPU.pdf | Bin 0 -> 149569 bytes demos/python/README-PythonDemos.pdf | Bin 155811 -> 212537 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/gpu/README-GPU.pdf diff --git a/demos/AutoAnalyser/README-AutoAnalyserDemo.pdf b/demos/AutoAnalyser/README-AutoAnalyserDemo.pdf index bdde0332120c8fd286148e18677cc65470922398..f0288653af757a9902b5edc6c6774507720d3d8e 100644 GIT binary patch literal 311025 zcmce-WmH|y(=M2V1Pc<}g1fuByZga{9OU5ckU(&EcY;fTy99SVI2`=o1a}yI^3Ho_ z-I=@obJwidYk#QSySny=SnMnh47fyBnj8b~4yG_|&WWfZq`vbO~?bF(n9FtKy8^DwcpvXH17n;Sb> z{acY1ky*vb-pth$_}a3%wUsgRD?k!kZkE>$m zv9j>ev#?OV-miR$_GbTU79k--pq<%Ydb0huz8anmKoVvhWfKt4)CG}Q-POe9?-E&C zV+$Z6v$mC)izNvgCkrC84A9EL(uIVbjpr4Uy^Xz-x`VOlYh4MTo0Tb0Os~T)vLP8|YF0Z|A zi|CPg>>J{aq1&-*RAcWBS~e*+b%eL zetNLAwXLkIlRuRJ=ac2rx9c_rirDtT=uQWLx&M{J4S!-A4k3I_cpM4z_ zrCb#G(n%WcVpwIrwsO!fp8@~?Cd-71+A2tx3krFxMMPPIx!=6MCLohdK^YyMxSGgN z_dQ;!&*E>$=Xk;%JcIf66jRaWT-*L|bBxDU@{>h4HscuP-2?p;S&Uhy1yBO*A zIAA@3ut13?n7UERBi3hH%y94Grzw+i$SEsCy6PYORyr6Gm$tDvbIf9)=b{Wn@f0lI zb9L=_V}X@79jgm<18m}xDY5~wYQH=y2&oFu)dLh(!Jh(&0u7l{Ml=hlxO?#6&Gs}A zT`aj1@{qKpNW_at_f4@8Ka`SYV%xfPg)PCt7zRo);sm6Nv?Cxv&w!xR6BjX+ePe;S{i4OBe!Wv%0+R8V!V=tmQdd zu9XPCtR_#CA*zaa5@md=(IncZ3*VYT)S#wz;{h}_{DQ3H({tD}{<02>6_zcrvoD&{ ze{$Nl38IZm3N`en(mrlxvIRZ0;lTKH%BHZMw$9*;XYsIr4}Ynp3G!u5 zoZKwM?rvE&;+L_HWvK@+(;0-u3==|wbrv|tMI9(0r%$3#EU|D?f9K$J?#Fb@ z=WAZcv$V(DQP@f_;m@Z zXSt6W$5#ng#2e-l6UXT49YE2JRDP}x+ft+yf*k0~_LKS^P; zeu1Gbw8u42>yfZ*{BGi_NQB^{WV59@w6u7r1o>PRwN3=-n6!Eh_WO zpqjJSkEQqYCFehONLvjFFBh{;kfIAYEg@=kX98so&K7ZLWG&$>x8g}D6zqa_j6h-z z`ySLN7wt;q2X5sFaqd-y97P|7>iJ^M-O)wA+>Wzp!J?kI;6S}1pl9Sk?tCdb4;=Wj zWt&$J-l0j)hGqiWm1u}&k1D_H5|xiLmZs$*Uso9=60Eo7qU^34*SM&qJ~=iqk9V9< zoA3Vl*@P7TAVZ^pJZ~_=g3CSI>hbYMZ*GNQ7yMZ~qL}eS&OGzwu=|Un)r26168W&afMH`F)DZ}^z`{1e+JStXlWHz%`m%JI}YRipZ#hGmn zguXe@lf6sR5{M) za7AmL*lA$j(o4Z~T=~;$ti?TU#i}I;-NM{lC7mG#Ybz$hZnn4zNGMkgBNWIBaC94 z2=#1B4okCV7}SZim@Bao^2N#o%+oCCyHE!LlgTQu6Syi|o&RPMsB$N$)ebHuZivv0 zKvAmu)T|`f;t%2laVJ=U!-)sCuJ<_Cnu}G+>81O1H8jQ#k8ghct_AWYx1wD-j_ykxN#nCCa(SrgeLF}u$dy&6D!ZEXk zL9JC}Jx?cg+ZPW$^6U92BM2|ad0pE-P17B&iC zTLhF6mUkFv#tCDIM=t?wcI7#`qoz!;BS&uOs;Zx-h8NZH{nRdtsbQW6&t?9^aBWT) zp-zZYLttNU$E01;gsjNg+#c8NEHseKsQ02(vw31!|tbcJ?#d`vr@^j<}w(>i{;CSsmpgaPnDs|PI# z4Tm;VOIXr6-w1Qz*~+gd<-p1xr`zxcd9myGwsbG=*WcXtt1*6Spq6ox-siKJ-;TGd zl{90>8JRFBp&gE`JwP(>vP=z`&J^x9=J+ z+ZBN7YXk8)e=zHNf3tPnm>vI+l;%}ySWVDYne;MMZ6^W{lv;JJQmE=)XGLBB5t7eBgt>N9N0EXmP-c zo$Awm$a$p2j@D)Pba7y(#jD2=UqmF7lpsJM(hzVP{lmHg+>~%t8IwScYuGxFe(mq@ z$z6xM7+0ZUN%1tq`FZx`aXFmQB9mDn=e=2aLbu{z7UX5OZ&eTt^{+xjyi=Hqrr@gc z0aS|_mE^ZZnHcv15y{fi_P;=*1$fQb`f+##ZWyI=I>Vh7Af_P_akt?ejzfmE(C=0D z45FY$PacqT4uc|@DR6;7zuubGbi3Wbbo)KBol&85*wxJMZnxCzsS5tHIo(}=J;zY4D+E)zYBG_| z;l6Z~h85T@)e6p31!%Dr*_g%60Hrth&SAGPw}ECJdz>p<4SoA>Wmm1Z^YeMqqn3uW z?h1ZGgomHFd-)~(dHJcfhDa#o3g&A~-&IPoHNb<@ER!-6mn_BWl9OYIxSV>wyoNj_ z=J~+^dL-S!WV2o&(F6zFC75*1XVA!Odw*S%F!ffZT@^-c^yDvhHSOGZXPHLH`?GXy zF7{mE9FE|V2*Qz*KPtiB_^Vk_-I#JDz3tOe4(xvAxM>GZS_rD?)gAKjwRu$xm&RN3 zShuFnBCkmc%h)WjPZx^my$x{EGe{r2&NX(YY)x2{ra#yULc ziJ`UF^V2_Yu;J>~@ajhmpC&IA+R?G-;1g!-$ppD9BA3SAyH97Lq(playM?R7yQZiVV9UDYS`F+{?jq5oIGMkN>Va1y{v==0HBsTRf55p$x#|G@g5n&scWfa z!S(d9p&M5CN#!i7?HEumb#a0~k;3>;Y;ib?=O#Flkrb)fO6|rFHDrt55jD4bEVxyP z_(QE!jW!99?X-4jP%uj^A<=fB0k+|Sf1bH!f+lu}5ub8tUxC*tiMGXS3pBI(apXev z3*T}sGl=}mMG(L8g=0DLL{PS0&5?T}F}Ss%{F2hTn%%%a*!j<%`+%L4I~zVEVCIPC zsx=t*(L7*QCwyM|gybeV(%o7^s#ZFq@tp0RW7VbR*@n>>F$FcM{?m8Y*}40wQfttU z0^3JW?6~!`qdOa(Ij8&dky|l#>C<58g+&ZF`~G_SOdR6hdNY_;jq1Z$UFfltOi18v zb7yi~vv>g=Gq_uvPRh|r@pPrC<>dgKkK!d1X+~vm*tr1vLRkw!lCbzba|MpsO)!lP zkDNUi$lOU4&!88>?Phqj2l^THVlZZl%FTVg7e*C(xhJ{sM`XFIF5$?%`&foIuTo78 zhf0Uf)`Z)BKD2vSpMC;L4PC@YAr?@F^oN)E-7KBGtyAH*MNy1gN-CT)YVW*O(twUx zSff_z0n&g}8gDbI%DL+{cFGL)qwz+hKu4z6Gch~MC`tUXNhw3~>1`V0(^S`u-J52$>^3^O$`ia)J&=4i|RtWukj4$70?m2)FKgx6=zp{SR zw7oSd#C?=#U8HPwAwK%Ywxxpjs~=C&hyx6K)jd?^GCbjfv^a-oYc?T7Oo0Zo>#lB_ zTiuoXlf_{f=-L;h?=8SnV0`x&mU~6S%0(cZzQ?UT41c+MM#qzvYH3WGW`Gm2UekVW zU(v%6?d-9kuE{0tB`b)#v+*w7VKa;%pAZ|(7&-)y=;5yKV_}0rWZzz=$ba2jD z&Rtop+h~4wuye7iNMN`=%UelR3)a-(a@yP;mc^|VvUNc{&f2l?P zp8k*n^Bn+Wr7<`oOh*V1+1U%y{vJBVegCTsPL~ zfl)Ww$hYXKn8Iu6I5zGeRV(+wM!(8sU!HaOM)rkjQu<@!&qy6*2s~32&1Bi57Gqff zCogz-5HB|t3GjoSty~NFhbDaiw8()#lSY^;{?@Y=aGaRl!A+XaGC5kHPA)rb&AEqc z=}JO_ocBYfQpt4ET3?HBrq_mJKT-;D%B*mdDr;;Qv|v_GB6vuc$s2|@l3$yu3KS4XNIKl#rLKT?zHi?DO&Yy>^B-ULgbPNqaeUz& z0jSnoUcyTq?7|z-OPmRC9(ADR^x2H|<{t$PfFBtC(+wMcvOcFFf#ZgpPQLdDqA4Sa zyKL>P1|-5grGov&rHwAJ6jAy4av-ffHX|;~O6A#_4`U*i7RT?ny`_#%g(bM7*BIZ_ z7r()&?aeyEY}(xT6A_^YO$4UN1OZMNvpP!i3as(A`&?ed4v#*cAU6JA@#w zw38lj3JB^XPxYxEPvdubuCo4Bi*~Y7luU}r$$q!-C&lUB!L`t~=YC(DjiFFYY3Y1` zVa;uqXqV#SxF%w8rX_x#vfR(4TZTRZ$FuwPN2%1VwaKeK4CuVgqIdq;TI)}vqs!^M zQ9LL4eKfYKlH) zi9ZLz+k+VeiXwPYi_KOz_LDkZP75b^ zZ5A_3t85qcTIe|>OH?&|c{0>`h`^8!PBlAS^I~(}$#!e7eCzzJBeFt+QDNW2FP03P z%pz&jSH&VbYbZ^yGL(7gwQN?9ad^-KqWriLTf$CZ+1bY~ z0o3G55(L9$OI4}-ePBDYV7r)62mYD4@9gizEDAM8KWzk$)doYGE4RRdAz|%gR=hi-%cgkmRgYli zXdS@$%#gpuW}`u(Af$SCijeJha+F;RZ)>#om?AX#G;JtS=gBZ3QaybyQ4&8q6Z6@| z8P&0>={v|h(y->qvS%!0!pNneG0R9)S#{2{q2!{R!KK9Tv8U1^i*Vw^pnO%GeY_7< z=he>a+;H62hqt0}l3dD)eU9BBtGTT0%H^4FAFtsO9~W(Npuyx_EyCwW1NvWOPdEeELa>)*BHc*rmDx zO#|cM^0gb41D*fOspi@nAH*|%?eY^*s2BD*!-jv%4XeJkVD^9ePS|p@{Hag5^X)fc zjx+G{J=FhA!HQqqnRwo|GuS<}`Z~w|LHSFfjAZ=4WX|Rh;VXB}%bou>RWdADB60ul z+P`>S;MU)i${c+9`6sV;k^gJGAZLwrQD#UXGHbc3eWpnAPkZI4Bfr$76K_t1JlT84 zce=mX(`E;S4!`^uVcw~_X5+OQ$*Q{^ws*Xn3Vs~bwufXx_$*|C!(uU{USbaz6|?O9 zG4|4&Pyn~b35}iYUJqENhU!j%rPl|?Z~NQK#W|EnC5^2Xfu?VI%k*e zMgpbgEKNT&h8pR%mi?-~(B^^;R4OGFEc-l6m1`?z>_HM6?0pH;Jr(8kc+@0j+eGh> zD?G>K0`DD>ddOdujgD=Fp9yg( z)zG}6EMv6sQzitrxi_E+CbNFGcLa$Y504B5YadpILrlWWYb4z>&UaKV(&Lz$UpxEt zn_bW3e0}|7f44o|6M1CX~LSG4}UGCVsxq8LLa zc|e(EGgV1_Jkzqm3hQz;(T`yEYBvNiMlb~ubYj(yzWjQ_iUWj(6|^_|Nn}ZAdPIWD z^)4pS>cxrW^;Og1nikbUUVW9LVnq#5%~R_=x_p8Y<1uSQCO2TsKe+CDw7Y2H!YS}l zz@GWj*6z3$=^`21j@OE>n9ti;SmX-HWcz_&CY{;Y>844kjClpnQKG--KIG=j8o6+#lO7_0h^h(6ZA{M#oS)*EfHg zx#99T`KMb^45MS}YGJs)#{ePx5nQh-|9>=|_C{hKA@Se3>`052C|}ToNmyRt8k`eb zet0)S(eYYzX8TW(lj({b5t~pNY6i~ul2ct zk?m~W{ywhB0yO!Wlb19xg0W>R`K0C=KG;X1#OMdne^Pped>_Mq9{)& z-hdO|+j-iLLfD%aEZ@jke6%D?iwyr;!syP-AA+J?nlsSjFNZc=NgEwu^xrQ-@bO>- zxs~PI8K;k3L*c|JA6` zas2BpHkEEx-Bfm=wz#E1%1*WkgIvK~C?cPcAG?Wx*EhXhMe0iZ?obEar>%^MwH4oI znKoiSKYhYDGBkp@nD4isl$E0z?x6z-ft*!bjak9YyFVM;IVvk;9kgXKI~xj9=kmg9 zZ8z(GphR|PO1O@$65$emL4UOZr`nMG1HQp{D8D`>Q5~s^_zTHt~d-UeM1g{__tS~W>UTcc48|3*qr3K-; z0u}wsf!ss6k)NHt^-4R#_+y*!1ha>hh>77dn&-C|5f|5SM&DYra z7b-=X&~HKFnHrHFU>m{KNaZuL!G2j~9kYsU#z> zG?W4i1sy3iTlp!0#5-lcXjp$kxo*|CuJX-cy@@OcJ*DPv57^C9_pIC&yDnPc5T>rr zYxZH5)?l$YHoRVZNig=siecT&cEmh;GAq`e6wny3ro=hN+9|r@Ek(|X{u=`M8F+1E zE;(gnFU@hbeFG=#)~{xUpmInsbMSBGs6$ewSGhBe5+8cz>|R}k_u|s|+}0LQ?mlg_ zWeIL9CdbIK#E6?cb@nD9%TV-Ua<>muqPM_!@1N zx8JNX>H#JyDu}S^Se~<~jMnxRWqpMg_oJ@61Z_Mo9mHKrgJewPha35#jwzDzW?Uo` z6H$XJPvw2;P@Ej`EhH$d4p z1&s;CuE~ip9;+>?qiHHxD=Vs4rZM=fps4cgSA||AD=Rw%wG*ql;vLj z0S`4E*QEyRMTRt*tYEm3h?_V%6yv5 zzmlIU&bbxwZY{gCj zX2`xSCW+PBkIQoBsXLXiS4}7mOxDPYJtPAxzFQsNSNXjgnbo%M3Bg9ix=icKOz7x& zK5J{=a;;5^1NIzB`BI><0&F1}%0|785H3N_hpmf-Q=tieQc$=Tqm0oUR`uR4;TTGb z?H?k!m!=Wr`BeW6J7~GJ(Y?y_#SZhMOp{>kz8wcT;e;LdGLVWvr`76ZF*u|XF*>78 zxuM2Q)6^Q;N`$UkB=iu;WkqIP)#%z_R6^PeV>~VkF@Cvay0RklB}j1b;g=^o`_;AQBud0UUb zJRbRY`6U@S`S?#sson6p{`;z$6a^NjsIuRBdA*l|FXy6l9-HtH9Z{%8{AU7Ulr z`OK;{#eHr;LEiKBxMF$#-9pSZR@gXAX}z^VV;G~lZq8zBoS&i7vdOD%q^|>TX8ye0 zLQg%rNs8oIFy{DSZN~jVQt~C+2&@!k2@vMoU+cFgZ}oA;+RuCjydp% zRDJ`Ryf(2-S?j9fg(I|YhJGJD5V;Wpw{TOhbq%{-!PZdf6zqDKUM=Y5V?*1``1{p@ z#C_^-imG?K9kHB$oCDT)?HlSa*#WElMA<9NHWD4u<%#8l;$;nuh)ZEkGoh`im2r_g z{b%<+t|rUWKm}pBO6tbPgo$XOJs|lM?Uoc2$P>jUMyj6Ba5TNI7b6g=fx#lv*WlJp z3QAi#-y7P+3w-Zu&I&F3E6jSGf8S9;>*2UlfrTRHGHT?nArW`$dpSwSN+3kv+8$)f z-;}<%od`)3D4hLw{!=?!xbBlQ%+eR#YwIJ&CKT|525po6kowP@)BmO`YTXvzg!{*} zJi}Cqd`a)sel6-i{@3kPy!n^-zi~u&q;HQ@9;oimmY9^k8shSC@@r(OciE8LZQm&R zAw9Thy=mt&k#j3qMfW_-d5tV%Hqwyj-}otE+L)8|sMsl19n-FEpEn#BlM?($RKE@g zS9YIm{OHECNl%9xCbPXsif~PZiJF{L7Wwz02V;r;nx50PN$cM=53g^N=sEpE$0Kfb zW9@u&PM{U;uoiZmAkdv5C)5AA;sPAiZ)#2D{XrV@3=1n#g5tc8bR*Noi5|?!XuBbU zrg{Op!_C4~vlJK^b)?i^WKk;8<(o;|<6e4%wGI7(A6%34!B*LMk8=F-YJUW|l37yf zFF`R9CH36w>18Y0}9}aPhTyPyU?D3|!&hU;FZAOm!)A^O1GrKgu}BNs9gET`bfpdtLL8 zQM)$M<_MXst=7abQ+8I+{$q$m3fG9?&`{jqe$8E?mLi*{mgi@%G;_7VT|8R9O*hrw zf_k?U@Z+1X7)D-2{ZA_&J2e=dCx4N@Ov5~dHlbZ)lb0+w&oQYv1gB#apqXq+v5ok9 zld;m!QEMSqqgOkT7(saa29dTD>j)W%UK5+GUa;EB2xg$U9vBnnsg9$MS>t^C@Q=7I zLz40fi68SPqq$%r%LIY({~8YMB3j1*l8TH`A8pyvB2#Aa+uws^ciyCgsi>H1 z&rQlkw47BA4=V^{(G-XL4jtJpz|mrHuvY9PT5arn`eFBuG+}7Cvt|1EASGvc8Q+~5 z(QS(>GE49AktqMxq5bpd#QI!%s^GoCt}3tKadr{pR{WmKxc9nwnZN6l+gPER;UnE9)~zv@|^w$@+oxtCU`Z}^h3PZlO;1(@gl6*&IF&VT$T zaKz-$P~<=e3wZmg@dd>BuQvSIDj2s|NlnN8;pa1?Z;n-_;U1fiwcRWH3zMh-?&x@T zWxd`C;0&A{Ah@%`#wRA7^;OwYZA3}5bt0_oH3-a^Y$DopQX{~JsBlJacDLC>9YfaV z?hRk(9mMOzMj~Qn_2~(-Ik1qW-{Yg0_)|-osKVd1|A#LvH){Rk$B%Bzz~d9AO#k)#uYdi2 z3`76l`1SuN4t?`A>;=_tUrYS2#N&UHeE&^BX8-RLm-+j2G1JW^oL1t0312KIU#OR(^C%xQUnwI;*)) z{7-tHA8(eyD-D=)bIH{ZCSij=#xjhItPf3(kMkorezlJu_pGkKckzO*kTp^1&UJtP z$0s%>zvqXY5J>CJ=}X=jNIBx>Tkr#c>Sr!OoXN|bk)06jFQ#|rjU%{cjeZC~Mc(_^ zluyabufqAD?2j6^2!9f8saXWipGHoTnP1v`o}E}gC)W0~4ZNVQhRxlmk(n?MZz%es zQnkYqnjfORDM9K`w?cgkWPipo;pbTKncfnqg{-A(WQ^}7+~#C!i<^8Xw1D6v|M@pBh^M2;;2L<)!@O(ed(Fq!?NTb^4_=A+B8tkOvhjoO| z9hWR@BYC-@y92@Eh1MkNbCEr`bjqJuN9`dO$@A>T&tdv3yOd7vp#Fg<<9xEQW$mBD zcE)@6UH71!ku|X)SOmFSRR)9Wj4C2eG=UhBt^C75Ss;8AUX2z2|) zBZ|tp1Ixiqf{~WdAO9#mTX^(FqTWSIcqy4DgI|;Y{ciY?bnMuMnci!^@xvLvwXzGp zP0v*a*GRIBZ<}1T{PVICO3;|x1kSm43BN}NyOW(_;7-$lWVmm)Lg^9r0~bhlmqH1m zBs*|O9U^*ttf`Vo|HmQxH0P*xzd>X%Kb-nV}f%w{Q^4$ z;xwYT3qr&_o}GK|%&O})jBX_flvoFqI9wEs5hblKH>DbiGgU;Y7fudStnzSHH}=_cjXZ)?@Y zLzdG2MRE)Gck6Zqye~|Hch&^W{h@6dquTnV#FmJNE|=HFUEjXdiuv~9kku8Hm#nwJ zdkhseEepT%bu0e0epP$?c8j5oc!LKsomACsM2pq=%0E5cIY9&T=3=98M3%odRc9f{ zsAooH17EUhV~KyJJ}BhYCCFKi>`Ot=5W)0l%c=)=C>U$gR__aOG5QH6Gq1gNX_h6{ z`UeYgyf-Ye(w=y--Z|qKL~y%fq;2LQ1x`oz)77GC4zr|43)xcW!X;gjwGm1rh%ppI zj?y~GNyySAUVHPF2q?hnGVsYH&ht{A#pzu8rmrN`V5glFtTlH>blu`{2oWu=Ja4u2 zw?#~bt>H?0?(6AVSB)KdbsJIc(AyEDU1c0)xm=;!EgOQSE>UM5}9g|Q5VSX>%m4p4Wz{ltx(lQ7Ujx0@We5;X6; zQ}`y;c6Uu1agz#Qbu@$9I$$0*?&w$_ecR>5@zFDap+P0}Fb>1s(id67g5XIoMu%7W ztfUqp(DpI+!79X|Mqs9Fvp@c*DWAvj7d)NQo1@?u`k6tYZ>1jaZAQ|&f)uIUZ1n(E^m zw6!>GNh2GL)qgpO(wy4jh?05=~UFHKF z(vDz3c2Y9Q+T6=wep@SQKorKW4;%F&%v@A`tD3Gy>JkmUw6OpVU=s|Z`h-s^Mk5>; z5vttN*Gls?r}?-7skB=MW8@vQm6m6%E?gMcwxbxV!4D^6*-vC#j&eMu!)FzusGk^X z=SLL{THXPA$Z;kf#`F-g);$Eezd3%nt??nyUSqaTS<~jLLUuUKy+#%ZD*j1Cw&<18RK8g8 zBo4)w#2KcC)e)DVOA233g#35b zSHFWWQQ|6i-aTx4mZBCsvMV2$i@5M__{e%PJ)ug$PqQE4I^!_HLecwZ-dn+!bkm?% z!3)?Hm=uypElViWWsRY)dLF3aT`2PRA+l$Sgr_ZhjWJgJGAxttU@pNmXpvZeODo5r z!&hhEy_{RM@B{a2cCb1LbvgQG!ViSAC^$?0En2?JGg|gvXF|X!k5W04mBm4u&qnp8 z?<5j=V1`~@cBW3>`yzbhcekzYd=BXqXwHO$DuS~o6$?6S8{3nbzm}(YZ?!$XN zd1&NQ`8CeQ#K&90q{j9;B;p$xpNdStxn7Fm&)3S%Gl`heD3~Wdo-~5$+iFjAFg2- zRw5VM{}Ef0aN5HvK>-0qV>F~MHP8~q3k>>&lwlHM3~h|C(#Fh(di-#}XJ=0tK95OD z8z5^o4p-v{Qpk&tLU)~tu_|DcM zQ!<3zj+2ThJ1d^h;V1m!G*4N$iT)D2ZKe^}G(e)xGQTvHvm!WasZXMKNjd+vwP@i} z?j@^75(-9_as2)SRZS13U#4&NxI>8Si%OSE;zo4&H}NVV!LgIYFyFU0XU!6(bVJGa z*_fvvTX3M))ZUj&QzKVOFW|TdyPiz8UxJ*gS?EWQoEFbN42u9IAaF~t>CnApbZUN# zakbd!v%vUN<&pcs-HH@unV4P?59%Qzk2C+pFm*OeA4Z@U!t@_3h&056HHw&C)I8)t zum1D_Tf&tIjufc(ZQlxYrUE(4aM#VpJo{2IFr>U~-{^T9tyf*3t+;J?EU<+jQQKvQ zjDlPRsW^AnYy(c&iZ&^X3!QITO3Jck3hqtJtc>o@GohT~WK%|nM~?lZ6dR~*Ogal@ z9^dxpTok7;3Q!QG*ui00@cIilA%-q{MXDc3g0LQKx*tGf>5#H_GcP}uRkijfycTn9 zi?9+C`U%VW!?3#>TcMgsrar0F_Qa52q)3odjR~2f28BAY3_+>)0kReOP;Ic@&RW6e z)CQ8JadY@aOVuN^!QoerHqMQ`90|=hLK{usNOX*i!GdvIVx;|AhZd zz^o}7$xo0LwN>t>@HG@&ks_`^+7@V{bZlaxeoW2!Xb@4paxMq)QeY9%_ash%4f%M~ zbH3$J`FwtO-IuV8qpaaO;GEgkDYn4+Tl`7lBd;e!!Z0D$-Gk>&?R=PSz&Y&W$a{E* zz02FLNRzueNX0?F(TsY!9F*(O&O~~2$R~%=8@`5rBs$3A-TW5(kvx3A;vvb00xUM& z=M?4S5u{U?IdVZzkmfI6lAf% zBrQZC%OX;vl|!jOv$w1(O$1Twy7!7z+aBXc@$Y&HvREX?^pcw~?_4Hj-f{>@aiAA- z#C(o&Q;VOGEf`4L{yeiM@WXT4>L>x7`m?n-MRcGBha*014AUA@KVDs$BR=6o(|l?= z`od*TH^oVzvb&~Lkr6?&;+v9ih1^g&MTxj+>3gbBLZk3_(D1A z*$_A36`b|5$FR$7A>u2ZZWERdolp*7qjl>T;LrGP@u$@qi{c z`m^z(B#cu1qH?L&esCKI#cFGI`W=^=XHahctL<8rK1hzc2^KV16_YY=VZk5^uvhUQ zIem*6Se!-Ax-dse@>)kLwCp-~!d|ECUr6*ay7_a?>^Y%|dtY-nIG6zjZ}M zS}ldwOB>4G}Gel4NR(dD*XskP-j4M~9RX z|MMoqYjVJUo%{Ze&OyJP+y3u^(43tA-yMYJ{Oe5j|G3X_)E?$Nv)gg{kh0=@$~)2i zkO@87V6a_|gL(|E_l`@5{nme1rvfjo7A%JF;hg~`qb)6vhP|$05(ln}+7tRAM>E}IV8S{nWa7d%UfZiU$4u9&bMA7z`^o!;&;Rk) z*64mhxfWBFmL`(ur}ux~iBf<&sj(qu<+{}l-{SVltrNn=WkrSYbnr;AGJQ6?^>ACW zIw^br$=~<1Oz)sVIo;Cj_0sG4>4wJDlY;|5gUd#w)emQ=#%Q`KS9{s}e|br0q9h^} zuIRC5%EP(sJTA1X56>oI;yJ8+=pz1GplVxbY5D=^ehm6?cPx{)y$}RK`v=*3QI&g; zmnH%$KXS&rwgN3ha&gV?5C13bxpdY_Gu<)k9pDG`ku0_{8v4PBTJwx6Sl?vB6v=16 zsF!rdkG2XHFrC=Hs&b@pR@Q{#X43wM4yO&8($M+BeXt+A_(S^u=c-d1y8J8tk#c{m zR$jrYVn!h`A;54C=;%WG3zdx)LUUa{T7TD)`=avEHXop|s z{Ts1L02yp?1w{@Iq3q6%dCKzG4HwhnjJN#r?RdHW3Y&0=yCJ1BA2$=j1S>RwO%2Q0 z*+vh4?Rl@K{|3L&&b#p&j%)(29zNIhuFgQ?W}&8)>@Uh?iE_>NuE}mKBlk5hG>k4S zPW1BU@f~#2g10r(WZr&vnLG9!58ZS1J4IzF&#M2Z3JebIrez$@Q3HG`{q3`?(Q4IX z+WZcMj=ez10bSUyaVhI8LFQ+{2g+|{eH$1W4FN#Z&pr@!b0p!`rtS^1$=MaRZR zQ%%ieoJqI2xcO=0X|4FCbvc7839p#95`hy-pL)a60(+$L;CDVPY&%%fQ1zHinQ=TL z6sSRCF@-6J(=k+7zAn_1ieJ5su?JA=quha=Sy7J}lJ+!(xb)P$Q%9et{->w!!*Mg? z^V@3BLu4o=?_h1Upk@0L^O^!i>e!lxMbAy3bXDbq^Sp2`gSp^)?nVxqg|_`l%cT}z zPw+iw@L5TTND!6t_@y9s=*PXM6XXz43%0~|$Z&eVT&3g(t@cIz^Xqx;)|?t=ou?JA z!^b$~xp9iOiq5;{1WwiyQRZPT#vf?abvJ1k-RNkGc)m!|F;a~r@mrj_cBGtyxVI8> zFxFdHU@mUimK8Sj3bZKwz5)}tJt3ti)@bEfhfg(J3g{g@xXWM8e5@UCf14EHO5Z%< z|L{HPZeyz1Q_9xUF>=hbEkHT<(9#J@8OvXGO7W@1 zV_}tu^l$Mnm?lV^81+ltuHrz_Y&mf+n@2kDRHxfqat!1E8N>IzVzr`GI#tOX;lJMn zIxck+%i<6gTUY24j#a#qmvuC50E?A_^*_3ZD*X)F%+I%}m8FL_1*j@nv6Sm9Z3*!F zTB)jb*^!sh++$#0NHIWKdY^8cP!T0C6fL8H9U)n+>O4O?<;f-P>1gN>rwGf}#3X}q zJjm+swpD?zK@kIrKNyl~`|DSw)gqHbPBkxoG2zPbRL zhQc8UDkN9~)x>q(d16Y9Aw~Hj>on!s!V(fE7zeB*1VJTW2k$-pAdW4PrV;^h^Y0kL zGk3VZy&KJw1d>u5dk7C<+~D59@AA8~AG~XnTKR|I-Ou;hDdq&S>94+o0KDjfO)D-J z|7wZ!$;@jionB9R^gEKnvGG%M=+d>vt7BquyszJ45beZq&mpD&ODW#CpnpBJ^~{o* z8`S%@->)*{t)$9Aq~iEI0t5WMVMm%@}6^VICC70;Me zehOlx*3;XmNm!52mo%m)btz3x&psH9z)q_D=`u?dc`yw~QL=7Gly*r3vTTnnJFQQz zDpdushs-OFa9fV(D^1@PnHJlxSwRuqg=~0#d4m%L62>k658A#uEUK?-dlUsFr8}gR zPKO35L0SQ6=?3X$P)h0UP`bN2grSifx&|1!L;5@D^StlxdA{%8kL%*P;G8piue0}B z_gd>->zwJ)yO{OJI>^kdv=5ot*=ai3jjxY3aC+=+Evam?aZJbBogj4nTS(<*GFGkT zMu0L7k+@lrAqf58x6@1FyTE_71kkUChts^iYA;>q@l1axzkIJBF5BQ-ACysC%NgGp zvztIz{vc)zvGJHfI=4Tx2KlJ^^2^uI9~tb!dA~E&ujfDiadfgG*uLebs5#!ORgaH^Wwsn9}qt47rG&AUL%tgUyqru3})M#JJq=jVY`$;f6exIvu||GhYss2Uxv^g|pE5Xz4Mt zahf|t_80b-EO4op-NtylJya2GZ8T^Wdf9;?QdY0N zji#;EU}WWwNVIOWM7ZP8=529>Fx@UlnY{kO9-ax)q7_nL{B00DX*Lv% zK4ISX5+5>YuR|!MXS-JK9zDX^_@ImeYEUDkg~b0Y^fPageGKFzs8!&vSKnkX_>}UP zcg0a+)SSn+lsEu!{W2>OHYmMbKYn+~CcVxlO+ezWk(CuU>G!gw8lWhd;*X-5R+(cO zZ;M|Uy$l$QbnwH+XB;-eb5CK8gkmcY7@6V=I1KPfuEUb*D4Sb#jbUnh1Cm3YnQcu| zj*j_`z}A#>;IxMy^T%oy^N{qTe#6h;(Qtoj(^6@1gJmU+c*W;bRYt2*w=A&78s5oO z%%56rf2G5kR*Pz0tyw%mk^@G4EN+lW|5n_x(lKnp)3P-!<6U6|DlEl0x|ebi?4+q9 zLG%vQm$JF?mw8l!TCt(2r0!Ik0Q1Yn&y#4Z=hP22Ff>X!3=WS-PTZj+tOYgEP8XWh zHC4BGjW!VBmY)R^sHlZJ)1{s#LN1|m%a5l?iXG-vOAf8++>5Py`JCV1%?n6g7I+$( z`A7E*x~q5MPZFmVR+i z-&u$1a_;dq3rw^osN(~vPrG^LW;V=c=vg@j9)d6Q(DOgH2bG*xT|ev%;EOZsPk!w{ zh?7o-n}%X<97@jA^;lohL0Va^5WhTC)|a(4OUL|PPL_O7QE$w0?lQ=zUDPFgAsoz9 zNvkQjV)k3&%@4keAk-LB_JDNgNO)qB=Zf8<=*R0t869MqgRwW4PhAdjJm$weD+}2d zpV{cjW?kVBIuOJ>fuxl7OyCo&lZFm;2`DaNapA=;u#K5Ml_f!+j-}KytZZ=`Ea~S= zGTmz)jBoN<`z=uYZor>6GtaoPxrh7igZiqFn2Si7IZne<){uuDj5{3|gm+!9 zzo)+2#+uDpO~h!(Q+_HG=53MonS1T)2i?kf^Q1ds(g|PR2`Ovkv|w}?TUm9CU-?!9I0b%s5%mDR%7G!0jjxsbd|JRw)m9Hvr z^LKNKz8w6PRNmZu+X}aOZJ1voIIOf(wkFM5I*(80EdmC|69sDLwt@Xv>?7w3`itQT zQrfp>LBg{}{d!&j&53JUr7%icn$(3kO*vsI*oW16cVDl`+*e&lS4;I+I^{yrwuSZV zGv9x~KV*N2$C#i$0_QMC%fYhi&&;+5rN&TsL0c8+}Rt2KPvi?FM9h;fTl zHt)dgpzjm~G)XHhy;!v}Tq193vZLEMIV3BzBd&TDE4BH3K z5rsVUI{E8t5&>s(WM4`CbMvb)$JRJ3_xj!4IAo*rH{^=x?rLdAul%WkZ{;0fVrNe7 zZD;k1JELEwYlu+Q@onx22UAwf56uVF^&=AYg@~bF+nZ+i>ZQ8a`Hc9P7LyC4%OYiq z{JbKK30`C;Q?A0pZ?;dPN(1WeHU=*9=^MC*2dd*T(O$7BY$|kh9UW_TF!{?`SBgjz?@ogFz9ez7j^F4 z0vqwV>fDq{B5;W*kGiPj?BSqm#rR zq@TZbt0Wvq7r&JXO1I_Rf)*NZ%j=vj!(f{8*JU-Qs|&AW$)u`jUg=S;+i~+7+TA3^ z<^K45)49#ExZ}}U(~&dyvX>{c#sp^WzwRH>MhAdef4@UOD0}hG)76cTi%QHB@z|+KYM9T6+Q-l-qM$kqfzRO-f0L?XAgKzQmq-cAs;G3LbKkNb5jlywSuB#h zd#kjwdgqY8K`DzK(^V8-WX8FbqnONp9-AmpI*`~NoSq_F{KYl#u$b|Mj`P_@Kb>k4 zv%Er0ccdZxv4j1Q(;O*{Am8NNubhbr#Yt)ib;WAX zv;$hz+!gKHq9i5a<`*6(u_1GoWSd3QjjT;sJpB=aE&hROgsTamYAD6ZD2p-q%BG|| zMmg{MjW+F1kZFpEz1p*+bj*5#aHML!t9?rS$~d6bE79d`bS7BLYk9I3m9(PmYb0G? z@0>c)b1wS2B7xh#Ui-QOQDB!y-`pK*IY3wVrj#N240c|bD>x&Pq(AU-h$A4-8fFg* zAF1k2w8R{I^#ScdRm(^pscdc4;*{UX%*)8!ie6Q?wOR5JCCm6%9)d>8=~MdV2N48v zHQIYl6g9SSf!Oh=y{3&t_3Fb?B@wL@jxKaBu+5_2-!Ojh^kUw5EjNe zE;n5J%OZ6`SyQL+g-LAuk{xxhd<}fWNJ|&g7To!WUvXdiYGz!Ut2jemP5SWUu~WIr zCfnz%YtFbBlLsJB)h`q>p>Uf*(@=&yKY9XW4Q{Iv)*bg&46q=)Sdofp2a9o@HUi zG5sk4E;$KB%H?;Pn*JhHOY&n91>rDesuVn98Rs9U3>DO!zcsPOhuO-1y_`{b-|T%S zujgtd7$a+0S~Ne#TJEUd<#;iHVTznkZg7OgiYh0g&tvU0m=C1iqkxO%aM{NCJo5Ok zmU6zStfS!Fn2Gx7rMPv=h9#Aze(#ao?CmL<>@I((Y`lQibd4d*omRvEB-+hhmo%R~ z+ZtXWqF#f9y~_)q*%b^ojb|O>>^w=g$#dSw>(Qj94j1N>MoBa={sOE~L|9SIRP)U# zqrkC)QzM%rrYjPSVrg?PMNORJ;jw>UfT#mqvZ_apLmPt9-PO(%U(Y9F{D-sOnxr%n zosPuNA^8x4`B?kVvQO@@Ph{3H=9OQUBk<-139L+EhemH$?j>$VYC4Wlsyj(|0SljwxYZOANC?xCu5oCdM@jRJ98=iPS;j zPQX#pl!=+Xa+RFzfY!aSW4-1kQ!&f&7oZROdD$MM?>VPzi!Jg(kel0{#S?qsq521g zl#q417)NZrT(M7#rV0JpUC8?7aUUnC;QlLMrJ6mIoFYWn4( z>`c$5!^%FmqOCv52+{yk)x8%_ASe-f{@j*mT3y>8C5+i6|H~T28c%5aVKObqJS6Jo zg2aY!gnEh;T3s7CXWd;r`^^&ZVyuGC0IM`=CiE?Zmr)od=V0F>B)~`~l9dS8Jd5q<7#W?V?xy98gsLX!u<8wWh9xh)YGu*p2Z{1$7(o`)JNKx`VA(=pN91oh zuJY=f(>PhA_m=5g;QzV1JTYXriES?ZQ;32I?&|vH&p&d{ZMb=2jx?C+yl!t%I&ZPh zPrZiBqzl_*Zi6;T`BA)Xm($tyQ-Rd_SLNA|QX9;{Fz~siP9m#`gT|s;7S`kf`A+uu zx_D|DpxNKQW$mJPMs`s%NFIka3S3^d6Kr5L+p)N6`)8Ikv%Q=usnu~`d0K`gW?{ad zq5jMoqX#bxy~yk)GML;Ze0bk&E(>Sw!6VQc>6qQ&3xp9Xc=X7%htPF$Hs_NqP33He zWi2j@RVQc7bk=-?Lf8HktJ_H=AAb)w6D~Rk}H0oo_wMtZZUNy zy3VyL-C}MpkIVc5fo+Uwi=+S;)gx=8i7#2ZsXL~GRSPRwXAvRL=NAW-T8fy-Z zM^L^?mOM!8i2Qu2E!<>mmn~nYVriX?wuR-gbS?uLCCa{XQ0y-+=HVjS*|rM-es%S( zwiUl<1i4T>-FIG@$?mTjU~e8wUSBuI7gT3C+Q7Zppc*TZV+ZU~1;Zcuv-jJ881DVw zJHr4ZfhfpujeVdGKv~#R>42hv1i|!upl~G68=5ka`v>}5Kgm4;`3!)r9Dsj(P@obZ zP!Ib5zf%M3lRVz2VoKd_kG8{a_<%Xvd<_i(#E?Z+#r>!lPbFK5Z*D~xs9ec_Q=(~A z0`vu7UGI6v&*$KDojNozrI*3y;4}n8M)UxDFR&n+z1(|AG0wLYkGmaq&BO;!Jkg3L zHOR9ks*~}Y3j})}ZH2|-M`?)Qq6lI>%Jz2+hu?MT;XV_*_nuV4b!50SfqSyZ$Nw+q z_UO_*5)5q)jvxDuegJ+JL$D$=w12m|`0r0E;s_}$8U)4IEf~-`Bpz!#&|oLFs9Y^dAW3ypm27oEY}%St<3&mK~GDtdE`gI1iuA~~^rzIfsf zrGbRe7v;BcOin3RQrfey4?M*es28ZP2X+h&jz-!JW6lZmuVvV)62 z3f(!4F2e7O)kd@#c`=UdaDf!X^#n|3OccRXln~lfmnjBjt2w**-B{g-9_0O)ax@#k zPPdfdDeeiPb+wR2{!7nJPw5$QUEzMnT-Q2}_U<93h=sveNsg$|726p6;3mwYGH`Lc zY&&afRpRH|hpv)Or!$jT=$6kJX#ugJklXY}Cr3g<*MsURVi|c+w~me9TqSfz;lztw z4?sRf96u1r?qI9NN_wD;w#BYNP4-)wbbJ%5)R3;3TrTlGKHjAP+Zb zucN+tf>ztd>YpcOVkQLZm=#BNh_G}sq#A&0V{V%vrJrJ|A4#xpW5-vsRFneiM{`64 zO>$9$sTi%jw{8Zr`c{2A07Hi$sr_kF71n|fX>aVXR7*|%(vFOYJZ{b67b2~mHXj5Q zy(_&>qoN)%^{Q_Vtj|@f@HuH;15$`pAvUfE6d$!4ump zWq?Q_IF5Rr@Z~%l1!ROHBN$#8L|U~NVUHp=yBr$)5^bO=fT=SS!4t`%Rj+;TjF4yb z|2iXASAlhmOEfn1sRBDdhhBy|pAwx`r+0CYs7m`u zwPEM3huDLfM<0MK>khBe&M0hs^od-!)2ZDkqz5s5eRBhe)}^W%P#c%>u>`^$B=PMi z7#2=D=aRd5GgesN7aj)5>OS4hOB=*YBK65DO{LBXv}VBsj>29ij-z?MsZl8rTQK=X@sF^_|T|*y2%Zn^O2{P;my&C zV5VmF$eP-q=H1%JvCG$e_OkSWu#d?INPok#zBwXq;cVs38u;ar1J4N&s1mG8W zhZ-KHj7!_~<(x=dU4Q)CaeVci@J@dwJ4;(4DBdczF*ec}LwgdGAwWNpp z2PjP>=>B@lunjCRhM}$~jBn5I(Q{&fK8| zlGb-u!vmbUOj0W&6)niwQtc~|0$5~~xj1QJD_6R}aYucWVS2f7-t}?DXFU!W%mcCi zQ`_%l39WHnidtp4&1^YV612j^PGeu9o@96G!emHr=*=Y~VbVa5XGxN5T>PDObqpu? zc{tZdrWsx1iJhNbO1u>Y9;@NQ!iPY%5W!D-=neFpq`puOv(nU#waieh>RnH&G@ua? z`Q)H(ogItW%Kx^a^dD~e)3B=H-cEjT)kp!6lX1hwtol2XktYcDfnQzW>PI&T+77T? z>q9BGq2!L!&KkF&j?k*yb1sAMPVo^p2j0{zQjZeN@5lY!`0Z3Fm6oI;t&_OZ-dRv( zyMC}GB>9tP7lK>L>4CL&^Ypcmut!JN`_{&bOg0-S-U^@QR!P-{wZLE3Zrb6k>m(x1 zw_w<~Ebsh4YP0(;ugrdxeNCPQ83?ku6!|Hfrv8bvO9=~an3pG>af#3GtsA)TK6d8S$96Q$mxtX4m}d2cN;my$SA z+j7YSAiKeM%REBz4^U`YD_y{-tEe#P%&aOm=xggtg0vhB_sWVIOMbgbUPfzg6O z1i}yNX+(4(ilr=<1u*KE|1Bq=?dxVv^SDeW>r&`2zSsym~H;^%dNiYleT zN*^RmhWs*q;)U!*u;g}oAMqRKEZG6U0H$k7))M8`?-(J0jQLSI?~fgI9%NDA-^=#o z+t}!p!gZ{DsNc>Xzs1rKKH5z+M6d;;k_ouDAtKpG7j)XmE#lEg`5GWRvvrwv`+2zu zGyp6X%Ve^o>iTUo^m>>Mu%)f3T znzO?yUOC-~Ra}GJQxHXHzY}K}-uE>{$*t1)hd#3Q|C_{8*b@Zl#?Tkgh1-W86MSo^ zNlqWrc}u^5L(Ue{dMGa=dHCADwRBgK0EpRiF%Q6OlmUkk;sG=K#kY>FjBgz`WPI|5 zRcEgVUbX#te|vdkszPD<(o{~()BAX1x_@>O@f7WYp7osP>d_Ae>%b)8l>m(Dj591q zU4+mT7lIwKx85UrMnPtMGcCSYvzKRT`;BuFWp|+bc=iHqxF=mzMZJ&QgYD8`qJyxV z+i<>sJXeHo-u+}&D}Arj)RON@I5zlfcSQE==Ws}a5FuuorO2G8=9I!gy~RGf-a?79 z%Y*E^QbZ+%aamjS`Qwjwd~EDgR|>l_nX}WJ@+)uX6#oFVRT)y z^$ae|SiPFjH3C#-X$=$}t>4o`33$cg$8+L{phaQIO}ntYS#6DvYJrR2f12*jPJnIQ z%ReVzg-+|17wvuhO^c?L^CL)zq{Z%xYY(Slu#kXY3LyHWEDMwBOE$l@4Oy+ErAV1$ zzQw!_OSP?$hKPiH!Y)7zI`QuyBNgXxS7qm&oSrY>YO}fQBvAV@dO<>eX+ZaCSw4C>@w=tq0vj z?Z#7@Gw^eRmP3}3ps0OIkI4IQDjrEtA>jE5*t|fzu>KvNDy}_?h9SNSj_KgwH#4#? zF+gY?jtoinQ5l5KT`q4NUBo&^t9^Qv9&pSi?EFDtLVI^_WnuTq1P$^-Gv)}sVpli$ zzN-4V8ffi#**Rkx++dB7_#4uoC{jsu-6|bCT zHDIxeSwt6B@GSyDmncWmA+yFNn@knn$xa?yq*}D|Y|gSX{@ed!3UpVpC$eaV6bL8< z{e$cz=rSc?>uEsksokBeGuU6Fwjn&wrrpE#r2Qf18bcpk!i`R2b@rFhT+k6=wtNIM zGLaHSx`?N?I`*GS`QTsSca;bR?e{E?6s`GT@T|epv?9J%Q}0B1T<=$Uc?SHK+bL4OkOLv`skKVLIF>e|ryyz(dwl<6B08EVhuMEfG#?a6?P@|%aU zm(>#;^M44raf0W6pxs$$|&L+Ur!JWgGoW6vM>9~~GDx>o9SFAU$I&j z?{=oS!l7K;+}vO=n4SF>3ogEv4J2wJ9=?_8OSVyVUi_Awi)Qg-)Iy8&mqh^{# z;UjX|MTsLXxieP%qt{^)5XxpQyn7+(xembQD8yo+AtC5kSkaOA#0Kphpa_cyTRJ<@ zRZ`iO+|}8wyCR0s@y(=xv*khU`~mjh_ieFjd! z@c6lJ`t9wl5!O!-2p97rCp;viZ6}2APr~cEWT%4Cx+ucU?N>MgO0aTtalyjGT&YPV zMEUnrqxwW9Mn+k+wXde(%plRI=T{HHp}ro@IDaYZ$`9qW8wmmN!(XMNNQEB?LCc=PhYn-wkGo7XiwD!|_bPMSgV5o(_V5(JR87;)%B`Q9y7j%O(iALrVC!p9R;f9)?-`Fi>uy?3$n_M^%CmpT;J~Av)??G zw8qEqcvHzj$yQipAydc&Bi|&tal1wc=t0V|s13$ceAslD=jU8SO3!*H{Y1$^-Z0L*c=^Q+qJrzB-j9b)`@l^9ZONnF z#Mjh>YTiFqMGO)ppE>s_zP#I*E`mBR4!T4h<`S|E&-x+d;^MlJQGN0J0u&^gGQ4h# z>0=`#05EQLc(E%PaF808G}}K-eD^ZQ2H`1R7-z5CFspqT7ofSz@Dx5SKWN>G?(X%V zwDHs@I_Vf~@%@11#G5Y*j%T^Lwr#Im@5a%Cgu8~%tupgtO)1eYJjKsj-F$=A?KYg` z)%hvzjWD`oce?c^c&qkk?DBFSgD%$w(Lf{x)!JOq_j@cFcpQj`1D!hGw(n z%~R;@<3|Y(5FYGSs`Mud^b`lpXkNI z4R~(EA-QX|d-fZNX0K6?M~xA9Kl6iqsMOXe+uoTgQW`YgSw8yCQ)qv5d~__;S9tLw zVv{7u8%A?ikES82?D9BXwj#a%i0gbRXD?MlVPrq_4XbNa8J+rzhg4o(Ubq%t-oUdmjo7@l z0JcaXLh)c9AB{T#_?VIV#)hd49WjHkCx~@d$OFLqoO@P6cRdg=XFf2KE`jySZ zFo88lb09a?HN~0UaW5x4gW2Ao>LXO9&5M_38HZ`Mkb(UBbL1 zlait`l!ia(?4l$)FQ;6}TU>ej^wQuCkS{l7!QzE61?Ts2HKIYW0#*9tov>b@_dEcD5om76m{&Hh@(|g2bD4 z{A4lPw;M`ZX~Fi6f(TX$2W3m5^>5Mkr|d$keG`L^EMCMXQ}#HKP1og74~rhhPb%RJ zs;jTq(IS!=`?z>hj{VlT(76N!2e95`%p+`a70;U*{JkZ%AMq*C)OjsA6P9l1nv4C$y zFbuYhf9py*2rr^@%1+~O>Uy(#RUR{{Ycj@fp$W^4si(2Wh;UX2aq^-*G4vQP1|Bry zZ2p$PDjQlPQOIgh{z1{{BN0S#mI3dyp~E=?KSDShckLKMWNk!3*^(|Z7X3CS$$f%! zGG`S*T|mmRGZLf^Jc&pj{^b}viiST3f5ZClqWd&-&^Gw2I8uYV`|4%3d1%G2=!faU zh(p)zZLbeMxrG2)WV%1*H4uP-S{$_28>g-aRKHvqT`=owKL4W(=F4^ln9Y9d2r~<@ z^iM-e)Iq|~)S~*LoZNTgw)H0(K}q=|+E2sk2vo*PCUYquZL`PlX_t^lq$@W(Clj-s zl7$2y0}cz&bUJH~SQI%~+L3im7X*VDNdhH~!Qn3JDm*BymL3OL+jge?udXKRe_!b6 z74p3Mc1KL5D}&d{h+MFjd}ReYZ_Ur#u%@r}>$Qi%)WXW5^d1;l)K>YfCu&!-nYou4c!Jq$Inf0eZXZ--A;8GqvQ_khxO_8={cC|djP>)nngIbzuL{LE;2Df!7 zN?PMKf3w?{J*(&vkqDq71;C1}5O#gqUnFUpGN-#>&_bf))Lf|L% zzMeHLn!EDVvY(J-qIdAy;;%K7%=Rw|ohz70RYyXd{if!lk38Jmn$_{TQ2w1dr57V{ z)_3glc#Iv}K$1*L@6O&|eeYN85^C%VHln@<{nbpX-dHL=t|p#u{;Cy9K%sG!nteXK zm4`_$mwtBOi@dyu^wp%qodhes@|tz|(4IUFz)v;x_Vhftm~8z%xVgKFq0_~m_!&y< z^17zu)!c;LS*LwahE=jAzU!8sP*~70I4YjI69`bLWzfQ-CtaHt_V#q}PMte4V?KZW zT(?Iv^m|#4WO=$UGj4umjQF5l?icl(rtIcfn4CmEG02Y52U)VupBzAy9v75p_;JxC-bJJT*5>?(JsLyk!Y?i^-mCl7=pmqy60T%e z2)m+4I^u4qF-uetquz%cC_tf;-`1oqNzRAYP1Z=(AcrG~b_4n=#*RL=xR^d=X5@pU zK7s`Di}328k~R>CYiSX_t=5Qs=9*&1&;i#bNQ3JCPjNXjoDW}kL2uR02(|x&Xb}FP zld`C=G&XwR%#hv7XT;>0wii}Osj7r$OzBZFgF0lk17Y8xw9{Ke;JHUk zYfrj-fu{H2#qDs|t0Z80DvOPt)Vx&`e2|`t@P2zd)bQnh)*FsSEJ%A`fY#Lg5EKD2 zYUSYOj`0~hbZ_nryUD&^-4I>moSaZz^$AN$m$XZn1Mif!L7nPYHU8@g4&lPTMbvfK z48pJ-WneCo1W`nMD3b}Fd{q!HpDB#j+q;;dg6Q4@VF?a_JA~-@g?-1y#<-@DNkKk` zU5Mk;v$JkX2l|Q5$t63VC;wW{!!PJWD?DIelfhm{AR@wmz(DxS-81^()AD~iG+?+o z(EwCC43@8?NrIVZKwrx9&w85lyAk|b+4a;>mxxI!Dq>NjA%ha0^t8|| zY){hr4t|C{pa!6-2S~(pBU~vt+1c5Bw#R@(4Q0CX=M`pZNGsDbU>vG+sz+kPrDl4N zL>W3c|UIs+3AQpWVa~O4f*$Mwi`|Qcj(~RNX zPhw9%R8C*}*X!nODiq&3_uzK%yOKS_oJPOAfdo)7`aTYiCPME#IX!(rDI!+@t$GMj z@vEaSTb!Lu&Q~Ap0HPNot^>h4G(ZSu*OZ?`L_|tps|3H&StL*vrrmT(OG}FpRN(o2 zm;+pRw_FOu@MTMOIHDK9U0k;>T|lB+;%Be>_Q`-BIp-!gmLTRcF<#%ryV+LpXEE(x zpx+2fVQ9WU9hq&#T~u~mM+@yfx*S|uyuD2SJ625RCq^=cB^(}*sO*nxvGc4CJ~Y$M z!%6QqVjBGxE^>$UM>?{#69>lY=Xi?BfNUgvdLQPXkvpzXjQiYTk+#i9v@3FlQ544q zs{BSi<11dW20|@wbQm{*+kM)}-nV!<4M4z->jMxKa$mZ);+Z$`!6+FZ=fh#ux6=4Z zMbP>qM5~m^&E7C%)6Csv`F*m2d~z`1IAtRt5li<~OhVUJ3a`rJP`)mcR86get+>)l z)n!_*!ym4X!*Oxf6oZDAUTr)8aiXu;at!(8$^bZy?JAu`qPT3>wQp0K%YUwf?Kxt!3ouv{UGsCbPt=|8G)06tn0vjDn?BrlFpMsJA!HQK$J zjw*Nw>uGJT!2^X$m{x{1m6(2C5LgUch4536r*|oKGk2RhUEI>{D10E46=;X|e81)^ ztiu3mKVgim91O*f?t5G7F8Jo&%~g=XU&L1UK7MR}2onAB+f&&8s^P?oUHGrrq@zHv zvf~$u3KP|~$`Yz9f+p7#igh6;+KcfSua>7g&~gPrNn*P$X7n1-4>VB{`{NXJW@#bCujkxM&$$kD{4sP$#()TDNFGWSg3Yy0N8<$yItKM5; z`|%^ybYwTi-~oEZeLT|kK|!Wp*l7n+OTMp-aQz+WHBo@FJx*YZ%vc~Az+4=1QG>9CspzT0ASd9OYc@sz^IE?-&|IJDe(RG`-mwN za>Z@|Lvgk25qo?>Ih5M7Sz>*rhdUFF$lEA=;&TKj!nc@bBED2$$J_t>qUVwfrtWWc;}sLtvBy}m)k@qW}wSASw0K%Chms0fA{wO=C3vqm$7wv zWqX;G^7vofjf}BA<#WfHXYV5chg?8lYu&)MA*sLIf?SOZqA?Zm^H@8p zmWqtilY9POeUt`j>I?n<)dmywmSybAb&xUIqp%S?{WI|r)Xo&8^617jt+1LSXmIbk z-R0%wD%P5ikWgmY7@}6XmG3FlJIHOv&81yf9Qej$JNd1R~mN}S#PJR^YYF7X$<31 z@N#aTIy(~o+a(zV=4uHOV5+*wncXIJA9X$(n;1%%z(2z=D={McaVCfG85TJ?SQ&cR zn;mB^=G}EP_rehVDs5SC$kZyy!e~X)&(2iEjf`#>TQ)wO3D~bDr6cf7mFp1g{eH`u z6S4ZG(egyZ4X=KjlZ8>EeBhURN#CE2 z7p7K@wx88c;6qtQVA(MEru{U~X%#{!>wPB^Ot=PUZbXh>cZ1v=eU$5|egd@oldqBO zr-+?35Zwp=*+hX9 zP67hSDHsU5QL&W3{ef^x9y`pbG*%_%Ebo)TZ#O@tmy!s(k|$apI*oVD_YaYY0_>!Z zX*kfNgD>11!z)8AizVBGyNUkY-Z;qe(Q5!$3uWM`g`CHU_@o4P&E{6CDep2Znq)Nt zpu~hRf^PvRloVJ;{hSYI!cav7F31s6q27v17!*n_?dRs3nie+2oPG#y6{4Y|&-PzEAmaA<#+nft<*$jlE1gb!lSPX1 z)_U0SN|t+i-_VCcmF*uXX2RT%KyBcR)%wePNF(*V5(NQYdu^(g0M$?U5lmT{vc^5~ za%MHD(Z)7d{j%QTZ(AT8#U1|NUdDGg8eUfxeas~O{>BDj>vlx+zb=g7K_5?srmI8K z^`gNn3l0|tab2-M3S3+r%bF)L*ADDsQ~Z5b#gRtXg_eSFoVG8qEE>H7!MM~(Fa-&gcK45raza- zQG^3!nKi7%IwcGcd!pOfPU5vf1@Iu$G)Fg(y?{Vb{*XNQm}gK%l~#kwN=2T`ie1cH zNHl?>6yRl^e$h`zxa!4grTYWPz*~S^-@lCgQ~EAQIZUUeU|1gn+qlT4r~z&0v^dAh z(J#E;Vgkzr0;K^18R(iSpwbFR0e#DyKnQr$*!S;|K*O|$;5uSpeuJpJ+SPkR2Q4L{ zQ=q&8{_?>Yy@>-H3~)>^x*h)W+8F2lFbME{;n$d4vBU27S@xgnq42{V$_hI!V8#P< zOw7K0_P~IED00L1_nZdk00{qak0Vn1MBY9Gk`3DRcZ}~Yq@VxK$UqR^OIgvZYg=Im zbYjM|A&z_Z**!dfe!c$~;D?3l(*0;ZJ$FQ3ifCf|DfcLLd!$qe>jG-h&#=D#`m-p2 zlCnsD3P}ubA%%f$*86hP{l;WH+w|~a`{SXJ0H>-o(sE0@Z)dO|lDty7iwx9;XC@ z?XCBP?wqI@N`=pJK$Ik8?iI$Omj7z~w*xEGp_vn!)Jrh8EWuC7W zM!!3&Hb_L+so7Hmat>=$J0T+9iOlU1bCKNp$bQE%2QUC`A89w6I)#OUi(lu9)6wku z+CiOaUroLLULVDx_m2k?5;sNm4Eq1KpOgNZVYZRZMVnt_4~mB8G1uqI9Rv*Ttm5-x1$N+JH(kc+JfW8A9iCHuoBE>hFe3>_pyNr$?NO5k8Hl$mPtKN#3`Vn%6A;R%$Ha} zob-lZWDt=leI@ic)ZoIG2Y2ln`06J)%~h9Vn_7YC2eQ#_6bL>6A4+$}tCf5j%97>1 z!5?|X*PdvmbWQDIE%E&oM;h8QU`?TC=9GTBTJ_F?%Ym=GO{PviJ`|zWQx`4+TDl00 zd@P@Hl50r4*LgAoxYubplW_5{t|OFfBa|l~&NhuXkS0!f&x5ZQCuU*xQ6JZ4Nbnw)e_=TXny*OGR-Wgzf*(3Mg4$U>n$@n4eSqXd3 zBf&6sp)>93S-@;Ib0L?2*_@m>(y0bWV}c^E+u-*Y>H`=!ErXtLGK@L#-CkK@HAxWf zs=Q9s=9}3Ku1O-3jTI=9=^vt}e!XONc7mbgY)_?g3jAh_0iesdkrMAsrEZ z`7Vbq_{WzpKBADe$H}7Uy@@0S9pFSExVD|4OHFb|^9;kF_TZuYV z&mwi6IJ}6R)YWLr^%_v*Kvd6p&aCEXHdSv5!_)_O|F8Tb;7iQDLeGDt46;eF+Mh=V z)a12v94t&4imEiTod)JF#i>mEI__Ho|8wJBONcuL)c0Z5Y#qSOs}@N3+UgiY3@CpAbRQczgYthtEEhQ6t7p{vCPbWKq%e3{}XQY z3XN)0eiYB!AAy7}YA?)rV{#a)2RaDSovtp0m&aJ6_U56g|A)J`42x=e!-q!@5s(rP z!676CBqWCx0RbrqrAv@T7`jnZQikpU6p#+-?id;YX{3fuk?#KX>Xmmc*3^lMi`jKhs;g1ZQ%z*Y?BQTwBSXJp}J-V1Twk(E6?}3UB=>O z0sZawEis#Z=n##K+CS{h6L8Qb1PZZ`(LXjFz`Q*{TIIZCfHOY2iP`B7E(~QZ$q%-=M_3K z9(%XElEBfD(PTg^=pQbe8uIny*y8dArvtbp!{XXlYj4G3I-x5Y)ns9Lf7-LmlG1*RU0*@(lB2!B z2n}wm8_Vc?PJ_=imw#jLAFcTS#G7B+45b*rn9)JKT062LY$Dg6^A}0MFe!Kye1}NtM1<~(u)RT+a z>+baq)rQNk|L7tP3WQBi#a;oiUuoYI0i;IgsG1fX6*_^)S_$Ye*FZq2I1iLp@T)+_ zBwPLOp%RF8sW?9%?RW%00}~LY+hu@?cNy*fZ;vsMLN)p_FJbI2a-tF@D%R5SGp$?) zahNqIP?Jmx%OaiRLaEh!bt?sxnZ1qaNgkgIZ7}DgSrZL2cK+5Iyw{Fq|Fp{rAJD zJylblMrfMks*ilNPcjIjRJ@4}%6wQY_@=#rtO+T14^_$$0J5;K@MPFcEW&0*)0pO~ zJ{vq0BTBQ`_{w)FIbvnHkU~jD@c_&B4u!~pwtz+(V1D;P3B*pW`^wzd=GvEa{>;I0 zRjvNt0MuhIR??`{%XZ$!MYmh0Jngp|v9kdjU1x9=zeHvz;2jn?g{g7PSKGyh|I-Ub zCn>D}{Y~cFnnFj#8Iv?sDK${x#tV&a97P(>NSgE6ER3WH~Fzx-o?)woR;(c+;t zs;mhRctR&ZAeyDr2JtJ6sw+L@+fU7VHv<4t^wu_C=H|^c-oI}u>T-{Y%%-Q~z8$zm zW2;aE%hmOCVpoGk&b{Py&wco1|21$k%=(X3$w&-iO)m1sZD-dlB-1X3&@>S~% zq(*n#D!q7@A!EEcSEDbX1v=hmrVhxM>WCWkjMeRbJC65(Klnqt(V*`s$WxMJ3;iJS zOOC6E#T~V5`bxggBvkWKY1(YwkIXG*tY?r4pH&YeYYQ-yF$C%?wFz?;;5y?6hb4)oIy>vxOhu*= z+p%`HUQP4Wh;~@_aZ)n=-MpjCSg2lHEC={v%+uiT!uSU>-cj3-F`Q5Q*nIj6J&9va z?&OBui~7NPBU8W>gF5D#Bf>&+ifzTYsxct08#BvK7cbsQUf4^^~S0 z;)CqqJGjRwDn&TTlD-Ovy$?uCWDwo|-SW8yVsFKPrV8W1A+z1|bFaNgM7BT6`T2RY zNPf7@BUpWdjf60PdGPasQ4>sGbvkc-OTbCe0Z;QNa~X6@J%6qzBwxQ(?E6AZxqnVPw3q z!ys&@uff>`U06okhM}V>fAM-~xtOHbmMS4|w)#l)1HUjAw6D)1*}Y&4J&>(bR65Ev5%L|>oRNSn6--XM?$j=&Wbf|W&j2p$+n z6gyWCGuKEk9$4~f31B({S4O->s$YR4-T)ct_1$U6#K&Z6nKEQE0}euB(sg8SW>P-5 z3hwA@F<<&tiaqH4WDtGC#IURL{@ARLo9@=wcdFu}IeuT8IaZx#r>zxRqivfV8MaTK zpXk#^o{oRjMgvhxO=7jx#nj79Lu`PA#BmkudqG|}?HLt+#8z1t{swHrVnz&O0)2RxrT0CzEve|OlGdK4mfAxN>yVkmgFbO8; zhZ1V+sTh}&yKy-=nV$swJA^^GBiEZN>USAkf!qFhh(#XOF?i zD=yFD0$b^Il|(O?E{$vZ);8?9RVWzGvheu=3K7i-&EIf75Pq>+Ph3t7`sC3Yw3Atb~wT7+M{qJRDiKla3`uKRxDyT^DciTjSZ zY_?-?$!w>Z%~)l5m$Eppytg|D1SL3j2Mf_7-2d2%tDrW`uUP+@{uNN+Eqk=*pg&wv z``eJ;HK2$0U#nhCZ8`GApvm|>?&Yr&E*%*3ItL@+^`8?U08v|rG3x)z7z~(@Jq8&8tMr6$Z=)EIEBZXs zkbh0Rf1vKg9out1$xP_6?%oQ2TR(l#|U z0jPV~eNcAm`goa?lvGg#;WueDTo6*)T%)adQ{A-*Tlqe*X1mAXVnQi)y(IDR`l zJ=M)GV^1-_Y{TQ)VZ`%zfy+aB87+SEml9vY`TM3{;Mx?QqAA#zsZ?crmWe<^=obbU zy*p0x>HNhA$i9D^b=OzF3@_e?`YTB~h8;AgnuO&B`apIK}$s)CJ zYP#ruO0F-`+A?t905k~I#U5VwS+?iz`TCV0{vLzFS(vT5R)Lw7E#r0$1*h@P_O#PX z4hmjT6O{pbD)_avqQ3F*&IsQ@-oZ)}V%}^;r)~8>06Q06zjhI(Wqxx*Gdx6J(Z{_< zG>1s(w2Kw+HV|NiH8H%I)zlzMqiYxVWOux`emIV& z9rJ+Yw?BP4L}q=Cs| zU|JnMJKK<;=V$Axjd69m@+_f}lY1HefYCP(o|TNTDMxRu48UPP&;&ve;f(<^DBQ*A znv|HAmzVO`UBjN~HUqokRBi&CSlVA%(OlP3L7~Zp+bGJOW;Mv!EBzpkmvF z38TH8*6jqpQEuzQqd6M=xFvQS~(NS&yF-|org%50;%(07EDpo`N6pUPXBK>s&D#m5#qzU`>CU!&)PEM;8+SpbxH0s9|yc8GjY;L*r)&(gH zs=t5XUzejkbjESH&u2}31~)Piv;m}a2N_Fuw-iGe)NNh|CVJvuWc@}T+&jFM&qt;q z(BNGeBO@caOqIyu(CLKTGV3XYeZtg`#6(JWReM`xYfyxUF2Djkc*Px$_h(rk#UU5J z21!Xtkx58T4Z2FfSj6}PpxOPsR5`2s=e}&}&qj-6g>JkpVvA!j{8tP^%`*Sl0Gz)I z$0j%KwNY+vLW4Z9EHgKwp{KGmMqGODW$Dl!hTo$9mXr4)B1S!k=T}J~@MoupYT$dz zXi=HiAm2>C92YLU*f{&p&P)P=$Cq(W`lf)wn$}EAn->1K$VAmLGCpB~_xPyX|&(Gi_QOKIqS_E?(oqiq0EO!MNpikJHv*j-Xxh z!Tq=K(m_V7GNd#`*2hl>ATV;1ZU?yat${e?I{JPZ`oKP>U|n85G|;x(E+Zt-Vhz08 zeb6d!Cp+WESBjTU&c9s;V*=|v^5tchaT@YVyP{Bduqo%XMuv9S&)44wx+42MxXq~j z19KaoS54zC4JxAiqRLpO3V%B+|CyrjN2D_Ic59kkG?JSl&&Bdn)8mM}D}BX5JXL0H z22E*Rov(YP)+UPJ->8|rLzw(up`0g?Ojhnr4pLY zvqE_Lg=NG+^6~zjPPK@yY>!us8-JX(AWBxBvpJ60-74p^7X6kOa1>(`^AjA$PN}h} zz14`7|M7IahyL@O^Mgg}W0EcYp4rc^PlNBoX+Uv4 zdk6PuZ!8Y)6*@6KILncq79fu_*dC6YshK?>?jE{pA~u;EIp2G_JI$}q*}UcS;W$4k z$9>0$re{KV0I4dd@MN4{gKVX}?(ipHVEgINyyt0^O?XSG-1h#WZkD^bl4l-kx=nkW zu$#zPuf|MF@+g1XaX4RK=1F#2bmd`okgB_YGbCMS=KwQ0rFJuoU*V>gF%=nE`wY{E}C!g}Sl1O!PU4%$>9}Ga_ z;_-67JUbcYKbxY5=PXwxO}ZJ9%=6wuo`2seD;s{=Gb2@Tx;l+ER(#$Z$v*Z9EUHl# z@H6Q=+Sd4UTY%Qm_$y7%CoNFV1B$+Q_M5`n;;P>BJH9G*No)&ZUR_@IH`>kbdDv-f zW(H0TQ;g}!$?Ba@877SzoyLa6E6%zYM=xun>eFT^b25%&*@bToN-@mxF#|>54aSvv~6Su zy6%;$9%o%Pe=BdKWd9`PAdNOZ*P|LT{K|<%LeEtA_f3Xa)%Dx9boQV#` z6PDqZdbE}8=jb`qH?nX#J6ndisNmQZXzE%L!V5kW9Pisk#`EATjb=~SV!)bM)!d1L z*cZMYrQjykGAOQQuQDyRtj-t}&xGT@-NNJxIdv)`b>rLk2ZVbKCK95DAMqw>S zTCBL#vRva*ywQZO{$A^RKQ~$}Yw-EjBQC9OWEfR#at_i#&~Dpnztt&Ah1f+bSfLhD z4v_5OMIt9oUTQ-kfEm$@(eymY{i?{EIjxibLXY>{1#UY9kNm2_U;JDo^Hr@oH$r!u z`#5Sp5`(|adUesKe{3X|@|3_cbP zv-ZxTKF2>7njCYQ9brg*d5BpnGCAgUa@|dbRDs~Qgv97TQeFWfoNaZW{%w}$TsK{} zSyWVfB3Nb4FyAxAhcoz;!}KgyjlhGzZhmn&C7(dMBr=7ADR$$uyWc3F7uZSZF$rR&n;OIgl0GNTixOJ`2ovl;{!w_U*QNHBsKM zFp}x^1gUPr))5esPWrNdq0(hLZGnh{Xl^K1OYWLVpTw~Dmy{*EMqTwe{Lq89{;_nQo0*TyYY6(sisK_o!=!~W^=xY1XyCL zK3QF5-|q}AJIqEfo%f~h*SKr`d{*ZkeRNZEXkzMQkW1BFw=dB=iAD^=ND3-^az*8M z!rXJ3WOv5X)#0q7NvvT?hs&$mIwX;{f4c$c89W#Nk>%jt?cV07nlqb?k`p2l)E<|I zN+*iA-!}&wn7tJFM*2kR1%eQq_NmKI^hTW5DmZzdFJYyx%xP}H@^I5QXo`=!4$_^g zcjh@fR5&XXUu5s{a$PI;)Wikh`P^yovNFq+T%)6LO27ogT)m2bwzEeRf8mH&}Z_0CDHz}{AAdnwac@8b;&p7aC#KZI ztv$|OMGBi7XRnZEnU#uK#In~`92_&6eqRjcbP3y5S?8L~x%!^>lxM0mU6yitpT@RZ zzAG+1S~-+4OJqt!3f6R-P`vUYf^3;RE?&f$(nR)Pv+WeM%^156ju!DSF}$3*MU(eT z6cL2WC(|vLn>;=AT=&_lWpgrS^X#Dy+K9e^vsuR>yBJqa(sO8qgSwbKq*CR3m|_K{ z7fhb1=gE)v0!TBr#a)*`uF%|W(WewKx=R`%yK#2n7E1i2-V zj%<5-$3H9h%;uyjF^!j3&1`^wy70m3L3^F87i{v;P8zK9&J97l(1)Rku%pq6#HIH( zoTK;^xHDAm;y8nDs7(+OoH9e2%l)F~Eie zj=Rp3k)M}x4VOZvM0a(SdV{QA35F^v`fjiv*o4l89e-BssymeaBAGTCoi8LFs8=;1 z%7<|jRuUtBEq;hHEMdv4cFn`TWz;;Ljd1{Kyot~_Su!yy>0JjdkQDvFobpJx)eN?x={rL_+&&V>0!%bn}Z+#JsrMH9?dEl!SJIP36q z@A02b;h27x@~RtgODj3ejqVf=&0lyrS`|H_D{q;<0w1aQR`?8@HeLRWob}{LRlFNb z^R$X9E8T6UnTjc;+OR>^pRG1bHhw?pq}OaO-8x54(&d@mqW`Q7eDsFsF>Y?vjW37{qf=Z9dS-!T0P-OjPZhi#@SSl9A|3*< z<)jw)AvYcfej0Cz9!$|5rlqqywF7SqKWA+k71Unnr<%B3(Im;LyS+JB&f;4NJ~wql zZ0ZeEQz7(&)1xZN1Cis1WB%eTQpvalsvavX=}tW)JEXpwxl~MB%R*1EZ}Om~3@E@? zCJ%7=&+oR0c`XubD1I}ywWXauVO=S@ijcVqQJCPM)u;N@Y?1t!W>p&DL})k>?DZrX z*}Q)^93gdaGQIbK)rb4A`#uz+pwdLuVG_O3uJL6qQ{L-T%x>p=?nlzF&~tsDX1(vW z@jj(P5MhF->a20V)YGmta^(MbGB2omgz);tsY=bZe=xb5r(LC4xX?+Fzm{XeZ@1R- znZ@yp)_wE?Yx%=)H^=rA$<8d%uzccgC%xFbTM_Ior!AtB+WQjFJYf^D<%RXl(p5_! z4b`2z?B$aEX=jNOrFJskXa1;r5#QQ9dE`OW@DXcCwBf#T=W}R`H&XdHzC$nR?4WMj zY*Zm~5!w9MmV9rVHDX(7X*bhnc!*6a#;~(n>-pg$@iOD*vt6;KYrS4ZUdNWjY)9Vb z3q$6G9v`DBs)cvm1BjCZ3g_AGxxScR+lJ1Oj{FcUo4~IgOIKRoOy2HIXq(bu<>a*! zmP#!`GjW-s?PeH6LMHNaHGMusb^sss%?;GNCXd?87QA!(XLVQ`>a`owb>*@c9XD6k zx0+)Et01*V?b`BpPYjcS2Tq#Q#silML`zyW8i5V{iliF0(y6-7jxg5yl4`l#Q0IKq z!oRczo;$@_{N8DDtFN$*e)$k$180LMG;$2cd>^y`FpaH2W)TD#B_%8$0zh&c1JL_b zPzuI)zJ?v(_BMJ|qD5M2fJC`9#(C!U&AkG)^s>{~bA^Oa_*9;TU){vbT9{u~i47C; z!cJy^t0Gc2-YK{*J|F38Q5veY0}uU#M$GTJ5(&W%%;U`gKqS?c5_mcf!t7Pm&W*_H z8+G+QxbX{74O1!o(Y@~W1^LV4LvIzstxS4_I)s{dAqq70(6Gj(B~zd^WVR%LzE*`F z06(D-B>SJC%eLU5HE6`=3U0m&)W}GF8WJGC{(_QbF+g*0QOal}%~4Ekfh3^2i?ygu zimL9cv5+3evWLF2^n6{qke=;xEX&#B?Nf{E7sJ0P|~iy#Ccl#rG`hhPe% zmJncsD2Rj8IMCub1|k*%7Op)T9+;}eQ!917<#Z&)o*$1ER>-XwbcuI`RU(_u>=|Uq zGU7d6Ke~jY+a0I?#doL^TA!YcKINx)g3&;UBfBe>juiW*FVJRvON*QabQ%t1It(Xf zAUZa1;*cFTyOD@-Q;OLt8@3I`pIz*TzLTz|3qUOlk7$N2M&zNYo}#_JX2cB@22hUN z+HAmbmJBaC3RncVE(KCBBL=V?es!+Udc4u66om-rtf@J0_F#bY%qbM|$@H5EuEUAx znj)}3ESFSH0|zd^kk~gsmBp1sl59Vm#k#t=A@9*|AQSXpDTgh-7c^O_GuXtPmS4Dt zT}WXJk{5@1{e4_80=pi1wTT;m&j&CNGGrcNH}g%d?^*HKhrK`5K;EO-cq^ZRY*qs9 z<8ktKY1J8z;KT=;`~gif0nqd%{o`#w4)6oZ-pJGsGt~aWTsMxpR@sH!z`j_4eTCec z*4`Hbp+my#a^H2hE}{v)RJCQ@;f!u0ElCP)i~Vtc50WPN8)f}#FZ8;*fHA92LdS6Y=U8$HNlG!NMilLZ%CEJ0gU?2Ul_F+K=-8Mz__Tg z$RBNEv+!re9O6g=lQFQ1)1kV=y~!NlICx_}vroSJKe5%0@p!Pihn6Ma@Y1v&_!tJB z4*xSroXOZH3#x#kNA&{H3~zgA{c;)t(1=h&81e(X;ThHA^KFY+8?ZQDaRR*(KhuDouT-L6jLkpG zmk6}9H(T6!bdKE*m6oE>!$i6G6u=UVVgXF&1ql7u^6b(<=dYZW%{49uBlWywHr8o@oXQ4-KG>W6=McKZ5x2ROrzkF9pRk4Jcc`Tjv+d>QYnxanA3FbdrsenWrKI;miU%u=$6jiWBi|P8 zW3ptfO|>Ti+Sl3Nh${e#Zh}q&K>=LkXZXN`?I=3f_={qBq7czJP3kbT)qZNLc_nkv zhv5<;#>SD=cQvoxOfSl3XLLH%VOq((eXuov>9?}#k0;mLGLc_G!tFaH8g89klk|Zf z(3+7|6Bm`gs5B4j{>_6Q;3QOj@?SXpiOo$)rSJIBjspFPnG?KVI{lG$5YW<}AccKN zMm!*jC+mG-yKg&%-4vAc4?Q;1)>BgK#(iLJ&nG+>`@D>~pG7A=TmffsRr^**xC9e*+Ts?QyZr zJgbbb=RZM+5|;QIk!;_k0D28@_b7Jym-%%i1NVJx2{@6t+_*<-e8oS9^`nm@SgOY~ zWN8X4E&!*ieY?7QW9Je{jUYd_T&dd_6AVLRvSL>mGZs7M# zK`KRR=N#@AenirtT}FegUZiSvHGO7_9?Pe~$%=<40xYna6oTka!jT4nWd9hOhC|PN zV-W#`LP~V=ZhTfCD5ZW!740rvogOT5a_(+-Lr?7Sl?xkLZ=?^ebo4rsu%m+ipkZ=suti<8=7FLC!%m&zjU0ac%AXZ}w=RCs!-h!6S# z`ZGQv?%PmG$yEkZWB+AFqEv{D`}Z|!tfpqzYeE~;Y(!!3aNexg0LoGiH=qSGQSk{Q z@Noo)p9k;(!!SdU%e5|8u}8Xrk{q?Z$jm87C;5Uc0}Qe_1^ibNnsPiIFoSH z2y+WpXuvg8)_Q=mXCPbMb0dG);;)rt2X18r)f4|c!l7k|z+$-N^N@hW^z18_!4RNR z-1oS|j*gGJb4nF1*}T&{n&Uo~5M>2ob+=Pwijfz7R?G>WW$B|Ne1({p&N0 zfY`v>_0UK4(Aica4e9E}yCZ7-UFNHo3ko0gMH2ILx3y{?qI0_E`a0#a_7p9Wl!oVCK&6C^eJ-KtOg;78sP!XDonstV^dmL$DTZty!{* zDi{FzlB&aOfIaj9ALmTP|6qs6&%d<|rs2*(2w_ulC54RM*Lv98Y0R(j{KdR;=Qqd1 z{FiFVUPnVoUoH!Z;xuIQg9nD;igtLoFe0>zktirLgB!c5CU-7J0bZWz6B@tcwAecF z;~io(tsiex-~Dq$M|A)T7wLP zb#vwF3q_woQV+zQH9(;HrN(T=-9MP_cVo}dm@DQdRa+CDv^E~(x()$sb;usfi^VOV z^uVf*@mCILcZI-SCYfQNTo4MDA)k~D)I$4tyA>~)D&;ZKG1*))ZrTN&&a@eEzqTb- zg-S@4$dtK_pE5)-pp`Fdfa|ysnHpr^LI_a^3>>1|vd8_Nqyz|j{qRe+A@^gp5ne8g zC+3?zx(DYo$q6P^tyDd7H(boOm+Cy_JtDaXfKqw;GbFL=)z~|JrXpt zs1cZ@u@`(XEL-pbd$!r?ZpQ6Q6nSGRB&kX;$#SEQve!c)@LHK&j&@x)Ku z>I%T6em(-)sv@^bqT$jX@=r%BdPV2izAUnjSC`H7tI}QB0D3bBufpt@1nzBldoh>? zNSssk^+bH*9C(8Scu;vD!6Qs~`8XE8-eC3lcnzH1**IW)WxEslSW1d0-|D)B2-xHX z%n-MK5fXM@^ypZS=x5A2d>bN|y#Es*M1)Ec&GV#{ww#>8w6vi%f9tBo)c1Zrg0K0*Is(v5g$7M5>VIh|p9R zcGgNz^M~PufxXtAf>DRTJl>6uCuK$!5}m%wZx}N(5{RfG54_)&O6U}bD#^fbPHGw- zYzX5n3Su%+UONeIqF`jXcYdP`4FpPgC-|mYLQg?L;rqQ>?M3j8s_f=F(H}M^N5fwB z@1_z&DkF5wk9vQkicVLJJ5_8=+YXo~%Am>sl;81L8x*}F!eeFHetdDBXaUX>OI`ta zw>#M&9M=#9*UTKj?Ndv(ZH8$=o9mi7fR_Y5-*lZK(jd~zyzP|T-q-9OO)p}W5|_Ee z=Z;Dm0TmUG6MIKKE8;!RGm5k&E+4Kr*m&gGX!Z(;{tn72bC3lg8phhyC1N1uOhcF$w%WaJ4^WDb zU|wX!-|IsrTQ~q*p;jSqs}c3%%p9YeRHvga2h+U(;o!e=m_jHrhRZ~uLl|!x>Y5J% z!d0dt{LaN$DDW5p#5AB(L@A(ry0PzoePsi{2)JMhGDH3T-#=$^0A6?2Y+>=6!(=yP_GFtE4~p5?H6dwK?DT z6|$0Ad(zy2cfHw7hsB}(iv-3cAQ0E=X49y?*Oz4QcgFL*jfg#TCHo}KL52#Dz)OL? z-OpR)IVy@os3G=K_@1&V--X=Lv!cEX?jX>@M|*fFHnYVeUwuxLlOzZr3AFe z$l~g~V@xyfDsXI}ae`}MT5hO_U@HTU8W+xC)#niIR|CdT+1@SLEfk3fbBK znF6y%#|hT8Oqn~vnYHU(!ASU9SsVH0`XE@4z|&N zWnZ!fGYog}T)TD+xN+iUQv0fjC#&DZu(a&-E7#cr%?2LahkzcI)&nKrRfG|0NMlzK z%h;3L34m}Oh-#S!qZ8)%2m?DahWl&!m_Z>2-#2osa3h^phgkP8?92NS9MZuV|`aOqn>gpAlTCq>RRifueOLKN z>D^`7ei+d@rK|O5HQ054`x`n)4&yIv*BBUq)nNPq8iP0f8K@>T9G>cjR#l7&1$BQ` zDPFV5GEfoYoslcqe7E5qn=VgG#UQ%FwR2Z)UkrhN>`do$N^nsKUk8Ph{Ox>JX~=g= z8ykDBHI^OZN4t@C&kN!(nix4_#!_7s;`idAa#guaS4XB;NERtZ7U>4}ceO%*19)m# z>c{t73*v2fbQ(?^|J6jvBOa`8pl^F6D;~?=v*e62U}T6{peyr_`C+V1wA`?|%TPv! z!NJP2jYmr)4SXHwUnfy-1I+;_=K-TVmlty|{c@nb*1I{~Grs)%!~p#8K|u#n@3hcV zX&T^U5<&Xz0?5kw0t})a+K&O2!nc8|q9c^h|09305Ky?L$T{G~)zcl%H}DF|BKMJ6sT?&o7a70Fqr`Twe)y2;G?sbmZZyQ=5!W|K#S<{<9AoMXCn#ZoyT zCv8AxHXEiD)!fV2_#bhYJfgkLg(1Es=6sG2gUscVrk@e(Onk$zOlu?F& zkIczd=EVwx5W9n~k^Em2!olGS2IIbNe8L;HV-$Ij<9L)c+_w}yZnrNNSVQ+}v>%bc zG54KWGUf`+HR2SH{JuY^4jg-vO>m(fWw5iIt9UZ3x*<3*i@W540~!c%LYrkbBkT8l$g!GGN{oUdri9s?6G@l z6|S;$;Vb)&M3O-OQyZZ9PUcQ;J{!D$dGt)3CZ6}T9ovyL>I&*o-T*VFE|LpMd2rPh z^t3WF3)xG>F2uJKFE}69*DTlXoHq32uUbrW$Q4fuD9B}PO({1FceHse3|J!uI|J(Q zRxo=^jzCHt!hLU+V}#HLRFEE`2_7E&6|0-(br`SB?)4x|-Ssr1`#O3nH;zu7szkJ8 zI@y=US=z7|pK&gC|UpE+l3F zeyuL(PK6XwaffuiXWaC`u>#WkNnO`F0;=%5(HA)@!q?=(?8g)Y83%vDx9&4IzqD{Ls~$xEX@rKxx5v$Wa3I{^D}e zbwb7AucxsY5$#T3nH6{V^L+_#;kr)h)Q)eek)A&}!HnFcpqD z2#EwI{^niHe3N_vQR`3X@t$P+-CYN*p8PsuTAr}k=4J8RJ34yR5c~H6^cJh80o!)W5 zaH3a-j()FRsf%^f=L#;?%DjFxBl^IZ4Y$qx;*TzDePoQMXNeGx2^cNJ2Jh|soU8p% zI)H1uHAl2?YGfSV0;L(WL2nTVe|SfEbN>B)|5+NQ=002M*Q#P0YnBbs@GGd&*%fSJ zZ*N~ab?U+D=Wx~Jeu{Ml6*>7MA}s0S<#-MNk6(WEK{fP1{t_h%p^G0m5M?Q@ z+QXkvAYPyrQ~$1PeSl}~=n3l^^2%N$hl1ep{BaTc#wO#US?&&WSj=X+KpTKde&A1_ z;9U97JEbE<`UTck^vRiogK5d3ax6K#;3HA1VzlY-o zaWUoZ-+bEIFjgPYS$KT;U`gZnblHO=9Dc(SO=(ut^fFQ@erUm`!f{*c0`6@N!$88iwEc$|oq;&fyyk>df!Tfi*i;-b{ z4>mk50}Qb|VjoFNmTmg@qVzaQ8gWKRiJf0|2HoN7_mm`vmP^px+u8Z(|H43zJAXL- z;4M=)PEqcMYHALqvhRQK1}_5omBgOagvM-*xsOeb@bgwxj|{d_M4S&z$kD@F|04*Q zF=A;BK}xH5(MTDl(3&5eAV}^`IgS`8e-TN!kir#UK$Sk12pp2-?P;%v^RVRDH_(SmaLOs?J^2eyn>U>-o_%3GX;o+45OGLN4|X%R_fkCxyjUq{R(^`I zFyThDf}@E+`-;^uo)?p#60I}fZUFoQn~hIi0()j;>ng>BtCTnX*oJNtSL;5jy*F&! zsiRtp+`YB+WKH85%IWSnzzKlD1i0Zg>J$UA6JNojIMo(AtOl}`IkIAq!(A{WDo~_8 z_Euld2_h$Rl-Do31>BJNTX)a}X1>L*aGm!YeEas7Z)OyZ5I*b4;+|8yI1a*2pl=M= zapmIFrfO4~y@u80<>k#ylPD99isuAJG`&*Ms`YqpD5MJ&V*gVIEK7hHyMFxOi2wds z%~5?>20j^cBc8;qM%VFrlrT^0`@yKe*zR?Cb^0!B`Q`xQZCzu#wUAiHf+LPkiNVTE z^hN?}Ul$VA-ksf(IX}82iWpMP(ReMQ5+{$)L$v<}U&Ci11_0PS5)mwa-WAJG(6PU_ zSLl*9I3y=~l~>WwZsD#)Qx0zsW2f?%L=)$$-Ud9!#1*@VFXG0mA<2&wurtpHP^sHR z?AJL)N}fnrl`Z}a#}sO^t;uePo|+M0?~n*V4?N12ma=;hn5qBQVfjbbZz zzgBj)&aE<)8o1+Yes9dKjArZKh?>@QsmcClgVyjn!+yc$1}bd(7=t8KZP)R z-TFqbiuL+~)B@zJv~q<}8_(C`^T{Y*Jy3}M-oo{sar@13=2mS|Pi-xHV%O=d^(79E zIm>leI(8h~fBsY<-qZg>9}UHAud3IM@TJ>vKaUxG1$qagL<8#n1FlUNUTLa0On;om zYekK~g1X;l-ZdMSkWBJP9OmDZAru~9$hix~G!i02nCU!b5nZhWKBBmOWJ%9j7cpf1 zk_;ey{_c|l+O}RWY;z^H%x&P-Y-r0?NxjW~>@=W~5W0gOyf8XhE?5@$5Ytt5x!@ex z?Dk!C>@JQT(`Qb0_A)3m?E(^}*N*Lx^hR>v+BuG75A8sh(CI}ke%gNb5s4BeyCdQa=fao^;Hsi8M!TgR zzI8jyzWSj^>9fbt;yLK}nyVJfQ45QZTOvx&#%}_Rpb?8TI@y76UX#8RolUp2Zvo*O z&%;w>2&iz*4^^<@e4~8HwT-b{*2PpFl>}E|8&rX7K;DmF<5HLZ)GSFEhjJG4Ddh=EQypkGNJ_z`>PgrP-h!`wv%mMX3LoCb;5m5r6Wb{WMvHTx!C_~9VCWx zom_^aicqYk1o8Jf+J=i6)~$R)qw13HeK+n69Q+k|{B2H*vx0;yRIuSX2k#bc&@nfh zYHEquLF^f(p1X-wHXn;qFb?&355PUHfGPp`1G(P#GP=a>t^{UUlaf_@#?ru75tSt3 zJ}&I->xSoV=s2r>RAv^7^WH{H zWXWZW%b*KNmubhkPKjGf{#{NH!z+SqU-A4#)FrfAlZ*PiVhzW@mkc)n<5G(9iP&dC<6j7Kxd6U7-ljxN5Y; z+5Y_bS@#_&~QNlLMDr~9d1pl!>aBg}Wi?Zs; z_wRE;eKCrINF~XP1{neff~FVao!PrB5a>aN!oztBw+n23ZyANn+r5bm%rtbtJc*hc*dVut|bp+K)s^&>JbGduqgzXuHZ$WX)i5#>c{%s z@%AK^%mekgpmtiev9u$1u*N-M;SZ62dTjPU6fSxFJdwwEWzH|HMJ$hPHq#I~3RO)dw&M*c(XHi?nA9r%PqFaINMO&E9i+X;$^9rG&Rx90o9ZH9h(&KubqKbL|U zY;7Ih={lBYxQFN^)5#OEy6^P=r{5lpI@|AG;P!9!6El?HaSYW$I-X4#^ zng48!`4g_oID%^OB@YTFTo0bKNNad(l)cYVG)uI23V9P4xHResl#=fy`qDkI$6c09 zF7y?h20){}whM5dybEK!s4%uN{-0j`9>ZSs=`(AH@ya@es>4dhSAZu=0$18*1>CCU zY8kbFMdb2R;|j@0uCGY`e(F}-^y1h!U7m<%$;g?ROyT~UoGUcEvjNc%J2Ytq47_Pt zgbLFeMGO4CauF)zUMZb-11t8ebmZSx)r-N*d)@QLQL{qB_xNx%O&64kc0s89zN{fzL32QBB=AW^sMt1w!DKK<2%JFnb2GUhaw zUaq}cbV)uBg7wY(!^&&Z=&5Q_g>sqaS5>vUBtJ;XLhwAf0&2b#e*U(#(qRBtX36P? zJ^t3ZS;6_*^Zx!N$=)3Zj4p`sW7u|K%&7z-rJs^^jH+f>4n5m1cQXGOHt=D{e_5EM zSpP*57MWI14MR4r;q<&)JPYO2+}}T6ri}lId9rW)f7pA=sJfP=U3diuBsjqW!4lkq zy99z;aCdii0wDwl?(XjH?(Xgo+}-_7$lm*$ea`#d@4k18@7FzKjI1@*oU^-UOI7t# zPgSd%jsUcQ@h8Y^IXb5b{mVoSId2$6R8I?-1tzv$+8@PnBxjBtaLFRVR%+>fVO6F%G_4PYdc*Xt(^Iapd`Iqnj zUPW%S!;XB{@HqtZ4Z`Oy?$bX_G~FSaWUA6NhZcTJcsXfR28u{VVkwh0D{{0l%Ahx!gfpj>*}%T#B63h7 ze^$*%T?i58Z=w{3<`2$~4S_hjU{;Y(_OIIyV{0<>TY(U6c@evD7@@*6w<=&{fG!OO0ZzpE-ej3)~p*N6>Z>s*n{X0HOs#!q2RKAB|3{5;h{ zTqnz?J%cXl+@}M0Ql}LZFM|oFOWSoc)eO(?WZM)%-qa;3HF;X(>yzHz)`OvQ?@x-gFvpZJS1dJjPH1 zwPfNp4O!sOmO2r@P{!){1SOtE4@=;W(Q9Y@Ll}8+mGn0JV*dL)3ASkg+%ypg)lUHW z$6KxcO7{~=HPw1-Q`jtbZ?9n)XhtS!;mEdgsGJ;{A zPA&sL=#wL0C(ypNFS7&^*aFr?QHTVEJ~eZo>p$7*GAK5q{0!0~_=V;OGvbiy3%8Yp znXRh7@C4lJQZonXkP<%HVbZNTnosR~$Qn>AcbdAz;cM*uS`)Qv?Aw_ZCdT4;kadZT zJ3MI0ShAp~Q0g?-*rpCWIwUt2YZPqlr?6w!g)341GFqBGMbYrh=J~c(I;H^{Ru?6j~7qw zog$@MFh)IrGbcRSk|6ru7LQZ=*^AU0r&RE<5at1)3fh)G5SFdI(_yyXi8Y>NA!En0 zEZk0cmW6C0TOIy~;+Ij%q?_6U^WPmsB?2z*Z7$B&*9x2R(u5ZT5=+dlW!916mnbqB zy5^t`#Go<{5$s%5)mPD`G|@CqZ~nw=1kC-LRJqy2ZD7T&@56W#HjVlwPSAmgi6NUi zUg_h@3Aa!8gdwK|69hW~&SHQm@b|1pJfi=ErKC%C9Y5hRXpK_Bx@3uXLu@wDtm6Ut`Q<|~T`KPGY_c-|i{QRTO4MPN&(<^3W0QqRac1;_I zCVO(ZzEt^#AkW>!x9V;4#Tc<0bd1L~YOC#xiTcarOM4@5aU$VBeUQwz322WLF&Cq4 zvpx~{F2BujYMC(P=%dQ7wO%UfKD)_4@YnYJpWsnYsENd^Bi4kTOkOC#fQkxV-@8cZ zYsW<+7`(B67_|VOR}zK{T8rpO)QhM5tElH62SmN<$N!zEujVsYxjQ^Hi6A!1$&mU8 z_;m9 z_pstr<@b$N;d|Xg?tlC|pre)yDLrMrgkqo2F&>VJdu*w`%(6BwOfL0uo|TO~sh1Mm zU5yM$r?2BLl& z!?2CD|FZ4;z^b|DZ_s{?UUk@HmWllL_6EBd3V|6kwamdD*oG@pi z^%tBk!{MDqF>Aj)Nnxpo~Pru6LYi11br=Uu8Tn%`|17;v{ zai!%3;N$^s0Rk!fTwd0+tm?U$u$c;xh)sL}4eDkESo`i2_P|MgoW~l#LGsZDtYDyT zo^LTR-`L0HtBcuVUq9{0HlE^#bZS-|8q}VQ_$}{q-#>dNsoxr_0;Xs5=OCG4@kU9% zpD>v5Q+x$bJ>c?1L703ZKK!m8pm{mYngUsf{&0#aPqGGXAcRIX6a#r2M_cbW?(d~K z695BI;faKb*M}`|x}n&|37lp3bX7I*4UmWOIcVVdlBV5Mp{j^I_6txmk4lrP>b$Aa z#Yhie^?ze|;-UfdYo9vSLjnxLn5ib1j2=rc+xF}*t~s@RcZw3G8gJ<%8CBWdz2B$-#h6f$Z|zvAtitmFr&!y=?h} zVT8r`@9Cv1D_(kf{gJwoWd>jFYt)Y0rH#<1K<(w;{ff;Mm-N8o^%~h5$9JfVpK)U8 zpS%kW>4PpS|H#0n|Da|Myf0Cj9MjZ z0r;E$4)Mj-{e(G}2v9MdCTHva!w4pb}bMyfqI-7-Eilnb6YL13a%k@7@ zT7I7=v@+ZvLKt*F3#*ea5H?cmm}0hiB10X2SG7T5#o@eLlycg8v{|RN!}`>hCrkQE zQ9wlEhG5BuP-Y}IlBxKKBo68tQGuH1J}4!H)2;omb3Rpf3@4t za%2`iu`uP9&dGj+gx&#X)3BEf6tLiq@HPf!1aG8rj$BQA1q#`jP_rS@xMNHB#b~Vo-?H z=Dh}i4Ee2FUUVKES=8p`_+CE;khY>*oQF&HR1Ej2q;5Ip1$C1mkn4SZ&dZbyw~MK- zc5pzn>C@?wixVV_HPgqn+)(X-mM|5e{DZM2hwy;Pk_kTQFLslPX$8;b=q;|l4UVz| zgFFu5Ok(-zbIS;YV*m2{`j*Kw-#qu5zG&B|k=%nW5WLX;=`_D80$uiim0~&f zGqc#Ml}r<#xV;uw{OamS4!=4nffLb&mzJmx$bh4k05yoD$2RykM8@wg$mIb@QM1*X zL#A{z7|xzy#ZUjIs|83?^XzI_Su`A4kbgVG7G&+#EGPDXe^+NI z5sJ&brVqrrO!PWU@IXdT99<3!Lk)N1moYu(LEV1x(F7a%H_2+;nyyAHlQy{-WtR~y z+D^#e%jN+Vt1u=naXF4lWi+FfYQ^=-=TYyp$w&F2Yz5?wKh*|3@($92MextW7M7X zwDd+$c?S@xUar)kZ-iRqQIg2aFh9jXpg3J8S2Sj78M*@U5?Qu_(vlNbfKsYJm`h&j zxTO1Cn1D(-+)!7HL_6^N!}*I1P!~qq(+DJYxHMttQIYv!LISKb>CTKSj!MRIUB80uHCOOWl;md%7A4BvAo@ zCLx|vwf-1Up#@kw#0$1hr3}x_kssjH)ztwr#q@kb+iE zSDavh4a8$=yZrS1Yo=EvEuOqU>Oy_$jDs(^T zb~Qn=_k$Z2m4bURy@>kAdm3akideWm(^55>TZya<4n*iMg9&l*^4aNv*!w5a^a~HR z4=(c>x%x$i&e)CWk`9J!F30$W^be52G}8v00%WXq1+@Am*oMNKJ0AEv5-wi8=bwsK zJ{}v&V*KfotQJ=48B_F@BB@=z-K#2ZaQhtRIAG#30eyw)JyrgoUeVUQa)sB#be@W< zwff_OePjSp-jM6fipJC_Oh?h%{z?a_fOVD2s<)z;$RFyy56Z?`);o8sC7Bh3RF7Ec z#A~rKoxratE=Yk4>b@+-Hl(Uj$&`Os)xkx&m#%@5zF!Gx6*p|a&<{d9jHtg4MGSgp zI%%94N_Wp8a0(@AmV|R~eZNn}wqM0{OJH$9Lu1FUZPtDMA{pDClx zDe>wU!9!8(+~=|X@K}G+uSgFUarbo7fN~G<-dx@^dRa~P%=4JCDGwWYTwhwk4^H1K zYM{WbGp8i}-Bo06*r2~}5l+$xK@=x-5-ux`Wv39 zQ)NB&Xn3Tdnddmmz?Q&u-t2^C?L|*$ZVhSl3EP2Yr48)qX4bV4mk;Af37(*Q`Hd0U zyNxv=CBO_z&$aV7(66WUwTinC&4Db!?GF-chF_70_Z>rh7oK*qEP-WR24#(%AyJ;@ zeh*xUSZ{*#MHcTmvLeyjHZOmk>sM@Ccp3)qiu5s!$&0fSTnywlnw7g;Kpz(_Pkm)3 zYs6Azq5NFvSp;*uBWx4)_O?4&b7J<8gT3}Xf-kL8?t1U!v0(RMTkDvd;o+q*^=55j zMrZo>IltxYB@R6P$J&b}aAZ_gcjUCo`1(^f&*w2AOd856)2-@Y<^c_VvtivocbeLR z)HRRk(aATtM9iG(YO z7u7svCpbS`p26eF_I{c-2R|jl&1nB88rRCL2+YUt6;alzOH$fWIr)g%N^WoZrMj8< z1$Z>UXvGN=+@&%sm`!X&UL;d~2>B__WZ*Zqf)brzIe6|{^i`_9MRlIkX=oj1{wnE3 z$?dr4$<4|B`fg8*bX`ZYgorpJ*%DGO4$hl8akZGCfIPeNH5{5VMhnxrmFS0nWI~`>tj6{$33M9Cb<})Jx&_CoXHbKMOIEyoV#S20WZ!1@9SMci&$-NcSJr^(Lx49J(hwsyi(vm4ptdEfU#5!4!>Oq31Wm@7_dW zh7n!hvN;nrUgg}~jIT#k`J~7*Jd#AG?c7_wVkW|0mFd-?W#!W7y_{YbRt61cEkVt0 z;SJVrV{EQdl@#rf`6%D=P4!(1Of52(n$NXc6m4NAPFEgw%gn?`N8Iu-Wx8G$6lmY8 z-fJs2oi|BW6gGamS#TKeFLU~sp>Lse>%P=AnW%g)uyDWIS;cAh%X11gXj$fV$Fqy? za67h7f4%Z>4dK#dy)Y&5!2MhqhvRCF$&Xi6tL$yfSo8GHYPUiIrG0&>mqposOb zv+kmh=1D|XHv0UrTm@nK*D(!{=z3IpmJ%N7Ld3ydtXfnC!K9a=+M?H9?q zHfA?D(`NIio4WDv_3<^}ap`UGdUH0*$uD%`#ko6aQm;ie_V)6hmT2T_2ryRFBdVi?FiN z!h^WquL}Bn<~iLIi%U#{Z(gVO4mq24`HA}b5(#a6wI*QXz-$L)=v}6q^gNf7wiSdA ztXoqj1}YGG=zYXSHyMs|AiAo*KRD=1H}lI7!OxFb;Sc_4dtF&XC| z4!oJdb^)sEc$GUg#!~Baiqtoiq|eWPEWLKnHVV)d(nF9hhF|L-Aj5l~vk~?jPr(BB zZE)5INuuy6s_DdU5WexLwIjZB<K-a`hrr~3H=Ql2tg^ZV2h1J(N=XRyKg8jQ`c zA?J<1_5p2K?gfSQGx5VnrvE2m%&V~*gHC6@HFPpbI2ZCHqgFOSbd&^v6zJ!y} ziud(Iuby7-EbIp3S`InlgJPou2{5;eu((8RWL1KASxV80)bIF{5VbZ%qC#hOMTC}? zB(P?6G@WHSOI%8xi(u;?7?`ki9{$da*BopNG7`xeYtbln$KluefDRe&*eRQarIeDu zqvw0P9TyQ+>gQ*U!*O&J#eY+KGbzSd|2Q?a-7!&Ri@JUAF2TX#aT=}aU{Q0%U;7X>_LJm36|H!j4sA@Q z9S{4p^b|oW{5LJy+3dj-cVsP&>!dGhSosh5`7QUBBm$GjAEGP=zq+JZNv&)xSd9)B zaYE~sjZwq)blGF8%7n>4#;{`tc?V^8U3Pb+q}4FvCz84j{TkA9iJ1tx#8x8_eUn;u z#J7_W5hNdH=|X!sN@wmkHgl;S-%VJGUZmVOPZEWKkyU{Cb~~G5FW3f@Z8IjSzj7jp z1q@o`(rlcS1l%Uwpow0N)u{Bfkp4+nY7Em!%UW`5dT6(d9%*chbP)9h4z(RjPTduU z8`brddn>_vNNDx+Ma64{33nGd*D_XI^M^97VwW08DpFeUI);y#HZfmFK99bb7b?6J z%Y1jx$zX2Q`FfC2Dx9T4`DM&_MXwOq!_`R`SdIy&ihs5cnGeKC7#S{lQ`XsPo2L*D zY;KqPIL~^PZ(Ir0l7A@O(&wi2z5pws5X;#BfAC~Yo%qO)bgNfyrbv3@o$LjuKABWk ze_`2Ja($0W)tE(8uz?=Xl_kvi5FQ)OH9uynYdfmUZ~f(5{aUa7P0=Wi zuaSL-r6}H|)J}slUj{cGp1sUlEldmWn#{iQhGpX$XkcA61^36rS#tWi@$i+l(U#cikYEFdT`IM;0o*HzWjgN4Bq ze_zzQ_0SKi(YyyG^w-+?E9Xw@F7tNgFwGoNIWlc&(BZE=dG5$kqhl;NVckR}Gbj4F zhJe_r5ixCE4%G$^eB?`xi?f~GlnSF)x%*X^L(fv9P+>yWAo(Gx-G<%9 zdpC#M!7ly5$2((noZW3Qme*opPMb%AKFf(K@_IZoO*qbGUH7XV9I6~1tIBqqmtkB` z6zT@yBEJ6GnV&z5Oh=DKthuC)kTea04dP9$D^N`4KC}P_W-oT`H05|aHSd)kY41UX zmGAmMa<(4uSZU{hh?=uL5ejt2s^wH5G|Y6kivD`+J9zJR)e-t|rQXX&ViBtzOfqf3Jop)u zxP%1TO-jxw9lg%$IwmnmJL(8a3Uf$425B8Em>$)H$aq`xcA$j>gwhfeXkkkcqD1Qt zLH_dFHn9*8pE6eG}_(^>7!k z0eWR{h~Q7j%OW#cax|p@vinq<;}?Umd5*9GJQcpq*SSqkwvA{9l95UP-_BIi)58Mf zc`k2m%tJjSt$3Kuv`>dtSy`Ffq3ny|=%vG`h8O4y^m{^OfSOKj1F94ti}3yYq0tV$ z7a|$lv0>4Ix!+=V0ROkng%T!s)1ooFvp@whC7wESU>|&YSn!9k4kWa99&Z?#vqbm= zk|UjOi?SY73jD3%EAcKp*Kj0BP*y}4n*-Nk$*0t7(CGZRl|!DjWtZI=XXw1NFMpa< zl%btnq~^>war`OarX}jBFExq16%jC|qP)+F7Yiylhd4yAU8_Wp;0?U@dZH{IV(_uR zfo=|4nQ}uH6tk~N)>#N#N8rX~q zcx8=7TMPkC1px9f0?Y>PJX(05>-lWOfqS2f#-}bl^#xwSY|_Qe?0RPEX=G#-BTbNB zfD*nv08SH6(+?nK@OuExf}Z;f7#TO#fN@gk1NsGfwh0`b3f$O?u{HDp^ktd|>>J&1 z5;!QiSPTNBpUedX;?|6N1sddbg9m+UWkdqSyZ?_0B&+gyYMz+iLp)$0q{_s+%LPu^ z{QdVO$?e73hRqLXT{9hP8!KH+)2DCdT1LDw6K(bKaqb8_PS@vKAqx{9(nL7k;*k~+=Mi^2Gf1h}^^2=;r2UZV*v zPL+W35(7IAgmfy3lT}e`{xUUi_?3#l>52OBfP5|43M$UMlcrPtN7tHW?SKcV-RoQP ztfu&@j39?a^?zuw#3oF@!3yWOq|>ECrEd~Iw;iI>nn99nW^yEmItNloJ6 zN_5q_J%+=XJ>BI>YP!EZJD<~+>QCM@cb^f$rAN(R4y6g zE>G*-*jHAz%iN)W;j7u7Ye~tUYk;%W{3$4qZ)wj0V?rWWMBRw@UbkXIs_DH+aErXQ z7ZN8`x9UaiIcN#qqarM3Y({+45Ul@vxI>>l9qg9k=Ej1g8HLGnbUq);=_tiKt7o~i z%W|bcU4u5Seny7kNX}Nw)uPe_f!>#qd1cYIpIB+&qsA2ffsa|;An_Mbydbx4*c?~` zb;(*2l$0e~9U^uD{g3FOpHm1ld1(bwhSgzTz6lE`FPKM&)3oL*0V@aL-VM|I{`SV)$)>yB(ZrZV z+{hTW-_HSS<*LxMW#kHRRwbaSwdj&2%Glyzzfm;qj$etuNY*-{l-;Z47i8YP_hw(E*@k}* zTaXmM&pO^qki2EtB+J2v_xs^*#CC&5^nzx;nA}I9X>c9Xm4%(R?o(nQeDV>7R-W_M zhI_l&7Rb=&a+aQeLR5pk(Y{HQs{q9y|%iL@f=x`)F{_5y?+HqoQ9u< zrYym8)sL6S%{Hn%+Ifi#H?;x9M6F4kVY|}Bleb1ACYFemSDIzW;Wc`Vim%aGEF7hP zmrV4bm+mn{#*4pJ5k&*KjrN!k{PeAyFP#@7Bc07<3MAss=0XVhj*TOR8v?P&i>}vB zZ@3M(+WcYhAt6+pmp)i0S5~}>gw=(QcgOTXf+8DjFc*pqFzm&H9F4YtHd`h|VCovrjo~CQ9K)$SR>&c0?15uP@kyPHA$f+I zanF4aZ<;(Iq&V-}dhuheg+`Ly`wQ&*`?DmQD8~ak?zK>j8Qc#XiGlYjRN^Z6t``Ef zwq%m(Qtww6(q7sge=yBMcRl|=tyVqplR?h1qSFJ(UhF-oUr8EBOwFGD9x{ZV^yqnjt`;dSg**uCswxU<^7aSWZqfd4( zkLO|ENQa?zDjfaN3$N$t2s5k{*<_1KZ)!^7nYjL`VpNKqebXloQn`#es0MlTO628!>XQWBO)J|8=d*XH+@B_0wNDCPTM9mFuHrY@Cjr z+}cNbLXjI6+HV3E7x7NCI3XdvnuosKP~I=YwOf-A;~ct4Vz|cK3>HQ>r`F`}Dic5&xA=pD|uG2(BPR8CYi4BtRqr>%yGR3}m zKb5fvWPU6npLJjnjOQ=orNGB}|EQhy!4QV~>~Ud#(M+{%^5Y)j&MRSx5S*=CWEkLh z*@omUQGHqvoeC3_m|NeZydI_JECyd8KHzv4Q7KujIc3MBZkFY5iveZft*TyJ#Cu;@ zP}1U_(AiPxEnX-ECa?_+b2{Cj$islR5)%sK^tb^L5lA+^)F=pQ&O&yb^eQ+mJmYagPC+r|5pyx3MdF#c>*KVx*JnE zHAgbY4%r-&^Jk)I{+Ctucywh#PPnfG1-aj*9@w&+9|yuSgcb~AFA%F87<5OwvYxnP zb!Q2zy&tUf)~k6+~`Fm!|Af%=Mwb2ulkCCEzpa5V7_ zm+~E^{D!H*mWPE^6VLLo=8w02YL#l$-+Fx1^me*Z?zb)KJ%=SfTkJ(|-Duuh@g4PP zi0eka-`h?-0e^DSVXB7poT$FC$v? zWY-mY6u)x zK1F7_52%NJFPK5|t-jdWDm^?ifvKo*!|xDx zFj`&BWa=+Ks5aYS1m6*mTVONibnH+S+PE9vO+m2h;B9`aPnsUk5Vs$Wa1-pz5slrO zm5y8#TE8EOb4rWP93k_gr=EePoejlqkgKyyd^Lg@#EM+7j#p?|Kqp8pFz=|95gu)E z06tSVL86wy^f}#=oUDpUpuj>CHeF;K!ngdRJ1uMK#k7C6p0?$%059^ye2U8QKuBby7MS19X(bu$Bh;k*5#Y*h? zU>D2#jj9Bm<#TCq(Ef*L-r?A~!*C`A&o6La9i3#PU}(=*z+}Mm9YkKhEVm2LZN-5z-K0DD!u!io>*D8F zngV^k+7L<2hoD&lqN`l5PoQi9M!4KD1;n$#kG$vf(A+^#3E4-TNb_$yS>|~>x~gZ) z`p~_`O->(NcIVnohKOyVJi#<0Le)2`qYNK)?c97OtO8JL`yg&Bt*9f_+MNQD6h0l5 z^4LcZ&B%$~L1nDEKYk{j=Znt@$wtt~dq4XtK%*7?{ua3kV^$@P>g^KkJ}QCWkGvm_f>Je4gFQX5x9YDce+iljjAME8Q+NKX z6`{RdY!yt3^qb|%qYE#2TsqkBUVBxJ1Uc^>81lUXT1TP+$LP>B+@i^Qp zA*B4>bXvyEbT#d3Ayl|AA;W-lp%$p^F};seVso9a)n$3P06z z2xl5HlO>UU2H(bzchcY%+{F8lSe8?hdJNu{HhPqanmfN%)61~YcsEF@_LB7A6B)}3 z-K#2ykH}M8Q?|Tm{o2hzsgHVWIM)uBFRrz27Lp%TBf z|3D&$lk_oak&?=ePRiz|aPahr@il5M#hU5aQq|7PMzr z)9<26BtG~U7pWBPn7Z1S@bH6jTla(OlG7XQQkwxXaUuT*KF`~WT$N@r!u--UPWuE- z@`{`0JflFhGhN14WcX$e^e@q1IE+II=$CU*+>wc}V1BvqIdo=f-ET@BBeV;dK~K$M zwQO|eqERrQ#N8{bq{w?goY~@iEvIm24emV?peW9M!!_L?Pp{*NOZj~){6hSo7f<{!;2-F54#W#Wgn@;Jg+_#jgMWjBi2RlW^DP?MTN->qY!X&F4t5qg zW+rYy6>;v*@_bCpUrZ(C)wT2u^f|>W9W8VmRCM*VADcliuRuDlpkKT|0zI~aFoE)) z|NaEUKp;q{7hvEofoo)lK&>xdg22Fm`hgR;fj{61S_lNPq?9xyJrWJ=%QvX+2|n>W z&VpV&HIobEIl7%SA?wNV{@P#GN#e&;o-nf5Bgnk(P-}dx#K=maf`vjUK9W*g1TBlu zPdcBk${rM6qazSG*^KsBSNBkBmYeK_6}YZ_4_oXZT%icj!nS zCjL|4KXuCg@azA}eFzz}st%b$eG0|>KkT%BxgA1%DD4sC2dR%cch1%F2oiWm%8yKU zQ;&>EzvlPNz|dw83R*SPlEn5C7?p|4fJftcL$y7z7xF zJc16Wk^Hr9{em86{vBmu`X8b!G|$M&A1DjM6XNpkD2tQ;&;K4|`L75%%uFnF^#9Dz z*=z7oN0xuQypLkPJe|MXb#%SFuXXFYXKNx5wG-qK#M6{SRLOxUct@oWRjVOeE}t=% zVOKIMS5l#{E7wr}WyjYy^}C5LB-pF>!Mf#sQ@W-Focek^(K?Z$t#5uVUGAQK@9B@R zZrtqG*>JJa+uqr+VoiYeUKO3#u9~DsQVMw+u(e8 zu+$U;CvGi`oXBEoB)8n(W34ao;;);NUlW+#7`FWS4IB0e;jHEk?-<3bz8v9dARICN% z_E=lMcVjS`hO$mWnCQ7_&jpF8h>>@9>TNDGne@cPyHiTICSpIe`*$rw<(U!#YK|HH=8>V!~DF7@_Az0jxp=!mV!7XGVF1g!WRM4$4S>J=M?~8=K?&J>A{$&-}HLI(z}K4h0rBoud`FjgJR~35Tn| zF~}8)W94aOA70UqFgQxd#dhe>Z)NJXy2Af%8A@7lOH8Q~ytI{&5P}?6WULnM!Su=3j*xce?17?Fm;(pH3qG!K|*L7kkYCQWEoi5u>FznFgXBMNDAg5sW zM%q_444@_kMP%?i9)7JhdMx5$ zNu~omr9whPEE+<+J+0@o=m(9h;iDr?b!iz^K9VdPV<@I_Gm0}eEsU=xe3-;`w(al_ zl`t-PlvYE@$Yz2L_42ZG34%;sX82i=Z|J(!Np#FB(Xff-^$++KJNwHV(V$QgI8W+S zc99BBb>?yWF}OtK#VtLhaV2A~rIn1Vwsq1T3xpa&ZSoTdBaQip^e|y0R$2P##mme> z-w(uNsg&Sxp|gclF*OoW#b;{t5~QHoDt#wkL?t9qZC_Q8_TtoH!G%3PV#{5M(H%Az z-_Rv~=P)4Bl|#r}MH(*AKWy9{8WRB#lCI&!ANor7Qzl;#0(@Negpq7vM6S4;UL-sl zKObJk2htubsZB^DO@`=#on}5mE1sPGKEWx2EZ3QDe%V}dCdpHh{h|^*gS~=`>4;V= z3E&}#nBDKm>F5-Tq)S_)V`E~G6~a3XEtTLY>2gl@(H665O~U9iGbUcdaSuDLObV`2 zz7mKC4NaBl-ZtL(NuNfO3jgz3us4mwGv2eHdRQnZdQJl1wQXT$C9Ryi_uGQ_+|}5|x)G8f$#G$L@u~j?2=f z;*ridffVT}&4M8e%cGM&V6`Z`V5O6>Ib0E-tGHpQ6Q4ITO26%7+7;hd;ZRI6rZJE{ zsdD+6dT~)8&YF>S;C;V)YC_t+CMr@o5?Nw#>qE|zBa1U%d%D`yffgafbSwC-FO=Su zQJU9)J~Gw5vDU`B_pT)%O+7!+M2yJFgfZbgHHCkxj;{N{509a8eJ^^RBPj+JnvO^! zln6?E{b3^5ojavE;T(ycb(HY*k@SIun~v+b02}zOOVenh5fb7VQ|43Ppfc4u+c5F@ zX(j8eG1;&&8?u7V(i3wr=Hmt5m>eZtD=Vb~DD(ur+>&d zxt2usK28eM7&>W5>BZWT@E8^Ir!n^5oUn=y+gU_PrmexKG0a4!tiwd8riQ2PUx=pI z#pzV-gcew{ur(8iTIwL!xyf^}41~WJUxGR>U(y!PK9FTiFoeSY=A=krU zwb2fua{WJ@YDuj=u$U_@_t2WMcwoyLHLr6fR^Qo0N=aX>%WgK*Zp=+#i$dLY-o8|d zAd5a}*{^K=IePBP;#5b<7bYjgH?&>-wXm{sQnJZDkV=RpdeL!H__dYVugE>6)5_$?dX8OM;5+_6{seuI4$V1JJGCI~Veh``j3f{{6IkNgD>;jYx zGO=b%h%>x!iJ459Sp`>#I}MN3j7ER=D)XKi~o> z7k&cEP)3;V@LgmzKgTZ-$WO5I)4gZ86}@}mo-Gm>}?0ZI$%RFSjwL@%Mg12qc_ z)k5)uSO}`e*gVS~APU9ube-eVKL)iuL?_0F>xxWd>Fq3Kr@Ng!XhsMrYE0VhF05dVrFtDzAX-L%hSu=(p2st^#71kY8qzuLbj7ll9D%|;aGdxYBFr)o{28$D7C93_ zim7~A-lq0)bukPMMcqHk!3|9K(_))m%3uP^C_-D@DkVDCE2xBiB9YXsPPh9NDl~pu z^nRYeI`WEnMaE2Q!uMKu%z(Gca-27_^E(Ipu68XaDILD7aXB$H`x@-LO;N1Y$Q&I- z?3dHf0d+YCT4g83+pcT&GBW(O)QMTNebz}VEt0_|E}?{W;hYhI&BJ<8O4e&Hp@{T} zq3N$4LXN8|E%w4hyLA4u#qsBvq6_ul@CO{9s_X}cOBNuo`D;nv+VR&?PQOy!KR2ah zGMq@9<75#ll6=kIalyPpYKR#h5h1PK(32T=$$%=`7iC@E+fUDSP?(f5S$m@B?yIUB z*OOk_$alFzUC*UhAe9;QAn0k6(QoFm+6>O#q<2bCVPw_$WsToDlGXlJtbXfY%1?TY zHiq`{>&^GV9R|AyvbNZq$Tdr_7UC>DXm2A8MsobFlqsq3AA%z>+lsCGnc=12qT&Q*U%cOCrb`zj#d3BqiBgiHLt&7g-95Nfm%rM z&eMyyuh{F%)>=$Bfu^na$T+vj>Cs%>gv`-;A1Vr)T~(!kh;Ue+v*M#HU-Z}>+1PkR zU1I}I^;Y&x(e-TlaC}MJFdBBccM=uOtZd_I+P4R#3nw#QA_`c$>Fr6_$`SnRcQYkx zM5 zXI8J^^6N&`-CU=q-&V=tZ8L#P193$>gc&4*QTq@~xAxEgGt5&^18th*7@twBd?N{l z=x^*F!`y{jjH*k7Z<9Fr1bq2xWS;+Hzv2KG(Ubh$2e4mZjC0(D73m}ob4o|TzvhhZ zrsH$@O6#A3!ymN2B=0BsCyIlHijGvsqeT=7})#c8&Pxa@5?1s^w0!;JM zm_8j7rwY4|Mv~7b3KVz8D{9hnJ&$xu6?)f`zbx0hzW|}ymePG;%%=#Bs%;Jk*+)H) z`ZmkQjAhg~*YYc%1qZqw(C31(p&W<$?YoE}r-oREd__l%`nVXW-c}~Es_%z_GD}7J zLc7xl1>Uhq$}a|zF#|Di$!|V>_$*QQz!L1C=J&69ia9zSrfM2Vj|Z%q|4LLb+g%HpYiF7iC=dWydh)6n^KSkAts9v3-Dv8F zS9GzD?n7pQqKXugO1DOS%2u4rW%7=Ir5l&b#}}(8Nh)(y^%>JoPRQK&9rpv32Gyyr zX8cMox@*3-z3WR8tQ_YG3FC^DwqRNyC1&0R-x&q)Gfu?dVrp3QzI_9FHyeT`vGggP z89yY4)?c(V`354h!oh--Ii9!-lJ8j`UHT1f4nG0WSNrffRSyr67Kt;+$%Phe(Te_9 z40|6liX8>CfrH^HnOGPq*nC&$v+%~x4tF$`XHwFiIr}#*3}!I59xQbEsQy&#gResj zYW3!Q*}=lYnBaBm>FZ0+mE75#hu@4Hs*}6Qr<=n}$!b9lHeG|$-==`bH!82>W-D-@ zS~gEZ1AceFTlrJHe#%@S(22}nIz`2$DNk_bmsPW(t<4CW&iR9(V$B!c#1yGqgA}3# zWEcw<_=|cnOHQC^TPcG|ZuQ_o)#dN~_HP;LW!eJOw$1@Df)UxO{%0XdMzQm0cASU%UcM-FUH3otVVVUJaB|I1tvm2;2 zv0o+Pixi2KCb+ks3Gq4iwa2O4>FL?v@-p#z4v-$IPL4)$AJn<;qzrMg?Bv+lei(%= zG(+P1*FA=k7C$m<$9*xvBTGsg|9E&Yz=G5 z@{fc@m8kAF#U*)Nw70oA^m1Rcj-k~N7au8M#T7DA3xuODC$Lh}sA89X{m=PQl;PjA zbBa$b=~vBumh>>rz5S3Ece;#}C3G(g<9wjg@KroBTLQw?sj5OHqgEc|-Rj@lVTq9w zd7FA{oE6L`(($R_D;udKYN_btlJdNrc38lE zU_q5K?#~$h;G?`x{@^dgZJgIO-PIof(Bb#>2qpHZ^9Sjecf@@q)kqe&A3jukqGd9R zO&X8u&uLHi$W$@-a>-}VC|0`IP`ZsOcMG4yh~MMFc52I?zxuc3pJWJL;nY>O>8iF_ zFLYBU|66Q@Vs)loO5EAG{*%n|r1SRcmtv?BRY{D>2;It+ia%q}=4qt#Ci~tD-gjeY zzgCtF6=zkiTD)>ZNc9~y$4s!l4ub)`n&Q4;#IcY#e62tv6{;SGK ztB2Ly!;ZznPfqy5Z_nei{&ml;Qzb<%YUUypDbvD$g}yH{Dfq+50S{}Ywq{S$gGGA5UK%lYcYHbb!^k8H$nV|=lhZ9j}+;4(*cj~1~jC7$quFb7lHvJJ`SZ;UrnJ{9`W!}nt+ zPZ1jq(uFJRlfSUY@oukC93^6?Bm8TMjr4r=CC7B-5dVt~e24MM+*&cFP~+-fiUhzq zuMq)@U7_uthW+29BAr)x``B*W%(mCRao)RE@<`~UWNE5NC2IcyB!FUk{8=i{d-wnR zYAZ%OjW}o5b_Dq&0l&kGQ{cbq-~(#YUj3q4OknO0$^W8=Uf-`fl%!O_x5lKu0;%iM zu09gus-G1}n6%FXxU0zSth?ScYBQ>-!@j#O zcgwWh6W0XQqJMe4Kp-^^^pDwY+QS$9kYg}BTYj0$%f*9AtCW25QK+#`sWHlcX&|)% zD!4AsaU2qeLQnTA_3g~FP~#aaKh3A@7Z0_~zx zrA}6VRq&}2td$a=UhdJ@IK1dnr6mR=)TOR?sUQJoMnXHCU=|Xbn1LQ&*6MhK@>{St zygi-GM}3HPGgIh0?xrXknNn{q_LB070w+EfaG#l#md07&TXH7^|Abfk8acGQ6%Eaw zxNx5BQ>L5*3EnU9^UEm@|9lzy2`=ScTN~LYQr|(t&a@xFEc=|19rA}UzZR}~2(2b!se)3|)}^TwZl5otV*%v>R!eZF z%Z-Mo)QS_uF~V=xnXsMm)7Qyj4U)s@Eg&fv~9rm*S<~s(}U&2qF$r#10VR64?H)x%`wSR@B zmC%zqE$hIpz9qbOuSVZTkJf@f6E9rA30Tzs88+Ur)9Yg|)qcL;r|H~I zBfxz;Xwl~4KHmC|Oo!Azl7QTd&7aNskcsTVoa8 z$euCm^zB0x+Y&HaJdvv zAK6k%X%nccJ&r9?xJN4v(hYH%UfXnFrwtq@&WcI=Y~mu2FGr2*tQ=hE;w+%CTXyHP zZsD*GG*Jzbx~vBdodU#j2WL zU}sla`!Z_G12&1`1KaxdOW%cbT2K2aQbuR{9|Ud1&w{(P%gPRy{1+!EvC>`sEZJN) zr>Qxb`28VZ{7TroRg&^xus_4@`^Znr2 z%|FI;*B?X)^|Yd?8!qwXq!rMAO2(A#q%kLP*k8=J1|4)$kWvjS_jfaUS#OJYu}P$|8-EfAwS7uxvQ_U0R2F9Vlv$9Jb@jk}*8!D$gb z>E=+3EOMjO5XjXkmi3GQuP=2MY?Nq(QbJyxZZp9;d`-0B^i(v(Q(7{soEe+Kz#)1HfWiNqvpv1iYnxVGRbZ z5e15yK@5N?phf-v;ahs*-F{&-?{^q%OJ%}jK(_W1t?~u7sl_d3U!S)t+Y_ zN?{^JB0mmw?Ngm?R+!P=blU5;6bwrW2na6_yPlj35hS>QuJJ&TCt;pf!^2%2tl0G zu=keJTGGbpXKD#A&@)lctU&O)^rb(^{S|w}{V!!xX|y|M4E}2H@sDBop5RcCM+F0& zSW`hRseqr$|E0y?oDicT-GtwVo>r|pR?}}3vp!V6u@%T{GsE^92y$Bt5o@Mk4lk7{a)H~$1G6ApYb5VV{elFjQJ!F<^`>IcjV+WeQun^VH zk-z6OqANnX-T38~p+~w19mClLA8AX`=}9%lzcRrnTkmju+koC1fI>l#Gf*+k2Bb9V zmI8JbA~(Wy;dFbqpRk<8e;Z1^ka{O^QYcQ>L+aWjr1tH+6p0>D)MiQYcUFwz6JN&+ zl#wy_*%=tHbu+srOyNy?opa=BsTB7i)|^e;!9{f!pnXV7UY>$;kj9vY;`08!{!_(+ zqqm`MX#0~D6(7^mTN>jhtD470hCJU04!;hUJNJ~9x2X8x&}rK}$@=4E>Q#v+7Y7=` zHlWN);rlQV{X@v6MLmcDpHO8X!;<%9WN)Y|m_~yfki?0-h(f~6i^l%~bcaO2fG*`? zI$zBb zaLO$e1x!>@gfvO~aFp>m3gKcdkp=8~b;Jhb_kcZx)=v?1Q#A@RykJ%S>{WA=I2Dv}jnmoWBpwzj8fBO4X5HbnD7V}29*3Xq`XOH;6L$ZBP&^aY4}#(S z!ev6^5oie6PoWU)Za;ZBn>a8w57DnKz6w9*)Xpv0z^SiUYGzqI&k^2H>T6CExgX|I$zQYCRea#v1?DFJt>&+%VDA zl{amwsJwVs^x1eN^FV;bh7YltnzY;u0*&5SbaMzq=!%J`P$&&Iw6j#|FX@yL}u>yN!Rs z*aQXH6p@ksT@e7M+M~#7MHNZ`RLA%wQOZ8EwOdEExpJq zjyL2R%-XQKw72@0QMT-C7%9{1b=7Ko(8D)2vwMEN*jVm*lPv41DOPwFD z*0Q~jPdpPO+!s9VTju4kK24I%R#T^?2v0++JRkCKc~8T%)S6R$M6GCW8$?XW$#>AE zQz^=JJr)Z`)aGZBqL!YeC>1;rC-DBb;%BL2mTUEXPNWgHf-juu>-b`MjY}G9F{_p#3XP1cyy7 zvvSGCC0^w5>ziZI{$UTuLjbIF+Z9#BB@~=>@TvY^C);5B+k{QCB{=D@^+HOj#T&hu zKeV>wJI!IjV3oqI2FxNiqxi$pO$qI?WG{6Iv*P>9^ff8Qrx#=~b}EOOeR0{9Bigl% z-84t3yutfo8_xXx2c~kak^vgeQQzkfSPIPvo@sJ>LRU{VykD7DO82*}hUJ6TPC*E4-nq+9JNpex~>}#!!M!l zxj>(E_4gp1jiV*m-kOHJDLOn{#4If#SE&l({q8s3(k%An#{A!@gEPA|dx(>f9-R#o z&FPOx(cx1RZqe zbPb+(XDOE5WcJMY1j+H{Wa*|E@fro9^i1vr2HC;v>1G@=Ij7=x##;@p**9DFk$*-n zH(yo7CA9|FYUvd8)Qd2%hP2ot>UQdaBj97g9i7~u1+MIUNKV*FXBRXmko-0|)-P}qj%7w5Y}H=i1>~=tjBrF^*6!% z$`L(rAO-B^a&Xa2T4rwYOKzaY*44F(L|Xbws35-N=vcC-yT434x$tQorAXvy5I_Aw zb|l6%bs6om)0n+aNHwB)TpI~)4xC$WXq#WNn6p4~TvN{{Bc;d(QzLM1_1v!%)K5s4 zb4rM{3r8=jvGVx=KdO)Hl=>@>cJV5XiuV(X;Kf^WoN1T$p`*4_P27jGg`5HkC(W_7 zucArgIC%HUN*x=Tg&Z~L7A953C6B*zXuL?5*S6 zwf9T(V^3z!tWpy^G`Xc1dwEvrTOk{iR2F=yOn9!vY>_WBM6kmn7-z3TduQU5DuJsl z)jjn7TqJw~diXQ@@YDN^!K@%QX{gpmvTce$aAtlfNnZN0&2KOHehiK`PTN*)p=RPs z|GN&Jh^^m&?r%nn$DgM$7u5|2?glUXm~_@#{v&?tvhTyxOrw5`B zl9A^_@-+&lp(eoVjV3%Ha{E?p;;<)4nP?kL3V~RKIP&zzA&i&{TX1;POBPM)@`y-b z!f{h!qFAc`Fh@b>w$Sl+&$pRvi39cO7Nbq|YU&;J>Yy@OsF5Nb@!59#uhO~jt1Pai z>dxTb(5OooRBT#0-C51z zgH!h&S+r9~=kt+5^D#>if%Eb-PwEb^6vMDqAh=;qjz9=UOl?l7n+Fo?CQZ(%D0Y`l zr`PGs5gBEUc9ld^-xWgX)B18;dJQ9K@+b?xP5pl1NtYx^zZW^K6UQS>5lFjx%2=GJ zGeWW%u@i2k@Us`*QnRWI1O>Y02$8Y60C(esfe3}XyY=G66f8#!OR>JO^4q|W$l51 zccUJGFi`&kQjHpcPS}f3%|l&nj(A++lENGFCE9H2Gs_m;H8!N$6%{mCP(CGA-2{iv9hR3P2lH>5yLW=R4W1B; zL4!Kr(iL^Fx_PhKivU;UhYFVUL8L%Kpnnq9Q*SeZ=exEGc@e{`NH61VD<`h8o-h}N z7fEyWfBj9n6B$rYc<=9 zcVFL9Q@}P}L3p|KT!70x5Sn8C@@Y=-Bsh_Hj%@$b8)*CuKeP?oppOLN>*FVn|93^j zCHnD;PE`FD0#ZY|#4h_&56Tp1-G9R@UC1dsu4-a>CLL7lha=bvkk;s;{qzAKl9p@kp!lvN%ztI+S8G3a8nTW_OpLduG zkHasgj2ahw&|PQJ4f7qdUO&dxOGRQq4&xat$3`6-riti@hOE$|{?&t5Pqg;v2fvFN z*MJNLsO5)+xiIr(SETdx9?+yoXv#Ylj4)o}%F_@5@|vF2m#J@4{w^Q{U4%#)awIC9 zxLVXe6k+KDBd)}Ef~SxJ2!ifaQ@<=)I?!Se0im<4z=dpq)cnR~$}U^Fv|@0{E$7?l zD@;4hE4MD?;(#ce0LG6F+Q(>{u{p&%*>u;axta;JHaZ{Q#$P#ygOQ5YvPIrm}=Y2R@XTkAlssIt1D6?D?*%~aKBPl zr4Omm&U`Do>}L5Ik#p6Wi*kv_Q!zxbbV$3RI4|vxC#1IgbC$^faVGUbY-#6pU6K#@MPmtudT${3_ko93gTpS1N@PdN?*tKpkt-9t_Oh;+c)*KDSYD zxb{cqtEq zBA;f>{gNJMksKuX#j8(T6yzn#7To@z%)c4wDrq$4P zHdwL!sTHhS{;U)oiBAAr=|0@xKE?ZT{y<=Er`X~1=o#stTk6u$()PR~C0BZSpnT1- zZ|ihz&D4WezT>K_nwlDs?21Dp91eFC9?wFFw{U`&m^xVx6Ei=c80%q zrl`GXiVo!>m({&J3#nY5wlzc)t+pmxp7hYIQxXhxem z^VT{Mmxc#j8I8^~5dElf$t*(Yz|(p9>5XJer$Yzq)VWzZvd6d8@oGL$P}0%yvLN|Y zDj)0XrD{qgfHdhqv}#WP7%{Hn6HvSuGFd#j#Y!HP6q;yg;qaMcFZ#Z97_BH(euuqVR zZmO-RSZDOC7RYB3u$%>bns+m3-P8pSMEdG;VfT>xoh{slbtnYND~v)XN4Lo%P{CRf zt(@+}p zo_hAg((?GNnQB>7tLxw&wQAHzTtJh^R-buNB)(sS^APfl}ryQ zva5Q*KT}QTLe_4RJ;?L*<~zyjG8`-8Lo=?SK6AU4A}mAV!nJo)e3|_yk%oFsXq7E-8UNP!Q>hnhh*1%ysi!?R9tdHiAp@#4MO@hxyeU)eP2m{JfgRJWjIxFHfpy;rOAJw=H^ zXI?0Aq&%K@*n1P`*TX-8ae9mLT{tI|)c8zluQf7<$k_$?%E=2OqFWS|CutO`%WuV* zu$!K)99GQlQxsn6=}mCGef#2&Kb&<1qRriuUprj+jo`I)AJ-`}US*IV3(gTpFDwI< zL^v8V)`Xd3j(`##5Dw1^o4*4w%knh338|g-5d_Up)TI~+iDpdJG`f4p8Fv&qR<(m=3#JKys(I@lX`d-s7qA|d-lkguMve4a;AT!N}d~cLuR0;hIS&2tV zNn2W4!l`#ggT=NX^Izf9Xstj#q_(}Q(G=N|`7%LR^05BdS7&^f(3ev0vs7b>*mL&< zw}5TP*MneoUT(F;ZTPP)+w4==Qa;TDd#tw0r(MBPvn$he8&Yic54bV~-qarO>jc%F zw)zih_7iRAr8*SNL9C-QL9D&~eMtn%ePOd0 zH%0KX{S(s1X6_ADuH9nQF*1IpkA+0`OyLu%2hG7zde$wE1ap0oOH(J8`^JH-?2<_b z{rgR&=hn>G9%hOr`=|Xa#zmW#Z~+0*R!z<+NtCEoJ7cW*UXbOWsEJ_;jZY7Rg3XoY zW6#fIyU33Du!sqP@38#W2GX`7eWf2gmR`DFUcBL4d{?~1@H?1StJBFTMN*p9hqM-& za?Z)Z#Fws9Rez#w?ExE}wqSDZwDGSXm|IXBkG+IZRkbt!G{a%WZt~H!8ed*sUR)IX zlrk|jwQ+jArj??AnDI47SRD;K9E4Xzup}gLR~Tu7BicPwjSIFPq>%XFO4izTjtn8` zAsJlnI$id>gj494Sqo6x-E<=&mlm<6&q9tszdqoK7x;>6Ze10^5|%RrJ+E&gm(gx+ ziq#)TRC0c?lSOuXYI3^2{WYy*51X#*?C3a*EGBi+YP~>xRBh znMW6mf#b{x8Fe{>DUL(;$t74!CXl0_2nq_84ZC*+BVK1?#XsNu(gMJ8)IIql99ci-;l@Ral(V z+*Bto-%mc z?w1&~XToq-cc<;7ZtolKw#a)nkNfQlLC14)HT&Y)E?$G?1+3BrVc+tQA?tXpBo=Md9y=safgG z8(r14u-d<-3l=q8#x?3Uxy6HrC*_8D9i5v6!+R2_za$wC_7hx!uqB2xUf=buyux-$ zed2Y-YbAOSbm@%fh2I86N2FkA@k_x!!8KI;e5sbMeGG_65!u>$ccL+w)rGx8(1jNo z_j(=jnC1xl-_sm2-Mf%<;k{xr&y#^uBDQqlUHiIW@GWQJiut9m$MqeG_EG3Eu*!np zCG451_!2$9vj^37#_8yO>%=Z(d4_vl6*rH9)SFt&`l zwV!6hpu_w9?Ng!=kM4<9zrg*SVjJ)^2JH6sxtz|Al?GI``LdCW);4meap}^^;lA7m zk5gjl?dj5JKlbKD{(Lx$vmR@OYZ!(L#W8D6q`@&Iamao~r%!~_5Pz!@F84lJ)__;n zxTA*FciYpkx^eiT1^wfz$w%E&_L$ysfAu{&P#3)pRhDE$2(IZ27hq(|(yPZqKvZAE`{v{bK zN&zF^tVwJ0{d729f2>*Gz6*KzQgc!4E?cMgv^8voIL z=|{OP4h)o$OBBurLu>l<`}oSQ9aD1@-%PE~ zF^4?q1t~KBg!0A6i>e2(i8ygM;FLVQb7|K5p+9w#+OMna?P;XEw8a?^N& z`lDOoPycHvV)`aM5s~Z~3ZI7hIjr8}pKu^e<2UE@K#&$?n~46%U%E9FSRH{0hSoQP zJxpydQ>`#BOr1GkX@uymQJ(iM)7yon4l1=b2ZGpPZ@?DzcOWMQ>Cc9~^>;HX{I-Fr zzQrNmJDvR0*)}C}s=_1zU0|}M-@5(OYden2acv3u3aGI&otbCd6-l=q(a$5 zE}`y=ZV_E@VY_6S2}$iGIoU^UO890K0%kwU5|yE@el4MVMC#+`q5U(SN` z4H<~8uU_NK%e@BJ06kVW6ks9zCJTHB6X|ZCG{&;v5(3gnnd!d{@lR-Q9=Bl}%z?i) zSyJuWdx40K`RS)XSQ9zH4-!3s>F@Xy5E)D%-%}>dX1}!%ez>0pHf2F6<%0|f04^Ng zQukWPc^H-c=wR0}-Fmjv3CV9ik5ZY{wUohPUHTSG4S;GFb_wc9jv1Qrj8OWhH#z8L z?NAA#mrcW?#>?W|5x%Y`VvY?>Zrw{SO0F`jdmw(v$^~ngjs3#I+)f!mQ_9xUxcxf) z9>W56p>1~{+*S~q*aad*r=aYN1Eq)8|W1*Z?&k)jh-MAiXU3p|JlnLNRdE=Yh?gJf< z@?t(Nw%%miU&987Mhdj)1RKus%Zl_&Frm(o#YIrc*711z>dJ$jZAUeGu=A(I^W(MI ziTuUIyZ;y;v!ppxBG(x&;V&jQa^RNAaE}AAMCTOQ0_tW*O|{$B2U()YY4VC(pW{ow zjGkE^^x&8%W`+dn#Mw{V9}xXQ#hI)2J4vX>IF$p2znk~f={WUVvpR_6WDnWx2)px1 zzE};M(qJkrV@uAnhWDcSp-<{<9sl9#Gq9}r%CHzF8*l^T^k)Qwx6&)nfPsyW_Dv_S z{^dfv0urEWk|xYgvL@jdKD>Vp_+0|eJ;)xa<)lxr-ftP|4`v+*cEu{E86Dk$rq19H zO})dO>mjA7clRWWu|$!S)71?lTxTk^E-wXtg+b+ct1oZNUW!p*U!0A})gCC$rnkac zA2((kLGJw{EN^gJCdS9d^rns zc`(f(Omw2;5_)JQNdd+Qr)+wD3P7eqNn6h~kRy>X(T3D=xTY=`NSzT8p)A3iyH*6aRF8UTZhw`vDQ1_*CIp+#(qoop;hO`RY}a#PmLA{ z1JNlJ^2{j}2hourYe!v|mn+ki2;c$5zFy@Tu2BR%hVgpJ@Lc09V{NU=mY`Jp#4E2J zl3L&;RHuWZlAl#siARx+iqK}_70EKDUCSe4f&CZ)ziY)uz@<0>b}nVM94!(Lr*)ZfDpZJJ3xx`xh~={?_+<0(C@0p)ZSaBMI{)nqhgifh5ucRs(8#P=W^sQ!dh9eu?+!?v@n&iL|bFPcY&(8(~I}T0JsC zl5iPYDR+ zjY1*8PaEFpfuxxQsIpG<#`gfiAuQ7*Mu_}4V@H-pa7s^r+5*HO+Xm-EUx~d2i(>&b zr2%I|gpL!P0^0145A~j<^HM`3k!i|CSVM3kqxuhfni#2={yU`g{ownxW;8T4mL)1l zYHf&Y+y$an0mW;<^yh|;vw;8w;VF!y|M9HWtI?9^MVATTbG_Le$SvstbSO;a%qCG~up-7`&U3tZ`(S`*wpcx!^?1-Ge?YD?+1f6&u5wT@5)fCR~R5 zUUGsN`c3GIi*K#+n3qho_=ejU_2V4+i_`n-*`w`92?HC} zlWK8NHfMGF-r|0N!^|KDBiA^~Ou7lkYwx zTXjd*A%&_~R5X}M-}jonDXGiUF=qx+b z$>iMZMJjenP;Z89YXqz>N3T=ysq<9Lm-Av>($tbmR%jQ{b=7X_-rS!GB*<|y8A_iH z+7meT9XVuA*ijk0kYlUzK5CHQAyPkzFimc`8K7s}sMvjm0Fk)S2Y=$ISN6Gf;`Jl#LYJ6D)Z7ZzEHl8?H&sXL@pkCTh!c8l-1W6b!1} zHZPqU{8;{S-d9y_FM=lvxde5~m4V>yf@*}X;=awf4{cvKXmw7&eK1BVpfb(cR#p?o zhCxnj)-=gg&CLyE?;LrVM}3gFeNU5AG)Zxehjis;nh|oRLgTX1 zDy}6LeYGQ}4psX zb*I9ljKzf#qiHHxvsxvx9y57*p6eE9ncwjXhezKI{Uw|!ci_S5=ZO18?zi(aF~}r7HeI!Y;9qRrUlY za?XAa#H=2)`-!+wjpdwLE@P{`f|RH$fL@&wcbxYVot(n#2w;Vu(d&{^sHrtd9-lRN z>+$&QdB-dE$JZGnwIx#BT_Zz}NWMK9G%rWrz!rud82OfEwWSxo+shnEdvkj1Ms18d zq_?I7&Zr40gRY6$Nh*6+@8Y${{*@iu(daYMrF`UAcvO1QAF56P%KS@-Lx|rdT1I7& zc!7N{wCZa%4iBXU71;;t#YgHinpWzOI+co{&W$>U^Ro1QoOt28%q{vTr;Do66Dm^X z0kz=)-hp_&E=uLoTLjWaS#6sMW>e63Wn#&{?E3QgS-iZE$aDyri4ldY`NkvBBn)it z9Wgi{#hjfB>|TtBGMB}!ZTllVn@7%#6L=}7i{Pb4eb=3Od;xYl0<~GUH6kvl0F5)q z?_gUKCE?d~!49uIcOU#yV))!8KGh^?pQ&t7Uo-&9I6j16W1Z7J#|VQeQ&)XY!8pgE z%8ba3({?{nK&C^2f~=^|{5w|d`0qS~;XQ6Px&n&iH14?t1rkkhSm^Ffh1C-q#|n-= zsy<9{3_dvo4eJhE@$U+KFrjk9arm$(hV_{@&cY-VqdG=@nD$Hd^SkIL^CK@65*U`S zaWoWP%es{pZGI!X*vWaQ!f9?_;Gl`qeqDZ!PQFIk6RpUK5Js6Jtb{_j)jidL_OBy- ze&c~E^CpR?rM2 zn-UjZ!!$Y$m6^QF)9;e}^)oUB!-!S1N9(q1=ldGOhvD)&mJQd#JDF2ov>|Q+t5?pZ z&p2D{W64;AJ}*xNb_o0;`&G%W|IScj%!YU5=fPg&Db7t!&Eo#4D?h1hb9Q(;)XBkQ zG^^uWOS`pk|2M-#V$!Sz)3<~ACJ(vk{gK(}R+Ljd=^xuY){SfUSPZ;4?c#bY-7KD_ox94F87?gSurpbJ`AT+u$1`w^U5tBNl-^eb;G&gOl= zpwgy!0ci0q@rzw8?6@BJa45rQg2~|N&!4(|u9O+uMuhAX3|~1)o}meUmSm%TBmS+` zVTF&^k)>~vd4|u6KB~L5#}r78a_umxnEIz+3j})bIa08u7*8|dtHYZr4t-BM8Y0pJ zbZQINab3IiB0X9&_90{u8ah8S45xZGUhbBh>nwg1RNHU6*){^|i)3`VTWz~raZx!|vvX$NT{@e`|mR_F0Lr;OjIhOr9A*x1s(6fk*YsRNZG|!!{+9(AwqKgSma9WbAqwW{ft_{<%pm-0 zZoUUbiU22!zNNNOGH7dw1Wy+@+S%#ycBUXdvYDrBNLkcW8n}RUE`9aO)R8}z?5ul) zx$WO&?#M6o0zIw`DYC=gS-T2@f#z|ZAvQ0wje{dk+K!@a$At+bXgZ53s{mUIy=9PjT>ynf{r7k})}EX&VlSc+Es z7am)J+#Z1^_pspb4D=FC*FrP`J?<0$LO3rRv6~JwztS=CkN*yA`oQ&3Dj?P)1~8kV z>@gIU1vK~diWXh_83bKL{Ex9sZbbeE%m!jf#k7m0qQw{Izr-LBT{snx?SNZnK52;t zM;CpUv`6%c7GHbEBa3(Gxbg3JSgX!_0eq|KmO(B!7lhy07_<*jrKy4%rHoz+9#9y^ z_2W8gM4geDCx}u~?!OMMYjE-@sL77wr3^+xMksr;0`YsSwOLsN4wC(?5(#DpDq^kv z>^q>ztv&Ulz-&Qd2zyLdFj|sPEBhA!WjM+Q6fUvR50d>kdM>F2s$pA(xVoH(ZCg~w zT72&Akb`yKzqRmRbqALaU5qa)GzCQxpVn&8l3spaCn?xI(GX*E`=5mX1+WEYI}L?A z+00R(@>XE3&qc&w;2z7Lhuk|V%-`w15uWDJrZF$0PKS1Fn#Z)UxM`*gbHXhKh8 zE}BA5c2G4|+HtEIcP6rWF1rzz0cEA-tGBNeN6mx;FCQmnnc%(=Dh2kj`5$6DGaf^alXU&k#7W zy)!-EQ@mYT+RUE7fy7Du`2T>ybfkxAoj(=M?01pB8h=QWRaj;4Ee@UJeS>%4KnoY9 z3DRO^nr|6V>6T{e(}G;tdn-^NL|xt9-rqY3O_PJMqa^+As2Oa?ed1!{It|#Ng3b2n zTE*{z?y}bk2wBqiO{RINNCrNTT9KLzf@L}HKE9H2sLaP1N5NCZ4i5&Luy>Mn=!!Xj;a$0 zE?43kF4N5BVyeFNC&iWGf1ys>Y?v7Qm|yph(efRwp)BPRxYkkVw;;V%0w0I_e+D*(7dqn&yt+-BUL{E7bX>;C~eYIR>#`g4M>Sz-Oa9L&lh3?AoA$oq?3P)A!ED_`cGm9G@6j zg~tdW9!ReyO`2=v_MKftTD}y^zsCAfsp{^uc3&R2r}HJUBaP&{m%VWyDd`I%^}rX0 zK)C~DbB}YU%iO!sxpKh>!c5h`?353*VY=xoobuW9a!y=26y)|&rZg< zo>U^gdM{~3Vk9~eLWMs2`Adt9cFPx_ZOZ+RWLWMxyDM2RU#uXVDePA{WQ7d~ZOj8=$w52}5p0jkJxr{Z=B$vVl?Ieg zlhI;xFX^ZKRdev;pr9PdKIGO-Yngp(sCy6Mha2m-90NV*&3C+Ub9WT#T6}t~elu;F zc^&L6pZz6d`Qf6+C2#;rY5nJ5AnyWp?f9Xv#EIPlJe)~|2a(hz%LlUJ3!f;)bi|ep zU-1Uq-`~Ie2Gr2goq>iCuo~+gF%m#$O(4%l?+|Y@i;D~1dSiJkc#Q@os0(OOP-4fK zhZh+pVk|*Y+oRml>?vugq8iZ!vJWzQcLOT0EZC_IX<|-)7@r;HVf!??XA;Vlw;*i< zxP!lm%o0gHV34Xi3n%J{2ldQSE=UFF5Ft1j9*@6216kItL>-ts*4G3^tuI@v5oe~> zv`rCN%uY(IS+(O?#>eb%_5bID&Y#83z1T^4M;|w*67vWZf>lEOV}mCD{>MyPKx3Bm zQA-Me#wLtJ*+$eVqjI&FpY4+2%L9E8$SzsdbNK^zLO2NsBqLBLQv!GJ|7|oP!ja3^ zx?Y*$W8^mhR z2H7R`phL+f87hd*Q$~NgarXK8Q1u9py0720%Ho)R+77f>;T2xdtP1)$;`sib2VW`c zea4dy#+*(-CS83-2_rBwp?V~odE^AoOAD1BxjiWb*D^gJ(O)$vdGQ7xljc{RMwp?Q z0OiyPtul|wMp?EFwY5@v@)sU{6#fSuI$qHr{T3RQ*ovKVs2w@nHV2(Y@DzR5qX!Fc znT)O8u$C<^I;_T;4i4_I#B*P20u=$f7qF&jU-G|6dh67z)pdI6y4NLLbzS0vNteuc zzgk2$DuiPeb0vRu$Sg)e?=`a*pqX=j?pppAZ*Lt{Rok_X(jbk}9ZGj@x}`g%yF@yr zTco8M>F!Py+()U`A(%uTbas*X@9l)KagQWM0es4ZU9r1#6;09~^f|I;;V?vWhX zxe9Muq`05i@)N@(K4nHG^Y`B5?UcbMY`Q=}sec^Q-LKc@t3xzda+yLomd#TP?sh0o zT3W2#^&H>B+zB2C$rmjq^ABa7l56RSuf9yrA~3SCVK?8)*=cs@>{ljiJpw_y1KLON4*%J=q{oahN24*e*Vx&^maCQbV^o(TjCeA>vIQ*XAMn0rslA{rPG**-P-ofS z*5MoeVkMU|trK@OKX3B}qGq1)E5}pHDG!rK$rh`~ zTzwo^;dkK8oO1u1=R}EvG3Sj`@{KT7P+#dTVPQaiDL>obRnadA(we~Wbi0gpGD};& z4Ao)Cn1P$(y_NX7W1A|;2Liy#jVaOZoDVt6B?ch+W$;UT!s5=P&ZP3GiOkB+H0V=% zbM@rH`bxA2hW1#yS9KwJo>=_1uE00GCh?GSoE1rl zbT1*hioKUt%=b-3IZ>_O@{3uHzbk&_y%#yVTkUY)A76=qRBz@xG{P?;=FijvttM@Z zqjqWYtH&q;f_)$65}N2OAoTF zHD9P!KSZLPl&$&E7Yar8gwOHH_M~G zUcLRTxNOP8FE~k3qWIaD-;3|G=^{exPBqT#IZ9MYio#Ft&jL*oEmIQPC~;;ZsPpN* z&hU!2eEXDMv{cnjud=xEq`sk%tR6|Ak~*s?eSd>x)p1w5djTKfB}`B)Hp?Y&5CnQABe za|YUiEqnu#7^-!;5|s{wKs#*>6?1_lVxS*@l@czymojjMD6IE6pa_GR%yg4%W6K*q z`z|}RzG!YL7@0X}ukEESz~ecDKBMZoFMHjzv~XFVSZqlDNj`t{&1r6(oeWkj)|Tb} zy+XH$>%2kPdXS*lp_AgGv&E{sKZ+FS@pJXg;Aol6Y=?0ENYmRJv1u_g250hQV*e8* zFx!*e(a?7h57`|YM>eb54-ZSHyfVWt!`7>bdq_q0uvAodnYFddN*X_oe$-`HAkEk8 z!I}Gr@=mj|ZFS(=w`VmUE_|T)QGVpUYkV%(D zJgJZZdr*A!ec)GXTM2E5CF)oQji5K%#J=Wy@jDa*sT#y8D)<}O<*axGf6XzOnHnQBTEtd-MO-HF*HR{K7DgcA{5%f+DU zf^NAp!=d8R{YqLg+f&F}Ice9YWH}^1vZOkAmU@0Qu?#|qW%C*(lPB%=g--6?FYiv^{6(h=7ei1(`>toQjRXI zJVg--P$0C*vm#vjy=?BB!vo1Ii7ZPj2JIi3qL2c~9mUgWWF|qtzog*?Nuo@f=73L) z1&c$;k=O@3&bAYeWt^<6XkF;W5V+6-$&sEzJ4--{Jqc(G81g8Q0)aJwx#WYjIaysh!+4U)i5K$BpF5I6t*HKK!a@gYU*}>~h zblLR({`%KsM@%?TvD~j(PRbB+U}RXVc%0~+kwN50xd>>T|2b4kj-%LOYR}VegNV_? zj-PRW>lTY2zZ{E{f_67O#=EqXQei2uw(6cXHS1{rvqJ28dU z=g1=kihlwDAH~7Wp6lIr?jdm0h$V_C@nV#-!uuOBDQR?p;QyR~W-ZsIc^L`_i_{Nu zM3eSyNShNt9AN3I9 z;n3dgp^xOg&HxhZ?ZnaB7ppdZHVAti(kRu`zQ`RzEba+ z=p(*jU|Pa+Wv9oH*pH5{_$U8BG&uMu^e^?YS0K4=M|<_LBok5TPDJCjkO zx+G2Fy;{fcZ|~MiO;c8q(sFI5TL-^2DZ1S(sDLvtS~9<)R!+s9`yY9gj-+4UvPc)4 zf_HHevoRFSJh)tLw7=J0$?Uq)`^faI+;kd=i=Cqye&@+fz|JQ+qq~|@x^N0#v)NUz=DA63>7z zj&En0{Zb4^JK1_C8aXstjv6e}dek5;%z=ReK@Zm_BYtQG%>Li?k52l4n3C#@f(Wt~ znqoW+7nhK#L3Jwu3kn!Z#@$6%sLH>7?d4lry1%7UCX;9U1@X-e{KSCk*Sg-XnX~AA za)svAx$iud`|$(!Az@glfP1ek$?v9m9vuJA;Yynv0~$Ph# zur^X#wu{qMl(;RfOt2*%o{ZfO;3 z4E*U9QX@JKkNi3`(eSf@$$e~v>HJ=AKMY|}dB6lHEz?PC14$@b=?w%G1EY5^g}2ht z0A;?nZI5dH&IrF1B5~FlVx15zJD{uPdJE0eyiO?)^}+5y`rzu+;J(>J!>&}tKBLQR z>DAjD2YaoFMYO9eYQe;`w!&?78m5yku-3X7p(UKEN(Gy^@ATu+6}Mc$S7jKt%kdk~ znQV1Aw^n$caSb2>lV77B6yHleEI?lmH(#0}1xnyCS!HB>p^G+t9c=86EhO&jpqNjP z^AY6$1~We!ws`Gi>3N2|hE2x7J8ov%Izf2pL>uCk?b5=09wo(VJ()oLN|9DeB1Uha zl}tBy=UO!R__Q8YZvUZeuTT_qSZ}(Po^~{c>JwiJ1RRHuM2E*F9!7dI(^(pvc@cj?j7tnR=TTt-X)^F(8;x33nX%T zzoy2VF%TL?1e?B#wZY~yX?Jm%k;xA$JS7{k$~8>rk0;vnL2#-nDu^ePT)KWN5FAJS zk-a&{H!mHBTn_~ApEA605mMzCJY!|dm;I)aPv!mL;tcYSrs{pDJ6y&lj$r;n?*z8& z**Z2qgXdh16VGVR1iRr?;kgf4lQw?s?I72lf+cl@ZSum0w9t#7@wHFi`+Q;KF0^H> zc@2L>KCe*g8e#)qvxjUdKAcjVAEs;nV;YM`Di#z-D8)?Z)h;}VTZBl~hwy{eK2`gr zrJ>0Ed}gz=EC1n+(0-A~&mKI=L=2KZ4x4v587OKaHHfg`n>5INxU`3{lLD)a{h&ck&w0>)8QQ9PsK;SRfUbWer-*FYYRD=9sA6to%S z3-L_#%&_p+9~Zk-fy(Yd+;A?P0Xa?WAz-G=5W5%}lE6&hfOXNnv-E{3ye@+h>YUqj z@N6&tEN`d{%>RQkK|Hl5NoF>TEhV=huO95^YkJLLV6BuR5Ij3qD$0dd0wW*mJ%2_GSC&=)%Cn+tGvhH7-& zvWBKxNp(0D49FgD$%a{3>l^Y>y&`867F3S@Eu?xq>8>yNUcyt?yt~kb_!X5;ygRz2 zu{G(~hL{5>qNoMWv(Jt>tM6k5c3jW&s-U(eQIHb3 zz#+V$?)s5;9X@8f$;}S-&Nt3@dnc&Eywu+J3N7-+DME>8_68niMCK@-vt9>!Lt^GZ z;amoVIfuw|g0|aAGZ)HE$D);$u@&Tv`s+WJ^KwO>t3rNo$yOS)+*0V$NM32dg+q&r ziz5?;-EmnY<$za=Q|w_|$-^Qvl~S2o@?OX%!)@@pn7$CcD=v5Z;LH{V6TbHum*kaQ znNdo$TjJ}|XD{ZyQ``te@2lwDvcZYw%86NJ?8oyb-Du6HY1MD$3VI07`#LVQ&YJ~M z@VYN_%6Yf`R^I@%3-#vHWGy9dp?ekJ+P%^uN%vh@(0G$Dobslbs=89gA^zSKN~1o~ zSd?xIc;~lqsi;)JMn#DbQJ(;MH^|<%`IT_gcoCy#SxJms{X#hdgEYtQ$TxBWI|tY5 zNxTi(4+Edyo~Xh`%`F}V=|AR`!BM<6EsGmNg&~GYYhPv>vcEY-BN|PJp713FSF~Q9 z8Dh9Rkfh@S2@%8j-P-g$>1iyI1|6f~I~vYU?D;EL!0kdYcPqlT?yI<}8(2*mtn%7zvQ$)~pl=Qi`VCSMIm`XaT@SY>OF>%5%dUD(P@)#_ zzaE5!2YFpNe0V-x2_f3_sYxR}CjgRQa}Z$|ew3is(xPg;hwtmsF(~!%_E$u2hh45O z)9ou8yXUkv@|F4MU%9)Qi?@Y!tsnn^<5b?d0idO^xnpBqtPp+sBfQpHE8;F&r^C!9q# z09MOLC_^ywq`y&&0$_GfOc^p53?74D{K{xY8j;%ofI}T9E_Ak!FNp!@YUY;b6UE_d zwK?<#z{wKO|MdZY(I2t#hxdPu_7x5G-0-$r_%^-5uh?;oGx}nKpP`PH#Q&Q8DAD2N zM+qO$%B4ghh7GX^wv5E8X9R(0Y>J4$xoMr-seGPtoZa@PG1aIO^e;!EO7*1?e7~z+ zqqK14LZZ*PqTQ~M!+{unP@@|o1D&KLmkrX79JV>&vFndK45=1yQ% zEGQn#g>}atI6A&{@oPSJbQrn??ha%Q`S)t)+i6KF%e_1#$r#w11^B3Rp5GCf`QhH~ zUSyTf_se|tudeU>fw2E^5P_6avo;<76kJ|_Bh_ZBm+PS0vW;)iTu?}x-oRXUSn-8N zgy7#GG3fslBm#KCP}S+OljUb@tYEj+(Gblm_^sDIviIi`9eTMJ!z;(;voZ)ivWwTS zcojVx49O#`rcLO{OecOmTyM?ICpf5szxEKW7fJ`W$$b8kSd49@-Jy?eP>`>1o*-gZ znh&SSah-EPLQVTD{a))2x3FrFlG(^A(wrppXyaDgoJAhV1CG24LfIuV6z{rI?KYwr z>1^>FFvaV*U|8Vd58BZ~PKBaJqXsW`JADRkj_+Ule@{ij*tL6qiB2RmWa&RXZAYWP z-=-@UaBXBFYH@LcouF59Il-jW2y@n%K4Sm##5FqtS3{ycU2* zQn`L|jcTUD@k=G3QBN1=I07;In~aTZG2H_K zqhyBI{aFN*Y$XqW{jV9euoL;zY>{Y2b&oK33d&G6tHg_F`Afr%pj(sJN#ei~h69_G z1D;4pEwC1F)`A>(`lkNj3#-h^tnB5t$Y;+_%4Vft@tSBWhMt^wUazZ^^M!7ly5)T{xqvcUWT;!peOeZ5cZ#jOmXP> zgOb^-Kh2C?(S4ydIZ5p1f_j&4vW`kU{lg|U&gj9VzYp$_l8Aj5h`#-~9F@u^EoMW| z^15$|Az9dL=eF);mhR2?=gSl55&~l5J#>=*Cku>9xNZ9Gde!RZT{t0dk68|RWx@6R zq($dZp9$2D;w>a+cp{Skm6x3#U&|76p(6s)LaO=8U~s_49YN-*nJMQEm}2o4z&pYA zdA>AG+xfk}NUSgdvC=aIn=^@&4M=gaFai_Iyon9qIj|u>;<@4`Io}Jb?VG7tC*DAV zlHx;HFv#vbnurSO!?Ge)(tmE-X+>J-W4E(MHPF%%;*~y^-DZ_-dD+Lda$?_aj@*4( zV(W48jcSfo_s77Z*QO0FJ&}C*5j%W{*3W%oHNV!*uut(APOc%g07RzmMIggL`xFb@ z2P#fy{p(sSG5FW}Um3NXL)#<8wcCQUb24Tl%TRMVNpt2UNxLaI*I6hyfH|6|fB2z) z;gh`875gr`dFearVr5|m(eZ@BdwMQ+g{hL^!iE=}4-1Z@ z%P{Ye`AjWDuf~|asvq!xMfeig{kAq>hXmtCaA=eJSY3L zw}bx|)hkOg2`8bQ(H2b1(ye!uwBsw7A=s=EIt*gT5BZi02vt9JsVO)WFZxIZ?ilQb z7=AgAk+!ecb~W4U+tq%J&1kb*dc`m9)=eBXvzc-#aUh2m4UQ{|R_Hq1FJ=5F7=^o! zR9=QVpYKN^g2QBrPgXEz!^14k^}BeooomXHDz(=be{%?3q05UHBD4a%h}(UfmdOkBF3A+;G<*b+0R76K94~n5I$j@6PcD zl2TflRa=@7zT%fQJ1$$2LR~Q6C)3Q_j@QAN-Y3VU6>i)Ly5B^==#MhS>hGegLzo2h z6l2Ck470l54WF-}mH@2nVdQ3?Patn3?QUg$Bb=(9y_)#96vi&;uc;+Z$WL9~9vDeF zy`QHlZ3_@*w|&$}je*VfH%GHgNy(&3KbJecDCyeT^ye#C)~zJOC#hu5IeqgxFl$QJkOTXl@KAQeDCu9-;dD*nYvod}YEXN4KezvKy<$eY&?5wO}MRae`*DFxe>)<=2@^ZgbWgM+?5js0y76t1RH&@d#UwB z>=jt}_)VA~M{{M`ftb(@gX?e2t~seT62U#DGn^_%;dPBnYmT{v`k8m{rk@$GzQKt_ zSZX1##({if_IYE}4e7{RWV^Wo6R#-so4?<_Wf{oNs%`eM8|cI4&hQL8T#e-HhqU!{ z#5hl_=6B?c*z;hQvLyYFx}Q&LLu`!y1ZtEaIbZ-Mt2|;=b)-#c*xw~W4nWp+}DZykb!1vx~ayaOv?c7MPu)8jxM~Vpj`!cku)f2QH3QHn);3*Ld^U8K*cL zbH~BgxZ^+%fkX!|h>yK=H_6LE9a{@^A2O|)|C$aeN|Ng;c|2+k48PHS0 z0VMhV{>307gx#*oFuzM4-G_gE{TVRhf1z^~NY9)IAW{zn0PIB)(8`~~PlArPF#)aG z`EeA$f_Y>GitT6;fbKVzq;;Z%epwYTL&pK!m*J5H=BP0L&6`J9K%}*6h;qM{^OpEGXEq)ue5$|gx42W3_lQQME$aUZ;rB?(02~kMT zI0y?9HmbW>*bo)o)i4!N$~wDu>S1k8O`~Okg&QU}mntDoAQIAz{qtC|*FU{b3XzXx zW~28@qZN*v8PgZXo#JHUTn+NTmrv;NDWWMVQQgLYE-{aTM#v0rJml^L;sIjLOvmfJ#G?}Tzt{tExY#uc`3_>O z>EIs@F~GVV`G$cZJ?ojyX}hQWQJ}i4{h)!$)fM>*cE5wv(%cMe?RVoPxGm#<+0Nd^lO`@z==k0sXr5WDEW9x)?3X*TxY%cH)%brCDKoy<59nXQ zU=T%N{&P``3%Sq}8r}GwByoUd~VJN+rpZZE*a| z611%t!n4lEmrN|0BYjhT$6eL}kwC{rbI^T}PNPLbL;WFKOcr{-?-J}{ z%9qfX0_e(r<=_<}v8j2F{=$jjtbq^_ee~3&>dhS?ydlZ>hbr)HtTeht64Ci_+hq2Oq26$^#;HI98tH~NA57616A#0RYcm~W^=C*F5$iv> z3amGw=&x*@NPdrO^7v8;FG;i>@UYn1;XwqV{)sED=da>Nt=l)Ij0)QZhZpz8h+MA3dBn#=1}4c-FI!?s9o#*JS6=9E37FiLIYO0xlen2ZO(vzf+qBmMmpC zwNhrUHNww=`H$flLL&~FLjFF;oHh38l!)rBNs zQJ48h>pXVHaO|hL+H2rV6kpuxD$B`-ayTrQn5w#V)TFUjZc45?nBY_U5IX3n9-`cd z=7{4hMoDN&XEq8{0j$1q9!j>G8!G*)fL?gvNrv>(Xl~~cyCHdk&lGZ|_%|W$TITSo z?#0?#QNTO~equ;9RSha~D_d9DS9Xk7*`^$fN-prYvyr;k zW12+=(Lgg{8b-aavsRJ1EKf_Y@`1%pg)fH(@h-nk4I+mWJDTMR{9YvgL5!#bV}rRs z6vJ2S2yDPM_|~*cKiCP@gmZx40cF%4T8vhnnqa?=P$KrSBTLm)Ei{!pc^1Fki9Zi? zP=axG#?J$%syr37gHeEOGy#!Ik#S|=C3th&ZurbAeCOHHeRPN54?Sx3C=Q|C&?Cla z(4%w*6z7|tZf{`6ef~MUhjj$j{ToWK@H0cabpr|gCf2BN6>HD8rP0DUugI!Tl8yQe z>Z;Dn9Y_@aR;TV~#GGf;Gq+#by$U(XEV#|K(4NBkF~YhDYiM&RUy1XgVJ9*beqE{! zE<5-Vj4xfJy1}yGP3{q9*qoRpJHqsY@#=hWO5*OP5FrHy!~ZkUXIsS7GYd^#)B=>(F5Ky#{#J-C z@m4b2)3QEYeeet>UH4_5_H52>H@rS5+c{rw^?02PzhAS-eX~}I*pV51{(ZI5L03p6 zhP42@vpnQYg9Hh9@KDDu%cd)TJN;m!&QAMN80X{Y!mUJlOaVmu2>N2H|J=9W@K>!e z+QJ`X4R67V&I|c8#-MSS;ZK&|-WL%&wwQa8Oe$j9f9K!lPbR+HS0NIM>xPvq#F4dIqE&9uCRtx+KU0=tJ@87kZZv&co zK^$UeMnb5u0&gZ0#K~9LBLC>d(%S!7qa_@LhiYdDM9c0jpMXCKZ`FtHTxhE`+S<8Q z6pdSxujD4+vkqssRZL4+uibLa^Yqa%7>w}SelVdDXtDyAsPLp*=SMate`E*Qr61ES z(xAA{@Ac;z=*wT$^6bQL*@R!4qvnAD_X6NZ!F{@uCqXqY88=7OHvPmY{<}1wW@vUf zD6pD&8Gdc{E$&4B$AuKe!nXU3Ra0J3M?vQ*R|~x+{B6y_d>{@i{zX6^(b&%GKHs!J zFdd4mSG)TpzeU$l%8N>{%Hyys)By<)pJVWiJ~_tC$Y%T}iFK$-G_$$0pX+%f!qcxL z|L>!UHP(9<1|+8^dhz7v!Eh9%w=qx|T8~=}R2Lff{;M{8$VoGC#@BI#LhHLUWO`-- zHP>asLg&ko?!DNCL46?j=pXNqo>ZCwbGZ?)SO$y1W4o*tSJU{TAh7)vb|P$wr+0lj zdC)jkt)xJx${*JA4CN^^*Z%s&_K zB_+ou@q7IZ(^)8^dHe2UlMUoLCCJNF*4I%_KAxA1j}-zSgFcTVa6%^l58;+68EX2h zOHQIlaSkv}fS&P1{;!h*2nF)E=>t6Mzb;y(!~XF{KY+40pI|7#5MGJ@IljcJr%PH% z2`9S2=<$3M=HIzwf#~nS95%1I{+>tWk(MNcx!b$&=@VBSJbJh$f!w+In5X|qLNt0& zR72n*IKS)ctCKVygAvxPlE}b{hRrr`i(!Gotlxn^1Mo~`GoRyj4Spr}duGPeAX(pc zo{|gh!Z$C-nEgMoiJqChs$NzBRl)_5t1Tt!*Wo>OQ$Nszs?6eqN8voQC4=vwNnnCU04Sjk?^ z@VnpG>3V~zUM74j*TH;7Yw853|oCHLprB z;hsee*4Y^NU)6A%qjTVKMh7;PyoMCJXiCmneEXgmotEy)B!GJ2fW_E6B=7w@>1bY1 zv&BNRRYj?QWl`CAJ4s)GccSLaWq4WYO+E`&C{R#4CgTW>xdj_R6-!+2_RDJ(VP;aZ zL?^QhC>FY4erJ!{dMvZ8V_9b`4Q1neS-tLkNNmF_8w0%~s4i_W9X%O%D53pKoa5Dh zfa{N}GWC~iH*!c>$0=AlDg?S$-D5jK#Vp8RbFp1t@s23wQ)K07dW7>*)G z6Pd^|i%No=`R`I){ek8Rdzv(RdHU1CJ7{yx7Qad_OT&|2i7ZUEf>XJsD&RqOBxj!_ zUOkt3TK{5Ekd_wy)Y9f#u`RLkLmdU>_FKD_)3J0(&ywo|Ng|tJw>xTPQG5mX6#8Oc zSn0%Rc;y8O59%Qegd3>~(NqRv8W>Sb7&zcCjn9%eAL0{;QVBSV9e=*C2V}$$0_qMr zFIRe6tEJ?6W;ZXax~!bo6z?--Uap$O1)$6vxw>_`l(Ly1xlOB=A?lMpfI7)r~MpcCED! zJKs)PAW0_3K;>}TahR<|%^OZ>sIA>fHM*3+;QSuP!XFtfC?4$k&70Pt{wX;~6+5CA zh&$D3U5S-jkcMqmJ%EPrw8X#|J-5UKz*{knOL!k{t47{iGwu3PGhXwb&m7#Va^s4| zj(*@AewZDu3|Y4fT{RyjmP{u^l+|s^#L#v*3@*( zT555MFBWpydjXD0eZ%p?IwNvqf3CNk<-i_JJ7f0n%YI?lLG{W6J<&IW|7EP=o0C(5 zv)fE`(e}+9vULvkRGE#|`5F$7EvAkj<;Cni8L@G_0%ZxtpZxwz!vMR2JK?i_nZM--RClR2qR4F|6Bd<6MBWjG7PIzkTV$!9 zfVx}Q-6d*iEX4y@Y`~wC3wn7oIrjgxYN^&#uaDRQG)q1c^D1D_<5}duGmUEis zI^R{P^U&ZVeRXQ-q>UEuTDdb z^Q8h14cwz=63X8TirWu*nHtIot3X))5d%O6aa|*fmRa@VbOmgWmAP&|_YSHTPK*H= zbb$&Vn4X)*PJsGXV$tH>s<4URl}HL%E-i2jkl&TgZwL`YiI+=$j-uy^{*xJcwA0=; zRWbY+C&GJoR~&_oTlStb3}2%%b8ZIJbR?vSpimgmi6oK=&nXPwkaz7D?`L{b?ceAG zbWos1yyZc&sGhH>2u4O@J7)m~rl#IC#v~~eVKuc40sUuXy52p8ahH$E-a18j*?Ccc z5aM)}`*W5a8_r>mnUG(f0#Rij9WRTnyNiBe35UA9M@?F0X)c9>IQH4UFBP~qyXgH} zOOydphD9#$>;t~q;`4CQUz32_s&dTp-i>W1CJJtXKSYs=%@6Jb^g_0m+sLjAUYqB$ zV__$j@;@@gSr=#muiV^*JMjd>7{n0J+Rs{nU7n#``hFYj5HM`zvb)0~r7`lyFE-!eVWB&dGL_vgKn=A71sQ_7M^wClfpD%w(a@wH9 z=bcP|GnL#IGmCDE7ubACqNS3vtSzOUodcmj1ed0We=d#`U?N(giKGvHb6kT}C|r38 zQsfB7d<%vV*^$=E&L=>B_+k@@z4t4ihm02fFFhpY&hU>O(kk?*hdj%CZQ@&^we>Im z)K#+tWKENM(PMPNzAnw)2UU5{I->!qqH=j??N6<-oFF>ej#z#J1(48+)!`uYu*Fq~ zwAtQlmM&e;jSX%$x|4tWTp#;g0I@@%Q->PxJvnJtQcz4GI%fv5(`09zxOGPQ6$6=bEo4=oztn1$EW4q_&!L=k% zHpF@7s{1MIAWS!w>Y{f{977Z@P%VN@)PU*4^p)PJh<8OHS=BN6YaTz zczd@M%b!`?ss_2YN+#P^(>6B6isDiXw>8)!Pd37Ik0)q-`ad3`tcq1mZGZD z3n`3O*~gq}K;_b^I&ESzy*h{J-=4;Pqox$&2A=RdH`H1i$QcA|x%KV$mG6$0Ax zGHDwh$~&BH($cfavOOY74M1UHobu|)ACA7f9Ogsuqn-MVyF?0X*}ML`Ae9bo7B1G# zMxI;D+hwdHk$AEzicmH-dOMWLvO<|Be1*Ipb$S>%yG{!DiUJ6wP=Fu?>&o>MUkRa8 zeqS&Oe7AZQZyEiiwlD0`N?Y;Rh5plVHJm(}=~yXq&4=}XzB=6HHGd-W=;?0~2F zXfpzSB5ufRh$lgWX0vg+g58{V4X3i{`^$pJ|E zA4LJM@w4@-(dqLOipI9U*$^}N|BHHk8wZVRAi?S0P5m~ED?F+yxhi-iKZ7HJ`La}9 zwi9?5q1OiWzqk-httYYAhVUY+l?{x?0Y-uCZy|~g)0jh$Wl=)Bzcrx0{7)3pT)D@Z z=4Rl|pch?WFj~bg;&*b;)ivH7ZHQC*`6ifL2bL=u_ut%wGU}x5st!h5@8PnmKiM=K z@ATw7tLr5!3AOe^oh`RZ_EXhp3?OLFB_WsILTQD9q$3PyU(#02-lwLph!&P8#!?w% zc2ED99+(!w{X&8UmPXR;-$!>V>glXe2|M6xoMHx^+v3uhF;$Ibmfp8#V%HNorT@hL zK7)_u=QHIs^n9_dofyvp!AWAT$?$du{0mIkXGeX+F!vr;MGknZ9Q+x!dQn>1oie&w zf6W1;tz^B?uD9nNNUXOR8690qZxqTG7L-WT-QDeI&)62D%>g*(L3nBJKs&-=I|99= zOs846M!ocHUFvQ?3x`RH9JgkXhdb{~Ps+<{G5I0t7H*vQP3(R5Efv?OK?o*Zd%Ke603yP1- zyvv)7U?gh9DMfCO*}&DSk_uhcYLIH|tFQPri3)}YE@0;O+ z8qB1i-*OX`jI!HZ>gJ3v&_JLyQnzCsdpc`B=8Oz<5CCU?EH8%)xae^zej8f;;LxI{ zvK97*BZw;aY%dRZyL(B*Pa)5`JfF5f#FVmnf)Xi(LE_F#H# z+S91r-kzEt6N?uPxi6bZIvBWwL zrvw8CtI^-g`OXQ$&X{wzD|!&q3Tw#LK1^qPFW;q{cHYP`j*!I*S^FM=cVt(COF&AB zKI;l>^Mo0_KwFbtAfOrh6H2YHlXyjO@Mj6BcJWQ@?justFKuNFJg&h>0p<`Nka+bS zS?x}JiQ{tHB{m*yfKUBra5s;vHWeoQFlCQe(ITjZiU+2-j1p11w zxHbiWFew0cGuizL@RN;uuMCm!u85%&%4R98l$}r6NI!dgtqD_#D6pa(ii^!WJUm_t zS8?pPn)CocW_nAkP(c#)uL*+*!;Djkujw33(+Dly_z!_ru#|h{)CK*Q!GZ`y55Mz> zkL)tsp0%()2?dD%*}`(bD$Vk}_iq|vv&6;xM@s21D;gRs9r0vRpQUoVwWAw^qbM5r zlPSj=^044i<^Hoe0Ta>rM{W`?&SOX7Mx2RRy=E6}GZOX)Lxh;5Hlc{N57Lw7!}F;q z5&p4qRJo6JtVt{4EhTT+!=i^&;VMta8ESl1KkZK)ugKdqAER5XugrVe^$t&M!KV$U3E@1$grm*Q>E%k<12|C9Em0Z*l z3Xx1s#vdX}C3DyB`6K~pLdSiE$OcQt+|oCVFwE*RJMj3|(#nrI5_hZ$QB>{Eh*cq& z9E1HKalE+=CO;YXDS^LVlJxHS?!8UR0mo5+2{-My%WZ3#AMSb${chPUIu`2rl}dvB zxbwd@zSZ2gc)0PIe_w$*PIyl@e6?xcd7u7Wq~V&XYjQ`mYo+O)Pg3h4!e$0q6jM^- z1Q4HB#R9D}sQqoSIf(}k#Yq{3-ulW+unbw^b$`=!oC3W>NerLi5y>ld)ZUb;1bU9N z=WmP)!}}3cd9^FB52kwpXqg*B38eyJAMIgm{V$lJ;-4MX-LC7Z2XbII-M}4Lwp4$S z>A&I-LBOl649t`#@7WEeEc4a?q%wdjGsS8XZZeSA9|8#NIc}$Gt?uud6WrSHr&4!y z>YpYppsf1WZVLq?83lAhX~x=35^yAGc%Ofr&`e|tcb*?5 z-Fi|7Ma$~fuiT}7yUn&^0m?m4a5|^uXLkx$pG-W1F$50jFbEmmbfelP$}vQ{%~JEz zNT>weBTm`&pi{WzRNKfj(nY0_NL&Pz@q!XL@H=9P$2mz33ayf3Gb0~4L3k3_dca>} zh$JY>@Loys**esMnr{=7`UfY34aaHG?U@vA3S8<#GR)d~A& zX1{#>BLZj@Cc3-bp}3u1SIFS_&*O}puch!sNM|_f1T*1rQXZYZl#!?v^Nro*;`)Ux9pfq%~>E|;o_tyA=!+30| zrpxytIU^P5$boshuS5tfY4OIHA~_j>dKst>%11O{w72!*MM3Jw?re%MOL$s4&TGdl zI;ef4D7!^dJe?oZ$R~&9wOc{~Wl4W2Ei%+;29|9(OEIH%yejp#e+v1m)}I1K>|a=A zs5g>FmwZQ7@g)n3p~wFImbe8yZbu{z9B0Ns+ot*q+9u<7AfaU;5JahVPDTH0Xm%V~ zk2n-hwZ-1Pp!Ve848I1;uedAqXzvXHhb#ba0wl&js1QcD?cQ+2sX$|_)eA?LB?df( zDbV_=XNJDsFui}w!8xxUDGP&KiqIm*5}Jbn`#XwS;1aFzvSjpP5vswCQd?n@EUynF z+cv%sjdBkBpX$D=k^dB@F!E9%R-+Z3h+J`#jy4k;`46fhM+wOq-{HeU)*Vw6K}wS_ zS{HKN2Ib!}bv2!|x{`rH3E$nue*d=m!9uSXuT^Cb6&X1wfrkcfq`QLj1%b1cs_Wp^!4*0xo-f7C+oPqoGO2liQFWX{>LaOa5W_HZ;7NJaOYCq?;bYCCi z?BVLr2LGf$CTYganZikca+>`KRpzNpq}|7Xi*DD%@1$j4`{G+^oNLw_N4|;HP$XTt z8DW(-!FtA69F3H2hSfu6L<8rn3}U7aSHG;8moaC5`PiCvV6olZhnFvYNH3Z9db&HT ztTT=(Q5s&s6WqVjKGrOby|uPR4rirWmEXtWf~yxgCCV=Q5k( zy!8f*zYU%x0p9=`YNWNOH~fjC<~{T)1QU^FSG387lz$4Y~-u?j~Gz02SH?u`?$#fb|m`2x)3x)r#-G|2OHB z#*X3;AB+WK1rX9i0|Yc>%g-U6BzPAyt@D+Wyd}xj4^k78}Vp7Row$_9*cQ7qh9);8Y6EGRH^5 z(I3wdaOEZBAU%Mk5O5AsQtJ>}3RJ)TI;iklg1hNkBXeNub45tCAepGXVv%#&Q25|4 zq|tJ4_-2P3oaicA7Tg~$!THF}gNhw<;ksE_3_CMAHB>3n`&aNtQ6oN(MMWfojoSnR zTg8}%q8@i_(F+984bUH24$uK7Ld&#~tP-=d28kTUd=49z6UXgGuN@1lpoe%bimJKDix(g@jjw#F$hXQ z&x4Op>LjuHn)2`#Ko?6_^Ro9;GJ-5e=y zs6Gkly&~X|+;=)e`=c$LBeS1NSyU^T zPnT#?2t>CV8`jZBg@w$0(r&5+JskSlet*9#X(#XXDuh#1D~%zF!{hG41F@n ztkaA4=DV}tB4z@W2p8saiY~GPc+P6CgEparZ(jz0jz)pXw?^Yu#?%4oSco+02PxvG ztNc=b3my%;UXkRA%YDxNcp`@$~CiH?$EIw=wVn&Qxtoi+4wk<@?KejCw{Upz*iL#)xX>`1O z5fhpP7nC+YvfnetOjHQQhk&ny!TJ%Mv7a@)e|-}@d^YiaGH!~TeedrRG3(t^iifCY zR{xVZD|PH|{(hnIgkx4Ov8}nlEXBw@iprX>`sznCVPgXP++Icp9ibWq31x{MZ>H98 zxp>vU+f*aVO8YrIqZqb97erg4XKSYR2&M?$BxoF8X@q@x@;RbUyk<72ch35G#i!)W z)1#ngdw&<)XbU!8qm6Ow_Ex*Gu4oP&zh{lS&*18ut0>&mo(vE*a`V?_y8TvWfY_)lBQgjthskLrFRqOhuE? zMQVXyj>o!eQ|2wB(3p9BlecQ7cbtmh*AM}NizdslN?ZSurX%NB*w;*fEvZ~jF4Bsca%%vyO)#w{H3&RQnXAZ{7dJ3#(NFgL(oYx(G}q4z1vCAzLz~* zo4xH6V}`F$+z--weGm~x1{(w`wTnh6x~bA;DZGb8b`;;G&o#H#zvNVa@}bO*QZKoU zSU>GnjZG7^6)4tolth~8_o=7Y>X&gxo84A1f~D&0ZV1G@x0X{n=d|2})a)(YQSx2+ zyG@=S4&WNv(!MIK8d#g>+uEX2WrmBrkhEUHD zb)QZzBP%g5Y0x2xOv&}QvfyqAZ7gLS1nC{&kS9)nS_(KH0LP$#)kt@D=O6yjme)i& zbdf@tW8K>09}#hzBTY>{`UQ?K;Ghtbr{eaL8JWFqw9SCL#AFD@d^uH-!K^u4gOxI~ zdZzCibv;YJ$F`x5#YkifFlE#i>}~x@owS%t!3ksp?Xv~_nm2a!68;$N0p$oCX;Ff2 z)s5L(!LYEk!H*Ot)@Q-2HUC{+N^*?N6| z+9mTM7xQ-il-m2uM+t=Y^fs=U((ogd6zqOIfagATC4HXvX?JZzDkN_=@bmoi%Mh)y zAI$MK2euO+6IqI{F;C9TzK^q|+Wuyz2&)%)1dvj&!^;dGw-Lsm(^6fv60kQrp=5#` ze-2p7;wy`L^*)t#1`eFt;g9W&PsW25=eC2{$ztGS2e=5WVD1T=<7@BYw6eOz+ z!}znF7heR9u!pyjE5O3iMw&%cZo-Xt2SObwmMD{o9P9oo7XnyoCb{pz4q%7M!5gR> z;AQ*_;M^C=LgZnkB@6Qq6f#DTtM4I3AV{=g4pUC#~?RT1uD+H-cGc=uD zDJ58y3{$W}j$H|4E)k=knK}4~e5uJh!6<7(SR>T0z4#BGI=_DY1Wfl$+cGU_AE!xl z-1TN6(+1Bx?P+{(oJcJN-^NtrYi7hk@W=Fped0=b?K97i<&+CZdy;Q3CI#tOH)h;g zMwLhAAb)hx-fg>V(w`TxyGNJ*_$sI~iTSnBp9iSH3G|A!dBy?DC4BR(RW*eo*ZBD` zph`_Ze4;NWA@NFh_yry(!mXfL3lv^%qU{!F%bGm)`@)OB5OGCk#24aGuNex#3~&me zX}xpLK4dv#*Zs>nx#NfZg+*&dE#9=Icmf0%Cci9qj`fqfTd`;knEu6d(yj{{$ztyopZxG3E|x4@ybVZt>b}?8DIG-x zFv+4~b#Dp>5>NEF8C!=gD>lBL`&z|Rr__+&?3lU>{Sxm$?Kc<+x_b4+!|?=^t5Bt_ z<5nm#HYVu^6RC|68|zFI)-y}dz|g>?Kfqg6Si{6Fo{r_CZa~}xGG7*LNbn8o=3~6y z>I@5$cMPl(YO>`vKE36UrkQvBzNj%EQ1E(&!cnreR`fE1dm(mo`3d5?F1ECob8Nv7?%m#IhC`y&Fhf=*06 zgmq~|wy>gF--1-d^4=bZn^Hyvh#D#KsQCZIdg@-k_t((;5M1$rOTnOyv_8}3fCT@y zosi}`U$S1GJ~-SNFJ1l0(oJjaLyD9Cbb5L>_fa?5GH_w~Fc2-b9`q@deY$%?OdIoONcVdc%)sPD+sF~Sa zScwE$fI(Fku{9_pagqa0ZiCM@{*cu$zlF`|-bGO}M-oamF~hkrF&x2b#1e$Z$>xIX_KUP#Urs--`LuH3SQB3c!1$GsjuCG7LcR^Up{ zf<>n+|IX9I%zkv3$>7_Kf@z^l6!x(imEA$vIOyW_?CHbDj{8ESBCq@J4w9d9cCR@` zD*f)yHY>9%W(LT&YM{Bl(E+uq-rum~T&M8DUN=Kwt0*A@7x$rYE2CA`9upYic<6cFtxUrVn{H{)h=p28x>1&i!bf@FR}kV zww@t!&HBAr@&@i+lOiVb?2C|G9q?m(#v(U4T(6=yDgyV}|-aJW%vi#)U zZhGBdtkbu|sW1)#-0gOr0_v3<=4%eT&UV6_?`*j_zVlZgHBr5v2da>SjKp{8+F5#6 zRi;)NpO<5sb5b4zF&EBNTQsFFNObs)aPl@@a2S-~*2x;N9%hz#eV)kX#3hLN5SldjP*nCGg<~2R5`9 z=q0fJ#_CulyNtn5(Ttb?#c^ee-d%v#h?}e^ci9pF5?!GW^QEtrlLS~%P@7KNSt{hC zUE@y~QQsBuSqkp-x*hA6zemIuCAg;OzqT`v`LAT7L>jv=bi`oeCX8SKC>e+vkw2u) zK?aVkWZ3Qew5yX}$NK)e}9&rbJz6I}%uOMSP`L5boMwhGmLx}RW}= zD{pI*Ji^I0aaBnqh9f9taSXCaSdvj3q}%4vwfPjAKmKrr|FYM-C-3CMykq`8_7(16 zoFf;UH{&T-NEp?HYtTNG%^(W5(3F; zk&B5mUW#?R534Ngj!$0pl}R0Hetoc4r0TfqLRMm@z4R$Vdc_~{%@0_IdH-lJ!t=or zvLb!~M#DQ_oFgu#yb4NQ(*+~MN*Fv_64a=+^~K8nI-ZN4`q16_oOn<7sR~hJiJHhn=jva=o;}PeyN>pS|~{ zJGk}9p=Z`v|Kh?P8ZaIawYl(2m^t&T--6JReoCe-xj=J)3al!a-(gv&l{|5rs76!G zSFo=k*zknz{s7yNtkU)$MXkAU4D@7_d!am-wS(!BSA0%DP%5pLfVAGqBSwhzyF|<( zV$S{eM(QafGSDt`;Yy>3;AyVyCmz3UB55_Y?HJ4l#Vq3-Qkf?!=r$VS@Mi;(HC0r) z@~IPeH%C(-SP9hKcu(!*9rmBz;_v0lhnt-ksITwb$)3UI`>f-5B*$yAgKD~A zTK|jt6uGN>{p9Os4>vRP&DRFGzp#KK50`=F(;LXZ=O#G>E8=Mnoo5j4bA&-}i;q)X z2+1RVoSpKKwEvB{XT@gtgnihG!PnF8HugkPfkF{a@{cOjV;1K02Y?U1R7PQO(-bP! z<`o)aO{#v6@t3T(7O;a_Z$A$96iE6LgJOfgH!YyIe!}B2rvy4;axs#ftMc6pz7e<+ zlN4`*e6hCYH?#Y@KTu{^%A33NNOzzl^WG?n1@Dlqu+uaOFPRG>+ z)L_e~x6(V;1$WmJfx?{5D>uD@=kY}O7x#8T(H8W?El;$a>-W(zmTt267(LBnaA3gq zMC#d|x6D9W%-(+yb=7PB?bQVs0JEl-e1~NV8b2+5!Mm3Z^}ODsBZR0Rj}i|;%L??3 zy~Gs@XKgdfLi>XOJD~bT6W37?PQ28PF?LH}eH2_C{p?`lC&Mq$Cv|yUkg;d6%UvOo zjz)DlixIE)j^qP2cv5q6c}7)&f!R0?nwnpRNx;RB|4f7k1e?`xVYy^18opR@JUf)Y z>h-_=YT~_Wb4IJ|OELCd@NFP&mX(IV+srcf)}3L}o3ah#Pby7;B2u+EV91?UfDso- zb^a~^Rm4zuM4h!1W7Nq7)ciar_G-)F>NI;MsJM&lH)|*04_OmRi_+fPeYjwkAM%sp ze)odf_YvNp=Ya=LC>kureYS^#ugsYTqluwvF`D>h|ALhA*SR>!%Pk1UOoP9EedpFX zc0X<+88b^O0*}KzW%O(lR3awAHaEmSNNGD6WSG5=RUT%s(8BQN`%Tk4H7V;&mVKu6 zk2jZ9J2=25Sqe701|3osiV=;(vNOl`Vs0H`y#vygoq)7u%ZE$oX$G}Lf56%YUMYbW zV^q1hjwP#lNc7A3mF^yOwdYJKI{D?ec0EtDdQ5)jB?ot zW2ugz$vV}7-WDlBNuoJ{EX2cDJX5C=OJYRLPr?c)D(n%nJ%Lgk+|RF~VJ|$cPm5a@ zh{*$35M@3p!*>ock&Az{Bo;iykLP;@=o9)V%E8NU)E`=qq=;7?pD~7rA+}gaee7u+ z`A~NC;qVH+uR)>M0GO^-0FQx`D-IiV#)es63-ZozM=j;#6Wb=W!DU0aPv7qa?X!TN zF6v+R(B)KYu{(tBYMd7k=RoLDEXjFMZXK;Gd??Gzgd}2RSj=Wg{ZH}=uLBYWLdQVC zaHu=`+kBC<*sz5M&D}O^n<1!pcjYr*JNv2cP50tCt~RgQ2){8F3NJ87aRdttYxLf( z8N5(6;&afiaHn!AP&Ri*kO+w77g2o%iJ>qkYee`W38! zkf7^l$(kB@oxT}iOjiPK4kYc3`Y6 zr#x_T44tH7%!KCaz6;-g9~%V+b!l(YhV2i1W2ju%8BswK`v4bVs@?-$J;|Ou_O)|$ zGZ0joSui2e9R%Spd+%;cu&0riQiEIm-;?Exnt9qNZQ^?9<4<29k*3M4!8foEHQgDvVX*3eh zM99>X-!>g3>sJU@#){v&-yaj>igu3S*)}wKVkPqyvjcjMD&^o%2|BR?9KT^m(tT{!>n@-_3x33`5v zKY5?&i^`a;2M);}U1d|C+8Q6SJoWzN0%e$3K?{fi6lKEAv-hz{J%GvgC*3hubc)mj zD8L^I>*HABI{Y)I17tI(`WR7J5aPb?0{!ty&Qd1^)U{*{pzt%{9M+2IHT64j$BKH9 zDp&*f2q~XUf+zsDEug7K(?_BVm@5VY2`7EPM-^Db3PuJR0B~C7Pkh^qrqTgu-vaq8k%tt7s>Fo5pG7 z5YegD>b0&S{P~e%!vo9r>n`zb z=2i`M3@+Y3DFf`}ytnP39_2$iLA#QvZJa)Sf`ctvnIzZAYJHdTuBNO2q04hkK&?^A zm0^yGW}WdO0Prftq9FmV3Q%(HKkk<=k*v}-*k7)Z56AxY5ifu!!>0^xuv%tNToAiq z>NxcJl}6`@Zig4fdlx&56Iu*IsGtUR*Gq=%^~+Q=l@-&n11I_S5N}BzeD(r7!v@-qgGQc8g*} z3f1p6EJaSvpK!C^!6n<_XUbPs7I|L3rMTrYloKKSxl$MH{QKnLM&)ao`7%R46`FL(Sp93rR<7nf!)5#F1 z(VJs@G@~4dY6g6f*x&OL_9i@8V8Y&$6e<076m?>hJQilrM7e=Pn7;j!M zb=`6@sx2<&Bj@wzd%|2ip*oEwp+78oqQ)EzUy~)iR>nVxxwk!s-qm4pZo6Ijf~ zD=y5P<;)8SX0vWixcYtxJ}V?TlW>xh6_sY(-Nm!`fqca>dpQMq3UoV5D8aye1@Glv zwRBk>Slx5uev|Khm;V_Z4G1(ChTi#f1!sFQ_=x~(}n@_Wxq zBBo*=LL0dT<%uZv%W`hCqPiOFY;P-QC0u@paDZ4W)o>L&bMIbTP90H{2UOCR3~mpf zUrD50L0dL_wK4cSeJHk64+P~r@Hv8-Cls?}O}9l)@Msgx zwPt~Rm^Hb*bce|Q-Fd;_Rjr&zA%yhU&CM-_H{N4au95tqo-_<%l%ZH0arniGy#GTBL1J2-5rRofp($4yDMLcz1e$Q zLl!)i-_zA;_Xt(`T6amuwkev|Egy78zJgoptAp{C-SGh8%p`;l;rG+-oej@B=GytS%asbt7%RSoOq>#k;aCwr zgFASFMzlGPz6xKvTOY|`dtyzD=pWKX?<83MO1OWOl*mvioMR>McEOXJu-CX+O8w(> z_Hu)ui2`HKJujTnUsLr1aj*BuKxXN9{3L^-Jwy9Z1_Uf)30!^F%|XBxHb0sTX+o|_ zO*#44tRAbMtCM)^%6jMNjLvv@T5y5P9S1p@=N8;Jwtdrmt3-gBeq-5A1AqQCN4+id z!U7><@%e}O8XnYNUrs@oaYYj#)jE(ucZC(u3lb9xfPkBbdt%2~f5sTiVvKG$@z^83 zevwB&)T{jrtm%IA%v!x?_Vtiun}#~qPqzsD3V4?qudmwAY(PhpU%`Y}M&f2p$#<0( zSm=P(2v9PEOhR5ELkHQ=XRc!$1f`fis}UE=KjZf9mhZ16iV06vV?!qheEp zE(GFUdL)pRnz9qGuG75%+$Qf%Im%|*Gk@>7Y*4(fmXiFna zkcG5&rCD9BH(#JXV)q+ub{oRu+SP@P4r9yt;LxF1kwsw}3dw}m5z)u`#=Gh(1piRr z-pIn5M(gO+Ml3N0pE!zTLQ+elrznkb9sbmoYL>(j9gIOy0)lMJ8!G41oA$RT!UH5d z@Jf@n$)B=y6j9drft#Z11BbtljB-`sWA#dgJPogM|GxQJa5-gVT2@l%=d@K~+SN|P z2){Q>p4`w86D4r)y(#CgC^Y92&h68jWgFWnm-Q zp>*zPi6~4$Lp4^ti`s4e#<$~J%qm}(t{@NzdGiqp!you;bmGSI{;ixjtR|XoGh%}G z&lo$9tH-&(^`^JjMs~J!7~HuL<8@%-U!8Gx`#A zF#QHu*oX3#G<0WLp{BZSOXg~yle@jiJ5#1D{~b$$P{fhP)Z3xG=ScO^TR+jysH)Ys z?kSZL=NF-{Sp^6rAx4_$8Uy)C(57AMIG~xrX#X*CHC-;z9r&UE>! z-ZClVN66~<{8D*-!P;>XDlnirDI-%lKwshg!!2Z?eW89*V0|VdpHDGvL!IMZt=Z0_ zL}Hz}!xx4g~6H)yq%Q<=|jBD61eBjXj;r0%ZoZ zv`Mpt_I5sHKpMA{C_b>{BCY%Wa!Ax4NwM|o)k3cNTc-7ekih0hp&~VirI1#u{YY{h zN?P*CS__vKRGe9$S_hlMDQ5b2QyNC&NV;xxwLAx%s9}051igwZyxfxtS);*`i%EmA zm3JD4>50h9Z<2iL$<80I!oxSTa%Eviyd%8XeHm(YXj}??VXvZKj$@$|XRlZ`tO)rq zVJp>`&Ld)yY{y^e3AnX=R-xJ87;??XOR;(g;$fu;+)?@JBDFEZ9X*yh9Zn=x_(&fK zF3()U)bQTc!{G}-Q(HD1XXxyYIbj^D45jY|WRh~Pm(_P1Z8D^p;W;Q6U&$I)#1mt` zCkri5MD)gLCX|ov?Cc~bqQKJk`;6w8d_Yy8ko`-afojqt$7 zEiMMw;-0>tcqr!CFiS-_-i{RA2d3Iiec*=dGV$2$LaiM-bsg5K4;J)`VbBQCO{G&n zv#4Oir!m~jCNpC9yOH00P|U9N#GI>eOMoB64sJm!L%dwCbNelE*y|D$xEoSfDJk*b zG3RuG*0bm1=F7ZW;kSC}W$Ju6RRi6Tc@+XAh5~lH)CEpu7#f89a_fq1wT(D(h9sm! zJ{*c42GMqGt!^7xai4zQf{cSoIoy>&KxmOG76$=tcs=$D3Baz##{4tI$MS$F?h=k8 zv>|`O!UqaV?f@PrbJ&UKEFXWRjc#h_}F(i9rwCf2? zQ);Agg2u&4MZBB7*9i_;FuByP4|oB|P}|8Kh9)7(6@&O1*N2}?)iMme_aUE~H(T2d zo+hHs48;`UZ1c`}4c9&m{_`LihPnm)SLQ1olY{OX@m2D|H?7|?0lV{gsB0C(*`#QWmMN?wowrw zl_ITCx<7hb>8sQnNGj*b7^su)fq3O=AdMJ+@WAjPiBP_1MH2%|VW##I6yqQOV?0$) z|J?7c408sSe}0^5IZ7>D zBMOyrI-ncd3II-7mcn=QXz_vph+jJ7p6&Q%iJ4u=l|!tScRAF5jLs^-5+b?3i8Yc+ zKK}n2uwT#pF1yI?DOW-X3*WFtQ3-7d`+wXV_$`eOQKQQrwn$A8yrb>dW6TyduXIno zZT;yxK#BD>ii&$f92RajM`o#}cKhQQ%~a-bNU#EI^z_boR4+;EaPmNUfF>ma^2MsR ze0=B$)@uf%m5uR*pk?|>Kk48|D8ESQ)OLdbtr$p?F%#*rt(+p^5JW zWNGr;p|Gan{AOy=sG;F zFjC&HZc*^;<4B>wUtUcgg76H7>PgsJ4ctZ0H1yzZ8i#pcaHBYoEHqQoXyi}+o+fU# z#K~rAMdEE`K0M!j#9sZb0?Gbkpj8MS(VQUOI4M>^;)$2<&kQ)fj6R*B{Gz;F(T3mC z4)x~LjSaHCCmV-(j()@ZO!<*U3hOm`u%ipLD#)q;d3-Q7zL}iyMv{rVu37f2 z#>G`ZB(L>_b^gf=N%3a6_s<^y$+4t90I-+t>v?R& z*FvgxLsr9MHhi&j`|in(BF}czMs!lhXRX;emf??2unrD*;X*4P%vn=OcZfz_71qRs z#Hd$QtSabOSS)0o5Fvb1tvjF#n(9Q^>s>YM3YKhhEgYJ4_eLk$dadZ+%HWf|WW{wP zZ>HNW4N{g1H+K?`JT4mB-Dm-=_uu;tXEloVs58-iT3V^S;Pgw!n4_h?xiYWu+WLc? zWH|VRiWSP7M^_O;5u9%3qN3pPhnDI^HibvN4&=SWW)7$;4c!~THFW-nK7haPAz2xbXvI0ATr9m1y}ZN{BG&7^&6qdiKx8qJZJ?GiyR*gPq&JNcWu|M z2F2loB6NQT!Qr*JT%<9$qsD~I+HxNkV17#*+__ulCq!~(E_a*nCN_K zdwi4=GV&4JdsiKZORWc2bifh*Tsr%vvlV;-<30r$N+JlGS*o=o-N8pSqs3SxmtCUa zTv(lshyc~_&=}Y`&7OwL~7DLm5_KnGg zgW&uxe5_8{s_-2IPRB?YTf#P#=&&uNwnJWR)+Ntj; za?`JtAISvr2@Y3F!OcQ}9-5&?UnCpDDWhsof3-dUO?ZF3U2a(Nxfe|5GHb=75^|*g z+<*i4jo{18*x*`BtJ92j_@s6PE`Q2}7(wJ*W3H@P{tdC+n5 zVD=!jVTPTD7bOt2PC?1QIb3yLDyOA&zOb;>GDU@krEy8P*<%#E|Fh}|s%w`5fXWx> z7+yDy+mjI2)*B38_{N;v=3vxM);GZxths}>0fG4xj_DL@f982Rv~u_BWfn#92ruoO z;K~IE^38Pib}1?eGk)%}3^v@f>O33*$E7g8e_VPozXavw^c`+Pn5@=B-x=ntOPAY| z$F&jBHa)eW>tOVwpyC`gS zN(0#J&PBH}@|0rXkzfpvGJ0g4p}Ef1+`Li^+$H&Et;=8NUd}|A%DjwEs2j4-ugm&` zs!`ZetOm9!eXhH`LK^P&P-Wo}@m|`>g|{bB@v>ce!EGU_d6P1|#(9%|yww_#Ez`iH zI90SLj+=Ekb&~@Uj+#*MaPLAWS9uwqQoR-bHlA()s<5YhBvPhAaMKwfQ0PlUL=)FA z(Qut~J;H6)ttvB=yN8RSnD;Lj#a7qQ;5M$1(D)WJG>D^XOzE4T-cHs>*@kbwBQHFB z530F}t@B%9K7Sz7ol2ROdwluWNPh6Z5=WJC+T?n0J`ZD7d;HJ%1=gA54GRbdNkXf; z&756fqosbJw?3Y`7dIQng=Lg}!A=vB$w|peLIXqUuJ4rwc+867s>(-CxRWNGe`aSd zV}ty$4UGvy?X}^o>XxgC?%ep2s8ujJTdgzIZ!`+65-<{JUFPa54;+uKfuLfxeb4I0 zeT9Y#bFWdm*`r+}e>|`9O_TX?nsWMfR;>dAmx7vic-J3H)DF3#hF@hsEj(fd-pu6+ zGeR=f1OyjwV^sks6dg|Ah!Iiq8MyJb@WU74w1Oto4OQ`?nIm+>fU+2>n8|BUoSa`O z;q)D`Y0vshZ`?R&khd$$t$O<2gQT0-XArqi48}^x&$-6~#LT0=jH?9eKJediqH|Bq z79L3ee=%jn00~L1(x?Wog0VMP{ep-?w~lJP{utukht$=i?eqVEjh# zi!dj$(Y!Wf$lU9ESNkx_`t=g+eQK#bfAANY}{^?#tFzA&v9)+IwlR!9MS znNI2FJ8O#lDj|^#FVZ>&|s=9?oTS%%PF6?{X)HgX*Ja%?p3`i=&;Uo>!Q z)QSMX1jB3rXw)J3A+WAS$MMP`9^3SGv#tjAXY&fAAbkNHAq3DT(+(NqZEu))CT$s1 zkRZ@q+Vp&kFd2NZRU8J`#@5IOOS#A2Ct;Kh>lAD%0MG0GSdIZ^{wDcQNmvytDU3P+ z)2Rz0i?ODZc_WYR4iKYENQo>OP+%P5j= zoEny}20wcYm|FWzGyKvt>95K^deH7|24QG^L&J=5H7oO*o72RAhpIGmM?`|iTJ$BcEVKfQ>}RvKpKUrqa)T`frTf%OOWFazaOczOHh1L+QV_Jk%udhj;HBCIb8jXk-B9cL{LE0m1|%QNxv zfL4heGMmaBZa-mfna~SV8wFiI!{58R?xRZ8ECPM+=qkb6YE|l>D6Lt}XgS*Q9bp$z zE(K120qX^dKy|LusWei1RPg@c4^ zV&iZAH}xd)9`O{s7x#<+oh>4zd%fii=?Q5TY7uzQ{BCPWyPr*_v*golMlz1K%ZO_2 ze*!08yn}v^L&aZFWG$Nd#5}(`-_DLh*00tYnn!rd29;az+%r1%rS4J$ZgZQgT{D)` z_w>uK8zn3=p0`9Ue#^SSm9_u05c-K?gMJpj)x~z_bAnc)%2%D5gHR2yUUxb5M4s=$ zqOE<0yX8{gCBB)ir@c0I^-#Ks;XVrzYStDsA{QWMr*VGJQ~&1jy(ObNeq~M1Kz}pJ z)O?m+PJq6@_Ziwsw-^8Oj`yTCfjxwmZ^SjK7pmIn*>b^edjE<+NS{Km^VYRU?wjy1 z%{x{68WG&xcl_{J8%>kDu3qljxW0i83_!LlTVKFFV5xLGqV#)p3GbYznadrpClS0VR}YWT~%X{fsRML3?;+kVBShCs2?7#=K~J- zjGE#*5%p@q;|D{S6C9?&!;m4nz%)-5lLFo>_ES09e}^>Sn$!Va*ZchgBGOtyz9EUb zvvHh0&+jBOMFoFYrywZW>Gv5Nb#t=}h3h}GP|&M}k=RpEG{~1q*vhHFZj^WQr0DpU zH&`#MoOZHqMwhoh}*IcWk~7VrajX%wF26s@1fBS093KB=N5{UF>%RMG;xDD8rE}5-F`D)w30s(@!~Ot8k?8oC@&5yp?|N z7)YT5mc(}{UeXhHgRVDPrR)oEgcV$*o{HwQf>}$^@Kq7Yzv?2`Z!QL9Oood zU#WuZs2k-p`F?x)=tn+TH$!4I86(r}@kVKJnRqR5hD#zEo;3S$5A(e0Mzox>BPg8T zm;#|d+DrkPNN54F(ziyIgr^K(THRQ8KMQY@Wja=rt&BvNmHmGps>1JChK3w$4fcU4 z*z46*8V(zqw(VEz!|Geo)>D`A@M>~vfM>gV%J~m=>PHK{gDVv9qW8z+d`K+8i$vUQ z;DcZ{Xe8lO49jUi2BCvo2xP`@q`8Wr+%t#QQlq-Wr8E#Q(%l=uV4QKn(3{b4DEaF2 z3nV8v(qqCTwygBwNWZ|Bd}_8aYV00ibku&tbYlEI*POQlKA1;>ZfPD!9jz=tYa}-4 zV445@Q=6e>uZkJjD`>d;tcpcmDD?Srf}LZE`|gL2R`!M8k4rQbvJWJncU*?8+SQVD zgWY7S33(<4uL92tSidPF2D9W3q_sX9$E7>jXB8Gl{=VXt%P$FS^SCOz+hlnaSh1S; zpofOVjRXVv-s`{L5H)w1DUFNM)SF7JIy5qrj8ZNQNp#6PU5JZosI9iADYBt+IE|!= z;2Z|@VE4UX26)%%g-EA`gD8iUmblF}!cD#-5N5nlq6M*}p(r2`pz?Q+hJkd4#Rkpe z+rJgiK)9mkoD=#Lz>}uu|0XIk554M;8?F9jIh(;uQxy!1G}vEP{qjO#)@9rb|4NNBlmO1<~-!W zyyyYK?1u$t%2s@0YIIhSu-#r)>#OvyQP>chaKElZb-Y|d^X)boAFR^;dUbk!9?}dh z$a{i70jPC$vQNMfD#HUC8L$3>fR#pYmu?0t)K7hV~gsOnYu^+P03jT!>AP)Jl+0eNYN^nUHdov#^L zj~i8!_b}Vm1$sv>TM|vz#({mUbIKsZg2ZhYx6p|@OiyVQxM15yX73-CZo#2dT1hN-a)0Ur?CrYPvCh6ZM&)X-`g6b%es$u{eJuBhX==gO5^nOvl|%B&QCvkwv@Ne zn3e%X^S=P!)$&%=qTiD| zY`MiR-Ja4k@pydQZFWS$>hu|oMl!$m_c8Bl;tW&RWc?xlIogwNK+ZW(B?%Jtt~=t0 z%5=RJ3Nd;koIbMDh?^rETR`zrLyg;Q?!ogQ-f^2NdcaH=0Ld24C30=QZTuZ$veW(Ci)X+ccJek!qLWCKvu}k5KAcZQS4x# zgHH68)@1)F%^$hW{}(4h?3?{&Yxu>>^J<$jR)5lY^LzvP%(B=fIBZTy`~2c*nnRbW zTlMS3go!OhKd?K_KLGD}baN#8)4_px&3y}rEEa)k@JWe>lfvMj!27QjFdc^H4q7?t z>~RF?g2f!waen~TPx3nnkEjXlItQ0DiDD%ym1Mh{Yi7-sWfL2fDH)I68wrdu`}MSD zt?I)KEdwoIW+vVJtbnNTJZ2WgHlriwP_?YZkfwG{A&xAo)U_TRp{92q(!>8g;%)6q z`KxI4N>w03P{-Q}wREA1D@Hf4W0^{RW^z|~j0yLHtMv%R`PmGvm%<&bV6ZRW(b(rT ze42@>xt4*0BXOk721Pm8=wIYr@-9V|;VLH0v@ApFWIrvJt|j+OK{MT6I*=9sg_3O$ zpmYP&3>!9%(0bNH)B!(wO}g&*tU>?nwQ{{e z>Exh+ruW7di#&0PciXQN0ZF*Y!!2I7{sr~5^s|R+Rl&PFu4uU)^rws=-ABq~qLhrJ zu_bu%(t*&&T@z>k8N=Tnh1|o3!J>~Jk_G2gGT?UgrC!^29*npHy=rvi+cR)C(s2c$ z`~-03s&4y#Oy6hIZ*_kO3Aqrh^=`W0N@ za~aZQU58?j*=OolYH$QxZTZwOj5FFM@2&pTl#Q<(sS(Je^w;a?v6)wQJ?pWTrD_QD zVT6*Ddt6+^w*zfQGw@0VC&|8#6INHwjbRW*`r%?EXwp7>{A^X3_2}^!rXcBEkyAc?^eL%6gl0)DE;1{65zKmG}Q2qo#Tjf57OKr@{{eomOiHf#9cJ-5>p*~t; z2Hg9ri9Ex+Y3ByXBDDK}#|XSw(K4_u^EGSU@@fyiJYwdE1^wGm0c?_>9C@XPWexZBWKfLG1qUm{z|d(vT!b?`2>>gD7GC;}DO zB0s;rC8e`^+#ms=<6=P%p=1QWm|A+*rI|V1EAJj zn~KWMb;|Td;H&mRV1NyA5*~}b*qGZ-z`3nX zF80+tA(S_>z%`a~KE24{sYIFlz~pEEYy3y*-h|e~h(E~OhImFwkFqDmW8!uw+DzIy z_^s7kv_pDZbD%88>ESzRds?R#`BOfPJ8PLU%SiXoak~6duibKY|4SWq-Va-doWhf6 zj<|RqwBfyw_(B1SHT4b2Kcd%Q9wn-pCn7&W+mc=D!z+tc%JHEiU~ao-{ye}m%Fl{jpPi2 z&>9a5Z#<_Sm$1uAF*-m(5n6zIyy7PoF&QKotBnb$TL03i_FECZx=8rRtt0kqhjq&1 z{?=p7``{OzMA*>N=QTh(K}_|nm^d~YoxY!6$CS01n*Q1+8~9x^M^0;LcsbmZ2)U_P zfH5`O34+1<@+n5G#-DnAs8JY)Lc&<5*||B| zeeliEKYgS%jxfK~ml$GGH#fyIc}`XIReAD-Q6i>lT@g0l|0C?J!>Zi6?%_?NG)Q+z zhje$Bq!Ln6(r%?2q#Fcj=>|chJ2#+oNh55!yW_h-&v~A6-uL}|{NZ)U#RdCb_gZU? zIp&yS+T<%;q>JAF0TbQXlvYEdu)dM}pI-1uy7#iQhj*%x1?Edtp@SYi+ck8VrGcF1 zKTqfIGSBHx!b1&Dhn)AF_5`X`jq+*ZjXZs~PjK9-$)m7xlw(}fS1A@uawD#0Z*9s&oknIRYewlwRP4nL&hv05LSj!&R{jk*!7M zX!u>3w$SB@1f5P@0pQk#hnU)f*+hu=1D5#B%?)rdg?ky_n)z*qi79bBJ!mE9^9_HK zY&$ptxKgtIo7PALB)rJ?vl#!qst+?fOeFvhY(##iE7k}Y%~!9d4`*-kiI}r(u5VnU z1zQ_%FqYdJk!;-Lio6GBsP8sz_B%qGiZ!Yj87Vo-wjn6?9zP1xm{vO(psOX57oI=Z zMS1ZU?RH1}Mu^#NI>RUjP=~$}E)6!Wjx>tkVAPRv;4OK;_JjukE!M{?2w~U^jL$x{ zoT6bP{_*ln0*dy)k#B~8?|3hF`+r#MhN2b&6U(G4qbd_x>$V ze8bPbe^`rGJwdc>FC%kXO>7^>LKb!RZ}jbNp(Dmx6T>?&a7mJ3wF2#uo6I&uk;k7p z5mD@mUgaMGdY``2s zco(!FG`!F57Ub1mHord@6%3`!HP)m;V!Hq#s$akG;YkmE;R7pfX9DFerrZtnXe6+7 zpI^{UYBE&vX9nn>#fv8GX4nsuv1fl|7w$&g2xWLsOMQH|A4~U4Ay$^4dulV~ zu17EbV1#k9!qTczbOk0iItR23oO-V|co-D*`>jM@kiwN$;>){%lig(WiWJ!u z7O992eJ(UD-D*OKtRKxO|2R-90W$nfiXb^?c%!GKWeb=YZZ+*2q!;@sTaR$B-n5r zSKpef8JmBR-%2#tXl45Qee5+_{WI#oroN*H|1(PHUNHOb#s;cJgddg zTZjK;b{00?N&>gb&+dQ4l?6H6H8(AgW|LAQ!Qmxe9s62rO_fkBmv}}IxS!pR0Q)QRM2PV&e#|S?$v#O;8i$8l;%&(LKX-C4E1&{PhlvZV z;jdkjfHChWNcQG1X;SC~==FU~Gk)zy>8SnN#ln@~c zL?K6%y6X>e2w@z1Ztl3w_5m;Oi_R=4F#NYFk=ZF|bbj>OmeDljsd2eB^t}I5my^HW zZ1RgR$yqFph!6@nxqn9~Ol6{cZkUn!u9?@cXD-k`bXVO}Uvsg{D4^+n&o7!&7Zc+J zsIT3TS~Ke#c7%BdITMYjpU24;`cV0hOHbPZ3D}#(d!_by5Xg0@Bv|_BUfd0lCjf>6 zdVMpSLQvh{p2?>+CBhMpj(#XRhyjjx=KO!SY=?Yt2_}|#Je=C@6zXS@9dF1#yo64I zDmzn~$~3F~L;HACioeT&5c&X3j+1_)e4R!@KB3};njC7a8Q2!m%*lT%qMIcU#gyBP zzCsRCSi%Am>N2QPE8d|3Q*s_I|Nr{iK%ZVEElR;%WJ|&7+*6LsJ+M0QBO;69K|U4Q zR@T=8eiVPzrajnv!V8RZ#9My4+aGW;FQvryu`-~9!4O@Cz`h>-yWE}h`ppOJQp~8> zBGMYlq*8lF51`Rb5LP_;?ZabF_Un-&#cnPf?bcnhodx}i?z^zmE~u?jL{YHcf3ZKd z;c34ZN%}aX5cGs*cksh3j6s&~tHiU`d@1GWik)uz=GZ>db`?P6t8k7FI|Z+S}=H-Y7O&^Df!uC#>sy@v!9jE=FDh1Q)+6;P?CVCk%=G zZpAaF(_62T1@P-C2_c0dr`bTwYQIe((E>k~D%*)R(EWO```pLrUk$ubcpbXm&OUEB z65KjdkyVcoZY-X4NJ8p8f<+HRjg$Yv19j()s;m0equiJ8+o@W}f}i`fe19^%^=h3i zB5Rv%0sF3k*hP`c6X!2p1O=v;bDStcrGs5nk;NpwVViB_oM> z8xUd&G;#8UC2IKK*`r_zftR{*Mgc9&|C&yRVkA!1R*oaFp6urxVL$1%OWaaC;)H62 zCIadC54)&_^``ELoTB*GXP*OhZ;b~JpH#(;Y`zO+N`LEaIjw#-l^5=!P^eSc)GpQ+ z8s)*zXhYh+fLA(V$snzy{$er2(7jU!E6j;2uH^a8q9@^LOko3<5OA=p{P;j|9ZdzU zW>B6xE17m0UjE~9YM@30_Zxt@Loe4nQnSW5*_TdOnFZuH_w682qeh>lqs_w;Kq0TL z_wmbXN56I7Vm)d4oCsuS;Y>z!!qw7y{x;cCA@ZH~D}{M0Ep|J2x@VhF;#~KI!FXoj z)$*I8AojDva_ibtIPEDa9R-?K##BjfhWT8{s$w@%UQ50cE~%X`eqiTx0P@71&a zTZ4f6_j;nGFZ)ZxV@07~yPL94bhX9{ya}n4_P=mEtqZxhQ;DrVOk?lwS%~aT5QRU{ zI{b?42Oqd6Ew(y%xk`{B&_liw~eDRYD1W-JZ%7xow>pd<64aSYQm z>*2Zv{1^{dKea)~(g_mqew7Z+oum1D5)6gQD7aw57p?h>+T*(U4$TH3tqs=)6^pKX zwWDnfiDKdV^Ny@gfGAU&V!NXYUqkNuCKf#v`HPC;!b0#~h##Z}2=No|>Sp(Oo=%+_ zC!jv;o_}ILK!Y2h+0E4A)*sbNEo3&g=|1*1Kw81Mv!W}o-r`c-AIV2%Kz;-us~BDx zv(X+1H8NGyJ{83QppU!nx{chpmzsZWy~@ii-|v&q_6QTr_3@FbZI|NsC*IM9*1kG6 zmTT$?b4`Yb(4OpTBh_1EWfKUG#G$5?h#c$<(u1DhQZIGV1V4h00mNmdR#^J*!QR!S z2TG}f1qvQplaa$$FZFkMy#&GmkWh5AL^HArK~$q;Ti_kEyJY}jGt%0| zplVFul%=X>oS|IC+<@EOC>eNnfZ^f6+|)xaV^_iCR5tj@$K(W?ce2v3!`A$OPxZqF ze{^P^!y2>H-Dr7h-d#acC6QKX(_Pa)PpB85(p3zbvH9qrv(uLr`4#ln86PsoBiLcS z1l;nqh`q=~D%DrJJpud)je@sdl>GZ+x1jqHqwjwo`rxukjio$n?g1yCks!#U2&mFn zHT(G_8_{!{AGc!JSxfkK^o6^q0m8-w=D+y;Gn4wq4DC>#(pSyF-Jt$N^Va8gLvj%P5_4X?Tt66b8ZrO{r zdf$flOb^U$w%JuC(n6tzzPy__4LleX#(mOCeZ7m;tQkmw)fHz5zi;n>-3N-uo<957 zwrTX?fArnG;`ld2Lj1LVvVi(@)Wj1ywd8QR+ec&0OArD54TRojjE|{eqX=GwtbBh% z^1AM@s+=^Fq9$+rk6hKU6GHo;ahk{3L(i5>H65KjW+KY>vMn2Ivt=Cld1?}QNJ;mp zR-Wf1+SOOS$+wGYWpkFCJYKIyU`ORM-*)T282kHEM4R|8F7!XkS@moBz2<4R;co1 znPQxjvXsq_0`?)RXgJ`;g-@Ehr&$tVh`M`^)GYs2Bo2Wxaw1>z*4ugO{g=QoUmMy9 zS3nS_u%hjx6s-NFj}QGBy&($3q{da)mDuN#qD=UnHX>mum$G1W$H?ce@WeC_?(6EP zPcI#QRUwy8nQgA1DnaEOyT>N*#W7v~$yT(Y4)I<8GVmF+Cw4166^B^np>ZVp%^9tc zu>a8!zK+m99TGeAUFqLX2|uVdqlw*fkpy)egwW||Jchk)hj_S{$57N;`;SrYU zC<4N5HZ41nBtMP(#ae1+@eb5tr!HS;045$9A^iX6#~9_?0!8vVPa&qA&M%bR3J#P( z{mjRrwxFqGo~y012y%j$3+YpY_GRM-bZgn7M8L#12ex5 zAFdLoqfZc@oXfLD_b=^7x#beaz3kozD&?!`CP93{3EJTc*E)ZYVq;uisPplgI`{QP zk1<|JXN1Dq&dQa#tLNO>E`oRet{zKqk%^l#0uz&NS3ROHnPen7QAhbA17lA%bmRR- zHt(B|3x23~<(7)PE$jy1WbUp`*Q)7W!(@lIeA#>MRs$q9^It#9P!jSx3k%K>h!w2_ z;B3f~tH->n8K^(2TjAN3v4_h#-3#>|zc2fZj)J3NzrRpbPI5z&r}*wWORAw~IL7zq zLitbzCSwV#GT#&C6^r=3aQJr_7WE%x*zxl( zGYsX8MdPPy4a3gfXax2zwugI(qbN9mHksivf7g=&aJv%FA6ghtD}pZjYYXa+M7WT0 zON*`1XU@cl4kU4bLD~!tc{d=L zeZ?yKEQc%n(B#!Ex7-I^t!F&u9J*y%S`n9LkxvC9zX4!Mj&y19Z)6mR!NdOoU;UUD{_jT$fJV2&9 zq8vK7cc1HD!Rd)xP~;^Dq@pNz8g@j%&|BRq9!4LK!i7-|x7q={oClyfse~;wvG()T zw_CZ{eE0fhU^kB%)E__;Kwlgt(3S&m&ks~htxOR# z-mq!4yAyU88BpPklCsL%!jxoYVcXVM=hlr;7PU-08i+mH$5{6pH7LpIgI9$M7u}VLkDI#&>L@q3R61Xy3)S!isc24 zJ3;3OSoN2G68#9D@0I1hU`(7mp)}Cg^v*H(`z67z6jt}>)eB{Ee_t4^b4zwhcL`19 zTQvv!{>aI`icc9&`%x;YEH7_85}ijIytdd1qYsD&z|X=SjzBawP$L82Sl6{{na7|4 z(C>V&Em;GepQhJKzM`L2NL zS`~0EaPLW?qMg?$KrK;776v010p_e3t2t;q>mhOdmdGBvA1(%H3z zxzjqTU*hnUnP1MP_|3kluenr>RLNGibl?vva`${G-mjp^G|oVd_wr;I^%7Oi`T+fz z_5(H(&K&iz7ya0Aa<^>$w3D8jFkr!1uBy)HLn6yYPJBs1?X#U4MF&lBEjIoLP3cb3 zO^t@`wZnqM(s-GyXO-VjGddS-m1G}@C4Fqp_d9V)hve+=i_OuU@^KJ99G3r*bY_7A zrM&X8g`SIM}3x zT%K(vFy?i&E+NNO$4_CR6#w|J^fRP#)wd{gst3kpc_xwT29qL4Th^540T?2uxl4Ma z0bG+D+`S_bAkLv^mEME1fIz>S)Nq5~Zs)&c-E(8Wl6*t^l{3YB^dA_k4_+xqK27ylaGuN zMQI2t3fy6u0PLLvcsAipl2$ubLbhgXqrFKPW#;XQ$gY_hu}hpYh`$P4v+#YR5Bf16 z$u-}qG4O-rfY48`60wYA6&(vUUK=x4T_`oA%jDTx8XcUkM}eQcv9H7F{9~4&n}-#h z^!v_g`nvSHeKGF_KZ1ykOsp$IlW`8?j8N0&8ZiXvyz=(A`GoNOYlaCpq>MlhZgeOv zu_^aJj`E71RElLi9h%dSg9T&G$w-rB^n|itjf8HLza-PZY_FnxNnW_TgSDCb;%1+z zS>JWPEHUy24)q;o`j_S;K?HGS2&4EsWmmRvL+^Tn4@iGdWXI=Ob~|Z*ubz2$K3#)h z-=9>i<_U!f8PC!uJfwimfhLg{Ux!M~AiQqL?HZBKbi)M6x74_?DRXQvJapn#TiSjk zK0&~wbkc6|`^rJEc;wtUGQPO^gB4DeJQTF=*$A|{#Ny0|;5)cUT>lMjpW;uq3Z!Qe zcT*zf+Wck1)nc0aQu5QvlQ(*_GvZY5ldLX+6<$fA01@@Ptp1D{@ll1E?Ho68~N0 z^#ww~L$3&-1L^+&z*8>uXBrW&6<0jJ*$x?V){MD`$p3CM;aRUd`%T*cr@16BRU^VJ zd+J_Cl%*ODm7Dg^kY_=txt=Dg^O6oR1`@xTCXZQT{zRQ0}KX+vfp6@N@p)lLI^8Jb!{qKM} zFX`T+0GpgPzBD75 zR<-mtKQG&=oHmDD|GZcq7zeqNHYT<{|3H~8Qt`jQ=}_HXl6Z|*7g8Q^n$=k!fi2Ye z;&nMMnUa4%w{9woQ>6#6KzXqkMqLaa!k;Nc-Ob#nFSWShlvFXp>u2*$7JLX`!G=(O z`;E`a+&Oi3Z$B`SuShclzemuv^Qba0)0GHU2Z|^izM*#lxpuR=`NDwlk33=M`_;XX z4bL-vr)Un^&so`;i&I{GNb^?d!oc@E2k03PnaAOi5PK*7a&|-`{iI3%YYNZg##Es~?L< z;lCb!t!@3(l)elYhDT^GJUE<=gO|A#K#?iN9{Iuh%_uPC3;><}ae~Uf5q1M5;Nb>* ztCIq0q3Ob%n0`zDi?zb!DK9>QlZ%0=xPoE^uie?=@7gf78Sr}pTYS3GK9inCWvp}8 z8z5sp{w+KJ{>74tfO^@&jq%6BE$IW33Sl39?O>B@9pYI3ZiG2^iR(rPuAtBi$O|wL z>L=T!4~z>`6AwHDRB=|S#f%WdIGL@gq9QeiCQKTddoRI%5{ba_1Dqq;HXxV7!w8oR zBmL|G+GXKrVcU0is$vEFLz)QztDGT)^vVA>@O`_h3}}rHOar-(+AbUW-m(`yAU1;zFC@_qdhycB@R zq9cEOuB58-8*Q)hTj)w}94y6?q~|7f$k;RwnM0KOC=o_$x-B+Ev!hMWy&}_}JHP zi<^tkI!5&&N}01fT85!d%}A;T@I?q` zB)upt?y9pH#GU8lydLq0mS~5BFP=(34y^l2WxjoddUZs}zSmHNq6TCn$4uFIm1cnu z=>%UA1JVIRzzdpS*$Ab+#7EfPW3RSDI-_=b$rIdhw`*RRzbmTuZS{@j_sQk16!bfn zyIe(BLvPD}A?+odd!+p_DmDx#PRey|L4PswFVfX>4R9maRE#d!QgO{8u*-^cxPY3b zn485@`lGC)Yb3jGMK1;+7X$N9<3CC8_{iK zV${9IoXyRZuWi2mD3PjCPdhXQYmwVGb^RtS$0kuUx#sjd>1FfP3V)Yzo2|`4G4eNj zAto1!*q)oTJuhA<2RJ`cJY4)x6KSg-i(Ra4E$h2cD+1r1oI=_oB_gV9Yoc3J=0M&Sk={>n@?0)v&;2};!lAQ zq5myxx(|6=o(X=;TZu=Ig-=Qg&A40%D@P?m?O7v55TH%7Y-Ho1YklE*ZoM*@Na3}y zg=mVwD%fo{YpDqDW7qE6Y4_w74MAf~|yN3kZD1{2Fh-!Fq?=gw0@v)67SaI|sxI5UV|#om z4|w!_Ycf(%k(feK?3Xq*N*Z8F2cS0iyDdtL%QAHWUTzD|{v%Eb(|e<~nj5c{?z&U6 z;rhNfJ~NxmL%%_5G^m0FTPwr2B*6bIj~sUS>jsgrh7@WHiV0?0WYqF9u21kkV`K>WquO92H>uJJdC<(2`X#+*Faz67&eH; z_~fD=uKv8CCbi(iqEw(DMfz~;M)>9|qlXm2YP$Hm1;4^_w2WNc#rmbZ?4LbdsAuC8 zbN_^9b>HKSg@uTlVgTXKImtgO9ZbYg{8~c^3Uxuo-~JE3NjB{B>YsK_)!P!m3@YD1j3cLG8#lr>mo0E5NBk$mxAFj2Ki4hQEK9_sIBhg&fa>@3fw^ zeFa$J!K1qwLHzuuUuvT66!$pg%|BB1ViHIp`3X?Dq!(!e`f{tLk^!Ym7&fhU(Y#lv7}=B6(uMV0w#*$Lig<|D5thrQr`9=ejXI+NSza21B`PXHLRt4 zbLSZu&Y`3480T0dNAr_{u_Br82OS6Cq5)qlt53ZnBx9>- z#jbZ-)L0T%UjtnZS~2gJVsd1=lB{KGs*+%^H;&PLzJGNkc{;W}Os%?S2k^E$dOIq- z@gHo^??BQE-5G^X=cJ=Y`%h%d1W8FE(#;2;?B4=ZtTaK}m}~~9s&xDNVRD>svH_t{ zTFccu9th=;-QER~ndMy)L^Dq;E9Ah*`k?%aRd9|&*wC6{@8UqlAR<`=^>vzSHEJ*l zjq7J0vz?_X|5Db?C`9orKoPWO?vr+o!|K;(vrj{Tv?K%NR}Y?GuM=uBa&ZY(u+9TOW&9XR(*rs#qE%SAQGAwW zVh&|di3KK@XKBd@|9SAW&+wr&<7CV|3YrXK3{ya-vMc0>IY`17#ZmJOs-H3*0~x*h z>dgv6^LkBSNikltp1+7;#Z8d@4|Q$@D{mEWmx*0|h=)aio9OZU%TwcDf|!3jJrE63 zdt{-i`1qUcG{dU*CO_Q3ECBS*FbF^L{>CIGNAv7rZ$6GBtn3LJSP&E9%2126TgA5(nYW^4OVKa?0W-GZk;XirO8 zXR6&p!Z#ekE9tFMR)RGC+_>q&qmhhc-LC$41(yAjC_ak3!nk@e^@L-4(-XByWDc)H zqBSp`#yLD8nge1c&BxLa4yw>jDX0ssz?*lBZqgj#qjxT$)X09p08s&aCanJA(u@*P z(i`bVdWHy2GDTn;8994%o0=TSK;`uc)+~jKrRdPfot~z@6fN4p#bc{ ztAl$%pbba#k=J;nHQD!TQ;b!rgijFV6fq1BivEPOmV6p83nN99sBpZPQPu@fg}Ur+ zw=o8(*Act%*)upBY%~Usadk%Q4S^VgPLQzU03x_c+)IvwKnBQ}JX%PvTVW0&*CK zedjHnm;uRbCMy8blb8|pveUebcA7l8!8%Up3AHiO)j?5vS0a=_g)sh)t|S{2P{G@quRwu*f4U-*I9LXs~j9zV5kOr*`Dsy z1nxISMk;VyeQXgO6+hi`C_SGd;V9-b{}e*H!S?4w$Hgp^Kot4;G$g{G-4j!*9P++R zNc%gS7E;nw5w?%Ve2@3^#txLkIg`lbtWT=_OGXesOW*l7_qN?UD%5c$fB9@)ZQS{! zxV@|Q(Rcslu7IGj(*VaVJqCh-!{&quVwMg5b^V%63MR?ve#{_Ky-dHacxPiC9r;YZ zH-sAXCn?bCPgIJp!_G$JVrD(L=OnEnt31{Oqwy-wJ;R4z!<*C$nF*&dy1oy6ETtww zlFVN@CORw>#mT!(Eumh7t`QRq!P>|T&XSHk=oshA&R&L*Yrs0-{RBA1L^|Z9Lnuqr zH;pETI_pF;kEA$SRG;1iE?XS3VD7C z3_Z!X%ldeukX?TFL~~#(sr<0n2WV8o*ze~B?KMbnl=xxG?)R&H{@!_^6oKqIV;XVr-}7SGR2{!1$yUi7A$))OQb%%OqmD*Cdn~6}>(vw%N!@`n z>?jK-K`fVrgqvh}?G1}uqhzeJX7rY+GttYuXOb&B&jn_np-udRZW4tm`t?Uw7CEYW zU)|&t^lH_fbwDS6T!~BlT$IqqA3lp96kS=YVLSYWYL(0S{zr(cgy(?5e*MbT9;OZc zw~N{OR9?mK&Q*ot$v6dy{>!JFr_S)Fy!mY;8bidc37ci+;Fpc@u>;UYp-~MN1{c%c z9>rP69aduVoUn)SiTd>gejVJh6lt`UjNnxJeXJeCVHyx6%W5To)a{qz&HJ_WFYz+M zF!T7gy8>2jSjjPh;e=eC4YrmQGMVxQ^*f0nD+&6a0-^_pRWrrm7)!w?^9r&q_VaxT z%CDzK8k@Syf(Jt7N|Ln@>~+2{t&(N_x$&;=5Bt-Q=<^6*;K=QrAA1OX#ONU5r`kv& zBaPg;j*YLPrA+cZJ88$aC!nXzg)lqqOWyQ7hcbu;e9@it6x8lBP?@pX+sLKY51?=V6DYsB9X0$Dto z5al!cve>m%Dh6l((Oa_xsXRnw3*^=@cPkZZ3);Gp0YVC)?rb*X|-mq8jp1RL- zTe$!x6&uLPeIwD1>C$!#*mG2Tqy+kB-1``FY61dWnwCm~3p!jIShMzsIX?r!587k? zJuj>p;~CmxN;he$R-`oJX{tkIbkM$C+FVQexG2pAXegv%sdVgRwFvQq5J3v#iJ(nC z{D%;g6x8S`B97ssH6iU`sn}9tivBV3>GZ}0Dk-YpmoFtS4-uGFMG|Zn@ew&AOO-Lc zSsb@Yde4whgF{R`MoH|25`HpY7F!_$?W8$Bf#o3o{_ZF6Au1E!YFxUv7ZcP5<* zZEZ)`e06=A3cED!h1B%o?3b|hD@eHPV1ce16OB`YT!T>gJivM2dUyhQ$k#wVcUkDd+LT`Dm8D@*QaiKywt>VJZQLZvs|111 z#%=Yjd+LO!_pR!WalTR{uITsI$#qqw7rOzm0hJKr$bi+|(gJUr{GzQ|Z<@DJ(W(R` zZ)hX?+(lH|AV(NGb~QJ~j${R=XYdtmt6|FXH_G_Da0dsIM|`kV-)1ZPGHXqJJjum; zO>77}VtimzTx?2|=Wm}dbO9%!4|@i?5Q23_LAA5*W%pD1(9;C*mrx>TYcN^x6`AbT zNk`a5nif2BVO~*g{l;LJJF*=EC6JJXRw@>Z!diB(oE?{6&p_C>ibD46^^pVJMt+LY z>S~{9eCXN$>k={Y_?&)3|Lh3Y`3Orj&#b(;m(AGfQO}0yYUK*7n&K%6A4V})^-2!t zdD(kfOa(7)&g_C64F}EvmptTB;f4p4ZqH*3uE9{U_n z&qB$w@6Kf^qs7RQ6L}*)JcSk?Z5xweZ^+C?ldXs^75*ZQHb_YK2NY{(V__8IXhM0kgDyfm*ih zjO4V%vI?n5?NJ4{g`jy|4N!=g_alRe02z(3+bY%XF7E3+v>g(8=9xJ5fwvU~Iv7Ri z?QTaGF2a06a}FCn5R90;St)6(rN6wJ)A4=zc3vsKEIuOA+aRjZYih==$s<8c2$3yo zPEcswRXqi+)Ai2Rx5JHIXknX#gv@Kjrs-8O%d+7sXs|=JnA~a&sFd$xFs^PW1>AP6;;PJ@J@>O#fX{V6vDt@cd(%t63>du+fV}BU+AE?nyti1aU{&?Hec~X^Z+D0JkF~ zDAgGECtkCAS^MYKbnR|R=Ai%qrxo=l;5HoZXnDJ1tLi<0JxO!Wivno7R67v{GzWZs z=tGaqC1bs{=ThOPnr`P}tVo1gTPUZHV2&jc95eG@uKUyCysIy0ecU$LR}!2=Zgdcm z5Zf3KXo~qL1ay9Ep9wWV<^FuNorWvZq|R$^dr;_Z!t4L2i(;fHy!uHJWV(GrM*I#K zUT?(vIAGa&?gisa!|Nz@%2D8zy)z;LMkDU2cu5<9=TcUX4l7Xo)ol~gkLKk+&M+AW z2nalBuFA%3!_6sHH{Kopn&9guRO^QatTARRO&53MxK&z(k?9xk^e6@OTez1Nh&ffG z^4wzUs?Nw_9kb>U!8}07e)9j5+%k()9XHz1iEr0313~{|3_j1%lv%WcmJnj*F6j@^ z>$3clS;oonrNIiz_Ej)^gBpF#@G$R5m~mSnLbT@x`zi#}df)pEKoY^(u&-+7sgd8Y zvu#y)B|ti|b$P*sE)CUHO_Kro(U9ALdnOYA1##H&@W^QzayG}LlSrzB?-)do%A@M~ ziLe}VM@JD%Dhb*qSsZjQ@)hP&vtZTYFoMj{Sx%mF4MO|Sj)I56i1(~Bwam%B?IMvdjSA~vweJ3<>R7H6nlQ6FL2^F9vbdUwXsQ{X9ld5KS5!oE0XH403P zdS|ry24G%kiHz{#0SmBYtJLZV+>Cmu{5iWb&F%;aWGWLOvZz|f#`=09u)d{WJFIfn z<g8mk6eK+2V+;sjuT5qvfuAdT{S4Wejj6>1i)K{8$fg0 zLsPo=JM~t6f(VivEohe9$76FXT7~6^KebX$fsS;zQEh0j7>`;)Fv^WcL`RcYO_e^3 zws^iPEjFOP3-8)-3bQ8JY!onS>(PO}Qf>XxHpH~63e0ypSHGL(ueZ)sdk)Iv{W9w~ zc1*=Z?JULh=F(|q#56+UW23{&Gn^l64a|Glw8q?#-kajN++XJPHjwxFQ*;XDmGqKp z&dzb$_(`0`CC@~ZeM{^w=A%Zv_mt$lUSMZt2&|Nn%Gxy{%X%On*=y+h6+6}S-^r?OnuU@ex)Iu@`iZ$@UQ}5M=oOnWydVG`ez(RLSdgwZa zDL2Krj?T_ugV5vCfjE2-Dr7&owhf2SKkIStIxZD>&wKXKN0|H}?bY7$zXANEv%$JA zeGYkl|DA$wS%3acA8@%y@WyswhEVphzhebs(NH}HOdEWYfS+eN4Doj^E~VUS*x1-u zG{_+T0;d(=t~rbb9BMk8D;_;&Y>%!gJbo8fHios~`d4gM{CFSR zJv?$%guZ?RFwG={lM`@?EWTm|)@WI2G6Cw~;GkqC1kM2ecO*wn`a6=NHxX{ymooTt zRA*?TaGoR)c7{^{~&%*<%hI1(>j*T8JUZ19IlVtmQQ}nPi(C; zgd2wizZCetqd2K_^pY?eX6%KnoQPrqq0mRvI_4Pv9+C+mfT>LcV&{v&L0~KPB$cDc zK419(zJ!WH8>b(CpB^4Ij4MCUGP1}a>NfX3HitMV3Ybp%vu;rpnXW7LcyUzkcp!xu zyycFJS_8=&H$CHBNK|i|q_V+)VYnTI6K~g(yYI(lb4QlwjE53QC@oXG8kFK(Z zG+9aJ$dQOF{uAr75B}F!-;eu$#`?@?_)w`Sex<*n{0ecQbi3we3NXfII_%gSMvU{P z>@tyT&RT#(mOr$#%jkLnS3u2%kxz&LOXh~ zC*n3L|IWi-%yaAV@>1%{PfcL-+Q=YbeGq9c5=XdqAGzf?P8W@3>OuD%S!>N;R*P>m z&ECL=@GaBCy}*JXCd=rH7O;z0G+%CZw&W|Q(m`jANIHeGrYeqH1PrkFWrTqSMQA+VrKMtnA8kE<-gIwhc>E4 z<1o$dZ@gkGODtbOJCu>+`mY+7 zit0+cSHMn*OfUU16=o?_&Bb&D(=_4yBlUtnTz$3^!EbN|g;X+!%=F)I ztt{Mm2)-Hkxo&g>AW@^jMf~bZ3AsATUOmijJ!9DRF$ID_3ID+jHkk_DhZuKTmcliU zovO~i*(8^{lC*use{AV+tbFrY`>hp>>4H(eI^`h}cO*$LTf|WqEKj&{Kl^B7v?-lf zMXjV;qwQDig3h#T!IwE3nhK5zr>pk62n#R@cWAB5a>GBpZhBUwzu_Pw7;7hbuU7|| znjzEtiw%uLm~!7yZOgjvPph!8a7D3LAJ9Ab7n3RVvRUYKp}A*}qaeP%kA;p*-Uim5 zfpUd*o^y6JI;YCYJ5nuQeIuOzs<_0o{8X0CStA`8%k4SQ56PS^hTQ^+goA$LmAH|J zd7A+eirr9WX@_(^zaG2;ojr@M+BSysMETFKC>(&x`d>V|)L6XA-KnTd7*_b4M8e72 zqUC-DMoj68w{KR5)bFH@ga%%<$@-s%N-glWqpIS24woY^q4kQYr^6C&H`9zC9eob4 z4U>!LlWY`bBN*wKtD(p~Jz3u}3@>j7Vonz@tbAFF#F8YoQMnbn!Ct9H>1YY;$U9Nu zEB&*}bEIQYS_bKVq4aP(ysy-!BHf>HbufMJTtCdIOcA_SuW_Uo*aMy@q2|0 zh}RzPKABjg%S)-_5T-mUH+1nVh+R#Xb?TQdUl`EkCy3VYV76|}4c;0q!-0RK5D2A$ z5b*U<%K~Ks4f*w0@xZ)1k*)~ zzVSJBvP%xT>&6@pRCsy52EO!ULQo4~vc0WKsjfx>x#dAJ>D+1&rm*hWPaQ(o5L?id zwH>bxNgowCD3ult=h;}f>qph-zJB*Msx(l@h(0dNHN611bq0Q3-I!ZNyM{{;#OP;y z2Vc$^y^}0fpoF3J!{XDF8d~5RW9n#c%tr??@L_y=%Bss z5W3pEZsXf43JpmT%hXc`cCOf2E;h3KliR5pibCC4I^psh@)~151flzQo#82EBw0SKU*|% zF_nfit{&C&2(SQBdol=9i(dpza370LcKl z{PZW#LBpL)m62{`FfN6>5XO5`G8rhyMFI)p@S3-EjW?y#DL+L(iRXRLWeE(se0}LX z(V5K~2D91DEmdGOk@w_fBPWM(N~>Ndwn&;dc(|2?cAck^KNIH}z=67?^v*1=hc2iA zT&z`r`Dk6*B`OwR5r@c`7vnY7G*>}IG z%tgINU#^Br(?i$ZeRxHy%5AL?%Cy!7ukAfCyLiZ_TSjic{Pj^|ZV|G!`kZOLg5$L- z7^97acKOqI>K}ne!;G!Bb{bOAjc{ZCvh6#EuHG>CCzCEs^4l_x^c2*amzs#SV$VQLc`nt|FQShQFT1q z)+ib*xVu{j3GVLhE&+l&1a}GUF2RGlyL)hVcZc8(Uz6WC=iYPAedE3NoiW}Y-@DBo zn=Re7tE#)J)?9P0RX?BS%IiK!Q+SJsX*ZPJ`I#QOq@J7OU5e67GD)0@ttzX=aH^JH ztirWa?Z?e?$!MN*`j!aA3#7$ptGU`)Kw3;1a;Ve{7Eq!cZj);cmT5HbYao_xl>Vrt z?nM`0G~-=~N*1GXfLo)rPM8PoI)g{VX21g(r&O4_8PY%L7BGVsQ)OANK%;2>5%CCbNr3{P@rTFTIwDwrgw%CvW`^9;wML_q9_IZUL}GyW&=yryF(Jvn;?Wl@U1|(Er_UZ_>lwfdjQ^|7aBa{ zwW{Z&sO_AJyL^~+HE7kE5f z)fcjZ#k}V~)cw&{xUY|Y}50K0jy!DQwb)INs2Csnj zK@>fGX&Uw`qk{I@JP?$j7nGI~xbWPN8_7c_E?}zyntL{8s z5E1NIwI9BLVhv>kBAPmnU*@nt1zmRPyFW8>sHH)MMy^^owYxqW?HlSWrAQ>lp<8H;>BCKvqq%y+=5YaS2|#CrOR%SB|Cmx`0a=r$!ZI@zQ&?wN$mIk6`1&j z3w;IE+)7dv5TP|orGCd8;aiy=AGc@r=q~l;{ltbx5YO5xQY$rLMvy3y0hrA_w3|xU z21NZ6^XUI8kxJ(Ce|98_!Y57<^^dQwxnJ@eT`1cw4fd&(sTw!IJo_O4;)Z!>)fdf6dL04OR2KB(IS7*EQcPZ)0f#7nyfUe741-%fZqu9kM*RKWw zcle!nre9BlZ6+xEQRfpUq$Pd98{b2!=Gef^`SdR+q;S+wvEl#`4lF1^fPpo{{71lw zS0;DBQEs&EGRRRWFT&fvu8C}UX}%O8Ae$5a-PiNJg4#l?%_Vgvvz5)!uidK-?1_4P zFegB3Eht0EX9s+UsMjfS_Odq9bRAyGMrpy0i}takK`L{oDTKJz%5O&+aOqyzq1FB- zD3bKuLC-TDO|+hWK~nFSX7hkT>kD0dl$76+qMwr8ikg*msMvs-QVblLxva@5B4Z?} z*GokFiL67;tWd}>>Vj7#0_pF#oBlV;9vX#PL1o$t;|P*+r_9#1ns|U0bn3rzYo3x) zN@XNS{W|ywMgy#3VX|-Y<2-0^6ZJE>3mp6a5jmMR$yAbE){8g<)^^;r^=qNOA%O&^ z1(f!!Nj-w2+#{DH|60$Q!&CO4SGl#s-G1~usnBp$xTIby`LrfmIO+VD{7jdfiG9KO zvhi67-C=x_i+QN*3ND_of$(p#-%kaLYJ$A{fjGt?0FmC!B{=COR&~3Wm zy)ZUIaLtI2SpxXFJhtREeojNgD;R54zgiSK$DS1s&0$X(OeTX1U7dOHBSBOySST>b zSm@wU*o9BM359S0)#-l`3h8G_b6v9e1I9WXen7&~c{<4z zFZOaFM*Aqcuu&wmGxs^kO^Ap8+%uv8BU%ttTGbu9(gk$ERb z=20}%&p7!Rj0+naX5P~Ay9oLHFEwRkpmmR4l3Iwmo6XXa|6;@smHwUHuj78%au?5Q z=p%M~v0vN#-C!ZDEa_eFwNU|jxflcJFkiD?e#PeQlY`pjb~+Yx^670rO^_u`G2jNm z-qHz>4Su~_=QZ{9f#_@)q5fe9mX#N?Y~jHmS&CS};ceiL`{W(Iso?YdfdARQY4Tvf zn_eSK_ZXw8Bv6suTE=A#g@zDe1W)5I!z8^wndSsJEBXO#UiUT+;;}y((r(z7U{O(T z)DqwQVCfFbzTQ|+BVSH8^-gEHOy+|J1zMq8?wi!8bDs19Cgj#ms5S@>))0h9T_HBA zkR;O<4eu-Nd>Dx*^C%RE@psuwIl%{Mdkv^@+|wVDf2?Y&P!P{6bTkdB_(I#Vn%V^m zmW*PV!iQ1A$AhLLfEmzt#VU~@7`1qA6C$d% zukrs*Jmm0eMC90K{J%mEzYMZyu1l1vSo+AzNxjAQA&QeN@UNV@=1uNYs0=dC-6_%i z!GP13HRO71e<$2p zp%p7ccLVL|yEVy{1zb0We~?M&BERzMYy@dN*|KY(6#3sJ3W!^-8t>)$om?z`fQvAW zy{v#_tXb48rdbWbEeyw_`?#dSjI(8By}Jnv_aToEo3ymNgVjv~1{W$l_(zviz#_M` z1Dtw(kjxQC@~z-#fZ7G>P3-~z7-f*XlTLIA?S93LG)AwQ>jtjTQ_*_Q59yL;l%*N_ zXt*?|b?nQZL^TDk=es|egCeA)vo8Z^XDowv`kSHur7l~y(;*hCBJW;2-W}daq?Y82+k9xsY)Y_6`OOq+1Q7P~dn#TeQu3P*LsUG~npM$)) z;wn$HWq@p<0wiqCH}X&mFp1xxyji5kq&vA8On_NA+c|01?20Qdl~<|Np!C#vV^MeA^& z-gNoW2mv^Op*^>2+@aS;#DK$?0`|~?;=G0OgD1>Z9=T64`HZujz~vzne3kpo;5zn? zb{2^Y2xyBUGp*Ig)w*>#Qwu$H@wzWZp-YF}Sp)K#nuc8pVG6$4;y_ATB32;8AOj3< zJCA*Vi&-R!A%P-|HS$<1Sx=4zrrWo+x4&Gy!3FSolD)JHw2EqPI;Y1=zkJYDV2*f7 zi6okOA3P++6T5~22tt9Lh@y&0>!XIEy0Do#wqQ-n`apdw~ZHGY0h!8GzOYXdfBucAl-Le8)S=0cl2JaXX$I zRW@;IK|^rw__H>+vi;1@=Sn|c#``{g2eKTgH(lm5mWDUKmU0_&Vx6t!Y!3Kc1+2qy zoLKX3;)~=C&-p;!aFxxc{HHmcYU!U{dOF*uxPh>kxfBI)99uu0jWrL_JWl2!Exs^u z`p6*#_}>Rwx%qBzQ!Ul-$s!HV+^iAdw$lzXIZu(l!Wq3u@X5t-aw)D$HwO_$-Gp=f zgktdHdubG?2?r!spHKBNKUym-uOh($i};;yIX07*m0U=%90>!A13+c^3i*@(V1JcD zH+Y3L#3)al%S9(zWy9l1C#0{CrDIdyVV9+uavB}TsCeS2F~oOT_z)2M!_T`DqyTM3Nrah9@DWcU#w6WGVSb(q2H;Eo@%7y``5i{;u;w zvS3(vSHUAEAFIRY$S?)c#1{~v8;%artPUy(W6BCL1#`C76(aHVx4;50eEIgMddtfh z^QzM_BLR^tzC_R{kX4gxCkMJFWR0d2l<;;R9_}1M*a$Q)M`A-eY<%iJwjMY(7Yf!-#A{ko->T!d~ zi9l3BtQkb+a%2ly1bq?rt=EEa4vyZ-$(d2jp2PaSjhPU^VA!U3d++3)x}-yin7oZ+ z>PnCI0#ur(whm1hpBvuS?Cn3lDZs3%nz=_K-r{MJ^gZXDcTZ7|rbMrKtw3f7`YzdU zJxjc<;+lEo=KdDv!xf^7-r?eA6V65)zQvIadzN~i{fD{WZMs%G*D5P+bfY;WTq=Bz z|K?*l(txv>zZ&Le?tj=DBQztOWUII*nL)O4o9Z3mb02mg5ET%Mh*Sop#Dw)7+kzJE zJ%p$31TyyF=TA|~uh>5XIkbFzV{#$*fARr~UMNDy$$Xn45u0F3FsHoP{X~ZZE09=c zf0! zYEwr%%3?Of$sONMs|-pWvM(`-mzR~B`M99q7{6!9V_6FYSB0Vs>mcE%cOc!aU^5fH zJvvj2rep^scnYx~*xPW@^f*bY{W_)&H`ZjfAxI)Vlzf|*fA`J8u%ws*4ZWB(2O^Rv zNT`4@rpJG}z=D9V5+AvD!y;M~b(ZaVh;iXy+q0(pG8NAI@KvY7z@JaF+eX3eN z4M4#Csb6Lvav<42LQw(J{qGP8iK zciE__5Bv2*&8lAW0ckV&td$)V*Eyr+6Su)* znJlr%0!cIweh~4ZYVx+x*Efu_O^T*_%njC+C6y{72gA+AD{&`N)sxtqIqdOdT{bis zba#=3zd4+`_jv1LQyr4@eaAUwP{IBR+t}J`!~C(&;iDXKRhFH2-|lSA$zYi|O2?8S z-PDm~!;w}Q!SU5(0Y!edaDwf${Z;sl;SX(;rVJO<;GO9VAe55D|D-xL6;Kp23}cI% z(ALI-96oik=ZRm!qv7;=KGnb5l+B*W`Fp%Qucm})v`1jJAak6@<%KdBW`YfE<(_XE zNE!YW#K9{1rGQ8}byb8$GyHOHh?uEnpziGRN~BY$3*k>`x7hYRdAiKoD1)A4q%F6SNasJa zzk*Z2w3x<`X_JHG62#QsFMlz-3iv0oEi8mU^>}1p996>Ma58O;7d7-I0`^;4=a@jI zurGRL8%Rk43Wz|)54q1U{C`c_g|b901I=Oeaj^FrEPhL|tD68Lw|UINZGeL`0nTPi zYx7`OV*BOg5eMF~Dtr=}K2ndOKN15Ih}8s?{8#^#(R%5XnFCL{>#JGx?~R9-wUkNh zH>Jmy{EjZGZj}~TQ*k=%Q9QL}((34pJO{pW{||NyD}~@|VC6M7cN3t{D*-LA)Hg}3 z(*aq{n_7*}Wli%kv1_#Wn{FSv2-lo>N2qph&ZznJ%Yy_u+I&A#ga>NDhg_zN+Jn0w z@25i%Yo+iR7e4oGXak}UFHb(m^(tm%TF{>oWQzbO4;%AkjT94Z@uAoJa8(F%9fQ(mUe`2r25|0}gW=>aIQ=rJcH!a%c@Qhk z*4%)J=mSE2VP{~-OeF$pMAlv^MvN^Fv0C|KBKVX9?p?A+fQ6#>6;`>TReCH;+dJ|p zrX>X`zCurvZwJ;BZvt4D!A0)%(6O1D#6b`))mh8H8&YwL3PRVg&jqi>RNu!XD$8rw zSOPY2guWmiM%<2JuH{kwefH1SGm;QOc*~2AJWL26b~c&-6r~jZvFklCT|IGsE>CXIVslSY(Gv+}+S<91Y8xcN`adUG9;wYr3y$|xZz(DjVYTE@Y zp*GOe)1(}BcuNW5CrS)K%fu?cCs8_KP?JT<3CB4fyg#*G_x!@t^5+(-gj;7?(3lXN@DYH{?;(#tILm{zdW}I!-L!# z?5C6IybAimd*NSDJhj zKceL5?F(tPM5rH{n3dzcY3TW9a%!2r`aeP8ImFLK__==rzC~qkfx)d`1oY%4R2z?TwzDKyYV)fX4$R&4jwoyt|F@Q_!@<&Gx1*@zC#2Ft_aH8AvXJFnU z3E%|YD#p%Bg5nVt>t6O!SihIXgvA2vmAef~=weFhHzZCHiry7%8r;8iaCjJ^w8C}S zx^L$So$A@7@k3AF>zomJn|5`uHsrBRrWQ(h?K^6@7@-`xvIW8xlF|s*}OL zUq~mzozvanFf*Rl0Vs&o5KG0UsK66xW9*Y7&`TK(Vf;B<1`?`@6Zl3~i`OjF6N;3P zgD>Y2l^)k3w~A;6(u!57p<8X=aK8&cc>O1p`|2=<#Dt1l1rd#Wu3WwWX2R-KP#|&; z3mvp+*^`Nf(a&41*v6Nw!QBq$?}Lh7CR+k$*i}h?2vKJWp-%Q zmf+Is{pN}6rU9=-5x%s!-0JUAHauONUj83p!oRZ*=J40($HeDjimX(mnuydyf0R3BmDy&=V z$@3@Yw{0J64VriPhILNDSy00!p{I3PWw-33J~v{o-r^Ts;vW*9-T4iGJ|L9}No@}i zOiJf_-R9{~wem)NNOt+;kG6)(1`&l+5Hva~&7d(u{w@mF<#;JO8&^FCM% zz@v0tY>xzijX3@K!Zri{%u=RSufGY16%W3(^9iO{WHW(X*L!0ylzBB^o80T4;~(0? z-}U(W@CeaF%d8Pw{Ya*)Y2dMe=9A3l)E;ZhP0}NK=+Xttgz1S4U?~j1F|K;EG{vR? z!%?6Pr+@Mm5ogf=Hy62}9dXtbUFh&^3~11GaA<~GYv7`r^mco}&xU2Y;iF+MNOVh#?#ba~_C3O(Gweo9MAo96QmGnk-*;NL_$ z@v^aA;LMJ*IB=&#zO{L@g5UoB2E+uNi2FfVbhz-%R6+dohLk0Il#pzheV}} z?+e~aT!y=%+sR7acFZVdlxU~sDN`#g)*L^{wlz%;guP8Y7O+e*LL%`3f`Tbrp;tO6 z@Y3lR6W1ntXlALR+TbQ8v6gWnNlLFZGQn$i6XR5<980p9ec0g;MQF;HI6z&oUc9mf zW($e~u4sgF=CT3n8?l7!uQpK3@Rr(cvU)Nx4d#h#2`PmX(dH!}fX6WzV>*rU z)0@YyCP@=;=5WIgY63O+De4@R#OI+<(jN2#T%o@(hyl?-Zd7$&q4mL=5f51Ly+T_M z7`WTCJ1PAx;S_dTfQ&QH4`UX%O{>V?>dicQE!z4wpiwx-HVirAB6*+Qk1Z72Xv-`! zEGPhH4*1;`NXl&0=HS@P@!smdlsxY|xRq1GPqWk6AU7h)pt0EsK?CPFWlnjJ`U?;PYLyS@k-md z&M>{X-t4E@MlkBVeH0h?Fan~2^JWv_g~paJq^L3e%5V%y_~qUt5&G_ z5Wg5z>3+0_nSOUjF7Bp%fN>UBI+^#8noZ3d?r8S1oiNmH50^>rMU;d*f{c~{vgZar z(ueYId;HcgBxXGtVWChDY;Mdml7_?OxFi6ck$66yM4gm%V2 z9y9Hul#~Xc3!q7xX?%4Ss$fVuy!*DdTz5Y}4(#y+M4eap zG=ST1YRZ^CE$Qe{i$LzN8KI!?s_VxrkF1XQh`^wtJPq|`f_jlWchif4Ue^(PC-j2$WrWVDG^ zEh%zI^`uItTsaM8xPbZefweZo)~Hg|Vm_CpwQNvY^f zM7^S^JN?Y9?r`14>}-;FHZJW${7IbU?%kNVv-y>hkxL{-y7jSRovHLJ^iCSMw6Y8Ks>tZrV-3f%vNGb*`5$Q17beaIV;QYnIfBPyY7FEgaR zW`b;l-*9Sx|J8^BSLS$N)!K-${) zc*XxErTdc!0q1S|;rdKWg)s-a4&a z=K0Y#th?+{HELnoupBW9yGCV&IOMffuGwO)Vc8}mOUQ=kN(eqdXl?I|7ru5-V1GgX zN=m#6)qSvM((zir23I9wqs^>>s&FaM);>MHICFHvM(fmml`z z%;kX(FU9-f-{nc+Vt$pHP57;G9B}x!5$Jr@Bv~ankNj@2ng=20aqa!#Zk;CHX`?)W z4lWM=qlS4-M!!pQLCxmj_fH#pwiHZCSzINjAqZKXy2^7Jl@qLb^-p5puNFbYL+&hr zgHetxfoQgpEH1Z zz}B4+J1@AH65x1PDCYhBS%qT$XGK@1hISS46dyX1ffW@yq2~l`_arSjrDx-#(qfYt zD&~i?+mIz~`R*me7J=`#M<;7?xVxpaFB|Ei%e2CxBgXgY0KNA??`F~o;maY0nw_^3 zaN%TKnyfwv#mD{WqqNn7u(wfQ3$#2~&o=IXLgkx_RRj)ip4M7Pk1BCwpsZQAExff8 zF|@$RM^Prr0L;2%wa?J1*IQLw(2BnUUYLoZkO^mHx{Q2e?TK{TbR7yD!<_ z?iCyyOGTQZw_p9|N7S!7uOSrOa#%wv13UX~hI*E7udKhC!Lkw25xxEA;`*%QVq-}3 zSxxq}N%Xul9dF5x3McHiZ4GYHDC_Lc~DF%m({e%+S=>#GZ&9cqwRYVf{_f zMo%9&R>;uNRNqkao1P2oX8}`tJ2}H|g4UKc)>ejA_C&zGBBmDhhTnkw1eJsg^{own zQvV#T^i9vo&dBU1+t>Nmbr2*85pfX^P*4yMP~Z>b zbqPce1PSgv!h2XG1b74#WF%B9DjX~f3@mz5a(pTdMs6;4MmAPHF)bNBAyr{kHaSaq zRh_TKCdNF{wk|dX&RT}X`mY@zaL^!Mpd zawJd?FmMnsFmPZ8pa#GODi48-0rn1@36h=x1&x^h>+2#2^jj5qLB8MdAo6BxMtD{VAPuWO+WXJ%?wo~$L=Vp7MSg}08&f>^vyJzW7R~9bU2jK9KLvsQSPC1Yz9nA!5i|tMl{u&McjGnB#xDq`wX% z<$gS5q<$`X#ysm*I)Bj{|M$uR#Xeh;PnJDV-Ea5A$&b85@c#G8gC6sI2pjY=YZrd} zJ;UXdWdH9K2O{EjJ8h)+sQmDGEue7gsXO!ED-Voutu31&W3ha~^NCrOa2NmID-HxX z{rMU@?q$X^^md~N7%=Ge|IGr!ZqEva^KXi-yr|Bf{H!#9Q-a9%@0E!_^87f;yCr1( zvXJw#=5+4z;*8D1OBwc(>lA!Oh~_R&NO?-gYa8Z-)&D(m;81|>GSvHhkl(eo_8Nd8lEo_6TfT{E|2WFNp;@aU%uQ7S$}?Y$NMzU zPV(CF6uOl`=!~`YddF+k{&bd@;pL)WW_GKhUr?;{SvL2>YtHs|zmpT5{7c{1#eMA4 z&;|Cbm~`N@lEy2p*Ws~AeQQf8ozuOzFV`;iOfRU^H8bb}|p zbHydpANp#uX;fM33db|&R_4DfS?2c>a|U#e^}`_|dy~8DMC*a|NN8ZfesjA=p>%ue zT~xQWjff5=j)0|;yc9}Qh%=bA;nQAdVtFnex|LJVT0D;2mVoeu6FpWW4iv1M>jFaK z@d|g}F;|7Nbs>7^leT*vFW%{W!O2ZA*GE4x?%Dk370SY2k7SS-jh~X5oeF~Hi)&m3 zoK=n~ewv~RnJcsgYH;(WMm}zstsWwQ!>aF(XvEg`dHVS9}H|B2FvuX_bb@G7k6dyuCQz1B+>|Mgu0(DJrk+)RS z)zfrWiJ_Uf`N%X)?b5XDO0&jT`B&vbdMBstr4?~}Crntp4Zi|WHs>BhuZz1ae5T`G zKR+8Q0s0kA&pXAAnf92aRZSVz1Bs|tCClq~A6X;%xmN^6ZIaH}JEXVmgr-M9mbr~5 zh|2c7%cv$GtXED`E_wQ}W zw-5K%{_x#aM&MNf3)3psQzWI)7Im}OEWc+gFZ_t{Z!l3wIA>8V2`#)Y_@73h*6!Ci37^1!cV_gfdEg!o*bDa2w4dm<5wbkR5u+fE z*z4w#UV0!Uo~jSp=JThD2ICH9m#M?^x3agl{r09^IYMrYnDZDm3?noY+qZ|<*BDvE zqmRt4r&u-|O}CHI@IUB*r+2<0!7CN|h$Wa`IwQSD+TLb?f1HUR+M8zgX=#citvk16 zhD2>>XBrP%ly$CuxO#=`WT8D&W7qkLCcsy@@QYb|6X!J}pJ3-`b3Kl3we{FR8<%c8 z_Ps~l1>$K`a3B*JsZDfr9Jz;+j30FkktgX1Ug_P27k+)li#6+5Xa0Ip=HTJ7B`t35_ojwSJ)?%JSD&>9Znzq$xoyG0{5EGx9 zabzNT>M>Q9rKQRHU>Y~^pc5-hhrQ?bV&p z_@wZ}wU|_hc+=9nIJ9%mhVfqT)pMA6_Ex$ZHI>t+t%dEydMmr1Wa5sB%L^L)SN)@W zl^yPdl&(E(6N}Wj%{GvP}9!(qHXz-=g zzC&U-=&8|DFH=*X*NxMgz9UFTqJ{5Xhg_GB;R=)Q*l=s^hHuFy^z;}gU8B^Fk3`{? zIH+CyT`Q(FpdxeQ3t5s`!$fmzs2fd|yHHiYDv?o7uuYM6GdfpV&bLLp5uF3}QL>&( z98ryWl#FBheNC`pTrQIT1DpLJ?JdSFrGo0^5!@QJ;K!@yKFF^YDv=e+v{{l6aw0Rc zV*J7&r+sOi>B3Pq{VNfmgh0*!7%@2)s%5bVF!2Q|)COG>Vbw*Y@XX0ocl{Gk!H%QB za5IIXZ})c(U46PvRTFB#7TU#Db%N&POT`WWv~CV59vu)pZC`y2$~8!gZy9%zmK?98 zDG8?L5QT4S?9@nmUpL$G2=rcOASu@8F=vXeT5?E8>l!5$GPK0{tKnW2{GYac-ERCM z$3k2ei;SP07mM~B8jML?ZiJqmN(y8N(Fg1*^FQ}1JKTdmGUTjmO>I@&&<2q8?>RxZ z(og6a=POt`e+6x=Kc)doxBIP{eE-D4lLy{Ro}{<#B>`D_nXjeV&nW=aS>3VzQ=YpF zhZH=3b#7X312+G*XsI57!y+C8LXgTFEfi{WW|Tau8;1kL*IuKasfR6%v2hoQ%{SU^ zu|-WGkl6|pVrK{8E5$hPFR2DbrA{dx;|j5pwR6juV=7UK$Sxx2Rv_cV*2x4LU*@e? zS`foRvXAZ!CY68)#Q;c3mSGSQ7L{`%iyZNhgsXf3JOjZ)XrsgPX7Ft7%R`sbS79)S zK}gs$*KJ-ALHbkTe(P4MS>8QDX_5M+cqS?;9lgZW`F)|k$wTN}vV z)tG(FYDjiKCzY|3E&DPHXta3R+AQjH>#bDug{?4V&2PH}MzGvCS1hYFju3J04)1s2 zC~`*3rGBIY(so*pns6*G&&IKHKc$EW9`titzQ1P0hS`!Ogcm9FxC-8j=Y`ji72K{K z%m~>ooX_YVMeN_p2hLRIos_&zR%g3(^MeOz$?nmX%DI1O#0kvp1Z5ratjcu0G3G_} z&sFEmdvA)Nr*#t!mW+~f6MKg*(BJe8(1B=S>HWZf1c>&ECJ}S?HTRRVNPJq~SP^Ed1WI4l4D%kI)s9x^m0MNAC3(*)OGOFQc@PV+$W2&n{*>YVN3iO{2 z_%nuRx=1iF!XzFE)m^!JO!-IL$&=V^ErB{)FbX>qoU=^3Q! zmG6}aJK9|7Qy@(sS{I&_s{KU|spKFg`A9%nz)sQd>0qQ5q>1;=ub?*-aYL?0!V7Da zBvn5UP;1Ws=0-jtvA^V%Wl4?V%0`m;#q^*}*o@nuG}{9#)Ga5Q=6gLD$hkymu_!i& z9NhP0zv%=SO(_~Gjrp74NN1g94t;XVY`By9@_;dNKrPrnqu8j9-<))*$ictV)#1m< zT2Hs<*RN!O8W%=mj3X6+Ki=hk_L}17H#u*s-m2cmOn=vSwW0f56JadB%u91v&Y*C2 z-rf0dfV3I@`z3lN7%_4=J>ok3@adjzC)~8MBAOQIl8f0uFhbqccp+nP%AkMG-{&@92Bec-cI3{ z>8mZHK+jHSlgqOF=1@6A-0Q^s(yz4g{&F4D`q5h9mFy>-)1kNHAZ%SWQ~{&rexS~` z{&(Oa4(W%S^MwpWvEdh1ADT1!9TiUqb#$%_S+tA0oZM-4p$gAFZn@JrCTx|+jG@56 z{`^&~Cx4de$FLYVx3}(WbwoWbt{_O(!DkdK1Z6R~ipC&^WbkDX7%~{8P1|_$M9Z%A zCof0sjbT^R8~Hk?3mXs7MxGm^eLu+C7(-0OGo3n0)a~|xp(v^DNkwJpH-#9J5XvGh z>hC}o(R|P0;ai_5Th5tHddQ!{WPxmsmhKzWU(#TXMbXF0Z$HUjvcvO=v+HFCi1i_Zfl8C8ys%?9g*APaO;+cvWFTO z>DgMDvu_9z1}|B5PiV|fPe7D&c$Eu8y{WIkNHMZ)+X|?DItnUxltN^{cR_%+tHGzs z%w%4Zhu7_}s7UU|{;FGd6|-l$27W)W&{qB7aF6Zo+H4KZ2M-_faglL-J9v6ZN zc(pQF%a+3xC7oaI{m)G6z8zbFe0!o>M$YJvfoFSJNi6`AdZRGY++GT3f6KmaB&3}* z?LRa*4UAGCir)6r7%)cBCdeLQm=m>AO$PZTJSmHWRxmaly{1qUV@SDtO$$p5iIWYAyZ0waNtT$j|oEUKnngC zQ#XPcPHNec^mi|N4#a5$XV@}!I{`7$I{MhRJ=E$+GxheMfH4mZJ5TEI(fs4Rf zp^OYlx5dbOVGlKxvC{2ip7iqYHoa*byzL-C9vQ4FnXP{S_ZSq@rb1aozFe!Y$KKw?57@;o9GoT8Jz$eCr4 zIr_CD-dRd`2x_38!J^9VgHy=LJL;dvFwlO`WF|k{C6q!_Q8|q*x2RSOY2=e1&aACV zD!}~l83X?*jzv%%H?*hY<2JGGOtx2)SkXk?feBG5bjYt1qp;eq-!wX%m7(p0EX}cq z;7(_KQfKLO-zH70w@DLw&JSuhfiNM-XHnO1UoeY4kG|GW8_cA&ZPDTRLBI)?PK39Z zPuGLpPC1;&1TLdEnw05ABw`fg=yQCjl_;w$ZnU@e;kV8hQX*|-A|LST>(xSRZ;z{L z`~0K`Pgi*kGoP;W^J{-8y;X4vMoFzYVc<3xWr?XAEsIiD%pU;FbN(fthc%MR;u3o# zJrWfv121FzQkPALt(8`A{;0c2=ty_Yl}F>TFWzEEMM}|&tex-tXaaVRyy_w6`iZ4M zzYV8sT*w-|j=&uFc!nx1UP~;bA+PUCK6=kymDr&q zQ=~=^=B_^~!s~%;hnM~MLun7BW>tU`c(fA%?HR%SRGlc@fnked6%Bc-x(M4Xr=#A>y|hRu<{Os0nuS#>81T1Bod}JAGf( zU$)D*r+(qFc>e6IjLxt_*eg+ugVoQYbB^NSqa7G@r+MxWubTQ1v16Qc@N<|47uvMiUwFPyEoxvSD_@=*$~+iu!?vz31#!j zaW=wO37NUp78>ZLc7Hp?5`ds2@1y{QBNJs2;X%fZnc?+Efy! zieZ>yboeXdJKLuz$2P&olM1YJldyAwC8iXb9C)|1Lvf81_Sr0xduG${)m-6SG%Ik; zh5Y`L8fT_2@X~?9-z(Lc`Z6s)&-;!x`wkGzVnq&B9Nk8Dsh{ZSj0y}kZXY8-Y&{Q|ptgUUFareew+P>vQL*_4Idk~=KeSpdTS$uVe*UzI%aIs} zkUYLh%3#2fhH>E}N#=zNBU668CDN>0Vug&M(RUimPuc+8?Lh{2^XRT8q8 z{v0CpVOrh69A5K);}&L#P;mz2&XI1Rm3y!s8%cp*vYmSUgH#Hav*UBlRU*xWS$}h@Q`WxnV7$q-+t!!l|b+ z{{DZKM9!LaAK>PKoMEi3t2H@HT(mOc z({9n2n9F@0Wjt|0*_*3b`&IcoH}>$%r0ymAs?KG2tvq8_B-bKpJ9@bE#9VBBbT4b| zrlHef;v#Xh!~|ZnRF(c!n~iOyJm;xEnh=(z^z)Z`n?{R96-c+J*?RoBnzjyC4V`BL zQ;+MR^jTHnQ9ScrTa7hkddlotif@w|M^J|K+W5O48z^u_6U$ywIsr^x} ze_VWwwXO~fSgfyU>(!Zh02}(2Rt)7ReWcl9lp~!wi#eY@i}{PW)cXAGXJkx0K(&FL z;%C39==d9{=(tyxv^`%Y%s8z|-RK*}WXbOsMOFtJ)Kt?LtWF>7KvCdcBv1=n(4erm ztSiB}94f6{9F|L5Jf|VFO?5hP+_~j`=k>Z`<*U(KgV`XAM*4ai{=MBpneX0;e~mWi zMp4vKz2ti_aaO+8Grld$mB)Mj+>Bv?Mr^;k>IGK~PKMSG2s- zM}+B_6JJb|BwwqNB?H-h`?N~ZSqOrl*M4qpeV@x# zmsrTf7+rHLJToeY1mffo=n!8tZwmc0NvzXSFe-?;RjhLgNvIMH4Od%LjHl7^JxZmJ zw-bWN`=3d1C$m^W#HM~reMBLr`cVkAc^b!SeOLzWyY#=BT-3)u+9l(t@_hWpY@2-Y zzu0^0sJfbMUl7*-0RlmSg#_0PY}mL3cXxO91b6q~4k18*;O-WJyE_DT4KBUN_nmvr z?fc#vJ;v?#{^&l8y>?a2vRSic)!K_SXZ`m2L3T$M7Xk0nH<=_u2CCE+2N07C63ZCi z8QLCGA$=bOuVs(`F&rnq++xJo?X=SUZd>wH8x#KUQro=;WhZx=?+leGcrxe$ll=fw ztm9T!nw;$GZ&~k_EY*iuXyIszBis6L@&?K@?wO|3aq(Z2euoEE?%R%tC{3tW$zSO! zZ2hf$Scf5Ylk#l8uieI~SJ{%We)l9Fi#ogo`CRvrOTUeZYd%~0$P_d`LAKr_Q$>qH zDY--k;+7C9qVbW(zK4|Y^%f0!{BWPBOZ1%<@+fd-rHBq#7a)icQhr%>UjIceWa>(= zizn}!`fd7=FA+yJ>TD?2Zj1CAm|&~C?yFzbh?t@9S|>!W*mvkd>Z4Y?v1ZpGuVUmr zml`4^vN@8TiF^gT?uS-m-;b_Y6CGQK=FRC$2#B6aZM0MM_@ZxRl5wl$v(L;NIov;VbdxC<0W*$yaF$Yslsnvt{_1DqJ zzKV7OWtK;ziz-f$M4!e|xL{(h$1BSk<^42bl8>6Gr{`|(o0RGq1tj_#KUO&tQd1c) zXj@afy(i7&R^ma$E@XIHn+&c%yhr~Y|4UuydUL6$!rI_laVry-zGxVY7li@lUkvKRM#&UAHD;4xK|%Fhcji|uP${---am#! z;pjSfBQub11cW`byX>05#IIGyFX9J8g$&q_R@^?`iS8^cU78Zc6U$Dme#DAq+N;2Y zY_t;84d<`>d=xi6rofsrYo2@O_lk}ABSgrBqgJ<_O%z#iI46!==_n|@K&BnXfT~W~ zT}(`ILVSWW@N3~rAH|O`jOOL?Idm}r#r4lAWclx<4Xf0@`p=%AnpriGhS6|W%{6rO zJ&>b|rtm_;nC~fV@W9}HPqWGls%DeVJ>E)KO{EeF9dcgkbsp7jdU_GS**rkL_PF8a zN?Y}lZW1Yf7@=A~E-u2vFto<4Z1EjO+q-N6BhbP4-u?W~!aWAnya$1D=e>5cAZ3Qq z?+hk~g=!|BK+sVL6IvWLQeD6BghYBz%?Rj3OU>usY$U$6<4#BKigj$9#x+iQZG$<- z?GnDUwSc>DCw$cS+0g$*TN~AM&HA>x%~@INlT`R6*}5^Ugch04iw}kqMz|F>9OVHU z@&?*@-{Rq@)rA_eKirFY)`ak*50wPWc!mwjqF|jFzw3)7lfDq$RddSO?&+NRjv)Wi zl(k{{p*eZ?-W@^1pllx`Ft4vx0yYriM zE$aKV2TF_9R)2=hwWwdFV(l}xC$Ge(ohEKCUTKTW2fSn_TW`7edTyW)~s`VCmv5}bChM@m>1>X)G>W_6xOJwH?&gatk(><6v9 zq2zCVHC3pqlV0w_8p=?Epfm%`yQWrQ3 zzrQt9&TkY7$)Tq$;y`;r2n*(flA@D;xla|NU*VT3OcSJ2eyEbaQDibc2%X%Ar{+YH zuaXb;=~r|sFh^7Cu;r}#ek)yLNd5&CMY3HGPj0Z(jxu7C=>>T}KANv>9jmpKwzNf9 zpCh$+!qVB4n4JC!;SELin~MefQZCuf8`hfRNXODa4%I zD6rp&J7>Jhw}Yddt()C__k%VADW5Fix8K(ip6f~kp#%L?wvquFtl>EdCwLK9KFw%` z>FP*n!FS*>t0b$$bDESg96^_5ORl&+tJki>R(v;jzvG+j`vcNl`lA-pzDfx*{l+BT zp?4`ca>BY#knuYiQCF9?ikgk4NdcWiK9k!feZPbsr8fZS6pGx8Nc>a{7vMw z(F4O>!Ec&Xk3OenFHcXQ-TnIadDwMdoi=ehWMFaLUDu;4DYSx6mn}J1P<6WMLE+i2 zO)w8S>3XFcjBy1<20w$C!%O)p1BZ)^`c#loJjxCS>8i9hgsUDlY$g>Q2C1>nR;ano zoIZo>J4Z!6WmnCzHJ(d^spX@xi=17{}!7<_+qp%}E@29iHpNCZ!@A50rH6g+^QP4#8cdY+lVl4R(am;|cZXcvT zsW&wEpm$FEr!cC}>own>1~c0-^zU;=>~nED%8MJ66G@mQ#Z^tHcl+u5@&s1sVkTdc zvv=gtR+)|055#;J9f-;Mnlt2NfZM{q6;sMWS`;Wvr=4P4n-=NvJ7$Ori1tS;z2`H) zRRl&=V$leUO5reAt*2>Zyhh1zAnNnml9}G$IOi$mTl>j*HP}_vF2;$|!-M1V{`!(# zr#_MDKItj&vkB^{#4xi!Bt_jvTUFI36M-HDzv6;Nv~tYZdG3tP2%l%BcG0lLvSG~P z$${f&*J0>=+-4^Q#KHM96EI=IpR&tlYZ}faidA*Ye|OSaACWMXwZl27$u^HW3B9!j zzV|z`KIJ9shX9w-w*=AV@%{u=jos!i1>`BJ7oEQnZs<-W$~K!TK?_37patn>L7sOy zDV3x;DIi1B!st)klXApn#iR_8}wqd5^;pmrXP3{`T6FhTGbhI^L zt6t6vW$&5Q>4PI&-kTtrJ^3|Ca1kj|Rg-}NMKvkknamsE?`4-H7gjGiSJ_Uo9zXXs zOxW07O4v9=vK^V4Z@YaAkV*;J_(%R^v9&W0HbMb$KQwFNI}zzN{w+H#u*J8}LqDPh zM24&`O{#nRBU7ovhR~wUMbJWB&S^i+jb`+Nj_+Ft8+*@WiYa<3#tnH=S0h-t^;a+b zt3z2m@wxb3APRHH&G7*Q)H4Lp8;n6=d@@&{a)%J*HEM$dup`Ff6{4*U?N!#)o+ zKA@Sa!RbUVFEUiE2&#}&N1VM;QJs^PraBm+;J&~ z8h%G9VJH19uiuK>>YbSPesLY7g967J0)aX3aDbalFtc-el43Q8*UotqW_9zW>%7{G zA987?FR)VCVx$x`sbX)+AX=pJ2r)PhAgdfQ?ewQ#D-0S!g=LN`TK@=&oP4?yeb1U= zepB5xapvreIO_^r{<~7GN5@cHWt}ihrJXQ5K=>!lkO0NQm_P+KWxc8Hs45+gFi8|t zBq)l`XT53cs&eC3OuaV?HWd&2lkRfR!Ty{Vd&2KnvG1HVU46hfk(wVGFt3y0%~TRQ zcj4-fI0{^|&P2F7t}3tx+{Mr?8Bg0ytjkv3}(Lka3?g`av>g`T~CKMcD=3 z5}i8F)W=Vkp$-;q<#~&H&g+P?few4QktEr#`wJU8u-K~#qrqN2I#dPY!?MK%8ClK= zQXYwd!~DNv7l1v)eQJLi<0?U`R;SJ@@gf9PY*-jqk$lZ}%V1_-2J*Y{2KJyCxEc!= zE$Z!}9>+&R9rtoufX0Ul*ZLvXzjJ7}C+#-V34%mq-T5A1Qhqoe7tA=UrMoTN0YmEY ztiA$*v`umQYh0-c`MCw z{|R3i;$)Imf?Hb&RH#WiyzKCL+2_Zz zR!LGVp5#fJwHtJyES;8}#=iUR?Iap!#o$oscA2LbS?x(@8=}5?sVpjsFrzM;fTM-u z+VzR7+;30XF^kBG@98b;kx=(|Qcmz~Sk+z$8~Dt>h7O-F1Sr5{|J68+ndzU_Y5$L0 zl9(av?Em4C!~y!>=#m6sX8NZ+-2Y~mBn8BVzg?2>|8hzC%iriP<79XQ7&vIaA&C-j zNP>oY_DBL;lKyr`g2lp>hr!f`Lx5)ivA!Z>#(wutm!u!}jKKq&j#1qDhSAfsBY0`X zS9m44|Ni`20{@?rz!$Fy-LmV1bHLYVbth4_@Y?^1T{Md#HFpJi5s*9Pf-$H7VE9^*1c@*t}dKk&HJYlhF@ zp_l)^(_YCn$)RA<9A5wn>WbDwsaN-1jL(0gJ!s7nzWG4LN^c~S*R2hAS`Xn@WdDuk zpkV4&y=zc(jUHbPGI}~*Hr%~F68!J92XEW{1ZDB6weOxRS?6}~qw>t`uEP`5Ol!)W z>4&N>b7NLJwN9Fx^clFr;r}N5|4km_b*rBSJ-*4`QJw_p3!Un+-%BL%JVEiDDYYtj zw>C*W%YXr-Ira& z^IraUwnFGR#_0c%a~d=AKcD~qSKevtAQt9-K8*w3Y1#{=@9XS6`EyXoM^3-;JTBQ4U zyIr^PaN7EK&zIMHaXo;i8Fr^AV3V%V)?2u8e{$J$oQFSy;q6xZ{&89h-0ETXGiYFb zKUmhbt<4sDgRw6wfp6u}s!RLsVTezg?|x>1#OqqBaLtuxu8CW+#zDFFjPgC=f>+wz z<=Jjq((y{aZu~Kas6}I5{>7y1lQvJ!diwF6DIW&?Igwsi3vpZ~659RA z@yzi;iuboHt?-9Yix{i}_L>^r`$I4EU1LH`(FgXDxNFB6#jPd^LDs~g(_8`wg8mPh zHy7Sc2dJFrbRKF=W(P?qPqr=)0I`;gK^weltBW;63sHmBHt_z1^>jA9;qiSlYxAkC zS-eMQ4q|#f)w<07LS}K0PqsBZ@&?BdWkc7YH_xH^)9UpH|_rnKUh#LAOZoBP#BBoSnJ3 zl34ziakX%kyi?xpAnoza%fp_!bcLr=Og^1q{8%Y}s2_FGzlX%V^tkE2x(Ov^nt_A>dkLf`z$ip_!R|-@%eQ%&dtgjh3=*ToNAq@mW4ZfeALcODWl?4gW|Q;J z&^5`~HJ8Sjbce6xHqK@ZWX8LbBAUCY;auJ_9NU+AtDDCcX1~~7B-i6FarNtnhapA2 z={ON>AE6bs&(A}`FA8;9*GTb^l`7I7>mR*6wWR#w-ar{p(*)*Xqw#-&N2*OW;?4DD9mI$o-7p}u}(EO~Vo!{EAjn(6TV>1aYK_M0Zc zg@{eGj)}T89it~rTr>#zwpChq{_D>7eFHUV{NcNyA!8Dh0v=gLGVz2P&q=j7gXEPt?seNyW&? zJ7Q@zP`;UTr1h^winSc+{*^A7g&q0D8NwW3#YZpZoMh4aEOrEN_}ui|2En5W+tl~X z3~U6c)k}?T7}p;8{+g!lM!_`(M?wRZ`wUEsSC?GMgSqmX77zmc0RGJ)hb?QHB+byi zfu&!e-$nwpn9YN`rz#dztiJ86J9egwd&#+WGcmOfDcg|Lza^E68SfJ98YmDgT~i3? zOOM`C-#;&-Dz0AGHSOIL$!a!s*yXxr*Ta?wWmRRX#wmGEQ*ho_3s+0sPrkKS(5vC7dKcZd{xes7Gydxv>SzjwAouxj6 zS<*B!_DX!wzD7~%4MZgp*FiIU*XbST8`9qi&CX(h&2D1R_gNcK!ebX}=o;tB1+;U$ z-*jWqObiL&xwvFC(Wdi*P*Y6nJZBK7)L zX}>q%spcNbzoYUO=c=UMOih%bq7E=^DfM8F{3b|V3^wu_iTylSrE=D<5|^Y$=!)!s zM{QitC&~0d2N<%X91u{SVIA=6_|cs8NA=R)MK=GGKTDKHxxtwdCFal&$>en7=au$+ ze@vo4mWVe_&PxWtK4tZ+_n-Ed+Lh3mGdshwqAZJ;jd2H`_1969d076VIV`EzBt674 zETvf0)->MZ$mV`%P>5#S>#0r=7t1q(LzAi&*$p0H^z8HXIB>zSMEo}wid(%Gtwn`eMh!k-7&;Ht}O&BO$eotvyqTzCB*nI%=!s< zQekSbv6!UA0JZN8fRhSiwo+~%jY^2|`O+dKHa%<5bgfnY?M<=^Us(omXN{C@>R}2m z`vOl(oIA(Er+$OmyZAXHgv6t-F{SVyM-$3Ywaj{#H%srC(4gaVg7a$cSVJn=5#S&! z7|_@&sFJeB6Qn3RyoRu~BeOo{#4wHLF)jO~C|Rf&Q?L{0HasCkHEMNda@HgLLVz_x z$(8v_He-QHJ|mG#g|AKLqmx3MJG39ITQM-zSw!T6^37K!dh_YO@8o9jR_-aXQ)HIC zC)fsmv6sP)bmSUC`Xb6}z?*6Yrzi|4ry1OmC~x~^ECv(L8FXW`2g&5b`w%=3K`kpkHa@i;jaDFj>lKjsZGToj8@ZoL7!)6Oyc4TySf zz#g=7_|g2tlwyw3L;Q)U#2m#Uon>N}?%?yH)9h!C#%ymy80L^m)m$p}`U~}Pay+&( zePGt+JU3Ws5}FuRLhTkq5=cZ?4R0^?-zT>Aqkd%#+2Jt0yMc=z9eNqy`Z?tRJ!jqy zq{!_TO7@PWn@X$+nUV#b*x+}DQN95jEpOtWQjQ*dWAdO9SS4@i@~F7Z1FdKqnkN>^RI{!qn`(0IHEJ@vwRhgD3>luv>3(Z8L+x9$M)Q$Q z!cjV{bkBQ_0I~PYd`VknN6_T=Ma3hvUN0r(&s{5n_w&iUo(sjaOOoc~ zS@Enlz@8ONdgwB!AgdmSG2MT#L9RxKQvMU3{`^(#3%b4zk05KYa`3snC3f{->?~={ zOp{k>GwjD?k!40>+vJ4um5Z%%@82d>l*8ziBQEmgwjX1eQKi;E+Dh-43Z0a@i((@k z6ei=zXJsHTHK$MG-?OPjnLa@Lh^R#6fPlImQ%W()C(J>i$@goyybOe2`S<^k!D<0(pI z(i9Pg*F8F*0H~!F`%7oAUk%@tLONdD~-O-_43h_?anu*1(~LUJyr4rg)!i zOd(VY`+e|JZ@2ifGagNt{` z`ILi6E^clLc?Fc#7fR?-ZhJEzo*{|kOgBg1s!GW;K}^YPq)N_g?8Oc4qja;-P`hWu z=D|_+%jA{iJ92q5Zr+6v5Lm%!PA7V<>9B9kQp!|DjqfVs6?uXVZ<{`cdySOs$KF1@ ziuRJI*C}pS;m|yABp%+~ zPiL)b+;~NTMu+=%LKAp}(qsMSM2v3h<8Ra?Zce;8E;?7IU0-{D_1o>M(jQb*;feMBlO_PU`dK}sPVK^GzWQN=0g8bceO*y0vc zSsJog>=|~X(zzH+9Ry5&X^p0EeAF7=Kpz0Qg~UBmgEys0=}jH(94PAkN*&dw_Yozs zG;}#o07Y4i1u|bcQ4A9$u}JfL^>1~U+2Uf}*BWusih6Q>Rar*u5X|;Lri9wTxFq~b zOjqjLk7|k=QI=tg`qHsn->DsX*glk&B4{XFN6oxy@cctd&5N-o0aE{^umL3Qu9)q^ z-zAHSl~hm)!_`$#s0Vaj1;)dJ2m>brS!n~`yvAv0as)(MpOT;s4~N7hrv%wR{%tR!$Uv{E2u5%5x3UdyA)1W>A-9dO zccu;xIhY?u)63knk$)galY*&WD%ONar!8SBbg)ByQ$7bsneSGRf81jGs+9pjzI+>| z7=)ieyezR_>&jPV36waXt#=?A7Z$YGC)8@Y z0j+L+)~+e&a`sXxHdv3-9!&`d!nonMVuG{7xP8#h#B9i;z2XOJUU$0i6dPjfpc%^U z66s~7Y8xN#3+gi-b{cwT8kqEy?diGgNQ5i16T0$$N`^2RFFFUcOuA&v!j?JC&A}Qh z&Iy&nx+4|M!j3P^3AI{Y#*~He7-*9PjwJB(`w|8} z?G6LqtIvD3gP817c+=}BkqxDM9xF;I=R>qb9xapo%4$$Flin8;J$`aEhWx5DI%pE0 z4ib-&K0w~f_Pn`+?_}mC%*Dg}C?pj^Z{h!F*^najyUBoW5!wC5aKm6Rs*x9ZpUd*6KY0X{wpu zm^rQ<*BI1fNHCSLr#*OlLP#0rWSO5E|Ei;!aa=D_G`UVU7w?W ziM>^u*i6&{?l0(04uO{X3*&tWb2hcpiVlD!=%FrO#n8BMG(amXTdcX^g~OJ5=SRJ< z7OHe>fj5&F&+Qm%4O#A?CD}R^l!(l}KGf8e6tt0ChAW6;ZwF&_vIL|CXpO$x@S`C6 zD6tHs{BFbP3}MzcAYEqp)%R!@zlG22=Ts?e6MclG(OUhx8$$=skV3Baw)slEhrt&i zq<|^cdmGthsgj$biG-;138#(peDaU|%W$U3rGW3zKD`{gPv6Uz~bnzk-S6?pi!vPm?)0KZ@-Fz6#q7)9LO%*;a!?ENV!yY*!-=$+~59z`+e z15XXEMuJsNymp9Pmx3s&jr-INQ)ye9m-kZ6iyl$vbg13$gpeq{(o?_rEQ12O5ZBp` z-t{^DqWsVxyIZ0=e}yxSMYSQB%;sN zv>O-KKcZcl4p!Q^`sa<`_3tu1 zck)lw|J4yI_3qblJ?UIcg?eJrxKVNa(!e1p%0SbmIXhYLHNe0czO3i{Zu~1^3o%6N z&C-F71c@7`UI&+}au_8Sqv0bLyeVbryW9)pqHAN(Z=e@UI7fD4b5C|eqkO0(Tx9@~ za{SqIYPX(2j%~tqCzd>RLWDZnYr`y2u=X*X7?Mg)e(ZWdF1o0C)+@^Az?vt@`%K=u zwL|=)baKQGGWvR4Iot)5QJuM295DI67)EwO$+KyW&UPrHe29=X$7J6is~~UAWpWe& zH_Z!dQ7u%$6t7>vEr00p;>XzYP1EaF2=FhEyk%nHJ7fIZq+=(z#>WSrs)?NH6 z;|YHgjQlct-2zpaLaF17@iebths=P{-+%qL1GP{%H>(!9HdxljTqRV*G~DO#JB(Bn z%BW{Dj1@^f)WmlfCsUk`BEg|V`Xa>q4|o~$zchOLMcjJ{BE61@u43pGcdW+Z@oyp^ z#^L$I;{v)3mggB}-M5F3pRowPl5B1rFTi$Tg~4jAC(fYc`VY1<4y+oL(BIt>jzPRp!=d+70VelKMBNA?T~t9# zocv=5do_G9r^TBkv#Dz$pvX8ZX!p;!ccdUn!PMY@1 zaug;a73fBw{X=~mJ%9x}jAEqeYS%LT1UH|-H5GlFA|vJs%|K<5s@J(K82SlhVclpp zI4Wdo3{l3H<^6IhSHrrEt7uz7vcGF06?!D@#HjZ+c~WUd;%^i%TId)NA3JBdXHk#u zzJlG%&LM}$6A;_Mh1L{W2b5at@p)a&HwOnZvyb}C1|qg18g*|ajnk4Zmwp(B3qZqM z8sriopl*0XHDeHzFDz8XE-W(B@7)JEeDjLV4KkIh~l{K^#bV;KETfRtzJa zg4Vpsg{?jmMKoK9MxSjZ(eB)0srUgeW(9+QxEtqGF)~<7lCg7EPC_*5$;YYZY{wdr z&6z$Q%^<1@X3ss`@p&s9i8&%V|CM1y0kgI`k7w^JQti_mqqUWMk}W=2-e=b@M0=pj z`AUit1n2e_GzEwA2o$P>&0=(1Fnl1qg<)F~*QPr73^wO@%>csS*TieJ187@b{pit) z19%mo+Kpm(n8!(MyPSOv2iRAjkFPRcvb9Dei|0hcQybERGfy2q?wsgviiGnNGM@K_ zu+KdBdy|XuL_I!$eeWtGrM!((bk$AD2lZzLbk(<>J{$8MuS_RB&=r@{FDI&|FSwo> zQeKjE@oP4_f2d8#tR79-us(Q}OZFqiTC77=0c;%RMgF zB%2TXC^xnEE=4>Nd`Wa6N(hA!mCgl^oid)->F;8`zt%BaEzW$(VQtEdmsQJi#2!>j z??7W4xyKhEmB{lMan3F$BfkDtTz7F)#%VD}CS>wlJe}@~Oa)!POt)jS(Oau&8AF$8 zy*6kioICf1q-w&Sow<(*119zO`h*8Q`^|Xq9^8CgO0qNFeY|D3%a6PCzt+ilxz%hv z>c?lD^vS|o6rgjOCLg6YuN|kPWl^Y%_1KpS5>I_}cw76fPF+>68IlC)WU229**RBu`~mQ(gA>IlNW@^Ch+ z(@&vG>a#|eZ+i>@^%IuZ#NYHMZ!aO3M*r&k4wr_yo?84OMW=O9tvh{lTbl;8=G}eF zxse2Q!BUdDZ;2;_N;FSfb?)(jhO1ZC?D##wNJ+Wmk4WU(f#hidc|izu(tZT>>o1%7 z@n)9vXQ87$g_WX<4PMzT4=WT+H@m5v{1#twVI&tcpU!?qgf+(ppE>TT6PSLgARw#p z!C)ntepAX(TBX2tbg!@FJKry!qlLM*nQ3vBN1%LpG28Mh5vcwpp%DmVHc zm?4Ay`5N*sGh`usCw(hhQxrxy01v^Dl$ix6pnw8^9ymGyDW+$$Wd&Z|e*i1|$^K8s z3V*6STPHgMXb7w*jFRR?j-;B*tk3mGS=s*zo{#2KAO-&kwEv~G=TiTrH55h#V@F$O z2Sb1z0Kh@c!PZdG7+^+|QBGKdlu^m}lM^Z9ANU5rzeAzFLvd{s#t)yIL=~NYV?Uqk ziZYQhvpx5X!YIm2$_##v0^R=u4&u3p8WZWWO#YBXY=JQVG!dZMAI<@A2WC>xpL`$+ zA_e_}%0kNW4=O7u%O5H)@Q1=EZER$&FKGLTRP$MKY!EgE2r~r2LCV1jV&LEa_!F?P zv3(v4>!13htbgQ9%KEpw{xD0*`iD`Vun@oyfHL7o`uD8J={r1wPW&}V|02idYJbbo zP@j|;z^RZXWt0J+C-klUrPOn)|18D8#Kr{SU}Ax={7;HMkLo{7&a-&_1wrFke*k0) zL48N#KY{~v#zJ4kSrI_J0H(nPK*BJ$F$HGE2w>UV$(3I0k5(B15FPq9PR})-_2e0; zLjf46lC83h`7?M1Dd_o4`M;{%e*yFOi;w4TKuZlB%e&SXfEf*_at1Y%I(`1{=^SgoA^D9Sjh(Nx?u8%nV{+hkzjLKfXpBL5dE3kw4~2ZRX>=s&aTX_<+X6`(S+fH;^**+5JT5C|Bk!vX;TgM@If{!48pQjY%+ z+w;0&2F3&C-~ejG1X-sC6cSs>VA;68bI=r-MOGT>3)dAz=jFWaBc!c?OWl;g=+ zW47aGpdCZhgbK+P#E#81&GR&Tr_~cD#7f|KsM)ix)L^V(RA}|ymS*ukCY(|C!|_nt zLKo1=fltuNU#USG!8B*yv}@?0pS(NMfl@i+gpt!2d+S82NhHhQ3?foW8mFSinG{D% z*mRP!^r;s_+`Qwsmz+`&BZ<6V=~YCT4;7*Ac~LYhni^c0p!hhjCqCb~U!9%{-V?U) ztyUPlyH@*@C2$pf*{2&|U!piXDjdI5`r>PBHhIEZ0%~tzXIHhzuZIrU^YrYeSxP$K z&P1W=i~`z~(E9~f-f8I5RMzyHZ_K6EN-jRSj^8NFScp{!5yqX8x+*cH@5gOkgqi zLY*qh_pFJ&$viO>vE%N>@0cCxr|D+pssj?j#^{Sr_?4pqY`s0iFgvWWjp;2zMP%@Y%XBNpMfnkoe%3dZF&l#z$H<3WJPoAr|;+IQx~#oJ$P zewiX3*w^JsgQz>XpQCR{{G$w_?09g_;Tma}<_8T&Q_?}8buRuYIa{vJ4R0Wf1B%u( zMAWDsvD`Q+xod_CEDhiJyViW543+irO_^Qi#EyxW0Xr?<_{LM5DS5|wnrS}Q-=PkYyC(|%-JnUjYvzY%&66ym- zj6KR`dy}<-$ zhd%B5px-Owhu+B9wA#COZF}6@=+4SyNh@lE@nl6G~D?ZpiiAm1RdV?Np(iFGt;L3b&2oPLDXb zq>tyUxLj~aeTP=WtGY?#|0?lAdsw=rdQG7i3w=JFkBhm%^s%OY!^;w~(#g z6}}byHZy1$8N3_?O_TFf%-qwK^HW1{mGoeeAff>>FPkm$#sYDciZ^qMHFZfaH_!Lc z(cxX>&o`}-tyxC~DiRwv8(2jMUYqT81HOFan6oek38LhTJ!J^1lpHUzBT3tz?tYxG ze3f66Z6pXD31Gce=z<@-jY(|ppy}dEmrm)eBRSp7=JRubSwhf?F};4s=Bp6camPp{ zO)_|M9?@DJej)Cf`~WF^*X0$`XhtYceSc4TvMu=$R?`<-`2C0MW6}rXQCR^(|1;L> zle}XxblsK*C)!g(wHz&etoP{aPt798yYbyKs8n=a%h9_nHA?;PQYi*E-I^7@!Ao>cPms;@?TUnI8!*|vy3~e>r;(%RWvAAft zc(KD%_E9`KPHQ|b!dg`3N_8!f@X0#Z&X&cMD%KE{r z3VR22lm>V3vMzK{=d9t!3~ejLiKQ#^v0Syw0@JGZG-fyJDBUIU!2q8M^z|U z*+jR9?(eK#9E6`?(XW|X&>eOz%De(6EEKo0zFXA|^ROM~>a-1rE{VuR@5du}d*&rf z6!5U{_FkTN<)ux{`ZF!TPNV_<&cuA0x7}HW&x7IvuX&(J#N`~lvz?(<+L$lx zJq}qet-qc+|7Z+%Q#)ok`$mX1N39zt`#sS2fh38i->}6sWX4omd}`|5$+yXPwtg~i zjOAz_nfShpJ4>yj=3zxvo!%DAamq2v=>qu~h7Iq)RL!>$E-~Kq&NxI}sbIweE-%0D z%WxPr-D;+SrFd<5WHsxSxHHx{D?I}1g>fdZ)+R?!sVSBuGp>`2(;>3*uP;6K48>Mt zBxh)EpB3YMZC^ottj&s$52c5Ah3kMdqXMUs_9dI#**4%^lj0%G}3CKt6 ztN65Dk9nmmTFM!-`O|2c7;14&ixF;#6I$psVXvDe*98%yRe%u~GrLn2pihsS$}VLO zZt$iU&uPa=qisUcCLN$#Y3^xJjnI||%n1byzf14T@i#&1s>>JRTTSrkv(UBgBRqb} z`pxhd@cXf)4k0ZEU8E_F8kzeW#l}xp#1zz4jIUe?Fpbhd}!P{Er3) zs^(Z`s26RmiK1))3^fHyYLXZluST^-k5>H=JkuSWpC~Q@258K(NI&%*?)ogiRbBO2`TBUFFe6dS(w;~0e2lz2Pjk|Hl!Zn` zl^({Dc%&-fr#XhAEXMZP83(9ygpbEWF^aF(CQwK;3$3ny?5Up<=r&mhfU^u9<3sAH3Ooe-r>Hh6 z#Eim3vg1tX6^(sDxN2|S77C33!>6FFb=-N5XPgI}%t(^Mj$?nyLu|rw^B`vK zGmrQ%lC%6B+vC?=&WJSgPtJCC5xfWbnC0M>t(i1v$Jk|@-L8t)!n`iDzv}d!==}Y3 z!$|50Z@S1v@xnFFc!k^F~+4_(T0qc)4~*# zCpyvHhuwFZuw$!+?Ah2S1Tkofu&nH{$WlpJ*jFKSR9EthybQ~flg@HS;@B{TE%<(} za>T~mH>ylG-4YM`3ApWb2=tN|TgDJC2VMu_WhB2cpZ7SY`n?$aH*cV#SCF*OXQ0mN z(IsPtd#<``9$xf@`wyHTfL5KD>{!(h1g>Um17xL|NsmtTM}|Ow(zsr}C-N@%ykVDE zr99$IzPKma4ab$5yn^&}gfT8qmS%)iFMPcM8#VN_IRhS8N>5pJFl4d6!JcqHWpok; zX$VoO_#5yEToKsI=N!tuyiFGL1-bk+_N>Sga~|JPkJpd+Sn=@H z1wC(-&+yg4DGc0vI}T)J!UUwF(OxH{wUIJT zZ}%-2F}{Zu8Y|Djf6!8A&(ag6I;vf%#6JaNrur_D^#K3QZ@y+z#5J~{h~LqRh;uPB{H zmf3;xh)xvwA;Rhd_IiW8ch7RfS!Gz7iFlQn%FQ;@UO~MV{ZB`=qn_k-vjJx(s-2Q= zT>P(5Ie9~L^w!N2KYY-Ea^sl(?88ZaqDa5*C2d z-%Qlpl3_FPPRrJZHSST@_9M(Z{3?0$<`r#!`#N;8`D{4RWRY)AoBvNT;%wiGH0>v% zL*ZPs-WbJ0DyKE7Tf=t!pFIc#;VnlQtkayt&L{Qaka+TM+aD%BZZtN|Kd5U@&9lg#$ z^90om2>9W-OeX|(Os$bj(S8$rJ{1~uZB>d(nx*zwLH;J-wWyv?3<^^6!+oj zg5Ia#5xzmRJuoOOfZ-+RUWP7%Y<2Jndmkistzja(F(Q3wN^%oEJ9462dmT=fd;g(U z^Wnp#?m!+J(}YCqCHi>&+me#DUVXHFb{O;DWm^+U*|g&-_?uG|k8j_@JjP?k-`Uv4 z330=&2-9~zptSbf#TQkQ@HY|Op{Znuaj$5LR@ReDwR@oRzT_SGbQ%$v3+>IId8yUR zORpHE;0f*Zw5}e1hwk3?es*8^OQZ1!`!!2sked6<*#589cGmcHW7JhuJ?~*+@+OBw zC2(rxEIYrp@6o}F>6R;M$XvxRXDke~qq zyupG?a2*Kl?(WV6cLpc8JA=DB!QI{6-Q8j4%lQ-MW?$@G)mL4+x_Wg#YYKA}PS4?k zYyZp|&aAfiz80T7vICtg?C4BtLDPhYImHlqB$jna;}jk5q4)k0HcXsZO!3alhSjAo zFf^DgRw_^`Xj&8d6xd8?sd0Y=TgKqC1NiY8^}3HXuYa2lv9xCHHF)#7{dTJ%VWUM5G>%x_xKikYqc-cw>+cpB4ItAl`|M{d!$AKPjUf*=cQSnv8Aphe#cLgZ1d6W2SfW2_we{sST2LD|C< zWb`g%BJMfGtZ=7K-~ryT{YeP@AP+K>D#7<(8FXh6bZ{~;$@jjZ6EM`c*i|I+=KUgUD-&GR}Z3Lb9nemO1P){gh?c~x}2-bHI zHZYbzIqEdI;;c8s(;HcP10`!CMP9@ThJn*}-M?Nipyu0*kcvK z_wI-uiY78W$!B>a*HDjq!65qbLGuQ4EPXw+-?qI6v$sO=IJm~zY!89eCuj2Vn(V@0&c&VIW2rlshhZ>XaM%0PbbLKuC&1ekb?|9k!sapZTs z;aA!I>DiN%8`0bRbk=Iy%OT`a(D)qXJ(?3j7W;&17-m_XiJ1ttK`pr98O)}?g3Y=E z!4q4uPX3xM&fNS1NVeSv?{-<9V7<0ODM6Ta{5S-AILKb`s``l6e1`%9E!qy88lIS_ zp(i1L-EWt)4l%LWjl&H@LO$>BC0#Vf6snBOpo2qBD7iGq2jw|He$1TOtLb*_)-7^-&zYpy3m8qN3zf02)mtq ztCsKG#MjOYq0OHlQ#{s1jrqvGqq5QWTh&Rfw_lZ}d4-5`$hK$gb7yjFo?Q%Ucq7lR zf8_h&3k$VVfERve&5OAr4?%}Hgia~;!*n(O9g zo{i4yxs1|?nL$$PzSd`jzGBIFq!~dQF6;g&{=HQe7etcJQ!}Imi>vIXRSyO5$=dhf zqgQgODX9-yAllm^l(yS)Zs>Bx6c6i_Z^75)08TRtN#1E6>*&8gUP2oS<^wiQLMws4 zQ`SD|={1b(k{?l|>TDlWwtNF+3#C66b6t~#=a)ERl1u4J%U-drt9f4U1s_uqO32^W z)vg69{lu2TJ?7Dy{xW+MS*mZp7ro+|zUHt}%YYoUKvXF{_`MzdFKPJ6we!9B(L9{5r-WXY$PqsK^bIBXDtoT0+4&B-mhP0y7W_R zQh~E{(=*f@d&;|wpYO0eO7K719qO1Q>)<$d=z6X+vL4V(X}}+&+oI$dq%PUO>-jUc z2*5ynN%O6SCvhdUYddBg&{t+{!Po7O6_3~5l zkc&$Ldu`I@>l%v-JxpPU|Lw`r4)vb@r$MLx-v47Eb@})su_Y#%CFB*MX7t=M2 z-N9F>2r%wh1+Sn1D2Dwe{QeROYo+`f@a@CuUlXkqeJe47tQlKp^rQK|`_37DjG!?C zt`k(>qA%{BnjmTAoFg!N^c-v-4Ii*&Q3=dedxj!#iCrL^hz|s%+Ej(MSRla!isHW& zSfWESj5WK4fWA2U*%o$8BPsgALT`iqkE?D$$%q_jeypk&Lu5`pbdSvkD~&l0_a&kk z?LeeZE57fIgVfzK~CdznbR zJuiV{AKs#dfPVh~lHV$w$sz=`$REmNQ3o>{>w%Bw2|O@hu&M z&T#t5?y^5ot(P(R@Kh~CV*TG|4N}hT2f?q)qG;<35Vt$j#Ay_J86HGZwv(=)Sxv*X zMfi^mC%g)Bs~#G9l}^y|+U6gu9*>F?%YK)ou_vm(n+tz2yBE=~*_ZtuYTN>a*!*3( z*$sI^>kw|z$?d>Y$<$6ISktC9ROz<#MJ=vj_`BMI*VLi2>B$)nzt`$|`Xk!^4PN3O z&}$>Kt`sCpIB&`qtr9$g7fTCR?v`=Xl`QM69ZOGd83GbEavFu(1C)=A)m+X-RP`o3q1-d!6 z?Q=FUX88zDW=SNOVJ^#TZS=x@La0&1}EQ{kzifs((6y48YjO`{q%!nH9qSG|m43T9a z@`>yFslO}|9L}f_xHctmr+6&AJ(Uw~FOjL?%U6p?C2dq^*3|^=>MR(?&-#`^(Om!G z!Tf+Fn@0GH+`TEkiT;V>%B$mE;{#s=0LlMqH_Dc}`KdV2ut-Ym;C7z~-{?hyprrF%URS43@eN?=lL~x8t-5Qq z>N>Q&$E5%mkojqS;HLT!rFZDaDy5_hrc1*x2W<=RUnLtdXh`4t&Zq&Za`1KKh46E5 zcGT_56w+jKBG`m=O6l6|eBdqVy#)cZ1+lR%LLx~5_YIENUWqBcKQugXZ=A;{ z*ip=otn!bo#%O{J5H~}x*kE4t3&M8CAN2PnNU6w{{jV|a%fI@{0fM#)4oA&L6&*{# zR3tb5G#w^6A(Di7x|00wa*8%Hk}_081G&*f>@MFnay@C~Jbq=WIVW{oofTM}e!ZSo z_%Xoc<=gEtEu{5g)Q=~P=WQ#-n6wsoX6>Trn=DeebA0!^k`{yDDiwdu2$C5zgs65b zwjc%%_Yii4&iL8FAtm`C20&4Y*5ygw`1vT0DZ^1|{B2t=mUFD&9sI7&o_%Kc;${4< zb+omt^P%ypeaKmK50;FBJM;!eVfsZ1t zcG>CqwyOUCMJs>31TJ}>S^Z>Ws8;#)`2Nw;?e<4JAt@UpF*wXeNaWPiD-ly$ zPxxp=P=rjsIPQ_zGO>~9FeoYAy7D7s0d?0$^+w-%TVRgZ2YsjdSEndEqUtJ+pZkv; zgo)lPH(ZHsd@c3{C>;l8dnoN>+G4>DC!mF4Yg$wX^Vma?>=-rO(gUkK8%LDuYr{FA zA^mcv%f70_tngv}hBT>*MPTia$2ZqgvpVEKCfocWgFN5h4=ta)56PRVy<%}sLJ~R5 zo2>KZ!^zKH=DjO(k)?humm67JPh+p-RY~A<+bm)F4?e5ZZxV!cF|W7JE+;u4T9SjY;=3y= zAz(6+h?ZO*Le(^j4F9n>(d3>rPQQ{mp_Oj)1MCLUz6sQ6gyD|*)|q2=9w+Cldv46! zvn(w;ABOW0pXhrpaF+eRCqFVi$i)P&m$-%*9>QMb!guCKU{CjDvOmT;1W zO190WFiCX#!-Sgx{1td}8>|9}rmNOSyo+#i_KI+$QkYe3DeaOZJ!gJZ7#iSOJmD z|1P-)yi(+~bJjxy?QRLe+<4q(1B7^HeDUhZxN>$k#ve3Z@N*94pqr(+#2?qd(rYq^ z9v*oMm)6T$XTabzg*ZRW1<`4j>7WTWqZgS+(2aZ@f3G`pTFj5nUG}=~8Q2t&Pf39f zqU{N*{`inI!H>09C3&)EueL{|cT&vN+n0!{h&wmWnE!lH>i+)r(QW6OF!KTIqF2R4 zxRvSLJ(bO*Oa<<`M7h7b{I`j*DI_wwdvO1!>#1C98t%GXa#D;4#N5U=p|(nq>7)i2 zyW_}7Ie4gS_fABF@E+TcOkW9gso*Oj-nYP6Voj5B&C;Azs%km)X8Fn^C(`DS`I!?L zD)cZ@^BP)7%N%ez3swHPM?Us5VVUjqm)#?>J%harcd2y3v|h9AlqHw_x< z`H}6{x&x#)i3LWM@Fg^logE||?OlaKfNz=52}O{ff)`xpIX`c?FC56i?*^=@o`h6K z2PsSsZ@|CiA)eNMR(XHzgTF{5)fiKBbXQWiVP{U+4!AHldeEcJJ+v(KobTPLcNxt-{sV^|qiX|PKmqpWYG2|d-)PKt zE};y_7Oc$%RJdR!3_9~Tn$IO*K`cR1*-;YAcyU^L48fR%Ed34?e1+So z*;_gQhQAYL-qvoSh(h4*+Whk)uMYH3;XkJPec?5d1AUo0Uutmqq7gN|{4v-AA-~}Z z`-*M1He9T}ANW)ncAZZ3p2LzaPwds$eYuT!6?4hFm;H>NhSEO-<76)cZxn4MoZ8m~ z{JucG`()GKtm$WHa7+X+uela>bK3fG?W1xtVSM+g!M(W}wS(gEwg$SYexmlXQ_G3s z4{-Gw2nv6Ng;e4k5X!S&%3AmQC~ ztjvwKgYRGS>^jOV?|;S8dBrW39j%D|f>Ip2gH*vt%q^A%PvhmMGQSoAvIw4Y^x50e z{VwlcZQ1;aS6rgu4GdQ4$C^QT_*}fSNT|!{uG?c)jd}-cp5JNEh2*e6%@4C*zOSCm z*416L+_=>F?`#k<|C28+tc4zx-e(+B6@rXxET17 zjhq8?IQXXsz30D2=#ID6T~=_Njggv~tl-#kW{l}8CoE*0!do}->TKj+YM?L3q>I(t z7^Q1OEMPYjtqN!}S5|ZW^3wH^;L9Od6r7H>9%=+ISTJ;HGx6#06!T^~PC8GzPC79; zbsp;;=Rk`7FZ@FH&Tso0DWc~Kt@tjgSt#vmRzz`te-{1#&p>^N`Wq_@2HEykL zrB57JDVxB&t4LCu4)RT$tB7hG5b%Bb+2ICf@5hir4Cn{M@E{%m_{;m(TF@kF2lgxF zdd4)fkz?;-PzUM|wmkKF;%{1Eg>l($Y0u8P;r(3L%|Cn-pRIO}!nP<^;#YsT$ezZt z3s@yjU6dco+^Rh-+(tdhUCTY1z2U!cz6#!hZ+(vVbQUxo;;iY*4m8$OF4l0V29o3B zXITrKq?;47XrGE1d`=j+XC$9s{F>p#7B{MJc z_iFRa3lEaJ)}x0}FK(dr=9~xm-QvLusLb78ugvx2ach%)Mw%{>oz6;swr>A1o|8&X zMm?!r`_^MbgX&27-81NNj%-QBr3)Iq#mwm&mPkQ>N{G{z@emMsWkRux@Q7>r&aP9q znfIvlR$f0ZcPjW$;we1Gu9Fs-(7^tE@6)h*dy@j6>F9HSS;|5Cf!px2)G)WsuzT$t z&ymcp!L!V2-Yv(=fJiLv7+!$e!QW_4%9sh9E35O9{ga)Q1KQixcB@VM&7qF^4xV3w z7kQy#3Sq_1$IsR`54&#zF&t*^-tU{Ei9)EXs9~sXR0SD7eg89(?rjS4LCvQ0j{D8J z(=00eE%VuZH=sYW|GhsyESoYbD3W&MyJ=kq=qw&njgO zinOu=)ip#y8Cq>=O=&vQb-bUK;90=IO5z0VmGIzJv99ET@6|jaFOqpFhsY@Q zW}7I%#EDg*_C(mQ`0{=0qG7}<{7G2o2j;ncHn z7Z_ncH%Y6n_5SPTZa^lSfPk6Kx5(Y-=6$y~;s|ewHcOAcoV(5awc5*<@$d8CKqY}e z*WZKP!-xzf`}XJ40S*EU16>z~mw`fpBR%hJxyv*`I%o_%&sdR2nA@O_os z>#nndv++rp*VX>!*W_GB^_m6Cpr_z6(RmmB`xq*Et%4Qs&GF=!Y;~7&u9JIDgB^lr zj>4zFf^MhlTt|yp#Ga1{^+S`Sf^9eF0rhuNlYD$n=b82OQ|8%VhsV--g)Fe6Ywrrg z;)-wW&9=Gz#A0tUlmBi!ZNwrZo6zyFhwa27Z>nSq3i)`v+IsfAdz$Mce%e@`8z=^G z`@A~e%|$6}dA2TY9+3&KvwIyk7- z5;%U0c7$g?wcld#{|1vb;qLn}4f!m|VA?PbY^EVXoV^x87O*8MVmfrMm6x!(-GVS) zG>vq>acL0BU9ImcZgAAdaI?mz!d z&Ax~K==OW1I#z2?84VA-B*J3wI|pn{rlE*%POcy|;7)rWHJs)|_?w{=2M8j!|M_jFIJ}73V%;22 z#hN4BImr*dYL|27_kh9$I{+CE`>0*~bkDeL7xbOr$KdXI1dHj;x`mJoGGcb7#OIJK z-X5$Y)W9qG>#-Na-f04Y`>hAkUU;FnA+>N8=OK9TqYyItd9=VZELIBZ>RmrP1_s1) zS_5kdahwdx^y(z!8gH5u=Jrjjng!B>Ie@cpO6T(U^%O zMzYxx!rva-<;EL_$9s-w(6PLs!|K*?Tu*Q}i$?0%#cpT^`x*sHe;O5XDZUlPvQH4z zlt1*}r;X?kd$DSvuOEYoG@F6feL1P2H>nnjQaPzuH!h#WGj1OIyuRootYQgmRZI`K zkMBJ@pagc^;9zJ15Wu$GXpnvdF2fI$dk>g{3Mfo)#V!{4rwllb{81{DKwv6oq92c0 zU^KO1Xtp2bDuod1VNeswo;KV**ssMb6qC}=0yVanWKa6oqyZyrTvA0fs(xQuF3?xlWdzA|I5(B z?o26!E9@RN}S>*L|U1Yy>D53}CS(AOE5TpWWBfWxegham@wi zQxWo_iSaYCn@HtC2mZ@fH?%`9v_l(&b33$i5ZW_gEduVNAmSqfoD(PFBR%4Kq~EwQ zFY%w}Pq>b9J?&9`m<9LjpJ9EZdOTAd0llf&v^5;GUx5gNu>n4gXztr^AQhIwL@!uN)Cu=d?m3O<8RIy?G}8^Ox0pe&CbG3N*fE7^30U#G7i_O)BsTu+Dcn(azSra zL0%@Y4e*p5rfD_Gw;-UoR1L(@w2>;p@!uNJb~Uk$2*z*?lJhbcJ)B1u{-M?2M?kvbg!I3R<6s@J z`4zf8eUpAoV%@9W`aNI!ScP#Mp6gi){Y;OsVQ)~=Xt#tj=p>}F1Vcyl?R%c&a`0*& zhG}mv|Q0BOdssM3%9|d+73uKxR4y`&s~vpP^@2 zh9xEMd8?quo6bKftoNN+cuPi~V{rrfx&wi88XlB`a94&P7#+F<+nI9h^7TvwPRcN< zKSv|WKo|#he(xbR=u&d%KVsk~sUaZzH1pN(X>*vtGZNHvB*VzfnVbuRVLsRfc$ke_ zd4vljLwS$lfJ2y)<+gwV1pqvYLWhJ@t0Go6@3{a*I6nc)R^Aod#;5KO(I>bK48N@z zEPr1FKfp{(f^#V+%tuTXl4k^rm;$mLjnE96WUn&yM~H)%MIbf&^wjY~4$T{}DSk&V z`wElm7w3&hC2TUxUBJ(eGqQY2ieS~*;a}=?ao}&u#X$)P3%k zD<$M8#-ESZRwCMvuROuD7O^WO*^qKm@;VhFDaCOqVwz8yJ+VI(-zY`i5D_RPcqkH_ zPq{37Df)L-;lL9gXEc{pC8o_#yNL( zk7QS9m#6@o#q^BWECOSuk><;K{vmasVUO0&`@-HIr(k0FdzmL)YOL?pQgs>22r%2n z&S@*Zd|P9o6;o5mo=9Db-;mrim%#295?mSY8RUb@nN3k@DWN;xTJnG?zIRcG=_op@!k$tz!=Em9X9dexP;7+? ziWZHqLhKNlnq$6|^`MGMOc|RRqqhur&wCH}By(3Jrh-Q;qe?&1C?#*7-9meDxfzE1 zO1V&_#*}_sM`@pTFSoOYbN2zc-;}OcwMZap4x`fHq8;f3+PmIltTyr%J;|>-7upfm zFE$a{#V&Sm1@MQM7Bt&YRNaVkm5w}b37V+v`U!{C>(%?nS+tQ_YiHaZ&{{#T!FrE1 zfcTZG2dx|B$BcxJvU(ZbH>xx}=eq2aI`onA;+5udz{&Yg;dy9b#qm!*P#WIpxvq+9 z69->@{nc6hmAsoqm(Hj>#oo!~`Fyj>f=bFtv&#w>@0+%T!GeW>=Q4rJ$`LOg;Ru8$ z4eTD_Q&g`I`;jnm{ygMXHuR%D=E`&k@}-<~ZUtbxBEid7R*&WK=sy|FU>1s{rjB)X zu4wk?>*K0u@mAEf;Nx)KVcDc%;pO~THR*b0n=-jMvmy`fsH`X9^^&nz+o&)UuhY({ zf9Kj#zH@mzZ1O$L0M>F9)2wYusy9E#+|}DzjS`R8mQU&%j5ZzH)=zStoO6Kf#!ahv zS3({}PD5myeDw-i1=A`cOsjL|s&&n6T#}3Hb-|TkrsXb8r)I^iWrAKSBl@GJJj3zz zi5(^NNz6f|^e&ITzUtg~i@AtVd-=A=_;ix%TpCZUtkm=BG_mXI71bB+*rK8_YK`JE zJC;S1*Ne$Nj+-_8?$J5@1!hd$Qqa4`*I^M$gF4soc9CUd7x9C~4^M0_GkH&S!4su@ z<|e82K#O{F-gzxj&bgktxLELrxt|JK{E9P|m$b!PQR{*gZ^o&)!l`ZeWSw*JA;|dF z^Z^wtmo-jpRu?AFe%f!!DQvOl!Z|rI7*fmX%BgJ;V_=@oR6oR2AD6O%0>)TcVF6>v z8H+e`E^la)tb+ye>V*?l`u=>HUlHLQn_qze3zXDDU z)NcBts^h5{arnhLLUOTP>+dT61X)jdaD5T4OeW>ul?0Qgyqe%u&c^77g{E5V2dxRB5$g$AbqWsU%D8c5 z3ay7k)5g~e2C6hQ8P}2pa?QFxwS_bV3pH|0?7=kL5o|WCUNdz3ICom=mlOH&MnG5o(nt+arcZv~4D7##@mrlVrm-G9YQ8+?mMZlcjnG zMF-q>ZTN#;aF{vziQG`2t|o}O-w((Kp_5ON1^dG~HJnl6qogOX>@rnR4Z459L$Pcb zn5>YeZ+wOeAy;xgRMVKG1ZvEyV$%&dY>a1cm0M|alI*2B9mRQmMI|YXexVW}q~b7S zE*DtP%|Z22h%N}c{(M_lZHa4Vaij^~Bx04%eM0XVRGEJ@jRu|H`Cj2%ZbkmO8yBLI z%&&AAlK64@MLQbQ=kW2T0lR7gag|9ffA5|_Wxvg`(D~aQuV~i{`=ZDoB#0vxIS=}# zwDcv>Kt6wa_FKw%!5Bwe$Y#V_*}EHmc_k?Ult~d^`%<{P(R;$=CKqqAR@W*sdL3<>pB2i539SFzc;#QMNL|fu0@zYpf$(w*6 zc|(iZWzlU{eJA|a@)njN^I2z3bb$kny^}wMfyxB`sDWlbp>34xnH&W@C~`qtb-~v4 zh3sS;VK>%M3tNhg!M7NL{08YipyCpm#P0g=Nn|}X+%~-yEWWGn$Skq7^_?L7TH3&h<4AIVgA&~HusT}ZxNBhepWCfG_}zv8(r!gM|D>_15i z!7e+C{TGA&qE{T%;YF$WInCt1QAE-hmaFg4EQ&_8{^4I`3bmnq$0WZ{z6X8&|2+aw z(~wSOlKfAtjZJfDX^oF?{yn$1`m( zX>;~xDh*49(jPLJga#VQOEb=7nw2kXMpT9v)U*;P$9z-daP5xcEu zl#Vn8u=21xPm8E2k!W6{opd5Ej$LL`ZxuDtcDl=HGZHyED&yMWsy@E>q66ZmLh{Ija^0B|nc@iD zE$A^ev^&L9Ii0cI5gG&uOOrx-NT8F^kBL_;)RyiW{VGinSza_hjiSpYv}nCU_fg{e z2>A%~`sVI@1PS0EZf4YKIbFHrBO`XHnR-%Qo@3xKx(Z-sqW*E!QV5xSQD7V);WM7^ zFI#A$ruJ7?`O)F7L+oKgx2_mqudhmG@+D6V^H)1^i=qv83DSm`&+!)`nfeiI#)SfF zWw}MkQ*sxKGonouBATdV>Y5W}?jWm#cujb&qT011dFx?zz2y6l*PA`$>h)^slq_Qj zY2u0nr-DdrfTPIlV2i) zH2f>8-f$uv5#4d=*rtey5}IOgf}ZVdo}{mvIfix*ZYHDNQat`_DJ=T59J?NN>GQyWMC^B7G9J4Ix zu$C##KO=@l>tq zVIbgZ7M$tPQq&HW#?f~pCYND4#Y~_sYSf^&Dx0uZpZz`8`F)i*@(9x>BkYx#^ZB_*~F4eom^OaX#{B!!cHT3xNS|iXWs5BY> zqg3k@_f6R&j0pHW!`7_8k`6i-6)#pBzhF#}VcZ-VSC4&1r*AXBlES7WrHs=kDwDTh zQEsi^O38}@o;WC~$ek6cw6HU^*|o$|pIV7tl_J?^FRV;2YFgCR(bk!(uxjFboHVkU zWVZme6gMhpwmRj!vz%4)mzY};CV#RiVw}r5`6^>l5O&MWsqUdmQXSPC*%)0DjXs7p z<~SK!zandv%)7z4#=6xa>oN0^ey3kzrwX6Z50w$j*tc=gw5H?W832*YSe(3iy|%S_ zwo@v<#O*oCEx5b{q_*K0O1A=>+=|BI9goq|+qJU10>QTBZGcw|#7QJW72IKEn%Lvs>Is)t^) zq5ZBLLje<1^&g;XAv%p1Q;#-ozuk;*&6B^O{)(Ak9|``4Aopqi;=H^@mM&Kf^fF~@ z6EBV9AB@6E~l+!m2_v*pW6?HHZ1={}g%D7{g+&0R3* z)Bw9`+RFan=|dB!BYr@e8aHjl`^z@MYKv(!!m@pJl!L zb!baqcGT)bL+13dnv!%2i_ehx#Xn|astiCCDTjalxD3dL>3zFZhQ}moH)0qkbQ=y>Afr&Nj9v z4Ps^R`N8{pQN|CF+XU!z!Gy+Rpp(r~fR}BCH^>k=Rvjh=}dOvExZ6fND4TBD|#3@5f$+;s$QMMI~w=JZcmip2@Moqf7NiE&x9&L z$JnU${^vRKIsb-WcR_t#+M25QwkcfAM(b4jY}I-tbnds+U;cGI{>4QgrG-QMbq#`B za8xLoCc+w{wE9VM4FwQ$6T0n}FLE#Q>Py>ruQL+QT%Fd^-c7r;<#q(o0d8pKCp%}D zh8}c@K#i~JDv34F^v?v6I=?2sZ<>U%8w}LA>+DCC90#DND^8?j*Y&A?zHu#lw#FMF zaxKOuOk3tud!|HMd&=VcT1|FDVGVb=l&VZoEY4$BxgB54`-hQIg>uK3}qzL53`AwvU4W%N3v%GcRU(mQr(CGZ@cyvm? zl72Kg8u}Bo`@R-6IFzq<3BM48)u6H>%eM`$g=ejC2oD}?O+Ea*GHZL%^l1$xgAQME z2m4}jC?;MhKHp<9R}d=IQCu=5{AHe+aq_#)a0}abd}XH`UoU4{1(Vtt5tCM530P*{ zw^eFitxFLF7Nccu{p9k~6H4<;tOT2nV}6esu%YcBPCjp;CHq`^2Fg?U%7b?O8*#O% zFRxg8qpV1KJ-z6sTQ|Lp-9X-$>-5izBI)oD!e1BPGK{ZPrAd)5j?cf42<=9 z=RAetE*33$#N^d%w7o_(dn)qxYfn`@l3yEK;@Va9%=M@wdaLJ5k@>q$8N^Df7U!+C zXM2%qBWtv5dDUw?R=vj@o5t&+4@%bo?g{&F!>WXpq#AMXgVLC zD@)mOyUr;15gY;K>3GEUW}@^d)LiCFhFqRaUHGOXG$TkMK=zXlkLmxx2-{Z!&U1 zLD7d%SBYO0!L0+@VEpo8>9x~#12O{eVNsb>f}hF_y&D}ld{f^`VB0U8i028PJ6wBi z(y00&p55M4L!*j=61>In#qrJY8HVvV$uMQLme!8ed~wx(^Nql$5UpOf;p|z4y$sBEmhDHpTJX#1&wc!=m5oQk3?Tm%?*5&ia%Js^{1x%6?QXR2G z@XhY~YT4An>j%@`J#IXw(%xemDC;IptrZu1Hj9A~Iv08>?^;^|BFL9#0GCUVv$;jU z+XFIuGhHR8di7?$g!UVyMbwdbBxC zW-%3fzn=RI%^>3Ef>RX6sYCR^RR-pmAzp3{PM?F5=2HF4IyE?~D7cWT50AELJ?<~z zXG3RQd7h-91P1FZ+F6?M^+wx%=(dbxAO-Tu+<5Wru_gi6J?A-xTI}X!vf|x80)8H(oKyLvlugc6remy5c{(H13<5W0lhllJXBM z8^b$tJ37|&?Ls$pJ8nBp1sSUggBrv*v*25**G&Bvxjrph8N`1VOok#Bt;bBU@) zIg4m97wlb@g?if^#qcXtl}##ZIb-^WlVwNZ73BZHi|e$-%8jL(iVUAp_pgIFjG_|7 z7pc9cXtoAcX|1GfIOJsN3$)e@yOsxgp8j!1i|1A3H7?cLtTq@<7B8DfAHBZ8)2Mh# zl8%!qBb5g>_9PoML83$ZLii-+EUnu4)1p+U%W)bQ>;kC9eopdkCYxnglI^8_OJ ztpydB%^G`r(aGhn7AzOA@t90kcl)<|JgGaHq&`-@;%V0L8vYn=*5Tr^Y%|IA4}fiV zz{s)n80}Qu9!jFVsWBAMVNvmam22q!SsL`i?MEk+$pGN7dlc~_F>kH~ z>8R%>C2e!6jGIzbpTTSCP`Nx|KdRVU)e+T5Q}%@;{;NuXY&2yx*(`}e$nJUkH&=6- z%5{8H#R7kwf4sz3qyL0RZ)5)xQo)6NoxZ1KQp~~nfb~5V$&Pre6(ear%Jd3lE1=P$ zw*sKe--o+hW?of$9mWPg-jGWHZ~L(Q!$1)^2vWZ!(@pVMA;IiO8vodhcL-Z@#@LZ2 zQ%3g0Pw$MeU(@4<-%Zu)($dNq*gh`ix2DW|eO;LN#w`9*o^2`BJ+%HxVs-0<)Cc<` z_iu9G^t(%$qTcue{ZQ?quyY=Gmi0&sM>rB?2!W4 z-kS7fdlP;Xn-oI1b~I;7Xv=!my*-^@I5~SS9G9tQp6bYa!}h|XOHaj~A|K2=;vMKc(eJ|R43rc_mbJ7Gv#ITJk*Ko&^PsE=Um~?H~#JH9dHDtf&x5Ht*jd0#lDQ zOrtFWUmmbRQ9SMVWzv1j%9IKqOTHM}md+tK)MQ=DaR$#B{g9<(g$JY&k#*q2H zZz_$G^`&i4m~S{LY<^9W>keSUC2VNHqExc{dz*H#AylO?%XlgN&RSqXFk4sUjQ+gP zRHJgvR`7+Sak8dxU*ca(JKBdcYk{Fv8EEOE#!6!wsA|z8x%17fqF;B>LSozmbIrmI zp9NN-QqC1;6Id(ez7euODumJm#{zq|lRac>UdKe=ZJ+i4(}_YK<+4qs=_5H-Oi#RN z*UjUXjW2Y|_Pc{^-x{VEemfXM+m1X<6N<_mGvt7$js*h@#en$-ouF2#NA07GLQp*E znG)+8=R_)_I7X0n?W;|eh{fu}fVhGn$ViZvDDh@VPQ*M!CCI12=}TK8_`JE`AN@-kdIgV-L7B`)kzup1V? z6^=lRw?0BE=XQdc2PjcYC?n_gR{Wk=E^Wj0 zh{=b|LSZ7}Jb7+H6BlPuj>sD{iCqbfEFgSSIT@lwPyd{& zmxnzKo)%=(bWx?=_&WO4p}Q>j7Ws46&(}B;Q=Ih^l|{|&T&d+;c6_VPiWL_<8~-+$ zN#AiX5tAn5Vr_*~3*<0qkycfc;LOsPE(SQzT&~6Ql%@IpBgQx0>~TqXr}ddI!Rtpp z??v^*4e?}BMEvqU;_flXlC5nJcG-59ZQHhOTV1y8F59+kciFbxWxJ-%nVEB*FW#9q z=HC~wBO~|9Tr2ODxi&NNzJxW70t+w5E22HVoT`MzB`n?s!r;WK$GTB2k zZb3@%nC%XY4$mEk52!0u0yDFPN^DGc=p-G&ROQeu2QJu-+HHP z6};M`>47*Q?T%Vf{)!+<=7dH6=}%p{Bd4*A^$@;3{qF31 z3!d1416|jRSurAM6KP{BFZE(CmqW%lrQ8tv2LP9x$ke6{V#deWV+XvQ2d5^AB2A$f z_B~Q*130`4N^8oypj~g0q8Wszh3t@4n}usXXC-EcdWJ7pM$5TP+gjnLGb(shCa)`_ z>uDy4&#^fNwg!|i3Q*oqX5n{_yKhsu;Tg)GYs+~@C7tV4Jt@V$6X7+7B(Ldn-jvl* zY7^vOYX7iCe;wi6q#DTf$gO&Fl&R9;cLrzaFzP?veCdbw@|dE=(aH>u2lG1Lpv(@@)lBvOrs) z8+l~ng5O8jpHgL$Jq*caNHyo&p1ey-{toGT`A?t+vDRuzj-taeVVs{qiE*Zo#N{)n zmo@`$XuT{W*_fx)MOE=|R(5)4`3WF%$cp($owk6sLF(XbF!ewVj3~zb?_sZ%NW2c- zk-3G&EQcoAV#*O?$%=4|UsJJ;f%i4NQn8<4=NJcAuqUBT11lP2P~>c6R@MnVn5%iB z*s2h4Rbh{nFhte3caq`f!9GHxYT*f@Xcp27#D!>2Q-voxLU4Zyb7Ygt5uAX}OM$)I zTZ#7Tq}!7dt4L&iJTa0|GWl+V-PAgT%Q8pu~qsO+oZ*d{JTRp^3`z__;sLqu!wgC$AvW1iH&pq z&C+Ern){f*EMe-iKUU2RO{CFS&qA@qZ{rA>f- zBY}b}FD6nY=06Yw)2sqn%m%yD*44z(lS$8C(@BPoMdtn2zK+#{VzMh{Y-)SR*-P1> zZAdxnY7xvHoQ@w_SyWk0ui4x>@zclk32s}(QklPG zQ%L35vZtKFa}0G58+Pt^O!iQWhC9+q_)PYuZxX{}WYY4@HcL26_HsB(kmP=j4dNM% z5ofO?h9|(f_?<0_Yg+t-z2xg!Ma((5Gh^Y}8#Wc&OPh>-4sR$h2fIHo6MJVc6)Tzb zu5T!)tJ>C`|mdp6WksC12f{i(;k+5HE!nM5;t9W~ty zuawR|nENEs3HU{%ogHh6=#s1142ojydfn}vs^oJx#@F_0Lhl9HC=(|qgYa5<{4#w@ zXt#N&%&yzSQ)jq@Zjz(hd_5bs^O2_kyd0h1RUUe#*Kn&_2f?3eVk_=sJsTe4QWpTt zu@|J+JYWVJKd>2Rt!&k)!y7=%FBf*9Z_H&H{Lf^9#E~r!gH&qw6)O(%v;Fu_xONvh zdf>#8L#JK|wpc=fu#j~qxW4y0HVLHZOV4T+^EKfi2Yv=KTZEPGlrsY4ei<2A{=xCs zoC51OAo$YD3Q@6vWHOM(;Jm#BoS?H!3Rbd!do9omxS$7ZJ0ATleeeJmex;Hh3`^wL zu@?n-z_c=AQE=-B>ca>#uvPxcz#*&zn$_2v0oUN3@aLv}T%~&B7yPw(f-)^;9HpT> zgKdBZ6Fg77q_D;)aR3AOCvAYOeJLF$Nj@lmx7pY0rX>SU)+Q_n!1aUJv-1}M+HU!O zJRXIcMC=w?v`FbGCG$kDTqcP|(D++2lLP%tU4S5X)BzOc>%|={IHl$1f!n}v=J!WN z>b=c+#0<~JwLyua5f9(*<(5fu)J{RU9zRYvdc=nRvQQsV$T4){8%~c zvhwsF3ji2JQ$KhMQ`(m6ZbBAt$oB)pWGyoM%`QpN* z^A)t1T$}Ael>Wk0WejZJrdNPJsnmP;Hd~5xJyM zv&8D$t-4-aZ7JHOib};Z^I!Yr&l%$}+1&z{F55W&n^Mr4Ih)c7p9x#!wB&OPO(mS-@iZ4Z% z1RrL@9&UWv1ZQ39$D53_yibdkAT(Se9ZFRDXN*bi*%Uk#5X}@(K%k15%kK#OH?{;h zE^dhTG+?68G-Pfngd;#l_FXn-2#>RL92nsoK%4Myfw8MqA3Rx#gGI+f<2Gq-)2Qe+Y0pK? z(%MbZd+#*Jc(!SS?wX{$btXtL^NjXF>#OgYu-{qPrxtN;#P1@V#JJC+2SwV6aIc~V z+uDhE>$s56PowG8#gI%^p0AOy@NO`E!Si+9Aexzbv9s_NbPbrXF$+NSNXr1z^=sV_ z_As^bJ9dO#+xnZDp?R096;7+Y)v~=>?4I@*wA!6;JE38dtHwlpxcCaFOx(TG9)AI) zGLUxsS779Cz2W~M?K~3$3okGJx2a%a@Ds`{Qzw4ZCXgN>M@vJ7LK9ek_%5k{s+6X<^O)idOLB@@#MXnO0tR1>0;P1Q4Xs6wrG+KwSP zJiw};U+`H~=vW;sVci{yp1B!ML&ZM3OY92eeL~HXCwn*Aq((Q8?Xh1iXPDK&)A&LSj;LQT`XvsLP5x=GnAJZU2i#ecDkC} z%>qp2=W$A+^W~!2F@pzk!CmLbAK^W}#x^oe#EZBHq%suo*;I3?xMtyaabA2JVoG(7 z3m>lSASizW!T12NGr=S%Bt^wO2Mh0*92^RAbWkV%O+sTS(TGIQA2G&-e}tWhBZCTm z6zOcCHUNC&i3ykg-!{XyE2H)A(tpeUE&FHgf6E>$EUdH)EPrVo-?9hOe>Tp< zgs;WI&P4mS81a4hzV(f7*niji zCkT9&Z_DT3TK~qv{!f?wt@Uq9|JL}o?BDhNUHTtU{1YubJ_j=sEj#l!ee$0@`kN&A zW=H-Ff$dvK`76ACOa7hvj}H8^`~G9;KO6fNIsVs9`m3dXpZ(K4oo_+po8kG7jj(?o z!ha9k-_`!vga2;gukwF-tb@<-Jq|d&^_1^Y1`g)`7z6(m9Qk{6|CblRzr+7O!I6K) z{eRI$=)Xx8Hm1MKkiTmF1(47%exoUWn=${bHp2Fehx|pwd~-nmcWvaG6rpALOB=zb zVfv<2*y!2*!d>XUiIcyX7Y2GJwr}0#8wL6QVk3V$MgP)5jQ;@;{kPZ%3kTb`b|P(J zW9DSe@a-IZdoTa_G4PFzxGAYD^R++nz8T}n&J{|`H%g?F2BVo;O0npQQ=vYLJXerRI?eo+z$VsfwcR;SAVr!D|8AKn9GQ9cP93E7^S8&9&>9GNhl7wr5yE&$`N49LaYc5Xj40RF7&`#hvF6oh7w zrLr2VQ-v8%L~~|(Iztve5o&HbUIn`1>D9f!`vLL+I%PRL6?&3xX;)A~jLkQ0Ru^X2BAPggRf9!7Ek@57~Q+n?y&f*7*LYsa*JGpkuJ`L)&e+MEJ zLszmlFcwPN_dmdY>b7~oVh7gsbBZElYGKCpdSBzzn~^LCj+XU3$REeUiWkR%5r!!Q z{SResc<&1S$RKV7Emcy#qgEF|T)BfA!bQ)5Tc8WOS|bNG5*gCEgCE7Y_FL8AQgBD_ zPahtJO(}SAZJDty9UJu+Pw+)sfKLheFN9s=r_a#DO3~D!TX0tU+8J+#x$48{Iqs+1 zea>=xs0kmfe0c1n)(~|vvw7i`y|%Y)Mh)8vvJpU!#YKw^61~n5(fdCD1iWj~W`p|! zlO)`oGVgtRKOP3zJKS%PT>7BXL>^=0(8~?z`c2;#Bfc?kYo7mxA3R`o*HLl2CoAcZeQpno5Gry9`wElHCnX))%W>< zsAI1;hWK>*vh#eJdF-`4nk!G+%oF-E#6iDJ2CO=3ocLe$;V7JTJjD z3FFE{BAZ5hf@-|r8sG}enB>b`nM})}MNaq=LhV3@&-SzpUOupicfsT76UYnU=nUhgF&Q>T;u00McYO9l93il0@>Z7p zLib=A`4q<~!Cqee*rxf?1LUE#5zT1hcn@@=#vXd${_QOILNvgg6j-84j!S`$7?{q-4`9)gMTP58`Fnfgc>qm zWIk_4?SYMZyz?Z+dCJMrE^uU%Tm-g;U&E$kb63E4C|J(_@rEDasGu$K9_`Q=Ej%=` z`>4T-HzP`PBz(Z)Ri(fS-zO!0%rV> zzai?tHGCm0^pnrLJb8q*tFs!Jwf4?cDCr}VM_XXpbL8;+_yNKfG$!WLm- z7dAp#+BX_upk}8X&zxHcdLZw_eXVhq`d4CL^DZ`OgTCNGc2&y7WX*MyS2SGwafzyR z;15HZORhD3_wI@U&an4E_ZTyhkvr5{fMrCo2@&r>he7!%WOq7%^LOnXv;1r7+q4`J z=w16=;#cTSTeQ@JJ3>6L{SEk06SrcAvGKvaTGbmO<9dH{tEU0-ZZ$6)FJ7-J6(xb1 z`ur?*Fq&0SYa>wDW-XdKe1Mt}hrYLHu^tHbJZwnG#8usukZs#v8)N`SwDj{X2izUzM3NZI8DT1GbkFhn`5 z#{;;P4 z3ESvzH>~IGy{RN#P`i;c@_OwEtVF8w$TJcrknr)a=K8vRvT7mSoi~-{|XLZghn*;>SSTZV2l8`fiUAQFF*U`PC*7v_L{q5~aAzR6}gw9k}o zMjrYod3h&`Er=z!qYvnPu(Do(FRc3l&TNlv=lGQk`xSHa)C07!{UgjUt%om=g;EI2 z0XsexPLNYP6$;)?znkMI67yMt{xzu%Fgtl1>xoV=x;}t_WW&YrW%4EC>4ERi0=3hL z2lF6T0XI891DhIeoycaY0q zv)DK49rFo15gpO%W(Qv$>VsHkbOG01_2{8jRr4Oi<(np!W2$J1Wwvvo2C*YW_x`34xdyM$yAJ)|>g z&v6UsfEGTZPe;{#r~~LtZfZHt)P@XJtIhRP?tMOpKCHGuTSJhXe`*!_UXTv5OMeBp zfz0a>dLy4QT7LmQW(42!7k2w#9F-6}8h(mRY)6t0-Xj&N7EU5CKrlV(jrD!ReIbQ@ z_Q-y5d_LzW-fM{NaqGONq0gPN4I_LRt<~my`EOxcF`s|=<}dRwwT6p6`!UQfpFDxq z#CU(|M9uTt^9d~n!on;U$d&E;Fh7~JeNn%~C{PaD*5gI)1F2(@KV`Ljjd`10_7Lg> zI%Nwc9y7%bzj*25<54hX)(iTz;~mi#QGgWNOyqOS}afx;b|QYSelVcBLQ2Yy0BQn zLZXEXRu1!`NO$zljepFm6Yr?m&8oMoUVTj(-FnJ#$FkaG#$m>>){f^|%TUX2wbP25 ziwB(hu4AsVxBjOpzG=K`*ZY)bvDd4|m>zuHT0L{mG+i4FDXYzvklUXt5tv~=2NY$ms}JiE8sh;CN451$P!nE-kz!CXI-jVOII zG$2muk4y?X0JYfP|oUKMQ#CWkhOtdn=XIH%xuda%iv1V#`c$}U#l^g?S z`lLPa7;))%VA9;3M$P-rYm_9&IdiDkQC=xumMxXk%bH|bdQhG!zf+7;INTm5@MU+} z-M)|3xYs1u=4`m${z_mU8}-fdIz4Dk043wfKDT3hF`ko{9u*$;8D<$)o5MOe?aK4g zc*(y7J-i!39XlK|850_-8eVth57qk}A#Q^;} z5<3Y_KFYB|BT&s3TZnuxA`utU)*HVR+`#GceHwVRtM!@HuJL7y$?$m9NEmXu?fF^u zVr%8G5sRviGZC=buTzWC9n4V+aWoKFi?~z}DerIXjh!7behp0>bgYky?Wbf1soGEa z4C@n2Rg2c#+i}fm9gIkil-x_s4pXp;!w!Pi>v_$K?SHjn^9&K)A9_u>0n9g$a82O_ zlapKN1JBowOb<8I@0RK}=ZRMt5-tywpwF1tr<@wV=*_3?2QJ@^7ZkdSn0U9W4?E!} zmWOTH4}Xn(PAWC(7=+|cPbf&U5NBe{p&^hR>H&cWs(^$VGzxtnQXgL_sMQ!!8XjUE z9$iWDXNU4#U@0MGWc&cN-rt%yW5l#R*qWp!e-bMGqA*^$FUKxQIrhaEd{x3FZdsgV z78!U|#xg8Ud{B784y~JzVNmcfwrfz*a1`j4(>?H<=})_2h59joV%*02mWaU}Q9PARy!fdigf-n9w%uoPlsyqkoA1EE{QmsBr7 zUJ-bLU}gdt3ChgCy8{gDP^N3pOuqy>Ox{4cQ4)u=_W-lSngce6U~LlLSiVuc1562` zro!lj1O$taV+?sg3RLm}LKS%u6$O^X*dt{rXJt9q1#uF~d{ayznnKW~IrVs1#?oJF z7TC@+ZfAv%%yI3d8ML{$>B5@v(q|+Z%xSNsImI)ijTACP7EZX{f{DV&UBnY8xag+P zj=^L>!TpB27P}e-ZP$d^nRJj?!IS-}1{t+FD-`Ewy69UdpCs5w(Ye(=#MsE)2;C^% zNK??;(CEQZ{dD)}uT&qubn|-VEAHW6$vz@=3z`~bXCO2MLQA0gM5@f_>QYvztbx}@ zSnDROq1Piy##qse*ELA8C%9H*n#tToA9>#VKSq2E(O0L>kvb-P40`IfS5P0hUP3aB)K>A%~Q6AB$x0>I?ljV54rkSPiwphPJ9P7E+AC@m#EmdoM&5hSsue4e;)SCRMSPxjI zs&F~qc+h;fOy}{`^EKN3WP|T?zSgttxx368xa#sf2rR(s7sK0=w z?R}JdlxdC0YOi(~r|-QqQ@)xA%%eUp6k%y)+ajKc|XyS|;gT>aA~BU5!%BaMb> zPK((#IeD#7B4Rt`T;{e_CmeFhO)PU0&8lfIRVIEmciDo)GD(qu(I4qMfB%Kz9^9)` zz{FM8$Kw(A6;3qhKn)c+WP4rd_^+P zHC%3m4a+(*A@?+c_x)2_gs#{5nU@qLDI*p<#XPv@JG8Yir{{3-NUj34kA58`n&Wm4#;k$8x{jzXCJ|TujR(67-JT%xada=~+_VjG{K!q+R z!BB`V#yZ4d@iI4%$Iu-drZ3uU%?fM|om%~x+MArrf;!gK!=h70Ss8A3Z_YQY=4x%X z-F;}n^`W8c_te)r`=h8h3mU5HCw;!P{i|ShRU}w|5i8W`F6mlDWQlD}t5-^Ls4dXa zR_rP@!k(m+B{~BC-g8Fj)DFZYbUL7*SBD{Y<`3l2uxDh5tBXwwzeo>w#U9XQE0$F{ z+d6F;VbrD#y(lv0$3yt+FJ}iyn<=HuHx`HF>mTkNdHf)oM4Rjhf^^kousu;Wz^Fv) z`b_T>gez3+P_D+-@|$Iaf|lds?q9hlLU?t1u8kKYTakR5>Wti)`PULXz;X^87AP#0 zw&LLPa{*;#+QNxhc5?R77l&RIN0Y@WN;R(W2ciMzfxIK@yCOg5<34cVw|8C^0Wtj3 z^xe1n#kXLI_NWMAvsF5X*HGA&TAb_diAZb_h26`qE*~3uA@zd8gimU*|T64*#~Vy3wAI!GRme{ z08NAcqAvMuWm;jq81m}Cx@D7= zQzO_3O3QJCr?EFh$&F#G$@rJ{l&Lno&;Z~vd^ zWtIFa@h^;Jn69?PnK-zka5TvcDuI!Njb_^r7aKHll|KtL#?Qs=Bcl=1=colIyC)oE zSzaeTa13XizYqirkaQt=AVdXwK`TJ1KoFJXg{6Q3+9+3Z+AMQ=0X6~sbG6Q(uF%Dc zwh~tbga+=BQu{=Fi_wW#?hTXr65GlLaPF;ELRLZ%PL`ivB78uZPBaz(h;;7|D-hlg z#1K;upghp{%&r~Nvxijm1UU)u7+~t4>fr4m^9uF$RPsw&c}LZ z!v~b-3z9ygtKsVIfnVWPV#~x%IvBlkx@qR0PI`VqF(Cfzs2&*^*pa{g-~=>I@H|G`}v+aOx#BL&MKwup?_6^{xub1V)#w>=~-eBq4!=e z^w(4<7=Ow<*pO$G0DvMgOx>J}DXR68xZop<#)RR^b zg5g%9Q{9t!ti8=uK|xB#{?y9rsK%st${9kE;o8RQ%)85(s9V(^-}Px3P&h=xws~Q_ zzviKC!--6#s@#ryXq@r~(M)aGtwfuFQ_)`S#}SaI8s8Vf@`YQ^)D&Vh|Bo%l6sm3a z6e_y8a@4Da@g#pG@knAN`+AwI+uSYTmk?mb^3ha&rb9)Oy!w{q{Y|0-bbO`sQoWgWPA&-7d>7!33on(1#q?j34{+32TRC$6Jmw)-xPBoIXRPB<|B6 zpJF~joCNJGo<4*7WFSTQq_ZK&P@Lg;C%soUG5GXoPdc%LEQm#dJAxk%mIHh`wavHN zN=rRieh{|+v%P?>=MBCSwkVMVWVC$W(Zn!kBT|?J|7O%-EL)qU3Cr7-C0CWa&d|U9 zlTPZpDIN|D8zV=dw2k74qwelW1H9&&mjl+iLpyaFNA~8-7Rct54EC%Q;#mqd0yw)d znan`~wjcMd3HRm+WSAM;1Tn<1J?rd5Kkv=3)=s7kGaA26r%$3SEDFnYW=Hb4;mB{$ zqC^uxj^(h7;FDwQI$C0=Bfua&;}MC5?Kr)hYDc)*9qkHR8azEa^1kGG64hGnT(;nZ zputdV@Gvnp+v;_4b^Kl3j`Pc_z3UxqF#d!O)z!bf4@|yZXPDg8wI96;Im6Xljt!6P z8XaEOwS%>f8TnK1dqcHU9MNpzN!8dWlvby0U-a6gLeTVZ?|=Ad=i z;fOkUfYexS<++3F26O(dfZ<+=R9(gUc^qCtfR(R;gqG2XL-2EKp}tI?4r86;wg$$x z)_hEP>UxBw>b&QzuN^3AoijxS@B~--Vw)#5#^=(d2uVunIX>Vg)>z{jkP{nGFimYO z4IN6*P)H|rOiJ0}Y{-}MSBa4}aXf{*DlrIh2YjwM6qs<=8KzUp^NqY} z5HvNBMPcPG?rkGMJXrS@m~s{n?7OeYN5S(0i>7d|3F*iz> zV5W2X5r14eJZZwi-Tv$RYo*cgxJ znj(TH)+>Hod!fg>B5nyM_C+>|qPRrEqil`HIHEZvdeGCgzs`*g?X(|s=mF9CO`ii( zC9vjFHYA2(PmO8aRlEl)->#e_dVl^<&Me`8x^cq^#SVw7JG^H zlIb2sK5KIJ& zyh`Eq8~dCbnka|qchMfDePF8wckgxy1>OMB$49&KL)k-#5JEb-CT2Oz1%xlC>V^P4syQG7Kb>cg`5YzSxB6HVIsF*W~PX0Y|24fkK`j^3NKNL z-IT{!;_*g6b3TrR?fZs^*u3I>S9U(viM@x6Jd|c1xq7g2UWGh$6k0I^Jd{*$?sfNd z(RGuZO6h=Hszquf2?L*$kT>f;#iSofIW zq2VFzVM#gCCkm=dztwWj8NOL?nxKCzGTJOPS}5W;IQjH|e&S3*e&HOfF|K#edG6>Q zaD+=E&M9aLL!)m{b$Cu`#DYP$m8A`Z!Z^L?o6E6 zDM>IKW%#@2{DGbzm=y9>AaehYd}FH};&}wDHgP?~*Ibm&skO-99YkF}wP3|ti1R{F zfOO48pu~M$W8}49K;ndVilEs)7r}~&L|(u#18%Pz+QK~9;L~vm=eX)18pfPn;B*D5 z%&1pNg_M;C2sq!wHOwkt;?IMgY3cZId`*2c3N%%6+F3e%N^BEMb{gxxRlK4aD4tc5 zI=ml&nAZ>!{&UyTZt~Q|cnO~T_<_B{Q~Ayrw8o6^b3e>gLh@zSgV%HdU2+3wkfqMa zIe6r0!SaLE{c}vr$uJ~m)E930%zyLx;Y0v7VqPM`f>gl)c+xGvhXm<`9PWDVbYCmY zU|;lYTsw8{gR#R$8UUx^cwmqk96W=bxxm*!^H91#vX!9TL$Bq~cG>&Jt@9d&;$7cS zI{82D;eP)V6!0B^r-Q%~I<*NvbK!{M|GLMnzBR+%bur*G4)&P6*rn|!*1r02g5^VU zPKb$t+>P!rpz9_<(Qjv>>E!2W+h6m=Gh#e=*ds8EuPd?>P6*T2Bqy{VW*?Cc!runW z|G;wT1(tocZv!+m+OFX%RP%xrVvmS%3@Dy}unZvmWN_k$fDblYtB-H%4u#(gZ^+{3 zP0o)!HSW)h`zP}cAd0M3 zBY-A1NNjdkFGo`)@W|jz124eHkaKf?eWtP>YYXs!;l>u+apE%WPBRz4S`N^O9Z>E( zlphdwfz`0q^A~pUMnBE}HY0Ko!pIr$dU^;&N80&}S#ZpqD{*e7Pp3+d@} zlgCD8>`L~U5+?;t*Xqv=j#IOd=_`sw-}NqEgQO8Z1PZw^D$6uPqSSinfEmj1SDmS} zb7!&9u7GrupvQ#|M318p#Lr)Wr+M9t!tWr&tu(n33`nsPl1aoW36+%UCh`QZsfiUZ zuKxItHUbFEsk+*|=-S%85BW|Hgw?Eg=#mlPIqCI|n#aZziO+SCL7DE4f#1U3lo$OW zt1YGk^uwmqCvixQ+`_Vtx^kV<^dADX5%2lucGAXh;YG}FKaEMVTn!QgUSOh1q)SFj zZ7|Cf!_VUzqfY%X*_(YbswFh5B=ZmH_~c|KtuY~{C%990=7p3@61|Jfu13R=;id;N zAGi-p#odz(!IIH^I}qj>s}e9a?}q&Jd&p;#Xk^$?U|3Xo;0V^S<}L#a>7XCAn6B1M z$yY#^eMydUBE~EScT_fFA0mc~$ITNXg2`GaV~I;ujxIQ-Ozcc8O?C(3r(V9(t-G#! ztvKQ=IAUbEnJmzQGT*o5tR>tJ5_Iw7>=9cd43mCmKBmo~O70H6&qmiW<)@&nPa0nH zXC+zWa=q=U=o{D0>;mZa%eoys5-DzlU9qgxn>^6arJ)t&)rpcWKN2_ICV0o06zPVZ z@nwV9oli>E*2Lk(vD0$ML54t8gGcAX%;9QKy=%i==0WFOVQ>DHFm zTx07uBS13{#TYOHCQ3D=%__+<<2FWEl&s1^8@#XGLR_Zs;h&KIGt=sGv!ArzL}YZ? z6dgkq?i;&RlUnRO!md^)-KNZG%qI{-6>TMli4!eMs)_XAp_RtD^KH_WLY9)SsL~vVquHN+E5h(KS%Ol9abH|6+=4h(t*dWN6&w13@H8(=sy|8cJ7aMcFDu z@r^>sNLpPZe(92s{M~z#Q<<&GQMBJGx8(J@lhDB?o6~K-Uod|~UYvsLM}{M zDw1DtP%E0o)o>u5QFspxm=JZpk%c&BA|wnYskms=DpI}FON*A_ z@D^3jK7H6qkvy?VUa`UaA{s6S#_jUYJ;nL%VK)60OO9)1Owaku#e6rK&^}2?B0h;^1Y3WK zKsZ*VU^$!~96J(Ayks8xxs!UPZ0Oi2f0`0UW&p23dGVhLkBqRg^cB}LWEw(Z)p;I3 zqC8HSv-{Q5Ht%gl$Ee}OX1Lc5ZguN@f`T4}Ap`-(4=J$eq>YgO`sS6BC&hQ#1X4TZQ!+a%b z5I2FoZc~%L`stOBYIMce1A*Kcc!GRc_~kS&W=<<7bcL3MuyK&Zn@KrEl2?>%X|ay7 zPl_)cOw#n0zAu*RIVkxgnY>smlrh;LD-8J}u}Q?f*dCjyOy_Ru62Pk#X4#Xp7p6Fi z^KCmdKVl~$@)D*HoXW$Gn@i19uSR4XPvrPD3U+D#Nb!Q&De)=5r9B;;Q}^?NNP~yk z^ryx{ro9omx{I5S+k^kW{uS=SO8iXlzHP|p{^OxzV2q5Ok%k1GoAH5BgK3*|r=gigiUet>oP{K9#q91NGh-L<~vyl^(6P9zRlOcRw=;sg8RE1{#5`@Hj zQ7UqQlKDUI&=Z6Z(lfw|r)i2SLQj5BIDU(OuwQ{GoH*D^wU!=FR{5on#I5x#i^OEP zYGCo5t78swREJ1JhnOYHTJ`>t3o@YX^YSuiBbjey7;P!ZE}$Y;S`tfaPO#NSX$~C2 z4vxpo;zs0dq6LWVWWH5mF^|ic6*X|am@}q_P!f}lpvkeZ!#y@iL7Bf<0V8R1Cl`~R zMi)Wf+uDiA=8oEK(H$aY`piY@r8QJ*Be7u2;jp66gra`yFBH6k8p5OtTlLmr${7bT=#!{c%tu+irpLv}wOZ%jf^|~Qma)Mm zkV-NY{zgiWhr6i9UV~gA;cB9@&v=Sg)hC|LM`dNffWuOf(<;0M=`v?Rl!h(L#sOoiW}g zd=>ey>N4YL%PB3U?!2|(p-7=T!qe`^uXpvK{xFd;Uz?d(jM;Lpzoq6|^dMxbDxHRm zg-Y^Iys&srZ^O@o9}`u$#!ye%ZX&HIkjUt((|Kvn*MNpz@Ko3HU~rY*()Ss)1*_ZFCV0Na@CUZ2 z@sqUK&toMbDM4Q^ZTlOAxh!citnCfE+{^Jj8IeV*l%MNE94%O|FW5&ZJQu8hY{&w6 z%1R=*$hTnud1MK2FZ?f%EuyFoO_KHmFDJGml0jcHT_T|&TrC~5Wrz{c*kzueSy-4i zX9u2G`Y!lg(r>Mg78jfsCRGrcd&>vr?dD(>qE;@J-Am+6n1S&zWfMx|!oc%3OLp)x zR7VW%m`n`#^5l1^#lM=XQm1ZzI5YJxVPF*}hQjH0oxj@C)YSBli@fu@$K&G&nx^z0 z%!P!rwg-vj%Nh(+VrdI$UlBj2HyOQiZ3_XlJG7_fT_QE=IKkue_b^L`Dn|e=B=X|# zNmtcs)cwG@;|66{wuuWET7qI<=gepc0<%uA;Azg)HiNVB-kv#ETD}$f|M#0+FOtKm@|>6 zK#Cl}UlYSDfR*ey^_l-Nm1n}4X9~<+EEO5Lo>8Pol*B1kfyzSKlxjR>MuqkfP zhjz{%-?q(E#)pRWJ)}gEcaS-dv6%I93;5T!BM*mOQ6*S@$|{wH~ehlzHHPxpruNW zXrno|P~gKym$}zI-4Ph*3v~Pq@f-FWcj560SNfc*&<>mliqZu3l^)?Ufl2`}OZrQz+{cq2B4~1NwNMbqnWH zHZ$bY6-XIeQgqH9lKfBFYutCL3ZyXu)qW&(0vj~lxhpi6lkHhwh+`xlDf%B1ki|hD z1S+$GiDyn7?PuT`U|Qh6e<2Q&aa(8G>Jm`1RodC$|2YMlXApu>?Vd~fV>Hprg{10>X#Fm0+%v*rHZJcy*HBQ!qI>3ju;G4qkwD}FZb5i zXn2W{FgjSQzg1|wM!BAunKWuG$;XDWV9DUv(C32PN^`&T5}7xhy)DX#!!DBEw4UO; zbNXu=ChPhl(^*ex?N;$3CQ^x_jB{LCH!eC3^$;wcC)+@>(*nn}FO~^kBNu zZ~KBUOL;0t7zHLF(HsO-R#|2NPA%Xdxoc-{&_&3kVA$xY;NQ)L^i{&bDU%c-f%c&nOOcy$ z6>oVQC6BBR0e0b9hN?<1L$k{YDwdi$=5f7IdUN=8RCPE~mRemJAKj760A;t%!VPJp zs_{8zNi9!s#gokH)g>^=0+HPTc_e6x;C}9(q`L^& zVt!y__Ko!ZW{c?*c&@+XhFyBvEok1<^kv&J06OcnSpdZI!X*!D8Pu|nfNGOM6`Bxq zV04>cJp;zhBDW3)>q{t=N8XdWAt`7YXe&(2on~p{4lX2q-o(rgzl-T?5U})={H^w~ zANR`bb1+&zoNU1(l_DtMNhGGdBFLo1>Gn6Z>bV{yo|nM+c~Y62Z$*^d{m zJ^_PDGE97*i;Nb^tNr0_z8Fn8cYHu8n0;$|7q!A-|LFh5^YaMl^`IbSeg2)M@bmnj ze)FJuIwqkW=Si6_fuXF^Y+Ix2xQY|wwZY2`j^QRtJElE>czgllQX_wCSiK=Fwsfg- z$*VLEGfuGzDygqZnKEMhL0GOS4)!qL^mjA4nhlSAfs$f=PNCUF#JR=qqLZ1iF%>Ts zITs6seuv0;6IddP6R&h`2s+(myxe6t>{7KbmIu0dg5~y^^4Dy)J8$-;GZcNxu>w!2Fd$CllBvMrO223-*SvFt&J9-X)Ml!y8SJi-$S8|!+}<;WJwEUP)n-mcr#)jw*C9uYqxcI?=D#o8;@ zh_PbM`N)7-M-0SycCRa*wYILysxM+Ri4#Ibwh2Xn1Q0Yqf{6NwwDA`J#L@F7sUw#% z0xssq$V;t*Mxqm_QGpJ9?y1Fvxsn_dF;CeiEfODBINUw89GPdskvZP%?ayf;i;pP{)=2|TT@Y)H zH@0hwBqZZTJv@G>R+St+B7fm;I?_~%Cr$yOZ1ddZ@Jekw(td`571HbyJ3Y|qrj?b-my&MyZgBx?s- zpWcl?`=<*`m)sW)E`D8ZZ8IbJX_L?VxL}Gm6|zuxugmks}rdXD75TS_cIO*#)%Vqy)yeU z^MIRhdA(xc0DOVM);h(YS-arU{zCEP>6IAZ8FYo)9@XN-^WUHlistJ2)GP`Pzc+pL zG$zDntIA2JfH1Pu_hC+qO~aalVfbt0BA6O6v{;+seAijU2;`ZtAJR1_;U|RnDvL48 zB{!M}Z%0ap+?+MrFN*ZmW>eWzBDpceeH}N!xYSl%GTuWkI`H`p-`2%EupM{RWrJc0 zP(3uCX4}D>RF?%&;Jsd^FF}9PLgzUs*;M&4P1Ofp>9k zc&+}%t7~3j8w_ZUb`3K_7b9^o9vs#yl^W#A<6Gws(wDldk=fchcFVg`M}5+^qHu0r znljo2SujlT?Ek9WtUOe%M8?oSehy3`S0qAKg7g=k`lCdlBx!5FDSxqq(9#^!EXX0I zQH|V0&gpK%P&JS}%fPC?F=x20>0UI;n(;aS`e3XU0UiLp9E@Ggo1)1G^zPy`rUXJy zI5w$CTn_#W?=qxE&k%o5v^7eoSH+@YR*R?a`ZZpSCP^X~50TnhTJon{GIU)mn<7u|PzZ#7Ydl=27s zNU&<{%%uQm|BnnFgfP#sQs%vTOLOXb(=yMAPzkdzpbW`Ab+)Jev1n`(M6qSKHB}_h zz3BO~Xv!1^f5#K{??p@36e3UO_(7hR&jj2+?t+jp;JZD)8Htj=fy&pODbQ|&4V|c3x-9y$WxYO8{3uiD9_%V`Ow`e|iM}E|^n*wSv0TkleUfs9R~;%9 z&kd=sXw@`PY6z4pttIYT5brImKDh>QnytU|?Q&aYc;q})T}3tVDB*H~ko(W+6iFFQAPk>>G~EJ^G2Z^_=}zv+1Hhl<}C3>-c;FE%qlssU|WzVVdu%yOMV9Yp)_ zmUW+Z3hVYZmu|m8J|i+CK1eT1KJ1hirpI42ccv$-Bc_Y^EfM)v2W?`I`TX=!1qwNV z^zHTY<#Njp1dG;oW7-1PH_8sn7#H_Nn&yU?y5z9jh5fPE#>3h}n>A^T#6k}K;1u9Q z?#}`zNM?{*q2|?yeU#A&Tw{Ie+pTSEgj{dP1ZThaN0z%WJj{h<MJ836o!N7w|+|4T&8j*Vd`!C1FXOln{VrIf3EE*2u-=#?g?vicON@i_Z zPm@Gw_N;Zo##Bk+1i2FC5rr5+byJ)nfE~49kWUx|NUY zd+ZnfKH=QL0sS^s9{>AKY-X!$de%qlHQA^9zPv>~&1&v)I8J2FzLGcyVyXX2d_pbs zK^Jupd^7rC}7uyZtpTD9i1{9Vn)UOXEeuxx2bqKJ3W^-!)*rG zC`yx&!Kl+!zT;9x>y7Jv3TGe2qovxLn<@alT?MEJ4 z6HPbbn-$xuXsNmAHq_(GgXYLA$7a_ zXWO0)@vD}t_rS!rGUr_pT^_J9d^qZ(MvL})ltdo}=e=v7vEQ8UunnbQP`Lm($^`6_ zD(6ar8ix|9bBKBRtI0D8K-l?5tlF~ zr}ZA_#VQTKhi#~?bMog)EIVFr#K~_Js6$3;uTg*A;13xlvfxlGIPJm1wJUQ{i-kVPpKq zi9C@+hDIm5E`NzQ)=Wb$Lt;EUvZi{xC>*!5XMU!k3}Q!c7WVHp6CX(w>17Uno=;|< zpP2l1;~}Vxf{vx?gl~C}Y-TOn9w#CX)ZlDDi;&%Y7bRm%Si~MEG}^ws8-kmN^c-?$ zw)zjw84$!u2<=JlCB>w2F_v07!$|$er$+xUNjN0(BK1633g9MWqo(B}yialtbq8VQU*^QKdxZ7IVur#!byl{7s#=o;gXjRnY#zhXYHE;t_q^ zB}aXQwS_e6Q5H((O8UUxd*lPm1H=Kkw5%W+Oq)odO*|HM>`Ah*`D2cdYsCXayF2$p zD)Ssb^5VWdy3X$mAL}3aJx0_m;?;sS&cat;n(gc<2Wy^BKPT`CFMvFgKcFbhH^Tgi z5ARu|pqA=T_q-L?{(QaP(9W`OU5#uiiW_lm^Xci@*-e%4_V1sL!g`%2=ODgwui;99 zjaRK$M6kGj0|}b*#i3(yToE0`Z1UJ>?$VmDwqg1jd_ve4RemVk6MtE)+CNyV4-^ohJaEmOtzPT zJy!?Gm`>BYJ;t)SY&vjVY+8!N+e;^s4kqoL9i{E5 z?8w%J4~CA|+y|d*kt)I;gNFB3I$V?*t^zLwHqK zF2WrmPKO;Of>UjvL%AZo20MljA$l4t;-%{`QvLZm5u3CPoG==n4q%%E=Rj#aDVOOl zk)Q|hByQx|b9T^s(t*c}`ZbAi9!LPgBrehs>AZ>(UK13)v?aXvhqd-R6|4_55bD37 zig0MMv0XI{3i16|$b@?5+i#`t&A!H?$JRwGDSiifdwE^ErgPnlnQ3UJvs*=|Dty21 zZAHMQ1W^Y?_lPE6VX}UYdf;|@0ar=p+<@#7h<5=+1Gkqu4IW+~&5ted6!%mS6%Rgf zdTFcX>CjZUoG8ArPO-8pqmfE4O3kI5>nvR=Ue8@Doa#F{IBv`K#WGH^&a(dGszabI zS)<<}_93JKOXxCX22G%OV@9cSK1@kh&0QI)m&BnZ{1&@qjWD!Ihl&Er2HDJ9Iw%m| zlRu&;t2gp|;(N`cIkZtE75T2+w8q=O)5-Ka+&c&+oh;sPgxJj9bNFoyQzxWdYCNHX zZT?`z+7Q@z36Y}B1^;Gn_bg+{b-0GYVldh%b#4-+A!xj=%^{8uY7CXf&{7qK>vOG< zgT-@$Ca#QnFo*uyMwC)Hg)#oX?bY1fplxYnc8DbjX8NY~#&MljFgSY_myB@iyS^tUVqMe+pnnE$vH&opbFp*miBDK^KY9*m@+A$C4g(|^vtUHDG$@O+0 zeyv{!JCq7`I&!J7&y+nP6qG zU(Jt5Bp0hJcC<)lJvsHQP~TVNY^lV`q9z z3GBbI{gkL+4d%d=<<#vGuUR7wB^K_QS|Uy6(BrS1ZxvLhk`vRvm5xGa-6-33)m7#y%#{1FJ=ltS}Plx1cqn z_!p-w_Y3&4!h+!>>=bhhZ@nFRFsPYVBt1|%Y=ao(~dH_raEjODJyplioHNVpptP4VE`D! zR9P*Q7zL`HuE) zt11>-|0_$oy;R&YE6P}*ECn(-r#um~a9<(qZ~|j|GP?tbm_T28rqNyVxOr06KmqiE zKy|S4S5(@#QiVQNjLbP5W4DxX&tH)kND7q1=;4C?KT{Kyt6_;y**RS)@{-M}K~3q_ z+p~k{1&LIt2g7hd>oxW(u(*IJ)gpk{f+h2%WTN(GjCD(tI?2N(Ek34%@l?7LbxG@~ zR^f3kcwJ4N#)v;z>hC!YEKuz*EotlT+C2Xjl;!|y+ zowDJ|lfyb5<0hm&2YiI-W)_P#poB;4kDVSF%nkF2B1fyg4b^WB4&S-eTc7h%e*T62 z9EP3H@iu%5u7c&N&6}BBPGK__mA2&`d$&i&he}Rbj(Wd80m=wkh^x z>u})`ek7dXW_Yi7xVqeufcTBp=X3HZ^3z=m@3m4mpWo_RX$&q`T+i7fT+f+pCe9!! z7k9NNk(tCO6(b~Li~6-reCv^+GGVG0`2b3K>;BCGTMpXBgC4yeqa6D`wq(iL#)bd* zu_$#VXeL(x>w;3Pe$}*OV&SyH`84KhZbT$gY-@z#CRXQw`sL1{z9lN}ES%ek8(8@@ zOLKpuA&W{;gnbZ=?PYf7<-$sgvP`tK*87xDE%et!z$aJ_j}zkk%@sBm><0TI<;hAH z?GVcBCmlsQ)5dyr-Gwh?_YBuW&D5xUHwsM^ipTAVZo zHA`iBYD^m{JGSTE&X5<01GLhfMw=|pWXFd+u|%g!fR={1@!%If*cCVj%v!8Bd+7lBo4(%{J~Lj;%l<;j-atKahFMQOO`d%X=c{&M za&A*nKp74qi|Pm`nHhl%=6N6urhGTle|FixtzVq&Kx{*DD70vz8Vcq*E<`#X>2Or; zn3l}(dufn3E;paJt7Ce$)=0O;rBt6HXzsszKQnnIe9S*xz9jN^lZc=u?4eiP5kXpg zRh!pVYz^3|*H!`(c<(ZO`MM8OjDRzKi($R$3rPh1D$y+x{!Gc|s(n}~hgbORjoY79 ziuo`_v;NaJ`m`f1Z@)}5jv%7ZFZ%B^(eON|G>wm=Ec?{>0Q(7&aiWlhbBUM}K?U;~ z9pP6MIpoEkmbTdQXXkg-jPnUL1y+M6uj%(qq_NY4TJWM>$4);9Avfa!5WC_}Piv_f zzyhYQxgNP-pm1m&j&3RQ!Au{A;Bn19)(3`!oi?^bvXt7jmc#Ken*I6rdp;c9p}fC7 zPeW`%dY?yLW*$}+ekpiQFpiD&ATH!)nLmG$#(|&|Jp~OHJFI)|Z*Wets-R`e^_ka- zOG~sJ;!l8~RAa&%Q(Cqe4c1T48|;qKkkMD_nSzs;+lK3cxP$L1>;%)hDThq_9eZ;( zP?q1%C`^Qdyvk&BDej}cW2!|^%1@CYfcL)`V&+gCZrD(}9q5l?npjV!VJw!NAs5oA zBdNDEQiITu)ej&GeH|z0A;_v8K2T9fHBXI*KI3AXYX45HahIW^2K{p)B57g7#2rO@ zo04WP*cc@ARepx(`aZiM7=)&GMj2Kz{VX$kObCZEGqolykfa&(s)hoyx?g=eTCHEX z21S1qPm+_+sPwi|6MLkhkRgV8?0NobJ7J(P{FJ=?H2(cLQIM2Tjq%Epuneo|Ap)jy zzgeBZtn)poAS1I#?}O7-w%-9(@m4E=4T#Z4|+ zU;gskp%4ENX|Z3(cZt+q6UiZUoo=-LUX4uPm* z@J>7`!Uf5oq%a+t5Q3Q2tyCJ7l2%}YGx*Zm@S!UMSGz(q!J)ZYlI!o{g_rs2XnL|n ziTotj?aCgQP6ok`ecXpz4U)YQhx;j2tJ5Uz?FP~#ztZ~*A>b(px0VRgG{CXlBB@qY z{X~6lRd0!~O!jHsdqDMsxuPvm;~0Qtog*wD^< z$f?BWGNz@pxnwysTCU1uYjy0!i}ZW^bMO^pMJ~u+Hs}vVz!5V1$g(SgQ)$ z3Z1AUFK)|&s{7zn@)QA>!-f=tQe0X~`gH^)m+Q7f&)^nzj@N#`>9h>as@HT}fy*^_ zf2-Xkkik5zbl2Bv&JMk$&*kFsmgniBO78jQJiIl^jSvXUb<~c|=(y&gxKUHTlX(bZ zv1SI9N^&z&W1_Yed;aBYV03@K8t1$6!Nm| zYHP%H@)#W&Y06C)c{R|>6Zo1VI>=Fff6U?JCB zT}BT9*qA+wC+?P(?>b!B(%9M2s@d;vPRpA-4cD`$P}{A|24{dCH;6t9E~vh&9#uX{?rc2AEsOc9X~1dk50xhE-3Sr&w&HwF-$&oezEy_4hgj)Mo{{)A zPItKAr13@a3XtPU=fjXqX51PaQW6}BwRGT}l9RO#jxnUKUWHQb!K?L`8A4W9tP{wA&IkwK^G zc$^>mh;)W^^l7=Hx9;=1fYzAW8w3p`X=1hnp6`OTF^)t~^C1a#tP`)nQ|MwU0TG2c zc>q%?np$5NlWX?OODL&yrasC~lYbs35M4*ZA&++I`zGdGInQ*4ei4nS(;nCiaw*p$ zyYSd672XG9*0jH!QCL4D+A+b}Xsq74UWWh8NKmkeyLI{N*^d)^%d+p{&(R7gBNXBq z)!Jw-5TsqF;K|!raYpy7!_?WkHq=j`qj!H6oP(+!p7sb`(5O4sBDO+g9nZYVJeF~x z5lFR%VisW)(K*De#-Mgi)WN0HfU0Pf_+|;j1mtu&?zmW8el5D4f?K)1ezSQLFqd#w z&;)iKz0|3=PeptRX0E1NAge(op&6&F(7TEu5h1FpD1UYR;PP&B$8+d2FwOCK_!amK z#G`Wcot$&aGf^25iW~PLhL27O$^Ba!L77${UN^?Q(~1$jd2-i$pw&*ntTB;{imcY2 zII8)MKvVG$w%yC>3vu$dNTrfP?$K?0?cR~6430&6jh0O>fdB7D#-|cx@vy) zq=vnKN(Uwy#9kW>fvs2xXSo6y{g?a4qy2m6=GH!^ru@NWhoMqUGUABfxL8qG zMlu8GPi&XiKSr2#_YO2d3rh>k{F*JfpY_z(jQfb>L+-gl=hUr7JVt(@bJbcq@iFX9*&Ry;k7=eJI<}|Kv6cf1ZVqD!z22NG=P~T(L->T?aWaXvCr+QrS`IQHkZxbmaRO`Cd8yM4y>NiZ9!b?x+>(a|STF1%W+k!{U( zSxY1a+hKV*iR&ZQKIsb_u^U&TV1B#vCr8EtBOIK{rN5F*py&5C`JP!QFk9V3&TkE#X;)NT^pl2lp~A|1%;tIgh6vxWBBa6EIosT+YaeDV?CT?&7IxB)LgKwIN-_;<1hCP4 z3p^j<;~W(X3~j}Z+P5?2U!jhc=(x2$!g=C8@9JM3;t_ctw2|Q9jS-#B+g}=(lbMy6 z>o~DGZ8;%41!SjT5*;OYja4ZZI1q}n29Ap&E_Gk06Yn@6(0TcNXUKi--Zir_`nV1tJs$u?M+s^W{ephVokSR`M3% znUizLqGK@zs#D!-q-IS7PnUAfJC8%p;bR?Y@6Cw)dET&i*!{Mhof+-Gq~P+K*nK3` zL+ru&;s6^gtaNfWckf|`ZNoCGZP+Q`902v4;EgPK+FU_gJnDq`W#F!yIXXp%MThcD z2`Yqji)0PUzZ{R{ye=7hs9D~2tGvn~&|L&G-R2Um+LqEt<%aJZL$Apy%pvF;;}P_j z-KoNf7fqh@MWfPem*_k4-t2Mv1xi0_N-5;*qA8l)q-yOzEp%HrM z&qI=B z%s{DwGQrc6KzUKDzJX{OH5@yk@I=db$s3RdC$Z5Qg0ygbOq-~I`;T*nZNF1Tgyl*N z>>3hOciM0OCHU8^!3)$gYJj8KO%2=j_BBug>~|R8!+W>8&*}m=D%ThM`h;>weW)k6 zBzFaD(z7Oy*|K5O>+K|Z;O>4Z8&_C*R=T_X5%lI*VMkg8Y||sJDD`9}_fG|z5Wc?3 z?8OlEQ|=I2hof3025}{Zv3R1zOz*Wa_>KOsw0V)rDd2th##p!E6S4@-_3GGWhp9|9 zaLlq@CUPoin)sJHd zuv0($R!K2wj+gxt4e#mqMddj%33t==;&NIa)HOXv%;z%Z0SiMf&L@LukN-#vhtfsm z4d!W&%sUWfme2TSS?%^M*YQskq_4zBrIHh9cOaok4a!6Y}N1s6WhWnH9i%zGr3TcV;p2v0`L* zjSabM&uhP7@974W>=0eFEx}r%*EqxJO%kXjBXJ`mo(dAE>Pzf7VFMtfm!}R~FLDE* zel1Z3@1}@>@*OYeg@Ofso#N$z8?;75)=Ty2CocDz>YS|C1M2+t@V4vqX7s5{8awCb zVfayn294x|f=^7%X~q@llEu=4(*=+JNBGTE!C!<6q5@V`gwlIUTW;byJ`Xsw@@Tf+s(bUq8;n^ zWv%Cm=Z@?9i-hdjPgS?2$H-%rxf-r-;~e?!hsnf5KZsc5T2kHDPn?zx^(0Q)-NZg! z#dV^XDUvoNrDQ8kjXjrqgrYz*a<}e4GPXWP9EbJ*^BD*K)8A|Ci@D<)h1@mtXAqu` z^U|7r$;c81$!80eeYqqo6PxrM%Gq(~=;l~f_JDPg$A)#yh>;?3I%xzojed$^?u{~R zK1(v%*WaC^C7#mw2ZVp6ga`S*95@K}Hx+Yr(XnU=y=Vz@gzhFuN15*-{$|8vr#aO2&o<{y1p^VaQPT73A z0(HHplDO={$cC+@x!CC-u>LTUAg-l!t87B1!qVjP5S?W(xdg@Ic6Qc{LvYNVT4Lju ziT$#btHss#p{T34pN!kj?_RP_r?jsj$ej-FBj^Uol6cKSlg!kh7ch*d zsu4xgu2>)ujW52O4hRZ3V5}oja#S9cNF1M|ewl;l2-sP=pFnR{>`MTsUU>zUmDU~@ zn}x%f?JpZ;G-JH=zzbPmhaBKktcaO3F;|4->_&hJLS}YRhsHS4CrMmPAIE2^b!0k@ z@1ASjmTQfk1`oZC6)Q95GB{B--3kF5N#7#W2!scCOyqKW^W!Wdvi|Tk&mPf2T8T_F zDwtrOh9|MwRSZ&m{x`Vz)~|g(nK%}f0F7gV?)Zaxy>tI1H4vxCzJboj>^B$fjA zo$!ds_?a)+5bLW^XA~qCyiwYBQgo>XdY1LifI(EhD1w+F?+ZI?Q~Q+B){yZJBvRs8YG`g#~;_{CcbwCt@!T`FfBw0EkE-GHaDZdBnC! zz^PaQvN(B6jDN!T--UgX=k8{{NsEgwMj01?T=E~D%c9uH{%C-h6!f_L`QVAuA8jPJFrDy@bovrbu@`)G$rO%!Vn3}_M)C7L5)@kk z9q|bo0SOf$5(~OqYBaf!2ce7TCxAQiFps#$yeaH!LAdOPSu1YI@;=gY?P`bhl9a5b z@OIkWpP?*fHiTe`0EUz$2_We#dtyKnAeR+N^rB3X`f)Qc|8Zh5HjJXnG0`yR!Aa#b zoc_ko)K!bY!o&@R*0lY8yal3_$T=(>LJ}855@L9DpG57$!t{I$%%XyK^Q_UyOvPjr zdm7=}LtCP}oT?*J0g~?l#S$ikYX(ltTrb#J`GQZ@jj&XDBBy*j4*?MbTP%MMgP*_; z=(aYj{CfIEfdWqGj0cg@h5W|9;8`ZY%)@390r8%f(S}SC0q^TlV}mEAq1G7o5@`%< z>DVHX+J}uSUSVBgTKqaI7X}PNwBl@BwsF>HrkIH)tQ_J#abyC!c#Bq1XT8qj>qv_o zj7h_?%4dcb!=9uLW%wK!^2N!A7jbqh!o&za`1{jvDa00SSH?VJ!85>k6+F8HNxh=s z8_DI!=_lNw;M_&PBz{1I*%~*)9`qA@xd5HH0E2-==VZ0BCJ~eVb#Uny;;D1)Z(|>H z4GGIbepd4xp_)8;(YaUM$%0k4)+Jx<<7#igM^3Z9?`T8aOceXyDj7DTMx%{^?PlBd z&f~r9I7>jktBNj}6b0TjfJUrOJYvnQgAD{(6cX15NScKgKpx%o9#vs-hzYyX92 zp$+I7TewCiX<>3Qrur4hZB^_-n)_wiJZ-xajM0f%WaZE-!(swfC(GtxwGtL;mZ4C5 ziI%VWPewr`n^;7`40D9cFq2C}r)u-6JAMTxTZRE6Nf9!(1BYc>OcuqJ4^ z7!u$vVJYhpNsY&jH|xT7-06m6#FR09maepqG=oY6eD-|!akYADp%c&d0s3W0t;plm z8Oa{QCsb2KS^^@NL$lZ)Nf+PmB1vfwpvr zQj3)|xp6yxA6AJNy6T_dm6p7|(?eGwEcrRA_7dTA@+_A)AET7`G(ntldpo*ToROW& z7qzPrT&B36GK%L0(c_Q`;RRv-3MSdXF6>onmv}w&sds8}gYF>D;uRI4asb^uacF8w zaf}{9_IKjgPFO!r!jYE_RniB$?)MjTD|S|6 zcrI9Un^S-(a#&?(&J7Qy3t|;+KzI61YB7rcXn9yQ7mFMf-ACB4<<$2k&Ttv5?!w}? ziu>4xMY|wwL#qd=@I#-h>T>pidx(>j6hXGAKwL9X9F`c7z^N!fb(G*h)Y_aZ`vVv` z6TG3i3<0~ixcpiBi@bx0fXQ-P{u8REe;g%S;g|B(O|~f`hUparh)}>*~6v`&-f-DgaYt4Fi6Qu18SWJvI=pe1FWF|uO0RY z^ktw=8zGeq$$w^q8=^_j&IKM^8=5gGnJ0Vs0NkKEbJ^o z*^TEDBCG?)2WQWF97Y_gA`_@9gPHFiWIdTYIWi?;l6(Wu1nn@$-Jtb`TO18E{?j>@ z7r~MLp~{p>7_HiARp1`(4Ae|tNxDx0BIdBsXm8F+hk^Y|3p?UuKRB!-((~tsaaq73 z+GyGkWfU!?dE~%pW+a3jzQaO*PE;}s+j?&!G6}&6Y2pO zC`9dEq(DA^VyCbvT7iyUW8&UkmRPa$$Us8;DpJ8?VMyi5AgUf9mw8)u6sz!}{k+sI zB#BKV0_XfVq_4Q&!;gOw&wN@T+RW)+MJ)mt5_9!v?RfVVW`p41*7fMN0he>+Rqz~o zLf9h)i3y}9e!X)&(Y|B7b9zeGPuKE{4j|`8^BuhjglqJa(tHwFBH^kGPwgu^P_$C) zqWP}jV-UckUX9Xn2jUvTJKc^7q!KwzgTn-VVQP6hg!~tJ)W4`68+~&~PEMNtndHJi z%kodSMJsN?e1H~C==lwjYF?<;@EBq^mKDNv7R>1lAevDcq>0kdXt$?^Gl4|b@At9! z)d_t<;$mJs$<4vQb9r#DhCx$EUXL5d2cU{Unq(U@`3A&yxdoO)ej856FD;|>>_fKW zF_TVgf81Bgl6R=i+JjAtn_=zOi;7CZWtL;_Tp-L=U7 zKL_Ea0%{CMs1N<|&=hVlLVU$+lJD-&YMY%g_dk_?bW7qepklf@wxp_0-$963GnM~~ zo@e=Y&nvpw8sX9W3(NX{b-Sqk!}j_A!gsO$oJjsZ@m)XpwLhEw;raY)m;ZAV{If0p zcfO15UvK*#_^y96>Hi0c7X!;b6fXu=JO;LZb53}S^mrQohOPcda{UW<`q%Bh`%yoS z|Gnpbhp)8on3#VK@qgh{|9fn!f3@R(muU5K=%0`JU*J{$y0-tr5cr?qRsXo^|6y1$ zvqIAF{fAh^_P>Hy(b2O}v$E2&(lJ2N2M353;qTCOR^Rc?SQcbG{dHY%@vV%yzST8VU%C+j#mL#$*+YiP`K?`IMumI zt-NI*IF_gQ^NeyJ+f%o;Uu`ee+;Yn^-9-6<8ljiqN7v_P{(j&Q-mG)kyrTWf=_VG{ zDeyj6dN2NOMNK)DnMu&JH2^Bhz;S_eIK1vNVy-tnPB=ytZ`GR_A;A0B!ItnyS#HlD&zz9XW zWUwU&>Zygd7s6BXvWZ)+DTn zGAB#GrNfiMR|~oR+SLJPA*>X7gV{=nnFX^Fob$*PW1#pz&9rGg0$GWnMZLW*lF60V z2t0QMFuv_Z;3Zp{9;z!gyAEMf)d{$a(bED+mf7(@-ovcbLAyPMzn;|+_%*`q`{JUS z6R|Hyz!`b2J&?`6)_eo$&LcKJcZ`>~hh?R@M5r0+=!rYv%H;;|mxLzpaYZ}&#WvF? zGS?;m18d*nFT(-EHBZ<*!nO*&H)^#(1Msf(AOL<6H#k%oB2Ecxu*uF>3;DaSD*(>1 z$JIJwwT{+&4WHV65D>s|rz_q=&81518T88ZUFh!#4Y&_*!c%MM{4qglHIFvlxh24Wz8CG0jv;x0+higDT z`M~aK-2u)L{(900x~JLYJhmroXz%H@D<+Wo)fe$71-RB5*tr&B|H*Oo?7_N(p#(d9 zO|$E%Wb^J@lZP6ZU54lC!-K`o8hV4!uXnK81ilZK6FL*-%P1J*&>G0y|?JX*q36 z{^Xf|Mc}#wrdy_3!Hc+s%lC*IQ*iT)s%_J5^O*Qi06)1w6$i;K>+o$!!@fK8v4G1y zu~$EDwT(4t5=b(%Va{&ZSaz#~^dA+%l- zO}p<|xF>k%Eufd{)X=l%HS&%Grrl*UC_Uh&YUh~4mLr*Jj)PIoJ;am|Hn3;mmz&uA zFD?8Vog@=Lw$jGi_<`Q$Z?n(u-!m>uu)I`zI%ZoCA$B~=4jD6EQuc5MTL|Ya1eN@v z^Cbxx4^Uz$)+DM;XzPs|C?B-^`yqg*c!{ENCt$R>dY_V0awodWy=rsIa6}cfD4hb5 z?SCQxGVp?@g|>qxSZ{9YEOBy0N=`S@+7~pQ&d$?_pI^(R!{nQ~B76!c`Ll>PnQgx* z_ki9^0r+(WqP*T-5hh3MJ!`zPt4nrKK~IiZSgYS9yEq$=>Oej{YO?ItPd0g;V>U+Y zaK}Ees0hls9!!!yKgDp?#-{pVasAoKt-c}j2>F?si+0#~_}_K@dZGV)Y<8wsw8#ly zX9hpAINtHx=1pRT-Lu`^ei~YU>fbKCWo%(dw&&J+XX&z2OaOAjGFUD1U~yj}UT*iUl$c9YT?!?A*Mz_KK9+*g$UJ2%w}mz!t` z)~C;aVEvD$Y?PzG3mQjo`^dXCob^m6NQ>FDe|q;V>+j^w=o+1OB2VgF9H!^6)SkR$ zT!+Hd1IkNVK% z3fgWX{@?EaP8HfGdqL?E{nK^SHxI*lPk?KiM!V09sCsR`{I0bUPo8JJ2i<_21mD54 zr(fLk35Q>ZTID*Blg)KPispKB%Z?BWaY2bMI2s8dZtreT%eScw)GNP9-!vC&4k-&V zO&s_8ugzE@UdIP9Uf7C$QyXs&xH-}!=F+5<_ux7mdcv2~2!FoA?P`GRm<1vr4^!|G z)?P|2%o@FPr>TvthT7!2-C%U-gb%Yr#k9>4!^Io(QDcUC4+firv+PpeF>H)e!X;}5 zYZOtxK)s^x7Xo=3X3=I{1}o%$Ihpde%fF!@NwDO7Qw!r%`_UA-)y7}?CR|u;2vEJb zUzD_=bT1O|k=%VMKLO1;;N|qHSfY3qbs<FG>IrZQZb)^rw#H3q)nrini+cQ>wH9u?8kvG`=#(@=e({h&6ys5s|5^!g&*57BE z_dVKQ&YbTy5?3uR>~)la93Oj=sSi3SU3VX_hiP>cDqr7aShk>C1&S{-9WelP58K0& zTL>Ye=-?+ABKa}oN8V}g!dEdtJn|BDFtQ(eDxAT(Z5W?B5LXdxJc2qOoNogXwHLkd zIea<%=|WxSdt!Bv0f`GLE|A-B46?C~xPI}P_mu7+YGO+X=VMug30U}g>>1s>I{CP? z{b&rdxEg&+^-dSkPw7bbQptZ)j>IsFFpJiUI*PRB4CdbFQqsNBO&E2|q=_`+ZW=7( z3J!qTgAyj61B&=bucgc@4ZGpuHD{$V3yBV^-gV{PMhQ@T4G zvxr|Nwvp^+cd+vFS4$_? z!n2BH7Hbi85rdV`n)8@LO_!cBNM~W(Can}-ArKjbStXtr^G@o!VP07x)tx~gA1lD4AU8cg*H3lr#l{` z6MH@OJSXOlCCZ@|iglBNLkht$24YC=M&cQ$nD<ikWyU4oE6K#`*e=; z^Y&`9&Z8b_b7IG{=3Dzz5b?cqyBmZ{{b~BW4dd;28M4l^;pjL&+Yz1b!qFb}{5j*) zczD9;Il*?ulkUQJD*75%PdFqJ9u3VC??QAu8cP@^vKP%76Fabt^YwOv8p6Z%L3i!+ z@;U$p!{df#!uGMT>jA@K-+FO#GEe|RiY?7~!IcT;G4n>WcAL;{)xPf3a%#P}nct!2 zf~atn>b}#6`&J8B(&aK+;Potpe#5~-iLz_-gdsp(TTs&UfxK$~;@$FGfwf|Bwm#7# z^IDPZQdi~mlDu7{{=U9w%c2RRGNVun!5u)ctKN!X9rCVAp{hq!e@wpuzCEzLi_r?d z)H`nr+#SHN(p-f#9?Y?MCz|AV-@438UF z6GWYu9aC(_*k)$C&CJZq%*>35nVFfHnVB6kGcz;W*XP_jGiUD1vpf51e|2|B^{Ki_ zQmad)x1K-}yXjR!5g+xNp&oiOs*#klWjeq*eQk7cmj$hf;^_zw;nMvT_DJj*S_0O7 ztWOEl3yRRO;Wx#sj$j)ytUP7(^M>~e5)5nYSwBI4h&9G~3^Uu)E=yk!KE^=~`|aW1 z(7pId*ZQ3iwQcEK!K+DBlC+KB+>k9xw2Be|@lDiljMHFKg%dbsp6U{QBu{XJAwIl-(r%3Og-vfM#ZwI~nn(>MI4F$eW z?g_?|w^KmjljG$EcbI1w`Ud%#^cgLa+6Vu5kBCjERSaQ-mj@wURvaUtIMBQ#@}%Ss zrWgs+b_jE9YDs{4NyJKtAG;W8MD8?E+MX<$(=0ls#O@IurVMg%(5NH!{fr=e{GL3n zv7;DcO5s!wV*-4R8DmCej!I3%8IJOB=n|AODy6YWT}-+E^D-H8YJ^@vd3ZuyjU^Uf zazYPzsl}2Yt)HZh+>#<~u&@rpk|b?l!T`mRIj!%Y_EwF!?f1BW5>@v>ow;(KZ+RlM zt`k*1jUkL0mxXRbc?eS->cZ%XD#xjA*phyuKef@=lD#ux8#>pEcw?wmFO5-Bj!l=Z z)`)T)(;3ALG+W^Gh56mXVs@7f0telgj>L@~0_Ts(Xc;}Uvp|z=dDkDxvtP&J3)g$1 zx5y`-%oOgi%-!W3_gHghcpGS8xb-u;%@+rqj-qS1=6D8HpJo=oxZ-Uq)e1)=L|B~fk5rg7ZveF+>aJV;zt#$ag`HuK zo}o+#6vxZ^tD;TpQmE)8PW~mL(m%J+{zm!p9YraFUO6F4dX`)Tn*P~QoJW2klkZrC z?AAdUke;bo78-ozYyXEFZ8cr0TGoLg>7KGZd&AFT?_W7z1TRlX%o zal|NNKkQ^7Q7K`^l|yn6*a_q_FormzOZ~}&zi@oRbct6PBZxPr#HN_I6}=B&QN$lFBc)gV9Cw zU!BEDEov9*6m?+r{8(0<$u9a*5=oLu1@%zLq8&|ZogKdCvnSHR>wt`d6n%Pyv z!+b?Y^$&2QwnpSa>idiEi2F+zAFvvun-vTcZW|M^bQ|Yv$0>Ny@{C4Dm2jO%whm$j zgP{3BTZf?KTmr-x&=_5vv~DoAAri?`1JZ5En+Or6qxdo-O|bw37WrY^9)48~tzg3^ zhBV!(3Cv#t#j|vU<`qt0Rfq2!Oe3zW>aT>Y3ly8zHquql#Y`)Pr%~N3Oe7Uzrq5UgRsa@9Ww~%t>z4mNpesc_bjryEL%|2s)i8ynLvZPe<0aB4!Z1 zY%)S7JV4KSAs0@RM2{^fm$YZl?bfptbW~SK4X|SyP^e-l0WpUJDb07Dz53q@2yzv~ z2YJ+UMwqnNxk_`3@$KD;8qCvg(yi{?KgXoCwlCdi4= zXjH{>kd6PUwJo@+Yp}g!G+2yz**~w8HvFl)Dt+c&KGA54+7P%@Th&yar<|_5`Y79F zA6pzBl$wh{O!<~~Rvl~YC-M^>&oc;*51yNp@UMXGR?(_+<>al49#H028;R7o*1(tp z=|QN=Cu;$tFhzl$zx=_TU28?#XyVmlMVq|{*`=94!ejoI}nil65=Y2I!SW<>kfS;GS24emdU%5Kpy zhFIY0&*FQ-;bg!FHZ$owY^Bk^LEH1F-2-N7`g6LKlY&Yh^xo9lWlDnCsFxIdi#h~@ zO)fd@+2;pTuikyo+-z-R&d02m5%x?8i8~i&oMIT^5$bmJ7Xcz|VSMWuD&}vA9ufyA zjot44WMsyrXc;a@Pts=6a4jD{FV6~vY;Hd%9VQ=UWe#!jxKCWS$3Ofw!IfXHot@o3 zj*T{#P)GCXwz<|kPYDd;I8fUud1M^TE!hYQ*xV}_ly;aoaHW`1+M^TcOIk+u~a0zf#WKu;X(+H$k2iG<#YIB}ogvSwws*Q3o5W>X- z`of7g0vb=5EoZG%b5`lZo3^Re1Gih@`WylFj(}Pxz>E_h)(NoVB;BE9GoN;k=$@xt zwRl3zHSf2vjPfy@HBskNv@i-&(VrFDT@lao9064uhQt-%kUiT&G6g*=5(k|DS*F+P z*>YQS+)1M^$T9aM94Gw>mP}_*-&RNG#h*mOSy6}Q#b0DSx)zGb33--ES)oP|BT{zug`*3NW2gr zS2>$;n^@RBb@W{C)?v9)aq&DXgr22jzl_RSPZ^7`eLI8B02GZKs+{%3efSv_yj~4Q z4V;B~QTcIdGDj@dh0iS4k!G8MVVA!5rC;c2<7Iqkk!?H5=K82ii3#T1LbEG!1kk8M zWM$t9jTKE3M+dQLVbVrV+#?b}wSp~*fF3!YJtibvTs^xFt*r?;=1mEXb}+_x7T$fHkg~FKbx`#?8Ho?TbA@L{ z$nnNcFC2W`h>8IcUWTk9*wj?@`2U#-CMA!vVT_M&o~;-l(f~}C3{YT$6mgH8Y9lu3 zfYfTqis(A!uf(%aIQ+8VKi`)!_9jwDTcez~89XOlohPAGUbT(Nw6zy9VU((z>L4Nf9`Ruw1C|2c zes_8V!>~5!*A|j-QPZ}(ZSEf|OB>K}?_k7gIQ@cOwxIqzB2T_aTsc=w?G;7jZ@~RW zC=W$hZ=4{|YIuiutEc7f$^?2eoxdEO%YZu1KNj>0y|I@g-0tcBo?ZG54I|fM9O&Yl z_jyN2EL1zY2Tu z&NN)3MDHvkG-gpJz~Iog+*k!C2b@;%e*Dnol=Qu|lX~1y&+_XdQeq%^!*}gLn6*17 zu%%vuqm8>~6y-Qle#kX8eoCa9@crs%1s}!tSG1}|x9;)s3~FfutviuP(P*tW49d*v zd)qLe+v_7E^MhX-uezI}9Mt?9tIm#e}7NzyA>>>H*_ zY=7pw#CK_Y>YjQ2OzO@Zm?f#{^gX=$eUeWb+qX+U5!cV{NtZrSk`%u-AiY1lC0Luk zX~st%Cn+>*`^>sA$g7*%&?jk7Od@}>zR=d(mA{#$ov5A76Yq^>uLM$lTNCTnv-ulH zbJ>6`v?hdwta{V-q4QGs^G@Crxaszl$={Pt2%c`9kd(dHI#FN=@x385dp4ILty@OB z5T)7g4IutO>J^&}fdwef8(Qd;hn%sD+y6A4kDR>O%7$Xj3+Ff!bmhp;!!k8v`Rup zg2zHK)q)AY#A3!h?^z07q2$r%9NH-D;nyhf+8KFVcw+8E=}766bb>QbeK^Yl#WBt9 zyd@3!Hg&r#{lwsg6d7yvR}2?V;i$t98OXpwW!MzU!i2mo$Dcbyz@&MJANNCGK6p92N{hev9({cPq#hc8G)0&3%(!h^tTv-VVrCoB4BCtc&}X!saFyqrc1O3G zgFyrLqifBaxfu$oFc@(s&ZYKJAyEvm2ti4W<1s7=rHS>Xd;cD3|_-Y1CqF zr*Mu9Lv}(^-XS|04IWSSfM%d3rnI~sl9YddW4!bN`*%mbSLfM}&u^P#yhuM!K3x7R zfL6o2@~u?PY{!-L0Y`TRMZf%HN@jka#M?pp=0N>>U-R4P^S4GP*TzopZZ^2v zzwh5FkGyRUzxAhs1OvX)k)h&!$b%y}@8qz4ncL2P8Hds53E6-AsQEZgt zv_^s9)V5#Kj@NSgyW-WWYQRNLheLrkAT-(F@_*QiG*Up)p7^Y@;j#tu;lgK(+ zWP)V5*19}!SlI&PCu!{}p$D{B!JM4oeW5xpZdzehs_8iad)GL~GOI{SQ_4^MfSZzw zyR*9;aonv|~2Lt34+&a<^`1Cex&$K2AI zH1}4fSFOzP%?~q?Nl0AH^sN9cG{<;C`85Tg22x4fREXV*k@Cx+qfNLWG-r{ne% zu4WYYD@T$HVUu&1SZ2=V*~$w-!Y^7OHD+wWu~tNbo(EC`>IX~*gf{(;WXA)?3x0;N zxmY~cO-*81f%#|xEWQn|$vA8Ue98r@XF@{$Jk6bCE3wi)+9fHU_j<^g%ecsCS=iN! zC3F451rx|^t82L3j|U_?v^VA)t|BQriRLdiAF9T75!^Fd+#DuZ9^dY_{t)IJA6cy< zq-)&It%C(;p1F4Hhot3Nx8LSuwncegUH`C0eZ;^n=7o`SL4O;usWuP(6K`5vNa<;- zBCg&^w$3g00?CngLvB#oi)TV60nSwbG1&O~&ri^&^G>91(iUM-f17rWTtp$}Fcz^{ zZmM9y#9nH}7B1~9E-XJ1GdeAE?=RoL?Rd|(tJU+&5uADNM+E#X@!Tfw+6$LICD4(WSHw^ZBIzDKO%YNRP_^q{liWlCv}Qn%k%3M(pF`Pu_9c zNuNpUJovS4joul7qWZM=yYDQS*Ad9jh|fP@gRA4yR9;1L7S6vQeGO)o@tMO+XDD6S zjeI_3z%|Bo+nRpg`!k$Uq5x_V@mHHfO}g{>dUn+Y)2}T9H2WRg<+Lz%vx_Ye)&#s2 zq|f$LbzN1U#i`wkInAQV1WsPGYwBkxlo0c>KxE-k!9zlgN)4r@#rfm%W}Oc@po#6F zPt~07eA6tkAu0&L7lMzU?KwGrTDC&EYEckxQ4+Om+}N2lFZXPkrisHmLd_<+t+z)D zvrX!Ppyb0$&VN)fPpn#m?Hsd%OFXK1{H)%rc-)c>6Is&Ounj}Y)R$v4gwQmY!yKL| zIq6hEP6^6sRpFdDZN!i<_W~VO*sn9p@of64%aFHiSk0SJRP};cPzYn~A_6lWb+H@& z_&GOR9JQcp$#R^tl=eO(jZqmG>>VE_41~$9sAuSO8 ziZTA7aLDlmIE;g7;PY73IrcP6p-|Hzi zNE|wI8S1=WHG_1nSVc_@Ib{j8H@0RbEx$tsfqd~!LQz@E{gg-v)0VRWHN|_v*GGIGEwES{LSvsgiFJeT1|la zyrtpr+~raGzW2&*RqP;9Vnd_x>YH5!w`6|iKso{nx`@qBJ4RINdo=5$3#TdAA*dmw zAtmP#%ZLWna$^g{biWmSYSejzm2z!Htl*FVJlT%iN@I0gRfM z(0+R8ocmeqEOA7DIH}Iyy>P@mtlaShwByNJnk(^V3^NjP4kqGQH9WSSq|^zln8CHB zxw|`9gZx?3@Nnsy=3tA|KIAe9;DLMch>~6iNpqjc8}xE5vr)5<^zR>KRm&n?+hASe znF!De{)J$PSFBnf;L*M^cE073Sx*YYnRwG+B+i6`N?m)dE(K5|#!BBq-4URe+sdFm z$;@R_$^()2#;)=~6u)yy5t}>t1tCn1?fcZI4m}^-6tGU2{#7)>uhYJ=y&qgxsDe$G zGR{O!P^zuJXTRL&^*QsXtROfj=bQGRHYrM1@fa$|6ZpfnT1u0}zMV5)SCwiVMK_ei zP)|h8qH5M*@Cv>^&XDHu(V%aC0sg$l5H_zX-IaZ`_I!JBsH_;ui4*j)_YF7wW^wQa zSrx=bbYo-$Th7Ajart4nUchpBgm}at&sb<)*euBnx{f0c3AmpY5>GA^ccYd@vDVQfKBB*YU4}g^J^X#(uK`|2aO_z7eT|ghyp^< zDuBf4;e4i1)W!Cj87kX$n}K1w8d2g1{(7W^Cq_SA@96BRHTwIE(v}Jt<9j!{Jc<#y zYW7(3kr!&7Q<*z|RCz7J^>pK4gR`5vl{hLZ>*oZY5&ivz3ZKl1d}Mu=&SJfVrJc@b zI&^Fj-fBeB0xt>Tz^bytaO154ym(}tlq8D%<$+1ZDl=()?geQ%qxoQkQuJ(x^3!qm z9NSdEYWUQ2?vPdWkOj3S+JSE^LS4*|odI}BPOoj1cQ_PKj)sw_ZnI!fKVf?KvkzUK zkMd4kBG#=nglL}^#d7NtOQ+UDvK2kb(Dw%hGMsoPi^y1OJYV7uI*su;PW(<=5S8Vu z{+ds)OiLNX%)|#QWSlm6F{fYSzaSUM?5yWYe+;*Kh|5^J9no4qw;cXKbBS$)!EF4i zB`;@3+Vc0hR{^)zy6f!E`70hy-cRd^2^Thm z`_b-tV{-1m0D@KmT&C09@rfsVcAYuZTQ}p1S)tmH#biXLF;$DXaJ-hmonmOi`s;ME zidFp(x|H-lsNh?4N7TCM`TtO9A68@;xoNQc~?JUQXeAkr)68r)tuJ7WBkkddV;Y zl_BwNGkhA<u5t_C4Z2bSn^;|!`5GDX?m-=oBBo0ZA2afjx=+y9%vmKxQFrg z$!^ZF0BGK0&e~KUc98VlD)Rf}|tT z@|S{EQ~YU!L-ikuk4ynO*&%d7ba6eFVUZ7iAa>gasQ|%o#&nRi0{SbajzW>nq!vy3 zb4^XVZcOa0Ah7Zr2Yhduer7=qO=DN1?2b%h<(wwPdm+6w-@is2GNzsxn6DiciCD0l zAh}R=!LjpITd%V4(N}d8j&_wkkAedIa95lWIk-#6h_cdE@4jEil$gkUO+| z#M|0%&9TLcUl8>Djn^G5)l1#GOV?vu&cspz8Nh*#!o{FTnnsVqOgV`RxyH~!N6{jJ zzWOOy%r!UTq!v?a(9>YF{kxl*5zI5}?m>}qW}1?6 zV|{2{>q+nC&w^$7-^T5`e_=ydT?;i@)o?P zl#<+9_#(>I&AhbZ;0{Kh+fjbSZmq)kqGjjpJ7j0e(|BUO)#Z!2PK*A0XG@j{F=N8S zg=Mq#_E8urs^YS6WWCTN6+4~9`}LzsOn6$B&y(R(C+UfBRXVCb5z8;hba&u1P3PG{ z&0@!2hI@I(X_IRQOuHAfs07i_NLK>Rm^t3q`(3e?56(vQ&s3=<-X_T|Sc5Zzmmy2_ z5u%imS$|TY1AB!N=ht|JGJJwwG&3h*VRdYD6*vC~!2o9T>P~{0>J9O7WdUbHvAxmZ zMM7eWy}e<#7^xU}LqoKVr7VmvJ=9qSMHh~qECxTz@ISwqkajKeEf$7994&b3m1++^ z*1BjHG80u`FdnpFc)N^r$z#bg)PO(U%mPLezfUU<(Q(LYLLLZn4m*S4a(~{O?vFi` zN8+lm`faK5I$ z4-aTyWFX8r|&``b;lvzUba!bRZ-qAE^ZJ3)rP~Mow(>-YG=7C zHs+-0>9*PZYFjvO7WPW|m^vR%M&v47dUVF6=rJB=-9eGv`)EomDBk|2N;4>k&}J9h z#^a3v$d*;ER^TSkch{dcvS7Kunah?9ZQ&RX)Y+s)rkj(r8=G4yvvp?uRt2gBZj;^o zM#8DFNd72UcW_@D;ZUKZhxxSrfOKSpXm*H63~X0Vau?e! zaPv?2q89BlchO3k7RxJ6q&MqzO!$!I3jHnByX39ggZk|#Y{eg<6Xfx}JGTS-4rV`E zPy2kPEI6?|M(PNM*x?0&FMnX_$sa6B#Cf!xp9Ck$vS!r_zG!xYGQEG>mc*kTm>CSU zjZ$xx3Fdt?aYSJAOqhY{*U@VR9yHH)?b-1)mLa5xL@~SVL6vK+&w`V;!VIN<wD(C0k8&u`-Aje<;u7s?_WA-32rqkOd++PF@kd9OS%F=y=a1*8wRr>01KxWBGTa)%Qlwqimh|E<=VoQ?!Ko@K#NJWp4|)y6A+H{0h}+bK=q} zW3Bulo4j~a1wzf37<9CjIwr@M4h}+!a@D74t2pnZck~YQ$&mQ7&Erx$EyJ!&ATRTU zHz{@HZBz-H+aqwhZlEO}oxvfv2FC#gq1-2Bkt7WE^QBd) z$ykLNSA)x?@1UfqBl3dw%}GWSGw8MM51RKiX`-947@F#VAa%W|upr!Rycja|ZXV-^ zd?GPdDKAB%Y5CU;?RSOoH+Xp5x^;!c(P_+g}n5iexx@s{V`*-l|sWp5LNLrgqiLYsmp zV<)}+7D}^yeCeB0@&SAk(%7zfxpJ%_z*y*=jov(@d7ykx$3{_^ex`^b-XzQ~#Xb3i zOF}57-GeIuP_%xhznfT52k)PFRy|NJ-F&`9tYj4Co9DrwO8W6D`Krfa)xC3-`S|z( z)beeoTux!Qy`zjJvg?9+;K#D&ULCmfQxae)Au!_Q6gHNbp4~p}1N>Ox7_Cq$r$inf zLwYEtV2>h~L4%AzF09}&+Fz_z%qU9;njcj%@ZH#=^Qp5hG7`?-^(5S6gTi#s_Kr(E zL0<>fSWQUM-3XUFu(SG3pn&zLK63jL1ez|HwZps^*hZHsC`^e@GD|#~0d4M>Qh^gU z<8y1MI0J~uNg6Be?X{MMhiO-CBLNAVRZG_S>+n?Fuq>m zgg%eN@1oxd;wof>If&ERc6oLw2`>Tz2Cw~eOM7e-Yz(FjTQ+RP=cl&|hSlY%N2o*_q0PxCq7OEzU~S zJjDhau7WT%%tN{SbYm8ansnzwIY*m1R-W$1{S$}&9WW3e8Fhlg%BbX38QlpOYdFI5Dx5T;NhBbcOd|bgxHx^NN$aakMtByXUPZ$jq2{ zsBNMt8;W^22_H$dX-FP#9EOS;!9qE= zXIlr>)X;pqGS&-!0GR0d`+b+U?L%#FwdREhH(UBN&m9NN%M5ysmSilt#r!-BAX_wR z9)7HP*CI&P8!z$^0-a;L+DyTFlGWOL>1ZcbQgPMX_Gc0J7cw6)iiUUo*s-jk1MIv>}0mhMI{iuT<0 z!uC#xu=^~bJ7qllf29x(S&QSN6X)O4Wn>&QBF~RMp05={;K|RPHN}sw@6$z-HCBJ- zo2?Heb$aeM?d`_-6i5*^(zX|S#62Yqaw!yq#XL$kkML+kP5_??-=@nVFa`X{=~uSs z3sZg&Hn?}-&sZ*e4*`Lk{_3DfEn?tsVt2@2F0QK;<+9&2Wi-7PCgGqHS04xaOpZW- zsLj$wkn=z16;_Kf!krXuqUzlHS-zG2bJOx}qo3?iJ9m(RtBe+v!iZAVM$ex;hu)6I zk^)OPIyr_%e`tc-8o>4@__+4WqLg$uw_y`;Jy8)C=;+hw#=vp8*FT~BaT#?WHpcs0 zQPt^i2&TPJmAfVy5_b>EWl`80+)yySpHq23>U6*mj- z3Y|N$O=!Rl%SCp}&i8`?8UBfJaw53jNUfE6y6(6%la4fMR0EO>oOB_XGRu zi_k)IDumx=gx=b5Z#R2?`@9Ezs=}?NegEwx1e+a&&Wj7=r9telPx&qZWPswQ2Fu2j zz_<`d{_X^l1tm2VJXI+_LI<&_j(9lvZ6OFOAe`xbi3g@eUJm!k2aCMT#)w{WDAE0T zb>mkmb2%WYfPPb!tXBr!uvE3O7(0OLq$WMk3v~-~MX1V*RU5!hN!4o-p(;Sw2%eK; zLtMdH6|VT*i6nsAA1k&7@^VtdvY*p`vR4B{ztG&N{M!N<7ob1b6Vj>q1p=rKrLh9; zl#v|f(4m!)BXw4-erJVt9-;qB`-X`rgvo!dgE6e;Ika@3bfw?2Jz#b*SYFL1C|L@X z0ajBgR6LkIix1O#pCpJVCkGfr1V;9`)`WlIjga(EwO(Ay>o;5 zEI#YF(R>xL6hBRcZ{B?_j}G}_Bt(PCCG33eCxO#KbgRNfp>16jOoQl%h=Td+Gp2mY zYW@Wg(Gf?#MwjBM|KLK{{ClJHow~Hfrnc{n4(aXn%aG}S8)|78T=82KDm!(V`{r03 zCh!qNuIx@HoEl##FuhRwtrK)34>}8`+A3z$%E;ea10G6^d<7o{N4e}30lH)!Ce>Ka zB$SysG;>rM!rY};rq0k(Cs(|XuRQRykf4cqKKAr=VH$7arJ?B^)@Rmv@S}8|?H~-1 z9jwSgdUhPIUe}A(q{Uk0@w{63sFBK1H)P8yZK}-~KLXrK{?J0@EMrw(IE$&FM1A2h zDt-Y1Kjs@1@_T~PtzDUrMOPtt-6E7V6AY!=N>kWIi`(ZwE*Bo_bm>HomFTv9+tFs* z&c<|F06Y^E?n+x@xz6)EVv$(HYa2NKC#b&B?!d+gc+;~@m8|jQefydN>W)I7B39CD z{f|@Ga`Ry`LIkXmF7DgCqyq-~Sj;*9Sx$3LrEN8qIWh%<$qHSvPLEf*=Og{0f%l@3E zD40s5#U78d0BUz9+fGxh&^v4|2j$0StpFG7T$`>g*izJi4)v}m6;BD#`$MbJE;T%1 z=!a*EiPhy3%e7l7`S-WCPSKLT%O5tZvt@t6UO7!)ngIYg7t@{f}6ON!$5nyPSPhSX<1@z zxp*AzFX#}mVq^Z?R)wjJnpp>`K(UY>6J~ z%XW8Hbk0i`Dhp5qOh)saV!U18rd(Eu35H?LSJ5CHHV)8T?LB4{Y;t7k$MM~J+PnX{ z#J*g#S8Sg5Nv%XR_*jYbAVy{NTWt8un}2Y4USvr3MrHF7;=A`>kF=|I0mCs8*0UnH zf>MWimi;ZKFnB2IIo6LwjEfKHs?Ci|QXJ2=#Qsa;MydVV%}>{=Z93Rn40z8wcDqQk z!ROlRI#tiwezz^huqxEd%f}tCA@Kkwnu}Q&;va#EHe-v7Qm&@NfztAm#!@FGS*t}z zVj4mcqN2L&+^@S3ixim=*R%bfmg~#DnV*%HmY$6;2t7s#)cTX0ImDxG1Z7b-J}!X+ zJFwYP5T7c>$5vz90=Tb(nKkuns(@nn(Z>;n6W^Qu!ofo4^4KB924D+`_V+^o^a znyglyiMkd7#d5Os%+&pQpv@mA@ae^J<>e&5RHyn^(G~-2gPeL^jQ2$2+VSei$e{e= zLG8I}1+1Y6E-?k>MR826;RyhMGC$Uk-ix0miCCJxX=YFhvHgLIXtE=?Q$t%%D z{83j8_|^f0X{;^a8Fy!*^C6O!aLji>9c~U5 z3Ij=i>dIA>k+O}<)Xmv>+*1@$HVAV;r6PZOFErg8>V7!v&xPciERfKY;{T}OC%TdZ z&tes5w@Nap&sAmwQ%AGce&a~%)}rCPhs`DVVI?q=GP_Uy$C*ti6DXIdsgXvUh*fR_ zLsKbGTP_x75>AWDV>}mr9Y;D6H@5FE6h)rK*dd9-~* z=lYM`>Tr}ZepcswwiGk9DIDV>HOj4R-4<4Qm!kH{T#tvc!}`Fy6XOC@hoBXo5;A7g z3KBn;$W6EJf^PJwQz9pzZ5~{7pY9;vPnCV#Ah zrV?BT&c{datFQ|92d0&tw+IJ(#F!=jD^_(*k5xw)f8CLRkd8@Z+f6R7mxwO+iA6Tt zy_N1Im78&1_3wg?wr;MHUOofpVXN_;6IrX`mqm`Gn6Lcvi2ROZ%wMpLH*xILdZkpF9>%Pyjo?SJLh2LijjL(?zGg+}r8x{s(BQ$haPEu7CA$haWw-`m4h!_yUS*lEY?|Wrx1s;Uib#E!!#sDpJ1}1U zbC}0G+C#6C0mj`e1W1IctiNOFtx9(v%f-7`80eczwKG;4aJ$3NM!Qt*0B#U`x3-$(4T6(nxmkKu`QD0<$`che4}vxftwd-7 z9(GRLyrKD9$&Qt&YGQj1HvHvLJK7w5U*&R&18&2PY6tUJat<$qP+pm!05~0Tgh)Oa za|2PrsXL)@cf+#SQBTCzBq*CmIx7D&;TJbCA^0y+dK@y+V|fZTjy&L4u&6ANVLrG0 z4OMZ5EG1@1nf#i0!AYZ>6=laIpLPZeWp~H!SyPDx=%Y^GgtLOxBP7!IJo5jh3F!Yj zzUP0hN%7lQ8vY+xQVb0L@N@pNCG`(M>|ZRYf3EWX?F|15ONxQ(R5Ye1)c``$yaT zN1p#kWo2cf0W#A8nYHk~B7BwLKeDni;b}1Z+v0!8{NHWxU%jk<+0cKbrvBOV|78#P zUr|&4wp0AS&=lkUnKQ-m)n+U}Ru-oJ0W(GSpO7hLdKMZsdNyXZFJ$T~3L`V)SLJ-w zBLfXH8<6qKm}2~@SSBD7^M5v`n7-=yUk`|XeEuJt9lrwqgV2&RvNmxv1>!N%u`vB7 zW9sZ5#+1?wo#x@1gUzJ{dxzoa1=0F46g2)%-xx*?VG>`M z;7}wMURg7w{%W(e$M0xZzvjYyn}PJ9!Lg1$PSP#}bnKH1o39<8o;S|I;#({SqzK>S)2J0&1$%^1US88A2a*5 zBS6JU)kMVXN!14+@v+yjZ*K&7NL{C~{f|=&q&$#qyJEgI zQ}j~c$nAYDjU?s}4fY$l7i#zCe17X`5f{b#EJQRAgSS)vt(`5?2dDE9`}YpmH>IlU z*}(;^E{7@e-%EYpfG!}o9A1~NO6;}f;Uz~V4H9r~w?|1rAy_;fZo7Xry)7(Q9#x|H zS~0;0D7KX5Ng2^!Qns5m`31(`^PV$s*)k5d?nTIaukk>^8TNRgf71_hq8JG!kik%g z_bQtvZUnM31InR{N(GB!b%Lh%z%;{*Sn%%RknsO-ffLqzXi82Bdm>Q7HW|FjK}8Wb zilF;%i8MoOpOC?dknv@*AU5g)3|u)te4rH+FMIcw(D2Fy(8Fx2IKLifTJ{ph58r)W zTEt!w{xS1t@F6g&+zfMkuc|$8`s44jNKb<52KceZp4@h|IZ81dLbUaeC&z;i3oe5` z&jU}|IDD2MJMt<{@V*3MlprSoyLM4_*B+;SrDxpvAOd3e?|lW?!b!aL-&X{<0+3J~VZNpo zl%kFnPo(`oC_AW2g0+EjxEzR_KZ`vd4XQenXDC*It0YYb)_|MSUge1_{RqN4^gty;IXL z>}CPfjHhp$zpWzWFZem$;UVf|bgS>+VH0imJy|AfSPr&5m+RyUBgeMxRz6 zpMY%KkyTx!na$ClUcL0mbx*0{PQn(bO!)AxCp7P&QckF9wY@;ilq10Ed_4fYu&BQ` z?7#g`h51#d3YDGinam^K!vD0+wDfVh$DtbV(yE05Lq5ZD1gN2XLA*eKYWM2*o2bi! zvAodNIO)cIa0ebR_r25TW7NPbuH*Q3KxGMT<3j0Vb4jC}qCG-fWDR`$=El@h>eucg zFaf>;^pWfO)*sx9M>T-Bq0j`dr|)MD23NzOr>bI?Z*V zXAO0sdJSy`;CiD8i!3@p@YC?aH`dUeh&+goZ_hRhcPVp2T`HjjJ&M}|JW@Ocv6NUt zb>*DF+H|{_I9`-cBkBw;Dhz3l?)N_qM0zPc^yL@xc<{~*d<<~2i$8srweG!V0Uy+B zyS(yBs1h&(t>lO&ZFHer1yNW=tA-e|j%^gVS++(0>qU?j#CVV=bGXlL7D0wP=eH2e^+*W|DnYkA5&J3_l#s+2O5g!)n6DOmOAKUqs9VK7;oRImcM?%4oyEmHn}P zg>v)z3URdQrkw@*6 zJ`zN*_47i%unhvSpyAGy5&U^%8Z4Vl3F~(0T{`!RaqKkDYCL6CXY4W*7Sep zK!z6W*ui**UPJ=*)vMW!?eqn+h%=4W+aF>@4f_ng1>K^Q zZ?x6_})e6&npTUj~^kN|2+?Liw0cP=^A^ z&&GMVtH}#cCh&!l(u<-OfF!ySQj2^J^KxMNmpo#a>5S8i1hS6g&McQ#Da1+kiCjbW z&W_dWsK+Ldy~_nRsK(_N^EUS|+=*)J3AGM{M>l^GlM>V9m^sJrJ@-1u?cOm;c8jFngq#}&2zc9{9(jEAZ#{G#pnqNP zE&aaL;0_`7-&Ma_xV@Z8FzUW$U7^jv84&E#htm#t!#5=G4+P!|axOeKUEf4s-rAbo zfW}O)NcLG;bR-vl-Jpk>HSnrre zHGnW{U@LJdjXf}SD4}NUBBKxbS}*cE`rnLkzH#5PDjpI8_;&WZ^DPdiV!D+pKNL|{ zHhg%Tm$^Vn?&y*DwKKK6{X^!Pa5g8oc32mL^HA(gg|s1utAWgRL+@@z{;@Wkh1)A@zcQc13U9=_ z>w(WqRgFY; z_*FO9f}0ti=!kgH?dR0_z`vEl(+zfNBAghu1Li?5+~~K%0SdRX^|OJqPqRWBt~3VGE%fc5@{d);pk3H|;d+q6%9Wy4Ma z8uqfaXTQ08z?)&mL4SI)M3y1?>`e~cU?^4!XU8;DM{s<2Wrz^&^cEXTAoh@z*Tdy{ zcug9a=JpZp1h_+d`x9--sx>t8=A~u!u7Hd<81QF`UW%Zo3b^=e>}KwMBX<_+rB2w0 zr7eT|Z@?ir!~*3zr+0!6C4zW7vqD6poCd)b0T1C<)Y%%m3k}x5wf;+8=&E65_?0nU zgYDtg{ltCCy}5ABAeBu~3!_w)Nhr=<_nkL0)O z+pPo7!I#9Ext5WZnU{zg>)(vik?xvL;cvg5nx0|4ZN4$zftCA}=^D?R{F3&pf)nl& zk8CQ=l@qP8ws}XvY2_?UJDa0lu}Hu5!FuF|FLYDzM!&uf7&d0mA?B#dJ?$F|$qS~$ zbuDmKyyn074n>cD2qs2?YtB|Mnj^S+G4-ZuOk9)Q$$|GeZ@FHSlpHmPau(lm4khvD z37Fg-vj0Z*?s5+q^f9R|8q+*X_%b#HJs} z;ww%QH!*bsZ7oXSg5CvFP;B-Vt-Vsi{lBP41ax9O0#^|tw(j88{#x<0g_ zoLqCSEW2oX;w5VFq-dq)lq`o>Khpe)cp&hKZgwN+^Mtphj}x#)E1N;3Rva>5jDr~k zG4h;^zeZT9A~k)#Mv|A`QaxbxVfrJML4Hy{-V$eQEw&zvQJ3bta7ai`eR zy_mmCugE#>XNY!i-rh&=h;;3$iE41%_eLK?Yg347aNYMupNYO=9(fcTh@Zsn5pLoN zTa#ON_P_OgaEZE3lrxmz%2-Qrm3VU7b(?gaiqFlLh{~f{eZ31F<5b7+qfRVS9y@P2 zK)xse(F$ev(kR~JNPB%>#R7}o`6$|u0A5g8Q(+8Q!bY-mBTo2xA2R&-K58Lht<;!V zUiqR92xa&rZweKE45hDflC_)#6aq%{7^vf_1D$VCHep@+CEUQXgGLyH)cg&)V6OcY zZ|NTAU-}r`Afo%>Zt1OpbAA)(VPg6fZ$UdjWe3>N;Vkt4J3)~4oZXPVL2U=PZfP_9 z#BXu2{Q_^Hwcvh&I(7x!@Ob$(zd*YKkLW=x_CQlZmbq{+^*|?sI8#9y^l2vrGP2=* z9X!pp*!pz!0M_3eZ^5Ypg5}^^dRuOJE`M#nyn_(K=?Moo%!n?=z77HI@f!uh$c2O# z;YqPZ1rPP>5xnP!g#Pm+dpwlCN6+-v9X&XNs1LUy)f`PQqFNKlCX`Juoizm+gPj*k z-=)STq#Bi|PvDkxi8~QvVt^-FlYWLrVnBkb`%Cp1I0%omCixtvWnau&$ga-?93D9smoi30oJ|}n6fdMhQqxy+i{%BNi^z5dPbW@VlfX8baY%E|>JH|8 zydwrFPQtrS1~w{ikL#Y}#m^hWLmX9@038o8vdhi^jMsN^%iskly36#+RUozTb zSMwhCDI}A?bcp7V{3+o>q<)BPPIN^q)c&iL`n4Y;884MWDbKek&(nyPc2<&wSrn6A zl%iRbFf5I7DymzQaS)?*mLqeXWB;`tGb5DFw>i&qm7|j;-4erml!{4L>IaAKBG znB)|X>xveT;E~DG$67aK1?3rUZM?Cncxk?=+}wb_(T8box;>U{+_CD|I&*2_X_vD- z^4xH;22~l{HL7Dk*Pyyuamn(`=^5BHwrybB;JVszX?yvHYjoT2rU7m>^b-Cf>^BFs zEM|@D5}a$C*EpwcMxE*d>?6Q?EV}OClFB8(d#YQ1r~YR3<&yY=?886H;KzWkK4;bZ zndvPa+t75C?vnZ=>1%kp57w-ZN{p8qs$N!px9V>qz}*&M&sXJhnIuY4)fjOlvVF_`^{zv0I) zHGsZWY5LLtVnt-B7qct#mAWW+PVq&2SF#PsKN4sVfWR>uxe1FZA*G^Z5v5YXhAwRq z$uf*;>B_Ece+LmRZWF`CL9%orD>*Ydc^<#TLe`?G^YV$y1LcA8++BHk&pYHF-~A== zk)q9@x0`gN3WLdAXmDD)Mx>D**G zoyYXL^NnrW=~q?WuD6%}{_AaKeHXuxLaW(raD-EFt<`m0-Eq_Ade#21yz|o=h=uFn zW;j3;!~6V-l)-B2?r_0+R#uX;hPyep+W4@hJ;QRd-Qc?OeWGjTepi&D>;BZVvg7tp z)w1LMVhaY_?|I{UyO$U9?elsd8;$+-*f2vk6rEx)B3XA(w0fs-=|*Q~ajV2G7U>@-AqyKghDTTl2`WOc*?kh-b=06w2AV;sS7pkC*~jvCkfH zeG5ArZHq|6EZN_E_3jC(k2MrS$1bOhUkdNiizcrAzf#wD&ccA`#CDv)xlr%`&i9vX z0Rih?0gwX)i4QPsiXtyyfw2|e%OJg>+41k9I~`kPmlXUnHeO>bc!hURY4v=_N2D#_ zBp-pK(_zI4Qy?lHuJ*>t)`B(Y1B?1cBn8rcUCoT-QC0iiYW1}{^SKAdhSNId%IZMVvoh6cQ5sILN z0>M3oJ?)5-DA-GMJ{jxKD$#eKD)veu@Kx;qEecsn&r}=wH#1HgzjH4K;O&QIPS-6J zWPE(}r&rCQ_nCg6GY?(n%`Mcn1;85W1Jcqqg_OSJO4x^a3AczkCOS>lnTn<_1%mbi zArr4w%eOhmeQHvu+>9On4C@oB@ij8WKlir2ihv&)DTA29(3zi+hvSS%o^wfXu30L~ z#=Axc>RQQN-F%udZWzAHUgHoy|HyGODCqEV7kQnYO3418u*k0^$F$<3P~0r3qZS1) zd{Gv;VHTNn5=+dH*IZRjA|<`!KkV@dqdx`Z28mEGhLup8Rb#-nshD?d^BtM1l+74g zz~=000e(%R;uzPuE(f1Y(2D8ObACZWj7)qsdJUeUP&J|@CglNX)a6qTDK_Vu46Pp9 zeYGOTa2OBSw5QqV$glJi3+7Gj@lYKE8oMg(5tAltuhr^${E-UsuN zWtiqq7|T?R`9d*#GN3?ZtZfA*y5b%zQotUJv~a|Vit{;UEjB$)GAr_lS5#sU2OSly zOje3=x0%tQ@FRi|n@DHoBOCGRZr!yx2^Pe#iN*Io9DHe*! zFaQD^(pabqkJ`tKEoL(iT-EiZ0Jv0h2}}g93!5k`99DCk&^g1Ezp~ked|oM$-^wZ= z4P>Y(5+Zu)o5vUVq5nM#i9b>!6K%&hFMO*7)hC*V&iH371aXZjWZ|)GGe*K8k9gcg&K1yRFO5lrm)08yZ>zIx`-HG8@B*lf4l1*D;es;4`=^150rZRdPVNT7V(4Hw}RM1uqBm|0l&A3XT`kw zW^^_YrOqMWe-()s{YtLibdvOXD)}fZ)=T;w&5m*x*$5Jk(Bron-WojJXBd&eE9u#5 z9Of!=N9BaqV*ZZ31=0o2#)A0<9}q)68l zrnptywThc3JIfIjZetmq%=?#e%)D~(Pbdc{m3L#EA6tE~ea=W%Ms=Pg;B5ITJIi$u7P_s{t{*Qx%s-K$vuFy<4 zTIKLR=$nhct{VLh0t!$#G~x=9rgsQ%sNGT2VF@P$j5x^E{?~?4gMs|l|7{BtbBKZj z=B!W&ssEOW?sn3QZUp=Xgl?Ka?o-0ModSp8gre{q0Rco|*#DQy*#XD>$NT2|uwh33 zgMb164$Rp909Z7TezOfc^Pq=q{6~Z35mljVcq(Z*0oos}?*))9XaJDT4+roEg%#ox ztyOt9BaeUgZ5IuF1IZ1xb*XSpTaU7?017>T9#kK+UnJ-XoDRPf*!j<%V-Wonf|v>E z68w_LlFJelrF%!Yvas|xym3Ljw!1)F3sn{5Q{tdv;BCRFhF()EZT|%vcx(7>lbYNR zGv3FPDBlK9&l@wJ9>>`mK?3$DF`ZHTRhp4ADaG6@6*yA%G!Tf}vO~hS-}cUkH+o)g z&N3L!LRLq&Yb(|l&(@TYF0e6hJ-lyBEs#D^e-$_gxI6e7I4^L^=)~ZAlK-Ju!Uz03 zd?z^WHpuFmHCu%+&Z;zwk>WxH=6xIptT&#BN@Bscj zwS^7V{#Deqq1vYtFwfGj)4Q2u0T-UUv!RBn&D-F&eoE*sY?T9gX&&uN+d1jR?B{yo+kdV_RX~O%oy)+_Eq;h z&oa-X_SL|r$V=0;w^yp1Fy&dZ_BEuH9sYFx%4v813U!FuarYRGT}c}h&qu3Qo@(J% zz@@hqU@Y2M7t}c0!pfwzmyrNd9WbMEiISz#O6hw!tzuDWys~(?P?EH@a>kNKlTMX# z#Zp9iSsCVH^Rb;Jek31rJ%vd$@^FpRtjT!I=Nlp}ExEj6D`EhH0tXG=c1j|c=CI%! zyX@`cZK6s3P_3rSnPkAS13BIt+bUH>r#cEQD)lHOTsdWR*`~l~mU1dq;Y2#bzfvnw z{p=><>>OKHc(r;;A2#@Xjr#I($joQ=p=kq4JV|}^GdwMe{FTZbzUhat!QJ-zy`;XX zaOFO3nINQ!@xYebg&P}-{E+XWj!-&3w{-Gp%PdiCW`YT>3U z0#O4yi?}|0H|;L@(AAx&GdUS(QHnGlSjgg=HI?!E_H;kSr8mWQ2>rs?!;l(91CoZZ6cBSX~Rd zH5hC@j3b6*peMyr)G)MC6i=6@&-Zx9J(H0gMTysbDIYPVn|BU+2Ihvp;^1!zL&=Kt zh)7CF+EYt+Q{5zC-&r*T+sgPCWvzR#A(GD4)EDLc56V4n6tDvHQW!;XpYB;vjtrYhxsDl@Jd`EaG~*Pblv_eA)6UV+ z8%*KIOengC;Tr2z4c?$ZfEJezxD@{bQ@j~0M zQN_NFtsqbhcJM~9H_?jf#84#Yv-@R|!dQu*C`Y2f9MbmT?o7`Iu-)JQGxknChSBVF z3vbe6ygoi@3yBLv0e4>G_J)~kaGqwA{3_Aj2-vkoM0LY0q@L0Ofi(mjdHj8w+8Oi< zUE#JxQ5+e>sR=9{g79L~Wqs3XSqPQxYp0D z<~}oFgN5!*1q&St=`C%*7BZhp<7K#Kg?xa(GD&FXVLAC4XVYFaf2MYF1MyvL!)VeWs0vp%^X6&%2{rc2=iKT*U3lHQ_eEuxfB0IV1VToMQ zqw@CO%&>=e?&`Q@f3kR?dN%b{t?D2o@{7L?*bQZ54IJ9V+`Z%d)(vQlikH!g|XfBdTR;R9$=kV35pni z3)bx~cybi_-TXm2;(nWc*6fc7$^qbsF2Ry8qJL(BwFyMqlYT|}6hjL}>-&Qq&C?@+ z7#{j6zmF%6rY(jhfyb|!Y0VPtLTeR-Z(#&?8T>__K{N|F5*{^}KsCnhfc6%5eg^Ep z?;*EN;XMlOiFlL+$eTEa?FQ%)Ug886_V4N>9+EM568|MGRE!E{{^pEMYRbm&M6Kfz zt|??X7%bFx7|0o03xsWeF!9Q8pJQle_cu+6uMfk3v}@Gpu33ocE!)D35$Es4DJM53 z9}P_Mb-a!dkD9IvkY|cF;SOz$Qj~J=I&1JX1P_h}-KW+oPa_Ud^GzsY;wg<8ifk{` zEkN@(gBPT(-ACUu9Z|uU^Xi0E{l87gY|@(em(dn>N%$Qj4-A?i9n)EL@)FH6o=2U_ zuRlFe0(^Nn^Ean6@zf-eJVj~qL<({i$*>Z-3``FV)se{pGT<66e( z#!3_XeYDg_(P?h2 z3%l;S!u_5U2*E8RusekQzEpgx(0`v}+9`7Y`;K%-`*n*FCzdx>Mod?dOx_YUdGNSC zW9`d|X=7|Vp(eg$??wI%q)pgI_P44TxqOfULL!<`crD*6PeF-C8KwNF98Q_9>_QB1 zY%tDq+E-3WyA?FyRK>zDa#Va$Y>+4z!ZbVB13kK8pNu^DZz&oP-ALV#0$Su=ri35J z8w^A}nn$dve%xP@fA4Bk%<%<{NnKKOp@M}Wt*a*H?VqSm{j857mZ!Y!DUZQfjbYLG zSj6}v_7hyu&pt$(k~a7a`dA#|9tj|Ye$)YQW!jiBsDkpZ^5bD4(8MKwME|tZLfCEj z`V`AR?vZ;Td8A^j>dx`83~(-Bd+GviUML@M{-%q~ z1>+i(JN$9EcP&u@k-&3d$_&um!*YkyP||%YB>UTRssC);ik}%p1+9u<)#uEHQQeE; zh+SpGSL}YSp>?M5NaEgFPNl~zA$md%b*^9aU1c&J;V1AM9L54C7C%WdT+;*nRqg0d02HX^XC4hU4$j!$-o_k`URrV zfNDyQyB%n|hn6q0)tU=+c;M!_w@Rf?Srz{*$cOkV?J-%Hi+PEfHezjdppvi!sy_K@ zWtGXxX+_Nr9SA}Mn>OQqt{HY2m!CGQeI{MpwJwBkB+Xr!4!W`17MX{V-O$GOqp1?C zSqd=Zgw)Mz95B$*o~28SmtS3`vtyC!#r60L@`Iw_hUQV;Cr8;8crQa@aw-`=b}*_M zNVNzaE=TSwPVNK&1N)NSH1D%%*q^%N*P+U-C1bKrF2x?>5=J7JD{6)wO>m#~?h7{B z4KAkr!=-mYgpW6f(sJUu+k=c)3(bGADeGcJmilat1bpu6%h>Hx)_0-KhL`l1_Oae z#@;Y#8nGS;njwn@V?h^SP&j4nc9wk6 z>h}W3QE^#;Z96RCE3THt&n7NAo?+cl$a7D-K{hR`ZP5|s)�Ih+z2A4r9{QoK^_R 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 literal 242490 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

=Y#pqp!vlnJt@}rHFoZ;JJpi9`yr;Ce=(y?MV(& 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 diff --git a/demos/README-Demos.pdf b/demos/README-Demos.pdf index 36949efa55cf896846687e5c6f009baaaf382d90..c36aa0088ac0ce8528493fd8687f0cf7dab45180 100755 GIT binary patch literal 152651 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 Sg@-s`9(d|Pa&o$B_5L483y@?0 literal 86658 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 LWMR3hAW8T?8Qmyv diff --git a/demos/gpu/README-GPU.pdf b/demos/gpu/README-GPU.pdf new file mode 100644 index 0000000000000000000000000000000000000000..819ae62ccb9a8e971a01dd3e229ce27df5ef5f5b GIT binary patch literal 149569 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�G`s`Iw* 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

cB4HD3$b8v~|rjmZ~-IC!a>$sD-cNOR|h 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 literal 0 HcmV?d00001 diff --git a/demos/python/README-PythonDemos.pdf b/demos/python/README-PythonDemos.pdf index db26c036eadd1dc53e5279c807b9379426752508..049fe85e6e6fba44136527d01fe096f8e5a9a8b1 100755 GIT binary patch literal 212537 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�tr-s-#^-cQ;fWK6M1lN%6twt24>Wn< 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%0Dt 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 z zmFZ0s}(A)nL5mEt;a zv$#z>%HOBSpTHyi{hAkRlWQ*qA-Ev8GFTDZ6Z#U&xQBRHUF3?gGl33&uLIftwvFG+KMl^jAYeM+w3oVC<0&AAC}M%&Tu_<4{H zrzPlnJw^A>v-FlA7u14YFbl~-C!t6fE=(346;=uX;eFu?;Va>$P=lWkQ!yt?U_O?@ zIw+Y@V!A_6s^OZR9=VJ>^C6W%7OUPZY)cDJtxR*KU8+ zK`slkggjv{ETtJN79*AqP@V_DFd?6!q|(h~0ezh8p^4%nvR1Se=?2#^w10-aL)X!p zw3U!gx{%&5hX1B2|B*#A{+r)9>@BEbhj48l;GG|lX~+zEO{RegBK_Vpd0R+hDZ+bj zPPjzmYy+HUDiTAg=qo}Gl!Dh;8?gY~!t?N|P(mJuy)+L%RjpWza@>tQmIuVFTfrJq3+>hS`2mJDMfVJT#g>F_PQj9Sr9d`OloGm{f^G%Kf3WDiib zh5tS?NhE?84Rc75uts)`ehyRMG*iJvVLQ(LG<{XbXV=AEWE5(^<1i0OLbKpev4DL< zMuI^4ftOuI>o#3TXKti3(W(qYo3;IHDQJxLV18&i-f=Trg=Mgr%nd#U z6ESl99Cf>^*pZ$VJBAw5a{4*#O;_HzzsPMbvBD4dc@;WB8}T5NvrnNng67&qc5^@q1j0%l|?r;cRl8Z1{o)Q^g z++FzfzXzFwxc)cjD8#D>JW+%Jxb~@N95GIj6$8lk04Tn~olnDaehh#H%e4ytbngS` z8z8><8-{Uz!-(~!j{u_Z{?VTSn1>+F0>m^z90jmGgt!G@!_$lZ@c{cVfcSF&4x~=3 zb87$+-UUd+`6PY-;4Kd$Y1)5=hB*Mq69H0I0yH`a&?FilRR@qZ1E49cKONVRj=adc z0nls}Ky!@wvvB+tSk^Kj0$g|Nt^jTD49-mi@b3d?kNn6(_oUN6fX?=N`2QTb-NQZH z!#&)?J>0`R+`~QG!#&)?J>0`R+{6C?P$Io>5&5_J<qC0AtfO1jz~1tPm5fJ)A; z5QtUC#4A)dM4N(=tR_vsnqs(_Q=8Mxa3d$bHV1MsZK%OZ(=@lyZS>-W0D~HraHPi1 zzhv)XNBHlC1pvr0@c<5|g#NqiVkO<__bGB@6l5y(dxEm1*n;Ii3t3AdJ+^9xwueLM10hknbkZiLngMKN*%7i`hVHXOWbYgw{#ZW*r)ke>&KcTqa*0+P|`V zz(>`!=Y9_U8dTuuTZ0$LY&Zof=(bmdo4!p}NqYEw632;((-=2`nr_2{3T-CQ_zs$`Kb zKX&i~IBr`~NypIfC})lQu@mV;f##EZ9MS{SCQif#v25ZJEAH}@BEvV3nqSp44N7p4 z&D`d;v>~b7yO;0X0ldt|*$d$HTPdGxPI!ttfvv~-^-P-O&7vaYQ&o6U2Tq0e9YWvI zY~;HDz4wCymNO)Ene{jTWjX9Yrqb;3@83R8hZ^Iv8p*iI#U2lPAKk1aSj+dU2M zoMX6AWeD%Ve6dMN(c^|=d@oW`%p`-5Ez5%ivEom+qPev94Smau;t|~Ec-Xr~=884g zD?`^Ss7w7u=rULkCWJn8**}EI=F@Q7KnjXUT?EGm>BKQYGX>3ezzwxO-Vp$ zP*UY`r?C_&Lr45NEOmh&r?%X2e38Va6qKl-C{AJ zaLGIgNxmq9B_qAL(ctqW$Yp)Ue!PBa#pHHlKHl)jqfhSNGJX1%EiDlE*K2HwPV$5klP;sH6>K{r zN|1?EP>MuD$w`$ocN1R`5UxKqjp*0vGsU_krHRBP`b8?nst=GHG8e*9RFaY+tu1V! za$~ZIF`KUtic;Jjqf91mhLV~=tM|11xX-g+rA}s#wVCdGwbRK#e118&-*TLv1HSb) zZzZ;p9TX4C4$6-!PT1w0HHDf!y0MyJx@o3qQ439nOjm7Jp^|Re-Q7rxmBhMN>xdS? zQArQ_^@M6vr7<7leE5EngLD?Sz(88~HO9TUbP%0DXHrHF&_r;OWxK)~iqd&Ag$t=< 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 literal 155811 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%0DIku*K!*O=RdW>5mK>yfFpN~5b*h=FOV zc2+n%#{?v<5Qy}UCY*6>Z}04WpOWCgt$hNQN(I}S{{+e{{R!s-u0f#^@#y7_%MP$* zsnBNXa!5n?TIZ6)d3;wU*(H9=axWn_V_9rfl=T; z+-v`H!}fn9gJI!dVg1+5cEG=g1p zS71G;l=w_1B(nU1kqPfmrGyf29&YB=l_O`|0rhw4(QJ!JR=tfiVW0`>Co@~jDpS21f?gRab-IPsv{=e zn=HoLNm16rachHklF%cAKm95WM$c!lW4q{Z1>x-1%BcsR>~f*C@5s+&3}PbSbs_H+ zuQm5o^KQR@6H;cU7K+{qHq)c+TqsH;uSbH!$77baOpkFenV&m4af%K%GeLUkpKJzs zTke$jt_yKJA{swlfjb=E@c*J{-%gV9VcP%6J-+11Sg?(KKjSv!nK2!ZsQO{fafEOh z<=6;cZvE_sWLsNVt3vF5iphT_*#X_}=HU2Of+E1bCt~^6J@)@LL6MTWs&XI z3u6Zm9|wq11GE&8aQ?|*1xh#d=hZ*5H?`J%3&SpNJ+DK{OqI zezAZi^3%(IbV=C8$=VS_r1HcgVPb9kWG9wC#r|nAVNhN=M;m(*Y9j*+dm9oKMj#^x z3AMSSqb)ZR(;u0cy@9Q{g^>fJjlCJoKfpxZ-p1I;2$bgTf4kJbH~&xKnSVJ<*uc@i z%Es)EG5(l^e?`2uo*f}_# z_m3IC#qms!nHk6eeBLfI00>Hr_E&vRdZ46s&t>c{#=#8adSNSOAn*w*|Gj^p`ncFZ zi{>*K@M&)RB?Flrw1PdCae#P(p3AsEq%+TD9Bj|W%fig{+s z4Yn73VPON2;5=*hXc^GwDDd}#w#&gb#M z%)-tFV)%JhmKEgS=Q4J{%khFpfL@FjL=yC(J~npHsGhaK#`y%?PtU)`%f|U1+5iBa z#~%wj3y6{ESy^_LC#3wlK2Z3*=pQ>L2r-`PadNzD1H_2-To2^7=e7sA=m~!RZkK}v z#H94M45ar2=>M(tknS ze}Us5y%+vq2XMT=91b=B@Ol407I@(!kRFJB?C*9t*g=5*OvVYa{qs2BU}t@SB_O>Q zSi%W1)$_h^a5K6*Je5H`KA zDGT!pECw)hy}%a$XrX={y8sr}7jqiG!tu1Z{o8M#9qWs+u{@E>z0iAslb{&-53%vY zcK56-D4t)m3j)s})Tv6Tr^#0&@WDAaA~??lY7t{43Sf*kz3 z&p;5EyeJFcd|4L6Px;J8AXZC`=Wzv+y}%sMUjENn?%&7pBzumDAQ5O~{d>Hi?9!m4 z&odb-8{6}}JPRvmKl#jWAQ=eQUX%qqKO2C~6` Date: Sun, 25 Nov 2018 21:48:29 +1100 Subject: [PATCH 03/41] Updated version number in build.xml ready for new release --- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.xml b/build.xml index 592ed9d..d2f0f1d 100755 --- a/build.xml +++ b/build.xml @@ -5,7 +5,7 @@ - + From dc4e59f94583f2cae53ff4167d8052151cddc3d8 Mon Sep 17 00:00:00 2001 From: jlizier Date: Sun, 25 Nov 2018 21:50:53 +1100 Subject: [PATCH 04/41] Updating tutorial wiki page PDF --- tutorial/README-TutorialAndExercise.pdf | Bin 109320 -> 168322 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tutorial/README-TutorialAndExercise.pdf b/tutorial/README-TutorialAndExercise.pdf index 7e487b883913a93eabdb498292faaa4a7beb4d9c..596baa3d82e5c1f4ae9240967cff56173821856a 100644 GIT binary patch literal 168322 zcmeFZ1yo#JvnU7&?iySYJh*FUEVv{{a1ZY8G!`TfBxrC65FmK41ZZ3Xjk~+M)7?yy z@4GT{@4UJ5-}lzMHS2F!r}x>rs&?(#Rkf??oYf3(WMtX7IruOb#`kwuF}P{DXr0V# zF~r0;rClvd-JM)%nN^&8ZS3t$Ir%xbXbqTkxVc4Xm2Dh7ylK6K1dIjv3|MF-ot^D1 zv@Oh(Y}`5dc?CIm1>k^6@|r5jY_#?^b{4d97Up(Na6oBmS0@JxPC+gXE)HIPULg){ zZZ294Q%h4X8@xvdL3m{j7H8s$ z$947;MC(EHJb#cV{m51$ufYDvN&vTdl-fgqZ7LvYeR4(__zW2c)ajny_?

V;~s)Wt4}E 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 delta 103832 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≀($-Yuh56di=c76b2*7qb;D(S7SKOn<$X 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 UJXgk)#J#$UAh-`6NIsMLFImW{kpKVy delta 40322 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 E0GEzzivR!s From ee1ef4909cb57cf5581dadc3db07c54caaa65d44 Mon Sep 17 00:00:00 2001 From: jlizier Date: Sun, 25 Nov 2018 23:39:44 +1100 Subject: [PATCH 10/41] Storing executable permissions for jar file, .sh and .bat files in the distribution .zip and now making a .tar.gz distribution also --- build.xml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/build.xml b/build.xml index d2f0f1d..3f9b4e1 100755 --- a/build.xml +++ b/build.xml @@ -11,6 +11,7 @@ + @@ -148,6 +149,7 @@ + @@ -293,24 +295,30 @@ - + - + - + + + + + + + From eefe1e1a8b2f802ac5484bb5399d8cffba4d4277 Mon Sep 17 00:00:00 2001 From: jlizier Date: Sun, 25 Nov 2018 23:48:10 +1100 Subject: [PATCH 11/41] Updating readme-template.txt and ready for release v1.5 --- README.md | 10 ++++++++++ readme-template.txt | 6 +++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c70834d..b949bf4 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,16 @@ See other [PublicationsUsingThisToolkit](../../wiki/PublicationsUsingThisToolkit # News +_26/11/2018_ - New jar and full distribution files available for **release v1.5**; Changes for v1.5 include: +Added GPU (cuda) capability for KSG Conditional Mutual Information calculator (proper documentation to come), brief [wiki page](../../wiki/GPU) and unit tests included; +Added auto-embedding for TE/AIS with multivariate KSG, and univariate and multivariate Gaussian estimator (plus unit tests), for Ragwitz criteria and Maximum bias-corrected AIS, and also added Maximum bias corrected AIS and TE to handle source embedding as well; +Kozachenko entropy estimator adds noise to data by default; +Added bias-correction property to Gaussian and Kernel estimators for MI and conditional MI, including with surrogates (only option for kernel); +Enabled use of different bases for different variables in MI discrete estimator; +All new above features enabled in AutoAnalyser; +Added drop-down menus for parameters in AutoAnalyser; +Included long-form lecture slides in course folder; + _26/11/2017_ - New jar and full distribution files available for **release v1.4**; Changes for v1.4 include: Major expansion of functionality for AutoAnalysers: adding Launcher applet and capability to double click jar to launch, added Entropy, CMI, CTE and AIS AutoAnalysers, also added binned estimator type, added all variables/pairs analysis, added statistical significance analysis, and ensured functionality of generated Python code with Python3; Added GPU (cuda) capability for KSG Mutual Information calculator (proper documentation and wiki page to come), including unit tests; diff --git a/readme-template.txt b/readme-template.txt index 0b0a8fa..1a11192 100755 --- a/readme-template.txt +++ b/readme-template.txt @@ -134,10 +134,10 @@ Notices for this software are found in the notices/JAMA directory. Release notes =============== -v1.5 25/11/2018 +v1.5 26/11/2018 --------------- -(after 749 commits recorded by github, repository as at https://github.com/jlizier/jidt/tree/dc4e59f94583f2cae53ff4167d8052151cddc3d8 save for this file update) -Added GPU (cuda) capability for KSG Conditional Mutual Information calculator (proper documentation and wiki page to come), including unit tests; +(after 753 commits recorded by github, repository as at https://github.com/jlizier/jidt/tree/603445651cc0bf155a42c9ba336141bc7f29bccd save for this file update) +Added GPU (cuda) capability for KSG Conditional Mutual Information calculator (proper documentation to come), including unit tests and brief wiki page; Added auto-embedding for TE/AIS with multivariate KSG, and univariate and multivariate Gaussian estimator (plus unit tests), for Ragwitz criteria and Maximum bias-corrected AIS, and also added Maximum bias corrected AIS and TE to handle source embedding as well; Kozachenko entropy estimator adds noise to data by default; Added bias-correction property to Gaussian and Kernel estimators for MI and conditional MI, including with surrogates (only option for kernel); From bd6a9a26011df098cb2467ae08175c688e08a59a Mon Sep 17 00:00:00 2001 From: jlizier Date: Mon, 26 Nov 2018 00:33:58 +1100 Subject: [PATCH 12/41] Updating links to latest release to v1.5 on front page. Also fixed indenting --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b949bf4..9e89c32 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,11 @@ JIDT is distributed under the [GNU GPL v3 license](http://www.gnu.org/licenses/g # Getting started - 1. [Download](../../wiki/Downloads) and [Installation](../../wiki/Installation) is very easy! - 1. _Quick start_: download the latest [v1.4 full distribution](http://lizier.me/joseph/software/jidt/download.php?file=infodynamics-dist-1.4.zip) (suitable for all platforms) and see the readme.txt file therein. - 1. [Documentation](../../wiki/Documentation) including: the paper describing JIDT at [arXiv:1408.3270](http://arxiv.org/abs/1408.3270) (distributed with the toolkit), a [Tutorial](../../wiki/Tutorial), and [Javadocs (v1.4 here)](http://lizier.me/joseph/software/jidt/javadocs/v1.4/); - 1. [Demos](../../wiki/Demos) are included with the full distribution, including a [GUI app](../../wiki/AutoAnalyser) for automatic analysis and code generation (see picture below), [simple java demos](../../wiki/SimpleJavaExamples) and [cellular automata (CA) demos](../../wiki/CellularAutomataDemos). - 1. These Java tools can easily be used in [Matlab/Octave](../../wiki/OctaveMatlabExamples), [Python](../../wiki/PythonExamples), [R](../../wiki/R_Examples), [Julia](../../wiki/JuliaExamples) and [Clojure](../../wiki/Clojure_Examples)! (click on each language here for examples) +1. [Download](../../wiki/Downloads) and [Installation](../../wiki/Installation) is very easy! + 1. _Quick start_: take a `git clone` or download the latest [v1.5 full distribution](http://lizier.me/joseph/software/jidt/download.php?file=infodynamics-dist-1.5.zip) (suitable for all platforms) and see the readme.txt file therein. +1. [Documentation](../../wiki/Documentation) including: the paper describing JIDT at [arXiv:1408.3270](http://arxiv.org/abs/1408.3270) (distributed with the toolkit), a [Tutorial](../../wiki/Tutorial), and [Javadocs (v1.5 here)](http://lizier.me/joseph/software/jidt/javadocs/v1.5/); +1. [Demos](../../wiki/Demos) are included with the full distribution, including a [GUI app](../../wiki/AutoAnalyser) for automatic analysis and code generation (see picture below), [simple java demos](../../wiki/SimpleJavaExamples) and [cellular automata (CA) demos](../../wiki/CellularAutomataDemos). + 1. These Java tools can easily be used in [Matlab/Octave](../../wiki/OctaveMatlabExamples), [Python](../../wiki/PythonExamples), [R](../../wiki/R_Examples), [Julia](../../wiki/JuliaExamples) and [Clojure](../../wiki/Clojure_Examples)! (click on each language here for examples) ![Computing in the GUI app image](https://raw.githubusercontent.com/jlizier/jidt/master/web/AutoAnalyserGUI-2-Compute.png) From c616ba55d414c85e8ff6bd5b14dae047953721c1 Mon Sep 17 00:00:00 2001 From: Pedro Martinez Mediano Date: Sun, 25 Nov 2018 19:25:33 +0200 Subject: [PATCH 13/41] Added link to wiki in GPU loader error message. --- .../kraskov/MutualInfoCalculatorMultiVariateKraskov.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/source/infodynamics/measures/continuous/kraskov/MutualInfoCalculatorMultiVariateKraskov.java b/java/source/infodynamics/measures/continuous/kraskov/MutualInfoCalculatorMultiVariateKraskov.java index e09335e..1482838 100755 --- a/java/source/infodynamics/measures/continuous/kraskov/MutualInfoCalculatorMultiVariateKraskov.java +++ b/java/source/infodynamics/measures/continuous/kraskov/MutualInfoCalculatorMultiVariateKraskov.java @@ -717,9 +717,10 @@ public abstract class MutualInfoCalculatorMultiVariateKraskov System.load(gpuLibraryPath); } } catch (Throwable e) { - String errmsg = "GPU library not found. To compile GPU code set the enablegpu flag to true in build.xml"; + String errmsg = "GPU library not found. To compile GPU code set the enablegpu flag to true in build.xml, or run `ant gpu jar`."; + errmsg += "\nFor more information see the JIDT GPU wiki page: https://github.com/jlizier/jidt/wiki/GPU"; if (gpuLibraryPath.length() > 0) { - errmsg += "\nGPU library was not found in the path provided. Provide full path including library file name."; + errmsg += "\n\nGPU library was not found in the path provided. Provide full path including library file name."; errmsg += "\nExample: /home/johndoe/myfolder/libKraskov.so"; } throw new Exception(errmsg); From 49082763337f47cc1db5cb6290925659e8b6d627 Mon Sep 17 00:00:00 2001 From: Pedro Martinez Mediano Date: Sun, 25 Nov 2018 19:45:48 +0200 Subject: [PATCH 14/41] GPU tests and example now compute multiple surrogates. --- demos/java/infodynamics/demos/Example10GPUBenchmark.java | 3 ++- .../measures/continuous/kraskov/GPUPerformanceTester.java | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/demos/java/infodynamics/demos/Example10GPUBenchmark.java b/demos/java/infodynamics/demos/Example10GPUBenchmark.java index d3d5269..d3d0a44 100755 --- a/demos/java/infodynamics/demos/Example10GPUBenchmark.java +++ b/demos/java/infodynamics/demos/Example10GPUBenchmark.java @@ -67,9 +67,10 @@ public class Example10GPUBenchmark { miCalc.setProperty("k", "4"); miCalc.initialise(src[0].length, tgt[0].length); miCalc.setObservations(src, tgt); + int nb_surrogates = 150; double[] timeAndValue = new double[2]; long startTime = System.nanoTime(); - timeAndValue[1] = miCalc.computeAverageLocalOfObservations(); + timeAndValue[1] = miCalc.computeSignificance(nb_surrogates).actualValue; timeAndValue[0] = (System.nanoTime() - startTime)/1000000.0; return timeAndValue; } diff --git a/java/unittests/infodynamics/measures/continuous/kraskov/GPUPerformanceTester.java b/java/unittests/infodynamics/measures/continuous/kraskov/GPUPerformanceTester.java index 6be9705..8436052 100644 --- a/java/unittests/infodynamics/measures/continuous/kraskov/GPUPerformanceTester.java +++ b/java/unittests/infodynamics/measures/continuous/kraskov/GPUPerformanceTester.java @@ -86,14 +86,14 @@ public class GPUPerformanceTester extends TestCase { startTime = Calendar.getInstance().getTimeInMillis(); miCalc.initialise(1,1); miCalc.setObservations(source, dest); - cpu_val = miCalc.computeSignificance(nb_surrogates).getMeanOfDistribution(); + cpu_val = miCalc.computeSignificance(nb_surrogates).actualValue; cpu_duration = Calendar.getInstance().getTimeInMillis() - startTime; miCalc.setProperty("USE_GPU", "true"); miCalc.initialise(1,1); startTime = Calendar.getInstance().getTimeInMillis(); miCalc.setObservations(source, dest); - gpu_val = miCalc.computeSignificance(nb_surrogates).getMeanOfDistribution(); + gpu_val = miCalc.computeSignificance(nb_surrogates).actualValue; gpu_duration = Calendar.getInstance().getTimeInMillis() - startTime; assertEquals(cpu_val, gpu_val, 0.0001); @@ -124,12 +124,12 @@ public class GPUPerformanceTester extends TestCase { return; } - int timeSteps = 10000; + int timeSteps = 1000; RandomGenerator rg = new RandomGenerator(); double[] source = rg.generateNormalData(timeSteps, 0, 1); double[] dest = rg.generateNormalData(timeSteps, 0, 1); - compareGPUPerformance(source, dest, "Random low-dimensional data"); + compareGPUPerformanceSurrogates(source, dest, 150, "Random low-dimensional data"); return; } From fa9a45a9cf745bc7f2373a901e734e4e11a504b2 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Mon, 10 Dec 2018 17:12:15 +1100 Subject: [PATCH 15/41] added in the original spiking estimator code --- .../TransferEntropyCalculatorSpiking.java | 362 +++++ ...erEntropyCalculatorSpikingIntegration.java | 1230 +++++++++++++++++ ...orSpikingIntegrationOldRepresentation.java | 1103 +++++++++++++++ .../spiking/integration/package-info.java | 8 + .../measures/spiking/package-info.java | 8 + 5 files changed, 2711 insertions(+) create mode 100755 java/source/infodynamics/measures/spiking/TransferEntropyCalculatorSpiking.java create mode 100644 java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java create mode 100644 java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegrationOldRepresentation.java create mode 100644 java/source/infodynamics/measures/spiking/integration/package-info.java create mode 100644 java/source/infodynamics/measures/spiking/package-info.java diff --git a/java/source/infodynamics/measures/spiking/TransferEntropyCalculatorSpiking.java b/java/source/infodynamics/measures/spiking/TransferEntropyCalculatorSpiking.java new file mode 100755 index 0000000..5aaaf9f --- /dev/null +++ b/java/source/infodynamics/measures/spiking/TransferEntropyCalculatorSpiking.java @@ -0,0 +1,362 @@ +/* + * Java Information Dynamics Toolkit (JIDT) + * Copyright (C) 2012, Joseph T. Lizier + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package infodynamics.measures.spiking; + +import infodynamics.utils.EmpiricalMeasurementDistribution; + +/** + *

Interface for implementations of the transfer entropy (TE), + * which may be applied to spiking time-series data. + * That is, it is applied to double[] data, as an array + * of time stamps at which spikes were recorded. + * See Schreiber below for the definition of transfer entropy, + * and Lizier et al. for the definition of local transfer entropy, + * and (To be published) for how to measure transfer entropy on spike trains. + * Specifically, this class implements the pairwise or apparent + * transfer entropy; i.e. we compute the transfer that appears to + * come from a single source variable, without examining any other + * potential sources + * (see Lizier et al, PRE, 2008).

+ * + *

+ * Usage of the child classes implementing this interface is intended to follow this paradigm: + *

+ *
    + *
  1. Construct the calculator;
  2. + *
  3. Set properties using {@link #setProperty(String, String)} + * e.g. including properties describing + * the source and destination embedding;
  4. + *
  5. Initialise the calculator using + * {@link #initialise()} or {@link #initialise(int, int)};
  6. + *
  7. Provide the observations/samples for the calculator + * to set up the PDFs, using: + *
      + *
    • {@link #setObservations(double[], double[])} + * for calculations based on single recordings, OR
    • + *
    • The following sequence:
        + *
      1. {@link #startAddObservations()}, then
      2. + *
      3. One or more calls to + * {@link #addObservations(double[], double[])}, then
      4. + *
      5. {@link #finaliseAddObservations()};
      6. + *
    • + *
  8. + *
  9. Compute the required quantities, being one or more of: + *
      + *
    • the average TE: {@link #computeAverageLocalOfObservations()};
    • + *
    • the local TE values for these samples: {@link #computeLocalOfPreviousObservations()}
    • + *
    • the distribution of TE values under the null hypothesis + * of no relationship between source and + * destination values: {@link #computeSignificance(int)} or + * {@link #computeSignificance(int[][])}.
    • + *
    + *
  10. + *
  11. + * Return to step 2 or 3 to re-use the calculator on a new data set. + *
  12. + *
+ *

+ * + *

References:
+ *

+ * + * @author Joseph Lizier (email, + * www) + */ +public interface TransferEntropyCalculatorSpiking { + + /** + * Property name to specify the destination history embedding length k + * (default value 1) + */ + public static final String K_PROP_NAME = "k_HISTORY"; + /** + * Property name for embedding length for the source past history vector + * (default value 1) + */ + public static final String L_PROP_NAME = "l_HISTORY"; + /* Could try to do this one later. I think we would just consider the history + * of source as being up to this many units of time behind destination and + * no later. + * + * Property name for source-destination delay (default value is 0) + * + public static final String DELAY_PROP_NAME = "DELAY"; + */ + /** + * Property name for whether each series of time stamps of spikes is sorted + * into temporal order. (default true) + */ + public static final String TIMESORTED_PROP_NAME = "TIME_SORTED"; + + /** + * Initialise the calculator for re-use with new observations. + * All parameters remain unchanged. + * + * @throws Exception + */ + public void initialise() throws Exception; + + /** + * Initialise the calculator for re-use with new observations. + * A new history embedding length k can be supplied here; all other parameters + * remain unchanged. + * + * @param k destination history embedding length to be considered. + * @throws Exception + */ + public void initialise(int k) throws Exception; + + /** + * Initialise the calculator for re-use with new observations. + * New history embedding lengths k and l can be supplied here; all other parameters + * remain unchanged. + * + * @param k destination history embedding length to be considered. + * @param l source history embedding length to be considered. + * @throws Exception + */ + public void initialise(int k, int l) throws Exception; + + /** + * Sets properties for the TE calculator. + * New property values are not guaranteed to take effect until the next call + * to an initialise method. + * + *

Valid property names, and what their + * values should represent, include:

+ *
    + *
  • {@link #K_PROP_NAME} -- destination history embedding length k + * (default value 1)
  • + *
  • {@link #L_PROP_NAME} -- embedding length for the source past history vector + * (default value 1)
  • + *
  • {@link #TIMESORTED_PROP_NAME} -- whether each series of time stamps of spikes is sorted + * into temporal order. (default "true")
  • + *
+ *

Note: further properties may be defined by child classes.

+ * + *

Unknown property values are ignored.

+ * + * @param propertyName name of the property + * @param propertyValue value of the property. + * @throws Exception if there is a problem with the supplied value, + * or if the property is recognised but unsupported (eg some + * calculators do not support all of the embedding properties). + */ + public void setProperty(String propertyName, String propertyValue) throws Exception; + + /** + * Get current property values for the calculator. + * + *

Valid property names, and what their + * values should represent, are the same as those for + * {@link #setProperty(String, String)}

+ * + *

Unknown property values are responded to with a null return value.

+ * + * @param propertyName name of the property + * @return current value of the property + * @throws Exception for invalid property values + */ + public String getProperty(String propertyName) throws Exception; + + /** + * Sets a single set of spiking observations from which to compute the PDF for transfer entropy. + * Cannot be called in conjunction with other methods for setting/adding + * observations. + * + * @param source series of time stamps of spikes for the source variable. + * @param destination series of time stamps of spikes for the destination + * variable. Length will generally be different to the source, + * unlike other transfer entropy implementations, e.g. for {@link infodynamics.measures.continuous.TransferEntropyCalculator}. + * source and destination must have the same reference time point, + * and each array is assumed to be sorted into temporal order unless + * the property {@link #TIMESORTED_PROP_NAME} has been set to false. + * + * @throws Exception + */ + public void setObservations(double source[], double destination[]) throws Exception; + + /** + * Signal that we will add in the samples for computing the PDF + * from several disjoint time-series or trials via calls to + * {@link #addObservations(double[], double[])} rather than + * {@link #setObservations(double[], double[])} type methods + * (defined by the child interfaces and classes). + * + */ + public void startAddObservations(); + + /** + *

Adds a new set of spiking observations to update the PDFs with. + * It is intended to be called multiple times, and must + * be called after {@link #startAddObservations()}. Call + * {@link #finaliseAddObservations()} once all observations have + * been supplied.

+ * + *

Important: this does not append or overlay these observations to the previously + * supplied observations, but treats them as independent trials - i.e. measurements + * such as the transfer entropy will not join them up to examine k + * consecutive values in time.

+ * + *

Note that the arrays source and destination must not be over-written by the user + * until after {@link #finaliseAddObservations()} has been called + * (they are not copied by this method necessarily, the method + * may simply hold a pointer to them).

+ * + * @param source series of time stamps of spikes for the source variable. + * Will be returned in ascending sorted order. + * @param destination series of time stamps of spikes for the destination + * variable. Length will generally be different to the source, + * unlike other transfer entropy implementations, e.g. for {@link infodynamics.measures.continuous.TransferEntropyCalculator}. + * source and destination must have the same reference time point, + * and each array is assumed to be sorted into temporal order unless + * the property {@link #TIMESORTED_PROP_NAME} has been set to false. + * Will be returned in ascending sorted order. + * @throws Exception + */ + public void addObservations(double[] source, double[] destination) throws Exception; + + /** + * Signal that the observations are now all added via + * {@link #addObservations(double[], double[])}, PDFs can now be constructed. + * + * @throws Exception + */ + public void finaliseAddObservations() throws Exception; + + /** + * Query whether the user has added more than a single observation set via the + * {@link #startAddObservations()}, "addObservations" (defined by child interfaces + * and classes), {@link #finaliseAddObservations()} sequence. + * + * @return true if more than a single observation set was supplied + */ + public boolean getAddedMoreThanOneObservationSet(); + + /** + * Compute the TE from the previously-supplied samples. + * + * @return the estimate of the channel measure + */ + public double computeAverageLocalOfObservations() throws Exception; + + /** + * This interface serves to indicate the return type of {@link TransferEntropyCalculator#computeLocalOfPreviousObservations()} + * as each child implementation will return something specific + * + * @author Joseph Lizier + * + */ + public interface SpikingLocalInformationValues { + // Left empty intentionally + } + + /** + * @return an object containing a representation of + * the of local TE values. The precise contents of this representation + * will vary depending on the underlying implementation + */ + public SpikingLocalInformationValues computeLocalOfPreviousObservations() throws Exception; + + /** + * Generate a bootstrapped distribution of what the TE would look like, + * under a null hypothesis that the source values of our + * samples had no temporal relation to the destination value. + * + *

See Section II.E "Statistical significance testing" of + * the JIDT paper below for a description of how this is done for MI and TE in general. + *

+ * + *

Note that if several disjoint time-series have been added + * as observations using {@link #addObservations(double[])} etc., + * then these separate "trials" will be mixed up in the generation + * of surrogates here.

+ * + *

This method (in contrast to {@link #computeSignificance(int[][])}) + * creates random shufflings of the source embedding vectors for the surrogate + * calculations.

+ * + * @param numPermutationsToCheck number of surrogate samples to bootstrap + * to generate the distribution. + * @return the distribution of TE scores under this null hypothesis. + * @see "J.T. Lizier, 'JIDT: An information-theoretic + * toolkit for studying the dynamics of complex systems', 2014." + */ + public EmpiricalMeasurementDistribution computeSignificance(int numPermutationsToCheck) throws Exception; + + /** + * Generate a bootstrapped distribution of what the TE would look like, + * under a null hypothesis that the source values of our + * samples had no relation to the destination value. + * + *

See Section II.E "Statistical significance testing" of + * the JIDT paper below for a description of how this is done for MI and TE. + *

+ * + *

Note that if several disjoint time-series have been added + * as observations using {@link #addObservations(double[])} etc., + * then these separate "trials" will be mixed up in the generation + * of surrogates here.

+ * + *

This method (in contrast to {@link #computeSignificance(int)}) + * allows the user to specify how to construct the surrogates, + * such that repeatable results may be obtained.

+ * + * @param newOrderings a specification of how to shuffle the source embedding vectors + * between all of our samples to create the surrogates to generate the distribution with. The first + * index is the permutation number (i.e. newOrderings.length is the number + * of surrogate samples we use to bootstrap to generate the distribution here.) + * Each array newOrderings[i] should be an array of length N (where + * would be the value returned by {@link #getNumObservations()}), + * containing a permutation of the values in 0..(N-1). + * TODO Need to think this through a little more before implementing. + * @return the distribution of channel measure scores under this null hypothesis. + * @see "J.T. Lizier, 'JIDT: An information-theoretic + * toolkit for studying the dynamics of complex systems', 2014." + * @throws Exception where the length of each permutation in newOrderings + * is not equal to the number N samples that were previously supplied. + */ + public EmpiricalMeasurementDistribution computeSignificance( + int[][] newOrderings) throws Exception; + + /** + * Set or clear debug mode for extra debug printing to stdout + * + * @param debug new setting for debug mode (on/off) + */ + public void setDebug(boolean debug); + + /** + * Return the TE last calculated in a call to {@link #computeAverageLocalOfObservations()} + * or {@link #computeLocalOfPreviousObservations()} after the previous + * {@link #initialise()} call. + * + * @return the last computed channel measure value + */ + public double getLastAverage(); +} diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java new file mode 100644 index 0000000..690c397 --- /dev/null +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -0,0 +1,1230 @@ +package infodynamics.measures.spiking.integration; + +import java.util.Arrays; +import java.util.Iterator; +import java.util.PriorityQueue; +import java.util.Vector; + +import infodynamics.measures.spiking.TransferEntropyCalculatorSpiking; +import infodynamics.utils.EmpiricalMeasurementDistribution; +import infodynamics.utils.KdTree; +import infodynamics.utils.MathsUtils; +import infodynamics.utils.MatrixUtils; +import infodynamics.utils.NeighbourNodeData; +import infodynamics.utils.FirstIndexComparatorDouble; +import infodynamics.utils.UnivariateNearestNeighbourSearcher; + +/** + * Computes the transfer entropy between a pair of spike trains, + * using an integration-based measure in order to match the theoretical + * form of TE between such spike trains. + * + *

Usage paradigm is as per the interface {@link TransferEntropyCalculatorSpiking}

+ * + * @author Joseph Lizier (email, + * www) + */ +public class TransferEntropyCalculatorSpikingIntegration implements + TransferEntropyCalculatorSpiking { + + /** + * Number of past destination spikes to consider (akin to embedding length) + */ + protected int k = 1; + /** + * Number of past source spikes to consider (akin to embedding length) + */ + protected int l = 1; + + /** + * Number of nearest neighbours to search for in the full joint space + */ + protected int Knns = 4; + + /** + * Storage for source observations supplied via {@link #addObservations(double[], double[])} etc. + */ + protected Vector vectorOfSourceSpikeTimes = null; + + /** + * Storage for destination observations supplied via {@link #addObservations(double[], double[])} etc. + */ + protected Vector vectorOfDestinationSpikeTimes = null; + + // constants for indexing our data storage + protected final static int NEXT_DEST = 0; + protected final static int NEXT_SOURCE = 1; + protected final static int NEXT_POSSIBILITIES = 2; + + /** + * Cache of the timing data for each new observed spiking event in both the source + * and destination + */ + Vector[] eventTimings = null; + /** + * Cache of the timing data for each new observed spiking event for the + * destination only + */ + Vector destPastAndNextTimings = null; + /** + * Cache of the type of event for each new observed spiking event in both the source + * and destination (i.e. which spiked next) + */ + Vector eventTypeLocator = null; + /** + * Cache for each new observed spiking event of which index it has in the vector + * of spiking events of the same type + */ + Vector eventIndexLocator = null; + /** + * Cache for each time-series of observed spiking events of how many + * observations were in that set. + */ + Vector numEventsPerObservationSet = null; + + /** + * KdTrees for searching the joint past spaces and time to next spike, + * for each possibility of which spiked next + */ + protected KdTree[] kdTreesJoint = null; + + /** + * KdTrees for searching the joint past spaces, + * for each possibility of which spiked next + */ + protected KdTree[] kdTreesSourceDestHistories = null; + + /** + * KdTrees for searching the past destination space and time to next spike + */ + protected KdTree kdTreeDestNext = null; + + /** + * KdTrees for searching the past destination space + */ + protected KdTree kdTreeDestHistory = null; + + /** + * NN searcher for the time to next spike space only, if required + */ + protected UnivariateNearestNeighbourSearcher nnSearcherDestTimeToNextSpike = null; + + /** + * Property name for the number of nearest neighbours to search + */ + public static final String KNNS_PROP_NAME = "Knns"; + + /** + * Property name for adjusting the search radius for the next spike such that + * it does not cover negative times (with respect to the previous spike, being either + * source or destination spike) + */ + public static final String TRIM_TO_POS_PROP_NAME = "TRIM_RANGE_TO_POS_TIMES"; + + protected boolean trimToPosNextSpikeTimes = false; + + /** + * Stores whether we are in debug mode + */ + protected boolean debug = false; + + public TransferEntropyCalculatorSpikingIntegration() { + super(); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int) + */ + @Override + public void initialise() throws Exception { + initialise(k,l); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int) + */ + @Override + public void initialise(int k) throws Exception { + initialise(k,this.l); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int, int) + */ + @Override + public void initialise(int k, int l) throws Exception { + if ((k < 1) || (l < 1)) { + throw new Exception("Zero history length not supported"); + } + this.k = k; + this.l = l; + vectorOfSourceSpikeTimes = null; + vectorOfDestinationSpikeTimes = null; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setProperty(java.lang.String, java.lang.String) + */ + @Override + public void setProperty(String propertyName, String propertyValue) + throws Exception { + boolean propertySet = true; + if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { + k = Integer.parseInt(propertyValue); + } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { + l = Integer.parseInt(propertyValue); + } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { + Knns = Integer.parseInt(propertyValue); + } else if (propertyName.equalsIgnoreCase(TRIM_TO_POS_PROP_NAME)) { + trimToPosNextSpikeTimes = Boolean.parseBoolean(propertyValue); + } else { + // No property was set on this class + propertySet = false; + } + if (debug && propertySet) { + System.out.println(this.getClass().getSimpleName() + ": Set property " + propertyName + + " to " + propertyValue); + } + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getProperty(java.lang.String) + */ + @Override + public String getProperty(String propertyName) throws Exception { + if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { + return Integer.toString(k); + } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { + return Integer.toString(l); + } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { + return Integer.toString(Knns); + } else if (propertyName.equalsIgnoreCase(TRIM_TO_POS_PROP_NAME)) { + return Boolean.toString(trimToPosNextSpikeTimes); + } else { + // No property matches for this class + return null; + } + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setObservations(double[], double[]) + */ + @Override + public void setObservations(double[] source, double[] destination) + throws Exception { + startAddObservations(); + addObservations(source, destination); + finaliseAddObservations(); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#startAddObservations() + */ + @Override + public void startAddObservations() { + vectorOfSourceSpikeTimes = new Vector(); + vectorOfDestinationSpikeTimes = new Vector(); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#addObservations(double[], double[]) + */ + @Override + public void addObservations(double[] source, double[] destination) + throws Exception { + // Store these observations in our vector for now + vectorOfSourceSpikeTimes.add(source); + vectorOfDestinationSpikeTimes.add(destination); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#finaliseAddObservations() + */ + @Override + public void finaliseAddObservations() throws Exception { + // TODO Auto embed if required + // preFinaliseAddObservations(); + + // Run through each spiking time series set and pull out the observation + // tuples we'll store. + // Initialise our data stores: + eventTimings = new Vector[NEXT_POSSIBILITIES]; + for (int next = 0; next < NEXT_POSSIBILITIES; next++) { + eventTimings[next] = new Vector(); + } + destPastAndNextTimings = new Vector(); + eventTypeLocator = new Vector(); + eventIndexLocator = new Vector(); + numEventsPerObservationSet = new Vector(); + + // Send all of the observations through: + Iterator sourceIterator = vectorOfSourceSpikeTimes.iterator(); + int timeSeriesIndex = 0; + for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { + double[] sourceSpikeTimes = sourceIterator.next(); + timeSeriesIndex++; + + processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, + timeSeriesIndex, eventTimings, destPastAndNextTimings, + eventTypeLocator, eventIndexLocator, numEventsPerObservationSet); + } + + // Now we have collected all the events. + // Load up the search structures: + // 1. Full joint space: + // 2. Histories of source and dest only: + kdTreesJoint = new KdTree[NEXT_POSSIBILITIES]; + kdTreesSourceDestHistories = new KdTree[NEXT_POSSIBILITIES]; + for (int next = 0; next < NEXT_POSSIBILITIES; next++) { + // This line does not work: + // double[][][] jointEventTimings = (double[][][]) eventTimings[prev][next].toArray(); + // So we'll do it manually: + double[][] sourcePastTimings = new double[eventTimings[next].size()][]; + double[][] destPastTimings = new double[eventTimings[next].size()][]; + double[][] nextTimings = new double[eventTimings[next].size()][]; + int i = 0; + for (double[][] timing : eventTimings[next]) { + sourcePastTimings[i] = timing[0]; + destPastTimings[i] = timing[1]; + nextTimings[i] = timing[2]; + i++; + } + // TODO Should we normalise before we supply to the KdTree? + // Think about this later. I'm not convinced it's the best + // approach in this particular case. + kdTreesJoint[next] = new KdTree( + new int[] {l, k - 1, 1}, + new double[][][] {sourcePastTimings, destPastTimings, nextTimings}); + kdTreesSourceDestHistories[next] = new KdTree( + new int[] {l, k - 1}, + new double[][][] {sourcePastTimings, destPastTimings}); + } + // 3. For the dest past and time to next spike + // 4. For the dest past only + double[][] destPastOnlyTimings = new double[destPastAndNextTimings.size()][]; + double[][] nextTimingsForDestPastOnly = new double[destPastAndNextTimings.size()][]; + int i = 0; + for (double[][] timing : destPastAndNextTimings) { + destPastOnlyTimings[i] = timing[0]; + nextTimingsForDestPastOnly[i] = timing[1]; + i++; + } + kdTreeDestNext = new KdTree( + new int[] {k - 1, 1}, + new double[][][] {destPastOnlyTimings, nextTimingsForDestPastOnly}); + + if (k == 1) { + // We need an NN searcher for the time to next spike (dest only) + nnSearcherDestTimeToNextSpike = new UnivariateNearestNeighbourSearcher(nextTimingsForDestPastOnly); + } else { + kdTreeDestHistory = new KdTree(destPastOnlyTimings); + } + } + + protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, + int timeSeriesIndex, Vector[] eventTimings, + Vector destPastAndNextTimings, Vector eventTypeLocator, + Vector eventIndexLocator, Vector numEventsPerObservationSet) throws Exception { + // addObservationsAfterParamsDetermined(sourceSpikeTimes, destSpikeTimes); + + // First sort the spike times in case they were not properly in ascending order: + Arrays.sort(sourceSpikeTimes); + Arrays.sort(destSpikeTimes); + + // Scan to find the indices by which we have k and l spikes for dest and source + // respectively + int dest_index = k - 1; + int source_index = l - 1; + if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { + // Minimum required Source spikes are later than the dest. + // Need to advance dest_index until it's the most recent before source_index + for(;dest_index < destSpikeTimes.length; dest_index++) { + if (destSpikeTimes[dest_index] > sourceSpikeTimes[source_index]) { + // We've gone past the set of source spikes we have, we + // can move back one in the dest series + dest_index--; + break; + } + } + if (dest_index == destSpikeTimes.length) { + // We didn't have enough spikes in this series to generate any observations + // TODO work out how to handle this later -- I think this is ok + numEventsPerObservationSet.add(0); + return; + // throw new Exception("Dest spikes stop before enough source spikes in time-series " + timeSeriesIndex); + } + } else { + // Minimum required Dest spikes are later than the source. + // Need to advance source_index until it's the most recent before dest_index + for(;source_index < sourceSpikeTimes.length; source_index++) { + if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { + // We've gone past the set of dest spikes we have, we + // can move back one in the source series + source_index--; + break; + } + } + if (source_index == sourceSpikeTimes.length) { + // We didn't have enough spikes in this series to generate any observations + // TODO work out how to handle this later -- I think this is ok + numEventsPerObservationSet.add(0); + return; + // throw new Exception("Source spikes stop before enough dest spikes in time-series " + timeSeriesIndex); + } + } + // Post-condition: dest_index and source_index are set correctly for the first set of pasts + + double timeToNextSpike; + boolean nextIsDest = false; + double[] spikeTimesForNextSpiker; + double timeOfPrevDestSpike = destSpikeTimes[dest_index]; + int numEvents = 0; + while(true) { + // 0. Check whether we're finished + if ((source_index == sourceSpikeTimes.length - 1) && + (dest_index == destSpikeTimes.length - 1)) { + // We have no next spike so we can't take an observation here + // and we're done + break; + } + // Otherwise: + // 1. Determine which of source / dest fires next + if (source_index == sourceSpikeTimes.length - 1) { + nextIsDest = true; + } else if (dest_index == destSpikeTimes.length - 1) { + nextIsDest = false; + } else if (sourceSpikeTimes[source_index+1] < destSpikeTimes[dest_index+1]) { + nextIsDest = false; + } else { + nextIsDest = true; + } + spikeTimesForNextSpiker = nextIsDest ? destSpikeTimes : sourceSpikeTimes; + int indexForNextSpiker = nextIsDest ? dest_index : source_index; + timeToNextSpike = spikeTimesForNextSpiker[indexForNextSpiker+1] - timeOfPrevDestSpike; + // 2. Embed the past spikes + double[] sourcePast = new double[l]; + double[] destPast = new double[k - 1]; + /* if (debug) { + System.out.println("previousIsDest = " + previousIsDest + " and nextIsDest = " + nextIsDest); + }*/ + sourcePast[0] = timeOfPrevDestSpike - + sourceSpikeTimes[source_index]; + for (int i = 1; i < k; i++) { + destPast[i - 1] = destSpikeTimes[dest_index - i + 1] - + destSpikeTimes[dest_index - i]; + } + for (int i = 1; i < l; i++) { + sourcePast[i] = sourceSpikeTimes[source_index - i + 1] - + sourceSpikeTimes[source_index - i]; + } + // 3. Store these embedded observations + double[][] observations = new double[][]{sourcePast, destPast, + new double[] {timeToNextSpike}}; + if (debug) { + System.out.printf("Adding event %d with: timeToNextSpike=%.4f, sourceSpikeTimes=", numEvents, timeToNextSpike); + MatrixUtils.printArray(System.out, sourcePast, 3); + System.out.printf(", destSpikeTimes="); + MatrixUtils.printArray(System.out, destPast, 3); + System.out.println(); + } + // Add the index locator first so it gets the index correct before + // we add the new event in: + eventIndexLocator.add(eventTimings[nextIsDest ? NEXT_DEST : NEXT_SOURCE].size()); + eventTimings[nextIsDest ? NEXT_DEST : NEXT_SOURCE].add(observations); + // TODO Switch eventTypeLocation to be of type Integer rather than int[] + eventTypeLocator.add(nextIsDest ? NEXT_DEST : NEXT_SOURCE); + // And finally store the observations for the dest only + // search structure if required: + if (nextIsDest) { + double[][] destOnlyObservations; + destOnlyObservations = new double[][] { + destPast, + new double[] {timeToNextSpike} + }; + destPastAndNextTimings.add(destOnlyObservations); + } + // 4. Reset variables + if (nextIsDest) { + dest_index++; + } else { + source_index++; + } + timeOfPrevDestSpike = destSpikeTimes[dest_index]; + numEvents++; + } + numEventsPerObservationSet.add(numEvents); + if (debug) { + System.out.printf("Finished processing %d source-target events for observation set %d\n", numEvents, timeSeriesIndex); + } + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getAddedMoreThanOneObservationSet() + */ + @Override + public boolean getAddedMoreThanOneObservationSet() { + return (vectorOfDestinationSpikeTimes != null) && + (vectorOfDestinationSpikeTimes.size() > 1); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeAverageLocalOfObservations() + */ + @Override + public double computeAverageLocalOfObservations() throws Exception { + + int numberOfEvents = eventTypeLocator.size(); + + double contributionFromSpikes = 0; + double totalTimeLength = 0; + + double digammaK = MathsUtils.digamma(Knns); + double twoInverseKTerm = 2.0 / (double) Knns; + double inverseKTerm = 1.0 / (double) Knns; + + // Create temporary storage for arrays used in the neighbour counting: + boolean[] isWithinR = new boolean[numberOfEvents]; // dummy, we don't really use this + int[] indicesWithinR = new int[numberOfEvents]; + + // Iterate over all the spiking events: + Iterator eventIndexIterator = eventIndexLocator.iterator(); + int eventIndex = -1; + int indexForNextIsDest = -1; + for (Integer eventType : eventTypeLocator) { + eventIndex++; + int eventIndexWithinType = eventIndexIterator.next().intValue(); + double[][] thisEventTimings = eventTimings[eventType].elementAt(eventIndexWithinType); + double timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; + double timePreviousSourceSpikeBeforePreviousDestSpike = thisEventTimings[0][0]; + totalTimeLength += (timePreviousSourceSpikeBeforePreviousDestSpike < 0) ? + // Source spike is after previous dest spike + timeToNextSpikeSincePreviousDestSpike + timePreviousSourceSpikeBeforePreviousDestSpike : + // Source spike is before previous dest spike + timeToNextSpikeSincePreviousDestSpike; + // Pull out the data for this observation: + if (debug && (eventIndex < 10000)) { + System.out.print("index = " + eventIndex + ", " + + eventIndexWithinType + " for ->" + + (eventType == NEXT_DEST ? "dst" : "src")); + } + + // Select only events where the destination spiked next: + if (eventType == NEXT_DEST) { + // Find the Knns nearest neighbour matches to this event, + // with the same previous spiker and the next. + // TODO Add dynamic exclusion time later + PriorityQueue nnPQ = + kdTreesJoint[eventType].findKNearestNeighbours( + Knns, eventIndexWithinType); + + // Find eps_{x,y,z} as the maximum x, y and z norms amongst this set: + double radius_sourcePast = 0.0; + double radius_destPast = 0.0; + double radius_destNext = 0.0; + int radius_destNext_sampleIndex = -1; + for (int j = 0; j < Knns; j++) { + // Take the furthest remaining of the nearest neighbours from the PQ: + NeighbourNodeData nnData = nnPQ.poll(); + if (nnData.norms[0] > radius_sourcePast) { + radius_sourcePast = nnData.norms[0]; + } + if (nnData.norms[1] > radius_destPast) { + radius_destPast = nnData.norms[1]; + } + if (nnData.norms[2] > radius_destNext) { + radius_destNext = nnData.norms[2]; + radius_destNext_sampleIndex = nnData.sampleIndex; + } + } + + if (debug && (eventIndex < 10000)) { + System.out.print(", timings: src: "); + MatrixUtils.printArray(System.out, thisEventTimings[0], 5); + System.out.print(", dest: "); + MatrixUtils.printArray(System.out, thisEventTimings[1], 5); + System.out.print(", time to next: "); + MatrixUtils.printArray(System.out, thisEventTimings[2], 5); + System.out.printf("index=%d: K=%d NNs at next_range %.5f (point %d)", eventIndexWithinType, Knns, radius_destNext, radius_destNext_sampleIndex); + } + + indexForNextIsDest++; + + // Now find the matching samples in each sub-space; + // first match dest history and source history, with a next spike in dest: + kdTreesSourceDestHistories[NEXT_DEST]. + findPointsWithinRs(eventIndexWithinType, + new double[] {radius_sourcePast, radius_destPast}, 0, + true, isWithinR, indicesWithinR); + // And check which of these samples had spike time in dest after ours: + int countOfDestNextAndGreater = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[NEXT_DEST].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] > thisEventTimings[2][0] + radius_destNext) { + // This sample had a matched history and next spike was a destination + // spike with a longer interval than the current sample + countOfDestNextAndGreater++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + // And count how many samples with the matching history actually had a + // *source* spike next, after ours. + // Note that we now must go to the other kdTree for next source spike + kdTreesSourceDestHistories[NEXT_SOURCE]. + findPointsWithinRs( + new double[] {radius_sourcePast, radius_destPast}, thisEventTimings, + true, isWithinR, indicesWithinR); + // And check which of these samples had spike time in source at or after ours: + int countOfSourceNextAndGreater = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] >= thisEventTimings[2][0] - radius_destNext) { + // This sample had a matched history and next spike was a source + // spike with an interval longer than or considered equal to the current sample. + // (The "equal to" is why we look for matches within radius_destNext here as well.) + countOfSourceNextAndGreater++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + + // We need to correct radius_destNext to have a different value below, chopping it + // where it pushes into negative times (i.e. *before* the previous spike). + // TODO I think this is justified by the approach of Greg Ver Steeg et al. in + // http://www.jmlr.org/proceedings/papers/v38/gao15.pdf -- it's not the same + // as that approach, but a principled version where we know the space cannot + // be explored (so we don't need to only apply the correction where it is large). + double searchAreaRatio = 0; // Ratio of actual search area for full joint space compared to if the timings were independent + double prevSource_timing_upper_original = 0, prevSource_timing_lower = 0; + double destNext_timing_lower_original = timeToNextSpikeSincePreviousDestSpike - radius_destNext; + double destNext_timing_upper = timeToNextSpikeSincePreviousDestSpike + radius_destNext; + double radius_destNext_lower = radius_destNext; + if (trimToPosNextSpikeTimes) { + if (destNext_timing_lower_original < 0) { + // This is the range that's actually being searched in the lower + // dimensional space. + // (We don't need to adjust margins in lower dimensional space for + // this because it simply won't get any points below this!) + destNext_timing_lower_original = 0; + } + // timePreviousSourceSpikeBeforePreviousDestSpike is negative if source is after dest. + prevSource_timing_upper_original = -timePreviousSourceSpikeBeforePreviousDestSpike + radius_sourcePast; + prevSource_timing_lower = -timePreviousSourceSpikeBeforePreviousDestSpike - radius_sourcePast; + double destNext_timing_lower = Math.max(destNext_timing_lower_original, + prevSource_timing_lower); + double prevSource_timing_upper = Math.min(destNext_timing_upper, prevSource_timing_upper_original); + // Now look at various cases for the corrective ratio: + // TODO I think we still need to correct destNext_timing_lower_original to radius_destNext_lower here! + double denominator = (destNext_timing_upper - destNext_timing_lower_original) * + (prevSource_timing_upper_original - prevSource_timing_lower); + if (destNext_timing_upper - destNext_timing_lower > + prevSource_timing_upper - prevSource_timing_lower) { + // Case 1: + if (prevSource_timing_upper < destNext_timing_lower) { + // Windows do not overlap, so there will be no correction here + searchAreaRatio = (destNext_timing_upper - destNext_timing_lower) * + (prevSource_timing_upper - prevSource_timing_lower); + } else if (destNext_timing_upper < prevSource_timing_lower) { + // Should never happen, because next spike can't be before previous source spike + searchAreaRatio = 0; + throw new RuntimeException("Encountered a next target spike *before* the previous source spike"); + } else if (destNext_timing_lower < prevSource_timing_lower) { + // Dest next lower bound is below source previous lower bound -- definitely + // can't get any points in the part below prevSource_timing_lower + // for dest next. + searchAreaRatio = (prevSource_timing_upper - prevSource_timing_lower) * + (destNext_timing_upper - prevSource_timing_upper) + + 0.5 * (prevSource_timing_upper - prevSource_timing_lower) * + (prevSource_timing_upper - prevSource_timing_lower); + } else { + // destNext_timing_lower >= prevSource_timing_lower + // Dest next lower bound is within the previous source window + // but above the source lower bound. + searchAreaRatio = (destNext_timing_upper - destNext_timing_lower) * + (prevSource_timing_upper - prevSource_timing_lower) - + 0.5 * (prevSource_timing_upper - destNext_timing_lower) * + (prevSource_timing_upper - destNext_timing_lower); + } + } else { + // Case 2: + if (prevSource_timing_upper < destNext_timing_lower) { + // Windows do not overlap, so there will be no correction here + searchAreaRatio = (destNext_timing_upper - destNext_timing_lower) * + (prevSource_timing_upper - prevSource_timing_lower); + } else if (destNext_timing_upper < prevSource_timing_lower) { + // Should never happen, because next spike can't be before previous source spike + searchAreaRatio = 0; + throw new RuntimeException("Encountered a next target spike *before* the previous source spike"); + } else if (destNext_timing_lower < prevSource_timing_lower) { + searchAreaRatio = 0.5 * (destNext_timing_upper - prevSource_timing_lower) * + (destNext_timing_upper - prevSource_timing_lower); + } else { + // destNext_timing_lower >= prevSource_timing_lower + searchAreaRatio = (destNext_timing_lower - prevSource_timing_lower) * + (destNext_timing_upper - destNext_timing_lower) + + 0.5 * (destNext_timing_upper - destNext_timing_lower) * + (destNext_timing_upper - destNext_timing_lower); + } + } + if (denominator <= 0) { + // We'll get NaN if we divide by it. No correction is necessary in this + // case, the margins are too thin to cause a discrepancy anyway. + searchAreaRatio = 1; + } else { + searchAreaRatio /= denominator; + } + // And finally fix up the lower radius on destNext if required: + radius_destNext_lower = timeToNextSpikeSincePreviousDestSpike - destNext_timing_lower; + } + + if (debug && (eventIndex < 10000)) { + System.out.printf(" of %d + %d + %d points with matching S-D history", + Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); + } + + // Now find the matching samples in the dest history and + // with a next spike timing. + int countOfDestNextAndGreaterMatchedDest = 0; + int countOfDestNextMatched = 0; + if (k > 1) { + // Search only the space of dest past -- no point + // searching dest past and next, since we need to run through + // all matches of dest past to count those with greater next spike + // times we might as well count those with matching spike times + // while we're at it. + kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radius_destPast, + true, isWithinR, indicesWithinR); + // And check which of these samples had next spike time after ours: + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the dest history space + double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[1][0] >= timeToNextSpikeSincePreviousDestSpike - radius_destNext_lower) { + // This sample had a matched history and next spike was a + // spike with an interval longer than or considered equal to the current sample. + // (The "equal to" is why we look for matches within kthNnData.distance here as well.) + countOfDestNextAndGreaterMatchedDest++; + if (matchedHistoryEventTimings[1][0] <= timeToNextSpikeSincePreviousDestSpike + radius_destNext) { + // Then we also have a match on the next spike itself + countOfDestNextMatched++; + } + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + } else { + // We don't take any past dest spike ISIs into account, so we just need to look at the proportion of next + // spike times that match. + countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsWithinRs(indexForNextIsDest, + radius_destNext, radius_destNext_lower, true); + // To check for points matching or larger, we just need to make this call with the + // revised lower radius, because we don't check the upper one. + countOfDestNextAndGreaterMatchedDest = + nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, radius_destNext_lower, true); + } + double totalSearchTimeWindowCondDestPast = radius_destNext_lower + radius_destNext; + + if (debug && (eventIndex < 10000)) { + System.out.printf(", and %d of %d points for D history only; ", + countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); + } + + //============================ + // This code section is if we wish to compute using digamma logs: + //============================ + // With these neighbours counted, we're ready to compute the probability of the spike given the past + // of source and dest. + double logPGivenSourceAndDest; + double logPGivenDest; + if (k > 1) { + // We're handling three variables: + logPGivenSourceAndDest = digammaK - twoInverseKTerm + - MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater) + + 1.0 / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater); + logPGivenDest = MathsUtils.digamma(countOfDestNextMatched) + - 1.0 / ((double) countOfDestNextMatched) + - MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest); + } else { + // We're really only handling two variables like an MI: + logPGivenSourceAndDest = digammaK - inverseKTerm + - MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater); + logPGivenDest = MathsUtils.digamma(countOfDestNextMatched) + - MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest); + } + if (trimToPosNextSpikeTimes) { + logPGivenSourceAndDest -= Math.log(searchAreaRatio); + } + //============================ + + if (debug && (eventIndex < 10000)) { + System.out.printf(" te ~~ log (%d/%d)/(%d/%d) = %.4f wc-> %.5f bc-> %.4f (inferred rates %.4f vs %.4f, " + + "win-cor %.5f vs %.5f, bias-corrected %.5f vs %.5f)\n", Knns, + Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater, + countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest, + Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / + ((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest))), + // TE from Window corrected rates: + Math.log((((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / + ((destNext_timing_upper - destNext_timing_lower_original)*searchAreaRatio)) / + (((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)) / + totalSearchTimeWindowCondDestPast)), + // TE from Bias corrected rates: + logPGivenSourceAndDest - logPGivenDest, + // Inferred rates raw: + (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater) / (2.0*radius_destNext), + (double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest) / (2.0*radius_destNext), + // Inferred rates with window correction: + ((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / + ((destNext_timing_upper - destNext_timing_lower_original)*searchAreaRatio), + ((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)) / + totalSearchTimeWindowCondDestPast, + // Transform the log likelihoods into bias corrected rates: + Math.exp(logPGivenSourceAndDest) / (2.0*radius_destNext), Math.exp(logPGivenDest) / (2.0*radius_destNext)); + if (trimToPosNextSpikeTimes) { + System.out.printf("Search area ratio: %.5f, correction %.5f, t_y_upper %.5f, t_y_lower %.5f\n", + searchAreaRatio, -Math.log(searchAreaRatio), prevSource_timing_upper_original, prevSource_timing_lower); + } + } + // Unexplained case: + if (countOfDestNextMatched < Knns) { + // TODO Should not happen, print something! + System.out.printf("SHOULD NOT HAPPEN!\n"); + // So debug this: + nnPQ = kdTreesJoint[eventType].findKNearestNeighbours( + Knns, eventIndexWithinType); + for (int j = 0; j < Knns; j++) { + // Take the furthest remaining of the nearest neighbours from the PQ: + NeighbourNodeData nnData = nnPQ.poll(); + System.out.printf("NN data %d norms: source %.5f, destPast %.5f, destNext %.5f, nextIndex %d\n", + nnData.norms[0], nnData.norms[1], nnData.norms[2], nnData.sampleIndex); + } + + } + + //====================== + // Add the contribution in: + // a.If we were using digamma logs: + contributionFromSpikes += logPGivenSourceAndDest - logPGivenDest; + // b. If we are only using window corrections but actual ratios: + //contributionFromSpikes += + // Math.log((((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / + // ((destNext_timing_upper - destNext_timing_lower_original)*searchAreaRatio)) / + // (((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)) / + // totalSearchTimeWindowCondDestPast)); + } else { + if (debug && (eventIndex < 10000)) { + System.out.println(); + } + } + } + System.out.println("All done!"); + contributionFromSpikes /= totalTimeLength; + return contributionFromSpikes; + } + + /* + * This old method is not adjusted for the newer representation yet + * + public double computeAverageLocalOfObservationsAlg1() throws Exception { + + int numberOfEvents = eventTypeLocator.size(); + + double te = 0; + double contributionFromSpikes = 0; + double contributionFromNonSpikes = 0; + double contributionFromNonSpikes_destOnly = 0; + double contributionFromNonSpikes_destAndSource = 0; + double totalTimeLength = 0; + + // Create temporary storage for arrays used in the neighbour counting: + boolean[] isWithinR = new boolean[numberOfEvents]; // dummy, we don't really use this + int[] indicesWithinR = new int[numberOfEvents]; + + // Iterate over all the spiking events: + Iterator eventIndexIterator = eventIndexLocator.iterator(); + int eventIndex = -1; + int indexForNextIsDest = -1; + for (int[] eventType : eventTypeLocator) { + eventIndex++; + int eventIndexWithinType = eventIndexIterator.next().intValue(); + double[][] thisEventTimings = eventTimings[eventType[0]][eventType[1]].elementAt(eventIndexWithinType); + totalTimeLength += thisEventTimings[2][0]; + // Find the Knns nearest neighbour matches to this event, + // with the same previous spiker and the next. + // TODO Add dynamic exclusion time later + PriorityQueue nnPQ = + kdTreesJoint[eventType[0]][eventType[1]].findKNearestNeighbours( + Knns, eventIndexWithinType); + // First element in the PQ is the kth NN, + // and epsilon = kthNnData.distance + NeighbourNodeData kthNnData = nnPQ.poll(); + double radiusToKnn = kthNnData.distance; + if (debug && (eventIndex < 10000)) { + // Pull out the data for this observation: + System.out.print("index = " + eventIndex + ", " + + eventIndexWithinType + " for " + + (eventType[0] == PREV_DEST ? "dst" : "src") + + "->" + + (eventType[1] == NEXT_DEST ? "dst" : "src") + + ", timings: src: "); + MatrixUtils.printArray(System.out, thisEventTimings[0], 3); + System.out.print(", dest: "); + MatrixUtils.printArray(System.out, thisEventTimings[1], 3); + System.out.print(", time to next: "); + MatrixUtils.printArray(System.out, thisEventTimings[2], 3); + System.out.printf("index=%d: K=%d NNs at range %.5f (point %d)", eventIndexWithinType, Knns, radiusToKnn, kthNnData.sampleIndex); + } + + // Select only events where the destination spiked next: + if (eventType[1] == NEXT_DEST) { + indexForNextIsDest++; + + // Now find the matching samples in each sub-space; + // first match dest history and source history, with a next spike in dest: + kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. + findPointsWithinR(eventIndexWithinType, radiusToKnn, 0, + false, isWithinR, indicesWithinR); + // And check which of these samples had spike time in dest after ours: + int countOfDestNextAndGreater = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] >= thisEventTimings[2][0] + radiusToKnn) { + // This sample had a matched history and next spike was a destination + // spike with a longer interval than the current sample + countOfDestNextAndGreater++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + // And count how many samples with the matching history actually had a + // *source* spike next, after ours. + // Note that we now must go to the other kdTree for next source spike + kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. + findPointsWithinR(radiusToKnn, thisEventTimings, + false, isWithinR, indicesWithinR); + // And check which of these samples had spike time in source after ours: + int countOfSourceNextAndGreater = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] > thisEventTimings[2][0] - radiusToKnn) { + // This sample had a matched history and next spike was a source + // spike with an interval longer than or considered equal to the current sample. + // (The "equal to" is why we look for matches within kthNnData.distance here as well.) + countOfSourceNextAndGreater++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + + if (debug && (eventIndex < 10000)) { + System.out.printf(" of %d + %d + %d points with matching S-D history", + Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); + } + + // Now find the matching samples in the dest history and + // with a next spike timing. + // Construct the appropriate timings to compare to here: + double[][] destOnlyObservations; + double[][] destPastOnlyObservations; + double timeToNextSpikeSincePreviousDestSpike; + if (eventType[0] == PREV_DEST) { + destOnlyObservations = new double[][] { + thisEventTimings[1], // timing of past dest spikes + thisEventTimings[2] // time to next spike + }; + timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; + destPastOnlyObservations = new double[][] { + thisEventTimings[1] // timing of past dest spikes + }; + } else { + // previous is source: + // We can take a copy of the dest past timings, removing the first entry + // (since this only signals time the dest last fired before the source) + // and add that entry to the timeToNextSpike (which was back to the + // source firing). + double[] destPastOnly = Arrays.copyOfRange( + thisEventTimings[1], 1, thisEventTimings[1].length); + timeToNextSpikeSincePreviousDestSpike = + thisEventTimings[1][0] + thisEventTimings[2][0]; + destOnlyObservations = new double[][] { + destPastOnly, + new double[] {timeToNextSpikeSincePreviousDestSpike} + }; + destPastOnlyObservations = new double[][] { + destPastOnly + }; + } + int countOfDestNextAndGreaterMatchedDest = 0; + int countOfDestNextMatched = 0; + if (k > 1) { + // Search only the space of dest past -- no point + // searching dest past and next, since we need to run through + // all matches of dest past to count those with greater next spike + // times we might as well count those with matching spike times + // while we're at it. + + // OLD WAY: + // NO NO NO -- Can't search for it this way, because it's biased -- + // should search for it by giving the index of this dest past-next + // observation, so that it doesn't match to this observation. + // Should be able to use indexForNextIsDest here + //kdTreeDestHistory.findPointsWithinR(radiusToKnn, destPastOnlyObservations, + // false, isWithinR, indicesWithinR); + // Proper way: + kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radiusToKnn, + false, isWithinR, indicesWithinR); + // And check which of these samples had next spike time after ours: + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the dest history space + double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[1][0] > timeToNextSpikeSincePreviousDestSpike - radiusToKnn) { + // This sample had a matched history and next spike was a + // spike with an interval longer than or considered equal to the current sample. + // (The "equal to" is why we look for matches within kthNnData.distance here as well.) + countOfDestNextAndGreaterMatchedDest++; + if (matchedHistoryEventTimings[1][0] < timeToNextSpikeSincePreviousDestSpike + radiusToKnn) { + // Then we also have a match on the next spike itself + countOfDestNextMatched++; + } + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + } else { + // We don't take any past dest spike times into account, so we just need to look at the proportion of next + // spike times that match. + countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsStrictlyWithinR(indexForNextIsDest, radiusToKnn); + countOfDestNextAndGreaterMatchedDest = countOfDestNextMatched + + nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, radiusToKnn, false); + } + + if (debug && (eventIndex < 10000)) { + System.out.printf(", and %d of %d points for D history only; ", + countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); + } + + // With these neighbours counted, we're ready to compute the probability of the spike given the past + // of source and dest. + // Digammas for algorithm 1 include the extra "+1" on all terms except + // for the full joint space + double logPGivenSourceAndDest = MathsUtils.digamma(Knns) - + MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1); + double logPGivenDest = MathsUtils.digamma(countOfDestNextMatched + 1) - + MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest + 1); + if (debug && (eventIndex < 10000)) { + System.out.printf(" te ~~ log (%d/%d)/(%d/%d) = %.4f -> %.4f (inferred rates %.4f vs %.4f)\n", Knns, + Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1, + countOfDestNextMatched + 1, countOfDestNextAndGreaterMatchedDest + 1, + Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1)) / + ((double) (countOfDestNextMatched + 1) / (double) (countOfDestNextAndGreaterMatchedDest + 1))), + logPGivenSourceAndDest - logPGivenDest, + (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1) / (2.0*radiusToKnn), + (double) (countOfDestNextMatched + 1) / (double) (countOfDestNextAndGreaterMatchedDest + 1) / (2.0*radiusToKnn)); + } + contributionFromSpikes += logPGivenSourceAndDest - logPGivenDest; + } else { + if (debug) { + System.out.println(); + } + } + + // Regardless of which type of event it was, we need to integrate + // the spiking rates up until the next spiking event + // Our first attempt at a solution uses the search width defined + // using the history and the next spike. + + // Consider first the destination process only. + // Match dest history + double[][] destPastOnlyObservations; + double timeToNextSpikeSincePreviousDestSpike; + if (eventType[0] == PREV_DEST) { + timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; + destPastOnlyObservations = new double[][] { + thisEventTimings[1] // timing of past dest spikes + }; + } else { + // previous is source: + // We can take a copy of the dest past timings, removing the first entry + // (since this only signals time the dest last fired before the source) + // and add that entry to the timeToNextSpike (which was back to the + // source firing). + double[] destPastOnly = Arrays.copyOfRange( + thisEventTimings[1], 1, thisEventTimings[1].length); + timeToNextSpikeSincePreviousDestSpike = + thisEventTimings[1][0] + thisEventTimings[2][0]; + destPastOnlyObservations = new double[][] { + destPastOnly + }; + } + int countOfDestNextEarlier = 0; + int countOfDestMatches = 0; + if (k > 1) { + kdTreeDestHistory.findPointsWithinR(radiusToKnn, destPastOnlyObservations, + false, isWithinR, indicesWithinR); + // And check which of these samples had next spike time before ours: + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the dest history space + double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[1][0] < timeToNextSpikeSincePreviousDestSpike) { + // This sample had a matched history and next spike was a + // spike with an interval shorter than the current sample. + countOfDestNextEarlier++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + countOfDestMatches++; + } + } else { + // We're not using the past, so we match on everything up to the last spike + countOfDestMatches = nnSearcherDestTimeToNextSpike.getNumObservations(); + countOfDestNextEarlier = nnSearcherDestTimeToNextSpike.countPointsSmallerAndOutsideR( + // indexForNextIsDest must point to the next event (possibly this one) where the dest spikes next. + (eventType[1] == NEXT_DEST) ? indexForNextIsDest : indexForNextIsDest + 1, + radiusToKnn, false); + + } + // And include the contribution for each of these + double integralForDestHistorySpace = 0; + for (int hi = 0; hi < countOfDestNextEarlier; hi++) { + integralForDestHistorySpace += (double) 1 / + (double) (countOfDestMatches - hi); + } + + // First match dest history and source history, with a next spike in dest: + kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. + findPointsWithinR(radiusToKnn, thisEventTimings, + false, isWithinR, indicesWithinR); + // And store which of these samples had spike time in dest before ours. + // Store them in a vector of double arrays, with each array holding the + // spike time then -1 for a next dest spike and +1 for a source spike + Vector spikesBeforeOurs = new Vector(); + int countOfSpikesAfterAndIncludingOurs = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] < thisEventTimings[2][0]) { + // This sample had a matched history and next spike was a destination + // spike with a shorted interval than the current sample + spikesBeforeOurs.add(new double[] { + matchedHistoryEventTimings[2][0], -1}); + } else { + countOfSpikesAfterAndIncludingOurs++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + // And store which of these samples had spike time in source before ours. + // Store them in a vector of double arrays, with each array holding the + // spike time then -1 for a next dest spike and +1 for a source spike + // Note that we now must go to the other kdTree for next source spike + kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. + findPointsWithinR(radiusToKnn, thisEventTimings, + false, isWithinR, indicesWithinR); + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] < thisEventTimings[2][0]) { + // This sample had a matched history and next spike was a source + // spike with a shorted interval than the current sample + spikesBeforeOurs.add(new double[] { + matchedHistoryEventTimings[2][0], +1}); + } else { + countOfSpikesAfterAndIncludingOurs++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + // Now we can sort the spikes which occur before ours and process + // them in order: + // Next line doesn't work, so replaced with clunkier code: + // double[][] nextSpikeTimesAndType = (double[][]) spikesBeforeOurs.toArray(); + double[][] nextSpikeTimesAndType = new double[spikesBeforeOurs.size()][]; + for (int si = 0; si < nextSpikeTimesAndType.length; si++) { + nextSpikeTimesAndType[si] = spikesBeforeOurs.elementAt(si); + } + Arrays.sort(nextSpikeTimesAndType, FirstIndexComparatorDouble.getInstance()); + double integralForJointSpace = 0; + for (int si = 0; si < nextSpikeTimesAndType.length; si++) { + if (nextSpikeTimesAndType[si][1] < 0) { + // We have a next spike from the dest, which is + // earlier than our spike. + // Integrated Prob for getting a spike here is 1 / N, where + // N is the number of properly matched histories (i.e. + // which don't have a next spike before this one) + double intPNext = (double) 1 / (double) + (nextSpikeTimesAndType.length - si + countOfSpikesAfterAndIncludingOurs); + integralForJointSpace += intPNext; + } + // Ignore next spikes on the source, they simply get removed + // from the matched histories count + } + + // We now have the integral of spike rates given the dest and + // joint histories, so subtract this out: + contributionFromNonSpikes += integralForDestHistorySpace - integralForJointSpace; + contributionFromNonSpikes_destAndSource += integralForJointSpace; + contributionFromNonSpikes_destOnly += integralForDestHistorySpace; + } + contributionFromSpikes /= totalTimeLength; + contributionFromNonSpikes /= totalTimeLength; + contributionFromNonSpikes_destAndSource /= totalTimeLength; + contributionFromNonSpikes_destOnly /= totalTimeLength; + te = contributionFromSpikes + contributionFromNonSpikes; + System.out.printf("TE = %.4f (spikes) + %.4f (non-spikes: d:%.4f - s-d:%.4f) = %.4f\n", + contributionFromSpikes, contributionFromNonSpikes, + contributionFromNonSpikes_destOnly, contributionFromNonSpikes_destAndSource, te); + return te; + } + */ + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeLocalOfPreviousObservations() + */ + @Override + public SpikingLocalInformationValues computeLocalOfPreviousObservations() + throws Exception { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeSignificance(int) + */ + @Override + public EmpiricalMeasurementDistribution computeSignificance( + int numPermutationsToCheck) throws Exception { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeSignificance(int[][]) + */ + @Override + public EmpiricalMeasurementDistribution computeSignificance( + int[][] newOrderings) throws Exception { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setDebug(boolean) + */ + @Override + public void setDebug(boolean debug) { + this.debug = debug; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getLastAverage() + */ + @Override + public double getLastAverage() { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegrationOldRepresentation.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegrationOldRepresentation.java new file mode 100644 index 0000000..d6dad78 --- /dev/null +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegrationOldRepresentation.java @@ -0,0 +1,1103 @@ +package infodynamics.measures.spiking.integration; + +import java.util.Arrays; +import java.util.Iterator; +import java.util.PriorityQueue; +import java.util.Vector; + +import infodynamics.measures.spiking.TransferEntropyCalculatorSpiking; +import infodynamics.utils.EmpiricalMeasurementDistribution; +import infodynamics.utils.KdTree; +import infodynamics.utils.MathsUtils; +import infodynamics.utils.MatrixUtils; +import infodynamics.utils.NeighbourNodeData; +import infodynamics.utils.FirstIndexComparatorDouble; +import infodynamics.utils.UnivariateNearestNeighbourSearcher; + +/** + * Computes the transfer entropy between a pair of spike trains, + * using an integration-based measure in order to match the theoretical + * form of TE between such spike trains. + * + *

Usage paradigm is as per the interface {@link TransferEntropyCalculatorSpiking}

+ * + * @author Joseph Lizier (email, + * www) + */ +public class TransferEntropyCalculatorSpikingIntegrationOldRepresentation implements + TransferEntropyCalculatorSpiking { + + /** + * Number of past destination spikes to consider (akin to embedding length) + */ + protected int k = 1; + /** + * Number of past source spikes to consider (akin to embedding length) + */ + protected int l = 1; + + /** + * Number of nearest neighbours to search for in the full joint space + */ + protected int Knns = 4; + + /** + * Storage for source observations supplied via {@link #addObservations(double[], double[])} etc. + */ + protected Vector vectorOfSourceSpikeTimes = null; + + /** + * Storage for destination observations supplied via {@link #addObservations(double[], double[])} etc. + */ + protected Vector vectorOfDestinationSpikeTimes = null; + + // constants for indexing our data storage + protected final static int PREV_DEST = 0; + protected final static int PREV_SOURCE = 1; + protected final static int PREV_POSSIBILITIES = 2; + protected final static int NEXT_DEST = 0; + protected final static int NEXT_SOURCE = 1; + protected final static int NEXT_POSSIBILITIES = 2; + + /** + * Cache of the timing data for each new observed spiking event in both the source + * and destination + */ + Vector[][] eventTimings = null; + /** + * Cache of the timing data for each new observed spiking event for the + * destination only + */ + Vector destPastAndNextTimings = null; + /** + * Cache of the type of event for each new observed spiking event in both the source + * and destination (i.e. which spiked previously, which spiked next + */ + Vector eventTypeLocator = null; + /** + * Cache for each new observed spiking event of which index it has in the vector + * of spiking events of the same type + */ + Vector eventIndexLocator = null; + /** + * Cache for each time-series of observed spiking events of how many + * observations were in that set. + */ + Vector numEventsPerObservationSet = null; + + /** + * KdTrees for searching the joint past spaces and time to next spike, + * for each combination of which spiked previously and next + */ + protected KdTree[][] kdTreesJoint = null; + + /** + * KdTrees for searching the joint past spaces, + * for each combination of which spiked previously and next + */ + protected KdTree[][] kdTreesSourceDestHistories = null; + + /** + * KdTrees for searching the past destination space and time to next spike + */ + protected KdTree kdTreeDestNext = null; + + /** + * KdTrees for searching the past destination space + */ + protected KdTree kdTreeDestHistory = null; + + /** + * NN searcher for the time to next spike space only, if required + */ + protected UnivariateNearestNeighbourSearcher nnSearcherDestTimeToNextSpike = null; + + /** + * Property name for the number of nearest neighbours to search + */ + public static final String KNNS_PROP_NAME = "Knns"; + + + /** + * Stores whether we are in debug mode + */ + protected boolean debug = false; + + public TransferEntropyCalculatorSpikingIntegrationOldRepresentation() { + super(); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int) + */ + @Override + public void initialise() throws Exception { + initialise(k,l); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int) + */ + @Override + public void initialise(int k) throws Exception { + initialise(k,this.l); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int, int) + */ + @Override + public void initialise(int k, int l) throws Exception { + if ((k < 1) || (l < 1)) { + throw new Exception("Zero history length not supported"); + } + this.k = k; + this.l = l; + vectorOfSourceSpikeTimes = null; + vectorOfDestinationSpikeTimes = null; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setProperty(java.lang.String, java.lang.String) + */ + @Override + public void setProperty(String propertyName, String propertyValue) + throws Exception { + boolean propertySet = true; + if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { + k = Integer.parseInt(propertyValue); + } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { + l = Integer.parseInt(propertyValue); + } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { + Knns = Integer.parseInt(propertyValue); + } else { + // No property was set on this class + propertySet = false; + } + if (debug && propertySet) { + System.out.println(this.getClass().getSimpleName() + ": Set property " + propertyName + + " to " + propertyValue); + } + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getProperty(java.lang.String) + */ + @Override + public String getProperty(String propertyName) throws Exception { + if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { + return Integer.toString(k); + } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { + return Integer.toString(l); + } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { + return Integer.toString(Knns); + } else { + // No property matches for this class + return null; + } + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setObservations(double[], double[]) + */ + @Override + public void setObservations(double[] source, double[] destination) + throws Exception { + startAddObservations(); + addObservations(source, destination); + finaliseAddObservations(); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#startAddObservations() + */ + @Override + public void startAddObservations() { + vectorOfSourceSpikeTimes = new Vector(); + vectorOfDestinationSpikeTimes = new Vector(); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#addObservations(double[], double[]) + */ + @Override + public void addObservations(double[] source, double[] destination) + throws Exception { + // Store these observations in our vector for now + vectorOfSourceSpikeTimes.add(source); + vectorOfDestinationSpikeTimes.add(destination); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#finaliseAddObservations() + */ + @Override + public void finaliseAddObservations() throws Exception { + // TODO Auto embed if required + // preFinaliseAddObservations(); + + // Run through each spiking time series set and pull out the observation + // tuples we'll store. + // Initialise our data stores: + eventTimings = new Vector[PREV_POSSIBILITIES][NEXT_POSSIBILITIES]; + for (int prev = 0; prev < PREV_POSSIBILITIES; prev++) { + for (int next = 0; next < NEXT_POSSIBILITIES; next++) { + eventTimings[prev][next] = new Vector(); + } + } + destPastAndNextTimings = new Vector(); + eventTypeLocator = new Vector(); + eventIndexLocator = new Vector(); + numEventsPerObservationSet = new Vector(); + + // Send all of the observations through: + Iterator sourceIterator = vectorOfSourceSpikeTimes.iterator(); + int timeSeriesIndex = 0; + for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { + double[] sourceSpikeTimes = sourceIterator.next(); + timeSeriesIndex++; + + processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, + timeSeriesIndex, eventTimings, destPastAndNextTimings, + eventTypeLocator, eventIndexLocator, numEventsPerObservationSet); + } + + // Now we have collected all the events. + // Load up the search structures: + // 1. Full joint space: + // 2. Histories of source and dest only: + kdTreesJoint = new KdTree[PREV_POSSIBILITIES][NEXT_POSSIBILITIES]; + kdTreesSourceDestHistories = new KdTree[PREV_POSSIBILITIES][NEXT_POSSIBILITIES]; + for (int prev = 0; prev < PREV_POSSIBILITIES; prev++) { + for (int next = 0; next < NEXT_POSSIBILITIES; next++) { + // This line does not work: + // double[][][] jointEventTimings = (double[][][]) eventTimings[prev][next].toArray(); + // So we'll do it manually: + double[][] sourcePastTimings = new double[eventTimings[prev][next].size()][]; + double[][] destPastTimings = new double[eventTimings[prev][next].size()][]; + double[][] nextTimings = new double[eventTimings[prev][next].size()][]; + int i = 0; + for (double[][] timing : eventTimings[prev][next]) { + sourcePastTimings[i] = timing[0]; + destPastTimings[i] = timing[1]; + nextTimings[i] = timing[2]; + i++; + } + // TODO Should we normalise before we supply to the KdTree? + // Think about this later. I'm not convinced it's the best + // approach in this particular case. + kdTreesJoint[prev][next] = new KdTree( + new int[] {prev == PREV_DEST ? l : l - 1, + prev == PREV_DEST ? k - 1 : k, + 1}, + new double[][][] {sourcePastTimings, destPastTimings, nextTimings}); + kdTreesSourceDestHistories[prev][next] = new KdTree( + new int[] {prev == PREV_DEST ? l : l - 1, + prev == PREV_DEST ? k - 1 : k}, + new double[][][] {sourcePastTimings, destPastTimings}); + } + } + // 3. For the dest past and time to next spike + // 4. For the dest past only + double[][] destPastOnlyTimings = new double[destPastAndNextTimings.size()][]; + double[][] nextTimingsForDestPastOnly = new double[destPastAndNextTimings.size()][]; + int i = 0; + for (double[][] timing : destPastAndNextTimings) { + destPastOnlyTimings[i] = timing[0]; + nextTimingsForDestPastOnly[i] = timing[1]; + i++; + } + kdTreeDestNext = new KdTree( + new int[] {k - 1, 1}, + new double[][][] {destPastOnlyTimings, nextTimingsForDestPastOnly}); + + if (k == 1) { + // We need an NN searcher for the time to next spike (dest only) + nnSearcherDestTimeToNextSpike = new UnivariateNearestNeighbourSearcher(nextTimingsForDestPastOnly); + } else { + kdTreeDestHistory = new KdTree(destPastOnlyTimings); + } + } + + protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, + int timeSeriesIndex, Vector[][] eventTimings, + Vector destPastAndNextTimings, Vector eventTypeLocator, + Vector eventIndexLocator, Vector numEventsPerObservationSet) throws Exception { + // addObservationsAfterParamsDetermined(sourceSpikeTimes, destSpikeTimes); + + // First sort the spike times in case they were not properly in ascending order: + Arrays.sort(sourceSpikeTimes); + Arrays.sort(destSpikeTimes); + + // Scan to find the indices by which we have k and l spikes for dest and source + // respectively + int dest_index = k - 1; + int source_index = l - 1; + boolean previousIsDest = false; + double[] spikeTimesForPreviousSpiker = sourceSpikeTimes; + if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { + // Minimum required Source spikes are later than the dest. + previousIsDest = false; + spikeTimesForPreviousSpiker = sourceSpikeTimes; + // Need to advance dest_index until it's the most recent before source_index + for(;dest_index < destSpikeTimes.length; dest_index++) { + if (destSpikeTimes[dest_index] > sourceSpikeTimes[source_index]) { + // We've gone past the set of source spikes we have, we + // can move back one in the dest series + dest_index--; + break; + } + } + if (dest_index == destSpikeTimes.length) { + // We didn't have enough spikes in this series to generate any observations + // TODO work out how to handle this later -- I think this is ok + numEventsPerObservationSet.add(0); + return; + // throw new Exception("Dest spikes stop before enough source spikes in time-series " + timeSeriesIndex); + } + } else { + // Minimum required Dest spikes are later than the source. + previousIsDest = true; + spikeTimesForPreviousSpiker = destSpikeTimes; + // Need to advance source_index until it's the most recent before dest_index + for(;source_index < sourceSpikeTimes.length; source_index++) { + if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { + // We've gone past the set of dest spikes we have, we + // can move back one in the source series + source_index--; + break; + } + } + if (source_index == sourceSpikeTimes.length) { + // We didn't have enough spikes in this series to generate any observations + // TODO work out how to handle this later -- I think this is ok + numEventsPerObservationSet.add(0); + return; + // throw new Exception("Source spikes stop before enough dest spikes in time-series " + timeSeriesIndex); + } + } + // Post-condition: dest_index and source_index are set correctly for the first set of pasts + int indexForPreviousSpiker = previousIsDest ? dest_index : source_index; + + double timeToNextSpike; + boolean nextIsDest = false; + double[] spikeTimesForNextSpiker = sourceSpikeTimes; + double timeOfPrevSpike = spikeTimesForPreviousSpiker[indexForPreviousSpiker]; + int numEvents = 0; + while(true) { + // 0. Check whether we're finished + if ((source_index == sourceSpikeTimes.length - 1) && + (dest_index == destSpikeTimes.length - 1)) { + // We have no next spike so we can't take an observation here + // and we're done + break; + } + // Otherwise: + // 1. Determine which of source / dest fires next + if (source_index == sourceSpikeTimes.length - 1) { + nextIsDest = true; + } else if (dest_index == destSpikeTimes.length - 1) { + nextIsDest = false; + } else if (sourceSpikeTimes[source_index+1] < destSpikeTimes[dest_index+1]) { + nextIsDest = false; + } else { + nextIsDest = true; + } + spikeTimesForNextSpiker = nextIsDest ? destSpikeTimes : sourceSpikeTimes; + int indexForNextSpiker = nextIsDest ? dest_index : source_index; + timeToNextSpike = spikeTimesForNextSpiker[indexForNextSpiker+1] - timeOfPrevSpike; + // 2. Embed the past spikes + double[] sourcePast = new double[previousIsDest ? l : l - 1]; + double[] destPast = new double[previousIsDest ? k - 1 : k]; + /* if (debug) { + System.out.println("previousIsDest = " + previousIsDest + " and nextIsDest = " + nextIsDest); + }*/ + if (previousIsDest) { + sourcePast[0] = timeOfPrevSpike - + sourceSpikeTimes[source_index]; + } else { + destPast[0] = timeOfPrevSpike - + destSpikeTimes[dest_index]; + } + for (int i = 1; i < k; i++) { + destPast[previousIsDest ? i - 1 : i] = destSpikeTimes[dest_index - i + 1] - + destSpikeTimes[dest_index - i]; + } + for (int i = 1; i < l; i++) { + sourcePast[previousIsDest ? i : i - 1] = sourceSpikeTimes[source_index - i + 1] - + sourceSpikeTimes[source_index - i]; + } + // 3. Store these embedded observations + double[][] observations = new double[][]{sourcePast, destPast, + new double[] {timeToNextSpike}}; + if (debug) { + System.out.printf("Adding event %d with: timeToNextSpike=%.4f, sourceSpikeTimes=", numEvents, timeToNextSpike); + MatrixUtils.printArray(System.out, sourcePast, 3); + System.out.printf(", destSpikeTimes="); + MatrixUtils.printArray(System.out, destPast, 3); + System.out.println(); + } + // Add the index locator first so it gets the index correct before + // we add the new event in: + eventIndexLocator.add(eventTimings[previousIsDest ? PREV_DEST : PREV_SOURCE][nextIsDest ? NEXT_DEST : NEXT_SOURCE].size()); + eventTimings[previousIsDest ? PREV_DEST : PREV_SOURCE][nextIsDest ? NEXT_DEST : NEXT_SOURCE].add(observations); + eventTypeLocator.add(new int[] {previousIsDest ? PREV_DEST : PREV_SOURCE, + nextIsDest ? NEXT_DEST : NEXT_SOURCE}); + // And finally store the observations for the dest only + // search structure if required: + if (nextIsDest) { + double[][] destOnlyObservations; + if (previousIsDest) { + destOnlyObservations = new double[][] { + destPast, + new double[] {timeToNextSpike} + }; + } else { + // previous is source: + // We can take a copy of destPast, removing the first entry + // (since this only signals time the dest last fired before the source) + // and add that entry to the timeToNextSpike (which was back to the + // source firing). + double[] destPastOnly = Arrays.copyOfRange(destPast, 1, destPast.length); + double timeToNextSpikeSincePreviousDestSpike = + destPast[0] + timeToNextSpike; + destOnlyObservations = new double[][] { + destPastOnly, + new double[] {timeToNextSpikeSincePreviousDestSpike} + }; + } + destPastAndNextTimings.add(destOnlyObservations); + } + // 4. Reset prev as next ... + previousIsDest = nextIsDest; + if (previousIsDest) { + dest_index++; + } else { + source_index++; + } + spikeTimesForPreviousSpiker = previousIsDest ? destSpikeTimes : sourceSpikeTimes; + indexForPreviousSpiker = previousIsDest ? dest_index : source_index; + timeOfPrevSpike = spikeTimesForPreviousSpiker[indexForPreviousSpiker]; + numEvents++; + } + numEventsPerObservationSet.add(numEvents); + if (debug) { + System.out.printf("Finished processing %d source-target events for observation set %d\n", numEvents, timeSeriesIndex); + } + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getAddedMoreThanOneObservationSet() + */ + @Override + public boolean getAddedMoreThanOneObservationSet() { + return (vectorOfDestinationSpikeTimes != null) && + (vectorOfDestinationSpikeTimes.size() > 1); + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeAverageLocalOfObservations() + */ + @Override + public double computeAverageLocalOfObservations() throws Exception { + + int numberOfEvents = eventTypeLocator.size(); + + double te = 0; + double contributionFromSpikes = 0; + double totalTimeLength = 0; + + double digammaK = MathsUtils.digamma(Knns); + double inverseKTerm = 2.0 / (double) k; + + // Create temporary storage for arrays used in the neighbour counting: + boolean[] isWithinR = new boolean[numberOfEvents]; // dummy, we don't really use this + int[] indicesWithinR = new int[numberOfEvents]; + + // Iterate over all the spiking events: + Iterator eventIndexIterator = eventIndexLocator.iterator(); + int eventIndex = -1; + int indexForNextIsDest = -1; + for (int[] eventType : eventTypeLocator) { + eventIndex++; + int eventIndexWithinType = eventIndexIterator.next().intValue(); + double[][] thisEventTimings = eventTimings[eventType[0]][eventType[1]].elementAt(eventIndexWithinType); + totalTimeLength += thisEventTimings[2][0]; + // Find the Knns nearest neighbour matches to this event, + // with the same previous spiker and the next. + // TODO Add dynamic exclusion time later + PriorityQueue nnPQ = + kdTreesJoint[eventType[0]][eventType[1]].findKNearestNeighbours( + Knns, eventIndexWithinType); + + // Find eps_{x,y,z} as the maximum x, y and z norms amongst this set: + double radius_sourcePast = 0.0; + double radius_destPast = 0.0; + double radius_destNext = 0.0; + int radius_destNext_sampleIndex = -1; + for (int j = 0; j < k; j++) { + // Take the furthest remaining of the nearest neighbours from the PQ: + NeighbourNodeData nnData = nnPQ.poll(); + if (nnData.norms[0] > radius_sourcePast) { + radius_sourcePast = nnData.norms[0]; + } + if (nnData.norms[1] > radius_destPast) { + radius_destPast = nnData.norms[1]; + } + if (nnData.norms[2] > radius_destNext) { + radius_destNext = nnData.norms[2]; + radius_destNext_sampleIndex = nnData.sampleIndex; + } + } + // TODO Do we need to correct radius_destNext to have a different value below, chopping it + // where it pushes into negative times (i.e. *before* the previous spike)? + + if (debug && (eventIndex < 10000)) { + // Pull out the data for this observation: + System.out.print("index = " + eventIndex + ", " + + eventIndexWithinType + " for " + + (eventType[0] == PREV_DEST ? "dst" : "src") + + "->" + + (eventType[1] == NEXT_DEST ? "dst" : "src") + + ", timings: src: "); + MatrixUtils.printArray(System.out, thisEventTimings[0], 3); + System.out.print(", dest: "); + MatrixUtils.printArray(System.out, thisEventTimings[1], 3); + System.out.print(", time to next: "); + MatrixUtils.printArray(System.out, thisEventTimings[2], 3); + System.out.printf("index=%d: K=%d NNs at next_range %.5f (point %d)", eventIndexWithinType, Knns, radius_destNext, radius_destNext_sampleIndex); + } + + // Select only events where the destination spiked next: + if (eventType[1] == NEXT_DEST) { + indexForNextIsDest++; + + // Now find the matching samples in each sub-space; + // first match dest history and source history, with a next spike in dest: + kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. + findPointsWithinRs(eventIndexWithinType, + new double[] {radius_sourcePast, radius_destPast}, 0, + true, isWithinR, indicesWithinR); + // And check which of these samples had spike time in dest after ours: + int countOfDestNextAndGreater = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] > thisEventTimings[2][0] + radius_destNext) { + // This sample had a matched history and next spike was a destination + // spike with a longer interval than the current sample + countOfDestNextAndGreater++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + // And count how many samples with the matching history actually had a + // *source* spike next, after ours. + // Note that we now must go to the other kdTree for next source spike + kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. + findPointsWithinRs( + new double[] {radius_sourcePast, radius_destPast}, thisEventTimings, + true, isWithinR, indicesWithinR); + // And check which of these samples had spike time in source at or after ours: + int countOfSourceNextAndGreater = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] >= thisEventTimings[2][0] - radius_destNext) { + // This sample had a matched history and next spike was a source + // spike with an interval longer than or considered equal to the current sample. + // (The "equal to" is why we look for matches within radius_destNext here as well.) + countOfSourceNextAndGreater++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + + if (debug && (eventIndex < 10000)) { + System.out.printf(" of %d + %d + %d points with matching S-D history", + Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); + } + + // Now find the matching samples in the dest history and + // with a next spike timing. + // Construct the appropriate timings to compare to here: + double timeToNextSpikeSincePreviousDestSpike; + if (eventType[0] == PREV_DEST) { + timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; + } else { + // previous is source: + timeToNextSpikeSincePreviousDestSpike = + thisEventTimings[1][0] + thisEventTimings[2][0]; + } + int countOfDestNextAndGreaterMatchedDest = 0; + int countOfDestNextMatched = 0; + if (k > 1) { + // Search only the space of dest past -- no point + // searching dest past and next, since we need to run through + // all matches of dest past to count those with greater next spike + // times we might as well count those with matching spike times + // while we're at it. + kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radius_destPast, + true, isWithinR, indicesWithinR); + // And check which of these samples had next spike time after ours: + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the dest history space + double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[1][0] >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) { + // This sample had a matched history and next spike was a + // spike with an interval longer than or considered equal to the current sample. + // (The "equal to" is why we look for matches within kthNnData.distance here as well.) + countOfDestNextAndGreaterMatchedDest++; + if (matchedHistoryEventTimings[1][0] <= timeToNextSpikeSincePreviousDestSpike + radius_destNext) { + // Then we also have a match on the next spike itself + countOfDestNextMatched++; + } + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + } else { + // We don't take any past dest spike ISIs into account, so we just need to look at the proportion of next + // spike times that match. + countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsWithinOrOnR(indexForNextIsDest, radius_destNext); + countOfDestNextAndGreaterMatchedDest = countOfDestNextMatched + + nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, radius_destNext, true); + } + + if (debug && (eventIndex < 10000)) { + System.out.printf(", and %d of %d points for D history only; ", + countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); + } + + // With these neighbours counted, we're ready to compute the probability of the spike given the past + // of source and dest. + double logPGivenSourceAndDest = digammaK - inverseKTerm + - MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater) + + 1.0 / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater); + double logPGivenDest = MathsUtils.digamma(countOfDestNextMatched) + - MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest) + + 1.0 / ((double) countOfDestNextAndGreaterMatchedDest); + if (debug && (eventIndex < 10000)) { + System.out.printf(" te ~~ log (%d/%d)/(%d/%d) = %.4f -> %.4f (inferred rates %.4f vs %.4f)\n", Knns, + Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater, + countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest, + Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / + ((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest))), + logPGivenSourceAndDest - logPGivenDest, + (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater) / (2.0*radius_destNext), + (double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest) / (2.0*radius_destNext)); + } + contributionFromSpikes += logPGivenSourceAndDest - logPGivenDest; + } else { + if (debug) { + System.out.println(); + } + } + + } + contributionFromSpikes /= totalTimeLength; + te = contributionFromSpikes; + return te; + } + + public double computeAverageLocalOfObservationsAlg1() throws Exception { + + int numberOfEvents = eventTypeLocator.size(); + + double te = 0; + double contributionFromSpikes = 0; + double contributionFromNonSpikes = 0; + double contributionFromNonSpikes_destOnly = 0; + double contributionFromNonSpikes_destAndSource = 0; + double totalTimeLength = 0; + + // Create temporary storage for arrays used in the neighbour counting: + boolean[] isWithinR = new boolean[numberOfEvents]; // dummy, we don't really use this + int[] indicesWithinR = new int[numberOfEvents]; + + // Iterate over all the spiking events: + Iterator eventIndexIterator = eventIndexLocator.iterator(); + int eventIndex = -1; + int indexForNextIsDest = -1; + for (int[] eventType : eventTypeLocator) { + eventIndex++; + int eventIndexWithinType = eventIndexIterator.next().intValue(); + double[][] thisEventTimings = eventTimings[eventType[0]][eventType[1]].elementAt(eventIndexWithinType); + totalTimeLength += thisEventTimings[2][0]; + // Find the Knns nearest neighbour matches to this event, + // with the same previous spiker and the next. + // TODO Add dynamic exclusion time later + PriorityQueue nnPQ = + kdTreesJoint[eventType[0]][eventType[1]].findKNearestNeighbours( + Knns, eventIndexWithinType); + // First element in the PQ is the kth NN, + // and epsilon = kthNnData.distance + NeighbourNodeData kthNnData = nnPQ.poll(); + double radiusToKnn = kthNnData.distance; + if (debug && (eventIndex < 10000)) { + // Pull out the data for this observation: + System.out.print("index = " + eventIndex + ", " + + eventIndexWithinType + " for " + + (eventType[0] == PREV_DEST ? "dst" : "src") + + "->" + + (eventType[1] == NEXT_DEST ? "dst" : "src") + + ", timings: src: "); + MatrixUtils.printArray(System.out, thisEventTimings[0], 3); + System.out.print(", dest: "); + MatrixUtils.printArray(System.out, thisEventTimings[1], 3); + System.out.print(", time to next: "); + MatrixUtils.printArray(System.out, thisEventTimings[2], 3); + System.out.printf("index=%d: K=%d NNs at range %.5f (point %d)", eventIndexWithinType, Knns, radiusToKnn, kthNnData.sampleIndex); + } + + // Select only events where the destination spiked next: + if (eventType[1] == NEXT_DEST) { + indexForNextIsDest++; + + // Now find the matching samples in each sub-space; + // first match dest history and source history, with a next spike in dest: + kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. + findPointsWithinR(eventIndexWithinType, radiusToKnn, 0, + false, isWithinR, indicesWithinR); + // And check which of these samples had spike time in dest after ours: + int countOfDestNextAndGreater = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] >= thisEventTimings[2][0] + radiusToKnn) { + // This sample had a matched history and next spike was a destination + // spike with a longer interval than the current sample + countOfDestNextAndGreater++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + // And count how many samples with the matching history actually had a + // *source* spike next, after ours. + // Note that we now must go to the other kdTree for next source spike + kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. + findPointsWithinR(radiusToKnn, thisEventTimings, + false, isWithinR, indicesWithinR); + // And check which of these samples had spike time in source after ours: + int countOfSourceNextAndGreater = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] > thisEventTimings[2][0] - radiusToKnn) { + // This sample had a matched history and next spike was a source + // spike with an interval longer than or considered equal to the current sample. + // (The "equal to" is why we look for matches within kthNnData.distance here as well.) + countOfSourceNextAndGreater++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + + if (debug && (eventIndex < 10000)) { + System.out.printf(" of %d + %d + %d points with matching S-D history", + Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); + } + + // Now find the matching samples in the dest history and + // with a next spike timing. + // Construct the appropriate timings to compare to here: + double[][] destOnlyObservations; + double[][] destPastOnlyObservations; + double timeToNextSpikeSincePreviousDestSpike; + if (eventType[0] == PREV_DEST) { + destOnlyObservations = new double[][] { + thisEventTimings[1], // timing of past dest spikes + thisEventTimings[2] // time to next spike + }; + timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; + destPastOnlyObservations = new double[][] { + thisEventTimings[1] // timing of past dest spikes + }; + } else { + // previous is source: + // We can take a copy of the dest past timings, removing the first entry + // (since this only signals time the dest last fired before the source) + // and add that entry to the timeToNextSpike (which was back to the + // source firing). + double[] destPastOnly = Arrays.copyOfRange( + thisEventTimings[1], 1, thisEventTimings[1].length); + timeToNextSpikeSincePreviousDestSpike = + thisEventTimings[1][0] + thisEventTimings[2][0]; + destOnlyObservations = new double[][] { + destPastOnly, + new double[] {timeToNextSpikeSincePreviousDestSpike} + }; + destPastOnlyObservations = new double[][] { + destPastOnly + }; + } + int countOfDestNextAndGreaterMatchedDest = 0; + int countOfDestNextMatched = 0; + if (k > 1) { + // Search only the space of dest past -- no point + // searching dest past and next, since we need to run through + // all matches of dest past to count those with greater next spike + // times we might as well count those with matching spike times + // while we're at it. + + // OLD WAY: + // NO NO NO -- Can't search for it this way, because it's biased -- + // should search for it by giving the index of this dest past-next + // observation, so that it doesn't match to this observation. + // Should be able to use indexForNextIsDest here + //kdTreeDestHistory.findPointsWithinR(radiusToKnn, destPastOnlyObservations, + // false, isWithinR, indicesWithinR); + // Proper way: + kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radiusToKnn, + false, isWithinR, indicesWithinR); + // And check which of these samples had next spike time after ours: + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the dest history space + double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[1][0] > timeToNextSpikeSincePreviousDestSpike - radiusToKnn) { + // This sample had a matched history and next spike was a + // spike with an interval longer than or considered equal to the current sample. + // (The "equal to" is why we look for matches within kthNnData.distance here as well.) + countOfDestNextAndGreaterMatchedDest++; + if (matchedHistoryEventTimings[1][0] < timeToNextSpikeSincePreviousDestSpike + radiusToKnn) { + // Then we also have a match on the next spike itself + countOfDestNextMatched++; + } + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + } else { + // We don't take any past dest spike times into account, so we just need to look at the proportion of next + // spike times that match. + countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsStrictlyWithinR(indexForNextIsDest, radiusToKnn); + countOfDestNextAndGreaterMatchedDest = countOfDestNextMatched + + nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, radiusToKnn, false); + } + + if (debug && (eventIndex < 10000)) { + System.out.printf(", and %d of %d points for D history only; ", + countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); + } + + // With these neighbours counted, we're ready to compute the probability of the spike given the past + // of source and dest. + // Digammas for algorithm 1 include the extra "+1" on all terms except + // for the full joint space + double logPGivenSourceAndDest = MathsUtils.digamma(Knns) - + MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1); + double logPGivenDest = MathsUtils.digamma(countOfDestNextMatched + 1) - + MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest + 1); + if (debug && (eventIndex < 10000)) { + System.out.printf(" te ~~ log (%d/%d)/(%d/%d) = %.4f -> %.4f (inferred rates %.4f vs %.4f)\n", Knns, + Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1, + countOfDestNextMatched + 1, countOfDestNextAndGreaterMatchedDest + 1, + Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1)) / + ((double) (countOfDestNextMatched + 1) / (double) (countOfDestNextAndGreaterMatchedDest + 1))), + logPGivenSourceAndDest - logPGivenDest, + (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1) / (2.0*radiusToKnn), + (double) (countOfDestNextMatched + 1) / (double) (countOfDestNextAndGreaterMatchedDest + 1) / (2.0*radiusToKnn)); + } + contributionFromSpikes += logPGivenSourceAndDest - logPGivenDest; + } else { + if (debug) { + System.out.println(); + } + } + + // Regardless of which type of event it was, we need to integrate + // the spiking rates up until the next spiking event + // Our first attempt at a solution uses the search width defined + // using the history and the next spike. + + // Consider first the destination process only. + // Match dest history + double[][] destPastOnlyObservations; + double timeToNextSpikeSincePreviousDestSpike; + if (eventType[0] == PREV_DEST) { + timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; + destPastOnlyObservations = new double[][] { + thisEventTimings[1] // timing of past dest spikes + }; + } else { + // previous is source: + // We can take a copy of the dest past timings, removing the first entry + // (since this only signals time the dest last fired before the source) + // and add that entry to the timeToNextSpike (which was back to the + // source firing). + double[] destPastOnly = Arrays.copyOfRange( + thisEventTimings[1], 1, thisEventTimings[1].length); + timeToNextSpikeSincePreviousDestSpike = + thisEventTimings[1][0] + thisEventTimings[2][0]; + destPastOnlyObservations = new double[][] { + destPastOnly + }; + } + int countOfDestNextEarlier = 0; + int countOfDestMatches = 0; + if (k > 1) { + kdTreeDestHistory.findPointsWithinR(radiusToKnn, destPastOnlyObservations, + false, isWithinR, indicesWithinR); + // And check which of these samples had next spike time before ours: + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the dest history space + double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[1][0] < timeToNextSpikeSincePreviousDestSpike) { + // This sample had a matched history and next spike was a + // spike with an interval shorter than the current sample. + countOfDestNextEarlier++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + countOfDestMatches++; + } + } else { + // We're not using the past, so we match on everything up to the last spike + countOfDestMatches = nnSearcherDestTimeToNextSpike.getNumObservations(); + countOfDestNextEarlier = nnSearcherDestTimeToNextSpike.countPointsSmallerAndOutsideR( + // indexForNextIsDest must point to the next event (possibly this one) where the dest spikes next. + (eventType[1] == NEXT_DEST) ? indexForNextIsDest : indexForNextIsDest + 1, + radiusToKnn, false); + + } + // And include the contribution for each of these + double integralForDestHistorySpace = 0; + for (int hi = 0; hi < countOfDestNextEarlier; hi++) { + integralForDestHistorySpace += (double) 1 / + (double) (countOfDestMatches - hi); + } + + // First match dest history and source history, with a next spike in dest: + kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. + findPointsWithinR(radiusToKnn, thisEventTimings, + false, isWithinR, indicesWithinR); + // And store which of these samples had spike time in dest before ours. + // Store them in a vector of double arrays, with each array holding the + // spike time then -1 for a next dest spike and +1 for a source spike + Vector spikesBeforeOurs = new Vector(); + int countOfSpikesAfterAndIncludingOurs = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] < thisEventTimings[2][0]) { + // This sample had a matched history and next spike was a destination + // spike with a shorted interval than the current sample + spikesBeforeOurs.add(new double[] { + matchedHistoryEventTimings[2][0], -1}); + } else { + countOfSpikesAfterAndIncludingOurs++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + // And store which of these samples had spike time in source before ours. + // Store them in a vector of double arrays, with each array holding the + // spike time then -1 for a next dest spike and +1 for a source spike + // Note that we now must go to the other kdTree for next source spike + kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. + findPointsWithinR(radiusToKnn, thisEventTimings, + false, isWithinR, indicesWithinR); + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[2][0] < thisEventTimings[2][0]) { + // This sample had a matched history and next spike was a source + // spike with a shorted interval than the current sample + spikesBeforeOurs.add(new double[] { + matchedHistoryEventTimings[2][0], +1}); + } else { + countOfSpikesAfterAndIncludingOurs++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + // Now we can sort the spikes which occur before ours and process + // them in order: + // Next line doesn't work, so replaced with clunkier code: + // double[][] nextSpikeTimesAndType = (double[][]) spikesBeforeOurs.toArray(); + double[][] nextSpikeTimesAndType = new double[spikesBeforeOurs.size()][]; + for (int si = 0; si < nextSpikeTimesAndType.length; si++) { + nextSpikeTimesAndType[si] = spikesBeforeOurs.elementAt(si); + } + Arrays.sort(nextSpikeTimesAndType, FirstIndexComparatorDouble.getInstance()); + double integralForJointSpace = 0; + for (int si = 0; si < nextSpikeTimesAndType.length; si++) { + if (nextSpikeTimesAndType[si][1] < 0) { + // We have a next spike from the dest, which is + // earlier than our spike. + // Integrated Prob for getting a spike here is 1 / N, where + // N is the number of properly matched histories (i.e. + // which don't have a next spike before this one) + double intPNext = (double) 1 / (double) + (nextSpikeTimesAndType.length - si + countOfSpikesAfterAndIncludingOurs); + integralForJointSpace += intPNext; + } + // Ignore next spikes on the source, they simply get removed + // from the matched histories count + } + + // We now have the integral of spike rates given the dest and + // joint histories, so subtract this out: + contributionFromNonSpikes += integralForDestHistorySpace - integralForJointSpace; + contributionFromNonSpikes_destAndSource += integralForJointSpace; + contributionFromNonSpikes_destOnly += integralForDestHistorySpace; + } + contributionFromSpikes /= totalTimeLength; + contributionFromNonSpikes /= totalTimeLength; + contributionFromNonSpikes_destAndSource /= totalTimeLength; + contributionFromNonSpikes_destOnly /= totalTimeLength; + te = contributionFromSpikes + contributionFromNonSpikes; + System.out.printf("TE = %.4f (spikes) + %.4f (non-spikes: d:%.4f - s-d:%.4f) = %.4f\n", + contributionFromSpikes, contributionFromNonSpikes, + contributionFromNonSpikes_destOnly, contributionFromNonSpikes_destAndSource, te); + return te; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeLocalOfPreviousObservations() + */ + @Override + public SpikingLocalInformationValues computeLocalOfPreviousObservations() + throws Exception { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeSignificance(int) + */ + @Override + public EmpiricalMeasurementDistribution computeSignificance( + int numPermutationsToCheck) throws Exception { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeSignificance(int[][]) + */ + @Override + public EmpiricalMeasurementDistribution computeSignificance( + int[][] newOrderings) throws Exception { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setDebug(boolean) + */ + @Override + public void setDebug(boolean debug) { + this.debug = debug; + } + + /* (non-Javadoc) + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getLastAverage() + */ + @Override + public double getLastAverage() { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/java/source/infodynamics/measures/spiking/integration/package-info.java b/java/source/infodynamics/measures/spiking/integration/package-info.java new file mode 100644 index 0000000..4344736 --- /dev/null +++ b/java/source/infodynamics/measures/spiking/integration/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author joseph + * + */ +package infodynamics.measures.spiking.integration; \ No newline at end of file diff --git a/java/source/infodynamics/measures/spiking/package-info.java b/java/source/infodynamics/measures/spiking/package-info.java new file mode 100644 index 0000000..a751a7f --- /dev/null +++ b/java/source/infodynamics/measures/spiking/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author joseph + * + */ +package infodynamics.measures.spiking; \ No newline at end of file From ec01683592370074af3eb04bd9c9f02834d7dae6 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Mon, 10 Dec 2018 20:22:15 +1100 Subject: [PATCH 16/41] Incorporated JL code from 21/11/2018 --- ...erEntropyCalculatorSpikingIntegration.java | 656 +++++++++--------- java/source/infodynamics/utils/KdTree.java | 0 .../utils/NearestNeighbourSearcher.java | 0 .../UnivariateNearestNeighbourSearcher.java | 0 4 files changed, 346 insertions(+), 310 deletions(-) mode change 100755 => 100644 java/source/infodynamics/utils/KdTree.java mode change 100755 => 100644 java/source/infodynamics/utils/NearestNeighbourSearcher.java mode change 100755 => 100644 java/source/infodynamics/utils/UnivariateNearestNeighbourSearcher.java diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 690c397..0b49943 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -3,6 +3,7 @@ package infodynamics.measures.spiking.integration; import java.util.Arrays; import java.util.Iterator; import java.util.PriorityQueue; +import java.util.Random; import java.util.Vector; import infodynamics.measures.spiking.TransferEntropyCalculatorSpiking; @@ -120,7 +121,20 @@ public class TransferEntropyCalculatorSpikingIntegration implements * source or destination spike) */ public static final String TRIM_TO_POS_PROP_NAME = "TRIM_RANGE_TO_POS_TIMES"; - + /** + * Property name for an amount of random Gaussian noise to be + * added to the data (default is 1e-8, matching the MILCA toolkit). + */ + public static final String PROP_ADD_NOISE = "NOISE_LEVEL_TO_ADD"; + /** + * Whether to add an amount of random noise to the incoming data + */ + protected boolean addNoise = true; + /** + * Amount of random Gaussian noise to add to the incoming data + */ + protected double noiseLevel = (double) 1e-8; + protected boolean trimToPosNextSpikeTimes = false; /** @@ -177,6 +191,15 @@ public class TransferEntropyCalculatorSpikingIntegration implements Knns = Integer.parseInt(propertyValue); } else if (propertyName.equalsIgnoreCase(TRIM_TO_POS_PROP_NAME)) { trimToPosNextSpikeTimes = Boolean.parseBoolean(propertyValue); + } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { + if (propertyValue.equals("0") || + propertyValue.equalsIgnoreCase("false")) { + addNoise = false; + noiseLevel = 0; + } else { + addNoise = true; + noiseLevel = Double.parseDouble(propertyValue); + } } else { // No property was set on this class propertySet = false; @@ -200,6 +223,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements return Integer.toString(Knns); } else if (propertyName.equalsIgnoreCase(TRIM_TO_POS_PROP_NAME)) { return Boolean.toString(trimToPosNextSpikeTimes); + } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { + return Double.toString(noiseLevel); } else { // No property matches for this class return null; @@ -379,6 +404,10 @@ public class TransferEntropyCalculatorSpikingIntegration implements double[] spikeTimesForNextSpiker; double timeOfPrevDestSpike = destSpikeTimes[dest_index]; int numEvents = 0; + Random random = null; + if (addNoise) { + random = new Random(); + } while(true) { // 0. Check whether we're finished if ((source_index == sourceSpikeTimes.length - 1) && @@ -401,6 +430,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements spikeTimesForNextSpiker = nextIsDest ? destSpikeTimes : sourceSpikeTimes; int indexForNextSpiker = nextIsDest ? dest_index : source_index; timeToNextSpike = spikeTimesForNextSpiker[indexForNextSpiker+1] - timeOfPrevDestSpike; + if (addNoise) { + timeToNextSpike += random.nextGaussian()*noiseLevel; + } // 2. Embed the past spikes double[] sourcePast = new double[l]; double[] destPast = new double[k - 1]; @@ -409,13 +441,22 @@ public class TransferEntropyCalculatorSpikingIntegration implements }*/ sourcePast[0] = timeOfPrevDestSpike - sourceSpikeTimes[source_index]; + if (addNoise) { + sourcePast[0] += random.nextGaussian()*noiseLevel; + } for (int i = 1; i < k; i++) { destPast[i - 1] = destSpikeTimes[dest_index - i + 1] - destSpikeTimes[dest_index - i]; + if (addNoise) { + destPast[i - 1] += random.nextGaussian()*noiseLevel; + } } for (int i = 1; i < l; i++) { sourcePast[i] = sourceSpikeTimes[source_index - i + 1] - sourceSpikeTimes[source_index - i]; + if (addNoise) { + sourcePast[i] += random.nextGaussian()*noiseLevel; + } } // 3. Store these embedded observations double[][] observations = new double[][]{sourcePast, destPast, @@ -478,10 +519,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements double contributionFromSpikes = 0; double totalTimeLength = 0; - double digammaK = MathsUtils.digamma(Knns); - double twoInverseKTerm = 2.0 / (double) Knns; - double inverseKTerm = 1.0 / (double) Knns; - // Create temporary storage for arrays used in the neighbour counting: boolean[] isWithinR = new boolean[numberOfEvents]; // dummy, we don't really use this int[] indicesWithinR = new int[numberOfEvents]; @@ -509,314 +546,313 @@ public class TransferEntropyCalculatorSpikingIntegration implements } // Select only events where the destination spiked next: - if (eventType == NEXT_DEST) { - // Find the Knns nearest neighbour matches to this event, - // with the same previous spiker and the next. - // TODO Add dynamic exclusion time later - PriorityQueue nnPQ = - kdTreesJoint[eventType].findKNearestNeighbours( - Knns, eventIndexWithinType); - - // Find eps_{x,y,z} as the maximum x, y and z norms amongst this set: - double radius_sourcePast = 0.0; - double radius_destPast = 0.0; - double radius_destNext = 0.0; - int radius_destNext_sampleIndex = -1; - for (int j = 0; j < Knns; j++) { - // Take the furthest remaining of the nearest neighbours from the PQ: - NeighbourNodeData nnData = nnPQ.poll(); - if (nnData.norms[0] > radius_sourcePast) { - radius_sourcePast = nnData.norms[0]; - } - if (nnData.norms[1] > radius_destPast) { - radius_destPast = nnData.norms[1]; - } - if (nnData.norms[2] > radius_destNext) { - radius_destNext = nnData.norms[2]; - radius_destNext_sampleIndex = nnData.sampleIndex; - } - } - - if (debug && (eventIndex < 10000)) { - System.out.print(", timings: src: "); - MatrixUtils.printArray(System.out, thisEventTimings[0], 5); - System.out.print(", dest: "); - MatrixUtils.printArray(System.out, thisEventTimings[1], 5); - System.out.print(", time to next: "); - MatrixUtils.printArray(System.out, thisEventTimings[2], 5); - System.out.printf("index=%d: K=%d NNs at next_range %.5f (point %d)", eventIndexWithinType, Knns, radius_destNext, radius_destNext_sampleIndex); - } - - indexForNextIsDest++; - - // Now find the matching samples in each sub-space; - // first match dest history and source history, with a next spike in dest: - kdTreesSourceDestHistories[NEXT_DEST]. - findPointsWithinRs(eventIndexWithinType, - new double[] {radius_sourcePast, radius_destPast}, 0, - true, isWithinR, indicesWithinR); - // And check which of these samples had spike time in dest after ours: - int countOfDestNextAndGreater = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[NEXT_DEST].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] > thisEventTimings[2][0] + radius_destNext) { - // This sample had a matched history and next spike was a destination - // spike with a longer interval than the current sample - countOfDestNextAndGreater++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - // And count how many samples with the matching history actually had a - // *source* spike next, after ours. - // Note that we now must go to the other kdTree for next source spike - kdTreesSourceDestHistories[NEXT_SOURCE]. - findPointsWithinRs( - new double[] {radius_sourcePast, radius_destPast}, thisEventTimings, - true, isWithinR, indicesWithinR); - // And check which of these samples had spike time in source at or after ours: - int countOfSourceNextAndGreater = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] >= thisEventTimings[2][0] - radius_destNext) { - // This sample had a matched history and next spike was a source - // spike with an interval longer than or considered equal to the current sample. - // (The "equal to" is why we look for matches within radius_destNext here as well.) - countOfSourceNextAndGreater++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - - // We need to correct radius_destNext to have a different value below, chopping it - // where it pushes into negative times (i.e. *before* the previous spike). - // TODO I think this is justified by the approach of Greg Ver Steeg et al. in - // http://www.jmlr.org/proceedings/papers/v38/gao15.pdf -- it's not the same - // as that approach, but a principled version where we know the space cannot - // be explored (so we don't need to only apply the correction where it is large). - double searchAreaRatio = 0; // Ratio of actual search area for full joint space compared to if the timings were independent - double prevSource_timing_upper_original = 0, prevSource_timing_lower = 0; - double destNext_timing_lower_original = timeToNextSpikeSincePreviousDestSpike - radius_destNext; - double destNext_timing_upper = timeToNextSpikeSincePreviousDestSpike + radius_destNext; - double radius_destNext_lower = radius_destNext; - if (trimToPosNextSpikeTimes) { - if (destNext_timing_lower_original < 0) { - // This is the range that's actually being searched in the lower - // dimensional space. - // (We don't need to adjust margins in lower dimensional space for - // this because it simply won't get any points below this!) - destNext_timing_lower_original = 0; - } - // timePreviousSourceSpikeBeforePreviousDestSpike is negative if source is after dest. - prevSource_timing_upper_original = -timePreviousSourceSpikeBeforePreviousDestSpike + radius_sourcePast; - prevSource_timing_lower = -timePreviousSourceSpikeBeforePreviousDestSpike - radius_sourcePast; - double destNext_timing_lower = Math.max(destNext_timing_lower_original, - prevSource_timing_lower); - double prevSource_timing_upper = Math.min(destNext_timing_upper, prevSource_timing_upper_original); - // Now look at various cases for the corrective ratio: - // TODO I think we still need to correct destNext_timing_lower_original to radius_destNext_lower here! - double denominator = (destNext_timing_upper - destNext_timing_lower_original) * - (prevSource_timing_upper_original - prevSource_timing_lower); - if (destNext_timing_upper - destNext_timing_lower > - prevSource_timing_upper - prevSource_timing_lower) { - // Case 1: - if (prevSource_timing_upper < destNext_timing_lower) { - // Windows do not overlap, so there will be no correction here - searchAreaRatio = (destNext_timing_upper - destNext_timing_lower) * - (prevSource_timing_upper - prevSource_timing_lower); - } else if (destNext_timing_upper < prevSource_timing_lower) { - // Should never happen, because next spike can't be before previous source spike - searchAreaRatio = 0; - throw new RuntimeException("Encountered a next target spike *before* the previous source spike"); - } else if (destNext_timing_lower < prevSource_timing_lower) { - // Dest next lower bound is below source previous lower bound -- definitely - // can't get any points in the part below prevSource_timing_lower - // for dest next. - searchAreaRatio = (prevSource_timing_upper - prevSource_timing_lower) * - (destNext_timing_upper - prevSource_timing_upper) + - 0.5 * (prevSource_timing_upper - prevSource_timing_lower) * - (prevSource_timing_upper - prevSource_timing_lower); - } else { - // destNext_timing_lower >= prevSource_timing_lower - // Dest next lower bound is within the previous source window - // but above the source lower bound. - searchAreaRatio = (destNext_timing_upper - destNext_timing_lower) * - (prevSource_timing_upper - prevSource_timing_lower) - - 0.5 * (prevSource_timing_upper - destNext_timing_lower) * - (prevSource_timing_upper - destNext_timing_lower); - } - } else { - // Case 2: - if (prevSource_timing_upper < destNext_timing_lower) { - // Windows do not overlap, so there will be no correction here - searchAreaRatio = (destNext_timing_upper - destNext_timing_lower) * - (prevSource_timing_upper - prevSource_timing_lower); - } else if (destNext_timing_upper < prevSource_timing_lower) { - // Should never happen, because next spike can't be before previous source spike - searchAreaRatio = 0; - throw new RuntimeException("Encountered a next target spike *before* the previous source spike"); - } else if (destNext_timing_lower < prevSource_timing_lower) { - searchAreaRatio = 0.5 * (destNext_timing_upper - prevSource_timing_lower) * - (destNext_timing_upper - prevSource_timing_lower); - } else { - // destNext_timing_lower >= prevSource_timing_lower - searchAreaRatio = (destNext_timing_lower - prevSource_timing_lower) * - (destNext_timing_upper - destNext_timing_lower) + - 0.5 * (destNext_timing_upper - destNext_timing_lower) * - (destNext_timing_upper - destNext_timing_lower); - } - } - if (denominator <= 0) { - // We'll get NaN if we divide by it. No correction is necessary in this - // case, the margins are too thin to cause a discrepancy anyway. - searchAreaRatio = 1; - } else { - searchAreaRatio /= denominator; - } - // And finally fix up the lower radius on destNext if required: - radius_destNext_lower = timeToNextSpikeSincePreviousDestSpike - destNext_timing_lower; - } - - if (debug && (eventIndex < 10000)) { - System.out.printf(" of %d + %d + %d points with matching S-D history", - Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); - } - - // Now find the matching samples in the dest history and - // with a next spike timing. - int countOfDestNextAndGreaterMatchedDest = 0; - int countOfDestNextMatched = 0; - if (k > 1) { - // Search only the space of dest past -- no point - // searching dest past and next, since we need to run through - // all matches of dest past to count those with greater next spike - // times we might as well count those with matching spike times - // while we're at it. - kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radius_destPast, - true, isWithinR, indicesWithinR); - // And check which of these samples had next spike time after ours: - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the dest history space - double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[1][0] >= timeToNextSpikeSincePreviousDestSpike - radius_destNext_lower) { - // This sample had a matched history and next spike was a - // spike with an interval longer than or considered equal to the current sample. - // (The "equal to" is why we look for matches within kthNnData.distance here as well.) - countOfDestNextAndGreaterMatchedDest++; - if (matchedHistoryEventTimings[1][0] <= timeToNextSpikeSincePreviousDestSpike + radius_destNext) { - // Then we also have a match on the next spike itself - countOfDestNextMatched++; - } - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - } else { - // We don't take any past dest spike ISIs into account, so we just need to look at the proportion of next - // spike times that match. - countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsWithinRs(indexForNextIsDest, - radius_destNext, radius_destNext_lower, true); - // To check for points matching or larger, we just need to make this call with the - // revised lower radius, because we don't check the upper one. - countOfDestNextAndGreaterMatchedDest = - nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, radius_destNext_lower, true); - } - double totalSearchTimeWindowCondDestPast = radius_destNext_lower + radius_destNext; - - if (debug && (eventIndex < 10000)) { - System.out.printf(", and %d of %d points for D history only; ", - countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); - } - - //============================ - // This code section is if we wish to compute using digamma logs: - //============================ - // With these neighbours counted, we're ready to compute the probability of the spike given the past - // of source and dest. - double logPGivenSourceAndDest; - double logPGivenDest; - if (k > 1) { - // We're handling three variables: - logPGivenSourceAndDest = digammaK - twoInverseKTerm - - MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater) - + 1.0 / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater); - logPGivenDest = MathsUtils.digamma(countOfDestNextMatched) - - 1.0 / ((double) countOfDestNextMatched) - - MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest); - } else { - // We're really only handling two variables like an MI: - logPGivenSourceAndDest = digammaK - inverseKTerm - - MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater); - logPGivenDest = MathsUtils.digamma(countOfDestNextMatched) - - MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest); - } - if (trimToPosNextSpikeTimes) { - logPGivenSourceAndDest -= Math.log(searchAreaRatio); - } - //============================ - - if (debug && (eventIndex < 10000)) { - System.out.printf(" te ~~ log (%d/%d)/(%d/%d) = %.4f wc-> %.5f bc-> %.4f (inferred rates %.4f vs %.4f, " + - "win-cor %.5f vs %.5f, bias-corrected %.5f vs %.5f)\n", Knns, - Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater, - countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest, - Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / - ((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest))), - // TE from Window corrected rates: - Math.log((((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / - ((destNext_timing_upper - destNext_timing_lower_original)*searchAreaRatio)) / - (((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)) / - totalSearchTimeWindowCondDestPast)), - // TE from Bias corrected rates: - logPGivenSourceAndDest - logPGivenDest, - // Inferred rates raw: - (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater) / (2.0*radius_destNext), - (double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest) / (2.0*radius_destNext), - // Inferred rates with window correction: - ((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / - ((destNext_timing_upper - destNext_timing_lower_original)*searchAreaRatio), - ((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)) / - totalSearchTimeWindowCondDestPast, - // Transform the log likelihoods into bias corrected rates: - Math.exp(logPGivenSourceAndDest) / (2.0*radius_destNext), Math.exp(logPGivenDest) / (2.0*radius_destNext)); - if (trimToPosNextSpikeTimes) { - System.out.printf("Search area ratio: %.5f, correction %.5f, t_y_upper %.5f, t_y_lower %.5f\n", - searchAreaRatio, -Math.log(searchAreaRatio), prevSource_timing_upper_original, prevSource_timing_lower); - } - } - // Unexplained case: - if (countOfDestNextMatched < Knns) { - // TODO Should not happen, print something! - System.out.printf("SHOULD NOT HAPPEN!\n"); - // So debug this: - nnPQ = kdTreesJoint[eventType].findKNearestNeighbours( - Knns, eventIndexWithinType); - for (int j = 0; j < Knns; j++) { - // Take the furthest remaining of the nearest neighbours from the PQ: - NeighbourNodeData nnData = nnPQ.poll(); - System.out.printf("NN data %d norms: source %.5f, destPast %.5f, destNext %.5f, nextIndex %d\n", - nnData.norms[0], nnData.norms[1], nnData.norms[2], nnData.sampleIndex); - } - - } - - //====================== - // Add the contribution in: - // a.If we were using digamma logs: - contributionFromSpikes += logPGivenSourceAndDest - logPGivenDest; - // b. If we are only using window corrections but actual ratios: - //contributionFromSpikes += - // Math.log((((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / - // ((destNext_timing_upper - destNext_timing_lower_original)*searchAreaRatio)) / - // (((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)) / - // totalSearchTimeWindowCondDestPast)); - } else { + if (eventType != NEXT_DEST) { + // Pre-condition: next event is a source spike so we'll continue to check next event if (debug && (eventIndex < 10000)) { System.out.println(); } - } + continue; + } + // Post-condition: the next event is a destination spike: + + // Find the Knns nearest neighbour matches to this event, + // with the same previous spiker and the next. + // TODO Add dynamic exclusion time later + PriorityQueue nnPQ = + kdTreesJoint[NEXT_DEST].findKNearestNeighbours( + Knns, eventIndexWithinType); + + // Find eps_{x,y,z} as the maximum x, y and z norms amongst this set: + double radius_sourcePast = 0.0; + double radius_destPast = 0.0; + double radius_destNext = 0.0; + int radius_destNext_sampleIndex = -1; + for (int j = 0; j < Knns; j++) { + // Take the furthest remaining of the nearest neighbours from the PQ: + NeighbourNodeData nnData = nnPQ.poll(); + if (nnData.norms[0] > radius_sourcePast) { + radius_sourcePast = nnData.norms[0]; + } + if (nnData.norms[1] > radius_destPast) { + radius_destPast = nnData.norms[1]; + } + if (nnData.norms[2] > radius_destNext) { + radius_destNext = nnData.norms[2]; + radius_destNext_sampleIndex = nnData.sampleIndex; + } + } + // Postcondition: radius_* variables hold the search radius for each sourcePast, destPast and destNext matches. + + if (debug && (eventIndex < 10000)) { + System.out.print(", timings: src: "); + MatrixUtils.printArray(System.out, thisEventTimings[0], 5); + System.out.print(", dest: "); + MatrixUtils.printArray(System.out, thisEventTimings[1], 5); + System.out.print(", time to next: "); + MatrixUtils.printArray(System.out, thisEventTimings[2], 5); + System.out.printf("index=%d: K=%d NNs at next_range %.5f (point %d)", eventIndexWithinType, Knns, radius_destNext, radius_destNext_sampleIndex); + } + + indexForNextIsDest++; + + // Now find the matching samples in each sub-space; + // first match dest history and source history, with a next spike in dest: + int numMatches = kdTreesSourceDestHistories[NEXT_DEST]. + findPointsWithinRs(eventIndexWithinType, + new double[] {radius_sourcePast, radius_destPast}, 0, + true, isWithinR, indicesWithinR); + // Set the search point itself to be a neighbour - this is necessary to include the waiting time + // for it in our count: + indicesWithinR[numMatches] = eventIndexWithinType; + indicesWithinR[numMatches+1] = -1; + isWithinR[eventIndexWithinType] = true; + // And check which of these samples had spike time in dest in the window or after ours: + int countOfDestNextAndGreater = 0; + int countOfDestNextInWindow = 0; // Would be Knns except for one on the lower boundary (if there is one) + double timeInWindowWithMatchingJointHistories = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[NEXT_DEST].elementAt(indicesWithinR[nIndex]); + // Use simple labels for relative times from the previous target spike + double matchingHistoryTimeToNextSpike = matchedHistoryEventTimings[2][0]; + // (time to previous source spike from the previous target spike can be negative or positive. + // matchedHistoryEventTimings[0][0] < 0 implies previous source spike occuring later + // than previous target spike; we want opposite sign here). + double matchingHistoryTimeToPrevSourceSpike = -matchedHistoryEventTimings[0][0]; + + // We need to check how long we spent in the window matching the next spike + // with a matching history. + // First, we make sure that the next (target) spike was in the window or after it, + // and that the previous source spike did not occur after the window + // (this is possible since our neighbour match hasn't checked for the next spike time) + if ((matchingHistoryTimeToNextSpike >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) && + (matchingHistoryTimeToPrevSourceSpike <= timeToNextSpikeSincePreviousDestSpike + radius_destNext)) { + + // Real start of window cannot be before previous destination spike: + double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); + // Also, real start cannot be before previous source spike: + // (previous source spike occurs at -matchedHistoryEventTimings[0][0] relative + // to previous destination spike) + realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); + + // Real end of window happened either when the spike occurred (which changes the history) or at + // the end of the window: + double realEndOfWindow = Math.min(matchingHistoryTimeToNextSpike, + timeToNextSpikeSincePreviousDestSpike + radius_destNext); + + // Add in how much time with a matching history we spent in this window: + timeInWindowWithMatchingJointHistories += + realEndOfWindow - realStartOfWindow; + + countOfDestNextAndGreater++; + + // Count spikes occurring here in the window (and check below) + if ((matchingHistoryTimeToNextSpike >= realStartOfWindow) && + (matchingHistoryTimeToNextSpike <= realEndOfWindow)){ + countOfDestNextInWindow++; + } + + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + // TODO Debug check: + // if (countOfDestNextInWindow != Knns + 1) { + // throw new Exception("Unexpected value for countOfDestNextInWindow: " + countOfDestNextInWindow); + //} + + // And count how many samples with the matching history actually had a + // *source* spike next, during or after our window. + // Note that we now must go to the other kdTree for next source spike + kdTreesSourceDestHistories[NEXT_SOURCE]. + findPointsWithinRs( + new double[] {radius_sourcePast, radius_destPast}, thisEventTimings, + true, isWithinR, indicesWithinR); + // And check which of these samples had spike time in source at or after ours: + int countOfSourceNextAndGreater = 0; + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the full joint space + double[][] matchedHistoryEventTimings = eventTimings[NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); + // Use simple labels for relative times from the previous target spike + double matchingHistoryTimeToNextSpike = matchedHistoryEventTimings[2][0]; + // (time to previous source spike from the previous target spike can be negative or positive. + // matchedHistoryEventTimings[0][0] < 0 implies previous source spike occuring later + // than previous target spike; we want opposite sign here). + double matchingHistoryTimeToPrevSourceSpike = -matchedHistoryEventTimings[0][0]; + + // We need to check how long we spent in the window matching the next spike + // with a matching history. + // First, we make sure that the next (source) spike was in the window or after it, + // and that the previous source spike did not occur after the window + // (this is possible since our neighbour match hasn't checked for the next spike time) + if ((matchingHistoryTimeToNextSpike >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) && + (matchingHistoryTimeToPrevSourceSpike <= timeToNextSpikeSincePreviousDestSpike + radius_destNext)) { + + // Real start of window cannot be before previous destination spike: + double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); + // Also, real start cannot be before previous source spike: + // (previous source spike occurs at matchingHistoryTimeToPrevSourceSpike relative + // to previous destination spike) + realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); + + // Real end of window happened either when the spike occurred or at + // the end of the window: + double realEndOfWindow = Math.min(matchingHistoryTimeToNextSpike, + timeToNextSpikeSincePreviousDestSpike + radius_destNext); + + // Add in how much time with a matching history we spent in this window: + timeInWindowWithMatchingJointHistories += + realEndOfWindow - realStartOfWindow; + + countOfSourceNextAndGreater++; + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + + // We need to count spike rate for all the times we're actually within the matching window for the next spike + // This is kind of inspired by the Greg Ver Steeg et al. approach in + // http://www.jmlr.org/proceedings/papers/v38/gao15.pdf + // which is thinking about where the space is actually being explored. + // This is where the window correction code was placed, which we're now replacing + // with computing the length of actual time we spend in the next window. + + + if (debug && (eventIndex < 10000)) { + System.out.printf(" of %d + %d + %d points with matching S-D history", + Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); + } + + // Now find the matching samples in the dest history and + // with a next spike timing. + int countOfDestNextAndGreaterMatchedDest = 0; + int countOfDestNextMatched = 0; + double timeInWindowWithMatchingDestHistory = 0; + // Real start of window cannot be before previous destination spike: + double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); + if (k > 1) { + // Search only the space of dest past -- no point + // searching dest past and next, since we need to run through + // all matches of dest past to count those with greater next spike + // times we might as well count those with matching spike times + // while we're at it. + numMatches = kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radius_destPast, + true, isWithinR, indicesWithinR); + // Set the search point itself to be a neighbour - this is necessary to include the waiting time + // for it in our count: + indicesWithinR[numMatches] = indexForNextIsDest; + indicesWithinR[numMatches+1] = -1; + isWithinR[indexForNextIsDest] = true; + // And check which of these samples had next spike time after our window starts: + for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { + // Pull out this matching event from the dest history space + double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); + if (matchedHistoryEventTimings[1][0] >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) { + // This sample had a matched history and next spike was a + // spike with an interval longer than or considered equal to the current sample. + // (The "equal to" is why we look for matches within kthNnData.distance here as well.) + + // Real end of window happened either when the spike occurred or at + // the end of the window: + double realEndOfWindow = Math.min(matchedHistoryEventTimings[1][0], + timeToNextSpikeSincePreviousDestSpike + radius_destNext); + + // Add in how much time with a matching history we spent in this window: + timeInWindowWithMatchingDestHistory += + realEndOfWindow - realStartOfWindow; + + countOfDestNextAndGreaterMatchedDest++; + if (matchedHistoryEventTimings[1][0] <= timeToNextSpikeSincePreviousDestSpike + radius_destNext) { + // Then we also have a match on the next spike itself + countOfDestNextMatched++; + } + } + // Reset the isWithinR array while we're here + isWithinR[indicesWithinR[nIndex]] = false; + } + } else { + + // For k = 1, we only care about time since last spike. + // So count how many of the next spikes were within the window first: + // -- we don't take any past dest spike ISIs into account, so we just need to look at the proportion of next + // spike times that match. + countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsWithinRs(indexForNextIsDest, + radius_destNext, Math.min(radius_destNext, timeToNextSpikeSincePreviousDestSpike), true); + // And also check how long each of these spent in the window: + timeInWindowWithMatchingDestHistory = + nnSearcherDestTimeToNextSpike.sumDistanceAboveThresholdForPointsWithinRs(indexForNextIsDest, + radius_destNext, Math.min(radius_destNext, timeToNextSpikeSincePreviousDestSpike), true); + // Now check for points matching or larger, we just need to make this call with the + // revised lower radius, because we don't check the upper one. + countOfDestNextAndGreaterMatchedDest = + nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, + Math.min(radius_destNext, timeToNextSpikeSincePreviousDestSpike), true); + // And we need to add time in for all of the (countOfDestNextAndGreaterMatchedDest - countOfDestNextMatched) + // points which didn't spike in the window + // TODO - check whether this is really doing what it intends to? + timeInWindowWithMatchingDestHistory += (double) (countOfDestNextAndGreaterMatchedDest - countOfDestNextMatched) * + (timeToNextSpikeSincePreviousDestSpike + radius_destNext - realStartOfWindow); + + // Add in the wait time contribution for the search point itself (and need to include it in counts): + timeInWindowWithMatchingDestHistory += timeToNextSpikeSincePreviousDestSpike - realStartOfWindow; + countOfDestNextMatched++; + countOfDestNextAndGreaterMatchedDest++; + + if (timeInWindowWithMatchingDestHistory <= 0) { + // David thought he saw this occur, adding debug exception so we can catch it if so" + throw new Exception("timeInWindowWithMatchingDestHistory is not > 0"); + } + } + + if (debug && (eventIndex < 10000)) { + System.out.printf(", and %d of %d points for D history only; ", + countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); + } + + //============================ + // This code section takes the counts of spikes and total intervals, and + // estimates the log rates. + // Inferred rates raw: + double rawRateGivenSourceAndDest = (double) countOfDestNextInWindow / timeInWindowWithMatchingJointHistories; + double rawRateGivenDest = (double) countOfDestNextMatched / timeInWindowWithMatchingDestHistory; + // Attempt at bias correction: + // Using digamma of neighbour_count - 1, since the neighbour count now includes our search point and it's really k waiting times + double logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) // - (1.0 / (double) Knns) // I don't think this correction is required + - Math.log(timeInWindowWithMatchingJointHistories); + double logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched-1) // - (1.0 / (double) countOfDestNextMatched) // I don't think this correction is required + - Math.log(timeInWindowWithMatchingDestHistory); + //============================ + + if (debug && (eventIndex < 10000)) { + System.out.printf(" te ~~ %.4f - %.4f = %.4f, log (%.4f)/(%.4f) = %.4f (counts %d/%d = %.4f, %d/%d = %.4f -> te %.4f)\n", + logRateGivenSourceAndDestCorrected, + logRateGivenDestCorrected, + logRateGivenSourceAndDestCorrected - logRateGivenDestCorrected, + rawRateGivenSourceAndDest, + rawRateGivenDest, + Math.log(rawRateGivenSourceAndDest / rawRateGivenDest), + Knns, + Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater, + (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater), + countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest, + (double) countOfDestNextMatched / (double) countOfDestNextAndGreaterMatchedDest, + Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / + ((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)))); + } + + //====================== + // Add the contribution in: + // a.If we were using digamma logs: + contributionFromSpikes += logRateGivenSourceAndDestCorrected - logRateGivenDestCorrected; + // contributionFromSpikes += Math.log(rawRateGivenSourceAndDest / rawRateGivenDest); + + + // b. If we are only using window corrections but actual ratios: + //contributionFromSpikes += + // Math.log((((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / + // ((destNext_timing_upper - destNext_timing_lower_original)*searchAreaRatio)) / + // (((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)) / + // totalSearchTimeWindowCondDestPast)); } System.out.println("All done!"); contributionFromSpikes /= totalTimeLength; diff --git a/java/source/infodynamics/utils/KdTree.java b/java/source/infodynamics/utils/KdTree.java old mode 100755 new mode 100644 diff --git a/java/source/infodynamics/utils/NearestNeighbourSearcher.java b/java/source/infodynamics/utils/NearestNeighbourSearcher.java old mode 100755 new mode 100644 diff --git a/java/source/infodynamics/utils/UnivariateNearestNeighbourSearcher.java b/java/source/infodynamics/utils/UnivariateNearestNeighbourSearcher.java old mode 100755 new mode 100644 From 267796dc830927cde53ed52c06263fa4123a9903 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Mon, 10 Dec 2018 20:29:54 +1100 Subject: [PATCH 17/41] forced inclusion of TransferEntropyCalculatorSpikingIntegration.java --- .../TransferEntropyCalculatorSpikingIntegration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 0b49943..8b110d3 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -602,7 +602,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements new double[] {radius_sourcePast, radius_destPast}, 0, true, isWithinR, indicesWithinR); // Set the search point itself to be a neighbour - this is necessary to include the waiting time - // for it in our count: + // for it in our count:: indicesWithinR[numMatches] = eventIndexWithinType; indicesWithinR[numMatches+1] = -1; isWithinR[eventIndexWithinType] = true; From 6f8ae62feee8e5f6714d793a1530f86a81b62159 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Tue, 11 Dec 2018 12:03:44 +1100 Subject: [PATCH 18/41] option of excluding the point itself --- ...ferEntropyCalculatorSpikingIntegration.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 8b110d3..2c6bc96 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -28,6 +28,8 @@ import infodynamics.utils.UnivariateNearestNeighbourSearcher; public class TransferEntropyCalculatorSpikingIntegration implements TransferEntropyCalculatorSpiking { + protected final static boolean USE_POINT_ITSELF = false; + /** * Number of past destination spikes to consider (akin to embedding length) */ @@ -603,9 +605,11 @@ public class TransferEntropyCalculatorSpikingIntegration implements true, isWithinR, indicesWithinR); // Set the search point itself to be a neighbour - this is necessary to include the waiting time // for it in our count:: - indicesWithinR[numMatches] = eventIndexWithinType; - indicesWithinR[numMatches+1] = -1; - isWithinR[eventIndexWithinType] = true; + if(USE_POINT_ITSELF) { + indicesWithinR[numMatches] = eventIndexWithinType; + indicesWithinR[numMatches+1] = -1; + isWithinR[eventIndexWithinType] = true; + } // And check which of these samples had spike time in dest in the window or after ours: int countOfDestNextAndGreater = 0; int countOfDestNextInWindow = 0; // Would be Knns except for one on the lower boundary (if there is one) @@ -740,9 +744,11 @@ public class TransferEntropyCalculatorSpikingIntegration implements true, isWithinR, indicesWithinR); // Set the search point itself to be a neighbour - this is necessary to include the waiting time // for it in our count: - indicesWithinR[numMatches] = indexForNextIsDest; - indicesWithinR[numMatches+1] = -1; - isWithinR[indexForNextIsDest] = true; + if(USE_POINT_ITSELF) { + indicesWithinR[numMatches] = indexForNextIsDest; + indicesWithinR[numMatches+1] = -1; + isWithinR[indexForNextIsDest] = true; + } // And check which of these samples had next spike time after our window starts: for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { // Pull out this matching event from the dest history space From 9f51dc284c809aad659d6691b53bcdd8cb04b1bf Mon Sep 17 00:00:00 2001 From: David Shorten Date: Tue, 11 Dec 2018 12:21:27 +1100 Subject: [PATCH 19/41] option of not doing radius trimming --- .../TransferEntropyCalculatorSpikingIntegration.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 2c6bc96..d30efe0 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -29,6 +29,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntropyCalculatorSpiking { protected final static boolean USE_POINT_ITSELF = false; + protected final static boolean TRIM_RADII = false; /** * Number of past destination spikes to consider (akin to embedding length) @@ -583,6 +584,12 @@ public class TransferEntropyCalculatorSpikingIntegration implements radius_destNext_sampleIndex = nnData.sampleIndex; } } + if (!TRIM_RADII) { + double radius_max = Math.max(Math.max(radius_sourcePast, radius_destPast), radius_destNext); + radius_sourcePast = radius_max; + radius_destPast = radius_max; + radius_destNext = radius_max; + } // Postcondition: radius_* variables hold the search radius for each sourcePast, destPast and destNext matches. if (debug && (eventIndex < 10000)) { From b467ea22a166ed53668ea4c5d6d38496237a3fc1 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Tue, 11 Dec 2018 15:15:26 +1100 Subject: [PATCH 20/41] option of using same K for dest history --- ...erEntropyCalculatorSpikingIntegration.java | 45 ++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index d30efe0..d4705d9 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -30,6 +30,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements protected final static boolean USE_POINT_ITSELF = false; protected final static boolean TRIM_RADII = false; + protected final static boolean USE_SAME_RADII = false; /** * Number of past destination spikes to consider (akin to embedding length) @@ -742,6 +743,38 @@ public class TransferEntropyCalculatorSpikingIntegration implements // Real start of window cannot be before previous destination spike: double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); if (k > 1) { + double radius_max = 0; + if(!USE_SAME_RADII) { + nnPQ = kdTreeDestNext.findKNearestNeighbours(Knns, eventIndexWithinType); + + radius_sourcePast = 0.0; + radius_destPast = 0.0; + radius_destNext = 0.0; + radius_destNext_sampleIndex = -1; + for (int j = 0; j < Knns; j++) { + // Take the furthest remaining of the nearest neighbours from the PQ: + NeighbourNodeData nnData = nnPQ.poll(); + if (nnData.norms[0] > radius_sourcePast) { + radius_sourcePast = nnData.norms[0]; + } + if (nnData.norms[1] > radius_destPast) { + radius_destPast = nnData.norms[1]; + } + //if (nnData.norms[2] > radius_destNext) { + // radius_destNext = nnData.norms[2]; + // radius_destNext_sampleIndex = nnData.sampleIndex; + //} + } + if (!TRIM_RADII) { + radius_max = Math.max(Math.max(radius_sourcePast, radius_destPast), radius_destNext); + radius_sourcePast = radius_max; + radius_destPast = radius_max; + radius_destNext = radius_max; + } + + } + + // Search only the space of dest past -- no point // searching dest past and next, since we need to run through // all matches of dest past to count those with greater next spike @@ -765,6 +798,13 @@ public class TransferEntropyCalculatorSpikingIntegration implements // spike with an interval longer than or considered equal to the current sample. // (The "equal to" is why we look for matches within kthNnData.distance here as well.) + + realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_max, 0); + // Also, real start cannot be before previous source spike: + // (previous source spike occurs at -matchedHistoryEventTimings[0][0] relative + // to previous destination spike) + realStartOfWindow = Math.max(realStartOfWindow, -matchedHistoryEventTimings[0][0]); + // Real end of window happened either when the spike occurred or at // the end of the window: double realEndOfWindow = Math.min(matchedHistoryEventTimings[1][0], @@ -783,6 +823,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements // Reset the isWithinR array while we're here isWithinR[indicesWithinR[nIndex]] = false; } + //System.out.println(countOfDestNextMatched); } else { // For k = 1, we only care about time since last spike. @@ -830,9 +871,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements double rawRateGivenDest = (double) countOfDestNextMatched / timeInWindowWithMatchingDestHistory; // Attempt at bias correction: // Using digamma of neighbour_count - 1, since the neighbour count now includes our search point and it's really k waiting times - double logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) // - (1.0 / (double) Knns) // I don't think this correction is required + double logRateGivenSourceAndDestCorrected = //MathsUtils.digamma(Knns) // - (1.0 / (double) Knns) // I don't think this correction is required - Math.log(timeInWindowWithMatchingJointHistories); - double logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched-1) // - (1.0 / (double) countOfDestNextMatched) // I don't think this correction is required + double logRateGivenDestCorrected = //MathsUtils.digamma(countOfDestNextMatched-1) // - (1.0 / (double) countOfDestNextMatched) // I don't think this correction is required - Math.log(timeInWindowWithMatchingDestHistory); //============================ From 064953c5842428195236288022913d88dc5e6b4b Mon Sep 17 00:00:00 2001 From: David Shorten Date: Tue, 11 Dec 2018 15:18:51 +1100 Subject: [PATCH 21/41] bit of cleaning up --- ...erEntropyCalculatorSpikingIntegration.java | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index d4705d9..d7d9c8e 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -743,31 +743,25 @@ public class TransferEntropyCalculatorSpikingIntegration implements // Real start of window cannot be before previous destination spike: double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); if (k > 1) { - double radius_max = 0; + if(!USE_SAME_RADII) { nnPQ = kdTreeDestNext.findKNearestNeighbours(Knns, eventIndexWithinType); - radius_sourcePast = 0.0; radius_destPast = 0.0; radius_destNext = 0.0; radius_destNext_sampleIndex = -1; for (int j = 0; j < Knns; j++) { // Take the furthest remaining of the nearest neighbours from the PQ: NeighbourNodeData nnData = nnPQ.poll(); - if (nnData.norms[0] > radius_sourcePast) { - radius_sourcePast = nnData.norms[0]; + if (nnData.norms[0] > radius_destPast) { + radius_destPast = nnData.norms[0]; } - if (nnData.norms[1] > radius_destPast) { - radius_destPast = nnData.norms[1]; + if (nnData.norms[1] > radius_destNext) { + radius_destNext = nnData.norms[1]; } - //if (nnData.norms[2] > radius_destNext) { - // radius_destNext = nnData.norms[2]; - // radius_destNext_sampleIndex = nnData.sampleIndex; - //} } if (!TRIM_RADII) { - radius_max = Math.max(Math.max(radius_sourcePast, radius_destPast), radius_destNext); - radius_sourcePast = radius_max; + radius_max = Math.max(radius_destPast, radius_destNext); radius_destPast = radius_max; radius_destNext = radius_max; } @@ -799,7 +793,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements // (The "equal to" is why we look for matches within kthNnData.distance here as well.) - realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_max, 0); + realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); // Also, real start cannot be before previous source spike: // (previous source spike occurs at -matchedHistoryEventTimings[0][0] relative // to previous destination spike) From 23abc021ac10c9e7ca80a2e3a6da6a5dafcb9ec2 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Tue, 11 Dec 2018 16:15:03 +1100 Subject: [PATCH 22/41] modification to calculation for point inclusion --- ...erEntropyCalculatorSpikingIntegration.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index d7d9c8e..10ef36a 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -741,7 +741,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements int countOfDestNextMatched = 0; double timeInWindowWithMatchingDestHistory = 0; // Real start of window cannot be before previous destination spike: - double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); if (k > 1) { if(!USE_SAME_RADII) { @@ -761,7 +760,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements } } if (!TRIM_RADII) { - radius_max = Math.max(radius_destPast, radius_destNext); + double radius_max = Math.max(radius_destPast, radius_destNext); radius_destPast = radius_max; radius_destNext = radius_max; } @@ -783,6 +782,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements indicesWithinR[numMatches+1] = -1; isWithinR[indexForNextIsDest] = true; } + double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); // And check which of these samples had next spike time after our window starts: for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { // Pull out this matching event from the dest history space @@ -793,13 +793,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements // (The "equal to" is why we look for matches within kthNnData.distance here as well.) - realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); - // Also, real start cannot be before previous source spike: - // (previous source spike occurs at -matchedHistoryEventTimings[0][0] relative - // to previous destination spike) - realStartOfWindow = Math.max(realStartOfWindow, -matchedHistoryEventTimings[0][0]); - - // Real end of window happened either when the spike occurred or at + // Real end of window happened either when the spike occurred or at // the end of the window: double realEndOfWindow = Math.min(matchedHistoryEventTimings[1][0], timeToNextSpikeSincePreviousDestSpike + radius_destNext); @@ -819,7 +813,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements } //System.out.println(countOfDestNextMatched); } else { - + double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); // For k = 1, we only care about time since last spike. // So count how many of the next spikes were within the window first: // -- we don't take any past dest spike ISIs into account, so we just need to look at the proportion of next @@ -865,10 +859,14 @@ public class TransferEntropyCalculatorSpikingIntegration implements double rawRateGivenDest = (double) countOfDestNextMatched / timeInWindowWithMatchingDestHistory; // Attempt at bias correction: // Using digamma of neighbour_count - 1, since the neighbour count now includes our search point and it's really k waiting times - double logRateGivenSourceAndDestCorrected = //MathsUtils.digamma(Knns) // - (1.0 / (double) Knns) // I don't think this correction is required + double logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) // - (1.0 / (double) Knns) // I don't think this correction is required - Math.log(timeInWindowWithMatchingJointHistories); - double logRateGivenDestCorrected = //MathsUtils.digamma(countOfDestNextMatched-1) // - (1.0 / (double) countOfDestNextMatched) // I don't think this correction is required + double logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched) // - (1.0 / (double) countOfDestNextMatched) // I don't think this correction is required - Math.log(timeInWindowWithMatchingDestHistory); + if(USE_POINT_ITSELF) { + logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns + 1) - Math.log(timeInWindowWithMatchingJointHistories); + logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched) - Math.log(timeInWindowWithMatchingDestHistory); + } //============================ if (debug && (eventIndex < 10000)) { From 504c6262f096a8bd375d1707f500eff89da2e324 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Tue, 18 Dec 2018 20:32:37 +1100 Subject: [PATCH 23/41] end Tues --- .../TransferEntropyCalculatorSpikingIntegration.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 10ef36a..7c567be 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -766,7 +766,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements } } - + // Search only the space of dest past -- no point // searching dest past and next, since we need to run through @@ -859,7 +859,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements double rawRateGivenDest = (double) countOfDestNextMatched / timeInWindowWithMatchingDestHistory; // Attempt at bias correction: // Using digamma of neighbour_count - 1, since the neighbour count now includes our search point and it's really k waiting times - double logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) // - (1.0 / (double) Knns) // I don't think this correction is required + double logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) //- (1.0 / (double) Knns) // I don't think this correction is required - Math.log(timeInWindowWithMatchingJointHistories); double logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched) // - (1.0 / (double) countOfDestNextMatched) // I don't think this correction is required - Math.log(timeInWindowWithMatchingDestHistory); From 8bcf41e572396c441af1dafdee203ce1d1cbbcba Mon Sep 17 00:00:00 2001 From: David Shorten Date: Wed, 19 Dec 2018 17:15:47 +1100 Subject: [PATCH 24/41] end Wed --- ...TransferEntropyCalculatorSpikingIntegration.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 7c567be..005afe5 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -521,6 +521,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements int numberOfEvents = eventTypeLocator.size(); double contributionFromSpikes = 0; + double contributionRate_X = 0; + double contributionRate_XY = 0; + int numContributions = 0; double totalTimeLength = 0; // Create temporary storage for arrays used in the neighbour counting: @@ -855,11 +858,11 @@ public class TransferEntropyCalculatorSpikingIntegration implements // This code section takes the counts of spikes and total intervals, and // estimates the log rates. // Inferred rates raw: - double rawRateGivenSourceAndDest = (double) countOfDestNextInWindow / timeInWindowWithMatchingJointHistories; - double rawRateGivenDest = (double) countOfDestNextMatched / timeInWindowWithMatchingDestHistory; + double rawRateGivenSourceAndDest = ((double) (Knns - 1)) / timeInWindowWithMatchingJointHistories; + double rawRateGivenDest = ((double) (countOfDestNextMatched - 1)) / timeInWindowWithMatchingDestHistory; // Attempt at bias correction: // Using digamma of neighbour_count - 1, since the neighbour count now includes our search point and it's really k waiting times - double logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) //- (1.0 / (double) Knns) // I don't think this correction is required + double logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) //`- (1.0 / (double) Knns) // I don't think this correction is required - Math.log(timeInWindowWithMatchingJointHistories); double logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched) // - (1.0 / (double) countOfDestNextMatched) // I don't think this correction is required - Math.log(timeInWindowWithMatchingDestHistory); @@ -890,6 +893,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements // Add the contribution in: // a.If we were using digamma logs: contributionFromSpikes += logRateGivenSourceAndDestCorrected - logRateGivenDestCorrected; + contributionRate_X += rawRateGivenDest; + contributionRate_XY += rawRateGivenSourceAndDest; + numContributions++; // contributionFromSpikes += Math.log(rawRateGivenSourceAndDest / rawRateGivenDest); @@ -901,6 +907,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements // totalSearchTimeWindowCondDestPast)); } System.out.println("All done!"); + System.out.println(contributionRate_X/(float)numContributions + " " + contributionRate_XY/(float)numContributions); contributionFromSpikes /= totalTimeLength; return contributionFromSpikes; } From fcbf5e7dacc036b1d7eef92d04303fdd0b7f3c59 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Tue, 22 Jan 2019 19:17:36 +1100 Subject: [PATCH 25/41] end Thurs --- .../TransferEntropyCalculatorSpikingIntegration.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 005afe5..3baa10e 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -28,7 +28,7 @@ import infodynamics.utils.UnivariateNearestNeighbourSearcher; public class TransferEntropyCalculatorSpikingIntegration implements TransferEntropyCalculatorSpiking { - protected final static boolean USE_POINT_ITSELF = false; + protected final static boolean USE_POINT_ITSELF = true; protected final static boolean TRIM_RADII = false; protected final static boolean USE_SAME_RADII = false; @@ -867,8 +867,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements double logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched) // - (1.0 / (double) countOfDestNextMatched) // I don't think this correction is required - Math.log(timeInWindowWithMatchingDestHistory); if(USE_POINT_ITSELF) { - logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns + 1) - Math.log(timeInWindowWithMatchingJointHistories); - logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched) - Math.log(timeInWindowWithMatchingDestHistory); + logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) - Math.log(timeInWindowWithMatchingJointHistories); + logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched - 1) - Math.log(timeInWindowWithMatchingDestHistory); } //============================ From ea8a322b61e6fd9d2192f258b00496d6643bbc59 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Tue, 29 Jan 2019 19:51:21 +1100 Subject: [PATCH 26/41] end Tues --- ...erEntropyCalculatorSpikingIntegration.java | 105 ++++++++++++++---- 1 file changed, 86 insertions(+), 19 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 3baa10e..fb3774e 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -28,9 +28,9 @@ import infodynamics.utils.UnivariateNearestNeighbourSearcher; public class TransferEntropyCalculatorSpikingIntegration implements TransferEntropyCalculatorSpiking { - protected final static boolean USE_POINT_ITSELF = true; + protected final static boolean USE_POINT_ITSELF = false; protected final static boolean TRIM_RADII = false; - protected final static boolean USE_SAME_RADII = false; + protected final static boolean USE_SAME_RADII = true; /** * Number of past destination spikes to consider (akin to embedding length) @@ -565,9 +565,38 @@ public class TransferEntropyCalculatorSpikingIntegration implements // Find the Knns nearest neighbour matches to this event, // with the same previous spiker and the next. // TODO Add dynamic exclusion time later + + /*int num_after_event = 0; + int extra_to_search = -1; + boolean leave_out = false; + while(num_after_event < Knns) { + extra_to_search++; + num_after_event = 0; + PriorityQueue nnPQ = + kdTreesJoint[NEXT_DEST].findKNearestNeighbours(Knns + extra_to_search, + eventIndexWithinType); + + for (int j = 0; j < Knns + extra_to_search; j++) { + NeighbourNodeData nnData = nnPQ.poll(); + if(eventTimings[NEXT_DEST].elementAt(nnData.sampleIndex)[2][0] > + timeToNextSpikeSincePreviousDestSpike) { + num_after_event++; + } + } + if(extra_to_search > 500) { + System.out.println("on edge"); + leave_out = true; + break; + } + //System.out.println("Num " + eventIndexWithinType + " " + num_after_event); + } + if(leave_out) { + continue; + }*/ + PriorityQueue nnPQ = - kdTreesJoint[NEXT_DEST].findKNearestNeighbours( - Knns, eventIndexWithinType); + kdTreesJoint[NEXT_DEST].findKNearestNeighbours(Knns, + eventIndexWithinType); // Find eps_{x,y,z} as the maximum x, y and z norms amongst this set: double radius_sourcePast = 0.0; @@ -643,6 +672,18 @@ public class TransferEntropyCalculatorSpikingIntegration implements if ((matchingHistoryTimeToNextSpike >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) && (matchingHistoryTimeToPrevSourceSpike <= timeToNextSpikeSincePreviousDestSpike + radius_destNext)) { + /*// Real start of window cannot be before previous destination spike: + double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike, 0); + // Also, real start cannot be before previous source spike: + // (previous source spike occurs at -matchedHistoryEventTimings[0][0] relative + // to previous destination spike) + //realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); + + // Real end of window happened either when the spike occurred (which changes the history) or at + // the end of the window: + double realEndOfWindow = Math.min(matchingHistoryTimeToNextSpike, + timeToNextSpikeSincePreviousDestSpike + radius_destNext);*/ + // Real start of window cannot be before previous destination spike: double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); // Also, real start cannot be before previous source spike: @@ -656,9 +697,10 @@ public class TransferEntropyCalculatorSpikingIntegration implements timeToNextSpikeSincePreviousDestSpike + radius_destNext); // Add in how much time with a matching history we spent in this window: - timeInWindowWithMatchingJointHistories += - realEndOfWindow - realStartOfWindow; - + if(realEndOfWindow - realStartOfWindow > 0) { + timeInWindowWithMatchingJointHistories += realEndOfWindow - realStartOfWindow; + } + countOfDestNextAndGreater++; // Count spikes occurring here in the window (and check below) @@ -703,21 +745,38 @@ public class TransferEntropyCalculatorSpikingIntegration implements if ((matchingHistoryTimeToNextSpike >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) && (matchingHistoryTimeToPrevSourceSpike <= timeToNextSpikeSincePreviousDestSpike + radius_destNext)) { - // Real start of window cannot be before previous destination spike: - double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); + /*// Real start of window cannot be before previous destination spike: + double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike, 0); // Also, real start cannot be before previous source spike: // (previous source spike occurs at matchingHistoryTimeToPrevSourceSpike relative // to previous destination spike) - realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); + //realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); // Real end of window happened either when the spike occurred or at // the end of the window: + double realEndOfWindow = Math.min(matchingHistoryTimeToNextSpike, + timeToNextSpikeSincePreviousDestSpike + radius_destNext);*/ + + // Real start of window cannot be before previous destination spike: + double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); + // Also, real start cannot be before previous source spike: + // (previous source spike occurs at -matchedHistoryEventTimings[0][0] relative + // to previous destination spike) + realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); + + // Real end of window happened either when the spike occurred (which changes the history) or at + // the end of the window: double realEndOfWindow = Math.min(matchingHistoryTimeToNextSpike, timeToNextSpikeSincePreviousDestSpike + radius_destNext); // Add in how much time with a matching history we spent in this window: - timeInWindowWithMatchingJointHistories += - realEndOfWindow - realStartOfWindow; + if(realEndOfWindow - realStartOfWindow > 0) { + timeInWindowWithMatchingJointHistories += realEndOfWindow - realStartOfWindow; + } + + if(timeInWindowWithMatchingJointHistories < 0) { + timeInWindowWithMatchingJointHistories = 0; + } countOfSourceNextAndGreater++; } @@ -858,8 +917,11 @@ public class TransferEntropyCalculatorSpikingIntegration implements // This code section takes the counts of spikes and total intervals, and // estimates the log rates. // Inferred rates raw: - double rawRateGivenSourceAndDest = ((double) (Knns - 1)) / timeInWindowWithMatchingJointHistories; - double rawRateGivenDest = ((double) (countOfDestNextMatched - 1)) / timeInWindowWithMatchingDestHistory; + double rawRateGivenSourceAndDest = ((double) (Knns)) / timeInWindowWithMatchingJointHistories; + if(rawRateGivenSourceAndDest > 50) { + System.out.println("SUPER HIGGHHG"); + } + double rawRateGivenDest = ((double) (countOfDestNextMatched)) / timeInWindowWithMatchingDestHistory; // Attempt at bias correction: // Using digamma of neighbour_count - 1, since the neighbour count now includes our search point and it's really k waiting times double logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) //`- (1.0 / (double) Knns) // I don't think this correction is required @@ -869,6 +931,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements if(USE_POINT_ITSELF) { logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) - Math.log(timeInWindowWithMatchingJointHistories); logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched - 1) - Math.log(timeInWindowWithMatchingDestHistory); + rawRateGivenSourceAndDest = ((double) (Knns)) / timeInWindowWithMatchingJointHistories; + rawRateGivenDest = ((double) (countOfDestNextMatched - 1)) / timeInWindowWithMatchingDestHistory; } //============================ @@ -893,9 +957,11 @@ public class TransferEntropyCalculatorSpikingIntegration implements // Add the contribution in: // a.If we were using digamma logs: contributionFromSpikes += logRateGivenSourceAndDestCorrected - logRateGivenDestCorrected; - contributionRate_X += rawRateGivenDest; - contributionRate_XY += rawRateGivenSourceAndDest; - numContributions++; + contributionRate_X += 1/rawRateGivenDest; + if(rawRateGivenSourceAndDest < 100) { + contributionRate_XY += 1/rawRateGivenSourceAndDest; + numContributions++; + } // contributionFromSpikes += Math.log(rawRateGivenSourceAndDest / rawRateGivenDest); @@ -907,9 +973,10 @@ public class TransferEntropyCalculatorSpikingIntegration implements // totalSearchTimeWindowCondDestPast)); } System.out.println("All done!"); - System.out.println(contributionRate_X/(float)numContributions + " " + contributionRate_XY/(float)numContributions); + System.out.println("Rate X " + numContributions/contributionRate_X); + System.out.println("Rate XY " + numContributions/contributionRate_XY); contributionFromSpikes /= totalTimeLength; - return contributionFromSpikes; + return numContributions/contributionRate_XY; } /* From 4985def0213bf245b2ec4ae46afc6af7864d77f5 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Fri, 1 Feb 2019 15:35:26 +1100 Subject: [PATCH 27/41] fixed weirdness --- ...erEntropyCalculatorSpikingIntegration.java | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index fb3774e..36f5224 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -30,7 +30,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements protected final static boolean USE_POINT_ITSELF = false; protected final static boolean TRIM_RADII = false; - protected final static boolean USE_SAME_RADII = true; + protected final static boolean USE_SAME_RADII = false; /** * Number of past destination spikes to consider (akin to embedding length) @@ -565,15 +565,17 @@ public class TransferEntropyCalculatorSpikingIntegration implements // Find the Knns nearest neighbour matches to this event, // with the same previous spiker and the next. // TODO Add dynamic exclusion time later - /*int num_after_event = 0; int extra_to_search = -1; boolean leave_out = false; + if(timeToNextSpikeSincePreviousDestSpike < 0.01 || timeToNextSpikeSincePreviousDestSpike > 0.5) { + continue; + } while(num_after_event < Knns) { extra_to_search++; num_after_event = 0; PriorityQueue nnPQ = - kdTreesJoint[NEXT_DEST].findKNearestNeighbours(Knns + extra_to_search, + kdTreesJoint[NEXT_DEST].findKNearestNeighbours(Knns + extra_to_search, eventIndexWithinType); for (int j = 0; j < Knns + extra_to_search; j++) { @@ -596,7 +598,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements PriorityQueue nnPQ = kdTreesJoint[NEXT_DEST].findKNearestNeighbours(Knns, - eventIndexWithinType); + eventIndexWithinType); // Find eps_{x,y,z} as the maximum x, y and z norms amongst this set: double radius_sourcePast = 0.0; @@ -606,16 +608,19 @@ public class TransferEntropyCalculatorSpikingIntegration implements for (int j = 0; j < Knns; j++) { // Take the furthest remaining of the nearest neighbours from the PQ: NeighbourNodeData nnData = nnPQ.poll(); - if (nnData.norms[0] > radius_sourcePast) { + //if(eventTimings[NEXT_DEST].elementAt(nnData.sampleIndex)[2][0] > + // timeToNextSpikeSincePreviousDestSpike) { + if (nnData.norms[0] > radius_sourcePast) { radius_sourcePast = nnData.norms[0]; - } - if (nnData.norms[1] > radius_destPast) { + } + if (nnData.norms[1] > radius_destPast) { radius_destPast = nnData.norms[1]; - } - if (nnData.norms[2] > radius_destNext) { + } + if (nnData.norms[2] > radius_destNext) { radius_destNext = nnData.norms[2]; radius_destNext_sampleIndex = nnData.sampleIndex; - } + } + //} } if (!TRIM_RADII) { double radius_max = Math.max(Math.max(radius_sourcePast, radius_destPast), radius_destNext); @@ -743,7 +748,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements // and that the previous source spike did not occur after the window // (this is possible since our neighbour match hasn't checked for the next spike time) if ((matchingHistoryTimeToNextSpike >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) && - (matchingHistoryTimeToPrevSourceSpike <= timeToNextSpikeSincePreviousDestSpike + radius_destNext)) { + (matchingHistoryTimeToPrevSourceSpike <= timeToNextSpikeSincePreviousDestSpike + radius_destNext)) { /*// Real start of window cannot be before previous destination spike: double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike, 0); @@ -918,9 +923,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements // estimates the log rates. // Inferred rates raw: double rawRateGivenSourceAndDest = ((double) (Knns)) / timeInWindowWithMatchingJointHistories; - if(rawRateGivenSourceAndDest > 50) { + /*if(rawRateGivenSourceAndDest > 50) { System.out.println("SUPER HIGGHHG"); - } + }*/ double rawRateGivenDest = ((double) (countOfDestNextMatched)) / timeInWindowWithMatchingDestHistory; // Attempt at bias correction: // Using digamma of neighbour_count - 1, since the neighbour count now includes our search point and it's really k waiting times From 4f889df7869aedbd9f760b49da845c8aebfdac78 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Wed, 21 Jul 2021 10:15:08 +1000 Subject: [PATCH 28/41] added testing script --- tester.py | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100755 tester.py diff --git a/tester.py b/tester.py new file mode 100755 index 0000000..4fffc64 --- /dev/null +++ b/tester.py @@ -0,0 +1,81 @@ +## +## Java Information Dynamics Toolkit (JIDT) +## Copyright (C) 2012, Joseph T. Lizier +## +## This program is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program. If not, see . +## + +# = Example 4 - Transfer entropy on continuous data using Kraskov estimators = + +# Simple transfer entropy (TE) calculation on continuous-valued data using the Kraskov-estimator TE calculator. + +from jpype import * +import random +import math +import os +import numpy as np + +# Change location of jar to match yours (we assume script is called from demos/python): +jarLocation = os.path.join(os.getcwd(), "infodynamics.jar"); +if (not(os.path.isfile(jarLocation))): + exit("infodynamics.jar not found (expected at " + os.path.abspath(jarLocation) + ") - are you running from demos/python?") +# Start the JVM (add the "-Xmx" option with say 1024M if you get crashes due to not enough memory space) +startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=" + jarLocation) + +# Generate some random normalised data. +numObservations = 1000 +covariance=0.4 +# Source array of random normals: +sourceArray = [random.normalvariate(0,1) for r in range(numObservations)] +# Destination array of random normals with partial correlation to previous value of sourceArray +destArray = [0] + [sum(pair) for pair in zip([covariance*y for y in sourceArray[0:numObservations-1]], \ + [(1-covariance)*y for y in [random.normalvariate(0,1) for r in range(numObservations-1)]] ) ] + +sourceArray = 1e3*np.random.random(int(1e3)) +sourceArray.sort() +destArray = 1e3*np.random.random(int(1e3)) +destArray.sort() + +# Uncorrelated source array: +sourceArray2 = [random.normalvariate(0,1) for r in range(numObservations)] +# Create a TE calculator and run it: +#teCalcClass = JPackage("infodynamics.measures.continuous.kraskov").TransferEntropyCalculatorKraskov +teCalcClass = JPackage("infodynamics.measures.spiking.integration").TransferEntropyCalculatorSpikingIntegration + + + +teCalc = teCalcClass() +teCalc.setProperty("NORMALISE", "true") # Normalise the individual variables +teCalc.initialise(1) # Use history length 1 (Schreiber k=1) +teCalc.setProperty("k", "4") # Use Kraskov parameter K=4 for 4 nearest points +# # Perform calculation with correlated source: +teCalc.setObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray)) +result = teCalc.computeAverageLocalOfObservations() +# # Note that the calculation is a random variable (because the generated +# # data is a set of random variables) - the result will be of the order +# # of what we expect, but not exactly equal to it; in fact, there will +# # be a large variance around it. +# # Expected correlation is expected covariance / product of expected standard deviations: +# # (where square of destArray standard dev is sum of squares of std devs of +# # underlying distributions) +# corr_expected = covariance / (1 * math.sqrt(covariance**2 + (1-covariance)**2)); +print("TE result %.4f nats" % \ + (result,)) +# # Perform calculation with uncorrelated source: +# teCalc.initialise() # Initialise leaving the parameters the same +# teCalc.setObservations(JArray(JDouble, 1)(sourceArray2), JArray(JDouble, 1)(destArray)) +# result2 = teCalc.computeAverageLocalOfObservations() +# print("TE result %.4f nats; expected to be close to 0 nats for these uncorrelated Gaussians" % result2) + + From 56dacc52323bd4f00edfc82267a3c413c7cfe669 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Thu, 22 Jul 2021 14:19:36 +1000 Subject: [PATCH 29/41] some progress towards PCB spiking estimator --- ...erEntropyCalculatorSpikingIntegration.java | 185 +++++++++++++++++- tester.py | 2 +- 2 files changed, 180 insertions(+), 7 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 36f5224..c6cce6c 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -1,6 +1,7 @@ package infodynamics.measures.spiking.integration; import java.util.Arrays; +import java.util.Collections; import java.util.Iterator; import java.util.PriorityQueue; import java.util.Random; @@ -70,6 +71,13 @@ public class TransferEntropyCalculatorSpikingIntegration implements * Cache of the timing data for each new observed spiking event for the * destination only */ + + Vector targetEmbeddingsFromSpikes = null; + Vector sourceEmbeddingsFromSpikes = null; + Vector targetEmbeddingsFromSamples = null; + Vector sourceEmbeddingsFromSamples = null; + + Vector destPastAndNextTimings = null; /** * Cache of the type of event for each new observed spiking event in both the source @@ -285,6 +293,12 @@ public class TransferEntropyCalculatorSpikingIntegration implements eventTypeLocator = new Vector(); eventIndexLocator = new Vector(); numEventsPerObservationSet = new Vector(); + + // New + targetEmbeddingsFromSpikes = new Vector(); + sourceEmbeddingsFromSpikes = new Vector(); + targetEmbeddingsFromSamples = new Vector(); + sourceEmbeddingsFromSamples = new Vector(); // Send all of the observations through: Iterator sourceIterator = vectorOfSourceSpikeTimes.iterator(); @@ -294,8 +308,10 @@ public class TransferEntropyCalculatorSpikingIntegration implements timeSeriesIndex++; processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, - timeSeriesIndex, eventTimings, destPastAndNextTimings, - eventTypeLocator, eventIndexLocator, numEventsPerObservationSet); + timeSeriesIndex, eventTimings, destPastAndNextTimings, + eventTypeLocator, eventIndexLocator, numEventsPerObservationSet, + targetEmbeddingsFromSpikes, sourceEmbeddingsFromSpikes, + targetEmbeddingsFromSamples, sourceEmbeddingsFromSamples); } // Now we have collected all the events. @@ -351,10 +367,15 @@ public class TransferEntropyCalculatorSpikingIntegration implements } protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, - int timeSeriesIndex, Vector[] eventTimings, - Vector destPastAndNextTimings, Vector eventTypeLocator, - Vector eventIndexLocator, Vector numEventsPerObservationSet) throws Exception { + int timeSeriesIndex, Vector[] eventTimings, + Vector destPastAndNextTimings, Vector eventTypeLocator, + Vector eventIndexLocator, Vector numEventsPerObservationSet, + Vector targetEmbeddingsFromSpikes, Vector sourceEmbeddingsFromSpikes, + Vector targetEmbeddingsFromSamples, Vector sourceEmbeddingsFromSamples) + throws Exception { // addObservationsAfterParamsDetermined(sourceSpikeTimes, destSpikeTimes); + + System.out.println("foo"); // First sort the spike times in case they were not properly in ascending order: Arrays.sort(sourceSpikeTimes); @@ -411,7 +432,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements Random random = null; if (addNoise) { random = new Random(); - } + } while(true) { // 0. Check whether we're finished if ((source_index == sourceSpikeTimes.length - 1) && @@ -501,6 +522,158 @@ public class TransferEntropyCalculatorSpikingIntegration implements if (debug) { System.out.printf("Finished processing %d source-target events for observation set %d\n", numEvents, timeSeriesIndex); } + + // New + int NUM_SAMPLES = 1000; + double sample_lower_bound = Arrays.stream(sourceSpikeTimes).min().getAsDouble(); + double sample_upper_bound = Arrays.stream(sourceSpikeTimes).max().getAsDouble(); + double[] randomSampleTimes = new double[NUM_SAMPLES]; + Random rand = new Random(); + for (int i = 0; i < randomSampleTimes.length; i++) { + randomSampleTimes[i] = sample_lower_bound + rand.nextDouble() * (sample_upper_bound - sample_lower_bound); + } + + // // Scan to find the indices by which we have k and l spikes for dest and source + // // respectively + // int dest_index = k - 1; + // int source_index = l - 1; + // if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { + // // Minimum required Source spikes are later than the dest. + // // Need to advance dest_index until it's the most recent before source_index + // for(;dest_index < destSpikeTimes.length; dest_index++) { + // if (destSpikeTimes[dest_index] > sourceSpikeTimes[source_index]) { + // // We've gone past the set of source spikes we have, we + // // can move back one in the dest series + // dest_index--; + // break; + // } + // } + // if (dest_index == destSpikeTimes.length) { + // // We didn't have enough spikes in this series to generate any observations + // // TODO work out how to handle this later -- I think this is ok + // numEventsPerObservationSet.add(0); + // return; + // // throw new Exception("Dest spikes stop before enough source spikes in time-series " + timeSeriesIndex); + // } + // } else { + // // Minimum required Dest spikes are later than the source. + // // Need to advance source_index until it's the most recent before dest_index + // for(;source_index < sourceSpikeTimes.length; source_index++) { + // if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { + // // We've gone past the set of dest spikes we have, we + // // can move back one in the source series + // source_index--; + // break; + // } + // } + // if (source_index == sourceSpikeTimes.length) { + // // We didn't have enough spikes in this series to generate any observations + // // TODO work out how to handle this later -- I think this is ok + // numEventsPerObservationSet.add(0); + // return; + // // throw new Exception("Source spikes stop before enough dest spikes in time-series " + timeSeriesIndex); + // } + // } + // // Post-condition: dest_index and source_index are set correctly for the first set of pasts + + // double timeToNextSpike; + // boolean nextIsDest = false; + // double[] spikeTimesForNextSpiker; + // double timeOfPrevDestSpike = destSpikeTimes[dest_index]; + // int numEvents = 0; + // Random random = null; + // if (addNoise) { + // random = new Random(); + // } + // while(true) { + // // 0. Check whether we're finished + // if ((source_index == sourceSpikeTimes.length - 1) && + // (dest_index == destSpikeTimes.length - 1)) { + // // We have no next spike so we can't take an observation here + // // and we're done + // break; + // } + // // Otherwise: + // // 1. Determine which of source / dest fires next + // if (source_index == sourceSpikeTimes.length - 1) { + // nextIsDest = true; + // } else if (dest_index == destSpikeTimes.length - 1) { + // nextIsDest = false; + // } else if (sourceSpikeTimes[source_index+1] < destSpikeTimes[dest_index+1]) { + // nextIsDest = false; + // } else { + // nextIsDest = true; + // } + // spikeTimesForNextSpiker = nextIsDest ? destSpikeTimes : sourceSpikeTimes; + // int indexForNextSpiker = nextIsDest ? dest_index : source_index; + // timeToNextSpike = spikeTimesForNextSpiker[indexForNextSpiker+1] - timeOfPrevDestSpike; + // if (addNoise) { + // timeToNextSpike += random.nextGaussian()*noiseLevel; + // } + // // 2. Embed the past spikes + // double[] sourcePast = new double[l]; + // double[] destPast = new double[k - 1]; + // /* if (debug) { + // System.out.println("previousIsDest = " + previousIsDest + " and nextIsDest = " + nextIsDest); + // }*/ + // sourcePast[0] = timeOfPrevDestSpike - + // sourceSpikeTimes[source_index]; + // if (addNoise) { + // sourcePast[0] += random.nextGaussian()*noiseLevel; + // } + // for (int i = 1; i < k; i++) { + // destPast[i - 1] = destSpikeTimes[dest_index - i + 1] - + // destSpikeTimes[dest_index - i]; + // if (addNoise) { + // destPast[i - 1] += random.nextGaussian()*noiseLevel; + // } + // } + // for (int i = 1; i < l; i++) { + // sourcePast[i] = sourceSpikeTimes[source_index - i + 1] - + // sourceSpikeTimes[source_index - i]; + // if (addNoise) { + // sourcePast[i] += random.nextGaussian()*noiseLevel; + // } + // } + // // 3. Store these embedded observations + // double[][] observations = new double[][]{sourcePast, destPast, + // new double[] {timeToNextSpike}}; + // if (debug) { + // System.out.printf("Adding event %d with: timeToNextSpike=%.4f, sourceSpikeTimes=", numEvents, timeToNextSpike); + // MatrixUtils.printArray(System.out, sourcePast, 3); + // System.out.printf(", destSpikeTimes="); + // MatrixUtils.printArray(System.out, destPast, 3); + // System.out.println(); + // } + // // Add the index locator first so it gets the index correct before + // // we add the new event in: + // eventIndexLocator.add(eventTimings[nextIsDest ? NEXT_DEST : NEXT_SOURCE].size()); + // eventTimings[nextIsDest ? NEXT_DEST : NEXT_SOURCE].add(observations); + // // TODO Switch eventTypeLocation to be of type Integer rather than int[] + // eventTypeLocator.add(nextIsDest ? NEXT_DEST : NEXT_SOURCE); + // // And finally store the observations for the dest only + // // search structure if required: + // if (nextIsDest) { + // double[][] destOnlyObservations; + // destOnlyObservations = new double[][] { + // destPast, + // new double[] {timeToNextSpike} + // }; + // destPastAndNextTimings.add(destOnlyObservations); + // } + // // 4. Reset variables + // if (nextIsDest) { + // dest_index++; + // } else { + // source_index++; + // } + // timeOfPrevDestSpike = destSpikeTimes[dest_index]; + // numEvents++; + // } + // numEventsPerObservationSet.add(numEvents); + // if (debug) { + // System.out.printf("Finished processing %d source-target events for observation set %d\n", numEvents, timeSeriesIndex); + // } } /* (non-Javadoc) diff --git a/tester.py b/tester.py index 4fffc64..dfa1b9c 100755 --- a/tester.py +++ b/tester.py @@ -58,7 +58,7 @@ teCalcClass = JPackage("infodynamics.measures.spiking.integration").TransferEntr teCalc = teCalcClass() teCalc.setProperty("NORMALISE", "true") # Normalise the individual variables teCalc.initialise(1) # Use history length 1 (Schreiber k=1) -teCalc.setProperty("k", "4") # Use Kraskov parameter K=4 for 4 nearest points +teCalc.setProperty("knns", "4") # Use Kraskov parameter K=4 for 4 nearest points # # Perform calculation with correlated source: teCalc.setObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray)) result = teCalc.computeAverageLocalOfObservations() From fe0fb2ed49f0f31d1036f1e7dba32d5a13125a80 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Thu, 22 Jul 2021 17:55:00 +1000 Subject: [PATCH 30/41] positioning embeddings start point --- ...erEntropyCalculatorSpikingIntegration.java | 62 +++++++++++++++---- 1 file changed, 51 insertions(+), 11 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index c6cce6c..4ec4529 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -274,6 +274,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements vectorOfDestinationSpikeTimes.add(destination); } + + + /* (non-Javadoc) * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#finaliseAddObservations() */ @@ -366,6 +369,37 @@ public class TransferEntropyCalculatorSpikingIntegration implements } } + protected void makeEmbeddingsAtPoints(double[] pointsAtWhichToMakeEmbeddings, double[] sourceSpikeTimes, double[] destSpikeTimes, + Vector targetEmbeddings, Vector sourceEmbeddings) { + System.out.println("foo"); + + int embedding_point_index = 0; + int most_recent_dest_index = k; + int most_recent_source_index = l; + + // Make sure that the first point at which an embedding is made has enough preceding spikes in both source and + // target for embeddings to be made. + while (pointsAtWhichToMakeEmbeddings[embedding_point_index] < destSpikeTimes[most_recent_dest_index] | + pointsAtWhichToMakeEmbeddings[embedding_point_index] < sourceSpikeTimes[most_recent_source_index]) { + embedding_point_index++; + } + + // Move the dest index forward to be at the spike just behind where the first embedding will be made + while (destSpikeTimes[most_recent_dest_index] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + most_recent_dest_index++; + } + most_recent_dest_index--; + // Do the same for the source index + while (sourceSpikeTimes[most_recent_source_index] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + most_recent_source_index++; + } + most_recent_source_index--; + + System.out.println(most_recent_dest_index + " " + most_recent_source_index + " " + embedding_point_index); + System.out.println(destSpikeTimes[most_recent_dest_index] + " " + sourceSpikeTimes[most_recent_source_index] + " " + + pointsAtWhichToMakeEmbeddings[embedding_point_index]); + } + protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, int timeSeriesIndex, Vector[] eventTimings, Vector destPastAndNextTimings, Vector eventTypeLocator, @@ -374,12 +408,26 @@ public class TransferEntropyCalculatorSpikingIntegration implements Vector targetEmbeddingsFromSamples, Vector sourceEmbeddingsFromSamples) throws Exception { // addObservationsAfterParamsDetermined(sourceSpikeTimes, destSpikeTimes); - - System.out.println("foo"); // First sort the spike times in case they were not properly in ascending order: Arrays.sort(sourceSpikeTimes); Arrays.sort(destSpikeTimes); + + + // New + int NUM_SAMPLES = 1000; + double sample_lower_bound = Arrays.stream(sourceSpikeTimes).min().getAsDouble(); + double sample_upper_bound = Arrays.stream(sourceSpikeTimes).max().getAsDouble(); + double[] randomSampleTimes = new double[NUM_SAMPLES]; + Random rand = new Random(); + for (int i = 0; i < randomSampleTimes.length; i++) { + randomSampleTimes[i] = sample_lower_bound + rand.nextDouble() * (sample_upper_bound - sample_lower_bound); + } + // End New + + + makeEmbeddingsAtPoints(destSpikeTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSpikes, sourceEmbeddingsFromSpikes); + makeEmbeddingsAtPoints(randomSampleTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSamples, sourceEmbeddingsFromSamples); // Scan to find the indices by which we have k and l spikes for dest and source // respectively @@ -523,15 +571,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements System.out.printf("Finished processing %d source-target events for observation set %d\n", numEvents, timeSeriesIndex); } - // New - int NUM_SAMPLES = 1000; - double sample_lower_bound = Arrays.stream(sourceSpikeTimes).min().getAsDouble(); - double sample_upper_bound = Arrays.stream(sourceSpikeTimes).max().getAsDouble(); - double[] randomSampleTimes = new double[NUM_SAMPLES]; - Random rand = new Random(); - for (int i = 0; i < randomSampleTimes.length; i++) { - randomSampleTimes[i] = sample_lower_bound + rand.nextDouble() * (sample_upper_bound - sample_lower_bound); - } + // // Scan to find the indices by which we have k and l spikes for dest and source // // respectively From deb9d975209fc43b7fb69c86cf9319ed2c5bcc79 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Thu, 22 Jul 2021 19:06:53 +1000 Subject: [PATCH 31/41] advancing previous indices throughout iteration --- ...erEntropyCalculatorSpikingIntegration.java | 53 ++++++++++++++----- tester.py | 2 + 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 4ec4529..f5322a9 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -384,20 +384,46 @@ public class TransferEntropyCalculatorSpikingIntegration implements embedding_point_index++; } - // Move the dest index forward to be at the spike just behind where the first embedding will be made - while (destSpikeTimes[most_recent_dest_index] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { - most_recent_dest_index++; - } - most_recent_dest_index--; - // Do the same for the source index - while (sourceSpikeTimes[most_recent_source_index] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { - most_recent_source_index++; - } - most_recent_source_index--; + // Loop through the points at which embeddings need to be made + for (;embedding_point_index < pointsAtWhichToMakeEmbeddings.length; embedding_point_index++) { - System.out.println(most_recent_dest_index + " " + most_recent_source_index + " " + embedding_point_index); - System.out.println(destSpikeTimes[most_recent_dest_index] + " " + sourceSpikeTimes[most_recent_source_index] + " " + - pointsAtWhichToMakeEmbeddings[embedding_point_index]); + // Advance the tracker of the most recent dest index + while (most_recent_dest_index < destSpikeTimes.length) { + // Case where we will not be able to evaluate the following else if + if (most_recent_dest_index == destSpikeTimes.length - 2) { + // The final spike is still behind the current embedding point, so advance + if (destSpikeTimes[most_recent_dest_index + 1] < + pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + most_recent_dest_index += 1; + } + break; + } else if (destSpikeTimes[most_recent_dest_index + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + most_recent_dest_index++; + } else { + break; + } + } + // Do the same for the most recent source index + while (most_recent_source_index < sourceSpikeTimes.length) { + // Case where we will not be able to evaluate the following else if + if (most_recent_source_index == sourceSpikeTimes.length - 2) { + // The final spike is still behind the current embedding point, so advance + if (sourceSpikeTimes[most_recent_source_index + 1] < + pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + most_recent_source_index += 1; + } + break; + } else if (sourceSpikeTimes[most_recent_source_index + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + most_recent_source_index++; + } else { + break; + } + } + + System.out.println(most_recent_dest_index + " " + most_recent_source_index + " " + embedding_point_index); + System.out.println(destSpikeTimes[most_recent_dest_index] + " " + sourceSpikeTimes[most_recent_source_index] + " " + + pointsAtWhichToMakeEmbeddings[embedding_point_index]); + } } protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, @@ -423,6 +449,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements for (int i = 0; i < randomSampleTimes.length; i++) { randomSampleTimes[i] = sample_lower_bound + rand.nextDouble() * (sample_upper_bound - sample_lower_bound); } + Arrays.sort(randomSampleTimes); // End New diff --git a/tester.py b/tester.py index dfa1b9c..2ce6d6c 100755 --- a/tester.py +++ b/tester.py @@ -58,6 +58,8 @@ teCalcClass = JPackage("infodynamics.measures.spiking.integration").TransferEntr teCalc = teCalcClass() teCalc.setProperty("NORMALISE", "true") # Normalise the individual variables teCalc.initialise(1) # Use history length 1 (Schreiber k=1) +teCalc.setProperty("k", "2") +teCalc.setProperty("l", "2") teCalc.setProperty("knns", "4") # Use Kraskov parameter K=4 for 4 nearest points # # Perform calculation with correlated source: teCalc.setObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray)) From 0e530cdcebb9b40bf7f0360683868b185ca7bf23 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Fri, 23 Jul 2021 17:26:18 +1000 Subject: [PATCH 32/41] history embeddings done --- ...erEntropyCalculatorSpikingIntegration.java | 95 ++++++++++++------- tester.py | 4 +- 2 files changed, 62 insertions(+), 37 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index f5322a9..54c008d 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -72,10 +72,10 @@ public class TransferEntropyCalculatorSpikingIntegration implements * destination only */ - Vector targetEmbeddingsFromSpikes = null; - Vector sourceEmbeddingsFromSpikes = null; - Vector targetEmbeddingsFromSamples = null; - Vector sourceEmbeddingsFromSamples = null; + Vector targetEmbeddingsFromSpikes = null; + Vector sourceEmbeddingsFromSpikes = null; + Vector targetEmbeddingsFromSamples = null; + Vector sourceEmbeddingsFromSamples = null; Vector destPastAndNextTimings = null; @@ -298,10 +298,10 @@ public class TransferEntropyCalculatorSpikingIntegration implements numEventsPerObservationSet = new Vector(); // New - targetEmbeddingsFromSpikes = new Vector(); - sourceEmbeddingsFromSpikes = new Vector(); - targetEmbeddingsFromSamples = new Vector(); - sourceEmbeddingsFromSamples = new Vector(); + targetEmbeddingsFromSpikes = new Vector(); + sourceEmbeddingsFromSpikes = new Vector(); + targetEmbeddingsFromSamples = new Vector(); + sourceEmbeddingsFromSamples = new Vector(); // Send all of the observations through: Iterator sourceIterator = vectorOfSourceSpikeTimes.iterator(); @@ -316,6 +316,10 @@ public class TransferEntropyCalculatorSpikingIntegration implements targetEmbeddingsFromSpikes, sourceEmbeddingsFromSpikes, targetEmbeddingsFromSamples, sourceEmbeddingsFromSamples); } + + for (int i = 0; i < 5; i++) { + System.out.println(Arrays.toString(targetEmbeddingsFromSpikes.elementAt(i))); + } // Now we have collected all the events. // Load up the search structures: @@ -370,8 +374,10 @@ public class TransferEntropyCalculatorSpikingIntegration implements } protected void makeEmbeddingsAtPoints(double[] pointsAtWhichToMakeEmbeddings, double[] sourceSpikeTimes, double[] destSpikeTimes, - Vector targetEmbeddings, Vector sourceEmbeddings) { - System.out.println("foo"); + Vector targetEmbeddings, Vector sourceEmbeddings) { + //System.out.println("foo"); + + Random random = new Random(); int embedding_point_index = 0; int most_recent_dest_index = k; @@ -388,41 +394,58 @@ public class TransferEntropyCalculatorSpikingIntegration implements for (;embedding_point_index < pointsAtWhichToMakeEmbeddings.length; embedding_point_index++) { // Advance the tracker of the most recent dest index - while (most_recent_dest_index < destSpikeTimes.length) { - // Case where we will not be able to evaluate the following else if - if (most_recent_dest_index == destSpikeTimes.length - 2) { - // The final spike is still behind the current embedding point, so advance - if (destSpikeTimes[most_recent_dest_index + 1] < - pointsAtWhichToMakeEmbeddings[embedding_point_index]) { - most_recent_dest_index += 1; - } - break; - } else if (destSpikeTimes[most_recent_dest_index + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + while (most_recent_dest_index < (destSpikeTimes.length - 1)) { + if (destSpikeTimes[most_recent_dest_index + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { most_recent_dest_index++; } else { break; } } // Do the same for the most recent source index - while (most_recent_source_index < sourceSpikeTimes.length) { - // Case where we will not be able to evaluate the following else if - if (most_recent_source_index == sourceSpikeTimes.length - 2) { - // The final spike is still behind the current embedding point, so advance - if (sourceSpikeTimes[most_recent_source_index + 1] < - pointsAtWhichToMakeEmbeddings[embedding_point_index]) { - most_recent_source_index += 1; - } - break; - } else if (sourceSpikeTimes[most_recent_source_index + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + while (most_recent_source_index < (sourceSpikeTimes.length - 1)) { + if (sourceSpikeTimes[most_recent_source_index + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { most_recent_source_index++; } else { break; } } - System.out.println(most_recent_dest_index + " " + most_recent_source_index + " " + embedding_point_index); - System.out.println(destSpikeTimes[most_recent_dest_index] + " " + sourceSpikeTimes[most_recent_source_index] + " " + - pointsAtWhichToMakeEmbeddings[embedding_point_index]); + //System.out.println(most_recent_dest_index + " " + most_recent_source_index + " " + embedding_point_index); + //System.out.println(destSpikeTimes[most_recent_dest_index] + " " + sourceSpikeTimes[most_recent_source_index] + " " + + // pointsAtWhichToMakeEmbeddings[embedding_point_index]); + //System.out.println(k + " " + l); + + double[] destPast = new double[k]; + double[] sourcePast = new double[l]; + destPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - + destSpikeTimes[most_recent_dest_index]; + sourcePast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - + sourceSpikeTimes[most_recent_source_index]; + if (addNoise) { + destPast[0] += random.nextGaussian()*noiseLevel; + sourcePast[0] += random.nextGaussian()*noiseLevel; + } + for (int i = 1; i < k; i++) { + destPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] - + destSpikeTimes[most_recent_dest_index - i]; + if (addNoise) { + destPast[i - 1] += random.nextGaussian()*noiseLevel; + } + } + for (int i = 1; i < l; i++) { + sourcePast[i] = sourceSpikeTimes[most_recent_source_index - i + 1] - + sourceSpikeTimes[most_recent_source_index - i]; + if (addNoise) { + sourcePast[i - 1] += random.nextGaussian()*noiseLevel; + } + } + + //System.out.println(Arrays.toString(destPast)); + //System.out.println(Arrays.toString(sourcePast)); + //System.out.println(); + + targetEmbeddings.add(destPast); + sourceEmbeddings.add(sourcePast); } } @@ -430,8 +453,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements int timeSeriesIndex, Vector[] eventTimings, Vector destPastAndNextTimings, Vector eventTypeLocator, Vector eventIndexLocator, Vector numEventsPerObservationSet, - Vector targetEmbeddingsFromSpikes, Vector sourceEmbeddingsFromSpikes, - Vector targetEmbeddingsFromSamples, Vector sourceEmbeddingsFromSamples) + Vector targetEmbeddingsFromSpikes, Vector sourceEmbeddingsFromSpikes, + Vector targetEmbeddingsFromSamples, Vector sourceEmbeddingsFromSamples) throws Exception { // addObservationsAfterParamsDetermined(sourceSpikeTimes, destSpikeTimes); @@ -455,6 +478,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements makeEmbeddingsAtPoints(destSpikeTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSpikes, sourceEmbeddingsFromSpikes); makeEmbeddingsAtPoints(randomSampleTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSamples, sourceEmbeddingsFromSamples); + + // Scan to find the indices by which we have k and l spikes for dest and source // respectively diff --git a/tester.py b/tester.py index 2ce6d6c..6c9f084 100755 --- a/tester.py +++ b/tester.py @@ -58,8 +58,8 @@ teCalcClass = JPackage("infodynamics.measures.spiking.integration").TransferEntr teCalc = teCalcClass() teCalc.setProperty("NORMALISE", "true") # Normalise the individual variables teCalc.initialise(1) # Use history length 1 (Schreiber k=1) -teCalc.setProperty("k", "2") -teCalc.setProperty("l", "2") +teCalc.setProperty("k_HISTORY", "2") +teCalc.setProperty("l_HISTORY", "2") teCalc.setProperty("knns", "4") # Use Kraskov parameter K=4 for 4 nearest points # # Perform calculation with correlated source: teCalc.setObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray)) From bb51b090484158ee09852f7520fc845832a63176 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Fri, 23 Jul 2021 17:54:46 +1000 Subject: [PATCH 33/41] converting embedding vectors to arrays for the trees --- ...erEntropyCalculatorSpikingIntegration.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 54c008d..fbe2e63 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -76,7 +76,11 @@ public class TransferEntropyCalculatorSpikingIntegration implements Vector sourceEmbeddingsFromSpikes = null; Vector targetEmbeddingsFromSamples = null; Vector sourceEmbeddingsFromSamples = null; - + + protected KdTree kdTreeJointAtSpikes = null; + protected KdTree kdTreeJointAtSamples = null; + protected KdTree kdTreeConditioningAtSpikes = null; + protected KdTree kdTreeConditioningAtSamples = null; Vector destPastAndNextTimings = null; /** @@ -141,7 +145,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements /** * Whether to add an amount of random noise to the incoming data */ - protected boolean addNoise = true; + protected boolean addNoise = false; /** * Amount of random Gaussian noise to add to the incoming data */ @@ -317,8 +321,13 @@ public class TransferEntropyCalculatorSpikingIntegration implements targetEmbeddingsFromSamples, sourceEmbeddingsFromSamples); } + double[][] arrayedTargetEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k]; + for (int i = 0; i < targetEmbeddingsFromSpikes.size(); i++) { + arrayedTargetEmbeddingsFromSpikes[i] = targetEmbeddingsFromSpikes.elementAt(i); + } + for (int i = 0; i < 5; i++) { - System.out.println(Arrays.toString(targetEmbeddingsFromSpikes.elementAt(i))); + System.out.println(arrayedTargetEmbeddingsFromSpikes[i][0] + " " + arrayedTargetEmbeddingsFromSpikes[i][1]); } // Now we have collected all the events. @@ -385,8 +394,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements // Make sure that the first point at which an embedding is made has enough preceding spikes in both source and // target for embeddings to be made. - while (pointsAtWhichToMakeEmbeddings[embedding_point_index] < destSpikeTimes[most_recent_dest_index] | - pointsAtWhichToMakeEmbeddings[embedding_point_index] < sourceSpikeTimes[most_recent_source_index]) { + while (pointsAtWhichToMakeEmbeddings[embedding_point_index] <= destSpikeTimes[most_recent_dest_index] | + pointsAtWhichToMakeEmbeddings[embedding_point_index] <= sourceSpikeTimes[most_recent_source_index]) { embedding_point_index++; } From 4ece80b5efde9e9985bbd84d183c76db6f81685a Mon Sep 17 00:00:00 2001 From: David Shorten Date: Sat, 24 Jul 2021 23:32:57 +1000 Subject: [PATCH 34/41] appear to have 4kl estimator working --- ...erEntropyCalculatorSpikingIntegration.java | 105 ++++++++++++++---- tester.py | 8 +- 2 files changed, 88 insertions(+), 25 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index fbe2e63..5dbc9d9 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -73,9 +73,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements */ Vector targetEmbeddingsFromSpikes = null; - Vector sourceEmbeddingsFromSpikes = null; + Vector jointEmbeddingsFromSpikes = null; Vector targetEmbeddingsFromSamples = null; - Vector sourceEmbeddingsFromSamples = null; + Vector jointEmbeddingsFromSamples = null; protected KdTree kdTreeJointAtSpikes = null; protected KdTree kdTreeJointAtSamples = null; @@ -145,7 +145,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements /** * Whether to add an amount of random noise to the incoming data */ - protected boolean addNoise = false; + protected boolean addNoise = true; /** * Amount of random Gaussian noise to add to the incoming data */ @@ -303,9 +303,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements // New targetEmbeddingsFromSpikes = new Vector(); - sourceEmbeddingsFromSpikes = new Vector(); + jointEmbeddingsFromSpikes = new Vector(); targetEmbeddingsFromSamples = new Vector(); - sourceEmbeddingsFromSamples = new Vector(); + jointEmbeddingsFromSamples = new Vector(); // Send all of the observations through: Iterator sourceIterator = vectorOfSourceSpikeTimes.iterator(); @@ -317,18 +317,39 @@ public class TransferEntropyCalculatorSpikingIntegration implements processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, timeSeriesIndex, eventTimings, destPastAndNextTimings, eventTypeLocator, eventIndexLocator, numEventsPerObservationSet, - targetEmbeddingsFromSpikes, sourceEmbeddingsFromSpikes, - targetEmbeddingsFromSamples, sourceEmbeddingsFromSamples); + targetEmbeddingsFromSpikes, jointEmbeddingsFromSpikes, + targetEmbeddingsFromSamples, jointEmbeddingsFromSamples); } double[][] arrayedTargetEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k]; + double[][] arrayedJointEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k]; for (int i = 0; i < targetEmbeddingsFromSpikes.size(); i++) { arrayedTargetEmbeddingsFromSpikes[i] = targetEmbeddingsFromSpikes.elementAt(i); + arrayedJointEmbeddingsFromSpikes[i] = jointEmbeddingsFromSpikes.elementAt(i); + } + double[][] arrayedTargetEmbeddingsFromSamples = new double[targetEmbeddingsFromSamples.size()][k]; + double[][] arrayedJointEmbeddingsFromSamples = new double[targetEmbeddingsFromSamples.size()][k]; + for (int i = 0; i < targetEmbeddingsFromSamples.size(); i++) { + arrayedTargetEmbeddingsFromSamples[i] = targetEmbeddingsFromSamples.elementAt(i); + arrayedJointEmbeddingsFromSamples[i] = jointEmbeddingsFromSamples.elementAt(i); } for (int i = 0; i < 5; i++) { - System.out.println(arrayedTargetEmbeddingsFromSpikes[i][0] + " " + arrayedTargetEmbeddingsFromSpikes[i][1]); + System.out.println(arrayedTargetEmbeddingsFromSamples[i][0] + " " + arrayedTargetEmbeddingsFromSamples[i][1]); } + + kdTreeJointAtSpikes = new KdTree( + new int[] {k + l}, + new double[][][] {arrayedJointEmbeddingsFromSpikes}); + kdTreeJointAtSamples = new KdTree( + new int[] {k + l}, + new double[][][] {arrayedJointEmbeddingsFromSamples}); + kdTreeConditioningAtSpikes = new KdTree( + new int[] {k}, + new double[][][] {arrayedTargetEmbeddingsFromSpikes}); + kdTreeConditioningAtSamples = new KdTree( + new int[] {k}, + new double[][][] {arrayedTargetEmbeddingsFromSamples}); // Now we have collected all the events. // Load up the search structures: @@ -383,7 +404,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements } protected void makeEmbeddingsAtPoints(double[] pointsAtWhichToMakeEmbeddings, double[] sourceSpikeTimes, double[] destSpikeTimes, - Vector targetEmbeddings, Vector sourceEmbeddings) { + Vector targetEmbeddings, Vector jointEmbeddings) { //System.out.println("foo"); Random random = new Random(); @@ -425,36 +446,42 @@ public class TransferEntropyCalculatorSpikingIntegration implements //System.out.println(k + " " + l); double[] destPast = new double[k]; - double[] sourcePast = new double[l]; + double[] jointPast = new double[k + l]; destPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - destSpikeTimes[most_recent_dest_index]; - sourcePast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - + jointPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - + destSpikeTimes[most_recent_dest_index]; + jointPast[k] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - sourceSpikeTimes[most_recent_source_index]; if (addNoise) { destPast[0] += random.nextGaussian()*noiseLevel; - sourcePast[0] += random.nextGaussian()*noiseLevel; + jointPast[0] += random.nextGaussian()*noiseLevel; + jointPast[k] += random.nextGaussian()*noiseLevel; } for (int i = 1; i < k; i++) { destPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] - destSpikeTimes[most_recent_dest_index - i]; + jointPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] - + destSpikeTimes[most_recent_dest_index - i]; if (addNoise) { - destPast[i - 1] += random.nextGaussian()*noiseLevel; + destPast[i] += random.nextGaussian()*noiseLevel; + jointPast[i] += random.nextGaussian()*noiseLevel; } } for (int i = 1; i < l; i++) { - sourcePast[i] = sourceSpikeTimes[most_recent_source_index - i + 1] - + jointPast[k + i] = sourceSpikeTimes[most_recent_source_index - i + 1] - sourceSpikeTimes[most_recent_source_index - i]; if (addNoise) { - sourcePast[i - 1] += random.nextGaussian()*noiseLevel; + jointPast[k + i] += random.nextGaussian()*noiseLevel; } } //System.out.println(Arrays.toString(destPast)); - //System.out.println(Arrays.toString(sourcePast)); + //System.out.println(Arrays.toString(jointPast)); //System.out.println(); targetEmbeddings.add(destPast); - sourceEmbeddings.add(sourcePast); + jointEmbeddings.add(jointPast); } } @@ -462,8 +489,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements int timeSeriesIndex, Vector[] eventTimings, Vector destPastAndNextTimings, Vector eventTypeLocator, Vector eventIndexLocator, Vector numEventsPerObservationSet, - Vector targetEmbeddingsFromSpikes, Vector sourceEmbeddingsFromSpikes, - Vector targetEmbeddingsFromSamples, Vector sourceEmbeddingsFromSamples) + Vector targetEmbeddingsFromSpikes, Vector jointEmbeddingsFromSpikes, + Vector targetEmbeddingsFromSamples, Vector jointEmbeddingsFromSamples) throws Exception { // addObservationsAfterParamsDetermined(sourceSpikeTimes, destSpikeTimes); @@ -473,7 +500,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements // New - int NUM_SAMPLES = 1000; + int NUM_SAMPLES = sourceSpikeTimes.length; double sample_lower_bound = Arrays.stream(sourceSpikeTimes).min().getAsDouble(); double sample_upper_bound = Arrays.stream(sourceSpikeTimes).max().getAsDouble(); double[] randomSampleTimes = new double[NUM_SAMPLES]; @@ -485,8 +512,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements // End New - makeEmbeddingsAtPoints(destSpikeTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSpikes, sourceEmbeddingsFromSpikes); - makeEmbeddingsAtPoints(randomSampleTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSamples, sourceEmbeddingsFromSamples); + makeEmbeddingsAtPoints(destSpikeTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSpikes, jointEmbeddingsFromSpikes); + makeEmbeddingsAtPoints(randomSampleTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSamples, jointEmbeddingsFromSamples); @@ -786,11 +813,45 @@ public class TransferEntropyCalculatorSpikingIntegration implements (vectorOfDestinationSpikeTimes.size() > 1); } + private double max_neighbour_distance(PriorityQueue nnPQ) { + double max_val = -1e9; + while (nnPQ.peek() != null) { + NeighbourNodeData nnData = nnPQ.poll(); + if (nnData.norms[0] > max_val) { + max_val = nnData.norms[0]; + } + } + return max_val; + } + /* (non-Javadoc) * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeAverageLocalOfObservations() */ @Override public double computeAverageLocalOfObservations() throws Exception { + + double currentSum = 0; + for (int i = 0; i < targetEmbeddingsFromSpikes.size(); i++) { + + PriorityQueue nnPQJointSpikes = + kdTreeJointAtSpikes.findKNearestNeighbours(Knns + 1, new double[][] {jointEmbeddingsFromSpikes.elementAt(i)}); + PriorityQueue nnPQJointSamples = + kdTreeJointAtSamples.findKNearestNeighbours(Knns, new double[][] {jointEmbeddingsFromSpikes.elementAt(i)}); + PriorityQueue nnPQConditioningSpikes = + kdTreeConditioningAtSpikes.findKNearestNeighbours(Knns + 1, new double[][] {targetEmbeddingsFromSpikes.elementAt(i)}); + PriorityQueue nnPQConditioningSamples = + kdTreeConditioningAtSamples.findKNearestNeighbours(Knns, new double[][] {targetEmbeddingsFromSpikes.elementAt(i)}); + + double radiusJointSpikes = max_neighbour_distance(nnPQJointSpikes); + double radiusJointSamples = max_neighbour_distance(nnPQJointSamples); + double radiusConditioningSpikes = max_neighbour_distance(nnPQConditioningSpikes); + double radiusConditioningSamples = max_neighbour_distance(nnPQConditioningSamples); + + currentSum += (- Math.log(radiusJointSpikes) + Math.log(radiusJointSamples) + + Math.log(radiusConditioningSpikes) - Math.log(radiusConditioningSamples)); + } + currentSum /= targetEmbeddingsFromSpikes.size(); + System.out.println("New estimate " + currentSum); int numberOfEvents = eventTypeLocator.size(); diff --git a/tester.py b/tester.py index 6c9f084..ab1824b 100755 --- a/tester.py +++ b/tester.py @@ -42,10 +42,12 @@ sourceArray = [random.normalvariate(0,1) for r in range(numObservations)] destArray = [0] + [sum(pair) for pair in zip([covariance*y for y in sourceArray[0:numObservations-1]], \ [(1-covariance)*y for y in [random.normalvariate(0,1) for r in range(numObservations-1)]] ) ] -sourceArray = 1e3*np.random.random(int(1e3)) +sourceArray = 1e5*np.random.random(int(1e5)) sourceArray.sort() -destArray = 1e3*np.random.random(int(1e3)) -destArray.sort() +#destArray = 1e5*np.random.random(int(1e5)) +#destArray.sort() +destArray = sourceArray + 1 +destArray += np.random.normal(scale = 0.01, size = destArray.shape) # Uncorrelated source array: sourceArray2 = [random.normalvariate(0,1) for r in range(numObservations)] From cf5f8edf5e7636d14d8f0d4900691dc71cb2e3bf Mon Sep 17 00:00:00 2001 From: David Shorten Date: Sun, 25 Jul 2021 16:29:31 +1000 Subject: [PATCH 35/41] confirmed working on canonical ex --- ...erEntropyCalculatorSpikingIntegration.java | 7 ++-- tester.py | 41 ++++++++++++++++++- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 5dbc9d9..5b1c131 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -847,10 +847,11 @@ public class TransferEntropyCalculatorSpikingIntegration implements double radiusConditioningSpikes = max_neighbour_distance(nnPQConditioningSpikes); double radiusConditioningSamples = max_neighbour_distance(nnPQConditioningSamples); - currentSum += (- Math.log(radiusJointSpikes) + Math.log(radiusJointSamples) - + Math.log(radiusConditioningSpikes) - Math.log(radiusConditioningSamples)); + currentSum += ((k + l) * (- Math.log(radiusJointSpikes) + Math.log(radiusJointSamples)) + + k * (Math.log(radiusConditioningSpikes) - Math.log(radiusConditioningSamples))); } - currentSum /= targetEmbeddingsFromSpikes.size(); + currentSum /= (vectorOfDestinationSpikeTimes.elementAt(0)[vectorOfDestinationSpikeTimes.elementAt(0).length - 1] + - vectorOfDestinationSpikeTimes.elementAt(0)[0]); System.out.println("New estimate " + currentSum); int numberOfEvents = eventTypeLocator.size(); diff --git a/tester.py b/tester.py index ab1824b..99cf47d 100755 --- a/tester.py +++ b/tester.py @@ -49,6 +49,43 @@ sourceArray.sort() destArray = sourceArray + 1 destArray += np.random.normal(scale = 0.01, size = destArray.shape) + +RATE_Y = 1.0 +NUM_Y_eventS = 1e5 +RATE_X_MAX = 10 +event_train_y = [] +event_train_x = [] + +event_train_x.append(0) + +event_train_y = np.random.uniform(0, int(NUM_Y_eventS / RATE_Y), int(NUM_Y_eventS)) +event_train_y.sort() + +most_recent_y_index = 0 +previous_x_candidate = 0 +while most_recent_y_index < (len(event_train_y) - 1): + + this_x_candidate = previous_x_candidate + random.expovariate(RATE_X_MAX) + + while most_recent_y_index < (len(event_train_y) - 1) and this_x_candidate > event_train_y[most_recent_y_index + 1]: + most_recent_y_index += 1 + + delta_t = this_x_candidate - event_train_y[most_recent_y_index] + + rate = 0 + + if delta_t > 1: + rate = 0.5 + else: + rate = 0.5 + 5.0 * math.exp(-50 * (delta_t - 0.5)**2) - 5.0 * math.exp(-50 * (0.5)**2) + if random.random() < rate/float(RATE_X_MAX): + event_train_x.append(this_x_candidate) + previous_x_candidate = this_x_candidate + +event_train_x.sort() +sourceArray = event_train_y +destArray = event_train_x + # Uncorrelated source array: sourceArray2 = [random.normalvariate(0,1) for r in range(numObservations)] # Create a TE calculator and run it: @@ -60,8 +97,8 @@ teCalcClass = JPackage("infodynamics.measures.spiking.integration").TransferEntr teCalc = teCalcClass() teCalc.setProperty("NORMALISE", "true") # Normalise the individual variables teCalc.initialise(1) # Use history length 1 (Schreiber k=1) -teCalc.setProperty("k_HISTORY", "2") -teCalc.setProperty("l_HISTORY", "2") +teCalc.setProperty("k_HISTORY", "3") +teCalc.setProperty("l_HISTORY", "1") teCalc.setProperty("knns", "4") # Use Kraskov parameter K=4 for 4 nearest points # # Perform calculation with correlated source: teCalc.setObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray)) From 8d7c598022e1eb5718e8b758f012bcafbe8049b0 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Sun, 25 Jul 2021 17:30:30 +1000 Subject: [PATCH 36/41] better testing script and a touch of refactoring --- ...erEntropyCalculatorSpikingIntegration.java | 1200 +---------------- tester.py | 157 +-- 2 files changed, 82 insertions(+), 1275 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 5b1c131..bc3b681 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -286,22 +286,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements */ @Override public void finaliseAddObservations() throws Exception { - // TODO Auto embed if required - // preFinaliseAddObservations(); - // Run through each spiking time series set and pull out the observation - // tuples we'll store. - // Initialise our data stores: - eventTimings = new Vector[NEXT_POSSIBILITIES]; - for (int next = 0; next < NEXT_POSSIBILITIES; next++) { - eventTimings[next] = new Vector(); - } - destPastAndNextTimings = new Vector(); - eventTypeLocator = new Vector(); - eventIndexLocator = new Vector(); - numEventsPerObservationSet = new Vector(); - - // New targetEmbeddingsFromSpikes = new Vector(); jointEmbeddingsFromSpikes = new Vector(); targetEmbeddingsFromSamples = new Vector(); @@ -322,22 +307,18 @@ public class TransferEntropyCalculatorSpikingIntegration implements } double[][] arrayedTargetEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k]; - double[][] arrayedJointEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k]; + double[][] arrayedJointEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k + l]; for (int i = 0; i < targetEmbeddingsFromSpikes.size(); i++) { arrayedTargetEmbeddingsFromSpikes[i] = targetEmbeddingsFromSpikes.elementAt(i); arrayedJointEmbeddingsFromSpikes[i] = jointEmbeddingsFromSpikes.elementAt(i); } double[][] arrayedTargetEmbeddingsFromSamples = new double[targetEmbeddingsFromSamples.size()][k]; - double[][] arrayedJointEmbeddingsFromSamples = new double[targetEmbeddingsFromSamples.size()][k]; + double[][] arrayedJointEmbeddingsFromSamples = new double[targetEmbeddingsFromSamples.size()][k + l]; for (int i = 0; i < targetEmbeddingsFromSamples.size(); i++) { arrayedTargetEmbeddingsFromSamples[i] = targetEmbeddingsFromSamples.elementAt(i); arrayedJointEmbeddingsFromSamples[i] = jointEmbeddingsFromSamples.elementAt(i); } - for (int i = 0; i < 5; i++) { - System.out.println(arrayedTargetEmbeddingsFromSamples[i][0] + " " + arrayedTargetEmbeddingsFromSamples[i][1]); - } - kdTreeJointAtSpikes = new KdTree( new int[] {k + l}, new double[][][] {arrayedJointEmbeddingsFromSpikes}); @@ -350,57 +331,11 @@ public class TransferEntropyCalculatorSpikingIntegration implements kdTreeConditioningAtSamples = new KdTree( new int[] {k}, new double[][][] {arrayedTargetEmbeddingsFromSamples}); - - // Now we have collected all the events. - // Load up the search structures: - // 1. Full joint space: - // 2. Histories of source and dest only: - kdTreesJoint = new KdTree[NEXT_POSSIBILITIES]; - kdTreesSourceDestHistories = new KdTree[NEXT_POSSIBILITIES]; - for (int next = 0; next < NEXT_POSSIBILITIES; next++) { - // This line does not work: - // double[][][] jointEventTimings = (double[][][]) eventTimings[prev][next].toArray(); - // So we'll do it manually: - double[][] sourcePastTimings = new double[eventTimings[next].size()][]; - double[][] destPastTimings = new double[eventTimings[next].size()][]; - double[][] nextTimings = new double[eventTimings[next].size()][]; - int i = 0; - for (double[][] timing : eventTimings[next]) { - sourcePastTimings[i] = timing[0]; - destPastTimings[i] = timing[1]; - nextTimings[i] = timing[2]; - i++; - } - // TODO Should we normalise before we supply to the KdTree? - // Think about this later. I'm not convinced it's the best - // approach in this particular case. - kdTreesJoint[next] = new KdTree( - new int[] {l, k - 1, 1}, - new double[][][] {sourcePastTimings, destPastTimings, nextTimings}); - kdTreesSourceDestHistories[next] = new KdTree( - new int[] {l, k - 1}, - new double[][][] {sourcePastTimings, destPastTimings}); - } - // 3. For the dest past and time to next spike - // 4. For the dest past only - double[][] destPastOnlyTimings = new double[destPastAndNextTimings.size()][]; - double[][] nextTimingsForDestPastOnly = new double[destPastAndNextTimings.size()][]; - int i = 0; - for (double[][] timing : destPastAndNextTimings) { - destPastOnlyTimings[i] = timing[0]; - nextTimingsForDestPastOnly[i] = timing[1]; - i++; - } - kdTreeDestNext = new KdTree( - new int[] {k - 1, 1}, - new double[][][] {destPastOnlyTimings, nextTimingsForDestPastOnly}); - - if (k == 1) { - // We need an NN searcher for the time to next spike (dest only) - nnSearcherDestTimeToNextSpike = new UnivariateNearestNeighbourSearcher(nextTimingsForDestPastOnly); - } else { - kdTreeDestHistory = new KdTree(destPastOnlyTimings); - } + + /*kdTreeJointAtSpikes.setNormType("EUCLIDEAN"); + kdTreeJointAtSamples.setNormType("EUCLIDEAN"); + kdTreeConditioningAtSpikes.setNormType("EUCLIDEAN"); + kdTreeConditioningAtSamples.setNormType("EUCLIDEAN");*/ } protected void makeEmbeddingsAtPoints(double[] pointsAtWhichToMakeEmbeddings, double[] sourceSpikeTimes, double[] destSpikeTimes, @@ -440,11 +375,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements } } - //System.out.println(most_recent_dest_index + " " + most_recent_source_index + " " + embedding_point_index); - //System.out.println(destSpikeTimes[most_recent_dest_index] + " " + sourceSpikeTimes[most_recent_source_index] + " " + - // pointsAtWhichToMakeEmbeddings[embedding_point_index]); - //System.out.println(k + " " + l); - double[] destPast = new double[k]; double[] jointPast = new double[k + l]; destPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - @@ -476,10 +406,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements } } - //System.out.println(Arrays.toString(destPast)); - //System.out.println(Arrays.toString(jointPast)); - //System.out.println(); - targetEmbeddings.add(destPast); jointEmbeddings.add(jointPast); } @@ -511,297 +437,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements Arrays.sort(randomSampleTimes); // End New - makeEmbeddingsAtPoints(destSpikeTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSpikes, jointEmbeddingsFromSpikes); makeEmbeddingsAtPoints(randomSampleTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSamples, jointEmbeddingsFromSamples); - - - - // Scan to find the indices by which we have k and l spikes for dest and source - // respectively - int dest_index = k - 1; - int source_index = l - 1; - if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { - // Minimum required Source spikes are later than the dest. - // Need to advance dest_index until it's the most recent before source_index - for(;dest_index < destSpikeTimes.length; dest_index++) { - if (destSpikeTimes[dest_index] > sourceSpikeTimes[source_index]) { - // We've gone past the set of source spikes we have, we - // can move back one in the dest series - dest_index--; - break; - } - } - if (dest_index == destSpikeTimes.length) { - // We didn't have enough spikes in this series to generate any observations - // TODO work out how to handle this later -- I think this is ok - numEventsPerObservationSet.add(0); - return; - // throw new Exception("Dest spikes stop before enough source spikes in time-series " + timeSeriesIndex); - } - } else { - // Minimum required Dest spikes are later than the source. - // Need to advance source_index until it's the most recent before dest_index - for(;source_index < sourceSpikeTimes.length; source_index++) { - if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { - // We've gone past the set of dest spikes we have, we - // can move back one in the source series - source_index--; - break; - } - } - if (source_index == sourceSpikeTimes.length) { - // We didn't have enough spikes in this series to generate any observations - // TODO work out how to handle this later -- I think this is ok - numEventsPerObservationSet.add(0); - return; - // throw new Exception("Source spikes stop before enough dest spikes in time-series " + timeSeriesIndex); - } - } - // Post-condition: dest_index and source_index are set correctly for the first set of pasts - - double timeToNextSpike; - boolean nextIsDest = false; - double[] spikeTimesForNextSpiker; - double timeOfPrevDestSpike = destSpikeTimes[dest_index]; - int numEvents = 0; - Random random = null; - if (addNoise) { - random = new Random(); - } - while(true) { - // 0. Check whether we're finished - if ((source_index == sourceSpikeTimes.length - 1) && - (dest_index == destSpikeTimes.length - 1)) { - // We have no next spike so we can't take an observation here - // and we're done - break; - } - // Otherwise: - // 1. Determine which of source / dest fires next - if (source_index == sourceSpikeTimes.length - 1) { - nextIsDest = true; - } else if (dest_index == destSpikeTimes.length - 1) { - nextIsDest = false; - } else if (sourceSpikeTimes[source_index+1] < destSpikeTimes[dest_index+1]) { - nextIsDest = false; - } else { - nextIsDest = true; - } - spikeTimesForNextSpiker = nextIsDest ? destSpikeTimes : sourceSpikeTimes; - int indexForNextSpiker = nextIsDest ? dest_index : source_index; - timeToNextSpike = spikeTimesForNextSpiker[indexForNextSpiker+1] - timeOfPrevDestSpike; - if (addNoise) { - timeToNextSpike += random.nextGaussian()*noiseLevel; - } - // 2. Embed the past spikes - double[] sourcePast = new double[l]; - double[] destPast = new double[k - 1]; - /* if (debug) { - System.out.println("previousIsDest = " + previousIsDest + " and nextIsDest = " + nextIsDest); - }*/ - sourcePast[0] = timeOfPrevDestSpike - - sourceSpikeTimes[source_index]; - if (addNoise) { - sourcePast[0] += random.nextGaussian()*noiseLevel; - } - for (int i = 1; i < k; i++) { - destPast[i - 1] = destSpikeTimes[dest_index - i + 1] - - destSpikeTimes[dest_index - i]; - if (addNoise) { - destPast[i - 1] += random.nextGaussian()*noiseLevel; - } - } - for (int i = 1; i < l; i++) { - sourcePast[i] = sourceSpikeTimes[source_index - i + 1] - - sourceSpikeTimes[source_index - i]; - if (addNoise) { - sourcePast[i] += random.nextGaussian()*noiseLevel; - } - } - // 3. Store these embedded observations - double[][] observations = new double[][]{sourcePast, destPast, - new double[] {timeToNextSpike}}; - if (debug) { - System.out.printf("Adding event %d with: timeToNextSpike=%.4f, sourceSpikeTimes=", numEvents, timeToNextSpike); - MatrixUtils.printArray(System.out, sourcePast, 3); - System.out.printf(", destSpikeTimes="); - MatrixUtils.printArray(System.out, destPast, 3); - System.out.println(); - } - // Add the index locator first so it gets the index correct before - // we add the new event in: - eventIndexLocator.add(eventTimings[nextIsDest ? NEXT_DEST : NEXT_SOURCE].size()); - eventTimings[nextIsDest ? NEXT_DEST : NEXT_SOURCE].add(observations); - // TODO Switch eventTypeLocation to be of type Integer rather than int[] - eventTypeLocator.add(nextIsDest ? NEXT_DEST : NEXT_SOURCE); - // And finally store the observations for the dest only - // search structure if required: - if (nextIsDest) { - double[][] destOnlyObservations; - destOnlyObservations = new double[][] { - destPast, - new double[] {timeToNextSpike} - }; - destPastAndNextTimings.add(destOnlyObservations); - } - // 4. Reset variables - if (nextIsDest) { - dest_index++; - } else { - source_index++; - } - timeOfPrevDestSpike = destSpikeTimes[dest_index]; - numEvents++; - } - numEventsPerObservationSet.add(numEvents); - if (debug) { - System.out.printf("Finished processing %d source-target events for observation set %d\n", numEvents, timeSeriesIndex); - } - - - - // // Scan to find the indices by which we have k and l spikes for dest and source - // // respectively - // int dest_index = k - 1; - // int source_index = l - 1; - // if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { - // // Minimum required Source spikes are later than the dest. - // // Need to advance dest_index until it's the most recent before source_index - // for(;dest_index < destSpikeTimes.length; dest_index++) { - // if (destSpikeTimes[dest_index] > sourceSpikeTimes[source_index]) { - // // We've gone past the set of source spikes we have, we - // // can move back one in the dest series - // dest_index--; - // break; - // } - // } - // if (dest_index == destSpikeTimes.length) { - // // We didn't have enough spikes in this series to generate any observations - // // TODO work out how to handle this later -- I think this is ok - // numEventsPerObservationSet.add(0); - // return; - // // throw new Exception("Dest spikes stop before enough source spikes in time-series " + timeSeriesIndex); - // } - // } else { - // // Minimum required Dest spikes are later than the source. - // // Need to advance source_index until it's the most recent before dest_index - // for(;source_index < sourceSpikeTimes.length; source_index++) { - // if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { - // // We've gone past the set of dest spikes we have, we - // // can move back one in the source series - // source_index--; - // break; - // } - // } - // if (source_index == sourceSpikeTimes.length) { - // // We didn't have enough spikes in this series to generate any observations - // // TODO work out how to handle this later -- I think this is ok - // numEventsPerObservationSet.add(0); - // return; - // // throw new Exception("Source spikes stop before enough dest spikes in time-series " + timeSeriesIndex); - // } - // } - // // Post-condition: dest_index and source_index are set correctly for the first set of pasts - - // double timeToNextSpike; - // boolean nextIsDest = false; - // double[] spikeTimesForNextSpiker; - // double timeOfPrevDestSpike = destSpikeTimes[dest_index]; - // int numEvents = 0; - // Random random = null; - // if (addNoise) { - // random = new Random(); - // } - // while(true) { - // // 0. Check whether we're finished - // if ((source_index == sourceSpikeTimes.length - 1) && - // (dest_index == destSpikeTimes.length - 1)) { - // // We have no next spike so we can't take an observation here - // // and we're done - // break; - // } - // // Otherwise: - // // 1. Determine which of source / dest fires next - // if (source_index == sourceSpikeTimes.length - 1) { - // nextIsDest = true; - // } else if (dest_index == destSpikeTimes.length - 1) { - // nextIsDest = false; - // } else if (sourceSpikeTimes[source_index+1] < destSpikeTimes[dest_index+1]) { - // nextIsDest = false; - // } else { - // nextIsDest = true; - // } - // spikeTimesForNextSpiker = nextIsDest ? destSpikeTimes : sourceSpikeTimes; - // int indexForNextSpiker = nextIsDest ? dest_index : source_index; - // timeToNextSpike = spikeTimesForNextSpiker[indexForNextSpiker+1] - timeOfPrevDestSpike; - // if (addNoise) { - // timeToNextSpike += random.nextGaussian()*noiseLevel; - // } - // // 2. Embed the past spikes - // double[] sourcePast = new double[l]; - // double[] destPast = new double[k - 1]; - // /* if (debug) { - // System.out.println("previousIsDest = " + previousIsDest + " and nextIsDest = " + nextIsDest); - // }*/ - // sourcePast[0] = timeOfPrevDestSpike - - // sourceSpikeTimes[source_index]; - // if (addNoise) { - // sourcePast[0] += random.nextGaussian()*noiseLevel; - // } - // for (int i = 1; i < k; i++) { - // destPast[i - 1] = destSpikeTimes[dest_index - i + 1] - - // destSpikeTimes[dest_index - i]; - // if (addNoise) { - // destPast[i - 1] += random.nextGaussian()*noiseLevel; - // } - // } - // for (int i = 1; i < l; i++) { - // sourcePast[i] = sourceSpikeTimes[source_index - i + 1] - - // sourceSpikeTimes[source_index - i]; - // if (addNoise) { - // sourcePast[i] += random.nextGaussian()*noiseLevel; - // } - // } - // // 3. Store these embedded observations - // double[][] observations = new double[][]{sourcePast, destPast, - // new double[] {timeToNextSpike}}; - // if (debug) { - // System.out.printf("Adding event %d with: timeToNextSpike=%.4f, sourceSpikeTimes=", numEvents, timeToNextSpike); - // MatrixUtils.printArray(System.out, sourcePast, 3); - // System.out.printf(", destSpikeTimes="); - // MatrixUtils.printArray(System.out, destPast, 3); - // System.out.println(); - // } - // // Add the index locator first so it gets the index correct before - // // we add the new event in: - // eventIndexLocator.add(eventTimings[nextIsDest ? NEXT_DEST : NEXT_SOURCE].size()); - // eventTimings[nextIsDest ? NEXT_DEST : NEXT_SOURCE].add(observations); - // // TODO Switch eventTypeLocation to be of type Integer rather than int[] - // eventTypeLocator.add(nextIsDest ? NEXT_DEST : NEXT_SOURCE); - // // And finally store the observations for the dest only - // // search structure if required: - // if (nextIsDest) { - // double[][] destOnlyObservations; - // destOnlyObservations = new double[][] { - // destPast, - // new double[] {timeToNextSpike} - // }; - // destPastAndNextTimings.add(destOnlyObservations); - // } - // // 4. Reset variables - // if (nextIsDest) { - // dest_index++; - // } else { - // source_index++; - // } - // timeOfPrevDestSpike = destSpikeTimes[dest_index]; - // numEvents++; - // } - // numEventsPerObservationSet.add(numEvents); - // if (debug) { - // System.out.printf("Finished processing %d source-target events for observation set %d\n", numEvents, timeSeriesIndex); - // } } /* (non-Javadoc) @@ -852,831 +489,10 @@ public class TransferEntropyCalculatorSpikingIntegration implements } currentSum /= (vectorOfDestinationSpikeTimes.elementAt(0)[vectorOfDestinationSpikeTimes.elementAt(0).length - 1] - vectorOfDestinationSpikeTimes.elementAt(0)[0]); - System.out.println("New estimate " + currentSum); - int numberOfEvents = eventTypeLocator.size(); - - double contributionFromSpikes = 0; - double contributionRate_X = 0; - double contributionRate_XY = 0; - int numContributions = 0; - double totalTimeLength = 0; - - // Create temporary storage for arrays used in the neighbour counting: - boolean[] isWithinR = new boolean[numberOfEvents]; // dummy, we don't really use this - int[] indicesWithinR = new int[numberOfEvents]; - - // Iterate over all the spiking events: - Iterator eventIndexIterator = eventIndexLocator.iterator(); - int eventIndex = -1; - int indexForNextIsDest = -1; - for (Integer eventType : eventTypeLocator) { - eventIndex++; - int eventIndexWithinType = eventIndexIterator.next().intValue(); - double[][] thisEventTimings = eventTimings[eventType].elementAt(eventIndexWithinType); - double timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; - double timePreviousSourceSpikeBeforePreviousDestSpike = thisEventTimings[0][0]; - totalTimeLength += (timePreviousSourceSpikeBeforePreviousDestSpike < 0) ? - // Source spike is after previous dest spike - timeToNextSpikeSincePreviousDestSpike + timePreviousSourceSpikeBeforePreviousDestSpike : - // Source spike is before previous dest spike - timeToNextSpikeSincePreviousDestSpike; - // Pull out the data for this observation: - if (debug && (eventIndex < 10000)) { - System.out.print("index = " + eventIndex + ", " + - eventIndexWithinType + " for ->" + - (eventType == NEXT_DEST ? "dst" : "src")); - } - - // Select only events where the destination spiked next: - if (eventType != NEXT_DEST) { - // Pre-condition: next event is a source spike so we'll continue to check next event - if (debug && (eventIndex < 10000)) { - System.out.println(); - } - continue; - } - // Post-condition: the next event is a destination spike: - - // Find the Knns nearest neighbour matches to this event, - // with the same previous spiker and the next. - // TODO Add dynamic exclusion time later - /*int num_after_event = 0; - int extra_to_search = -1; - boolean leave_out = false; - if(timeToNextSpikeSincePreviousDestSpike < 0.01 || timeToNextSpikeSincePreviousDestSpike > 0.5) { - continue; - } - while(num_after_event < Knns) { - extra_to_search++; - num_after_event = 0; - PriorityQueue nnPQ = - kdTreesJoint[NEXT_DEST].findKNearestNeighbours(Knns + extra_to_search, - eventIndexWithinType); - - for (int j = 0; j < Knns + extra_to_search; j++) { - NeighbourNodeData nnData = nnPQ.poll(); - if(eventTimings[NEXT_DEST].elementAt(nnData.sampleIndex)[2][0] > - timeToNextSpikeSincePreviousDestSpike) { - num_after_event++; - } - } - if(extra_to_search > 500) { - System.out.println("on edge"); - leave_out = true; - break; - } - //System.out.println("Num " + eventIndexWithinType + " " + num_after_event); - } - if(leave_out) { - continue; - }*/ - - PriorityQueue nnPQ = - kdTreesJoint[NEXT_DEST].findKNearestNeighbours(Knns, - eventIndexWithinType); - - // Find eps_{x,y,z} as the maximum x, y and z norms amongst this set: - double radius_sourcePast = 0.0; - double radius_destPast = 0.0; - double radius_destNext = 0.0; - int radius_destNext_sampleIndex = -1; - for (int j = 0; j < Knns; j++) { - // Take the furthest remaining of the nearest neighbours from the PQ: - NeighbourNodeData nnData = nnPQ.poll(); - //if(eventTimings[NEXT_DEST].elementAt(nnData.sampleIndex)[2][0] > - // timeToNextSpikeSincePreviousDestSpike) { - if (nnData.norms[0] > radius_sourcePast) { - radius_sourcePast = nnData.norms[0]; - } - if (nnData.norms[1] > radius_destPast) { - radius_destPast = nnData.norms[1]; - } - if (nnData.norms[2] > radius_destNext) { - radius_destNext = nnData.norms[2]; - radius_destNext_sampleIndex = nnData.sampleIndex; - } - //} - } - if (!TRIM_RADII) { - double radius_max = Math.max(Math.max(radius_sourcePast, radius_destPast), radius_destNext); - radius_sourcePast = radius_max; - radius_destPast = radius_max; - radius_destNext = radius_max; - } - // Postcondition: radius_* variables hold the search radius for each sourcePast, destPast and destNext matches. - - if (debug && (eventIndex < 10000)) { - System.out.print(", timings: src: "); - MatrixUtils.printArray(System.out, thisEventTimings[0], 5); - System.out.print(", dest: "); - MatrixUtils.printArray(System.out, thisEventTimings[1], 5); - System.out.print(", time to next: "); - MatrixUtils.printArray(System.out, thisEventTimings[2], 5); - System.out.printf("index=%d: K=%d NNs at next_range %.5f (point %d)", eventIndexWithinType, Knns, radius_destNext, radius_destNext_sampleIndex); - } - - indexForNextIsDest++; - - // Now find the matching samples in each sub-space; - // first match dest history and source history, with a next spike in dest: - int numMatches = kdTreesSourceDestHistories[NEXT_DEST]. - findPointsWithinRs(eventIndexWithinType, - new double[] {radius_sourcePast, radius_destPast}, 0, - true, isWithinR, indicesWithinR); - // Set the search point itself to be a neighbour - this is necessary to include the waiting time - // for it in our count:: - if(USE_POINT_ITSELF) { - indicesWithinR[numMatches] = eventIndexWithinType; - indicesWithinR[numMatches+1] = -1; - isWithinR[eventIndexWithinType] = true; - } - // And check which of these samples had spike time in dest in the window or after ours: - int countOfDestNextAndGreater = 0; - int countOfDestNextInWindow = 0; // Would be Knns except for one on the lower boundary (if there is one) - double timeInWindowWithMatchingJointHistories = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[NEXT_DEST].elementAt(indicesWithinR[nIndex]); - // Use simple labels for relative times from the previous target spike - double matchingHistoryTimeToNextSpike = matchedHistoryEventTimings[2][0]; - // (time to previous source spike from the previous target spike can be negative or positive. - // matchedHistoryEventTimings[0][0] < 0 implies previous source spike occuring later - // than previous target spike; we want opposite sign here). - double matchingHistoryTimeToPrevSourceSpike = -matchedHistoryEventTimings[0][0]; - - // We need to check how long we spent in the window matching the next spike - // with a matching history. - // First, we make sure that the next (target) spike was in the window or after it, - // and that the previous source spike did not occur after the window - // (this is possible since our neighbour match hasn't checked for the next spike time) - if ((matchingHistoryTimeToNextSpike >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) && - (matchingHistoryTimeToPrevSourceSpike <= timeToNextSpikeSincePreviousDestSpike + radius_destNext)) { - - /*// Real start of window cannot be before previous destination spike: - double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike, 0); - // Also, real start cannot be before previous source spike: - // (previous source spike occurs at -matchedHistoryEventTimings[0][0] relative - // to previous destination spike) - //realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); - - // Real end of window happened either when the spike occurred (which changes the history) or at - // the end of the window: - double realEndOfWindow = Math.min(matchingHistoryTimeToNextSpike, - timeToNextSpikeSincePreviousDestSpike + radius_destNext);*/ - - // Real start of window cannot be before previous destination spike: - double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); - // Also, real start cannot be before previous source spike: - // (previous source spike occurs at -matchedHistoryEventTimings[0][0] relative - // to previous destination spike) - realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); - - // Real end of window happened either when the spike occurred (which changes the history) or at - // the end of the window: - double realEndOfWindow = Math.min(matchingHistoryTimeToNextSpike, - timeToNextSpikeSincePreviousDestSpike + radius_destNext); - - // Add in how much time with a matching history we spent in this window: - if(realEndOfWindow - realStartOfWindow > 0) { - timeInWindowWithMatchingJointHistories += realEndOfWindow - realStartOfWindow; - } - - countOfDestNextAndGreater++; - - // Count spikes occurring here in the window (and check below) - if ((matchingHistoryTimeToNextSpike >= realStartOfWindow) && - (matchingHistoryTimeToNextSpike <= realEndOfWindow)){ - countOfDestNextInWindow++; - } - - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - // TODO Debug check: - // if (countOfDestNextInWindow != Knns + 1) { - // throw new Exception("Unexpected value for countOfDestNextInWindow: " + countOfDestNextInWindow); - //} - - // And count how many samples with the matching history actually had a - // *source* spike next, during or after our window. - // Note that we now must go to the other kdTree for next source spike - kdTreesSourceDestHistories[NEXT_SOURCE]. - findPointsWithinRs( - new double[] {radius_sourcePast, radius_destPast}, thisEventTimings, - true, isWithinR, indicesWithinR); - // And check which of these samples had spike time in source at or after ours: - int countOfSourceNextAndGreater = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); - // Use simple labels for relative times from the previous target spike - double matchingHistoryTimeToNextSpike = matchedHistoryEventTimings[2][0]; - // (time to previous source spike from the previous target spike can be negative or positive. - // matchedHistoryEventTimings[0][0] < 0 implies previous source spike occuring later - // than previous target spike; we want opposite sign here). - double matchingHistoryTimeToPrevSourceSpike = -matchedHistoryEventTimings[0][0]; - - // We need to check how long we spent in the window matching the next spike - // with a matching history. - // First, we make sure that the next (source) spike was in the window or after it, - // and that the previous source spike did not occur after the window - // (this is possible since our neighbour match hasn't checked for the next spike time) - if ((matchingHistoryTimeToNextSpike >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) && - (matchingHistoryTimeToPrevSourceSpike <= timeToNextSpikeSincePreviousDestSpike + radius_destNext)) { - - /*// Real start of window cannot be before previous destination spike: - double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike, 0); - // Also, real start cannot be before previous source spike: - // (previous source spike occurs at matchingHistoryTimeToPrevSourceSpike relative - // to previous destination spike) - //realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); - - // Real end of window happened either when the spike occurred or at - // the end of the window: - double realEndOfWindow = Math.min(matchingHistoryTimeToNextSpike, - timeToNextSpikeSincePreviousDestSpike + radius_destNext);*/ - - // Real start of window cannot be before previous destination spike: - double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); - // Also, real start cannot be before previous source spike: - // (previous source spike occurs at -matchedHistoryEventTimings[0][0] relative - // to previous destination spike) - realStartOfWindow = Math.max(realStartOfWindow, matchingHistoryTimeToPrevSourceSpike); - - // Real end of window happened either when the spike occurred (which changes the history) or at - // the end of the window: - double realEndOfWindow = Math.min(matchingHistoryTimeToNextSpike, - timeToNextSpikeSincePreviousDestSpike + radius_destNext); - - // Add in how much time with a matching history we spent in this window: - if(realEndOfWindow - realStartOfWindow > 0) { - timeInWindowWithMatchingJointHistories += realEndOfWindow - realStartOfWindow; - } - - if(timeInWindowWithMatchingJointHistories < 0) { - timeInWindowWithMatchingJointHistories = 0; - } - - countOfSourceNextAndGreater++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - - // We need to count spike rate for all the times we're actually within the matching window for the next spike - // This is kind of inspired by the Greg Ver Steeg et al. approach in - // http://www.jmlr.org/proceedings/papers/v38/gao15.pdf - // which is thinking about where the space is actually being explored. - // This is where the window correction code was placed, which we're now replacing - // with computing the length of actual time we spend in the next window. - - - if (debug && (eventIndex < 10000)) { - System.out.printf(" of %d + %d + %d points with matching S-D history", - Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); - } - - // Now find the matching samples in the dest history and - // with a next spike timing. - int countOfDestNextAndGreaterMatchedDest = 0; - int countOfDestNextMatched = 0; - double timeInWindowWithMatchingDestHistory = 0; - // Real start of window cannot be before previous destination spike: - if (k > 1) { - - if(!USE_SAME_RADII) { - nnPQ = kdTreeDestNext.findKNearestNeighbours(Knns, eventIndexWithinType); - - radius_destPast = 0.0; - radius_destNext = 0.0; - radius_destNext_sampleIndex = -1; - for (int j = 0; j < Knns; j++) { - // Take the furthest remaining of the nearest neighbours from the PQ: - NeighbourNodeData nnData = nnPQ.poll(); - if (nnData.norms[0] > radius_destPast) { - radius_destPast = nnData.norms[0]; - } - if (nnData.norms[1] > radius_destNext) { - radius_destNext = nnData.norms[1]; - } - } - if (!TRIM_RADII) { - double radius_max = Math.max(radius_destPast, radius_destNext); - radius_destPast = radius_max; - radius_destNext = radius_max; - } - - } - - - // Search only the space of dest past -- no point - // searching dest past and next, since we need to run through - // all matches of dest past to count those with greater next spike - // times we might as well count those with matching spike times - // while we're at it. - numMatches = kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radius_destPast, - true, isWithinR, indicesWithinR); - // Set the search point itself to be a neighbour - this is necessary to include the waiting time - // for it in our count: - if(USE_POINT_ITSELF) { - indicesWithinR[numMatches] = indexForNextIsDest; - indicesWithinR[numMatches+1] = -1; - isWithinR[indexForNextIsDest] = true; - } - double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); - // And check which of these samples had next spike time after our window starts: - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the dest history space - double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[1][0] >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) { - // This sample had a matched history and next spike was a - // spike with an interval longer than or considered equal to the current sample. - // (The "equal to" is why we look for matches within kthNnData.distance here as well.) - - - // Real end of window happened either when the spike occurred or at - // the end of the window: - double realEndOfWindow = Math.min(matchedHistoryEventTimings[1][0], - timeToNextSpikeSincePreviousDestSpike + radius_destNext); - - // Add in how much time with a matching history we spent in this window: - timeInWindowWithMatchingDestHistory += - realEndOfWindow - realStartOfWindow; - - countOfDestNextAndGreaterMatchedDest++; - if (matchedHistoryEventTimings[1][0] <= timeToNextSpikeSincePreviousDestSpike + radius_destNext) { - // Then we also have a match on the next spike itself - countOfDestNextMatched++; - } - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - //System.out.println(countOfDestNextMatched); - } else { - double realStartOfWindow = Math.max(timeToNextSpikeSincePreviousDestSpike - radius_destNext, 0); - // For k = 1, we only care about time since last spike. - // So count how many of the next spikes were within the window first: - // -- we don't take any past dest spike ISIs into account, so we just need to look at the proportion of next - // spike times that match. - countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsWithinRs(indexForNextIsDest, - radius_destNext, Math.min(radius_destNext, timeToNextSpikeSincePreviousDestSpike), true); - // And also check how long each of these spent in the window: - timeInWindowWithMatchingDestHistory = - nnSearcherDestTimeToNextSpike.sumDistanceAboveThresholdForPointsWithinRs(indexForNextIsDest, - radius_destNext, Math.min(radius_destNext, timeToNextSpikeSincePreviousDestSpike), true); - // Now check for points matching or larger, we just need to make this call with the - // revised lower radius, because we don't check the upper one. - countOfDestNextAndGreaterMatchedDest = - nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, - Math.min(radius_destNext, timeToNextSpikeSincePreviousDestSpike), true); - // And we need to add time in for all of the (countOfDestNextAndGreaterMatchedDest - countOfDestNextMatched) - // points which didn't spike in the window - // TODO - check whether this is really doing what it intends to? - timeInWindowWithMatchingDestHistory += (double) (countOfDestNextAndGreaterMatchedDest - countOfDestNextMatched) * - (timeToNextSpikeSincePreviousDestSpike + radius_destNext - realStartOfWindow); - - // Add in the wait time contribution for the search point itself (and need to include it in counts): - timeInWindowWithMatchingDestHistory += timeToNextSpikeSincePreviousDestSpike - realStartOfWindow; - countOfDestNextMatched++; - countOfDestNextAndGreaterMatchedDest++; - - if (timeInWindowWithMatchingDestHistory <= 0) { - // David thought he saw this occur, adding debug exception so we can catch it if so" - throw new Exception("timeInWindowWithMatchingDestHistory is not > 0"); - } - } - - if (debug && (eventIndex < 10000)) { - System.out.printf(", and %d of %d points for D history only; ", - countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); - } - - //============================ - // This code section takes the counts of spikes and total intervals, and - // estimates the log rates. - // Inferred rates raw: - double rawRateGivenSourceAndDest = ((double) (Knns)) / timeInWindowWithMatchingJointHistories; - /*if(rawRateGivenSourceAndDest > 50) { - System.out.println("SUPER HIGGHHG"); - }*/ - double rawRateGivenDest = ((double) (countOfDestNextMatched)) / timeInWindowWithMatchingDestHistory; - // Attempt at bias correction: - // Using digamma of neighbour_count - 1, since the neighbour count now includes our search point and it's really k waiting times - double logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) //`- (1.0 / (double) Knns) // I don't think this correction is required - - Math.log(timeInWindowWithMatchingJointHistories); - double logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched) // - (1.0 / (double) countOfDestNextMatched) // I don't think this correction is required - - Math.log(timeInWindowWithMatchingDestHistory); - if(USE_POINT_ITSELF) { - logRateGivenSourceAndDestCorrected = MathsUtils.digamma(Knns) - Math.log(timeInWindowWithMatchingJointHistories); - logRateGivenDestCorrected = MathsUtils.digamma(countOfDestNextMatched - 1) - Math.log(timeInWindowWithMatchingDestHistory); - rawRateGivenSourceAndDest = ((double) (Knns)) / timeInWindowWithMatchingJointHistories; - rawRateGivenDest = ((double) (countOfDestNextMatched - 1)) / timeInWindowWithMatchingDestHistory; - } - //============================ - - if (debug && (eventIndex < 10000)) { - System.out.printf(" te ~~ %.4f - %.4f = %.4f, log (%.4f)/(%.4f) = %.4f (counts %d/%d = %.4f, %d/%d = %.4f -> te %.4f)\n", - logRateGivenSourceAndDestCorrected, - logRateGivenDestCorrected, - logRateGivenSourceAndDestCorrected - logRateGivenDestCorrected, - rawRateGivenSourceAndDest, - rawRateGivenDest, - Math.log(rawRateGivenSourceAndDest / rawRateGivenDest), - Knns, - Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater, - (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater), - countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest, - (double) countOfDestNextMatched / (double) countOfDestNextAndGreaterMatchedDest, - Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / - ((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)))); - } - - //====================== - // Add the contribution in: - // a.If we were using digamma logs: - contributionFromSpikes += logRateGivenSourceAndDestCorrected - logRateGivenDestCorrected; - contributionRate_X += 1/rawRateGivenDest; - if(rawRateGivenSourceAndDest < 100) { - contributionRate_XY += 1/rawRateGivenSourceAndDest; - numContributions++; - } - // contributionFromSpikes += Math.log(rawRateGivenSourceAndDest / rawRateGivenDest); - - - // b. If we are only using window corrections but actual ratios: - //contributionFromSpikes += - // Math.log((((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / - // ((destNext_timing_upper - destNext_timing_lower_original)*searchAreaRatio)) / - // (((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest)) / - // totalSearchTimeWindowCondDestPast)); - } - System.out.println("All done!"); - System.out.println("Rate X " + numContributions/contributionRate_X); - System.out.println("Rate XY " + numContributions/contributionRate_XY); - contributionFromSpikes /= totalTimeLength; - return numContributions/contributionRate_XY; + return currentSum; } - /* - * This old method is not adjusted for the newer representation yet - * - public double computeAverageLocalOfObservationsAlg1() throws Exception { - - int numberOfEvents = eventTypeLocator.size(); - - double te = 0; - double contributionFromSpikes = 0; - double contributionFromNonSpikes = 0; - double contributionFromNonSpikes_destOnly = 0; - double contributionFromNonSpikes_destAndSource = 0; - double totalTimeLength = 0; - - // Create temporary storage for arrays used in the neighbour counting: - boolean[] isWithinR = new boolean[numberOfEvents]; // dummy, we don't really use this - int[] indicesWithinR = new int[numberOfEvents]; - - // Iterate over all the spiking events: - Iterator eventIndexIterator = eventIndexLocator.iterator(); - int eventIndex = -1; - int indexForNextIsDest = -1; - for (int[] eventType : eventTypeLocator) { - eventIndex++; - int eventIndexWithinType = eventIndexIterator.next().intValue(); - double[][] thisEventTimings = eventTimings[eventType[0]][eventType[1]].elementAt(eventIndexWithinType); - totalTimeLength += thisEventTimings[2][0]; - // Find the Knns nearest neighbour matches to this event, - // with the same previous spiker and the next. - // TODO Add dynamic exclusion time later - PriorityQueue nnPQ = - kdTreesJoint[eventType[0]][eventType[1]].findKNearestNeighbours( - Knns, eventIndexWithinType); - // First element in the PQ is the kth NN, - // and epsilon = kthNnData.distance - NeighbourNodeData kthNnData = nnPQ.poll(); - double radiusToKnn = kthNnData.distance; - if (debug && (eventIndex < 10000)) { - // Pull out the data for this observation: - System.out.print("index = " + eventIndex + ", " + - eventIndexWithinType + " for " + - (eventType[0] == PREV_DEST ? "dst" : "src") + - "->" + - (eventType[1] == NEXT_DEST ? "dst" : "src") + - ", timings: src: "); - MatrixUtils.printArray(System.out, thisEventTimings[0], 3); - System.out.print(", dest: "); - MatrixUtils.printArray(System.out, thisEventTimings[1], 3); - System.out.print(", time to next: "); - MatrixUtils.printArray(System.out, thisEventTimings[2], 3); - System.out.printf("index=%d: K=%d NNs at range %.5f (point %d)", eventIndexWithinType, Knns, radiusToKnn, kthNnData.sampleIndex); - } - - // Select only events where the destination spiked next: - if (eventType[1] == NEXT_DEST) { - indexForNextIsDest++; - - // Now find the matching samples in each sub-space; - // first match dest history and source history, with a next spike in dest: - kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. - findPointsWithinR(eventIndexWithinType, radiusToKnn, 0, - false, isWithinR, indicesWithinR); - // And check which of these samples had spike time in dest after ours: - int countOfDestNextAndGreater = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] >= thisEventTimings[2][0] + radiusToKnn) { - // This sample had a matched history and next spike was a destination - // spike with a longer interval than the current sample - countOfDestNextAndGreater++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - // And count how many samples with the matching history actually had a - // *source* spike next, after ours. - // Note that we now must go to the other kdTree for next source spike - kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. - findPointsWithinR(radiusToKnn, thisEventTimings, - false, isWithinR, indicesWithinR); - // And check which of these samples had spike time in source after ours: - int countOfSourceNextAndGreater = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] > thisEventTimings[2][0] - radiusToKnn) { - // This sample had a matched history and next spike was a source - // spike with an interval longer than or considered equal to the current sample. - // (The "equal to" is why we look for matches within kthNnData.distance here as well.) - countOfSourceNextAndGreater++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - - if (debug && (eventIndex < 10000)) { - System.out.printf(" of %d + %d + %d points with matching S-D history", - Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); - } - - // Now find the matching samples in the dest history and - // with a next spike timing. - // Construct the appropriate timings to compare to here: - double[][] destOnlyObservations; - double[][] destPastOnlyObservations; - double timeToNextSpikeSincePreviousDestSpike; - if (eventType[0] == PREV_DEST) { - destOnlyObservations = new double[][] { - thisEventTimings[1], // timing of past dest spikes - thisEventTimings[2] // time to next spike - }; - timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; - destPastOnlyObservations = new double[][] { - thisEventTimings[1] // timing of past dest spikes - }; - } else { - // previous is source: - // We can take a copy of the dest past timings, removing the first entry - // (since this only signals time the dest last fired before the source) - // and add that entry to the timeToNextSpike (which was back to the - // source firing). - double[] destPastOnly = Arrays.copyOfRange( - thisEventTimings[1], 1, thisEventTimings[1].length); - timeToNextSpikeSincePreviousDestSpike = - thisEventTimings[1][0] + thisEventTimings[2][0]; - destOnlyObservations = new double[][] { - destPastOnly, - new double[] {timeToNextSpikeSincePreviousDestSpike} - }; - destPastOnlyObservations = new double[][] { - destPastOnly - }; - } - int countOfDestNextAndGreaterMatchedDest = 0; - int countOfDestNextMatched = 0; - if (k > 1) { - // Search only the space of dest past -- no point - // searching dest past and next, since we need to run through - // all matches of dest past to count those with greater next spike - // times we might as well count those with matching spike times - // while we're at it. - - // OLD WAY: - // NO NO NO -- Can't search for it this way, because it's biased -- - // should search for it by giving the index of this dest past-next - // observation, so that it doesn't match to this observation. - // Should be able to use indexForNextIsDest here - //kdTreeDestHistory.findPointsWithinR(radiusToKnn, destPastOnlyObservations, - // false, isWithinR, indicesWithinR); - // Proper way: - kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radiusToKnn, - false, isWithinR, indicesWithinR); - // And check which of these samples had next spike time after ours: - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the dest history space - double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[1][0] > timeToNextSpikeSincePreviousDestSpike - radiusToKnn) { - // This sample had a matched history and next spike was a - // spike with an interval longer than or considered equal to the current sample. - // (The "equal to" is why we look for matches within kthNnData.distance here as well.) - countOfDestNextAndGreaterMatchedDest++; - if (matchedHistoryEventTimings[1][0] < timeToNextSpikeSincePreviousDestSpike + radiusToKnn) { - // Then we also have a match on the next spike itself - countOfDestNextMatched++; - } - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - } else { - // We don't take any past dest spike times into account, so we just need to look at the proportion of next - // spike times that match. - countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsStrictlyWithinR(indexForNextIsDest, radiusToKnn); - countOfDestNextAndGreaterMatchedDest = countOfDestNextMatched + - nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, radiusToKnn, false); - } - - if (debug && (eventIndex < 10000)) { - System.out.printf(", and %d of %d points for D history only; ", - countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); - } - - // With these neighbours counted, we're ready to compute the probability of the spike given the past - // of source and dest. - // Digammas for algorithm 1 include the extra "+1" on all terms except - // for the full joint space - double logPGivenSourceAndDest = MathsUtils.digamma(Knns) - - MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1); - double logPGivenDest = MathsUtils.digamma(countOfDestNextMatched + 1) - - MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest + 1); - if (debug && (eventIndex < 10000)) { - System.out.printf(" te ~~ log (%d/%d)/(%d/%d) = %.4f -> %.4f (inferred rates %.4f vs %.4f)\n", Knns, - Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1, - countOfDestNextMatched + 1, countOfDestNextAndGreaterMatchedDest + 1, - Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1)) / - ((double) (countOfDestNextMatched + 1) / (double) (countOfDestNextAndGreaterMatchedDest + 1))), - logPGivenSourceAndDest - logPGivenDest, - (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1) / (2.0*radiusToKnn), - (double) (countOfDestNextMatched + 1) / (double) (countOfDestNextAndGreaterMatchedDest + 1) / (2.0*radiusToKnn)); - } - contributionFromSpikes += logPGivenSourceAndDest - logPGivenDest; - } else { - if (debug) { - System.out.println(); - } - } - - // Regardless of which type of event it was, we need to integrate - // the spiking rates up until the next spiking event - // Our first attempt at a solution uses the search width defined - // using the history and the next spike. - - // Consider first the destination process only. - // Match dest history - double[][] destPastOnlyObservations; - double timeToNextSpikeSincePreviousDestSpike; - if (eventType[0] == PREV_DEST) { - timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; - destPastOnlyObservations = new double[][] { - thisEventTimings[1] // timing of past dest spikes - }; - } else { - // previous is source: - // We can take a copy of the dest past timings, removing the first entry - // (since this only signals time the dest last fired before the source) - // and add that entry to the timeToNextSpike (which was back to the - // source firing). - double[] destPastOnly = Arrays.copyOfRange( - thisEventTimings[1], 1, thisEventTimings[1].length); - timeToNextSpikeSincePreviousDestSpike = - thisEventTimings[1][0] + thisEventTimings[2][0]; - destPastOnlyObservations = new double[][] { - destPastOnly - }; - } - int countOfDestNextEarlier = 0; - int countOfDestMatches = 0; - if (k > 1) { - kdTreeDestHistory.findPointsWithinR(radiusToKnn, destPastOnlyObservations, - false, isWithinR, indicesWithinR); - // And check which of these samples had next spike time before ours: - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the dest history space - double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[1][0] < timeToNextSpikeSincePreviousDestSpike) { - // This sample had a matched history and next spike was a - // spike with an interval shorter than the current sample. - countOfDestNextEarlier++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - countOfDestMatches++; - } - } else { - // We're not using the past, so we match on everything up to the last spike - countOfDestMatches = nnSearcherDestTimeToNextSpike.getNumObservations(); - countOfDestNextEarlier = nnSearcherDestTimeToNextSpike.countPointsSmallerAndOutsideR( - // indexForNextIsDest must point to the next event (possibly this one) where the dest spikes next. - (eventType[1] == NEXT_DEST) ? indexForNextIsDest : indexForNextIsDest + 1, - radiusToKnn, false); - - } - // And include the contribution for each of these - double integralForDestHistorySpace = 0; - for (int hi = 0; hi < countOfDestNextEarlier; hi++) { - integralForDestHistorySpace += (double) 1 / - (double) (countOfDestMatches - hi); - } - - // First match dest history and source history, with a next spike in dest: - kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. - findPointsWithinR(radiusToKnn, thisEventTimings, - false, isWithinR, indicesWithinR); - // And store which of these samples had spike time in dest before ours. - // Store them in a vector of double arrays, with each array holding the - // spike time then -1 for a next dest spike and +1 for a source spike - Vector spikesBeforeOurs = new Vector(); - int countOfSpikesAfterAndIncludingOurs = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] < thisEventTimings[2][0]) { - // This sample had a matched history and next spike was a destination - // spike with a shorted interval than the current sample - spikesBeforeOurs.add(new double[] { - matchedHistoryEventTimings[2][0], -1}); - } else { - countOfSpikesAfterAndIncludingOurs++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - // And store which of these samples had spike time in source before ours. - // Store them in a vector of double arrays, with each array holding the - // spike time then -1 for a next dest spike and +1 for a source spike - // Note that we now must go to the other kdTree for next source spike - kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. - findPointsWithinR(radiusToKnn, thisEventTimings, - false, isWithinR, indicesWithinR); - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] < thisEventTimings[2][0]) { - // This sample had a matched history and next spike was a source - // spike with a shorted interval than the current sample - spikesBeforeOurs.add(new double[] { - matchedHistoryEventTimings[2][0], +1}); - } else { - countOfSpikesAfterAndIncludingOurs++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - // Now we can sort the spikes which occur before ours and process - // them in order: - // Next line doesn't work, so replaced with clunkier code: - // double[][] nextSpikeTimesAndType = (double[][]) spikesBeforeOurs.toArray(); - double[][] nextSpikeTimesAndType = new double[spikesBeforeOurs.size()][]; - for (int si = 0; si < nextSpikeTimesAndType.length; si++) { - nextSpikeTimesAndType[si] = spikesBeforeOurs.elementAt(si); - } - Arrays.sort(nextSpikeTimesAndType, FirstIndexComparatorDouble.getInstance()); - double integralForJointSpace = 0; - for (int si = 0; si < nextSpikeTimesAndType.length; si++) { - if (nextSpikeTimesAndType[si][1] < 0) { - // We have a next spike from the dest, which is - // earlier than our spike. - // Integrated Prob for getting a spike here is 1 / N, where - // N is the number of properly matched histories (i.e. - // which don't have a next spike before this one) - double intPNext = (double) 1 / (double) - (nextSpikeTimesAndType.length - si + countOfSpikesAfterAndIncludingOurs); - integralForJointSpace += intPNext; - } - // Ignore next spikes on the source, they simply get removed - // from the matched histories count - } - - // We now have the integral of spike rates given the dest and - // joint histories, so subtract this out: - contributionFromNonSpikes += integralForDestHistorySpace - integralForJointSpace; - contributionFromNonSpikes_destAndSource += integralForJointSpace; - contributionFromNonSpikes_destOnly += integralForDestHistorySpace; - } - contributionFromSpikes /= totalTimeLength; - contributionFromNonSpikes /= totalTimeLength; - contributionFromNonSpikes_destAndSource /= totalTimeLength; - contributionFromNonSpikes_destOnly /= totalTimeLength; - te = contributionFromSpikes + contributionFromNonSpikes; - System.out.printf("TE = %.4f (spikes) + %.4f (non-spikes: d:%.4f - s-d:%.4f) = %.4f\n", - contributionFromSpikes, contributionFromNonSpikes, - contributionFromNonSpikes_destOnly, contributionFromNonSpikes_destAndSource, te); - return te; - } - */ - /* (non-Javadoc) * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeLocalOfPreviousObservations() */ diff --git a/tester.py b/tester.py index 99cf47d..ed6fc08 100755 --- a/tester.py +++ b/tester.py @@ -26,97 +26,88 @@ import math import os import numpy as np + +NUM_REPS = 10 +NUM_SPIKES = int(1e4) + +# Params for canonical example generation +RATE_Y = 1.0 +RATE_X_MAX = 10 + + + +def generate_canonical_example_processes(num_y_events): + event_train_x = [] + event_train_x.append(0) + + event_train_y = np.random.uniform(0, int(num_y_events / RATE_Y), int(num_y_events)) + event_train_y.sort() + + most_recent_y_index = 0 + previous_x_candidate = 0 + while most_recent_y_index < (len(event_train_y) - 1): + + this_x_candidate = previous_x_candidate + random.expovariate(RATE_X_MAX) + + while most_recent_y_index < (len(event_train_y) - 1) and this_x_candidate > event_train_y[most_recent_y_index + 1]: + most_recent_y_index += 1 + + delta_t = this_x_candidate - event_train_y[most_recent_y_index] + + rate = 0 + + if delta_t > 1: + rate = 0.5 + else: + rate = 0.5 + 5.0 * math.exp(-50 * (delta_t - 0.5)**2) - 5.0 * math.exp(-50 * (0.5)**2) + if random.random() < rate/float(RATE_X_MAX): + event_train_x.append(this_x_candidate) + previous_x_candidate = this_x_candidate + + event_train_x.sort() + event_train_y.sort() + + return event_train_x, event_train_y + # Change location of jar to match yours (we assume script is called from demos/python): jarLocation = os.path.join(os.getcwd(), "infodynamics.jar"); if (not(os.path.isfile(jarLocation))): exit("infodynamics.jar not found (expected at " + os.path.abspath(jarLocation) + ") - are you running from demos/python?") # Start the JVM (add the "-Xmx" option with say 1024M if you get crashes due to not enough memory space) startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=" + jarLocation) - -# Generate some random normalised data. -numObservations = 1000 -covariance=0.4 -# Source array of random normals: -sourceArray = [random.normalvariate(0,1) for r in range(numObservations)] -# Destination array of random normals with partial correlation to previous value of sourceArray -destArray = [0] + [sum(pair) for pair in zip([covariance*y for y in sourceArray[0:numObservations-1]], \ - [(1-covariance)*y for y in [random.normalvariate(0,1) for r in range(numObservations-1)]] ) ] - -sourceArray = 1e5*np.random.random(int(1e5)) -sourceArray.sort() -#destArray = 1e5*np.random.random(int(1e5)) -#destArray.sort() -destArray = sourceArray + 1 -destArray += np.random.normal(scale = 0.01, size = destArray.shape) - - -RATE_Y = 1.0 -NUM_Y_eventS = 1e5 -RATE_X_MAX = 10 -event_train_y = [] -event_train_x = [] - -event_train_x.append(0) - -event_train_y = np.random.uniform(0, int(NUM_Y_eventS / RATE_Y), int(NUM_Y_eventS)) -event_train_y.sort() - -most_recent_y_index = 0 -previous_x_candidate = 0 -while most_recent_y_index < (len(event_train_y) - 1): - - this_x_candidate = previous_x_candidate + random.expovariate(RATE_X_MAX) - - while most_recent_y_index < (len(event_train_y) - 1) and this_x_candidate > event_train_y[most_recent_y_index + 1]: - most_recent_y_index += 1 - - delta_t = this_x_candidate - event_train_y[most_recent_y_index] - - rate = 0 - - if delta_t > 1: - rate = 0.5 - else: - rate = 0.5 + 5.0 * math.exp(-50 * (delta_t - 0.5)**2) - 5.0 * math.exp(-50 * (0.5)**2) - if random.random() < rate/float(RATE_X_MAX): - event_train_x.append(this_x_candidate) - previous_x_candidate = this_x_candidate - -event_train_x.sort() -sourceArray = event_train_y -destArray = event_train_x - -# Uncorrelated source array: -sourceArray2 = [random.normalvariate(0,1) for r in range(numObservations)] -# Create a TE calculator and run it: -#teCalcClass = JPackage("infodynamics.measures.continuous.kraskov").TransferEntropyCalculatorKraskov teCalcClass = JPackage("infodynamics.measures.spiking.integration").TransferEntropyCalculatorSpikingIntegration - - - teCalc = teCalcClass() -teCalc.setProperty("NORMALISE", "true") # Normalise the individual variables -teCalc.initialise(1) # Use history length 1 (Schreiber k=1) -teCalc.setProperty("k_HISTORY", "3") +teCalc.setProperty("knns", "4") + +print("Independent Poisson Processes") +teCalc.setProperty("k_HISTORY", "1") teCalc.setProperty("l_HISTORY", "1") -teCalc.setProperty("knns", "4") # Use Kraskov parameter K=4 for 4 nearest points -# # Perform calculation with correlated source: -teCalc.setObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray)) -result = teCalc.computeAverageLocalOfObservations() -# # Note that the calculation is a random variable (because the generated -# # data is a set of random variables) - the result will be of the order -# # of what we expect, but not exactly equal to it; in fact, there will -# # be a large variance around it. -# # Expected correlation is expected covariance / product of expected standard deviations: -# # (where square of destArray standard dev is sum of squares of std devs of -# # underlying distributions) -# corr_expected = covariance / (1 * math.sqrt(covariance**2 + (1-covariance)**2)); -print("TE result %.4f nats" % \ - (result,)) -# # Perform calculation with uncorrelated source: -# teCalc.initialise() # Initialise leaving the parameters the same -# teCalc.setObservations(JArray(JDouble, 1)(sourceArray2), JArray(JDouble, 1)(destArray)) -# result2 = teCalc.computeAverageLocalOfObservations() -# print("TE result %.4f nats; expected to be close to 0 nats for these uncorrelated Gaussians" % result2) + +results_poisson = np.zeros(NUM_REPS) +for i in range(NUM_REPS): + sourceArray = NUM_SPIKES*np.random.random(NUM_SPIKES) + sourceArray.sort() + destArray = NUM_SPIKES*np.random.random(NUM_SPIKES) + destArray.sort() + + teCalc.setObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray)) + result = teCalc.computeAverageLocalOfObservations() + print("TE result %.4f nats" % (result,)) + results_poisson[i] = result +print("Summary: mean ", np.mean(results_poisson), " std dev ", np.std(results_poisson)) +print("Canonical example") +teCalc.setProperty("k_HISTORY", "2") +teCalc.setProperty("l_HISTORY", "1") + + + +results_canonical = np.zeros(NUM_REPS) +for i in range(NUM_REPS): + event_train_x, event_train_y = generate_canonical_example_processes(NUM_SPIKES) + teCalc.setObservations(JArray(JDouble, 1)(event_train_y), JArray(JDouble, 1)(event_train_x)) + result = teCalc.computeAverageLocalOfObservations() + results_canonical[i] = result + print("TE result %.4f nats" % (result,)) +print("Summary: mean ", np.mean(results_canonical), " std dev ", np.std(results_canonical)) From dc226be60aaf732472681212011a7775c2634e6b Mon Sep 17 00:00:00 2001 From: David Shorten Date: Sun, 25 Jul 2021 17:47:27 +1000 Subject: [PATCH 37/41] minor refactorings --- .../TransferEntropyCalculatorSpikingIntegration.java | 12 ------------ tester.py | 2 -- 2 files changed, 14 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index bc3b681..a0208b1 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -29,10 +29,6 @@ import infodynamics.utils.UnivariateNearestNeighbourSearcher; public class TransferEntropyCalculatorSpikingIntegration implements TransferEntropyCalculatorSpiking { - protected final static boolean USE_POINT_ITSELF = false; - protected final static boolean TRIM_RADII = false; - protected final static boolean USE_SAME_RADII = false; - /** * Number of past destination spikes to consider (akin to embedding length) */ @@ -57,15 +53,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements */ protected Vector vectorOfDestinationSpikeTimes = null; - // constants for indexing our data storage - protected final static int NEXT_DEST = 0; - protected final static int NEXT_SOURCE = 1; - protected final static int NEXT_POSSIBILITIES = 2; - /** - * Cache of the timing data for each new observed spiking event in both the source - * and destination - */ Vector[] eventTimings = null; /** * Cache of the timing data for each new observed spiking event for the diff --git a/tester.py b/tester.py index ed6fc08..7f402b9 100755 --- a/tester.py +++ b/tester.py @@ -101,8 +101,6 @@ print("Canonical example") teCalc.setProperty("k_HISTORY", "2") teCalc.setProperty("l_HISTORY", "1") - - results_canonical = np.zeros(NUM_REPS) for i in range(NUM_REPS): event_train_x, event_train_y = generate_canonical_example_processes(NUM_SPIKES) From 9a17361cca05ef35f28bc448b323ffbf200d8f43 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Mon, 26 Jul 2021 21:34:22 +1000 Subject: [PATCH 38/41] minor edits --- ...erEntropyCalculatorSpikingIntegration.java | 108 +++--------------- tester.py | 2 +- 2 files changed, 15 insertions(+), 95 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index a0208b1..67ccdf9 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -53,13 +53,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements */ protected Vector vectorOfDestinationSpikeTimes = null; - - Vector[] eventTimings = null; - /** - * Cache of the timing data for each new observed spiking event for the - * destination only - */ - Vector targetEmbeddingsFromSpikes = null; Vector jointEmbeddingsFromSpikes = null; Vector targetEmbeddingsFromSamples = null; @@ -70,67 +63,14 @@ public class TransferEntropyCalculatorSpikingIntegration implements protected KdTree kdTreeConditioningAtSpikes = null; protected KdTree kdTreeConditioningAtSamples = null; - Vector destPastAndNextTimings = null; - /** - * Cache of the type of event for each new observed spiking event in both the source - * and destination (i.e. which spiked next) - */ - Vector eventTypeLocator = null; - /** - * Cache for each new observed spiking event of which index it has in the vector - * of spiking events of the same type - */ - Vector eventIndexLocator = null; - /** - * Cache for each time-series of observed spiking events of how many - * observations were in that set. - */ - Vector numEventsPerObservationSet = null; - - /** - * KdTrees for searching the joint past spaces and time to next spike, - * for each possibility of which spiked next - */ - protected KdTree[] kdTreesJoint = null; - - /** - * KdTrees for searching the joint past spaces, - * for each possibility of which spiked next - */ - protected KdTree[] kdTreesSourceDestHistories = null; - - /** - * KdTrees for searching the past destination space and time to next spike - */ - protected KdTree kdTreeDestNext = null; - - /** - * KdTrees for searching the past destination space - */ - protected KdTree kdTreeDestHistory = null; - - /** - * NN searcher for the time to next spike space only, if required - */ - protected UnivariateNearestNeighbourSearcher nnSearcherDestTimeToNextSpike = null; - - /** - * Property name for the number of nearest neighbours to search - */ public static final String KNNS_PROP_NAME = "Knns"; - /** - * Property name for adjusting the search radius for the next spike such that - * it does not cover negative times (with respect to the previous spike, being either - * source or destination spike) - */ - public static final String TRIM_TO_POS_PROP_NAME = "TRIM_RANGE_TO_POS_TIMES"; /** * Property name for an amount of random Gaussian noise to be * added to the data (default is 1e-8, matching the MILCA toolkit). */ public static final String PROP_ADD_NOISE = "NOISE_LEVEL_TO_ADD"; - /** + /** * Whether to add an amount of random noise to the incoming data */ protected boolean addNoise = true; @@ -193,8 +133,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements l = Integer.parseInt(propertyValue); } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { Knns = Integer.parseInt(propertyValue); - } else if (propertyName.equalsIgnoreCase(TRIM_TO_POS_PROP_NAME)) { - trimToPosNextSpikeTimes = Boolean.parseBoolean(propertyValue); } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { if (propertyValue.equals("0") || propertyValue.equalsIgnoreCase("false")) { @@ -225,8 +163,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements return Integer.toString(l); } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { return Integer.toString(Knns); - } else if (propertyName.equalsIgnoreCase(TRIM_TO_POS_PROP_NAME)) { - return Boolean.toString(trimToPosNextSpikeTimes); } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { return Double.toString(noiseLevel); } else { @@ -266,9 +202,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements vectorOfDestinationSpikeTimes.add(destination); } - - - /* (non-Javadoc) * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#finaliseAddObservations() */ @@ -285,15 +218,12 @@ public class TransferEntropyCalculatorSpikingIntegration implements int timeSeriesIndex = 0; for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { double[] sourceSpikeTimes = sourceIterator.next(); - timeSeriesIndex++; - processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, - timeSeriesIndex, eventTimings, destPastAndNextTimings, - eventTypeLocator, eventIndexLocator, numEventsPerObservationSet, targetEmbeddingsFromSpikes, jointEmbeddingsFromSpikes, targetEmbeddingsFromSamples, jointEmbeddingsFromSamples); } + // Convert the vectors to arrays so that they can be put in the trees double[][] arrayedTargetEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k]; double[][] arrayedJointEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k + l]; for (int i = 0; i < targetEmbeddingsFromSpikes.size(); i++) { @@ -371,38 +301,33 @@ public class TransferEntropyCalculatorSpikingIntegration implements destSpikeTimes[most_recent_dest_index]; jointPast[k] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - sourceSpikeTimes[most_recent_source_index]; - if (addNoise) { - destPast[0] += random.nextGaussian()*noiseLevel; - jointPast[0] += random.nextGaussian()*noiseLevel; - jointPast[k] += random.nextGaussian()*noiseLevel; - } + for (int i = 1; i < k; i++) { destPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] - destSpikeTimes[most_recent_dest_index - i]; jointPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] - destSpikeTimes[most_recent_dest_index - i]; - if (addNoise) { - destPast[i] += random.nextGaussian()*noiseLevel; - jointPast[i] += random.nextGaussian()*noiseLevel; - } } for (int i = 1; i < l; i++) { jointPast[k + i] = sourceSpikeTimes[most_recent_source_index - i + 1] - sourceSpikeTimes[most_recent_source_index - i]; - if (addNoise) { - jointPast[k + i] += random.nextGaussian()*noiseLevel; - } } + if (addNoise) { + for (int i = 0; i < k; i++) { + destPast[i] += random.nextGaussian()*noiseLevel; + } + for (int i = 0; i < l; i++) { + jointPast[i] += random.nextGaussian()*noiseLevel; + } + } + targetEmbeddings.add(destPast); jointEmbeddings.add(jointPast); } } protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, - int timeSeriesIndex, Vector[] eventTimings, - Vector destPastAndNextTimings, Vector eventTypeLocator, - Vector eventIndexLocator, Vector numEventsPerObservationSet, Vector targetEmbeddingsFromSpikes, Vector jointEmbeddingsFromSpikes, Vector targetEmbeddingsFromSamples, Vector jointEmbeddingsFromSamples) throws Exception { @@ -412,18 +337,14 @@ public class TransferEntropyCalculatorSpikingIntegration implements Arrays.sort(sourceSpikeTimes); Arrays.sort(destSpikeTimes); - - // New - int NUM_SAMPLES = sourceSpikeTimes.length; double sample_lower_bound = Arrays.stream(sourceSpikeTimes).min().getAsDouble(); double sample_upper_bound = Arrays.stream(sourceSpikeTimes).max().getAsDouble(); - double[] randomSampleTimes = new double[NUM_SAMPLES]; + double[] randomSampleTimes = new double[sourceSpikeTimes.length]; Random rand = new Random(); for (int i = 0; i < randomSampleTimes.length; i++) { randomSampleTimes[i] = sample_lower_bound + rand.nextDouble() * (sample_upper_bound - sample_lower_bound); } Arrays.sort(randomSampleTimes); - // End New makeEmbeddingsAtPoints(destSpikeTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSpikes, jointEmbeddingsFromSpikes); makeEmbeddingsAtPoints(randomSampleTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSamples, jointEmbeddingsFromSamples); @@ -475,9 +396,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements currentSum += ((k + l) * (- Math.log(radiusJointSpikes) + Math.log(radiusJointSamples)) + k * (Math.log(radiusConditioningSpikes) - Math.log(radiusConditioningSamples))); } + // Normalise by time currentSum /= (vectorOfDestinationSpikeTimes.elementAt(0)[vectorOfDestinationSpikeTimes.elementAt(0).length - 1] - vectorOfDestinationSpikeTimes.elementAt(0)[0]); - return currentSum; } @@ -527,5 +448,4 @@ public class TransferEntropyCalculatorSpikingIntegration implements // TODO Auto-generated method stub return 0; } - } diff --git a/tester.py b/tester.py index 7f402b9..a010ee4 100755 --- a/tester.py +++ b/tester.py @@ -27,7 +27,7 @@ import os import numpy as np -NUM_REPS = 10 +NUM_REPS = 20 NUM_SPIKES = int(1e4) # Params for canonical example generation From dc85001ff717396f294cf4dd77f9cd4e1aa4b82c Mon Sep 17 00:00:00 2001 From: David Shorten Date: Mon, 2 Aug 2021 22:06:07 +1000 Subject: [PATCH 39/41] refactoring + conditional processes + radius sharing + euclidean norm working --- ...erEntropyCalculatorSpikingIntegration.java | 663 +++++++++++++----- java/source/infodynamics/utils/KdTree.java | 16 +- tester.py | 98 ++- 3 files changed, 564 insertions(+), 213 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 67ccdf9..103cd27 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -7,6 +7,7 @@ import java.util.PriorityQueue; import java.util.Random; import java.util.Vector; +//import infodynamics.measures.continuous.kraskov.EuclideanUtils; import infodynamics.measures.spiking.TransferEntropyCalculatorSpiking; import infodynamics.utils.EmpiricalMeasurementDistribution; import infodynamics.utils.KdTree; @@ -15,61 +16,85 @@ import infodynamics.utils.MatrixUtils; import infodynamics.utils.NeighbourNodeData; import infodynamics.utils.FirstIndexComparatorDouble; import infodynamics.utils.UnivariateNearestNeighbourSearcher; +import infodynamics.utils.EuclideanUtils; +import infodynamics.utils.ParsedProperties; /** - * Computes the transfer entropy between a pair of spike trains, - * using an integration-based measure in order to match the theoretical - * form of TE between such spike trains. + * Computes the transfer entropy between a pair of spike trains, using an + * integration-based measure in order to match the theoretical form of TE + * between such spike trains. * - *

Usage paradigm is as per the interface {@link TransferEntropyCalculatorSpiking}

+ *

+ * Usage paradigm is as per the interface + * {@link TransferEntropyCalculatorSpiking} + *

* * @author Joseph Lizier (email, - * www) + * www) */ -public class TransferEntropyCalculatorSpikingIntegration implements - TransferEntropyCalculatorSpiking { +public class TransferEntropyCalculatorSpikingIntegration implements TransferEntropyCalculatorSpiking { /** - * Number of past destination spikes to consider (akin to embedding length) + * Number of past destination interspike intervals to consider (akin to embedding length) */ protected int k = 1; /** - * Number of past source spikes to consider (akin to embedding length) + * Number of past source interspike intervals to consider (akin to embedding length) */ protected int l = 1; + /** + * Property name for number of interspike intervals for the conditional variables + */ + public static final String COND_EMBED_LENGTHS_PROP_NAME = "COND_EMBED_LENGTHS"; + /** + * Array of history interspike interval embedding lengths for the conditional variables. + * Can be an empty array or null if there are no conditional variables. + */ + protected int[] condEmbedDims = new int[] {}; + /** * Number of nearest neighbours to search for in the full joint space */ protected int Knns = 4; - + /** - * Storage for source observations supplied via {@link #addObservations(double[], double[])} etc. + * Storage for source observations supplied via + * {@link #addObservations(double[], double[])} etc. */ protected Vector vectorOfSourceSpikeTimes = null; /** - * Storage for destination observations supplied via {@link #addObservations(double[], double[])} etc. + * Storage for destination observations supplied via + * {@link #addObservations(double[], double[])} etc. */ protected Vector vectorOfDestinationSpikeTimes = null; - - Vector targetEmbeddingsFromSpikes = null; + + /** + * Storage for conditional observations supplied via + * {@link #addObservations(double[], double[])} etc. + */ + protected Vector vectorOfConditionalSpikeTimes = null; + + Vector ConditioningEmbeddingsFromSpikes = null; Vector jointEmbeddingsFromSpikes = null; - Vector targetEmbeddingsFromSamples = null; + Vector ConditioningEmbeddingsFromSamples = null; Vector jointEmbeddingsFromSamples = null; + Vector processTimeLengths = null; protected KdTree kdTreeJointAtSpikes = null; protected KdTree kdTreeJointAtSamples = null; protected KdTree kdTreeConditioningAtSpikes = null; protected KdTree kdTreeConditioningAtSamples = null; - + public static final String KNNS_PROP_NAME = "Knns"; /** - * Property name for an amount of random Gaussian noise to be - * added to the data (default is 1e-8, matching the MILCA toolkit). + * Property name for an amount of random Gaussian noise to be added to the data + * (default is 1e-8, matching the MILCA toolkit). */ - public static final String PROP_ADD_NOISE = "NOISE_LEVEL_TO_ADD"; + public static final String PROP_ADD_NOISE = "NOISE_LEVEL_TO_ADD"; + /** * Whether to add an amount of random noise to the incoming data */ @@ -79,35 +104,61 @@ public class TransferEntropyCalculatorSpikingIntegration implements */ protected double noiseLevel = (double) 1e-8; - protected boolean trimToPosNextSpikeTimes = false; - /** * Stores whether we are in debug mode */ protected boolean debug = false; + + /** + * Property name for the number of random sample points to use as a multiple + * of the number of target spikes. + */ + public static final String PROP_SAMPLE_MULTIPLIER = "NUM_SAMPLES_MULTIPLIER"; + protected double num_samples_multiplier = 1.0; + /** + * Property name for what type of norm to use between data points + * for each marginal variable -- Options are defined by + * {@link KdTree#setNormType(String)} and the + * default is {@link EuclideanUtils#NORM_EUCLIDEAN}. + */ + public final static String PROP_NORM_TYPE = "NORM_TYPE"; + protected int normType = EuclideanUtils.NORM_EUCLIDEAN; public TransferEntropyCalculatorSpikingIntegration() { super(); } + - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int) + /* + * (non-Javadoc) + * + * @see + * infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise( + * int) */ @Override public void initialise() throws Exception { - initialise(k,l); + initialise(k, l); } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int) + + /* + * (non-Javadoc) + * + * @see + * infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise( + * int) */ @Override public void initialise(int k) throws Exception { - initialise(k,this.l); + initialise(k, this.l); } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int, int) + /* + * (non-Javadoc) + * + * @see + * infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise( + * int, int) */ @Override public void initialise(int k, int l) throws Exception { @@ -120,40 +171,74 @@ public class TransferEntropyCalculatorSpikingIntegration implements vectorOfDestinationSpikeTimes = null; } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setProperty(java.lang.String, java.lang.String) + /* + * (non-Javadoc) + * + * @see + * infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setProperty( + * java.lang.String, java.lang.String) */ @Override - public void setProperty(String propertyName, String propertyValue) - throws Exception { + public void setProperty(String propertyName, String propertyValue) throws Exception { boolean propertySet = true; if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { - k = Integer.parseInt(propertyValue); + int k_temp = Integer.parseInt(propertyValue); + if (k_temp < 1) { + throw new Exception ("Invalid k value less than 1."); + } else { + k = k_temp; + } } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { - l = Integer.parseInt(propertyValue); + int l_temp = Integer.parseInt(propertyValue); + if (l_temp < 1) { + throw new Exception ("Invalid l value less than 1."); + } else { + l = l_temp; + } + } else if (propertyName.equalsIgnoreCase(COND_EMBED_LENGTHS_PROP_NAME)) { + int[] condEmbedDims_temp = ParsedProperties.parseStringArrayOfInts(propertyValue); + for (int dim : condEmbedDims_temp) { + if (dim < 1) { + throw new Exception ("Invalid conditional embedding value less than 1."); + } + } + condEmbedDims = condEmbedDims_temp; } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { Knns = Integer.parseInt(propertyValue); - } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { - if (propertyValue.equals("0") || - propertyValue.equalsIgnoreCase("false")) { - addNoise = false; - noiseLevel = 0; - } else { - addNoise = true; - noiseLevel = Double.parseDouble(propertyValue); - } + } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { + if (propertyValue.equals("0") || propertyValue.equalsIgnoreCase("false")) { + addNoise = false; + noiseLevel = 0; + } else { + addNoise = true; + noiseLevel = Double.parseDouble(propertyValue); + } + + } else if (propertyName.equalsIgnoreCase(PROP_SAMPLE_MULTIPLIER)) { + double temp_num_samples_multiplier = Double.parseDouble(propertyValue); + if (temp_num_samples_multiplier <= 0) { + throw new Exception ("Num samples multiplier must be greater than 0."); + } else { + num_samples_multiplier = temp_num_samples_multiplier; + } + } else if (propertyName.equalsIgnoreCase(PROP_NORM_TYPE)) { + normType = KdTree.validateNormType(propertyValue); } else { // No property was set on this class propertySet = false; } if (debug && propertySet) { - System.out.println(this.getClass().getSimpleName() + ": Set property " + propertyName + - " to " + propertyValue); + System.out.println( + this.getClass().getSimpleName() + ": Set property " + propertyName + " to " + propertyValue); } } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getProperty(java.lang.String) + /* + * (non-Javadoc) + * + * @see + * infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getProperty( + * java.lang.String) */ @Override public String getProperty(String propertyName) throws Exception { @@ -163,121 +248,152 @@ public class TransferEntropyCalculatorSpikingIntegration implements return Integer.toString(l); } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { return Integer.toString(Knns); - } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { - return Double.toString(noiseLevel); + } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { + return Double.toString(noiseLevel); + } else if (propertyName.equalsIgnoreCase(PROP_SAMPLE_MULTIPLIER)) { + return Double.toString(num_samples_multiplier); } else { // No property matches for this class return null; } } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setObservations(double[], double[]) + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# + * setObservations(double[], double[]) */ @Override - public void setObservations(double[] source, double[] destination) - throws Exception { + public void setObservations(double[] source, double[] destination) throws Exception { startAddObservations(); addObservations(source, destination); finaliseAddObservations(); } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#startAddObservations() + public void setObservations(double[] source, double[] destination, double[][] conditionals) throws Exception { + startAddObservations(); + addObservations(source, destination, conditionals); + finaliseAddObservations(); + } + + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# + * startAddObservations() */ @Override public void startAddObservations() { vectorOfSourceSpikeTimes = new Vector(); vectorOfDestinationSpikeTimes = new Vector(); + vectorOfConditionalSpikeTimes = new Vector(); } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#addObservations(double[], double[]) + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# + * addObservations(double[], double[]) */ @Override - public void addObservations(double[] source, double[] destination) - throws Exception { + public void addObservations(double[] source, double[] destination) throws Exception { // Store these observations in our vector for now vectorOfSourceSpikeTimes.add(source); vectorOfDestinationSpikeTimes.add(destination); } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#finaliseAddObservations() + public void addObservations(double[] source, double[] destination, double[][] conditionals) throws Exception { + // Store these observations in our vector for now + vectorOfSourceSpikeTimes.add(source); + vectorOfDestinationSpikeTimes.add(destination); + vectorOfConditionalSpikeTimes.add(conditionals); + } + + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# + * finaliseAddObservations() */ @Override public void finaliseAddObservations() throws Exception { - targetEmbeddingsFromSpikes = new Vector(); + ConditioningEmbeddingsFromSpikes = new Vector(); jointEmbeddingsFromSpikes = new Vector(); - targetEmbeddingsFromSamples = new Vector(); + ConditioningEmbeddingsFromSamples = new Vector(); jointEmbeddingsFromSamples = new Vector(); - + processTimeLengths = new Vector(); + // Send all of the observations through: Iterator sourceIterator = vectorOfSourceSpikeTimes.iterator(); int timeSeriesIndex = 0; - for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { - double[] sourceSpikeTimes = sourceIterator.next(); - processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, - targetEmbeddingsFromSpikes, jointEmbeddingsFromSpikes, - targetEmbeddingsFromSamples, jointEmbeddingsFromSamples); + if (vectorOfConditionalSpikeTimes.size() > 0) { + Iterator conditionalIterator = vectorOfConditionalSpikeTimes.iterator(); + for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { + double[] sourceSpikeTimes = sourceIterator.next(); + double[][] conditionalSpikeTimes = conditionalIterator.next(); + processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, ConditioningEmbeddingsFromSpikes, + jointEmbeddingsFromSpikes, ConditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples, + processTimeLengths); + } + } else { + for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { + double[] sourceSpikeTimes = sourceIterator.next(); + double[][] conditionalSpikeTimes = new double[][] {}; + processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, ConditioningEmbeddingsFromSpikes, + jointEmbeddingsFromSpikes, ConditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples, + processTimeLengths); + } } // Convert the vectors to arrays so that they can be put in the trees - double[][] arrayedTargetEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k]; - double[][] arrayedJointEmbeddingsFromSpikes = new double[targetEmbeddingsFromSpikes.size()][k + l]; - for (int i = 0; i < targetEmbeddingsFromSpikes.size(); i++) { - arrayedTargetEmbeddingsFromSpikes[i] = targetEmbeddingsFromSpikes.elementAt(i); + double[][] arrayedTargetEmbeddingsFromSpikes = new double[ConditioningEmbeddingsFromSpikes.size()][k]; + double[][] arrayedJointEmbeddingsFromSpikes = new double[ConditioningEmbeddingsFromSpikes.size()][k + l]; + for (int i = 0; i < ConditioningEmbeddingsFromSpikes.size(); i++) { + arrayedTargetEmbeddingsFromSpikes[i] = ConditioningEmbeddingsFromSpikes.elementAt(i); arrayedJointEmbeddingsFromSpikes[i] = jointEmbeddingsFromSpikes.elementAt(i); } - double[][] arrayedTargetEmbeddingsFromSamples = new double[targetEmbeddingsFromSamples.size()][k]; - double[][] arrayedJointEmbeddingsFromSamples = new double[targetEmbeddingsFromSamples.size()][k + l]; - for (int i = 0; i < targetEmbeddingsFromSamples.size(); i++) { - arrayedTargetEmbeddingsFromSamples[i] = targetEmbeddingsFromSamples.elementAt(i); + double[][] arrayedTargetEmbeddingsFromSamples = new double[ConditioningEmbeddingsFromSamples.size()][k]; + double[][] arrayedJointEmbeddingsFromSamples = new double[ConditioningEmbeddingsFromSamples.size()][k + l]; + for (int i = 0; i < ConditioningEmbeddingsFromSamples.size(); i++) { + arrayedTargetEmbeddingsFromSamples[i] = ConditioningEmbeddingsFromSamples.elementAt(i); arrayedJointEmbeddingsFromSamples[i] = jointEmbeddingsFromSamples.elementAt(i); } - kdTreeJointAtSpikes = new KdTree( - new int[] {k + l}, - new double[][][] {arrayedJointEmbeddingsFromSpikes}); - kdTreeJointAtSamples = new KdTree( - new int[] {k + l}, - new double[][][] {arrayedJointEmbeddingsFromSamples}); - kdTreeConditioningAtSpikes = new KdTree( - new int[] {k}, - new double[][][] {arrayedTargetEmbeddingsFromSpikes}); - kdTreeConditioningAtSamples = new KdTree( - new int[] {k}, - new double[][][] {arrayedTargetEmbeddingsFromSamples}); + kdTreeJointAtSpikes = new KdTree(arrayedJointEmbeddingsFromSpikes); + kdTreeJointAtSamples = new KdTree(arrayedJointEmbeddingsFromSamples); + kdTreeConditioningAtSpikes = new KdTree(arrayedTargetEmbeddingsFromSpikes); + kdTreeConditioningAtSamples = new KdTree(arrayedTargetEmbeddingsFromSamples); - /*kdTreeJointAtSpikes.setNormType("EUCLIDEAN"); - kdTreeJointAtSamples.setNormType("EUCLIDEAN"); - kdTreeConditioningAtSpikes.setNormType("EUCLIDEAN"); - kdTreeConditioningAtSamples.setNormType("EUCLIDEAN");*/ + kdTreeJointAtSpikes.setNormType(normType); + kdTreeJointAtSamples.setNormType(normType); + kdTreeConditioningAtSpikes.setNormType(normType); + kdTreeConditioningAtSamples.setNormType(normType); } - protected void makeEmbeddingsAtPoints(double[] pointsAtWhichToMakeEmbeddings, double[] sourceSpikeTimes, double[] destSpikeTimes, - Vector targetEmbeddings, Vector jointEmbeddings) { - //System.out.println("foo"); + protected void makeEmbeddingsAtPoints(double[] pointsAtWhichToMakeEmbeddings, int index_of_first_point_to_use, + double[] sourceSpikeTimes, double[] destSpikeTimes, + double[][] conditionalSpikeTimes, + Vector ConditioningEmbeddings, + Vector jointEmbeddings) { Random random = new Random(); - int embedding_point_index = 0; + int embedding_point_index = index_of_first_point_to_use; int most_recent_dest_index = k; int most_recent_source_index = l; - - // Make sure that the first point at which an embedding is made has enough preceding spikes in both source and - // target for embeddings to be made. - while (pointsAtWhichToMakeEmbeddings[embedding_point_index] <= destSpikeTimes[most_recent_dest_index] | - pointsAtWhichToMakeEmbeddings[embedding_point_index] <= sourceSpikeTimes[most_recent_source_index]) { - embedding_point_index++; + int[] most_recent_conditioning_indices = Arrays.copyOf(condEmbedDims, condEmbedDims.length); + int total_length_of_conditioning_embeddings = 0; + for (int i = 0; i < condEmbedDims.length; i++) { + total_length_of_conditioning_embeddings += condEmbedDims[i]; } // Loop through the points at which embeddings need to be made - for (;embedding_point_index < pointsAtWhichToMakeEmbeddings.length; embedding_point_index++) { + for (; embedding_point_index < pointsAtWhichToMakeEmbeddings.length; embedding_point_index++) { // Advance the tracker of the most recent dest index - while (most_recent_dest_index < (destSpikeTimes.length - 1)) { + while (most_recent_dest_index < (destSpikeTimes.length - 1)) { if (destSpikeTimes[most_recent_dest_index + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { most_recent_dest_index++; } else { @@ -285,163 +401,328 @@ public class TransferEntropyCalculatorSpikingIntegration implements } } // Do the same for the most recent source index - while (most_recent_source_index < (sourceSpikeTimes.length - 1)) { - if (sourceSpikeTimes[most_recent_source_index + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + while (most_recent_source_index < (sourceSpikeTimes.length - 1)) { + if (sourceSpikeTimes[most_recent_source_index + + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { most_recent_source_index++; } else { break; } } + // Now advance the trackers for the most recent conditioning indices + for (int j = 0; j < most_recent_conditioning_indices.length; j++) { + while (most_recent_conditioning_indices[j] < (conditionalSpikeTimes[j].length - 1)) { + if (conditionalSpikeTimes[j][most_recent_conditioning_indices[j] + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { + most_recent_conditioning_indices[j]++; + } else { + break; + } + } + } - double[] destPast = new double[k]; - double[] jointPast = new double[k + l]; - destPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - - destSpikeTimes[most_recent_dest_index]; - jointPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - - destSpikeTimes[most_recent_dest_index]; - jointPast[k] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - - sourceSpikeTimes[most_recent_source_index]; + double[] conditioningPast = new double[k + total_length_of_conditioning_embeddings]; + double[] jointPast = new double[k + total_length_of_conditioning_embeddings + l]; + + // Add the embedding intervals from the target process + conditioningPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - destSpikeTimes[most_recent_dest_index]; + jointPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] + - destSpikeTimes[most_recent_dest_index]; for (int i = 1; i < k; i++) { - destPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] - - destSpikeTimes[most_recent_dest_index - i]; - jointPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] - - destSpikeTimes[most_recent_dest_index - i]; - } - for (int i = 1; i < l; i++) { - jointPast[k + i] = sourceSpikeTimes[most_recent_source_index - i + 1] - - sourceSpikeTimes[most_recent_source_index - i]; + conditioningPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] + - destSpikeTimes[most_recent_dest_index - i]; + jointPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] + - destSpikeTimes[most_recent_dest_index - i]; } - if (addNoise) { - for (int i = 0; i < k; i++) { - destPast[i] += random.nextGaussian()*noiseLevel; - } - for (int i = 0; i < l; i++) { - jointPast[i] += random.nextGaussian()*noiseLevel; + // Add the embeding intervals from the conditional processes + int index_of_next_embedding_interval = k; + for (int i = 0; i < condEmbedDims.length; i++) { + conditioningPast[index_of_next_embedding_interval] = + pointsAtWhichToMakeEmbeddings[embedding_point_index] - conditionalSpikeTimes[i][most_recent_conditioning_indices[i]]; + jointPast[index_of_next_embedding_interval] = + pointsAtWhichToMakeEmbeddings[embedding_point_index] - conditionalSpikeTimes[i][most_recent_conditioning_indices[i]]; + index_of_next_embedding_interval += 1; + for (int j = 1; j < condEmbedDims[i]; j++) { + conditioningPast[index_of_next_embedding_interval] = + conditionalSpikeTimes[i][most_recent_conditioning_indices[i] - j + 1] - + conditionalSpikeTimes[i][most_recent_conditioning_indices[i] - j]; + jointPast[index_of_next_embedding_interval] = + conditionalSpikeTimes[i][most_recent_conditioning_indices[i] - j + 1] - + conditionalSpikeTimes[i][most_recent_conditioning_indices[i] - j]; + index_of_next_embedding_interval += 1; } } - - targetEmbeddings.add(destPast); + + // Add the embedding intervals from the source process (this only gets added to the joint embeddings) + jointPast[k + total_length_of_conditioning_embeddings] = pointsAtWhichToMakeEmbeddings[embedding_point_index] + - sourceSpikeTimes[most_recent_source_index]; + for (int i = 1; i < l; i++) { + jointPast[k + total_length_of_conditioning_embeddings + i] = sourceSpikeTimes[most_recent_source_index - i + 1] + - sourceSpikeTimes[most_recent_source_index - i]; + } + + // Add Gaussian noise, if necessary + if (addNoise) { + for (int i = 0; i < conditioningPast.length; i++) { + conditioningPast[i] += random.nextGaussian() * noiseLevel; + } + for (int i = 0; i < jointPast.length; i++) { + jointPast[i] += random.nextGaussian() * noiseLevel; + } + } + + ConditioningEmbeddings.add(conditioningPast); jointEmbeddings.add(jointPast); } } - protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, - Vector targetEmbeddingsFromSpikes, Vector jointEmbeddingsFromSpikes, - Vector targetEmbeddingsFromSamples, Vector jointEmbeddingsFromSamples) - throws Exception { - // addObservationsAfterParamsDetermined(sourceSpikeTimes, destSpikeTimes); - + protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, double[][] conditionalSpikeTimes, + Vector ConditioningEmbeddingsFromSpikes, Vector jointEmbeddingsFromSpikes, + Vector ConditioningEmbeddingsFromSamples, Vector jointEmbeddingsFromSamples, + Vector processTimeLengths) + throws Exception { + // First sort the spike times in case they were not properly in ascending order: Arrays.sort(sourceSpikeTimes); Arrays.sort(destSpikeTimes); + + int first_target_index_of_embedding = k; + while (destSpikeTimes[first_target_index_of_embedding] <= sourceSpikeTimes[l - 1]) { + first_target_index_of_embedding++; + } + if (conditionalSpikeTimes.length != condEmbedDims.length) { + throw new Exception("Number of conditional embedding lengths does not match the number of conditional processes"); + } + for (int i = 0; i < conditionalSpikeTimes.length; i++) { + while (destSpikeTimes[first_target_index_of_embedding] <= conditionalSpikeTimes[i][condEmbedDims[i]]) { + first_target_index_of_embedding++; + } + } - double sample_lower_bound = Arrays.stream(sourceSpikeTimes).min().getAsDouble(); - double sample_upper_bound = Arrays.stream(sourceSpikeTimes).max().getAsDouble(); - double[] randomSampleTimes = new double[sourceSpikeTimes.length]; + //processTimeLengths.add(destSpikeTimes[sourceSpikeTimes.length - 1] - destSpikeTimes[first_target_index_of_embedding]); + processTimeLengths.add(destSpikeTimes[destSpikeTimes.length - 1] - destSpikeTimes[first_target_index_of_embedding]); + + double sample_lower_bound = destSpikeTimes[first_target_index_of_embedding]; + double sample_upper_bound = destSpikeTimes[destSpikeTimes.length - 1]; + int num_samples = (int) Math.round(num_samples_multiplier * (destSpikeTimes.length - first_target_index_of_embedding + 1)); + double[] randomSampleTimes = new double[num_samples]; Random rand = new Random(); for (int i = 0; i < randomSampleTimes.length; i++) { randomSampleTimes[i] = sample_lower_bound + rand.nextDouble() * (sample_upper_bound - sample_lower_bound); } Arrays.sort(randomSampleTimes); - makeEmbeddingsAtPoints(destSpikeTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSpikes, jointEmbeddingsFromSpikes); - makeEmbeddingsAtPoints(randomSampleTimes, sourceSpikeTimes, destSpikeTimes, targetEmbeddingsFromSamples, jointEmbeddingsFromSamples); + makeEmbeddingsAtPoints(destSpikeTimes, first_target_index_of_embedding, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, + ConditioningEmbeddingsFromSpikes, jointEmbeddingsFromSpikes); + makeEmbeddingsAtPoints(randomSampleTimes, 0, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, + ConditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples); } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getAddedMoreThanOneObservationSet() + + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# + * getAddedMoreThanOneObservationSet() */ @Override public boolean getAddedMoreThanOneObservationSet() { - return (vectorOfDestinationSpikeTimes != null) && - (vectorOfDestinationSpikeTimes.size() > 1); + return (vectorOfDestinationSpikeTimes != null) && (vectorOfDestinationSpikeTimes.size() > 1); } - private double max_neighbour_distance(PriorityQueue nnPQ) { - double max_val = -1e9; - while (nnPQ.peek() != null) { - NeighbourNodeData nnData = nnPQ.poll(); - if (nnData.norms[0] > max_val) { - max_val = nnData.norms[0]; + // Class to allow returning two values in the subsequent method + private static class distanceAndNumPoints { + public double distance; + public int numPoints; + + public distanceAndNumPoints(double distance, int numPoints) { + this.distance = distance; + this.numPoints = numPoints; + } + } + + private distanceAndNumPoints findMaxDistanceAndNumPointsFromIndices(double[] point, int[] indices, Vector setOfPoints) { + double maxDistance = 0; + int i = 0; + for (; indices[i] != -1; i++) { + double distance = KdTree.norm(point, setOfPoints.elementAt(indices[i]), normType); + if (distance > maxDistance) { + maxDistance = distance; } } - return max_val; + return new distanceAndNumPoints(maxDistance, i); } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeAverageLocalOfObservations() + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# + * computeAverageLocalOfObservations() */ @Override public double computeAverageLocalOfObservations() throws Exception { double currentSum = 0; - for (int i = 0; i < targetEmbeddingsFromSpikes.size(); i++) { + for (int i = 0; i < ConditioningEmbeddingsFromSpikes.size(); i++) { - PriorityQueue nnPQJointSpikes = - kdTreeJointAtSpikes.findKNearestNeighbours(Knns + 1, new double[][] {jointEmbeddingsFromSpikes.elementAt(i)}); - PriorityQueue nnPQJointSamples = - kdTreeJointAtSamples.findKNearestNeighbours(Knns, new double[][] {jointEmbeddingsFromSpikes.elementAt(i)}); - PriorityQueue nnPQConditioningSpikes = - kdTreeConditioningAtSpikes.findKNearestNeighbours(Knns + 1, new double[][] {targetEmbeddingsFromSpikes.elementAt(i)}); - PriorityQueue nnPQConditioningSamples = - kdTreeConditioningAtSamples.findKNearestNeighbours(Knns, new double[][] {targetEmbeddingsFromSpikes.elementAt(i)}); + double radiusJointSpikes = kdTreeJointAtSpikes.findKNearestNeighbours(Knns, i).poll().norms[0]; + double radiusJointSamples = kdTreeJointAtSamples.findKNearestNeighbours(Knns, + new double[][] { jointEmbeddingsFromSpikes.elementAt(i) }).poll().norms[0]; - double radiusJointSpikes = max_neighbour_distance(nnPQJointSpikes); - double radiusJointSamples = max_neighbour_distance(nnPQJointSamples); - double radiusConditioningSpikes = max_neighbour_distance(nnPQConditioningSpikes); - double radiusConditioningSamples = max_neighbour_distance(nnPQConditioningSamples); + /* + The algorithm specified in box 1 of doi.org/10.1371/journal.pcbi.1008054 specifies finding the maximum of the two radii + just calculated and then redoing the searches in both sets at this radius. In this implementation, however, we make use + of the fact that one radius is equal to the maximum, and so only one search needs to be redone. + */ + double eps = 0.01; + // Need variables for the number of neighbours as this is now variable within the maximum radius + int kJointSpikes = 0; + int kJointSamples = 0; + if (radiusJointSpikes >= radiusJointSamples) { + /* + The maximum was the radius in the set of embeddings at spikes, so redo search in the set of embeddings at randomly + sampled points, using this larger radius. + */ + kJointSpikes = Knns; + int[] indicesWithinR = new int[jointEmbeddingsFromSamples.size()]; + boolean[] isWithinR = new boolean[jointEmbeddingsFromSamples.size()]; + kdTreeJointAtSamples.findPointsWithinR(radiusJointSpikes + eps, + new double[][] { jointEmbeddingsFromSpikes.elementAt(i) }, + true, + isWithinR, + indicesWithinR); + distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(jointEmbeddingsFromSpikes.elementAt(i), indicesWithinR, + jointEmbeddingsFromSamples); + kJointSamples = temp.numPoints; + radiusJointSamples = temp.distance; + } else { + /* + The maximum was the radius in the set of embeddings at randomly sampled points, so redo search in the set of embeddings + at spikes, using this larger radius. + */ + kJointSamples = Knns; + int[] indicesWithinR = new int[jointEmbeddingsFromSamples.size()]; + boolean[] isWithinR = new boolean[jointEmbeddingsFromSamples.size()]; + kdTreeJointAtSpikes.findPointsWithinR(radiusJointSamples + eps, + new double[][] { jointEmbeddingsFromSpikes.elementAt(i) }, + true, + isWithinR, + indicesWithinR); + distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(jointEmbeddingsFromSpikes.elementAt(i), indicesWithinR, + jointEmbeddingsFromSpikes); + // -1 due to the point itself being in the set + kJointSpikes = temp.numPoints - 1; + radiusJointSpikes = temp.distance; + } + + // Repeat the above steps, but in the conditioning (rather than joint) space. + double radiusConditioningSpikes = kdTreeConditioningAtSpikes.findKNearestNeighbours(Knns, i).poll().norms[0]; + double radiusConditioningSamples = kdTreeConditioningAtSamples.findKNearestNeighbours(Knns, + new double[][] { ConditioningEmbeddingsFromSpikes.elementAt(i) }).poll().norms[0]; + int kConditioningSpikes = 0; + int kConditioningSamples = 0; + if (radiusConditioningSpikes >= radiusConditioningSamples) { + kConditioningSpikes = Knns; + int[] indicesWithinR = new int[ConditioningEmbeddingsFromSamples.size()]; + boolean[] isWithinR = new boolean[ConditioningEmbeddingsFromSamples.size()]; + kdTreeConditioningAtSamples.findPointsWithinR(radiusConditioningSpikes + eps, + new double[][] { ConditioningEmbeddingsFromSpikes.elementAt(i) }, + true, + isWithinR, + indicesWithinR); + distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(ConditioningEmbeddingsFromSpikes.elementAt(i), indicesWithinR, + ConditioningEmbeddingsFromSamples); + kConditioningSamples = temp.numPoints; + radiusConditioningSamples = temp.distance; + } else { + kConditioningSamples = Knns; + int[] indicesWithinR = new int[ConditioningEmbeddingsFromSamples.size()]; + boolean[] isWithinR = new boolean[ConditioningEmbeddingsFromSamples.size()]; + kdTreeConditioningAtSpikes.findPointsWithinR(radiusConditioningSamples + eps, + new double[][] { ConditioningEmbeddingsFromSpikes.elementAt(i) }, + true, + isWithinR, + indicesWithinR); + distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(ConditioningEmbeddingsFromSpikes.elementAt(i), indicesWithinR, + ConditioningEmbeddingsFromSpikes); + // -1 due to the point itself being in the set + kConditioningSpikes = temp.numPoints - 1; + radiusConditioningSpikes = temp.distance; + } - currentSum += ((k + l) * (- Math.log(radiusJointSpikes) + Math.log(radiusJointSamples)) - + k * (Math.log(radiusConditioningSpikes) - Math.log(radiusConditioningSamples))); + + + currentSum += (MathsUtils.digamma(kJointSpikes) - MathsUtils.digamma(kJointSamples) + + ((k + l) * (-Math.log(radiusJointSpikes) + Math.log(radiusJointSamples))) - + MathsUtils.digamma(kConditioningSpikes) + MathsUtils.digamma(kConditioningSamples) + + + (k * (Math.log(radiusConditioningSpikes) - Math.log(radiusConditioningSamples)))); + if (Double.isNaN(currentSum)) { + throw new Exception(kJointSpikes + " " + kJointSamples + " " + kConditioningSpikes + " " + kConditioningSamples + "\n" + + radiusJointSpikes + " " + radiusJointSamples + " " + radiusConditioningSpikes + " " + radiusConditioningSamples); + } } // Normalise by time - currentSum /= (vectorOfDestinationSpikeTimes.elementAt(0)[vectorOfDestinationSpikeTimes.elementAt(0).length - 1] - - vectorOfDestinationSpikeTimes.elementAt(0)[0]); + double time_sum = 0; + for (Double time : processTimeLengths) { + time_sum += time; + } + currentSum /= time_sum; return currentSum; } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeLocalOfPreviousObservations() + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# + * computeLocalOfPreviousObservations() */ @Override - public SpikingLocalInformationValues computeLocalOfPreviousObservations() - throws Exception { + public SpikingLocalInformationValues computeLocalOfPreviousObservations() throws Exception { // TODO Auto-generated method stub return null; } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeSignificance(int) + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# + * computeSignificance(int) */ @Override - public EmpiricalMeasurementDistribution computeSignificance( - int numPermutationsToCheck) throws Exception { + public EmpiricalMeasurementDistribution computeSignificance(int numPermutationsToCheck) throws Exception { // TODO Auto-generated method stub return null; } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeSignificance(int[][]) + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# + * computeSignificance(int[][]) */ @Override - public EmpiricalMeasurementDistribution computeSignificance( - int[][] newOrderings) throws Exception { + public EmpiricalMeasurementDistribution computeSignificance(int[][] newOrderings) throws Exception { // TODO Auto-generated method stub return null; } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setDebug(boolean) + /* + * (non-Javadoc) + * + * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setDebug( + * boolean) */ @Override public void setDebug(boolean debug) { this.debug = debug; } - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getLastAverage() + /* + * (non-Javadoc) + * + * @see + * infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getLastAverage + * () */ @Override public double getLastAverage() { diff --git a/java/source/infodynamics/utils/KdTree.java b/java/source/infodynamics/utils/KdTree.java index 8e5b6f6..0f58755 100644 --- a/java/source/infodynamics/utils/KdTree.java +++ b/java/source/infodynamics/utils/KdTree.java @@ -337,7 +337,7 @@ public class KdTree extends NearestNeighbourSearcher { double difference = x1[d] - x2[d]; distance += difference * difference; } - return distance; + return Math.sqrt(distance); } } @@ -359,6 +359,7 @@ public class KdTree extends NearestNeighbourSearcher { */ public final static double normWithAbort(double[] x1, double[] x2, double limit, int normToUse) { + double distance = 0.0; switch (normToUse) { case EuclideanUtils.NORM_MAX_NORM: @@ -379,15 +380,17 @@ public class KdTree extends NearestNeighbourSearcher { return distance; // case EuclideanUtils.NORM_EUCLIDEAN_SQUARED: default: + // Limit is often r, so must square + limit = limit * limit; // Inlined from {@link EuclideanUtils}: for (int d = 0; d < x1.length; d++) { double difference = x1[d] - x2[d]; distance += difference * difference; if (distance > limit) { - return Double.POSITIVE_INFINITY; + return Double.POSITIVE_INFINITY; } } - return distance; + return Math.sqrt(distance); } } @@ -1305,9 +1308,10 @@ public class KdTree extends NearestNeighbourSearcher { if (normTypeToUse == EuclideanUtils.NORM_MAX_NORM) { absDistOnThisDim = (distOnThisDim > 0) ? distOnThisDim : - distOnThisDim; } else { + absDistOnThisDim = (distOnThisDim > 0) ? distOnThisDim : - distOnThisDim; // norm type is EuclideanUtils#NORM_EUCLIDEAN_SQUARED // Track the square distance - absDistOnThisDim = distOnThisDim * distOnThisDim; + //absDistOnThisDim = distOnThisDim; } if ((node.indexOfThisPoint != sampleIndex) && @@ -2053,7 +2057,7 @@ public class KdTree extends NearestNeighbourSearcher { KdTreeNode node, int level, double r, boolean allowEqualToR, boolean[] isWithinR, int[] indicesWithinR, int nextIndexInIndicesWithinR) { - + //System.out.println("foo"); // Point to the correct array for the data at this level int currentDim = level % totalDimensions; double[][] data = dimensionToArray[currentDim]; @@ -2068,9 +2072,9 @@ public class KdTree extends NearestNeighbourSearcher { if (normTypeToUse == EuclideanUtils.NORM_MAX_NORM) { absDistOnThisDim = (distOnThisDim > 0) ? distOnThisDim : - distOnThisDim; } else { + absDistOnThisDim = (distOnThisDim > 0) ? distOnThisDim : - distOnThisDim; // norm type is EuclideanUtils#NORM_EUCLIDEAN_SQUARED // Track the square distance - absDistOnThisDim = distOnThisDim * distOnThisDim; } if ((absDistOnThisDim < r) || diff --git a/tester.py b/tester.py index a010ee4..09817c4 100755 --- a/tester.py +++ b/tester.py @@ -27,15 +27,14 @@ import os import numpy as np -NUM_REPS = 20 -NUM_SPIKES = int(1e4) +NUM_REPS = 5 +NUM_SPIKES = int(5e3) +NUM_OBSERVATIONS = 2 # Params for canonical example generation RATE_Y = 1.0 RATE_X_MAX = 10 - - def generate_canonical_example_processes(num_y_events): event_train_x = [] event_train_x.append(0) @@ -76,30 +75,97 @@ if (not(os.path.isfile(jarLocation))): # Start the JVM (add the "-Xmx" option with say 1024M if you get crashes due to not enough memory space) startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=" + jarLocation) teCalcClass = JPackage("infodynamics.measures.spiking.integration").TransferEntropyCalculatorSpikingIntegration -teCalc = teCalcClass() -teCalc.setProperty("knns", "4") + +teCalc = teCalcClass() +teCalc.setProperty("knns", "4") print("Independent Poisson Processes") -teCalc.setProperty("k_HISTORY", "1") -teCalc.setProperty("l_HISTORY", "1") +teCalc.setProperty("COND_EMBED_LENGTHS", "2,2") +teCalc.setProperty("k_HISTORY", "2") +teCalc.setProperty("l_HISTORY", "2") +teCalc.setProperty("NORM_TYPE", "MAX_NORM") results_poisson = np.zeros(NUM_REPS) for i in range(NUM_REPS): - sourceArray = NUM_SPIKES*np.random.random(NUM_SPIKES) - sourceArray.sort() - destArray = NUM_SPIKES*np.random.random(NUM_SPIKES) - destArray.sort() - - teCalc.setObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray)) + teCalc.startAddObservations() + for j in range(NUM_OBSERVATIONS): + sourceArray = NUM_SPIKES*np.random.random(NUM_SPIKES) + sourceArray.sort() + destArray = NUM_SPIKES*np.random.random(NUM_SPIKES) + destArray.sort() + condArray = NUM_SPIKES*np.random.random((2, NUM_SPIKES)) + condArray.sort(axis = 1) + teCalc.addObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray), JArray(JDouble, 2)(condArray)) + teCalc.finaliseAddObservations(); result = teCalc.computeAverageLocalOfObservations() print("TE result %.4f nats" % (result,)) results_poisson[i] = result print("Summary: mean ", np.mean(results_poisson), " std dev ", np.std(results_poisson)) -print("Canonical example") + + + + + +teCalc = teCalcClass() +teCalc.setProperty("knns", "4") +print("Noisy copy zero TE") +teCalc.setProperty("COND_EMBED_LENGTHS", "2") teCalc.setProperty("k_HISTORY", "2") -teCalc.setProperty("l_HISTORY", "1") +teCalc.setProperty("l_HISTORY", "2") + +results_noisy_zero = np.zeros(NUM_REPS) +for i in range(NUM_REPS): + teCalc.startAddObservations() + for j in range(NUM_OBSERVATIONS): + condArray = NUM_SPIKES*np.random.random((1, NUM_SPIKES)) + condArray.sort(axis = 1) + sourceArray = condArray[0, :] + 0.25 + 0.1 * np.random.normal(size = condArray.shape[1]) + sourceArray.sort() + destArray = condArray[0, :] + 0.5 + 0.1 * np.random.normal(size = condArray.shape[1]) + destArray.sort() + teCalc.addObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray), JArray(JDouble, 2)(condArray)) + teCalc.finaliseAddObservations(); + result = teCalc.computeAverageLocalOfObservations() + print("TE result %.4f nats" % (result,)) + results_poisson[i] = result +print("Summary: mean ", np.mean(results_poisson), " std dev ", np.std(results_poisson)) + + + +teCalc = teCalcClass() +teCalc.setProperty("knns", "4") +print("Noisy copy non-zero TE") +teCalc.setProperty("COND_EMBED_LENGTHS", "2") +teCalc.setProperty("k_HISTORY", "2") +teCalc.setProperty("l_HISTORY", "2") + +results_noisy_zero = np.zeros(NUM_REPS) +for i in range(NUM_REPS): + teCalc.startAddObservations() + for j in range(NUM_OBSERVATIONS): + sourceArray = NUM_SPIKES*np.random.random(NUM_SPIKES) + sourceArray.sort() + condArray = sourceArray + 0.25 + 0.1 * np.random.normal(size = sourceArray.shape) + condArray.sort() + condArray = np.expand_dims(condArray, 0) + destArray = sourceArray + 0.5 + 0.1 * np.random.normal(size = sourceArray.shape) + destArray.sort() + teCalc.addObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray), JArray(JDouble, 2)(condArray)) + teCalc.finaliseAddObservations(); + result = teCalc.computeAverageLocalOfObservations() + print("TE result %.4f nats" % (result,)) + results_poisson[i] = result +print("Summary: mean ", np.mean(results_poisson), " std dev ", np.std(results_poisson)) + +print("Canonical example") +teCalc = teCalcClass() +teCalc.setProperty("knns", "4") +teCalc.setProperty("k_HISTORY", "2") +teCalc.setProperty("l_HISTORY", "1") +#teCalc.setProperty("NUM_SAMPLES_MULTIPLIER", "1") +#teCalc.setProperty("NORM_TYPE", "MAX_NORM") results_canonical = np.zeros(NUM_REPS) for i in range(NUM_REPS): From dd215fdfbbc7d17eacb9dccc209aa381efe3a9dc Mon Sep 17 00:00:00 2001 From: David Shorten Date: Wed, 11 Aug 2021 09:20:35 +1000 Subject: [PATCH 40/41] spiking surrogates implemented --- .../TransferEntropyCalculatorSpiking.java | 66 +- ...erEntropyCalculatorSpikingIntegration.java | 474 ++++--- ...orSpikingIntegrationOldRepresentation.java | 1103 ----------------- java/source/infodynamics/utils/KdTree.java | 20 +- tester.py | 50 +- 5 files changed, 354 insertions(+), 1359 deletions(-) delete mode 100644 java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegrationOldRepresentation.java diff --git a/java/source/infodynamics/measures/spiking/TransferEntropyCalculatorSpiking.java b/java/source/infodynamics/measures/spiking/TransferEntropyCalculatorSpiking.java index 5aaaf9f..f9eb40c 100755 --- a/java/source/infodynamics/measures/spiking/TransferEntropyCalculatorSpiking.java +++ b/java/source/infodynamics/measures/spiking/TransferEntropyCalculatorSpiking.java @@ -282,68 +282,12 @@ public interface TransferEntropyCalculatorSpiking { * will vary depending on the underlying implementation */ public SpikingLocalInformationValues computeLocalOfPreviousObservations() throws Exception; - - /** - * Generate a bootstrapped distribution of what the TE would look like, - * under a null hypothesis that the source values of our - * samples had no temporal relation to the destination value. - * - *

See Section II.E "Statistical significance testing" of - * the JIDT paper below for a description of how this is done for MI and TE in general. - *

- * - *

Note that if several disjoint time-series have been added - * as observations using {@link #addObservations(double[])} etc., - * then these separate "trials" will be mixed up in the generation - * of surrogates here.

- * - *

This method (in contrast to {@link #computeSignificance(int[][])}) - * creates random shufflings of the source embedding vectors for the surrogate - * calculations.

- * - * @param numPermutationsToCheck number of surrogate samples to bootstrap - * to generate the distribution. - * @return the distribution of TE scores under this null hypothesis. - * @see "J.T. Lizier, 'JIDT: An information-theoretic - * toolkit for studying the dynamics of complex systems', 2014." - */ - public EmpiricalMeasurementDistribution computeSignificance(int numPermutationsToCheck) throws Exception; - - /** - * Generate a bootstrapped distribution of what the TE would look like, - * under a null hypothesis that the source values of our - * samples had no relation to the destination value. - * - *

See Section II.E "Statistical significance testing" of - * the JIDT paper below for a description of how this is done for MI and TE. - *

- * - *

Note that if several disjoint time-series have been added - * as observations using {@link #addObservations(double[])} etc., - * then these separate "trials" will be mixed up in the generation - * of surrogates here.

- * - *

This method (in contrast to {@link #computeSignificance(int)}) - * allows the user to specify how to construct the surrogates, - * such that repeatable results may be obtained.

- * - * @param newOrderings a specification of how to shuffle the source embedding vectors - * between all of our samples to create the surrogates to generate the distribution with. The first - * index is the permutation number (i.e. newOrderings.length is the number - * of surrogate samples we use to bootstrap to generate the distribution here.) - * Each array newOrderings[i] should be an array of length N (where - * would be the value returned by {@link #getNumObservations()}), - * containing a permutation of the values in 0..(N-1). - * TODO Need to think this through a little more before implementing. - * @return the distribution of channel measure scores under this null hypothesis. - * @see "J.T. Lizier, 'JIDT: An information-theoretic - * toolkit for studying the dynamics of complex systems', 2014." - * @throws Exception where the length of each permutation in newOrderings - * is not equal to the number N samples that were previously supplied. - */ - public EmpiricalMeasurementDistribution computeSignificance( - int[][] newOrderings) throws Exception; + public EmpiricalMeasurementDistribution computeSignificance(int numPermutationsToCheck, double estimatedValue) throws Exception; + + public EmpiricalMeasurementDistribution computeSignificance(int numPermutationsToCheck, + double estimatedValue, long randomSeed) throws Exception; + /** * Set or clear debug mode for extra debug printing to stdout * diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 103cd27..89b6a38 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -6,6 +6,7 @@ import java.util.Iterator; import java.util.PriorityQueue; import java.util.Random; import java.util.Vector; +import java.util.ArrayList; //import infodynamics.measures.continuous.kraskov.EuclideanUtils; import infodynamics.measures.spiking.TransferEntropyCalculatorSpiking; @@ -32,6 +33,14 @@ import infodynamics.utils.ParsedProperties; * @author Joseph Lizier (email, * www) */ + +/* + * TODO + * This implementation of the estimator does not implement dynamic exclusion windows. Such windows make sure + * that history embeddings that overlap are not considered in nearest-neighbour searches (as this breaks the + * independece assumption). Getting dynamic exclusion windows working will probably require modifications to the + * KdTree class. + */ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntropyCalculatorSpiking { /** @@ -76,9 +85,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr */ protected Vector vectorOfConditionalSpikeTimes = null; - Vector ConditioningEmbeddingsFromSpikes = null; + Vector conditioningEmbeddingsFromSpikes = null; Vector jointEmbeddingsFromSpikes = null; - Vector ConditioningEmbeddingsFromSamples = null; + Vector conditioningEmbeddingsFromSamples = null; Vector jointEmbeddingsFromSamples = null; Vector processTimeLengths = null; @@ -114,7 +123,21 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr * of the number of target spikes. */ public static final String PROP_SAMPLE_MULTIPLIER = "NUM_SAMPLES_MULTIPLIER"; - protected double num_samples_multiplier = 1.0; + protected double numSamplesMultiplier = 1.0; + /** + * Property name for the number of random sample points to use in the construction of the surrogates as a multiple + * of the number of target spikes. + */ + public static final String PROP_SURROGATE_SAMPLE_MULTIPLIER = "SURROGATE_NUM_SAMPLES_MULTIPLIER"; + protected double surrogateNumSamplesMultiplier = 1.0; + + /** + * Property for the number of nearest neighbours to use in the construction of the surrogates + */ + public static final String PROP_K_PERM = "K_PERM"; + protected int kPerm = 10; + + /** * Property name for what type of norm to use between data points * for each marginal variable -- Options are defined by @@ -182,29 +205,31 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr public void setProperty(String propertyName, String propertyValue) throws Exception { boolean propertySet = true; if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { - int k_temp = Integer.parseInt(propertyValue); - if (k_temp < 1) { + int kTemp = Integer.parseInt(propertyValue); + if (kTemp < 1) { throw new Exception ("Invalid k value less than 1."); } else { - k = k_temp; + k = kTemp; } } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { - int l_temp = Integer.parseInt(propertyValue); - if (l_temp < 1) { + int lTemp = Integer.parseInt(propertyValue); + if (lTemp < 1) { throw new Exception ("Invalid l value less than 1."); } else { - l = l_temp; + l = lTemp; } } else if (propertyName.equalsIgnoreCase(COND_EMBED_LENGTHS_PROP_NAME)) { - int[] condEmbedDims_temp = ParsedProperties.parseStringArrayOfInts(propertyValue); - for (int dim : condEmbedDims_temp) { + int[] condEmbedDimsTemp = ParsedProperties.parseStringArrayOfInts(propertyValue); + for (int dim : condEmbedDimsTemp) { if (dim < 1) { throw new Exception ("Invalid conditional embedding value less than 1."); } } - condEmbedDims = condEmbedDims_temp; + condEmbedDims = condEmbedDimsTemp; } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { Knns = Integer.parseInt(propertyValue); + } else if (propertyName.equalsIgnoreCase(PROP_K_PERM)) { + kPerm = Integer.parseInt(propertyValue); } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { if (propertyValue.equals("0") || propertyValue.equalsIgnoreCase("false")) { addNoise = false; @@ -215,14 +240,21 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } } else if (propertyName.equalsIgnoreCase(PROP_SAMPLE_MULTIPLIER)) { - double temp_num_samples_multiplier = Double.parseDouble(propertyValue); - if (temp_num_samples_multiplier <= 0) { + double tempNumSamplesMultiplier = Double.parseDouble(propertyValue); + if (tempNumSamplesMultiplier <= 0) { throw new Exception ("Num samples multiplier must be greater than 0."); } else { - num_samples_multiplier = temp_num_samples_multiplier; + numSamplesMultiplier = tempNumSamplesMultiplier; } } else if (propertyName.equalsIgnoreCase(PROP_NORM_TYPE)) { normType = KdTree.validateNormType(propertyValue); + } else if (propertyName.equalsIgnoreCase(PROP_SURROGATE_SAMPLE_MULTIPLIER)) { + double tempSurrogateNumSamplesMultiplier = Double.parseDouble(propertyValue); + if (tempSurrogateNumSamplesMultiplier <= 0) { + throw new Exception ("Surrogate Num samples multiplier must be greater than 0."); + } else { + surrogateNumSamplesMultiplier = tempSurrogateNumSamplesMultiplier; + } } else { // No property was set on this class propertySet = false; @@ -251,7 +283,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { return Double.toString(noiseLevel); } else if (propertyName.equalsIgnoreCase(PROP_SAMPLE_MULTIPLIER)) { - return Double.toString(num_samples_multiplier); + return Double.toString(numSamplesMultiplier); } else { // No property matches for this class return null; @@ -319,45 +351,43 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr @Override public void finaliseAddObservations() throws Exception { - ConditioningEmbeddingsFromSpikes = new Vector(); + conditioningEmbeddingsFromSpikes = new Vector(); jointEmbeddingsFromSpikes = new Vector(); - ConditioningEmbeddingsFromSamples = new Vector(); + conditioningEmbeddingsFromSamples = new Vector(); jointEmbeddingsFromSamples = new Vector(); processTimeLengths = new Vector(); // Send all of the observations through: Iterator sourceIterator = vectorOfSourceSpikeTimes.iterator(); - int timeSeriesIndex = 0; + Iterator conditionalIterator = null; if (vectorOfConditionalSpikeTimes.size() > 0) { - Iterator conditionalIterator = vectorOfConditionalSpikeTimes.iterator(); - for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { - double[] sourceSpikeTimes = sourceIterator.next(); - double[][] conditionalSpikeTimes = conditionalIterator.next(); - processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, ConditioningEmbeddingsFromSpikes, - jointEmbeddingsFromSpikes, ConditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples, - processTimeLengths); - } - } else { - for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { - double[] sourceSpikeTimes = sourceIterator.next(); - double[][] conditionalSpikeTimes = new double[][] {}; - processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, ConditioningEmbeddingsFromSpikes, - jointEmbeddingsFromSpikes, ConditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples, - processTimeLengths); + conditionalIterator = vectorOfConditionalSpikeTimes.iterator(); + } + int timeSeriesIndex = 0; + for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { + double[] sourceSpikeTimes = sourceIterator.next(); + double[][] conditionalSpikeTimes = null; + if (vectorOfConditionalSpikeTimes.size() > 0) { + conditionalSpikeTimes = conditionalIterator.next(); + } else { + conditionalSpikeTimes = new double[][] {}; } + processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, conditioningEmbeddingsFromSpikes, + jointEmbeddingsFromSpikes, conditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples, + numSamplesMultiplier); } // Convert the vectors to arrays so that they can be put in the trees - double[][] arrayedTargetEmbeddingsFromSpikes = new double[ConditioningEmbeddingsFromSpikes.size()][k]; - double[][] arrayedJointEmbeddingsFromSpikes = new double[ConditioningEmbeddingsFromSpikes.size()][k + l]; - for (int i = 0; i < ConditioningEmbeddingsFromSpikes.size(); i++) { - arrayedTargetEmbeddingsFromSpikes[i] = ConditioningEmbeddingsFromSpikes.elementAt(i); + double[][] arrayedTargetEmbeddingsFromSpikes = new double[conditioningEmbeddingsFromSpikes.size()][k]; + double[][] arrayedJointEmbeddingsFromSpikes = new double[conditioningEmbeddingsFromSpikes.size()][k + l]; + for (int i = 0; i < conditioningEmbeddingsFromSpikes.size(); i++) { + arrayedTargetEmbeddingsFromSpikes[i] = conditioningEmbeddingsFromSpikes.elementAt(i); arrayedJointEmbeddingsFromSpikes[i] = jointEmbeddingsFromSpikes.elementAt(i); } - double[][] arrayedTargetEmbeddingsFromSamples = new double[ConditioningEmbeddingsFromSamples.size()][k]; - double[][] arrayedJointEmbeddingsFromSamples = new double[ConditioningEmbeddingsFromSamples.size()][k + l]; - for (int i = 0; i < ConditioningEmbeddingsFromSamples.size(); i++) { - arrayedTargetEmbeddingsFromSamples[i] = ConditioningEmbeddingsFromSamples.elementAt(i); + double[][] arrayedTargetEmbeddingsFromSamples = new double[conditioningEmbeddingsFromSamples.size()][k]; + double[][] arrayedJointEmbeddingsFromSamples = new double[conditioningEmbeddingsFromSamples.size()][k + l]; + for (int i = 0; i < conditioningEmbeddingsFromSamples.size(); i++) { + arrayedTargetEmbeddingsFromSamples[i] = conditioningEmbeddingsFromSamples.elementAt(i); arrayedJointEmbeddingsFromSamples[i] = jointEmbeddingsFromSamples.elementAt(i); } @@ -372,48 +402,48 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr kdTreeConditioningAtSamples.setNormType(normType); } - protected void makeEmbeddingsAtPoints(double[] pointsAtWhichToMakeEmbeddings, int index_of_first_point_to_use, + protected void makeEmbeddingsAtPoints(double[] pointsAtWhichToMakeEmbeddings, int indexOfFirstPointToUse, double[] sourceSpikeTimes, double[] destSpikeTimes, double[][] conditionalSpikeTimes, - Vector ConditioningEmbeddings, + Vector conditioningEmbeddings, Vector jointEmbeddings) { Random random = new Random(); - int embedding_point_index = index_of_first_point_to_use; - int most_recent_dest_index = k; - int most_recent_source_index = l; - int[] most_recent_conditioning_indices = Arrays.copyOf(condEmbedDims, condEmbedDims.length); - int total_length_of_conditioning_embeddings = 0; + int embeddingPointIndex = indexOfFirstPointToUse; + int mostRecentDestIndex = k; + int mostRecentSourceIndex = l; + int[] mostRecentConditioningIndices = Arrays.copyOf(condEmbedDims, condEmbedDims.length); + int totalLengthOfConditioningEmbeddings = 0; for (int i = 0; i < condEmbedDims.length; i++) { - total_length_of_conditioning_embeddings += condEmbedDims[i]; + totalLengthOfConditioningEmbeddings += condEmbedDims[i]; } // Loop through the points at which embeddings need to be made - for (; embedding_point_index < pointsAtWhichToMakeEmbeddings.length; embedding_point_index++) { + for (; embeddingPointIndex < pointsAtWhichToMakeEmbeddings.length; embeddingPointIndex++) { // Advance the tracker of the most recent dest index - while (most_recent_dest_index < (destSpikeTimes.length - 1)) { - if (destSpikeTimes[most_recent_dest_index + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { - most_recent_dest_index++; + while (mostRecentDestIndex < (destSpikeTimes.length - 1)) { + if (destSpikeTimes[mostRecentDestIndex + 1] < pointsAtWhichToMakeEmbeddings[embeddingPointIndex]) { + mostRecentDestIndex++; } else { break; } } // Do the same for the most recent source index - while (most_recent_source_index < (sourceSpikeTimes.length - 1)) { - if (sourceSpikeTimes[most_recent_source_index - + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { - most_recent_source_index++; + while (mostRecentSourceIndex < (sourceSpikeTimes.length - 1)) { + if (sourceSpikeTimes[mostRecentSourceIndex + + 1] < pointsAtWhichToMakeEmbeddings[embeddingPointIndex]) { + mostRecentSourceIndex++; } else { break; } } // Now advance the trackers for the most recent conditioning indices - for (int j = 0; j < most_recent_conditioning_indices.length; j++) { - while (most_recent_conditioning_indices[j] < (conditionalSpikeTimes[j].length - 1)) { - if (conditionalSpikeTimes[j][most_recent_conditioning_indices[j] + 1] < pointsAtWhichToMakeEmbeddings[embedding_point_index]) { - most_recent_conditioning_indices[j]++; + for (int j = 0; j < mostRecentConditioningIndices.length; j++) { + while (mostRecentConditioningIndices[j] < (conditionalSpikeTimes[j].length - 1)) { + if (conditionalSpikeTimes[j][mostRecentConditioningIndices[j] + 1] < pointsAtWhichToMakeEmbeddings[embeddingPointIndex]) { + mostRecentConditioningIndices[j]++; } else { break; } @@ -421,45 +451,45 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } - double[] conditioningPast = new double[k + total_length_of_conditioning_embeddings]; - double[] jointPast = new double[k + total_length_of_conditioning_embeddings + l]; + double[] conditioningPast = new double[k + totalLengthOfConditioningEmbeddings]; + double[] jointPast = new double[k + totalLengthOfConditioningEmbeddings + l]; // Add the embedding intervals from the target process - conditioningPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - destSpikeTimes[most_recent_dest_index]; - jointPast[0] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - - destSpikeTimes[most_recent_dest_index]; + conditioningPast[0] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] - destSpikeTimes[mostRecentDestIndex]; + jointPast[0] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] + - destSpikeTimes[mostRecentDestIndex]; for (int i = 1; i < k; i++) { - conditioningPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] - - destSpikeTimes[most_recent_dest_index - i]; - jointPast[i] = destSpikeTimes[most_recent_dest_index - i + 1] - - destSpikeTimes[most_recent_dest_index - i]; + conditioningPast[i] = destSpikeTimes[mostRecentDestIndex - i + 1] + - destSpikeTimes[mostRecentDestIndex - i]; + jointPast[i] = destSpikeTimes[mostRecentDestIndex - i + 1] + - destSpikeTimes[mostRecentDestIndex - i]; } // Add the embeding intervals from the conditional processes - int index_of_next_embedding_interval = k; + int indexOfNextEmbeddingInterval = k; for (int i = 0; i < condEmbedDims.length; i++) { - conditioningPast[index_of_next_embedding_interval] = - pointsAtWhichToMakeEmbeddings[embedding_point_index] - conditionalSpikeTimes[i][most_recent_conditioning_indices[i]]; - jointPast[index_of_next_embedding_interval] = - pointsAtWhichToMakeEmbeddings[embedding_point_index] - conditionalSpikeTimes[i][most_recent_conditioning_indices[i]]; - index_of_next_embedding_interval += 1; + conditioningPast[indexOfNextEmbeddingInterval] = + pointsAtWhichToMakeEmbeddings[embeddingPointIndex] - conditionalSpikeTimes[i][mostRecentConditioningIndices[i]]; + jointPast[indexOfNextEmbeddingInterval] = + pointsAtWhichToMakeEmbeddings[embeddingPointIndex] - conditionalSpikeTimes[i][mostRecentConditioningIndices[i]]; + indexOfNextEmbeddingInterval += 1; for (int j = 1; j < condEmbedDims[i]; j++) { - conditioningPast[index_of_next_embedding_interval] = - conditionalSpikeTimes[i][most_recent_conditioning_indices[i] - j + 1] - - conditionalSpikeTimes[i][most_recent_conditioning_indices[i] - j]; - jointPast[index_of_next_embedding_interval] = - conditionalSpikeTimes[i][most_recent_conditioning_indices[i] - j + 1] - - conditionalSpikeTimes[i][most_recent_conditioning_indices[i] - j]; - index_of_next_embedding_interval += 1; + conditioningPast[indexOfNextEmbeddingInterval] = + conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - j + 1] - + conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - j]; + jointPast[indexOfNextEmbeddingInterval] = + conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - j + 1] - + conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - j]; + indexOfNextEmbeddingInterval += 1; } } // Add the embedding intervals from the source process (this only gets added to the joint embeddings) - jointPast[k + total_length_of_conditioning_embeddings] = pointsAtWhichToMakeEmbeddings[embedding_point_index] - - sourceSpikeTimes[most_recent_source_index]; + jointPast[k + totalLengthOfConditioningEmbeddings] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] + - sourceSpikeTimes[mostRecentSourceIndex]; for (int i = 1; i < l; i++) { - jointPast[k + total_length_of_conditioning_embeddings + i] = sourceSpikeTimes[most_recent_source_index - i + 1] - - sourceSpikeTimes[most_recent_source_index - i]; + jointPast[k + totalLengthOfConditioningEmbeddings + i] = sourceSpikeTimes[mostRecentSourceIndex - i + 1] + - sourceSpikeTimes[mostRecentSourceIndex - i]; } // Add Gaussian noise, if necessary @@ -472,51 +502,85 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } } - ConditioningEmbeddings.add(conditioningPast); + conditioningEmbeddings.add(conditioningPast); jointEmbeddings.add(jointPast); } } - protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, double[][] conditionalSpikeTimes, - Vector ConditioningEmbeddingsFromSpikes, Vector jointEmbeddingsFromSpikes, - Vector ConditioningEmbeddingsFromSamples, Vector jointEmbeddingsFromSamples, - Vector processTimeLengths) - throws Exception { + + + protected int getFirstDestIndex(double[] sourceSpikeTimes, double[] destSpikeTimes, double[][] conditionalSpikeTimes, Boolean setProcessTimeLengths) + throws Exception{ // First sort the spike times in case they were not properly in ascending order: Arrays.sort(sourceSpikeTimes); Arrays.sort(destSpikeTimes); - int first_target_index_of_embedding = k; - while (destSpikeTimes[first_target_index_of_embedding] <= sourceSpikeTimes[l - 1]) { - first_target_index_of_embedding++; + int firstTargetIndexOfEMbedding = k; + while (destSpikeTimes[firstTargetIndexOfEMbedding] <= sourceSpikeTimes[l - 1]) { + firstTargetIndexOfEMbedding++; } if (conditionalSpikeTimes.length != condEmbedDims.length) { throw new Exception("Number of conditional embedding lengths does not match the number of conditional processes"); } for (int i = 0; i < conditionalSpikeTimes.length; i++) { - while (destSpikeTimes[first_target_index_of_embedding] <= conditionalSpikeTimes[i][condEmbedDims[i]]) { - first_target_index_of_embedding++; + while (destSpikeTimes[firstTargetIndexOfEMbedding] <= conditionalSpikeTimes[i][condEmbedDims[i]]) { + firstTargetIndexOfEMbedding++; } } - //processTimeLengths.add(destSpikeTimes[sourceSpikeTimes.length - 1] - destSpikeTimes[first_target_index_of_embedding]); - processTimeLengths.add(destSpikeTimes[destSpikeTimes.length - 1] - destSpikeTimes[first_target_index_of_embedding]); + // We don't want to reset these lengths when resampling for surrogates + if (setProcessTimeLengths) { + processTimeLengths.add(destSpikeTimes[destSpikeTimes.length - 1] - destSpikeTimes[firstTargetIndexOfEMbedding]); + } - double sample_lower_bound = destSpikeTimes[first_target_index_of_embedding]; - double sample_upper_bound = destSpikeTimes[destSpikeTimes.length - 1]; - int num_samples = (int) Math.round(num_samples_multiplier * (destSpikeTimes.length - first_target_index_of_embedding + 1)); + return firstTargetIndexOfEMbedding; + } + + protected double[] generateRandomSampleTimes(double[] sourceSpikeTimes, double[] destSpikeTimes, double[][] conditionalSpikeTimes, + double actualNumSamplesMultiplier, int firstTargetIndexOfEMbedding) { + + double sampleLowerBound = destSpikeTimes[firstTargetIndexOfEMbedding]; + double sampleUpperBound = destSpikeTimes[destSpikeTimes.length - 1]; + int num_samples = (int) Math.round(actualNumSamplesMultiplier * (destSpikeTimes.length - firstTargetIndexOfEMbedding + 1)); double[] randomSampleTimes = new double[num_samples]; Random rand = new Random(); for (int i = 0; i < randomSampleTimes.length; i++) { - randomSampleTimes[i] = sample_lower_bound + rand.nextDouble() * (sample_upper_bound - sample_lower_bound); + randomSampleTimes[i] = sampleLowerBound + rand.nextDouble() * (sampleUpperBound - sampleLowerBound); } Arrays.sort(randomSampleTimes); - makeEmbeddingsAtPoints(destSpikeTimes, first_target_index_of_embedding, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, - ConditioningEmbeddingsFromSpikes, jointEmbeddingsFromSpikes); + return randomSampleTimes; + } + + protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, double[][] conditionalSpikeTimes, + Vector conditioningEmbeddingsFromSpikes, Vector jointEmbeddingsFromSpikes, + Vector conditioningEmbeddingsFromSamples, Vector jointEmbeddingsFromSamples, + double actualNumSamplesMultiplier) + throws Exception { + + int firstTargetIndexOfEMbedding = getFirstDestIndex(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, true); + double[] randomSampleTimes = generateRandomSampleTimes(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, actualNumSamplesMultiplier, firstTargetIndexOfEMbedding); + + makeEmbeddingsAtPoints(destSpikeTimes, firstTargetIndexOfEMbedding, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, + conditioningEmbeddingsFromSpikes, jointEmbeddingsFromSpikes); makeEmbeddingsAtPoints(randomSampleTimes, 0, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, - ConditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples); + conditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples); + } + + /* + * Method to do the + */ + protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, double[][] conditionalSpikeTimes, + Vector conditioningEmbeddingsFromSamples, Vector jointEmbeddingsFromSamples, + double actualNumSamplesMultiplier) + throws Exception { + + int firstTargetIndexOfEMbedding = getFirstDestIndex(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, false); + double[] randomSampleTimes = generateRandomSampleTimes(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, actualNumSamplesMultiplier, firstTargetIndexOfEMbedding); + + makeEmbeddingsAtPoints(randomSampleTimes, 0, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, + conditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples); } /* @@ -553,28 +617,31 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr return new distanceAndNumPoints(maxDistance, i); } - /* - * (non-Javadoc) - * - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# - * computeAverageLocalOfObservations() - */ @Override public double computeAverageLocalOfObservations() throws Exception { + return computeAverageLocalOfObservations(kdTreeJointAtSpikes, jointEmbeddingsFromSpikes); + } + + + /* + * We take the actual joint tree at spikes (along with the associated embeddings) as an argument, as we will need to swap these out when + * computing surrogates. + */ + public double computeAverageLocalOfObservations(KdTree actualKdTreeJointAtSpikes, Vector actualJointEmbeddingsFromSpikes) throws Exception { double currentSum = 0; - for (int i = 0; i < ConditioningEmbeddingsFromSpikes.size(); i++) { + for (int i = 0; i < conditioningEmbeddingsFromSpikes.size(); i++) { - double radiusJointSpikes = kdTreeJointAtSpikes.findKNearestNeighbours(Knns, i).poll().norms[0]; + double radiusJointSpikes = actualKdTreeJointAtSpikes.findKNearestNeighbours(Knns, i).poll().norms[0]; double radiusJointSamples = kdTreeJointAtSamples.findKNearestNeighbours(Knns, - new double[][] { jointEmbeddingsFromSpikes.elementAt(i) }).poll().norms[0]; + new double[][] { actualJointEmbeddingsFromSpikes.elementAt(i) }).poll().norms[0]; /* The algorithm specified in box 1 of doi.org/10.1371/journal.pcbi.1008054 specifies finding the maximum of the two radii just calculated and then redoing the searches in both sets at this radius. In this implementation, however, we make use of the fact that one radius is equal to the maximum, and so only one search needs to be redone. */ - double eps = 0.01; + double eps = 0.0; // Need variables for the number of neighbours as this is now variable within the maximum radius int kJointSpikes = 0; int kJointSamples = 0; @@ -587,11 +654,11 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr int[] indicesWithinR = new int[jointEmbeddingsFromSamples.size()]; boolean[] isWithinR = new boolean[jointEmbeddingsFromSamples.size()]; kdTreeJointAtSamples.findPointsWithinR(radiusJointSpikes + eps, - new double[][] { jointEmbeddingsFromSpikes.elementAt(i) }, + new double[][] { actualJointEmbeddingsFromSpikes.elementAt(i) }, true, isWithinR, indicesWithinR); - distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(jointEmbeddingsFromSpikes.elementAt(i), indicesWithinR, + distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(actualJointEmbeddingsFromSpikes.elementAt(i), indicesWithinR, jointEmbeddingsFromSamples); kJointSamples = temp.numPoints; radiusJointSamples = temp.distance; @@ -603,13 +670,13 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr kJointSamples = Knns; int[] indicesWithinR = new int[jointEmbeddingsFromSamples.size()]; boolean[] isWithinR = new boolean[jointEmbeddingsFromSamples.size()]; - kdTreeJointAtSpikes.findPointsWithinR(radiusJointSamples + eps, - new double[][] { jointEmbeddingsFromSpikes.elementAt(i) }, + actualKdTreeJointAtSpikes.findPointsWithinR(radiusJointSamples + eps, + new double[][] { actualJointEmbeddingsFromSpikes.elementAt(i) }, true, isWithinR, indicesWithinR); - distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(jointEmbeddingsFromSpikes.elementAt(i), indicesWithinR, - jointEmbeddingsFromSpikes); + distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(actualJointEmbeddingsFromSpikes.elementAt(i), indicesWithinR, + actualJointEmbeddingsFromSpikes); // -1 due to the point itself being in the set kJointSpikes = temp.numPoints - 1; radiusJointSpikes = temp.distance; @@ -618,58 +685,160 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr // Repeat the above steps, but in the conditioning (rather than joint) space. double radiusConditioningSpikes = kdTreeConditioningAtSpikes.findKNearestNeighbours(Knns, i).poll().norms[0]; double radiusConditioningSamples = kdTreeConditioningAtSamples.findKNearestNeighbours(Knns, - new double[][] { ConditioningEmbeddingsFromSpikes.elementAt(i) }).poll().norms[0]; + new double[][] { conditioningEmbeddingsFromSpikes.elementAt(i) }).poll().norms[0]; int kConditioningSpikes = 0; int kConditioningSamples = 0; if (radiusConditioningSpikes >= radiusConditioningSamples) { kConditioningSpikes = Knns; - int[] indicesWithinR = new int[ConditioningEmbeddingsFromSamples.size()]; - boolean[] isWithinR = new boolean[ConditioningEmbeddingsFromSamples.size()]; + int[] indicesWithinR = new int[conditioningEmbeddingsFromSamples.size()]; + boolean[] isWithinR = new boolean[conditioningEmbeddingsFromSamples.size()]; kdTreeConditioningAtSamples.findPointsWithinR(radiusConditioningSpikes + eps, - new double[][] { ConditioningEmbeddingsFromSpikes.elementAt(i) }, + new double[][] { conditioningEmbeddingsFromSpikes.elementAt(i) }, true, isWithinR, indicesWithinR); - distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(ConditioningEmbeddingsFromSpikes.elementAt(i), indicesWithinR, - ConditioningEmbeddingsFromSamples); + distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(conditioningEmbeddingsFromSpikes.elementAt(i), indicesWithinR, + conditioningEmbeddingsFromSamples); kConditioningSamples = temp.numPoints; radiusConditioningSamples = temp.distance; } else { kConditioningSamples = Knns; - int[] indicesWithinR = new int[ConditioningEmbeddingsFromSamples.size()]; - boolean[] isWithinR = new boolean[ConditioningEmbeddingsFromSamples.size()]; + int[] indicesWithinR = new int[conditioningEmbeddingsFromSamples.size()]; + boolean[] isWithinR = new boolean[conditioningEmbeddingsFromSamples.size()]; kdTreeConditioningAtSpikes.findPointsWithinR(radiusConditioningSamples + eps, - new double[][] { ConditioningEmbeddingsFromSpikes.elementAt(i) }, + new double[][] { conditioningEmbeddingsFromSpikes.elementAt(i) }, true, isWithinR, indicesWithinR); - distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(ConditioningEmbeddingsFromSpikes.elementAt(i), indicesWithinR, - ConditioningEmbeddingsFromSpikes); + distanceAndNumPoints temp = findMaxDistanceAndNumPointsFromIndices(conditioningEmbeddingsFromSpikes.elementAt(i), indicesWithinR, + conditioningEmbeddingsFromSpikes); // -1 due to the point itself being in the set kConditioningSpikes = temp.numPoints - 1; radiusConditioningSpikes = temp.distance; } + /* + * TODO + * The KdTree class defaults to the squared euclidean distance when the euclidean norm is specified. This is fine for Kraskov estimators + * (as the radii are never used, just the numbers of points within radii). It causes problems here though, as we do use the radii and the + * squared euclidean distance is not a distance metric. We get around this by just taking the square root here, but it might be better to + * fix this in the KdTree class. + */ + if (normType == EuclideanUtils.NORM_EUCLIDEAN) { + radiusJointSpikes = Math.sqrt(radiusJointSpikes); + radiusJointSamples = Math.sqrt(radiusJointSamples); + radiusConditioningSpikes = Math.sqrt(radiusConditioningSpikes); + radiusConditioningSamples = Math.sqrt(radiusConditioningSamples); + } - currentSum += (MathsUtils.digamma(kJointSpikes) - MathsUtils.digamma(kJointSamples) + ((k + l) * (-Math.log(radiusJointSpikes) + Math.log(radiusJointSamples))) - MathsUtils.digamma(kConditioningSpikes) + MathsUtils.digamma(kConditioningSamples) + + (k * (Math.log(radiusConditioningSpikes) - Math.log(radiusConditioningSamples)))); if (Double.isNaN(currentSum)) { - throw new Exception(kJointSpikes + " " + kJointSamples + " " + kConditioningSpikes + " " + kConditioningSamples + "\n" + - radiusJointSpikes + " " + radiusJointSamples + " " + radiusConditioningSpikes + " " + radiusConditioningSamples); + throw new Exception("NaNs in TE clac"); } } // Normalise by time - double time_sum = 0; + double timeSum = 0; for (Double time : processTimeLengths) { - time_sum += time; + timeSum += time; } - currentSum /= time_sum; + currentSum /= timeSum; return currentSum; } + + @Override + public EmpiricalMeasurementDistribution computeSignificance(int numPermutationsToCheck, double estimatedValue) throws Exception { + return computeSignificance(numPermutationsToCheck, + estimatedValue, + System.currentTimeMillis()); + } + + @Override + public EmpiricalMeasurementDistribution computeSignificance(int numPermutationsToCheck, + double estimatedValue, long randomSeed) throws Exception{ + + Random random = new Random(randomSeed); + double[] surrogateTEValues = new double[numPermutationsToCheck]; + + for (int permutationNumber = 0; permutationNumber < numPermutationsToCheck; permutationNumber++) { + Vector resampledConditioningEmbeddingsFromSamples = new Vector(); + Vector resampledJointEmbeddingsFromSamples = new Vector(); + + // Send all of the observations through: + Iterator sourceIterator = vectorOfSourceSpikeTimes.iterator(); + Iterator conditionalIterator = null; + if (vectorOfConditionalSpikeTimes.size() > 0) { + conditionalIterator = vectorOfConditionalSpikeTimes.iterator(); + } + int timeSeriesIndex = 0; + for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { + double[] sourceSpikeTimes = sourceIterator.next(); + double[][] conditionalSpikeTimes = null; + if (vectorOfConditionalSpikeTimes.size() > 0) { + conditionalSpikeTimes = conditionalIterator.next(); + } else { + conditionalSpikeTimes = new double[][] {}; + } + processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, + resampledConditioningEmbeddingsFromSamples, resampledJointEmbeddingsFromSamples, + surrogateNumSamplesMultiplier); + } + + // Convert the vectors to arrays so that they can be put in the trees + double[][] arrayedResampledConditioningEmbeddingsFromSamples = new double[resampledConditioningEmbeddingsFromSamples.size()][k]; + for (int i = 0; i < resampledConditioningEmbeddingsFromSamples.size(); i++) { + arrayedResampledConditioningEmbeddingsFromSamples[i] = resampledConditioningEmbeddingsFromSamples.elementAt(i); + } + + KdTree resampledKdTreeConditioningAtSamples = new KdTree(arrayedResampledConditioningEmbeddingsFromSamples); + resampledKdTreeConditioningAtSamples.setNormType(normType); + + Vector conditionallyPermutedJointEmbeddingsFromSpikes = new Vector(jointEmbeddingsFromSpikes); + + Vector usedIndices = new Vector(); + for (int i = 0; i < conditionallyPermutedJointEmbeddingsFromSpikes.size(); i++) { + PriorityQueue neighbours = + resampledKdTreeConditioningAtSamples.findKNearestNeighbours(kPerm, + new double[][] {conditioningEmbeddingsFromSpikes.elementAt(i)}); + ArrayList foundIndices = new ArrayList(); + for (int j = 0; j < kPerm; j++) { + foundIndices.add(neighbours.poll().sampleIndex); + } + + ArrayList prunedIndices = new ArrayList(foundIndices); + prunedIndices.removeAll(usedIndices); + int chosenIndex = 0; + if (prunedIndices.size() > 0) { + chosenIndex = prunedIndices.get(random.nextInt(prunedIndices.size())); + } else { + chosenIndex = foundIndices.get(random.nextInt(foundIndices.size())); + } + usedIndices.add(chosenIndex); + int embeddingLength = conditionallyPermutedJointEmbeddingsFromSpikes.elementAt(i).length; + for(int j = 0; j < l; j++) { + conditionallyPermutedJointEmbeddingsFromSpikes.elementAt(i)[embeddingLength - l + j] = + resampledJointEmbeddingsFromSamples.elementAt(chosenIndex)[embeddingLength - l + j]; + } + + } + + double[][] arrayedConditionallyPermutedJointEmbeddingsFromSpikes = new double[conditionallyPermutedJointEmbeddingsFromSpikes.size()][]; + for (int i = 0; i < conditionallyPermutedJointEmbeddingsFromSpikes.size(); i++) { + arrayedConditionallyPermutedJointEmbeddingsFromSpikes[i] = conditionallyPermutedJointEmbeddingsFromSpikes.elementAt(i); + } + KdTree conditionallyPermutedKdTreeJointFromSpikes = new KdTree(arrayedConditionallyPermutedJointEmbeddingsFromSpikes); + conditionallyPermutedKdTreeJointFromSpikes.setNormType(normType); + + surrogateTEValues[permutationNumber] = computeAverageLocalOfObservations(conditionallyPermutedKdTreeJointFromSpikes, + conditionallyPermutedJointEmbeddingsFromSpikes); + } + return new EmpiricalMeasurementDistribution(surrogateTEValues, estimatedValue); + } + + /* * (non-Javadoc) * @@ -682,29 +851,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr return null; } - /* - * (non-Javadoc) - * - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# - * computeSignificance(int) - */ - @Override - public EmpiricalMeasurementDistribution computeSignificance(int numPermutationsToCheck) throws Exception { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking# - * computeSignificance(int[][]) - */ - @Override - public EmpiricalMeasurementDistribution computeSignificance(int[][] newOrderings) throws Exception { - // TODO Auto-generated method stub - return null; - } /* * (non-Javadoc) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegrationOldRepresentation.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegrationOldRepresentation.java deleted file mode 100644 index d6dad78..0000000 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegrationOldRepresentation.java +++ /dev/null @@ -1,1103 +0,0 @@ -package infodynamics.measures.spiking.integration; - -import java.util.Arrays; -import java.util.Iterator; -import java.util.PriorityQueue; -import java.util.Vector; - -import infodynamics.measures.spiking.TransferEntropyCalculatorSpiking; -import infodynamics.utils.EmpiricalMeasurementDistribution; -import infodynamics.utils.KdTree; -import infodynamics.utils.MathsUtils; -import infodynamics.utils.MatrixUtils; -import infodynamics.utils.NeighbourNodeData; -import infodynamics.utils.FirstIndexComparatorDouble; -import infodynamics.utils.UnivariateNearestNeighbourSearcher; - -/** - * Computes the transfer entropy between a pair of spike trains, - * using an integration-based measure in order to match the theoretical - * form of TE between such spike trains. - * - *

Usage paradigm is as per the interface {@link TransferEntropyCalculatorSpiking}

- * - * @author Joseph Lizier (email, - * www) - */ -public class TransferEntropyCalculatorSpikingIntegrationOldRepresentation implements - TransferEntropyCalculatorSpiking { - - /** - * Number of past destination spikes to consider (akin to embedding length) - */ - protected int k = 1; - /** - * Number of past source spikes to consider (akin to embedding length) - */ - protected int l = 1; - - /** - * Number of nearest neighbours to search for in the full joint space - */ - protected int Knns = 4; - - /** - * Storage for source observations supplied via {@link #addObservations(double[], double[])} etc. - */ - protected Vector vectorOfSourceSpikeTimes = null; - - /** - * Storage for destination observations supplied via {@link #addObservations(double[], double[])} etc. - */ - protected Vector vectorOfDestinationSpikeTimes = null; - - // constants for indexing our data storage - protected final static int PREV_DEST = 0; - protected final static int PREV_SOURCE = 1; - protected final static int PREV_POSSIBILITIES = 2; - protected final static int NEXT_DEST = 0; - protected final static int NEXT_SOURCE = 1; - protected final static int NEXT_POSSIBILITIES = 2; - - /** - * Cache of the timing data for each new observed spiking event in both the source - * and destination - */ - Vector[][] eventTimings = null; - /** - * Cache of the timing data for each new observed spiking event for the - * destination only - */ - Vector destPastAndNextTimings = null; - /** - * Cache of the type of event for each new observed spiking event in both the source - * and destination (i.e. which spiked previously, which spiked next - */ - Vector eventTypeLocator = null; - /** - * Cache for each new observed spiking event of which index it has in the vector - * of spiking events of the same type - */ - Vector eventIndexLocator = null; - /** - * Cache for each time-series of observed spiking events of how many - * observations were in that set. - */ - Vector numEventsPerObservationSet = null; - - /** - * KdTrees for searching the joint past spaces and time to next spike, - * for each combination of which spiked previously and next - */ - protected KdTree[][] kdTreesJoint = null; - - /** - * KdTrees for searching the joint past spaces, - * for each combination of which spiked previously and next - */ - protected KdTree[][] kdTreesSourceDestHistories = null; - - /** - * KdTrees for searching the past destination space and time to next spike - */ - protected KdTree kdTreeDestNext = null; - - /** - * KdTrees for searching the past destination space - */ - protected KdTree kdTreeDestHistory = null; - - /** - * NN searcher for the time to next spike space only, if required - */ - protected UnivariateNearestNeighbourSearcher nnSearcherDestTimeToNextSpike = null; - - /** - * Property name for the number of nearest neighbours to search - */ - public static final String KNNS_PROP_NAME = "Knns"; - - - /** - * Stores whether we are in debug mode - */ - protected boolean debug = false; - - public TransferEntropyCalculatorSpikingIntegrationOldRepresentation() { - super(); - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int) - */ - @Override - public void initialise() throws Exception { - initialise(k,l); - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int) - */ - @Override - public void initialise(int k) throws Exception { - initialise(k,this.l); - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#initialise(int, int) - */ - @Override - public void initialise(int k, int l) throws Exception { - if ((k < 1) || (l < 1)) { - throw new Exception("Zero history length not supported"); - } - this.k = k; - this.l = l; - vectorOfSourceSpikeTimes = null; - vectorOfDestinationSpikeTimes = null; - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setProperty(java.lang.String, java.lang.String) - */ - @Override - public void setProperty(String propertyName, String propertyValue) - throws Exception { - boolean propertySet = true; - if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { - k = Integer.parseInt(propertyValue); - } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { - l = Integer.parseInt(propertyValue); - } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { - Knns = Integer.parseInt(propertyValue); - } else { - // No property was set on this class - propertySet = false; - } - if (debug && propertySet) { - System.out.println(this.getClass().getSimpleName() + ": Set property " + propertyName + - " to " + propertyValue); - } - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getProperty(java.lang.String) - */ - @Override - public String getProperty(String propertyName) throws Exception { - if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { - return Integer.toString(k); - } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { - return Integer.toString(l); - } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { - return Integer.toString(Knns); - } else { - // No property matches for this class - return null; - } - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setObservations(double[], double[]) - */ - @Override - public void setObservations(double[] source, double[] destination) - throws Exception { - startAddObservations(); - addObservations(source, destination); - finaliseAddObservations(); - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#startAddObservations() - */ - @Override - public void startAddObservations() { - vectorOfSourceSpikeTimes = new Vector(); - vectorOfDestinationSpikeTimes = new Vector(); - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#addObservations(double[], double[]) - */ - @Override - public void addObservations(double[] source, double[] destination) - throws Exception { - // Store these observations in our vector for now - vectorOfSourceSpikeTimes.add(source); - vectorOfDestinationSpikeTimes.add(destination); - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#finaliseAddObservations() - */ - @Override - public void finaliseAddObservations() throws Exception { - // TODO Auto embed if required - // preFinaliseAddObservations(); - - // Run through each spiking time series set and pull out the observation - // tuples we'll store. - // Initialise our data stores: - eventTimings = new Vector[PREV_POSSIBILITIES][NEXT_POSSIBILITIES]; - for (int prev = 0; prev < PREV_POSSIBILITIES; prev++) { - for (int next = 0; next < NEXT_POSSIBILITIES; next++) { - eventTimings[prev][next] = new Vector(); - } - } - destPastAndNextTimings = new Vector(); - eventTypeLocator = new Vector(); - eventIndexLocator = new Vector(); - numEventsPerObservationSet = new Vector(); - - // Send all of the observations through: - Iterator sourceIterator = vectorOfSourceSpikeTimes.iterator(); - int timeSeriesIndex = 0; - for (double[] destSpikeTimes : vectorOfDestinationSpikeTimes) { - double[] sourceSpikeTimes = sourceIterator.next(); - timeSeriesIndex++; - - processEventsFromSpikingTimeSeries(sourceSpikeTimes, destSpikeTimes, - timeSeriesIndex, eventTimings, destPastAndNextTimings, - eventTypeLocator, eventIndexLocator, numEventsPerObservationSet); - } - - // Now we have collected all the events. - // Load up the search structures: - // 1. Full joint space: - // 2. Histories of source and dest only: - kdTreesJoint = new KdTree[PREV_POSSIBILITIES][NEXT_POSSIBILITIES]; - kdTreesSourceDestHistories = new KdTree[PREV_POSSIBILITIES][NEXT_POSSIBILITIES]; - for (int prev = 0; prev < PREV_POSSIBILITIES; prev++) { - for (int next = 0; next < NEXT_POSSIBILITIES; next++) { - // This line does not work: - // double[][][] jointEventTimings = (double[][][]) eventTimings[prev][next].toArray(); - // So we'll do it manually: - double[][] sourcePastTimings = new double[eventTimings[prev][next].size()][]; - double[][] destPastTimings = new double[eventTimings[prev][next].size()][]; - double[][] nextTimings = new double[eventTimings[prev][next].size()][]; - int i = 0; - for (double[][] timing : eventTimings[prev][next]) { - sourcePastTimings[i] = timing[0]; - destPastTimings[i] = timing[1]; - nextTimings[i] = timing[2]; - i++; - } - // TODO Should we normalise before we supply to the KdTree? - // Think about this later. I'm not convinced it's the best - // approach in this particular case. - kdTreesJoint[prev][next] = new KdTree( - new int[] {prev == PREV_DEST ? l : l - 1, - prev == PREV_DEST ? k - 1 : k, - 1}, - new double[][][] {sourcePastTimings, destPastTimings, nextTimings}); - kdTreesSourceDestHistories[prev][next] = new KdTree( - new int[] {prev == PREV_DEST ? l : l - 1, - prev == PREV_DEST ? k - 1 : k}, - new double[][][] {sourcePastTimings, destPastTimings}); - } - } - // 3. For the dest past and time to next spike - // 4. For the dest past only - double[][] destPastOnlyTimings = new double[destPastAndNextTimings.size()][]; - double[][] nextTimingsForDestPastOnly = new double[destPastAndNextTimings.size()][]; - int i = 0; - for (double[][] timing : destPastAndNextTimings) { - destPastOnlyTimings[i] = timing[0]; - nextTimingsForDestPastOnly[i] = timing[1]; - i++; - } - kdTreeDestNext = new KdTree( - new int[] {k - 1, 1}, - new double[][][] {destPastOnlyTimings, nextTimingsForDestPastOnly}); - - if (k == 1) { - // We need an NN searcher for the time to next spike (dest only) - nnSearcherDestTimeToNextSpike = new UnivariateNearestNeighbourSearcher(nextTimingsForDestPastOnly); - } else { - kdTreeDestHistory = new KdTree(destPastOnlyTimings); - } - } - - protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, - int timeSeriesIndex, Vector[][] eventTimings, - Vector destPastAndNextTimings, Vector eventTypeLocator, - Vector eventIndexLocator, Vector numEventsPerObservationSet) throws Exception { - // addObservationsAfterParamsDetermined(sourceSpikeTimes, destSpikeTimes); - - // First sort the spike times in case they were not properly in ascending order: - Arrays.sort(sourceSpikeTimes); - Arrays.sort(destSpikeTimes); - - // Scan to find the indices by which we have k and l spikes for dest and source - // respectively - int dest_index = k - 1; - int source_index = l - 1; - boolean previousIsDest = false; - double[] spikeTimesForPreviousSpiker = sourceSpikeTimes; - if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { - // Minimum required Source spikes are later than the dest. - previousIsDest = false; - spikeTimesForPreviousSpiker = sourceSpikeTimes; - // Need to advance dest_index until it's the most recent before source_index - for(;dest_index < destSpikeTimes.length; dest_index++) { - if (destSpikeTimes[dest_index] > sourceSpikeTimes[source_index]) { - // We've gone past the set of source spikes we have, we - // can move back one in the dest series - dest_index--; - break; - } - } - if (dest_index == destSpikeTimes.length) { - // We didn't have enough spikes in this series to generate any observations - // TODO work out how to handle this later -- I think this is ok - numEventsPerObservationSet.add(0); - return; - // throw new Exception("Dest spikes stop before enough source spikes in time-series " + timeSeriesIndex); - } - } else { - // Minimum required Dest spikes are later than the source. - previousIsDest = true; - spikeTimesForPreviousSpiker = destSpikeTimes; - // Need to advance source_index until it's the most recent before dest_index - for(;source_index < sourceSpikeTimes.length; source_index++) { - if (sourceSpikeTimes[source_index] > destSpikeTimes[dest_index]) { - // We've gone past the set of dest spikes we have, we - // can move back one in the source series - source_index--; - break; - } - } - if (source_index == sourceSpikeTimes.length) { - // We didn't have enough spikes in this series to generate any observations - // TODO work out how to handle this later -- I think this is ok - numEventsPerObservationSet.add(0); - return; - // throw new Exception("Source spikes stop before enough dest spikes in time-series " + timeSeriesIndex); - } - } - // Post-condition: dest_index and source_index are set correctly for the first set of pasts - int indexForPreviousSpiker = previousIsDest ? dest_index : source_index; - - double timeToNextSpike; - boolean nextIsDest = false; - double[] spikeTimesForNextSpiker = sourceSpikeTimes; - double timeOfPrevSpike = spikeTimesForPreviousSpiker[indexForPreviousSpiker]; - int numEvents = 0; - while(true) { - // 0. Check whether we're finished - if ((source_index == sourceSpikeTimes.length - 1) && - (dest_index == destSpikeTimes.length - 1)) { - // We have no next spike so we can't take an observation here - // and we're done - break; - } - // Otherwise: - // 1. Determine which of source / dest fires next - if (source_index == sourceSpikeTimes.length - 1) { - nextIsDest = true; - } else if (dest_index == destSpikeTimes.length - 1) { - nextIsDest = false; - } else if (sourceSpikeTimes[source_index+1] < destSpikeTimes[dest_index+1]) { - nextIsDest = false; - } else { - nextIsDest = true; - } - spikeTimesForNextSpiker = nextIsDest ? destSpikeTimes : sourceSpikeTimes; - int indexForNextSpiker = nextIsDest ? dest_index : source_index; - timeToNextSpike = spikeTimesForNextSpiker[indexForNextSpiker+1] - timeOfPrevSpike; - // 2. Embed the past spikes - double[] sourcePast = new double[previousIsDest ? l : l - 1]; - double[] destPast = new double[previousIsDest ? k - 1 : k]; - /* if (debug) { - System.out.println("previousIsDest = " + previousIsDest + " and nextIsDest = " + nextIsDest); - }*/ - if (previousIsDest) { - sourcePast[0] = timeOfPrevSpike - - sourceSpikeTimes[source_index]; - } else { - destPast[0] = timeOfPrevSpike - - destSpikeTimes[dest_index]; - } - for (int i = 1; i < k; i++) { - destPast[previousIsDest ? i - 1 : i] = destSpikeTimes[dest_index - i + 1] - - destSpikeTimes[dest_index - i]; - } - for (int i = 1; i < l; i++) { - sourcePast[previousIsDest ? i : i - 1] = sourceSpikeTimes[source_index - i + 1] - - sourceSpikeTimes[source_index - i]; - } - // 3. Store these embedded observations - double[][] observations = new double[][]{sourcePast, destPast, - new double[] {timeToNextSpike}}; - if (debug) { - System.out.printf("Adding event %d with: timeToNextSpike=%.4f, sourceSpikeTimes=", numEvents, timeToNextSpike); - MatrixUtils.printArray(System.out, sourcePast, 3); - System.out.printf(", destSpikeTimes="); - MatrixUtils.printArray(System.out, destPast, 3); - System.out.println(); - } - // Add the index locator first so it gets the index correct before - // we add the new event in: - eventIndexLocator.add(eventTimings[previousIsDest ? PREV_DEST : PREV_SOURCE][nextIsDest ? NEXT_DEST : NEXT_SOURCE].size()); - eventTimings[previousIsDest ? PREV_DEST : PREV_SOURCE][nextIsDest ? NEXT_DEST : NEXT_SOURCE].add(observations); - eventTypeLocator.add(new int[] {previousIsDest ? PREV_DEST : PREV_SOURCE, - nextIsDest ? NEXT_DEST : NEXT_SOURCE}); - // And finally store the observations for the dest only - // search structure if required: - if (nextIsDest) { - double[][] destOnlyObservations; - if (previousIsDest) { - destOnlyObservations = new double[][] { - destPast, - new double[] {timeToNextSpike} - }; - } else { - // previous is source: - // We can take a copy of destPast, removing the first entry - // (since this only signals time the dest last fired before the source) - // and add that entry to the timeToNextSpike (which was back to the - // source firing). - double[] destPastOnly = Arrays.copyOfRange(destPast, 1, destPast.length); - double timeToNextSpikeSincePreviousDestSpike = - destPast[0] + timeToNextSpike; - destOnlyObservations = new double[][] { - destPastOnly, - new double[] {timeToNextSpikeSincePreviousDestSpike} - }; - } - destPastAndNextTimings.add(destOnlyObservations); - } - // 4. Reset prev as next ... - previousIsDest = nextIsDest; - if (previousIsDest) { - dest_index++; - } else { - source_index++; - } - spikeTimesForPreviousSpiker = previousIsDest ? destSpikeTimes : sourceSpikeTimes; - indexForPreviousSpiker = previousIsDest ? dest_index : source_index; - timeOfPrevSpike = spikeTimesForPreviousSpiker[indexForPreviousSpiker]; - numEvents++; - } - numEventsPerObservationSet.add(numEvents); - if (debug) { - System.out.printf("Finished processing %d source-target events for observation set %d\n", numEvents, timeSeriesIndex); - } - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getAddedMoreThanOneObservationSet() - */ - @Override - public boolean getAddedMoreThanOneObservationSet() { - return (vectorOfDestinationSpikeTimes != null) && - (vectorOfDestinationSpikeTimes.size() > 1); - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeAverageLocalOfObservations() - */ - @Override - public double computeAverageLocalOfObservations() throws Exception { - - int numberOfEvents = eventTypeLocator.size(); - - double te = 0; - double contributionFromSpikes = 0; - double totalTimeLength = 0; - - double digammaK = MathsUtils.digamma(Knns); - double inverseKTerm = 2.0 / (double) k; - - // Create temporary storage for arrays used in the neighbour counting: - boolean[] isWithinR = new boolean[numberOfEvents]; // dummy, we don't really use this - int[] indicesWithinR = new int[numberOfEvents]; - - // Iterate over all the spiking events: - Iterator eventIndexIterator = eventIndexLocator.iterator(); - int eventIndex = -1; - int indexForNextIsDest = -1; - for (int[] eventType : eventTypeLocator) { - eventIndex++; - int eventIndexWithinType = eventIndexIterator.next().intValue(); - double[][] thisEventTimings = eventTimings[eventType[0]][eventType[1]].elementAt(eventIndexWithinType); - totalTimeLength += thisEventTimings[2][0]; - // Find the Knns nearest neighbour matches to this event, - // with the same previous spiker and the next. - // TODO Add dynamic exclusion time later - PriorityQueue nnPQ = - kdTreesJoint[eventType[0]][eventType[1]].findKNearestNeighbours( - Knns, eventIndexWithinType); - - // Find eps_{x,y,z} as the maximum x, y and z norms amongst this set: - double radius_sourcePast = 0.0; - double radius_destPast = 0.0; - double radius_destNext = 0.0; - int radius_destNext_sampleIndex = -1; - for (int j = 0; j < k; j++) { - // Take the furthest remaining of the nearest neighbours from the PQ: - NeighbourNodeData nnData = nnPQ.poll(); - if (nnData.norms[0] > radius_sourcePast) { - radius_sourcePast = nnData.norms[0]; - } - if (nnData.norms[1] > radius_destPast) { - radius_destPast = nnData.norms[1]; - } - if (nnData.norms[2] > radius_destNext) { - radius_destNext = nnData.norms[2]; - radius_destNext_sampleIndex = nnData.sampleIndex; - } - } - // TODO Do we need to correct radius_destNext to have a different value below, chopping it - // where it pushes into negative times (i.e. *before* the previous spike)? - - if (debug && (eventIndex < 10000)) { - // Pull out the data for this observation: - System.out.print("index = " + eventIndex + ", " + - eventIndexWithinType + " for " + - (eventType[0] == PREV_DEST ? "dst" : "src") + - "->" + - (eventType[1] == NEXT_DEST ? "dst" : "src") + - ", timings: src: "); - MatrixUtils.printArray(System.out, thisEventTimings[0], 3); - System.out.print(", dest: "); - MatrixUtils.printArray(System.out, thisEventTimings[1], 3); - System.out.print(", time to next: "); - MatrixUtils.printArray(System.out, thisEventTimings[2], 3); - System.out.printf("index=%d: K=%d NNs at next_range %.5f (point %d)", eventIndexWithinType, Knns, radius_destNext, radius_destNext_sampleIndex); - } - - // Select only events where the destination spiked next: - if (eventType[1] == NEXT_DEST) { - indexForNextIsDest++; - - // Now find the matching samples in each sub-space; - // first match dest history and source history, with a next spike in dest: - kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. - findPointsWithinRs(eventIndexWithinType, - new double[] {radius_sourcePast, radius_destPast}, 0, - true, isWithinR, indicesWithinR); - // And check which of these samples had spike time in dest after ours: - int countOfDestNextAndGreater = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] > thisEventTimings[2][0] + radius_destNext) { - // This sample had a matched history and next spike was a destination - // spike with a longer interval than the current sample - countOfDestNextAndGreater++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - // And count how many samples with the matching history actually had a - // *source* spike next, after ours. - // Note that we now must go to the other kdTree for next source spike - kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. - findPointsWithinRs( - new double[] {radius_sourcePast, radius_destPast}, thisEventTimings, - true, isWithinR, indicesWithinR); - // And check which of these samples had spike time in source at or after ours: - int countOfSourceNextAndGreater = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] >= thisEventTimings[2][0] - radius_destNext) { - // This sample had a matched history and next spike was a source - // spike with an interval longer than or considered equal to the current sample. - // (The "equal to" is why we look for matches within radius_destNext here as well.) - countOfSourceNextAndGreater++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - - if (debug && (eventIndex < 10000)) { - System.out.printf(" of %d + %d + %d points with matching S-D history", - Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); - } - - // Now find the matching samples in the dest history and - // with a next spike timing. - // Construct the appropriate timings to compare to here: - double timeToNextSpikeSincePreviousDestSpike; - if (eventType[0] == PREV_DEST) { - timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; - } else { - // previous is source: - timeToNextSpikeSincePreviousDestSpike = - thisEventTimings[1][0] + thisEventTimings[2][0]; - } - int countOfDestNextAndGreaterMatchedDest = 0; - int countOfDestNextMatched = 0; - if (k > 1) { - // Search only the space of dest past -- no point - // searching dest past and next, since we need to run through - // all matches of dest past to count those with greater next spike - // times we might as well count those with matching spike times - // while we're at it. - kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radius_destPast, - true, isWithinR, indicesWithinR); - // And check which of these samples had next spike time after ours: - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the dest history space - double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[1][0] >= timeToNextSpikeSincePreviousDestSpike - radius_destNext) { - // This sample had a matched history and next spike was a - // spike with an interval longer than or considered equal to the current sample. - // (The "equal to" is why we look for matches within kthNnData.distance here as well.) - countOfDestNextAndGreaterMatchedDest++; - if (matchedHistoryEventTimings[1][0] <= timeToNextSpikeSincePreviousDestSpike + radius_destNext) { - // Then we also have a match on the next spike itself - countOfDestNextMatched++; - } - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - } else { - // We don't take any past dest spike ISIs into account, so we just need to look at the proportion of next - // spike times that match. - countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsWithinOrOnR(indexForNextIsDest, radius_destNext); - countOfDestNextAndGreaterMatchedDest = countOfDestNextMatched + - nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, radius_destNext, true); - } - - if (debug && (eventIndex < 10000)) { - System.out.printf(", and %d of %d points for D history only; ", - countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); - } - - // With these neighbours counted, we're ready to compute the probability of the spike given the past - // of source and dest. - double logPGivenSourceAndDest = digammaK - inverseKTerm - - MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater) - + 1.0 / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater); - double logPGivenDest = MathsUtils.digamma(countOfDestNextMatched) - - MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest) - + 1.0 / ((double) countOfDestNextAndGreaterMatchedDest); - if (debug && (eventIndex < 10000)) { - System.out.printf(" te ~~ log (%d/%d)/(%d/%d) = %.4f -> %.4f (inferred rates %.4f vs %.4f)\n", Knns, - Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater, - countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest, - Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater)) / - ((double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest))), - logPGivenSourceAndDest - logPGivenDest, - (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater) / (2.0*radius_destNext), - (double) (countOfDestNextMatched) / (double) (countOfDestNextAndGreaterMatchedDest) / (2.0*radius_destNext)); - } - contributionFromSpikes += logPGivenSourceAndDest - logPGivenDest; - } else { - if (debug) { - System.out.println(); - } - } - - } - contributionFromSpikes /= totalTimeLength; - te = contributionFromSpikes; - return te; - } - - public double computeAverageLocalOfObservationsAlg1() throws Exception { - - int numberOfEvents = eventTypeLocator.size(); - - double te = 0; - double contributionFromSpikes = 0; - double contributionFromNonSpikes = 0; - double contributionFromNonSpikes_destOnly = 0; - double contributionFromNonSpikes_destAndSource = 0; - double totalTimeLength = 0; - - // Create temporary storage for arrays used in the neighbour counting: - boolean[] isWithinR = new boolean[numberOfEvents]; // dummy, we don't really use this - int[] indicesWithinR = new int[numberOfEvents]; - - // Iterate over all the spiking events: - Iterator eventIndexIterator = eventIndexLocator.iterator(); - int eventIndex = -1; - int indexForNextIsDest = -1; - for (int[] eventType : eventTypeLocator) { - eventIndex++; - int eventIndexWithinType = eventIndexIterator.next().intValue(); - double[][] thisEventTimings = eventTimings[eventType[0]][eventType[1]].elementAt(eventIndexWithinType); - totalTimeLength += thisEventTimings[2][0]; - // Find the Knns nearest neighbour matches to this event, - // with the same previous spiker and the next. - // TODO Add dynamic exclusion time later - PriorityQueue nnPQ = - kdTreesJoint[eventType[0]][eventType[1]].findKNearestNeighbours( - Knns, eventIndexWithinType); - // First element in the PQ is the kth NN, - // and epsilon = kthNnData.distance - NeighbourNodeData kthNnData = nnPQ.poll(); - double radiusToKnn = kthNnData.distance; - if (debug && (eventIndex < 10000)) { - // Pull out the data for this observation: - System.out.print("index = " + eventIndex + ", " + - eventIndexWithinType + " for " + - (eventType[0] == PREV_DEST ? "dst" : "src") + - "->" + - (eventType[1] == NEXT_DEST ? "dst" : "src") + - ", timings: src: "); - MatrixUtils.printArray(System.out, thisEventTimings[0], 3); - System.out.print(", dest: "); - MatrixUtils.printArray(System.out, thisEventTimings[1], 3); - System.out.print(", time to next: "); - MatrixUtils.printArray(System.out, thisEventTimings[2], 3); - System.out.printf("index=%d: K=%d NNs at range %.5f (point %d)", eventIndexWithinType, Knns, radiusToKnn, kthNnData.sampleIndex); - } - - // Select only events where the destination spiked next: - if (eventType[1] == NEXT_DEST) { - indexForNextIsDest++; - - // Now find the matching samples in each sub-space; - // first match dest history and source history, with a next spike in dest: - kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. - findPointsWithinR(eventIndexWithinType, radiusToKnn, 0, - false, isWithinR, indicesWithinR); - // And check which of these samples had spike time in dest after ours: - int countOfDestNextAndGreater = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] >= thisEventTimings[2][0] + radiusToKnn) { - // This sample had a matched history and next spike was a destination - // spike with a longer interval than the current sample - countOfDestNextAndGreater++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - // And count how many samples with the matching history actually had a - // *source* spike next, after ours. - // Note that we now must go to the other kdTree for next source spike - kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. - findPointsWithinR(radiusToKnn, thisEventTimings, - false, isWithinR, indicesWithinR); - // And check which of these samples had spike time in source after ours: - int countOfSourceNextAndGreater = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] > thisEventTimings[2][0] - radiusToKnn) { - // This sample had a matched history and next spike was a source - // spike with an interval longer than or considered equal to the current sample. - // (The "equal to" is why we look for matches within kthNnData.distance here as well.) - countOfSourceNextAndGreater++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - - if (debug && (eventIndex < 10000)) { - System.out.printf(" of %d + %d + %d points with matching S-D history", - Knns, countOfSourceNextAndGreater, countOfDestNextAndGreater); - } - - // Now find the matching samples in the dest history and - // with a next spike timing. - // Construct the appropriate timings to compare to here: - double[][] destOnlyObservations; - double[][] destPastOnlyObservations; - double timeToNextSpikeSincePreviousDestSpike; - if (eventType[0] == PREV_DEST) { - destOnlyObservations = new double[][] { - thisEventTimings[1], // timing of past dest spikes - thisEventTimings[2] // time to next spike - }; - timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; - destPastOnlyObservations = new double[][] { - thisEventTimings[1] // timing of past dest spikes - }; - } else { - // previous is source: - // We can take a copy of the dest past timings, removing the first entry - // (since this only signals time the dest last fired before the source) - // and add that entry to the timeToNextSpike (which was back to the - // source firing). - double[] destPastOnly = Arrays.copyOfRange( - thisEventTimings[1], 1, thisEventTimings[1].length); - timeToNextSpikeSincePreviousDestSpike = - thisEventTimings[1][0] + thisEventTimings[2][0]; - destOnlyObservations = new double[][] { - destPastOnly, - new double[] {timeToNextSpikeSincePreviousDestSpike} - }; - destPastOnlyObservations = new double[][] { - destPastOnly - }; - } - int countOfDestNextAndGreaterMatchedDest = 0; - int countOfDestNextMatched = 0; - if (k > 1) { - // Search only the space of dest past -- no point - // searching dest past and next, since we need to run through - // all matches of dest past to count those with greater next spike - // times we might as well count those with matching spike times - // while we're at it. - - // OLD WAY: - // NO NO NO -- Can't search for it this way, because it's biased -- - // should search for it by giving the index of this dest past-next - // observation, so that it doesn't match to this observation. - // Should be able to use indexForNextIsDest here - //kdTreeDestHistory.findPointsWithinR(radiusToKnn, destPastOnlyObservations, - // false, isWithinR, indicesWithinR); - // Proper way: - kdTreeDestHistory.findPointsWithinR(indexForNextIsDest, radiusToKnn, - false, isWithinR, indicesWithinR); - // And check which of these samples had next spike time after ours: - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the dest history space - double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[1][0] > timeToNextSpikeSincePreviousDestSpike - radiusToKnn) { - // This sample had a matched history and next spike was a - // spike with an interval longer than or considered equal to the current sample. - // (The "equal to" is why we look for matches within kthNnData.distance here as well.) - countOfDestNextAndGreaterMatchedDest++; - if (matchedHistoryEventTimings[1][0] < timeToNextSpikeSincePreviousDestSpike + radiusToKnn) { - // Then we also have a match on the next spike itself - countOfDestNextMatched++; - } - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - } else { - // We don't take any past dest spike times into account, so we just need to look at the proportion of next - // spike times that match. - countOfDestNextMatched = nnSearcherDestTimeToNextSpike.countPointsStrictlyWithinR(indexForNextIsDest, radiusToKnn); - countOfDestNextAndGreaterMatchedDest = countOfDestNextMatched + - nnSearcherDestTimeToNextSpike.countPointsWithinROrLarger(indexForNextIsDest, radiusToKnn, false); - } - - if (debug && (eventIndex < 10000)) { - System.out.printf(", and %d of %d points for D history only; ", - countOfDestNextMatched, countOfDestNextAndGreaterMatchedDest); - } - - // With these neighbours counted, we're ready to compute the probability of the spike given the past - // of source and dest. - // Digammas for algorithm 1 include the extra "+1" on all terms except - // for the full joint space - double logPGivenSourceAndDest = MathsUtils.digamma(Knns) - - MathsUtils.digamma(Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1); - double logPGivenDest = MathsUtils.digamma(countOfDestNextMatched + 1) - - MathsUtils.digamma(countOfDestNextAndGreaterMatchedDest + 1); - if (debug && (eventIndex < 10000)) { - System.out.printf(" te ~~ log (%d/%d)/(%d/%d) = %.4f -> %.4f (inferred rates %.4f vs %.4f)\n", Knns, - Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1, - countOfDestNextMatched + 1, countOfDestNextAndGreaterMatchedDest + 1, - Math.log(((double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1)) / - ((double) (countOfDestNextMatched + 1) / (double) (countOfDestNextAndGreaterMatchedDest + 1))), - logPGivenSourceAndDest - logPGivenDest, - (double) Knns / (double) (Knns + countOfSourceNextAndGreater + countOfDestNextAndGreater + 1) / (2.0*radiusToKnn), - (double) (countOfDestNextMatched + 1) / (double) (countOfDestNextAndGreaterMatchedDest + 1) / (2.0*radiusToKnn)); - } - contributionFromSpikes += logPGivenSourceAndDest - logPGivenDest; - } else { - if (debug) { - System.out.println(); - } - } - - // Regardless of which type of event it was, we need to integrate - // the spiking rates up until the next spiking event - // Our first attempt at a solution uses the search width defined - // using the history and the next spike. - - // Consider first the destination process only. - // Match dest history - double[][] destPastOnlyObservations; - double timeToNextSpikeSincePreviousDestSpike; - if (eventType[0] == PREV_DEST) { - timeToNextSpikeSincePreviousDestSpike = thisEventTimings[2][0]; - destPastOnlyObservations = new double[][] { - thisEventTimings[1] // timing of past dest spikes - }; - } else { - // previous is source: - // We can take a copy of the dest past timings, removing the first entry - // (since this only signals time the dest last fired before the source) - // and add that entry to the timeToNextSpike (which was back to the - // source firing). - double[] destPastOnly = Arrays.copyOfRange( - thisEventTimings[1], 1, thisEventTimings[1].length); - timeToNextSpikeSincePreviousDestSpike = - thisEventTimings[1][0] + thisEventTimings[2][0]; - destPastOnlyObservations = new double[][] { - destPastOnly - }; - } - int countOfDestNextEarlier = 0; - int countOfDestMatches = 0; - if (k > 1) { - kdTreeDestHistory.findPointsWithinR(radiusToKnn, destPastOnlyObservations, - false, isWithinR, indicesWithinR); - // And check which of these samples had next spike time before ours: - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the dest history space - double[][] matchedHistoryEventTimings = destPastAndNextTimings.elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[1][0] < timeToNextSpikeSincePreviousDestSpike) { - // This sample had a matched history and next spike was a - // spike with an interval shorter than the current sample. - countOfDestNextEarlier++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - countOfDestMatches++; - } - } else { - // We're not using the past, so we match on everything up to the last spike - countOfDestMatches = nnSearcherDestTimeToNextSpike.getNumObservations(); - countOfDestNextEarlier = nnSearcherDestTimeToNextSpike.countPointsSmallerAndOutsideR( - // indexForNextIsDest must point to the next event (possibly this one) where the dest spikes next. - (eventType[1] == NEXT_DEST) ? indexForNextIsDest : indexForNextIsDest + 1, - radiusToKnn, false); - - } - // And include the contribution for each of these - double integralForDestHistorySpace = 0; - for (int hi = 0; hi < countOfDestNextEarlier; hi++) { - integralForDestHistorySpace += (double) 1 / - (double) (countOfDestMatches - hi); - } - - // First match dest history and source history, with a next spike in dest: - kdTreesSourceDestHistories[eventType[0]][NEXT_DEST]. - findPointsWithinR(radiusToKnn, thisEventTimings, - false, isWithinR, indicesWithinR); - // And store which of these samples had spike time in dest before ours. - // Store them in a vector of double arrays, with each array holding the - // spike time then -1 for a next dest spike and +1 for a source spike - Vector spikesBeforeOurs = new Vector(); - int countOfSpikesAfterAndIncludingOurs = 0; - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_DEST].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] < thisEventTimings[2][0]) { - // This sample had a matched history and next spike was a destination - // spike with a shorted interval than the current sample - spikesBeforeOurs.add(new double[] { - matchedHistoryEventTimings[2][0], -1}); - } else { - countOfSpikesAfterAndIncludingOurs++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - // And store which of these samples had spike time in source before ours. - // Store them in a vector of double arrays, with each array holding the - // spike time then -1 for a next dest spike and +1 for a source spike - // Note that we now must go to the other kdTree for next source spike - kdTreesSourceDestHistories[eventType[0]][NEXT_SOURCE]. - findPointsWithinR(radiusToKnn, thisEventTimings, - false, isWithinR, indicesWithinR); - for (int nIndex = 0; indicesWithinR[nIndex] != -1; nIndex++) { - // Pull out this matching event from the full joint space - double[][] matchedHistoryEventTimings = eventTimings[eventType[0]][NEXT_SOURCE].elementAt(indicesWithinR[nIndex]); - if (matchedHistoryEventTimings[2][0] < thisEventTimings[2][0]) { - // This sample had a matched history and next spike was a source - // spike with a shorted interval than the current sample - spikesBeforeOurs.add(new double[] { - matchedHistoryEventTimings[2][0], +1}); - } else { - countOfSpikesAfterAndIncludingOurs++; - } - // Reset the isWithinR array while we're here - isWithinR[indicesWithinR[nIndex]] = false; - } - // Now we can sort the spikes which occur before ours and process - // them in order: - // Next line doesn't work, so replaced with clunkier code: - // double[][] nextSpikeTimesAndType = (double[][]) spikesBeforeOurs.toArray(); - double[][] nextSpikeTimesAndType = new double[spikesBeforeOurs.size()][]; - for (int si = 0; si < nextSpikeTimesAndType.length; si++) { - nextSpikeTimesAndType[si] = spikesBeforeOurs.elementAt(si); - } - Arrays.sort(nextSpikeTimesAndType, FirstIndexComparatorDouble.getInstance()); - double integralForJointSpace = 0; - for (int si = 0; si < nextSpikeTimesAndType.length; si++) { - if (nextSpikeTimesAndType[si][1] < 0) { - // We have a next spike from the dest, which is - // earlier than our spike. - // Integrated Prob for getting a spike here is 1 / N, where - // N is the number of properly matched histories (i.e. - // which don't have a next spike before this one) - double intPNext = (double) 1 / (double) - (nextSpikeTimesAndType.length - si + countOfSpikesAfterAndIncludingOurs); - integralForJointSpace += intPNext; - } - // Ignore next spikes on the source, they simply get removed - // from the matched histories count - } - - // We now have the integral of spike rates given the dest and - // joint histories, so subtract this out: - contributionFromNonSpikes += integralForDestHistorySpace - integralForJointSpace; - contributionFromNonSpikes_destAndSource += integralForJointSpace; - contributionFromNonSpikes_destOnly += integralForDestHistorySpace; - } - contributionFromSpikes /= totalTimeLength; - contributionFromNonSpikes /= totalTimeLength; - contributionFromNonSpikes_destAndSource /= totalTimeLength; - contributionFromNonSpikes_destOnly /= totalTimeLength; - te = contributionFromSpikes + contributionFromNonSpikes; - System.out.printf("TE = %.4f (spikes) + %.4f (non-spikes: d:%.4f - s-d:%.4f) = %.4f\n", - contributionFromSpikes, contributionFromNonSpikes, - contributionFromNonSpikes_destOnly, contributionFromNonSpikes_destAndSource, te); - return te; - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeLocalOfPreviousObservations() - */ - @Override - public SpikingLocalInformationValues computeLocalOfPreviousObservations() - throws Exception { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeSignificance(int) - */ - @Override - public EmpiricalMeasurementDistribution computeSignificance( - int numPermutationsToCheck) throws Exception { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#computeSignificance(int[][]) - */ - @Override - public EmpiricalMeasurementDistribution computeSignificance( - int[][] newOrderings) throws Exception { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#setDebug(boolean) - */ - @Override - public void setDebug(boolean debug) { - this.debug = debug; - } - - /* (non-Javadoc) - * @see infodynamics.measures.spiking.TransferEntropyCalculatorSpiking#getLastAverage() - */ - @Override - public double getLastAverage() { - // TODO Auto-generated method stub - return 0; - } - -} diff --git a/java/source/infodynamics/utils/KdTree.java b/java/source/infodynamics/utils/KdTree.java index 0f58755..a8c8f09 100644 --- a/java/source/infodynamics/utils/KdTree.java +++ b/java/source/infodynamics/utils/KdTree.java @@ -275,10 +275,10 @@ public class KdTree extends NearestNeighbourSearcher { // Could remove these since the code is now functional, // but may be better to leave them in just in case the code breaks: if (leftIndex > leftStart + leftNumPoints) { - throw new RuntimeException("Exceeded expected number of points on left"); + throw new RuntimeException("Exceeded expected number of points on left - likely had an NaN in the data"); } if (rightIndex > rightStart + rightNumPoints) { - throw new RuntimeException("Exceeded expected number of points on right"); + throw new RuntimeException("Exceeded expected number of points on right - likely had an NaN in the data"); } // Update the pointer for the sorted indices for this dimension, // and keep the new temporary array @@ -337,7 +337,7 @@ public class KdTree extends NearestNeighbourSearcher { double difference = x1[d] - x2[d]; distance += difference * difference; } - return Math.sqrt(distance); + return distance; } } @@ -359,7 +359,6 @@ public class KdTree extends NearestNeighbourSearcher { */ public final static double normWithAbort(double[] x1, double[] x2, double limit, int normToUse) { - double distance = 0.0; switch (normToUse) { case EuclideanUtils.NORM_MAX_NORM: @@ -380,17 +379,15 @@ public class KdTree extends NearestNeighbourSearcher { return distance; // case EuclideanUtils.NORM_EUCLIDEAN_SQUARED: default: - // Limit is often r, so must square - limit = limit * limit; // Inlined from {@link EuclideanUtils}: for (int d = 0; d < x1.length; d++) { double difference = x1[d] - x2[d]; distance += difference * difference; if (distance > limit) { - return Double.POSITIVE_INFINITY; + return Double.POSITIVE_INFINITY; } } - return Math.sqrt(distance); + return distance; } } @@ -1308,10 +1305,9 @@ public class KdTree extends NearestNeighbourSearcher { if (normTypeToUse == EuclideanUtils.NORM_MAX_NORM) { absDistOnThisDim = (distOnThisDim > 0) ? distOnThisDim : - distOnThisDim; } else { - absDistOnThisDim = (distOnThisDim > 0) ? distOnThisDim : - distOnThisDim; // norm type is EuclideanUtils#NORM_EUCLIDEAN_SQUARED // Track the square distance - //absDistOnThisDim = distOnThisDim; + absDistOnThisDim = distOnThisDim * distOnThisDim; } if ((node.indexOfThisPoint != sampleIndex) && @@ -2057,7 +2053,7 @@ public class KdTree extends NearestNeighbourSearcher { KdTreeNode node, int level, double r, boolean allowEqualToR, boolean[] isWithinR, int[] indicesWithinR, int nextIndexInIndicesWithinR) { - //System.out.println("foo"); + // Point to the correct array for the data at this level int currentDim = level % totalDimensions; double[][] data = dimensionToArray[currentDim]; @@ -2072,9 +2068,9 @@ public class KdTree extends NearestNeighbourSearcher { if (normTypeToUse == EuclideanUtils.NORM_MAX_NORM) { absDistOnThisDim = (distOnThisDim > 0) ? distOnThisDim : - distOnThisDim; } else { - absDistOnThisDim = (distOnThisDim > 0) ? distOnThisDim : - distOnThisDim; // norm type is EuclideanUtils#NORM_EUCLIDEAN_SQUARED // Track the square distance + absDistOnThisDim = distOnThisDim * distOnThisDim; } if ((absDistOnThisDim < r) || diff --git a/tester.py b/tester.py index 09817c4..cae3631 100755 --- a/tester.py +++ b/tester.py @@ -27,8 +27,8 @@ import os import numpy as np -NUM_REPS = 5 -NUM_SPIKES = int(5e3) +NUM_REPS = 2 +NUM_SPIKES = int(2e3) NUM_OBSERVATIONS = 2 # Params for canonical example generation @@ -99,6 +99,8 @@ for i in range(NUM_REPS): teCalc.finaliseAddObservations(); result = teCalc.computeAverageLocalOfObservations() print("TE result %.4f nats" % (result,)) + sig = teCalc.computeSignificance(10, result) + print(sig.pValue) results_poisson[i] = result print("Summary: mean ", np.mean(results_poisson), " std dev ", np.std(results_poisson)) @@ -111,59 +113,67 @@ print("Summary: mean ", np.mean(results_poisson), " std dev ", np.std(results_po teCalc = teCalcClass() teCalc.setProperty("knns", "4") print("Noisy copy zero TE") -teCalc.setProperty("COND_EMBED_LENGTHS", "2") +teCalc.setProperty("COND_EMBED_LENGTHS", "1") teCalc.setProperty("k_HISTORY", "2") -teCalc.setProperty("l_HISTORY", "2") +teCalc.setProperty("l_HISTORY", "1") +#teCalc.setProperty("NORM_TYPE", "MAX_NORM") results_noisy_zero = np.zeros(NUM_REPS) for i in range(NUM_REPS): teCalc.startAddObservations() for j in range(NUM_OBSERVATIONS): - condArray = NUM_SPIKES*np.random.random((1, NUM_SPIKES)) + condArray = np.ones((1, NUM_SPIKES)) + 0.05 * np.random.random((1, NUM_SPIKES)) + condArray = np.cumsum(condArray, axis = 1) condArray.sort(axis = 1) - sourceArray = condArray[0, :] + 0.25 + 0.1 * np.random.normal(size = condArray.shape[1]) + sourceArray = condArray[0, :] + 0.25 + 0.05 * np.random.normal(size = condArray.shape[1]) sourceArray.sort() - destArray = condArray[0, :] + 0.5 + 0.1 * np.random.normal(size = condArray.shape[1]) + destArray = condArray[0, :] + 0.5 + 0.05 * np.random.normal(size = condArray.shape[1]) destArray.sort() teCalc.addObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray), JArray(JDouble, 2)(condArray)) teCalc.finaliseAddObservations(); result = teCalc.computeAverageLocalOfObservations() print("TE result %.4f nats" % (result,)) - results_poisson[i] = result -print("Summary: mean ", np.mean(results_poisson), " std dev ", np.std(results_poisson)) + sig = teCalc.computeSignificance(10, result) + print(sig.pValue) + results_noisy_zero[i] = result +print("Summary: mean ", np.mean(results_noisy_zero), " std dev ", np.std(results_noisy_zero)) teCalc = teCalcClass() teCalc.setProperty("knns", "4") print("Noisy copy non-zero TE") -teCalc.setProperty("COND_EMBED_LENGTHS", "2") +teCalc.setProperty("COND_EMBED_LENGTHS", "1") teCalc.setProperty("k_HISTORY", "2") -teCalc.setProperty("l_HISTORY", "2") +teCalc.setProperty("l_HISTORY", "1") +#teCalc.setProperty("NORM_TYPE", "MAX_NORM") -results_noisy_zero = np.zeros(NUM_REPS) +results_noisy_non_zero = np.zeros(NUM_REPS) for i in range(NUM_REPS): teCalc.startAddObservations() for j in range(NUM_OBSERVATIONS): - sourceArray = NUM_SPIKES*np.random.random(NUM_SPIKES) + sourceArray = np.ones((1, NUM_SPIKES)) + 0.05 * np.random.random((1, NUM_SPIKES)) + sourceArray = np.cumsum(sourceArray) sourceArray.sort() - condArray = sourceArray + 0.25 + 0.1 * np.random.normal(size = sourceArray.shape) + condArray = sourceArray + 0.25 + 0.05 * np.random.normal(size = sourceArray.shape) condArray.sort() condArray = np.expand_dims(condArray, 0) - destArray = sourceArray + 0.5 + 0.1 * np.random.normal(size = sourceArray.shape) + destArray = sourceArray + 0.5 + 0.05 * np.random.normal(size = sourceArray.shape) destArray.sort() teCalc.addObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray), JArray(JDouble, 2)(condArray)) teCalc.finaliseAddObservations(); result = teCalc.computeAverageLocalOfObservations() print("TE result %.4f nats" % (result,)) - results_poisson[i] = result -print("Summary: mean ", np.mean(results_poisson), " std dev ", np.std(results_poisson)) + sig = teCalc.computeSignificance(10, result) + print(sig.pValue) + results_noisy_non_zero[i] = result +print("Summary: mean ", np.mean(results_noisy_non_zero), " std dev ", np.std(results_noisy_zero)) print("Canonical example") teCalc = teCalcClass() teCalc.setProperty("knns", "4") -teCalc.setProperty("k_HISTORY", "2") -teCalc.setProperty("l_HISTORY", "1") +teCalc.setProperty("k_HISTORY", "1") +teCalc.setProperty("l_HISTORY", "2") #teCalc.setProperty("NUM_SAMPLES_MULTIPLIER", "1") #teCalc.setProperty("NORM_TYPE", "MAX_NORM") @@ -174,4 +184,6 @@ for i in range(NUM_REPS): result = teCalc.computeAverageLocalOfObservations() results_canonical[i] = result print("TE result %.4f nats" % (result,)) + sig = teCalc.computeSignificance(10, result) + print(sig.pValue) print("Summary: mean ", np.mean(results_canonical), " std dev ", np.std(results_canonical)) From c8d17e9522c45e83c64609a9520708f943718b27 Mon Sep 17 00:00:00 2001 From: David Shorten Date: Mon, 23 Aug 2021 17:50:34 +1000 Subject: [PATCH 41/41] functionality allowing specific embedding intervals --- ...erEntropyCalculatorSpikingIntegration.java | 275 ++++++++++-------- tester.py | 41 ++- 2 files changed, 178 insertions(+), 138 deletions(-) diff --git a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java index 89b6a38..6397961 100644 --- a/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java +++ b/java/source/infodynamics/measures/spiking/integration/TransferEntropyCalculatorSpikingIntegration.java @@ -7,6 +7,7 @@ import java.util.PriorityQueue; import java.util.Random; import java.util.Vector; import java.util.ArrayList; +import java.lang.Math; //import infodynamics.measures.continuous.kraskov.EuclideanUtils; import infodynamics.measures.spiking.TransferEntropyCalculatorSpiking; @@ -44,23 +45,28 @@ import infodynamics.utils.ParsedProperties; public class TransferEntropyCalculatorSpikingIntegration implements TransferEntropyCalculatorSpiking { /** - * Number of past destination interspike intervals to consider (akin to embedding length) + * The past destination interspike intervals to consider + * (and associated property name and convenience length variable) + * The code assumes that the first interval is numbered 1, the next is numbered 2, etc. + * It also assumes that the intervals are sorted. The setter method performs sorting to ensure this. */ - protected int k = 1; + public static final String DEST_PAST_INTERVALS_PROP_NAME = "DEST_PAST_INTERVALS"; + protected int[] destPastIntervals = new int[] {}; + protected int numDestPastIntervals = 0; /** - * Number of past source interspike intervals to consider (akin to embedding length) + * As above but for the sources */ - protected int l = 1; + public static final String SOURCE_PAST_INTERVALS_PROP_NAME = "SOURCE_PAST_INTERVALS"; + protected int[] sourcePastIntervals = new int[] {}; + protected int numSourcePastIntervals = 0; /** - * Property name for number of interspike intervals for the conditional variables + * As above but for the conditioning processes. There is no property name for this variable, + * due to there not currently being a method for converting strings to 2d arrays. Instead, + * a separate setter method is implemented. */ - public static final String COND_EMBED_LENGTHS_PROP_NAME = "COND_EMBED_LENGTHS"; - /** - * Array of history interspike interval embedding lengths for the conditional variables. - * Can be an empty array or null if there are no conditional variables. - */ - protected int[] condEmbedDims = new int[] {}; + protected Vector vectorOfCondPastIntervals = new Vector(); + protected int numCondPastIntervals = 0; /** * Number of nearest neighbours to search for in the full joint space @@ -123,13 +129,13 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr * of the number of target spikes. */ public static final String PROP_SAMPLE_MULTIPLIER = "NUM_SAMPLES_MULTIPLIER"; - protected double numSamplesMultiplier = 1.0; + protected double numSamplesMultiplier = 2.0; /** * Property name for the number of random sample points to use in the construction of the surrogates as a multiple * of the number of target spikes. */ public static final String PROP_SURROGATE_SAMPLE_MULTIPLIER = "SURROGATE_NUM_SAMPLES_MULTIPLIER"; - protected double surrogateNumSamplesMultiplier = 1.0; + protected double surrogateNumSamplesMultiplier = 2.0; /** * Property for the number of nearest neighbours to use in the construction of the surrogates @@ -161,7 +167,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr */ @Override public void initialise() throws Exception { - initialise(k, l); + initialise(0, 0); } /* @@ -173,7 +179,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr */ @Override public void initialise(int k) throws Exception { - initialise(k, this.l); + initialise(0, 0); } /* @@ -185,11 +191,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr */ @Override public void initialise(int k, int l) throws Exception { - if ((k < 1) || (l < 1)) { - throw new Exception("Zero history length not supported"); - } - this.k = k; - this.l = l; vectorOfSourceSpikeTimes = null; vectorOfDestinationSpikeTimes = null; } @@ -204,28 +205,32 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr @Override public void setProperty(String propertyName, String propertyValue) throws Exception { boolean propertySet = true; - if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { - int kTemp = Integer.parseInt(propertyValue); - if (kTemp < 1) { - throw new Exception ("Invalid k value less than 1."); + if (propertyName.equalsIgnoreCase(DEST_PAST_INTERVALS_PROP_NAME)) { + if (propertyValue.length() == 0) { + destPastIntervals = new int[] {}; } else { - k = kTemp; - } - } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { - int lTemp = Integer.parseInt(propertyValue); - if (lTemp < 1) { - throw new Exception ("Invalid l value less than 1."); - } else { - l = lTemp; - } - } else if (propertyName.equalsIgnoreCase(COND_EMBED_LENGTHS_PROP_NAME)) { - int[] condEmbedDimsTemp = ParsedProperties.parseStringArrayOfInts(propertyValue); - for (int dim : condEmbedDimsTemp) { - if (dim < 1) { - throw new Exception ("Invalid conditional embedding value less than 1."); + int[] destPastIntervalsTemp = ParsedProperties.parseStringArrayOfInts(propertyValue); + for (int interval : destPastIntervalsTemp) { + if (interval < 1) { + throw new Exception ("Invalid interval number less than 1."); + } } + destPastIntervals = destPastIntervalsTemp; + Arrays.sort(destPastIntervals); + } + } else if (propertyName.equalsIgnoreCase(SOURCE_PAST_INTERVALS_PROP_NAME)) { + if (propertyValue.length() == 0) { + sourcePastIntervals = new int[] {}; + } else { + int[] sourcePastIntervalsTemp = ParsedProperties.parseStringArrayOfInts(propertyValue); + for (int interval : sourcePastIntervalsTemp) { + if (interval < 1) { + throw new Exception ("Invalid interval number less than 1."); + } + } + sourcePastIntervals = sourcePastIntervalsTemp; + Arrays.sort(sourcePastIntervals); } - condEmbedDims = condEmbedDimsTemp; } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { Knns = Integer.parseInt(propertyValue); } else if (propertyName.equalsIgnoreCase(PROP_K_PERM)) { @@ -238,7 +243,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr addNoise = true; noiseLevel = Double.parseDouble(propertyValue); } - } else if (propertyName.equalsIgnoreCase(PROP_SAMPLE_MULTIPLIER)) { double tempNumSamplesMultiplier = Double.parseDouble(propertyValue); if (tempNumSamplesMultiplier <= 0) { @@ -274,11 +278,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr */ @Override public String getProperty(String propertyName) throws Exception { - if (propertyName.equalsIgnoreCase(K_PROP_NAME)) { - return Integer.toString(k); - } else if (propertyName.equalsIgnoreCase(L_PROP_NAME)) { - return Integer.toString(l); - } else if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { + if (propertyName.equalsIgnoreCase(KNNS_PROP_NAME)) { return Integer.toString(Knns); } else if (propertyName.equalsIgnoreCase(PROP_ADD_NOISE)) { return Double.toString(noiseLevel); @@ -290,6 +290,21 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } } + + public void appendConditionalIntervals(int[] intervals) throws Exception{ + for (int interval : intervals) { + if (interval < 1) { + throw new Exception ("Invalid interval number less than 1."); + } + } + Arrays.sort(intervals); + vectorOfCondPastIntervals.add(intervals); + } + + public void clearConditionalIntervals() { + vectorOfCondPastIntervals = new Vector(); + } + /* * (non-Javadoc) * @@ -351,6 +366,14 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr @Override public void finaliseAddObservations() throws Exception { + // Set these conveniance variables as they are used quite a bit later on + numDestPastIntervals = destPastIntervals.length; + numSourcePastIntervals = sourcePastIntervals.length; + numCondPastIntervals = 0; + for (int[] intervals : vectorOfCondPastIntervals) { + numCondPastIntervals += intervals.length; + } + conditioningEmbeddingsFromSpikes = new Vector(); jointEmbeddingsFromSpikes = new Vector(); conditioningEmbeddingsFromSamples = new Vector(); @@ -377,15 +400,19 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr numSamplesMultiplier); } + + // Convert the vectors to arrays so that they can be put in the trees - double[][] arrayedTargetEmbeddingsFromSpikes = new double[conditioningEmbeddingsFromSpikes.size()][k]; - double[][] arrayedJointEmbeddingsFromSpikes = new double[conditioningEmbeddingsFromSpikes.size()][k + l]; + double[][] arrayedTargetEmbeddingsFromSpikes = new double[conditioningEmbeddingsFromSpikes.size()][numDestPastIntervals + numCondPastIntervals]; + double[][] arrayedJointEmbeddingsFromSpikes = new double[conditioningEmbeddingsFromSpikes.size()][numDestPastIntervals + + numCondPastIntervals + numSourcePastIntervals]; for (int i = 0; i < conditioningEmbeddingsFromSpikes.size(); i++) { arrayedTargetEmbeddingsFromSpikes[i] = conditioningEmbeddingsFromSpikes.elementAt(i); arrayedJointEmbeddingsFromSpikes[i] = jointEmbeddingsFromSpikes.elementAt(i); } - double[][] arrayedTargetEmbeddingsFromSamples = new double[conditioningEmbeddingsFromSamples.size()][k]; - double[][] arrayedJointEmbeddingsFromSamples = new double[conditioningEmbeddingsFromSamples.size()][k + l]; + double[][] arrayedTargetEmbeddingsFromSamples = new double[conditioningEmbeddingsFromSamples.size()][numDestPastIntervals + numCondPastIntervals]; + double[][] arrayedJointEmbeddingsFromSamples = new double[conditioningEmbeddingsFromSamples.size()][numDestPastIntervals + + numCondPastIntervals + numSourcePastIntervals]; for (int i = 0; i < conditioningEmbeddingsFromSamples.size(); i++) { arrayedTargetEmbeddingsFromSamples[i] = conditioningEmbeddingsFromSamples.elementAt(i); arrayedJointEmbeddingsFromSamples[i] = jointEmbeddingsFromSamples.elementAt(i); @@ -410,15 +437,16 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr Random random = new Random(); + // Initialise the starting points of all the tracking variables int embeddingPointIndex = indexOfFirstPointToUse; - int mostRecentDestIndex = k; - int mostRecentSourceIndex = l; - int[] mostRecentConditioningIndices = Arrays.copyOf(condEmbedDims, condEmbedDims.length); - int totalLengthOfConditioningEmbeddings = 0; - for (int i = 0; i < condEmbedDims.length; i++) { - totalLengthOfConditioningEmbeddings += condEmbedDims[i]; + int mostRecentDestIndex = destPastIntervals[destPastIntervals.length - 1]; + int mostRecentSourceIndex = sourcePastIntervals[sourcePastIntervals.length - 1]; + int[] mostRecentConditioningIndices = new int[vectorOfCondPastIntervals.size()]; + for (int i = 0; i < vectorOfCondPastIntervals.size(); i++) { + mostRecentConditioningIndices[i] = vectorOfCondPastIntervals.elementAt(i).length; } + // Loop through the points at which embeddings need to be made for (; embeddingPointIndex < pointsAtWhichToMakeEmbeddings.length; embeddingPointIndex++) { @@ -432,8 +460,7 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } // Do the same for the most recent source index while (mostRecentSourceIndex < (sourceSpikeTimes.length - 1)) { - if (sourceSpikeTimes[mostRecentSourceIndex - + 1] < pointsAtWhichToMakeEmbeddings[embeddingPointIndex]) { + if (sourceSpikeTimes[mostRecentSourceIndex + 1] < pointsAtWhichToMakeEmbeddings[embeddingPointIndex]) { mostRecentSourceIndex++; } else { break; @@ -451,53 +478,70 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } - double[] conditioningPast = new double[k + totalLengthOfConditioningEmbeddings]; - double[] jointPast = new double[k + totalLengthOfConditioningEmbeddings + l]; + double[] conditioningPast = new double[numDestPastIntervals + numCondPastIntervals]; + double[] jointPast = new double[numDestPastIntervals + numCondPastIntervals + numSourcePastIntervals]; // Add the embedding intervals from the target process - conditioningPast[0] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] - destSpikeTimes[mostRecentDestIndex]; - jointPast[0] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] - - destSpikeTimes[mostRecentDestIndex]; - for (int i = 1; i < k; i++) { - conditioningPast[i] = destSpikeTimes[mostRecentDestIndex - i + 1] - - destSpikeTimes[mostRecentDestIndex - i]; - jointPast[i] = destSpikeTimes[mostRecentDestIndex - i + 1] - - destSpikeTimes[mostRecentDestIndex - i]; + for (int i = 0; i < destPastIntervals.length; i++) { + // Case where we are inserting an interval from an observation point back to the most recent event in the target process + if (destPastIntervals[i] == 1) { + conditioningPast[i] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] - destSpikeTimes[mostRecentDestIndex]; + jointPast[i] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] + - destSpikeTimes[mostRecentDestIndex]; + // Case where we are inserting an inter-event intervvl from the target process + } else { + conditioningPast[i] = destSpikeTimes[mostRecentDestIndex - destPastIntervals[i] + 2] + - destSpikeTimes[mostRecentDestIndex - destPastIntervals[i] + 1]; + jointPast[i] = destSpikeTimes[mostRecentDestIndex - destPastIntervals[i] + 2] + - destSpikeTimes[mostRecentDestIndex - destPastIntervals[i] + 1]; + } } // Add the embeding intervals from the conditional processes - int indexOfNextEmbeddingInterval = k; - for (int i = 0; i < condEmbedDims.length; i++) { - conditioningPast[indexOfNextEmbeddingInterval] = - pointsAtWhichToMakeEmbeddings[embeddingPointIndex] - conditionalSpikeTimes[i][mostRecentConditioningIndices[i]]; - jointPast[indexOfNextEmbeddingInterval] = - pointsAtWhichToMakeEmbeddings[embeddingPointIndex] - conditionalSpikeTimes[i][mostRecentConditioningIndices[i]]; - indexOfNextEmbeddingInterval += 1; - for (int j = 1; j < condEmbedDims[i]; j++) { - conditioningPast[indexOfNextEmbeddingInterval] = - conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - j + 1] - - conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - j]; - jointPast[indexOfNextEmbeddingInterval] = - conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - j + 1] - - conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - j]; - indexOfNextEmbeddingInterval += 1; + int indexOfNextEmbeddingInterval = numDestPastIntervals; + for (int i = 0; i < vectorOfCondPastIntervals.size(); i++) { + for (int j = 0; j < vectorOfCondPastIntervals.elementAt(i).length; j++) { + // Case where we are inserting an interval from an observation point back to the most recent event in the conditioning process + if (vectorOfCondPastIntervals.elementAt(i)[j] == 1) { + conditioningPast[indexOfNextEmbeddingInterval] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] + - conditionalSpikeTimes[i][mostRecentConditioningIndices[i]]; + jointPast[indexOfNextEmbeddingInterval] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] + - conditionalSpikeTimes[i][mostRecentConditioningIndices[i]]; + // Case where we are inserting an inter-event interval from the conditioning process + } else { + // Convenience variable + int intervalNumber = vectorOfCondPastIntervals.elementAt(i)[j]; + conditioningPast[indexOfNextEmbeddingInterval] = conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - intervalNumber + 2] + - conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - intervalNumber + 1]; + jointPast[indexOfNextEmbeddingInterval] = conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - intervalNumber + 2] + - conditionalSpikeTimes[i][mostRecentConditioningIndices[i] - intervalNumber + 1]; + } + indexOfNextEmbeddingInterval++; } } // Add the embedding intervals from the source process (this only gets added to the joint embeddings) - jointPast[k + totalLengthOfConditioningEmbeddings] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] - - sourceSpikeTimes[mostRecentSourceIndex]; - for (int i = 1; i < l; i++) { - jointPast[k + totalLengthOfConditioningEmbeddings + i] = sourceSpikeTimes[mostRecentSourceIndex - i + 1] - - sourceSpikeTimes[mostRecentSourceIndex - i]; + for (int i = 0; i < sourcePastIntervals.length; i++) { + // Case where we are inserting an interval from an observation point back to the most recent event in the source process + if (sourcePastIntervals[i] == 1) { + jointPast[indexOfNextEmbeddingInterval] = pointsAtWhichToMakeEmbeddings[embeddingPointIndex] + - sourceSpikeTimes[mostRecentSourceIndex]; + // Case where we are inserting an inter-event interval from the source process + } else { + jointPast[indexOfNextEmbeddingInterval] = sourceSpikeTimes[mostRecentSourceIndex - sourcePastIntervals[i] + 2] + - sourceSpikeTimes[mostRecentSourceIndex - sourcePastIntervals[i] + 1]; + } + indexOfNextEmbeddingInterval++; } // Add Gaussian noise, if necessary if (addNoise) { for (int i = 0; i < conditioningPast.length; i++) { + //conditioningPast[i] = Math.exp(-conditioningPast[i]); conditioningPast[i] += random.nextGaussian() * noiseLevel; } for (int i = 0; i < jointPast.length; i++) { + //jointPast[i] = Math.exp(-jointPast[i]); jointPast[i] += random.nextGaussian() * noiseLevel; } } @@ -516,33 +560,36 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr Arrays.sort(sourceSpikeTimes); Arrays.sort(destSpikeTimes); - int firstTargetIndexOfEMbedding = k; - while (destSpikeTimes[firstTargetIndexOfEMbedding] <= sourceSpikeTimes[l - 1]) { - firstTargetIndexOfEMbedding++; + int firstTargetIndexOfEmbedding = destPastIntervals[destPastIntervals.length - 1]; + + int furthestInterval = sourcePastIntervals[sourcePastIntervals.length - 1]; + while (destSpikeTimes[firstTargetIndexOfEmbedding] <= sourceSpikeTimes[furthestInterval - 1]) { + firstTargetIndexOfEmbedding++; } - if (conditionalSpikeTimes.length != condEmbedDims.length) { + if (conditionalSpikeTimes.length != vectorOfCondPastIntervals.size()) { throw new Exception("Number of conditional embedding lengths does not match the number of conditional processes"); - } + } for (int i = 0; i < conditionalSpikeTimes.length; i++) { - while (destSpikeTimes[firstTargetIndexOfEMbedding] <= conditionalSpikeTimes[i][condEmbedDims[i]]) { - firstTargetIndexOfEMbedding++; + furthestInterval = vectorOfCondPastIntervals.elementAt(i)[vectorOfCondPastIntervals.elementAt(i).length - 1]; + while (destSpikeTimes[firstTargetIndexOfEmbedding] <= conditionalSpikeTimes[i][furthestInterval - 1]) { + firstTargetIndexOfEmbedding++; } } // We don't want to reset these lengths when resampling for surrogates if (setProcessTimeLengths) { - processTimeLengths.add(destSpikeTimes[destSpikeTimes.length - 1] - destSpikeTimes[firstTargetIndexOfEMbedding]); + processTimeLengths.add(destSpikeTimes[destSpikeTimes.length - 1] - destSpikeTimes[firstTargetIndexOfEmbedding]); } - return firstTargetIndexOfEMbedding; + return firstTargetIndexOfEmbedding; } protected double[] generateRandomSampleTimes(double[] sourceSpikeTimes, double[] destSpikeTimes, double[][] conditionalSpikeTimes, - double actualNumSamplesMultiplier, int firstTargetIndexOfEMbedding) { + double actualNumSamplesMultiplier, int firstTargetIndexOfEmbedding) { - double sampleLowerBound = destSpikeTimes[firstTargetIndexOfEMbedding]; + double sampleLowerBound = destSpikeTimes[firstTargetIndexOfEmbedding]; double sampleUpperBound = destSpikeTimes[destSpikeTimes.length - 1]; - int num_samples = (int) Math.round(actualNumSamplesMultiplier * (destSpikeTimes.length - firstTargetIndexOfEMbedding + 1)); + int num_samples = (int) Math.round(actualNumSamplesMultiplier * (destSpikeTimes.length - firstTargetIndexOfEmbedding + 1)); double[] randomSampleTimes = new double[num_samples]; Random rand = new Random(); for (int i = 0; i < randomSampleTimes.length; i++) { @@ -559,26 +606,24 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr double actualNumSamplesMultiplier) throws Exception { - int firstTargetIndexOfEMbedding = getFirstDestIndex(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, true); - double[] randomSampleTimes = generateRandomSampleTimes(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, actualNumSamplesMultiplier, firstTargetIndexOfEMbedding); + int firstTargetIndexOfEmbedding = getFirstDestIndex(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, true); + double[] randomSampleTimes = generateRandomSampleTimes(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, + actualNumSamplesMultiplier, firstTargetIndexOfEmbedding); - makeEmbeddingsAtPoints(destSpikeTimes, firstTargetIndexOfEMbedding, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, + makeEmbeddingsAtPoints(destSpikeTimes, firstTargetIndexOfEmbedding, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, conditioningEmbeddingsFromSpikes, jointEmbeddingsFromSpikes); makeEmbeddingsAtPoints(randomSampleTimes, 0, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, conditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples); } - /* - * Method to do the - */ protected void processEventsFromSpikingTimeSeries(double[] sourceSpikeTimes, double[] destSpikeTimes, double[][] conditionalSpikeTimes, Vector conditioningEmbeddingsFromSamples, Vector jointEmbeddingsFromSamples, double actualNumSamplesMultiplier) throws Exception { - int firstTargetIndexOfEMbedding = getFirstDestIndex(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, false); - double[] randomSampleTimes = generateRandomSampleTimes(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, actualNumSamplesMultiplier, firstTargetIndexOfEMbedding); - + int firstTargetIndexOfEmbedding = getFirstDestIndex(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, false); + double[] randomSampleTimes = generateRandomSampleTimes(sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, + actualNumSamplesMultiplier, firstTargetIndexOfEmbedding); makeEmbeddingsAtPoints(randomSampleTimes, 0, sourceSpikeTimes, destSpikeTimes, conditionalSpikeTimes, conditioningEmbeddingsFromSamples, jointEmbeddingsFromSamples); } @@ -732,9 +777,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } currentSum += (MathsUtils.digamma(kJointSpikes) - MathsUtils.digamma(kJointSamples) + - ((k + l) * (-Math.log(radiusJointSpikes) + Math.log(radiusJointSamples))) - + ((numDestPastIntervals + numCondPastIntervals + numSourcePastIntervals) * (-Math.log(radiusJointSpikes) + Math.log(radiusJointSamples))) - MathsUtils.digamma(kConditioningSpikes) + MathsUtils.digamma(kConditioningSamples) + - + (k * (Math.log(radiusConditioningSpikes) - Math.log(radiusConditioningSamples)))); + + ((numDestPastIntervals + numCondPastIntervals) * (Math.log(radiusConditioningSpikes) - Math.log(radiusConditioningSamples)))); if (Double.isNaN(currentSum)) { throw new Exception("NaNs in TE clac"); } @@ -786,9 +831,8 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr resampledConditioningEmbeddingsFromSamples, resampledJointEmbeddingsFromSamples, surrogateNumSamplesMultiplier); } - // Convert the vectors to arrays so that they can be put in the trees - double[][] arrayedResampledConditioningEmbeddingsFromSamples = new double[resampledConditioningEmbeddingsFromSamples.size()][k]; + double[][] arrayedResampledConditioningEmbeddingsFromSamples = new double[resampledConditioningEmbeddingsFromSamples.size()][numDestPastIntervals]; for (int i = 0; i < resampledConditioningEmbeddingsFromSamples.size(); i++) { arrayedResampledConditioningEmbeddingsFromSamples[i] = resampledConditioningEmbeddingsFromSamples.elementAt(i); } @@ -818,9 +862,9 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } usedIndices.add(chosenIndex); int embeddingLength = conditionallyPermutedJointEmbeddingsFromSpikes.elementAt(i).length; - for(int j = 0; j < l; j++) { - conditionallyPermutedJointEmbeddingsFromSpikes.elementAt(i)[embeddingLength - l + j] = - resampledJointEmbeddingsFromSamples.elementAt(chosenIndex)[embeddingLength - l + j]; + for(int j = 0; j < numSourcePastIntervals; j++) { + conditionallyPermutedJointEmbeddingsFromSpikes.elementAt(i)[embeddingLength - numSourcePastIntervals + j] = + resampledJointEmbeddingsFromSamples.elementAt(chosenIndex)[embeddingLength - numSourcePastIntervals + j]; } } @@ -831,7 +875,6 @@ public class TransferEntropyCalculatorSpikingIntegration implements TransferEntr } KdTree conditionallyPermutedKdTreeJointFromSpikes = new KdTree(arrayedConditionallyPermutedJointEmbeddingsFromSpikes); conditionallyPermutedKdTreeJointFromSpikes.setNormType(normType); - surrogateTEValues[permutationNumber] = computeAverageLocalOfObservations(conditionallyPermutedKdTreeJointFromSpikes, conditionallyPermutedJointEmbeddingsFromSpikes); } diff --git a/tester.py b/tester.py index cae3631..bd8265b 100755 --- a/tester.py +++ b/tester.py @@ -30,6 +30,7 @@ import numpy as np NUM_REPS = 2 NUM_SPIKES = int(2e3) NUM_OBSERVATIONS = 2 +NUM_SURROGATES = 10 # Params for canonical example generation RATE_Y = 1.0 @@ -80,9 +81,10 @@ teCalcClass = JPackage("infodynamics.measures.spiking.integration").TransferEntr teCalc = teCalcClass() teCalc.setProperty("knns", "4") print("Independent Poisson Processes") -teCalc.setProperty("COND_EMBED_LENGTHS", "2,2") -teCalc.setProperty("k_HISTORY", "2") -teCalc.setProperty("l_HISTORY", "2") +teCalc.setProperty("DEST_PAST_INTERVALS", "1,2") +teCalc.setProperty("SOURCE_PAST_INTERVALS", "1,2") +teCalc.appendConditionalIntervals(JArray(JInt, 1)([1, 2])) +teCalc.appendConditionalIntervals(JArray(JInt, 1)([1, 2])) teCalc.setProperty("NORM_TYPE", "MAX_NORM") results_poisson = np.zeros(NUM_REPS) @@ -99,23 +101,17 @@ for i in range(NUM_REPS): teCalc.finaliseAddObservations(); result = teCalc.computeAverageLocalOfObservations() print("TE result %.4f nats" % (result,)) - sig = teCalc.computeSignificance(10, result) + sig = teCalc.computeSignificance(NUM_SURROGATES, result) print(sig.pValue) results_poisson[i] = result print("Summary: mean ", np.mean(results_poisson), " std dev ", np.std(results_poisson)) - - - - - - teCalc = teCalcClass() teCalc.setProperty("knns", "4") print("Noisy copy zero TE") -teCalc.setProperty("COND_EMBED_LENGTHS", "1") -teCalc.setProperty("k_HISTORY", "2") -teCalc.setProperty("l_HISTORY", "1") +#teCalc.appendConditionalIntervals(JArray(JInt, 1)([1])) +teCalc.setProperty("DEST_PAST_INTERVALS", "1") +teCalc.setProperty("SOURCE_PAST_INTERVALS", "1") #teCalc.setProperty("NORM_TYPE", "MAX_NORM") results_noisy_zero = np.zeros(NUM_REPS) @@ -129,11 +125,12 @@ for i in range(NUM_REPS): sourceArray.sort() destArray = condArray[0, :] + 0.5 + 0.05 * np.random.normal(size = condArray.shape[1]) destArray.sort() - teCalc.addObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray), JArray(JDouble, 2)(condArray)) + #teCalc.addObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray), JArray(JDouble, 2)(condArray)) + teCalc.addObservations(JArray(JDouble, 1)(sourceArray), JArray(JDouble, 1)(destArray)) teCalc.finaliseAddObservations(); result = teCalc.computeAverageLocalOfObservations() print("TE result %.4f nats" % (result,)) - sig = teCalc.computeSignificance(10, result) + sig = teCalc.computeSignificance(NUM_SURROGATES, result) print(sig.pValue) results_noisy_zero[i] = result print("Summary: mean ", np.mean(results_noisy_zero), " std dev ", np.std(results_noisy_zero)) @@ -143,9 +140,9 @@ print("Summary: mean ", np.mean(results_noisy_zero), " std dev ", np.std(results teCalc = teCalcClass() teCalc.setProperty("knns", "4") print("Noisy copy non-zero TE") -teCalc.setProperty("COND_EMBED_LENGTHS", "1") -teCalc.setProperty("k_HISTORY", "2") -teCalc.setProperty("l_HISTORY", "1") +teCalc.appendConditionalIntervals(JArray(JInt, 1)([1])) +teCalc.setProperty("DEST_PAST_INTERVALS", "1,2") +teCalc.setProperty("SOURCE_PAST_INTERVALS", "1") #teCalc.setProperty("NORM_TYPE", "MAX_NORM") results_noisy_non_zero = np.zeros(NUM_REPS) @@ -164,7 +161,7 @@ for i in range(NUM_REPS): teCalc.finaliseAddObservations(); result = teCalc.computeAverageLocalOfObservations() print("TE result %.4f nats" % (result,)) - sig = teCalc.computeSignificance(10, result) + sig = teCalc.computeSignificance(NUM_SURROGATES, result) print(sig.pValue) results_noisy_non_zero[i] = result print("Summary: mean ", np.mean(results_noisy_non_zero), " std dev ", np.std(results_noisy_zero)) @@ -172,8 +169,8 @@ print("Summary: mean ", np.mean(results_noisy_non_zero), " std dev ", np.std(res print("Canonical example") teCalc = teCalcClass() teCalc.setProperty("knns", "4") -teCalc.setProperty("k_HISTORY", "1") -teCalc.setProperty("l_HISTORY", "2") +teCalc.setProperty("DEST_PAST_INTERVALS", "1,2") +teCalc.setProperty("SOURCE_PAST_INTERVALS", "1") #teCalc.setProperty("NUM_SAMPLES_MULTIPLIER", "1") #teCalc.setProperty("NORM_TYPE", "MAX_NORM") @@ -184,6 +181,6 @@ for i in range(NUM_REPS): result = teCalc.computeAverageLocalOfObservations() results_canonical[i] = result print("TE result %.4f nats" % (result,)) - sig = teCalc.computeSignificance(10, result) + sig = teCalc.computeSignificance(NUM_SURROGATES, result) print(sig.pValue) print("Summary: mean ", np.mean(results_canonical), " std dev ", np.std(results_canonical))

b~%68 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 z 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 p4%jO%KEs`?oav!JM}FHo-P}zP?mu@ Date: Sun, 25 Nov 2018 21:52:07 +1100 Subject: [PATCH 05/41] Added release notes for v1.5 to readme-template.txt --- readme-template.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/readme-template.txt b/readme-template.txt index 44351a6..0b0a8fa 100755 --- a/readme-template.txt +++ b/readme-template.txt @@ -134,6 +134,18 @@ Notices for this software are found in the notices/JAMA directory. Release notes =============== +v1.5 25/11/2018 +--------------- +(after 749 commits recorded by github, repository as at https://github.com/jlizier/jidt/tree/dc4e59f94583f2cae53ff4167d8052151cddc3d8 save for this file update) +Added GPU (cuda) capability for KSG Conditional Mutual Information calculator (proper documentation and wiki page to come), including unit tests; +Added auto-embedding for TE/AIS with multivariate KSG, and univariate and multivariate Gaussian estimator (plus unit tests), for Ragwitz criteria and Maximum bias-corrected AIS, and also added Maximum bias corrected AIS and TE to handle source embedding as well; +Kozachenko entropy estimator adds noise to data by default; +Added bias-correction property to Gaussian and Kernel estimators for MI and conditional MI, including with surrogates (only option for kernel); +Enabled use of different bases for different variables in MI discrete estimator; +All new above features enabled in AutoAnalyser; +Added drop-down menus for parameters in AutoAnalyser; +Included long-form lecture slides in course folder; + v1.4 26/11/2017 --------------- (after 638 commits recorded by github, repository as at https://github.com/jlizier/jidt/tree/589d51674e6a9cfb569432679e515bea17092876 save for this file update) From cd1d4c2684268c7b577dc1451884a34b2a7b964e Mon Sep 17 00:00:00 2001 From: jlizier Date: Sun, 25 Nov 2018 21:57:25 +1100 Subject: [PATCH 06/41] Adding executable permission to Java demo 10 for GPU --- demos/java/example10GPUBenchmark.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 demos/java/example10GPUBenchmark.sh diff --git a/demos/java/example10GPUBenchmark.sh b/demos/java/example10GPUBenchmark.sh old mode 100644 new mode 100755 From 7bd6496a408d683b9477986e33b9f849b3b4c139 Mon Sep 17 00:00:00 2001 From: jlizier Date: Sun, 25 Nov 2018 22:38:08 +1100 Subject: [PATCH 07/41] Removed old .sh and .bat files for running AutoAnalyser for individual measures (now replaced by launchAutoAnalyser) --- demos/AutoAnalyser/runAISAutoAnalyser.bat | 5 ----- demos/AutoAnalyser/runAISAutoAnalyser.sh | 5 ----- demos/AutoAnalyser/runCMIAutoAnalyser.bat | 5 ----- demos/AutoAnalyser/runCMIAutoAnalyser.sh | 5 ----- demos/AutoAnalyser/runCTEAutoAnalyser.bat | 5 ----- demos/AutoAnalyser/runCTEAutoAnalyser.sh | 5 ----- demos/AutoAnalyser/runHAutoAnalyser.bat | 5 ----- demos/AutoAnalyser/runHAutoAnalyser.sh | 5 ----- demos/AutoAnalyser/runMIAutoAnalyser.bat | 5 ----- demos/AutoAnalyser/runMIAutoAnalyser.sh | 5 ----- demos/AutoAnalyser/runTEAutoAnalyser.bat | 5 ----- demos/AutoAnalyser/runTEAutoAnalyser.sh | 5 ----- 12 files changed, 60 deletions(-) delete mode 100755 demos/AutoAnalyser/runAISAutoAnalyser.bat delete mode 100755 demos/AutoAnalyser/runAISAutoAnalyser.sh delete mode 100755 demos/AutoAnalyser/runCMIAutoAnalyser.bat delete mode 100755 demos/AutoAnalyser/runCMIAutoAnalyser.sh delete mode 100755 demos/AutoAnalyser/runCTEAutoAnalyser.bat delete mode 100755 demos/AutoAnalyser/runCTEAutoAnalyser.sh delete mode 100755 demos/AutoAnalyser/runHAutoAnalyser.bat delete mode 100755 demos/AutoAnalyser/runHAutoAnalyser.sh delete mode 100755 demos/AutoAnalyser/runMIAutoAnalyser.bat delete mode 100755 demos/AutoAnalyser/runMIAutoAnalyser.sh delete mode 100755 demos/AutoAnalyser/runTEAutoAnalyser.bat delete mode 100755 demos/AutoAnalyser/runTEAutoAnalyser.sh diff --git a/demos/AutoAnalyser/runAISAutoAnalyser.bat b/demos/AutoAnalyser/runAISAutoAnalyser.bat deleted file mode 100755 index 11bdefc..0000000 --- a/demos/AutoAnalyser/runAISAutoAnalyser.bat +++ /dev/null @@ -1,5 +0,0 @@ -@ECHO OFF - -REM Run the example: -java -classpath "..\..\infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserAIS - diff --git a/demos/AutoAnalyser/runAISAutoAnalyser.sh b/demos/AutoAnalyser/runAISAutoAnalyser.sh deleted file mode 100755 index d0898eb..0000000 --- a/demos/AutoAnalyser/runAISAutoAnalyser.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Run the example: -java -classpath "../../infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserAIS - diff --git a/demos/AutoAnalyser/runCMIAutoAnalyser.bat b/demos/AutoAnalyser/runCMIAutoAnalyser.bat deleted file mode 100755 index 0cf7be1..0000000 --- a/demos/AutoAnalyser/runCMIAutoAnalyser.bat +++ /dev/null @@ -1,5 +0,0 @@ -@ECHO OFF - -REM Run the example: -java -classpath "..\..\infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserCMI - diff --git a/demos/AutoAnalyser/runCMIAutoAnalyser.sh b/demos/AutoAnalyser/runCMIAutoAnalyser.sh deleted file mode 100755 index aad7edb..0000000 --- a/demos/AutoAnalyser/runCMIAutoAnalyser.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Run the example: -java -classpath "../../infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserCMI - diff --git a/demos/AutoAnalyser/runCTEAutoAnalyser.bat b/demos/AutoAnalyser/runCTEAutoAnalyser.bat deleted file mode 100755 index 0e4b397..0000000 --- a/demos/AutoAnalyser/runCTEAutoAnalyser.bat +++ /dev/null @@ -1,5 +0,0 @@ -@ECHO OFF - -REM Run the example: -java -classpath "..\..\infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserCTE - diff --git a/demos/AutoAnalyser/runCTEAutoAnalyser.sh b/demos/AutoAnalyser/runCTEAutoAnalyser.sh deleted file mode 100755 index 5d3e56a..0000000 --- a/demos/AutoAnalyser/runCTEAutoAnalyser.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Run the example: -java -classpath "../../infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserCTE - diff --git a/demos/AutoAnalyser/runHAutoAnalyser.bat b/demos/AutoAnalyser/runHAutoAnalyser.bat deleted file mode 100755 index 825ded1..0000000 --- a/demos/AutoAnalyser/runHAutoAnalyser.bat +++ /dev/null @@ -1,5 +0,0 @@ -@ECHO OFF - -REM Run the example: -java -classpath "..\..\infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserEntropy - diff --git a/demos/AutoAnalyser/runHAutoAnalyser.sh b/demos/AutoAnalyser/runHAutoAnalyser.sh deleted file mode 100755 index 2969f73..0000000 --- a/demos/AutoAnalyser/runHAutoAnalyser.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Run the example: -java -classpath "../../infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserEntropy - diff --git a/demos/AutoAnalyser/runMIAutoAnalyser.bat b/demos/AutoAnalyser/runMIAutoAnalyser.bat deleted file mode 100755 index 383aaee..0000000 --- a/demos/AutoAnalyser/runMIAutoAnalyser.bat +++ /dev/null @@ -1,5 +0,0 @@ -@ECHO OFF - -REM Run the example: -java -classpath "..\..\infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserMI - diff --git a/demos/AutoAnalyser/runMIAutoAnalyser.sh b/demos/AutoAnalyser/runMIAutoAnalyser.sh deleted file mode 100755 index cb695ea..0000000 --- a/demos/AutoAnalyser/runMIAutoAnalyser.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Run the example: -java -classpath "../../infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserMI - diff --git a/demos/AutoAnalyser/runTEAutoAnalyser.bat b/demos/AutoAnalyser/runTEAutoAnalyser.bat deleted file mode 100755 index 8c5f7aa..0000000 --- a/demos/AutoAnalyser/runTEAutoAnalyser.bat +++ /dev/null @@ -1,5 +0,0 @@ -@ECHO OFF - -REM Run the example: -java -classpath "..\..\infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserTE - diff --git a/demos/AutoAnalyser/runTEAutoAnalyser.sh b/demos/AutoAnalyser/runTEAutoAnalyser.sh deleted file mode 100755 index be3e3fa..0000000 --- a/demos/AutoAnalyser/runTEAutoAnalyser.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Run the example: -java -classpath "../../infodynamics.jar" infodynamics.demos.autoanalysis.AutoAnalyserTE - From 603445651cc0bf155a42c9ba336141bc7f29bccd Mon Sep 17 00:00:00 2001 From: jlizier Date: Sun, 25 Nov 2018 23:27:27 +1100 Subject: [PATCH 08/41] Moving GPU readme from wiki into CUDA folder --- {demos/gpu => cuda}/README-GPU.pdf | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename {demos/gpu => cuda}/README-GPU.pdf (100%) diff --git a/demos/gpu/README-GPU.pdf b/cuda/README-GPU.pdf similarity index 100% rename from demos/gpu/README-GPU.pdf rename to cuda/README-GPU.pdf From a3ec963618d601a6f39a1d6eb12121fa99c0497a Mon Sep 17 00:00:00 2001 From: jlizier Date: Sun, 25 Nov 2018 23:38:49 +1100 Subject: [PATCH 09/41] Updating demos PDFs again --- .../AutoAnalyser/README-AutoAnalyserDemo.pdf | Bin 311025 -> 311741 bytes demos/README-Demos.pdf | Bin 152651 -> 153281 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/demos/AutoAnalyser/README-AutoAnalyserDemo.pdf b/demos/AutoAnalyser/README-AutoAnalyserDemo.pdf index f0288653af757a9902b5edc6c6774507720d3d8e..6992bf7980140682eb9c187b72dba9836355b0e5 100644 GIT binary patch delta 104446 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∓R{_B67{_UU6|3&b4ab$If5t*a7M6*9 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