PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  m!|Uc@s dZdefdYZdS(sA simple Set class.tSetcBsLeZdZdgZd$dZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$d"Z%d#Z&RS(%s'A simple set class. Sets are not in Python until 2.3, and rdata are not immutable so we cannot use sets.Set anyway. This class implements subset of the 2.3 Set interface using a list as the container. @ivar items: A list of the items which are in the set @type items: listtitemscCs:g|_|dk r6x|D]}|j|qWndS(svInitialize the set. @param items: the initial set of items @type items: any iterable or None N(RtNonetadd(tselfRtitem((s+/usr/lib/python2.7/site-packages/dns/set.pyt__init__s   cCsdt|jS(Nsdns.simpleset.Set(%s)(treprR(R((s+/usr/lib/python2.7/site-packages/dns/set.pyt__repr__*scCs&||jkr"|jj|ndS(sAdd an item to the set.N(Rtappend(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyR-scCs|jj|dS(sRemove an item from the set.N(Rtremove(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyR 2scCs,y|jj|Wntk r'nXdS(s'Remove an item from the set if present.N(RR t ValueError(RR((s+/usr/lib/python2.7/site-packages/dns/set.pytdiscard6s cCs.|j}|j|}t|j|_|S(sMake a (shallow) copy of the set. There is a 'clone protocol' that subclasses of this class should use. To make a copy, first call your super's _clone() method, and use the object returned as the new instance. Then make shallow copies of the attributes defined in the subclass. This protocol allows us to write the set algorithms that return new instances (e.g. union) once, and keep using them in subclasses. (t __class__t__new__tlistR(Rtclstobj((s+/usr/lib/python2.7/site-packages/dns/set.pyt_clone=s cCs |jS(s!Make a (shallow) copy of the set.(R(R((s+/usr/lib/python2.7/site-packages/dns/set.pyt__copy__OscCs |jS(s!Make a (shallow) copy of the set.(R(R((s+/usr/lib/python2.7/site-packages/dns/set.pytcopySscCsSt|tstdn||kr.dSx|jD]}|j|q8WdS(sUpdate the set, adding any elements from other which are not already in the set. @param other: the collection of items with which to update the set @type other: Set object sother must be a Set instanceN(t isinstanceRR RR(RtotherR((s+/usr/lib/python2.7/site-packages/dns/set.pyt union_updateWs  cCsnt|tstdn||kr.dSx9t|jD](}||jkr>|jj|q>q>WdS(sUpdate the set, removing any elements from other which are not in both sets. @param other: the collection of items with which to update the set @type other: Set object sother must be a Set instanceN(RRR RRR (RRR((s+/usr/lib/python2.7/site-packages/dns/set.pytintersection_updateds cCs[t|tstdn||kr6g|_n!x|jD]}|j|q@WdS(sUpdate the set, removing any elements from other which are in the set. @param other: the collection of items with which to update the set @type other: Set object sother must be a Set instanceN(RRR RR (RRR((s+/usr/lib/python2.7/site-packages/dns/set.pytdifference_updatets   cCs|j}|j||S(sReturn a new set which is the union of I{self} and I{other}. @param other: the other set @type other: Set object @rtype: the same type as I{self} (RR(RRR((s+/usr/lib/python2.7/site-packages/dns/set.pytunions  cCs|j}|j||S(sReturn a new set which is the intersection of I{self} and I{other}. @param other: the other set @type other: Set object @rtype: the same type as I{self} (RR(RRR((s+/usr/lib/python2.7/site-packages/dns/set.pyt intersections  cCs|j}|j||S(sReturn a new set which I{self} - I{other}, i.e. the items in I{self} which are not also in I{other}. @param other: the other set @type other: Set object @rtype: the same type as I{self} (RR(RRR((s+/usr/lib/python2.7/site-packages/dns/set.pyt differences  cCs |j|S(N(R(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__or__scCs |j|S(N(R(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__and__scCs |j|S(N(R(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__add__scCs |j|S(N(R(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__sub__scCs|j||S(N(R(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__ior__s cCs|j||S(N(R(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__iand__s cCs|j||S(N(R(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__iadd__s cCs|j||S(N(R(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__isub__s cCs"x|D]}|j|qWdS(sUpdate the set, adding any elements from other which are not already in the set. @param other: the collection of items with which to update the set @type other: any iterable typeN(R(RRR((s+/usr/lib/python2.7/site-packages/dns/set.pytupdates cCs g|_dS(sMake the set empty.N(R(R((s+/usr/lib/python2.7/site-packages/dns/set.pytclearscCsRx$|jD]}||jkr tSq Wx$|jD]}||jkr1tSq1WtS(N(RtFalsetTrue(RRR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__eq__scCs|j| S(N(R)(RR((s+/usr/lib/python2.7/site-packages/dns/set.pyt__ne__scCs t|jS(N(tlenR(R((s+/usr/lib/python2.7/site-packages/dns/set.pyt__len__scCs t|jS(N(titerR(R((s+/usr/lib/python2.7/site-packages/dns/set.pyt__iter__scCs |j|S(N(R(Rti((s+/usr/lib/python2.7/site-packages/dns/set.pyt __getitem__scCs|j|=dS(N(R(RR/((s+/usr/lib/python2.7/site-packages/dns/set.pyt __delitem__scCs|j||!S(N(R(RR/tj((s+/usr/lib/python2.7/site-packages/dns/set.pyt __getslice__scCs|j||5dS(N(R(RR/R2((s+/usr/lib/python2.7/site-packages/dns/set.pyt __delslice__scCsIt|tstdnx$|jD]}||jkr(tSq(WtS(s?Is I{self} a subset of I{other}? @rtype: bool sother must be a Set instance(RRR RR'R((RRR((s+/usr/lib/python2.7/site-packages/dns/set.pytissubsets cCsIt|tstdnx$|jD]}||jkr(tSq(WtS(sAIs I{self} a superset of I{other}? @rtype: bool sother must be a Set instance(RRR RR'R((RRR((s+/usr/lib/python2.7/site-packages/dns/set.pyt issupersets N('t__name__t __module__t__doc__t __slots__RRRRR R RRRRRRRRRRRRR R!R"R#R$R%R&R)R*R,R.R0R1R3R4R5R6(((s+/usr/lib/python2.7/site-packages/dns/set.pyRsH                            N(R9tobjectR(((s+/usr/lib/python2.7/site-packages/dns/set.pyts