PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB` sh-3ll

HOME


sh-3ll 1.0
DIR:/proc/self/root/lib/python2.7/site-packages/google/protobuf/internal/
Upload File :
Current File : //proc/self/root/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyo
�
���hc@sydZdZddlZddlZddlmZdZeZd�Zd�Z	d�Z
d	�Zd
�Zd�Z
ee	�ZZZee�ZZee	ej�ZZe
d�ZZZe
d
�ZZZe
d�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$e#�Z%e$�Z&d�Z'd�Z(d�Z)d�Z*d�Z+d�Z,e)ej-e&e	�Z.Z/Z0e)ej-e%e�Z1Z2e*ej-e%eej�Z3Z4e+ej5d�Z6e+ej7d�Z8e+ej5d�Z9e+ej7d �Z:e,ej5d!�Z;e,ej7d"�Z<d#�Z=d$�Z>d%�Z?d&�Z@d'�ZAd(�ZBd)�ZCdS(*s�Code for encoding protocol message primitives.

Contains the logic for encoding every logical protocol field type
into one of the 5 physical wire types.

This code is designed to push the Python interpreter's performance to the
limits.

The basic idea is that at startup time, for every field (i.e. every
FieldDescriptor) we construct two functions:  a "sizer" and an "encoder".  The
sizer takes a value of this field's type and computes its byte size.  The
encoder takes a writer function and a value.  It encodes the value into byte
strings and invokes the writer function to write those strings.  Typically the
writer function is the write() method of a BytesIO.

We try to do as much work as possible when constructing the writer and the
sizer rather than when calling them.  In particular:
* We copy any needed global functions to local variables, so that we do not need
  to do costly global table lookups at runtime.
* Similarly, we try to do any attribute lookups at startup time if possible.
* Every field's tag is encoded to bytes at startup, since it can't change at
  runtime.
* Whatever component of the field size we can compute at startup, we do.
* We *avoid* sharing code if doing so would make the code slower and not sharing
  does not burden us too much.  For example, encoders for repeated fields do
  not just call the encoders for singular fields in a loop because this would
  add an extra function call overhead for every loop iteration; instead, we
  manually inline the single-value encoder into the loop.
* If a Python function lacks a return statement, Python actually generates
  instructions to pop the result of the last statement off the stack, push
  None onto the stack, and then return that.  If we really don't care what
  value is returned, then we can save two instructions by returning the
  result of the last statement.  It looks funny but it helps.
* We assume that type and bounds checking has happened at a higher level.
s kenton@google.com (Kenton Varda)i����N(twire_formatg�cCs�|dkrdS|dkr dS|dkr0dS|dkr@dS|d	krPd
S|dkr`dS|d
krpdS|dkr�dS|dkr�dSdS(s#Compute the size of a varint value.iii�?ii��ii���il��il���il���il����il����i	i
((tvalue((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_VarintSizeRs&cCs�|dkrdS|dkr dS|dkr0dS|dkr@dS|d	krPd
S|dkr`dS|d
krpdS|dkr�dS|dkr�dS|dkr�dSdS(s*Compute the size of a signed varint value.ii
iii�?ii��ii���il��il���il���il����il����i	((R((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SignedVarintSize`s*cCsttj|d��S(sQReturns the number of bytes required to serialize a tag with this field
  number.i(RRtPackTag(tfield_number((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_TagSizeoscs�fd�}|S(s�A sizer which uses the function compute_value_size to compute the size of
  each value.  Typically compute_value_size is _VarintSize.csgt|��|r1t����fd�}|S|rM��fd�}|S��fd�}|SdS(Ncs9d}x|D]}|�|�7}q
W|�|��S(Ni((Rtresulttelement(tcompute_value_sizetlocal_VarintSizettag_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytPackedFieldSize�s
cs5�t|�}x|D]}|�|�7}qW|S(N(tlen(RRR(R	R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytRepeatedFieldSize�s
cs��|�S(N((R(R	R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt	FieldSize�s(RR(Rtis_repeatedt	is_packedRRR(R	(R
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
SpecificSizer�s((R	R((R	sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SimpleSizer~scs��fd�}|S(s�Like SimpleSizer, but modify_value is invoked on each value before it is
  passed to compute_value_size.  modify_value is typically ZigZagEncode.cspt|��|r4t�����fd�}|S|rS���fd�}|S���fd�}|SdS(Ncs?d}x$|D]}|��|��7}q
W|�|��S(Ni((RRR(R	R
tmodify_valueR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s
cs;�t|�}x$|D]}|��|��7}qW|S(N(R
(RRR(R	RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s
cs���|��S(N((R(R	RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s(RR(RRRRRR(R	R(R
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s((R	RR((R	RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_ModifiedSizer�scs�fd�}|S(sWLike _SimpleSizer except for a fixed-size field.  The input is the size
  of one value.csut|��|r1t����fd�}|S|rT����fd�}|S����fd�}|SdS(Ncs"t|��}|�|��S(N(R
(RR(R
Rt
value_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�scst|��S(N(R
(R(telement_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�scs�S(N((R(t
field_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s(RR(RRRRRR(R(RRR
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s

((RR((RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_FixedSizer�siiicsTt|��t�t�|r7���fd�}|S���fd�}|SdS(s#Returns a sizer for a string field.csN�t|�}x7|D]/}�|jd��}|�|�|7}qW|S(Nsutf-8(R
tencode(RRRtl(R
t	local_lenR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s

cs'�|jd��}��|�|S(Nsutf-8(R(RR(R
RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�sN(RRR
(RRRRR((R
RRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytStringSizer�scsTt|��t�t�|r7���fd�}|S���fd�}|SdS(s"Returns a sizer for a bytes field.csE�t|�}x.|D]&}�|�}|�|�|7}qW|S(N(R
(RRRR(R
RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRs

cs�|�}��|�|S(N((RR(R
RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRsN(RRR
(RRRRR((R
RRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
BytesSizer�scs@t|�d�|r)�fd�}|S�fd�}|SdS(s"Returns a sizer for a group field.ics5�t|�}x|D]}||j�7}qW|S(N(R
tByteSize(RRR(R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRs
cs�|j�S(N(R(R(R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRsN(R(RRRRR((RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
GroupSizerscsHt|��t�|r.��fd�}|S��fd�}|SdS(s$Returns a sizer for a message field.csE�t|�}x.|D]&}|j�}|�|�|7}qW|S(N(R
R(RRRR(R
R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR+s

cs|j�}��|�|S(N(R(RR(R
R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR3sN(RR(RRRRR((R
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageSizer$scsJtd�dtd�t|�td��t���fd�}|S(s�Returns a sizer for extensions of MessageSet.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  iiics|j�}��|�|S(N(R(RR(R
tstatic_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRLs(RR(RR((R
R"sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageSetItemSizer=s
!
cs7|j�t|jtt�����fd�}|S(s Returns a sizer for a map field.cs`d}xS|D]K}||}�jd|d|�}|�|�7}�r
|j�q
q
W|S(NitkeyR(t_concrete_classR(t	map_valuettotalR$Rt	entry_msg(tis_message_mapt
message_sizertmessage_type(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR_s

(R+R!tnumbertFalse(tfield_descriptorR)R((R)R*R+sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMapSizerWs	cCs
d�}|S(sBReturn an encoder for a basic varint value (does not include tag).cSs_|d@}|dL}x5|rK|tjd|B��|d@}|dL}qW|tj|��S(Niii�(tsixtint2byte(twriteRtunused_deterministictbits((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeVarintws

	
((R5((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_VarintEncoderts		cCs
d�}|S(sKReturn an encoder for a basic signed varint value (does not include
  tag).cSsx|dkr|d7}n|d@}|dL}x5|rd|tjd|B��|d@}|dL}q0W|tj|��S(Niii@iii�l(R0R1(R2RR3R4((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeSignedVarint�s


	
((R7((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SignedVarintEncoder�s	cCs&g}t|j|t�dj|�S(s�Encode the given integer as a varint and return the bytes.  This is only
  called at startup time so it doesn't need to be fast.t(t
_EncodeVarinttappendtTruetjoin(Rtpieces((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_VarintBytes�scCstjttj||���S(sCEncode the given tag and return the bytes.  Only called at startup.(R0tbinary_typeR?RR(Rt	wire_type((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytTagBytes�scs���fd�}|S(s_Return a constructor for an encoder for fields of a particular type.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      encode_value:  A function which encodes an individual value, e.g.
        _EncodeVarint().
      compute_value_size:  A function which computes the size of an individual
        value, e.g. _VarintSize().
  cs�|r:t|tj��t�����fd�}|S|ret|�����fd�}|St|�����fd�}|SdS(Ncsf|��d}x|D]}|�|�7}qW�|||�x|D]}�|||�qHWdS(Ni((R2Rt
deterministictsizeR(R	tencode_valuetlocal_EncodeVarintt	tag_bytes(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodePackedField�s


cs/x(|D] }|���|||�qWdS(N((R2RRCR(RERG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeRepeatedField�s

cs|���|||�S(N((R2RRC(RERG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeField�s
(RBRtWIRETYPE_LENGTH_DELIMITEDR:(RRRRHRIRJ(R	RERA(RFRGsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytSpecificEncoder�s((RARER	RL((R	RERAsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SimpleEncoder�scs����fd�}|S(s�Like SimpleEncoder but additionally invokes modify_value on every value
  before passing it to encode_value.  Usually modify_value is ZigZagEncode.cs�|r=t|tj��t������fd�}|S|rkt|������fd�}|St|������fd�}|SdS(Ncsr|��d}x$|D]}|��|��7}qW�|||�x$|D]}�|�|�|�qNWdS(Ni((R2RRCRDR(R	RERFRRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRH�s


cs5x.|D]&}|���|�|�|�qWdS(N((R2RRCR(RERRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s

cs |���|�|�|�S(N((R2RRC(RERRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
(RBRRKR:(RRRRHRIRJ(R	RERRA(RFRGsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRL�s((RARER	RRL((R	RERRAsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_ModifiedEncoder�scs(tj������fd�}|S(s�Return a constructor for an encoder for a fixed-width field.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      format:  The format string to pass to struct.pack().
  cs�tj�|rFt|tj��t������fd�}|S|rtt|������fd�}|St|������fd�}|SdS(NcsL|���|t|��|�x!|D]}|��|��q+WdS(N(R
(R2RRCR(tformatRFtlocal_struct_packRGR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRHs

cs2x+|D]#}|��|��|��qWdS(N((R2RR3R(RORPRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRIs

cs|��|��|��S(N((R2RR3(RORPRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJs
(tstructtpackRBRRKR:(RRRRHRIRJ(RORRA(RFRPRGsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRLs	(RQtcalcsize(RARORL((RORRAsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_StructPackEncoder�scsktj����dkr'd��n(�dkr?d��ntd�������fd�}|S(sqReturn a constructor for an encoder for float fields.

  This is like StructPackEncoder, but catches errors that may be due to
  passing non-finite floating-point values to struct.pack, and makes a
  second attempt to encode those values.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      format:  The format string to pass to struct.pack().
  icSsR|tkr|d�n5|tkr2|d�n||krK|d�n�dS(Ns�s��s�(t_POS_INFt_NEG_INF(R2R((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeNonFiniteOrRaise+s


icSsR|tkr|d�n5|tkr2|d�n||krK|d�n�dS(Ns�s�s�(RURV(R2R((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRW6s


sGCan't encode floating-point values that are %d bytes long (only 4 or 8)cs�tj�|rIt|tj��t�������fd�}|S|rzt|�������fd�}|St|�������fd�}|SdS(Ncsq|���|t|��|�xF|D]>}y|��|��Wq+tk
rh�||�q+Xq+WdS(N(R
tSystemError(R2RRCR(RWRORFRPRGR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRHHs


csWxP|D]H}|��y|��|��Wqtk
rN�||�qXqWdS(N(RX(R2RR3R(RWRORPRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRIUs


csF|��y|��|��Wntk
rA�||�nXdS(N(RX(R2RR3(RWRORPRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ_s


(RQRRRBRRKR:(RRRRHRIRJ(RWRORRA(RFRPRGsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRLCs	
(RQRSt
ValueError(RARORL((RWRORRAsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_FloatingPointEncoders


$s<Is<Qs<is<qs<fs<dcs�d�d�|rFt|tj��t�����fd�}|S|rwt|tj�����fd�}|St|tj�����fd�}|SdS(s'Returns an encoder for a boolean field.sscsR|���|t|�|�x+|D]#}|r@|��q'|��q'WdS(N(R
(R2RRCR(t
false_byteRFRGt	true_byte(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRH�s


cs<x5|D]-}|��|r*|��q|��qWdS(N((R2RR3R(R[RGR\(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s



cs$|��|r|��S|��S(N((R2RR3(R[RGR\(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s

N(RBRRKR:tWIRETYPE_VARINT(RRRRHRIRJ((R[RFRGR\sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytBoolEncoder�scsZt|tj��t�t�|r=���fd�}|S���fd�}|SdS(s&Returns an encoder for a string field.csNxG|D]?}|jd�}|���|�|�|�||�qWdS(Nsutf-8(R(R2RRCRtencoded(RFRttag(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s


cs9|jd�}|���|�|�|�||�S(Nsutf-8(R(R2RRCR_(RFRR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
N(RBRRKR:R
(RRRRIRJ((RFRR`sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
StringEncoder�scsZt|tj��t�t�|r=���fd�}|S���fd�}|SdS(s%Returns an encoder for a bytes field.cs?x8|D]0}|���|�|�|�||�qWdS(N((R2RRCR(RFRR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s

cs*|���|�|�|�||�S(N((R2RRC(RFRR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
N(RBRRKR:R
(RRRRIRJ((RFRR`sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytBytesEncoder�scsZt|tj��t|tj��|r@��fd�}|S��fd�}|SdS(s%Returns an encoder for a group field.cs9x2|D]*}|��|j||�|��qWdS(N(t_InternalSerialize(R2RRCR(tend_tagt	start_tag(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s

cs$|��|j||�|��S(N(Rc(R2RRC(RdRe(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
N(RBRtWIRETYPE_START_GROUPtWIRETYPE_END_GROUP(RRRRIRJ((RdResD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytGroupEncoder�scsNt|tj��t�|r4��fd�}|S��fd�}|SdS(s'Returns an encoder for a message field.csEx>|D]6}|���||j�|�|j||�qWdS(N(RRc(R2RRCR(RFR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s

cs0|���||j�|�|j||�S(N(RRc(R2RRC(RFR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
N(RBRRKR:(RRRRIRJ((RFR`sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageEncoder�scsvdjtdtj�tdtj�t|�tdtj�g��tdtj��t����fd�}|S(s�Encoder for extensions of MessageSet.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  R9iiics:|���||j�|�|j||�|��S(N(RRc(R2RRC(t	end_bytesRFtstart_bytes(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJs
(	R=RBRRfR]R?RKRgR:(RRJ((RjRFRksD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageSetItemEncoders	cs4|j�t|jtt����fd�}|S(s�Encoder for extensions of MessageSet.

  Maps always have a wire format like this:
    message MapEntry {
      key_type key = 1;
      value_type value = 2;
    }
    repeated MapEntry map = N;
  cs_|rt|j��n|}x:|D]2}�jd|d||�}�|||�q%WdS(NR$R(tsortedtkeysR%(R2RRCt
value_keysR$R((tencode_messageR+(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ5s
(R+RiR,R-(R.RJ((RpR+sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
MapEncoder&s	(Dt__doc__t
__author__RQR0tgoogle.protobuf.internalRRURVRRRRRRt
Int32Sizert
Int64Sizert	EnumSizertUInt32SizertUInt64SizertZigZagEncodetSInt32SizertSInt64SizertFixed32Sizert
SFixed32Sizert
FloatSizertFixed64Sizert
SFixed64SizertDoubleSizert	BoolSizerRRR R!R#R/R6R8R:t_EncodeSignedVarintR?RBRMRNRTRZR]tInt32EncodertInt64EncodertEnumEncodert
UInt32Encodert
UInt64Encodert
SInt32Encodert
SInt64EncodertWIRETYPE_FIXED32tFixed32EncodertWIRETYPE_FIXED64tFixed64EncodertSFixed32EncodertSFixed64EncodertFloatEncodert
DoubleEncoderR^RaRbRhRiRlRq(((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt<module>Asn						!													
	)	"	&	R	%