a Me@sUdZddlmZddlZddlZGdddejjZiZ ee efe d<iZ eee fe d<ej hZejejejejejhZGdd d ejjZe ed d d Zee d ddZeedddZeedddZdee eddddZejZejZej Z ej!Z!ej"Z"ej#Z#ejZejZej$Z$ej%Z%ej&Z&ej'Z'ej(Z(ej)Z)ej*Z*ej+Z+ej,Z,ej-Z-ej.Z.ej/Z/ej0Z0ej1Z1ej2Z2ej3Z3ej4Z4ej5Z5ej6Z6ej7Z7ej8Z8ej9Z9ej:Z:ejZej;Z;ejZ>ej?Z?ejZej Z ej@Z@ejAZAejBZBejCZCejDZDejZejEZEejFZFejGZGejHZHejIZIejJZJejKZKejLZLejMZMejNZNejOZOejPZPejQZQejRZRejSZSejTZTejUZUejVZVejWZWejXZXejYZYejZZZej[Z[ej\Z\ej]Z]ej^Z^ej_Z_ej`Z`ejaZaejbZbejcZcejdZdejeZeejfZfejgZgejhZhdS)zDNS Rdata Types.)DictNc@seZdZdZdZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$d"Z%d#Z&d$Z'd%Z(d&Z)d'Z*d(Z+d)Z,d*Z-d+Z.d,Z/d-Z0d.Z1d/Z2d0Z3d1Z4d2Z5d3Z6d4Z7d5Z8d6Z9d7Z:d8Z;d9ZdZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOdMZPdNZQdOZRdPZSdQZTeUdRdSZVeUdTdUZWeUdVdWZXeUdXdYZYeUdZd[ZZeUd\d]Z[d^S)_ RdataTypezDNS Rdata Typer !#$%&')*+,-./01234578;<=>?@AcghijklmiiiiicCsdS)NiclsrNrN1/usr/lib/python3.9/site-packages/dns/rdatatype.py_maximumoszRdataType._maximumcCsdS)NtyperNrOrNrNrQ _short_namesszRdataType._short_namecCsdS)NZTYPErNrOrNrNrQ_prefixwszRdataType._prefixcCs>|ddkr4z||ddWSty2Yn0t|S)N-r_)findreplaceKeyError_registered_by_textget)rPtextrNrNrQ_extra_from_text{s  zRdataType._extra_from_textcCs0|durt|S|ddkr,|ddS|S)NrWrrV)_registered_by_valuer\rXrY)rPvalueZ current_textrNrNrQ_extra_to_texts   zRdataType._extra_to_textcCstS)N)UnknownRdatatyperOrNrNrQ_unknown_exception_classsz"RdataType._unknown_exception_classN)\__name__ __module__ __qualname____doc__TYPE0NONEANSMDMFCNAMESOAMBMGMRNULLWKSPTRHINFOMINFOMXTXTRPAFSDBX25ISDNRTNSAPNSAP_PTRSIGKEYPXGPOSAAAALOCNXTSRVNAPTRKXCERTA6DNAMEOPTAPLDSSSHFPIPSECKEYRRSIGNSECDNSKEYDHCIDNSEC3 NSEC3PARAMTLSASMIMEAHIPNINFOCDSCDNSKEY OPENPGPKEYCSYNCZONEMDSVCBHTTPSSPFUNSPECNIDL32L64LPEUI48EUI64TKEYTSIGIXFRAXFRMAILBMAILAANYURICAAAVCAMTRELAYTADLV classmethodrRrTrUr^rarcrNrNrNrQrs     rr[r_c@seZdZdZdS)rbz$DNS resource record type is unknown.N)rdrerfrgrNrNrNrQrbsrb)r]returncCs t|S)aConvert text into a DNS rdata type value. The input text can be a defined DNS RR type mnemonic or instance of the DNS generic type syntax. For example, "NS" and "TYPE2" will both result in a value of 2. Raises ``dns.rdatatype.UnknownRdatatype`` if the type is unknown. Raises ``ValueError`` if the rdata type value is not >= 0 and <= 65535. Returns a ``dns.rdatatype.RdataType``. )r from_text)r]rNrNrQrsr)r`rcCs t|S)aConvert a DNS rdata type value to text. If the value has a known mnemonic, it will be used, otherwise the DNS generic type syntax will be used. Raises ``ValueError`` if the rdata type value is not >= 0 and <= 65535. Returns a ``str``. )rto_text)r`rNrNrQrs r)rdtypercCs d|kodknp|tvS)zTrue if the specified type is a metatype. *rdtype* is a ``dns.rdatatype.RdataType``. The currently defined metatypes are TKEY, TSIG, IXFR, AXFR, MAILA, MAILB, ANY, and OPT. Returns a ``bool``. rM) _metatypesrrNrNrQ is_metatypes rcCs|tvr dSdS)aIs the specified type a singleton type? Singleton types can only have a single rdata in an rdataset, or a single RR in an RRset. The currently defined singleton types are CNAME, DNAME, NSEC, NXT, and SOA. *rdtype* is an ``int``. Returns a ``bool``. TF) _singletonsrrNrNrQ is_singletonsrF)r rdtype_textrrcCs"|t|<|t|<|rt|dS)a1Dynamically register an rdatatype. *rdtype*, a ``dns.rdatatype.RdataType``, the rdatatype to register. *rdtype_text*, a ``str``, the textual form of the rdatatype. *is_singleton*, a ``bool``, indicating if the type is a singleton (i.e. RRsets of the type can have only one member.) N)r[r_radd)rrrrNrNrQ register_types r)F)irgtypingrZdns.enumZdnsZ dns.exceptionenumIntEnumrr[str__annotations__r_rrrorrrrnr exceptionZ DNSExceptionrbrrboolrrrrhrirjrkrlrmrprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrNrNrNrQs w