
    g              	          S r SSKrSSKrSSKrSSKr\R                  R                  S5      r\R                  R                  S5      r	\\	4S\
S\R                  R                  S\R                  R                  S\R                  R                  4S	 jjr\\	4S
\R                  R                  S\R                  R                  S\R                  R                  S\
4S jjrg)zDNS Reverse Map Names.    Nzin-addr.arpa.z	ip6.arpa.text	v4_origin	v6_originreturnc                 R    [         R                  R                  U 5      n[         R                  R                  U5      (       a  USS  Vs/ s H  nSU-  PM
     nnUnO?[	        [
        R                  " U5      R                  5       5       Vs/ s H  owPM     nnUn [         R                  R                  SR                  [        U5      5      US9$ s  snf s  snf ! [         a=    [         R                  R                  U 5       Vs/ s H  nSU-  PM
     Os  snf nnUn Nf = f)ay  Convert an IPv4 or IPv6 address in textual form into a Name object whose
value is the reverse-map domain name of the address.

*text*, a ``str``, is an IPv4 or IPv6 address in textual form
(e.g. '127.0.0.1', '::1')

*v4_origin*, a ``dns.name.Name`` to append to the labels corresponding to
the address if the address is an IPv4 address, instead of the default
(in-addr.arpa.)

*v6_origin*, a ``dns.name.Name`` to append to the labels corresponding to
the address if the address is an IPv6 address, instead of the default
(ip6.arpa.)

Raises ``dns.exception.SyntaxError`` if the address is badly formed.

Returns a ``dns.name.Name``.
   Nz%d.)origin)dnsipv6	inet_aton	is_mappedstrbinasciihexlifydecode	Exceptionipv4name	from_textjoinreversed)r   r   r   v6bytepartsr
   xs           H/home/matz/Project1/venv/lib/python3.13/site-packages/dns/reversename.pyfrom_addressr      s    0
XX%88b!!-/W5WTTD[WE5F #H$4$4R$8$?$?$A BC B1Q BECF 88chhx7GG 6 D ),););D)AB)A)ABBsB   A
C CC  /C CC 
C +D&
D
D&%D&r   c           	         U R                  U5      (       aq  U R                  U5      n SR                  [        U R                  5      5      n[
        R                  R                  [
        R                  R                  U5      5      $ U R                  U5      (       a  U R                  U5      n [        [        U R                  5      5      n/ n[        S[        U5      S5       H(  nUR                  SR                  XFUS-    5      5        M*     SR                  U5      n[
        R                  R                  [
        R                  R                  U5      5      $ [
        R                  R                  S5      e)a  Convert a reverse map domain name into textual address form.

*name*, a ``dns.name.Name``, an IPv4 or IPv6 address in reverse-map name
form.

*v4_origin*, a ``dns.name.Name`` representing the top-level domain for
IPv4 addresses, instead of the default (in-addr.arpa.)

*v6_origin*, a ``dns.name.Name`` representing the top-level domain for
IPv4 addresses, instead of the default (ip6.arpa.)

Raises ``dns.exception.SyntaxError`` if the name does not have a
reverse-map form.

Returns a ``str``.
   .r             :z"unknown reverse-map address family)is_subdomain
relativizer   r   labelsr   r   	inet_ntoar   listrangelenappendr   	exceptionSyntaxError)r   r   r   r   r&   r   is          r   
to_addressr/   D   s   , ##y)yy$++./xx!!#(("4"4T":;;			9	%	%y)ht{{+,q#f+q)ALL&QU"345 *yyxx!!#(("4"4T":;;mm''(LMMr"   )__doc__r   dns.ipv4r   dns.ipv6dns.namer   r   ipv4_reverse_domainipv6_reverse_domainr   Namer   r/    r"   r   <module>r8      s   $     hh((9 hh((5 
  32#H
#Hxx}}#H xx}}#H 	XX]]	#HP  32%N
((--%Nxx}}%N xx}}%N 		%Nr"   