PKNF? tensorflow_federated/__init__.pyuMo@#|i+5UԱ[Ȯ iZ``w;4;<6J/+HUfתvXKz(cr{*Xç<8iQkάKJMx  Sǯ0:1TzlA*j@$- Y 3 clr'X-X9u <=sv!mLnOJ7}b΃lZ0'õ#@(69<`ȑW`Ua]JP޻7z/!!GI1NRxhGwq ?x^gEϐoZR' KֽjFr9td4-RGN俢Ew3_,*:Ȳw,8U-7#;Jz&O^^Oe)|WW[7e'oZ銑`yUwR5lO[#;m,)kugŜYsDt?PKN&tensorflow_federated/proto/__init__.pyPKN)tensorflow_federated/proto/v0/__init__.pyPKN󎌑0tensorflow_federated/proto/v0/computation_pb2.py]{w9Ow指P`; qwؤwt|P9-L~~T% lN؆ҽI+Shaʃr{T^d>O˃xq1Fq\>._]~*/x\NrhGl$L&Y}Y*M8)/`~%(Lfop6*N(,{=`& \R?~ ZF1d,Yr,+ Fz49re gObP2h2y} V/9gK,|>8#@o5Th4KI8_4 sj>R콣l_{u8C*(O0)z jA#yZDcC\܇ՏW O/Gef?esB_ ch^8~JwL/)%ܯ[𿗄̡`"zc  "aC7C{Į O?æ0dx b`h/A}tJx;xNF'Ŕvhq)-^F."u{(q1 c4Kk7lԿT#[F} C81)ՌK?e qA Smm~=dzLu@-xJww.Ͷ de2$c2a׼ly;L'1wݰI޿Gʓӫ^6 A F#Jp00h\5Ԩ0=D~Zy lGZqQC3sriH1T$jzo9ī](jI78: #Bֹots )w5}bf\u nJ:D# =D.dj#pA3zi{wA o:vw Ǯ7b}$8&6vqќF`Ř9E4$}o6lNaV<"Y +L`5<2;O8){. j `éb[p〹loA]0qJBV"(Ŗ $%*cFFfz/dG`Vg"ĔX+?1 _|1l67T?VkAɚj>`X'L`oXypk<oԓIwh%(U2aӋV޶0H<쑅I3q[o sɝdF/^ٸP.7'mmIAؚFJ038*NP;**ۂHٜ!$@SIVT?N!0L@3SVT?JXMVs{X-UDLc&`9(&C^OT?̡qč-+Y`e?vۖ%,BBo[Ɛf6 z۲eqm(<-Fo[1-7ޖmW[Go[=\¤77ԇp!#P9 o } 2ES峆`[4:x EZ:c;^tؾ:wER:_ m*:IOZuOwFG2x;%Yfvzfd[t<8tSd W* M>ʰ e5wER{?)7/s*A'(;øn-H-.F$pܣp0(oǺd5|tgJjtVI,%sTSW5]v Wp\]%]ֶ74&;XGIozA.Ez=; H&YUaN )"aB<$/9`.IE^㙣]IEBPT]FHAsoora ԛ#5-2ruW-'+ f v]WWEbnt>3&'&]u>u_nz]~^-y01ؑ?D/v07Q'&ݻJuV/kP@MݨC(t-jԚt,ŒzkG+:L7S*i׊|GFT#=TgzΔ/ݫ3[OUfEwSe)<>jEvՊ su>;҇CfK 4"^ >y\cX_YlθWwf 604oҧp @\B9[:N[l1k/UJW$@ltRoj5 r뜡MBEluDCJ"k%?Te҂2E6#^m)ϰjk'uN=n Tp"y )^SJV&^$).J;RU4n{D#zO u葫GtA,XBZ#1do=N`8]W~tlމ͇0@Ǎ geBW ߜ1ui}UyCdl6Юö~SbK<"$"=y#攂E&[, -8bϛ~Kw(l ]Xh _-.^z7㇕ýtuoڜޮ5v$\"yNWs$mwHF9<&#ZMAZ%K}=[*^@ÿx/c[qΏ[;tyվlv>*}UZeT`=?lqЋmϼ(ܦ8$rv&J!Nsto-zE8<1V^vwAd?##:K#F#O7_0V1`$ _z_ ]xv5QG3*O5BSF(p穤x;`>`h-4fO*9[g1{.: u5Eܙl>ςF`v,B -?.VIHT x#0D me|che{ņvU&P{bh3;{ b oO!XCCDk .N{"=m QŸAxG|uVD#UA̎5Ӆ4nȬQP xRUCf$:S }SɔAon|,r۔;v!Y #x'.Z%PF]߅T_8(Zx-E.9HEXႷ82I%stITKyMV)fzY1,'8vaI =JiJX/ 2qA! 3HVQ UjBŶ: %BP46aC@dVbbDnR )UT=>CshU=kN}vsYd EzcS7i[i949@vGo3 ^pea;he%Npĥ̤h=|z Fm0Y`b2 ¦RI0y>t / kOr8%SyT> dURrTM 4𼾔I;q>Z6'Q P K0=??~Dχ}Q'p8 Kc9 V(ؑJ%K}eXÅ 'm@)  :A$:C%\${q'R@.|@&SUIw~YGmU2j b]&7gMna ە㸔iHr1a[.Z1`Am0`I8A&$@gMl8hI 9a'O&[GOjTْ<\O{Ts DmŐ ߚjYER-lS Mj)p˖z?){؎=)8)5|aA.rbntqh.ًG^,4wBp%)4:@J(_%oJLn/7S-MfU&XMpAsn,jׂ*5h-(>*% Q-\k$:kӅr%&%ܳ{|hZ{rhX ݴ99Њe5H$a2iKlaҩ]T-{HB\u[D'];Pvz{r$Qrn.>r(I'GxP$)erK>2aPzX܃>!c@ "RNMJPKN0w:l'tensorflow_federated/python/__init__.pyTMF WKRxINE7K ( a$Qu>VQ}9\;h|!9s5O޼zB( TXfK9{RڄMpB$?X:kYAg O WބL_(C4,8@oB5L̔h)-hF-Y:ۻB6 i}oph hqM=,'u4Z#;-l4Ryٴfz:$lv D(R/Qs _v.N}#Qb`ߢfEe[="CKTj$dZ,x K֎zF-hQ74D,72; Mf!st?*ȲY1폋E 4ϐ|O, =12ӌyE/W 7%kh^ %Ċq1U^ UKz%6ӠJյ&<,?PKN3tensorflow_federated/python/common_libs/__init__.pyPKNtN5:tensorflow_federated/python/common_libs/anonymous_tuple.pyZ[o~ׯzDn\{P^P7X; WGb"^l9{sBIN]HΜ9w3IV YN+!ͦO4W%TV4JR+qVcJQFW}3|&̗*$ĻX4|: y-^dy%RDRu*KDeݥ̖J%Ն1D!/*wxZ Y1oSU۷wwwdny?|󜟲T(ԯuR@Ž;0 ;B ߪ+*n&՝,*E]yڲAKfR_./'߾t%~>ӥU|r>_|]a?LHjEJTc`kʝZ&d Z(qߪ"8bmRn`o*iM*YP,˳m^"[RP6IO"x2U`I&neZcڐ@k4ZV뺪 5@y(/<аUr fKZr42y*~UweT#BC%[*5ُkzfiK 6ipwQoQJfh]@wy-ohJlSi5@p:juO(ah{f߀eMRYtB[VmdEHTmy%X(P%-f$3pCiM% 'de%*aD!%; VT)RUK`EdNhiRK8MyYLӲGl\Ej6u BJ@2ۚGj!J5"ܢmZ%\)T=xq$d8B[2rOcZe5QIYg: ֶMN2 dX>ӈJ L}K!5qk:|<'Dyyǿ YpTe>=Ѻ>c~8w?.7H cZf `eh>¯fyHG]҆g_' m%تwێ|GZi\BD&b_M0ו`+˼X%awԶ)*gDҔ2h. %) #f`M)6jhF].6~6Ln2`rT{861V-V9!gL󪄓>Ŧ7ܐƻeQ{~C191╸Kx{r©`o pWQܪ,Ql`6s)gbc1G8\(>Qj6RaZ\*Ʋި=`X ^# dw`w{#⒢`[PS%|*]OeϪ``i&!+1 ߩؽ7N/PM! )oQ§ 'AZ* pFÁG}i()D{V%eN ԚsO΂!)[aKκ*P&] XEr<`ãېdFO-zA6F U^7/j ݂=DrZ;*\ƌ;ph+uꦕ<$׌fah {MOΤz%)b kQcd f̤p?8"^o =s`Hu@ fF% e<c–8&==.PΉAcHx f_\nQ.z8AB:C Fh! 2,pj]1bZ!?m7Zg{ S|AAJgt(?.3qNmY/{dӓ:hx-_rFuR$CՔz8}ѵ]{va*Nzߏ5COawAqhv{F" tAaw[Hfk,tB9mKd ijr!?v  ])`OkulTJaFGeyЉ^̠?g.띳B@)ʴ mt"MJDllS`ؑшmkBfM.IQɥIq48|  OSE;U,~̕bT6ͣɦ@EzH؊9 +&֓:yG)5Lt&/AA/LM˦|T 2M{]Ϻ;)k I"W(eٲs(9㌕qݰ]a\*/4G:_⦶.@SJ0y ?PorSVӨ1}Q|0Nu7<]!oX2P㽟-ǛEq Dg1|a }jU>b^<dP&sp]!nnW{Vq%ʵO;)n˼_Ek\O)aY{Ɗ4Z &۽֐3PY^k( 5'#bQ:x;jŋE#w55l50[' D>2ƶQ2lbO7]h<;y@N;0goxߐ2Nz͆7d7r]=-7^9cNyצţژʂ=;sɖ[`[)Z)]\aKQnr msKyHlBe:YGҝ5K?v smndE^dE¸mkS#aat`nkIة]iFְ)B>Vl=)H O0 1"֭+tG#)&C=aȽ@iGDEPu"S)Y9L/^Mq=37J'TS5}d!xRt :! 68sMٚOΧE"4ɡiyj?0P a%;Kf"̘t}2so¾Mv1_gcv]yVwT_%vgx-мhF6DӉhSX_fsMB>i nA,Gd\VZ^r3(eܢHJI;f5F\>MCM*LZ ]lL] 3)giwxp!Mg 9>oUK^($ d5 9(6/,,-/yEvG\fc 7*$)Hn[HyR3f5 uL cgv: ܿ "EQSd+)dg$hP\qhsFj*s([6UQ৅^vG '„e6L {t-v SY ^ơ`޼7̓鬛RvL?_19ޥ~޶IDU}@A˶N9)8_5Ϛz-}מ(܀P¤NO. )f=j5mi[F9l0UT]STA^o@6~,JCLOx^kZ 鑼[\#ؼ'[4ZuyY5&s9v]-o2"zSɻ!M^6y_b-m]ߙ= vgXΫH. ګشԬ+c ~L$lI-&eb=i F8彣bgbksȵ*ʎtVin(t1ӓqP]IkM4>\cln=@<0U &Bҡ_8 32b0nr/!ް3kCp |(/vNZ<_^^iEv 2|Rՠd'1 e#) sO?s_9/8ToPaqPvS &@V\2 YCg/5<_s}o0BJhsLPKN\7tensorflow_federated/python/common_libs/py_typecheck.pyXKo6W [$KEn6A."vi[RE*w^^bKOBj`jV3.|[Zӳ_9LTYqd ^00.QP>em)q4*s[ /^(Ixґ-lRi(GBR$Ss BBy"9l^mt:\3f(Ӳ-LZ|trlBf buXIuirqy}wy2JA)Eηrt(fst3a `M!TVpJb^N*0I8~Me2ootrsOW0 L?1W  Gqq`YTc1%W%[qXeHj*toV ʹyT}"z RVvœ? AosBeER"9+s%>[GAZ ~T9yv+H_Z#yY:0Dd#yr~I< iYU!ڊ d2Y衉qRd *`,$ce Ehh5+#`m`t'|/"Y m0 &ZN`ޥRɃu5dľB#*i&5<ʒ(.8 Giq-S&qaaNj}NڈR[Ŗ.Uڪ]c0Ka\P' `bƔGBE检XM~Q[ rqo8|"XbJ__ Y2=tSSEƕ:=tOh/߳)To-먦*MhQ_o}1K5 %T:tQ!3CWo@R[fu+>B.ӫ }V-ЍbnDV4ttE]g.G 醊sS3I@sЊt)㤹|W:lFQ-ʄnB}_KLU\ڷY'$H"}=(5Bhh4Rpml>LOTCaS&"7.~ \SK`OSknDWv{T٥!Z_kovułRYDi_s"iq8gq$N1jlU\wu7j&Ao=)s~,^Ac7n+zJٰms6kvF.̞^w1ov%EfFthRr2թ%ι6uOW ON_PKNzMj>tensorflow_federated/python/common_libs/serialization_utils.pyTMs0WC 5iz*܄L3#Lcd6jJrJ6`iWo߾\˼T<]|%6k*fpAaRi;ǔC8:,:ҁ{TKW%mB.B) X4Ph$!Ęb3Df DkFٌsZ%<`v1y]>sl}nVe?_cwf&2(^XNb͌A*`Bi 7\21kP\ţ쩵GM7H/&L`0i`2ta04M!tПh ף`: iu >7@ҊK,"ɭM$"sycKKRJP;ZqmDoA(_qÌ9jZ@*hTeE#X`s'WXfIBcyK\A&)mB*,2#j}*me|*+. vyqgLRHL3Q""00?/&y%EHo )I%O-0ɧ0U,_lo]< i&? &s;=Vi("BߣsJ=9aĖ߃Y8FRԠ0N:?% JIֆ^ 8WRwS@}N4^Љ.x2mշ:k.*1i%=hϥ hU.A6UgYѐb;ƙN}^՞C̄>º %0UGnP6#?G+N6krA9J<ʓ EZڴg=[f_ه5 ĭ Bcp?PKN,,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}@.?PKNg3 0tensorflow_federated/python/core/api/__init__.pyQo0'I,t}'F I[)rK؞4e~h$yǗgJo(.?~@FHPZen* hf[+cnm$?4]=+u"lT5ۀT Q!3G@H֕`#­l![hFFa0 stڶmz@rZ vzQ@dւ_0kI4+ւ2JT','`UZf(ΈqGQ҇T/&aqr7I(O _& g^[/@E*S4ǂĕeCu1 fJKkgAHʍz${ߖb$הmC*0W~(%ļ'}›*ied;M|Wuk柨p@/_3dM[;t_*dVvQgS?F5L$̧(PKN]o79tensorflow_federated/python/core/api/computation_types.py[s@ÖiSJTSGXJ2ECD  pjwP V/Ň4W"jExW6e:_(qH\/yUYr*Dɩ8aJY/aևtcΡ_(tJ&GDGYVip "+PX&Jԕi%fi&ȕi.&rI>bD@ &QUo3H L? Vǯ_8!i㢜xdŻ˫W 1!dURV%u $c3K֢(E2/%^Jy$bI)4TkЖ}%xqz%.^oO."?>p-~:J|$}|q}˟?/.GB_(?v%eCYU+9Ig֕d.że+Y. w@%KJl-*>x{9Ks [ZefITqfS$$OWuPb tp0+gK9jx\hmMӻE_C#>1'EI^{Q[J5gƉb {Y,Wv5yoE] Uh6CT_(eagD.%h#Kͪx}$mó5[c,a~v7}4=R8]?9: I֒d:LxU6d:h:YhzV+$C٫b)ASJԢ"ߥEF֫z0ḲKR&I~f?B06ʑ6!bNkv:tR&-"5R$Sʀ Y$/F誀Pٹ1רpqZ au<(8Dp̆­$D oܚB7%Bwf>&5;0yb4Hh>d7ӎoCG6;;,M)L# s|-ݱScT3nY? }Y+09}KHѿ 87=n؁vt0q:[r7u8E5dڸ_ZB16;yxh sx4%ldx:{x[^azc/=gmH7 "Pa1#|o5"NE&?y-:[^`s,N[PC_>xӄL(p>iG\}gGݿh\=%#ʮs?Aao۸/3xmu,ټq%پ}p e2u,D=SBw; ^qqNl%tnv9%vDt;ͷT<4`]ܭpj+Kq(O@JӦWà[uX3D-{n T; ĉ[o?cp o|{%>w]{,dLMFJa Pj[]d} (آ2 {B+' š y1g;[NohCM#'铍6ƱJl4\::ҝ[(yJ<_p@wB2>gsrgS{f#*6:1;NלmB'8[{'+mh4^f1y{97ooS.5yϲDmoIq' MdYxhyh +%!?β"i, ܳ\zdؾh9 CnÙDuaԮ6lC;IlevRR R>MFnd+=t::SmTS6 1Z^{%]v%T ]ΗggG] > .·?+5uy.t$=:9} kۉ\ c輂E[%SAh#*XZJ& $΂iK `ayqvZJ֖xҟxɴ{ovl-Ur3[ 9w ς%WNm +g]V6'D_>Nr[v%.o~?\|,F=-#5Q[ hl4/U]^fɹsuRMjHiBKF!B~ST> U1qwu"FمL.tNM&t낐3o[k?v֏>| l` ?i27ee*ɗYM4nEѨVc3nO/FB ſYώ =;i[A_/fp4SZ50!!U^8-s ;BP2UnIKmVOnBmi'聼$D*o |"mTZd+b:3RJY93!'$l$IC!0WХL| hPCCڈ\>4'{B|O Sܢ{nRBԞHzq9E 8-%?0QWA EL}ƾomSb8F4a|' Ke!QYrS8Dr'ԺiW +sxnb:9(YdMoRe&$ni["B`l>cפRɀ 8ɨ}H˙e \TNl.\EGbi8$jjK!2$f͈/l",!Rn|ȗ hAPp \cFaEVa(/kO#6<ǽ=^ѣ "DH:wI*H I$}: ńh‚(9#HS;Mjl~N9kޠīzaPy24AJCvD[qMo2[b.3⥚ eSm/Mb9X SoTr *kG&|eGXO8_RAKUv4wيsۚzw!1hbC9}2pk"tCei Sfb/ËPDsM:ܼ)G e>X HŮ~ROm; ISjɊa)0u"Α}3m}9cs>;a(˒U!^˿|y f+DTLG=-` [ ^ ϫ*Vty=B|ʣvd}Dʟ,q1D>ɼ `ԶPm`X.3oLuǁٰsjz/X(1ԸKKMQ$؝$SagޮCEr"m5\=/8G-'?k܌zôJۡ~WDq3ԋ:#Qp]T_?><1o;:ΜG lvR쨨>]pƧyO?.SooڮllͻG czm7 -gJ 5ufNܣrޕp`KÆudϢ3@cgR ,WP*/y"g_ glqa>)0}hSANRg!hLsુh֖-iO/X*w%wgIқg`BK'T}%eCM3%Ť̚kX`v^ŋkӣ;TCۑEIyM!6s[f`;mռ~V]|쎘{8pL| Q&,%xHȜCquժXS=5t('YoX/{QDaDĭ$!^;Z+SZd>KSYG-bT_GʎK;CY:r8C?Nܣq/&t$;ZhP2ImNk}J@b;8wPp#H3>4\ߧ|gngQ?նDnPKN8B>2tensorflow_federated/python/core/api/intrinsics.py[YsF~篘r^gűkUUW0$0X }̅N\_,@OO_3LכV|> Uݼ)VQjd2qյݘd3c3iWjY5&ו2B/W/ο ;݉RD["r#Vyy%R]E.Tmnh+Xkm?'dK ӿM֗/_nDn/ ~Ҽ뛻1s_Ѩwy{} YB|5 r(ըۼZυѫv+RܴMص=k9``/YWwn2]/~!]^,_߉ۛoo7B`nPP2G; vTOfL|jɵk #jՔAoP/)E^lѦً/~PRLZ ]m= ^yglR<R\ҮWYRUF%hJ'!U>{Ԧ BV2mufZ<5`l ?=ɢU5z.dveWsQf 5 E_΄^XқKA-*yKܽ2 Ƶ@"|Tv2:E!w D6&oU6 ?{|œx+c 6}T,ǵ L* xe6'@sP]+l(0.f="-2ێ#1%G3]$c``b7%`.%m`RV,a ,(ާC~#ԣ$]CeԒwP[aP ũ$zld"~&UFY ?\+kE=I;]r8NSc^|ހ?UY;t9z a{/Z }MdYXQYY@]S1s8#,尧Frd{9y+4(FfEIch՗̡c]ͥ#J d2wWq\Ogj>}t>s>rrܝ9֗obkHQQ帱{RpYaY?S2YN fQ,pE8s[!ƠFDhEM8k[nlϡLrXڕHb OT\`d|a]\Gk4tXQ|yRʅVaz_W̫\t&|ӥB#hӍ sc,B!Vú1P:[COt~$pma<^Gs*',hU/j#d3L(01T.V.kh" ɸe7[St%O4Ҷ94u4DKyQцq3=ǞV8[E|(8R&6ϧ1w2~|>6gw#n姢pU[0GyȃcyM%2d~մ;71~:?VzޞKiL69 @o!rX"sTt&}ZwCmwiJG!Ddy; MW>:4bX]}\0N\'YOAcX vfCn @ŠáiHۙ묣=&9asʪ*574o VOn6'+^źO~L(xuH}陏0Z::Totfo=(CzI1]sO &,OTڣ) Alt=>nu%i2*M6x=gSqY5U8 SÒB',ۀZWq`ZHHXmbe=T8%2>z RϸQ-1bM%[Y N- Cʝ\W'ذ8Z&6urO>?ħk wG/S6 V:ҽPum{c;.>p?^P&qS{ !_tӊi7{#{xdߺ}j~fD8$"m㠟8D2A+~4|EN ~&Wzu?3KV#<6~rDǑz([821C9.$0I̮2ta2V٫i}<7SNR or]R™*XЩgi;)4D ^74U(<|Odhm[4`\Eho`%PQ}~s%^[Е4Ow%dwW=YL:HBWY7dӔ[9FjZ'Fd}F128j<l(53r wG58_S bW3~u PZ'ֺwa`q=cqSD/V>õrs/f %^"tli>/ J #^ RˇU䣹XZBZ'pbWܵ՝I^TV/>eS^ߣNVY4KFYɾ0HzO~kAcS$!ٮ7c;&`+VvlH1]j ;tc0P <*ǡ㼟);i;kqm'#QcH'g .}v߫Cqpg[4Ok"R%Isdc]!}s{jV0b@OZ}}vO-U*I8>`##U~{hz|0ajoH<>o:ǪXCՙ84V}P>:ƪo!]a9"rw/*R*ޙ/ .{&jx(oDAR}ibfGm HF;>&Mzs0E 턩s?UzPNC>`{Ni9Z^xdb9)ޣ8c)Ϧ%a^>63&3|jq&p ]4{~x>mPh+H/:P3HKF&N uHoNBk_Vva)h:?PKN*K02tensorflow_federated/python/core/api/placements.py}Sn0+ʥ9ͩhу*4KI@K+EʊKY4/ÙY,=9no|Aq@(P{  !`O d5ׁQjESe4nT?g'ІC#>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ԹPKN8VYT4tensorflow_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-JPKNS$y .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%{ޒ[ Ξnn=04&h= a1 tC3F9G-(]L/+#v|6cu:[ClQN\:pQƕ"UkANէKηyJE"Ns7ʼn'vIv`?㜦xUYu:TRcA`QdXGt tؗICq198<|_9_k/^GPKN1tensorflow_federated/python/core/impl/__init__.pyPKN:tensorflow_federated/python/core/impl/compiler_pipeline.pyWMs6WNL5Ki&'$A hY} P2ȉ`ۏԴ+OW$XIZH}[5˒&_ީ6X4iҊNBJt^И N_ac:jĆ9QjI򱐭'0M[+ IkW>`Ч>ɽ}oЎ|^"M]ҝM烮sdߝ5ߐh9`bMƒXZ=o*2!g*V"J*^N&sOd>'qÂ>N&7ٛ9l14Dn^'$Q+#[RqeEK2ke*U /R?}UEM~}J0ŶC",_؋R31ь*azqw6T1}%'1AWBU0d¯6f5`㕆0~gwܫ)5Zv|բKᒝUU #/vawK Jni]}rJӔ;Af)C.iϓPKN?$mDtensorflow_federated/python/core/impl/computation_building_blocks.py]oH/Bfb_M[GTVˋArs}4ΐ |[,3C}?g }}V5RVR+R]U6e|XSw9-š8chqm[~ 7.wϛ=LF.?BXXL}{,esbk_, F,DV4]Mr%$Թ+jijW'{{<=,LQ-g143kɖ7_;4ȷӆes)i\9!qwFQnp):ܱ.mQ |4^u E:ǰ?l&<F ,kƶKIdqG>)0K ,pװ3Xf\}CO ;бvEƛvz""]>ek؃hU#.i3䠋c3?gEZ Ӊ)"rM6ZÌK즓E'$90.%a` xh2 04jus2?ᷴ-yѺy>GtQj2/ʅ ٫YߠPt,D!(e!ۡjщ &`̂1E1fb-A>ZZ1yܷ5*Yw>vޱ7ţ'O{-MVnKΒUQ3{wqOĚ ONGGd2y+W ıKDl2 ЈcWv&y@'2\*׮X)M6x䎎wȒb=|!bpk%!& ?1qH!Ƥ!}iTt :5slτJ5T,prIr!iP+6sqVu׸}4*[HKM0b 9BʴF.!}%=Ɓ%&2mY0icq#)u#xV[6*2*ޘ$6b~vQ40UɺJHNӬsbX{S5Fk;Ό4V{ri=SFag4١jFSQ$un1|F2A䆋CʇړG0M)Bn Ӕ4W󲚳[{0-8J\ gZ*-nmkTn,^ha&Kg^jљavW.]h$م3xPY\BZ l!=O\aXA16 \9֯>FR|f%V_SZP'Ԇ %l$ A 4+Ӗ@3NassHOVܕޝL|=!ʚ@{Fck4+Ɠx i}0؊5̷հ/_~{C@Bb8钵3ԑ?n '=|6@O_RLSmY Ɯ!C-( N**s9EBg2䁌I?W)uue'ANV8v]wˑlbcocߏ%#&V.JIT`MU!<.*(u!BA/ WweA VJޟr)b,1q禓.EGkY|Tdr %E)%XlE)F3B >Ím5%)Ua|O-V LԛAײ2DTS"+6!HJS5+%'T+mEYYV;W<4.鶶c^(-\:>Νɡ>xX*2:l-~#5t }0J >H?đ <4 =4 nfOkn7~c-u4v_`Fv_@QOS<ɝp ;#p=aa6vDIw |\q4k *ƺ-5kw[t>F8aV;K<'9k{E;`]m5 3|je[;6%pw/\X\mV P$1.A_{j- ;tx :%Dpy&=mVfvNꯍ #:waB4B ?Ƭ8u`cߙ>{"drd\010whA!_q7L#Co#.~(Q?u}tcd E!zM?'B& Gg 29z&NQrNq;PxS |K6&&Ԣlxj,lQfw@iK_O> Nvb.[4ެ5;tnOI &x#]q+4g 3m@.t >+KTF/TxaӂέѫBٿ{LX3kF ǒjDf)ӥޒ&*(ZmprM[f\7n;*V}l^0(:ukřa9;Vg C]O w@M!g;@A ?ЉccM@~#@&eS% m2I9O;A'qO pXw$s}W='s)gPdΉX~ eW2[|tGR'ߜk(= Ns|z*Sw p崽3Ž\8SJd7ǚ\f&FUkεo/T?Vt],.a:{ Ku^6%O 7sB$+-þC6s`?( 9 ZQ+i}3˟LrC"|;B\(Ҟ6Y"^o^,cؼ xfDD?c ̺nH0˞Ge#ZtiI_S[ʼnH m\J@#īue(ɒɌhk\ͫL0-d}f$bxbp5y/QFj_[!)`r#b#(m lk{o_?͜炿-,cy`H([bm"ߏѭN<&̵b^v{-ᥛS&gƎVOVOb/Oy&F ؑ+gV$-24J B&Y" jTIzt,#/"NRQJYLfJY_q!Gg?<.Y*> *uNai&p)ڿLxgԳݣabڄx&qnh- b8i2a$7YΩfGR꾱Σ62U hf N "~*To'LTJێ&{ cE!}[*C. hpqpR^lZ^p{7x;o}n[X}.S*ˆdBD3mޤMw*fξF#"aatКKd~ c{8p[ Ս~Q x{Vp>yzKܗFX(Mu'|:|O&o+o jK3R#?ҋ1龤o;\%:(MPxJ&ݚdgG@X|G ŵ+񹭗/~?S/ m6=axҭq >= 912K|l,AQr*%M/eպS/V_hjSPW;_h8>4TlrQn赜ɩAO]|.^gQJGCCSBx} ,_H_ jkyGs[>XR>ё/ihA>@VgPwaMC*򒧧,ys'"= Q{qX U`4Vy]oŽg+Gْz/PKN&' 9tensorflow_federated/python/core/impl/computation_impl.pyVMo6W (JS"@]'A."v'F2aTI*wHɎ;"9$p|fQ\k 5 Q1G0mZD|tH(GFӚq+^a_&V7P-(HB!$r\WLqVupӃ C1f_ө8vj6amMy%;M{e>{X,.q$Z mf[`5,# 9 F8.\ J.3"k Z;zCS0.a|Ʒϧ+6}~.V%<=iq?_͟tz;5_ǀ+rqm8 P莐Bpz*V"@gPc.HD wbB94㘐}FWEiQq2%+Ex׆ܑTqBTi+6zg(uvBR㨄*"{m)k䛟0Hu+N0'!|60(.M3 ] }j&ŏςt KFP\s&3AxrPMչW),9-w2cPEc.m /L6;A'ҟ=ՙ&=0AIvPw9qN ٤P¥آ,b8ŠUQhR5-4t5t 'QvpsPk YSa0GcRc4z@p;=xeAi?lNDqu?\mՋ!%;/>k#>7*q麪nQʔvKHL oJ؆tz]T̏kiTuU@˖=\@rWUaX63``2Chj[fQt ,GMw,j{%PC崣o.Ϯ~qU 0P *MтM18u Q0i7/́lڃZ;Zz,ycϏVV2cnokw>+v[{DNfUW(W4XX):Y{x ԲWA_C_,f B]-MLGeJ6R_]uo6k͐:Z3t1۷`-=G6|kWá-*x~or<=haP!~+?6Ĕ[d[]dX~AF>UqKgJu]Q$i RB|AZ6𕝙ʓ',ED8!26ծYf0Bio o WSV`H 9qC ]@AQE[mMh6'KP5``4,(m-6nGأ8mNw Y}lD]1ҍ!{U&zoY' c._3rl`rC3"-^^i;F_5 ٘q .<" `/P7ObX, ^2Y0#)G9kqq2IE)I $BO!5L`]Prs̥ q˧`D+_PLɳPCv^&۷p|tj!$2߼髺}HtX -^o{#v0BiHƱg7`C7"F JB/y~ߑ_ JK'B Nx`5Ӕ/P9OUSڀץcëi#%3-vy{ =쁔P wDݧ!1B翭z, _Jy*yOE /#vK8QQOY.w}*B"xc T2p#KVyE2 UBbxOnRlI W 5\Ė&ڙa$0tH ]f1D3WM wI#1ȂZ v)GŶļ82,4[ep'xu@!3eR Vֶ1FBRh{TsHܓ?UxQ3iS #m*X.|+|ֶA;ܭ3g&} -jBW&VgwN;SK36Xݩa)x+H6WJ YW>=11>"'eL <XH@v&XLp6ycDw42XJ=|ڔwڙ&qHz*@ O߉_jUx ҐNͅ&1)3MlP=@Ƹ_m!ir 0d,GHIm%brNeϩי'*:lx7|:cӌ\ *zkg>` `ܥ&A7lyxNwkf`tA!,B<0ZыonS*ד!bXD0cfT6J;Lu#~N꧂@ShC@}s7C(y.5"%Ֆ%-Osbw GVʐ f5~VL+֝k."(qTu&L-"5^]$>:6%N$4 <}j$8@4(\q趒$pM,? YCi)BxC{d}Mg&DyR´ ;#(jn(͗#IܱNs,#)^ʇG|%Bf׆n 2u~ZAy4aA6Eƺa/Z.JޛoJ8J0VO DġMJleBJk *EӍOЍWBT?|L*^݅upcJ}"qcPk,Iom(JV@4I,ւ_;L -$kU $zb<}b/G5k Sk/vxB+Ln0ÜίV;UnkL ]vֱiêDFrF @{U6Gz J$?d <d28@ /1՜qHKFeݾkOWyړ|N-_rWU G5n~bUpkXRxԤq@tURd\Gz31K*]"t4'ļZ%~&BрAu?RtJKm.ypiDs; R؅(,m5Jf9֐vT rSWx+12VFZZx8R%%wS,[Kp YԵo|/I5 wnꞶ|X$Lqd*/ !Wc-w8$vbYLYCMË o .`wbW-fIXHh0bjSmaX27!*;/;zMb񁓙rXj^P[$CZ82xq`4tj8U,"5iog~OA'H|"Bⷃ|>!'?$`Ki@zDle!RnOTI]iń6C>ΆfiL.rS/',Dt ;F]QC/O J|K5n/F J2쀗Z7gD;,d'"c54D"|@{SCB>TvP^&?pwzL%r,s/G-ͱz̃t_ S 3k`%[v_Q2f&Gc ]{  ! hF!qer66*5xEv}ehduP-@2cq4W7M^B-m r/)FP 9sLz5i kj]T"vkmxyXbb:O2ߖcF^R;![s= "z;zzS.PKN j0 Ftensorflow_federated/python/core/impl/computation_wrapper_instances.pyUQo"7~_1"D7{D5'cvg+vxw!K.ziyH=7 gpiΫrMϿ`FX Os0qEkC%gIeûs N;dxA GGF 6rTB(F 2ٍJ ah]_ӂ0 BIxUt@RM܇vʚmj}ypizy=_ČFcJy~j1L[dF[Hr%WZUt֞?zI:O#Ƹ.~x^.ofWfƫ g_jZ5|$U(@aBa LY ? 匢FzGI׻BDpIUrLXrbn@ʣrfD>:w^]EmT;`Njb&ͬ4*G}6F E Cnxrfw:,}긏^ˇ8T 7y:2IlӁ 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/q0PKNx*;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 `< ;bPKNqC];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,: 5R2PKNuǡ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|=PKN Ftensorflow_federated/python/core/impl/federated_computation_context.pyVo6_qpbc/C3V8@B˔LD"5cwGR.`~IBZ`(~nT"XxwK.w_s,_äFm(RZ9XTT,O83F( +0 ǿ#NPHe6!LK+ BBʪLn4kP+P|+:n1slcKˏ|1;OƀB l4 UDx2n戲jm/Z =t+bCs-"2[ui _&r6]ogWw0g8 J$)(|MA[p#)OT<H/,琫g%ץ0MֈRRXfΑS`8RY^r%)3#iQ1hZk2F~`AU Iն@7o6PMQ=yC^|ړ$U5\uX9za4zj/#A="T2{~^}ݡ'C޺#ڋ? GvFxAʎ)%oZ0GqGzgGPMdU[ѩhonX2ţ=gA_V8#ue 5/'YZjjؓdo.E78HTos#82H9\[} H3IRkN3@9m:2ҺzHE켫 |7~OVzԒtC$ ߾ZqbZwe^&.>K2BF=rj"7>LPKNظ"Dtensorflow_federated/python/core/impl/federated_computation_utils.pyVMo8W ClaҞ^ jl,bEO2-SԒTRR$}-rq;+w>}k;slZ^`\;cK#"3R>xt<ßjg߄uhΠOj7v ߁6J'B:ȥ 3Qx2):.S`0Kњ}Oyϝt2eƮOUt_&W F|j%++\;%VzCp&[nV.Kan _\Co<ɬd6D盯s>O瓫d>5?rLjR$ŊHSr#=X<zBX;1SF]-FZfD\0'FFRULv%In4/-M)c=3 sNkf+ ^/WuF)%Icuc/yˬa/koN\o]!7X$k D%NK5i$ 4ţO}NX**CU$+OaMjljH3{s=Lཟ[^TAT?p0~\#r))r0;^K:'HQ" ۵r=1W&*Aء(<$!x!Gte23La4GRUv7@[=֔jI|ҐHKX̊!+,閆QEjotDvž%=Fѻ},*sĚ__= UdGj Rʸ[hm b͘Y RL5Wh oRVr%ֳ*84Jpvq65ѿ7΀mJ2 8%c$c>28ޥ Μ& Z6DұFhc=o"|ڻ.hgi*Zr Aùwxv+kQ-)3\E,[n ٦7 醥) 'cFd"q~@;9)P\״ wUnn,+Eyoּ^Q2՗qk 碩PNB%ƅ?i[{_y7Ѯ{Cj,f~w1Cp_U&\. Zu ,fA[G-ݸ9*95 ^tDcmVZyM O9 4D;4kEܯ[ 6 7֒~A PKN@&,l7tensorflow_federated/python/core/impl/function_utils.py=koH+fi&z3|a_b#;ѷ @ȋR uRNX՛mYjĮnh  e'm oS'dGMmϟ=v$lӺY?+wW/_ 01?Tj[ѨEk]B+4Ku#Q]W#»jλl@Ɋke2^O.?O_/?\}HǫzõxĻ廷޽Oo]}iA2$jjU U{Vb]ߩ刭j6Ez@)MɎN7A"^76iXt WRgsJ}5sj(<!G'7jflF!Mh .#eLX>AԔ:#2Cj^c(M 4@5  |픪B ې)=Q90Iڨ6&נre9xGW^%Q7Аm#[#W6}S򿣌>\F|=S,;)v,4I/L)Z~7VI:IK)[H!EGaLWg;b?hM_oiU'0p qNS[8V|uߌq_Ɍ5'X[ڑ@V2#E{MD%`Ǵ\hq 7ݺC`i7@fF/fuFisr ϘʼnfQP 5);Ð!_YԌu%&q ]|h-{zpԨɑ O=_z˙bQĘÝ.DȲ yEşs=7|тbK㊁ֹ+vu Pe#dHb1'90!!B3s_`}sTD6FqDB+ J#^ Big ҜSg<0Mu9s7|O#xlPYӀ=\KO?[3.C¨<7D^qOV}*[{@zovt}w5g[O7H:ct ؃Vbl}1Ac֞>kKE#f +`)sO|IT2}@ާ 5VI\N)퍖H-tCSp$/A*+c4oOW4Wy!'b1%ڹ8ԏ~\K\Pe3>$in3ƈ©~$/U9Au+DO{)?k-.u a:C}z1~k* ^!TZ);Nb`<ɉ3`UZQ=eRBup(yʬ13a\L~ٵzٸHـDS"İib2c<GܨA~B .MfOwS-}UXuI[SjUs+s'o >y样eaOF${u3 ;[ǒkfΣS}Ĝ d)e0E`3,~h&k;j`fFrgyXãIpP8DpR"z9S)&= &I?z__N%2gˁlwB>zozy1U״pb㗈GEȏ=o ABʓ9|FĬ~t}Җ#Bk%| x,Zpb=?h C4sYpYB^7Y3m0,V)@ϻpd `}Io+-54l7XX}RaglTf3wcws[cVKtqXl,=W'c~Z]`Pꚵ]r%V p)%"g n`*lFӺ(y$hϐ+ xA"HbJ!šHD>Ý< Uvއ`3#/j)"=JiV9}1-5`#hLc^.֠dnY#}.Fm; Wl!S1.b8Yp0(٢γ~?nG¬T8u;\6HwcϧNes< - Of m|FAݣ4aNfqJ吓_u/<B&^[-!-0 U#e6хH(ÀPcbJ?ރv#iEgJL7epW>3OF^clOsg:մOxaAk״^Y8)7u_f( O^܂YH{_4æ(G, e:=Xo症+;~8JJPìN5dj_gwceV_8Z||/wJ!M#9DQa#qV Bd4w c_zQ4qT?0J8EcK5faO(0Tz>7-'qsnoQh,AL6}T9T9M "ظP @vbqt3xFn]zQ7 ̈qpNsI5ȿ`hI|fKoo8al7gXOQ{PK'=DC2:{e ci9+ pwYiT7+R.Q L5RYF9r+9ϻ5#LQt΃.!Z:=/7;P?ˍd|A;iLӹ]pTxW8i|xTeR*sp"#K8wF#btG}lj`B]jXʮn ;8 r. `@Z@E`xN|=.(M¹jc`X >t+ЬWBnź/ׂW*Xv7 M]mjx|N{Mk[6~̔ckk8}FOWxA ߜ)X6 3bu7D. T:s֫ϜR8͆ кN^`ud{0ˍtS׺j2ciݻ+[y~^kH`:ClQg $籽[";sg`m12_>(Oҷj6N81.-&pt+ZX7ଶ/3|aqi< CfCokr \hqb*D6Ihj߁"h(dSx@\>@+.vӧ"Ne49«rk8+2 ΝݓO{Cd1ig/510EYPR5-;|7]+y_D8x.S*[H-h^Nl}j9xMU@#9'qe~luU>RCez],r{9C>TDM)k+tf{C/]鹹 s cMzJM7N#xt$^&W$Wl|6?(v>V|fOC*ʿ)ޥlMQx տ܄Mar G 8(< PŊlgVĘ>@}gy۹5 9CE$z<"XB}Atv]_Aʆ7Lal݈jaVx ϼC%Ґ8Ҟ~p5kǙҙPhyHw#9~2t2:' p=vc95h#\ѰfL鑻`ehW_KД%qꅇNVGHOps02 7zۗuϢR>ȫ /ͭta޹kηS2S>k6_jd5KzK0 ;xK: 8lLY9,pؓV#q#ާtԝqތ{5ǽAn%GoT?ID&?|iWtGtT7a'Hѱ1JQLʗ\solxw=0b) d^70]9n٣ܵt-Y;Mu]ښaK꺋8̑A}[~;:=vZ _Ȇ}|LzGq1>q1>hnq0> RD!C3SX*!DB1շN9fS:#0dhբwƽNnת :M a6hEvnM@EA7A $"'Ļ^z]+'*u>gǃd8΄CmԄΟ-qNK ۉ" rLވ!᨜ :48T5e8XHuk:c*χ7`YYO-_ < 8`PKNȁ"4tensorflow_federated/python/core/impl/graph_utils.py=ksƑ+&".lw)Tu{ѝZvC 0x]ׯy EɛSu[wIzzzz=WꛬhTR+/FWz[ew/N+]e6/7Nu4:Ug-9T痟]_NWJ}ٻ7W[u?゙* iB S$ڥ˒z-m[n]*q7k@/(yʚozF|ɷM1tM3-8mзVhʕe۴c\IY2yװ4{]+@ -H^y|MYT+ඤV|Ug<#Zj3QD;~)"}/yUٔg"Z'z9X=O" VD-BIQUqӮs"ml# q96XйGu <ѲJVzSV6RTu:߀⬈W=U3229)!uP&6{b Ϫ| oY0f@2!;Bߕ9bQai$kS$X2v(@ 8 E aη))ɷ\?nk$R!NH-P MlԆHtKY1bⷫYm<7Y+mYtR!xHԏ A4gZ͓jM|vj :!*m5BЏrp0LPC/^.I&4^V&UUrO*a(5n0QG̡-Z8D0la[|'4+:|`˚ 6jf2E6q"z3*>H{< &+ 6;cU$ "[MP=B=$. %vq&#'f:b{#J IP%8~䨋Neea!hZhV薹c!1!#Y ?h|n]h4H#`ΟP\\At-!? %xo2 :|ctxwdbGڝ6Gݣ(WI;G u|cL)3ߎuFtޅgB4 !&1֥؎o'>ʙavhĢ\c?c numHUZLP`/L8,"xj#Qy?zQO`U?2@ȁ⽲ ͍FEԵ(]|{132 c,"dӳyV'?];c,*OV4abKn裉U?`|W$_eW}  = ){2q{o J8l݀id D`faIJShn 3z.?=>Ͼ{)1K.nX$Ҝ MXǶ@MóJQhރ^*,-[hcQ -;A+dst&s|w|&k`,t5.쨄m1H1!M%PQV7E [@,I =EAdMk/j {n`rlGlY既j,Np=aۛx׃'#衾\eA}gJ\YC&/>e. $.S^8ʋ_F;zW6@%-d6 =D-qpŕeŁ-#fQ㉌ YYd* l7pހ%ĂsG %Rz9~9L!M|·)ġQX%29c4E&oN:f gWgooxsƦ޿w4脉ټ+Fg| %&%ġ%GuHɣ(CS̅D#'>h@G!CȮ7:応L8+^ubh̓&bVfuW0l%.yeDR֔rP| TYVdr|B#)YkZm=ŰsV|!QDE[wBUi,GCUPaa-#7j<90bex>1`%+zxhmn\ߜ[Xpْߠ-b^’9 d0l{Vu \[$, !^$P M`]mA!ȈIk]O" 6]\M8HDFI 38qEz?up~ԂݓmW}GfK]/lkmc7 ^o5$+OxF`R)׬zZ4D6`hNWaZ =K(_̒< k=[lӰSIMUm,~!" ""_ߑy6܌eJ5.MzBYLf!Ɍz!z^&aN8&Kxb8+ax-J K6Ȅ~SG~ z.7(L:'^ ͐Jx\Žp)ZQH SBG] MZG ,vAKZ9(e7dїGu)3 K8Q$p&*L#S8)P`ʶɽ$B'} h P@٥Yz>$^WsS95Di#i/&0&xYsLGNF 4uuhMV$&> X:>oxY"c}~:Qڳf'!Y-z[Cˡ/mZ?TCHp5qMF fX7#N&BgLِmlZ &S0l@/ +gLUe-rVYm2|FYS@쥶u4zޅr{.~/?r35#)bc cT?$vjJԒ35s+d8.'1wB})E##( c`ִG t!ZQhƈ>aUpM!)o9[K1Gi?HW9(f.|g`to]&,qS01Bkp6ޚxrwrOMZXt`M$4 L?BL l~rJg \M k\D颸[cWxWk#^ |AVfO𖊙6/C% U^5:8j6zߠz_Yi B*.p*X>`ܼ{$;Ae]eXWgtʜ]r ISrqٽ)H'Ҍ|{$q%FJg`eʕ";u@{@cQ/x8^ZKO86o2pژyw`Jl0È@yO\BIM ncpm"uqkO׳ʳUt>{ {[?o(Y:v|oa"^:I(?2 d4~ЪT{I2< =93[g0zg=l{D6ӊ?g ] o uיb(˴}<ck5'^\87!I]_{VXh-ed3v&fuq+Z>\0OFqF2b5H:~#]<C+d# ܳ%[.4cs^[SmO!o‘|3}1 2q!mpGlcOycئؗ Oގ4~Jzٸ TIsf̼ky]ipaJps/n9#I1XR@9S\' ǩM jX ıf6R6Ӏ ÇV$EjwC.s,+6NbEtŠV=k9~Ƚ,0x5J xAtS [8\4T RZc.rTB,+ 6r=pkk 8&,NB{Cbza<+6'tR>W>x\Ol0o<.`lGvyΤf4zNCڂ~۲ lʆ+u&EiIwy,hE\q,޳;e 7) {T C$0!aGjаrѤ@=sNtv;lm+Ey`leCE0]`Sw3čXtb߾j|8QsԝpuPo܆31`zZm-yHULY,! TNĘW!#Q}kJ귩=,De0j" ¬CbkKP%:ÃqqԱjنuV OieWB.0f}vEhTiMsrWfRvrVg aތFʬd/g %Gt! էhk6o* 9[ ™RQ hO#{ >3hJSAn7X[ Iq鳃N.:VfbNM1yZYx)j ~<럤@炳4uFTh Ztf(257 }5i@0JvF >!e'\lX_u-Α a,Q2z$S`{#%׿"1ߋc͠5URGeBҹL f\^mF1qjNZ|C==._)n,k|yd-lt7jMFηS3Q֮\ fnt&A,)u xE_{{K n , l^`TyY泩 p*ӪǏ`-5Sݩ;ܚA=_w<6``J,o%Dv{U/1a.$;=B6h,7Wl-iuPo=#9A#`|g+s7^.}$}DyU txb2a4l6[i$kt_M Bc_Rr 9E@E侔M܍Ƣܹ$#v˛q<%>8]Ӕ:C.[fUmD=jJ5uq5R+)xBJH6Fiwz4HoooHuֵG_ħx Vٺq7@@òe9{7o? $5'}0Υ S87WDWea_F+y塩^Xtf˥[篜~kJZ=c)KJh[ԥ Nrd+nj5jirc)ǝOnKk~<a#2p)߃&Fwdr l`7 YKcCSDYwA~mvv?)L<*m.u!p󊫸?I6s_̥Y>5}^uEAoPs+Px@.44,56oXtbo+X, c+=Ź.u3+âioE/ꭖBHc<奶< 0-׺Mhz5v"*z-}L$/o}—e/Ƣ3cwgS{oA$ !M:Cdzlcd:eY%mr"+(H`OI)6v'u_f#ؗtX͖; ;og6Ux-xHU>_pxBh^b3^ u\^aF=йow@Űf倞1/vz )<+h;U-ػ, '/X`ǩkk6hd:hԀӃp\} Pl. jּtWOez&PaFܐRCܶȰdKiL6:ȵ3yTY|MY82lPmN|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 JHS4ʨ2\*]cOCR]A{  tMtU͸o˗͍ԬܸEX{N;6Pg: }4x8E=/bp"R5CbBg*m*4*99 E$,If,˜kg  {N{8w(`]q{M:f-^y1*_+gyaФx1:_SC/O3t2":$Kj K']}1,oߠ0v~j+^c4b{Xu/"5pnjPiW=yuSf`MC{!F5("L X֧C t'_E1831NuPH ;@@ )! 8 Ȯ J*_5wd/, jXU}*J֯^b(tp{I͈m7*Xyͳ]jeޖj[2ZV{0oR8-3gADl?̶\LrmSVbV6y;LX7ߙ-$wz?w۠PKNv(GE7tensorflow_federated/python/core/impl/intrinsic_defs.py[[sF~ׯuH@ڔg2#ʒJvX $1 fRӍ@%3E>K;q'4X3ᮥpe]o;Ʌ:N仓yc ~#<6 ?Tq$^.-xb=vq.6NDq&r%"PbRϾL2D7Ix/6֌"gV{X۲NxYzl(=(JT~ʃg ߛۊ8*xD6 Z9BlP`g5n'k1~"~^yrꊟD^^Ë_/!+Q.iRXƚ H?X>ro%*iD@4[Jlơ'O<9 C0pR:Ilc;;ONi2TfD~f›8fe& Z=O@D_#;91?/edPM`,,ہ{k<@*}At<׬d0H$t~#=99C,8zN'CFb/X\Q) 6dfZߘYyЇ#:lU2\:"6Ty8dtZp!J魂bW$u2 dwX)0Go9zt2>ҫߪLE+[0ڷXrX(}+i91[_ g> >Uh*I`HRNg/?J  -t!N,/b`o>X ,wPv*\/JAXY72X2>j2µ70(-jE`>  `Pb: D( 1YdV p7[O['eiKM- >4ioT)qhZOOV9kboG6O0Dq2ڌxŠ g~w~ׁA"Iq&SѸO-+|6;tbPi/co"n 麬SKhjz+*"D%.F_eT)MeL0/a|,Ro3Ewve7~7!SKƵ$䚁o ͜K8^ŢoK+C! )=7=R *t=4Яn[#N /}B` @_b^ED]|h,PNjk WL_r #g 5)dRZL%ts$L{\L6PhqDqY(kQbg#ivS/Rlp8랺)TՐWvkz"/a-(WkjD{G?oAR'Z O,7S4\5JX T{w U2>=.>?t1bJu0"P["]iKBz"CnnwyJ19Z; ]lƺ !h=Y=2bQe͜ʦR܍;(E@҉x㬲L㎱x𕜧.mLZwӁE#m8 \I }?U[&MAG2rTl8=ćpjHHZcļhlt ND_1 ֮BRXK&lsRRDM8/ w40:ld~^NuDQVR%RH/׀պU"NTVnjn-il 3GT*}*bxDz~v)S<<]nԅHyL;C 1yP vr9gWŜOrde[$6~!X)i2Օ&l4 G֒fEeat켽3%"kTej{ze3IT |8BxzN ]; M6cIA [4*qr9<;^w.v*W qxQ4b$^uǸ}CyڴR222?\&?80U՛F:,'u[ t7\)ɸcپὢ4ë;}jϕz$ (K8`˲iDlI$َ0tGehY{3mȏS^pH]Yʜrޢ'RUtG,EcOq1t75+mm:{vD-'" ]X*U(Wb{L.a>Du$)D*a.-Cdt6= ׫D7"_Tbv Hרf~lE񦵜hz.ƒ$P]6m76ġ2t4B(w~}]LЬ߃r$W 0p(e)^~ٚ=N+ ;G= yCό[`?4).Ҵm(aE.1o֠ MqӁF91y(sy'I)߂ z $5:;Y\jCK4'g5DUYH(FUӦ=⃞_ Bs`)r~ "L/5"ZraŴocdgY0q)P 50֡-io;Q! iG|}V!}gV ?vlkMj}|MIiU~ 莬rd۸rBr~f&=t}u]E~ Lj,)`qi%e`-QxgZb4qDmqR|e.qN_(qVdE8ȝc%Q%w/8*d pl/=2Nn@onJWy?z~e@y#tW)'*]OĜ r)y[uUm鞶Te=HpyLUww-RH`5IN{K"]q7B_G}w|r]uO'VWem5ӱʁ m3;Ou?Iu1 ?/c63iի۩m. P䶑{(rp$o(20HH2Pm$bkEO[&!gmuxE&5;q{g09ϸ-0?չէ#ꊚ}1]q⸔PKN3Us:tensorflow_federated/python/core/impl/intrinsic_factory.py]moH_|tPY|G1cgm%a-%L&iE;UwEq|1[ꮮvCƃo{}szVګ>af̈́xm{b&LqfO#g!L܂7cI\vlfCp:Pz[-sEv#l ?d,o;6w-6vxOh"M!2;0O^l6'n O^9jdtzq=} Ӝ#IȖqty]!i[.PYA(yyqN!qr}v=~8cN&5bfg{6ݘ ,#>&mXЮ1C/,{i[/w`+QH|!v{ k;!}Rڔqpxx8aKnV@y\`h~i98XJoLs{$h<md{ S%jXxeHƱ0 eOp\ӱTzvEF#vop s/.? X 7a#w"ayi0yd; sxCWNP| î,%l.r. L`>B ٙF.Չ';OVKXs27?ar p M_o?t8HVpbt\0]\Φ'0 bĊ-u%߁J0C;38۵CY BNSnU=[4{"WO( O,}Ksmi/D 7im~j,DL_H_Bzc-+ZG|;fk!W'@y`wT BȒʋ8av\vn`gqJi䕀&[km+TJO2+=FP+EQ|BǪ&"&lz1T `"su,#%zlvr8ut`."BH `{(R3/aDRY T6 JkH/[i|T֛Zq+xx~ձ1Hw{rā282k,5*1YCx3~[""`z0r<Sc-s!35+>̞lif,hw `| L룎$K A Fl Q +.ƕRH^mg<Lppi4o sp8IS'?Lc\B wq"}a,1z5a3Բ |a 8599.пa~p|y#mdJ+HjJһ&['WWc6GIiAxʫb$(9/}x?}7̦O?]M_H=MIUeWgZT^e4AяFR*aG,Zj}j@ta\"VZ]]0\=;tk"=lGDSwö\A&j\g# |87(9:c}|-ONmV":'dz 6?7/"?PwLn[p A^.{Uɲ1Ë e>3Iϗ6H`C*[Sqτ۰pioΑ)B\m-#))$t<d=. R p8iK64=F3ۛ7Y)]J t,ֵ9uuIM ceL`Vg0LhBAwCQO n-R` lp΁q!OʠdnD`UU5F =r@G*5ZKF1fCU_0֑qLN*zaP(iǴYv Bv`w O?/L'e0NU\=mi,Zipg Z)~:5%X'͊kBz!ɤuQC]SDYĕKZ֑/vKeju) $_"u[9 񲀈-1PfF92%#5ԨQȵ1!wa0+XD>p[po@|3^(`*Uۘf];\hS0, Û"hvf]20_/Xga~;\zgbgYꜧ9Jש8]UK7e#k6(3L^OOA~qIa5݌2]CYpܧc/)D2? ΌE%HLNaŢzgVۥZĉKָgtRnJa07JK,+%[M+avo|mrY]l}j, cZ@s#,yQ4 (2ńI7#T0iI{ F%Ե)f]]cvnEHg޶+h5n=׮S )FwMCk>Y)0A|{܈7ԍ΢-/{I[iovH+2tn)< Vm|jӈlBu\XFjJ^$uibC &\/Z##ۦsĕdWZOpR {gVtV*}R&"w=Z`{gP%e5_ |1fr> ,l8~%Bҋg!`0ɆǏl\;\ys{!@*N[]‡'6;=!d/=W.ѿ-lHt@7a@+ y}{sTqqlqوS0QK VP 5W+" #X\s94p4 vY\oVM zqKE7Lϕٰz"WZ|*r>JR9t٫ hgr:('+g j9J;30RWrYv`\?4\v]zdÛ* xb?~G1W_0sfۗd/rYvpST!lSW`SRAm߲!F"'*߉FrRc'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@ PKN, ;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~?PKN`*;tensorflow_federated/python/core/impl/reference_executor.py=kSI3?..bYymL첄hCv̈́]w&█T^|HJXm<{8W"UW1wL2/-G.&E\%Sq.E}>h3^ThOHeguR w 6Z,J@D$OdU4|Zq6IcZ0!"AU chfv;W0UbÂ[?|8=>xq0>ERHN F+@hQ䅈EU9"XUGgc\$eUޮ+Z =g⻣ qz`tzO/OGG/OO.ħsqOw_~|; IVHHdDHYd +y"CRd0JeZj,eZ}RTwGfUR&8"%E<%u%<AI'igDƈi}pc#?jURV0iig#V9 `dHKX#be r¿F]^Lab=]\b{| _āNɴ:EĞcSwD8l,xjfEl]dŅt "^%l2lAl;aa5QiH%=  z]OPF WeooA%: ox')?d" KlSJdKQ@g wSP8L1&i,HbTG1a[i>+HYśEO }{C;$n4hs, F[dDLUQ%*pJu3%2M 7Ah[Ms0F/),hy,VHk`ZH^fi"9LHhF( B,%yk!6RYD3a]aEP*Y#le17[2F׽F9VETm>tn{u y6[mʝ_/_ȁ^'?cO\TCi4= >w O`~̳D?Hdy`n_o7h Exd 2TtꍳG(( % {ZJZ6CtJ @؁YC4hpn5~,~<9XYqU%Kܚ7Njvٮ)kکn*I1p6 2&K67%pze;d5:[^41tF_V0K]2Zœ{,L 1U!س5[qT`鐕\)fV*PCIbWwNP vU83JEe8/G5m*sYƾ8'{dV"FfR ?D4n:Rw?Fz* Θu xl_YR/+Ed}#a,ⁱZ>'ȒNRׂk>eg<ߖ&&fV}kB!c߷A }H;)c=ڎ9`.`b11NXR@}Nx/^LbM֞8&ϜXg$e%<$U^1rR MBFV)ZƁآmtlp(рܓ1T,KSAx #,&czg XGB]Rwg-lvRG|G#I.4h!So#a g3 2;Nůf;4Qm_]kC!ͦHp/l2F..{I`L@0(;]Ѹײg:;a+/z- ._vcy˗_c<] ;.FpX}\;"# ִ Q;JP; ^R;k4mԍ.E [&઒hҹa06  :[`䍆œ<+mKdt$'V1p 4/ ,$ĩ]rV䓤$eyMt]QJ7X>UAL<#Aĸޖ/IKn@oZ;6`|iQ?y"dMrv{dπ sT,>1Eʮ8!فfG6#p94+LKSmODejdZF*9qz(z{TB3'(u ÕCoq"qZ ejrיtx>枚(Go3u9 g^zAtڒ##sL43Ge 2z%xg0Q#B%d+"tiaT: S(khkFKguuWwHlեAMC$Ĺ,Y!> GGc4K624Լ>Z*BbTSb7Cj_` 3qC߄~{>~11J Yqblp<*8*q왛RaT*_nB*]X9}f0[T 1c9HnP)]w͎eiQAB?#Ӄ_bL@{&k+$g"Lq.e3 EBq9TR}sխݖ[ѱشၔM;Qʳ$@˸y8IMbdx+/umyX4w̓M +%=`Ğv`X:xϾʞpn HYn50U& @ƫ#;Dq5[sE7~G6 { ndk9 3Jwl9h"l9Kɝ&θ#⿊DV)fN2(UnY9#:# d*ffL:"hM:gq:,icŒ4+C$5KRFС6RƁܡR mCrr w!vޝEu:rq4 yZܶ1yү#x<1!`ҭ3o-2?QREt)BO(p2J7(츢Ps9*NF[mׇ,=Yі)o)᳆iv  2pjqoKT -FtM,\hs/HE>wm0j:K-֊̡5 s`,)\^@U"xЦZNteqU2bK[no*Lh oqTv cedx2I8UbGbyHr y6錷Բj,k6fy/pt;UB,GSV/ŁqLu"kadyJ>83KGl d7ߤ`z GidY0U_ 0Ed@߬6vBI)4 (vt%Luٽɒjԑ]O#! yDS2IeJ#bX%=WQb=spr詜j>@&v%;U!Yzl@VJGb/XQ\UO/t9R0_Bd% yeAhqใq$߫Wo@Mc5V=E~J3"Qdt#Gf|Xh6%,ں$He:3&8-+L~`2uG[6ScO4w'oOΏ.Oގ޿??yF"OFlcyQgg$f'G-8矎]\vC-xi=PYϴz:^u~qE.zg/>Z^ч'˱,{ W搂H[fd8=cosۿmEv$%A'OOg>7M*T| 3>gޝ:+!u.>5Chi8sgsϲ'E-d85_5l7}?ngȔ &_ܞF3$sB^M1_Ϝae^%nr`@ )>%yQ7ېd( юTkd;Cmщ1#ŁR~R(kd.(#~sc+Uƿʸ_^DsPX\9Hc3Q ^K:A*r)dmŁJrj y4ѼL#vnbf5t~S߾6Iv|EQAˁe큎.IpwhN *@ɺ(t]뗓>H6e@VK0hgћ[&hA2r6yͫ ijyE}Ղp/ޑiz;ƃ3F3>id=˨>j=Ϩ4nrAmgm[M0#o֕mغZC끲OKO jSNjiG֋nd)TV6%@fHGm˷ LԂv؈6\>c½Y6  v|͚l1h.=6ݷؤ}2Cv8oT]gjK%T[y~<_h 4nar5t xB(xྥ imgܤJ&_c 66>,hzjnJK3 JaѵU" kR9i&w^o[cbC+:YZzY}= of$lx50φe8s}̪ge̾Je41O< ܍^Άy7W,B5\?C|qf* GENӢt p2 k`kCj90|q''rV*HZndO0 a"ztAR JJ"~K(MNE{R뗘ɪGw‹_sVo2,-'`Bv<u&͏ڬ7vpTG׹j*$K{>B)!)dQL=m9-J #=O41C5tU)N-3:ZRGDg]i}&&y^YJN tkЯIKK-@1gtW*#I$뚅t gOhosi'n81{/PH)!-yYoULfA1D4]ț/ym$y?o+M"ʵlqރ:g|F++T^*\,u,4HB{vSb9_)rّBFPKNٜ8TCtensorflow_federated/python/core/impl/tensorflow_deserialization.pyX]s۸}ׯ@K3\&S;yPltkwb%} 0%+{OIN3fבD~{^kS^oxbBً*SVzy7ƺxjJSucӼ)iDⳲNR߈)-h]~b+4^NB;B ]lB2Ubi@`0+/Zb}Op ~K66v+?oożSY(U J fr/rmyC\G™U@ɴVj?Vk.@d).B?=Frç2q~}>w7PQϕ%a8Ȁ\R~ZX%[(e@)V{' C9>!SNY-  RJe'sqG{2%I^ڪ$!B)@$|~iYw'Ia[ŵ]ԧMP,A6VdoݛfjՏsblbGWA!p|ҧ_%0Ao38VĎeme ,DUNRYɸNDP"!-]M oz X|揔 RK޿DP[3RƖF@y>TPL.Ub8 09e}52Ȍr{PGdgO0kkIZysJ PXP `x Ͷ2a8dRZ)a]ƽɸJB(ӰxynX z.PJZ>AbTA= ce#*<9UY4Dx$Һp>ʼn͌8kGWb~QRiS& l519yǙG(+omb2$OxAcqx j`5uDVvPR$}0*T,Bx8&skQLu}bwug[^5f04)pu>@]k+&'^,nQ]pEz. EݐxI!2rqv(rX$btCNX* an09.˛uR8K*ntk#`GLj6;K!]+IVt7{S$v4 [wj(0E'D6)?^gӼ5HB| ߃4)/YoTOhIֵ+MMLu|qa@dMuf>YBQ.j0sj]9. R{v%7k. :hܥHhOeMp$(AD9sَnVgm--O[ljnF'0CPKNse- Atensorflow_federated/python/core/impl/tensorflow_serialization.pyX[s۸~ׯ@[df(kXJ2L(HFM,Z9 ml_+U;wի!{{NN_l~/\(eR,N,٤c!P]j`9 T?a'eR+v8[ak;cBZ`cRBoRrU&9 4|s;R~ΏmILqOۋhL4T)eFl]@/@͒o6=Q᭑Nuʬ^-7,uF.jVq&367tO?n>٧z>[t>K6^K_TGD̈́)^![Bdvuׂ0 a0i1[RnV >8Y3% VK r \> +7,Ws\م%x(߿wl)%{UU ,Kֻ*aMGP]n[|HVtxȋ˫2DOe(JՂ-AL ѱ_(=K_㡜xrux܊o`6*- } #Ag=d`)VmD_ۼq.e7|#0|֬agTx)2oPw6Y[d˘rN!nցu0:[^ߢ hEm 0++*95";|lQ/ l]w{>r#umكTK: HʦS\KЌ cIxlf1-܀(E0*prJܥ/;ENb -!?vM%,@S]=ߎXΠ" I"2"7e6udU6a-{ fI0ahL. 4)ÈcɨD1Iop_1oׇ#א\KJ#Yjaеj5c6o68g5ǀ8\`ri;M^KMm}  NkE+Nv#pGeȕk V8/KɂPmԻHa7 FDkŻtn"}`rV_ :+>dw7ӳӓ9DFjG"4U8?z>zѽ֦U]3Q ͙dFޅ`#*6PZS,tRTo vC1g~jpɇ2t9bTL_ hiF6د[6~>?Fa1Xծ7㔎cx)`.Џ=e >J2j!%y>)|c }A[>!`jo4f HvOhH1 )4L߲a)Ȁ}d:r/ώ=>A l;%UN۱}g""H"j9#򿊑uX"#,uL2:)[Ԏٱ.pZbN9P NYndGRO˨ y:QɴV TpufrN'o.f Yޅ2Etw貸V֥^ʟqpyQwHfmot>\MyѶl]0.1C :a 1  xpO`Hjt/o4ָ- Yw8wKIOgZ|,lW>]4PKNIon?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/I&KfeS]]VɋR7ӓ%<J>it 7oYU|52Wjl҇dd"ou^dIv̶mɲl<-Yr74i$) E)<$misӶ/4iU_Q?zo`λȚ&ֺxH-Lh.`EzTu^|V8:oz4պK Ů vK~eًg/._]Nϯ~?W^&o~J^yͫ޼K^?^fdW0Lvq01[]fY0uj2_KXWyK%,'f&o4 &oӖ>,jzgguZiHz%ٵy5Sxd]Wd6[]f8۪<]4U2㿇[r>-8ɉ_UQdmenmVUU4&`wȷ֖k 5[+}M$󛪜Ӳ*6ծm= a>dc&q[g]^-fZ®2sijmմU G3>?I8u 9PrCV<$m4f[KöIMl w3$+ |& ?SNYChsɒH@iu m:d"?Epc`YshT&le ,AM22Ov]Uox sqkةm딎ϣcK a4N"`K 6Y[c<қ|I`$<^#E[4c|̂IAۈQvNE3ypBOқ|Qۗz!$\|ɫmH >1h='ɢ9y{@qz|>+uc® ; i}KSK0A9NOHi˨Zh/4!?'HC'.6g^w_="C%iN4M~$NɢKTLa"pBmuTIwbnS HծJpơ+bJsYTku}/&-c}CX~Y~ N3v""6%X ۺjhVؗhdCe2m]̬³W~UEVDFn'K`2^A@v-)g~1Ε_}(8Y쁇}q\ݓ}L*fC!,Vi1ٳwDg瞶%<[C? &TV -"ixhX\q{%Ӯqt=sW/.߂Yњ2$^eی PUI+hCql% eK0;kWXA.EZDg1sdMaNCNM9lgmbKf >DS:7e&D=}!~!XT^l>wH8W h#pl0ck![\F&(;&L3ݛXM '+~*"Bރ??!Fn fRR4@PF>g;/D/:h1s?WOjW&|-sc >*vd1 ਁtKR0YV[qJ,b`_('2GV䍸;{tn%P}GwUE{z x3"ZyT\pgwpfIRuWշ2Y GevevaD̙ ]%Qu>V/cmst/tj[>&v/4c>Hn\B!j%;"ZVF+f R7jS@-VX(~$gqViBlY S9v3'61||A䴇=gMw0\iRGų1n/궳cجO7;[m}i[^S!ݑCN'$7YEPii5-r8.opS>ƻdZ^r=ծqwr{sL=3P}heE5wױp{3a짜qLոj&ߨ?7Lz\ǧp|x0L0=#>bh|P%*8j3cЀQ4ư?\ϊ'_kJG 5Xqg":e.: H|}!@=HH #MIXd2MhwjpcVn̏Ðb=ǐ!#t7) '~.qExKwLFb|*Q]IQ-B+nMUs7rEu59 Oo0Lwe V[.}ypS5%UVfd6a0Hd,Gr\NAeL(.aiLKK5m-@5?T ٻ MVDrS]^ӌN"$'~5k7;~dl艏ZFvu1 ayig,@xw@KYPٯzbqS*WlwΓKD  1 Da'ف }LNqkdP#DoV(vsO8Um9&ħHt#8Mp/2ԆC%خEL?OOȖuC,HQhւbnp"K6l >&蜄C.5<8O"۰C8&l1{>Ir_Ve`k70\aFf^i7</s|6|.yͺ ExHo#r܋i-"Ů%KU&҄=TPLP+. ɩCў)[T&xXB`a8YF}?G#C %r=:+$>npؓ- A;S`w0/ Hsۓ${}- N!}Ū4P &vKϢGG;Ncg9.?jB$T6U!5 6yڻ CNc(,  !t 8GUEC7ip)g/0eǞU׷5 ^$>ؾcU!-J}F/xZ߇lcN齼yqퟎkGu4U4!<U9؇شCzVb̷;V MT꽠IZV 7H'qFjB+PavT eTg j[wq:lujЂS[!+s)5HـH-h6^IbH.A#z7rs&l_!O^=2D>^{Bݪ Bta cšb7/Š!S=y}" ȫ #[.%_MTrCJnүЌuA*0nE(0+ F#Y6h] JM=E~àjitÃ;N ᣣ]:ǻ49|nM?DCf&ѢUW?IJeW$OFo{2!](=oq3Q8OA3HSN-7J>^nB >!HbPA6@ZP潓'7t@V>% U2'5<&nG mƦ[)FEg%I#&(D Vv>/JcĖpƑ0ke֋T`{Q˂f0ظ&7h $-n>>s=?Lb@WN;vY~-&wjBc Ccrzuj'89?Ra6a ~}3#N."HwC+P( (|4#`?Ȼ@iܞjR߶,&dcyΪ7#,7MMMkLۃ5&OҒ31XWH| F3V#!6zae9j_ZUwȆCgM69+߭qhиͩ\h"E|̮0YRtڍ^"fwb,`sƶG]ڏm5 z9+7vF $I6wƒdhVzZpj\. .oaמ'/,ϔ\?fKC=.' Y瞮 xݖ:wG 8\l ]/Nʩ!9ˁ:"He,5LwM Nfo"\LC< <Oy[ tqVE]@˃B(z 9c2F350hrJM\JEI#!~Үm4>җ1 f1- ;MzLAS/LBvvpcð_.1:O՘ϛ8~GA+V8(A/9H +u}r]{|ص힞 3vclPABD9Mk]PsUIi3OڟO$+WJ\EZX5f1 #tw#DPZK ~x#<@|tz"FE3 xbXes8 ǜ91x AM{DsXt*<^%(g!%JBXN_|Xl>02_,4Zح.6R MbW{;8ʾ)o3!XܵɛL%Hiۢ%q40>TvgbT4}䳘,e.js8\<1?&Er#ExTxxXE`8;E@1)%j )ysI::̓9IQl5K 2wKeSW/ȵYNí2@&3ea+@Фn#x+5Hv -6ډm !|74D#Bp9HIpH,e_\\)qq/bbqڿ~[eM~EY>fB,%Qnh+pD?!/WiF"')QsE%M)+l[Gڵ C vZ;E4H,VUO[.N+dtL:h'YEFDڻ-liϻҰa tB} `}vXk-&3wLT*F\deEC}=[:RW8Cn#$v gu,#&g=< x ]$\[VD@LlhW{gy;2-7Wi&AłrLt&;l*`iŮWyey愩)Grc KIWeBh#S%rGW~JCL$w|17-aR$ρ!_1.&_ Kp.(% BobiAm 6{`z:9DU;B5h3.KRٽv{Urnjęĸ⁃sBgU(†؉^lZ` MN(fP7f8חޚk9w}tXGhJ$YӰaOT'@8wAF jK:N(Oeơ1eznYbhj/W>uȋEJc7M({3jm6sLil1o2(7ĥ 5#pKi[F 7Bl@Q?t1; d_4AlDz7yR3+.)m~1'Ib=#)e%`QXnf6elON\AS+R#(qNp|Moތ_Y%J"vk5KPeN["+#8>dRѵJ&P;b"fz_^{m2i;sP%@ sVJu #=~f(Yv/*!ۼCn|O ݡ|GzGhQ24on%g½E=9ŴW-(b|'m3+$Kca&_UȅѺхօ&@Bʛ"E ;{k2Xr0b/P1r',Ytq|\찡 RtcAAYQ]L0p bRc dA8 ㆟$W¹=xnjD_LG)]\]RST()aD~$oa}dFjFKlJ2DX?shѡN-Xu1)A^@>-l'`x͓Y ۏ#\`K5s 2g3~Avzw❸MObQA^BDmtl.Ԝ0z tA/MMQ5dEPpT5,Ly.rCq3$cOH#h0J-D疓*ٺ=L a d+IuΖpԉ/wECcEM>+,t%ʬ<;HͨP>LD f&Ǘdl[7gfve*Vgb&5yLrqpUeMn05:澏=K8:mnKCfMI HQa+WW\EB\T竛 /kf_եێCbf>Ag8~{RXlO H =Dct174IWRa+V~̹~/gdU[q@::.zrF6a|-8Yr h:>LiX4<7[nQ*6t]aǺgb#+\uJ83e+!<]rSfV1jģ\G:Bab2eL^EA{L ;hK qN;50TIοClFQ&*wToћQSsT?RS<7M]\.C>H`QWYXAE3& y(@]^^JN} V.Z~rpگ*E=ZC19TeK/#r,q{/"8Px)γΕ^RHo}9tݽ>U<]t3|jtӣM@N+?x$E{.c%R$lYKˬ2/:_4γ &x9^{`تP.#N4Hf2+WLmuؗNw=+TɈ8-1^)vVTczO(2',g#gBA-*^h[^03su/,6}]lx gسWy䴑daw,\>`myMոb) 3M γ.ylt17KB Ũ{vO"wk"h̑vdubsk'27?`ȥU.Ж6kܐT/.uɰZ|huk+ӓ@QhAAgp+ݸneְ\tG ^ 7N1DP<"r zq2-s˒ "yj\ 蠱 5u`62`Ή8.?l dtr7UQޅ?@ufw-8L}/Gà~؝:pg?eZyc'hV rs>JZ0Yo#7*P 0ce}(d= zƣsopĒ̩ZEY(J r3YgU70du3^^~\%g<}"mh 3+N9*VP7CD@sƒX:1τt*TJ-kܒ$.H~t][Q&prGO3ҎJyNHf90hΥf)#1b<ۈ^B yRkl7^THM.WqHbl(rts좢*1,MTpE]UcIX)H$liy.A7pkښ#Q,VJ|%+Lr-bL4@֍f1|PyF8d,: Z2xm¼; Q5E15W,TkIv[/N{(V[oչWA'ɖӨDbvibKP^EAg}LCy.]in6|P#g?t쑪Ҽv ʅ(F/ 7>i}1NJ/guYY ?"7_BP&8 &_<:^O xGHLKִed11.b=#Pr=6O5uav!ԢZ=LXc#&Kws85'va9^p yԓw ACeh|5܏zLM(}1G$y"Ōv˫s+>D`~ܙD~ 1gnb(f~]-WBٶNXvNA.Ti]#L!܃D78$1\O_cɟxtqC]wWoFѻ+vIWFWoBAWp Hz3T 5snɜ&l+["qHNŊIx3S+-LE,ADI8ieI2V$IԨh0/ zsW$*" )h,2wm[w=f ePҭHX9F4/c#4"\ڂj4zkSf#cZt)O>[FERhK&nG+K Lf,ftu8z=qB5NM52_5+}48.|m8@ऩoI4! .OL3LͳƘ$\(*RqaZXdha3 is&G BK~LJFԸd$fxM!@3zH2uUn2Cl.PXV9f(x t!d ̸.E0YtPߵty} &j8Z ]9rm>Pg/fH.y" ECa5C`VuZu{8,k|~Wq 8[% RS@uz#?VO,FB KW)mzܙ;YRC°<{#CsnW\: ^M aՑmBԶeԗ4 ɸ'cV>EbτO V nuAr @Zɿ:* gZ*D[Q2#nG-m"%1AZxc8KȲWZssL<+yAMAG70ҍN=\]AÖuWi<B* UB!&Ao ]qNj$[d1A%/m<"J`JeFw=-NkyqGDt' 2fX, o>4^Mg1ٜj7doS0)Nh³"(t S3ClO~G\D#fJ c )*z֎'t-b E%KVbݦ7 aNBۏyoUmzVT,P?ǗP>]^| S,)X.`o)Rq8\9bO}PyV=@ s{J."[~^&9*6 OuUHA;bv3/"Lj3b3ԶYep{Ud SN]ҹ䕞G6dtk#ՙ^0N+%O "^zzMXƴS d*oLIWh^Aʖ-t.ݾUEA'lh0,s#͐I>y3RAd Uw8NyC\[Y9%pڴc|7!u~>//\\o#Ep~<WmW⮩/v#ujq*cuhS_jm|o; ,ڡ9Fk L=KH?/MViHa> .O+|U968 ˡ5= +Z:= zݨFT2+=f^"Q,uHO\o?/AuK^0wMxkź¾mD~T$)tLRL*xkAiM 4_;R| Br.ªtt"a[4w֤;!Sj-Z)r(]}ڊUN܁^YGSO^yO;Avk T7tU/y!e@+2 f%8 L)FZ~[iA=kAaIPKN  :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}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ŊbPKNU zGMx3tensorflow_federated/python/core/impl/type_utils.py=ksGr+&Wڒ/wrϒVeQⱀ0 Ev{5}.v*,vgzzz==ç껬hTZ_;/Ξo;_OV׺M^U襺BNΞBޫ:]n#o&OP//߼aHR5k%3Z7r{{.@/~~C-|6idic : Y8J#*m@OpTOOyWd8gBz2T:1-j6uSO=HPK^(j|F$*6Am$JLw:SM| g9)tMDZ/+2[4 ^=u׉#9!E:>5?qw !a)6ɝ. 0X98pfyvZe%fu5O/P\_(BR~@z3ٌ[16lH /⹧wj^(GhA!ճxlS ;I RӏZ5hF4;~!.@Ӱuy+Ádb]|AzVn6emwVv~l&T +6 Q kMZB$BK#ј&O`X6b8v]mc0+Na͸%y/ XV4o R~:m™ƀiO@G4p섃YՁ8qǿegW}Ob"vӕФRu=@jn$.of ưxV?98u u0eqƌI|9>Avb"sֵҧ5aķ_̶‰ĸbnӜi mY@`s)eQ$rB2fmkqۅbffXe pPGÀMRLox(48H Ǥ} C0K0P[Q,RmI&MDRYH^S|dbm ԡן=vy" (Eѫ&Q:"F88x,%ܐCSV8k(q%sf[sKp  8ͤ,fh46@)1F#Q9(+piJ/W&L)N,0@Wl|kI@VB$ )W]3 -aX)Psx@- S"8|V;݄\QP!߳`F㷏MfF4g7edͩn3Q2͚iKjy+4Lkx8ԉ9,qN*ڠFK?:zLp[6+b*:XτoYdD 0$?dL "q3Ъק1 ]Ojzߌޓc@)Cv;: eۓsG?=9?.5l6-֜uri`n|( hEu\2[1Ncl 0Î!A-mh =O ]t%`o< `Pk<8C RІ|$@ f IeI&\+fl6j"B:3f˂l߁3+@؉t4rdVۀM*mc:Ƅ fLbTo̷Z|KctR]JL-O79ނ:(` I* 6eEU(Ta9Bez%7 3Ch~͗ \$vy_Y8l/< *.&O=H0l7;7/u0 {E'l<)WKôSJxy漃|,˼.ʥ!XZZ'v>Ȥ`H-2L ޠ%tYjYwlpO Eaoua.}8_[`e~"!Ms1Z8!9&o] :{ELyBe07N6Kg]y-ܢr9":m#H Z!} smɸ[ )i.sG p`jx5wжVU13Wy vjv`ЏiQIbQ3K@]a6)maL R1Py (ׅ>B~T"-2c^)DA{wȚ-o}Vmy-QV-Qui/ `\>Ԓ,YNcmGNV}bGe87.D1ĵN$PWE'p* &GRQ^c@U1 !0ĤQ{[EP06.NzӡQzcQ ;unqt? ? Gqi ESklRe?s?cB( g eM>b%ܑS* Ngxf`b<.}-`Y]ajud{ Nx04Q,WJNv"ߦF(uSr[,g/]a_i<4T6:*)79y^Ք1eV.0h9 zm6isrJCLӗ˿f1YֺӬqec8ݪV%y̵̧q]Dnorksw0ǹmظݫ@`V*vl ^LÓ |Lb2GJ8K!og2 3@G:Yqw04<BfoԬ/^ 6iMFRB9 Jn[vx-gT$hK*E*-tSTg,Oa{#|<{O:x^S; Lی@I_vrޤyȧ~4^cQǂ!A2ũ9G2)ݷXy1S"xY]7XMlBZ7^mgm9 Z0e&6l|PI.Uԙ4 WSdn-4{җri`A f+/UN OeA!b@Оu0lzN΢j!CњHα{|ygh]ZKk2j`1[270ξYᗰ/4zśUG Lqi9QCҢ ڶk8}8W) \Z6<\[ GI8`5d3dg L%Ñk ;"4]̖.i iUMyucg$|Y:%CŘBp ,uԀၰoXqa.c@SZnZNVTJ|x'b<@<WH e jWW10 y`iDճoǂ5>/#{jZ7l?Ͽ__k\:>@هob:dExT֧\/R<$z~}-a&==}:|Zc `Epi$S )sb[E DXy!B3ewE#rM4f+qSԡB0p3̷|bE E+~*l%x@\nxgә:>31yW\|uFzͭ@آʞc-jUq+c B3_6^ĮUa YsV%aB>~nkЀ,BcS5!"B!DݍiXA"۲cM{׍#s 4[QImyMI~,UWL5)?;[2褚$|ɏ̅*;nWw6s&&:C&lo 3~? LNj#&|)81 ቸےA Hv5ߺWq+R 9pw"":|JH%[(h|/ҁ\jdPƖ1qݨ|Rd%8za%tTKȶτ,Z<3-"%*uw[OeǷ O38J}" ^|:\j.`^Fp{(:5=L)Hhp:v"TuRᬡdtQ037\+Z9@gM[II;dR}m{w$csB|bėj{<o\`$_,9Y 3xq8kUduD/}Z%No>Q0yTd[Ə0'#9b􉦸aA &Q/g93h'{A4HIXX]D֢ H5贗ݘ 5ޜ 8y(Ot%x#6}x׾8< s@pwx1Y{`0i) g4IZz.;TO?.: S^J(~t%9|^ rit@$ D] dnɻY|G l^D6eƥFNN LɎ9c{"6FGQ0GM5u0ot{A ֱQT5i9-r[-8yꪽ\NșUFΈDCm_PQH5nsfk!@ܲЄ.l~@.O"G^nm 2ZjO"!y v9f(?2=cSO7L; ޴ ȏka7$q×/>;;oŋznGw6KK[3ў3BA PdjF>z(Nu -|7A ^2FZbֶ|]/}]c?QYw{y< l5kW +d!V=#kEqy4Ƙ6QKCfBvw*|pp{2#1ѱ@ZscfԱ+z mۻh@DZxc܁΁70QQ%}t>!3oǣrMh+/ů|H1?re##Ig=1dm$!]\f;\b]ChE?ܔˁ*"::mc_(4S Y1?.p\?DX|GY3": -*}6CœBh ,mѰúX̔89wN^ nF N_H8x|V^5TdI CGIKp 3pp ^i+)-tvUIhB uĿ :1 8 PKNXxD3tensorflow_federated/python/core/impl/value_impl.py\oFb|(Lw>Tq;rv`9-4VJ"Y>,73l?2;;;.󌽋e&M8Kb~n2;~r|2#O.g/c!EQ\ZE9ue<|l|ҜU.2E7yTFj̊tYnx.Jeͫґf6myM|z^O1Oٔ]^ˋ7[6͘ ,#&#QhS!d"ZF WJUz'2Y{!PuT46aIY@"_rP<Jg;#sDeY,ENҼD2i  ].Br`& dr00"cA"ჿ)^zXI^D/+j3`˗$!ɓ4ٮӪ $(6(=@.?"fD*FR( #Ivq\4TQQ8]IEW *H;ݗAQcn E&yvEB| ,` \BB^CV`Zc^)`4G2b0JG NJ$؂wLN@ J9Fom,dLf D 4J2B1 vHҲM ȥt>XEw"=WLj1$ Dz?{z(zLPqi8i '־ $Ga 5ӿg2{F 8܎[ХGSR** 0֑ePrY]#A)*ʶhpdaʘrOZ'v|w,Q#OICEp%J-b,Uvɐq1VA{c<Lj>J "| _XRz|YDePzs.\y+k«>e x>!v&DK*):5;6n4"Ft t4y!y{e pIEX Cdd0u? O6D\aw-$6/k^z;sE#== ٸ=ֆCƄsFDiy)EE$ Cqq-k$DmRuSi=<qCf7Jcȉ8V_3o5u3LIIsWRM@ϩrORX2!.G0Qokn?" uC U7: * I%* Wb)t:+ITtC` 8/qPq ;Ηԅp~\e*2GY"6\z z]C@/se''z6Vf_[n-PFaAQpGBn_I+,dž~omrGPz"\y4w=j8C:+e܊)-wT3vr 5q[ڂCF_>I@:}Shz KM*m zITYO'GȱAv|zxM2C,Zpv]p7>jm5mIgO) |e)ij9<7tB:CCv0}[݃ `JÝџJOBW{m}[p$=y܍nd`#;w-OEd$z!Q ؀0|[eؽwQ DAG`V,=iGXS/pp3=!18]-ʘe4*8qgԖDfnP`4 K݃*alp.?P>~-(|*Mjs?B_D !2*4`D?ҬO`3(9Wo7lGU-ڛnblFݡ"ntA;@,Ie6Xט<35Zb}T)R=Č@ +y I|X=PSϱK#l9g!( g<KZ]8:: Eti"ؒlV.Ɍ.iW4hqc9]صglpDOץGh evDUk70徭wl9;2fc볋Upulzvq=ߟMۃGA,ոcl E#خǰ i98` ƂqP܂֭utx-@S{pȅ‡JI Em;-(k.PlMSv^:%utPe㴽2JQQ_O$>:Z~**M`aԻ"j;NRO5v:5l-l5YM~9c?PKN[S 4tensorflow_federated/python/core/impl/value_utils.pyY]o:}pUI»7up "q{q7$ڢmndIKQݢ}g$&MĖ fby]Z\gl4l$2WWidW"k^STvk91=0W oER;3W':؂YkVLȒMe*XMD$_DsZ7؟D>Fs_i{Eݻrr6]jF]-xLs>g(K* 1%3%ᥒZfT/`%Vr\ {t{3vһc. F|?zhпc7fq0  d ?LVX '%(N q,DNf 6˟ V%f %`% ';AZLlbnXl X^iNgi+%S-2 KD/D\r. ҍR/5U#MAEP)8/7kaz[^?o{_OQoف! voob9#߭{u*J -bF{nn|+n_c Ŵ9D8#QXϧƒMZe쇐] :zJvtۆ=0@>Ǟ1! $2 C0b|{5m.&PD{ִUt1j4#xhlk$?[mL07It ΁6jC\:T+!Cl`( A(Nb: FA?( 砭d/x=aTݕp7:7>3W7Cr]dzsĊmT]p V}*5 Yt~k8dfC4GcT6N}C׳ 5fI]f.)G"&9?*vOȂcjc#~bpi ndvKd2xmPߒ)fc/;N!;} BsumD[8/ @CM| wp<8<^V/rݺǞ{by^>`I_PKNr2tensorflow_federated/python/core/utils/__init__.pyT6+K 4Ef ( FC; % & /2{oy7n|6E|Ds30}T=Bȁ@!u3VP ĊoDYLڨs}pRnLnnH,+,ZrbhqD;aiNihv d%+{lN-I%ٖFe`pmܡ]M2Չ{Y2YL€0z:dBb5ӮŔYې}іچ^,)s^"t"&꺋=bj3z?U\Ij]ZO㩩4I[haWL8˫gΠ=tiIˠneh^nm/exZp[R,D'A%F?zTE~Ez#OJ7^xz  R+s4aZU'꽈p>-39G !3x!M8sCg,aI eQ( )9A$y*Xq 18!Dȕf8%yQ|6Zw]T穝Y<?{{y=|5?e)/ PR(uB[)ہT֊㘖N - SĢJJWnN@ Φs|6gr7l1oW01~7m\ ?6缥@"BE#%[sX;24rh^RRi`pvv'"8E*2|1?*#,LK'1A0)ux R!zWLW~lZ,)|lxw7^寯h27ZM3,$4 pHL6 DCUڨ @d-pRR lBÊCS1 "ez8pk"5y#2\VqVtUf|O-Abm(ig%aA%!&n# D,|aLjm |diɗcSY "-aCqVyPUԬr<\}a4 e q4q=DJN㼉d GFE5zuu`-HuC* Pỵ M )ظn 1B1EDGJ]q>Q6[b~%tx [=8L$aK&E{c[3_g>t)-sգfc?./"eU&0DO1aL ḕ>ƧciF2q! $YPTV)Ρ[tWl-\yӉEhsgM+`_>;reESw݇>XG%YB%Ι곦V=i~j<Ĝ-JgÐ_D}pcEqUD4hxe=W{UEHwOEisStZt]5@ZVy;BY·jxf:nJJC*>U5m^g\~b듙\P1 "N%׎t zD"[eek̕<ןzr㦢 sL۔U7jƱY7lc5c};Ty!xT{CPk;&,5#%Wu wAǂ 5:Gkym4ΉWpصmY#IfI]ٵ_6:Q ᘴ`6]Zȱ\%WX e[YZmJ2ڄj_r p ХNf;ڭip&fC?^YE~N\E^a5WrՖ:NŃ%eAI| S?șb['gn9h;Q&sG1Ks^wkGZ blR߸0zNi{| ͢jQG[!7wrhZahx 6xZoՃ;t/(hիbJ6Z˅? 5ddUh*H+; \=NE߻Ow,>`G4rv쇂dC7oWOwV^7IB[ 0++^7|x$ΡŴq''#'Z''׹4ɘ?DIP?_#ʔS~',9^B1Jo%*6 /RkG#{۞++w'u=w~,ݱ}S3*q[%fF߈·Q/ݵ&p2JwqPKNߴU>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>u^:>r3L BvjЮؤgL%n쐺A [륿5/'pşj7lc*^_g4^c@rߤ&%2<(6gCbv,)teŜGᜁnv*o< mJnN1y]x2!L`Pr[KЗ2(@Yι!@yo9,aYAa#JI&ݠEog+tܮdGivxa%oJ,?A[1e,c K4ŕıCzoLy-+yeFĮ2 yIgE ZWW}3񞂪`hE WMs-oRx 9Qy`+EqW 87H.GDփ@ڃ|uJFKz0Yx~ޝimRäf.C(͎0QvVhT\B5J!|K<ĵnMq (V^̟R_dX^~7NpU <[NMW_(|%g_~nS9~Yg+TAOq4 וG а!9$){\}|tф`Q#(O2Q!EVGΈ:z O8C88l2ia#0?zOjIa2?eAe~vPKNc6;0tensorflow_federated/python/learning/__init__.pyTMo0 We2iذ뒡IW 6%Mf~ thP_ OOL#/(2js4aq(8 JdFR57DFJIt o< BOİR |R9h,P 2Lպ\fp.@B2nP״*q]'q۶FʔGUrv1]#ݙY`w# 5]$()ɬx / R)/5 Yµ :#G_\B pϒو8nnx2O.f0<' .!dr>$( >hH}ܛ6CP^՘Bdt/Y6D(FS iI^N,RQ#ݤߓ.Mr %V(Ŧ*}B^\6" (qA}qS*}\,/ve/4ds( H hs ( UgMq[|i#=`ڨjzP\j/#1Sk_#u4q4z Lb˺c-q<}ceitf~IJ?{:h{^zjvE)ĶʠD}.[թ"3>ܪe8:W׋]׻}~[]ֈM?n)\{3PKNfp;tensorflow_federated/python/learning/federated_averaging.pyXks6_q>eGҺglbXv pвxHݴIl}{_BZ%iWvVJ’ӳo22Yp2(}W%% ;8 M^=𶓰N,_a%#%9=%)n8 KGHVD*K:A05'%BB5m-,8Y pj0De>¬3,m/ON%eZ;5X|'kn ?lEX lflI&l9Y/B3bTeLsR cuv+Z<|7!<)7L ^G@ 2wfXL@\ +23 Gp2RI1,̜}} w$qyN<) :3\mx[ eoeKں*ʙ! fl^S3hj-$g(yYyKn0һ*&;ʂnk13kV]1tJ^ôҬ(f񯃐DrcXג$)j5z]c4Otoxmٝ\4ek5z>PbጐW!|3R8c3+yu$wڼ>AqU:zBq6qzn$]!ڪddÑX?ݻV]D@I >Tg,` I5*X]fEZ=+8kY${ԵaeDA!_ ̶A:XW[l(* ɮ$̐C .=1 ̸ߘJ{W\.mWu'$ےqeIj/K:y?Pt ISڬxMBBoPOL Ÿ({\!x<$*`vqu)Y.$ B1WXR4NwuZi p^n`Ƽ7ggglsÕHQL w@K VrJQ)V* 4̱NC7 A\̅4 ǯ҈ fԁ2=jz'v3Zin{J)x0nW#hDzՇ{NB02s $g-ڟ ]R{bP 1+pɯ|,oiADjnIwnG/f8eǼPY PKN(`eqj<tensorflow_federated/python/learning/federated_evaluation.pyWmOH_1ptRZ 'EǁDVUU=NvIof׉ d_y{\ҁPB{/\Wk W'.XZmr+LH)jb轠[*3Z.*ЯfgXK8C^ֺBj,d*G VT .\2AX)fr4z$toYHsj{+=_L._2Gk2l "9#7sm@ Ҟ(J$TYgԬv;ڸGAwPd { '{a4Oy<>F7nb<з+|7@aIyĔ6Aq ![a2P\弖s^))r5-J +?%z{{{#lm, ǹ<ٖSy]2 v8cgV生8|X|j2DZ-5ˉsKv|d҂x[4NA/tjf\)qc(CBǵS9SupFΐY&2# \i^bZi u\VO{T|rO|MiJvӒs2'z62s˨#0"Ax)ͼfVt]:jD'S)|Cޅ#ugD-J뼰o=pdBd[=G}ЁOqn,blURGm1tȳkA?Y)S'Λ ~fP S~d_TyUY<[Wh$E 6'+/No/nã㷇0Nה*Iad~Q1k\{׭GjouARV` Y-6&7eߡѾ {Po<(~/pz|_D!8O.Y*ayꯇ:eHI̤9 Yazqqp&]x̱pXLV>7{"%1ā`Cʉw5*$43H0Żw7QiH~7vY.;zOOOֱi0)K<I廓wG9SD*O(dVa!{`4dаƳ7xyLKCĤ!,`HhcqXu!1T7DjeۖꁤgD(9뢡ju:hIϽZMv^v@ Eiw0Hx~%o+#BD\ %qwcln1Uty790_jwV-,fTf7\ hIZk;V6_xL{7@O׳?Oӻޱ7׳|bӛ?o.&L V0#*MIIq)^J,d&WRZ ]b;i^ -,=yxtpp0-UQ/l! BVE<UsnD.K-`Vh^E]" e%l{oaBQ8A OmKSP C9Րd "]BI.K6[@t% o "؀@GImen\84/QE U%RΑĮ$6 n4-r2xS*iH\r|a!j rX*2N&I&>pT]^d*3 I֗ۥPxnr䄧ziM){h=8J.V-AeZ D^Î8wB~! qF@iBOA!#DA{2$7̛uZ`NE^1x$UԡCuoR 5=E;HۊiuyǼɌ/Q&"de#C]绶FžrECBy{\QOdH?u:i)pD=3كvPh~y-.V:j#9lpđ.Rw21n e䉨VQubXbi q $ˣ6c?S^IV㩀" TZJC {3iYtz2*l88=L Ln 7/d \!&8b48Dz%0d8ЕIHe0x} A΋y;I|ڥY@'3{&)q(?B:L$4*,' *Ӟ,FxfY9F},lylo%wDk߆܉O& V%H?}C $s(hf蜐v Yjhݸ*.z87߽ÉQQsNHq|B2NzGNievu? gRj7gNݙKy;ycκ!~)_8mDbj!t_McW*Fi- 5W ul޺g@ޘ1H8 %aBSY`ع EmF2?tkh'-]' zŖAjM g $\ >\ yo1YY&P6 ߪ tY.w)"]}>Hn;`(gLX.pٛ7 K8@UO*"}w|Ny [Wu]1:I0C3NAJ rNȋA8iuU1f8N~~&5e;Akd%duSzjFBB2[MGQd $&8n\]nj|٪.{킨'~&ՅbV5À<{[Nb':4? y#z5a~~5T09)j);$A_SY!`ly]ݮWzaD -;+ pS.Ĝ͢<ۋ >+>Zn_A8ٚ`ƴBz{9*hbϖAX z+a '/o-UP[UW3|"Qg rAD-fL(a,R4x{OD̡#$ >$[K!woRzYx9||w*<ڕvkY"rxiѣkh-"PJ TZ|Gc\CO:CgP:](^'rbTv|R A|裺iғH(g" _.I2Qo6s lU打wC 6u!--ntElR/':z)X|O?fs*~|GJ* Bj5L dw(G'WR\X! q4V! S ^ɠX50zt T,t<"jcZAB "I}-#wtGX`_Dt4!/LG#E2IDZz1L_dY43h\ =󈙅z\PAh,&5zr f&<$jdz|hv)? ZW|1+%d|9paӜ߄(z^W8/2ф8 p ar@ K^H=t; 9 +Mݚ|1Ãh{KK:zI/<ౡTuy//ĴBbrIYǤ'H(bKaThPovOKb"'ȾG*ji+3 ,Om?gOu#W<K1F^K?^GOO%1l< #3z4 q8*R!C"%Co M-L۷H+W%`2K ݗ-J~pLvS <8>Nr$D-% v(Tul$2I@jr[ĎZg͐] P]q ȝ| y7( G7TM{Z"{P*d;-;+#ғ]w7x~ +"Ѕ>狼aQhғA':{yx+' GHayo|$CЇ2QQߔ;tFJk>Ube9c”?|Sl-h1uJ%:04xXL(uL&4$k۾&p~N8=5+Ǎ uRxb'L7s~r'F>]qak+ 0⾘R47P.a&fOPKNirR3tensorflow_federated/python/learning/model_utils.py\s8Q8yW:M&uMboŞLR$B27%)ک߯_Jԭk&Ih4~@C'MV4JקjkD,7*[]7g?յQWu^ު&5nL[Rzn x47cTuVyTEz4O+jw( jrljQ7yQYsM`CMHFCk 7otC ulN6m\VsnYWOckV6``hfoUY) kJdʚXU].[]fuSemH˲tM/#r 4~;ůWwWzyq9ZM~9;y 1w &3IQh ,KfޘE0b+V卩 ژjո5<[gnޤG~m[Egsǀ.b.ul7"]@rY۬H`  O{3:dv˯?Nՠ5´ ܼk`p :iU'eaF@_Vݥоyna ku a7 dӿ06Pc& $Jށ$rX^$"qj'h\X͠=oH#%e+5k3w'9QB]T &9[4(۾`W"q@j:x3F twGV *YwO'gZxv^6bޣΊEMMʞrb׳R {2e,Սη@<[]fР8CxeGֈt`6e"x@VȎQf\X$Q!',bj q7;%7ަ*B%Nal#ڬ7͎+I37ͭ1+9I?}PiR<@M )"ԚeAHuV M_.+`[U7U4Ilj =Q'x$MhԜZUh\>-8?JFqH܃Ӹ)َqHs'M: Y0>ʬѨcO2Ђotw2!imr:t[5Nↂskh+ep@oD{pWеE*=ԦIny%!@ks_(p`!/&"Xpuf )ZK<>wHWan"ɊEɗ2gw.8 N !ϳIE=ji,ەu]~"@kkf7l$JM%.L:cr?VclL-"$DHMAE@YQ7Fz&"Ja\؟s ꘭ =iYlk ʟUd4Ծmcwo<5pSj,k1kv5y(jUzCn@F  #CDdK#NJ?7K8>;, @@gA27$+GH\H.ck[al&ȃ,3"-9{q…JwzEvUA3;~!؟" YQH|i$nDƋ8F!7[ĭz];Pi|8VB~ T0wrx*NtkTMiЖ c[4g]!)P6u8jz5FYg-g_JtC5FCb%YXڧ])fQq&`5IOF0t4 9^oaEs+!mވl<qX55} yH2Z%sKGՄ>Kg͕`k4MAvarWKl6`Jh0$D˿X(J7rƇE^!DeX 7y0A'o{Ŀ~|Hd톓 J~e9p]k nq|[X< =>4:}k+c\@w2dvc`l *Xܲ)kuZp(VRM:sv@"o]:$b },1 â>R_T+`p_ {vʠOȣM5,hv$XQ;-#Dbtm*D_\b^9(Km`17%t@$R[cIŀ:{ҕ( -41:Wksm*[`Z@LcXwU%(ꪬk Pn6L?&c)Pji&}.|$$h$_ڒ=;,C 6k<$Y 4ӪO wτ-RRo\z4<0YMN~oZqbwN#V/sfVk.eCo$<:uφkvI)32%p>sb;g(z1EJhgHUt9̒2ORmd<"Wu;?}~m7Px um1VW|V׹P2POJXgk D++ ޾ mTp9|Dyy`1^*[mNx$!l5GԷzGCeu1䔫+_ͤ;k QSH@QEM^No+){S"@&0(i\g";NMc9RUE#,7BFm ,PbnxazŮF6i,! F2'L{Vl$NVxpC)͓`UQ261 *ʼR>p)w]FD7 jb5)} r󏮈z;BkV=WkRjRzۢr\g4eojd!@m(هm{'+,^'1IučF--Kz U?AoHͷ)ۼeK۷0L>~T_ŧ1RxvF92>8 OX"Rv\ ⁙ o+G>+^nxk#( z'f( 6ۡѵ-P'"uR%a(?o<|&CK:NOh!^`mjCkl#r**Hb yJ zʆQG!U!bK)#e3oc4x2$_`x>@/зaȓ$Y&tr/3fcQC&CÍLed{1ɠv!lg^J7: @#g6GСUR̐8 Bzn߄F2ч{, =R[Qױe˝@Y8-G棷-ti`W&q7"pf7IQ&.TF ">.X#JA tqƘ9X~_v/ mE. '[טzI&s9ck vl5 X!\cΕ/hHTG$}4!?H؅1ȵ1KąlxltY 觌\WX~jJm⧭ZCa|tGJS\#UxÝ3R$.;o`ښnle.Y;uQXuf/(ASL¨xZ77R&/?8=h'yd2|gv}:b\泂N{,a#R9|>[D[wd59&mDֻm !ieڎ]u <+{I|#B/yw&%j$A8LF0 VٝwahKONČDhR:m@"GvPi $6 3 !`x{KWָ0_n[ & g$:ȼ:>&SAb=ZH#//? ]tWql4;M&.kXדؗ8ڀNZW`mmSި_dxЋ^& »I ^T w ߸ j8;%TgzAEXAUr:!s׿ &ƌ\񣿺B쐽8Zcz m8W`1ono';P5wxvMcNoȾu*_pӺ§A6s.&:ۅHfr..eh^xOw/%DxRD )$n&yd_@1T^RS[c%KRg`)">[zcvl09&M1%ȣrveR1v=~I S!/[3:2#G*`{߱mہG_hTh˿gd29}&W29y#t˭ztDAL]WbLݑX!-ߔI4~1J!"@T3 yc{Z׷иeM߸!O(!F1֊rpT|qU\Aj+_ԧEYܹqR͂H e%p+ ^^L; =1F)~M~aꊉ'ȷo]|<ᣯ?-:81Z.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/PKN g}KAtensorflow_federated/python/learning/framework/optimizer_utils.py\s㸑7`*LP^LiE}xρyDFq"fK4dVɥZsߍFi!A/AmVm޽LJTSi,6sV 6H*|OS3kw3)j"Y.`$)P撌UFaI (tHUjk6# ꬝*txҨqB|+IMs\+QͫFݢ q&>C3ܒ q,6pӢ`p7؅*V\AC!LpzRK3g|>09@t-ȓ'=<<:c9)he$تW ;}e458HNwpYBZ(B(6 !0۲od.x&.h(~Lޙgh|a",EM.:0gYʀ R0e!>)A,>1L ^Рu`u"_;roLDqgs?LDjDC0*5˧\D;bmB,TfJb=akxjlmv% CQK(n{f=B8jT"p h|Pjri$=cmkۀUZ:>6jЅ ɣrE7f'vUc g;! ('Nֺ,+"M Եp޲-#k ]iE9vɆ0M= "0A4 De$F+Z_ɢVc"}d}|!=aiLk$0Ii :`"8i:)+N!Ox<W>;w ɻcs"nٙaj<g'9A(GL40S A&z5F>)#xL1Zy". SNrÀ M+L%iK2*T:e1xڣ(ū͛o޼N\q>#&Y /4h7“i[U xۘϘ̌hh;' \y1-b+gH_MllNk#LD ] 2꓍-{=Db"&QR1D/CJL֊&(jeKHj-x)'![=u)wM9Fox'C=TVլ8n ꎾOSo(']zq'N'b g,&P1pZwq@պ򡩈FQUni.=1,^f/D6f \5 6Y)R&|̦nB/ qNѳ3-S#4&bOZn29ΥS)g + B#VbVlJh35r1oB(f@+W"'1L虧]6rJn@#a*`lcu++Wƚ:VQ!öYSY'zd%՝K*tQx/!jQ1x= ?E;YIn},-g&:Ăp=JqBW; #|LX9[x'#>|_UNPY`}6N=A#dxr(7N7^xz hRhBog[v0l?>C:c9<2#={2l*<'<3 94(Hܯ'>pܷ_$_NS!u4x~Jt(8IsFz\0BXD'Bjc )< u.́ݸhGG`*`H768t֣ow>V|=v3™Cb>:>ĺړI{gxtwP~*YC4J\V^Mф^;.T'H4(=Tz㹸EȶW'5hr-N9"2vu kG`PZe|!7X1F_{/Hc1lyv~Rħ16=[{ӕ/Ԏs6iӜ)58*}w`{7WW1p`|=/UYn2zu#bSGSZLն~PJ$_ @OQ&1t$5PtPtIq>:!oxϤn^|CqwI𝪹Rsi#T2O0#ۄmYTeDb!n ?+LѕE2]ŀDaYT=gRd`8oiz k8i)˴'~WJl>Krpy^u3oͷ~ r,"^CWn-XPeBOXNq:͢\^go߮X;u{K% r T*V%.`>coru4tA5tP!IX4w MgU+c~~+s<3!Ki !T{yp.c>uzn/EXk+TזwG2 ѣnYBqe8# >.z᥋Z5Sb6]ℱM+,<~iωQmj–Mde[4lr[Ce]|c䙈v]p7\6 {P)?/t lϔ6 6,;/v"¯!5'+<Y(@ѩto t|X{Tm:tum?Ul]עy3et IMe =7M۫ 4ș$-y F`bO@qm2eZc瘼(STް#Ɲ-;4iM S&@pWK#r R]AWŒЦ~PEc#QGc[t*N3?2g{ױ9I{!s M={e}%JKwPZMٗa? ڹ\z )i7h vRS8#`o{lzkSٱkϯg{2Y楘ף-qG*m` XҾw+V/[ӧ^/1{pm1k ^ڴknv"'>ԭYTz-rcldèՅLxy8yy"QG>/ORiŶat+T4]Q}tTrEoN͒?Ɛȥl:H=C,Aj9ǜIL}xAhC} c$v R{\˲prn6uYoAQw]h;N:Xۣ m'cr,mҠKA8rd-pHqɳ "ro "DI1TvwM_R55}gǽyS?I؆T?S骢-]^gY7{$XH^b:,F{ľGI}J=*GdhjO͎c7ZQ:w } WL:ėnk;1ox=?x_=1W2.ak|˴pE[gyXw KF=3zo}enzoJ-X`Os|鯟;Ua@П(ĥŦ&K@971j&ao+;- Oܺa:ڧuLf\ggQsUc Nւ:@6;+l'ٹ{ ohbcao^;-s5R/qѱim(H_φ9FmmФiT>vnTph6mQo޾[ưf)ɓQlc. $KRW+Υ:u:zy-Ac [GW尿dvW\Yٗ3G1%Bkon@p(i|b{XXMޭۂ ɽ[n>ѿPKNfB/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]~'PKNUJ 5tensorflow_federated/python/simulation/client_data.pyVMs6W{FӜ:%?&rRɉȥXv촇jcX}vc"7?4i[w]sNh؅u>ώcK`3اCV wv^[Co7t"G@XێjM<B{u%.F+S2tXD7=hЗ΂}zߎToB{~vZrϚd>.Ɠ8diXgkR-jZu掱^9:cTg]x =o|)CG &G~8M<~4x:-]܌/Go4_F1r7|:Zȕ$m@m!rk]".3ԜinC-RMzPA(<;:BgN5-|Ońip#J%*$^/&bY6{"*Q,vJg.c` gK0]<ѥds`WtK1g؇Df;[=7\]{_"SlJYd,VZ#ZϠYBDaM)DX)j&n('ڴ]"miwAz.}4˓ _Zmc=vvIEQws\"* 5xY(VM)Dl^n|+ND1ɗHωgD&IPISPM:گ-+t<&xDBDvBo'PKF"3@eH+BHPl=VPZ꼍w(j?[H`GpG"Bӓ} u.U+W(z{Zۦ'C7 vc#qoWڭٛvz[vkT|ȃ,=PM'JߑIA7ӫA X}z?i@3&A9_H'8}lױ'cʀ/>'k*)rfȑ)| H5.ւ)=K"9s62;9ܵHC6Jjc,%CѧZ3f@bO境DQ5;ʻArny\u yx/N4`]/xԝ˨a|/,kDrlxٿ5tmb}@+CRs*\<ȅw1LCr"!҃}>HG5Nz9F^3Vq\كpKSSIFmW^])P e\ߙGePKNF Ctensorflow_federated/python/simulation/file_per_user_client_data.pyV[o6~ׯ8pju/Csd3V8C(A%b#I5CRI7?$6y.߹}g^H \B?Fgp›~ò(}SkfyU3z/RZ=XTT,f 6BIx_j0-U [,Ԇ a %5!!U۪LvM00S0֖4C ]9`v|̡ޜ^Ҝ]]ׯӹ%74c]U(ekY( l9YEwZX!7c0*;9ZɄZk{|1 f,f18[v{|9^\Χvn`21p_+M<򌒶@< ST"Ÿfȵpz+ U b+,䛠h0%rH\!i2`k q%3&F(ʵB䵭5OB%yUbX&A=u_i<)pL--7MCN <lUU2)<}xـۺtkS$̽޹bImEi(r)?7\v2M`eȎ ,e[<͵a@4Ғf%+j2AFZ?OJrO~D:I39VHadhxw1͓.ɥ \a?Z]>ZG 0-@%Lp ru8^B:)+K".Y=p@s֥ u5zs-uꑓ#NPf+k~W-@mq8J( ;0D?쭓ӢI"jNG=Ps_5v&f&bui&r) j[e8vܽS1;(_*p\>HA &`D[iZBoH%sY9ynj0X9Q2T;4酄%x9x߽TmZf-1 v&Bmᅗ.CBXw~_4M;Ī -nq&c<]p JY),80&7U }LZL6u>Iei&_PKN[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 PKN0#;tensorflow_federated/python/simulation/datasets/__init__.pyn@<_Zinmu54 avwwʩ\찀GǴ%;޸ p:XA8DhTF<|ZUk,;:OFero SOp4=t0ł<"s4-)]" ćl"8[=+Q+[9:P<ρ~\aHH׬IWz_{ݢwONzAY*^0[5qcGLY75ʡTѾ:I9dy _<˗nwݥ]vU˶9@yoj (2l]H s* -G|P [,RM<Xtp^*qi#VR a2rP]j;%6c[|D'pEh$:˦tP|G8KNMćT8ځ G -i|q` Mv>`"pVVd>ׁxrDʹuR~ybN=FHNj@ T`j5u:c'GL[-Oʡ4fz“ _@1|IX]V~]ߖpܤy X:lePz%@R#6i 5TK]UtFʁ]O>ܦF\4Ċ?E%Q׶8G<+@z444GNd_PUȣê 1ZTׯz@Z~pdXxV:&N$Qϥ&L`omUS9 ^͏(̦dck|h$X3B\?PKNWЦ Ctensorflow_federated/python/simulation/datasets/emnist/load_data.pyYmo_HPHJiZ/_K"P$/㒖tHvWyۙgfV4ԗbVE>;LJLF㷞_)qr]b+>XR~5v}L#`^Tt>OK:-r1Gb@WÿþZE^T ,R-4SB"DXoT۴Zj[EXIPKo鄬Xa[UtryJ} 4=?Z:-akr"BLnEQ ,U)-*͗ERme%NuUa]uԃmK՝{%~㗛?|/~N|,}}sOO7=+QMICɔbrڝR(7*J4]K%ţ*s#6\NSC\tV'FWpa)T郄JVt]g^/)RYPP<1%u_z)X#嵬V{ =^#-U& ֫j,}p~cSe' @!r£*e5 .QSGb1 <qL+/kdoD遥rq[jx;4}3&EVf;d}q,cZ:ۋS(vh]lY=A{G_U>B3IK%iU{lh`L^!ܳ>VfdQ IMYDH# -;l9YٞXE!JH9 PP/+TE]TbSYWW.ŕAj-o TE _ g,w#ct<ƣ0 w/iySo:` T2@KsО`{tu)F|:i 3mFN/l>{^Ņw6v~ `*N?C#l0K6QYhs@R <Mnb%~ʱ~O^K_‘ [1ձq0t!\ R@Ӣħ~@se A҂CQQlA6ŖTcXOUFvTy< DYe3?sXהPs1;K#b5ž37Mi97f@$չ u6} >9f4V|vv~q>;\DbOT<G8fRM&g$g,$~8}&j♜&Sv6Qx4{;I2$Np6Fx.gr:dO>'a\+0l, If˴*B<3gX/0*AEoRͥubqLpN=+W NK̖W֋ywծ0]eBBrчNrsu6$G3~%Rp@Þ--&&_48Qё:f!VF hB3;tL/Z?C%GgbP6eYmbw(M!IJ1@Êר i[Σ*\PeQJgL@K:gp+AlT9?ۦ<P"V4G"5#ͱ;[qlp2fa0#lL*YTV9 r*-;N.mw-N]"C(slA*[gevBOpz+33&E;QNtӊ%Wq.xRK0)GhA^N$!AUM6]C$Pp«=(2UhCNkd\4̄iƪ/+%>`#Ox(Nn oFց}G/'}GǗw«Zk#kf4&m7cκ?*bdK'En[lI 6.l1XLrfρЕ֒$[WҘ+V;W9c=1Z'Jm4`q1/3ȳ-/=F8LybM0{>u0MK7CGݱʠ  >QN.81t"V{l-bd1gN|oZx0f{C$_`tb :D74ˡ:$ˊU[~vACgp$⹎ĕ nL2:x'PӠ^_}{VMT {#AMלD je/84[-Q7M}P\=P4b;_##.Uυd\XIO)ݍH`xP;(s ?#k4Zm]?Shڥ$@6g^( 73d',9bDWP;tQZfA}BOƕP ]iOiGK:Dmo+&PKNyGtensorflow_federated/python/simulation/datasets/shakespeare/__init__.pyun0 ~ ½l@tm^bƺ0M;dIyRN!4} v-O3Xohڎp z@>%' \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=OPKNi  Htensorflow_federated/python/simulation/datasets/shakespeare/load_data.pyVMs8+Trdž|ŁG 5*0;5'#lk",$0~_ƐMޖRu'>]d-3"+c";Y2mld 9áYc;K+uFuɠ]o{^l,׎V,J01Xo %y .aj'~.qXsxKOwd~ۅܣ Uei3r%eF]J\{ 01m= H'MNݎ/uUI^_~ydgϳn|9z==`_珷ˆ~TGPB -D,S#|S`*LtX!VZ^Jǝ_TjF DXdEXQ,,[^PL ^r[*>V+5zˢ(-]iDQ>8V+-gWI_;1ElemÂyw~*R nKkX$,<XE^+ ;33 ^{M(c|q32UU[S>3ܱyF%"nlXGyF4z{(UW4$UES1$|>lː[}g*{TAƇ7$X4"]P_0Az"{c#ȥQ=9XY K*J /M6|2Hne 3uKuŖ8 x]8wԣrS_*kT^ul.9tVR*W 12UfTFuFՉV3hۄu BUlMz7rxZ&CJHv =)/4~=gߚȲ$v`:'{Jy ~Ѧa%˃MqQ//,T6PONc:nQ琡?3O;aHWszQ( Tg5왗_n)~qM;x-z.#!9JOǗ|^(\?F2Ǘ'˶SJk4hAҔMA[뭿Q]~KU _{f\2BzTM;=u(c~PKN7tensorflow_federated/python/tensorflow_libs/__init__.pyPKNFHp|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錢LUzPKNjS +;tensorflow_federated/python/tensorflow_libs/tensor_utils.pyXmo6_1~hIv{yi [ hYR_~ϐ,;ɵK,j8yЍ+吊]:ΨŲ"z\JzyU7t%SiD%Sטbʸn 6s ƅ_&ҔJtPU?'vRnW`WCt%Jܗ]*5F)tdj:,vICNr岬hg0O܈h^9Yd" mDͯ %#X~ ="ŽP(0phL#qfqF¶ =L}ƾg<Y3+8_*t,|ZgvY/m\VLUeQYq|mL<",)hBp+0 (P*~G=GQqv[țzQ!( 퓄,ҎܛX4U6/@%Ą9j8|v&?ɭmk{vAR3jf.Cu3Nd8Qo݈ b8_*؎xh(7xwqLߝ}Ç>ҽyN$:UF*2b[F˶F&w, NXu^}Υx֯:W_p޶i;}k M_Lы7P_[NeC Z@ ૹ8BH P&+,.el$K2ꮍfHc|yo]ܤ1M:͗oIeƌZU]pG3J)&#?[1h;`1~l##hDxOoφuz8nnh6m~-۳ϽҼ__JӪ*u& "ϭR !U< ~Ѻ kf,4+8aӪPcֹ!I*0kWg4[d3 |ˊuex%[눀7Z1".\֠";oJW;O"ӿOԕ^Q,i~PB*!P )AU29 +ZƧccy"'{ Ao"yIRYdWi@ֽY!9"3م,"utF,޿:GBš؋Jd%C-'I5W9=c߰ŮtY*rʋ2)7[|#Vl;򦬋¡{Ηpb+BD' B!e䪨_81eD2]o s捽tn}*j2Y'a+g.*Ua.4|.<ː}W FBN%"_5aMJI6ېOp֡Sq]>)9d셡ΏUdn }XhԅZ˼0`GvCJc񕄏c*YnRD*uVѧ*&ݍ*3lf)Emu/ ̻y].\GJ[?nxӊzJ4k] P[>HXEAh4S{ =@p1jԫ CG:opLZ)k;{#}`[=윹Јi:Skiܪ!.VxII:"s/yjRg)=jcaPV@KLܸ=)хն8`SJW(Ʃf=~} .׍ht26(_6;chf~CI2LJd 3j3hSO<ausw>I>?\>tmY^ApT2vg7׎-<[Lwg-l盄~J dp-X֛|nKE\gWss۬ڟ9-vųk-9ɣ`f⢈(PKN&tensorflow_federated/tools/__init__.pyPKN{9j*#tensorflow_federated/tools/setup.pyWs~_$6e|ITTs:۵td7 DBb`P2߂DH)`w;63.Y^w䥕ڳӳ|-\hgXTXEʆTwК2X-40 ;'a4ǧKGQﯰPmxɴp&c+=%f+u"Nu86ڄYziVm9}ny@U%f6:Y+߅uY2P—xf!;+1sfw XIV. $Z <8@fG̎߇6~qy~oь޳ۛ|r{_c6}\3X[(R L'VrȕL \؍tMx)(©8:::zCɅ>qjN[Y;c(zJw>^(6H`UGSr%)֑L%P2:QE RE\õ\*07Faj:"5b;qKwzQit?~4O;Q&Vb뜜;fsm/Bl#BVK kag_!7iͽLnsC蟟'/]:Bq D.%'ipcXQtHV>A 0+>-+{ltq?&՚p9Q}PjSk,ġ7#uw/{~x}oAGcP{T񓝅pƇIWZO־Kb㠔ڊe?=\m@j1 ^{ʻIylB;>zJ"*/UK fW8vy>vgMZg (M(ixlN }{oJΒٿ/mi;@Gެ~47ai]xrߦ[>UỶxg5Iti7'BL56,c1R2#Nnx Or+V+P@joXxxMA#\EPKN5] -tensorflow_federated-0.4.0.dist-info/METADATAVMs6WlO;$N:cG㉝\R C{ߒLNSLv>p҅Nzh앺5(>o&%tBNDݴuC7xcoDҎ|n}r] 32 ƇLk4BUJl:}ĐPMqiÌ~L.&\kcg/18@3X qbb2i.#IWQqܯQ5rǻrյթ߯>yέєQf&F-M:z?ߥC°Cg`m#7'(*_y\Mk}˴с{j!Bh|>>@7g{=ݞǭoLFi>}*0[ kLu= Ѷgv|#v#K9_ep~mX(@`! kzOj'54#vm攎Uۦٻ'wp.x6'w#}L+ϩVj D`]("5m ZU0V5m/FFA+i,<:7d dd.}x@dG[0GK)@*"'7@ˤ)0* b R? ü #*vj4 BlXt;_l)R,Ykk뺱 iơޏ1XXp4x[z'ݷFۈqdLkv7rXC3L}g'/@ܵ=DAO~նi!});g6A(Ȱbl"hvE7cde6z0f.#;l%VxUNN%<ϾQ/"8~h[aLi)XHgחJH_RYf[_ge) 9ZjZG="Aݮ1%,GܑS6ڶ6 =4CLF1L9/ܣ+G]gG9wbmiBܻD@*@d c#& ri'[BYĮn~!1QKv,@=*4 skKi o[ُKߺbH6"Y+BnTHn Հ-:4jW'a%Z[ )Sh8<. Ky%SG$T2 ˓FSvnUntʐfm NG]Ǜ?hF BKٗ?(PKNxMB_n*tensorflow_federated-0.4.0.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫#DPKNdd2tensorflow_federated-0.4.0.dist-info/top_level.txt+I+/J/OKMI-J,IMPKNm *"+tensorflow_federated-0.4.0.dist-info/RECORDɶضY$uѸ TVJ: JAjxi0vxθsc}ε?n㢞8 ߮Vi4ˮK<ջqʘ^Խg&xBk'C T 3H_uWđQ_Z&Ar#X$p2wWk?|P{}ZWnO'#hTt2՝൓SZ I 8 -}RW8#@&_D%ڼ3qEEЀ`TB U$(-UuйOZH㡴h`#$d!1^q KIO@Z3 vSaeu{A@h~2'zC@m^Wħ}AӂK""dfx^ޛLIG$)76zux`7@/?k.mGZ4l,Z_46פ8Po(90G`3ʖM970`:ῃ+,)20e1SbH`9zֽzxQr`A$hPρ|^O<r/N3w7*3X~߈0+5e'ݥ"`s45WV%/zUAEN KM. ~LyTq.je0q:r#fx-}Fw"+XMQU3kRq70KBuf jVqk;6C}U~LN129;=C8TcEE9gAb>"H1apx^=L#l"; ֕Ø] Șt%xi$Ux`k1~MOa>R=-m&*yn8k1UrqLMiQJCH| CZiuwW3vrjYvŽ!戮g,xݹ,Q?уv_K~{IOf(kn d3nbc4wDnE!{(3'w 9)ӔJI` zMOF ]NAgrqX.Iqk\G^Ӵ<oet{UCbV85B#R,/Tzr$ݭLy A _ք18ywf>9q+KW \Cp䍞m /?3M Ru` v08H\"PV"Z;R): _tbY6s3 ۪Ą.+C&Ӎ7&F+~O KzC19SmT{io~*ُ7ˡco<&zG:r:C.PekAwU5sU@%#GkZ 6WCzH]*xcyʚX oR\).FO`mtBͦ$w0So4?Bh]pR0GƖxfaa1Ep,6Powu wt=g3vHφ+ڍ/bC b?: iXyF yn"rɟu<1W^o]o+_T8J`!f{D%%tMe7c#jy:VǖC/bC%2J8Xу;C,6[ۗ~davpA'PmXKS3uG4M]Ȓ5ph8jöO̠-?&EA++_sHxEfvﺤo#s'3QB4nw8F_Z Ҁ}@.ay:- :\:Uɷo';t_#9q1M>G>::Fl&wSsh5Ph3'd@x\)j e %+] ^^:6g'$jq+{ w AVQ $|Gǥ" abMJN p9,n&ePg"T'"˸*m'A[shlvY!|y%<{v9ڦW{wd>nr*/w8 p!"k̽:ʕj+;o?ۋV%/գ"dPk[mrhN^%#Kps|>2s|;p+i$G=tN5^\S)~3avSIWc>+E87e֑;zpkR׭;ע$Szʟ}$NFs"b_ʏ2 p3 %blg'RP&|k{[_%g2,+Hd4Ed2ԡˣ2F3A@M 럣ޣX*a3J7L.vDcH򺍱tCgBRa6?kPp/h 0m Rۤ 'TPn5z6ʞ>Ƨ/>W?hJER *%17\O8-"cc§S'"F c^N'v/mϊ" jӳX-bUSR-n0#bb~oO65Dp^A/Q.k;"ѽЫn##5 e^zy M`.W8s~bB_{W̨Ү:.4:Qp #*DG ;}ѵGugZ@~j(7 cH?ҭA^̳& k2vl]YuܫboG&z1ƄC*CVF{0~6<+UUv7*BucC< iJsbdnY|}Od?þI)I< ff,EJKYI?"~0q8@zȸЙ:4RE!&Gƃ\k/chIs!ĆD  Łak[R+݌˵p7 2cGڠ4\K}ff(6+6!S vn?Q,a0R@Ub@: |5tk[zy>G-qsQnu9t=:,z7tensorflow_federated/python/common_libs/serialization_utils.pyPKN,,#;tensorflow_federated/python/core/__init__.pyPKNg3 0\=tensorflow_federated/python/core/api/__init__.pyPKN8T@tensorflow_federated/python/core/api/computation_base.pyPKN]o79Ctensorflow_federated/python/core/api/computation_types.pyPKNNQB =4Stensorflow_federated/python/core/api/computations.pyPKN8B>2?^tensorflow_federated/python/core/api/intrinsics.pyPKN*K029ntensorflow_federated/python/core/api/placements.pyPKN8VYT4ptensorflow_federated/python/core/api/typed_object.pyPKNYbZ 2stensorflow_federated/python/core/api/value_base.pyPKNS$y .)xtensorflow_federated/python/core/api/values.pyPKN1}tensorflow_federated/python/core/impl/__init__.pyPKN:?~tensorflow_federated/python/core/impl/compiler_pipeline.pyPKN?$mDKtensorflow_federated/python/core/impl/computation_building_blocks.pyPKN@%Gѝtensorflow_federated/python/core/impl/computation_constructing_utils.pyPKN&' 9.tensorflow_federated/python/core/impl/computation_impl.pyPKNcH<tensorflow_federated/python/core/impl/computation_wrapper.pyPKN j0 Ftensorflow_federated/python/core/impl/computation_wrapper_instances.pyPKNC55tensorflow_federated/python/core/impl/context_base.pyPKNx*;tensorflow_federated/python/core/impl/context_stack_base.pyPKNqC];~tensorflow_federated/python/core/impl/context_stack_impl.pyPKNuǡ4tensorflow_federated/python/core/impl/dtype_utils.pyPKN Ftensorflow_federated/python/core/impl/federated_computation_context.pyPKNظ"Dtensorflow_federated/python/core/impl/federated_computation_utils.pyPKN@&,l7Ztensorflow_federated/python/core/impl/function_utils.pyPKNȁ"4etensorflow_federated/python/core/impl/graph_utils.pyPKNچ m9R"tensorflow_federated/python/core/impl/intrinsic_bodies.pyPKNv(GE7(*tensorflow_federated/python/core/impl/intrinsic_defs.pyPKN3Us:;tensorflow_federated/python/core/impl/intrinsic_factory.pyPKNEz 8qOtensorflow_federated/python/core/impl/intrinsic_utils.pyPKN, ;AStensorflow_federated/python/core/impl/placement_literals.pyPKN`*;Wtensorflow_federated/python/core/impl/reference_executor.pyPKNٜ8TC tensorflow_federated/python/core/impl/tensorflow_deserialization.pyPKNse- A`tensorflow_federated/python/core/impl/tensorflow_serialization.pyPKNIon?tensorflow_federated/python/core/impl/tf_computation_context.pyPKNyY0=Ttensorflow_federated/python/core/impl/transformation_utils.pyPKN0o /8tensorflow_federated/python/core/impl/transformations.pyPKN  :9tensorflow_federated/python/core/impl/type_constructors.pyPKNBDh;Ktensorflow_federated/python/core/impl/type_serialization.pyPKNU zGMx3 tensorflow_federated/python/core/impl/type_utils.pyPKNXxD3tensorflow_federated/python/core/impl/value_impl.pyPKN[S 4mtensorflow_federated/python/core/impl/value_utils.pyPKNr2tensorflow_federated/python/core/utils/__init__.pyPKNǡ 7 #;.tensorflow_federated/python/core/utils/computation_utils.pyPKNߴU>&tensorflow_federated/python/core/utils/tf_computation_utils.pyPKNc6;0o.tensorflow_federated/python/learning/__init__.pyPKNfp;1tensorflow_federated/python/learning/federated_averaging.pyPKN(`eqj<]:tensorflow_federated/python/learning/federated_evaluation.pyPKN! 5(Atensorflow_federated/python/learning/federated_sgd.pyPKN^!o !-~Ktensorflow_federated/python/learning/model.pyPKNirR38Xtensorflow_federated/python/learning/model_utils.pyPKN