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`  w{Zc@sdZddlZddlZdZddlmZddlm Z m Z m ZmZmZmZmZmZmZmZdZdZdZdZ eZ!d Z"dZ#d Z$d ed Z%eeZ&d ed Z'ej(d dj)dgddej*Z+dZ,dZ-ddZ/dZ0dZ1ddZ ddZ ddZddZddZddZdZdZdZdS(s6 IEEE 64-bit EUI (Extended Unique Indentifier) logic. iNi@(tAddrFormatError( t BYTES_TO_BITSt valid_wordst int_to_wordst words_to_intt valid_bitst bits_to_intt int_to_bitst valid_bint int_to_bint bin_to_intis%.2Xt-sEUI-64iiit^s([0-9A-F]{1,2})t$cCsAy)tj|}t|dkr(tSWntk r<nXtS(s @param addr: An IEEE EUI-64 indentifier in string form. @return: C{True} if EUI-64 indentifier is valid, C{False} otherwise. i(tRE_EUI64_FORMATtfindalltlentTruet TypeErrortFalse(taddrt match_result((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyt valid_strAs cCsg}y"tj|}|s'tnWn!tk rKtd|nX|d}t|tkr{td|ntdjg|D]}dt|d^qdS(s @param addr: An IEEE EUI-64 indentifier in string form. @return: An unsigned integer that is equivalent to value represented by EUI-64 string identifier. s#invalid IEEE EUI-64 identifier: %r!is)bad word count for EUI-64 identifier: %r!ts%.2xi(RRRRRt num_wordstinttjoin(RtwordsRtw((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyt str_to_intQs    cCs<t|}g|D]}t|^q}tj|}|S(s @param int_val: An unsigned integer. @param dialect: (optional) a Python class defining formatting options (Please Note - not currently in use). @return: An IEEE EUI-64 identifier that is equivalent to unsigned integer. (Rtword_fmttword_sepR(tint_valtdialectRtittokensR((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyt int_to_strjs cCst|}tjd|S(s @param int_val: the integer to be packed. @return: a packed string that is equivalent to value represented by an unsigned integer. s>8B(Rt_structtpack(R R((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyt int_to_packedys cCscttjd|}d}x>tt|D]*\}}|}|d|>}||B}q1W|S(s @param packed_int: a packed string containing an unsigned integer. It is assumed that string is packed in network byte order. @return: An unsigned integer equivalent to value of network address represented by packed binary string. s>8Bii(tlistR%tunpackt enumeratetreversed(t packed_intRR R"tnumtword((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyt packed_to_intscCst|ttS(N(t _valid_wordst word_sizeR(RR!((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyRscCst|ttS(N(t _int_to_wordsR1R(R R!((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyRscCst|ttS(N(t _words_to_intR1R(RR!((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyRscCst|ttS(N(t _valid_bitstwidthR(tbitsR!((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyRscCst|ttS(N(t _bits_to_intR5R(R6R!((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyRscCst|tttS(N(t _int_to_bitsR1RR(R R!((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyRscCs t|tS(N(t _valid_binR5(tbin_val((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyRscCs t|tS(N(t _int_to_binR5(R ((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyR scCs t|tS(N(t _bin_to_intR5(R:((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyR s(2t__doc__tstructR%tret_retAF_EUI64t netaddr.coreRtnetaddr.strategyRt_BYTES_TO_BITSRR0RR2RR3RR4RR7RR8RR9R R;R R<R5R1RRtfamilyt family_nametversiont word_basetmax_intRtmax_wordtcompileRt IGNORECASERRRtNoneR$R'R/(((s:/usr/lib/python2.7/site-packages/netaddr/strategy/eui64.pyts@  F  !