From acc51309e719ebbec68b97875c5367de038c1b0c Mon Sep 17 00:00:00 2001 From: Philipp Moritz Date: Fri, 10 Jun 2016 17:25:55 -0700 Subject: [PATCH] load imagenet --- .travis.yml | 1 + README.md | 5 ++ data/README.md | 5 ++ data/mini.tar | Bin 0 -> 51200 bytes examples/imagenet/driver.py | 38 +++++++++++ examples/imagenet/functions.py | 18 +++++ examples/imagenet/worker.py | 33 +++++++++ lib/python/ray/__init__.py | 1 + lib/python/ray/arrays/distributed/linalg.py | 2 +- lib/python/ray/arrays/remote/core.py | 6 +- lib/python/ray/arrays/remote/linalg.py | 4 ++ lib/python/ray/datasets/imagenet.py | 71 ++++++++++++++++++++ requirements.txt | 3 + setup.sh | 4 +- test/datasets_test.py | 23 +++++++ test/test_worker.py | 1 + 16 files changed, 209 insertions(+), 6 deletions(-) create mode 100644 data/README.md create mode 100644 data/mini.tar create mode 100644 examples/imagenet/driver.py create mode 100644 examples/imagenet/functions.py create mode 100644 examples/imagenet/worker.py create mode 100644 lib/python/ray/datasets/imagenet.py create mode 100644 test/datasets_test.py diff --git a/.travis.yml b/.travis.yml index dd912e73a..59b284b81 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,3 +15,4 @@ script: - cd test - python runtest.py - python arrays_test.py + - python datasets_test.py diff --git a/README.md b/README.md index d340b0d39..bb631349b 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,11 @@ Ray is an experimental distributed execution framework with a Python-like programming model. It is under development and not ready for general use. +## Example Code + +### Loading ImageNet +TODO: fill this out. + ## Design Decisions For a description of our design decisions, see diff --git a/data/README.md b/data/README.md new file mode 100644 index 000000000..9f4765b5a --- /dev/null +++ b/data/README.md @@ -0,0 +1,5 @@ +# Data for Ray + +This folder contains data neccessary to run tests, etc. Only very small amounts +of data should be stored here and if a loader for a large dataset is tested, a +miniature version of this dataset should be created. diff --git a/data/mini.tar b/data/mini.tar new file mode 100644 index 0000000000000000000000000000000000000000..73098dfe53e0ff7aac7f3d6f86f1b1d904ab385a GIT binary patch literal 51200 zcmd42bx<79^Dnx%1PN}71PMWd!=eF#TX1)0!v+?23z|iC(V!u?yKL|TcXxLuc#y!& z_jl{Q_v+Ps^`!0}ucxNY)ajm6{h3oU)t~Mj2roa6pn#wdkGZgb5Qtm(gPa23f3@)Z z6CnWsz`uc4Sdi!cIQ~b&E5QF>bN?~>j{tah`Gkap01Q0;s~!2Dt>@w9ZV6>z0C-q= zK-@k4XBPi`?*C5ze|_iwuQku}&+CAf%JNF`02CAe0Oj8ScwPd?0~nZTWK?tvA~7jBB{l79`uDv2g2JNWlG56``i91)X5^2b zzq)&R`}zk4C#R-oX6NP?7B@Dxws&^-_74uvFD|dHZ*KqG-Tw#Ie{lW}`R~a7Pq>Kw z;X*}6M?=T@4=xl`uYV^R5jw^zUQA+XO)N`S5=OodY*HC`ZcP^s6TjAPGArl=E;+Nn z2Fv+>p#2xJ|7XBL|34x7-+=w^xE29;Xej?S4~+;Q1*mheX`A%_BOSN;4k+Rxi+4W@ z$+kDO0(&mk9BPu{`QY$v7iu*3KgzkW6@Wz{-hUjUi2eKqcImP&Yjkh5t@=!j0@E`FhFC@LT*l8UlV(9^Spw1E7IL~UyGhj!_5 zaZMZ$hgkwzgdrbzk-cW3XID_7v8iHSeej7pr|9xVE7)#l3Q@7*>%u;Ac(iyH!xT5V zO66`qMu$D*tRFr7a{I=DFz_>V%B{}0I0>*_=Sx6Iiw}(A^wo8r>V10tkFQP33*#2k zSdk1l-O`-?@CfG6Np9?I-^|_GopWn*C%8BGmsXcmhNNH0M}!1c8?^V#^jxwym7-4V zV?jv0t=jn>2qpOD?8sEiVfW1cJ6rAyvGl|ID}4;3Z#u0FQyla8X0vEjI@l5*=lZvx$9IIwOQxc5~CeBF{oBm(O-at9JtG2si{TABMSb_dY ztd8kq&H|g)wi?;8qZA>%TYb};NTk1h(MW0E_n!Ra#RvdP@4t&N24314glPIsWrLcR zUJ8!Z#vtU9pQ_iuz4Nf!V=rbN%%M^S*3x@A(?nP(Wgf4(22*+h9;UXH{JIO5>lcU{ zGB~xZMs_`1(@fZPu^b1_2;#vbP*q*t|+E0 zx6x$NJUX!z#N2x$z)^|n^>FDivF&}rDNv6lVox)8$lK=aO>^q;ho)g`sAQmo=+=?y zltlx}ECt_tmnBM@Xf&I!qy7TY&8|gPr2I2LVcLDDO>QHqJtcB| z4rtMpQ##buS7(!>jeKMl`n}p??N03nqIl)2^up^+P?4`v{hdIISW9E`!+U&STq;v8 z4Na(2csnFH(qj|fWU=$M@r4*agdmD4vYEj~ZzsFM(S!=IDy9a{cw?8XOE04r2p0{$emrnGu07 z{h~!*O7~7&?_HEZM=0wWB3|x-*QvcM`(ggW##7COs|%e!vU+y5j;otuX~XDSH=yzo zpo1fWgb|<8{M&v162aHxvo)Ddr<{)`cX)yB0_m)Fx+(6hZAiZ~OgoychkR7;t`ism z*iEU`_=}=cV`F(^H!}q>=G{yP?yxV>l0(f;n0OHJG4^}B3mySL z$^@q4TaZb|ToY?<vlVyi#WmJjf=C6!uY5DlisZ=8>R5+?);nxxi?xxFbVsJt;pJR{KmE^DPa2r8 za_vrix7{Y|IR&xZTlVXhV&4h2Jt72aL*nZOMZ+z-(D&#fkBsC^^>($xo92fQmpao| zvW5FKN_Li(RBO$V=9_z!(kEvzru1Fp_f|vPEgpD@qdF-WJD{=mXuF_Cj{KIi9v9mt zwM2!SrXPU(Lf%%t$IhGrOLb=fjse@oM&yj3=H%wz3@fx1b)I);Fg=q=eHB@K$`&Da zPab1K`QFI^=aYoTTYc}Cmm1&W4E{PbpQGR2!y0|bnsNjT4c~Gn+Gx6FG7=a(=y_)4 zuXtDW2PkOejE1y!4msC~XNU4>XdcB(#ykVme;=O|Dio17!^AVlROr;vYWgJiB=B)X zSE7gV)u~@_{0+SL)M!qBl4iRkwU{7+R!rm;ENY{-Ed*Ec5&V2EO_h1_HCKyV3-m#H z?-N$MxzRXcbxM0`_2=rHTu<*z_Vzp7CX(h_7#>vQURM)iHnAYAYVa+dMh&E*?`%tR z(B>IH5j2?LWkkTf$S3>F#F1xt%yDO>t{XQrSGndXIo6V5aW{Kr2fpXQe))D8ujti> zn=UHWHjkUPSXph{UsAE@z30~nbp=jT)FU=AoyGIz*kCB#w+E* zo{E;uut+4Us~hae1L|Wo_uipmLpZ)@u>AwBk)DinRHbO?_xC-QRvVjj3-LKWJ-=rO_Ki(97?&99H@o#iHBy{qrtC`wH z82fodD-C|9!|5}BCvmTBlsGum+Q1URY&gf&OpAJWQ`OGEyE(4wvqyRTQ^A z^!3y8dSoV|{JB)Syh^OxNAZI4n(MFctZrXcsY#zBXXyY5X4XCG_V1iz@;R+0xxZ{S zZ3##GrJv1HC_R6FnUYeUsdF%5d+hn}%WH60go&2_&kVk{cFpf!VFIreKcJJJ3l9$} zXkH17(0AYJ&uP(o!9F=&=$Pn&xGe>|&ba+SC|9J_*ua%sF;jO~Bi`T9c7Xs!6ROr= zHL_=CRV*GtTZI;F5{&!j^}n{?N&v1Zr*xZ}nqydmVkZ0fa-#t2?r77S)mJZ;Bp{BA zNE|fdIsuz++kqz5WZw}rz$!O1-HZpJPt|=`Uq88g##+@Ml3)+Q>&#imX-&&h;E70#dDIAc@|EWJOURx8kY%P_gRa;9g%AJRcrSVz_TJ9s|KJhxec9|S8 z?LJ5Bcqa7S*@#OXB#xYYy)Js~L6_Fm=i2}#OZ@_IuB_BD2B+ClB{2}KcrjG{&K8Yh zUxnL#+B7F@``y_ZE8g+7u9bi^$KUmjt_1sUq3=Y?Yz-m#HfXuM0Ljdp-n!G--MO|z zwm&H}ZPteAqld!vQ_jl+93qSM67p-heSyhuBX|6kcGJ~L9Kj?3S*{mxJc>7)DTjB& zFES*og?(K%ndrz3+C1r=0jJscCNUEXla;oi-uX4n;aWIT!O}6w?Vf$?zfeBigi4WU#Kos-=(rd7}S6`gQzPC_6G!hFDEU1 zgntg#vElUoi*uycs#(&9UvK2mNM=Km6|x;N_4uG86>w1znJ?(usM}oM$fwMd_GaVM zR!@qTmPv0+ditI|FfEXAx&aJkBT<{&OJ6!|E#(8;ocdl@;4A<9xk(9uG`QD~@8}BE zy!tiN>zOS^Clp_D^ufgYYyA+;l=9T#uCdR1@3iAL;n4h$0jwgk=?&U?B){MHawAAZ zrMEAa=;o#|NGDRxgQqGrwwWEo1cTjTNjR;9r+g_~j75DB)!?jzw%kSY61AV=JAC{+ z0Y}hG!cBWxYxH7IKCM58*IPsGiL=OZtrG0CI=ShH-|aOYf7V0%9-a*9??PkEW*bx& zm3YZQ#SJNLu`mAHc#kE&bo0f6N^yXF9?Rt{?(>6Q+h^ifhJ{sTD?d*rc$=+yPY^*z z1(f28&ocmrtYW1hv%}_%b(WU}6TkobJ+b1=h;uB&+h56%cyaVxg@!E)6q_ZllQ>~q zdfA1Qoh;m*=ilVucc>cr9wFRFK5>fM!LAZ7-_`ff7H~wb-|`UfIH$K5tYbs|J7LT5 z)SOmbgC?LBT%GNwQXyg{P3+bmqtj`{evUuKcR-cIK5wPrP@mCvYDi;m^*ipng(q&3H>Z_Q0fptq7Y ziPJApSQnE_=uPGKDkHsrgolqCbF}FDtkE!fxA}$52Zb~LaBfy=EmN{INJ3bpJ?3Q+ z7d1_m8GRjDT`Gv+$Qmxr?cLMZaBkC&KeH+Z8$APtEt}f-YBQw}`QNVZ;`jo?=yr1} zI3@iCC!PVpM8Ev-yHrwPhR8MIZ!F(M(0K=F4gO9nrAN$OZ*X&SSvTNPVc+G9P%$KU zTkt8Ng&1fZ3KQ1d?u6D@HhY1NeRG0_r#VmOIrmTd@)5wqtL?;b7xt{XkM-;VZD)Qu z?$!@nCl)n6XHkvp)|ZTCUl78+A=wdSe=BF0gvP&jw!oqrLY(jGk|Ey;YOewQqb7y_&RN1PjZ39i@Epf z6WPHt;IKk0C40ZC@Zd*mIb5|M-9z8UU@t+IFzM>(kG_zw65ZA-=lKtv!3LL8VL5Zl z(=MaEdR7!J5CRE_GF?``H1%{pYN*_&Jfr@b!XCMgqL_nGbHCWB9K!55a198jn%0koDt=O5+v)mJGxGEzmLvS3rXC&A(&B2t?7 z9}1S4D{SW@wiGcirji}KV!I-|Ph$37BhxQ+QhIv@_{*|3#=|wISm)wq_K8uLIoHvs z%v(VxhI-{OXWTP*t@PSDEhK?O0zTlZ~mw4MV;dJrS|ErJoIG#gSPC)m@!jVnY=zh8CsHF6LTa=#@pF{Fgq>Ao68F^Pjp@Tbq5W2Qlz>rZ5c zZYjEimKzDrgaBnZ-%yj0wsyB{4->mFOR|jTucxD94rG>%MV#|sRZYb`&IhRz1`C3j zcAx^Thd)4DL&A3ofAlbR8vaf<&Jq70Q@tCZlZDTr&6auReyS&{cC?BghRZ4le3aIP zB}q2--_Mqc56JKOKgJzjMRQwIqZQ^r4FA|gdJUKL$sU*_{-n`br5T}kUyaiAQs<=e zv1E}nRj)BUpgmV4x{_H~Me1v8ci2VZBeQGB6dAwSLDPsG!d&iCAlgg+4lZWq?Y(O2 zIi@%b<;tiV3-$s%E=^J~5i z)~8BET8{MgS#j+*exNFDn{-`kq8Lr8PAcY*XTWUv0@IA(3g@D^p$W~BjWu&I;Tcn} z^wOhRHoxZaLmG6&SmhaDL|gEym8ah2klG)Ad_epO{Pt7wOKT}DFrQvsxa3g4<^r|! zC4aY20-^JQ1P46jmu@TS&Fbt9nW7=%18JyCUhFcA_}z#KVPwNAFS^PUKF1*%NZhK! z{3+VQFRFplAmt)CWBorb5p7j>wBmtG6XR|5Bxa`URgeDSA==?j=i6aNan}j{8tCW4 z7Io8})emsKQoM6Sr|(vJ9W%L=Ba12MRIOVxZ8OW27-ihE>w2sJVqo&Cc%Nhmn^=BP zQ;(Yhw9g~z789;cjw~-RQa>JuqxD_w;VySSsG@!^1!-!|x%DUc!T0$Tj|bbrO`~xl zcIP<05UhgHtOKt&eL2ASs#;q7@jUbQGav*oyOVYGLvW-!_2L(hv*ymV&~zr5N5#T5 zK`e7y2SUDyv(u;~Q2mS7w6|=p6y6-t48+^oG0`?DF;Y|?U5?q|a3;SP`rx-T5IfFr zS4}yTY7O)Gmo|F_bjFf6&8EA)1s6(NdM*%bVQkW`uy~_C18TjmM~p)6ESkVHO4QDZ z3JruAA!1t?2{nCbIQtq>KQ)xM&0nPrFv@>OUOY>oTz_oM3_Ci-w;x`dvi?p=^5^&|ZK9 zffJ=W1$qgJ^3rZi3@$kIesOE6x;L;hy9lg>P~l!4#lArPeGT)$Bw5mrKImjLiVw#$ zxnpxhbBn1GF*|%Qz^@cEzr}mwtM_@{i9dPw;tM$+HK#(6Puw~d+juti2k})B0(Q|` z&K>Lmk%)Jl7TyQbblH1}tI^hQu1w*9@Rh9X9MzhA$*e=sU9`XRVZ`l7+lueKM{$VJj^`}6x}!1YmC0Qt(M0z!dfJXmqeb*khUAU^BSn{xw$ z$>$9MULr>c-R5&XIUN-laZ!$bLDp<&kc~iU4(1TOjf3Sa+gk5HTkx^1IDS*^EQaKK zSGuhh8mOeXdVs{y@ayX4#vnnaSDLpjdGTXag<^AR8*Q%6tS{VyL(6%C=>glo_*TUc zlF&cjZA))$JSdvZ``l+IbK`WyWUb?Jipw`3wWb3+Ci2prJj`R3wygKxba`a`gDY`l5W%YrJ`JF+*=0`($#-m4k8-X3Sibd+%QA zmGZH+ONg4EG`CltA9j8}*;h=(RrDZ?2j?|UxbP*=*fU`2P7&HUIo;qtkB7Te$F*r- zBA{TII~@~3!MPM}~aF2n?jaMXL;&%UR=SpIo# z*x6tHE=V943n@NL{3n#g*+|S0k|#p*-i3`}FEd5*DOtSslT7CK?_YWaDBw}k;g>wp zz>=#He}(+U`tJgZlk$;{t_jF3GG~BaB$6GC2T;7vK5QlH$6mZlff0ZE4!GO!rM}Wq z3^?0hbs_yX%b6n0QpJyyH35eq<^J3#{a6SLCQAr0<6w^E>9oO=al4DD$(PFT3h?3# z;X2VR?BItTi`~rD1B3g9jqfC-!Fe}y&F`CVNKbU*8Hom$k26jI((?h zmE|Ww*I-neb()P<;^5=kx4Ri5O|8=f@gVz@vs>^pATDO_%zem|iZNS_U7#fv=i=Kd zE0Y^YLEZJeb%g@U6-By4#iYsM8^wRn&QYjEp2*F<#cLznGAH_fQ1s_FP9L1MsxLa| zWoT#H`WQQ)n4*}KwLqXgw_6pWQpE4pTI0Z&_`$kSv_1orqa0%%xn%|6Z8JSPi}P%T zMso@*$w|3-59jx!NTKeKsSQL_KS z-3~T{fjA?J~sPC!MA>v#6w;CT*-n?jA z-g49fkX)hf<^E%U;f|?(;X18wt&_oWFTC|nR2y~@nI{{6226m!blZGe@tI2lXY))< z9V_gAc@rr=i9WhSIg;}EfQ$Ekh7=DCr(tLvc_mw*vtZwJlbfmB>G6|lnOX%GQyaM# zjIE!QakeDCxvk|4rr0#bMmL)C4>5V`tYr@e_)s0p(bZS%mVoWNo8GOO2=j&F5&&Y} zse4|awyR^)A_*KICp*so#b_1U9vRrng#k{=cq`Y;5Un|#-mgS)hTE}RU*t%N2#_>U zKum2Ifpq85pNq;9Qeufw+!GeQ?Fhi*3Xd;Bj3_-bwYdpZ4;R6`6*Yivoq*|TJ6a@opZCAfc`ODV4-;ITG*pM+8_{B|KJ?bC`=K=jA$$c6Pha{73-Zip*X?46-%-_d{E`rgs=8D(fY*-ZmvQhpJ-Q%4ib!();VsF^}7*RB%6N)M30< zkZ0?}%LnGD<9h}&w+P*M4%*vmTwU4I_E=v-pueQ%C<6l^+kA zDzhKveN1UDIg^JMsI@j+>UlQg46NbweL}6Bf;Ob)5>$~=e+sj^*uoLK3a5-~@#TFC z3-mBMuzLo4PQQ6=@h^wj+q@oH%sblK|{It}r}C+${@t{x1yn$}}USXH@4hE6W9>x zT;lyxh|kyoT5iAVund5;uixHQWCVELYQx^m+R+}${_@}^qp69}9RC+)E^E1}j2Acl zRUK-H=XQL5v+FoX%%UDL4va8Al#tV}Y0S2V)>X7;cn+RB2a=okxBn3jyDqUEzZNr9 z+e0Sr)h#ufp+s{TSB-w%32^NK#uzff-C)jX2c+8XvmF+9CeAUa@DUG z!hc?itaVxV+!M_S6l}ubOs%{&#M@aVudouEI!xew(({vjwN%}?dmc$ZVp9yTM zWQ$3{TVNaa3t84cst7(Ba_iG?jy(o=zn| z^X;MvRcwANfX2j~HVw~x8)lzQ8lkaGC?HEJ-8G1TPRu*15wH@(9(G(oE%JGYA<2!Y znzKma-AU)z++t=_8MKTe9|2=bSh$quBaJ)8l6`zYD2OV&8I<}UxfyhvJPVKBOxEQit?5EB+N%3~x`jC<)+-_DPy zuffauyUcIai^mG(#q4Jb2XmDuhBXpu^WRm=@QyVzXX6~G#ch9BV)hbaiPMd=bfhA2 zKnp{(wP%Uy^)}tSkF}~*Fw__pwqQG^m|A|KEv4aMO>3QGtHBuxo8B7fOO zx;2=YyBKQ|GqXM6V|Vv6rl^w!d(9!6Z|P><)Ow5_2l(yQBlLbaT7;m>i8#)qs!K0R zU;zWs+H5t8m4^>CRPuyIOz{B%R6o<@EwNT`7ur}9%lNns^7PuZ|y+XRjVOzVlHW=vG%UZ z8^Pc<%lg0aJ`61p0U4=(#&5Mx^IeU#V^Rf2eN<9r1=kcJ#>^DUw`ua;b};=RSSg~t z-;%(tETy%2v*qU%lF&y!2FJ9u@L{DD4HT&onmxIurRi@rK45;}IBw$1;p^Kso~puZ ztdI5G)2t(@(PXj{UgVFfrnc&5aMXbQMR(F{r7PKxFHYlC@cQ0)iT3L!bz7_UEefC(Ic;&VG$#cysl!7+qQ~nCU|UV$b$(zF(y! zLM(0EMTH>mP{Aqc#yb7SI705Fnnc~QPwHz`Bohz~MrdhD*7BXJtCPW$u{K-G{(e>x zi6`4b|FKtc&i>|$D-4(oq#yq)_fdILrJ#2RC1x^7R>#7I$lK5Ld?`{YDc zxq@ko?^dG%YkEKRM}E#*^6^$ZBGFuwc1IcjVcPAz-waE@4QW<=v>BI%_RJ?@hB{{B z_;g(t=9BoML#HcY-}>8H2lCrL-ToorIAY`v}~k-%@MPvFNGBzVu~dqS1Jso01FW*LUy#3Sc~!7Ab+ABTbi9OKh(Bzfz2lKdQ^WZt zR_5tsJE4>jtCOi?TPn*iLI`}2f#pBa{Men!+BEeDR-<0rGx?%wrRrI-gAi+Cc?M{P zTvd=Ft=@0=I2qJEs72&*<-Z0oB)bsxZq&c!7^~VDk@YEB7|Scm1v@0r*Og~BAjQ)z zSNZQsZYslU$mja^2X@03sI!CDp8`0Tv{U9xes9F_Hbn7ZN;jc<-j3p1(wsW%jCY5x zTD5d8H{<@~>r(2Ih?ZQC06S5n9-o>q+bw$4V=GzCuV=#J@~GDD^;pVIV}$W3Rz=Vu zA8*aP_d;W(T&HKUczwyWcrJ?4ZxF$y-(J0g zbtj@6a+Fx0cwe zDevmeZX-wfuOHc1m*sqvUwDScpGG~@RLW!{8SvIUmL+1D$CxKtwMp7&Zu=u?B79tr zmYDYC2q28Hr(7~+1O5Ah`Ed&7s_^(csr3c#Bn>YJa15t}$PZDKvkX&f` zD=my%GxNxV6fxK3Eq30exyiyN9Eh|}0izJHf0tXZ2RFFM#5{M3(zm?JU9WJtgRFcQTJ~QBrxZg|ZYJ*~qV=b9XF!by+Rt+OS?5K9$9iB_3%9a=VV`?7DRFeQ9vX#YINvDsAxf70{D3_uGQ}qVDBa z60FRR_?b2?Qg4rR{7pCZx2iL`>rCnS6xR(bbq_sDF9Jg=>jED>I&I)Aexu8~gWc=R z>|AG$OsPUD9*aYbe*_*-QBa|k@q*S}O{Z55q}+Y}K? zx5ZtIR2tp2*DrnY+tj%#C%Rd#GT{XmDq)+jP@i5gUmJa+d$OD_^<^AwGUO`F7hfV4 zl_Pcx0CLN*j!mit>JTOmkknPv1fzd+-4^j? zdyzEpX99Eqtu)7o7I#gsnSrDI31<*SGS?xQ-H^QTWxgScjFWpN+gnkVl9?Y6@B?U{ z-e6CbX~t~&N|35bli5zX-j)>R%nXDa-03NE3FXM@Gf#p`s$9_yE9^$tISjh{flX`p zM+Y(b9g4?{)swpv+IWQu_Z@IaE8}mP_cIyM77n&`jjvjFFYv;0_jd1tMYFdbbl-5Z zOq(AQ!Eto?+Gl8-r&#g&zKQH}2u%sX%w@6)(<@LYl}d zFL&5wpKKA;WvC>D{D*xK0Zsvs9UBCV8rRp2CX}D@d`m6;|H>zB2R%@)^w|3QK?8%I zuj}JfN0^uICh3IfE!;vT>tVpG;UYmY8;?dWI^Vk(GE-)3{)?u$@pWAaA95eY#NA+$ zMpabiy+ru*ZAF&R+HnYarFj25pU4M3!l~kQH^ZiJuA$x?MG%V?F9N5N((KQP!Ot

M@-pdSPpY$zbBwb7%Od0PHoE!ti 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 T{}lM20{>Ise+vBnR^a~wBl