PK@VN:! tensorflow_federated/__init__.pyuMo@ܚ-jdW4Z#vw gi.hv}y U_J̦Q=l@#wVF,Nr_5e%%:^NWvT@*E %5v@rꆄzrɄ1qPG'X-X9*u <>sf>#mLlNJKVm^0x^6h-ۑZ@82f#zPDesNyސ#Y dct>p0N!ICI:g$!mSa&Yrx{şgmJZ8uqfN{׆S{ʀ/Y=jl-E˛?]1p8M,Ѡt02Pݘ S7pPuT鷩ҕ"XL@ U_/PG>yhPK@VN&tensorflow_federated/proto/__init__.pyPK@VN)tensorflow_federated/proto/v0/__init__.pyPK@VN60tensorflow_federated/proto/v0/computation_pb2.py]{S#9>E]́cY7fvkLn`\E.ӎ1\OҫJRa#KIJT{S40|eH>L&Q,z_\߼j$d=Dcm^ۇIL*E+/_Q|vצ,CNJh>Zݝe3MVӾe`6J7vN#I{澇,3k7J@<*86g>f8(|Scn  jcC9e;,F3~@3YF#!1Cr4m4@"@\& D)0qsV `&T(ί*ޯҖê9ˇ3.U!NrhWBJ'FĔI,.x.p#bv#h*'hhiȂ}OQi Q4#0sFM9u{"z~d\%QȜ=:8ZVmSgI%DqbͺM=OO6t)6UA8 )??vC{YT,`^LuéA\ XOH4")9/x9Ɯ97c59ԧG43G$ɶAԿgĩ0bՆ:(7xo™ճkA3j>Р KƱ7_Vc5hu4]sk t+@C:s<[lD3ڢvN2 N-CuXl 'B Iz/^X@,Ӑ *#65ѣ2 0M2qiދ:93̿e$W}5M;ѪW4Aˁ?})D2bgQ*B=G9>Lr|kǤpCb ;?: ghd=S܏@,x*~@Z"XR Y*{3 @K (lAߐo+* zSv:uxwFoIȷJ wJaoKK SwyR GSoLg* A )3A%!ðw%ػ%Tz(XoPϓٔ2Nho gwhɗ_q1*4W,g{g%T8߱D츄2$><2I?IdnS<9PVI'GVKrmfzɧeҲ/nhGR曞=*@@^r:IUZ')>T&6LdǤ>T58EaO*؅p4D4&+xA8zyD]#ꍃH}8+ٖ ]ۉJ ʮ)xaaV)Z%tB5X|qJUFotu9d`}#2lJuQ;{७Rrf-䠦4m~?>AaUDClmDCF"ki%qyO"e#E~p{NmwYoUQ^~.WFW9tE'ΏEg'Q҅JPr`t680S:FP>VnQ4ų/N/>Y 9SmU?rSX9ۦ,Vdzs_|La>j !!9~^`Hۻ1 ZnL{3|EtkItIUǟ?[Cܘ`g |͝0W6^>" mQQSw2tAC}_=?mް@+$ǭ?%<icP֜Q6uR|63|[]w}JP.?w̃.Cu \찵)ÆM!swֻ s^e|$-ez]k[tR f6pY-y=s$xvMKIѡ-<߹h9Y7ۡLF9lh-rJ6_UlGݿ~X1V-=oCwXeكD6Z<Ķ/1Yát!P~%ѵ (Q[mۿ_Ir' !Ns0 NVmf0JePr3@ǨwZ1Oefo"N.?_}ÀH_톷U@ۅ':ro6ɔmUy},*5tB3=O%h[Eo1[RW>Lܫphhi/8/'MGYG۩,P" lC9ppڤu8tn28j[Ov V`+6AL}KUĠs;[l-R%8kP[ =Ȑ*qu败Jp#A~Reؠ ?j *l]_ 3" bvH.I˪ oeH.dP[Q93 ܨdʠ7CV@׿rdxSߔ6!Z?zF#& 5MZYxnB@m}"r"|9w,"U[Y \r8V o3pd"%stY.F6Zx ;ِκHa8@Ƌ$-1 " }B XU1Vo*Td ĄԊwu}9L9*%p9lիjBVUZKPTD|\#r} &#mq)Cy V\sB5>O[k(CqҎWI;:"qQC?y Sw}RtJ -EtLdfxVT$Fdʂla'D ʵXVI!=`/s10 ?zz1z+yClE/_nRf[)ALUqQiY } ʙP+`N^G-\~@EfJO)yJ(3\13¦,% `i:I3% ěoy |ɯO`H6@*V]p=e!6#:9V q{)3)9d&wܦ㷙$}VdК6d%$C2*d2MfՏ`<^GwΦ1Yx֐RF:x5Xٓ& ;x$ҡ] =kxBm2|?Z;e蕃 gRpP4 8Pe(%Zw}v]mtH}q{)z{`-*XN4@i`FY w[.5Uَi,%7VًiMe͋IX%Q>]FG?o4:d=.E5 ͊V{D9b釖 ^ԙi//Y;V#vEpop\5ꦆ5}H j *g,$r #; +3o5PYxqɈg]OҖIaҏ@ )b'FǛ*(- P&m ۓQ;^ymjզ,.7cwؾRz]or67Jׇ%*j)v(J4_|q&&ōh㌅IIuKgh58 [7gcgxQ('V*"󂪳\2>PK@VN3tensorflow_federated/python/common_libs/__init__.pyPK@VNmF}5:tensorflow_federated/python/common_libs/anonymous_tuple.pyZnF}WzDN4{h`M[y/u@"):IPU"2DfK%j"`CjHJbqBV0Tn]$(/n^zd/.߿<,Ue) {uq/ -lN䅐7·*'J(uu' *dQW,{=8:G⻳ hr~Ϗ?]_>}::)>~o?^;:xWw+, QHiJy sPSd,!WvS%n[UdGTMJ@%MI%+~*eyvRdrK w&Pė*q2U`I&neZcڐ@k4ZV뺪 5@yQ (CVmB+lIKF2OSůJL ~D[hDHvvP&ymo^֬=* 6ipwQϣQJfh]@wy9ohJlSi5Ap:duO(ah{f߀eMRYtB[VmdEHTmy%X(P%-f$3pCiY% 'de%*aD!%; VT)RUK`EdNhiRK8MyYLӲGl\Ej6u BJ@2ۚGj!J5"ܢmZ%\)T=xq$>f8B[2rOcZe5QIYg: ֶMN2 dX>ЈJ LK!5qk:|<'Dyyÿ Y,$Jʂ}(NODxFO75=pA0^Dw0S(>X%.EC~5KEC:b"6 8:Nh+@VmXSv;ҢL#亜"2jѾo5[^*L4ueNW9%AsY(ILY13$lJIV+ET6u3>eriűjB 9`7eW%)6}?7e.Byٝ/w듓ONޜN;`+owMVed۵AK!>ď9G!@RӶQ-͗Z JR15JCܼH`P1\e%+?ۂ,Tz|/{V[K~_$Pp`RST֛w.a>,8IXͥڐ:0\gTP"7ȑd*#' ZaES?Q|1㜬AmRrLx-L5skK 3YhVE['Z~vX&Jc9dv+ 11.YN qr"o QH,}>M8 R1eSG M7<{GM!޳*)u=-U ō}r I [xxpVV8 d4R((zy݆$+$6zbVo9 :)4Oe%|IVlL`GʕFjYt\sC3nZԩVX|Ej3=PIk-KRy;@8;B!O8 ͰI~p*OE"08u@賺/\D<snr@ Fũ6e<c–VTK"Zb?M6-+:FֲNT(1\i;Na4y\ rxm`jW6e䫼iRJ&}ݡ@\{gHr]-8G5\!uB31UhU(ɵBsԪP,njro 4E =3 &}j?e5 HQ}u-! -u8В~/+@@4{K@lGS+L0[i287W2x%ggN/\Fm:_ٿǕnl,Ug宏/@q`m i ?u HyPs&"-6[jQ_DQE-^,=U{:c 7-ras}T{vxB; r|{?{ŃV鱖p6!IUIOFˍW치x޵ih6`>`'r\,VJeuJG@3fí)UH dJڡsYCr >O>jr {K7*"vBƺ֘*T▱=؊MWpQu)!OT[3dg6 62qVYŁ#|mΚ%Wd]DC+\ێYgY0e~Z}{XX7X[2ZF2vDA5l_Tq+PysM $i - 'q}˘SxևÕԛE߰q^#Y":Tx,&/զў$_y>,~`^<)j:YYEsATL=#J ^ʹlͧE"Pc S5 K}ʰ?%3|bfLO> va&k;xFܘdzt`W;}3yvh׳fz#`CV}D4)O /3&!4o}#Q2.j+wũ 0/{R0|H;5iG\ްƋбgItIMS;a`x'`Jd]3ti~CO[:vRl …,&6/6qmrQ~MKiFE|~W>r 'L;,-F}eW(u 1sB%.噾C Ǥ+"EQS+Idg4hQ|qhA]xwk&DL Rvbn'BVv~\ٱ5M#ލ:t {yx)]Rt.TWRzS/Wh2vd_S}`i 9.A%حc d4Ct ېd>#]>2Zv5;j_PsK<U{w[O L_՗% ">%a`sn%#6ץ0ϜbsKU?ei˜tŵ:(0`~5tzQ3^5E-tt'|z2[8o1p O1HA89vVg"%5[pXG%ץ0TMK!JauJ*}v y-3oG'!_5I]W$hZymkӔbVU 6~l.xhBڴ ? IypOIYf׬z9})-"I?A4m&"6 <ߏ[?>$lDr"~{!?ܫ-d(\m·VCM M<cAS*y6?({n4P{-5x.}#wxڭ a3M?m :H⦁e/z^]6?)Mt"iuAy{}Ja}g7pĤKbp߁w_큌(SF??ȑsr)rez">8 .!q/s|޿k$0~8_m];&h=DAo%#4-I8]>2xd>L\4j<8ἴQƗ:hVuhݫ"xl\{y_D5B2;b*X0uS$]o4SE8g%0s;%_AV`T+Q3 N9P'{v]X+|5h;LyS/$rK]_%P(Ez' 1d i\d8Q3O0pp16)g.-L]'ю!mDenEv5uMo֥F(YAM{64;WMyIp(rφ\j9^_ ߮v?PK@VN,,tensorflow_federated/python/core/__init__.pyAo@ӜT=PVQ#,QNhwK%GIrA;7owKcf9;5=BV+;7`JH/bJ:sh(OwqL56:bAjjD4`[RDcN&O' Sx%j%z+ROӷ.}Gj 7tdJՕO{tߎXf-PVJUfz0 a7#pI7spbg*:*3 })0 BgI6dkx]`&Kv& ~'Pc/4Z 6G gJK7jerm:ĥyʛ wPiXfs<;1Hj؃*i%HV3X-RZ)ݎ*WW>Gvi}uE}@.?PK@VN6 0tensorflow_federated/python/core/api/__init__.pyn0 y ½l@t= )KSX ۢ'CiG-i\/{v%X{H\4E]BOSH7)JM: sXuel8\CV4׌c=+Bja[AkB)jQ;jt-padr(QUy 9y6.dPjVvv-q@wdւ_0kIg9ɬY ϩ^pgUA:#UY%}@byQy%Sb :[Q_ov.YF8hyd%ĵF_ĄyͩaEXyhGg3<@D' >V/٭/M1ghQ:O</Zô'w-U46HOn}#+Ͳy(ۓ2Nr}\Et(giL^99qx=PK@VN8tensorflow_federated/python/core/api/computation_base.pyTR0+v%0: a)MfPG׶-'JqBh"iWg0QzgDY9u a*P0G搴RYt}pt(ь+ 0߈aZhrZ$ a5n9jBW iz/=Z;FhFxM᫜7qu1 jceqGc:ΖKR<Za&AIf:PXi;#*\ K.3bݺnQѧI$KHKrDibVt Ltgzd?4'7mA@F. .YD(r@iiI^N,hc.D)*=B q wY ̑^-Jncb¨h]k0|98Oj-ۯ?b#!Yܧ#;?έ*\hZ#+2H?8qr7I(O _& g^[/@E*S4ǂĕeCu1 fJKkgAHʍz${ߖb$הmC*0W~(%ļ'}›*ied;M|Wuk柨p@/_3dM[;t_*dVvQgS?F5L$̧(PK@VN[7}79tensorflow_federated/python/core/api/computation_types.py[s@öiSJTSGXJ2ECD  p0jwP`b-RWRkWEyq.gLaEYGϏ@kCP0iNď"+gYW-jJ"/+ $JL y7k%\L:K|*&UKbgMF'0~ 8(JO^l6qBExgWg/@bCɪNKXd+54M& flDQdQJS )SHT\mRYZ2Ԫ-#,Jrlx%.oWW~? ?~^^_]./>\·s1Y]$$ Ȼu)QPiWR6,PtNa]NR,Oa9b-UZnV d*UEGϞ={'i.aK|L1͒V:lcT>?jU eѼVu)G#\MQ*L"{߰Y)EeR"$/vW[-I%\ GsDz N`ث"e餲ɋ|*ju&Dc:@)c ;=Kr%AY`lV=N%QR rt +NfJl o~ 5k=(&Ó#!`9n*)j"$YfI-nҷGo",FA%91%%,o~+G̞ x/2">8LRpB]ZIrvVEиGiOU ';07obyx6! Dh%m1mó5`,a~v_5*i0{<.qʻBwo?8$'HA0UNx#t X=F e:Q*B~8SZda Wk+?t,eT`ct ckj /fcJ')n"^#EN2 ȞlU,Jbn XzŁkc} gV.r#1I2? tAAO2jZ&Rvtn;c1l^@g@'N0]-`:S ZnRƖCBX:DGbULgKj8GMqEH?Y$xBD"Os*xe8O)K7SLz* wvJ?? @ jC)! u=G_]$ H@DV:f=/𼚺#)9F)[xy*6rաC.^c&sj3NC"dT!3RQX%t4< qG  e p`ػ?~]:UX%d4l}!`gT 0RrB f ITA`f -PX-`G<( AKМ#p X("Gj97శ^ʌֈXl?AKp-,bJhBx3+DFGX ^5*!g7 Z RbO(p @J1#X%>8Dp̆Ý$D o^ݚB7%Bwf&5;0yb4Hh>d7ӎ^߆mvvYH?=6qc{RFv''Zcƨfݲx~`;V 3Far*/4qo{t7ܰ#?Za uڷnplk6ɨqۋvc0]vz`hKu4 vZXzű#p^AzɷG}ۍ5nd4GEXcF\jEn*Mp`["=u̷D [PC_>dۄL(p>mG\}gGݿh\=%#ʾs?Caڸ/3xmu,ټq%١}p e2u$D=SBw; ^qqNl%tnv9%vDt;ͷT<4`]ܭniw=P3t7/tLuə_{~D)IO)]ڋg!co2T kR"K@u9P "X!{MS<4SVw9QrdlՐ<.`H=]n1Wg5ϛcϑy&rO8IJQ4+J5oF3~knL'YX QG,W2ʁiE.vUEFzxYq!VcXѰkàG~4ój=rFx_@|8hQ?PK@VNOtO _4tensorflow_federated/python/core/api/computations.pyYmo8_A8^˵ "94]'(,jI*=3$emtA$53y晗Lzg~ĽjWY+U*+*eƺ|bB ]Vd'e6x18NNCtb)ע1^tNAvҵPYMJB`%03/qZ|ߪ9!=_ ۋjK67v~VO_nΏMViB03Y˕0VȹUx f g*VAJz-o%pK6N\ߝ]]eϗ߾]_ħۛ׷7J\"}}9 ZFj*iwJmP`kU+]^ͼs%QK(敐R'{G'''UvMӛs)ۮ +w1U,dRuj2{녜9S_c~dՍ$6دIk` cUNLOVPvq+Fswz1m'zv|!I)z93(*Ո i'huvdG0=P-Us ׵ J`zpm*H @"*SxwA? `IzB&z"|#v16wz4"&` crʍ4"#ViWV.؇\\7HObuht~u*4ȒdZXA-)G) gȎ,j3E0Bd_9[I@8dt#> kR<]'Q9Uм{{ "/+'c |\ LLl F1RDc4w$B"6e*)'u &#\/dp|5qzH") 7`ȷ_;>cvxQ̌O_zryKi*7QyIoHd!l6StB;Lqʪb{† [K)m9r3 ˲QD21N@@jS1ԳEs""'1p#-*; E؁Vwɚ"( hdd}G廤t1t2T}'1[ۄAX~&9 \16GH{cTtXUQ;8J]U+qLR>B7 ŇAU;\%gQ7)9mSmUä.k}0-},SXP`5N4j_3rfu3 *}mǑpi@d] YLi"fm,K{7>%xJ4((asa.m@tOY#u?N눧bBKwmQQ{=C I. P9]M!}$[.YH . h2yR: .Kϯ1);4[Sƶ x@[[jϠb]Íkzk"p36 dŒ%m/QBYX bs jG&wGxi8RIuv57s[&x&!ϴ F BX5´erCNL1hC*"ThIǐ7㮍 ߏCV ˽!'Q,-^ n85 )pXv@OAXk EͻQ僅S|wDqo)zQg$8ա%+^LJ^0fUy f1ݏ 1L%|Y2C6W7EݕMy; dl>U1LiV t)l)Rg5@cWR ,P*0i*g_ lqa<$ jC))<s=kD%-+PRn/k@4o 'A)3~UJ3֊Ae4$r9@|nMAִBX j; MYTʆ* P ifI0iP\I1{*,@Z,vu8*ІdoY^9WNG[U_˕q[#fS/ȯwT qD ܧk]bdNHˡ\ U*ܠ6x(l0YoX/{&Q~D$!\{Z;T\d>KYGMbwT_Gʎ ;CY:]s8C?Nԥq1&x$;ZjP2IFe^N%?11<(_n@IاYw-PK@VN>2tensorflow_federated/python/core/api/intrinsics.py[YoF~_Ѱ_$cD;Y( I4'E&L7d}O^QY# D!SJ6;UlZ_՝`+Qkޖrފ\(ފuT:Y<][&h-4 En`v5!\2+LvG\{< #p?r85mYPR!>n!JJAجOEiQge [&^(кlt6dɘ޾ oS()k ;%LM'L@5#:l [YOf2v߫|ϢO@!@S$ܷRV{S9fɶPߒQ6p5ZYOCX%x*e')LIHP1#VajCB;/U~'V`525Tt 3(峳G,ı"AI3J-gQ^@etYouT8̋ҮQ)7:9w5KɝС>rwKL;l97*"6ڀ}$\YU),dIh ~r oknCn.A ck[Tǰ鰄M!{@38̦HA&v1EӤcOl|>4 XQIhh0,a15)[{/__ď3%j^7!U`xJh $좫??6=2\n\@t_:7~Ă + ڋ'qjۏ8b`&o*_2l('w.M +vPi# -,[V4A)ƭ8.%%Fgev⣉dcufLH8gˑW T]ZUp$ ԱC.L 0پ/րZDn;hkͧ.u$qL-pX:M z8B$]dg?b" $N+ .]HXTI>!;SӴF,6E}$ϡik̓NwtmFL"g9ʆe0i@GfB?B'&fڝNJOLJԛp㽙n6d~Ab3xt3Y k5~sGR]EO}4Ojq|rhLπGxsdG:7zz7SB `"dpV`h:v$dȉ*i|Z:^'%%ָ2%y_V%skHi~7+owVo9h09Y[pEm >pUw2gCс )/^'.~rH'ZVƩawvT$"Y9 |C<:>1Pig{#Ŧ4SO' :6af|:OM܉WhhD0DdlUj -² 5ε+k@*ǚ o+kY燹C{L#d7H=2 hkz@h^pjg%?-i+D:xfr}a^* 9X^GޱvSZr;铗)D` V:P46vB0 |E LBtp=|[tƚV=Pr޾9?ʜnLAsJy&I%3etWkh?L &#Wzu?753-KV#<6~p#8#Ppd\s~ (1[P16wX`&@9\k 'eNY=|6{8= <7cLŚRc̙.?e8l>;k;kqSZbGp7"?%H}| :#anrl9^H>p&m"3 w";h Bq7[1]'>}v&M:I8>`Vx?_}C( DpL U{CXqC;V}P{ƪ.ؾ㇪ ovt<X+f:u:_ݙl'\g8މ0)liLj,BÿC<Q\^謣%0GQ"a̢4vj9(XQsoqCͫo6b6S=oP`>~(CivGy푗K>q 9%C ]sN?Wh tVI+AaHLӳY$ oi*8^b#50Î*Qa(Fz{?'LE3eS,C?7s+`<`uR*HNj4@;P6Hw@'qL_.MJc8JQ yTl ~aWړДDl)rF2/ZVxD< b WK-ȸijԹPK@VN8VYT4tensorflow_federated/python/core/api/typed_object.pySn0 +4li vW*6h%MG)ibm"# Xhs\]~2bPrڮ:= kt.. c8:(ԈSf:\%0ߘ&2t_*4RA{I*Q>9 xM3`1اCZe;%m~6T  %?d\҆2[եV&cZ밌t A_:; 5ފ8R!ꋓz6nqRz4>x){rwroH 9hjM֑Z8^Bxtf'oVk7Z[zHz?z)CL>0>?Nv0'4j8Gx 9] Ԣ#"ڄ ¶|͙.t̢Q ]3Hjv(tP!Tz+.aL< a]u, l`J9mOӛ< `IR8[lV4qH<:5W8ʲC\<\sLNm:A0FLGܚr% ["!xo#lIJic;ZrTڅ8v|X` A!J?HGhжe D!'fe(L՜<,Woc ) h1G V="?AJSN>}m|`; #'BLjqy;[SZz;^k75JDyxd](q.mWhߖ0bis\XfCe=e,YQwCMttqY409grn]u6EFUUkXZR%>YgcT%ˉ-0N~UKu'^ΰdBL#bIdutC V;4/.l`+%'0z~a lo[`Xysnʪ4轲qboT~-I-JPK@VNۖ{ .tensorflow_federated/python/core/api/values.pyVM6W 6uj P[j4 '6TIj}CJ6^CGo v-wLK6޺+v*pE6 }%b5X&*[ ;w[nb+:ZπО6f璛@PiM):6hз®BB|0T]pUd[S8-gSV;>j@TkЬՁ#u`6#o7>8n zzHzɂ }.2`|.^d/hHt9@7s:ˈ Ԣ#W"ڂM|åymL[ jjzЫR*7J*]\\FFI[SK*k彼ŮVו^ݴh@On@6iڴuZI:RkokȶJϯUI MX\']~'U9)l*Q#±aa &JMd;u-,/s* uRFa1?+ffDZ~m=& \G6  N!aI I4½B *YY9}@: K cASR k =~pyRNsYOBqCz[Үe"۽<;T8B>K۩y2q[4L{r d2bm8g(2NB{oe,9m%AуqYHO^6ȏJPV*EB%F2~@Z%{3q[;&/g(o?J;B %sZ./)Qu^WF8Omttآ̹t&vk+EZ"Oo,8:OGn N~8 9M7jt8ȥIaҹH6& JC<=P/qӓXrcr$qxrfq_PK@VN1tensorflow_federated/python/core/impl/__init__.pyPK@VN::tensorflow_federated/python/core/impl/compiler_pipeline.pyWMs6WɡNL5Ki&'$A hY} P2Ȏ ۯ1]vmbKIskVxYҤKc]::U@>y(MZQIOi2.3Qut+,MGX6:'aB9T-I>4ik%t!i2 қ0oV H8`YFJuWJLB:OV(X&N:zIC|\)l/M{S{z;)ri.IGj|04B9napOW@vUyӄ.A%٠(+P^D?3;ᮗ*.+/7>L{'CVA.Bǃ^X!zu_jAb|3-]vL?!2ﴖ]-.JU>vKh٭D#킷_Hјݢp%G4e }@%PK@VNt`hqmDtensorflow_federated/python/core/impl/computation_building_blocks.py]F>E ~"?so%$)RKR3V߯$=qC"_UW<ݡ֛F<}Hq%^x)SY%LžٔU=<{(^eKx~\4b,D]VuViXуC Z,B~^]#B,.ϒb)MlEP$E D4nMqYf߽8"u-*}VX쀡e6FH֕gM TY뉨UsTYTbx@^I!\/]_.ۋW/މ7oų7_^]y z).^C!AVЍ`2C9NJU ;VUZuy-#vf5f @%϶Y4KgPكI B!@}->eEZL 5!^$~qsr+վWr>U#E] 94ΐ*+X"'ggR5:8jh`WzĻl r[<I-vcҊmt\eq؂~;&{#$,,4$S= lſ'KQ5n>0׊F+}gg\9 uʨ,dy1 AtOτ7K1(3wH4d/rFH![ȴUMN_TUY/. ,nkŸΓft&ԧI8IV6mVo|㳟$9lҏy4ru2F7 ЅXe) LH,Y@`*+wH)6eB#WlPϊG7OQSDlD-˗D-`M'NIraF]K.Ad(ahԈ,1cfM+d6[oiGo[*bu#|2騥$e;? APsPAs&@X2BPAKS%˦ECuբLceLZʍ=Wo-=yݓ'O0i*r[jEOV g8C(D.C4f*o}?O}wdaI1#?[ŋ~?E ʤp ^{_%Eh!R]ЁwhM^̴qh㉷غ A+жzsU5\#l:瘈?H`J1Fa2rhq^ITC7+w($7b~pbeXb3Wh!XwKt̲*TDF2Q i:{P1Z LeLxgH x]ezfՖs(-GSO5 dT%+v.F+zHGL܏c-΀TgF=gPԷ#o 밵 6xPoXˇxͶ'^$hP3#?/&ľ܎r4a%;."dПY' )ȱs/tj_npqǂKYv'Ew2 j.<@(Rl4%,)"1ԸoWg̪TzBÉQ2WKHl[pU Ll6眅Zc֏hFOtF̎Do4FOEyS8DW3z`ڰ#I{ϟ.9=*ijOZqÈ{ \x"\jrTg45Pv_c7g`錴-p 3RC' 3#?g׻5` t!^Ba qIw?wdFr`[v,r "VI)pki{&TLiBPsXhr 4!ӬtN[89GqED?ZqWz0m(kNoQҬZXz~m9,5, CrSţYrZ2nfj"Zy`Jz@:5-B=eR\qm[iPZe2PLRhWYhg(v0%KV( p"4kb ės#bN"[Z*rc-QVT-ΤKr:yl;WsZĭ2cW):uCqIlkKcpu(>1jfEc'By6&SO鬎0ǎb[:SM>|쑤WWul@~s]<WffN+N[9]qSzڍWc1cvիYCD+œq8&3.XF3 ηЎ߅(C=gZmvg[Ppoַ IX㏄'g^vvܪ X8,QoKyPGf O 7=i*m'|M mOOERSmY }_WmD;@vHd*s_9WC!g%3$_ cw olIJBԖko-Z3`~q+)j 9髩*P#6%Yw1-2e.hߪ,hR{>^<JSN9Y.e]Su%&4 tץhi7 )2~VdQXpIJOPR$ҩA*Vl93ZV[8KYs[[3jD)9ZVUk VUF"")z:V5"_'|*2Mogp6!k+yXtdF<ކg0mu,s'w@lS#1ž#ML1CRdCO<32\$*u,TvCkr`5'dO*P#m\n4HY޸[Kh(qԘlwhb=3Ru(9j)&%ֶ|7 ٹeKƇSKzCK/}&nC9?0r$ІfȿUw(ʣq2e!JiXh~ / 5}>?)_6/_Pi|o"E$fV?33mtZUfkRq:>~շFenI-j'ih30*DvT:} Q7H>EE>u,G FV0jLjf7t+&b>NĀÚ>|n^-PRm  ̍[ =!}Nr](NOtFdruOD0Js>{ӧY~T)kRZ3p:~}M^@GV5R-iEr{-3G-9l?rOc~Yp) OwRT*VLf=~Y(iQ!+;P[y-9slPy8*!_d):}SF(b<́b\ ۝0#rz"8[c mѤYD0iXj㣰A{&A1H g!t9BB3}(~7.-^b2+9c)s)q0i;'sr_m*yh)>>e<.b)H#Jv&\l?jBIӼ|n&:{Fwk6ւmlP`d鈅ڎFn|dA>NtVa|~Qr6DIw` \q4k ڭ-5kw[D>v:7nH0L_7#L<t'9 O{%`حl5 3|vja_˶xlj^4)I+ Z4ĝAHr6a[{rʭ;v :7%DpZ(&=/0_9FKvvN>+?  ˦u |c{tHz5a*o x%¾QUxלק@PЅ |y^%epWьd%9ğ3>S"k}?WW+t]1-tQV#?a~lsWJ,m5:Ĕ<өCaСBDk,NԳu'4b]m [6YMZ9g6g~Cwe|)`A;7EN)_}LtnP';/pYT+cI~5J7L9W`$^_W/+<w˞PQ+CARՔ6RA`8BvB=!癜+1O+Rf-Eӂ(^TQ^i6ZWfPh3O2MٟDIxg1K0:IgYTȉM"wM{M}_xĦ_[}va;b;x C%LĖ$,iۏXmt,TxwQh]̮;`][: di7N*W*R Z4؏zzzt"$2k=Hs$j@ZX^@$KRV'Nb-Pao6_$^dIڅ7sK31Xmxշ%̎SAzxʏ8fK%)^{%G&sl .Ět.ȋ+މ$C&xȩG"N)X`I*,r:eq'Jm(, Ν?7hT9R8q72 F[WHdˆ,Jikx_ hEP(x;b?ҷ$'ϼ9r9&N["Ӷ/Xf*[?r,cy aH%H[P}"'H h+y{|HrezSج̓o9N/ݮ2MMM{cxcŗ >2w[|),үgbDAÖr )K-Xbգëg9q߈:eirHM|rW抏 m1c0SkYK9F>\Yi܀>WXJiؙXDs5hl^4q4󉶅ߺѤĉ=0&1ݧԻob*N >T򇿟z໔i_#|f(S~3`i;KFǑ'y 9tensorflow_federated/python/core/impl/computation_impl.pyVKo6W (JS"@]'A."v'F2aTIʊwHɯq! 3|`/ưX",PYmns4a-It]I{pd4?M B+Kna`!ltۀ!,B"ځPuUKGh[7=р=#mF5C=`.?Km&ڔ7Ӵ7_J`FzkV!2)Y + ҝӞpkµ :#EkK}@b 9Lc#dkޥʆ^QTlZpɣh0i Jn.U:gzWÜ9PKC 1l08'w8N ? zij13MңW%۽#~0= k9 gB C+>(EᎺ S.%vDplJAé}?_%dMQE3J}P[}ӃWv{卟b/LK|}z<$`uC`p{gbŗy|ħc&Y=:LiTAzec~cV:&b~LK2vZ$ *lY9k^ ;Wi𝡋Mkfw?-*YZ>V+!hx|+ڋ-91)f~PEm՗oV¶kp -fd79Ίͨ>PK@VN3H<tensorflow_federated/python/core/impl/computation_wrapper.py\moH_p>H0d|a}c" & "[/a7-k߯x{%z}:xީugvoޚtڙRnv6==S uHTVm(PSUp+F*`CEHn 6OiG ޹)mv5i_w<_X:[_uY#0T Yj;wkEO]f)nIwu]@Z=XtzK7棺x h|/w?߼}QY~ۻ[u/O~̔YkñC hJGc l[fMQmz3jޛ娣EmZ`*uuvŢ/A u}Q)Z)0$ B7mp%p|9Ͷ]{Pնw}gV+\O97An+meu_!]?vUV|Gcݎ)+u[3X2 V~Pb{ȪA&{#`XMlƆLyGNOi VR^! =.~WtE~ 85L'z=̕r6 ,#h< +պl۪.k!V=CA-3񴿙v,`[hQcX'0dTGGQ6 Q V?X2 ů"  2i$;w9!!zmRR&"g>'%~ꫲA|,YPDے[lݎ0H!t;q) \`و&b-^CV%g艿a ЯAo$N 3XKs:\*aXC$jXļ@L;M׵ݵm XD)`Qi2- Ŵ14NIs +WwO\3{R +θ\ &r0 Q(OpI^oR|G_}6"ьRЎC{po ,drR̜_HuETzUүF&c.ڮ0@nD' _7P}~uf 9F g}"`{hO5o){5&L on+3:uQF*_ʶ*E{wE0\ /N3BBS1bֽkp+`A5V\ H$w5U ȑ*H 18RszW @Dڹ O > ~qRq<#_7$2SԱ./X[`I`0\hvgN 3̀~ybQʬςqL^[C~Hf':M1+EOy.| EdjB46{|c6nR #}F_>E% _BM;I\)y 0N vz_ĕvoܛ>SX3Ē$X7}UI˸b TM{on[(:)9  e%꠻ Kgq5]/")#G: 5=$LMP(pCJWJs4Mň[gA<VϠhe7%)EGw&v ơu)y pτ+,Х@`덫ȸЋm߽wAIrƢ=nG !4 .4TcNsՔ6`v5"-jZkI 0>%OHMe=WSZC͇[lc!qGj p*jw#RtVe*o҅(qd(uXĽ#7*VBǭ4Xjt7Z4 _KŞgjTbb$7UEv+E|3$X-3IBwՖH&sZO mQsw iz7Ṇ_;30s4k8(B=窩. b=YP[]RSp\GEAc"l]|Q"c(NZ(YzL2Di6ƈnHmx-4[_Q\RHRMEݔgy^oKØ{ @&}' J}t*w =<$V_4!*e c7aL.I9<3vdk%SQ 'yl,AQ la<0oncx2l (b ~T$,eADom,V:*≠"o:M0 rm}O 1{'A2 su5"W$ \A0/PnZ?x<1'"c_SY Ohf6IsNsd$]]HOBI4xS~u19d?b~Nu2C~Z/7q;oM'l05ߔ }PH`]kh7?:?-< "G3Yc]т -%7%d%r+ƧdMVP&U2ryp!Pkc5͢I'+!O>qk&RX:1%>8`5C7BPK%r* eX$jkAY&5D*㒂Z=1vR>N^1ףȚ5 UX{'U G5n~bUpkXRxԤsqw@tVRd\G| C1K ]"t4'ļZ#~&BрAe?RtJKLn.ypiDs9 R؅(,M53J9֐vT rSWx+12ÜVFZڽx8R%%wS,[:K S4J dÝ?/VihLv/bo+jU2 pg+@xr˜Ҧ{5H~p,I?"-wu踏 ח; MOc{}M; oir.dh\C c~T%,0*$0gIi8ҏZ7a?$1s%Pm(ph'KB9 djE\)N^,8:"DBs%5m 8Ό?Lsx/ _$[M+@BvXOd"Uʵd ٯOwobJeė4ԜQIB$pq}!;jG_YTLC<46:t֛iZYT6.bw\<2So5BOov.IQ`*|nky8B=$zZIM"!5-u8m׳@WKn|$'] p1_m6=m$H:? =-T^~;"0-4nC*ݞҊ mn} ҈#ā+]6R!8-^-NXw;^:<> Lٖkrbsꦆ6҄f^G8=q4GF! 5 ɲ]cph0:Ly!Љ~a%'EifH#@RC*,;od,;f.5t<汩dQ8Q= ހ vhk| `#I ,r/+s[!URMp˷i?$M@b?$di~5QSijlel(PF`*84LD0Ț(s,{+ڸVpݥv4xGVrxk'0>C2רR{X/XF;@a>ƙazν"ՑH)᯿aJcgsqƔpӣ6^_!3;v#I4T7 |ژzԱ;Nxi$:`omkՎ5Vc(6+8kʀJL[FetL~Գ!mCWK(K2gNo0Lu?b#YRcj"iPK@VNC55tensorflow_federated/python/core/impl/context_base.pyWr6+vCNs긗(343LND.)4$d}$E;Bv߾}^еiNV{Oo^{59*-Z7%QmqXhTG72?:mjzL.fdZԉju (%?x5jJ>lӁ AW0[>Gʇx<&*D[\qY߼Ba͗d߭uw" Tfd,2ƼV{]sr&Ge(v]ՇbqO z_ρu˚.nv~^ޮor~N ?4VGZxLHg~@nb@T:E^uѪ05ҡmT! (W>|!drqqs] u*=|zR,~Td @InMEMf#I)&?7--?7Xu*AL&z:d2yGlSWibRxw f 2_ՄIܱԂkḟ+'1U};L/w"kc|K7eᠬfZAm'P<1:+zdZ攵VA(Ngh.ڙ,XڀFq Ȃ^󦡒\T . ST xUY*2fhA5 ,:#s0p8T_2_j2\E@UT葖T>5 9m"Zu7TyD@QK;JotάL.ũ:V=s^,*+Uבx{u`6E*4dkAs1uqSPE4W7u M ǂJ>`״Ӈ 6r~]TG :q bQsy.OĞn|+_؛ _QeX@lSe>G#s7b2Lr22e pJ(1-fp0))P J ރj\Fҧ GVFxUGAm4bHhd1e|s I<87Bskp$儢ge_0^:n6f3m˒ޮ xStzT8\r3!i|#la 'h1;إcU.eyP խdo^Bl!^'¥'FЅx8!J‚ M_^Vie/an5̅pe=lMm_Og 2 CkJjQ11IOV:FLUgOOt:r;C a_SNdNf\Q mGR$,HxNXD8J)xxW]?p|xb\zig}7UHACbLVӮ>-d4֝jmۮpoIq8vm4 p* 1V$n663!sPv+Jt`q.Wm/q0PK@VNx*;tensorflow_federated/python/core/impl/context_stack_base.pyUM6+jN2YjBD OhYF(5b{u0/(w3cLl++F)Z$$| 1sm(H~T#,Y,l9DQsEJ>0}D L#d䣳. &x4)Ɗygƺ!Q-cUi"DHFb*;L tŘ 1~Ws7_7@܍L`IUr]}FϕrP=(vn?7QU `< ;bPK@VNqC];tensorflow_federated/python/core/impl/context_stack_impl.pyTMo8W 8JS+lEQ-l4ɒTm}dWYECbg̼ 5sr 3ZmVqkv"pM6lyv][YVVT7ov^M4jr:NtM3 F*&>TlIMY%2l3h¬ũp!؛~67nszO_,8ż׊'_[#aAkTbOƑ8]0 fF4a/>8nój!%4MK*z3_0>?߯iXKz|]*8=|*w3b $e#ױhKg+ yM+6LF:dWEɝ "$YRy6L=UJXܦUR턖UU/wz /9qfGeٴu\1 7 *jMF?NPie`x(>ZֱQQH`:80:bwFw2t(/qE'>;pJS)r-,cK>p,K J_ dz`>}oIL%MFuR:X ؔ!*E<[k1zz@7RPSϪI17k }tO3y N2zOG`w =1?3!ux Ӊh&s;~zyBnwLcnLctDLX>6qT8Qo:-:Fwu7C;ɪN Nc k,: 5R2PK@VNuǡ4tensorflow_federated/python/core/impl/dtype_utils.pyuR0+F+Q[f"]%]ۄ;"eU-<3o< 6JF4'_rVmb; I[( C^R] 5/T| %1x -%FCGAo(Z^v $ӭD;mB'4'w;90|V(Ӭ Ү_MdRqkoaIGR8w E[g6ͤDG&2jud5%%7:4h4kZWK+:ḛ3 0RY.knh0VAQԽ ŤShUK~3X%bY]!ee9I`lI˾5f,ߥE(<,Þ,wlZG} f9eBjt9ԭT볅!VR J41|=PK@VNp; Ftensorflow_federated/python/core/impl/federated_computation_context.pyVo6~_qpbciP`^` }RhHFRqHJb+:?X yw? Q^bkݛŰrXqi+kf*m""Cm$Ei2>qm.ycwDث*,4#0xmAHTUɌNح3@| jmJ3qYGWW.amtqUzIsa~3[,g"cQFhuV#fv4Bs<ﴰB1Q6X-֍DN0^LhrNe竿?aXgK|5_/|qXRk$őo(hKr g"% ̵DwiQJQ ˬ9r*F^2C9X nD!3yWk&'EViF4%h-Q%F.sb,Z iqWfd2¶/ucGˤcGVJXo=t˳ R=A Å9]3,{Y6V?3+2dX,9M:ؖX*B c<) nP?Jܫu GQ?Jө.!5􉻭5I&'Xy8:lbi" pC68 Tv)Ps |.pjَx_HhzEovQy.GcL\X≣RHD[aByLڔoQW>nƖ3qX"3F1'ŷd=e)]ng"%Ie=6h vS_: cߩ4TNf3nC 6t'i {xcT1`۞egPq1wN\H $PpVx}sf\Y){jCƪFg끞A7a'Vn5ǧuqEZ)>' gyQ?fHUcBKz8.f1b|-?]Y·t]..g`: P+F<#II:DSr+w' dh#l,2-W".ґ҅CRQ: (3z qdE|mBܱTKJ #syB.EQlCua.Yˬc. ou+ >vB`n$w0SI֍J0CqMh.'w[D&WA^EQ ~cmb3vSp÷ FS v4#K[n6’lz&t{a6GjPY UnE`Eꬰ a+,%pj6v♑PP=ɄZ F6qLq8 H$hK|+>WŽbź;-rQ#%y-_Ԫ,*ânH]n_3y >;`-^wlqNj Rp7.HY7gηfbԔZ _I`-'+Jgmp$2\dlDjOi/```!Ne&Õ^K-é,fA1H.74a7!'BNsLm^0$x;igi"S| * sovh3׵c#'"?nDR^mz)էu,4 c{e3 x6"W`U*L%9?:OatFoPK@VNF5xol3tensorflow_federated/python/core/impl/func_utils.py=koɑ+$wGc{JD'$kmap&5 3`ի_3CS|}۪o6Q7Fݘ7ESoLfjݚL]umU7ӳށ] ߫]mo7S7yUoj/<~U6zʪU]cDިU^e>/ͶUyf[\[FZ>n amųg.ՄmZgieaF]^Z{R/BTU+ |Vۼ\'VNdyk#jY` @/]'W'W'F}7ׯ߫w߫޾~>QWorU 15HHG!!fk*_ºuF{S5&op7@/(E[ғҳ'O44w{`RrI;fB7'p uљL/[ÛV/{ށXNtL=fgJ2-Ja 5$0~**{we+,ݼIKUn"λ e_-XkuaPj-b !8Lp7 T;kUPo,Z!]עޟFHnSuջً{oم2;QoDH㿫 z{/;I²kSXy ևi: LcD?-4PB7`g@@b< (6u3{5EV@c;4J/yIU5)Hx!euQ-zK ݆$jP7aE˛NW{BhuWZmKuu2E5GK]ed]eo V09J]DvK\ 4ր*G( tvH(k2")bb^(H4mYj^#[MNR6}! UNgð\Ow ~ƌc7yyK+_MgLNkg sT7竻f{ `,,Q*ܞm < *olT ܡf"abllD瞔vh,eyLi-\ ϘfIE-5/_'; _3L ( Xza7 584,? I(Ox9u{NDh;/bV>{}F!->fxVN_ z.#}4돴{K6vM9S_FCJV׵v,zXTrO>g3q4-X]09QkbB ;4g%/E;‹@u}Vp.dn&"h+aҖ:Vd$T }ǟ`p'zA,{58g=DP 4;51Gv9NL"3# T*$uW3uPb.= 8 HX̏M3,pGsLY`mjHO1;V)Z78&"6a6 Fէ׹2{К#X3K-:NuI 3ܔ+7=LBC>Ur z8\[AaȖ  Y֚񖖽JMz:ۊm׬o#{h tΆs*h%,Q/s29' :6 w\ PpQƹF-o0g^5%+fXMRԠe`O8& 5Z ZeE!NY7hdxe =.2)_'>-0if1Ƣ(· 'i豝b!Dq_ÍsFo[U % cXށ.kfQEakW5"B;;8#ka0 MA+ShJ?V$$օ"9V/$jI,Y"u):nPR[EO624A`~XPEq.a'B)Ncki<rIaJ pf\( ،c(- T5L-}uGATDL` AEzүʮNIp)DOILi K>o 4/#3c '[ވ3"nᨷPXg F[VT/Q^Ԫ^MaGݛNʓ?C}NAxk?x,rSdovtCw5@7@:t ؃Vj+l}1AC֞>j+yِ `)cOq|IT2y@ ާ"4?|N) 1#9MElXv{?@3~d 99<!>hqveׁ>tb'* A!VJF'd[Q4D_Ic }z;Da}9, n%#tN5 3Ajk8F/kܘV>ZQ=eRBQlV)̄GkuǮmaWF. (q;q(&m!8". 2MvETG|o .{jN;nWM"x,ߚ`Lc{Dɕ[8~k%6Qtel0]/.FWj8 NkCC(cVJnz"3N%3 $Aަ%Ͱ~ԧȻ͌,rxXQ&8(e e8L fY[PV$OA׏aC^?8cǁlB>޶b2Lb/8?Ѫ?xT00>%4ӏb12!+V\C?Eހ6V !>H˙ˢ∯{J;5sBB IJRܱf`ԓO+ٲgZ#@-nq0O܌͜j1:z2НEg:>xodi7rmc~Z]P.m|xx+zpu zɀ9!q#$,Ҵ- aIp)⚆`%2UDĨ[9PX3|(l&l ^HYiPO|1f,p=ɘ5̯`0lň6x%Ѧ :u_"3s"+H=øi)D Rqsf 2OmZb|AQ:cMfqJ吓_=/<B&^_+Ym=򋊪-eu!Ç%'0{ ҏ3<葴[Ј8pDJ3sd585H |{<,JV>jGD㡆GT_|{fV]+>{uf!)QVh(`A/Wv,_T]qCYYO5˝k4;ԾnY}iz./ՋYo9ABG9DAa#V`$1 H}hpǾN?<6A(T[¤ή7۶.xD9y=kOc un8={:1šW0H7Aɥof=Udb(dv\[ƄTf'{(g{0Oc=]s2u59hfD|n{Qe~ Vn;@'F[O6 iGL5_8D gQ7al x@.:NLȆc:BS5o@ۃBu`\>@.# O8=5Nlrg?e'zK`Ic2F kf`/r69&w\nboxKm_DP{x>iCenI)a\j*TS8ز0+rq Й0FpBnGdNv#-^@б\`%_MC޻^}c_^00֤(ԗܸ*_" L ^(B'x}PDx]b>,<'r,/ `-x|^C52?UÑCxq# ®1hc 6ukzqLS7iSJ,!JqξE$€z<"X.B怀Q]Р@eo9E3.Қ o[ # Y~S#$|EFwؓ(/N.S2a'MGse&Q:euNzn!{ޫn~m-#;BG \KԼÓ ԋEVt qe?obyac Y i(QA /͵q"]kY.2>8/IUKhfGYOb`2hڪ%R7Lk!ޅ{=5~wN-EvRf!ifMH:ukW々qGKq#]{|\;Iad‘/ *-=X>R,}tru2ގ?i/ֳ3\k/O_J-,ηKU R?^ty;OSl=Ֆ|-r_fF :28b;{tÐ'wp|wZ<>vG u=Z{W#X<ª[ x3J3OBaT|ˉcq-\KozcSahy;[d-bGBO F4wSU|svڗrqՔ ؛[m 6IUAoF7cw7YX)s^w<eN>'iN)Lݘ:6x;IΗvID mӘx%xB**㇊H:G 5(Ӈɀ'tzΪtT?;{gaN=Liۿ4Kk>偏"-_< 8bPK@VNk/E!#~4tensorflow_federated/python/core/impl/graph_utils.py=ksȑ+&"*4&-]?tX.K[[ 0@4~d6:WAOOwOL*V2[T'ߏBk|kV'+Z =SIg09|*x||2V?ҤE^ߪF>&w)j7*/*U Ri8ӫJULuZ-hhD1b5ǩ"ߢV/^0&lâ{H/޼z0w~3m*봄N7*^Bx hfZJ U".*j$tZW-jY`Woί7WWc]p~:ś+uA|VYŻcV0*@2E:vu ytNA9,GtL rz @eZ=-*J(2-6*_G&3/gD%Uos$q41\EU*rU3O%XMwҩC(΋|,jU*ODDjg(5lth-<D`o.qG5so{/%zL/W*.I<")5r9Vc{!8=R B-،BmA4)*!܉d'OP`JxAa^̀ް$b2i*j.mPdVj46;.$ TtR!+ ɫlNAez 3Hڤ;%e;m(4t}V'͏4$t2+ek"GDm& \Y@qqCh@ۂzĊLƆMD,F=4~xURk?AuHhU02/L\J/Ҁ2N2'kZkfT8M7(p呹B9btZ [Xw{*!F#J*1w,Ɖͨ $c4\윅V (b5Vk@UcxzVa_}XW;D<_fSZF0Fg;T,רW<>%d൤mk}B@ہD6+;4!Vɣѧ!L>7ֺRv- Rh]ZKs7} B_DfGo}[YwyA4͞bgßDzgon z'Ht&O2ۼJ̓n-vCʸš.`F3yyV mYm,t7[::e12Wzͼi%ns5ϸ(#=yuۦq*[+x9Mbg(s$ML"tE3)z^x\P(PHrq콍 Jb\e `\# !74+5%VO|ɺ㙺|}989ɷࣀ^Y<p҅15~b0HE"Mo(V`c\4 b*GDݏ yv0< [cS1-;F/`wt"sxr+ ,B$O~Gs;*&pktl4*{L1zHS@ LU5q #2'|Li|V ^5PG1ߜX?ZU18q8;֨g5 ̑҇3諉.4j|!Gѷ->?X* j#hOC\i8 [/v#@9-f&ȥ -WZF:Y]䰛p`lÞ]BGI ʼnUNYNcL? W%KZiIP5[`Vō3\FSc6b՛Û\yw}Yo΂HRP|ɵ㕯{mdXNI(HJ<.sz7UE&ы & LvL9lPbVa$-]W'*v 7yDѕ ݲ&ү"!\?s̷:V8ϕ^Nu`Ӳ69n>D/aZWв0i cg6ãI8ɌæOȰM9ܠnu|B" V=@dLǕ ӄry0`&x.mb2ЪS05B)L;`8o5`SCjw:dn>@?RA..}D>S9lքQi TL͊(rz9W蠑@^.7b95_Hя.4q_uY؄<0R P1 T{ X(ǒ@7<+fhq 3S .k4@<֋TMX<sSK`{lY^"X%oj̮T\Dt7: BX+pq@*:U-zܿ~-?I|{ Ң[_&; ]l ^ UL7eeN΁a4y7t)vrR:^:1xq/Βj8pqn6 tPشɧa2abQ?:6z1al[ ~) ǚtMycy qI~כ)I~%oyxDUriezjhbe xѥ/vq]HtfdiXSJUY$ ك4PXBD 7p YH*,(`GDЃ ,h .Q'مDLcXCRޙwxAl[y%3Ɂ/`laaX&bc _Ćb,1ńnV (n"#l_\3 CLqB́ [gͨYu!S]Y-T/~LgoHq:͠g #/)C+$>daw60{0 D'@*ch C&) FΠL(9l7c 9(8s](peʞ$ { h P%AY=N9i}ؠwLmstv޸w>}:bϻvS 9:Ijv}._c5%_v'9h} ;!e+?-HwnFǁ?X&%mc# ݣڧZqGb7'2$FsκnGa:x6 :cTvOϕz2#oMsr ;+O9Nj g$X A# 9q(ZC\DC@vj׷g 7η9&_>_ysslj1ERm9%0#yCZ}da 47Z.Ra$97d &.q6hi!cc}l:(B:mxn3֊,~0Qao\t” À+)OO-z{~q葿2}w9VsE25N|4+Uƫ"CF 4߿UI/Oy=)\cx{fcAkܾ̈́; K> Ϋ,n0SB.<.kE|xڱNv"שЪr#AҐs*n Qn乷~&>+VL2ϰ1Dnc)7 XbaҢA4fG!n{|jr!*QnV dKP&)Չ3ڪU!2IA+) JsBfJŦh癎_1BUNx./{& J[6#|0G-٬^Tܐ[* k̹{An3r 62~~PV+ދ. Wi|̎fHVƷȕ 2*+oxhḹ+Wc'DZ6L$Сio/~Ia_/~ ltoI0lxy'&x{Ϸ x\)[Tn!0\gQ||;. Y s1лp RXU˗;Om_qnes(mqiŒy$To&4J88T'MF uSUm7O-i"{# BrtT BпQmt5o=Jx9vSu9 !X1z2d{">nņg\H(hH^~MS!q2M|-NF%ϟ@ïj?]ZaKżX :9:s7;-;BI{iAn/]y:Kx?YcaSgH;gBCE۪̩us"*p&„]֞ QZdڠ$l2qm}oV}{nšel"4q-GenfxS9`wSf[hcyu=DKRI=G>J|dմ'bU|bj]+#Nf:~Od"^I"N0FQ?l3q{X7dbI.Zgm7JğgS 6A@5gănȀ 3nB(l~s׹4{9j2-l2 \6iiS,[R!>qa ewc0x g̞S:-IW;` )N?[:: %{7l spXc^֡o*hR{Vs5FWZ)aPl#U,wSoAlo 2 m4'ygT>uX#nzTn \,,1EYَќy)5ϣ1:IزyZԑ*7PպhzD4rPQyP۱bBb?Z!}EըklFk\K(~iӸcxGWAYc=GSEaOثAR#a9bvz߫VW*ĸ)je7Dzm%<ԀO!}5ȺWA+NoAP{ʍ@'7C&.6I V+NJ};;"Qwm>%K4@KsG+LGSlVs`ˈ e| h+]64Q[Qk%F0}Iywt-=Ll1fV0f$f-Ev j^[hcvdri 43&2Q+U;t‱QY푙WZqΘvoa</N:@CoD9Cb 3^1ҽ➗<0pv8]y9^Dei-/e-asiak-Xb`Q;{hK(rFa8M^žڮ%əv;$ ppuj߂R<]}&7S6h6^ZA ?*nO.bhiH;UW5\i[^*=Z?ZOQ=oPaFܒg_@/:O?WPmN|x}]jغBn;R]O?]W,)E$Tp k]́PLW@3{"$[Hx/!JlJ(kB7uxь\x ,.[o,?͖!4 h6a0¯;M?ӱC aOD@c`A`#,!ox ʶ2`9$g2 wS5$J!TEۃ*#&bL&75&)ccܑ5- k@erg e2.I8oonswC@PM@ P7TC!'(R]bkɚ J2 JHS42\*:cOCRUνmQUvwبkiTLgo!.OHp NQdfHLlU=AF%v]0<19h iٌEsLai/G410@̣+tXYbsئǬ+7fU+{,onp'oHkjIz&gWx"|̧tT^di{!a鄷W˲04>^Oŋrߺ:a;]cED^NW7M75-*G2ϲp iphO#hEĔibt^AD(rrWVߩ6Jy8B} `~X!%69$8cD ٕaW RU,񍐅3|AMSOXV,"1 "1`F"y?K۲U=w^AjOm[esr6%ٖ Sm ڙ|"^&ǝIcXN~PK@VN4TPrdF7tensorflow_federated/python/core/impl/intrinsic_defs.py[msF_1| ٭Ky.3e,(0 Ck1h&~O ,,7,Ni\eŷϿw•ӷao\^&bg8UoN55\d4H<G(SđxVtiIOs"3+  B~e ~N|)6Ab4?,u˘`ʲgͦ18]> Jbt6b3BH,'6!Ӯ<$#`𦳂 K ]ZVڋNi yO8z3{'U^Ϯu_u{u^dHTƾ`P[ŷSQZ.I6pY@n1KY`%J]-_a{waob x2Bo'uOYH3U^4`y䥰b$FWWٳϿ{R sM<)1N\0$Bl b*XlU_*Qqm.lr(˾C`T> )zc`b%&ǔX.9JһsŪIE1S(dž&Icīlk,n:XUֶ 2ڻڶww}YpS%ܺSso^Z{u-ӕP0OlZ@iESŧ\e˔r?yB^ &d R+hKuXc׉%K Y`WG ,ek^eRG5*KTC]y,R/ݖԨ:}."C\bϚS [x\^ǜ13H<-j.KVq2YFEVB@kӡ(=tb*yć p3/m"mOKgI^}g+HA62E>X#&GT ςogtk"e[JVxܷi 慱5 EJt菖wέ=M&dbɸ\p Bqr=WRD ʐ{FHBLG)UlW='q>d!0 OXi1V P܁A|"Drve4Tbp=5HK/3e ZGSEH)zW-s\|n:z9r&m .&pbh88:I(kQbg#ivS/Rlp8뎺)TՐWvkz"/a-+GV|#[T da'z@BEa])?t1bJu0"`Ԟj"]iK\z"CnnwyJ1Z; ]lƺ !}mi=Y=2bQE͜ʦR܍;(E@҉x㬲L㎱x𥜥/ڢ񁹧>GD )qLvG]əm@]~&0C]&<˷ L"E#/ѯһdp;<ًyކ9@I|h,+X EjJa,Ώ[гUFԀII5FrL.|4pwề{5IGS-Bz z8it":ftkIcK R胼nZe;UE#H9Pt.@%^cacX* b눯926ďM/g |#m.L^W(o5Z%iܶRLYL*4q'o1xnO87+:- ;H]p?o#Xl=6fX︝^ϩ;co3itkkMs4ɂwNMGp+B,jUde1&0k*[_-fq1=g=mMh͊dN-i!n*]½q|EřX)ߢFr ڲg /n܁(0t\j,fd@r,GR VD]z4U_|lG=9wz{ -~׊u@lMو{0l %aR=$ .۵|\uQ7I7߱2U}jE7-ۉ$ 5S? $NnYJ|rv0=ӫD7%b_TnviHרf¨~li{ hfcI]{qaʶLjb_b2i!]_4-`+C;* =mgca&_/JdΡHKg?1zUܩb̓\K÷%R*c%[$Pȍ\9e%?y= *!AEwݱE Eq51DXajD\(ŊwqeřxC) ҳYB-SI8gNBv&qɷ>+nӷJzsi8z{vRIY"6q岅 ^).R4/{꺖$_:R>(982R(܄3NX1ܢU)08B'4Rh_5 Qſ?~[އ7Ggяc\닟U׫!^//aX2=Yj:灤kM\Q] |!k#GsDɵez|؟jI4~Ӹڊ_B~t'"EmL%y,EeEzܥ86H/,bKEwSƲ-[@ڐN|/V4Ct3X,VJTAJd{y&^|ߛ (}dWPɞS]A.| /bKӼq--іʫtay?@,SU$]~?2<+XM~d򈾔Wwp~P2j*߹l]Ӊ{Yt^ͤug‰w<>pwn}>=dxy6?= g'm_:=8aVj6Z9P H޽${#v$- sG*CH#he*Rz!;jQg!jGZiQnbߌþPw )SY};ۗ //KPK@VN%@+r:tensorflow_federated/python/core/impl/intrinsic_factory.py]msȑ_1' aK{u8UqeQőkK  ;M:gUDtt?@3I{˓?l-L':ޖ !y(lkOѳgm4r{¤-G3f leK6џ΋؆, K!]fy߱k 5-M›Fs_8Cb~azb5<\Χ]^9_^_o7c&@VKQbB"S mUW!]j3@ű7vC)x– =I ]ءV@롾zX&VEd0\Fa$i^<2><df-BԵpIZ`16 %A&BX0 5皎=Orsw/ 0 g;ZX]Hmdz3"%2A-nDœa.kv`-䩹Aȭ}YJl\>\L`N}'doQh;LVO>:<[u^1sᚃ8} #YH]0]\Φ Fa8QňI VyK;|.`0 vvg %P8۵CYBRnU=[G4{"W_QMA#tzY7{ /=Wq>-ܤa憲`C0 " ~2" h9m\?R;QUPc<m?mEILbv\vn`gqJi䕀&[km+TJO2Ԟz#Lku{ kQf:mZ$\a?^հ~?79z *fSR[Tw4W36|s989Gg\DG (&# k c_ÈDImf3زK22PPF]CB}J磱UjicepdXO֨c:~]""`z0r}iq}v͊--,V9aLo`84>p 9}HGI AbCMIfV4JN$ߒv`2BåD7EU``kt; cٯ٠vK>,icAA(` p|y#}ȕU`>vdM;O&B^O>Ml&c%*W}HPz^vfz5MߘwﮦW#v~O-N$*OWʲ;G<ݎ"TbÎXTӀ0[Z13N/]p\=9 %=\ ! !UzI̅L\\0Dld"#a!-mrG#i~ `*]ۖeҐn!e>&"Mr޷ eٓj @+B*DXˢ1wbb,Ck/r( ^ho4ByAId}iZ m`BE=J3X! ErXaD|\AhDkFYΨʨx%UmOt p]?Q }|ȣJ]Vl $4WeUȡmZþme'+<BA݆M.e.8 K2fV0\4f%=_ tŪ(閃 =M ewҀ:SҦ3L.*xzl hUII!q s(Xm?ݡ^`~+Z`x"ΫU*6`Ʈ4J8b?Bhŕ!"f. mdҷ.|[w^+KZ;vK*eju.'.[/Dkʀ- 1PF92 !}#5ꨱȵ1! wa0.ذD>[p{̞|`(`*Uf]\hSH, "X23d]w|u9ys6TGι9Os>SOq>VK7c^%o0`ٓ?ߥ`„eR ;2L" d.~AJ!/h96 0E1&v?K38IbӗtZg &ui'?Wit)kdۡri%,oVCV`[ߪ˧ Ŀ$P܈`'En=d,5}e㟧0$|f$a4Yo䗺ʌk2"V+y ^۶mR7hQz=9d:pRuu"]f:p$=J|=}nD kEFg|EQןʭVuVceFŕx~vSsC]WP#sSX ? Qt$b8 .7'0kN@c5Pd5}. 4ΜP^  n/$Ch8e,Ukԟ&?NipPGjVf[gHOܯ&v~]?z~S= Q'~ PC,z8ԝMSS:)Y ܊Fia2pWN}-c+N[}ϭnj HMɋ.]Plb{[!ÄE5n,~ۖ~v-5=p&*YzOǪ 1ٓrM2Q Kj 2(mF_F5JDVt!pEhL !> \cAXc t >H9x t-)]G2.yf૊zvFwZK٠Ӥdݯ,u0֗Z7#詗-J/GJ8KR c[CnNL*#d1S՟&H|]|)[T) A+ H߼95*ahmU$5k7424X%7rEy/CFZ"?,npӖ: n~jjbp5Y|1q 6W&)7rpWd?w$Lg] mk( Ӣa(]3 vz Z탪0ӓ(r?{ 0qIѭJx.$]*vݎsSW@%0RU!\Sɿ&u¿W~ <M5 k`rxAlxB'6|1o|F:l+o\XKT},V $Y^b͛VL~^< L$1̯R:e!56d|eKXv0;|f(keMmox1LŘĘ5I!ա9?>N/Φ{_CD-ҕ"Ҭx[Ěi#5W#hvOiDjI܃0jC~(}kdB4FV /~g'7@F&Tv’ʒm5Bj̹*]F9Gx=껅n"[9ґI& KM2PK@VNEz 8tensorflow_federated/python/core/impl/intrinsic_utils.pyUMo8W<8PE6 Ki^dJ~Ȥh>Rc'M- gCƪXo,y B(=T S\W5vaIpWm$̓ 3!|EmSW0Fgo S lyRYh 0P  - ֕@he[N՜kWl//.ڶeܳeJ/\\,cs-+44MZxM ͊4FnBC0-H(+ayc#ч0|8 [9N[XD4$0_x>|F;_SH^2xWkǟH #i RL(EAkE-IԨ¸4DoE( ˭y$ڊJF}[ɐ{PHK# è-JeecY+mFUQl%n#|MklGjX]2VɬctȮ 7HqnØgB=FވjEFfyIw637Y d ˗p^dDCSXi^q˫' x?UF;.ܳr7-ld1t:`Y#6`?q nw5R^h鲣:aV=_8"|oaknܱR@U.qCzd2ýgrx>t?CB^1_D}&x9oXE8=s/aUc~7u_]wy7=04:赼KtBK/KCI ~O$0nL u@ PK@VN, ;tensorflow_federated/python/core/impl/placement_literals.py}U]o8}ϯIKeQe[ЎF3$&x7ہaW hy~TӢ\Yi4(P-=kfyAƮ6It]Уȁi#a'KÚk-1=smt\Q:jhv$pPCKQqs^[r+di+ʻiI >ja oc1r&̫M./4h<bIV[#4b]dVlKJ+5*'xɨ2RcX4E1b:69}N<h2>1h8L8r7{~.pIqBRAXqɲa%Rmj¸j+R|X\Z`-Z2ޕ+u[&8FSB O!Z)˖m42Җ¨ kBlBZܹ(ut/MDUC+A>MIoR VU;rUJZ"G.bsAgYjdk OE ɵAA#Nqx1vZk]+y3͑/y%{rPy9OW,{RϯwAlv(rJxt{ɋX%x! W̬Ά /bIoq92\oލQr،~ODZǓ21x_B`˃0WJB2]O/|?ϣ[ww>Dl`5M"t6fEwh̪VԵXIEKgtOG{6qJg^ -M)=sI Y;}r{W~?PK@VN(")q;tensorflow_federated/python/core/impl/reference_executor.py=ksHr+v?XۛRJ),Tي$֞NEA$H!"Jӏyc -g7j0ӯi|/զHwxտ]".̋QMIWT( ދ : #ߌOIQy&^G/|'_}7WboDWb]&"-,]$"y$J"I"ꎆ@ V1 D\sWU~x||b6ʋ nY |IY":-`I| h.G" rDH4DϪǸH4-"]Wz0i+wG;񧣋Ӌ?]Ϗ>\\7?_oч_~x3 IVHHdDHYd +y"CRd0JeZj,eZ=M*D *)^̒"LɺʋhoW^MItAsčڌW,1"qZa{'XuVJʪ$ bd`q1وUm"-aJTS'u VRwz1'؏;Twq%uVA%L ^;ѿit*׋ =Ʀ6pXd-'^ ͊|)ٺZx o|6濛MӇWlcǓ|HQ'J=*' DK`R-w@Ei u&kgJjE H,-lHo58˳2_j |f\m`%>O*4o r{ERYD3a]aEP*Y#le17[2F׽F9迯}B(" D#4އm&xߕ;/E@XdMygDإ,Q|?%=$?1(3@G g E%Ȼp<0z4 >q:C 잖M(Rv yd DM1A0 `д\OF$yۇ:I4$RҮqs=(*Dh >}nv%ILV_/R5J81:@ П IsP Ҭ["] Nɇ#taǗ\HYD:}FZ1/O\ <[sF+VJ 5lXd]4 6tb-=1HY hsQ́Yb7=vCf)d=*dlj>R$XfJѢh0g#։aMZa/@:nAK#`XLjA`-݅RL`dDsS`⋛F:r3"f8Ƌ grsYGn"6@*T#lH,Vk$k YL,,(1ArjƕiSU"lRMnu?$4fom礌/Ohw%(+&f~3,Z"m6 jvvre"g`&X}=MM5>(,|_eB4$`oR:@vS.{8s]l$!_bcH)a|OzNx/^LbM֞8&ϜXg$e%<$U^1rR MBFV)ZƁآ6O6`8h@I|ޏĘFQ%qT mvc _d[~Z$>8@|tG#Hh᩷Zas䝦W yp6':6񯮵fi$6#0=ĉ$0EHn& aJ`NW4Dn v2¼נVr_|r2طk0!з(9KsG$~b֖ߚ9@!vr5jC J[c]QKjgM#(^a~Pc\x 62%A|8z᫙тx'rmBAE85KΊ|%oi`+J@sKP46 ~Y]Cg$H[i|Mk2m:'9Z$VKIAN zOӒ aj"w<Ч9=H $c3;ܠHf1{f'qi щ[-ӑZH#'@[Aoٙ Zu$L=?zZg/zn`:N1Ga)^y&-wQ>;9_q o&-3Oyќ86D7-?2"ZL=D3sTрJP gZ}w 34bG.?OBqMm_FC=ma4z)YW}udV]Ԥ>L@˒5!.100pz4N#m#NC3nj.!1e^)v?i)M07&.,܃9v?GWRD8 tGGTc!%TQQۨfܔcRv[7'#Py*Ē3ٚXroPA5>pCi8tq7-Eq #LnŘVLwKMֶW$1 H$[E\,g> ) -r<ױB RRe|QɌAЦ5+jW9Mb"hL[IicTΤX r6&&.FxL@dp Sv1*(%9o^1ra 0J zh)eP> 0}@kOu Z87.)9osK :9VrNЉ07k@J'iuVb։kvaէrWobr#:C6<4i>jSy(t^'1ILT)Ҷrѡ=un:(?ZW9Ƽ:rK@5 T%mj+Px{DWL 794寒]$##|JF֩gV&4 ؄ȷ8i @q1g`yU2NIP l*1ivm#tWJ^$9<+ftiY5}ZEreC:s*!Bɣ̩`JB׌p8?S%,>y^Z x7ir8=(%QY3Ln-|b53Yc)3W꨷M]O8gƶpތk9G nxWqx θFөJFQ"U58.ei|ը-C"yH4@-҇ VW ]BaQEP_v yeAhqq$߫W?;╏xXkX${H`c[=z>UE2_G=HO˻>8}0ǣ7G@o0-Ňh`cĚ\xN]8KCPuʴܩOI Ѱ^$L]cSHIL83fѫ<Ǵ ++ *㦙'z5+ x*XmyA(&\֧i^/Pǧ̔S5~EP\a8 gq- g<ƕ]b0Q 'b 7"4fAP3 mYjb~`̼WS s$70GYk)+A B !gQ#$(؆0i86AY|ᛶ-DgRIӔ:5w\GuuX|'|scIת;?a5M e1Y-rHZ;Z5GٻߊHHu]hǵ~qA #M#"~n5i%}S߾gv݋̨GE7Q"AJ3eC݇,ќ0S-پ'uQP)'9hYoQ3*Vi3֙0>m]Iȗu i})dXif(vfj5y{~'0NVmgV}mPJ-RuY<7SidydAd lmU]O%x:Qz}k85vdnF7ajz;mt{o1iltĥLy'/lEmTI("lMzXa_[Z"Ic!-vfN~+ImjP0o݂6 V_;3Lޠ"4D Q+U o,FW:4aLo? @N_LL>nh ޅQ]z<ܰ3z'?9V.*nA̱Q chcve:^1 bTA=R9k-6tU;\jcp'ֽ2 8&֪[.͇f`cW}%,MZUԏrfgِzUYpV_{kTӰ͵Xww"TSK3ͷGnfj/@qT4-z܀]1]kvZ{Wȁ狳-<9$&`-VDr#5}it_ۦs@oO :5TԽn`hLR]Biwb4(g_0Z=6Vz$?NxwmT?PH|D|A T:^# ~7vpTG׹jK{a>5Bi)dQLF=m9-J#=I~+1C5 ؟*G}OSL[lg GuL L( Y--subo♬7Gw6R*vc!(}He(&a6c,j@ux$|0YHWͳ  ][ ZTyx FCdKL2ik=mN[3Wy9wn8=x$.UMKQXVT?puƱt*U׵Kc#9ߎt/x72Iv_:D6,fWPiԀph9u ¬ `-h,8ಚ3ؖ].;. #x7N7هٗj|d3GK.ئ>eVMT^|?EkrӇ:GD[cTwށJRz<,ka k{svW_7R63sF.^A_q᷵ZkQX 6ZEDhce3 N}۞_z ^t=OG+ѦOftr"o 3!vwb5gg'ѷNcǁɀ_EWG=^y桇0--+^ua~mQ=5634ﶪ얔7,QlEI2{Ld!hcEvc`Q*nBHFdAbpbYHS ZcL&Xzo:5_;ZOnOo>6~j:egͩ[}?dTrgG ; x0B>H Pc r@ff]L+9,;Į<T^؎fw 9;tuC暼' w\iBEdMe"ɥР[\mv͒l =BG5r 0mNpb]c_塷L _ 5&@K)IC'5/GM;ByNwR{u^m7nZt۴yluMH1(7ܐ(ye7oIr]3nvySSo-t\N[awJT{KHйn8ahOcԮ4uL;>6MJk 72oPK@VNpCtensorflow_federated/python/core/impl/tensorflow_deserialization.pyX]o:}&_ۧ\M`&mqdZl"%);ngEj|932֋wo\,J,UReWX~k&sNoChQ5+sYYM)EoŔ65Kg?`jQȃ(SPtzNT.Eb*ײLkc%0Cը0k/[blOHg}u~$[y͟W7w7bT9akm d cX5o^p&{iy׵E5N7 ^gGqx&>,ovOKe[<quw}GKz.bcse~)*=*52 3 WDg:_妖%6fl wDleZr]h/=9q*}:G0R2_I_M&w˛K`a?*I5Xy X0+J M\I*7[(^zIEo^T!,'_ =SJ= Ujw&\%]PrrwNfY]&|2oq'Qgc2X/ڙЊkRӔ+KO&kDZj7iuͬ%ƛhU3LU~G 9N HzTbƷ*yVEV|cek4<* LlG,DyI$<7_7{*W ͗$u :'#2HG:aPD9#_E+gФUR7˧81]~1vBR,<3]VC(M`J( s{wy4]G]2N1&aȐ9;:Ug㌧DPP"#zlD+ &1Q`ST\MHRTsչ>w٘%K!1נݗ)`>J]k)N4/H.8!zA<QCIvSet?NP_ ّT [E-5)9cj+ATh>/q 5%Kqloqݶsho J ,z :)A2ЂCcaߌ/?X5O+3 *{qE 02pqkN"$߾G/'f?#ʢp_.Flv-,(B6{Po]r9s@4xN>cV,;a#Lfl:;`',oz>[t>K6^M_TGD̈́)^![Bdvuׂ0 a0i1[RnV ;Y3% VK+r \> +7,Ws\!7FcKF_|79I7h/A cKjS]3Lۼq.e7|#0|ŬahȆx2oPw7Y[d˘rN^('{(EP5/ˀZځo46ЅZǚT6S^/ ږl]>r#umكTK _iu$gM;Z@ǒ>̀=[c}w6@[_]< yV]?ݵV.-x)pnh ;,h*aJT]v 6łm)Lq}/qqO-뽷K' +lc6K@c,uQo'?O)F - KFEIxdg}k>8i@^ZRR /W(xI( wz9ƙ$X d>94' 3G(i2u:w@XbljV@Tp҇\{W-7]iuʐ+p^ 0L!1ڜw#x No2$> /=B+׊wD2qCz!uV}7ooFoOONO^%lTpj>sE[BWuwD)C7g1{*q쎔XlBiAsNLJSiߡvC1~jpɇ2t9bTL_ hiF6د[6~>?Fܖa1X>VУ$LQhF"3f>T^c IP +ÿ ۘ63Q^<]hROٰdaf 3FFTV'~/tٱG=M82ʻSRܗ|!$BY+=mQ8/S=n$K[&4\ -o}n#]ˉÍnE#)\'i53AJo(+?T- vI2q$ضqlRB/i) L3-3XUAÔ7 'f0;켌5=!q^K9PAQ{B;-+ 0|t6n\<4@w  "x#Y`,B,"N+3qEtWn؊-v9ڔƐeK.5nຌpNśL@UW7'Wtb]./n^D'(!xiy'j.`e]K]/ wuHT?k_&^Om{+CBG%Z6UC0nh3$Ƞ kG GOIK/KZ{ǧɱX)F0 @Q@51 l?d}ZjSbK>cJqQw /^.~ؾ p8:3cBEM>Ӑ1tg, }oBBϺ߃^ROb5]d^C٧†lݠL !8mz8 LxyV*xEvX[H4!@c@~$d),^^=V^/ M6]/c8ɷKB]ϦXйt/Ã)PK@VNIon?tensorflow_federated/python/core/impl/tf_computation_context.pyUo6~_qp^@S>  sMXN2QSߑ#i"~A XT#xǟr6huktEO;|]dAUް-:YO':,f?3G0C4>V(wZIS!D2s[Lq ) Qw}uu8 ֵWz@f7F?rcAܲL-`!H6o:HR+ONm{:I=pb z.:gO_6ayz_nʻna 9 c~BI[# h wXFUi{"pCW>TӳY+oUd,Qp{42T&>RHX(;'m+]7X>̒e{w(Dഎ@n՜21_A/; 񭩂,K  =Pdע9Ey.L(ia{r[I*VzNoQWQrV\GVFA!dYUZroj9ƺ4ϧڋtyyl/䛱/][S;5^W/F¾j:߫jTk50V-MQTj)L^εښ枖 fMOZϩ!i6~nͪzmOo~㇛_֪Z55uW3@ȷU5|T6)Wceek P6MB-l:~蕗Սy^\ߌ_oէOWnQ?w?p}{^]}?Z2z@ vubFa_WZG]X0k }rlŋ+xfV51$/ yiai1uVх)ue]dl֓ lU& ǾԦlr ߚ`ѐv,A;&KfQf*'uQ,rZ;iMc4{`н? ƽ$m[ƞ Ƭ5b2+󠕍5,g?1kS` rMeX!G@n SPy Q{_Do6E>'Mcq1M"z(]5|/ ނ?N186`<$z)8EAF^67 lM^kԉ 9q],32nA{_:o]MW^?)D V #^t! ȇF6<A@Ma91%saf关]bxK\11>1}xFӱUt9%ݔ@"iALj 0?]0)"8\wHy,zeQ;ٝKX` 7T&Qd/ j!~@,T)uMdN| ~c<3SY`i+ێ)tj Ǵ?Afu9m@T1" T}++ćOh d!j{X c]W5H.tFDX}[Wځ/c|kp d M5;Ɨrl0)`-wa܋{GADHƹYSM\T {oȶ"HѺzs2 abZ*:X;/ {.<]$)_yޟ?S૷ƫ2F}7T$|Fv܃3C/[8LChލ3& eNj}~1 y CTzq48, y3=D%)vT pkZ` |[\"3"0y S@$tk%ϕZW 1Mtݬ ,F;sA#t,FHZ֭)]~^{![C#6 vT wcՀ:KgF{#_ 7֧]c!&lc6|:r˱(*t "51.s~?~|rja阅;p{KӵOv.AM6U )*`8P xOwɱd7 $^|ܺ! Ibذ5Xo 3} J.O[Lh?hʔRq 2a$dks TGRS yAUwT(KHR<7EEt VkZ"dK_r[-m ; }tCa !(Ëۮy6[۰p{ѻ8/:VKCd$>Y8iu}.]_/q= tJ2ĚUcduDȣV%6.uـ@_PM HJ9V$w7 w#\`/ZBViRGl^_ )aNҳ뺚Tp c]ʡU$/zHXk/lZi,ʒ,'>uAdvvQhޝw48x,y,? JSOZ e>7ḣ ]>,rjf0Kλ٦jp(殫G8:ܛ .$-~Zif+ܙ5 \yݥ}k 7fJ2lG=1/E\j)V .vȲ*ߎOOeV:Q~]?f`[&K M! = ٥C BsAYIJ"{N5ERAg _aXg,#Rb1PAh! %[B K-؝ያ[&tĖ8q(! C\Ơ Chl!h$/ `4X2Xv3QS@aD#\>s`@ IJoi[b]{V:g_?p>Z.oKYLSinYG+ya~m0gfWjځ3M1́0ťMiP)obYU eJmv5St$>㶛%]P^l:2de@A}QIC9]J0l3βjSMsk;e=߸9mW&^n ^}h)Y0adTx -D/}s69`Q:bLHbN &tUT3dHp< 5'KeIdP?a)hIȌ al,zPX3]\Ҝ[ $4w'#E'rf":]A_oH( v9iN2٨rXٟ,;\8Qmuٷ|ߏ./a-GBohK8cqy]+)Xp)-n/ ihC%XtxNF\mQ͝ ^oAcH,3fR-ffIT2Nu$>٦At˯1pj!Y\=f Qg ~4b":A7%XlɕK&z^ :^ )f $(jנ:%Oz0V/}BXN(J`1x=ž` vl R0$n!_hMZr9۰c[W ڼYX2E˺,9bg}*FﰥI%B;[ݯ DN%[2:*|̜+7Q̀gQ v\dN]vI LXEi& 5ԙjx̩$J֞'} Ng1y*X )L883XuH4CJ_KFDCn%AElG z#Gcid6l%WzvPk1@%i؋< @,<󱄛AI@_CTAw}!|H"h-}2W{lЮ\_B{aMBNqRN.efOaB<찁ueΊ l'BF Zؽ/?`NvVZ`bhɜE ky|7WNP9jXk bv9{(Ê}GNZlj4֋3NG `@Q`=Nc{h]Sԁ. V4vZk/%[`$*ώ0־$'-s'LOPጄYvC1(1 z#S tL f/׎'?[PѶ% L?@lH7rˠuAr9yezL.TNf!Wˆ* YK _7^ kڪ1L 4Ҹq'u>(by6Xd`id<[E.V3jvΰX<1Gw*7WL6Il,~<ѐwf{?y0VT9ZUOEgIu菍 顠82q_E!{-_q.|^@N yugOŎZsbzM'aƳhO1!3hi7'2IX?Qa3FH;TL)9AR| :U| CgLp3?l0W(9D(%s.b|̀PEӴa309iv~ ؈.t"+^- |+{Y\ ˾m2Kl?]~侚њll2}{NK4`cݴ36bW?;u݇jSH9JQ$A=a@Yv'tڇ`2<6A@ `Y 1 iPzxÕtZWQ.4Π`F]i3|{@ל!EJF#CM}snNDP'uBxv?PϲGr즓]vmPG>`ʃ8j qn癌MEMԹB5HK&hnq$ljSc\0]_naSOD3xJ:U*-ccD$RVMfsHݫ֥ksDSoC*ۉVEޓeFLݭ1#4zpoޱxb QnřP:I^qa0T {! 3ɱwxhh(ʒ CLTlrimhV7i*N|6c0@׳,^O.݁)BC8s=U*NC94.ƍ%W !]ك@[p<@ߥ_|=ZqÃ&K;,.B:aH6%fiOqΑ)ޖOl7Ù[Bfy8:'^\jjXx`(we @t~-4O0L]3?']=<=+x*x!gTVp3]V ;غw2}hdΥږq-ϼ7 Kg*4F/Ad8ֲȅGom# ;\veT RRC_;©YBoY8 !U@Zcuщ]ᗯj7c\Y{x-#CAf|ѫsY]hwRvoXNKJDs&3rq3nQйҗ0;=oJ_u,;\CA]v欎l _/tVS&t.4tJ3V NYۖD2(5*\g8;4$K S<$Wyz!\5'&(_/ski]a`TC~H. ek=p 3-GXL@&2F%~uG:\ 0?dD'1](W.Ds0̤p&)N,%altO V?E(t4I;8݉)5,;yQՐ1Ex8}*,jo)N ULT#3GR>ArjKѸfpQ~_:@#P(et^H@b!DL͐Fs;Ac=&#vy,fb?z.oLX@e "r &n4yupY%JevvM5;Ey?[(:H]0}A"3%tL|vGޫqn 8\o佖.E!zI̩Ҿh^){`B2Ea^̷Dj i}ZZŸh6Ahq)*-9O!RcPK@VN  :tensorflow_federated/python/core/impl/type_constructors.pyV6+ދhiN6 :6btl9A-lȒTwHɖm9n[aWo޼!u#!o^-BjR&F !V(z7 beE34OGC؆Bm&R=LGb|KݚeY֠+u&PVD`5l挰k /7h)$5FUe:УOH/V Zt1tiqh>ft9gqF DOt.$h*O$Va*tBo0B*&,'2V,M ժjC\$I^JaX&B`+- 8i [/ܚ[R$nƹ7'&ܓ{0 c|Y wC@UhUp+ Hɑܶv:uh %BhNeA:| 7p~z߻>`[&Ž}2CJr6D5ԯrL1-vHML |Ae&t{i]†yk9Zފt \[+M K#CwEDq]Y5iŪ4kJK +^2D7 :͖v':˳Ҧr@獧Z)ώf&Ѩ(ڣ IvGso{Qt!Hi ž7\we讀!+.IVU'"*vVh|v~x;zg}nlHi$ͰSAxcȤbM-hWUɊ>vܙ_\]}uu^'kHC\d*-}d>>ӳ%'%!vφB فkZ_V4dIۏѼҸ8%$GZ9JTCCϟ.A.gGAjk=q F)EV)tBC{[MN/?_E\ȩ|磁fC~d&-0|NO`^mb0y8oLLzY Mpխ'd'Q_wCo)3~d hǃסT՞WD,GBr\:'͎ dG௿EQJ vcԃTi٬3}sDeetƵn m{GfU_/*re$鰻q籆ʜ^zY_ӥ 1Ȁrn:p{\EUH_qc`dG9]5Dzڮ(#YE:oUfʠJ16ԬXYg K*P7?\Q+Ƈ: KHpzС?e5Q>>\y)В~6r0)˱hfo3ʜ1Fo%;5l: վ,o@˽Z2Ƴgߴimר;9q9"S"1 )͡}$,GKl/8!|#)e8DT锦SKFrUV(,PK@VNAn=@x3tensorflow_federated/python/core/impl/type_utils.py=ksq+&Q8r}VDE0 6Z" Bk^@98{zwPZHݮyUob.Z/^e? hOw9W5t& GDO"W/8^m5<8H/,"T53xʛ2iVP{Iӕx{c`MOtnA&y6Ůֻmc{"(5px,U6/:ݖb@{?&NOIu/2{,Fr[B v+:8)&W#niE\}-hC@jY(-ԪF3G$ͻI Ŷȳ&e&|B K3z$dYf`D+(Av%HL =a%P>?C^\^Wtc/2U麊$MZ@/ 5NE[B[#e|fF"^gzhXb_Onl2a0:PQH:E*O6ziXɽ/!5O4Ɩ*}T^)(ūm_q6 zVD3^J#Z'[=*F>_/c#~+)W<`5֚Ҁ0*hj=ᶓ^Z=6o1lߡ4P߻k 2' ۇ4t{DU3UnvBI%^ ?W 8 f',;#zB:@Zo* ;Z NHVS02z9n_"wcaDsr&yjUW 2=goY`q$stb IbɤBkX֟E]"5}y)p>~@y3Y711H Ϝ/b砲j'PhAu^S-\$el}g<~u1Ǫ_Hn u`@ea3/{c\7ptGC7@HDPTZ[w@]tͷ=pn47j~!HGOg-)|D;XM)N]Wpɰį;=5-հ|a.6Hߔ%eU&)ؾ_|GdH_Ġ6I$H{:.ǀdm ٔxdL{#&u$eQxF9H[hYπwڪϸɎoE]JT " 4GI6aa# zE i`x -^ 1 ϑDB7DD"4PC aOQY=-۷ F-37h[GPcXrF5hAy%t)Ȧ1|@] :R*C^.w LRٜ&Yi4bf59nH4ehִL{_^S5]) `ZéNGM3j?x h<j\7_ =T|*| . $h&!c'h GVi4FzC#L/CnN!D d|Ab3HwΊ CDJW{7y4[imXWE*58kj:Yꆕmj`r9#~T`|64_K^~LW'm_~0MR02 @~!k%h:bucDxdIg-36hkM`mRBguݼneA) {tYro]}a92l@&6.[emB3&17;j- 1:. %e' BoAaN9SdZL|QvҼ.U(Ta9BezŲ 3Ch~ \I^xx{T\K{4`z'+.;7/t0 ǵ2JDT`%M<\Ps3h,K.Bd]MbtPa-p-a['aRD$K)[oɒC,ͬ;ans\ТӃ0̺0`vȾ`y=rB02g'{MIay?Q̗[K> 1Dq8npͤ:5ϸ#qcZIGlt-z6z3/s|{)F gC6kNBNnܸ)@:(!tO;]eAsiI ibu9 9/1ykLh7Ӝ-fL-〹q \Ɩ=[~E!hSgmAQ>CRQella.VFnXQviO s``BԒ,i^_`U'NĖ2G@.Dq%~R7y5+x*-&GRU^@k\qy':u~/n +%7Vׯ;eXa/pZW1nCwٗcA56. wرx<챓wl!LGTWEQ9J y]O2Խ!x>1#Fø]-Y$ Hp܃{ӥ4dݵ>ב&>CSKM,i3cNLg6^Oغ)xZz4Fb8lrF=v?hX#EMyfRL._^ @Ќ踤!yGWS Ni6B"kqUWb\ 6kl; W6[Fy ^\kb[yk̆U)Rt蚫&wh>O{z sц[: f5b'.{ʄ:<܍q sd ()ixdp7_ y<рtF4gbZ1t0iqw0\<BoԬYlҚrkTDJuDmmhT$hK*O*-ƊtST4K`o#|<{o:z^S; Lی@`vr&Yȧ~4bqʂ!>!B2ʼn9Gq" =[يX)Zt\leu~,,"v=-ͩW٧c#vN+̅8 -[jҹK9u&|[5TϽRKRpxH0Ġ yӕ ]R1 xhg6=gtkgVMԐhM$_Xr=>߼`4.-p֥5uik`14/70ξYᗰ/07qO40 00ƥ=Z DQzӾmKgؖjMچ\.p*qua\> A&x!~S5J#mwHh1Y]*f?0Va6VIՎQ=tNQK>1]hahb a B:L}r-x+!ǽ,N$x1ց.{.x9٘+ү=l`T+]pBIG7Ә>g o|175Sw}d}q x~;N"㳏o![>%zы d]N +4m֧Iu>F(V>yF22G_ [,veCнx1Tu 3?Bl%*\Z$W0~ֵζM.FBi.(ZfTI-Cr'>k񉈧@P,ׂȜK€ Ʒ -F)tSZU4HLگ@/bxĪ9PC:dw4 =c l;yd,PwcVfȶ,A7klc(^ Ͷ>$)UWL5)@[2:$|O̅*;nOWw6K&&yun`L _93f? LONj&|-811ቸےAHv5kw}+xVS;KXcA(ʠpnC k\M]H R6t]ah8)A]Ԅ ) zGIЙb":gVVnŧ|0%|cg]،TYJCm,TVn}='S9+!3-^!3Z!i {t~|LP + eCg -!ڨ1_*{ٞjWo$SJjU>J#vr@(d (BN aqOzw$IܛɤGؖv4qWr]CunUg`Mgr=6.;Ejjn,[/P3XբLxuL ɳl(Izl'!9b͡T&'LON?B%ISw3W6[zwZ\~V՚7u C"0I ) EQ@";{eHAȲ+ܒwC!H$_lK$ LN9c{3"6FG`w6`jHNLJiqPr~WW05ypZ%^o|; 4 :Ѝ"`QL=D[v8{ѿç̨cW@?wY= Vc` 7NЫkU:N"9Ƥ#ko6caٓJq>o|cj4"ް+XOHeq3_; ͯ;jn50$"xlN?C Ox3'!.}XƇwqMd~rv cۛ sS.r䤶 }Lc~]8~ ndaϐ,.8!87h [O ʁ"SȎffFb1Sbnc% ݌>q%s3Ȓ.kPX9/pԗ+>^i+)-UIQфV=1C;0t?lc49#vq:qO PK@VN&7 M=3tensorflow_federated/python/core/impl/value_impl.py[mo8_Ab4 Eiy%(73(z[`%r8ׇ3 vL97ߏl-L*Gɖx.B6)u)ob}E Y&)?f~I̾aCpd^ vI6|$g@B*`.id̂dFǁ`[iC`"0-q0<=yzzl:#gӳW1GB)2.vPfķ,_e 2d.՘doy&J(UEפUvx̎&Sv>=b?N1|O3jr1;?+vzy|v~y޳/L`qf?0)Q"DM1L4C*\ l܊,TdP J$729=ilÒb#rQ _fyEڟxTO[/8P"2K6E^dq'I#${װPJd}4RʏAE*Z;M>x*e ;QɋE\|i6S=sy+7IGraI8wP~^DE#!2!&-I1Oh;(dQ( n夋ZvgE^J?]7Sy.Ћ=ytJ~(!F0X@XD&y$C:} JfxڍRCPƒр(AwPz8:0tV"&@ZFe*C$}DӰqiQZtz2䭈iހFO\IȠLƺŰ>:O$xSck0.F3D:3>*A%,|teI6t_M!"$vL)Rb$Ak'<ٱK v-59[n[16RX`}{@z"hT==>Xϭƴ{  IxTnxZTd!w8d Fl"2m2 -* ک4AgU؊8QPݍ-4l,p:r>@@.7L42~X󻎬uhN4Mpjt#v&1`X~z Bw`w fn05fdțlLފ ^3 h_ߺX&@P5$sZQx ] @0(pFKONk-P>)JYR?<őޒ(}-e4}*?| Wւ9΢<[^߲4Z79oFrʫHi@;iJ Hut!vt 3Lfm'PH[vmc]_X IφT8ݜTq7Ts(L-.U,jh,ȌZ1Vm /)쁉)6}|Ն½gƑMv|ZY>i9J$xqFjشΌҗlHϢ=у{ulx<> vnȁ4XZBЏOyLVbYdZ7ۣ<7r?mFZk.ήO>M"MGwݦ5s.$ZA|ѽ96>qT:qvtt3LQN# YIUR7Bh41 W"3p|&1 njcH'fVWҜH5 o+98m {=~?s >5ejz7ò6@fҦ"YrX%&QiMTd~ ıNph!R0Q[7BCk ±U^Q'O9smh%a} `% h w!)ms- o4!4Xh%`qy"c^e/&\a2Cm:a˚!uե9M,n].^yݛ7w#$"$Bծ']\P$y盫ˆ9xzg[ЭQ2PʫD/ Eմ28EtREjʹ5.V0]H*@JOu:ݥB[91@#츜S32zy'D 1lyRҪ8f{% 6?DA&z$/ Mp:7zߜ#r G_{4^9$9۩FZ[Na!iO&ϑeݿ^' KKuVU/v$~ Yyl ܙ"w}I/ jd';&PBE&ItH,Q%mܳ cy㎕7 Ǿ![ǻD839P8}X$I4o8PE X #i 4C{025DIWJ +-ZAȔXryrSH2gcV%"MAxYOD8ƤVK" тb-iqB8^*8!e6eRF̐KhU;jTM2_bm+G$z2( <4W4QMW;ȶ.ܼ`]I:U,.No\)<{Awm[; msOV/MSJuXv~MnZ"u\oƽE.1`Wi45$<)9zQŦ: Q^ԩUUڟ9;kjX>k[*9rJzPK@VNF~ 4tensorflow_federated/python/core/impl/value_utils.pyY]o}`PEC6pY$޽ h,ۻޙ!%џf!%r8s8sxyǮbtŇl8l(2W7i`7"kng*λ;v+0Vg&u >?MUU^(e6 XO+VYj%G^Cvv^{!{ vwϮݰc`ˈepR""AXs`BD!lZ`E aPsYn^VR9kzT999e `̤f _xZ̖_QiZ!t&*(TR"0\iGehoX"_$z}d5Z)/Q @@uD:bՑ~>l5lw)Q"&o1E[& IWYDz(#@ԙKcP  "5ggdXP˹@@v`?C&cWK攀€l_:38U=bq4N|.! -f9HM6yUj6Cqs 1OK0faHP>b("ra1"hĈ{t &.@2@[>[0)֐-PбG \TdƁ4P[Wop_3+vMU |kƂ$ < \O;zU W*ϳ=zpHа_{b_ּ 67&ؙ/x,F<7[kW\ڈlWmѸih"ߋ:?{B|}LgH}c-S/oD9) wa>ZC:pS?W3uDik\&Rފ0@ɓd& cE~eOz5|H OodG?#}Gn,#?&D;"CkFت>2t V[(CE;Ll3/qyh!He[1Ǐm[gWPkA}+CWU"9pblM#/[j6 '_r ,Sߒdᔤa3<K6-he쓻Vp ˍsh]f9&d/a-2itD{|(+Uv_6 ˆXo\nm` 9-/mgkҕd*lu m`nhkԡN4Bj&dhY􁜅s#WprFub@=qb ڍ!e5‘xۜA|:CT+d?řp홧//c2̕]}u^?ν5x/ $jQGpQ%GOLvXAp=GA(6#z"a,-YoJ0>ֻowq}w-Mo77oV╴O$%KmL(L'-Հ0z+r`B?RH BC#󓨪(@}zo#NJMiZ+%R($84R Nh]Q{Mt:Ncdn|,A_ bGtT@]TFE}7J!PUy@N+ҖQbA$rʟv8} wmil8be5/-1JnAD{2>4M9zl&g$vͼ~,fԹH,=w<^P$O*5ن3hwZRK7O47 7)= $u2tW^0?=f[$ A{*evH]jޟXV,KY)PK@VNe;tensorflow_federated/python/core/utils/computation_utils.pyXn7}WLKNV:6*4 [iŊJlVZQ{gxً%B^-9gg G>kUX-|o0_ssi-ny58w"=&OX/\$|!m8 KgajذHe6!BWLmR0q vnҀB-- Wfan slWi.Mof7y/Kn hg-4uV!-fɶ4fja\n戒 cXֶH݀b&0}8&Ӈ1b|{?l>y{Χw3t Gi:{;B7s?GS8('d*Bdx.يJ=r-8Pqi^(ˬ{wdpvvBr\vE-3^i!mIo@ݧE}RP2A%R,MKö٧S4oQ `lQ dUi<c{ 4:|FѱRG aCvš i"۵e%XCtjhv9b-+*y* j_>ZJ ۢYr˂JW0 pol7Ӻ;HsKZ&iP L٢GB~< t%Jhg@Ħ.r{deLxH񶢃6NH^ T|le5jրK#M* cvxW{"mTv 3Azs%D$Qko'<|"'Y9[QŗejJ2i~ 6q)4=ħBkz}:x6!U]{dyBSzDHA?3/PK@VN?phT>tensorflow_federated/python/core/utils/tf_computation_utils.pyX]s6}ׯ6Wח>mj+右7w7o8I9?uu$QP&VY=Kbm%yÀVy 9SVrU?V N ^Bfa/?Oӻ?чO49Dp9s*]\\|_*?RQ,JprG!uc8ѨfKEQł]1֓X9S"de)U/ZlQکC\( ‘/D׋HZA‰ыR\W}ܚ-|]O٨ D62{VU`ƍFHk.b+>m4岠􋝰ލ5V$\2 yJ_)`%pPIlFc=\p`j'5-;kt#SXccD|uV+}mHeQys$^_TÐAr`d"YVBP3ߧ =QAk-֢BE & o4$m#y8GyDr'\H\ROu뛨H<,OCX%Geg/hooIPdY?&-NpܐWmE.VǤ&R!^ ;_ <]ꍵ^^ $sSD><Øtids7 M{^GjNFCϸzw&/#%o0`Kp>lhPi&418 rqux +q&月8>im+Yy1t>'5~Lq|lKh3% IBc f*!0=AC@Ƚ,Vjz;F&'\*?~}sz&**F\a0N}M>A)c<LE\ͰcI-)<4' 4uSybAdh7Vr#vi, aZjļTA;g0p@7+uέ~qe {_ :Q$O=/z m?[$7v%<*7rC ,f+aٶ jޒ17f/ScSO^r)$ʐuc{ԴmNmX3.S!QKz?+l` t?ޏWWWz557TE/UE+jj5u5~3Uɉ[Q-` Oh@*wp9tdž8"?/R2]ĸq|œuNK\ok:&-￐47uGPv9 ID籧d5"Q [2Qo%.lwohJ_@I@d4"B7Mp1vK LxQފ0nmʄUBY;p*=scO|S :,8NEH5?ÆPާq}i򵊇LEELJFd<$( >It26C!P遐3XJT[^#rm tD$)o**8sdڜԂk֧itJ|@ "]@6#& 5Ih\BPQTYcU[zs%Ɔ>R<@~X<ݪ"7P`YPɆ Ng& 3VȒÁ Ai˶پ<<`]|^HhPva9)d)bzC!ásK'Pv ,:Z~%@7/6zl_U6mYjT:+0> t&Ga)[G?ǣo#5fjl;wӊȧ?~DPK@VNͷ" 4;tensorflow_federated/python/learning/federated_averaging.pyXko8_A"b$"u&3Š(ڢlm%QCRv<{.Iɲd&y{^ YU6_v<d!DZ\صHF$lTT: ^اl3xZx .*>M,dɎ u $e f4"2,L4z 흟\h͔|`ЌOafWL*JdJe&+}ejV\ HI2mT6VtKv0gat?CƗOetw7OƷ7뚍n~a\@F%B( 8t,DIf> LK!*v#J xp1b(3_Ϯ2Ⳕ ؽe&rv o #/*-qC3o4[q~2S)DA9 q--T d~8~O klcTܱ́$[fW*+ 3^VyJU537c8NTE_F(BqMu+|5. oo2y\,/܈ ꥢ:θ^HP m9"K*эA09*"'0أ<ܱ%r//Enu;*rKHdQX"R7+3ǡyw쳙Qy7Vӧ$j[S%ڗsj{IbNLh3]mE y8$:Yz"{:#%(Eq.g<)@tމ|J%jJme9KIW ƭ˂hjC/T8 K[Ґ^HiXYS0 $GN Lh-KddOb[(Bgw+.ڿÎ+'#NR/訆qk\et6Y ԟv:SI)1_=#{8H?Оn={34,>4oڍYJ[hZ_LlS6J޵ha6xM |&hx7ޙ,Hb^%Jt<ͦbWh*`3،5#JCG$R?#Tm8>5t]Q5ksaǍu"_oYngqmКEȪҙFH r3KzB7B\a @O;.qhq *;LJ)ëGUڇD<* [j)-1hvC{<8 ߜEh`[:O/DG[3Г+v`J;[r\"8-iO;r<Ԍ5)-+{uQc<,-Hl^y+FN. q΁.uSe!l5Ngȟwovk?/-"0ry3=Pv 2g/j@锛٢#wTMҼcj7s}5~| hG@tHtr#X(OOPtɻpǽͫ8 'NQ>#=zްYܭ&ֈsP^p z6-@y`kׄom=b;uLawo{gcoxv8BO -?UrsRs$!afG1͉dtkv﫪^/PK@VN?bI<tensorflow_federated/python/learning/federated_evaluation.pyWS8b>̹"niʏ`t:ز;Ir+)C4ۧݷo>\fep4zyl!`&juVp-2[Pڰ`>Ӷ`qӸ) ob$#6W{aZje5!\T4d R:v_[9o[_:9;<\V;L+2v{>֥0:_oPH+Px.b0*+dX-ֆkOa2݃d#ۏ3<&WSۛlr{߮a|\ 0WF|o4G(2JTL#RU-/j)tǁFJAz[C E.DSyĒ{p`kUAmHګ>7$S2DŧuJ8Ue)#}f]܀q=k5lѴ{g0xꤔs=kuZن$ܥeP@(Vt.%qf>s6.'KDka9sܰԲFu%s`v5Z7;E8/ON$4%O=!;a`djZcݨ ἫT{мYDCM4y[h꼧}&x+h8im%ha]*-@P7O7zI>%,#$6F$,x#| ιMeM ߹y_,яG'8]l !Iň!(iP-M= B߁vW-~ק;Qᰂ52htpss Yik"ZUίyi/ m* Jl39 C= KnO9Bcwbv#7gبJe (9y5:=zs4œJf=X[~ohKvp1B uAot[%KktIxWlA/<J{~˃p;zAH[Rt+ӷǯ(3gU7:dEWG9X\<>YAkT&]^A'@p Hh p6Mi ~Aؗv!X}%c==H Yb6Z*=0`5"&FlArluQHٹ@]$?ѝ/ N.Lc(AWap=6pg$nm}hOWw1^@?f6NT5 ;3e3 DxI70׊g1|7A:ߵ]lG xPK@VNf.Gf -tensorflow_federated/python/learning/model.pyYnF}W4&N @<1x[ X,ْ:Cnb}OUu7)Yd2b[bWԩ PͶS|j5jaj߸٫S;S6g/&_;[|^u8t?7s8oZ}}՛[HxnzϪn:{֫2 v֪hvmeu]ݖ B-hVϷk=~Nۮk//.}Y۬qJwϡ1ʙճ-* jVz|5֛ͺkg svwފ՛GuFz}CƯ>P^=<\/nՇF]~~ |k֑PҒMIN{4@u# vm Uoz1j<W^ )Nw ɛ7oVJ]kJSyuIZ'`UF5NM&krޙTo\7\_{O|ٺç5+6$Ehʈko?O&;}tBj3e׷?uk<k#I]WOO2[laWMot@}xe,;iή޽ B {f;`(eLC 8EkpIx|o}>q*+o8rD~N =M+p͌Kb  .64rVSR\ B^ IQ!0qh34)ˉ:%#-! ۘfa[)$D5NmB 䶩K░S7N[c jeɰIuUZa@a-bu 7:4"B^N__ HhC}J~ad*_5ȴA:dt^E+rޠl~g p tD)-QnEӈk>Z;op5WiBy rjE|Wڋ1!n*X/ >C|w38 duݨJ fcDwk,EWBMGrD)eJqL/rYRCg9GY*HǻC 5>t]nl 2^tOtB|qG?fsg~|G5J) BjuKdw(?" )ThS`hJZ%_%#EvhGgɧs\ AmV#S eH ٻdG22}Gwva|-F;xf<E)ʕI2 wF `="J_ EF5UG)ׂ |k1Q֓c853IΆhY N}zl+zFΙK] 0x`盘/A8j=}_u>X ;la]c4Ǵ㪨] Xz]9:0gކIQw"Edq!۹3?4{Ouݑ6}OxXoTj.^ܓUdI0|'O/&4Ժ- %Нdž&PNJӔ'zC6 !\{Ou A%\E]@UwpLJ&[yqb>h4E;^q’lIӝDk/F$|9mQXme<ʮKxALq?LgUCG=fl?H9% Qab:Ӗ`yEDηBJ*ɥ]+"y| sA~FB-:௡Mcy,L@ų8f$( =\q;j5E["VUba+/}ab{x"%nGxJgh״&QLu<߈Miw£c#2߲d_grRrT7Q25zA\;>VC䨠oLj9i#xť5_h'~H40⫘ne,mx,%4K$ϩ uv'b:âe;Lq1/'|r0*} si}ԙ(1OL-875mdrp*{pLDd+/ӫk#jXqӇ/P_PK@VN2ߪ M3tensorflow_federated/python/learning/model_utils.py\msF_1g} аlX#ߪKWcמ!5"Io f@*QLOOO/x2bqBeU^N;ZŪżo G's1msQäy!K?w< 'ѓ}ވ܋,ES) TbJ*jdb4Ze4`CCW'dM M]gϟ݅ r܁*Cפ0ck&+QoF ՏWӯw/ XB| R &"ObZܲ9x@XAYGɺHѝm5a_*f}tgQ,2˳.onT}b{0TIVV#$}@plKYDa ௣'SU-f \vnJSh!>FhΓ 0Eɯ 蛩`2l$XɫRh.NAE"0ĭ,D11:fA+Ð t3J,-C. DvJ?Mz{|-T?$IƓ sJAbB_W1{H#&e5 1v +5g'9L\ *1Y(囡/*Pp#5Xc@&Us @ΞߴgI2˼.>9:$[M,ID8vs ;*ZKRF- !U= iA4ԃU!e {AJ]6%#]6аݴ Y'v t| E[b#l)$p'9"PA4lێdgrHn)9\5I!mdWjAh ~ fk:ap}3u_N cc$b,n~m& >s<`E8 ެfvCRڠZ#b RpkX>&x@nߟ~{kJ7{2H8M=&)&2I2AفA;L4>#RAwI= ndՐxuzM9$^Sv9y tDΘrK GXZKR, u64x6^3T&OifavnYP !>H~V45IZ7&"7aYRmDc! I  51^(Rx(RO~BoT/T,>F-H+W/rJL)StZ{DJQqiqe_2t;"2Z͛2[)hMEY Z&*i(jIpL*G/@2f37JJ _oxG7DNVv(  ]%Udh!43,kְs?kt`(`skص-31ބħd5VPx솀> 9@N$p pԌh?3CgtGea N0. %lNqM0E˟,OBJ9γt/ nԷ(KcpSY!%屵 IxtdM!ʃyYv[-|4o@ $c!Ӯ"La,ĖE*ט痋k4vmtݨ2I& &n\w}FV NRXah}31%ׯ$]:g|$qAcK,;*s#cArFDiBM,p C5 by1~WV>GB &0#51Ae͠NV$:Sw%⣨JD!\r _YtZ7"N-{r=C "RmH݆{2u٧ :)^Jr./^~/IdR6>𱘊,4;14yux8b>qL1 X*SefLc{,: ,S;;+GC R7qBx\AKXC dmvM  :,"\TbEG,mV+4<ڂEVV9O?Z(jAJ70 z".כ<T~݊ЃЀ[HZ""݊a~Hŀ90ZC7M ]AȺUNjƗUô ;Vjr2>DP5UxYXN[ *eX8E^ ux2(z*MC7(Qrѭ3dy/tߒ ?)6dO<8 7hjUߨ4),X#R&XV] _]&lWnbW.fumtj[{׋cn07gx6 D]st#$ۖIv9Ix<!L ̋3?jK26#`פ3((TзR7|fa(#"`y- tAtT|Tܕ(HTh&ՌT2wZ^g GU_-=BG2&sKyjofa0iQTFҸd@vC7+XpCxrK77Jf?a<-5Uj́&\^US1٤> }?d;ijrɿkWu}?OSi6&eS=:ٶbU& k~"p'QĜV=+jڎl3Az nea0!#u'Yn|r%dH5YVJaf;Z% dTa HdTSu7v| O6Q|e%/>Z㇞&sXűID%G֫XORqLul*q̶/ NVRvb 낪nGYQ Xw\8.0UBR )޼jP(MU("O0kZ5kvaԞM( pRm^~ׯ'gݒ&5(46'Y{oaoQ̶f.,Y69OoWo#w..//(fަ=!{3ܾe:uwD/Y{>! kK1aKaQ_J4;"5WÁwaI GN83iv!6n8Fc襱S{=[@ iwV[q&"H)Pֹʉ"(P(^7[~xxU2ՙWhفЗUg U0p1KeS$ѷJoZ%[T#5+/n7W{%}t~k.,#A>6^tx33(c[ANuǮ3mv<Q]P%$\5Vi*6~qWM "vԕWbK1JnO<5M)~zŔ1:'_^}kc!v7% -t}y}dVz f~.j iz"[ކNƺ{Rďjb} ,TqvpK/ԫ:]xU!J 4ה#p[`,SDo~ҕ1&6y?;%QLx.WK%S=T_.U BBg{|Igv52$j3?~݇;9ީua8E_@;+?vj %E65W!>up_N\Tm4xm_`LW3䚬NRυa5m3XR MJLA<t1u)SomA#Oz/rE\,l UYҷUP?f ^V٨/"wxGoc:(mɋ:j6Thw13j. 6'N-ǚzB* yfou s^&?M13FQZpaxqq=ۊo|74k4 y>Q[&?fFĻIJTqگ ǹuÛ M9qn Ij+}gov'N]H͡JR\:c ALaaPJiP{^Z>{gh\O;y]ں&t^\%wVM7K7EY9BeWg4.jC`㲻.wj4Hٙoٙ3X)7i\|EPZe6B sXAܻVg|%ŐG?Ś9xJEt|@xp^б=H堷HBޗp LwB4 (QS8 O~\mLS]~LVm~A@kDdle5'<l`UfP*nEfjQяH/&!SHi.&3mS]jLd-|H @Ҋ6?^Gh)@&BVck^R]YШ;4wPcnUTa R ɘTr* P( %ȦL4l;XFuuzy+R+\> kå#,}Iln  =M<ڰeGJ;'w\#tsQ坪P:FԡS[Q6@S3lLW4P # h4*A^EA*P~ۄp167Nm34U8zCo/PK@VNboAAtensorflow_federated/python/learning/framework/optimizer_utils.py;ks6+pvƱM{SIznkwb7 E|XVwy @QEґ*m-W8=y.+%UєǼ܈*UlU*.vUM49oӮML&Ude!NՋ_¶ZnEQkr%cVdHugHd튎@  VKX_NȖUV^m6HQY/_弲yՇ/cCj|+d%rhr#Ze]["›:kb\Y+fM[geЃK ^/. ]0~ŏ>]_Q\CP($3JhwJy,JFT-U,;TbY>JAn6^ Pl';&/^*kͼa2q +Se_ M'E]E/U%ʺrޔ9+C{_Y"' =1&e+zMh j _,jI}>b}_>=w'B"U_ xE*(Mx`eڂV49U?L3WMUib K׊_<'Jq-AdQu5qU]0mnA0W*<\IW{]*6˛7;\ 2)Tӊ [FZզD뷧_}9 +ADˆaZvZ&CMrdmVbT)4U;v짉?Gtʚ#.,TZ1|e{u7P7 }DRR7 8a^ V`6+`',}g;RTd0mBhT+dW FFqIhܭZa^ c{s}|Hr lT`TTXiF  ܒl|B ^yd2LKTtw`:aab1xXp9@kI/( -$ڱRMbvB*5& 5 6Ȗ, { /l}: }G:v֠m47eե,-0$;^6Bܫ$MO(ΰRkkd5g. ~bgyz+`s2tc&GVpXƌMLr޲Ϳ+AbiѺMk( c)"!E46"1nٞ8֠l(òz)CdS `3- *{#$ѭy1R7P #-P4jeX'!x.r Qbo;7HDh;Y5a0K 3M#$vq1T(dhS%J>Pԡ4%:Nc\#%Eڭ[@'\eM&došac@E=!(tNrŸZ,UI` Ƽkh%H73IW@xPwT@vIC9&D:&15HCR4lYMNlmMYtOE Ff,>1 ĚL$~?4(D1:pq-܆FFV 9~ _e{e\/мIY{#YBNKsP8/Hbp C84 '<D6Hd]SDڍ.":h<':KGDr?jbE)92Jp>dK)R2C^)/]Cs=s@_'mBWAbTP"L|-=ywIN{slSߛ? _(hãԹJ=(K@`5 ũFWDbi"XoҡEݺ ZnF:2wu,﬇j٫%r=w7%,c3|@pȐt`諊4`y^tzbGM rL:wV##rXuk"@ڎckx&󹣽ϻQCc1WSwo5Bx}9'JŋbMy ѹKY/%t ZA_bϑ/ЪXa;R4 Z/S E]-4žgm 3sa\6y ee A|X ~iPe_=OԸ+4!ed؎`!* &&jKdee8vp0xS2qP..$dI(e7%ˆ68"ckc?l<]gfn$j\Dw0DiJbƍ 4qu1haTcR ->^^xL'sn=/@x 6k-@vU[4&SuB֏Ѐ5 jـY_Ƒ}BӤޥV/FHȩ ) {.f˙IG4R4@qVm&b|TF`Iij J Qn9G Ne Np;b} p@OY2v{0^+YIYeZ Fh]RPdiH>|)TݻR/1LC&~}rV빪|W2AKldDmM ʹ]@ hDO[u I7o1Z$~Jy pܑDNu̒GJp!%ϽQ#A~R+{ߒD(/5ﰜ=]A0iy.p-9l PfԾ܏-zmWGƒ~c.Mjs8",Je0hWu(lyգ\W^zQ>s}@bgD"fQO#Sc@vClwbHAw!4^ᕥBidQ)}SXd%E|<6J](eMF@GylKi?V0F#ݛgX%{C=#iQ=Ok$*ڻ`R8i"v351FprnO͊5'E"}3QNXɉiqT+wM41p0VdVU?G QI*Nk̨UрWx-eu"ɨRfbJ 6:x~A9[@lG%Nw f;G#mCšbDEpllaϰh _Qq0fEq1V*Ud oNޞ{5UYi͵-#>Y!NЗ7\0q->*m3F26$b SFߵlW |x|UzL#3 z0iSr88m)4mNmg ܧUf#e ,mhZ)e\zP 9GR"гGAή쟽9y 3GRyс,Y}T{/&,@. imzGV ^1 Ə>C%'K755,%8֠#<)dT}*]r T&' 2r}hI$zW[2ڗŝlo-)]{>L{߃ o)GV`L \X!y'oaWs5۽5p I2>gmv!N ;acuhii Z82tPK@VNfB/m`2tensorflow_federated/python/simulation/__init__.pyTj@+҂+@iAc") F򂴻EwV:3y;iY~2lr.Z=+. N%pWK%2I,: ܥa{&2tPK4RA;JJAzف AW 7|@(xtHj#mitӫdvL/>έj9{-6 *E2[1 #VTi,zz^7}X~ aB#NtwIv.Yrf<ɒՒO 3Y'ࣱ^?Gi)  rKY˒RM/F?Ut5˫$Ac俦 C?G/-*۫~ŖɮoCAmuy^[sߏpeJ>H/RGU)wl4@;?)̆w@E( r7*MМ#oB{9o͏.-Icȗ;! x0:~cAoۮcKhPyPenr :a6rԙ}esq]~'PK@VNW 5tensorflow_federated/python/simulation/client_data.pyVMs6W{FӜ:%?&rRɉHPBK,ZV}.v촇jcX}vcpڛ"7?4BTuVt+U p>qvLM vqhت}0 Qut3֮ZuaզѤKF2JllieB A_z7 -};RQoc{~vZr%lsgM gGW`,g>F@^XgkR-jZ^c/:&&;Ppu\)RuA6, '4d4hӔ>oojB7tq3MG7c]p~/+g i8M~@vPhuijS".;\io/MjЫҘ*ʣŞy״ԐM?O UcFؕUPqYv`Y6{"UT9)4`Ζ`&x(ťdrV=,|fa!&4%t˸Kbe1zW1˥JgY4vQ(m;e`b~!rV meCy^4b&L1:'q,O6|_&_Le+6=<$h9;Fޮn[ 7@ڱ[RqM L>B5M*}G*eoW cCf 4 CY+/hs2+} Fbv-8S>p|$y!G'M C]S@^]>0k ] 4xl46vɲ[?} R\t\T{$箋E\О~BKfՁxxG|a9:+`^Cy1.'2/%Si/LY;a#hHR Ͷjrr;3%ΠFD[ɸr H $<5S^QToTF `Ky7DŽq^(@}o:PK@VNuny Ctensorflow_federated/python/simulation/file_per_user_client_data.pyVQo6~ׯ88W4d(07N6cSNdZ,62T\cIYr*'ww TbSXxscX\oJq,`RBiGg)j-q,T,ag 6BIx_ ak0=U [,Ԇ a %-!!U۪LvaB-Ckʻv>nC+9/9?/_#bw^ZhuV!fv4gia܌%j[ < k|1 f,f14[~{O|9^\Χvn`2 1p *M yF-8?+T<H1.نF=r-1 C4/C/ ˬ[.8 3olBZSf5R k8Ғ(ʵB䵭5OB%{U"K},گWeJ(,+~+fÎuݐS706$o$$2*bmG >m]:#.ɐwrR[Q(p={ua纸]]F l1YažVpK6# #zZRϣeEE&ӨRIIˏ$Br:S+I24 A"3]s#yKr;WXVש%_yLxй& :,LX3)+K",z>C>t7ph]N] 2wk-va"B=r"w" *\ʚ_klV1=B yp),M4S8i![TщȲ[.rfU1܈$X].p0: 'o>QpTm:FCМ;}GLN[ׯV-vZE⠅x|Y}qW=hx<(?9G6$JgCuOO>F]B[}=*8_N]8rqi$И^zmgysS @EE= :nrf>Vf5F@ڒl.:ZT!)<=2tZg=ZN{B'uoa7kPt b~!j /1p^#FRC#v|q5]} })PkPOպP–S5H,WH{FZk /̚),)Fem:lmQ⋕`.|<5&_2$|O SK  0O2YT%VMMR"fwEE~?+q|>%K SKfXD^ 8M0-` 󱰔p~xihL,^YNn86 6`L/Q!wuJK| [`~WmQ:┸zxk/ǵJ%Q_X=:{@`aVb+GeFzttnm~$Ȃ.H(_F>|Au |eO Jz&E\zuHA۩vJMv Ɨ "tB-~fA&) Ytrl2G6glKO p)X[`lxUY1!9߰FeH9-<!Fs˘.$y[Hdl:,">kǗ۫Y|s7exMEBfgbp]mG!zʵݼ0!hg ^:lDJͥuA'!`.ޖ6N`SeBs At}oݩNf Ƥ6A'zSl0NYln.X4ɸ1BJ"CvfZ[RTVU狖esc)JIrᔞ*#o^ytLMjaVڽQ,)'of9xKӠ9dmľOQ{БCg֮` aog_ bF4<1:xܡzծE~m$45utkxKì?z5-Q[bv aGc56!hIei:_PK@VNReBtensorflow_federated/python/simulation/transforming_client_data.pyVko6_qTLoa^"jE@KML5;$K~ÖI$ǹ{tʭ˕Wߎh4Q!Skz܊&])m1l*pNNӜF^+ 9!VU-ReBHCM,JKXe&y ZKi Aja99K<};?+kzfܣeJ//\?_yWdJjԺ/( &gV9k-,#2*k$X-c4h:Ot6BOaq>[}zΧOxzGex7"FlJt<đ6b@j@LeeŗYP)t.Q2K˭sT M SCH\;n0wAqu *(J+[iEҖ¨ E9D>Kyea]y rȉ*:CKр~fRL3-f`q(kDW=Q^Aq4z2 z;ڃ)^QO%_o֥8Q/SP"b80!FѺ^T0U^n텝޹lUbbU!xLaeɂgUN.X"D 4،Hxi|M_I 3bݙ0zPnxΕcTFn*ෂXyVA!WnGuƫrdݎhr;ϛ](ʒH45cՍsmHD EY::lèk߈|;܀D)^>!$߀o=D/MI`7y-֘ϴt ~ssaleб" ;vѡ+l~h몓()pԷ n:p +k*3j{ &m.*J voHgvù 12w;Zz zeEz\'#轛{.S*> V/EM͡H{:`.$CRj\8{n'ރg]{>9g*c\FI;s2" .>}>}`r 7 ]L&tD:X :HQ2АzUPst2<֧(38>jǡ万_|§_pxR+]ۭŎg:,}iR kn밋wj/R^%xH8mƇ]}I٨ʖ-e@|))Ot^  aaІ`C'>5h VII~.s2a x8Y V [>u/u h=\NӔ65_/պ(xszq@1w92xrI8dVzrr7ҫi=q/m +G^\%<+.O~a؆:sɆ(z<XtkzkEA9_SiiGϾ;*Сj ZA#|/:gna]xCd|uRGuOh^> S/Qͭ'Lʈgs ;Ӛz5qRBq=lkvFy %N_PK@VNX5Ctensorflow_federated/python/simulation/datasets/emnist/load_data.pyWKo6W 'Xe;.rp7 6bXȔDYҢJRq_JrmO!67ofw^-p\z.9yej-w r-,~wpO&HAq9m+ djBdWmؖV=r];PsiмQ ˬ)prN5ӂH52í0bHjIR4 "yHVJ:QLU -UƤ<,0Q={`]B8zu݅:uk~r-Ѳ6RD Za>SC.Mc_3,xl;ʐD®o0h$8V&IĐ,U$>\scƶ6P7D|-U9 ģk$H΋``F6hPd9m}6!YDmP`%dKtPvxit?ae 9`>8w\7Th+NN*NKCֻs]6GĿx7@h)\xw>:!:AOOH((y:Ǔ$,`OQI1, bp4`fo%' \Q-5RT-CfβSx C*}Evv^X!HP4>@m{Ia$Nm"w a%JꝜڗux-<㘩6}e_eyA;7Fc@^nvj#Z`=ΣFflˣ(* մ2%e (gq[np__uqQy.VK9]B|(6|Hs&D|=PpXSK2ݠ:ޣ7bBAQ+"ʒ4MfVE!3Sz444U@rPUǪgP`Lڟ*k"[yɰDM-l}u$NdAO~f³L[T1H"4MF=9ΒJiiMv_w5=OPK@VNRM Htensorflow_federated/python/simulation/datasets/shakespeare/load_data.pyVMs8+Trdž|ŁG 5*0;5'#lk",$0~_ƐMޖm؍.Fn2Fu`K[mޱ{ÝHجt66l}j}b2 VЬ1NJQ8`]2h[ޟ%=˵cp!-KLŢpL,BIǂ| ` vS;ƝsŤv!hCm6}UYqqw̷\ k bLwL7F`i3|0SFK"3r]w:CҧY{`E}->ϗ_-q9[gvx;_Οuf?mj00 %Q$Td T+ߔ|#F #Vi/%qW>$m4{m6V( KV86SWܖʻJ޲(JKWE6 uߙ%UFyL[zY۰.k[q9j2 =%ybeI:b4V+)S'/DEob}xVUB3lVr+UGEW:JC6OxjϒH|眆;ZzwgpK #_*BCTh+6{ ZLL-!漿j 7|a;+Ab"Hvڼ)T `L(ʵ6Ldnv?a3Yqs(k hdmUMzmë!a8J(%ʥ!- $ oԓuE.@ZV^ EVVJx X+[JC2a/gZ"Tm+We͂իeQ jQf_Uj}!X*߬ʨNUH:Vjf6veSAHA Ҁ.߽IUFU+RUpV z'rƯG;SYD f3'\U#;o آt#䚆s¦&N*nȧ['ѱGm7רsP̧,Y9h$zF̋_/?ʸͦj׃x=NGWNtt}>L/xareE\me)5_4 MtiJqX& T-w`v_[ڈgTC,|+kբvzߗn~|ޡ?̻PUZfN#qb{ *q_EPK@VN7tensorflow_federated/python/tensorflow_libs/__init__.pyPK@VNFHp|9tensorflow_federated/python/tensorflow_libs/graph_keys.pyuAs0rH24I얉kf I&` V }WM6oJ'p+减H7) -ռ̱D f# ЦcW&Js)*3+K'rZ! ɂkx/vB]Ù(n6 aB憑Qufm鮧ahi3*tΖ삈ݞѠ֠W՚uT06Tjf7\в2SH.%F7Gi D7a%xүC Oj.h@xyQ3G˻ eEK,?Ar#6#/.QFrCrm $0f+*|ĝv'raha=ipy^d YVWe \ˆR{oEoSCy^0Jbxdpί=I %T m}qDіjµWd,E> 9]<c›,Y_k_э ]ĆT;x7B\&8wc4$ǫ̂q-邆 >)Q錢LUzPK@VNkS ;tensorflow_federated/python/tensorflow_libs/tensor_utils.pyXao8_1~j`IlIiyElk{C$._bQpͣ^х.O~a%A6WҕLLiRW+mxjޫ9l0ZxO&M 1ǿMD)<> NW'?5EC.%\*$wsYTru)%mU˴NѺгJZӢoGۿUU7om,l67,߼xws5"s~3YdZu֐(\f& xWixkTeD^T[a$A|xt9L~_G/={ۛ<]2"\a+ Ǐ Q{)XhPYȹZ9/kirl i֪,^ /ZJTvɦ2p2+!)ܯ\Z䪨3ŞE]tc`0zMI$hS:CY6}aT^a4s(A;}b0G×]⸹}#شec@̢G? K~y+.N:փ^`v0?K-T!4ED6HrFv .vzGȫE`'g;+4XtUTB2Rdr$.W9Ͼiꊜ) +]g)S:\ZNZfUL8?ZCLafvh kb/ns+##Oit$jS&9BS<ҵ#gɫHˉ*/jˤlqnXs Vɛ. Vۋ)_‰ l6^x E?뢂ڃ~uĔ~[֏we0,7ҁqgrup~wP^{g|{K>OV,.C>6^>x~L@ 9ᖈXno;k,(z m!lCgq|:S 0Ys C9OV Ʊj9ШKy{1ars FV|+ L2=r$ aT,c T"UL/[U'jيJZዩR 3 E-a0e]=nOQ7)h?4D@9yz{˞3WQo/&OmY^ApT-ɗ|>ZN' 2xήvAFW_ɇոKvi?G;=`ʀL"INFuǴD:$c:U VOysK{sh zVP2 wʘk}?l4MN0^^\tU+#%]+;8uFB(1QKbŌgl oEdhV7b6CRƀ.TOvlЈ 19e|; pYauv7g+t!YbVomlu`y2_5OA+Εt%wmp'\P:"/C3w. izM2/XX:ߞX@~oRY{Ledž||2^]?{Pno-e^ 0:< O^& ck8fr֥CJ@c@N.i:XU3lU}*$ -Te晻WÚ?7#)leOn:K*l! }ekO2QdRŰUTmUH=8̣J4Xƫg \[-QmOXRzZWjjxHP@{ҌZY`c7Gs?8@cjSr3Bk??T@SnrA>6zkj## u}^z] =P<|2W/_TK~n*,U.u v"j@ԝ|nyHأҀ+֘-0i\qcTXk_{KMpג .{XSU_p?Eah'Y_i`z1^*V=L?g1Tdٍq.qw +h)k衍¸R{3`6:7>gƛ}{gN=wpZ>J#UGlBgtM=sX+b:~Rf-x~ Z /KfQڊ[kG>;>"N3۷/~h'~8?~]yr(MGVM ;% F~$޳EEQAV >,S`) 1J76&fFydA̵T2\R(;0T% RqZ{?gV:d'wgw6P75GPXF0A6}Ø@pQE ;0jBK*N.-[Uyz "Gu$y,[*j;TFLze[X$x0p$&}ݮE.fJ)Ϝ'h_muDɢ&*;hK|YBl`S7`!A}, v-tWhw6"}]!_i" gچLH!ƢІ9`0!S#MN#jҪOW4N,}Yܰx gC̬eȓ-Ppc5DeT JK$MHՀ,wz\ Q[|Av m =sB(^``F썏Nab'"v1VT(_m0|s&师rx۱qǣx*+M]2w+1%vS7kTT&hcT56؍|Dcd~MOaQ6ii@cRDU,*u $5šsqwN}_?dL0/ MkFy)SAѼ$sPapuFOhXLPߡ[ _0ir2GÌj^ൂyii/p 9?nL3|O Ku{Mo=>&T%4 s7Cn|?>r?3k3]َ0˜U&vdlX%txjz$p:6$3%3=瀈vCUk{sjQBHUc;1Pn g͂M O lyƏ<~> >1W(qoPe& #yԻj~02CB,ԷMʰnPBF+o޵"@Ϣ'4y.Ieb`QL\=&߱ uj<yowjhVHKJ#y-aL͔ ػr'Fr^oؕt,vKnWJ2K8XуoeM+ T201A\XvA *TlYmPdEqEF(Ծ0o@sήVIj{֘5%Fj8qg\qvbj˷¨+e$hubh @[5ւW*I?6໕_oH+& Bf|j<|8BPpzȮ|>][8p)9ѭ&Qsk/6r΃۲;t^uW4}ɸ'ш*J h 9( ۑ>N^GBlV6$w{ӓ;A\<$lb|4GGR.XBn A+ ̤ I A3(_뻙WP]dm΅ ch ԅ:Kg:{@d@fb7᳹q"/!D!Gtuj Ϯ{2'*H& q(A+hBBCqm懾%)OsGR{]8xy@R..{B_kly]^Բ5ܨ<@ )n. A/4 NK Vv.OSMۋd{ ّr12T{L'9.BtfN]v;fԏ>9KWg:`gZӖv6*#{oTEBkH'zzۛ4}J9I}}8;ER~9meE#cz ?&f7 ^lȩš[Gf3WFs埕}eA1xWÉvhJ|^lZm~]ʘ|kAk nLmzB^ZEw9r,8Rp YD |U! F9cΡc*xew3tf)V<(H.j/ioP{oo|I>/h`GyB#]T)g썓G})ȧ~2~ذlFPGDybY?w߇,@gBbpH)Ô;PU !-gÏyNVWN= 6HI3",c7[?qNx$[z%Yybt9TCMC,B\ Pן ~_{y]xcFNį"'I\1CHs???­߀+A3Ab#])^5zyݬ'E-h _V/'%m`6Ŭ R}ܶc4 }X;rˀ>Rz0ԍ[Df&6>Ar9<:,2Wtensorflow_federated/python/core/api/intrinsics.pyPK@VN*K02htensorflow_federated/python/core/api/placements.pyPK@VN8VYT4jtensorflow_federated/python/core/api/typed_object.pyPK@VNYbZ 2_mtensorflow_federated/python/core/api/value_base.pyPK@VNۖ{ . rtensorflow_federated/python/core/api/values.pyPK@VN1wtensorflow_federated/python/core/impl/__init__.pyPK@VN::!xtensorflow_federated/python/core/impl/compiler_pipeline.pyPK@VNt`hqmD(~tensorflow_federated/python/core/impl/computation_building_blocks.pyPK@VNބj2#Gvtensorflow_federated/python/core/impl/computation_constructing_utils.pyPK@VN>'y 9tensorflow_federated/python/core/impl/computation_impl.pyPK@VN3H<tensorflow_federated/python/core/impl/computation_wrapper.pyPK@VN6 4 FRtensorflow_federated/python/core/impl/computation_wrapper_instances.pyPK@VNC55|tensorflow_federated/python/core/impl/context_base.pyPK@VNx*;tensorflow_federated/python/core/impl/context_stack_base.pyPK@VNqC];tensorflow_federated/python/core/impl/context_stack_impl.pyPK@VNuǡ4tensorflow_federated/python/core/impl/dtype_utils.pyPK@VNp; Ftensorflow_federated/python/core/impl/federated_computation_context.pyPK@VNUr,!D1tensorflow_federated/python/core/impl/federated_computation_utils.pyPK@VNF5xol3tensorflow_federated/python/core/impl/func_utils.pyPK@VNk/E!#~4tensorflow_federated/python/core/impl/graph_utils.pyPK@VNkY|v9tensorflow_federated/python/core/impl/intrinsic_bodies.pyPK@VN4TPrdF7!tensorflow_federated/python/core/impl/intrinsic_defs.pyPK@VN%@+r:3tensorflow_federated/python/core/impl/intrinsic_factory.pyPK@VNEz 8Gtensorflow_federated/python/core/impl/intrinsic_utils.pyPK@VN, ;Jtensorflow_federated/python/core/impl/placement_literals.pyPK@VN(")q;NOtensorflow_federated/python/core/impl/reference_executor.pyPK@VNpC4ytensorflow_federated/python/core/impl/tensorflow_deserialization.pyPK@VN&w 5Attensorflow_federated/python/core/impl/tensorflow_serialization.pyPK@VNIon?itensorflow_federated/python/core/impl/tf_computation_context.pyPK@VN{ f85tensorflow_federated/python/core/impl/transformations.pyPK@VN  :ptensorflow_federated/python/core/impl/type_constructors.pyPK@VN ;tensorflow_federated/python/core/impl/type_serialization.pyPK@VNAn=@x3jtensorflow_federated/python/core/impl/type_utils.pyPK@VN&7 M=3tensorflow_federated/python/core/impl/value_impl.pyPK@VNF~ 4tensorflow_federated/python/core/impl/value_utils.pyPK@VN1$2tensorflow_federated/python/core/utils/__init__.pyPK@VNe;tensorflow_federated/python/core/utils/computation_utils.pyPK@VN?phT>itensorflow_federated/python/core/utils/tf_computation_utils.pyPK@VNl*}0tensorflow_federated/python/learning/__init__.pyPK@VNͷ" 4;3tensorflow_federated/python/learning/federated_averaging.pyPK@VN?bI< tensorflow_federated/python/learning/federated_evaluation.pyPK@VNf.Gf -jtensorflow_federated/python/learning/model.pyPK@VN2ߪ M3 tensorflow_federated/python/learning/model_utils.pyPK@VN