a àMÒeF ã@s8ddlZddlZddlZejjGdd„dejjƒƒZdS)éNcsVeZdZdZdgZ‡fdd„Zddd„Zedd d „ƒZdd d „Z eddd„ƒZ ‡Z S)ÚEUIBasez EUIxx recordÚeuicsJtƒ ||¡| |¡|_t|jƒ|jkrFtj d|jd|jf¡‚dS)Nz EUI%s rdata has to have %s bytesé) ÚsuperÚ__init__Z _as_bytesrÚlenÚbyte_lenÚdnsÚ exceptionZ FormError)ÚselfÚrdclassÚrdtyper©Ú __class__©ú7/usr/lib/python3.9/site-packages/dns/rdtypes/euibase.pyr"s  ÿzEUIBase.__init__NTcKstjj|jfdddœ|¤ŽS)Néó-)Z chunksizeÚ separator)r ÚrdataZ_hexifyr)r ÚoriginÚ relativizeÚkwrrrÚto_text*szEUIBase.to_textc CsÈ| ¡}t|ƒ|jkr(tj d|j¡‚td|jdddƒD] }||dkr>tj d|¡‚q>| dd¡}zt   |  ¡¡} Wn<t t fyº} z tj dt| ƒ¡‚WYd} ~ n d} ~ 00|||| ƒS) Nz"Input text must have %s charactersrééú-zDash expected at position %sÚzHex decoding error: %s)Z get_stringrZtext_lenr r Ú SyntaxErrorÚrangerÚreplaceÚbinasciiZ unhexlifyÚencodeÚ ValueErrorÚ TypeErrorÚstr) Úclsr r ÚtokrrZ relativize_toÚtextÚiÚdataÚexrrrÚ from_text-sÿ  *zEUIBase.from_textFcCs| |j¡dS©N)Úwriter)r ÚfileÚcompressrZ canonicalizerrrÚ_to_wire@szEUIBase._to_wirecCs| |j¡}||||ƒSr-)Z get_bytesr)r&r r ÚparserrrrrrÚfrom_wire_parserCs zEUIBase.from_wire_parser)NT)NTN)NNF)N) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __slots__rrÚ classmethodr,r1r3Ú __classcell__rrrrrs  ÿ  r)r!Z dns.immutabler Z dns.rdataZ immutablerZRdatarrrrrÚs