PK)MRcosine/__init__.pyKMUUPJ/KUPK9:M^-cosine/config.yaml.exampleSMo0 WhٹNҥ;8V`),&jKDgdg.H||$E>!Po(at h5bΒ{:]j\]` \!Vumm+0xdt>#ė IIJ~n3أx3.2~ ww$"p[K4ޭN8qrOR<(^lE[!R9(t|Wt-<]?n'M麲!a÷+sInk:ץgbm}!etFKciv&dŢzJ8tHCUpԶSJuō)'E_1%NrIߧgɐG~Zri53Raյ1+Knk6BB;|{^x9%*܄;@po0 B9¡nVOdgHoKi!ݾJ / <H=nPeѤ.;ʟt>;"K<"J PK)Mcosine/core/__init__.pySRRRV"CS} }#C ?'1%4O!(?73/2SAW9(3=DJ:=ĜPBQjqjQYjҒx[uQEPԹxsq8.> >\PKN5]`"@ 䮇6 ^CEټȢEh_clgHJ#M ][73MSۆ2a0d4ܥmS1I$q'H yV*AhS xА ZЗ .>{W6cZDp;md \DXwnk[y\yfi"̴? G֦jTÙR=bz, ?o**!±G>v|>PԳ mZ5?߷@V<7HGGEOXrA`^Lyu;$<(%﷎:PhwhgKay9.ɋ6qq̜R2F( }Hmkٯt BОGClC'?'N FX@Q^R,㙢%Nrʢ:\%0ŒH*gb$5V)G?Kl(mTCIG숍1;h`b2Hwe;1`I77%qZ >@+uoeWy#)*>DZ w]s!G6Ph%p;=f.-'"&v Ɖb ΪޞwMǓ.)MyzBv)~G)[5dWOPjĪrNn4 &N-#jVzyWI[]UiB#qETC<0E!ˑu>r5g-?̏1fO{28ixR#ӘƦe04OS#дV'9Ct1(zt&_4<4tY,ge^Mpm4޷9J)<آW5{2 hA$6+$'yŊ!3/C-io bC{"-/PǼJ\>_m/^F>=lD~c vL|m'#hc+MY^UG|0ϣX(ǁP?D=坴oldJo`9F/CbUѼ&{ 7 H>3얃4M#(ܠ 'PqeYIF]@$) a[5gЯLhPYϽs^\>y\C˷,\|<RP퉋g2(H \L*/dT500TW|uISJgS4ȁ1B+J4NxLx} Y_1e}L<ӆzO'?T9ޞK)d^ 0`h(B5V{z]zBFT9/@U &8dHFwdwt:LsQEzdLT_Fγ9Q#W\w9:ZհMM' *=EAÛL]%}׼4tN+Nx;NxQn%`4+Ybۢ{ڳxȠPW3 /]qfP P4RlyyUA55o戓l[EMKv=x5 qEiAbrPwml 4|Z6k>l\JiVeâDķMnHe|{zƂO KYʡGSѦq|YԤ 4WwmH=8nq0G:/gHՑ#BnwsnPKs3M.Wqcosine/core/instrument.pyTn0}+,HۧjRUY*ktOYIf'7e BXi{>\^c7./W+3xh*tU'CkQ֒,.B4ː )$A|4 Q$V $!hFJRa`?><=oBjj}Bt 1x"-i tjk7l6zEVdb_6w7h}wlQZmr(lBn>yR!B5!3neX},ٗoT4@3c;èׅN.zvx)%0(@;A(Y7kb8{!k7o] v4~Pjr0uz3Aәڴ1&a#&&6 L_%졘;yB# ֩ڱNDHʙ /+Jz"djtiޘC֮oF{32[ {Cڣ7gS6GHg7}Gi>5vHZ O<Ѫ[{ mg/vbDRǕ6`DQ*J MbBC A6xnsQ@@Ŋ))L?Ary{I7 ~Ʉ,0-ు$g|S ml;6a8 -x=[87ȥn yٙu {ӦSEcha`R"dE!j2>\\s+jAd}.K:w i[W]4T&=SÐNOpaf(3^;9{s5)p['Yʦ̈xk2m[u`KML}^SwJ:kӭ۶iJmg h-qY0uVqsaҭ(Dv s-: +Ia)؊*M845 .kr+wn} ERuzx<;)'ZC>xroo樓N))s炲yZ Yێ(T;bR K G+3PKM2M:A p5cosine/core/order_worker.pyn8zm,xq It?rHt -5nd;i+pBHp8_ g/~ͫ׿)K[S,b]QU#7AԒy$]uU$dF TD|&xg{ h%yѮXRR,)ߜ.\-p˔SeU[4ΪEqg#iK>VΪ+(rX"|UWVAҺ-XU&*eU&ӭkڏH˼()9*byoA/Ӗ&]!9le6S3Eg]ڭ=TƇӷɻ?N>?=9eݭj)2:b^ů&=OCUS"Ӿi ,l,ӓITwHoó^ҶEq䒏ѬNP8I>$ZS4i]OIQ]ZX{J5@vfDBQR˘qb6gNmN4e2Nu:C;[eM]*5H0n!,҂ @|W\D&v'Pjkg`"QkeVZqls!8 t~G7Hv״^W+;rYA[C )k|vTl+Ѧ`Q59?([5  W%+xJ԰%h>^>!Vˌ%?[ʢEſ9WsC68ʀr]0G"_5L} 䌞d%#싻{eZG,]^)? aֶnSRεN n =DxEWAJBI{NAo;eOoRlj`f8 nj9h w3P4m[-hnVY3~snx"LjnD= )H״Z侷Zi^q%mL*߉RcѵFzaA÷z#pfx`afD*)oIъ=7?R3bnn?lEڛ?j.K6l>\H x+|)Y"K \XƳ E_b#Eﭱ Ǥi_$7 P.p./F$@e @VrVl VյQG'G36R"vXWHOZvGɓ'vۀ(2R#9(~QS;ucה:ɓs&Lr6pB?+p >yALަK/$65k &bZG?YO}Ҷ]h )ϲo;2JKѾWA|___?\eZ,} ,U z:m7S~aChL;;vM\[ zyY@I#'=-lq~k˓ ռ88rf`GcgwDCS6l?& :\T7]/H/Vj-kXKv0r^L0cܝt]%Z7"ׇ}sAq^7UYԕ3rg' #@A". 0z}m\KLϭze? H9H"&դ Qb?ϬXη<%`C%q@_ցĈ cÊj0 e<: 0]7euW ЋMyYxˈ7y`A&\ԴDdr]bK.Dd&3cD/#C$P=p WHcdW uE72 $csˀ9rjSٹ!) ,[M/X$)皤e 'eOUO&gVKOxy~>E$KLvZ rUuc*s'e7.d9V.L%Pr}8޽᳓r{iɿl+UI%7}C#4N6.ŕmm b}ҧMU7tr6T%#N%jޟBہ+yhťOQebEqA #l xT%ώ#0}Nb= Îm d6l  ܌5ɮO[|NG 8)q೅_7nƜbp}kA4k\OˏxX޴/9.2JUHj%QNx@zyFe:|YW®?oSp+ G.6um{(̈́mM+i K4 l[;K+CeKv[,ͱޮ&Oaj?јD%ںgޔ& I)L ]q`X1mh;kU(@̽ɦB1PT[V e])ǶG@qLb' Jk)r".٧Xj&QFD1S+p(G"Z8) F^iUjbvF0Y/vnN=o>h DkQUᦹ@s@)qGf66غC)0e]OdC$NƉѸIӣ5SmPT_?PK2\*MX9 cosine/core/proc_workers.pyVn6}WJ W(`E6MnL$A~Y(;۾U0lI3svf苋wW}{ukZ pQgGF!B /brB뚸W(РP"mN sC&A?=mۻ}S&(AkƷjIAkg Ksbwx*A&׌QͯkB/aO j fVV fY جÂ~a\,Z J2e7IB`Cc"PofdD#3bڂ !k=On_K7}ey[0!Z,/-ytj=0Ɨ[}l <DJI %Giḇ+U.֕d(ZWW]I[*>CiڦvbLzvq};X[NG4l%"(ӆsZwo:`z140tX̩tl,x !}F<1$,";ʫW[ (F([}*q+HO.౻PE Ͱ:02kJ +k7LA`3=!_=75x7NFeπŁo@ rL7zy:db1k?]w\߼,%gƤCu6ɽsbz4;qb }fò%|gg4yLy"MÓD.*V*% ~EܒUI1^TšJy0_>>MA`'x|7kMqx§)h/16 +%WLf 53 Mr178:Huju8 ڼR -d~aU6A"UT?"ql]4%2Nhza[fS1<k7F!,r5׍"×qfR(fϑ!m7³TY#p˼eJ [q #٨Dc$g,1,},mХ^A,s#!GY&Yΰ%6[euH{F[7F3kMqt%$)>7ᆿi?%BL(ziCͲΦY*92[kGӦfn9 (AU튆2kj˵# 6vROq}w]]=6PKNOgyJi $KefkB1rY(`lk,r-xepI4&VR7\*V˗vz?r,+Å)Q3a!l?D@ؒVI~Bd2uG3 tu K6Lhq&33<@a4ԅ"Zĉ٩#g2?,))mpru}nP yp$vT_nOsfٰ NG+/<8L7tvΚ^qj368 0tZ3 ϜRV \I-A-- +f Ye0svM3,M13:D ;7BvdǗLh@./Ӂ\Ar|s#Swbu^aeZ͗ʼnJT̘`[b:#!k5ܥ08O}ZD k3KYL3*sgfp잃^{ Ty-rp]tC'.WO+6.'BlJ7vpzC\"+{fWZnyJwd[3aJ,]NG٧4uE; M¶,K\ckͱ'7 z<J'P\+P>Rn{adovMдPY5'{ږI%+їk ߩ*ۿ?Pv?Sog$xM~7iOd%5Ѝ8j;fSLNEѩ{M5#Q׉ypB@NXU0o'X Gs=߯?Daֈz_p[׫+o_o^\)وs#s]Lfw'|ON@}  4xuqPK)M8 cosine/pricing/__init__.pyJ@C<M[A(F˚L&f6Bdc0ŋ^(/Vr勝QuM[J4\AbOh}1(cXD(jђp5~v;*duqf iàڒ cCŌ| fCf7( g(h^~jIgHܡ&lf >Mשȱ{xZڼ1ȳ[q0$F>!9L=Yf7PK4z1M>} cosine/pricing/base_feed.pyVn6SpES)P m. C`$,I5<^cOCR(ʍ A,|?gY#w|wW-C) ](f?#K*d$D'È1p\dJхE >}{JXEi+D >O+˹$9$fC24朕t)%QS\#x!Ar'LiӭUW݇?noo2+,eHHXU!x R,Щ,%6),6Du פ{e3mjIkn| &$ٶ}jU"H(gP( gher+w BχxYdȬ vAFYK?.jo0[]߼b6DaDºڭezSʿtodHk?3m)?X[ܸT !q%a2קqXm}Y|&TA&, KcrSj-yԉQqytDgjpb#! c? :eٞ.4#Iu7Pm Hc |9]x{ G)e]C.Bi~STvR^渁p'M ]P&hN=\2+Wf)_2ߺByh|OОWAyN FpIjLiΛ'u'ݼ,RcyV쨽a+ *ѪcmREPK-;M)Ol+ &cosine/pricing/cryptocompare.pyZ{O:›&PCmu:wvĢ(4nK.Pٯlϱ΃{*>wyq;?=;qFX*[i6e A:IB'rh@ p% 2$b큀/ mEs7i ?G5dz=g`4͵n% StSyr: |\fIIAڎ L` -ԹJ]N)y.Je;RWw|⼨bwJwNok-M}MȵñTA(6=9;>t;~yݧr?'͹ɸk9|yu6R>}sp|rr|%?#& ;T9~P֘\}:X1?5M1"Ύ|H[sWeڈgxej@m_/%*;į~,pݯ+.tCn:N)#obFa3B@Mb87Y˵dΜ]зQ|74RXtX$OzōaS=s+5L#k<J`xS0$bq$a.`%ɝj ~E3^ rHTې AR*iVUV2 ~E<_t+Kn uPF}]`US` jwa ed7lˆFYXx*tڡ?vk0Ke`K`]jڽdprz2) 2BY}cm-F*㪒TV!3ZpOMd9s \f!1|'8[l =b3Yҙ7;LEU"*I~|쑷ؼ&YkqjkT7sOrR.95ʯP{ Z4Ж .m^CY^S֝W啪LJ^UՆ0UM\0_g7Y53bl<([Q`}.f Jv򤠣"|3'lEk/EV,*X~1ϫn&14}Bjyx; nYRήaκq:˼yQLqW!Q 4<Ǚֲ^{,>[%Jo)Ӻ<[g)ԂO0P/ZN9A/ՊsyNhuj\X7^zPK)MF"cosine/pricing/pricers/__init__.pySRRRV"c} }#C ?'1%4O!(?73/2SAW9(3=DJ:=ĜPBQjqjQYjҒx[uQEPԹxsq8.> >\PK,[+M`+d%cosine/pricing/pricers/base_pricer.pyQN0+V@J)pAH=PD*$Fk'|6 aYq23;w:Ó|L)6n޾Y؇1olEwH}0 1(jm FVjWɀLBFzd8pT`8okH%r˳l2S3!Da!w ;U dX26j >xSaj"ׇ5a-?&/pD0/eZİ[lJ͛0#ؤ*6on%JvA'RIǯdDn( PK"Z+M/'r#$cosine/pricing/pricers/nullpricer.pyJ1zm՛"Bj/m0IG5|2 "Ù$Iq|nƣdt=cmTbma*mI%̜?.>˗2R€E&&Jxp$%LנE<,7c.BJOz"mqsWr}lq\ V1m \AJNR} VUwΤ{)WHӕ/GEe`jA\"`yODE;l%Z$QB!R]ޡO@E|PK)M\ϚFcosine/strategies/__init__.pyej1ya{PZ(z(([L{qw@6#DG5d 2+B2%zNZl+PH; _;[H5Ʒnpuu/UL3L،oLyE)aZ\-k=Ҽa-;zA_cL %zNOW(:еlYIߖ<'XaYM. v ]ă<-{C| &v2XmrZQXu [j eտSVW\°was͉'=yt(-ot8fZ"n!5kJPKM2My""cosine/strategies/noddy_floater.pyWn6S$Ge 4]0Z:VH"CJN ؓ툔dҖ,0!0%|uR^7˼ʷ9yK.<ɟVVDO)"A@J "1k[.̈od{h/_o^^ .k"Y[ I!KVn4k Wy4(); ]1%!Z'\w+^KOӏK tsQL!@xy$::":ß:"P)x}Dd:{`2SCG5do`Ay;JH&d[Ojh & &cbҧ&7 !)tX]A%FaߥxCQ_$L+W)#N_l[t  CB (DF&` mRCy;.-D^e4[Q󄗂Iҙi0Q79:6zwQbm Hoϊ@nY5g[mR^*LG?V2{Yu{mzm7v&w__PK)Mfʵ:cosine/venues/__init__.py]Mn0>(,G*hS@AdKfl$kdueh6eY&zv2dztڇ`r9@든Nb d RdI)X@;/RzSlw8$*ơ7O2W<6f:tiUme4M[ k3 L΂`;7K1`S2m9&d7B\Ԑ<ٝAZx-wY9TqC!h뜋 5MZ ԸA8 y s*L <13Jh$"d 6|D`*adXW͈zT/jR^BL 60n({rL $>b}T;z81'MCQ{‹50ԢfxώaNY/OnN.7LF~_O'I}~`©y7Fi<6w` % |zSCG3%oZ0Rߜ|@+L82Uߌyt;'mo~w'/N{5(c"YcQHhZ(%$Z|}9sIׯ k `/=+ ^!{{Acm'%(_{jdgdѦٶ(2F+LFt}@eѹ/2.dQRd"@wmܧ(VWMSJT:paU5h r*L/ m/` aWAGcL>LZnwcjxO?|} eБ#óEPK1)MZwʑcosine/venues/bem/__init__.pySRRRV"#3} }#C ?'1%4O!(?73/2SAW9(3=DJ:=ĜPBQjqjQYjҒx[uQEPԹxsERs2s J@Ҿ.> >\PK!N:M =%cosine/venues/bem/bem.pyYr۸S` Q*l{MJV]r#yێáHHBM V3~F Hvf$2|<޿}۟޽~(j|2v`d`"ADiJ$J*h<^mC2&}#JXQ(]^?/5a E>P`d}K,Hh* .Wzh*0e4l6GFdAUN(*DO.OPxٞ`I: Lx 4J\CY4H\LǛr6Zήg2<߿M ,M9mf1Ϡov>+v3_v}sE{Ɇ0kJmLGSԤoi,3p5kYMA[4*Y18U!)hm͒8PITq=C`Ͳ'?$RBz,FRH=^0? E F*|YdjA)#HɡPGoH%XN>h(`'(#J$M 4GU ԻHv`l L Z)a}9>а*R麱OA&]C͢5ծJdȒAʸI qx\ f2.AN mt` &`MR# _k{K5ΧF3>1U:o":'gtыHn@o/X. m01,6*9O$~RC oCg0AI UIµu 6YfCIqS8)7lכ"C8PP>B*d@Q'R̨BŁiIR!!rw (dry PrMS@%jO]CI(=终esrx;n?Ԝ`kDe4Vv)FmER(54pŹ(@ ydpLKdL HĞ?qH{72l.fʚï*`lE1&غr@O%j$VnDXGeXO)XA1-׻z`9'PR7'Ibq.c/\q3F3`/&5<Hs]Rl.h$d!)v k{.`w-pcwIvLMJqsx.u)Ζ/.(i2͇Bq@hSN@~|瓻=e:8[DvUGx@mu(KSRhss-L@ 'XJ<]TA.x "yf)ol 0US-3'g^~ԫT z<HoEw#QXjhӂCQkhϭ䦃:_D1S :Ԅ#y_tgsAktuޭ[ssߝ y\-ZS*E\J"?( L[P_AQ1Kq(fz/ѩ8(xWL iq|;_ӫէ!狳<}^N1,B^>uQk(m PmeK Y![n3',/(SLS xƚ!!^<{5q8P/-1n派$Ҝ;`IH\NJގ jm:mn.xC k*hk) el 2z0m$}m,htu\:u_=͚g;W*oXǧ.\]kI1;Wڥtj/XXj˓꺢s#4`;FsL.g>k/>:=ʹP<[,u.,^ g}^B4Ffb5\j nůq+^ݠMmn;RQ^{WٱPKg;M cosine/venues/bem/types.pyXn6S +v( &ػ C# E*$U@{=٨ɒ,:;z2X!ww/|<,8z4]0tIF A1)$A|ϱ&uq? =eT2YfۻQa h 1(>)0o{rvX~/жg qs^Jcy JRk |i*x} s,> W6_2eYb徰ά$w_?ޠ" +>0Ao>aZ]t>r{#5h׵0s̤A؜dQWPKa^\##+͌UD(Glc#D~ Ѯ):!s)}/n3 %%05NǧsMu[{E# Mes0Zb/{ 8ZʕQ\gd{t:i,I}4`M0r voeV%SRsVV;|]0u锿 3:sOv E֣aܶ['pH*@(l Ҕ|7I 8vQnY>uMFrd;o9gXc*K׆Y2YUD=h{Z ѦvUZ5C*h+S[ʚ㢱#.L#@;*B3HhEiߴ'K#d*N[yx3KM њ4/b:Zhe/@=~M#ROkדeP~[{wQܚSmwC:)Tz۶݁tO~/2g=S$RX]v&Χ[OZLӕ3''t// V:_l|?wAX5#TZ8UeQ"PKL-M;xrcosine/venues/bem/worker.pyYkn8SIv(M8]t hUˢKRqAؓԃM-3g"3/7^& R4e8c7+)$AzH N4 C@Ędr8hs(g _N l(.XZ;,\S)k@K"(^~xѐELbJo ۧSXN&% $f$AbftZ5 1KSʘ[5K24_S.*5 3'4l3*e cq.@7r)w)ܝl1&<=a44FR0Z*Ohx_NЗb6T)0M#G[彛2"HHÆ#dY*)jˎώg d'v.u7cpy gvtR#I KJ64a1r=wQzA 0c ~&XeKIDXyp|޲5+FIcj &eBB=ZmY¤uvj qTOqt8ȱXbyCs4Ú`T2۪QƎ €Cm 5㄂0ZDW1L|bP3;HEfgc3d>Olg'so3H Cv K[ Uk@p䊢 PB  "(̄] V3mE\!ƶ1*],W|F> '; x7hA N }|ɦ}>*z8ꐹZ$(i:mГ9 hm~-|E?t:r{y^jy&S[[z! 3xc?Өdd鞘Z1"+7HnW%Q-s|ymH:7y4ai!\6Jl e:G5#fY`J*|A+[:9}1Zʚ3pQZ(0])tEUג7+wGnVvSlv-)t5=a֘ӐБwI%ŘS'6- Bͬ),Vu':ۃfeB]p1mbFܔm|TJIT,m<:Yw hgR;}gqw2PvӪEr-XB 1 -TN è3FBY-y:Q!C[K..~9$>.µA+4엸[Җu "'hTmR/*m{WM#𣏕G/#"Bp% ׍}NotTtG~ڧ' _Jp9<*Wѐ[)60J5dV{TXZ"47˗=hHSFz2iIE~J-k<{U=`ę #EuC-K j%p kuuf}Bn5YS}""b:MTB^]\96 /CK@̡r=B'-\ltWr ߗ>wZ};\봫:nW(Ӯ5ܮzv-]JnUut_g [mZwhEluw2E*`T"Սg}3t1=糔i|MNU1ZC+/zT[PKN[9cp6LFy[JrTtӴ7sm)4GIG(T* w+pW{Rso1^,6 Z$fȆo8x4w3O;S_{atMl{ZAٯG \`RWtfv!X `0fѡh >)E~HqǍL?F;PKNϴϗG5qn1.n',k! J_W &Z Kt{j6Ѕ{7`UǾpSN;JR"kL"\­ŔK^L0+q:m"tO{i*!Ug 졓fJ &dy:&ƂJ+IGMf+sS@!{`vH!Xܠa;yF /ì yp`_[Ŧ,o*(A5.w6̊n5)̛TvY+`YT.nx H m ޛ4F&YH7o)xC 7ZX ,0#: aQĐ/oGߴ %4@1sxk,:P_]B?<վdjz|YkXGP -ֶ SVn "ȟ8&&T 9bNr_%}X}⋼E(@(1 4Mv4/4)urN=-PuvpǹBJ^&>d3…VY綊ahr;WϿ Gi9Oԥ&E-\qS{,Um)3#;=GZ<3qΟF[HW9 9 \U_p 3-Y\֜.}fdR=.V)͋@*қ `9iF(0!2= HJ%kڈY:v4X5_^„!z/ Ӆ.eLQ Є%ʤk=~ۏbhVL^ʕwhOFqUYU@8 0Yp-th&Oi%ql')8bxE)gcosine/core/logger.pyPKM2M:A p5cosine/core/order_worker.pyPK)M7V5i!Z!cosine/core/order_worker_types.pyPK2\*MX9 #cosine/core/proc_workers.pyPKS9MB}|Y'cosine/core/tradeable.pyPKN} _/cosine/pricing/base_feed.pyPK-;M)Ol+ &3cosine/pricing/cryptocompare.pyPK)MF">cosine/pricing/pricers/__init__.pyPK,[+M`+d%?cosine/pricing/pricers/base_pricer.pyPK"Z+M/'r#$bAcosine/pricing/pricers/nullpricer.pyPK)M\ϚFBcosine/strategies/__init__.pyPK}.Mm/ǯ"Ccosine/strategies/base_strategy.pyPKM2My""Ecosine/strategies/noddy_floater.pyPK)Mfʵ:Jcosine/venues/__init__.pyPK`1M/O*Kcosine/venues/base_venue.pyPK1)MZwʑOcosine/venues/bem/__init__.pyPK!N:M =%ZPcosine/venues/bem/bem.pyPKg;M [cosine/venues/bem/types.pyPKL-M;xrS_cosine/venues/bem/worker.pyPKN