;ò Îvò8c@s‹dkZdkZdkZdkZd„Zd„Zd„Zd„Zd„Zd„Z dfd„ƒYZ d Z d fd „ƒYZ d „Z d e fd„ƒYZde fd„ƒYZde fd„ƒYZde fd„ƒYZde fd„ƒYZde fd„ƒYZdeeefd„ƒYZdeeefd„ƒYZd„Zd„Zd„Zd „Zed!jo eƒndS("NcCs$t|d?d@ƒt|d@ƒSdS(Niiÿ(schrsn(sn((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys pack16bitscCsHt|d?d@ƒt|d?d@ƒt|d?d@ƒt|d@ƒSdS(Niiÿii(schrsn(sn((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys pack32bitscCs$t|dƒd>t|dƒBSdS(Niii(sordss(ss((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys unpack16bitscCsHt|dƒd>t|dƒd>Bt|dƒd>Bt|dƒBSdS(Niiiiiii(sordss(ss((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys unpack32bit!scCs‰t|ƒtdƒjo|Snti|dƒ}t|ƒdjo td‚nd}x%|D]}|d>ti |ƒB}q`W|SdS(Nis.isbad IP addressi( stypesaddrsstrings splitfieldssbytesslens ValueErrorsnsbytesatoi(saddrsbytessnsbyte((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddr2bin%s cCs4d|d?d@|d?d@|d?d@|d@fSdS(Ns %d.%d.%d.%diiÿii(sn(sn((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysbin2addr.ssPackercBsbtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z RS( NcCsd|_h|_dS(Ns(sselfsbufsindex(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys__init__6s cCs |iSdS(N(sselfsbuf(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysgetbuf9scCs4t|ƒdjo td‚n|i||_dS(Nisone character expected(slenscs TypeErrorsselfsbuf(sselfsc((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddbyte;s cCs|i||_dS(N(sselfsbufsbytes(sselfsbytes((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddbytes>scCs|it|ƒ|_dS(N(sselfsbufs pack16bitsn(sselfsn((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysadd16bit@scCs|it|ƒ|_dS(N(sselfsbufs pack32bitsn(sselfsn((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysadd32bitBscCs&t|ƒ}|it|ƒ|_dS(N(saddr2binsaddrsnsselfsbufs pack32bit(sselfsaddrsn((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddaddrDs cCs*|itt|ƒƒƒ|i|ƒdS(N(sselfsaddbyteschrslensssaddbytes(sselfss((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys addstringGscCsàg}xRti|dƒD]>}|o1t|ƒdjo td‚n|i|ƒqqWg}x}t t|ƒƒD]W} ti ti || dƒƒ} |i| ƒ|ii| ƒo|i| } PqtqtWt|ƒ} t} d}t|iƒ} g}x€t | ƒD]r}||}t|ƒ} | t|ƒdjo"|i||| t|ƒƒn dGdGH|t| ƒ|}q W| o|t| dBƒ}n |d }|i||_x!|D]\} }||i| }d |jo d jno d |GqÖd t |ƒGqÖWHqxWddGHdS( Ns-i(s%20s %3diiis**s%4ds ss %cs%2d( sselfsindexskeysssortskeysspacesrangeslensbufsiscsord(sselfscsspaceskeyssiskey((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysdumpts0     ( s__name__s __module__s__init__sgetbufsaddbytesaddbytessadd16bitsadd32bitsaddaddrs addstringsaddnamesdump(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysPacker5s         *sdnslib.UnpackErrorsUnpackercBsPtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS( NcCs||_d|_dS(Ni(sbufsselfsoffset(sselfsbuf((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys__init__‘s cCs(|i|i}|id|_|SdS(Ni(sselfsbufsoffsetsc(sselfsc((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysgetbyte”scCsR|i|i|i|!}t|ƒ|jo td‚n|i||_|SdS(Nsnot enough data left(sselfsbufsoffsetsnssslens UnpackError(sselfsnss((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysgetbytes˜s  cCst|idƒƒSdS(Ni(s unpack16bitsselfsgetbytes(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysget16bitscCst|idƒƒSdS(Ni(s unpack32bitsselfsgetbytes(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysget32bitŸscCst|iƒƒSdS(N(sbin2addrsselfsget32bit(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysgetaddr¡scCs|it|iƒƒƒSdS(N(sselfsgetbytessordsgetbyte(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getstring£sc CsÚ|iƒ}t|ƒ}|d@djoa|iƒ}t|ƒ}|d>|Bd@}|i}z||_|i ƒ}Wd||_X|Sn|djodSn|i |ƒ}|i ƒ}| o|Sn |d|SdS(NiÀiiÿ?ÿÿiss.(sselfsgetbytescsordsisdsjspointersoffsets save_offsetsgetnamesdomainsgetbytessremains( sselfscsdsisjsdomains save_offsetsremainsspointer((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysgetname¥s(         ( s__name__s __module__s__init__sgetbytesgetbytessget16bitsget32bitsgetaddrs getstringsgetname(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysUnpackers       c Csd}t|ƒ}dk}|iƒx|D]‡}tƒ}|iddƒ|i dƒ|iddƒ|i dƒ|iddƒ|i dƒ|idd ƒ|i d ƒq,W|i ƒt |i ƒd |d ƒGd GH|i ƒt|iƒ}|idƒ|iƒ|idƒ|iƒ|idƒ|iƒ|id ƒ|iƒ|iƒxw|D]o}t|iƒ}|idƒ|iƒ|idƒ|iƒ|idƒ|iƒ|id ƒ|iƒf}qgW|i ƒt |i ƒd |d ƒGdGHx|D] }|GHq WdS(Nis*is f.ISI.ARPAisFoo.F.isi.arpaisarpaisf0.001isseconds per packingsseconds per unpacking(sNsrangesRstimingsstartsisPackerspsaddbytessaddnamesfinishsroundsmillisdumpsUnpackersbufsusgetbytessgetnamesressitem(sitemsisressNspsRsustiming((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys testpackerÀsJ                   ^  sRRpackercBs†tZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„ZRS(NcCsti|ƒt|_dS(N(sPackers__init__sselfsNonesrdstart(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys__init__ïs cGsŠ|i|ƒ|i|ƒ|i|ƒ|i|ƒ|o&t do t d‚n|d}nd}|i|ƒt |i ƒ|_dS(Nis too many argsi(sselfsaddnamesnamesadd16bitstypesklasssadd32bitsttlsrestsress TypeErrorsrdlengthslensbufsrdstart(sselfsnamestypesklasssttlsrestsrdlength((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys addRRheaderòs      cCsÅt|i|id|i!ƒ}|t|iƒ|ijodSn|i|i}|i}d}zD|i|id |_|i t|ƒƒ|i||_d}Wd| o ||_nXdS(Niii( s unpack16bitsselfsbufsrdstartsrdlengthslensrdatassave_bufsoksadd16bit(sselfsokssave_bufsrdatasrdlength((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys patchrdlengthþs   cCs+|itj o|iƒnt|_dS(N(sselfsrdstartsNones patchrdlength(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysendRR scCs/|itj o|iƒnti|ƒSdS(N(sselfsrdstartsNones patchrdlenthsPackersgetbuf(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysgetbufscCs4|i|ti||ƒ|i|ƒ|i ƒdS(N( sselfs addRRheadersnamesdnstypesCNAMEsklasssttlsaddnamescnamesendRR(sselfsnamesklasssttlscname((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddCNAMEs cCsA|i|ti||ƒ|i|ƒ|i|ƒ|i ƒdS(N( sselfs addRRheadersnamesdnstypesHINFOsklasssttls addstringscpusossendRR(sselfsnamesklasssttlscpusos((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddHINFOs  cCsA|i|ti||ƒ|i|ƒ|i |ƒ|i ƒdS(N( sselfs addRRheadersnamesdnstypesMXsklasssttlsadd16bits preferencesaddnamesexchangesendRR(sselfsnamesklasssttls preferencesexchange((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddMXs  cCs4|i|ti||ƒ|i|ƒ|i ƒdS(N( sselfs addRRheadersnamesdnstypesNSsklasssttlsaddnamesnsdnamesendRR(sselfsnamesklasssttlsnsdname((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddNS"s cCs4|i|ti||ƒ|i|ƒ|i ƒdS(N( sselfs addRRheadersnamesdnstypesPTRsklasssttlsaddnamesptrdnamesendRR(sselfsnamesklasssttlsptrdname((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddPTR&s c Cs‚|i|ti||ƒ|i|ƒ|i|ƒ|i |ƒ|i |ƒ|i |ƒ|i | ƒ|i | ƒ|iƒdS(N(sselfs addRRheadersnamesdnstypesSOAsklasssttlsaddnamesmnamesrnamesadd32bitsserialsrefreshsretrysexpiresminimumsendRR( sselfsnamesklasssttlsmnamesrnamesserialsrefreshsretrysexpiresminimum((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddSOA*s       cCsE|i|ti||ƒx|D]}|i |ƒq W|i ƒdS(N( sselfs addRRheadersnamesdnstypesTXTsklasssttlsliststxtdatas addstringsendRR(sselfsnamesklasssttlsliststxtdata((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddTXT5s cCs7|i|titi|ƒ|i|ƒ|i ƒdS(N( sselfs addRRheadersnamesdnstypesAsdnsclasssINsttlsaddaddrsaddresssendRR(sselfsnamesttlsaddress((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddA;s cCsW|i|titi|ƒ|i|ƒ|i t |ƒƒ|i |ƒ|iƒdS(N(sselfs addRRheadersnamesdnstypesWKSsdnsclasssINsttlsaddaddrsaddresssaddbyteschrsprotocolsaddbytessbitmapsendRR(sselfsnamesttlsaddresssprotocolsbitmap((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysaddWKS?s   (s__name__s __module__s__init__s addRRheaders patchrdlengthsendRRsgetbufsaddCNAMEsaddHINFOsaddMXsaddNSsaddPTRsaddSOAsaddTXTsaddAsaddWKS(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysRRpackerîs           s RRunpackercBsttZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z RS( NcCsti||ƒt|_dS(N(sUnpackers__init__sselfsbufsNonesrdend(sselfsbuf((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys__init__HscCsc|iƒ}|iƒ}|iƒ}|iƒ}|iƒ}|i ||_ |||||fSdS(N( sselfsgetnamesnamesget16bitstypesklasssget32bitsttlsrdlengthsoffsetsrdend(sselfsnamesklasssttlstypesrdlength((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getRRheaderKs     cCs$|i|ijo td‚ndS(Nsend of RR not reached(sselfsoffsetsrdends UnpackError(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysendRRSscCs|iƒSdS(N(sselfsgetname(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getCNAMEdataVscCs|iƒ|iƒfSdS(N(sselfs getstring(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getHINFOdataXscCs|iƒ|iƒfSdS(N(sselfsget16bitsgetname(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getMXdataZscCs|iƒSdS(N(sselfsgetname(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getNSdata\scCs|iƒSdS(N(sselfsgetname(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getPTRdata^scCsG|iƒ|iƒ|iƒ|iƒ|iƒ|iƒ|iƒfSdS(N(sselfsgetnamesget32bit(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getSOAdata`scCs<g}x+|i|ijo|i|iƒƒq W|SdS(N(slistsselfsoffsetsrdendsappends getstring(sselfslist((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getTXTdatahs cCs|iƒSdS(N(sselfsgetaddr(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysgetAdatamscCsH|iƒ}t|iƒƒ}|i|i|iƒ}|||fSdS(N( sselfsgetaddrsaddresssordsgetbytesprotocolsgetbytessrdendsoffsetsbitmap(sselfsbitmapsprotocolsaddress((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getWKSdataos (s__name__s __module__s__init__s getRRheadersendRRs getCNAMEdatas getHINFOdatas getMXdatas getNSdatas getPTRdatas getSOAdatas getTXTdatasgetAdatas getWKSdata(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys RRunpackerGs           sHpackercBstZd„ZRS(NcCsª|i|ƒ|i|d@d>|dd>B|d@d>B|d@d>B|d@d>B|d@d>B|d@d>B| d@Bƒ|i| ƒ|i| ƒ|i| ƒ|i| ƒdS( Niii i i iii(sselfsadd16bitsidsqrsopcodesaastcsrdsraszsrcodesqdcountsancountsnscountsarcount(sselfsidsqrsopcodesaastcsrdsraszsrcodesqdcountsancountsnscountsarcount((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys addHeaderys  e   (s__name__s __module__s addHeader(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysHpackerxss HunpackercBstZd„ZRS(Nc Csí|iƒ} |iƒ} | d?d@| d?d@| d?d@| d?d@| d?d@| d?d@| d?d@| d ?d@f\}}}}}} } } |iƒ}|iƒ}|iƒ}|iƒ}| |||||| | | ||||f SdS( Niii i i iiii(sselfsget16bitsidsflagssqrsopcodesaastcsrdsraszsrcodesqdcountsancountsnscountsarcount(sselfsaasqrsnscountsqdcountstcsrdsarcountsopcodesrasflagsszsrcodesidsancount((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getHeader…s  v    (s__name__s __module__s getHeader(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys Hunpacker„ssQpackercBstZd„ZRS(NcCs+|i|ƒ|i|ƒ|i|ƒdS(N(sselfsaddnamesqnamesadd16bitsqtypesqclass(sselfsqnamesqtypesqclass((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys addQuestionœs  (s__name__s __module__s addQuestion(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysQpacker›ss QunpackercBstZd„ZRS(NcCs#|iƒ|iƒ|iƒfSdS(N(sselfsgetnamesget16bit(sself((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys getQuestion¢s(s__name__s __module__s getQuestion(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys Qunpacker¡ssMpackercBstZRS(N(s__name__s __module__(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysMpacker©ss MunpackercBstZRS(N(s__name__s __module__(((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys Munpacker¬sc CsAdG|iƒ\ } }} }}}} } } }}}}d| Gd|| |||| | | fGH|o dGHn| o d| GHnd||||fGHx&t|ƒD]}d|Gt|ƒq¦Wx&t|ƒD]}d|Gt|ƒqÏWx&t|ƒD]}d |Gt|ƒqøWx&t|ƒD]}d |Gt|ƒq!WdS( NsHEADER:sid=%d,s=qr=%d, opcode=%d, aa=%d, tc=%d, rd=%d, ra=%d, z=%d, rcode=%d,s*** response truncated! ***s *** nonzero error code! (%d) ***s0 qdcount=%d, ancount=%d, nscount=%d, arcount=%ds QUESTION %d:s ANSWER %d:sAUTHORITY RECORD %d:sADDITIONAL RECORD %d:(sus getHeadersidsqrsopcodesaastcsrdsraszsrcodesqdcountsancountsnscountsarcountsrangesisdumpQsdumpRR(susaasqrsisnscountsqdcountstcsrdsarcountsopcodesraszsrcodesidsancount((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysdumpM³s23!      cCsC|iƒ\}}}d||ti|ƒ|ti|ƒfGHdS(Ns%qname=%s, qtype=%d(%s), qclass=%d(%s)( sus getQuestionsqnamesqtypesqclasssdnstypestypestrsdnsclasssclassstr(susqnamesqclasssqtype((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysdumpQËscCs—|iƒ\}}}}}ti|ƒ}d||||t i |ƒ|fGHd|}t ||ƒodGt||ƒƒGHndG|i|ƒGHdS(Ns*name=%s, type=%d(%s), class=%d(%s), ttl=%ds get%sdatas formatted rdata:s binary rdata:(sus getRRheadersnamestypesklasssttlsrdlengthsdnstypestypestrstypenamesdnsclasssclassstrsmnameshasattrsgetattrsgetbytes(susnamesmnamestypenamesklasssttlstypesrdlength((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pysdumpRRÒs$ cCsdk} dk} dk}d}d}d}ti}d}t i }d}yF| i| iddƒ\}} t| ƒdjo| id ‚nWnÜ| ij oÍ}|GHd Gd Gd GHd GHdGHd|GHdGHdGHdt i|ƒGHd|GHdGHt iiƒ}|iƒd}xE|D]=}|d}|djo d}Hndt i||fGqWH| idƒnXxŒ|D]„\}}|djotƒdSn|djo d}n|djo d}n|djo |}n|djo d}qwqwW| do^y#tti | dƒt i!ƒ}Wqht"t#fj o"dG| d GH| idƒqhXn| do| d}n|t i$jodGHd}nd|t i|ƒfGHt%ƒ}|i'dd|dd|dddddddƒ |i(||t)i*ƒ|i+ƒ}|djoK|i|i-|i.ƒ}|i0||fƒ|i1|ƒ|i2d ƒ} nÏ|i|i-|i4ƒ}|i0||fƒ|i1t5t|ƒƒ|ƒ|i6dƒ|i7d!ƒ}|i9dƒ}t|ƒdjo d"GHdSnt;|ƒ} |i9| ƒ} t| ƒ| jo d#GHdSnt=| ƒ}t?|ƒ|djo |t i$jo¤x¡no•|i9dƒ}t|ƒdjo d$GHPnt;|ƒ} | o d%GHPnd&GH|i9| ƒ} t| ƒ| jo d#GHPnt=| ƒ}t?|ƒqwWndS('Nsudpssquirl.nightmare.com.i5iscwi.nlisTrs:tuistoo many argumentssUsage: python dnslib.pys[-T] [-r] [-s server] [-t] [-u]s[qtype [qname]]s$-T: run testpacker() and exits*-r: recursion desired (default not)s"-s server: use server (default %s)s-t: use TCP protocols%-u: use UDP protocol (default)s"qtype: query type (default %s)s"qname: query name (default %s)sRecognized qtype values:is%s = %ds-Ts-tstcps-us-ss-rsbad query type:s'Query type AXFR, protocol forced to TCPs QTYPE %d(%s)isrs *** EOF ***s*** Incomplete reply ***s========== EOF ==========s ========== ZERO COUNT ==========s========== NEXT ==========(@ssyssgetoptssocketsprotocolsserversports dnsopcodesQUERYsopcodesrdsdnstypesMXsqtypesqnamesargvsoptssargsslenserrorsmsgstypestrstypemapskeyssqtypesssortsnsexitsosas testpackersevalsstringsuppers__dict__s NameErrors SyntaxErrorsAXFRsMpackersms addHeaders addQuestionsdnsclasssINsgetbufsrequestsAF_INETs SOCK_DGRAMsssconnectssendsrecvsreplys SOCK_STREAMs pack16bitsshutdownsmakefilesfsreadsheaders unpack16bitscounts MunpackersusdumpM(sprotocolsrequestsheadersnsqtypesportsusrdsmsgsgetoptscountsargsssyssreplysassocketsfsmsqnamesosserversssopcodesoptssqtypes((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pystestãsÖ                 #             s__main__(sstringsdnstypesdnsclasss dnsopcodes pack16bits pack32bits unpack16bits unpack32bitsaddr2binsbin2addrsPackers UnpackErrorsUnpackers testpackersRRpackers RRunpackersHpackers HunpackersQpackers QunpackersMpackers MunpackersdumpMsdumpQsdumpRRstests__name__(s pack32bitsaddr2binsbin2addrs UnpackErrorsdumpQs RRunpackerstests unpack32bitsstrings pack16bitsdumpMsMpackersRRpackersdumpRRsQpackersUnpackers unpack16bitsHpackersdnsclasssPackersdnstypes Qunpackers Hunpackers dnsopcodes testpackers Munpacker((s?/mnt/gmirror/ports/devel/py-coro/work/coro_2001_02_02/dnslib.pys?s6         Y0 .Y1     h