PKO\Gz tensorflow_federated/__init__.pyWQ6~WؗVbSʱjTat:"q{Nw!Zv gg }Em2yr YԊ{ v{;kLbDiorVDyA(~u#3xbJs{`'L鏿"C-KH 4Pj\CρʬA;٦#A𹣐!8d8i71]UUizRwVbY 5(w5(e RT@RpH+Rͷz/laYwfןq }۰Q$~duZ؉Dt(O8siIR<0q`*ަFy1qCLʛLӋ1"p|2I Ҕ)g@gܴUx0ͩUfQ ';t- @.LHtoo^6"m;V*$?6<*Ð㞍u\{#J6SL;;DG!8ߚd(,1,eRXlF6(^SCָ;0y%f<ϱG⊔$1%ڌGŖb,&FƺN,%.ut K?m~3 Fpzu A(Xnz_w8i¾q(0hi+@9OWN0 maG5d6Ga[h{A"}},+͕T߮[屾nUiЃC&-[#X04/^yV( *ʡ܏K )._Tx߾uI|ؿ;Sw'YkwכzƱ͟N8[aǶGKK5 ![^uNJ9ھ8򉱲KQtabo{!Gۮv`hoPKO]tensorflow_federated/version.pyun@<JMul’!rB 0nw}LDmvf}qljZ_Z UfߩX+N16Vu5:HH%/4p&_r0Xd PS%j$THa$eƀBNZ^~fkw8iCeuwU!t١`@{-. 4`N ǜGCdUAv:C^M/7R(8{iqct:EIR8`{L,>&|C<8yV\9b5 -E|P+XRM%%A4:h4=oZƫإp?Mݡu'B{^mTy^n02U#ߒUt뭸6*ˉ|)Βop ?PKOej&tensorflow_federated/proto/__init__.pyeAo0OɥXmO=4ѢV=:0Hڦ߁fVeϛWسPv w6Ǝ6EK(H{v T!x=^KAJ.y6 &RZ^8Ă=jV `ҜmJC;?s1 \,)(Q+[9՟uPaW_aL׬_6˷߄xyyG{v4BY*I0;58ƑԂǁu: ʑTSL,y)e#͗xH49-~ <'c6!{Li${4{@2+yެ9R5 -'P oKɥ^5Ƽܙ^*qAPPKOej)tensorflow_federated/proto/v0/__init__.pyeAo0OɥXmO=4ѢV=:0Hڦ߁fVeϛWسPv w6Ǝ6EK(H{v T!x=^KAJ.y6 &RZ^8Ă=jV `ҜmJC;?s1 \,)(Q+[9՟uPaW_aL׬_6˷߄xyyG{v4BY*I0;58ƑԂǁu: ʑTSL,y)e#͗xH49-~ <'c6!{Li${4{@2+yެ9R5 -'P oKɥ^5Ƽܙ^*qAPPKO%ߴ0tensorflow_federated/proto/v0/computation_pb2.py]{S;ߟ›q";ƀ0N]溮v;vjh[ӐNUu~yH-T?~.CynoJ??EhѨ/Kb˫U)_or xk~9ʻ~0 ?|+ϗJ4vw+|~7pEeR(Z E r?fRGUx!wfe4FCRD?fRi0 ppm?%d,YJ%HCr42e gbP2h2IqVN9awK,wG>\zʷ**zD㯢$N?:<Ϣģ0;vݫ?(w7G }^?," ..G+}L ь#j29Oi 0/x O?!Tg7{94vQDqlbA$+Ʃzq|5p|;aPF "03Mk(D8-4xR-C:ūE1n5S8.0f1q`R͒jdSHa88_Pv)oB:Tl[[E?7;LρH%[ η%6a2Lp,C[p5/]IS7lQd~x9 n) W5*\~Zy lGhg4 f<a-уT$jzo9+](jA9 #B>ֹots )w%}bf\u nJ:D} =D.d<_РIDzlY g+؀U:BlI?8;;;Vi ~pڻIF<'_z]򨦣=;#ȫrDp@ч PMI'E2/{A*Nu]\(_ @$L,UaD 1{4N6>#pA14/da,LS6P>e|-τыcC(4AB(8&|':ID1 $W*a-" l8V2*|%c~npwEl}[f 1^h1}#eƍI'Qe š ) (@gYP#Ry~uau @ "e3Q?`@_o$$=Vqr PcԶ$s}V_g׷~o۫7ɪonza- KL6>?`l~6Ao[V4 = n~ -KE6޶!Yr!Ae&6ۖQ$X.7޶,cRn-F&(޶#LXsyeʚY-U5n"k[c8d6ΡU.czw΁-YnebΠe{_糋ĬC7pbxMGI)|֭18Z!TtB9ifBzt'糊LgqAU_'4ZiU}m/p(6ݢѧl@/ v̹/ _onuGPIzT 3:w)Ȱ7 Ћ4+%,7? Sw ɠ M%\- $d4(.`7ΖܡIiU?]HrωТ 3 YH"iZ(rTҾ?[ gw>g>%;.T$[=S"W+Nb)[2Wj & K>9-um?miLvV"Q\{8:@.YdU]9%ЧĆ 瀹@O'y'vj' cBQu ^}"iɅJ*v>4GP?~ 7D1\ɶP/N,TO0v]!J\iƦIw3bdJj:Tt=un{޷N}[ä?Li z+A:`S5 UF> Xǡ?PS!Caތtի dbCg3B+:L7*i7|GFT#=s3F-KgJuʈ*Jou}$ZQZѤA0}n^Sua/R*&Mhoנ.OWc஽m'퀷xʚ3 տk\޻]%\BK(K]:}K iT;4zEBț j 4DC.{c4[th$ZM%'-(_d_9rXu܆![IfzLZ^s1=lM@* '/ސB5ne$B^NI xV#4y=^u DY;To!rsȚEIKs x86TJ,tsA>1Bp(\ěۀ]Uiw?' e!Ի-GԹb*2'^@,Y_/W0PA_pH#p 3|hk횇7 oQi|-G7e_}Gm|.nRuE:~[G"s*ԯ_A!~{v@rӭ q6@aV@ssW&ZRۅZa 52hwjUxlcSt$x!g:HY6=\ֹ$Q0xt#tQ{ʃ+V$+t/K"X4ˏt^ߙm]%x/&3~7] F4&ḧ́zC_w _磓:v ~cXBZ#!Vo5t:|~QcF&+`*Id-NzW^(^D{sƨнllụKŅmЧ"s<"yLDA)WLX+~I8bϛþm9oIPh1Nxٜ_-ywk[ IߎѾ[ڠ%;>S}5fKRr?Ɉ7gum2^Vf~h=@tk[1UxuޱˮӇub5_/m_tcVU17ۇCt)JE(d(Ά8֯$rvx`%KNsZ>=IlNz+ /ePb3ُ#4:ȈȖj!$o_|$ۊ8`“w :ro6ɄmUy},*54BلS=O%h[Eo٤KlCW\W_p^MʝJ#,Qv* v+bD\A%\,:i=bHAw ,ZlhQ6C#i3e3ڿ6B8rwLVx6B2|1~dc`TgjP 0B7Ct! Y0j$F!|FC+^ԓBmFeгqLfBT2ePǛ{@72dxm`/!i #E#* UkYx 6K(؊T̉WBOKPdip.x#D2GJth]숡g.KurqcWt_ݣtf5rR2`P&6UA=gCƆP),B 4ym8UO'ea`8;ZU?Aj(pYC?X%sF~ϩAԭ4Lkh ; 'm.X^S$}ޘn><BS/Z6$DؒdzX,0iit|r(fGfSPP{"H13ǯrRrߢK 3x<&Rfׁ>WL6@V]hp:lQ{`[ysv+-2#2n6oD=DX/w6j,gLm]`4\EwN'H؛'7,ј𠼄p>+lW2݀HV!}WS T%o'5jX/źpwZ Ǐ0/Zg,N o /cOgW*Y(.8A@Pn2HIeNHN"U*%ً;R׉!xw;F nztGɘe_&7)Mna% ەؔ iJѥz1ha[.ZᱛQ`w@m09`I8A&%@gyMl8hI 9a'O&[y@OjDْ< jA4-\f  ũ[,% \g1ܤBglI{l6\*yOjؓ 8e9MgNsv=˜CsEN+z4׀0{#TMSJk8q፠I7Q'%JTK^Sr&iypV3\\8=J ] Jl w l!$Z`t\ 8E/vG /",ZV!GgL 'K.p1A9U cpA"F ))Fpfұ<Z`S(Wn@gN/(i})!w6;cH>0'fI:Va M.XZ"=OrX!%kqه+N0=ۀ .R*eD+PKOīQS5tensorflow_federated/proto/v0/computation_pb2_grpc.py 0 {%Tċq-McFz=?X"cA )1Ozv.Wa5DPKOr+t-tensorflow_federated/proto/v0/executor_pb2.pyswz~^a6yMĩdyC%* n'{бĮ Ll#ԏ拟^`2^x??^ &Ɍsq0h9/fsZyqi~1oo~Q ? <;9yhG0^Ah'1_alFOh̟4h?1ks~4Ǘu3(vz [z"X3LAX?l-Fѓ{c "@8Bab9|}Qo0vh;iK+?#;Iv {')]'0GS'}lw0S { 0nǷV N/ak&Q?F-wV9@@̈́irco>OH8,V8 r1OhIq@yAfN IHY"'+\R[RBZ8Sx4+6;7 Z %r]#&L9y L u3@"ľ35<]/tFHMZ(bCύhh0nW~\pGI#V=xzg)%Qj6( B8co;7~ZM|4.6GSc>df#%o7L̫ /q0I/^93c7@d"t+ @"HT)}Ѵoz4:fHl jV:fH;8Z;!c  GG`U L53dDmN_G1 nS,ejV~=FTKE\2zO0"' BTUrd0W%(¸ows~>kuʻxzSVΣ#|*mWz޶J=ZokCb/áT{i9SMB_8jfOS{TjW+?O:{89kFgSY($k\"elB$Fqg33Iv -b^=\588V{ξpfKyT^S4|zwI>cdIt]:t6Mtz"ۗA?u"Fƺ )3*fΪ;խ '>ѷNeRÈ)P<زv$)UOj[Jf M&4JI70w4t. #.4iftPڿzaPP?ާݒ:۝fk7o/?vAؑCϼŠ9PzZw#XUЇ=2H|NiCؔ(}XR3ld;tr:@Q8V ܿR`PFyDQՖEѩJG{AN嘑@|0<"yFȩݑFHGzž_֎'B!xVѓVa=47- k=2]?X?~3;NKgNރB;B6{췉iNx뮋ݞ]A;Aa7؅Pluv=cd=tHBg+,uCN[j}[@aS $&pl[+ L2F`l)$O:AFYC\M7 $~P`#)_cRn~R8(ڲqtqjot4:wf C6- p3>Aӕ-3:N׹'?- -N(xěT1KROU񑾦!-Wcy+o5N BfW@D#Jo&$,oE@Ϣu]3We;EJY w\ķJcaŢLY4:(wV4†!kkqBB"Ĩ5qj%seܫy*іP)Y#ؕrDw zT2[+Xu Ċ2=ތ$GwEhu1^P1zڀxS}GȍpF/3tEe8[KH~x$ NTG4HVd /hj/h} v=cF")c8[* YCB]f F>PbQMZ %2ʷ踯?)#`H߹8k俅 gD ᒚYrWjWåI/]>,aAeN}N$uG+؝A ?_3?^×Ek _j|cKTXC`D"ֆ%iiRv2~oZR!雫UI%n)VYPTP,sQZZhGJR!Vk5ZSpt,!ޅWU ҩz7m)/WŤknC֓bY迦/^-׎x"-'msEqRunC#/p|XA e ;c^0%5@+;&5tS-ܱ =-swh(ؾNAVklp+TXAQC vvIK% JdCV*Z5;"7y;JTrDZKUVw-MGe1Ӧk6z=ѐsF0X1o=0+B,iSu*B#jNG+>Ղ7d^EY+5fc D$Zi{uĪ@NOvG{)A%HNтCbDjz29u!%B3Ǩ(:x5aCNoLf k -=]WT,7;+U?ݸi=KTQ ͜?%U0Dzi]d#10oԉlCp}I_y.A3qD9ٓ:,$)8Nd B6'{ZAvՔ]\d,n}(b5 hloHYu+(u ;uPKO<2tensorflow_federated/proto/v0/executor_pb2_grpc.pyݙMS8*cBZݣK;EJrfح!Q-?o_9P@F{b@f7Cr}oRFT."KϘ_MbK eL\BK5k<'Z:"a<|47RWBu5!*Τ];[Cjc;Nʩdޚ:q q5&r۷E:WR\"('FvMBɶpPY$ Cȋif[G5w>+׮C%l5)\~ W®:tensorflow_federated/python/common_libs/anonymous_tuple.py[oȵb 1WaKyFwE5đ4H-IQ{̛hXK̙~^}ʷ]պoO4k%.UTǢBղU qÖI/|5x+^ts1onoc1GQg@vb#EYb( %\m[b^mE.˹yc !i@TVb--uB0[vm*۴W y_>ƼײPM#j.A^-,䭨j!W»"oX4ղE޴u>۵,z :\~R}_ďg_ο˿}Rv/gOQ]SX( ǨmMɜĴ/JE,+PU|AWɕF%[Uo&oeOJGGGgeUo]#J!&V&Tjč,vXa3S urj5AU U5UMCMNzaxZsZ`0/$X|IU߁m2}\&i,r2ւM^ȚJoLiײ%iаBm9)@9TN $*r7qhKU" |D6&fie T7:{[wsHVhz+:iPsu>_|W5|4~"gK5Th2ڶT^ &p@Sm ZfT*DՂ =eYEd,ԭqv 8Z!^%Aa- P/?Ҋ@:N }βL5>߉Ӯ^˪q2|Lx8NR]"NO[uu|MO y/oK:Aޫc:^=-rxђQ)^;PZ g&1Q1VKG%."E5c҈Rd12ca$ׅ}״z۪5кTzs^+IQK41BfH):_, 7|[_w8 Z]!8`7OMQ )>]fM2u- ƴN/F''oONޜ)bS\!@B8U kV|&;f_* mWQ5UȹbhL;,핺.v f/mYmP҅Xi/+Vbl l˼NG*c{3+Y}& S QWqvD7\Ø},P&%$g67jNXձ08@L"q& d !Pl1BekH,sxAK%8zB'/c='kL'@B*]6 lz|3JqlJihv[nH"U>j`|E|ubA!ԓASCN$u YOIE^%~'%[9xz/Ҋx+Ka=Ͽ||n"2Uq ZQ2zO) I479Ee*kZX³)r 'ÌP`Y,(KU7$`R.va!΂4ύ@Qș<^/š$x&"ɃǿpW ^g;GNv,2;zs`8Ljːjܳ ۯ#RQK0Y{'x5 Zӈc!M&+x[?2eCqCx>`U%O<ĮC|ҔQʫ,>mƫ?+Ja _@OjPt[#J@ʸc w\BAwthw's'O* r<)U/O $ҝ7REe݂:qBeA{^k#JƜDX$_eUchౚ6As[ BuJi~)lx gCWnG_8'>>I?X !' g9WLم@hЩFț*_h7@N=Nlv}^YŭPE18JRx]&mcKwt_rMok]-cȢJp=Ro*oz,zIv M&vD黍:mDJuXDϨ#?W(u*Ƶmd3^NPPa;0`YDW2i^ͦDuoj4lk'݄De% !3uUVAF KMH"-/@ʌ7 wo=\c5FA]_Uzu,93k/,1Ҳ' `wfΡ97-@jD1J(:8E6՟xW}GzMڱxiy"GgIv˘D1v'ky_bs\<ҹjϑ>]uɡ`7=5#;vp|YΫ7O"{v\@#: ڙLFn"iѸyjH wJ+Nzp1G:b!czw[:l.Md;lHg\xcZ߮Ui c+`PrpzBt>lvL` AUYD'>qp@{ƅ-wqِdExMp̩!0nd#kA&j~p aS>}ɠfJj1u[G i E '5\)-,7WFBl jQ#T:mm2YU@⢬]-Js]q^8n+gO/ &e*Q M;m?-5SIs0fWDG@j͉4>g3]Ăe@%+Z0cektf|i_6uǝXd~>5]Vfo:J<öI[ >)Y;#_+ %˽<.E* a%w_.t+ ,/DBa_@q5S'B- yS+Z2*sfxV y:S^iPLYmLl:)xߧ|]V}MiV|h"fKX=d[ Ō n{ai_*c&W5رJ}-nY֘ofEIFֺ]י߃@DjD[sᤉf1s~DbW){-:e56[=,2*^kßH N2 QK(@}(3P~些1vS|L8ڿ^2D!3a&UҸ =1ι|䙮3.RqAe X*4qĻ}٘)k<79L`O_.S=c_U#!]JTBGTvj$Zmcw9Bn"~߃x\說|1C@ ߰zS5Q4| :,F5CHΫt+;v7c#^.<,=ꨚi3ե4孻%~5H cSui c,)FZ0/YxR#,Nn0 pva.%O1k)'l(9L;E݉~}Ψ`B+r=팾"}|O+Dѿi']R[B=T&=tjpd* n߬9][709^Pk 4]zB=Ccužakz_di/,8c\i?uY}C1gղ〽ImX7ϧDW>o-*ƿ{!lp[*0% q6ِIMx"hT㍹[/0Rtu=J>= IW}Ll hğS"6W$ƽŢdZmʔNER%IÙ!gAi L!?]6xXo~`duZe!\ì) ^*A|[jfHˏD/Yix;y #CP1+a/3 BبT|HdnAiH}* ewWf^E @X6vWDؾJya%Zs>Tw uuAX8@VlF eF`=B2PҶUN/bv n~_~Z/g7~w7 >]W}cȇ HEqk ڝ-632Q_z[mE݁\{eMQK oN ...>Y*{M'G+a̓IL@\ "CoJ[2@Lblb|Nl(2x^ ʘN4ξ [cb*R kqȊb+mŤ.°dzyi9w$o0pXAt>Tږ[C)4oh|plSɎʆNJkD8-b-Tv2?9ڈ=;/CHB2QR9Ԝ.R ,Q^ű4.ŒBZ0|R{_RڼG#9N%RAP-jnL(|?^])!u`BFv f} ?cGeztTڰ&>; 21o4z bH~-ߓsl/ȇ`m&"21}$Lq08pa8 D*O% =}** "m gQRxO6^j B? pRljkX;r+YXhTaƶsKa\FN|!T/n Bj~P(e%|(q\_WzutVYh) ɢFTEC= L=uxRo:;N{[@s}t` ʲkPYlp[LDR=csCE**i;sTSwqgk1]w9b@ ,\SB P]i7nj(1?mי)h4}5^X5S&8g2n0Pԇ>xԑD*N~yط`ԣ|hfY3gLSf%|0fZ}TQ3wLx9~}4 ?3/L?|sö@I8]|mMŦG_D֮:vgӪ';Vid8H9dtA57-ܽC~nkw 91DO 6j̣EzX3>;ԄLjBu]`56SH<3*愻(<P"rf9p7"OaehZWTX[&|){63% TV*0Ip.~g CRnbAcf%h6-IZ˂c n&uϜ}mZ| MxOVSd Y lr`VTAqjD(ǧŘ9[]Wl i}y}XJE/2n[4.)s[Ɲ\d[غitLtensorflow_federated/python/common_libs/serialization_utils.pyUr6}W(g*qzu&l,5zԒt:H-)$e.@]Xi gp%a/YVgV7k#˥/l0CeUz#\t8zFdN1*GF+r@Ᵹ&nkPAk BVc@*uTRa%ҧ@| tE o؏0ry | Rc(C mCΏŜwA؃h'tKx6|ϲ٭]tFHDmNF#T"6ft-4pEs_]9%,i|WgAa Q4ccF14Ls.jv *͑O&l_ƿr%s# 0^a|NVv7m{D^#n'!H`_Wmr^6΢HCȧ=:$/;;+!0{s%''P388 B*sY.1G0ohf] N6HGqlGfp %pj] &9B+ܦ_f !cPcd^S8zo㜾8;k6`@,UXFseւ_0k$dVei)/5 Yµ QraYDk'>4x1 y a<8gĸ no*Y^2yP7.-p{*ڱ _Syt08U}.z[e1~2j(PKO_? 0tensorflow_federated/python/core/api/__init__.pyn0 y "l@teNYbg=L;lIӏ4C∢>H B:`m2:[#ʍ_'lVJp90YCK Fgj)844LJEp:njmA*EB v $pUJ0Z66;ɀBe7#Msr:m6`@rZ v (^|"Y`O# ŚmiYF2+ւ2J4T'5 YNµ QraY^dI}@bƳx gqOq&?V7 YVk0 Wa0Rh|ԦO"EG̻ň/jd5rQNqɲa%BH 4Z4-ˉRZ8zAxj ͕B0FՐEiکT3l-\.;?b=&~ϓ,j$-,Y J5ҚUNp2QmFbIZlέ<*@~1 h z:^9|[>m9Z&ar17rA/=^F}~):ֈddj"yr\PK*jԕ04 K?E`0a&$g[qwuxa\vj;')2*H$q(m*ɶKN8ךdQTr2NoľWa}kdIvl릐+tđjLApG,!KӤB|CF |T ܸ_Nr&YsBT$P)ES.N\I24Xf#b:74\ RbSqex\꼩Hqmx;bNT+#'+h#!_*^o{B:y65Mi!\Up&+m rFM~g_Po5p ecjGt0ktPKO1P9tensorflow_federated/python/core/api/computation_types.py2\뀀e5=ϗU^m+Ϻ.a9juޠ4 oP|YKo=x^nykfy5 m^,<~XgeO]yF7)::ZZM&mdjYS ?HM F11dYs8B"維sߘǖ,g5] di *eLAU9)YcWVVn]mI`lvd!(!jE6k )@o>%zmsrt3+ZCNOy蕺ڣj'=>>R Du6GD-DҤ(fE껪B/ɯF5X2BA )LPh<8`Ȉ OC kP$8y ֱϾ?B;寣2?(@j!Od2@hޠ(!rPo 4Q/^uUY|@-U9G (ȝbUv4-:Q+M8b0B)# ЬD5DLY sQ+rA0d} 3U!hI6n#Iz&*s$hрh"_.u  10 ?guA PG+<bS2R1 Y (ߴ2U$nfOQU@͎$ 2BU. _rj5%299F9F:j1:[SsA]9TKݫmȈ? W|+9d_-Nr⨩<'2$F_{nI\ȌVFJ%m EKiTS2aJ=Cᕤh%#4zAU焉=AY973-`l37낙Q0)Դ8!CLZ%l[4AING߶TV%NTjƘ-E,Ek/KM3ߑܰ=^'ICuջhϞd8ךhfxik+/uzH{S1/&kWMWgp|Ϋ:^x  [g5h` S4m=h3 x; A'~g9s"n$ %T33 6zrB=ʂj$x)012S4o&D{ /_/<@0J2tqJ'OBe 8uJ;T1"WxBIv.`4SHȀ< !a)h +Dgڷ@+cqQeo6U Yڛ ,&/=żhf*DKSq=vUsM! ppΖ78lgV&+vG1#ڣ6i]B>*/ 89x;՗w@)t=TWSVlXv3)٤=JjN r0=a2Ow;j[ƛrXt [5ݕ%[tO͙ `3mv-K-1NŎN;OP㑥meS(d0SX6,tX\\"?[gB7J4L-AC#3h㩽>9'8y x3'T,􁮢f ǻSwANx$, č9|Ϸ5X1%`ٍ' \S&>TQ)K.+WKD g("XƾIDwbNpm<|ˠ@1x|GE8dFedQ7)F..{,vT &ucO(/i;MO4"ܜѰZat DBH^pX!#1\ힻg"bt.k!Y3 L_ளKa,}f6r5sK Ĩ8lʕQ *\!,;`/-5Ŧ/-0!jqir]9 &d_^8:l3uUT3bI%q_MT,fgߟs:C4v\:@tkctVUTKJ/ ['yhq[9jQT\]qjB["Ǘ 7ݰ8@{f/>p[,)eW xKJF:_(QzozU@"<#?_Cݬʦ{>xR~=5%ZSVϟ>}ckfvVn=nWsӢtnZ1x>BiusUu~9;_hgb{E=>U|MF)MjwtIREOFo#331l؀fD4T󩙍ڎH'x fru3O]Cnα\"/WKcDzFT"%7w7Ĺ-!?ILuaWؖ4% EK^Q4dT` 3PM1*]tl"1^_wI>U.B᱋p/A<5 lO+l'r,7ۜhZ┤\X xNXֽޝ:Q+a>B9%fQ4ƼK?HWU0G9kZXs˼Dph*C9>Z3.("{'n/^8a; 6|t)3 ~ MJ;q[ƿ!4B\ZbIR_?*e8kc5_͓ڰ[d(STfc:ݯ֡:h̐eZOqK~i?[:)?zz F_~jÌi'?1e]saXFHCì'R@'M櫬nNF{J)@h{|^ cˢ ~NiF)6xl]}1ZUKj6FqrKW0juF6p2DTӗ)~)'۶s(gQy&֫Nlv,b JH8' !Nu&zY컣(A4 z9 /ӽn vlm.eXOӾ ^p"vw{£\n=LM:%6;~`yz쾺Sa/ 4id!D|V=?F+% 0o߻vܷ2צk2zzML{x`FȿZzB')GpZ盐ngpЙ׷t?jY % ?Ha2Gy_^zEMw?t:5ѝ'E0n?h޽^#nvPśF=ϿV9nW[1,U6G@6KJ7_wH?Gt*lܥؿm.{ V{.|o!ҁؿ_7 3Xꛍy1pʽoYCZB7s۶9#G)L%eL8PKOk 4tensorflow_federated/python/core/api/computations.pyYmo7_A":/8\5pۢ,j+^-UkYrzKAbk3<}~mT:\&.\zzVo狨^x׉[ugƭSUW|(Fm5k\Et%KO&guzUPcZpRoTꂁ TmSiVQVnjnK6.xdn_ 75֯[=\td"z.4{[8?hde1Sۘ7u㬳+8TlZ9<^{m;JeCvŝhepKV]ߞ\^N`>t~Ix ~n~Uy7Q6i8i)@ġ2msNύG[G_@ p.mԑ?98T1:;;{gjk˘TeCOkJ%LFwKu_w<< AS*hSWpLE~ KQ:o e0~-NE Ѩ2c}?X6Vy8)AI. F:1p,Q rUG3CUѫ xKğl쁚G28[6L[Q$JI#LHa ']%9Y$ @`wm?rk#qxkTKWby.-1cj_bcJ=Y;PVY>$_ƺ.v?[q\q ޠ~ J#4!%3m)FjN*'J1*9; ӮΩƍ^*.Փ^|y7L^Ց Ȕ]DBZ ʼnb)6'9+PH S<`٩ vR4` p@ܜbsw٘f5c@yEDž P3}F>"28U+ 34Ad+)x,0a'dl$%GA+!Pp+BWbF^q4cu`1W}̩̉ƞЦ6_7q qu*h*pI1gPYtԵY:  (],;f׺]JXM|!Gm|WM BL2PĨ77E*[+Uĵ1n9E52I@'9u3rM* [&C vD~ DM??ޠR1M}jr M g.!g)9u6Ia?=DQb[BݍAHU'QD{ AҞ$@uI$Mr2(p]StK:Chm6u\5!3!\Y:Z R%?̤/v b zkp{/U| p Q,8kN72yx-a'$mTp :C{GF$Hp¾J?)|u\_RCK]v4lņY&dΑ|myOF*| rxIZoXEؚAn-51DCf_F r󶕋F e>X"Ii{e. 6Nɣ+āR`_wgBEk Ud }ƘVnFJNO^se ??铫nVY 葨ܾX!ĐSet7ey@`w:[KC,V (*M3~ JI v\98v`o[LO/<p 4CND4y[7L)kxzd6ٍL ħӛ,vX6Y2q ܨ96Y@2stLi=ςbD|s>ǻmx2kQvH&GC6ܻY86;*Fn쿥"-t;L5NWK7g\< 'Ȋ&ddL^ǣ@퇡f)#rFslC&oEߒ1n j]|#H#KnMiě4'A`K\ ,Q7FdܐnP-->'yKN&UҖ2lX ʧsWYNRV3ԡxʃ5!Ԟt}GCo}|[ӾDMЭ-`Nt:2ڶ։ه]a ?(')qHN2kWe:^cz!`Y=QC"z\Һ^*}i$2[uiW;4 %"Z72tensorflow_federated/python/core/api/intrinsics.py[YsF~篘r^$gw_8RjJʓ8$ D1[߷pP։+%cF_wyiEmV VW:_/q2UFe⢅WjL)<%|/x颒)gTmr]&_|W a[[QFF܈E^(SU5"/EU2Ub7+Z 5V~l$<- ~[ ِo47&m囂4o]<PƈZkV J#YȍеZwF7ur*^4Y+妩ǶX˩{RwwwSz3fv}y'ߊo~]߮7?L[2깪QP2G; vTGfL|rʥK#*Us4^R|7OJ&^A-R l4yjh)t6({Vh&Ea6mp?]]eS:LqIZC_f GKZ%hJ'!e#jS !@ 6N&L-a0OdBhj=2Mu[SV<=p17ԛ7Enȥ.o'xyT%(P俀o bBf#@&?+Va:]JP'`OxRop\ p+堠 .q-V0.ʂ,^Y6ITaעl׏@JM,cz@GXU# #F p9Ƿ_5 6z/eI͵XֺL">@ F5, rZMKb#. 1H0ikӐ@0v6Z,a ,(ާC~#ԣ$]CyԜwPaP ũ$ze".~&UFY ?T kE=I;m|8NSc^|ހ?պjS@ _رl8-1xJx aٷ[q:OrAudm@)*~E -  =C!AkQ@al-2|K 1,&p4矃y p @?RģsТ3;bP֒k$.PO@keP 1Z7XVàOʇZR}K蠡* IJ%^b֪^u~Ŷx1\5D ]K Q[X5]<r|N8!>K:E6ym P !?o"NԚA,[hMj^E B5ל.9'{@: VL9i]5PE<Eoz:5ZF TY,?Ϲ@)[@r mRK:ׁNo3wnNͻ&J1 RMw}.m(Bw/?wb5A,f,koar@l`[Dz`4&W}9 ЏZ0e^ֵ@GWbe cܗqKl }r б5ʇr{([_cyH,! G7SDe>DFHeePLsPf>.AF$k n._]}4دm^2aEkW >@o/9? fcqqfdQ&vr(Csl{wP\ XbcEYJ.T6 77P:ܿe^347 N/AU@fngIpn:I}QMJ z;s)kZ( K>+Vq7P휄Ƈ+1,®~\t>,dub'.XUuƠ/q;f3ۡI7{ aEDI?Ѹ{tu#Te^c^')eNQF\7\'`l7|[֋PYX#ە`kob]o?eU<| ߾UzuW:7щR!^$kD ^sO F$OTڃ) Alt=>ne)i22uk6x=gcqY5e8 SÒB',[Jq`ZHHXmba=T8%2>z ROQ-1bMO%[Y N- Cȭ\W'ذ8Z:6urO>]?ħ w'/S6 V:ԝPue{c;.> p?Q&qS; !_tӊi7{{xd߸}j~fD8$"m㠟8D#eL ~92Lj\jkOY@;AFqGlxbՙ|E+Z5&ci7P]7:j6 s/3YAlM[a. dZ)[# qT%>:L 6Nxq5C.\a~^wub;fgSa97vOdz.Ndxkyc9N^{{-d{i;h>dpK(`bK {}6H-ߚWbchim%EQqVҖ6'yQ5Zu:{Eyc^ߡNFY4KFYɮ0HH~jAcS$!ٮ3c;&`+VvlH1]j [tc0P <*㼟)\oU~oz|1a jgH<l:{Ǫ/sXCՉ7V}P|:ƪ{!]a9"rw{/*R*މ. .{&jx(oDAR}ib&6B?vr&my AJ֢vԹJ+]~stq0Mγ4^-/<2meΜcQggӇn?/L L>q8 ]8J.|b?}H(saծH/:QHKF&N O{oBk_va9h:?PKO"%(WC2tensorflow_federated/python/core/api/placements.py}SMo0 WeR.C|`Ƃ=M;dIhv+XKM ]ؓ́˷)7nL+ S+Z˒1|iqRbEɿ12t^ | | 'A+N A)Z*|.H iBPf$a4R= F [>կq h<|"{7}Aml\3Sgr-Ysztq˂JgJ`!$u3ojCf''q"~ `IAMgٔ9>dK6y`vHt N7) {eٺE#V ڜye} Bc4]+}gy(J4TM&R3l+:Y>l%ٸ*C|ލ1SEQL EQw9,Џq(8?U(Z.Cɱ ;PeĥqO_.MJcؤJQ y`TMȎ)? giOBSrgl ?L2Z4Lg\% W+[Kc_PKOx;Wfg4tensorflow_federated/python/core/api/typed_object.pySn0 +u!MX'WiG#i]?JICoE)_T Kt m+=S9*=B++H:...Nh8E%~uR+/aSj4 PsA-[|)H>V U"͉eBH0Z0~AAp|6>Amm3kH7KuĊCͽj9b2[у #VTunZ[K(%n,ͦ79<$me-,64O7k Y?t};Yq|1g+? Z9eɾTӉh ߦcy IPc*F-RǃرAQZ]!vkW+(A,jPucEiKZ}b5tѡo@؆*!c5=d⇌@PfdLk4KaAZ[oG*D <=]שlSekO? nF0>Mޓ|CLATk1k6>y[r \ OCK &4`2y8}qJwwtx3]Gp<- F_O p ?N9&O%kt3eZ0-슝A8TlzˁRJAI׻Bq]$]2˹!-RRNe>XV4MhfuAm fsf^i~ &"ICv^?t,B1+ݑ f1jKoæ|f_9 tLJ7go.iBδ%䥼|SGHEq9Mx*gCNQ(yO&8>]&DPy`35WY2ʲKtns1e*ԦK#hƈH[Sn@2aY<1֜ }>}-1eP|h;ZbG*Bgii;[0^iI@#4Ơ#eQI2hL՜}m|`w)|dw-luH?M_Ko xF(dkN>Ezw+4IoK 9Vs.R,١粈i'껡Ԇ Q8)dlnq~uF?a39Gh:p"* !@++l9FV ԏJzi K6/4"Xv _G7`MF~xp>d_)9qhw_O9;َ[`X[sL*#M/z8M*r \LܢdPKO^V7 .tensorflow_federated/python/core/api/values.pyVMs6W8q2ɸӃꏩc)$BJBC,Zֿ[贾4X$o[kH+jak;6Ї2ZlluwWT&->q>WD ޶ѤQ%t+}a5!Op-S26PZLRrH*2%^mܦ AUPVoƑ p ls6ug0|65{OnCJZ:RX Vl2v1P*ӫ6RK:i:?'<⏇ :yz9=tG7s:Ɉ Ԣ#W"ڜM|å^yM6L jjzЫR*7J*ZFI[SK*k彼ŮVוNݴhqwGϪn@h\u\J:֡W֐m o7XK۩y2q[5L{t d2bl8og(2NB{ge,9m%AуqY_IO4^6ȏJPV*VEB%F2~@Z%{}}OxdxT!nm:-!l's.IݨJJֵ95/q ,x8&M .7Xs;t k5,HevbC ZByi(VΓ[gyl%%4iY45sB{z Ƚ2l)g*д,E%ٗn" IHr5˫S7J8lPzC?OQDj O]xJߨk0Q5ıl?epcr㮕-XTV+[-S5?o@P6 HI!L ,f׃( [6Z!=lORtLu馾2/3 cѯ/PKOk?tensorflow_federated/python/core/backends/mapreduce/__init__.pyUMo8W K )Mb NbP)j$H.IGJnz!̛ތON@_=evBjw.icڲ-:D8_d'u$bv8Ks+$޲h(E MG`Ł 4xF Ql)MSBK TfJ~Ja -o<#م`NO}!¸#v}΃{rϠz$,IQf'd1΂Nۜi^8FZT5glKh7fɑraKvy=]W7rӂru+OE"\G64f-K(t;54!ˮW>FN*|Tf:$;AnG͠x'V)u)(a$GJȏk8.Fs4:ʍ pѬ×285m`J{ib~>'UpQޒ bYDqG c$yDᨅmZU 2 #r=Oa1 LI8Xڤ)ƅ ]MPCNpZ]dQ]uah8؉:k>:tjHgIz0X1 4Ln3e7Ա7 X$}UiRH pE聸mg$E.%Ofpv}~Q_rg/n$=6N䰱FIaƙʲ,EDM.QŹ޹uh<ƟT PKO86qLEtensorflow_federated/python/core/backends/mapreduce/canonical_form.py[msF_1gh;JUkW}MR8 T  (Ԟ?$"1~gT}cFiw]./N˲vn_|۵Qpe6/L^)Ma |\5ESV5LZԣPi7X̐Lj6UWF{S L逽 vc7{BNIoߞN :p Z0PF iMCh _{#`e UJ ,ZVr!;ҥvkx6#fn84oA[LsT,4Hu"ȿ$wetٸAA9%s`!S-)j9'.K f9*mx7>a7`%sn{8*0t!u|_=9dSH[)| QE E}2!.  j2{3tN|htSe"ΜNNX6ol˪5! +c0QvCX g@ C,!|c5 {Hze<_x!A.~g6S/]I J `tu&eW"Fv.¨C:#GZd ;q͡;Ü@1~$ymڊe> . =kcBHkUV4әAYVaH +rv7ݠe-t[o$5@5DTl -)̩4)1a$' 6; I my9{ggYẗ́ ;lDGΧ\ںp#me3L]:C%MwnR)=`C l5#qP/"A6G3 P2 {hq]n`%sJ;AQ",_)6[q(B/<. K6f$& Il@5/ ŭmUFT֌%tXߔM:,!ʑ.YF$̲2`LMP.gK1tF"x d=X DF4i9)_)2I%JW>.VUF=+7$SY `bxv~"=a lj'@<'?\'o޼y^aɏݒ)SP4JЙ`]@ ,g>S󛹷o #~zXl#iRyR%5VX E"jƖ|=p+;P}_c UQ'Bڭ.WDfZyBȄ渫RnEO)X8B7dCԻoy 0Ԇ@4`H:7խRNCE Y \E؇1t&zԾ69F[X6e s\AL_B~3-3mӼчar6rD 0PlWP!ڦ`8] ᇃz3"[[JDe\C/:\=2P(xb/ zU9mV ^dn/l6 "c2ۺ5YՉ$%WK59#/Avf,j @nGIW)hyOW anAPy@|[4m7s^眢jb@pbhvr|æ< "Ox+U>! UW[UT <8OSrQlv|tp8c<˨1ͬFM]N& kl]/M:ǓDMz>?|"q뛕8W@"{~RGHGA@`jl$BIOI? ysZfoZNܙv =#9G@"y6xLjh (Dqv"7RMəmׁKSǀxqy@ yXJr:VOmzHCr7H/t#}xc r sC25JrR W52ߴe8Ԇ67+0~HeeJ0YXȴxLm&\3Z)(U!%NiY;:z^ Pӣ-J_چǥQZ pl@&da+Cݧm%0D-̃b/x  T(Iq#L+2"=#zWk)Lnν~ /Jhu*{ݭKq”t FCK%I]%s!N@Ӗ|A"'Žr E;)~-jeݠEv̥1js$9Nt8uu8L0ؙ򯯓K| M.+bkj.w̮O]KX#7h /N03vB) rx?}#LpI\(]Hjb|r>RJu`ᯤzȐB4u2x0H)=r/GMtHy^H'5$~D<ĖXhᎽצ B9]Ŝlצj}Э* ֩6ttʋ.D=1JO4&N<꬇-oQ2LSN.@]$߽¨[%IGN>81uLBe諛:ģr`5xO>=ba]a 鯿Vtt"-Bryi%,ۖX[yf%6kY YKi}| 34ū'J{ *}6euFWzH(! a|/5BĊw%x!]pr@aܣx\z7g}:la^6;mڤ!yOw5O9 ,M]s1¡|!r{ 73 H D.3А4\l.tX?ڑQ~ ֔y;r&rܗK)BfwwCn"D7-6|0-WƺI= ^RL֗mM8RRw}k`O}S?J7ɵ$?Zg^ D R`xЙ --ҠY(&r͹`a ?e0UNL 8"e+ǰY"hpr22>b Tĩay.FYC8m_R?%/GHx5ķnbgl-w=11K>;G4-{^&4pvi7zD&])b32F H=2Jd</Ő n;;i^ % Zӷ w7e6&JYƃj'%MУ&rMW\N<*l䢞5UeʋԑZ!R?{?^wN ~x_~W/k))s{ikx揁Mg+eF#2! #^҇Yn v9(Q|%>Y3YTܝxD@Qߓড়ɥk*[HN ->&=HA`9w!8UQM0)ZѶӑ M9gì39ۃvZzpO/~F80"'/|o|7\Ê>z:cL'.W;Y=q>W}!*P5P o(@O2i?=.1Fx,Dh''hfȱ{j{JL~g@YG-/rΔu~wH_{@x'8QpVDCб'A`V3ɘQc #eȟG `xD!;vMRs !=цGB~Jc\(.v,yDcqʟ"Xa`Gv*zh?:J#.lp \cmp?V.G+7ЋDh\-B}+x}V𯳥DsL#znʨ }c#S7;9~(HEѡZyr=RK/NG^yH#He9lE6ŞPKOL{Ktensorflow_federated/python/core/backends/mapreduce/canonical_form_utils.py]mo8_k?n..&{C!(dY٢f&^xm֒8p8|fHQ(IN!K'='g!w9#7wЄE,锜$c@6 ]%@t BG>ȿiƢ4!KgC"$iNVYSB?t(!aXQW#?E:(@%\r$ȹ.ϗ'/^AE,Jo/]s_2F2UA['$X@a01`MҌ³ʝf`Ơ_\F Y|8IQҥi}|$`$35b :iфyGÏ]dT7q%l, tf%olgŻK H),0*,ufgA0)9}@yOe`X_'{eed M. c¥ l#ٜ!'B 9M`ܳ({-Jܼ 3R&V<@(hBW>j']h'U{4ӓߍhǕM pA/ݾ :{{yߗMrkdA8?)$݃Q3z+?H=yxKN'ؕ3!XʀVKa @A]Q,U<%w0࣫ p$w? q5`S(1\-E C6ؚ:\+˭ʎo(#kE=yӌ9pASc ց)!STbD+&c)UT M0Lۄb0gW÷`V1=&AhW*wM2"pyZbLfMLZ>Qz%LٮRAk<>Mk9/ ?4Ճpɜc[ᖫyM,iY少<0hFl։P~K <5oX@-Uk"$O4mDɋh8Ѱg \G0у$4ihٟKԑB sʻt5cO?r"'HKa ޿G? t%2ZE2 ,0fA,~$?lTʃI@tL(r,HG3zuayNyN8;6DDWy"b0 eT`hS=S>CDYĩ=#MP!) &/OoPzC *]Z av\A{&Wm䍵s#!5B 3| > 1`:RUd%R0b9CB0hY:`~>P-K%װz͇x)\ *%Xqs4=bRPFu\3昊^8g..)b0dm֎$TtE ݝjr D$ ] Fd5Y#Dc0*=Rb´S]8]6)"NPȳb#Q7٨\ 1Щ嗕~ڵ1X]3ɟFICZ Ơ%tגY$g a4/B?H'#GlyƚXkY?Ji47 ng4n{ PǂG 83X3l(8@*TGi?%VlҁzK~n7X#6kiO\L͊'N-V|[Roe0GFjhT"3w "!/ U~h`A[_N;,=gSDoIJW)K[ CnR ?4[r9 JַP)Ŋy5xڅyUTZ>)yL&juiGh(A"KCrT}pxCۑ&LnCAV;F,#Ͱ'R䶽:2嵵eIC-QZlI|ӡKϸh^Am#ac>Rͮ+ κ@]4 468qݔ1jkbZo 2<^"-а6}"\hxɁV C綬NS[l٢?|6c>4]'CX!x޺є4{ 4 0|àT ٩`:8+VL̰{$SE9&eu+L[KIy?C6sFݹ3uD5s?n(+1YQ6Y=Ȼ2i#m:7(ذH,pTdcW͟*9.FV̀|eM- [ܘx[W۶Qh/w/ hc$:TWmYXkƌkM ۃ=V <RAڮZ Fu:]UrJV)U`bܬ q]\G(co-Ḇ~iqLt,4./<\9:9t Y\M8Q]Ou8q |Աśp*Zg8pP::NϊuA4Z&-Į{TX"8LJ;^2؉YSI@H&8>R8]c0w RS϶^'/Ɣ{C?`:#Ab ӏd:\nS} }hmP- gȗ|q-~g V(ua8 T.)bW3҈c~ZK_Uҽzt_*#:C7BqB]7d=18͵=j%:,PD;d%[]:`CQr% g gƶzf%[ 矯r´U2 aMҼOi-̘cK }0ddXVIMEGNW1unOeZQr "˭[)Z觫 87ZiסE*.qQ^AӲ4 zVqU VOY 0Šٵk6CަU.PÖ΁9& rV|dW sjZquXr2ېq—!COB5U[pG=ŻF, ߑwIl ;vcğרDH2T/js m:Q% -_ұ oY9c.L֑ [w}-Кo',}Uj;z) b;[݆rci;cZ^iGʮ;swW}8ZaWCg‘/`?_L4z=w_ YG=cc9$ {{b?4HFԾ:](RJ`kwT⬭)Q=U_ V#/)1]suwaxS?Hx_m!`a+-`i矿[ѭTܷlS1kщH @vBHv_@${ZTyTK SQ.f:l|Y$qO3; ;>m56tl# \JC:)\58zxSکǕߤY ZDK([߫1 ˳U1V ʛ3d髌E $p`Im_Z)T.c}O0s))qXŪ}tBLE^7.>\Qy o*'9ZYht肬f2?p!yO3`!; w+<#ĒhܟcE5*Zu3f, ~Da+^ba`^?4>sk:d)?Riw*MT׬N#S<' q'4zogVL;08bر8qwfs5/C$7forXE?)TnXukX7c 7ytO֘X@kHǎ*|v&z)uBA._*r[vTP:Oivc7;W.jl$WUtъ\M2P1KL@4N}Xw1ey8ZQKPiqW ' `vG o<{\0f:rb܊cqr\܆T&tK8PKO,`)-fFtensorflow_federated/python/core/backends/mapreduce/transformations.py}ksƒw[c;{aZőkUqrmdS.$A @KܽoHJN6gUX"~OWmV4*_-cWuWQϟ>DZMuZe&/ԛtVI.^+xmg]߫^& G?Uz>y%@ؗ;I(SjJQYfgIH]0Pr$toᯕJB~nf& a;)9?Y1Su_wYsU̓;UV*YW)|ה]5Y\5wIeV7U654z0iWR'Շ'ۋWkﮯ.?ޫ?wu}7V) IHfHtD"[e W%TiUt66YYzKgI5ɓ'̼J*Z7oTS%E m53 d>]`SZ,WŮo<rW)(s\ {,Gf: |[ ܋D}[6M9m:- f Y]%EfE f`@b6d"\EUJ.\I.̌xgɫa:YOj,B”f6i?<ݤESڦ !t #3.iA[ሤZ &uLn +d;m\SJ)|\P-.!T?~*ʻ<]iBz!S]i555|H T۲Z$[Ԕ[I^) E9 -0i~qZޛEԸ@"v?+leRd֦5MR$ `59^O֌Yv4Lf窋:ovBGaJ@14[0YrCx!ĵ4zc0_A!;}2âJ0Tg KXmv8/.(1MMI?`3[*&#ۏۂP 5`Mz߸l[*9"]vs^Z,n݆$llelo&MV/00! /dhd& 췚Zvkd’oX]gJK: 33DK&d}Db 'Ba,殴/)/(-hڃ|\k{v/X4Di^ Sp1j{?E^1D2m[YN{oU%>S`0`ScQ^ ^ "l&1]\%D)l] Y:_ǿ 0` _5ZD}o@դib4 p x+pW$ܿ2}a-è(>^f;hC$!X{dv'n Ĉ;y;._2ChW[Sv(MP $[0j6 )-݌s!ٹif>gy]jPiID@e@F4SP~ԇS2_s8JYs9.Wπm/`*YKۋ. ġ݋E5\ofn(-wɚ:WL4ëC 4 `c UPVκ304$sKr w,@,syrt3OD8.*hQoh &lm눻nIG.M M_#rLlNqZf3pS-PU'GVbRHAR E8˓eMTi,@s3a5㗽 pߊE.(6p?vRxy1Gޡ7F!Vd+r'UVk/ZsL3@aPKjVx]P%2U6 z\bp[K^v;ʰcyz{G R???Uw)I@ 8J'd 7OaҚ 9(i &qA((k9t| 0*{~gvl@fg2O{isܢKK%B&np2L B.C68imv/F&c$'^4p&Z1<(*a˥&SD)!>˃t2 7}UӁ셣veD,q|wUFYy̛._\_~7ǷS|#0kG"|JDe(TlS- <f`6 p3CQ8fk,L GտX3!› 4ak| ̧v`G]-eTZܺLyc%8R' 4e30IE;6[VXBPۘhmdYd[=F2-[ڍo?OUjMhU`"tfY43q\G 0>er.$&E=18V§e z,l jA!h2#9d[SY hrnMW)E.S9? S^ 6[% h)9iN3[񊌇p՘[2s#u]'>Q_zosAh`XArn1n ")^3V$X=Hnn٬w:+/Hpz˟ {KD$˿9KRwH Vة@~1$D^ 2^MG@uh*>JP =fq1EK{kniI~FBgМzħhҺy{0N^s5n᐀zV&ud  (fK{X B3-2ZчJg"Ǭl/cj8ģ)~Oze`Sc[x9p\M 5$@Rq3TS'B ZdE|_N01T7AdzE),:9 l+gfI=%-:Eq4hwpDaq*FsߛD"6qXf-谬4IkݷM;>qHRI?FJj~:֩E)Cv3hh9J3ҙǸ[٥F::Ma9kbNU^TƆd6 HQ´d;`:=Vo=Jqc7v,=xv 1A@ Y`J8{TVlT9|"k`X6/h!HDʜu %e:0}b)ۛSFK]ή[4<Ӟbk.nksf̘P\lFhmί݂bRbopH1Gf&(L63BC1$"<#g`^^xA&H/jc?pa;7ul{b9[Isqv<‡\ 0B+ ף,i#e& qyɞrKkl#f ,&l h\$S| t6 /Fb9it@2CD c+!19}`xLAAZ\h.:)lO2%BƊ_l~_`,IDM(;ӮۊNq@$Ƶd7/<sWGi̾nTɹE/cզ43<NGT=UXwv rvuYkP/$.5eH^؏؄#<Ǩ2zzͯhf2K2~Ugb҆VXE|̤]бs\umT6ًF>]J6͜z&&mᤥrmHM9lD /}ʬ=RD.I&JyX 1Sn$=^k3g&Pc06L٣n&Z1p5 =!}䖵sTG>\t3WH$ =AOl'd\/ƸF /0^X!n_=(7Ϻk5[#?Q <ݜ+z45,˫PeWكR>nųƂ۽|G|KkٿR%+ {UᡡP6?2aȃJ)~A0q]dwOO^{"/Ob:)K/ YJts,LJ8r@G "_alp| eOj[8 fPCnTPzT`8nCidpqG!/_r٢Fg UUXacR]5U(Veux]_vOOi؈1݆ ۶D_'1!\Vodsz9utL;>[?_2,x چzqAGK cOMY Hߣ\Xd|gqէg=l46[9mP .*Eɚ|l󊿵[3wĔTS!e=CV0[w% ?h`j33lB'8]Pt_\7ce-wWt~6:E6]_LHK;gnٝ|KQTH;raҙ.4&iwxȪ y8]SnG4{0[MW %WJGs6TtqBYi\ [u!֊_T=ˬw$C58Ƣ{h~U C含HjW)zڋiv7qf`_a87>8zᩥ3vSgQAZH "Cl.9]ַr43-V9]hIVjdEoڟɈiD&*.zj[}*_tkc]&-AVrRIO(}wjs{+cs1c6s;k{]>DL(8w'ZӨlo)mv䤹khݦi2ٵ} 'O pumB<50Zw#_ GVbX܏z~ߑbwfD_E?K^s,-ŋQ/cl+KbJ\4l2kg.c3ωANԽVC8Z Ҽ^ؽ_{휔 Y#9?JA6T3!\[ߠ&1){*>5:\]{Xڗ'5E0W}IJ,_V e&`Ta8_3v ,E (==_jWBxX!Zjs os;݌S<4\wYUaC4)(c3?=}kurܡ9c o&yT3Ն%lYowUVj -oidA ,Qvt#HS E R)fEYz ~N.b̾x@2]"$1n]Dq:[ ?Z?b.1pEمPw1XM~t@7nԓp9d.5g7OX=Ā"}vͳir*vRxf'VUe J!'"HM"dהXfp.I?/rj"%p2xE E1ÚDن.FkoH;&DX LA]Fw wGx m6@01/pVQBX/6n{&ƋrL9T)M׋jTǽY ƼQAOIwQSs\vRԽ*<7}ڮ/Ƭ@"YTS" @ $_=q FO6AKs,; B&OQINGaCеcF.5}=U[s.o},M!NE )kp 2{f@vBԴ~fG7xm$nm|e'6|~Km8@hf+8kwS8o5et!D/M b_~ v{:=DI@Cb49&ܽ?z_֭[zxy}p,@Û{)0ǃ]oT\hԮP L[X̎h8]AD b5k4HtbdA:bN,3`_Io1K:);"8,삅#43n`V}^eMNg^C>\cgGU g%PIrK0kJ\ࣝ;,w@^׳t0'm}+7@?}6xDB($Kg2Wm !m5 +i?8AS5Q?P<+hTH A؎Q*}Dh| &4hiG0oZWA{8{3ulk*wZu徍64j5% )~R.L1n:eLQS qr1X nμ!>;6 ]Kl:>lqablxo ѥA|ܻeڠ( }!)\Yr15pP+afXI>rONZZp~]EM,tSnje;ܸ`h+kj~G[S׹r`]qANuѾn갩:}--ڙuڞߖ-PZA*=B(N{VN>6G 1I '7ۤ}ݺu)"#W#2\-gccusVĹ8-U D)JpI>LǞe8͇]pkmC x_ҳkārhfzGeJʏIPKO%;6tensorflow_federated/python/core/framework/__init__.pyY_o8 ϧҗ hm݀C{t .kzI84Ŗ'MO(.o$#%ɜP0{I-蜐+dF G޼z)-8qezEnx s<$@>qS+"oz 薬_!)Y(Hj9@K"!9OzHTJE3} 玁4M9\npp.= X$w* uA6ņi4xe*>%VGn PXguiP`TˍFQL2G%gؾ&ax-2ﷇĜVզҺwTSڮx Æ]v{[ċvRF ڔ:tVV|`k6w _a=\pc@j"'*{q|D1jaOF;5u2Y%0 1δmҽ(C֛|PtxݳYO#S O&v< v62'u9S/oCh^h J ȊEV1+JxL4/M}Vf\w[H'+ Jg'~)G 7} *nҹLcK?䍎Aju‚27TGG_z^(lsEk<^hWrdW DV,WL$Bq-v\* cO 3 B}*e7 p}7;hX[5rͪR YL(4eJł^4V ~*0>qk2~Z^VQR3|%XL2T%SJ*ufb>3Sbb|9RRl2W$JN+݊3@x/e:~>zӧ㋫K;x|:c/ޅL@`P(G`.h0ˍAe!b91+>l ;j)K\K@K*RsMO6F{{{ J~Y'y(xyZYBP+,Ju[v:z| XbY?؏%FID#C itX?Fzr 1&6V;|NM@"shϢ$:`W} ^ۿ}7>d'BJADmJv*"Vc;}ĽJ_RdKV^`o;S#h{E+،pTyi>zhdV!E΀Ye7G7$yrˏ7ȖI>+J; P3 XqH:C? AI%ũYU8+<}6et $Am @$jZ4ydxζڙgr$$Y>5M0V*0Reg<뇃[Y!DždiV, 1rMĂӇ0!ǧWOX ;Ҋ 6h(a@0m1O+.u~}\$#+QMW:P&Nώ??\>88h>Hi`AT㚫yW=5@A!JU>~ݷo_-03`1Bhl5"/K9M;YFmﰺR%Ѡ-s?#JDZ)7Q0+L1 !55,PHư4sj+ MτPDPdIb%SmsF[[[rha1LZeo~7gH]dS͚MJtL7ةbXvE"r ž QU umJ>T7": 9~hY#|_hpгq)_iY40SNL'/AM&"mkdowթ,%'u)뻛C~A :zμ&߬8N_xNeA#c 7H Xv 5w0!١lD7 ﯹbm(mb(! dSKq$/eZ;2܎:o`":|<>Q?>ri|8@&7hP6/'57da&鉿VF׽X -zaEƛ]C96KYB 0=#O}iKnS@) _ZvvB-~C ,!Q|1hUož{*vIS9]k܍x%X8 sw<M &lBxG%LUuig䍱h&\7C^ڍ=D @Y}67.dC 8f[`2wM{ӂ!; w.G%es^O .Ub+m-ibYii818S>1wmn{b9 蝏8|+$"h|'*E̸17Yޯr~k.׵?P:[{2;ۍn^qGO'sfܜD<d7vaNvgi t+]{;hSHbεv<);UHb`D1ǧKff?hkX:=};pۻr&6;MmC G=p?PKO+Htensorflow_federated/python/core/impl/compiled_computation_transforms.py}isGw@pl>iQ<80 {t7x}󨬫 w'[$PUWef}ϊF% ouF=MuӢ.7yyޤJt^KUF_CO|jT%,S5_鯾^m{U)jTwtרPr˳X6ki A& _J0\7œ'f;+'9|w>|w 3>.U}UJv0Uiɭ*+\U)|ה8*kjr&U PYTrxؒP_~JՇ㧷zsӫ|ww_S`nWa1]#>7Mw*d+XWqORuUޤUQf5f [7ɪ)ǃx g: CQ|U۴8 V9Q 1.cd+ Ap;}bT\?pj5ymk2>ӷ@ dzQ w1nRYQ7$-͢1d (U Rsuj6MdzzxJ1/JJ$byyfJ?tV  BBϹ1L+mSρ)Cl_K#p[Ztov_7^BWޤ96M{-r\rXl-@@ `$j"|/S8Hf|79~9k؉͞?p&l*.[9`MC`&;v4TMqAF2{}Fnյur#Gfђw@oss{16b)t ^s m0g E3_;`1 A$ɧg1B<5}' `,CbRSuZ@#F` B ?e*A"Ȧ(T#&=h""⠩VIJ_|~WUe56Gg-(=D Ygkv%uBΦM .^ڹ `9mDpiY5N<~{" b< ]Rꚴ#dzхA3e,lu*Fq3˞_4`IjϊK.w>n?v=L=j_?83zXOl#i0@݁'BO^Gd&ZsnRSlmQ :U:PD2V[/5+/:c(4>|ԫ:Q9óÚΟEu49\N_2:Vq)S I k7<:-NZ\4+mf,u*AoȡF \fG]tApПNճKlt[A\]9/5$s'FU;dŹrqX!v۱\ N^NQw}%rQVOY/ӫ(ޟ1:O6uz{=\ƚ/jMr6LvHQ-W5:d%GVhJ9P 0L:fO- CƄT.OV$TGRZviI¤]0n% ꃨ^l:}|oh|dKA>,ŵظLDZZ6"n&c\M@):] 5QۼS:t \ gϕg0m7b}Z?'u`7f5bւ^ 35N-`Tz[1LPb?m 1mTޱeiq lQhPylvv[sQ5b ֊?Y _.NcwS!a{0X iʑh•#m?^Q&=b7?@xpzFVzVǩJEo;beM(?gqL"'|b2DKx?UULOOıň~ԩ5 mQ.%Ѥ;jK֞3UJ0Έ-pIvPxa=Mk`uΩdX ]̛h7u* CFL[rNzsmɅsn+TRD9f4rTj~;D$qLnm:9@Q?NJM;D]oth"B EJwɪA;R)ūQKa"~W|z Dv0G/>twxY^u:dtn3ByTn M'K-V AաۖjO!LkzjFdBB?"/k55\!k46Ҟl:@8@1ZAKX/ƀ$9 %#(Qk#h#e8CA2\:hd `=(S7 __|w ͵%ZE I"><֤L]jœ.g0^tϬ+9MWuVdQ[Q&#/dGEЌZv)>kGs{~B=f09ਈ6q=rEcĊҚ0mH !YY`aM!{A8\1z8D(pRJY1m0.aK@9M\Bv14߷dhpiFy f3D.wfI*^)C+2VqQGj.b[&6How+(=r{-om7T|%D2.)]bM8:%_j09%g'|FrBף{V҆¨Bɏ݆{Q.T>`oߡtK4wpZW>-ꘑ_c܋!<z=#M#>j-0 8^H_C>Gׁ4Pwƒ^KJMP HېFXN[w3 2_w=#_0zEwiuZ 0\;ZpzF+@-=6;h*ZfsQhS^_[z扭@zdw61B2yl,0"xBbCoUJYd}CA&oAjm6i8!Sήf.nzR]V06_qz[Xv}#+I/;6.:&0U-S{[Ҡ98 s^ʹ$)brmN$Hp7F^nl;Cvv1ԮZKa2ur9o9۷R8NV[p,:CO1AW1sY4%0fG@ /[9m.'Հ黎a?V/+RGJxؒI9j.k _taxl1a*@w@PPZW3#Jt'f*uv^jlN~o'j+fxD57~z ɗtVEO F2큎yV!G9E/=a^8 A:J?9}VȍgI9wu!ht[4QsA+ _ÄD*㡢0dబ@?؀w.((݁$A;xl3pMS7a0d/N98ڹ@Ag-N]GⶖJ:Qܓ 70?*%_`"G6d*h/F2!|@J5$r*[/[J2GvCN2"#'|M'g/Zm qϼ6O/Gäɱ!dgq۸ 5XkC~Ks Xݱ&xEM4Kz Hgf]47clpöUL&ɭ(jE6NB [?NX`Um]tEIPf⭵D@Ĩy2*TɕCχ VaR 蓇 3c(BZ7(;cu=D Y~X8:숚h"Z.I%= + bO!HФ~tGhsmL.7eTW;0eG@\%:ա:^Ee :8zdl={quS[8dCɗ$3TT⒗hhVO6sb#UKfwLIv{nKNC^= ]5lhȰ=ֆoPSFf۬NcTTNHNƍ@ si"$@\'{, ==f8 'XsOcJ,+;kg|Lꦗi43v68Pl1N.S^˃ Svtso&./*58 6O#G3m#wl VC6L+ړsZISwALbppb;0ѹ?2.у5uC28!~nNm7Բvߡ $$"{ }heJY"0^isx|CzMĘ=/CUjΈ}w爪o$ߪulOD>k40lNHgEߤb x<m ֘}p"º\9To ǛgSy> A[98q=Y~l0 8mt>-9rrAb(~9Zxv(,αY0%NsIqi*hiʦM㾒 ;)C;cLUNڧ.}1MIA"^?Y͸Yص=0# ? #e ^<7ɪ)٪Jfs& G U[3^#mR̵%DëM<0ӹNc+rÏ뤓qk?x6WxLO\3@4e ʾ-˰@{DU`6oy3-PFtߥ=y@6nb9Bg8c{ă*ta,&h3X6sX]}J?IYfGU4+Oϓ[ՎhkzFe\*19Nc,OYvy,'ʫxNSo]F-Rnjrnac݁끪)I~ :XnrD|WU\~{qw҅|>N;p͈ xlwڭ:k+±s>n;;`GӀskrv]4s䂩o=10{oskU-0{xvA`SY'ildصt֑<pFV4 a^uV'<=:Ŕl5l}ڤuChNp{}.$DQ"henv3vt/>^ʐMšM}PV8dvʈ &'lW.ӽsʚ8}3TU-]sxǷ(7&8qbzzݴup&87;qQJUI/5q߱(A^Cy)SDKPÄrfp]|aw]q. T IkF'| b/u4"-rBt"|ҲcycKabWl7~KtYnUjXW HR)ߴHr ,Gd{xwyyuz7Pzl#8Oz,t&6\ߠ]YSvlC8᧼}2-"L3YX&nHRӬX}O.6nKv} Q` t뭒Ԣ6vj/. oYY2˳ކWNme|lq7X.ҳ%:wAϰ3g͠Dn cO??zy&žlsc?oPb[J#zZt}-P#eJƐ 2S;uigԑcB8K i]KqUnso"G{"FLiz,PETn{.G;\|if4ߡ J9aI 47"&-]HUWޢ46+N HN#&L&3_ĝa*֛dEuV0ht-\azV;G&ҖF9s-AS tdR ӄWFozŨÅ &5UGbи$zu'dGw1S;sr>&-4f[c+m˛f,J0|hЏu@-hK}%p-#tfUb\1?W{kջM!Rv"? ]V_P|PuGR|ǡy[<`,UIW}m{/OMi6Zu.cS\pavޯ1*6D/s%|=R `Dv/@[VN 8uُVAFZɳooO'/ww̉YT$x*"R46kki6>(RiW䧽ܲK*0+Eoi9 L} Ӟ&,1}`z& }8md?շg@ƺ:k 9u?W*ldKweʎ>O&ss2IZ[A~> #VI#^ѭ֯A862h.d-s>2-]l2*ªX?n oDCIɉAs+U[_ɀc&?$mꈝýkQvN̹'ɡ 8ʞDtS}A93xAS@f_]d<#Y!Nt.}kâ!ae+|P4B{x#ʼn#oNg}Gi_=aϻGTT ^ka{SKDQbks:tK'upўݥ g wGo1IdQ$-3R[4fK_ BVKH"y73Õ.k2c]Y7:oFr,l-YC _R!‚7D[*,z{/rFQo[Ea>45VVk'&}P49{A:5dy=e{lSLύT.92@{FI -m*Wڦ[ +pq,1wbGQm +J;+!b^^ b] 3@f+z=On.5xzUŮ=zNRG|4`|% h m9A2j#!.kp>6-H/jqsxȯ{=7PKOp.!:tensorflow_federated/python/core/impl/compiler_pipeline.pyWMs6Wl=NcO5Ki&'$A hY} ʎk!xv>*Is~i0ڪ/c/%ͥv^5fEWVxYѤu >2xkҤ%~ɘ),;C8HGGԊ5iw&Z5C);OJSiڮQBV/5`d^@Z@S-Go}w~|Z2f.(?N/.go8|֍tWkFX +q ^Y^əگR)*z@Ɍz?Mgc2~yN_&rF7tqsa:\&_1I ȇ2~TGYqfRM:YZK/z0jCrMx4U^?Ne u|b՗҅*ѰAxa6hT[R׽svXoL`)J+Fygq9꒡|(Cg5d'yW+AF q_K XUpZZg߿ʄ΋kqx+Ǻx{2NOWMϋƔh4*nHrRu/Yʖscjl9ܦ'ViHK{4k*$b]]EolTY1]H\ q2qtnr}.d˝L{ ~9Q[  :dA(]6}%]6 s4[5d}SFUKrNnCR%k@tMG1Z`6Gya*%zD04~:r I ۾.<YT a;.Q~ME˴{9(3e& w?<i"-v;wD]!Tn7zot~ɻ'yNX Oz{j._!d U7OqJuR:DtϾ/M>Cӷ3lx֔A Qp玲lأ`nA"P}Gr{>ɘbFaq|zϧ'G ^bYE-R3Y.%Di+einMq;0'MD 4ho`̃x w7G\UFǂZ >Kzn\mOlGZFNc}o%ǁбPtx i÷WXDwz g~XjlS5cQ8{Gwf#G_sƓ~z軨a=8ЈDr qeDoBnS%y$Aņ.d%~\pt+D3ʏ.d9,DnlLzߍT#˝e<SOq N"iHo+3`w?"C$|]gmN ʴwGqA⡋— V,rR+c3怰5pqc`HhM1 La'`έenr-ZT`(F&m_> cc!d6˿PKO@$bZ 9tensorflow_federated/python/core/impl/computation_impl.pyWmo6_qu>T%  fp]Q`BI'-$wGIJk>$yû|a'PlZ?J[#Wk/~)aV n1E#0-ppF^dB6ZHOh9/`fk8B BZȤB 2Do %E Tҭ}hBN ];?kyUUlCmV窶fW7;b}> _KiDAM%* 9̈́+#WXJ$TZgd\^Zzt]ʗa8]l1_" ϳowyz?/g7 l9-L_:\Q|. ')'m#隐-0L\+~Bq@i^J(Jnί* kd֯sx`^{:M& 0Ȍ@e+ FhCV~,O_ Gy±h ?#GY+0L^(GE)Brې8l#1y[yoj`PΟ]dH#wpȢBɿ<)Twh!b60AGb3+'68O*$q./>oJ)fBy-exD zBo=6kgۄ KN$ A&d.],,.>jv9y˞LI&V&XQ~ȍ7%mPח2y4xYm&L2~pǣz}xB[ѯ^tuf ]mO *xd7;&T+7Ҏ_{Ej=3@MMvnf2>~ ~z>pwoW8EৎI7hnpRGT/?{-_8Nm{QO߼93U{ݜ>‚ eN]gkqrU˔m;Tʺn-=@g@!+4}]"Fůzy8< !3D %6:N31S"նY^ϔ U{ӨY_Hhπ"ܷoA)ZP(=H͚|kWˡ-*oQkz4.z;Bh!~+?6[`F[ eX {A>UhqKjMu]$02H ަ3sy]ۘjæ;l hN{C/'Q}װor8@YVf~VǶ>(t] Ax#µkn@Rf)w4-U :Mנ((TAk-XADZiJ{'p'` ly}Qk?@fΈȠ"2-`7лloyF(UQ^/Az?\[zSi;D.29Xt7?U5ᨭ׭_a.G>]tV@~V^hF * ?kJ{ٲIi MXԉt$"қj; "+Gt9B rn]/v?p^ w_GZk0V70Fn~5;#YXGv$j |phG y:We{6bh kϺeſ麶V׀+rZ?,N "xZ1@Q!k5r 97+jW$SqGi C.B\E҇V|ڎ5Bޖ{xn's>k3Ԣ`wo2 AH cﴁVtzMny@?HAW](LM(W"%d\N]{JDf&duK~׽- d[M {vOٗ[BR~:cZd*3p GiL } u܊ nM 1gɱ8o6~eu2y$jZ,ޕ$sW L wM`9~Hyc {ƈC'S 0| %X-e~iX@%j6Sl:^.\I Z< H({mH?I{n?3D:p x ک*]|+Ĥ=pRQ wӺUEgy9H WԢA@Wj#yU%"/y~ߑ_ rЌ9: @چ\BPSTC5>UMiC,/J>"^MQy-ɞcT, '[$/A֎Kev̦ ;|^})UǠ9j+p.ց2EK,r6qoeÏ|A' 9)>>T!0b;r5jpQUE5a8'Q|](L_OiͧP8+V'u"&pK``g)hwX$pb!^2@եY W&bXP$Н[(A4G<2.,4K\2ࣰtg*-#cJFKMEeֻy^ LjP70y 0AM/u#In} wujd,[u5iW!WbP+vUr)q)`v~K3Vݩ` ķ_+O /FP xExb#bL#{ fp(xnTGy:QJB> +VCl;K+PxzTem16` JqԞ.N [I/7a8{6 w <$uG#a dK8;YTR;'ߤH{Ҁ&zcLճ`YB`oûa"faE _ ^ؔ460SBZf1p$gRzDO̲Th D>!MJsFvgaWi09" ;M !<$MWB4C(v.05bI- WP0> !Z x80b])% ӻYq L/`Z'1% VRO݊u3r[-SL&B -D7s[=N!Pu*s p!]RSR{F<w? \1t[q I*(,i8lZB[7>, @ձ x`oj,t' 1)qh_t @>E>wNz1@TK-7 Ĝ]m^Z-BfekW) +1Ȋrl ".V T 1A󂙸YK}hX\- +0*JzxgD); nRqOgv>Z<@mnʪЭ; ʩ '2wRq4>:IcSI@-tQT??]|5̶"*,S/oӖ44Bp*(G x^=HgQr==tf. Ivb+;:a9X頔1a֙X7phV7"Cbž3.WGnOE l-DR˰ec2uX7uCո0?fYlHP!dM`D\+υ o (we"Wohn<9ibl_օٷu#?$Ӻ)Vl$!y\m\p $xGHR> ̇)pp@DşL?ȏ?ldhf,+ZA"cxC!sQ q}*[˼7q&p1HRGf4dOKG@\I.3D'#c ZcJNZ/#Q=G BL`ڡchYؤb0T)Q'C"S|E֔k֒k_8Tu?0 =Yйaؔc[:9Xyתw硿 YmN .a˕6蛎Oll&5`➱&xagaBWSr[`z#jt` ^9ǽ;iGkݾkOWYړlN-_2&G5.~fY=9𱐥`S 9  NGE}y>30T!$I<b,R-s9I c0l UZK*h2ypCs; )^+e6i4<9ϱ{xj .Gj4H43BTū)cK5Ocr'<ČT]GjxO7CG)~bk:uEݗlO@m@/;:ؾ&:+DK)T0*gʤ4Oyҍ/ZGkSy^EN|T+#N#QN^l8HHhHod\g'3eˀ+D׻S=E*J)&qg ^8"s#T1 GW]6!NS / )Nhw]QA/O J|K9n/5t&fy2͓Sqa9tpD(<>T:~(ň&$ ?wz\LhR6\̽\c4!j_t#L0c\clբNo?*TIb,+RyOaY_X1Y/j@3B@F(q0̗Q;hv˺/t yD#hAD,3,Jsuӄ&٢FÓd! 3L~G$j kb]TɯT 6VDuOe- yIkczn^No(_< MPKOm}KFtensorflow_federated/python/core/impl/computation_wrapper_instances.pyW]o8}W\@b˪>/-ڊJj 73k':(_ snoڈtӯa@J[0iQV݉lh4W4 2_9ӇXE T:%_r!,$B"s L bpM B4k g5'ޒpg\v~zZ"Fڤwëb|QYgkhJmiiOxe*Չ[q21]Cn@zq6\q0?Lq0M7cp2- F_HZ6ϟH #νhcDlHDLRiSTC8Y iޜPX ]yun1J i^,%HOZ+u6VbKrd̳׆vf$Xl. Ou|f( hTŞC PijH/bRcܚNwA?IR(ώGl,XT@[4K=~\t4ʐPfs6:~: *콑Q5K*Du7)Rp>d%:SQzꃢыV;oPj yse3#|3ސQiLĆlzU)޻կx(jīs6sܳJ9 wEΐ`rGGlw!p  }콖5#W)r6絤yIi6ءoeͣJjK^~oXmiJ!leF;(t ~+OD2׼^U^iE_%ԃyK2`c9d)~woqhVzօ,.#\,}^_PKO}M|i <tensorflow_federated/python/core/impl/concurrent_executor.pyUMo6W f=En>P]J{hi$Ix}؎S, [̛7o>|\Z`f nF;ͫϟ.~! (BpjfYC.$y=l贑tf5+'jÕ';QM~!j`v Ap%cmKնvZ[F֌kz+YO6m&JW碳4'b}@c@ הz&B9[MZPXr[-U Fe jnZ==Jz߀bFW#ub:O[>u8[,fa1 iEa֎?NG,h+s^U*JԨܸjW[n'Jh4jȼHB@3Nj9FV+m;sײUJ!AYcEV[Kj:&!V* 6]fwИ8{>l FQ FŸD ä?L#J)% X$5sIDKIyC5~+dB7Y/~ 1]'.ݴ WIG^|h¸C+Is>ty/.\]^|Lᩮ4+Šv= qZމ=Tg8tFSohF5޼a(K2.ͲAQ! 哸!b^ÓE[9,c|$LA~7%W/7~.'[8O>>B .$;rcz{BYgB&۽iٝǤ޽$6d"`pĆNqpGBb9B.I CT78y/1j)d'bgwWN5ˌ+ћ6Z 8|@|@w24t? 5FˡpfuV6toJN8JB~2>w,r?. MO&ըO3t=b2n@d&c|@UigKJWx mh'%  ahnF5:'8cloe=?PKO /PH5tensorflow_federated/python/core/impl/context_base.pyWr6+vCNKǽDqfr rI! % )ډ=>ړrWԜ?O^еiNV{Oo^˜{59*-Z,.:|mkǢER<9iSӛ5MeE7t1'RNTOc@hG.!Ɠ)5USjULGaal 7W1Q!Ⲍ3"k>%;GnEj0Ku$cI1|뺘3?*@ɴVZ><$=TM{Z_л~/oeqwX7t{G׷vX}ߗsbpm?#gB=rr :)VL95l+e@)uwI%]ձUz-5Xi+H<ɎAP &ܚ6F1:9SM|nZZBn_TLtdDe٦bR97Ťd|M'SljvqgW"$qR SB1~|| 8T|2z܉讍v,ݔQ臃}hni <1:+zdZ攵VA(Ngh.ڙ,XڀFq Ȃ^󦡒\T . ST xUY*2fhA5 ,:#s0p8T_2_j2\E@UT葖T>{^T!q9'`PQ q*H]^( {iG^990ҥ8UǪ5b˖Qer:z!8o,hyQCwF3ر?2l-{;h..nPqjW(~f?*ㆱ135wtX\욶bTFΏYB`gEpAzKD+ $ߊt&WT1qшl0 L/xe"!9\m0 u9kL̷xt BҢс)Ѿ'^dUQG%Dp%#YD1B΍ƚ4I9Yٗb0DLg۹䀷kC:,#LHZ&n#[EI(Z3t>vXpK~p7*Hus},\w~+/xSkD[5{RZAL)*B&ryU9?R|S=]?ND%\pdה"Ӷ%gmBѫ#K#;;RJh;zƦ018Gx'F\t~:ڦr+[9~F8]+/8wJo*l.IkOH%$R4 e]HгTVצrOLheZr>5' e-BKD=> Q1LONjEw4ht+2IiOcj0dI**4R~ I^_ {3.m9xqxcgհsdVZZ$ Ft-eywVz6r,tʢWlK%}b_o/%ϳ2\˜_f2뉲+& exol2U m|@p)kY/iņi*CNp*diNzMh4zZ*vձEyVj)ܓzGUj0k N7fu[%dscVUIr^_H,NN$G*jcmsc?`M s.N"  qSm lh}j\a;nX1֜3WSձVa.81Wnc ̴!"!WjYKםPP/jՀ9&&bPg ǐVW"lc4H?f' 9J*Q|ut̙wQ]pM6,".y L?8rX6r,F9Z `)0Iw!m&va4qnIj8Jf?$ :0Q Bddv4S|9r}d2bL\׍=P2CX_^%7 Wl-={QSQ=݆Ao5GQxPKOX ;tensorflow_federated/python/core/impl/context_stack_impl.pyV]oF}"/ '}V*M(]V3k̸3}όlj mqNZ*GŽ:V?%'t덣~bô`e*xF8^ѸirkCZƕO'+9B/A״RQm.BLϹr$z[Ri'&NFz+]=.slۥ"MY=^Lf)Ϫdk_4uy QP.YiCbmgN{;#T!Y]0 /+iڽV IwP/7tޣ|_o>/n<[L'st1Ƴtv9$FR:m@@\2G^j]5ZgUlnZ[K) $J^wɅTl)/-j7(V(Y%)zY'0zKYVԮ6e> m0KKT+kޏw!; !ka%IG\1,VCDv؎h#m*n`m2w@q7?S.z³&d%J.!l)1y*gv$I₲x O.]cC(!o M4{fEFA?0wSN: "-u.ʀc;Vax˪YOH`D`rZYlQP&tYַ\!QxJd1h!LL};RqoyƴRfZqȱ8y߆^j0"Nجmۏhx'fݡmK0l㱽3u9O`=%Uy!jg&B%(FH"w m~eS:zpیlއJ ;ECAϳ.֮G=˯ј(wkJ=p5 Ǿ[q[HTGL{<;kI*V+oќ9sh\FK>*]tzE5oPKOa}FH7tensorflow_federated/python/core/impl/eager_executor.py4zӊ/?3QAj^WjdRq-N>]+XOw%-l 73jt^s1̫Wj' ʪ;DEJ[bUm"J}n0 e+a5|uB0۴m}~O$aTM+oo^_ie.oAZ%YȽ!׍wmL*kQ%u]qˢD _+ow?>|}wۻw77wߛw3Wpz̑*E+!U*UwrĺzTM Z5\45"lIիWWB(NڵtlEU:ijTey&Tm iEۂ|em<βUnJ?f/j׎/@ē'2 z-WU{nT! @X}?b^ 0R ܜ3SB]7̷YTeBm `y ~.e\V%ĕT=/Ӌ3!C\#pM^{UUMUKж qUZRx[oRj|% h,ywFa Ɓ79 -cbXLr5Aݼ^f*/, YY7nG|HCl릩 q (v (Y'3303JXݻ_}_} T lQOiRp * X:GI-0UnCQt Pr-nn -P9yr X#R+ B_QXg,Z!.>I<?f|-nnɳ` K8 f!< # Vb##}o37Z'`[N ³Uhu 7j>_ܕ&sà?\s]|1B{RaR{O7r>]¯^l6/؜cժ QzWU}iy~T[13 0iT] ǹ[6r̽1 qUmyc[ClzBi:䠩 XR@. Y$OSyVN<)zCXJ+90)swY1 LU;) #p;#7W"_X!i% Sg ǃ=[xu)b+~(+} ?i [%Y![u2shuNt,`%  v!T dW,AоVO?P؏ l*![ G&'v+ =V~h؀H6y"7s$']o9h8EADe+!*1 sfsĩt<(O|F$wJ3Y L5Bƀ nk,:s,k )RIj4^g&4vrQ9ȢX8 |t&zEݎ;: |^9f}L]);ReelyRiCkS5sb xLߧ배vz57s> o!!5=CxlFgAAsa aL.co nL܎s21x= jM ?m cF?$$g Sļ=-h ;eWw =UI䴔n NeEMAwtʹ:y4p qbx(@'ft%TbЕ:tcU,Y .:z*uX~ OR],bb**F w14(+|;c%PI;O'v'toBp!dzmgw<ܪͪ] 4 g!|D ;fKinLΩ; v4v doVb ŰtO}s|ڄH,8ɺM@= Ǩ`OjW-tn-ս蚁9b6a"`_ EqdJJƐq-m;cJ̉wN;qfbY0}ծC=Cګac *S t+ف~'pe;;n\8Zsz9j iڙ> `4U9 #GZL'wcUb!hOG;g37:EPk(4xJIЩ#EIW& ]ӪoO,vr71 Ϲq]v~=tz&ƎbӠI鮰ALe %(FU2/g6IDҹx_!irKN,1oLiBudǯ<9ui`*tjQ_m ʹĂʎ?{ePrA}E1Xx)GCdp?[} BAhR P6p~)zu{S7:V4Ԟӊ'l-yl%hl0 M6M7&ſ 䆃m\ ՓRA1pZ6t8Pm5 IU V Gn``:SM _S[u&HKz#}5nJ5L\M#xE. \|K]5va ʸCui .֑ UCƾ:: 8#VdMcV:F]W7_ beק}y6A>b)8)Ȇ):#! FHs@~+o"j`z2c'F`n1!7/Ä ?i7QCu۶&۔Y/Ue[f4> sF54X6CrV}# yksuWnշw8<Đ;ao;ļۍmy`+~&᧰M6[UIH}D3_YJr'G+e8PޞvdE)~D;zL@*ErzӠGI5:]Rw 0QV^Q>^lVOGOJ#H#.eiYa:_-1ިs`">|%=e6I-b|kq*{Y 2\[֤qJ<*|y# Ys^f<?E|qc# DNlM'AR:𕃊Ё=zx/h$j4)>+.+}]P6z[Ğ߾7‚ K<ߍQ^P IP:oDgO Pq3\2)K^#r*z1W5^u:%i[~(PKO(vkȯx6tensorflow_federated/python/core/impl/executor_base.pyWQo6~8$KMia MXkۢO-l2T()vmy-}ww'i@!Իrp W9ZxO , 4޺n t*`8N;zZ@F_Gt^[/gpNڥ agبHC+ϱ vSWZaZ´ D>vVo>PA:zxqnS%lSVU/MGb,g> 6QjI4+@ZLxtfe*Rh^6Z=JzK8a2?7dƧه|܌xMNٔ]h~L&T+ cDRs659eVZ!:C@n=^A(蠂<&tprr2"hTTy ®Fb=M`gѩZG&] %0nw6,m{zp> rhNjIUyأ*>4lJ造xH@ ˚|pt%6 /Hbvvx~^^q+ -%:dgw$n(</dYy%m 1̵D,'%%F)}6}Dʼn'P[rIJ M ,{:Lqˆ8;$_XN9R{m zP` C*䭤v*f"e/b eD":Mu(@&3%G;H-L]8FQDEa=2a[TU!ca7J=J:%!LgUC㐟RCZl !Oa&R'*m)QSoa!hF95+Z%m6m@4+p\(*qt.(`wskQQasGMSM$U[]Fn ad ΍;1^cip"d&LuE>N|qH_޲V5e./G\\Ӌɛt|1[2L97n?G^`Ү8oXHHox."e͖,-WC6\+X Ì}V)H0%AwgMxPע߷(J R.^X@g3FI#›m?Smf}>kBe5+\+n-k=3ecÊC08 dA4EC%8sWG}ڑP!M SKnk ] BXΡ)hlM.g'@t0U LsDix' :\D%li^.|x4||wo9i-+8kZ+зںNRuF$]Nd,fg$o`&0=YgE^m4fnȑ~T)N Qhhd VeMpx`NX[ښeJE 6ou4 P1 Y`*KV$\WVDƺ{}X58ۧIy[7 xy&\/VRD0nx倬4Ә`wO_YHQo)_銶J[9Y \|=EaO&u9}%D⍞QYZ)\^̂7`a?uRM"}z縑CrLE7jq4|.+Zp jjG]/.)KEVVh퉊4@kZLտg4)t"(ȱpI~8{[ [Z^~b\TẘXJ7p~q+ldrK݆†f7+C zEOaLǓ~.)*D($>$K8LݩmSv])S9 $8 =tJFwXY?0;QN>%&'?_I[P;ΉHтF}?-⃭[7V eړ -97c/7n[bˀIXo9?E͞>P9nEsbיˊa\d׹v^:& D6[܍0cNPKOTo?tensorflow_federated/python/core/impl/executor_service_utils.pyYo~_fl)nYl8M۴ͮ,$p )I[\I$r gѾbef7W,?ح^*?hZ?ll*2mVVبm+(3 B/_ُB26y/]D U?LYV*ak &/EnRTl)^- WnsxZmͯ./} m2u;1|Ra _`x|0SgJ3֬B{-613jm\ вj(l[%<0:ݳ~|_Lϣt|s>wt|7[66\L=׈@JXhX+b)r veoۨ30B4oZR[z1*]\\/2vge.Uzf~$?Q5ְ%`ͬI@KЕ,+vpܰ,/_Y5F)^o`M jQͳ,_u{jٺ p'<.%0 g3%+$LʅS"Oŋt䇙=n9 njG5Lit1F$OϤJ0 M[5+3{i!3gD}))g$y?<IDGzcPs؈M\,kܥlUudRD7sNv[ &̘9<ה1u| xQ=GKA[,f ga y#FaEF hghN-Hqi23-sX XOTc"!3o@P|@p]AS;As)vx<܋HKP/וC数H0*]پ ؛ )c@%MwX%('X*MyqUz9,ԃF^ت]F s.kZqF/#[=>-Eunj uxGk1#BMgk[Qîrߡ-嵷$AC?pf 0c7F[u V9pT9 UtFs\oQ2='[Ci9[Ρ Jl]&zЧ}_$B? YIY?2Ҍ+˯vhn|߽}tn%6g+Ԃ4I Z{NX^,`2fT5xKs\wU8\)‰gXOMGfڻKkk7?/Tq)-HRw'}kL_E;|QumOϦ̚B#cgvyiŇb w ?8tTߝ8pT 5Ǹo3jmz{;1 ml3J~}wzBl)Sx_~ i4('V6mO#B\;Օ]OI6a?7]rܕ-/vZ]4'zK˳ϛ"?gHKa+lڞйۛy!wpI?~@mCqD# j,qۡD#<*v9wn{Cd24[6,2Lڪu)XaeS5r:*ǘ{bJ #_0р{AւszJ@@8|睋j62vqJKwq;;b|h΁? i)DNb1'JX &Kh3_ H筜ZzKhw'0d0i`qw8'0Co4L!=}+:޴Vs:bE HMITƔ^b0Oh59L:#z (I/|89I*.uC)ن{EIC!\89:~VK5YQcT 8"dFϔ;NXOҞ1(u7~g.(ن0:.E߂[@x BDCIOjIqL,6@C,&jﮇFcS 16a BsW~ǰ-(ItNK{J$(oRӘҹG(: H 7#CDrrIHhJxWEz7""{hmDa!-|aKjѴ)B#9EIH9J kkWNt4lWbJ:Z-5&m54bjA}C&41RإaQjE+c~!,Gc]ռpIpTH%P5ܭ*J+*xY%2uh3y{a D}O+NmxFe jdUg0݌ǫǫfYB%RoQ!22TXM >OCC|٦K$pݟ8xqNbO|XbjqϾELnn?"knӚC적ꯂzh!Cę׬[*'au `leMlkZs&UɿEufЬN_J \{i^,pGJh5vm$fwPEIyP A< 1c9ՠ3.X$.c>'_E$"VMvL篗ۑjAS276C}'sA?ڍoR,# A+Zc tH Krκ_PKOևv Ftensorflow_federated/python/core/impl/federated_computation_context.pyVKo8W CVȢzklۢ')DjI*Q IɒݢC gIBZ`(.z7iQl,}K.w_s,_äAmZ}꠴x&5'k#k(.Gjb;Bc8B(9LUu)8l87iV6C0vMc(]\^\}L|%74c]H(c+Y-( Ϭ"[-E Fv4G0VUcja}0,`l#Kĥj%*D@9FiǤ-jAǡI. FyP;uyfmz_$>^I7' H ;^!\FPKOX6-wDtensorflow_federated/python/core/impl/federated_computation_utils.pyWMo8W Cl@aeEnI-zirҤEΐ")nlIy7+wS(?Wpjʃo_3區sep.6r/60:B >4GYsWR"F[d0F`*hr!B*.!7RIs{o65j9ڗxWtpx_NON=!ZfDEKwr1?=\cV9JZu}^b@9_cX[+p xoz3s+e#r]^0֋k0_l1_uxy _g׳lWpzua_]9.)n#JKc(6T4%wsqah4(Ts+8e-bU+Sy5h]I C$)Aeb,pœxFJSEJSSJIR?v.h"ƾ3:SrZC@nߟ`RI6m1`3!?ڋ;9ٚ;"TC*J3շmYG$QaMflfȐeY3Yv\4~JnNxa3/rciV8Ek0;Sou*tLDN BA] N!Knfn*fМ( 4G~iѕʼP2hj#rXPah^mPQk R>iHKRW̊taUXo Uj]5z߮* kd%GX戵uV,U+L (^-~׎G 0>(X*28ff}%]+=k :Mp`Z㊵%LC}T('p%i/j|g~؉л~\uEnJ+f~WCq4p'GJ5uz=H@M[_C8xV\8ƀCZRI~)!L7#@" `_7M8ua.IRN;4hu74ΰzBYB n| iI-%:%4#܍b 5w8}}l+z 6ya}vtin0?LJȓ_PKOG[~+~;tensorflow_federated/python/core/impl/federated_executor.py=nI䀦ծe a1H&Zj M77":Hg۬ʌ;"z~ӊE9C={g*nxZf$۳|͋kvQC=^?+hO޳ :] 'Lٯ(,eof /KVqs]XBh h&ўe  qSVfj*e]9R@(e./^|2]ק_no?_\\]~a>?\\}__]2a׼@H/;l2PUW09vHa:,6.%(I'IΞ={v|UW?zsh=r8;ijELH@7(Qɪ٦ȶ㹆8ˋfWLE|ˮ*3超I,(6yU ? F~#@WCD7ͅ9C>?b|%5? ض"Nx5_)ȓhŷj(9BAYq0_&qpNUmRW8Йbr~hg6 HvQcƷK^){FUƀl>Ӹ%O6Sb* jEH @#yjx [|um:G4JIȉH8^ń웴tmQ e`-md,Ϯ| Xk  (܌-ps<ÁwيОig'dy9{o \<*0U<f)WS]aݰ_FVd2ex am& @ vEE̫Cdf жud0+@-~&bB)ґ^5Bs3BƓ6l !ĤLQ!nH&WHoX THCU2[ń<H0h!ԏ&]7ْѐSt5^2r~DK2[3h-h$xTeߦ!(s9(s."M+ʱr S2(yjf3 2r0@!`\a[Qt!lH4 JKi@kG > L{gVe􏱱f_4 g>Aď bemEj'ȝPk`@q8PSׂ1S $4p:h "An&HqZ*w "sk}uw fRF[{*eTGDCۅ 0ACAt=O V4ivQU?`R$UTn3A`?ioeQdXwel$btfB)+'vF687jFUX(~mEwǾPN=;fo.X\ƣռT$q\yS|bwQPH% G&t:BLȓ}WI&f08̣qy'ٲȢ5{r RQ=ǂV8$`E2?JhgDsU9A*g#zK {Wr4IJ#L\Ļx  [;@+gޤ0p5: ,ZɪNj12a īՌU%&r!AP ȉdT1&(, PK4R (W ANե"[J#1JO|b)P"J.h.IiJzU!`H!#g Ͽ^~DSGb8JTMJ(1q(L!$O*Y< 1)HؒXJtd8cÔĽV.be0yn0!ۅ$;yފ $vKXO->HU!wD0tw|Q @`ȄΠM#8}򎽶i"r5 v_Rzـ|!zA`MHd3x 2"oCJ) y(wmB2+ ʴuxw{`2_% 7kb@Br@bb%U!(AsM&;.r夭ٚ\-3(Jʳͧ~#35;9єDN9{ZH}F@HfG`j10`j"-%Y3 $katY dXh3`g_<;O%33C'#P PI +3 !d&w;_h[@:FhM5$s a!,x#Ye:ӰW9Ҙ8P]=ۙZzQPMjބ2i6IuBWnq1}u74f_!%05ymRħE}.sL1Hp5VJdm;^AaH)/M!z&>Ȍ[O=B@K]/Z7y'lp#[ MihffW3'3_@ёe 44瞅F̱& ɵ  cm.XqJB p  89%un5P ՁA kN *q,Tf7Ǐ:š\$iQew{O{",ӱhu f[4o>^΄|!so5S9V GeIdBۍĞnoJaQ)CVVYAirEv=pz*o<4(Nʌ_C,Ϊ+0ě/~b"ÒqkW8>V^JJ A4EuLx{YR{f'W,j8ߡ7˘"G PBtYW}HGp7îN iFi8Z #.$<6'gQI(bR Z")BDءwa}4#^1Ƶ:0cۅ؄^&$WKL!UhP"v( XjɦF?"ӻ!C9H)"%1{;*ޠ'đBYlX$!M"BwIY]}%%G)Zpʹ(S7*jص`}^nsAC̯VOg^i;G4Fi&负ИJDU;!ֺ%[2T)ѶRCT^f4d";Y3T!T +Uh{A\ &`={  SSf)vzhy3 Sg*m)s63M ֶ:ƠRXRmy#Gu^V7oѕmRURi\eF::{ ]UkoӈyNdvٺ$& {E:'d^Lw,n= {iVcG#dE[:m# ְq+{Y%Tpt ~e%'LI*4Ik[By<{ =ܗuKj\ 4[J(wMYkE tZfK9J|n6iR|loUWnjj0]$Tۆ묩tGaQWm6;9n'# 0'0r)g64Bwކn:Z6 ayT~S[U{A$"OM<,"+ dlRi?ߋ`>ºɞcGBdd_$c6SuVl$5&RJFnB7&]pha۳ w5 bPo RɐVtt 訬/f)Vw;}%?`87c4'40Zm{gDP[C3jw%ݞ` #n[{ l vzn_'}7mljBhb]. ʂѧg\|!!XKy/AGxE^% gˢ w(-t[^yC2M'G)N֨C8̘&* ?-i呺H'[D$̎UԿfTl.$< z7hxtӞX4deޒnc[c-;6ZWW4|J$#a3P诶~WkVUȌ0RhQs!J}sG+;q;IX?Ƌ AU^m%$DQ!|4XUm[UEjFuqg?j3k=9E> &]kS-[z|/d?LCBGhKBIʁ67ցQVJ!^V2(bTt`8_ANo  }*?? 9w $t>?z4~YOANm9/NCVu[V[Yμ53uD%v,Buу>@ףIrڕqf}Mm;3N|jzxmW(8-c䩭OJ]0~Q^B<k:LQ)#j?A+9w*۲UӞC*(}ڙ N^o~&Lna}^R'P8>oWQuJbV)x΋,z=NI#,i-j'FAV~泏,_`th J?bًl/ ӳV|I#J,u_`^=`(6Vlu 7rB!Ew< |D}%a wO6ڕDĩ(eZ_T1G;l }fz}5.30\1K\zʐ ^fW/u7 ׄTfNӵjQ=_PKO˲ 79tensorflow_federated/python/core/impl/intrinsic_bodies.py[s۸u>0xL6ԑ]I="! EpҒvgɖL {g))Io3l[,Sl2YR2}= S~Kt bxNRXO˟v^ '珎{-ߒ$H0I,n$$b~PfRm6>a~<⧊aLŋz[ŋHϔ/.gp>՚iQ)?gL-`(gf _ R KYt TB&SfYZVmN}19`|L~ch4x9Q8cr9"gdp9oIm0< ]6tdGƔs͐Lh,E/(Y;*b$TDkJ`/*[OHK(2*9bZIDQItETvP H’:@h.xjR=;?:;TfBDoqC}& zfʅ%{GG(xrkxs) >Ĝ#X>Yb ab>}駐pVyAh8Ȓ0[/925 3w \(bXFڿ/ uܗ5eД+GV:;顱R"P26LA1^4b<#Kk߾7/{dVf*Zs0&2ұV Q4B!Ff0H}\8$lZ%yD M,L aϊJ3c Dm!H*Fd sʏ"RL!WT^PЌ3J޻?qϽ#V8f yj♢Xa~&PmAf+90 ӷj)|php}_Y`5`dr45bzI}rG9^]]|6٠H%_pFxb69ɸŅ{\_t.FMx.;|_LA/窱E_/%.㲗80\z< υC۞f`8Xd‚K"*\ X ,$qՕ{b4opo$FG}L0NA5.먄΄zd 6[+N |uO*2]"1u?ܖB Wi14ҧ *Xoz,䷠֍aM֦%guC^a2'UU0jj[*; @-":_j}.>0%[ :0?6'GMZWYcU12hL/kwx'Ě澬s8 (2aԞsH0Z iRM+ r$)]YcA?S bpMenfRV!RNhx])̐pXf%ݪ].ա'D_^pv UuuddϞ::'$;SNDcMRcM![CS3އ=z#l  \O-/rMU|XQ?t&uE)Sl`(U2[Ԕjv]orGϭSl瑐Zv @PX )oq[g{u lV< *g"P՛\ xjXy}J J+oMayncwFė? euu )/QstX?[9&w7&" V:w8 m&xT&`g< A2WlS]?VT/coF="cV򀴢gWYëRDhkj& t"$R=EȵvA3 +6GSPzV\ȕH ֏Ԥkn%I¥DVWuq$d}=h^Oʂa-DM3Cu43>At6o] C*q tr X[4:^S"էCwҢbMa^q&כkv ozMrƐ34aE4CЫXl%9Qz;}͎[W&G <bBu ϭMogɖҍ?' ?/T/v8ܡKN/&vS7`#Ur>T3DivN#3)3;Jj@޹ wKf4]ƫXJ6M̛"4%_k}A#pEXgz $m9o-|J^ͭ(&u}ާ>k~}Qj;+-.mi:ށs o\u+.Lu)Ԟ{nǩ黷8`w[AK5{?/9|3WWBPuݬ5m$, n fvr]8c6{VSݮADiEDR(x^YST#RQ+ڈN]6l.p,X2#ȄF[E [H uH1 ˚xӌ!MJsFvt$ʿ݁Ղ'a ]OT sc+5YOh{]Ju6xƨ>Aط9g0HkRͧCઉzˤeOU huC'n*w/-ˆ.- $!΅uS;{/.z.G{֗bEPKO N7tensorflow_federated/python/core/impl/intrinsic_defs.pyGp^"`)d}>+\fޒet˓bDiJ oP'C[=:  D0JHQ(U`ʔZ$њM,>"Q;Ql-[{)|H]?Ɯ/@ }e1}PuN1vn{+o }F+ lEj`ྩNOH[e4K԰-{~j N4i10$$ 2o WL k !Ka2@] ͢,e"< ]qj X܈8ÃgOPߏqν@*C'x#ypXepw Ym/?AuೠW3q:8I~_'P%+ 7e)k >`Oi}D(]*YlN/\Q6E+A93SyUN:+|{h 5 OI"T p㶊+3" :/j; }NWZ}b\#')if.*" H:.R|^ x!)FmH'9Jp5z2b UqW=1:^8 1X\Za~d(YA{* %2\8뎺IՐVvJzQ"a%-Py/W ;CYyj|qh%$H&/}R8&ij(j0J[Db4tozH!t0(y}#,l*Ǭ`= 3WQ~y 4,ݢfC.Nm&EDH}=Z=2PZ(K9Mkw`E?)KYeOK>K< ʢsWu9RX0g MUM0]%Y`") y.~ Б{::%q> RR'{10k]^!/eiQbA$P~\2zJ ΋o.Gw8y3WT쑕l KjݡǏ`kJ'T][fنSdA^YO7-4yżaNA~@ u!T-bOScúmVxƮ"ZCQ9`CX|bG9ߦ2A7Uy [$~H+,E`|8CSR[횅mkvhGMZw^\_~fۇ.wKʛN` =?%m:%pvL;m:Ni4T=G,pHSr^H_c n%߯|ZE ΝDxZ61kd3H&]sTM⧣fvL 2{IWpf_Qq&VqlIy6ѨY.J@{낚|? ncbŶ2ƱhxwSټpkUrpP"S-&][U1쳫Qyeeil(fp|oҵŒe9Si*oۮ))g=>,5S=1 gK^U5귃cKʪDrn^F@5$3{褣:+^xl0D#.$ Sݧ%VcʴDzLm`:9\4|q.-^D̄D꼗hZZlm &煻>Bփ_bs4k%uo! =`2Fv#(foˣ kv;L:|LˆYl/Gt$ϗ7<;~@ޕEHvjqE]5lU_OAݝۄ~yFidZ\nT Jt2G_9'azhH?x8 אۆx1Sw 'e/(>uQ.ݬu&S&+D{82H/0#;1m󶏣5~'/^{ARY#( O);.g*Rѽ7ՠ URa+\?WBmeIcÜo_6{3V0#}Ȟ<uy ȜrOZ7NgC+)Ր#׉r]n+5+zUFȒ8աgryhn <;T}rY3\ޓ˚eaz{e6>l2tԌ+sphLtHТ)NuG_wn#TCCʻ>+WKk ">ITv$qnQhSE0e΃iZIiTxWශtw􍽐풤4D Z9,>D{[(PKOf:tensorflow_federated/python/core/impl/intrinsic_factory.py\mo7_:$M=r(8Rg;)XS+JbZnI5싴+i9uEmKp83y83khB1Iz*ȩHO=}}\OfU,1I5 Hśk\\Ӌgg+rr >a +XO%Lr#Ю00!yJ&02L&29 Pk'+ OȘFZH0;#eC}; s+2G92c)f$ Ǚ$ C܋`C%bYhn6o>4|D[M9g=208IYIDL:Kct`ʢw L%2=4D0 TmwXh^JݮDr GlPj!G1CݙFyd+CdmF;LJOfx1t((μ^5b;tS &BY8ݨ7Ae\τ߲1d!;p(>^C'~fX 0 y %-p!<: ~z f6y_3DNCԏMlLA3tnYJwB_sSѕً P: &N &NW'#c}'Ohe,od~HR ,ɺ"rSC FTk*J19QS8ra6l8+KA,ɷq8okBndpQt{. ?9,jÏXģic9C2 gYemuî\-}D/^^tO={ѳό$""Ygx P[V4GxF3#+Ha + 4@ Y7_nn[h6z߼7)Fuj4'0q]IB;WVG<[e1!qpX#Ef"f_Yi0c!%}w͚˚]Yl6,fi.n2Y˶&tQF%BjiP_m FEVBv9z "V஗qs!n[qSJ%P9I+5ʤ̘g'OSLyBV.fy d=5,ܫ b:*qh-:%rDMEPfD *Xz bAZfW4DlϧP=劧 ":e3Ϲ4&3Ad8vDK[_'5wXv=5ahy]h6^@C^cP :¦(Ox1efs&WX֞5.my2 -وD#ks2ܔsqVN1űksv9i[L @!Aa {:Gl)VdrD(Ft,Rs}żJn$C+G'fzQ5`N n|1ٸVrJN0uTBb)+r-\8Z9寻Y˒FU[1HWS4&v3-[5j^Jzak#HXv>~9W2TW}d%JvU\0e 9$s/O` \6~UYs<`90c4hRm23e=`ݶY>$d1}octBpP=^Ȋm<ة=sHJy].ΡQȩI4lZrPU^i:}.@@{/Ee +NP!z ]Jٜ`w\w\H!V9+#c .w'm%[Og2lH?ajjM@xUk#"m6l︫=v[?sVyeֵGoJfսlV5!\hZJ{ n۴A)V!y zw^E~*2f-ywDZe KYio}0> ľDRs躝 v{Ao>+&WcXÿPkqpٻG/tk`҈I%MmޙFSp֘HGIdҕJw39bMȈ}Kؑ9QTQ")]WXM29iGf}[T \p<_=Bbv [?T}G@w; : ́N\svbFp1K)~}.9S[@Tϡ/+>b t[t3['빺2"OZc|ĞCnwQ*P*]^WӯehRK>̖=j|\Ys%p[nlV{raN*_¯O3ӰFIN2ޤ-n{~Kkޔ\DފQm^w> b6jJ'͇`99J t?|5?aFwOp5-l )Og V- ۶i<Y\wJއeF+JV拖]?t]x]Ve}?U·xʎhMsKQoIz^enFz ;̮,T[}iYp5ߛ ]սׅZ:->*%cz%K㺾J]yS/ugL=[%CwbAڴ"[S}`uY.\B:toxTCϼ7xR] Jl_[P仫 >S>mޣWܘ㲿[]ݽzfɝ{H*j!'`QWW]٫u}]Uxuu1L{WVivو7j}٫&`|s:fWd{4 d'lήvjI~ 9˨(.Mg52mŚhAe- Ft ٩3_ (Vk@MKҮCnU*/ %֗ ķ9m5PjBSc2_:+Ƥ(x3Pww|~a1uj7PKO"ǽ=tensorflow_federated/python/core/impl/intrinsic_reductions.pyUMo8W KxnHу&Xc-zii$I-IE#%;w87o|$%5[6䌮M^{?ǴX3-X;coKsIY+֥n>8m5q)kD2:i4}Hӻ0L@ؚ6bKxjB:b⧂ORSa6BLf 6@oT##Y{\^\t]65P\L7qE+v,J\W[ bJtd,2l^zLTRJ\@=$z MlNd>/ ft1履'OMߓ11B~jl2em|@2=!p!+Y /]f#[ta.TӁ^ %7 O^%&hvtmѻ G|A x#pOʚ yrƢ[W(hϧJ(Sdԋ@n"vQMI#5EIdu}K PVIUɢnih{+qBt`z}_įW_] nߋ׷7ooo;quO7s!Wp\?  AJuU\&d te&H̀QrT( [4%u\7=UeSeU +8cXC 8 H$!LD=f$Le54Zk5 2pP[PF5*Q,N'avɢҐ,ώ)R$1\>PJG F@`O-j㴑OU;Vç@F,8MKP 1jJ e$ L-ZL&4 bpp2zv9lDY &$xZ:lK:(Rc| L\(Jqj. peY&$K'u,dyc =*7̥_CD)!ސ?c%HRl( Q+:%|. CP?ScHH֌Ey^p߶ρ:(#qrW3͢!h (Y  Q4)ls.TR?F +uDp `W|yQ)-BPjK*&L ޻QH\gu/0+Ԗn삈ulPJRZ3$D'khmY奸ąpYj!5Jqڇ-!!8B 7` --%) ),w4`x,KPP@v/M`_ѿ_k J2\OCV_OX ]\f-jsF\%n J"p{!.NAD6(P?Q>:^)5틫!A=#9{KJ~q (S#h/ofW\8JC!E0QL bn0^@h` d>xAcR A vDp\<&P8+^45:,2N|4_&>)p<`pd햃[K;&"|g#Աq(T3P~ə'V\9*,(Ā]\VR,mXg"2XZHX\A';5 qFҨ(%g%[ry.MÍ 5m6%O>jvhx+3DVR̤ҨJ3ŪLr6^d2 ::oIA%ti6' ij9̒"/|Kp%grß٬N~D' TkP<ߠc2;2W'x"X->l!E!U%پ3*%q9>ZDPgh :哃ɮt&*'+{f}Ңg ,J_u܊ܸE٬]Ts^ #[#ي#.uG_i@rc5; 0?ʲҘD:^J;u %gKυ%v^@ne_ AKXcȅ޽@V ȫ*G#**wh(śdE,qQl8o"P7$${\ɔ$2}|ٞGn%CFaOv2g mzt c%C Eɥukl8}1 P\W`wS÷͐qA]8S߂w!B5>71f["cYG '5I||О;2Pfн;c?nN%{YdnpmwfU5=m p{&mA^u;˴Yq3ц/=oy3j+G,W]_d*s^b!i5lo }:d@ &JSqxVQ}${U^o\=.R3ۭ1 Б QBBxJ9!75v*8k8 9rgx{d-̬wupQVxQalT(va+.i-Ժt&b-G/ŞN!"Uik4֮Tي>@RaKSrU(ͻu-׿gGE˟t:x'Gaژ,^dOnfHCq&->9q<5!L!<eK?jspt?|NS$oNHͺ Ofig%?jtX)ts4\t(yfHHt- ZG}HUD˭Vɇ>oʥe%?2`y;9wd9kb 0uw 4!|n  c c]&qS\&3E^f+Ĺ:p}k'P *Ԙ巖6ƕ(rd Oi^}6O_s£X@cAC)>MKGڪ{rQA{ 6/Y">rXXO#e2}"|K9Լ9O‹Gp[׋jjCeJ:PBZ|Wcmcon_ *2#зn;,<4uF V] n72gz/*4FQsf]0}UlML-+fu37hy/no2DQ]e#Y.+TgZۗlugkr}iLd  D<׻Fptm6@a7?M%94B\v͇4_` ;ڊU~Ȇ*]K;VzZ*Yđ2|;irNg[ӤY 62o6P3( }d@Xj/{,q۞0h|^ZTmh׽ 6XU %;H hԺkB=i\ҏҽȹ |>-7\tGjSLbEՀ5_ ZW;/tr52Z{uE8׳$7 ]]AifG$ G-`dm/P咳|4^9\ڦwX!N7fNt3$eUT mJ#sW+kԛL"[5T+>dAq٧s15cvsvߌ٧~~?FC?OzGvw:' |둑ge;)jUcb<]~4_}!.Kj9_f6>Xx4&:Y\duN _^/8Jk99Q}5S U1`j!*[ؗGiˈ{z {c'uB:-GfY΅s:ixlqH@:^z]q[h$@T`>zJI}mM߂V9 }]/_[OuPKO:._P ;tensorflow_federated/python/core/impl/placement_literals.py}Vo9~߿bDnBRQE:.!:tTIU]O+k-l/h7㽠!-13jkWJ.VU[-%+N FRm\3s0&.` 2ඖѰb5=qmt_Q)Q5ےTjBZʒuU &3NaW>L0KB-,6~PjpylbJe4d>zQ[-4r]lU`lCJ+4*xQKaK.bQWC҇ i$Ѯ(ՂZ*VG\i1\H5֢礬.m )8Jwe2-*"rVq .{pw+7;J+n\\|GNs\`S- )]Wn!LPy^1:BՐL劣e߿_} vX;R9^q58̔ҹIa-yG-tv7 F 5u"ca<$sP>vc)iG|r9sviC< ޠ]i6j$pOϢIt}AnYU+3B{@Q3UKiӥkt g7e5edn\D9$=ƱcP&p :{M ԘsXYJ ++F?5tensorflow_federated/python/core/impl/proto_transformations.pyV[o6~ׯ8sdcr\KXh )Lj$e{H;EQE;߹gpǸPF߼3AF,7+!os[hi.RzݱmpI o* A5E(aKRQ` 2S)-409#$m(i𚓌|Q{Tswm82Ssrj4%ǿ OQc6pq0>ERHN F+@hQ䅈EU9"XUGgc\$eUޮ+Z =g⛣ qz`xz.ŏGG.OO.sqÛӏ௷ß~x3 IVHHdDHYd +y"CRd0JeZj,eZ}RT7GfUR&8"%E<%u%<AI'igDƈi}pc#?jURV0iig#V9 `dHKX#be r¿F]^Lab=]\b{| _āNɴ:EĞcSwD8l,xjfEl]d.`  aHE@k$4vq*UpĄu!`GżLjEu%0S\:/K n#ёģn0g k$}PcƊKVlL3 ~ 2?pѓVE.wHXPE v ړk7d" A֣@%Y_:,+#5iHDy9- ds1bVʗn!iiD;< F<̴nD +X.2`%@D%R'?D?&lf<#2n`cmnp&7{$a#A/V2PciFyD‚$WSWNU1J7]XyO4%W>|<9XY[qU%Kܚ7(hvٮ)kکn*I1p6 2&57%Ʀpze;d5:[l^41tF_V0KJ2Zœ{,L 1U!Z^T ^h\)\Ȧ*PW IbWwNP vU6;/JE8/G5m*X[ƾ8'{dV"FfR?D4n:Rw?Fz* ΘuulYR/ѓ+Ed}#0iqX-di'kUʵWroK#ӶT#^g\@&iWF%Si-G3ܣrVa,w~N?&T1^O4٦S/'m R z׷R4*I>@1Hi _*A\L@4f㆑$'b3FJgk;)x8t" M(>hw%d+f3,Z"m /+dqv8.DF؛M(z䪘;q!QY g|"'t"@qcnCgLrX,n= ˕; Է~[qy$F\iC91pIyFVC!'n/dD70Z ^_;ݮ{( wuk%u"n!} E'k4RBJ>pP+޲O`:0^Dg&յ lPRYwqetw&W>^4ZmU"ǔ 6_c"eW P@r#8wRDĥ/}t7Z#gGNPh9d34P;){i^zؤ[EV{eȵu&-GEOaGd*8<]Ebנ^dXdȈh1Z'RmgZr}7 /b6.M"oCVl_DC =߶@1@[& L_;ÀkҾjCrd *Q &q euؖR Q.jcU歀g>XeNHc yTGCR_`D2qC߄~{>./J瑊AqUlwpD*)qlR`,@T*X`D~lk)33Q*e$[u(k6(t !^[1U sRE! 3V+2iBfW*#qO}wÑ߅]^?Acp~/L 3֐Єi2}gfqV)PXO۫}E< Mi' 3q܁ςE! BNn&| DjdfyAZ(F#kBab|p^^6S`.MbQ)!&a~+սh'c4c2sͲZ ,%bUm_jt8f:SSzҜwUdKeLLu(arOcTPql_bF=`,f+@R++<>`Zמ:Syv^7)G&ΊzLlr\wۖE\Ģ:=%O^,oQZcq<{8{Q& g)LɐDd rrll1+hUU>1Vs*zx zn:-q%|n<@~F9P*vT;Mq)a,ҭh[yCm,Qss%CGh4L9;ɀ3Njk#xuKUjSrJN;?~uS ؄ts f9J)@wdq hցͰ!xb3: T Q/_exoZMl^e^$#w`,d Fn8 Y^ݬ;.ٰe Ð)x^kiڳzGRr(ǭrBd4܏D-ˬ2ᤍ)95mx 3)l>joI560@J]w ߨiЈ}R!i!8Α6w dB#`}IZy.:Vnm7Pӹ/`+*ƈ^,sp`Mc4H% 9LIAF芻jޞѕMp/ Myj:da*9Quj-e/crҍrd'lIs J N5&iWNn(zӒO3:$NPFmis?2Xt Z0Q}pH&L ǜ U8& A3dwI$ە0谊")\ç)ޘ˪,r3m(M|"(P<ʔ/ Qz /g2`)_Q#>+UkAX`b!LvA)ܲ1[ Rj uhoQoqb\C! ~x p Ό|3B݂KPeu{\nW9Z:gr:suTGv:Yi'䮬z" E7d)*Vdǜ"o.…Q c%n=ZT[c pK1E4{\m\-E|&S9:h|5I̊VcJ ZajM=8xh6=C@\u[cC1ArssG"5.;<ō8KQәCA>B9FZk[W@rץjܯo03}I"NB(w}G6z):c(bJTuf}xVp=˷>-Fا(J}O\@"0+LRY/SĈ*)'tIjd8}X |*-JPպ*B"yHr5@-} .W ]aEhz %lęm Nő|/?^w4)ְZIyF :^<<IP,uOvF7.dt~1cnSRD I*d3CmѲY!JZ^O'˱ WmHfd=-|z~JWۑHЗ@~yޝ|89?=Ԉ<ɒ::nS.@?%Eɇ㓶ݫJn^ }siX{KkZY_,si^ADCؾ1KgviGly3~8j>fٞ% $H]c{JJ=2N|+ c槸Gz5ko|TނۈZP0^OӰr5_#1O)N{Pv8ݙy:Ig@ƑNӘ[˄5`3*1hS1Q-9d֝ư-1!Diݳ! bYV\i,hnd6Difr.mߧ)\Md=fHHhۃz"MVEIMBPm ! jQ+EAoK!akDld$`N"^L ^'5jWIaMPl4 tU5DTZG#.!^~{~\LTLxg*z ~y0lEtK^= Iz2 ֒>cYu:ۨS;Z}iDž{ 霈)%~0R#j;Ǔu"S@NkdH=\YEy%-*;$ؗW`v)Yḷ9^ 8!d]b.I$^VK 2^ C9\Æ-n&8A22q6ZV<`SxIV\+^Ca1^4>`@j1Z(&r.Yy}R5}v6AR}j*>>jOv6 3#m[E"5 SXNkb(M*i֙R`8я<?[MSCoJ5- O<~ƛ5:i7G+Y C%q%u)psU]ey ~K0,T[vT϶y`Y'TcoGme+"j-60!SˋJrKs!:`#zsqt f2 T'.!X5kUĠ%^^I%[Pϵ1dZCNՖ$kzy~<&h-+vjl\ Aɵ^9{ྀʈoܘJ&_c(? :sHXw=5 7Je⥷pwXn*CayU7`z'?Pe7]/*nAO$(1121|~QtvNܞ饳ѳv$ x50ޓ|N"[JEةn4:)_YcEiww5DV}v!Py}i̲} t0 yҸ,^a;o7=gm6%Yq fA \ƿxi*rwtYX/ "f/[xob &&\7(MM`F']!'EPR<]g⩺ M?ʇ~K(NE틍5zfXZQY?"`< u5%L5;f8rp\5e%H]^ v2hVzrDd|P=G;F]c >(^4Q uMpUM55\Vs2eصA mýЊ 2_l>8,f9Ms"(uH',fؠ;kd%67,vclӁԏyr]!uq|ㄱQЯ ]z{~fðu|v7竖6ڑ}w<-𷁄wõנ!󌽍ps`t gb_z/b߸' ^i[x)j!CWQ}x2YS(t44(6Wf_4{u=l,~gX(zT#zkaCm0N n_NkoZÎn 锇Vd:=Hy_S| H"v#plA{e_y&j\qΠ7i%D:,Y_2)Ih4BL*/PKO_F %8tensorflow_federated/python/core/impl/remote_executor.pyYmo8_K>D\uw98o&]ݢ( h,i%*pfDɒKq{p8/ϼL%j&/*l{# IotވH\MJ8N!j>Sph]L<$83[gÿCZ?$U,[X0-b2aabɓPT[01'"])3vW$0l.>>'i4<5ejz>̇$ErG)suu`<B1cgi&RxK%͈Zy.K$ Uֲ.؋'l`e-FlKq2Orvs ް'`+F|rhGB4XZ"\J6%ID:,NċK,wRqE+GJ Ӑ,o%wBTRmZXa-8l` bG _ɳp0X) -}E3f Azcy,HޥIUa$M,Ufx8n+ۇ0_^")td/CyT2.Ax\ -`,]pf1 >Nf`1ŸY1{ (˜C Q?5kD10FZ?gtJDr||`mk3 X TA"^4n1tPA:$D!57&b5K6I@BQbtO*+<щ9kU ;v٩$=q~'-KBVR1uhn(>{ ;ma0KP$D\@@BTC {]AAZ ShDWA9Rڼ&Wi+(ܷVct6[Ֆy). :7BGs'/5dشw mRr֩1.9N~iM)r+n:615F NCC6:i ʝ(*:FܡæT[Mcd: *?ԺbWsM7MPtM{ua*Fr=Á>aCRe{906{_W;E#'זЪH0DqЍQ[k%8:ݛ  U<dž`l1 -`j52ϒc08#L*I&o˟~w̑:G몵l D67|m>hsә)}M9eCvq+M"ҵwa.ZVOTDhjVz|55ԍF`l4w#TZADdP$daGn#VW-h ˦3zOh#׭c7\zPE <6 Pm.w‡Dk$QS'R&&(kT˱Yx}fz<9 PnONlؚl?5j,ٲR[EMN7)!pWP2D0;.czQRӫ^|ë%[JBafd'IHGB-3z%c0;XVq4C_0إ_̧}.|.a{abfF!JKpɔy3!$Ƃ5rғƃʙOOp8u~2 RrKš%qmJm"(W΄ZUq;`5ic:fH7_ޔ ԏis$. ;s=+8rȅ.+"hŨ:  P(ĸK*,pQ"NPOE M&LD,˅ l}4^{10MJ]ehBe`~H$ps [[ Xq羰 2gKTޟjHN[r ]풡Jz-_ G{vPg18\tޝ\Ƶ?ϋ]D>:D O%wzԞy'doTF(g >.iHh{XoJ@ūGJHBC{ k89ҩg} {gh߱ R{jNɢrq[SZJEF~3^ GA84Us=w} Q_ufnlh3MzQNqmƫds D{$k=UPKOzk=tensorflow_federated/python/core/impl/set_default_executor.pyTN0+FJ%eCmE,:$H;v +zH{/9;!-03jo %3jE^X} a(}[nqYBTӈ6apFSwS֒`i(2?P. AW~^հc{Bm LƱ $pJ$Gh-6рBQ7>`j:4M26T:mųb5?'~Qh h[ MZ=q͒54\#լr-l4VEZzz$b ~Fx5&xk!Z 0[.nu\-Dg/nƀmovp>֙BvaԐS2)Ej-e8{b] JZ|$Vِtp_P:I !0hΩ녒8}89OIKxa@`z>a-{%K+= +?8*p1y@$$KmN%t4m)/rFsjtx=KW>eI8GSu"{&q>>tLt2knKxp$Rx2G?PKO%P^ ACtensorflow_federated/python/core/impl/tensorflow_deserialization.pyXMs8W`* ^=>ĿoB!V8F},#5QGFd&*L'r-Ꭸ-l:%ׅ7'NE^r|BZ+ E)h2X^ sD>YSm-oÊ wFDm:vJ29hO&8j_[d(39-KNS~{^Y(G?4_;%_\᫮E}"kld3kE&&ڽja֯ Zk?)¶;r ?[<(q z*"v(dØ? W-x8IJ4Ad'2qLG9|ͅмvv5遠bnJP+< WA R(HA#d`JP\5Ng'Wx~1Uet x{~>%YKwJFH,<0Ts2QpM\C'T\ֵ ҈N7BXY0Ou)XԮpB!'\5ur\5V]?VF7GlsATCw3%Bkלи6)\ CezOj97\O9JI0U0'-2HG2a7eD|UI}QI9tfD\؍#F q+8ZGCtyX 4 )yf S|f̣~ojn=1L29N$8)ѭ IL`TX8& kQLu}l9Bj+!1(a~(aS<}T_Q={8S EOHpg9 <Q#H vC>!^KّT `D-u=9cj+!Th~^U 1ֆ0.a^`{`Ρ5p+%IH(Nq2.d\~sZNxz9xzI`)ވ˾.C,oiVs!2%`WYOHMџЬ%7[X tĈm|#zX-\ LV%VA%yr7XBqr:䶸\WLz]/HԤ,tr I0!rVyga65ӄHعnTv#/Q޺ 73C TN,bZzs2ExLwq6vޔtfs;fw(MQ>W,骩qZ>馻ߡbG ݵ0Z_鉑)`*:6仡Ǚ:# qb[!m>Vat爈Abo}%Gȼ޺oZԌ Xiv~nVNP:={Ɋ` q1d-QYOTi,c*hf/p75!0ȅyw TC<][' GyZ5niFMnJր?8ޡQQv?GakO0[7tNl)&\~S5ܧ cFeQp7uĞ2g.Q]V([$槵uDA˅;O=fl{_+VlF<ߺ0]ӥpgu+W^Ix& bp!`5H5V -y7dvҠ,SEץC!;OiͿtg'@%<@Yy/JKhKWǓߐDCsw#eq7 WQeSUl1裘Ì[Ήf᪂7wkh%;d^APKOb(9Atensorflow_federated/python/core/impl/tensorflow_serialization.py[oH )ЏٹusgVN ZdKbsI+`G7٤<&(vuUuկ^=GeVTBsQn.;8t5rUvĭ*6/r/TT*.jXbltp^f O~,(e_26Ӆ8N_8t?ZnE+Q[$2+YY!.LZ6!Hy%m m'dE ӟUUǛ&m87˫1ySZa?̀%09ˍFȥQ[ɪXՋj#*if+몣-8ӛCfz3醴~s+]~}qu;ׯų|{!..~^= m dzT)*F R%"K@bY˥K}LRuf4-<[gɎP*AVL?Z`]xkNjc\ٹ9h(fE[YW]Vuv|ߖ0 FZQ-x=(*tt ([ON5ȳmXtrafP|5tGZ:h-RV2Ҫ@Z!/o!R|Iy& |%ėFNmR-PJϳ"?ǎz e9:?g/{$ǏIUܭ\+,-~ݹr=3+](sXj`=.q, %@T2Q+#0dahx pHं$*-(Tyi9R'LxtAHc QVW G#=Ľ5 ۺUW;1=*WkUT^sxșUx.0r[#0E ʐ2 L:d,jqKw#°4$ hRȏ!nrQƓ,^:`-0HU&zT) g\hV}E:NG Im !.9(4uV-"}6vLeGɁGAWMC+sSv2NYtTnfx#Zb$4mH\R>G`(QB3jXDzgc6XAWDfsn(C7rk/:jĕJ0s<Y|֦h m53#9 P'HG+f iA`bwAbXcph.P,ٲEd BEa%@/9SFK܁;Ndc\Ѩ{;jsWq1PAkUD.1 =_r 3@#&sZ}y'(tc|5ڗB[# GbZD "y{*0OEјl @~Y`HMa0PVKhYDX鍺G,h? (Q:tH=S:29 ~$:e~8Qg5Zb)%H0>fEBI MSb`|cנ k '025f16ѯ)Ȧ5OB#kc+T?^z97iHD5 ) #2\ d)ҁ%ot=HX*@Aua\O`gֵ8.rYQ6EBz5+`?GF  ?GDvU[20_eO\ZdU4=ɖ\Ѱ-13dXamЍDd>Ȇ.*<IH%T1Ñ:FpWq]ﰣ~(&s>ӞSmIEdJ5LNIt_NGֶdkx`J2E3t\-؄&&Q + l_s-w(ϫ:v"V kyMm\檪(:B2]0 ED QMItwGɏ1>ĽVR1 HBYP?wE(؋ґ9*? }#3tP J: d( {9#^` uÌ;H:0 iQ`m|$&qz px{׾? QJWd0r k^@TW?33q$z7g}fUǃ{kУʍ{~Y|oI%6.^Pa7ĘM >@yQrlJ}AyN6 f%~8kw2ܥ<M3kL-B:l6j3m#!y>=O_滒h- C.T%ɔ| i/xcNmAb)uF,[< z|q>O<%|&"?%L/f'" &kNR@x$Riy<Ԟ MヌPbEm$p-*fxaYqIٗ`,o:G24]A%_\MGRNl+ь*hSKy{0*ȰT8*PKOĦ&a=tensorflow_federated/python/core/impl/transformation_utils.py=ksƵ+&Hi+:DJ34C$(X, Y'|N^$ݳgϞ=]|\T=wuOճzw/~7U7w+]7ߔ&_MkuAF>^.VvW-te+GL_Fu}y @x;UU9(e׫|תRz+Zhhh zf:;kSYK].>a??cCUZ&GW40v*[eFeM~hnJכ!kr.tˮ eЃI ^Y>Vϯ?QO_OƏo}Í^ ,iJH[ꢺ(PAóMSo|ڮsĶnO.*s{ٺ/V+B__WuYVGE7m]AmP7.^l f;SKhh1h[o9v̪z֝ݮ q>RWh2}<Έvnc,\̗ezֹ]n=L)&ރ=b{pՁ8Ge{#/›]t[]^ 79t"3 "!K~;\ 7. )ݢ0V:$`| *M{笜ƅXNx$%QV3ch009h#aNV6y~1DL;[)#0'0&8k[Ewoݵ8orH1߉$$lASlH-r@< 5?@I12> 6"0mS#_ⱬ'K Xw%lZZBXaIړdZ!@Le`Ö5 uri| @6d>oRsK8'<%mu l{&ɸT}h3Q kfut,I|Gy ЛXEyנ+[VfQ@zČOڎ #NJ њ}8`N=xӁ_em6yfuPP4#|o`k`2Em9&S$c׹ؚN]ȿs5堽43]D`ȅ {AT"@3˯Q뉕4%PţvbShf K7ڢ,`W9^QJĐzHC#meqȁӹ%:;\&q3GY^KO^v{h7 7QԆDIrCx75)NqCN#-nPz]k anNG⟳rYi:|*EeӥTb<7tsQ%QDu4Y2'c"g!şcK"xң{4c iQҩA4eR-~%ǖPoގf쀍fa==s4qV 0F L8s%]]"86v٥XB5LQL0CVBtC%A&=f&1.CwN.ν/p[Z\n`4pb_R:GQu!`@9q/VEUOlg\AHߖ2+Pkdv  `kq=H }~DXg d?E1[%p6o 2#E3)g[G&p&6?Ӕ} +jD oy ›%|WS?ZEmr#Q"oUГ$Xh`3IcvP2J l1[b֩nACM%b"iJ{jmGF uRsc(D4QOpN'CH6 fg}kIP~PS`Zn.)wd2 'AA,T"/@0h,_ Cʣ8:A}m;Yوp@3? d֠. 3a=?o<Ϫ}2B8c@Cߛ$Fr2*lD y*f̌B͉dpH.=ؠhӹIa[oR Xzu m=yOD@qIC}q/J @u|e="!bNo4;m$@\DY+ 8~i+hT\bF6Թ gNև?ҹH2mzdޭC3@A9<_%Og~Dzs,ENd~=%U"yz$pP|#Rsj2>A#Em\c3[7nNA9B#Pu;7GcTd-IK\wCl{n^N &ٖ9h2-*\S)f&Km!'?$/%1v._j|% ^WpDelUfZ{q_L9WaIĤ2f9E ~V 0ñM yb̂b Ixi뛩fEG(v5 5&9=H)ݠϐy#X* Y#3P3kVw[C2ū8X$q6ߙ3gmRv7|Cm>PC Q:f<J'aܜ; l ռ)42h[cn#c va-ЉAffI4R'Dvix̐"l꬗ u@8 *64]W|qƃ7VG [{ƦB)1]Jpsoe:cDqY?@Ӣ=X氅+ʓXrXS"`)QVjAz?ݤ1G  =8gшrsh/|H?:6G*{-9M% OjXm#􀠸5H +ӜVR][zlOQ]Xp"3g2g;MNKbyxЍŒAʵB#O׈՛b=AM.o͒'+dW?iZnz=џ`sR@H<杕Q .oف4 k@@laNyCU,|rh:lk-9^aEu0D-hh/dd 2Z%-|HDK`Wuɢ0 R^FF D HK8VxFi7M+` p;68;cv<_՛H@^Evܷ*ռy+N HAo7/+Ej@rA>Hhv|4,:Ɲ 6ܤI;_X5LS`S*Ɛ->n s}V9m͡N'{+⯤}~|B]^*84w847xmeCuIL* e~lu <)`mQ:n9+~GՀ'a^F;-w`>*kK;G-c6'hr> ZhK%=zgнUEETGEFrh-(=WwĶ`6& hGo}TRjf5%9 |3OB62 /o]RP]hͥLQ =Aw`75XrhZm ggQK>W1riRGgEk/b_u3gSL i;% vOAWklgMEXV9> = \^z#Ѣ^sVP'tj9R Mh]uΰ12_/L8 kט*1l9S7S&c+Os`pa8] h#uE6u 2x)f x̋l:6e HJk*z20FP`pK{@Ba$={[/t/P1T{"H)yR C.$&sW[ ""`9A:7-_^9AqivFVaOɑq~-(qFeT|[G8%E*Q0M0ixO0xd o*)-,w2EdY0x!rum!-9.-k8;q]'bP43/E߼=j_O𨬃QhaiDc'VDFH-盷"́/2w1fOiA 4{vڞ=hRZ/_}Ǚ qDjsڃ2j Nf-$^| B,&_Ɂ-wa`74i4:ڿwΠah?#^IEgtwT-V|I9qQ*sᣔQ oME^ plPUjChbh/%b2GCv|Pmcn v ADŽd8Q|ˀm#]Hfռw- kM2goBeV4Օc6 &XTEAZp?>>"+Ic=AdȜ1㩗LZ,/:B;ƶ3 vncG(Ïe{3-4sa&xra聎|›Q| a'}p@7oc`8R5ut+c*R[s©O_e%o.-H1煷R!`_AQ\ ;ȡ?e[a@K x2Yy X* ѽ#(VԘkK<> y>m. j=h!F.+ah2y;Bet%u$fWxE~"; 9an]4K:8yh؋$g-ԫ<э)p bow`B1HmBll_matN,.95D1Q:D۪ /0! +:[wM*p<$d? bGsXd[e:'Bw;?"|q3b]Y_닄)1p1x$IR)- DFY1@=9IE2.ZCk M7TrI'W1mj)!> E9!u;Z{c^<&5Jb>ґ2\CݠsvjtPbv )'6:G"J2! 1 /ڇ 1>?@@9B~ |y>9=b29 bAoSL&)D,&fgEuݎ=4+&#+tXxff&իEtPt#3k!no+8Ij{R릀[JYy)Sȹ'VOu3FC[$31KV~n52xwq9~wt܅ '@CPAQxjFf(By׻DE}ûC w\ɓV3d8bw`mpS-@Ų-zm;J`1bhkmA7fPO H=7R inOGs 8¾T_zZw-7΁ O#k$xk5y#oŴ5!9cdA6&r7ٮaʅ'XaurxԎ$|O_oCVVz`niEPUo٫nl!n̴wBꁾLwM&mE)Xx$avH3۫Ջ^n2[l{{smUp^ 1C< nAp(\h;Ŷ/<  ceZJpUiY4_ >';7ko3x{QL:p>ʖ]xxH樣:a07}1G6Tm-_:'2i7.v_{b΍x0urˤ*M > j[W(_vG$E\:Ih]g蛓TC⏟h&24HuRz1TJ2(Q`9vsqg1 +-+8B"|dI!//L<Ek;HXjj ~d TuLt~q(G0w_C߲xG[O%d__1/9]/*rO \<{SVZJ:#@*0aShs?0:kS{'C}-:`g{ްWTQ?$҉Ɓw\)6*ŁLbm&ջ~Ĝ#a☕x:& hD2 i@UM,AR|?b(w2oKɖgS6ar_-uKjGUQa:Y{EȽw,ğ_Qlj[Va[o VeBpD&Əv}+HgEdڤueRQL禰+| W_a^ejwmj0QQa3+[svgY:x6#/%ty|_;Lqx?qGY&id%^.\Jlj6|ZDzYWW _r]l g <.-W*V4Dy/oŰ*cE7EQв1qI2$qE6{g9 [+ _/?7w=23 >oK&!ӵT}sկN}itMdh<=fY_02Kxc-J=_.,|\)3 > Ҥbu0 ffn}$KMoڨYE]".vZ0 k&NwKqQ/ ~[{eKJNK;eb`8_͂QXTL` lLuE+3Kk2*"n $L"$SeՐ[KVtБЀŮ֋tru?˨q.~Q؊]Uչ5e cΫ=p9_\ȕ¤E蚮KfՕ'}ք15:ls-!oŠkMajh Y4zp_}d@cBzK: 5hi6Xa d':0c du_9։F״@I[Q+*>U| .~+Irzxv_ƞh]Iآ%paTZ gI+ZzV,/̸KX0/'l0Co8}O0EKǮCt58_|8 7sL"zFQ'f)a3؋M>'+>Is1\&г%O+['P6G=9+f޹D>1.0rKLO=Bwu0-su3-gak{׬_c!1///vvbY`ʼB8*X^d0cA Md_!~g~wڳq6&z3Hx *n/W7ba~Mm_ybpt@v~G3 %9 4~H $& &zFIG 8PKO,: :`8tensorflow_federated/python/core/impl/transformations.py}kwƒw ldf"e̬Y[I] 1$:'$ ɾ3:{Ec<ݻ7goxv~ Ut9{8JV0Lr.@2E:&K$$qXPN*]M|DWmR0h7iYzK7iMcR_|qme\q^H7ҥh3'LR`L+a2&NWzS&)Τ(UŦf6E~_!|#uZ'e]Y{Ln03JZ~e5J o ȧ@.1΋|{SliYgɃ`z z,>tP&)RZSufÀ :+<"X.d.#N7u= PwУTP4[γbaqҧuQn⣐ARY!FG(BBrPE3,"_  BMlqoa|1H*WѲϒDтS5i[iqMZ59_[(0D/iEj1Mz%:y#ߦE3pUYd7dK۠@d |d[0EŠB%yҷE33Tb&'U ?NyUui҈ـU6iF?}5 2_4 ɹ=)L@ФXi9ʬ%]&b^@[14\dϐaliYQtVnY LU/'࿶~߲ +EAv.GGޒEх%dU­V܀ˬT۬tNH!aI:DAXxymj_NTiaQXOӿ A X j #ev4o˸>1d&{5(2"&)Vy}ž(2|FQ :.ayֵ 90E‚gO<%\h&h%U0]0(dUvhq>WeZ 5 OYT1G"`4'7u<+ԕ[%5DȆJm]lb//*2ɖWB'oIf$i6!lbl),f4Osl6N35'UՉ@^Ru&WY13s `] tb.R+:سqG`*NQ-jA 65,t\.dm(8[E, {=_k.(޲tHX /sͦԶ(nm#*^9.73J/6%ͱIXsbkʹ&-=rs&]^?B ? zJV4׌&clcENKow5>&nw3#{p'i8R }qlћ1[ 3|3 -P|Z8%ԎZtx$W`Zr6gU!h{{)]bH+Ŷf셺*pdYq7Z+` pޒTجBj Vq |lgQr {6Q0?ȌdHJ/pKWMɞ9Jg_# h|5z o1 waCa# !i%/l)k̤m@Z8Җ焄w5 d]p uuUfQ/$٢Y'U5N&j$.er?@uŕ#~äJGY"oQƺ:Cdx;B6ӇpqOZ#BDľCt vUŦ\$}ܯ0?w ԻQQOt:7̭ 9?L,e9 CֵL>E 왱棑&*a[f oTUAھ7wlؘ>v ?Ƹv+U\1)_M.!qC4ܠf6KEGo ,5% [ۻy;AӇm+$i;u7?*}6qBhkȪ>v}z[as^棄T!`k%GgqPu mSї8VvS!#}<@7‡e5 J$^1wn v="3C'33h_ Y"$ 3 lCDJ g/srө#{vO6hZ$DF 'W{l99i?g!zld Pm4S#]:nL:vLxMąX[hB{KN~wNPw'@Ǣ9wr!G|rUkė utX6PU5h+I N( ZE `{ jfWE+ټE^QBõ#{m)L`hv@XbmGL'dR>GUQX?ϒ$svUk@$UԖ;*w] <"!fcMu|I?R3H5;C>)QJ2GMUj1CZ?rGp+ pnvUQ1p!th]6dlh2 -'X~ Y 4ҁy%j.H#m &))&%߱EQݎ](;_XłSS;ϒ(/q!}Md2 5n$  Pު*eX˯H)I2Nijđ^V5 ؈@%Vf33,7Z}SBκ*i K ]-ީrtߧ(RdIy"xɩu2R~ EȟJ?ᙙyV> '(@C\>}ϖ ~eRm&8*OK=ݩB,l/H-|*50»tsp7p"-_r~R)ȏT &V.&ɸY›}V%vч|W"wr豼OcDl0CY}fݏmGνGwC`>*AOS+) qyB]~t'ic >Ɇp*|Z o<#_^\Bo.it[Itk@sl;{88-bYrq3>˧t OX,~FOVٕHNˠ/-#qN^x?dSmgė ¶0>kÊw@yGj[0h >0mHp;ep BLHzKox7ى4xPYQ^HG"+ǹ-̈oވ Gf­\3D"Z+X+N웠B`C$NIv*М*F+8nW A;i(H![w&/vNȞL;%GKTdq>t6P\[Z_VP}@_Ţ,>u O^ -мk$=F&p93 r쀱J|!}-̎rcƑ2qڊ 8&%P-y@tֺh,*['v(sG-=ͳKݪנ /wl&t)7x<Hߙ`|_—ߏc׎VŸ6t=|iP'Qq27 7.W51k-Hx 6ѺCk7:O۾ O^fFm{5m ,^-_l0jwбп9h?.GߏF=-uZ`T X'|rBC65M]TgUXP02H;q,Q(>CBtD@a=s&y|Z߿(F:)uK}X$j槟ޝ nû'?o{@f8;SƸCapd$XCq=&ZXN:1xok'؍z/).5j8JczU@'_aMgf 7M|FC=D- jGI .,{2|DPu|x coY-=hOT@/n3eg,p !q3zJN4չf FxZ|I'&1ȫHV8{94%TV4I$N"[<-]` kG'`9Tt&uq羛FQM~2\0,A;\nN'zcyca-Oɼҡ 2&2VzvF9k5^1N l3i#[#L.v{\%$[;I$?:V8 2$P_r|);o#v-e4G{1Cލ~=$;‰:7 |tY6}vj=C3Ǔjqa>.NJ7XA ^Wϫ*ќO.+L}<ʰ,ZTKz^]]5Gz8= |y;Zt\l?p hkzXEJhwyuQ_s iT?xCDGK^UQ3MHM/k p&:w$ BT؆[&\ UU ucU{9[L ː9y^MfȦ-B+'Ѩu8sh7VMzfNADia /<Խ ^եL0d?JBcHDmws?B!C_=*}"\ ݒ j*bt"Uɫ3ʐ~Z٪u-K@i3JD'j0-W{{ue 21Yx|J 1Z^8h2:[Ģ^5h,pzgRn3`]ZOO^_N^(hyyD_$LCJvюox:xi.mt>w"7J~\Y]] N'sZ5"=7_ډ|$yRHDvRb Xͪ:ytS?qJ kk&V<aK'bΝ+&\xo;KAbgLTlu)GU{U#v%B!tp˫n^|k=F|:B2ے KǭTHP !/AqU=\ zriߺm0Zm?)MJSpdz䲙 i/Yr͞:DI\؄!0M#7Zw'vW{ez!0hxkVb~E  qqF'y7%?s8tq,jE=(o>Ga!2^T $  C0Y9GV@`ût%mfVU0uت6{k-/z:}\SG-ۚ3M<8-L&kcqUzY6p_x#6u1n?+Z(RH~ B?@TmUBYz^Hd7r3Jn Q7i zU+:hnUmn48I"QƃznrP`/\a\} 6s(WR$6Y&(`dU甓c<3qIhjx e^DEN#Vhkl.[: \B`ܟ6Aw`l:TWTg pfqtXY)VOK`${BW.ZY~e_3٨I.6(9uUQʊ;yѨ,uLE+J8?4Sj6~4*Ĩ@8{X$5*kkדX51$:5V5`@UJ=ߛ {$ "-B"o+H=4Ŧ4Ҡ#=_ )pbn`xe :2ނ+BΟՀu\s`Ͳtbp;YZo?q"CXgkS A9Kc _V^wr JdD6%85 s=5k) k k3sz-)K[@v\OԻЍdnLI H@( tytsJp8(O% ёDxdoyX&O1IeK@:r*(Bݗlΰ[)/ZE7r Y+j L"&0lJ4;P.DQKvRSK/ 1Vvsl2oOߌPwds؂!0RtMk_0NLẔb(.&9-ͦސOJyq5{>q|k4 F3'd>aHPߪOgVQQە7#4ㄲJA4닻:ժ1 6Lh҅(]NP|,6WKo7 (ZBl300p멟 E-eu%ŇQ1/QL,@1H-W$J@!~E U"=+K(1/ aZf3Ie׺L}z_U\I\f۝W=XMD0뚥Hm)=10 rFYOWFq[MW\7UvB)0~( Eh-q Rw,P@+xܽv~.M.\{6eB5{{td^-~! J9zi5k%ȫ W&2l)gԡ jPLr^6^a,ƪaς%gpa"u@!@x }[VJx(iᆌ2dJYkB-!b0N7MVbmB>%}ۗ*_g=JZhZp+˻w5'LiFIu "%I#RgT|DLE:D0M bbk-X=m"mKA+e3RR~rej` :80㨠*7؀1zaMX"'B +nڵ)bRV}ԴRBr϶L y!F4[Tb_քssF۠}etZ"j ;͚겋#`$^%g!u nXXmk X?IZ^ֆűR:GՒ/lYkxJ oJxD(F *cZjс̕+TF$xO+aZA8b[zڔp4pՌr2 6NZD#b'(uM³DYAӆ*〘>FfE)ߎrn3u['awCmHNۑ[@)|NiںǜˏXW0M! ycͥyPHԂ{\,{GM`"tm]r>_Îlo]%p,c\dz9txřΏf`m`EDJbB;L$%-/C;9W}X_oQTH<1I 70'[OyDt`hUyb ңD` )Cwziگ5BB^ "pӥ;Xd3LȻPbe*0)[.ݵbUbBm]Ë hR4re0$V|/n#5 X-t@N {B+.e7nat\}91@>.jwavo0yA2QQo< |mG5J?2.Xvu:*hԅNJƍ_U8{KɺXS[A`֑P.P!zatk2S6b D\&3$Ւ%(^0Ɣ/Tu+VƐP8͑~::5IEa_ePd?KTU"j+96:0%52g9E7Ns"I5n(CJHǰ )XjToO3FUVi,P:JEiW*RŠ1 Vɝue{b+-K< Kυ S<(y0IxFNXiY|s;ys[g%QB BNM&)yo7=zZi0MXⵑ;> uk . ?IdD/ЩWiijrZ M6/DT6x /Z4gMƞ ;J_N"ˋf].ukX8wʪ&]'栓ڊʢm;ͷ^ u$e1R5ۀ+˵x m2ur bJpWŲB7R:!~k,34ឭD{!<+Oly377DՍ]4@UFosuOhSs+u7%*F'f׳T!_rSzvK&l%Y9F IV 8qd ,Vէ2qtj]Z]*3.8d(8ISy{// %KəıIS#N;\)KC|K:YE@mVMj3 FWs%zʙną, ƃ$,VyO[*':4W}wy9Nߜ _O^rhT4 Ni-ѝXCO~U&} @6VeheXЫyhQptl[fg?UאƐJ4>j:/:nqb'sۃK%˥oϓ}mE~=xhdYֳ}L [5mWBO 1*zić];֎0mIZ0 0QW;QG!=)A,.ÙBuR+Әa}walB s+O_FGяT"ʒ+f9e|/.IѸK90pon!ƅ0Vw(nBBxZ;=h˦!s?#$̂$ĝTpt?0wx`myKmLldħF1auOө8}=fHӻ޻sTv1>@]a{t /eDf_DA-kMATN2;#+)P!BB(J09y[_c"2]Ԫh~s+rGKb8$q!Q\NO[δ,4' \9*T$:-RJ]1K8kcT]eлT4kPV7 cQFIZ جX۔Tg#('r?].=uo$D5YԏTu3[_ofslg|sxr@Â& A]avc\abQ.[ T-GPk/j>Tr FIyǒ]8T/{Gs.{ yk\XK3Q I&\EqO褏_R8w)ΪpjxL:O&^ae8? E!.e^/O$ǪgD$zOM5)u \+y|-tMtuB4߼=?= K-T_6 xyT)e; 8jgf6NGU (ĹD:%'sQ+h7 /D huJ*KD&Smmg ꫸STYrKJJSizp6OjO뉁pP]3nܧKZR.zd01yxAl`Ɇ"٧` em)>/U2-P8.k V5h.%[^ͼF%?8W8QW'q#k /@KgrvETd#f0#M>=֦ ^4tensorflow_federated/python/core/impl/transforming_executor.pyVKs6 W`=*=ԝ=8{'-%A2'Td[~lXNň0Oο-y2[N0~gtk:R( 'Wb@jB,nˇqñViҍ^~-W:y` a%a80(0&lw) #bK (f0љA0&3QGn7Kif PeMi4HZnFVNU?GnЊveE]p-M]m>X 'Xn:B4 VmpP`Qg Zax۠mj rq=v#81)0"CUwC8'3X嗛! +I_+-XӐRDI2HNqCJgdJ4m 0aAL0z3SOb)њiGt;@Zq5+)9 l͸ Q(/djϽpXɘVy"t 7 S֚@q4"ڥ pGU7ޏ{b h۟n%9RqۨN:GHlYv itšA6G}P`F:jСo>H:s>}3Dpa?PKO#G :tensorflow_federated/python/core/impl/type_constructors.pyVQo6~ׯ88/(]2dkQ͵Qarb$ZlȑTUߑ-J$}$^+ } `vѻŶ;ϟSɎBBK-ԌftC1tQ)JfݱciU:L$_[4%<ڥ3"D{rR4E`Si䌔9ۦAkC0`Ļ<qog:$m(7.L52v9SA?+DB9Y#MNj VQ\33Eaj(l6+SH>@H h rFx ƻ8ysJ]XD$.~8x7h~nC?Je#Ifu+g{f!Fo(ʼ +! ܖ+kd6s$!By^ҴLhZ&BZp8m?a5֥BCGnƹ@ѽac0b`Q yކMB7;ՒGb-(r~Edҡu8eU뗰CHmMb4g2?DGkO^3A.'7bOqTf΅ ]>vY۔5mY`z+vӥ*bFrc/6ËX.T"L크Y;(VA?4PD$ s}׆6$ xD!E*z֞Ax.vFOnاWx:OUvbi!Y0d̞^Q/62wXLV!bGQ[ع7NW7PKOBDh;tensorflow_federated/python/core/impl/type_serialization.pyX[o"9~W$h+Vb:mz[( RU]a=>v]"tFs~;$L =L~2=*xsa=OT<p $C;$HY`i57C'WZއ70W*+J8 bvD4GBVDk eF%ka A37/B Cj)~V2~Ƥ26jw9J}i~6 -&/Iĵ R4hVhf xg5nZń)R6B%VE+7`XW9LWd>Q/ :y2[L>> =d}:X{hq95S[F]vv݁XhMmPJ$ba#" פAs%X$mr9KsLQHU2rLz"J#t߻6UXS g֛Q/y[F7ȪS'#G$V11^,HL,%mPN.a˭ bks 3FmF.$@*'5BUaK RP޳*L!غp#bmq&n5ɘ;ti(VD񧦁fY~PyF9c-&Xc=76q\: WL冡6tf~眽/sEl)6BJ&%&-5RPaoXSYv8~qٷCQTm{H:{\܏cvVK/\85de&gwf9@>ZV_Y2bvڅin6q"2哝OZ&`ԮOc)NdM), ZpKe+j7o$j eS80rN  pT^ G%Q95(1ͤ$W K[X9tU U ~`u}{PT}M!hgnUTArZ'w92pu,/M`s?kۆK5}t xSepqsiv60vչ ˞ JsB;-ct<ZMsԄjv6-!^)3~]|hT0"HZq k|8+{Su;W.T~!^EYoX҆O$h哬`^r͔<^u&]69tjJ9Ȕ7]08QŢhϢ8Zp9mjVEsa.w֯ nu,*[hz?i ڼs:}|VRAqݕ$9F{J7f*5Ѩ|(iw^G*$t N37i |P.NxxBU,_ˏ k?s1t]˞*SMJ=ʎmxWP[儣' Z7t$輕5T=.\r i;- 0Gū @#_{=I2<5TQY$l n_;88Bh<\ğNoE; |Kz%PGSV߫\ZDp Uݮܜhai ةSXxMz?OUs(A?YH.= _ p/WvŊbPKOrFP203tensorflow_federated/python/core/impl/type_utils.py}sF+qՉL\Vy٩XԖOEB$((~5djUDttt_]8n:翻~[)ç2˪(2џm[H$mr>jO<2TwnN˛L5k'н]bs wS" Ӳ*jݶN3<lwL9v[ͫ>7.Mdm ت*[3Ѥi}39% Pk!*|MxZP2NE%M"d2@7997B?ȆUYmZyZo8c% tDjpp50N+]#v5p@ =a5`~T7e_ XLQiJVi&M6Snv e&ks: gJ2e[A[Eu./@ P&HYQ 7 K$)L'<2kP4Qt&eVMUlyqok l|&79MxNU|/oYP3xɲgE S7UtP@vƴ>J.~v|ǧOz7irVA l2s$ e( (CYm@bBVoΰoť׮g9HZ_WRqOglNNi6fȔG|1Li|t>i;{3дAM\X9Pf XVҟMΫ] x45v;fߗТ RKZ=ǩ-Q&$0&s]^weLteJHlx64ƳA`OhtV:gHMv lr j~IEU.|`xX2w $&1l)V~۱g,^el5{vȢ1ΘvyJUe`-+ HLeF[bB8 8 Ewi4C6+Wckݪ%7}^IKTǃu#L3{ sxS5- cN`` A @?Iһ*_% H{Ah@gs &m݅8B5xh8#;}Aޖa.:۠nsokq*<)yN`]Ϗޤ^Ѹbs֔S8Ŋ54 *πBɧTՑ'-,FӘ &4ybG |9l !Oj={ ڣHϿLş#(1$FY\B°Ͼ_?VD)ҪOet*>݂RnF^/n j@[8; YZ/AnmFc4 qq=YT4`t\x5A2Tw:K-eB 5j[4JaQx=S{w.tVycP xt)-G|,28ͷ{ <ۓF՚ѢzmUXI3)Nq}sS6FrU6Yk-!@}o`C qR`;hsr5g/[:TRNm=&G O2D)eMF#WU=+ے{f9CZG0.G_=YhVe vUk.< 3}:g Up\=Wnhῂ4ZZphzjp".#[ur ƖTMTJE$UE{?yc*7xޟKhOW| ,+ûdgǯb VDKV-AU9=i5M\Vd)B{"jm+ꇖ1GJ8quywc8E 9j7 CQ~sI+YDo@smv5Jt1GZ0 Fe>';NH阩\4 z ԝ#]l3H7ڊFbd2EZ4Eйy{UȶӐGET2ҕ4e" ۖqwl~WZkuE5[|A]~Hx]!;><)E0k*w e0;SYwu|GZ$g?fHtn&(`"xH-# WԜ#|py3 jM]GM"t`83-aM2D"_x#8D&ͪWĢ/ƑF¿&1Dn﯁{ljqrPL᪃ YA*T 蠽^iA=^";&цPQ OF|7M?>ߑ;?q7ip2|%y%m2j&C8E4:\Xd<4Ԇ'4 Z%lv-9$%Ho->٢a5Gx[YX,jj.U{YQٯa=T6IѢc*Ku$ ƎM$GlҭuoSUGcP\jA1cIݠ euw[Nd w ,e˦4en.I& Y\6|,E)N4?|0Tb^nEjfgΕ|q!~*(ڃEόǙ`\\8VP'ݫ&$$o29<ԲaN;ݺgeKOW7F#wI.oksiLnHkFYH14 {+fQM݈J׉ƌne{8&N#:/h% LݖQiiWt)FI l[_O)IjBRS577PS$[:id\Taۿ=x1KH9WrFIKI6Z2Tv)E<iZ1}ɇ Fslat+Z?.5SdƼddt®YpN"O iZJ Wڦ/Hc{PKg?g!165N?gb\2l$O}OtX 59氍h,8QxX~0,m,Bez{Fu, L6~J"JfY$D8fORQhQ}gyɸ!n ˁsy7z 8h|K(#NɠHod2K\]LFikYFT.+:mQlCzਊfU_]:tq+:Ө/tsvOtGp{-$Mf!qTI1A4!xe,zI3ꌇ<>$ ta(3iGŊBXA$pa[A+S%\qAH&%fK][ .\6*{o@be#TP-b1\UU1^,Pa&=iEBקtCoi=]Ŋӫ,7'(d3х.MF}Zi ;O^\j4 ξ Ep5akOU'Խ.c˓o0@%hu~XSغtՅb՜:eՇq\U=9d0#wJlnDO?.b? { yKtr<zTO@G iRDsepˑwF{Y5?`/EdJ׏vi|,i٠0]oI JF&m.{yuFNf5p`1\ڏ͟b0-f$c0[Q~p- u,f׳p tb-nc9Clqn CȊFBWr=4=|OMXHp-/WWꩊ|UI^e3~BDO 4$A0]Ej㊲mS2G̓cpgʼn=(xOKZXƷz%h&Lzu%N(lӁpxz>}Ta8[ f2]Qϙ).6_=.S.bח_U4yO&lb ߳3$]I+8qiI]Q4*5\rW{ cI+u Ѯ~Gq˸JPDƚ.~` pT3lʦ/k4n:,IWvUiġt r8ULD^gkpف|̀,J/1˗Z0Vs#ᤐN.a->FxDt,=1@4LIBǾMG*h;[У4_W(vY mUa}g!3{f,HΊZSJGr,y_>HG).bCJ>,iL5tI;H)&w|JB? _?dat;+\i_iT:"]P 2Gg}ƌsqDo* CIƚ~_v*U^/% 1'PwE!Ŝ:A(J"C 4>fL'5@2`:UEC xT/7DI=~%$eJ'uFe.󥼯i^ڑ K,n:ہNJxCL˔UN4/> ըRs䲱9O /U?>A rwכ01|T]#]5=c5>C>6CV;] %H4ʦN٦ˏ Rm8^UwyW/.L&QW_g]F!:$\Wwf^]EX:G=} G'o 9K }cξSXPU&xBFb "@%Ct98yAT ©NX7 RIKDTJlr*RF Y̖sƌn.(U~>lS|k0ק1?þ|]`|U`AdR%fiYac5k;MmRJ'JW9 Z|1PL!H,f`b .^~2,`7|K3EȥڃswZ]fopacfv*'Vo׍2΃5ծ|r<  1\ b,- q M jgŨsg'^2UO&D7> my1Whq.goh3g*H0W 8f!x9O;Mo]B)1 oD34+׃Wgfj:YH4☧%ꥄftf)/Tbm%S%F@Hţdl/C,]q1^ `} `a¢TDZc\G)s\D3% 6Zm*";Y[xIxdh &c[l ezHމ 0c[h>WZ_~aQ8 Z~aB'Oi # nKձuU# Nu5'=M:/b!o`7:mna)Գ#EWULk24fOL]O8r 2s@l,Fus0I0:Wr_+ˢ_gsk?tEvCH䒱]\U-; R9Lj+HWO9FHu6&N/`_NR,<%0q !+?i FQ.Հ(C (YuC:2/>Ш]W7N\*{%>?kmI3A*_AvN-W8` ưRP^N ;:e1I$|zTGqYA_eCѻeϿ!Xi$/r,3<ΣwnQv|"sIy}H [\;lb"$Ł}u"CMU>^Ÿ1A}J?wO,wl{&Ũ=c 2Ns2ЂU6\zbCC?lG ?0 vW?`!\BY DaT" r{6:7!'rKqbt/{'E#kϿop CzTc_ C>^z,as*oF;QǜbG 힊('!< D@T"h#3q%ǺwȈ_{Ե;D6OPW,tC;?>u2E2:]^LXРaP&V9"z] xՈ6e->t${} CX`紆0?(IΨqKurX.TrO鲆_`ŋz5Ňi z\|V1י.Qf},L ^ӓoFx4gDFЎph.^bywGerl#,\vpLq{/eX5_ٟ.k ]^]&t5Bܵ9}BlкÆb:fzΞ-@ ԱZaR!֒(қِCb:sT{dEa+sn0rDLֵ?c-zZ?dk)U(˝#Q3=EnoNv_BNV (ǖL^u}:yA1%µWvd[*#R Q>`H)Jcz!N!JDH}G'ȅ^8xڏh-E" 7Q(j2zz7? AUX (nNĒCk|ݝ(Y} s,w't=j>zu{yeol y7-00F("\}e%!W!lk 0#gޗcE~eK?yz[@{Q*=\'֫a8/T~Nm`Mz-=fQ!%H I_ A|k#0^ ;U2C*F7yKZ21-ĤTMkhW83S#v>C\.2yz%"+QBF1Wr&ROdH3Ƽq̚rעigDA(誝L9N^PB@*B!.0jJ"llT VԤ?[(GȘjz8h{f )o%[wf%JKNdX^Le;KlJn{kzKQ|b]Z=ÑTZrr5g7˾5DO⦌̀#3 _pWA6*5஥7~%mKD'ʏeu/޷sr=i081ı$ /{eӾ&_EG_XQ4݆!hյE,^l*L?HzK9p nz`KS[b8*&DUC Sk&i/Pe&|ʒk Wtp#` Hn+ԥ; geJ*QUHuV=Ersmu/ ,x\, ]sk08ݏ(k኏AYX9WYً߾Żx;(΀dD6El"EvBHIo c~9A@K)Mu~c4J32_RM1 &nj}m&•^uRzܘ:rm?6/ՏL=|~6{[6`gR]YWsLw+m/gT/Oo}Gۓη5Ȯ})傘_>k Ɗ{`ܛ[^h;ۖҒd x[Ƽ^&F>D<k/JS>̀ː;>ǩ_4>ceKrw X8䥄H;.X}u_|fՋWVG=5}&~k뙇ɘ, %}}dža>(lef@B*6`n&֚Ɍ:< v+D %O5<Ǹ&z}mĉ(//SS|wz|rvy81T( R504S`3,/_-bT>׷@%JrZꚴ{ȋgl蒝^Gc??\_..ήNO.;>?{szuz~޲_ٿNތY4n] D9v)DynRk1s9ue/[7`9l-TM%@%+֢)L)V"sZg^-9RZ 2̋|x^q+ d$}y#؀lL}i*詪k]J%ZĔ]ɣQ\1= sfƿʳ8SOgyY奊u }&R̮w!Pɼ8VҨup8Ϳk~l ;+g׏ OYB Spt0P/OC$D!y*Gy )Pf\j >B GeZ4O B(>9Z%[`4_I&b ?aIXeʕB^Fj2#08:0-D0ca#h%ט/0d_}z2A1i2:J1u}&ia.ʙcr c!oDF QPf#(V Pxt\>zO, fքP4i/@G!Wk=X!'Ĩ AAlw oDЈgWG w+KMJCo a@k(1cdrߨA6Zi]@Ho鐫)8k2 k+ޗՂ#,\MT->R5UpbcDg0:@~A!C\ >N + +Y .eGG@{D69mYjvi茯Dr ~\(M'EÀ/9p8BTg.rezPOD]ْI͖B`ɯ4X`D^q=lW ڑM0ƵcheL'H#N:ЎQra_D+7!Ѭy\gm(Y%v7M8l: (Ԗ C^_H3&9S@wDɏݢ}ZM*Z"}Q ,bV )گ@QGOq׸ g-?P{ cߋc#E?ҨO`9/ϯo۷,P@jd"ׂ9#=5 iwӆJue*SU4$E[U<ߡn⦜CwCmO&q, C|ؽ>xRX>ZbfEk<~[ ޚg@}L >UD6jm+@(a4$qDwsG pom 6x:}ا{j:Ӎx!bTPpkCl>Vzg,!>Z^Vɻ]qh\}B׵=v>vIu4~cGQuQTX dYb@Nq[5>̤cڙ~)+|‘i21y Z;~ oW}KCN}fDcvP Y^"Jѝ_I;?OS?rhʃ|A)\pE0Qä׉|]/]紌utZf@ITk[JV" vKյOn7Xz`7jTZm <ԫZtensorflow_federated/python/core/impl/value_transformations.pyW]o9}W\ t/+HKDJVnէ  Y`ka"}|׹wU8O-uk]rkb_~x)i, Mt#g'g4pؤ {ZxN'>X |3pt?a+Z-Qe% %M&KGL\"Vn鯉 A#:K7p,+:m<;=3_\ZKFS)[[%eb X6$FLxmSŢGVZ ΨiZу (d0.ow_mp?GtwOWw-~;9# _) I~3vHl)35W*XHZGi C4+e9f@J9ʑQId=S#LMx- NepipNgnt^4eKAO4~nL=*Ҡ Zd|cě9*!*! œJ)̴56u[8r)0v{=Fƥ։! +RH*PftgMVL8T%gtv:\dȩa줙s.3QeT`ʶv!BJeleA`M"r?^t3f9!R4a*up w̟\Z|Ҧ\wBy! gY68j+ثr> ;ͭoD*IrͼF=ZXeN<VKW֊ܖn_>2$tI=aYU]VTfa9ke+y;P| 44DGb #ox$XidH;~CV6u/!Ek@\lS]n1DB1APH<]MsF3?eMMt=蒟t_@ Oʳy@˝'D4 ܛVK0g.×ơBBt-ဇYG 5WjS Ni;Lgu <{tHj=HW߿9wSI&z1[Q̰}غ9|\L>O#;@Vރnѡ|c*sM~VX&lt+ ?)-6?I[wE:Mepᑴc7 !#p|6 uoz"TeR.%T1C7,^liQ0Q+Qq?t7Ӌ:YH./NA9cٖ=RoeXw_?^IҹP^=<+>GL $;PKO{9\{ 4tensorflow_federated/python/core/impl/value_utils.pyVn8}W ܇Ȁ4K1bEQ2-Q6ԒT )vnmE \ i[V}UbpCɚC¥QzR Lx5 `8mX^@-li.VzVP/8ljd|_I[[רwr1tSW/3PKOej:tensorflow_federated/python/core/impl/compiler/__init__.pyeAo0OɥXmO=4ѢV=:0Hڦ߁fVeϛWسPv w6Ǝ6EK(H{v T!x=^KAJ.y6 &RZ^8Ă=jV `ҜmJC;?s1 \,)(Q+[9՟uPaW_aL׬_6˷߄xyyG{v4BY*I0;58ƑԂǁu: ʑTSL,y)e#͗xH49-~ <'c6!{Li${4{@2+yެ9R5 -'P oKɥ^5Ƽܙ^*qAPPKOE9' Itensorflow_federated/python/core/impl/compiler/building_block_analysis.pyWQo6~ׯ9OiWlm]MX`ۢ( N6QH*wGYkQ`">~Q>ۇrVZR[#+?={ fX 1C#f0(88R VQҠ)fzZO39Doa+X-(HB. Ot z]Ra#/!qNPv ʹ~lb,ϋ:Ҟߌ.y  YIC{]lAD( Y hbif#TX0H(EjѦPLa4t4Ƈɻ|Ƴ&p9_fɘ0G iE}i?#f,@kBT2}e%K}FvDOP N8?hSqt9YX>IVu,*Yd (tkHr$aڐWVLR? dzKCƧQ2 [y[y$oEVI!vMܖ[a,) W$Xo1Q2bIbFҤ4 sV,ݓV!g2bFu-9ٕTM>\;T0'y,-#?!Okт > WѪiؾ)T6+<ʠnr'u5 ߵh.XC Eaqѷ[Kcc\t"|l77WI9 #Hh~q[Q>拧v\)zÞâ T~ı :]A"T0`a*d:}єV4w;R:)`-w0rH/]19^.DIGiGqHyrz4^K/f4NS`ˢ"&4Y~] szY? D<5w7q8`1 ^σ1? c5~\R}Ȗ7<: W@# d&B Χm$&ʣ),b$RQdHSB^ȚЂqEQi_eݠn xCotOEec+l)N,A|! hCH֚8xh oY>Mo`r#@qO@B"c=|-2 /5sn@1Gy 6]8UaW[} 4Z+un`Z 6 %~i! f5K=-@KSCb 7v7Pqf#KPVYp0hR$LBexpHy7qZ_6V\^F=Ě7.[Wuh#;r\NiA(mWE>5|Pr P`0 ?HҧpOAhA[[ưND&֩;w)/d5ﰢDAHfаnrHWHHlU%,OOT %dJP5l2H[_xB$RfxYs ߉AEj1L~Ŝtٹ>V#[PF)S$B`DU\BѶ5`8h%`(2H<$L>8R`ITfe [R 2Kڇ&<=.hGDv8L0[F*@EH,C&^ŒdbDb[+ѧ{[SWYpcn{ܡOZK6Qv4Sh"p`g,W#jVQX*q[m#J_.Y58Vlubѥ=m|(*0n=&9\ىr)vwFlH!70yK"%a͇6?xHZʃ20cv 6U;g)\qï26_ӳD9lzbk4nqԠ$ق|+{ (E[ B2e# Zib)NGs4#v`4Kϳ ^"$y^ {L 2%8ؤP+ ;%451AQ#aqz9EE~_ &{+X@qX@%X ,e!fDTmpy{ %܈$2UUyİ@COgE@Y0RX auy4Z3X[gyF3 ԓ.*@WѢ{?Z.:ʊ2gqno|bd[*E=s%9uh-݇Nx|ʛ%7-p;;: :[ :0J̓sN W `cfbP GBMp+F86R;BvRidw*#gkNy<]Er/6ۣIxvļHZ IbqZRwj`riko:*o3MN̡XVkˬɫCAy?H$h;zmʿk5ώ'(n"WT_OuJWY֠> jg S)&yA݈UkN 1vy5j܏ EKfDth|r"kYIəDBEĮށ儑n; )n`e(}|/q21R">jY}J zY_'eLk9[c "C ({@Z* -2jDx6K85{ t3A,\PMg䥞xp<$Z= ݃[ @j3*ع 5Nȭ2 *xZ'|JcK'j1y1y ˱j3xX YAnH!Ɨ'apr5 Puw3| P9'cI̹> $MĩX*AI/{5D"9*Ed\S1XYy_L0_LMʡDM%..h($/V3hv_K ]]._ypx{q9JcdMSs JR=/ Ȇx-&'-&sFճhئdٵikl>ql @Q'zd_Q%Y--p(9wȑ5>'&sbGj{t]5owXzpR䁽nz}Yo]SkMqHsJ!.&$Gh5Jﱰ6ն0,st^f80HFlذ`~qK-fw& boB܆RBBg)+EN@Ym?>X>.oWhzdp,wmV"h 2d81A|llu.1l󒴂>(akZInR J16|J)AU6L_`d2Uܶp/֑*Dp`O-CY+e:Q}  5*!9V`osk|nDѐKZg6Ch U ˍcRmGzƚyV.Q4kM1-+MÆ P[)4:dPs7pC^mZVݎ)-n`Mj;Y>ۭCm\'*:?A@*fZCq#x][y 3rx&O\jp0Waxg7s;ݼ61?sC?|SJ fZ19.xsYXgJP<5?)J Nm7r2ƽJ7 CpXT?be G yi! ] ` 9-3%:!4uޥ8>} [ʼnShUY2K+v080#dBķx@!dUD#M[El.{ &Y$OϳL%e`Y(s(sIȨ ϰŒw4=߮Y`r2mEꋟ[?Pڋi7e|-o=*?9ShucQ9ʃ(B?WUY8==%ZwYgMK/(ְtւףG1I;:m l)8XacL⌊TҔ6 l80.bo %Tt )j64l'[3LO5>h{?śP=; Oa#QQ۲%3 ],7vq&t|ڷi7[ݘG6Z ,ɮ4ꠜ3;H'jj[WIltBUuKK\M6_'K[c2qkY9E)&%2leYlzYJ.ѮbaZu8F8YI_u.O AGakq48>r~AOo;s|;]VFRE~{w}ݵQ2t<47 rl mt8M*E̍$+h}JJWȦh jH><- =l_x¦HaD7D$)ߠ!FHN㢿SV6}R̲){ 4۲וieM)tuCBMcjO] i11Z@[y~YXH3+r?ë~E~Ć)JGKb04?P&Tu-|Rͭuǃ]vcvI2:齎mw;4y_~8ͽ[XUt/6 㧱Pvۀw7^|-O}}o_}x>eo5ni@3ƒOc[)We]vU=ⶎwv۫#Os۾͛Oc..4U.X ]=#+Ӭ<1jKߟ)h?:܂N:Y.ιxR:h2Iޤ(~΅X J6s>UQUZ#cCe5rG6k,I#:?{ۤu>z39gW{/iUKEֱq(mVb۲U-]ӶEِf_] e;f>&Z͓2xpڐ%_Pge3Uxy*,X!?|I}$ƭ/ JjSJ>O$F>->8ްjp861'hhل\[gևVΏxZb4v~ؾ<ANAA>8ZwC\ &YzEpt/#׺5^ȞV5H7,bf JO XB[h 0oz O>PpK"NaND2vOgMT nM5!*Rh3Kmx5#Sokvz-nqAOݼ(77R=(4b@ !Y{+sjKA/7:<XN̻~LMSw9{-]7Gg#iZoOZp"Եn{y}thmk⣲<Lk3&UHq:TɃp_&٤oQU=,Ͱ%CI4%T]=œnS*E8\>bFV M0FO=S"hnl iB #:M 褦{խ~+FIr/*Oiᢼ E™ G| 0ڀjVPxq-n\ncUF|o-kRA&:9/R.U#ʆ&}̛l^%Lsc14=y[/}M9\ lD2k @X #.b{yBعhgT ׫$vhj1axrg]+=lX}kb5CrP4M MKK? D]b2{߳~4e݈vE ![ ҁjdUvH'@yB2{6oJw5Wn~L ˣ8#<3(xff-GgAJ8όn֊bcJڧɉL!;Bkh!ySqp9)LyWw0[<_/k6oQ;JicS>߰ r!_4חT[OW4Е}~ x6{cVL g=FT0j P,,7t `ۉj{0@ksرh<ވ4]ϕ)_ʧ+%V$/%xA_TŰ +&&KoNl7`裂]O˞^ŐNx5hLRXİ{ޒ ғ]ي=4͚58!`%VJ>t`@&.e30M'FJ6 E+8yȴHBm/Q8v3r)Pi@)4\FXlV # DjG]Yh= ̒92t?i&MW6lT8&vH׸S$0id 5sxzE>Of.C#&5c1,ho$|u45Uj%%fp/O14U0g O,"Ev=]pU9WW>褞- QKu-_يؽ2= 1/ Lώ7vM*`[84=pt->Oyt|G'\=$%a"&\/I.n /lxHMSo;43x̒zs-6]jY']]]08^%r;yZmQicT2@h0UpFMr}C-xR! uDh+L:̾ XvGք돸P$mu[4exi Sq~<e7{8} ,_v1w`]=,0n6hKs&];gnxFv p}w.QsX2Tx#"d1<`;XjkKFH(70ΐwsgzvkZƘD06@bd|z|*NY@&OH\7~7Q=Ȁ3=H#i&_wpk6Ti #-/n;8@4f5 P(8-5:a1t<{U]uUQe=T;hjSSONe|n_|};GhB>nlu|2^klTb؋N7 Q*)vGMw*V1vBHٙP7!%E=G TlJZwX~J_XR[jr՟>S&tˑ>-ۗ翤:zZVJ_CU.ćՓ\I*I[-ArLM%Β~54wPI3!ogJSg421D1>Ylya(Rl+Iz'ux { `D&-UtkT)ꅨܹH%8 ONzx/G?G9A-iLlM݄%?&2Ǖ'q2cվ,6䎓#) 2ɺg!xeId6!Si_&Z kon 쑂k0[To5EVpYci}| V+ωu683lӕq6j E\0݁rzX9můHw\ORCRFci w' |]-D;;{@ǟ+3&R%-UژqN Zbxx=cOSl4ƫRhJx#5Y6K`Dy*H(K0$0?vJIRJJR1<"~ 0$H\<=#dlh ߈N[,/AaPd|Jp &h$9Fg=$#樈 XHWv{ĶݵV\jU9x:Q Hk{UlY[k ` )^Q Fm¨?]/WpW1#-MF:j%cǵ v#omߢ0nbB(г5.A D_)̐f[׾LdŇ6ޮT >.uv bz)~X _mKJIW-FYj7%*#ۓǬѱ]]"q:An])`y1^ɭ~.q ]Xkϔ*7"'7%6B bK) )-w[7wy߆kl:UW^cMVĕnGᫍ_|\uPMQ#(T2gtVㅭL7!8BZu1[Nmsc!=u:7Xxl#2[,;Oh{*"{a͠a E鎲~Ȋ"IQ -ٝt'b#~ʋ#*?uC,z[Pp=˲/$/Wɱ!ǎ_|m=ɡ;V'V1c3![\AM0}dEOc0]غlGܳ( m,҇]K/~\#*a*NA &_o~ƘWv7!0ٝ72e:]l8 _@n[OܨZ8m:X:P!CP)&@.li*T@_kMziR+@*\ p|+(_fSO<QGTl5d+(fl}c9 & L@9uU)vP\%;mpbY_,Ք5UV9&9e7Tir2xiUZVJy6L<7=F(lFX1%GTtܹc>=]_m%…de c _*LH(Z!VRbςG|BrpPp^0qZ[m$tM{:|w"%!]Y>#$n7 I!.Ų۴i[Z,. me֝봺iRꥪOCylAlIY:)Á4"W:)5l:pgYW˹{ ɐcw:T$#:֡&oMsjPPEC|kӧ]<[Wt/Хv 4d( E,%Q-/!G֪.Gaťd\ȭ#IGX&W->DǷf5Zb*܈dY˱BVdK#*;xN29ѶWE2 <⬬Sb|ԚR:yeLV[z*kЫ.%Sv6gN8s&O^OPd+FKb B-50xKX^siup/S.D%B|ȸ̓` dQD4M+-Hݓ})`IpQXXRɪ itTzi]$Ϣ YN}R\nځFkKHoM`"4\QX/z3֭ SX;/v㹘LgTFƝs>qu]nƴ&hp 3^a  l'EK %/mC:8akkLpqyǂ$5`aTnҜ'VCUlS9I?c[Ѥ7lc)[O7I5Rʛs&|Vزp"ZdI}/2sS%.J/Lq/0*'Pg>ͪ(Vȍ6|htX@30a7bQ 4b2R SVF]+S YWsBqu-NXO }sH2 w)\7` %1cDT^c@ J<)GR~ F" .ۖE"N+ӂO ʵ /i8chC"*#qA鱻Ehy.? IH< l?ڢߦM QJ;)yҷƆ73LygkHC"* `?=bD! a7ek$utq`]keΉ]MWi .yhA|n[&mzu8Fɖ>{m5GE]}E1fT~1^h۹Q(IlV:l2^h\i߆p3KW}mcT@PKO@}F,Atensorflow_federated/python/core/impl/compiler/building_blocks.py=ksF+&qՑإ٫RB*}:Mm)*$A k_?HI*LOOOOH̊F$6e#VOy$.SquYk"]UҤ q.U<^/9_< t:$sG>Ux?Cl|e @-b܊lĶNDVe"FdM%<YsIH QΚZ'~ߖv;40]6㄰jU-^>{CXi]*6`[ly24ZHVU Ϛ&+V#Q:RfơB&m7z%8}쯯<?ys[xg_?~$R l*̐6M%#Toy0bMVXWiUt&YYz gI5/|'5XE\%UVnk.+5V5\@*K  *b2YnmN&8^ef*Co*k1GL4۵` `:%CntXV@ ~fwy97:F3HCT *7b r(^`"ɵiQ7`k֛M D2ZMyk,$p0\@]9ԚTAVԢ@)]P, kPRU)N]'E QMr#P͈Y=6rQ~#CX3L BIA e( 2&bTM6P -+5S*Y hm*%u{16@c*A퐈:e%pdpT f``ҴY.ezG涰W+ӐC&F&Mr2|Ж# qlr\"PzԖ`@M 4*V2•$~m@Ӡk@XqRc[ʼn;+$rĸBl&PAN5ŰӼ,Д%vt-\mFj!yWesH$}qJ gme!nkvv<`~6$ߦ 2A>0j`* Ac'aT:nx6ö 1Fƴ]ᆱӼ=H1Y@Ѷ2b HbYA,+ci 0'F 71ylU$hq4#яuGVꆓV ^I65=rw;GiXeF#5?EӋy9);Qz(弜kSaod=Ѡ}2ɊLu/GED'䴛EI(f(ӿu$%lj'Ɋ'\px67*Kܹ[S\㮣'0ܞf'UiO`0t - VۂB.d8J&r@,ͬv^OOƊ w :vd㪻|lϪAVɜ$[M,NH=vbc-&NF> ׉|5v5D8{쫣N_,XJ%uM[$` ץ7H$W`lDcT`be*nCӘ(iv?E#Ǧ] iC"O vKXj=Hԛ#`9>0oeZ.X9'XEqRIgE7 ƩzHT8tߐmXh47@*莲*Er\= 8|*Û("UNuiR(7SN5K$ us#G娄HgmNv5a& iS ,D{.&Y6lptW.26<.cGLƑ"]!ˀҤAw9kڲh8>M"P<ӇP\".,AUevjǃܭ]% ܭ yxD2&Xř iͼf)@~D2r Ȭɥi `ѐ:2Q-u^K$ҳ4dDMv <,%ͯÁd(`Ð4騯40ӡb#R{Q3٦&YiBV{̒5 Ͻ0Xs1'Q IE.Jt`$Q}x!j'^؄!8HE|Zr``,i=,ZEMEz1DQ!+1x.pzZxTSLfǨ#Vp1<Ә>u@Fd@Z,`y@[hi+: *m5OzwQe>tԱ"u[ֲ㰲7C=PҼc,ZQqHBǹH]Q^"2㝏;!x~עyu ^:I2jBAb]w8;Vy&e5aJ)>j]JQmΙր}:T' 3[Yn90c;tOW4:E2<^:'Bf,TaN`?u(bހi/ t$j=֔:b)%[:x'RM.`x 9͒ '[b4YtL@sV`55Hk|wM -FK0܊;\uQWyD#\r EhW'"vd8>r]&Kڶx#O>[E0X ȶHx :t"6A4z85 ^$&:(Cxh|BpKa{6[6+!Rc0jҴʶy+Ořȧ3Oͥ VrW0|# նMO eVTO )Zz'Ex^IU~&J]JQVSKZNҷ\T,tkd(j4U.C(veM6Gu:/ɘ74}] X;)ގ|P@1|ꓯ J{a8>Β*jEEL4>Ռ~q9inG(J^G R5m8]h$4Z!hZƪU3"w&5N|e1\wBKyKdp^uԼ$HH@%cM-H#樻`@=z?ˢum{d~9i-ȋlvj7p_k6<(6"Tk'G].V|h$srMI !^sL1p@Vc&(oLa_nJ:QjFw~,XQKeY=c0}T M`}ǪA>/L­S^ya4r ρС2Q9hήa )H э2<)X($Zt]uzc2U#a# [(1ωBcUpcNlvW,9WdM[˥0 tw 8?F،A_Yayc;+Btv[)6";@vi] {:a.I zcYȪ2pպ^3? n]Љ_@F!5x{yÌq>'S 5K42,^]0 4#7'mH mAq,dr}ܹLNQv :{0C"d6l!O+<[dG:wR\ ]!Es}YĭI I%>#(l]yIn: "~^`¢/sC3_54"=b7M>i8C ? ']Z~KH̪Dp֎Nڞ*ֹ45 ^ޙE(fdww[a{Uh9?[Jں?X-+M19B{sZrK%U4(vG cL3N[^@`hmNfw]O& }=(QY\~F.ߝZBt͹^Z? IɛkJAU~+^|(ZײztJ0L@LPVΓ/A_}JQc*:z*oYn) 7 D;ԡhDZ,QR)MNeL^NV-g*REu9Ϩ|<`jVbcL4036D~"T7A~t2@|>Dlhn#]GNZkؔ*K- 'I"8-"˔oԪ|V18η`;Rl 0eiur˖)vte=*Iqe]+\m0TVqeoL=S/k qRdZahU6 .cy6Y'ӣB–9K`YU@K::6< FTI]ͷuތdzLnd~H9qZR[*ad٧FmWG6,8 $WGTNCkDzDt ,;#ry8Xth);]#v=+._X0vTbp,pƛrjk~g&1Je"`.&UPbNoԔOMk([ZWT478m8!IEo'EZD<5ӱ/IȎupD+*B\傀, ߘ@":3$,1 }ou26eyTL8K )P Fn[q p`XeZ m;[&[EѦ]9SɣPf9o*Xi;+ɆU>ץG N+,hEoNPcҖ |jD&`Yoe9K:蠻;;S'Tu9eee)y5QvE ȅqrڪL5!ҵbxjgAzêA~3֠4Z : 9]֏/lh`hƂ>i{" C,HʷU;hu9o 0=ڶ^V@ܯ.!̶t[-Z Bv]:S.Ș wgOFI=Xj[*jTBYD#2> c'7$C+VBL7O>U 3j֟GP-WzRQu#Lztj5k.yG*Tɚ-_ud5Uh}?[0G2!WҜ=(>g8BJy-/b\yҙ:cVJnw4(tEÕbyUzHK_=EYqT=djW1y sQ>#SuUGDnoi0D+z涢˱8u Ryjm^*bC"O 3];PHx|Bwyͥ)UHjN )>s)k;5=G=B'tWٶ ' I6}LE^>u(綣c+]dۯlU17.;d\u3ĎCEzmVH갑x(tO{ys"^,TZ%:2Wo6@cպnuGšu(*'~.+%WX[86#N&,n 3ų)k"{ͦN9 1ˊFϬTi^0th#ʚ!N),CSĩezi,wQ(<>BLZAã 2?7f~22ݰ1pn0 x~t| Ls+&4qz<br7tUYӡ|/؃a6S18W|,sg_RDKZ0&[\V.e:cQiPCϥ\،#NуF.{(xY;-έl<"i"7%ϢN<3HeƖI\ U-/hoմS&Ob-İ ]~m&XFu$ymn7v67.o$cHv{RL 嘥v,Iζ\`p)'A|w)xS|x_c`M dE!owXhf[n]Jx Ft${] vkDz JxXN;E)pЬ.6ꇅ).05 +4-O S}58cJIr-AvєR|M׼4`QWp:{[VׇJ"X!4U\K6XE:Amnfs,Yyrd vX*?$dy]viBS%sO5,Sb*UYS ݟv%cզsN(H3q6fbT!υL3Sm&vN8xVfW^_laMW>ɦJ5]fp ,;Y+̦Dz*/ ("Fʞjx hcӨӟ\unؙHK?WhGZ(|aѳ~V]?ތF0^($>RG|]{-K3,ta/h(q2SuBN݂f)͠烄26 \c x3gBy(%8DR(S(1(Y,Nf~elCsa;>_'eAu6vlÒ-R3qvus`tԐ͎UܓS|C9`$RˉyVd$ Ɋ]EN8ɳU/?I| fpīq_oO4 ]A&c툷Je95UŬ-V˾GKB҅oq%[:TnC^A#Z]ƥ2:\rO)yѕPn5m"9RqA-+w,gvrܹIo"~#v`򲼦8lM=wt8.'!PLOb|hNn0}ގaFN3gK[]MpAV{Ӷv  MlI>ˇx ,9V1#RIw}N_d[gEޮ' d ZUoH?~qs : a*3.N' \*Bvr/5z[%3m"YJ[(Chgis9`t"ArFC>܁ީX] nM~cJUT{Rj荭vq;j"}\j}ylN̫l;lM3DިFR6|F]:-Lw,r$(h5#wH~KhٕWW[ZfcT}fo]4yk-_WT~*,)!m 7 jfdk{>&0G7@[H~wXb<'CFC#=>qq^Q(B|9@4zɬfJ|++"K*zzn1Zm"˔oi/R!s2OI;C'g6 0Vv T(-UcCSkngs:kyMXa7y8>u.뙘! }s2w0;TO׀wz{eAcL{R`5+a`%C24Z!KڙD"-M[ԜkU7ئWЕʦԗ)@2zUky+h5N2~ۂ7'Bc$wYhg04`Go2V laK<~O|~Z,O>襔pάr/ oU=QԡOds8(%4vs59=LzuѷOoK2gSIәb.[;i +Y@u䡱l37 7yBհ #Cc){$I //[7qj[ B^PC?k|Nr;I%.xv{w!q`ϑ.ܑ~Fh~KUUA _t*Ks2ʌ@%X7SLd.ꟴ矢V/gUIlZ}mكhN2Owuk|t{TjJUPW]` i9G| ~?C?+oo/ 8}$!V0m? ?wtF\7{;Ԕn0^Buz'#PJ%&3̭j{ʕq(ilwAY<-:AC{#%q)LD~R,m )>1U` 3 %">wDzSM]ww1x-T埀8H;~ڎ>z}r ۟&W_'nStq71qi+<O*^d_r2ЯzyP+ʹi7#&7ڏ1Y}~ދ*FXMD݌J4s!CS2؄0Ӥ˼ل%PKO#\+; .?tensorflow_federated/python/core/impl/compiler/tree_analysis.pyZ[s۸~ׯ@ISMAZJ2۝ %@s E9rvHùgR&quʲ^ɛ3vf\֚~MׂME}n{9blUy.ekj}a0wȕL:xz:`cIY@HŖ2LG"L&,J7Y,y zMX `!ҹ氚 ~-uk">k/m W/bR&@1B)_ 9-KsW{:E2Y Jzs( t.煮I$xN6wx2O_?L٧j:M-;OW=^:0c}#@D9 m"DejRRFW*JUz'a7R6Xn暮1tNNNfpm{yS"fE\Y'SJ e\!`s >l!$}~G%94Mc0MrP@zk| @.dm0$u$%p!_<' ic)| 6Ky!_84TN*(s~w }v8?Lb؛1ݟ5Ƨ} Z] \[V9Iҷ!eftF_9YaRh)oI Za WݐܜWg(V`.tL,x7#.i,x\lLq;} /l18P[NSB'*y<䲒e$/vx^Ug-H{p#'9F.Yt [qayL\`X΅-Jriu]Jۓ)5(M0BH5AMnlpXd~` nKʌm2Z[uZ &q0P eX&n wi~[S';4 にsR UOoZs RYh1Jѐ  ̴ȃܲZ<(0rpL$Z~JC*p:h&,"uHzڜj0σh'sa]DO-_ xQ!x1b ж(1DJhr$_A-Q|q̜O2y YT{$0l"Af9(>m~t1NGoG2xw{=8H=MMzmRhV$s,Z9āJDej6Â>RE'B ӹ^*mle۞m0vJ!H:ZBw`kbqV"^2Q t꽟LL'Ŗ'Y$9v sӆ/%# KE-hJ(($a9yXzߕzP[8wʖMEƐ qn8\'9W8@#br,&Ҳ9^@BVTF*ݍf\{&$2vjt?>E#^|e# H ~JP3>>2CʖV`vFP\zU"乀 %f(vyH^(V!֒K!V֠:zMw0 k%5TVС\xWi@$%!(tA6ELi(<|!1N@ ="E+-uz8f"barmViG9/kw#~JIHpEP%ʓ[ع;ʔ+.J,X ;!Fk*L}߬.c+`Cf䮈bN aG.j+MQ=BSPi9 ,5){;rڢRY1ݡâItXa%?xmu*9i-'d +Dк̹hGmZZJWa6>ц96j\ $%7MwP`|+=^ti%ը% D=>1V,md<A efyL95=ZO1o(}Em=ئh,T]@xmM25vث?arNDsnCnJ|^S ZS&Tl>_>D땔 E+OGEJp_[* 1x+ ŏ 2 n5οPKOej7tensorflow_federated/python/core/impl/utils/__init__.pyeAo0OɥXmO=4ѢV=:0Hڦ߁fVeϛWسPv w6Ǝ6EK(H{v T!x=^KAJ.y6 &RZ^8Ă=jV `ҜmJC;?s1 \,)(Q+[9՟uPaW_aL׬_6˷߄xyyG{v4BY*I0;58ƑԂǁu: ʑTSL,y)e#͗xH49-~ <'c6!{Li${4{@2+yެ9R5 -'P oKɥ^5Ƽܙ^*qAPPKO):tensorflow_federated/python/core/impl/utils/dtype_utils.pyuSMo@K"Q&:ja H#.&U;3o޼`[!pw'%O~!;!d(2Fu wXBR[PV!o+)B #>Ac<wL j{Ak(J4^v $e w$$3::NhNxMVuF~Z. 6P^6.j/xy Z P&A?̆w ŜwF8!k\ K)3غӺʣo4/. SR~ievIYNajDY@w4+* I0JMBTdV4,MKJbiY8FM((ZtVz6 cQgu<t*Czy1, ;ye1H`lvLg-HXF%y'tg0<;i? g^.850FhqBӣjG;>~a:Qeɍ?PKO|7o=tensorflow_federated/python/core/impl/utils/function_utils.py=koǵ+ E .(UQ\J^à!W]v]~ ĺAx? )Rg{th xr,pg3'a"mŬ`Jt$O ~v6%I}MwVrџ&-k^kUgApDG^ɪeAwq@jDkw+U"ðT:xZH0OݖX(3pfOm |l4cMF 9X8N7o7ˬF%Jᄣ5L r6=vS5:#xI[fQ,H[ aDG}yA;ĦAX+v79. ?F5],6$ x= )6͆-)x[WS Bqt .Hh;2*?/!|090?Uv9YaJ;yF8詧2Gt8Fsbյ!hAov͉s<$]Fڱh2.Jmt#3guiզS5 &pq <* )Mԟ<3Y 8zڔ_>[=Peg|>{'9e?ؔAa8zS0 |o7uJsJ!^/yI\JߦA5aS3 ̰<0ݒܡ:ùf; ~Xg!>t'G$ώ @U ss18Wq5vؖ3K}NuI ܔvJ!lb{1uBb3A"1_Mmaȑ2:K5C-m8Mz:ۊm$ҽx0CW9@Ŝ ga8 uNF;$ZᎫ:Yk`.<86xwX]4-+fXM. HC3M,#'jeE!6=hO2qrL~=Mg}fȂ'6#n=o5fAmώp/z4kyH&U{SPy>y2~8sE=0"B;;8kaM4 M,/Wiђ~HH8 E:sL-^hG<XBEu !(tKO97A`~XPE$| - .cHaJ< Cꍠao2m ،c(-0@pECXp[W[߻i 5`0KZ{9 K{ L[!zIiZŰm,Pv,.ɚx_a: 1GlyfD .YoiǗ(m˥ 88"LKǦ>3k8EC'5'-N7ً|N#x,Lc[<evWVzkzXH\*$śkwBҽ(Y5n]{g"p1u#{!Aަl%-noƧ͌,rxXQ6([ Tq>fY[PV$tOAĎק j4aǁIPg!h$1M}eO?Y5 i"]#aRdvΎā>1k+v}cPBVHs_i~iǃEĞ5c >@\j,0ul2C^¬]A}o͑-=5 XQkT?Widze,ow"CG{ΉY_:bvW%ciƋG3PI !Lg٘(zy ­WEDF w.%g@ah^ez{l&'^2P 8(ϲ|e|lm=ѐ=eʤ͈6x'ѡIw A?1f3a^05vɮqp2B#ha.40u.l##=X&r^zAB]BP&(I'e8n5%vpȿ/{h7wJx%tltJ~Q)u3|c `Y]pCrvOl12ҁpٻ>yH&YH;r(>Ց4]Iav!k=KH |g<JV9jD6{}FT_F6&׷ 5L:mUJ{cP(gU$<١#ګŻ~ȇ ,tMmjﰕ Oifwi)O뭭:?W&N).ٛjE4D^%c @:yR |5=vE/{x lQ©:Q *Q|dF5J'u!ȫ}j]Z#V67dkxC@ySaRw!uJL(ӅLtLzxIM5=ͳSĠDG?Iﵶx K&ޱh!r7YP`ΐ/CAh<` 0;/ĥ>fV~cvS ˡ=G{ER7/ #{wUjIȽw~zڲp*Ȕ4m "ũanc2$8@*ͷ5<`ӎ`$ўf;qp0}  h[ԫ5Uan2$M=&fm-4FQh€&1;٭< ł'7f s+d.0խ!Wn/[ Z{Wlkc e2`\U$@dTAA.AFv~TAW IL[$x^bu3ռ@J4[s e4`f=FP8m遌2wNg]h(Y!j H5;^tǏoQspdέaYG]+eU טkIq_jǜ@瞪^ȇ,@(HQG93җ&X<+Ova>|h iI)8'/.vl2ELG f)99aŷVvj,z5y^Do&"A /4(]Bv5s/E(/|U ϟ=B#xE럓$|R;a7_Om£P*A"`)vNAcᬐ-ڵet>{:4_?|LŹM0UB;4e6P;rJ3I]y/\6:!L_v;ʸ E5; ,vc'lML'(" LJzL Q1}8ie/jB KhWs w(RŔ6R<ʬV[084벪F>(5H|rZ~mM*:$TfoeQWΚd|`*=Mj_ +ZK!ߜ1ϏYQ[e0lj48#K7ߑ#?ɷ8$,\u۟C! ;X pA d{l=[fbhM޴T6D  `җAӏwvSE`x𑠮, `)-[&$`#OfVM@.jc jx⫢R%OT)@H^9X3^H9=DOx ݴ9jL zz嚾³Gag3^w{͚z,|`OM3 q~\&LADl_(x0"XʉYQV=zTa;\-<: ĸvU)Yȼ}+il-C.b.) ϹۥbpD'w%nSCpŞ#9|=6u=z.zo(Sg4|z\Gh1Ɇ֓.Grw4 ]nXNg3@dhX᳌y~"H>Έ QC>ȇ^KTc81|i'?vf8 o597|o 6yqD8Y)`/:ݭpoȵ8؜C]P>VMpׂ8ʿo}s^AgbXx9!eXt/4h{nػntPkTKMK$ndғzMZ7x[P m&l.vRc|:ϳ? 4˼Ǎ)V6}ksp m+a#$2w\]I^0*-DƭE]>8 nʐvuJkrNQ;:9G$C" s"e9qYEwtL ҳBའyZ,0^ntfTh&*=#rR5d>/V‹q"A_<~ ] ݻ >gX9QUV͎ 4 3SmՄS;?'PҪ@慄{lgL?0ftvE>I=#4 Ns}5caұ wp&"Uk>H}јE|p{u˷O Aݷ:S6*efCX&y4Ž@N=|ǀNb[[GYBhX?jT3pQo2@"C [AL jیԕ9jy}lʭ6+Ga`q 8Zm?)9-k^TS{I$E% W\w&FI ۤn^p?{1}Cu*u^X7*]B\TzSixה}7yq3Vu9oJ,*^7 z0h+-ԓs1~Bxg/޽9WW>݇[u{z4  $sΐhZKF^Y>g0fhuS骀ᨕyYz@Y˼IzTrɓ|5|l4CT"_)=xJWu@UT|ݬ+=H x.@ ,rDi1áYXhzTGԦ,AI4X/Z+ %YmkE=~-(4G f.q'sXUU6erL-WkX]oC-E~mJ,u=i֫~fln>* 5 &k`C>N[_<st4[b(t#`EJ ?V:F)LQaQ"Ϊ+YPJ? ~xD}mIj 셢 m9,țdXŜS M&"0:7|B|T>դޗ2Pc?=ǴdP7 # !1Aw3\5 :@E} "<|:Ͽ l˴AFE qIeC4v |Իͤ `UZ,Iz ,p >"I- IՔ9o$ ix &$K.ԇӺI&/&$ڧYu# --R 5rЬD}uA`i {feʮqe*oFcЛX5JO DOʺDF|hjAqI!h㭦D\*1Ȉ*NHeOk(I4@ `Kr {;eQCX]Q52PJ` y-@U3Vx KM00 y&X-d]e).6bKQ[ae 71B dx̅5-_ /_fğ wED.lavE L:Hd |T]Tkq5' ަj;ZaG48\(}JΞCPd r>`-'Ms`~SUe?x7Gfˁ<}`&奆 ~ŊD-7c k=NI%x'ӎ `Z#pѱBO%lK"qL8Wc@a @O*a֎ k4]S MЅCY)!JDhS FOH &>:=yYHS*%)dt_Mkn2qn c$1Uv = ^hdg]Я8݂毓m-̪--鶎( k'3;Z‚ {˂GC˗f0bU\\oY'w/@/9 8XC>Ωor8 Fo$,ʦ1=0M~ + @#= zhK&!8 c7Szedf]M6c^ o`!0_[ NU NWqn~M|$Y++5hH3fL-WܓΘ{.틷M)')18DXU[lP/wA\.QطGY@B8msJ 'PIޔM`yJLp,; ]ǜӧOdaٗ){6PbEر+WUGQyyٗ=lbiTj 7bJtj qO" )Q^oY= qKhÉu海VWm2V !WVmK|D:qdo;r?k$i]>BrEPuyPE3E M ysNc$Ghvp.]]2WYM޳SRO|6hK]L]ڐvL; Yf-U^D>\a¨JT )-R׾#Q-[Q"x.fQf>U~$6:xK[ Q`q@Sf #K!8u~H`Lԣ(hgdO3o$e: CkM}㘊AK'ț_RnXٱ|̃e k@*iXr@cvL DA=V"3yX&D}7L3z%FemP_+* ϥn% fFLc)} Rl``e uE2I ڿ5N=}H'Bs`PcdU^l/+@ F8Rzcp)԰ΟF2.5@vLGh o$!b;ym0Rw+Z?!㗤s ?TV G̰ousQcKPe. ݂D]hĠwhU 6V!t1P`"ysO[weczEѝ %|^ EVķ 0a{R}&1HescI3t a^Y4=(M:#3B]m `]bi ![:MWOۂ.Ӄ0;6F^x{NY\ac ;a~/fh^yOnd^waKboMKzٷϿu.^4%/KS*hX;B7l-ࠛW`[$ @01k.l/KS8NO"?}YO;ǜj?]yۊNxɄ(Ѷ'?{Q QVjmi t j, |(ā!EO)^35GM|7'O6'7⃴`ox@ķ3tyhakhS)-X1lB#;B|LLA_Bi=OW%]k%)N9q%IO,b9_(df3W[9c\V9'H _,uyyU%4\[ǒ[~yGN~U9z+Dbz#e m1r1fJ'&.DA-x3D-1gEa.И՜\-cMT^#7øo+y~el[vӥecFk#n"0"I@_$h2O1[nq /X$ːц {!aAa,~(BC˭ey,qQ98oI7s*3KyO;:b ÿ~ߌN)şɀҍ &]g$pXo>~3<:7(1y,x'O_QqBκT!{>J>}sc\`2ɾHIy AXz qk$1t>> %4:jI]#C7W wg}oE3حn'!$pp8#45xc]S o@Cdj{\*Še2SHʫ~HWIN#/ewg*]$vm6Kr_͘Ol~ĭYMj ..IT4 >]Y?DƭDmK7QF`mM#z}P2]ϪZQ&?_ˆ,{yLD^9fAKO>*g66t JynSOidNeM*dBIqM@Ld#m|84oYwfẳ'ЉFBirk ɩ,N^Y_*5xA6s{_>oubWVy `f_ӣ5 (um(k83+^q.X7;9eIIZݱhR#`* viv(ҙa RKsޏj;$oޟӴ ux{[&mZce۠i>6 |_P.ONBl4G]Y9D(v50h-{b_g~|&U-0A֙lB6ŀfUI,ΝV(TB@*C{2T($HݧaScìpp r(DBF^lJ2$하{AE?p߯4-wiOLDB|Dz8П[˶(8a;_dJN}jsړ˖NXP3ڎSFeܣ6;[Nz\nAI~Rɣ[{&?]g7c6YsC{IvTm#~^%oD`/N[G+Ȗe;8„fuz 6͑d4R'k)̀%o*Igbx8υJ㎂,QBs=ܞCOHx|EYS՚:ɴ}uʥo6P~8&tRa]H&n+窟8نyd5aS|n]0LNYrvNࠜm IԈ6őFP E@Q مٵJMk3sb> |MƼ 3g\` 4?lcߔ[Y"/~ז`ݝYd8sƷh|Ȑ1x*&?ylhcؚgok,i`9};pe6.,A.ϹD8@cԅ)8DA`ٻdUD's[Fz~#-dg6+C:̋[c~uH5`~l3}> 1_s63r _|2xs4˫F/~dGt6m6Jk |ՉaG2IP>%q(`D1joMtր fBmDI\ IDx椈9ҽ[evwN'i 2NіfL[,{֡үhۥ T? ȱ"2 ?]v鉫5zq99lo$sr)*Qǒ^4/,SU£KOGmK/6LLM?mg3JД ^[w*)"zGť) }8U-]Q S:0:ڵ^1`v /u45*c⾎ -£Ht&6< j@Rc.ג:N.qO0sN)F_gW.p~m$8.*_/ʏHuB$vCFe CW]-+l<@U9ܖas#OwYI:z_}E9h1QXQ '&;%mf_cu:b"9&n[*_phи5p vEoܢ4z]XmLH\3.SRy͔\9X/6] fh{S-d x̻)NekiSm$$0O N:w@Ǝb=V5)#\MpO0z3 'v3Y&bӭ4&g]0`.d3* l7LP{dA sJ s<4%+ֹ6EaRLT#[yp/}7va#J2mՎMipsK*@J_r#\ xXr04jkg݁څ9{a^#͡kP Q ol|q =ܚ*񔉗drV;9Ty'ȎD^v{FxNv_C3KBsg)b OKor} ELؖyԅHoE2aC*"ЅEVgc:ʽ;c#4Us  ("ScxLd@k{B)`2LK泏¢:}Tq˳ ntfEvjqHNkbvuDp"ož0}-B%?x^%Wy'4q'7ZH6G#%R;EBKr',4E10Hl-6R x7ge&L]XPXr'0"QK!\̠;L?6A. D4[zaG:Y1q̀)_I/38Pdc޴FUsdVM˖`)xgC*K') 'a(l̝Y !Gl!anM2-SuW?5`B2WQbO =^9b,>mqp ZCXmAA4-~f>3 xXH:Q-{?y/KTYQ #pʗbLq2 )yfmuwͮw4#.Rh=1G57ݑ37A b5:ݢ.l'oKa`a7 G.ns]3 NU3&dz5;#hÖ1yM)T}~QdIf\/(e}HP C-YN9xYTE+s \! Hр@l(3\VU\E;DuzOB dg0=8w"N*Qdn+6u]kr (F 7^һLpW_W"k,[vd+w`wFVLvNAzt-C?H6/رnh1կJCv!؉m[`fS)'6Ү]9xfÌVrZv<2-' I 8.5\W'FRoe|,PÑ9wTڿ@c>-(naF>_ > Jx_Vs3Kvi DGNGrvrƽ9>*uTAܗF#PsnȽik_`aTs_M>lqkY cS7?K/n{)j)0!WxИLzQޛ@D4O a(GIMYxϦ$=(GWF. Ѻ!;Qr[DKzl Z$aMP׮=Sb|[Ъo^t tϮ]oC94LcL}Ħg+cg=3Xda.G4-J{0\In<)-},Gd\!3ۜ>6Jqw_څܞvV?~г5rZlLEv>hH]j!1Jgw|x׍9 PO*ٹe'Ƹկɝ;z(U@M~!.40frӇ2'_iV2.+8V{d[c`rUQN;@;nr>Brȝg̔W<[?у'm0֠w`3xl8:^d׏ǔ,u8vʨgvq#42/2R@Twԣ(}4,WMK" 22FAg'Oe=exc=C~ܣgBM X)e5]D#kJWE/D X tƈ9:}AbZA3QUsok=uvߜ۲:9IhY}`̜s4Z!)k='pq# i oUQ_J+<}subps;mJ z QVm5vUY9|}o-Ej85H'aI(ܼ5V{nx+]ڻԽҍd"ju1,.颼Җřm&dli؞; ahQF{K:B]~:W&.'gLd";1\3ZIIQ4v&b3 pގ!i{e$RL{X2gg`b@>3/y/#Lnu7hT;o@̿GEY@w @9傧]sn#9/kM0z@l h9KrgxB1n²BvZB\eJ(^z&@3 ~3ʜTn!{D'MoMr`Ќ8R>sX^,Ux~D1aq8V^~5wb.y f.+<>WMXܳAP`l2g4)yGd'tpR)&Ȅ>R ^9V C/t 7ҝX%&0u3 ~;2wt0%Sa/rVt/wWea> "%Hk [P={f8;Lj ]&[] ;C;ꥱY$]kG2 68hV6(KotA.;j5(xWO<x[&l"-El=< NFzrXn*h0`_eIoJ`sQMRvx z>oq`kͦBY[ vO|贪)QXRVUڼŠ}db;#Lo<2*EDTbF#/'?1AjAqw([3G̕_PKOR-a2tensorflow_federated/python/core/utils/__init__.pyUQo6~ׯ88/)]2t胚Ƙ)bgE1 EdG;;RRcɀY^;n! GYKvWv8:޾%lw[4޺XaN6P>|]%9w8*!g,Ot^Yo7CLXLŏ1%ByhF2 m?h%D8(ڥk&_&[l<p8"ͭ./oʫ'fރr\k}10!)j9H)-ۖ!4ʓSu3fz\i% , |(6f[\my;],W+(_rq Z50ȟI#6Q ֎RJr] Cr`@+^(ZʳbqOJ+:Gq`_)VJvzmWֱ>yZ''X<_$$lM:k˻u%t$VL BCoaQ[LeWX--XNH S{.$5sG wy3iK胧8 cmmsIYJ1kL#dtΣz܉,K:TU(8Y&Q{vո~.-{\K5TnԖZsS%Syk˫F&ВOJvnx۠Wu?8+)<p>R"D4l/9\J1lzf"䯱JL2nxU/ӖYyyTzp ^8/s_~pY㷨:4iNuҩobW=ů /Ρo'qWkM[ Yy}:w/PKOܕ" K-;tensorflow_federated/python/core/utils/computation_utils.pyZ[o~ׯ: eME ځb-F % չXQ ɹhtq6EH3wnyDi!d~.Vޤ=j}!^8݉݉~t7Ɠ8?noGד坸oߌ'kv%F?oBVPPR#*Fj(07PR.JPbaTvJeK5sP/)^BdkSA䍚TB'؈yF<WC%&WWdJ `z7R,L!dཱི$Uw Fw_e S׳#$dQds?Z 9H8w1pXIDr&,6># S~+ !+j.U cR}w(>-yOVvZ"Uk1QS"| R%Z%q;eӠ2F e AsGd$V+,OL10?SZ[r|ԞNȭjse&;d|$~*dad(i 7P[¿OM/}\ܕ+2(5fi|R ?*Ip2N`=0Z>9G*QO;bù m. |U*bA_c ׼_U2#Fa=Ll6|քQ6|( O>}>Rf $~N78E)G=fYcV0NK|.yg(9TS*ՠƯX` ʩgnWx ;`rh5ALD~^Oΰ:WKheR` 8C,dN[[Shͮ۶J#[*xDPWVPӱ% V:a {s%^x *m0s(LY`ꐥ%m'ǭt .#5&;i&;Gي;/Ub{Y RRx^ZL8 M*v)LrSLy0C`uY&oTkN_]-ʾE_^O=ZkMl,U_ kuw\r$"otP*㮡N\)?Qee_ö:[J6;2URf(~sd4"Hڝny~aϪEk\cS~@r!Mp;8$oN:\tKIVGKspKGXDsGэ_Geӿwd=ۚ5k!5]T.mqSpTrF/v# j nj\}b9Gێ?Y Q|kG{L4ܒ8jW@V*+6ۧftue]0lcmòz`uLrp,LLSk/ý.ZS{4 ,煚uoݻt]tp 7PKO.s+8tensorflow_federated/python/core/utils/encoding_utils.pyWmo6_qH>4ɀP`n`Ʋd0ȔDdI#IM/Ļ瞻NC;IZkz}6ŚÂy[r4OaRTw^w"A|[&KϭK%0"3tve P+!LWDIrVAم(cК}OY6ou5n!3hR.rk.f'Dl|>9W $U(a1J l%9oТXLo%JKzV7@Xg9g~2i>M'tpp3[&MmJ~)GisROD&E+,(Ѹ9BYo6-p2i6~\.!RrKm j,?<сٖ3oˆJ)|RksZM]t(1[ <}8}\zn6_̗>3(u-yQKŪQ+}>e'AHNW[A԰y=rF^GYBC¤W 뗽/l÷yG )* Vy?""ncīD=A5QYi.rr*Ͱ=Kyfmx3 cՉbzYZe@M+v mCb\) Nch5m[,֙:]CFb6agт(FZbCw&hhJj9Nj-cOMNkpٓm 5{jHo-_ Bv-5,  _Yl! $ J>سM$& +c%Stf&޾;t}6{TRa5{t4CM6E]Տ93ئ5 nu$mI^vZWbfN}ehf|_Ftb )R̖+9roPOv^)'As`cOü NW~s #h(BE%Q2r8{eh/ks-!TkVqw0Ոrq=BM8)#G/<6Z8l' ,GG xmE0+<;FBih,#%V3Rs_W^>FK#G 6@_鹝`Gb 202nÚ^C3IǨ%GD0to&>q@kɸU2px&l>}čiVMxG }EF=Cm[HƎWoG{b)Z~nN,džBW[x_WZnv;B݃^T.d?BvR>Άz.B?rH8rS| t{*rawAap0/.~suw ~!WX 1{iOK*D<&kta}5ЇmDsBC]C Duk)ݤsCR8 ?֔wq?naqH?6픢keח[mus9z'M72""9,Ru2bPKOxHZ@tensorflow_federated/python/core/utils/federated_aggregations.pyWQo6~Oڧe(0/M7cnbdZlTwݑeM0`yp$xwTڃpgPm'pnUϾvׅkVxQ[KzOpץPWkQ%2 ᭴N ϓg'djؚJm0 /PZ|oyWgo}ufI{zZIr|~1^|7΁Y[:Y  be%~X^ oejQh5᡻/d4~M!x7tfFףl|1k8W|{ {y`TVe]R(rcG(L{^\7Q.;78QPG~B=ǁ- 2 |19D٫̣8!Ka~{f¾ $q@ _HPKO9~L>tensorflow_federated/python/core/utils/tf_computation_utils.pyXo8~_1Hbt_>&8hX6-Q6/2#)آ~CJlv$73|3+'FTz)V-W޽qHӕػlNf /3Wb]{]U5xZi'MRU:e4KR\ԯ.h-IPrUHTԬB J* F~MX-ķg}9nhcWE\>N?޾']HUŞD @Xf!d,x Z^əo)ZT(Z <8]x MG<^?Ǐ!l2)2i|?>'zpa2<O? I"V8FJRqeA{@n" WT*_zYHҮl:`PkOΜJzd[ W: B8;⁷UQ]xUN`˭YlWr6cW,~ڲLmҢ"f ^~ԮӇZȹ#׈gyS"INjZTn櫲F=ӷ,WNd2Sj%6*kFsbH_?K7a@Nz.v/H 2p!Cb+IZn a tXGD!ɍ B l^kAJ<%v7E£Q˜+ F_tE 8xM0t?71!.X[LRU`Oub" ŋrbo5v:Y,NsLXc;%R+IUKeԄAK9ě]5xᐎ[8fk'[ac <uX`Wߥ5$4r+q8| [kQx"pS6ծ,Ƴ@lYLB.52FQ }sÕЏ;]~reivh 5ew6zld|.? Q@ ӄvVb5 V6.luhS`,Zj:̍~k\"=vM!-}˃`p_6]d9CMq@syl*&S;J10&{`O2IQYݴN>vDž\ OaWՓxZ6&W"ZJw:(\=Y =F鴨2niJ 6MG[ɍ߅ApCw';u(?z!,t)GYgJ{EA9|<air cGi hKpk: da ByS7ݴ| 0d+5c+>|x/~wnw!D`jǕ)rdiMU_ P ֢b pyDfv9t>'q9_҈L{TsX|U.Y2h ϖ%EOzvExN36TE nE9 ĕ 7vD϶L`)7geyH\m?#'өo(egE&ljDnxhHr{XI.잗ȝ"tCL|0-!Se\G:dd u%Z] ɀJ'4'bu9}<mNmL9z_&R\ ?at \$-(4H>'d9 rĒ HխA ~q a% 6^?d5f%ˆG#hjakZK%j,a9MJ݂KҥUx"JXXOȫRQ+* j`h\c1_24ɩU߻`^.6d/hu;P_hsEP^c߇Fkf^nХri2zҽ=vyD.fr}hk5NTvHci$/֢fvӴrbNԥxfѭ3~l^xNK%n?=?öʠDI-TQC>_ppԛ:c;`}Wtqv!6veѰcO؟|~PKO,5p ;tensorflow_federated/python/learning/federated_averaging.pyXks_#88eG)9ēf2XXtw!} J[$68޳RZ(ސ+Q%_,59?=6$%#SV*!or"7,eja [zo`-O` ￟Çt<ruw= H9  {$Arđڄ2aRKxȫ\tB<2YB:b T^ Vr^pMyT;::++XizbZ|!ezTY pqE׻EQWM@Xޖ,sv"ey\ko2I ͈JCkM޵^/)U >|\;"ޔ }ؖ\,?;Z&2uCH2`\qX$`b(qV^܉o֟d`Q.K֮YCPdHfP4EnnTr_C_X5L23>#ɐ8 cJP@P;d%#tزxtBM x/qf,g, 5:BCbe]A[{ w'VRyfHe[풏X10fq";h lt%g{,a>4)𐣵`wYshֳ\5Đ0)zJ({[䧟E(NNJPLCYY{Cy`v %5ARQSiP-zj4FWPM/qtJ'+LvƠ=Os}:;džYBS6.~߃/a7w#) GO@ii`zGQAuдNbzŎǾA_ 6 Z:.i1O)!E#G[؊g.6E`0;-T'7hdh[ME[/l!blG^WA;e|7:'O-a  $&;g޾ M}ëGMA %MK(!pnb1z&zK 6sƈ.`_ \.8??}vϠW)Al%HiΞ`>L!YR@z !a$CĨgUlT]03C%#qAe@g-y$ o%ք6?lې;V.ϘG?O֧>`#Jĭ%7%hzdO /pDT\%͂vP`nbo2EQȴD$R##eI^'{-TWܩEp} l6\j`S)Lkt&]׃HOkӴb iLF( d0n__j(P@& s+ BBʪL&a.L 4C v5C 0i9e-n\Ϟ#cVZhuwV!fPX97ZX! نi(0V]mO:ä0aÛz >>Nl G[-jOs.?8jaJ$)HGhkOd2OD&K59k@u) U Q Q ˬ;"h4`(*wyɥ7d]O'Vj"Yݯ뛛W^^"}@E%]eE=iZ5Q%-'{&))_Yf>#fb᠝#.Tﮟ0^r21収TJ(wD1MYxu8;f* I5R,aQ/Lo7ևqix\q!eO&? >:@Vo1lJ'0[8-cQRIN%2gl3W8%Y9˕!oOlɌWZBnϸbgdRt >ӺdRWZȊ$a+kR-!Bh!",ׅ`UF㙀B. ί[=G ۟1ӣfCՖJ<*I}fz44?Wך(Z(u%l ljlC"l83(aD0ŁK&QbQz`tU`2%n23yrw7]_N9]+2"&|bZ@? 6弧@.BzS쪖5[r\U`YsU Ԡ^\ Q Ì}(::88TV*/y5邰b)iF3LS y!* ht.˲ e: A>p9 7%GQ_@3l)wWxcXK}RA_Jܱ|[)\|ʵp]q,%2Mz:̦XU}ҏG`3-wǐoͿkU6IԊ' :Q*(څH;q~i4-i BAP 2'i'y'u>GHCKY%X4JBRxz2"DS2x#6_OLsJȵjײ:=LF`P&tE1ԽaWR=|!P¤6 xi$*a$c*Ԥdñw$yuv#+n8A Fթq:赇"Gxڱ!N)yޏhn7+R 4A9 u@KcUvAAƬAxgH'@]!3o'ܶ#Yl/CC[ Jt;N&膗S̑ԧ!2ȇAE1$eE/;`dl(k9 [lW+l}8PG&qǥ}lyJ6:S0K0BYĊ_*%Ux bHQSDa|Q¼^bam}YRjF l̙(j[l2 @>#lJe+T1&?BB7[_L 4D[gy_ #f)LNnsA :&&!> ߉ˎWdv{q-NNޞ99~|J8)gLm -S_`YEAWԆ^8K?j)X|v48\5tahȳC/&0 1d ޹:|N"Ja4kzEc;>~ԅN6s+#TZ-у C5 ZC|'ӏ*0$T-sy̥5ƝR75 <ڌSaCdv01=$ھH,~ ~CkcXQL~N뒜/>xtl x#Jٞ[Ã>lv=L:?Ikk"fS(H ʨwL;@C6{ {wǽށv  P&vMS8=H ;tk|x[`dOrOY'z ZɔCnZ(8 r7iKS =pѴy)EV%abRa = %Y=C<4.v귰E]Gpk]aDۛ"5s&M7C3+9Tj$!Df[z (4Xxk7|O;%`u%LD(ڙ%\82; mԂn5_+ *E&N5wDKk/0+LI8rU= ismӴ&zZa/3F)Wl2Enqzy.᫨/ofƒ1y2klO󸵃-۹8_=cHhA\e3}Ap=] 2l[XȾsPk쿮m,;7> 2 Joګga7kw=[\4{ rR;j/YzbӺc/ꯚT_5S=ىsnOfδ5Hxל}.ϹwMė˓镸o/>];qrwP+XF= LjLRC`3BZ͒E2e-J,Ud@Xb%7(iJ*Yѓ*Ij+V f^:GxAJdZEa0XJB1 eb6OĹm  YQR󴴃EFjS=~M@ED/hB6+,,N[l2u zW[;5@$ˑ*E#!+sXr}߫-`R,xrx Bbs=Dqh   *QAڤɻwBO@c!h&d4]Uhɶ Lz`ee!Aʊ ,!A咔ghP&dj#X|=Q2?!@S2!v ƢsZd*Q E^W&D(i޾EWrtڷÒpI:o ,5 PNv F 1J22M~UAL=V= i"X ?'Ųd8Go`KzK0Z 9rP*dZ+*#a@)33Av#2_hME^D@,):6tYbh ~ ~!&?_|7?yŖb 뚩@/;A.F'~C0^_{Vjٌp60<&2ڏG{e5hSKu:F|Kgʂ*^fwsMt=- h%ױ5?8 TBR,%DlKwjindH9(PbP$!kX,@V LQkF|$%5ŖAH X8h$\DxŌ{.@Bd"XCdّe0h\q M2У6n0A GhZSp7x 8]0݂҈>%cx!y# XSL# s5%Ȁk5UFy@ʘt*Ѡu-IAg4ECw5qljh#˖`"ZEVLsXC(o#Bi]i'br"%@JV7Gr4\2LGiE#9qX =Pdhz(mL7GCsd$8dUza!0:YUJawH#ġ^DEo/{~%ӯ0Y*i%g6?pP&2 fE/WgC˘#L54ɪj1lCRY~)g -Yc!>8 b,+*9m5nx]jԥs#bJ*bp}ߠ1G7IʮQV,0tf0:a^48VR0  fQߨQ'1'Ba1Zvy'U6'08G=Fwf'7 TvGXc*\~-b^!_39zRJ[6< `ũt~19Lo_R1hA=V0*T1Jb,,^BbFhᨂ23!LoՂ_A3q\죣R' |[[4dϟrfoL܍,1&A?/ #um _Y,bg) ^TUR:WaԔ=`Ө;aN.$hᛃ7bB-&!P#F4[$˞:hOƒ,İiU%Ģ߁$%֩ao?OWO/[t% 565$4nǯ:nBS="i)TYT07]JH'( Đ zIwSH{'3LsE3fZ*ccdA QTok>B;]jk'o22ϼt/_kH2nqcZh&oshVfoiϤ-C{ߣjbK0BI$9~0!p貍b l( F?o0r}\/_yQxyM<@ ŁOf - X)I8z1r5&󸜜ω/w W:ؖY(rYC%hL S^j ;H+S)IKR#/MbɔYSp`/)!s桧 ,>ߊJK@l(n %*Q@ѯp] E){-]<]Fhq?XZ3Vd `!jp/L@pdaωX2_ sTL;$ZoZPU4\2($_ V'm!EX4ܜ7`L!z^[SIh  >iJu ^rH*i `w*]/,KT' 4{ ɖ]+P58B v@yK~'~x]X.Dה~_uxFʖR8U\8p*@S`fk!bb;G`ǐCNaHO WuZC ]bS W )ylW*]d#kp.ۭ=}H=UvvZ_B4@!6h5&d ,$ d|T 2 O܌F>1ӳ;1Jex'dеTxTF c(: R9Oզ$·ܻKQ{#5#X>ݘQh .dD1+npM9Lirω:1x9@4gu"Ӎpz~7v+aDsX(l*p ݬwh t4 ~TGiWc!:{$S޲rDلc&M|SImL5lċDQ%bi v<_Jfب.Hdf+A{?'"Z3Ϯk"SZ)xF75?$ֆMԄP5k/[+w sёlM >_+*O6h1B`Էɦ{TL^F\2A8 %uD+#Gir ][bOn䖾|A50|;dzezfN,Y D +Z*z8'~R0Ձ=^}>]\ư">;?|8FԬ\tPCk;iU0YKZU|_b.&{9@0hעBSDq;(>.<`&N\8כdw7ؓ&f-3yGM8.ہsg5xg" lNUZg* asj墊Jt^z?tx? 61#PuhEu9{ǀ\<JdՂK5S ^-oĦ`ɍz{awb\u5@GS&dzsPlfÝm=h<3(+5cCйO_6ӘLbz)Hnڣ6Ug+fޑ%%.(e Mz=IɬׁdBgd Y܃1oS!45tTR_vQ-[r9uv_nߪVZ'ӂIྱ'ÿ.!T0 o욅>Bnܱk[~+?aXUA|需j4/i[ЋPKO6X ^!-tensorflow_federated/python/learning/model.pyYMoFW4&KL'ƒLlXb!Ȗ&.﫪nM9m]]^} ugVpvLP]f۪os0upr{ucJukJu ]UCW.#~3W+5įB³N?ڵ "lPk[e>iUvMeu]햯B5pVi?t m6>Ӭm梒'shg~+柝ut +xZG mm^{) =VRFt\=72~]~q{><]~_7WW|n<%-єGcX;Q(4k[zQd| sTcfz%Tvg['/&o޼Z*]#tΕ \Ud85۩rݵ7%<@ kɒ}xd>Yɤ^_ WUFd2)* omеMN'с;S]SYB/gJifBRpWWpnUe`:A*ow؏<@*䐡r ]+54Yuj3ϡyN*嗜ЕF GrY;&PY[I2$&jUm(9 „-!hHښBUvPN͒R#nLEtrr>v8Bv>\ ƒ`!o.خY&e\otd,;jɮ޽":8"S H}0nzk9B (KAO*А}|N [Wu]2M;IZXX3DN\A@IZ8e`p" YP ,ncjXOr\-ˆ?SHHfkH0#-ۄ׍[#nn*%>#>m qOvAlae?B[+:d@-bu 17:4? (,}9a~~1T9)=j)/;$A_SYsɃTly]|7(Z&_Q/2! bA,ʳhU5CDfL_!yǨ"(vli'f rȨ]}~Z uQu%1g~"L$ТIj̄rN@Y8du[|%b"ApcHp@2z&-7'G5TUGRԎrm52KSn/zt |)E >Q]4I~*zJqt/rRC9GYu*;Ud 6u!-mntE]_|;1h0[T;W:enTN`UkaҠ [G?*= Tmԕ V`JhJZ%%#Ef'fgɧs\AmV#S e( =j4O*#n;b0> .&; yf:D)ʕI2&w& a"꿚+aC?8:6:k 3ob'pjf2H ʳC7G豭9g. v;3࡫robi hCfA v;E [?UQ6!@ 4 tt`ϼn9E$ȋBs f`<p{Ouݑ^}O񰼱F\y [C'Ȓ>a;OA&Mlu[%Нdž&&nj'iꇌ+Loµ^TµX TEGyQ;Gw(FS\71,-'xњѮ* s&\FѣĉxÌ&dM;`lXUF!L@WXIlrIc~N5 s⏞uaF0u0;xlhG)=Հt] 1ЬX\RǟtnK*QMmV|u-Dl'!+v<}a!b{x~=ʧئR50[G}RIGC4>m/(GJ;£Z,d}L"C. SǏhb,7,lE]HD0O *Uø70A_B/f=YŢ> Ee?qg֕ 5,hL%UA[fĀL5j%uI; S~}ю:>X[i߮=x`^/ui}+`Iq7Y:Oc]} A2>U5Lgv2x{rV74B#*@*ٴ%SNem^74`5h Z:DS(KTɁޓH#Fk]~CCQRppxGrbqZ''zg@SGPK^vc# Dҩ3Pq ㆰF]2d˾Kyr~-˔`m#ʌ~4lB|;F iYܕN^/7Jd~Վ CF?/bn"vJQC Ǿ⪑$GE}SPAH+5!w7C^۳vE,m|-[Ri2r7۝ yߋrN#Mb/91ܼ;hG˃C59nchWD=a2u;!0zĠs^IFl/j讼lozuu 4p| PKOP}'3tensorflow_federated/python/learning/model_utils.pyXmo8_A$b\u{r(n`kCX -Q672%)_3CJ9męg_K^*Ǹfmit`zث~-7-ܖznE. w"gXMF^f@okӬN0Vj^%?1\ɿkc!-+d)1XU)K!1`r9WTt;R6U/_6뗥/,o^IZf4`x e|j|ϴa|m9 tRK\ծF=0:&q.fl~S2_riɾ>~-{v[/w xeůŻ)+#V%%Q{!z +d+Bf`Z|-ZQ`JѴ^(JybT2d)݁mMnI^Gģ`&ȜMf4*޲4-jWh6+KYOr'QS畁*CcF:e)mYգd α ȟjYUU2Wi"L ˷Z\\iuڦJ0CԍX-L|#:9E@jS12ŷB+11kc9%/˦ ʲ7g!ؚPMHCV%HMZ+8]ߧ-[8x=RgNᐜ28j2f%b'+lA()Yp+_wf̡>=(6A] 32Ny9=I`3pY–L({4Adh 5d*+\2)M2^ZV".a&P7P`7P@6 =*u2 gD*6N1*Rc_*T-DSbGu4^e40la2d,6'PV@0x98+B(j#+< $YKY@ ,tDNi%PJFM#Ffa؂j;j5-N9b\a4v_֕Jt6-h\m'5 q,xT7; ad:V3S V㣖:N†;B_$o!d! ,VkE]n( W.,(Xonz*r-א(&Vtuc6O΁(VgO4"% }8`?pzr$yI@'q&Z * >kՄ)uzlEYL8ñqhs͝Y$yBA|n$1itOM{T4F춏P xwT頚(1B f$^x? q֝p{sCD6xw!}1>JE6^)>x<_ ~<'x8,)~j (P vl=/at8& uBJU3ʒ+ ʺS3?ÈbtкeӄRZ1Уz+1)t5q6qN4Sy Q#,VXK|CѰD.EjSٱx!50{ ٤&M0!8rmDY%v 3nb:q1 \oY8pЬ?c1FnF?sȰȢ{@1#7*q|SݮMme~,tQCsN|'i#v5㌆=H[.iv*3’nmŇItg~+ x1qdy3qR%$!lFn\ĞGjH {A Q⧷I1XG1=7yZA3 .ۤD&>޶b=9&qAE߁RMgC RhSogœ݌ШS $9AOfPKO~O:tensorflow_federated/python/learning/framework/__init__.pyTQo0~ϯ8e/ t4CZ1ZvLB\ 6zI;`CCTM}ߝw\:`J `vpr65Uf!T ,0-16 9 CVR5.3h,WNcx.>C [Bö "Qp %xv%т3#tս̎lBe^Wyz_>NX6Ril\_̥h-rCf[` ,#u ;*] K3$˳ dVLrG,|ֈ# Y9/yNuɪeBnH*4["xs}䏢 C?Gͨ[Jz\ɡP#jޠPʻ!I&*EͬYF5eZi+Rf9JP>Xo_^z/iWP+H FÉ>Ұ;eE(sUP(mvϜ\i"͌bE,iBPPҎn)KQ9Sh;B ī=6GTsYR||dZ7~<gOq~;,BPD~p e$hѼ/_m.ap>6jqi}߃=F>8PKOQ[ @tensorflow_federated/python/learning/framework/encoding_utils.pyVQsF ~АNr77s)t=k[mͮJkWI9xws6; *cᰀiC.y=ɜlm9MkO{2h 70dA{4BG^AiEJY!kRAu%|hBgN s;sp8³^W^?g'b}Uւi(&BȈf% A:s tRm`u :#]TGIPt zL_ߖ2]| f\#L_a H06̟HJ#\5RB\2Զ[~A(nZWJ% +8 NVT >BȪ`hQ:Q$/(8iTf860r5Q² *iO^=9=OHU7_%ܶ%m%; 5 ͙ 2Gz\~JHC ѝ!2BF>wä;!aw6dn_AjA(n c'jB⽨7YqϑZYCW0PKO“HAtensorflow_federated/python/learning/framework/optimizer_utils.py(QjeJ#mYZRI C1M忿%o9+3==}_{ ),O&GBnUZ7Ջn-؝(kY]r.E&*ވz/` WwW7钝_ۘ #l+̑"C  z+2_UW䃨JۊjJo7wdٳ mۼ}!k:nieJn bXIzS'2YVrt6m%/!+Z@T}[9b<~[.rO&E!mm_~I6@%ߚE Շ׬Y꫸ǩ@#+,ݓ,i[$x)FuڴB*}AbqJFDM^ԏod(8HpܴͶm jǟѝrO:-hyyG9/ M.PH4 q',=PB +C2(A))ػ,^N0GX#X! _>U׍3[ xhD1>Q RkÛڃo%++K*H=K$^ ^[qR[P2\x-Z^D. yATe52/cD +Q2i]H HX4hNI\T,#y/; "EUVhd.m-MDCY~ c9\JTbIgQnQU:})lIv,Efm#t_-]x !D(prkdO56r6ZQoCH5 T=J2tJS"MLn 25-I!7Qn=9rUk AvB%qns ZY*hO9-ŏ[l冼6*c8iI5C ,EC <:4`zh H ؽA>RL D AvKHDZ:/'|7&xJ|3g3 ՄTZp]*v9[Ԕ(Fk~#[yv ApF%DHnx{"w leH<-Qvd<#)lPb$ii슓 {#IkЗF n̂ߌ *)P[]̂R/1{8eKHPK@eC\}?]'oLus#؉(އb(YLlhTbLDMr|l5DeLPHA8n6{!⢟>a+I;mʟMAL8"x {e gqۛ仓׳S"+d+Ѥ@ >#1[o&AZ1XU_gL-]-.FR%ZxGU1bM[Z>cܩ8GJbӿʚL$?!K.]6hbp NFX yڶn_ {e\jDccyn'0^{|hvJe׷l,g$zKur#%>ime"FO,CJ>JN',;#HW$6R&=2Y"glPV>U/+ɳxm5ѳ3-N&5Cs>sٗ.g:0+ w|0B\'-M lN/|dIĐrͦzz=s^:HLY#Sz;V4F!!~J2&]zy)@oAfrTv^߽z^ʳ=幸/%/}Huؗw ,ɖvGb ȱDSѧd7HtEa*5 @._b!x4c9 #,>wU%h^fR3?I88qLaO 5}vKutI TYICؕw# ~شU>>PUR@C i /ZA!O,?ԁe Q32d6!I "%/v,xSHALw?0_$*: MMp]ɏ4x>%OpLuܜ.*(iBX'ghc <{ t]L) ʏA@ֽ7Iŵ|V"ـHu읗f`(\Hu>ûKl$E*WA9XgYM1I|?>Tf0(1V:N" QO4Pe)T'\/uagft`'.z m;M 74p\c GDJMgI)yI ,zr *Ɣ/఺ {R%N$1<;?܇1gVSt+#vѸ7Δbeݵ¢iۤ%:& ~٥F;ZpYFDXֈDR؛bQ3vXiۙ!v^S)Ne; R ,M0`NJ?fcD;;/#ٰ2h]PN]ήj0;uŒTdbͱqJ?#`Jjde"W1F?QXUUϫ% G-1Ů8mޭeat2-yvȏpЃ )vQe S T70|wߩ0Qr9|1^C2m4R#*~V7 \Nuhb5ޮe|%<D%04yM@SƱC~v(;6ס/fP r ;Hb81,aL1C^bE1Җu/а&{/`Gvk(LX:qtE56˶87ein 7hÙS<{c&CnkYBmD))_hF!h K .6t|c}:~ FLi2zNX4>52U~$(wcΆžh Xnx~G_Wn Peq`^?u&@<pZ!W@8O5Λ8UڛZd{u3E9?f*Vf `Hѽʘ2/ӘSݚq~PA3J$@%6&43WPXn YUعQdjѨ+7Cr&;tOd ygh(C[:ivE)yL9mTss?o"=3oZ|x[1؍88Y8{| ILO@Fe&y+^ݠ' L]{_ 2HgkH8 r:*A_}T*G׃_5\ +MAݢNEˣnp |2%SN?KA< !A`\51E{Z:ltvL+=FSy!e!y} (Ncq ӒW%#՜QSXun't8c`ye8w8%vNH]xwp>Ҋ%&:L + #hījT" sbJh~zSpB-3kh< Z5lA!71a]}MWuLxͷxahWN<1el|iˍhwTϷQ<>aL]D=f3~w/N:dk"oD6]"az1P*2/ysn9͌j &/#wwyIlݵA* '*d YJS/>jD|qu"Y'_|5 § nLà $ܱ?kfc~G5[YN6#TullÑk-xZ;2I_?`9clT&{oѦS_#RcG=j[6^'FmUgPKO2tensorflow_federated/python/simulation/__init__.pyTQk0~8ܗ 2+Ff%)R}vIr$MY%}w \ V,8#굃ӯ&2VEzX`;,!花QpBEAvRyA~BI8NT;1lT-߀T:D!,TA!PnB/zْ xRqBsk:U8n0<n#ei3":]./xs' 넡Z pM ͆ {#\ K)3"ܫnQч)$i?4I'qdW x%)naZΓ,Y-鴀x|H"|'KߴJBTdVh$M+MKJbiD+wC俢 C?G˩[$ B#ZFL'j?a QϊkF2ƪu(C[Px~ VGͿ׆ւ[57@E;qm{ Egs7*MH̆М"b{è6ɰ# ܠG%F,~eQB_t|Pl]VR:å)liQg W/o #ƒMMBNg']]v7t<PKO$Nd<5tensorflow_federated/python/simulation/client_data.pyX[6~ׯ &v_Y33A,fEQȴDldQKRv~sH]l-îdt!^OB QTK^KS^?lLU؏ىPVzUI-֥+sӦ{iR⛱EYM%~HߊsZp_ {ӈ܋x8ډ.P_rU{+M]jYJ_(0oQYxk- k7ov]*mjMV771*sª7^rRB;ojX8;iy?V F_g{1?&1d:tL:̦N\\Mg}?7Wc+Q_jKRUANW@V^vUFX( H)F{ɉQirv`/{QH±IK.9MS4In ?) F.wrĞ^@ e hYY&aKOf`ڡ.rzCK z| C~-P :UN(-J`KrSQ'Y[AIaٶdFYy n*~!-=UvDH:9}[,|n,_SL5e7Ve%pDfejʠ@ htj6(o u/gdeP?͖ei~)TYCA\s$!?E!e^J(|'~$.9pWpY<]$Bg|GI6eSXĩ됛|Q_$U.{'S*{D)x^v[ w \^LUl."9і93Z%)5L;nܙefg].4QeJӫ bN5A SjƪsO'vh+vwOz(~DAw Xu& M[CQLQXqZx)L&}"˩7;j^~C}a쐸Nor>_i,m>=(qˑyi[-zh&ҧrx4,dhd0 aG *8ȎӢx]@</5=Iy&m# "e ́ܽoj`,EuԹnngڲSYqV; "" `xئ3_``nLP35r,S+ajA\6uOd(Mm'_D 43W 'eLc1{ R&qI (4%rf,۬MI)9b's!n bL#/'ZꙠ5b}DE]EjJc_varう~͡s؊ٲфTPd_׳MzK jѷ84z`Dft˘r}l! Gzϐ*/݀|}N^j\, wbghԦ -t,hL"@6 M^C3C;d\m8ln#&:~<&~8œک=M|) m_Ǣ1.xЅt871Q+/z!@QJGhoj0`3?5#n.U@(|_4^,o5"(ā,G_ fώ g!kJ ҄1=Y7jC-qʃD eS0bxgA)ѳق!zt(EċRIrbӻx흛x6hp+H۞^.y~c4@4x:G#E_b=>J|KEO9=?$%J PKO  Ctensorflow_federated/python/simulation/file_per_user_client_data.pyV[o6~ׯ8p*v/Essٌ;-iȤFRqa}琔%'ʥ9ΝGQH ̜Bk%LU;-Vk oO޼|aΥQT[95hDGQd({4Xf6BIx@Lp5;UÆ@* ! d $djSɌVص3@| jiJ3Wѕfa:=>n slWǥ4'gkdtndɍF_;`il J[iwVV*i(0VemC/&a0d6d6BϓW7s<O瓋\]|2\M%_|cfJ$)(<8? P(OT</يJq-C4H/GRle֝+`Y=1ˋեM(Z">'߆_Vu1-9f7>+ ŭ^$f/RX[6݅jy;G diÞ8r[3 4W댯PI'SЬ]sQ40ntc =={&?Ji.4 Aak)Y(0sZ =n S-#&|-b[6 CJ w+}ݙZ +i*j#t`=kic p$+s'ʂ&01G6jV X EI{A›>Fky/D6jGFjUJVp%qSQU)dj~zs0Pj314;g|FPKO| Htensorflow_federated/python/simulation/from_tensor_slices_client_data.pyTQo6~ׯ88uGIz(0-q0c n(TZ:\%R#Ova}GR] $wCF_ ukzC,7KTVRs40c肳d1(>⤤|@cV& tG_ T  !-D k U]J2/Ӂ0 A _8Amngk.C~Nf39UւiU fBX1R@k|FIRG`uA;aQriUCGjK($ .{.Fqc~ dN0ngd F8LR:1w-:5f֍X#vFSIn2QJYIwN`uUn;AV†ҦV.ƜEiPc0Mymض+K) r+׆gwUGQxvZٝVi)WMe!7}{jJ/byҜŊ(+_=Ä\xz8`% ؇m;i Kn ǂJR-\f䋅r2MF{AŒ r |l!)}fp?y<]E~,V5Yd߰ i'xZlB?l awR󽸹`Z?%h($2=m0-DҾA:+EC߯͏|>`3 |n5AvqJE&i? ͗꺡!ֺZP}T\3a;gFZ:cjsA6vM2fwe?=/*5)9ϓqjo.=vOK@νu&sY_ż 흕O>5t7JPKO$X.  :tensorflow_federated/python/simulation/hdf5_client_data.pyVQo6~ׯ88/i>,Àyq"vA %qE⸿~GR%IV`~H,x;Y3O j+Y^hp-\lTMSxD;S,\KFI__T*&Jo 3lE kRhLA8J+!3R&6L& €/M  Wuh ~ pDĢ̇Eb:xےS@ү5Xj B@ Y!LN6 $\RHYD7DR̒2%[պV  _h~'sMf ܌f7p>'lO0~?&qks% ~ 45)Ȅ*%XW$'*K,**Ln*bLmW+*kZ(ӕOˏ"#ypJ=&Dykֵql R])='fн_I=yr"8vI֊նsU[GdD8k9oE(޵(cVjc-\kk[i{xg-ǵfNP"5{rp`FYց׉Y 6^)]ˍ#.݅Md,EBS'!`IQZ¦`IQԨW6X#jTk& $kd`2nQSLd+5K4<ʧ'0f''J$EcY~@e-s, eXbm`fƪXp ƍ&Y.t=Db(a!2n̔S~\Mߣ??__㫛g-v?LDZ(B(clT]XAlh!-kQ:`$sR@?q"Co&RsTdg7uD ub lBp(Da ݴv)<@K} 6kmٷڧ-- wkEI<#:?/^1=}յ:ԫu^IҠ{#PKO[Btensorflow_federated/python/simulation/transforming_client_data.pyXr}WtiC~bH\-JR < D2.NRv6zAwn &n)?u~5xCY~b/-֜ -;Pi* ( 'yIf<, 9^kJ#A?&ff)nYk^]v;Y~&WWTWg·4J?BX@![fvIb+LgN -ҕG*I+PZe;ѪRNi<Lgl|?[|aAO&lLOt8-fs|zG#XϥđG&hϜwęrX+]lipʹ e/Dlfڞ9tCT=.NpՒ|pf| ̶q Ƀ$Jv sbxD4 ͕Ay9}%1P:x-IbCHǥVsw|G7 f~_pW;ܿM`!E/;LV!+b_2T'}ǒOqt[(T/zKmRʿ0!sW+^m3A[u:R04Ehhh?jWU+Gy"h`:re\3-8ul^i7:k<VٖSZlH|v-w VE:DBnYY*R 0<)Oi6vvjͧwi }D0˄t ikSs%CժHq:,W6yfrRk=Xr4M<,BXŠV$rͥFyiESpNX20l|R"7!z  XY~GdinƘKEYY%37[X͊1qT(Z36 Un!^aA\[2̼Ʊ@G_EjG0UNĝG&tʹ0_c?)^-qu@FG慫f,F]=$,s`nQ]K#zkfH%Ξw˼T? OS#.Tm-avcC6ֶ^zthGz>PFgHT[L25Tŵ64~c=ô-c-E/?T5nK_![44Ze_5(rEEMxH^a”̦ji]ik[UݣBlzDmsyEА &Pz JxZc!:jj]\9U[pG} sH^FG8b=ogfA<-E_u<[9j3Fmb3[v0J;tKCw ag;Jx:q.tn09/^_ЗTi;c\z1YC+9 WWkd;Z>~0Tzu=p9ڌo!г<ڌKIGln+$&1BG[Fž.]wQ45q ylK_ ݷP]!k!h.UnG ?KՒ}HÏN|;1i%VZ#|&f[Siy8;j=eDJ䵁s=YYB[(k+F՚}U5 PKO;K<f;tensorflow_federated/python/simulation/datasets/__init__.pySMo@+FJ.Nskh쨨-QTUh vC}giU9 ڙ7o|4`7":+c=O3q׭+tLVT F?V;zf'"9w]p0=t0<"S4-)]" 1͑DdX Z ʫ>ŁQ|> CFqͼ~ʮ|A1EԺ;"T;٪8 xpĤxS KEz~ѭgyR)@4iY4peo-ܥ77z-sfȶf-kH=[/f+IO"B M_$[,RM(lַ2%4Q8M_:DjUδ(L<Ϧ׉TbPKOBBtensorflow_federated/python/simulation/datasets/emnist/__init__.pyMO@#siԡTRUp$lPUY{쌴uwǘ{f@7|v>yfv.0( 7|[GB.FkX |I%U#X7:OIr B@wЩ-0x АF {2PٮפL0o2{]h%񽜚qx s:㘨6]_g,_~)hI-^*LFTP|lɴ3Q9<;ZjZOx2/rH~,4mZ\p^dEau g<-U& Xdw+g2+) IaX刯=VP%}vP-Bkiztp^jQ+,5Dq_zaWYuhXi+H^5vPò ڮ2rw~+{ o{'o@ j<-|# _@Iȥ%ڪ '$Ӑ!W[#dW`ݢ׶&G+G='QZXß(a)Ctensorflow_federated/python/simulation/datasets/emnist/load_data.pyZmoۺ_AXUI /6{pQ%QNdGb,v>3$8-ؠM,j83<3CdJl*Ϧ|/'WJܫL4ߊ*R,U$+L){Y42%&]od?'S:31Gb@Wÿ>ZE ,-$UBB)E0_oDfۤ\jZyPJPKo,YaYtbyJ}wN1G*Ek BnP(ʭ !»2'ER&:˭,D.$ʎzXtxu}'n^ww7wxvs܋߮|p'>|}sO?on{BVv QEd;: ĹQHoTIueJ.XOȰQ:ѴE&뤔%<[{ H%ĵ+}ۛ{RjU2NU }L"_"ʪP /ແSXja_"}@ `4 IbgWR$pkY\#v zbVyRlJbel /j{&}:@׊;Rhm}_g؊2 . BSE IT9&y18?, ix|}}Kr);LF!'kF׋T,\Feg~%ˤ.*yW=!($0Cs(||!(,eRĚaefxIP714Ŕ!v)r&a]WnV'E^mR$ @>M*N[U(4+K22ĵxp#Kc;UDW-B3t|9Go/:onRZ)ʡ%$ *xkd(JdJ+o-\! ^7E#GTኰA' 'OvXpClE1&{o<~$J^o<.g@d AFHG6'oHi`B31m<:ΎM6(Cx#vfp<& J91.ߚU^0ߠ?d׾.)[r%7& OMLR:L"\`^΀F']:'ylA˰\•,dX2PFPw9fkmc.:3U -I&֥F;*2 wLeI͗"@F+vh /@jyF2òVl';} X"3!"d2;'l:F*_&rv1r.g* G8 gRM&g$f, ~}j&Sv6Qx4{;q|q0\NσbK9I8=S%G}9 $y[_D/eNH*p]%$ Ɯk}^`ټF/|IUĕ"'\}hpȎj΍ 8 -dr۾{v%0,uJ#hV},XAOC2.lScðg N4?h$84f!s,o3 gbmG_w4F'o* x7"T5U(AW)T%% >P6#Qqa z\78˛ғ+nB9@:ݚmvxI9&0HQrh98>@>QOJ8 ,|i&4$e2ny+cJ ֑6;򦶥~hjY|J"WC[ >[$gst^Zdݨnj|cKWbC dVU׎ڒN2@M)~Ѓ{C ~P66~>rY"8& (sAaޓ!ںG9(#YIvPT_"/mY:j<&l#X(~yMJ():E4Î}`0;[@QraXF!]KgVwQifw"wnKowElA*[2;.<ht2["p/dsZ".MZlϜBF (LQ$H%}m69qo-3w4x<7˸:iF/+>EPҥbmb z_O'7)_}F RwٌoM$ ro ~NmUqϟbdk'DYlF"/l15@":cK"ܺ,"s7[PerfFTx E3e^9noLq#6{P\dy5ᆯXڴ/],vgmk0g1ojX¬P/۩0jcvVLWL> e1@E1 [&l.nt_e>qtZ\€xM ]J{vwJsĴJ#ҠҜeudj %]rfNuz~K_G|Q5=1.d߸E^-E &oL'e0  )xIC] i_7_f(ރkH @aG\:"9 d2HSICi˾ GenwDkwAbǚsNcᦱ- 5e{-Ӻ`lAqf!Χ>@asz!~uI:\fkTDͧ_ÞU* B&g-LWJ@2$sU&ZD=:r3=Nst.blX+ ao:nXdyK4 )/]ٚ~m]Lt?ŭl_ȣ:Zk;IXFr ۜr_2rJiغ2Dۛ1[?P!N ͢$"ߡ-{*wt,,cJ`yBy()*;8ک/nJMMKvqh۪ODwR!5Svʭp%פť#h6iǦ]pq ӶT[:i@XtOf)1ͪ,vYZ=cF3bۋ SA#]xӔ~}ԍ+kEJ!:K9BIwb+sFיK^j+=o`FL; =V0b(Q/N ~3-:rgV~6@kwp3Sw6=s%T?;GohGǿJ0##n)GpUK'd93PKO[eKCtensorflow_federated/python/simulation/datasets/emnist/synthetic.pyZ_o8ϧчM[jO R_#)dmᑟpes-֘oONG_S > ȐS'Ce3ɂ " xLH|ytE(5:FձQVo]޸mMnxun@1V>E\ُF2Gꩠu(}a L uـW0ɐ0|<@w |̄ʦ@<1D%T*5#1Y`VKvӵT9*cC&L(G4G<r2B FWZ bs)Cq%׫<ȔG rزfnTX J 1b.cxeYlQ$s @}:9&7p3:@'uLCj!BN#ZF?$kGp 38)"x*Q,3ÇTƲSp:0:$OAX#j(kQoJG;/Jj,ęFZ^IJ*WIŮZj8c_ 8ye:'U>>ij~ku;fPASQk.|!(O:?'3U YI&|W>L>J*k|r\T+X2o0sکc>b'7 p5ul501\!pV**ʬ3;'^?k :^T4WVM}a*x-749j~nA52sk֚uj>xzx}7]_voZu+/KkPp |u/9,~ 4g34g34gE~yMVp^u9r9A{ 7]t]ubwfzlN FޜXf^M339kΦ+}xZۿ7V8ˡ}UHqkh *x~R&OӔ9[t|/p~16krDzbUmz7r%5t9Ag/W9~&mn>-|wϾD&Ϡ.gKdr07{n/raͱrxuHYr$UWTKFR;Ug/􁬁ńtJW[0a(%5:2PiRF7S`^®YI|'e(߆ٝ8fjͬzWŢ S͍x7-('@Z V#X(1xdYI|p> $9bV"h(8Z|nPBg}O!AQ+n3%i͠ˍCfa=hXihIqPUǪ]eRVZCqߊ;/AnM-l}u v% z1C-eڪ$.RmOckD2BqTJKSlV A%%GPKO3 Htensorflow_federated/python/simulation/datasets/shakespeare/load_data.pyVMs8+T"cB>䣖TRlk",$0~_ƐMޖRu'>;{s4sl<]*l%rͽ;v/ba18blS2 Vм~>K+uuɠ]o{^l,׎V,J01Ho %y .aj'~.qXsxKNwd`ܣ I o2#.A=E|6F`i3<3FK,3rSw:CҧY{de}/>||_|bnɞbxz=?`_}&P+o!)"-x  [H&2B^yZTT #Vi/%qW>$m4{c6V( V84SWܖʻJ޲0LJW6`jb* jQV^6(˚w"u\LjcXYL@D*BՊE”F0fsћjb*Uճ' Z0ջ\y{yCѕR-.^.ڳ>'>ssN-;n} aWX!x!*N=ti-&1SM9q @G #H"6/ u?']&FI&p79"(r9wp4ݪ`q&_6a0^_V`ov9˺Q =cQ{#@cDls;萏oJh l^DND5iQR *JZK)-AnN?:`Maݔ'-=s..PeZž5; Ag;9ϨZٍ+(BO֐POrf¢ h*O<߇MrcKX[%2~W*1pkVkʒF0HN$ cOAd$''+k]XC{)XGZ)O`7?n.a?^ ETWʚUˢ@Ԫ?:vB̰LwUեQ>'tu⭪ܤvmSAHA Ҁ2IUFVku64+HOKj'_ٷ*NߓW PbxNshӍl|f(N*kӭأ:`k9dLA,ZBZ@uVȞy٬3_M6zxm&jx=BC$|ryGe<ŗ$^6>]U .(hf+S7Q"oulzFua9RηK/Vjw,l}O;4yG٤H]X^©J]>PKOxs,.Itensorflow_federated/python/simulation/datasets/stackoverflow/__init__.pyn0 ~ ¹l@tm^`ƺ0L;dIyRNz/Hjw?LaCؠ /`5zAXC%dJr G{y ;!uLĂJ~b{0*@4>JtʀJ0(ڍm"G %Ղ:4ώ}͆aHY2̮bU.1xh :R9bV"h(8Q}-Bk}BjVѪS$hc*K4n^/IQ[՜!ѫ 2$TUSﱪ 6Xͳj"ky!MѸ:fn{o^#f¹L[QW1u%mo($qcaMk+E{_0HeI%4Ka]}:g#=ӳ:%OPKOSO6Jtensorflow_federated/python/simulation/datasets/stackoverflow/load_data.pyXmo6_1P[~C>x.h6iEQ-Q6YTE:^3d;d[m &3aѕ- sF.ti ]lJ5_XZa@̍.?dzMd"KaeB&lé+CdqhTU;$KtNQآC8 P- e(U$9%SEDKZ+pf*%AT* H ˑYX[P8.'4'W;bw>Ϥ1T?V]gbX.IK=TVNZZelf+[5<\z_9h|w@Gw:~O>Oz2nnr<\]Bߏ/EReNT{@JU{K'Y\*4@K VT88@g(4[ w (,JFZnS,4jʜKNӕ]r:<3:ߦ[bzR DY`5bQ-:ˤ[26a!b+b]\(M+r/pw"I{KHdJ~sNU_\57α;Y?ra.: FDce)"^lCIuN&YNwvj WseлM 2{y&CԿ7"$TJh)j2C^t",.{SNwoW0Bn}~DPA/\#>FrGI}q|bhI3Y 36Wbo96F ׾@mYX9z/ ן=Wcԟ( nݨ<ejҝ-/ 8Tּf YaIXBԌK6!JRv.M[,+~1А>\-EƩ].[p ,\!oJX,LX(DE!r3{nyƖ + A+ &V9THI::(P.d! >*{|+E.Q^(+ zd> YλRxү Ў%I9-.Hm9֎3E?V'l&kvkbn;K&֥7lf3YgpjO.ꑃ/YrWn(T 񻧧 ~V.A{vZP$j%JPO=%q 3[ ^va?/RfఽAz~ Tzi  ]8w|!{1pCurjiPa0`(e-{=;)A2T1wޖ$K= m"],ϛȦni%r%5Q ̥Sm(,f?[=B,b)   /_]]**?M/4uEyD;-6F9g+Be |ұ@]20eY+?d1 OL25nCG/r \('-r]z:cʽg'Zzmon#uh؋1G2[iFbDҍl;q_b>ް3a;F:rM֬ {&sTF] %8ż"S^W-PY?1fniPKOC2pj7tensorflow_federated/python/tensorflow_libs/__init__.pyeAo0OɥXm/mD@сF"64+Z_,{<ožuch[1vtܴ7D(ZBÀUT I/-NjtZҔXUvDCγѸop5 8Y&$QsGlkl;V$ `baNAZʩ 3z= Cfظf}(znY&sϓ{8۳ PN٩A5<8aPĥbeZ$gKi,iCy$iT99H9GlcZLN;$ ~cY3f/<͑ih9|yK%\J.!4敜8WKg*7PKO$Ύ}9tensorflow_federated/python/tensorflow_libs/graph_keys.pyur0<ŎsH:4=՝HbL\1$,X-HT!~mI~ku+. 0=ngR|NZv;뭁ˋnRZe#Xb,!)Di;/HCs0tQi.\pf'ʰ=lB5R > v g@ٺ2$27ԌC0okL7͆agͨԳUx9;Ѡ֠WuT06Tjtf7\Sв2SHYJyoGM /&`$& 0R0ߥA5\MqD%#܆2)O5-A<;,x K=jJP;Сj , oaהM&Wg'HsH[5ky! ۧDW)BUfF*\ˆ\[?qyv+y^0rbxdp=I 9T {kqDQHBN5LYTKtlYb>^3e:ؤe-Y`WE;ֵ/D{,!^!\?# ^-ufA8 #`~_g8%*US7PKO0V(5:tensorflow_federated/python/tensorflow_libs/graph_merge.pyZYsF~篘DV`jU#,%KE`g}{NcwĠϙ(VuUu򘽬uÞ?;1bWkήx* ϹL>*<ފ m Yi3o"JT%{?cS\ȼz4{U6鞕UZŁPl) .uDɲjS"-3ζY60$E ױ!o4ӧ6N۸^=,RLB=Kk`(KfnY%Y52*bZ6Tr Hh,{ t%;|~vy~ϯ+gW/ٻ廋WW. ;U8 Z"@=vyeR5Rd Wjga5К ˁJ!6Ie T_M+|T`PUJCrq+Ck >1L&* ?{%v3WU)KQwRhH+KJXL&Y:`?.j/av2a 4*k-w"Osmc6q<2? )ŹdFI2כ7-ؠWb䒣.8lR%̈́5 G0YrQ3˫D=S39"lc<%B *-gG!!\DA|tL0gl6; )f;snD4CN"B/q%#;"!(.lbQ0!E׬ ~RpyP7O@\ʺ@6|hw"{ 3g@ ;I`30(`̻! }f.>_ppjIluv/^jܨ-p\ y+l cw3nL$1zto?ُdzk kr,$Ԯ{EGZ RIj*"ՖnGFl*6/ JْUPV"^B]EjY ةn 3TU)J`ه Cf=whסԻM`R5_졒Sb1|J:VS$$N.`zj=#uHdA2Cs[8 Z] O-#鰐uӗ\qP}ij7nc-X/{bT|uPVΣkedAFCE87>0O s e$2$ 4jH*UPE`H%bҊ}qwŽ>~zt#3b:&fۨ xb-u9}Ŷ#45Ojke@tԂ(7^ᚸS>Z4}06:ϐ,LGjPz1gvKA1Ÿ!TPJ0@EkcIU<2袵EzYzxҏd߀ #ڲ4KcB잠eF& hwr4 "OgH].Rs~׽Pjz>< ga?!Ca::>ˌuu8 aӓ4h`pbihXcHݍa;jDuܝDM Q ؔǫ8NP=׀7^h Ys<< jү:6?EH.][Um>hG84{f#}VgLض7tl#C-,pިLtgwIC)Xm.uP&&rxن *FZ ʌv#g>RV?>.lLt+h&K z<W)u qǜhF Uza(66DAк4Ah~eI:tJXv!aXSZ ̟: vvMߧ4VOKﮅzƘANm eUz&\V!(V\enw|rgɓk'`E_Nw=P9bxS7n*C6B^p\:wALzpO U衮Wlnbu00*WTnp$KM_y^b:xӔ`fnI,| =h}1 TNsǏhi>B1INWz^sǹ]mWЉm򗾬γ:5Wy+N3q{EϮًnS޺gJAsQW9*u˯9sr`\2>"g:_z_1ѺS9Wwa\wWux)SဂfT3( J=СG޺ZTϼ>{LuLC>?s0 ?=_@bX DFL0PKO: (3tensorflow_federated/python/tensorflow_libs/nest.py}sF+J B$;{{V)Q#,eS) IPgz|ׯyARs*E3====3:_=m.oude^]d]E9T'J1). {zԻt ͓ZgP?YS%OB(ȋeLzs%^#CF^wnJ}Bbp0SQD=?]` sUYX%~ :^T(@d*&:<8v < {Y=,a66.^4«5$CRgLz!!(׫U^TH ID24{]gȠ8j%.J#-~\|0D.z":٨y`ۗԏ:C9nM,}@$^,Y!4E~qf1O|Y|i5hQ[I[GwWYzz*~f^OE;|W8~*Z9jxR{^tɻw.?Fߟ\Dg8yw&X=}T(-0C~U !a?%@!b`ITZZj]- ͅD\]9~ۍ vӬu~u.?Ǐ?N.~8|ߢ˟?&QXzag{pRc䌪W+qPۇy`` -L֋csxwz,IvSy&z&זHg&%}ÏZ0wN?Fߟ{LO̮02OQG`FpBTsfe_֨c^ԓ"82~;o-㐮r]-sP“ld7K*I(@/ `@>~L`LT JڟAxN Ӣd%% ^0pY} `|B@椸)G'~ ,ԧ}YZs0t1o51n9R'Ik#FG FSLeK6;4S!(b`@Y_ٶCLBl* c@zOmA"DsI;nn1LThl V י.j x)j`adR٥a 1fx^dE dv5|y8f8`%mY;v?bV(ӂPچi5\=pC8|ɢic ܭ:DV2V]x$ւC쑣 VkѺj;?bqX3ajɇ3D o/#QM*駑lu %9>0z) |QCPbӁ%_]F?Fߡ&XI~A]E:b:`=(/Lq?@4&~cڑ06DLՁn)EϠ!}ԏZJ~E$@`-'`6Udcpa/:yO'O򫦁H7(kCm1L^ WE]MjchgAVȄgO.H7P0$Dr)a3Y YPI^Tb_*о숁$Ќ_1AVǞXØ86.f5hOx8 ,k[sfvP{.,y : b"b/v3,,$ c00S/ĞS ͹bfpIA bYW1SmRU48(_j+Zo6aK_k"|-y]ԋ'oTj;N ::hnE&8T 38̼riIG@ o 9 B!,'x6C`>j0`LC9r MΆmkۉ18((#T{*LPV' <.  ?EkAj<7$aW p`Yf+B퓀^fw;F1ᕲvAk- MƆFxf/ ߙBFXF!8 Ҁט X\˸jFw[:Ç_Qkğ8g}R^պ}tZm sG>==q: ؔbI x e!ꎑZr˅ z:p 0 @pfFE׀<!Rn9W$d~:'EoсQ=L},0vq^/SY8TgcS&t:6Q*B9 ڗq3pTM L$Y5Uk6R'-(qޙNzŬ$>gu'RvD b` x E`'^ܵr- 3RWdS2{>Q\$u)51 L(6ZhZcڎϷ [#i.ۛVp`KaE|/Kn'c0T= (9 .#}:xAbrv1u,L8RE'eWpHHLʲ+7;[$w"@s#XQZׁ#z!_[K'fqVnmŏ$RR7'<|6Tg 9Ԫl%~tNm~NFN/ -< l3o;ǻh5}k)s"sYSLJ_EyH$Ir jFhD8=[\FUTքAִ6j_G{?jLj,,d?Q NZ YRٙ@I̦$6{{BKX d9D@G/xX"vUJOn*zhF554h''s-&75 d|T mły#^Վ#)ve.Eй!)`往be3'aΚxW&kHHϊet )0&c\^|nG+;"ܲaj~hk_,jّ_FkQ1.M&g2=-<7eLƉ>ns@CNOR]#f$*vҟtkYW{&1C0e ŲKq4 B3ۜ )e7{~Ȑb'#MQ'm.' c+N6Eq1BlOaE#>I4LP:5-@u1B nIZݕqӆ5t|ܸo9[a <Ur d[_=װ]G R H8+]6o6:m*L:F2k`ǕMDCu[ڎ7jyh1jhx 7夾wP3]F Mfԛ>+VC2P;0;>6/4 -ZsZu-T`4FK2mcڌmF9{漐|q?% fyj\85l(y..h?aNT2),!=%K-=IQyœQ1d>}}d<*mԴ[`fn ~RM\dwzOOڝd-ՆV(ykf͎cccj _</ z>=o>%s7-FСH0"&$zd ߻m:}mt M0x|Hep:R+ 熕_(Ꮛ|T)8O(Rs|q\ʤV@N; 4'PW4Wߧ 9ihMYk.ԧ-&R߿QdFUwN'Li=Qo?}uvu^5~z շ߮ȯh) e[П89܏vۜ@mM ִLԚV|u=:hj5p&tb{Тc4\AkGA8vx< ū#HxYޞ,Ap_c_c_c_c_cn1 NԤh-UN~cƽa)ck<8IXDmP60mk/t%D[)HX;Z&DZa`Uşw4>a;kVCM MS[|B1AxZ~ &ѭy ]n`|Qk61E"%r2H!69X:\xTp79I &x"ZP|nBfP-׋ǀ~JCurO^RvW7%CD cT ?(f䛋ψ᷃UQ8$) I<|6{f6`zB+~mLG?O~u%%SXzmggª{ Udo,;mqąx2!.eejfmb tF-]y'i& F9( yI|R5[.A8 6%hXL^J.7ί5h&emlYyb lԲjol=]` +4&--59Y7UT~d3 42ŨF/Э4uO1L%b1O*O4߉G50g6 vFsٳ1@ɭ**pJs>l\1=CK׀# ҃⽑>{|G/~2~;jqCY׋+cRCL->W9@+QZɩ"ڛcNkކ;0tGܡpϰ$f$>Š5=em7w/UҍrBolmp R~ 埰KZX_sbl`[TToϥ&Sʩn |uh#;buqf7^Zd)Is'U϶AĐ\G Zw{9,Zה|Xuqu(O-p,[bWAyҗ^K֫TCh6l:kęGÊVb5L'><>zF]>@ `e5bϠ1=(z!}db~E]}$"yEHit-I׹QO< 6t,Z{PG̮%#2a q#oӉM~V:&(Ŗ=yD7%bdʰ oW-^!*Q60)] v,~u>vbk.Nلkl IaqP٩ & oT%iAoQ3c{17CAՀxdZGnx34w<62oe 9l'LT/Z.[k-:٣zhIcnK Jl Z qjT>80R~'}4oB; CYioY%Un5as^R-ƛ*Tj$0jk&&6uT[Y:*]ڌ.4!e˥\˥(E]Q;3;3/R^+{C: \O$.[sYRi\A0q >dZeاJ\DQFŗ@ZW5eHP*$w32u*$mU4FژR@Z@>ۢ+GۿUYËv mE$Ňۇ۷*J&áTlI$^mJ-#2zQnE!aeLYiUåKd?s6~`؄i%6zF^ƛ7"XA\eah7T(TZsEieEMyEo[(PB"=txG->sXFXQAN݈37ca,ʄcb'Bg$Mv4jylm[^x"!g9jCn։ FU0F?kmZn:: o1^\{?pHO2c :و"s5+g3:ful`Y`di2M 䫜@p4@L"zk|QmbQk%H/XmZiXB /(rSʦN|80#P g WT\enbȠg1@~-yF-ݘY#w}N+*8qZW-~۱M:nZ$hIb2hmQd ]2%3x)muPY^ٚQ}h>t: wu*)# gpw01=uP3}=DtKoz+6˾wr:{K­Kspsʓ% i5oX2 `U!h?6H4<8Wܖ9جE+j1 C{^("pCq=j#fz rGdtCSa̩ r{@H8AT,cK͹Z;^^Et'i*#^̷]I;AuY%lc$_,l~k<EiGW[nI ̐ %?4Pш,|V1[:1rA-@ʸ6|hnEwq?IO 7@_nb?j&M{| "PRef Sf39 H9]¿crA~Tb֞O,`;ac$}ݿY"8Im{C%;/Жq[ug6`6<k%yԦqIrnDEPKOlpia -tensorflow_federated-0.8.0.dist-info/METADATAVMs6WlOq:%;qj&3Qxb" d޷%K'b?޾}U>hgtf)EʸըⒽ\fI&d](O&`L1@ʒkَ|qDTyD[9gG|c;rȝytq~w6LᅪQLU-\v}d8łQ$;s+k*G?] :.y^f+Q!{=/6^[e6-o͔ͮ>_evjTҌrxƵ HQ.tJ4+ʮ~{K;JHO7б۾s%lz]OPTعq}>ƭwK8nvU\)kӝ먲!ƅuݫ/O'8~;7n\M3"w ˞`+'T\`l.SY+bq|sk[~@8:Px GNG7}.[>ߝFg:)}ɏ{Zѣs&=qQzvpN?jduߊq>K^M]}[h7;G{~/~h\fa&pGwl ^ܓOXY=A.`dIp/K-'Ġ 4gAK*Uhq3N^$DS wZVX[_9]<!(9 ^+dˤ(,@̒jԏa^* >k-Aad`Pn[b퇛b Œq2iN54@=jN e% >~ZuVhK@;uKط/lrt-6c^`${Ҷ0lG^#l3DφjH@c㇞ X;fȰli#Ep%yRH3Mp`.-H& Y{A \zUI%gY= DJQ6YMqȨMﱐNγF*_eL`!GC j'En_!*;jrRn&a`(AGdK .绥:r0;ݔyS&|GTI)4/-t`Kjw$2案-& |i+Dx=eJbtV)78s~ 3:w6$#4P% ٥@,EmC3CӴ~_ΖCZhr0Bw1YBژrt-`!hL)S2ԢƧ" L0k2%%!`&0> Mh#`XP0Yt ?XMaV3˔TqoFqrωP񼇏xT;G`h"4P7$ ƛ9J̜kqewn1?Q>[40e čzx[CPⴃ)OPG3r$tl*\ {p.m”F= 1\a<*x*\y%\Dm[KylRHkuB?@ n}l[#Us]/h;,o,2S6M4qP@;k6$pE!h',2\,HBP"O;7ޭPŁ'cH45Lv_/\B- 4˹mJ  <%-` Dn p0E5yqɡ6#Do$}8?WVJF9#`&ܦ!BKj8B^SQcǭ_iۜ!hh~3{A")~ eaw OeM90r kdK}b^{?W`{# x΋(Nc% фC/Mlu/Ja.8Df}]?+o=»Q*+1b*p"m,F~5Scp+ Oa\qbfƒTlv u%EwyoLU0N^ H,r1*yGAA_)ّ=6=[yx AY*07"ȷ|O>%W`)M>AHWTA~jA{%]߁/M6/pԣdxt 8ؘyYތ*5~2+Q1ٖ3.'5pc~9UZX`J'SgzH w?r`EݱN1#F`crŶ tAwW sOzT.e \$czw :sb5* ~Yg"yZ_Ť<̅<bVٿoӺ<1ppŠhw4w|Jqo_gSgZ$:]{Fw^1B- o7[zJ?w`\xhCW4F#(1$.΂S*z+wٻf\AfBsLJ}b>_~]cf򻱒bw \UΙtҕ[g0 7K5%}b崀u3%#0c ; "wuԆeݿ$>TX7SW {jpP $׹C|G uK)B)ʺ8ŀD;#YSGߚ,tлԧo{t"]0Z囻7}طʺ[.7ٹɘM1p؟۩1/4=/gVG[*ܺwupE "NSe4> 83;zg/KWBրNLQ?܂JE=zxGU:Fmm}d2C cMfB'eH <]w ]k?}JZ{tYkE 5TR_K~Dy.@Gn4}\'6&@4iw0Y $A}TGRهϑͥ&r"n{$g1@C`m;}}.5| > o}[DOL/=WuS,CPbp +]K)4U3òJ3B%/JP6НDž.Y7v0K)O~Dsie#XYٕoHbԟn$\rx)%8=,ԂqV!п#^nU&o<-Yg^fU) ɅWoWQ`?~ONR¿}-DzP(he!KܨRau|T&j`؎x'>~kL1:ݼ,8K ʮ6 ُɪ\R"lfg18š>?yg\ܺM\k8eN\qx0R^ZW>kb2 ԙR]trk(Y I "B?3{Ysw90-ik~<Ü_~]Mn{JsvBe>Y9L`z sJm ] `rԗS:&;tensorflow_federated/python/common_libs/anonymous_tuple.pyPKOiHp7Ntensorflow_federated/python/common_libs/py_typecheck.pyPKOZ9 >Wtensorflow_federated/python/common_libs/serialization_utils.pyPKO[Of ,\tensorflow_federated/python/core/__init__.pyPKO_? 0>`tensorflow_federated/python/core/api/__init__.pyPKO&w8;ctensorflow_federated/python/core/api/computation_base.pyPKO1P9xftensorflow_federated/python/core/api/computation_types.pyPKOk 4|tensorflow_federated/python/core/api/computations.pyPKOVð>2>tensorflow_federated/python/core/api/intrinsics.pyPKO"%(WC2>tensorflow_federated/python/core/api/placements.pyPKOx;Wfg4tensorflow_federated/python/core/api/typed_object.pyPKO e 2tensorflow_federated/python/core/api/value_base.pyPKO^V7 .Rtensorflow_federated/python/core/api/values.pyPKO9q*5"tensorflow_federated/python/core/backends/__init__.pyPKOk?tensorflow_federated/python/core/backends/mapreduce/__init__.pyPKO86qLEtensorflow_federated/python/core/backends/mapreduce/canonical_form.pyPKOL{Ktensorflow_federated/python/core/backends/mapreduce/canonical_form_utils.pyPKO,`)-fFOtensorflow_federated/python/core/backends/mapreduce/transformations.pyPKO%;6 tensorflow_federated/python/core/framework/__init__.pyPKO;~Y1tensorflow_federated/python/core/impl/__init__.pyPKODW 29tensorflow_federated/python/core/impl/caching_executor.pyPKO+H tensorflow_federated/python/core/impl/compiled_computation_transforms.pyPKOp.!:Ltensorflow_federated/python/core/impl/compiler_pipeline.pyPKO@$bZ 9(Stensorflow_federated/python/core/impl/computation_impl.pyPKO઩ H<Xtensorflow_federated/python/core/impl/computation_wrapper.pyPKOm}KFSqtensorflow_federated/python/core/impl/computation_wrapper_instances.pyPKO}M|i <gvtensorflow_federated/python/core/impl/concurrent_executor.pyPKO /PH5*{tensorflow_federated/python/core/impl/context_base.pyPKOg *=;́tensorflow_federated/python/core/impl/context_stack_base.pyPKOX ;tensorflow_federated/python/core/impl/context_stack_impl.pyPKOa}FH7tensorflow_federated/python/core/impl/eager_executor.pyPKOu;:Utensorflow_federated/python/core/impl/execution_context.pyPKO(vkȯx6?tensorflow_federated/python/core/impl/executor_base.pyPKO@Յ#9Btensorflow_federated/python/core/impl/executor_service.pyPKOTo?tensorflow_federated/python/core/impl/executor_service_utils.pyPKO&I 8tensorflow_federated/python/core/impl/executor_stacks.pyPKOa5 <tensorflow_federated/python/core/impl/executor_value_base.pyPKOևv Ftensorflow_federated/python/core/impl/federated_computation_context.pyPKOX6-wDtensorflow_federated/python/core/impl/federated_computation_utils.pyPKOG[~+~;tensorflow_federated/python/core/impl/federated_executor.pyPKO˲ 79Ltensorflow_federated/python/core/impl/intrinsic_bodies.pyPKO N7tensorflow_federated/python/core/impl/intrinsic_defs.pyPKOf: tensorflow_federated/python/core/impl/intrinsic_factory.pyPKO"ǽ=ytensorflow_federated/python/core/impl/intrinsic_reductions.pyPKO.@|I8!tensorflow_federated/python/core/impl/lambda_executor.pyPKO:._P ;4tensorflow_federated/python/core/impl/placement_literals.pyPKOܐx >9tensorflow_federated/python/core/impl/proto_transformations.pyPKO\n**;>tensorflow_federated/python/core/impl/reference_executor.pyPKO_F %8Pitensorflow_federated/python/core/impl/remote_executor.pyPKOzk=nttensorflow_federated/python/core/impl/set_default_executor.pyPKO%P^ ACwtensorflow_federated/python/core/impl/tensorflow_deserialization.pyPKOb(9Atensorflow_federated/python/core/impl/tensorflow_serialization.pyPKOeOx?}tensorflow_federated/python/core/impl/tf_computation_context.pyPKOĦ&a=Rtensorflow_federated/python/core/impl/transformation_utils.pyPKO,: :`8tensorflow_federated/python/core/impl/transformations.pyPKO{ >tensorflow_federated/python/core/impl/transforming_executor.pyPKO#G :+tensorflow_federated/python/core/impl/type_constructors.pyPKOBDh;Xtensorflow_federated/python/core/impl/type_serialization.pyPKOrFP203 tensorflow_federated/python/core/impl/type_utils.pyPKOx-$MB3;tensorflow_federated/python/core/impl/value_impl.pyPKO\>Ktensorflow_federated/python/core/impl/value_transformations.pyPKO{9\{ 4WRtensorflow_federated/python/core/impl/value_utils.pyPKOej:Xtensorflow_federated/python/core/impl/compiler/__init__.pyPKOE9' IYtensorflow_federated/python/core/impl/compiler/building_block_analysis.pyPKOn豈4$H_tensorflow_federated/python/core/impl/compiler/building_block_factory.pyPKO@}F,Atensorflow_federated/python/core/impl/compiler/building_blocks.pyPKO#\+; .?jtensorflow_federated/python/core/impl/compiler/tree_analysis.pyPKOej7tensorflow_federated/python/core/impl/utils/__init__.pyPKO):tensorflow_federated/python/core/impl/utils/dtype_utils.pyPKO|7o=_tensorflow_federated/python/core/impl/utils/function_utils.pyPKOFg.?tensorflow_federated/python/core/impl/utils/tensorflow_utils.pyPKOR-a2Mtensorflow_federated/python/core/utils/__init__.pyPKOܕ" K-;!tensorflow_federated/python/core/utils/computation_utils.pyPKO.s+8y.tensorflow_federated/python/core/utils/encoding_utils.pyPKOxHZ@5tensorflow_federated/python/core/utils/federated_aggregations.pyPKO9~L>J<tensorflow_federated/python/core/utils/tf_computation_utils.pyPKO.$0oDtensorflow_federated/python/learning/__init__.pyPKO,5p ;Gtensorflow_federated/python/learning/federated_averaging.pyPKO7!5 <fQtensorflow_federated/python/learning/federated_evaluation.pyPKOw  B5Vtensorflow_federated/python/learning/federated_sgd.pyPKOyݖT[J3Fbtensorflow_federated/python/learning/keras_utils.pyPKO6X ^!-wtensorflow_federated/python/learning/model.pyPKOP}'3Ԅtensorflow_federated/python/learning/model_utils.pyPKO~O:Ltensorflow_federated/python/learning/framework/__init__.pyPKOQ[ @Vtensorflow_federated/python/learning/framework/encoding_utils.pyPKO“HAtensorflow_federated/python/learning/framework/optimizer_utils.pyPKO2htensorflow_federated/python/simulation/__init__.pyPKO$Nd<5Htensorflow_federated/python/simulation/client_data.pyPKO  C׵tensorflow_federated/python/simulation/file_per_user_client_data.pyPKO| HXtensorflow_federated/python/simulation/from_tensor_slices_client_data.pyPKO$X.  :tensorflow_federated/python/simulation/hdf5_client_data.pyPKO[Btensorflow_federated/python/simulation/transforming_client_data.pyPKO;K<f;Etensorflow_federated/python/simulation/datasets/__init__.pyPKOBBtensorflow_federated/python/simulation/datasets/emnist/__init__.pyPKO2>a)C|tensorflow_federated/python/simulation/datasets/emnist/load_data.pyPKO[eKCtensorflow_federated/python/simulation/datasets/emnist/synthetic.pyPKOd)Gtensorflow_federated/python/simulation/datasets/shakespeare/__init__.pyPKO3 H$tensorflow_federated/python/simulation/datasets/shakespeare/load_data.pyPKOxs,.Iltensorflow_federated/python/simulation/datasets/stackoverflow/__init__.pyPKOSO6Jtensorflow_federated/python/simulation/datasets/stackoverflow/load_data.pyPKOC2pj77tensorflow_federated/python/tensorflow_libs/__init__.pyPKO$Ύ}9tensorflow_federated/python/tensorflow_libs/graph_keys.pyPKO0V(5:tensorflow_federated/python/tensorflow_libs/graph_merge.pyPKO: (3tensorflow_federated/python/tensorflow_libs/nest.pyPKO;:tensorflow_federated/python/tensorflow_libs/tensor_utils.pyPKOlpia -/Ctensorflow_federated-0.8.0.dist-info/METADATAPKOF_n*Htensorflow_federated-0.8.0.dist-info/WHEELPKOdd2Itensorflow_federated-0.8.0.dist-info/top_level.txtPKOgr5+Itensorflow_federated-0.8.0.dist-info/RECORDPKww 0_