PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/lib64/python2.7
Viewing File: /usr/lib64/python2.7/sets.pyo
� zfc@s�dZddlmZmZdddgZddlZejdedd �defd ��YZ de fd ��YZ de fd ��YZ d e fd��YZ dS(s�Classes to represent arbitrary sets (including sets of sets). This module implements sets using dictionaries whose values are ignored. The usual operations (union, intersection, deletion, etc.) are provided as both methods and operators. Important: sets are not sequences! While they support 'x in s', 'len(s)', and 'for x in s', none of those operations are unique for sequences; for example, mappings support all three as well. The characteristic operation for sequences is subscripting with small integers: s[i], for i in range(len(s)). Sets don't support subscripting at all. Also, sequences allow multiple occurrences and their elements have a definite order; sets on the other hand don't record multiple occurrences and don't remember the order of element insertion (which is why they don't support s[i]). The following classes are provided: BaseSet -- All the operations common to both mutable and immutable sets. This is an abstract class, not meant to be directly instantiated. Set -- Mutable sets, subclass of BaseSet; not hashable. ImmutableSet -- Immutable sets, subclass of BaseSet; hashable. An iterable argument is mandatory to create an ImmutableSet. _TemporarilyImmutableSet -- A wrapper around a Set, hashable, giving the same hash value as the immutable set equivalent would have. Do not use this class directly. Only hashable objects can be added to a Set. In particular, you cannot really add a Set as an element to another Set; if you try, what is actually added is an ImmutableSet built from it (it compares equal to the one you tried adding). When you ask if `x in y' where x is a Set and y is a Set or ImmutableSet, x is wrapped into a _TemporarilyImmutableSet z, and what's tested is actually `z in y'. i����(tifiltert ifilterfalsetBaseSettSett ImmutableSetNsthe sets module is deprecatedt stacklevelicBs"eZdZdgZd�Zd�Zd�ZeZed�Z d�Z d�Z d�Z d �Z d �ZeZd �Zd �Zd �Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZeZeZd�Zd�ZdZ!d�Z"d�Z#d�Z$RS(s1Common base class for mutable and immutable sets.t_datacCs|jtkrtd�ndS(sThis is an abstract class.s7BaseSet is an abstract class. Use Set or ImmutableSet.N(t __class__Rt TypeError(tself((s/usr/lib64/python2.7/sets.pyt__init__HscCs t|j�S(s'Return the number of elements of a set.(tlenR(R ((s/usr/lib64/python2.7/sets.pyt__len__QscCs |j�S(seReturn string representation of a set. This looks like 'Set([<list of elements>])'. (t_repr(R ((s/usr/lib64/python2.7/sets.pyt__repr__UscCs6|jj�}|r"|j�nd|jj|fS(Ns%s(%r)(RtkeystsortRt__name__(R tsortedtelements((s/usr/lib64/python2.7/sets.pyR _s cCs |jj�S(ssReturn an iterator over the elements or a set. This is the keys iterator for the underlying dict. (Rtiterkeys(R ((s/usr/lib64/python2.7/sets.pyt__iter__escCs td�dS(Nscan't compare sets using cmp()(R(R tother((s/usr/lib64/python2.7/sets.pyt__cmp__qscCs't|t�r|j|jkStSdS(N(t isinstanceRRtFalse(R R((s/usr/lib64/python2.7/sets.pyt__eq__�scCs't|t�r|j|jkStSdS(N(RRRtTrue(R R((s/usr/lib64/python2.7/sets.pyt__ne__�scCs#|j�}|jj|j�|S(sReturn a shallow copy of a set.(RRtupdate(R tresult((s/usr/lib64/python2.7/sets.pytcopy�s cCscddlm}|j�}||t|�<|j}t}x!|D]}|||||�<qBW|S(s1Return a deep copy of a set; used by copy module.i����(tdeepcopy(RR RtidRR(R tmemoR Rtdatatvaluetelt((s/usr/lib64/python2.7/sets.pyt __deepcopy__�s   cCs t|t�stS|j|�S(shReturn the union of two sets as a new set. (I.e. all elements that are in either set.) (RRtNotImplementedtunion(R R((s/usr/lib64/python2.7/sets.pyt__or__�scCs |j|�}|j|�|S(shReturn the union of two sets as a new set. (I.e. all elements that are in either set.) (Rt_update(R RR((s/usr/lib64/python2.7/sets.pyR(�s cCs t|t�stS|j|�S(snReturn the intersection of two sets as a new set. (I.e. all elements that are in both sets.) (RRR't intersection(R R((s/usr/lib64/python2.7/sets.pyt__and__�scCsut|t�st|�}nt|�t|�krF||}}n ||}}t|jj|�}|j|�S(snReturn the intersection of two sets as a new set. (I.e. all elements that are in both sets.) (RRRR RRt __contains__R(R Rtlittletbigtcommon((s/usr/lib64/python2.7/sets.pyR+�s cCs t|t�stS|j|�S(s�Return the symmetric difference of two sets as a new set. (I.e. all elements that are in exactly one of the sets.) (RRR'tsymmetric_difference(R R((s/usr/lib64/python2.7/sets.pyt__xor__�scCs�|j�}|j}t}|j}y |j}Wn tk rSt|�j}nXx$t|j|�D]}|||<qgWx$t|j|�D]}|||<q�W|S(s�Return the symmetric difference of two sets as a new set. (I.e. all elements that are in exactly one of the sets.) (RRRtAttributeErrorRRR-(R RRR#R$tselfdatat otherdataR%((s/usr/lib64/python2.7/sets.pyR1�s     cCs t|t�stS|j|�S(s�Return the difference of two sets as a new Set. (I.e. all elements that are in this set and not in the other.) (RRR't difference(R R((s/usr/lib64/python2.7/sets.pyt__sub__�scCsv|j�}|j}y |j}Wn tk rDt|�j}nXt}x$t|j|�D]}|||<q^W|S(s�Return the difference of two sets as a new Set. (I.e. all elements that are in this set and not in the other.) (RRR3RRRR-(R RRR#R5R$R%((s/usr/lib64/python2.7/sets.pyR6s    cCsZy||jkSWnBtk rUt|dd�}|dkrE�n|�|jkSXdS(s{Report whether an element is a member of a set. (Called in response to the expression `element in self'.) t__as_temporarily_immutable__N(RRtgetattrtNone(R telementt transform((s/usr/lib64/python2.7/sets.pyR-s  cCsN|j|�t|�t|�kr)tSxt|jj|�D]}tSWtS(s-Report whether another set contains this set.(t_binary_sanity_checkR RRRR-R(R RR%((s/usr/lib64/python2.7/sets.pytissubset!s  cCsN|j|�t|�t|�kr)tSxt|jj|�D]}tSWtS(s-Report whether this set contains another set.(R=R RRRR-R(R RR%((s/usr/lib64/python2.7/sets.pyt issuperset*s  cCs2|j|�t|�t|�ko1|j|�S(N(R=R R>(R R((s/usr/lib64/python2.7/sets.pyt__lt__7s cCs2|j|�t|�t|�ko1|j|�S(N(R=R R?(R R((s/usr/lib64/python2.7/sets.pyt__gt__;s cCst|t�std�ndS(Ns,Binary operation only permitted between sets(RRR(R R((s/usr/lib64/python2.7/sets.pyR=DscCs+d}x|D]}|t|�N}q W|S(Ni(thash(R RR%((s/usr/lib64/python2.7/sets.pyt _compute_hashJs cCs9|j}t|t�r,|j|j�dSt}t|�tttfkr�t |�}x�tr�y#x|D]}|||<qlWdSWq\t k r�t |dd�}|dkr��n|||�<q\Xq\Wndxa|D]Y}y|||<Wq�t k r0t |dd�}|dkr �n|||�<q�Xq�WdS(Nt__as_immutable__( RRRRRttypetlistttupletxrangetiterRR9R:(R titerableR#R$titR;R<((s/usr/lib64/python2.7/sets.pyR*Us2         N(%Rt __module__t__doc__t __slots__R R Rt__str__RR RRRRRt__copy__R&R)R(R,R+R2R1R7R6R-R>R?t__le__t__ge__R@RAR:t__hash__R=RCR*(((s/usr/lib64/python2.7/sets.pyRAsB                  cBs>eZdZdgZdd�Zd�Zd�Zd�ZRS(sImmutable set class.t _hashcodecCs2d|_i|_|dk r.|j|�ndS(s5Construct an immutable set from an optional iterable.N(R:RTRR*(R RJ((s/usr/lib64/python2.7/sets.pyR �s   cCs(|jdkr!|j�|_n|jS(N(RTR:RC(R ((s/usr/lib64/python2.7/sets.pyRS�scCs|j|jfS(N(RRT(R ((s/usr/lib64/python2.7/sets.pyt __getstate__�scCs|\|_|_dS(N(RRT(R tstate((s/usr/lib64/python2.7/sets.pyt __setstate__�sN( RRLRMRNR:R RSRURW(((s/usr/lib64/python2.7/sets.pyRzs     cBs�eZdZgZdd�Zd�Zd�Zd�Zd�Z d�Z d�Z d�Z d �Z d �Zd �Zd �Zd �Zd�Zd�Zd�Zd�Zd�Zd�ZRS(s Mutable set class.cCs)i|_|dk r%|j|�ndS(s*Construct a set from an optional iterable.N(RR:R*(R RJ((s/usr/lib64/python2.7/sets.pyR �s  cCs |jfS(N(R(R ((s/usr/lib64/python2.7/sets.pyRU�scCs|\|_dS(N(R(R R#((s/usr/lib64/python2.7/sets.pyRW�scCs$|j|�|jj|j�|S(s2Update a set with the union of itself and another.(R=RR(R R((s/usr/lib64/python2.7/sets.pyt__ior__�s cCs|j|�dS(s2Update a set with the union of itself and another.N(R*(R R((s/usr/lib64/python2.7/sets.pyt union_update�scCs!|j|�||@j|_|S(s9Update a set with the intersection of itself and another.(R=R(R R((s/usr/lib64/python2.7/sets.pyt__iand__�s cCs5t|t�r||M}n|j|�j|_dS(s9Update a set with the intersection of itself and another.N(RRR+R(R R((s/usr/lib64/python2.7/sets.pytintersection_update�s cCs|j|�|j|�|S(sAUpdate a set with the symmetric difference of itself and another.(R=tsymmetric_difference_update(R R((s/usr/lib64/python2.7/sets.pyt__ixor__�s  cCs{|j}t}t|t�s-t|�}n||krF|j�nx.|D]&}||kri||=qM|||<qMWdS(sAUpdate a set with the symmetric difference of itself and another.N(RRRRRtclear(R RR#R$R%((s/usr/lib64/python2.7/sets.pyR\�s      cCs|j|�|j|�|S(s1Remove all elements of another set from this set.(R=tdifference_update(R R((s/usr/lib64/python2.7/sets.pyt__isub__�s  cCsh|j}t|t�s't|�}n||kr@|j�nx!t|j|�D] }||=qSWdS(s1Remove all elements of another set from this set.N(RRRRR^RR-(R RR#R%((s/usr/lib64/python2.7/sets.pyR_�s   cCs|j|�dS(s9Add all values from an iterable (such as a list or file).N(R*(R RJ((s/usr/lib64/python2.7/sets.pyR�scCs|jj�dS(s"Remove all elements from this set.N(RR^(R ((s/usr/lib64/python2.7/sets.pyR^�scCs]yt|j|<WnEtk rXt|dd�}|dkrE�nt|j|�<nXdS(s`Add an element to a set. This has no effect if the element is already present. RDN(RRRR9R:(R R;R<((s/usr/lib64/python2.7/sets.pytadd�s  cCsWy|j|=WnBtk rRt|dd�}|dkrB�n|j|�=nXdS(svRemove an element from a set; it must be a member. If the element is not a member, raise a KeyError. R8N(RRR9R:(R R;R<((s/usr/lib64/python2.7/sets.pytremoves  cCs)y|j|�Wntk r$nXdS(smRemove an element from a set if it is a member. If the element is not a member, do nothing. N(RbtKeyError(R R;((s/usr/lib64/python2.7/sets.pytdiscard s cCs|jj�dS(s+Remove and return an arbitrary set element.i(Rtpopitem(R ((s/usr/lib64/python2.7/sets.pytpopscCs t|�S(N(R(R ((s/usr/lib64/python2.7/sets.pyRDscCs t|�S(N(t_TemporarilyImmutableSet(R ((s/usr/lib64/python2.7/sets.pyR8sN(RRLRMRNR:R RURWRXRYRZR[R]R\R`R_RR^RaRbRdRfRDR8(((s/usr/lib64/python2.7/sets.pyR�s*              RgcBseZd�Zd�ZRS(cCs||_|j|_dS(N(t_setR(R tset((s/usr/lib64/python2.7/sets.pyR (s cCs |jj�S(N(RhRC(R ((s/usr/lib64/python2.7/sets.pyRS,s(RRLR RS(((s/usr/lib64/python2.7/sets.pyRg$s ( RMt itertoolsRRt__all__twarningstwarntDeprecationWarningtobjectRRRRg(((s/usr/lib64/python2.7/sets.pyt<module>)s �:�