
    gex              #          S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
JrJrJrJrJr  SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)  \((       a  SSK*r*\RV                  RX                  r-S r.SFS jr/ SFS\R`                  Rb                  S	\\Rd                  Rf                  \44   S
\
S\\5   S\\6\54   4
S jjr7          SGS\R`                  Rb                  S
\\
   S\\5   S\8S\8S\\\Rr                  Rt                  \Rv                  Rx                  4      S\\4   S\8S\8S\8S\\Rd                  Rf                     S\
4S jjr=           SHS\Rd                  Rf                  S\>S\\5   S\6S\\>   S\6S\8S\8S\8S\8S\\R`                  Rb                     S\\R`                  R~                     S\8S\Rd                  Rf                  4S  jjr@           SIS\Rd                  Rf                  S\>S\\5   S\6S\\>   S\6S\8S\8S\8S!\\R`                  Rb                     S"\\R`                  R                     S\\R`                  R~                     S\8S\\Rd                  Rf                  \84   4S# jjrB SFS\R`                  R                  S	\\Rd                  Rf                  \44   S\\5   S\\6\54   4S$ jjrCS% rD     SJS\R`                  R                  S\\5   S\8S\\\Rr                  Rt                  \Rv                  Rx                  4      S\\4   S\8S\\Rd                  Rf                  \54   4S& jjrE        SKS\Rd                  Rf                  S\>S\\5   S\6S\\>   S\6S\8S\8S\\R`                  R                     S\\R`                  R~                     S\Rd                  Rf                  4S' jjrF           SLS\Rd                  Rf                  S\>S\\5   S\6S\\>   S\6S\8S\8S\\R`                  R                     S\\R`                  R~                     S)\\)R                     S*\\>   S+\\8\>4   S\Rd                  Rf                  4S, jjrHS-\S.   SS.4S/ jrISS0SSSSSS1S(S(SS\R                  \R                  4S\Rd                  Rf                  S\>S\\5   S\6S\\>   S\6S\8S\8S2\S3   S4\>S5\8S+\\8\>4   S6\\>   S-\S.   S7\6S8\S\Rd                  Rf                  4"S9 jjrL          SMS\Rd                  Rf                  S\>S:\>S\\5   S\6S\\>   S\6S\8S\8S+\\8\>4   S\\R`                  R~                     S;\\>   S5\8S\Rd                  Rf                  4S< jjrM           SNS\Rd                  Rf                  S\>S\\5   S\6S\\>   S\6S\8S\8S=\\R                  R                     S+\\8\>4   S\\R`                  R~                     S;\\>   S*\\>   S\Rd                  Rf                  4S> jjrNS?\R                  R                  S@\R`                  R                  S\Rd                  Rf                  SA\\6   S\\5   S\5S\
4SB jrSSSSSSS\"R                  S4S\>S?\R                  R                  S\\Rd                  Rf                     S\6S\\5   SC\\5   S\\>   S\6SD\"S\\R`                  R~                     SS4SE jjrUg)OzTalk to a DNS server.    N)AnyDictOptionalTupleUnioncast)NullContext)BadResponseHTTPVersionNoDOHNoDOQUDPMode_check_status_compute_times_make_dot_ssl_context_matches_destination
_remaininghave_dohsslc                     U(       d  U(       aF  Uc@  U [         R                  :X  a  SnX4$ U [         R                  :X  a  SnX4$ [        SU  35      eX4$ g )Nz0.0.0.0z::zunknown address family )socketAF_INETAF_INET6NotImplementedError)afaddressports      G/home/matz/Project1/venv/lib/python3.13/site-packages/dns/asyncquery.py_source_tupler   >   sf     $?V^^##
 	 v&  *,CB4*HII    c                 ^    U b*  U(       d  [         R                   " 5       n[        X-
  S5      $ g Nr   )timemax)
expirationnows     r   _timeoutr'   N   s)    ))+C:#Q''r    sockwhatdestinationr%   returnc                    #    [        U[        R                  R                  5      (       a  UR	                  5       n[
        R
                  " 5       nU R                  X[        X45      5      I Sh  vN nXT4$  N7f)a^  Send a DNS message to the specified UDP socket.

*sock*, a ``dns.asyncbackend.DatagramSocket``.

*what*, a ``bytes`` or ``dns.message.Message``, the message to send.

*destination*, a destination tuple appropriate for the address family
of the socket, specifying where to send the query.

*expiration*, a ``float`` or ``None``, the absolute time at which
a timeout exception should be raised.  If ``None``, no timeout will
occur.  The expiration value is meaningless for the asyncio backend, as
asyncio's transport sendto() never blocks.

Returns an ``(int, float)`` tuple of bytes sent and the sent time.
N)
isinstancednsmessageMessageto_wirer#   sendtor'   )r(   r)   r*   r%   	sent_timens         r   send_udpr5   W   sZ     . $++,,||~		Ikk$Xj-LMMA> 	Ns   A-A9/A70A9Fignore_unexpectedone_rr_per_rrsetkeyringrequest_macignore_trailingraise_on_truncationignore_errorsqueryc           	      6  #    Sn U R                  S[        U5      5      I Sh  vN u  p[        U R                  XU5      (       d  MD  [        R                  " 5       n [
        R                  R                  UUUUUUS9nU	(       a  U
b  U
R                  U5      (       d  M  XU4$  N! [
        R                  R                   a:  nU	(       a-  U
b*  U
R                  UR                  5       5      (       d   SnAM  e SnAf[         a    U	(       a   GM  e f = f7f)aR  Read a DNS message from a UDP socket.

*sock*, a ``dns.asyncbackend.DatagramSocket``.

See :py:func:`dns.query.receive_udp()` for the documentation of the other
parameters, and exceptions.

Returns a ``(dns.message.Message, float, tuple)`` tuple of the received message, the
received time, and the address where the message arrived from.
r      N)r8   r9   r7   r:   r;   )recvfromr'   r   familyr#   r.   r/   	from_wire	Truncatedis_response	Exception)r(   r*   r%   r6   r7   r8   r9   r:   r;   r<   r=   wirefrom_addressreceived_timeres                   r   receive_udprK   u   s    0 D
%)]]5(::N%OO#KK4E
 
 			%%'!1 /$7 & A. U.u7H7H7K7K,//A  P {{$$ 		 %))!))+66 			sK   "DB'9D"B) 'D)D.C<5D;C<<DDDD5   qwheretimeoutr   sourcesource_portbackendc                 $  #    U R                  5       n[        U5      u  p[        R                  R	                  U5      n[        X4U5      nU
(       a  [        U
5      nOwU(       d  [        R                  R                  5       n[        UXE5      nUR                  5       (       a  X4nOSnUR                  U[        R                  SUU5      I Sh  vN nU ISh  vN n[        UUUU5      I Sh  vN   [        UUUUUU R                   U R"                  UU	UU 5      I Sh  vN u  nnnUU-
  Ul        U(       d  U R'                  U5      (       d  [(        eUsSSS5      ISh  vN   $  N N N} NN N! , ISh  vN  (       d  f       g= f7f)a"  Return the response obtained after sending a query via UDP.

*sock*, a ``dns.asyncbackend.DatagramSocket``, or ``None``,
the socket to use for the query.  If ``None``, the default, a
socket is created.  Note that if a socket is provided, the
*source*, *source_port*, and *backend* are ignored.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.udp()` for the documentation of the other
parameters, exceptions, and return type of this method.
Nr   )r1   r   r.   inetaf_for_address_lltupler	   asyncbackendget_default_backendr   datagram_connection_requiredmake_socketr   
SOCK_DGRAMr5   rK   r8   macr#   rD   r
   )rM   rN   rO   r   rP   rQ   r6   r7   r:   r;   r(   rR   r<   rF   
begin_timer%   r   r*   cmstupledtuplesrI   rH   _s                            r   udprc      sV    8 99;D-g6Z		 	 	'BE="-K5@5F&&::<Gr67//11]FF&&r6+<+<aPPrQq$Z888&1IIEE'
 !
M1 + q!1!1) rr Q8!
 rrrs~   CFE,
FE.F E62E030E6#E2$6E6F&E4'F.F0E62E64F6F<E?=F	Fudp_socktcp_sockc                    #     [        U UUUUUUUUSU	UU5      I Sh  vN nUS4$  N! [        R                  R                   a$    [	        U UUUUUUUU
U5
      I Sh  vN  nUS4s $ f = f7f)a  Return the response to the query, trying UDP first and falling back
to TCP if UDP results in a truncated response.

*udp_sock*, a ``dns.asyncbackend.DatagramSocket``, or ``None``,
the socket to use for the UDP query.  If ``None``, the default, a
socket is created.  Note that if a socket is provided the *source*,
*source_port*, and *backend* are ignored for the UDP query.

*tcp_sock*, a ``dns.asyncbackend.StreamSocket``, or ``None``, the
socket to use for the TCP query.  If ``None``, the default, a
socket is created.  Note that if a socket is provided *where*,
*source*, *source_port*, and *backend*  are ignored for the TCP query.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.udp_with_fallback()` for the documentation
of the other parameters, exceptions, and return type of this
method.
TNF)rc   r.   r/   rC   tcp)rM   rN   rO   r   rP   rQ   r6   r7   r:   rd   re   rR   r<   responses                 r   udp_with_fallbackri      s     F 
 
 %  
  ;;    
 
 
 $ s=   A.) ') A.) 5A+A!	A+(A.*A++A.c                 F  #    [        U[        R                  R                  5      (       a  UR	                  SS9nO[        U5      R                  SS5      U-   n[        R                  " 5       nU R                  U[        X$5      5      I Sh  vN   [        U5      U4$  N7f)zSend a DNS message to the specified TCP socket.

*sock*, a ``dns.asyncbackend.StreamSocket``.

See :py:func:`dns.query.send_tcp()` for the documentation of the other
parameters, exceptions, and return type of this method.
T)prepend_length   bigN)
r-   r.   r/   r0   r1   lento_bytesr#   sendallr'   )r(   r)   r%   tcpmsgr3   s        r   send_tcprr   8  s      $++,,T2
 T##Au-4		I
,,vx
>
???K## @s   BB!BB!c                    #    SnUS:  aN  U R                  U[        U5      5      I Sh  vN nUS:X  a  [        S5      eU[        U5      -
  nX4-   nUS:  a  MN  U$  N17f)ztRead the specified number of bytes from stream.  Keep trying until we
either get the desired amount, or we hit EOF.
r    r   NEOF)recvr'   EOFErrorrn   )r(   countr%   ra   r4   s        r   _read_exactlyrx   Q  se      	A
!)))E8J#78885/!AE !) H 9s   'AA-AAc                   #    [        U SU5      I Sh  vN n[        R                  " SU5      u  n[        XU5      I Sh  vN n[        R                  " 5       n	[        R
                  R                  UUUUUS9n
X4$  Nj N?7f)zRead a DNS message from a TCP socket.

*sock*, a ``dns.asyncbackend.StreamSocket``.

See :py:func:`dns.query.receive_tcp()` for the documentation of the other
parameters, exceptions, and return type of this method.
rl   N!Hr8   r9   r7   r:   )rx   structunpackr#   r.   r/   rB   )r(   r%   r7   r8   r9   r:   ldatalrF   rH   rI   s              r   receive_tcpr   _  s        a44E==u%DQt
33DIIKM)' 	 	A  53s!   BA>,B B >B Bc
           	        #    U R                  5       n
[        U5      u  pU(       a$  UR                  5       I Sh  vN   [        U5      nO[        R
                  R                  U5      n[        XU5      nX4nU	(       d  [        R                  R                  5       n	U	R                  U[        R                  SUUU5      I Sh  vN nU ISh  vN n[        UX5      I Sh  vN   [        UXU R                  U R                   U5      I Sh  vN u  nnUU-
  Ul        U R%                  U5      (       d  [&        eUsSSS5      ISh  vN   $  GN N N Nr NI N! , ISh  vN  (       d  f       g= f7f)a+  Return the response obtained after sending a query via TCP.

*sock*, a ``dns.asyncbacket.StreamSocket``, or ``None``, the
socket to use for the query.  If ``None``, the default, a socket
is created.  Note that if a socket is provided
*where*, *port*, *source*, *source_port*, and *backend* are ignored.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.tcp()` for the documentation of the other
parameters, exceptions, and return type of this method.
Nr   )r1   r   getpeernamer	   r.   rT   rU   r   rW   rX   rZ   r   SOCK_STREAMrr   r   r8   r\   r#   rD   r
   )rM   rN   rO   r   rP   rQ   r7   r:   r(   rR   rF   r]   r%   r^   r   r_   r`   ra   rI   rH   s                       r   rg   rg   }  s9    4 99;D-g6Z    5@5F XX$$U+r;7&&::<G&&""Avvw
 
 rQq$+++#.zQYY$
 
M +}}Q rr 	!
 +
 rrrs   8E7EB
E7E
E7EE7E$E%*EE.E>E7
EE7E7E7EEE7E4#E&$E40E7Tssl_contextserver_hostnameverifyc                 t  #    [        U5      u  pU(       a  [        U5      nOU
c  [        X5      n
[        R                  R                  U5      n[        UXE5      nX4nU	(       d  [        R                  R                  5       n	U	R                  U[        R                  SUUUU
U5      I Sh  vN nU ISh  vN n[        U5      n[        U UUUUUUUUU	5
      I Sh  vN n[        R                  " 5       nUU-
  Ul        UsSSS5      ISh  vN   $  Nh N_ N: N! , ISh  vN  (       d  f       g= f7f)az  Return the response obtained after sending a query via TLS.

*sock*, an ``asyncbackend.StreamSocket``, or ``None``, the socket
to use for the query.  If ``None``, the default, a socket is
created.  Note that if a socket is provided, it must be a
connected SSL stream socket, and *where*, *port*,
*source*, *source_port*, *backend*, *ssl_context*, and *server_hostname*
are ignored.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.tls()` for the documentation of the other
parameters, exceptions, and return type of this method.
Nr   )r   r	   r   r.   rT   rU   r   rW   rX   rZ   r   r   r'   rg   r#   )rM   rN   rO   r   rP   rQ   r7   r:   r(   rR   r   r   r   r]   r%   r^   r   r_   r`   ra   rh   end_times                         r   tlsr     s!    <  .g6Z5@5F/HKXX$$U+r67&&::<G&&	
 	
 rQ:&
 
 99; :-! rr	
 
 rrrsl   B+D8-D.
D88D9D8<#DD $DD8DD8D8DD8D5$D'%D51D8resolverzdns.asyncresolver.Resolverc                 H    U c  SS K nUR                  R                  5       n U $ r"   )dns.asyncresolverasyncresolverResolver)r   r.   s     r   _maybe_get_resolverr     s&      $$--/Or    i  z
/dns-queryclientzhttpx.AsyncClientpathpostbootstrap_addressrA   http_versionc                 	  #     [         R                  R                  U5      nUbb  [         R                  R	                  U5      (       a>  U[
        R                  :X  a  SU SU U	 3nO!U[
        R                  :X  a
  SU SU U	 3nOUn0 nUc  [        R                  R                  W5      nUR                  c  [        S5      e[         R                  R	                  UR                  5      (       a  UR                  nUR                  US'   UR                  b  UR                  nU[        R                  :X  d  U[        R                  :X  a  [         (       d  Uck  [#        U5      nWR                  c   eUR%                  UR                  U5      I Sh  vN n[&        R(                  " [+        UR-                  5       5      5      n[/        U UWUUUUUUUU
S9I Sh  vN $ [         (       d  [0        eU(       a*  [3        U[4        R6                  5      (       d  [        S	5      eU R9                  5       nS
S0nU[        R:                  [        R                  4;   nU[        R<                  [        R                  4;   n[         R>                  RA                  5       nUc  SnSnOUnUnU(       a  [C        U5      nO2URE                  5       " UUUUUUUUS9n[4        R6                  " UUUUS9nU ISh  vN nU
(       aQ  URG                  S[I        [K        U5      5      S.5        URM                  URO                  WUUUS9U5      I Sh  vN nOa[P        RR                  " U5      RU                  S5      nURW                  5       n URM                  URY                  WUSU 0US9U5      I Sh  vN nSSS5      ISh  vN   WRZ                  S:  d  URZ                  S:  a(  [        U SURZ                   SUR\                  < 35      e[         R^                  Ra                  UR\                  U Rb                  U Rd                  UUS9n!URf                  Ri                  5       U!l5        U Rm                  U!5      (       d  [n        eU!$ ! [         a    Sn GNsf = f GN GN GN GNW N N! , ISh  vN  (       d  f       N= f7f)a  Return the response obtained after sending a query via DNS-over-HTTPS.

*client*, a ``httpx.AsyncClient``.  If provided, the client to use for
the query.

Unlike the other dnspython async functions, a backend cannot be provided
in this function because httpx always auto-detects the async backend.

See :py:func:`dns.query.https()` for the documentation of the other
parameters, exceptions, and return type of this method.
Nzhttps://:z	https://[z]:zno hostname in URLsni_hostname)r   r   z.session parameter must be an httpx.AsyncClientacceptzapplication/dns-messager   )local_addresshttp1http2r   
local_portr   r   rA   )r   r   r   	transport)zcontent-typezcontent-length)headerscontent
extensions   =r.   )r   paramsr      i+  z responded with status code z
Response body: r{   )8r.   rT   rU   
ValueError
is_addressr   r   r   urllibparseurlparsehostnamer   r   H3DEFAULTr   r   resolve_namerandomchoicelist	addresses_http3r   r-   httpxAsyncClientr1   H1H2rW   rX   r	   get_transport_classupdatestrrn   wait_forr   base64urlsafe_b64encoderstripdecodegetstatus_coder   r/   rB   r8   r9   elapsedtotal_secondsr#   rD   r
   )"rM   rN   rO   r   rP   rQ   r7   r:   r   r   r   r   r   r   rA   r   r   urlr   parsedanswersrF   r   h1h2rR   r   r   r^   r   
the_clientrh   twirerI   s"                                     r   httpsr   	  s]    <XX$$U+ 
~#((--e44UG1TF4&1C6??"eWBtfTF3CJ &&s+??"12288v// &)/J~&;;";;D{~~%+++HH$*84H??...$11&//6JJG &d73D3D3F.G H
 
 	
 8j):):;;IJJ 99;D23G	+..+*=*=>	>B	+..+*=*=>	>B224G~
 
5@5H//1'!/	
	 Rr&IVrZ NN$=&)#d)n %--# )	     H ++D188>DKKME$--#!5>)	    H- rD c!X%9%9C%?g1(2F2F1G 0 035
 	
 			MM)' 	 	A ++-AF==HG  8 K
h - rrrs   SR E4SRASR DS5R 6S9AR*R#A!R*.R&/R*3S>R(?CSRSRSS S#R*&R*(S*S0R31S=Sr   r   c           	        #    [         R                  R                  (       d  [        S5      e[        R
                  R                  U5      nUR                  nUR                  b  UR                  nSU l	        U R                  5       n[         R                  R                  U
5      u  nnU" 5        IS h  vN nU" UXSS9 IS h  vN nUR                  XXV5      n[        U5      u  nnUR                  U5      I S h  vN nU IS h  vN   UR                  X.U5        UR!                  [#        U5      5      I S h  vN n[%        UR'                  5       X5        S S S 5      IS h  vN   [(        R(                  " 5       nS S S 5      IS h  vN   [         R*                  R-                  UU R.                  U R0                  UUS9nS S S 5      IS h  vN   [3        WW-
  S5      Wl        U R5                  U5      (       d  [6        eU$  GNT GNF GN GN N N! , IS h  vN  (       d  f       N= f N! , IS h  vN  (       d  f       N= f N|! , IS h  vN  (       d  f       N= f7f)Nz DNS-over-HTTP3 is not available.r   T)verify_modeserver_nameh3r{           )r.   quic	have_quicr   r   r   r   r   r   idr1   factories_for_backendconnectr   make_streamsend_h3receiver   r   r   r#   r/   rB   r8   r9   r$   rD   r
   )rM   rN   r   rO   r   rP   rQ   r7   r:   r   rR   r   r   	url_partsrF   cfactorymfactorycontextthe_managerthe_connectionstartr%   streamfinishrI   s                            r   r   r     s     88677%%c*I!!H~~!~~AD99;D8899'BXxzzW$
 
(00fRN"0"9UJ)55g>>Fvs$/#^^Jz,BCCfnn.<	 v
 YY[F
 
 KK!!II-+ " 
 z( %%AF==H/ 

 ? D vvv
 
 
 
 zzzs   B3I+5H	6I+9IHI
5H5?H 
H5
H
H50H>H
?HH5(H)H5IH39II+I7I+IH5H5HH5H0H" H0,H53I5I	;H><I	II+I(II($I+
connectionc           	        #    [         R                  R                  (       d  [        S5      eUb  Uc  UnSU l        U R                  5       nU(       a7  [         R                  R                  n[         R                  R                  nUnO![         R                  R                  U
5      u  pU" 5        ISh  vN nU" UU	US9 ISh  vN nU(       d  UR                  XXE5      n[        U5      u  nnWR                  U5      I Sh  vN nU ISh  vN   UR                  US5      I Sh  vN   UR                  [        U5      5      I Sh  vN nSSS5      ISh  vN   [        R                  " 5       nSSS5      ISh  vN   [         R                  R!                  UU R"                  U R$                  UUS9nSSS5      ISh  vN   ['        WW-
  S5      Wl        U R)                  U5      (       d  [*        eU$  GNI GN; N N N N N! , ISh  vN  (       d  f       N= f N! , ISh  vN  (       d  f       N= f N|! , ISh  vN  (       d  f       N= f7f)aQ  Return the response obtained after sending an asynchronous query via
DNS-over-QUIC.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.quic()` for the documentation of the other
parameters, exceptions, and return type of this method.
zDNS-over-QUIC is not available.Nr   )r   r   Tr{   r   )r.   r   r   r   r   r1   null_factoryr   r   r   r   sendr   r   r#   r/   rB   r8   r9   r$   rD   r
   )rM   rN   rO   r   rP   rQ   r7   r:   r   r   rR   r   r   rF   r   r   r   r   r   r   r%   r   r   rI   s                           r   r   r     s    2 88566"x'7"AD99;D88((88((#"xx==gFzzW'
 
 !,!4!4U&!V"0"9UJ)55g>>Fvkk$---#^^Jz,BCC v YY[F
 
 KK!!II-+ " 
 z* %%AF==H1 
 ?-C vvv
 
 
 
 zzzs  B4I!6G?7I!:IHI<H+H
H+H
H+H,H	
-!HH
HH+HH+8IH)9I=I!I	7I!IH+H+	HHH+H&HH&"H+)I+I	1H42I	>II!IIII!txn_managerra   serialc                f  #    UR                   S   R                  nU[        R                  R                  :H  nU R                  5       nUR                  5       n	UR                  [        R                  :H  n
U
(       aI  [        [        R                  R                  U5      nUR                  U	S[        U5      5      I Sh  vN   O`[        [        R                  R                  U5      n[         R"                  " S[%        U	5      5      U	-   nUR'                  X5      I Sh  vN   [        R(                  R+                  XX:5       nSnSnU(       d  [-        U5      u  nnUb	  Ub  UU:  a  UnU
(       a)  [        U5      nWR/                  SU5      I Sh  vN u  nnOC[1        WSU5      I Sh  vN n[         R2                  " SU5      u  n[1        UUU5      I Sh  vN n[        R4                  R7                  UUR8                  UR:                  SUUU
(       + US9nUR=                  U5      nU7v   UR>                  nU(       d  M  UR8                  (       a0  WR@                  (       d  [        RB                  RE                  S	5      eSSS5        g GN GNu GN N N! , (       d  f       g= f7f)
z'Given a socket, does the zone transfer.r   Nrz   Fr?   rl   T)r8   r9   xfrorigintsig_ctxmultir7   zmissing TSIG)#questionrdtyper.   	rdatatypeIXFRfrom_wire_originr1   typer   r[   r   rW   DatagramSocketr2   r'   StreamSocketr|   packrn   rp   r   Inboundr   r@   rx   r}   r/   rB   r8   r\   process_messager   had_tsig	exception	FormError)r   ra   r=   r   rO   r%   r   is_ixfrr   rF   is_udprd   re   rq   inbounddoner   rb   mexpirationrwirer~   r   rI   s                          r   _inbound_xfrr   (  s&     ^^A%%F***G))+F==?DVVv(((F((77;oodD(:*>???((55q9T3t9-4v222	f	=-g6Q"&;+C(";/#+#4#4UG#DD
+HaEE}}T51+HaEE%%!II!!z!( & 	A **1-DGzzH3 $4 ==--)).99= 
>	= 	@ 	3 EEE 
>	=s|   B>J1 JA J1!J"$J1AJ JJ .J/-J JA*J 	AJ 

J1J1J J J  
J.*J1lifetimeudp_modec
           
        #    Uc"  [         R                  R                  U5      u  p*O[         R                  R                  U5      n
[         R                  R                  U 5      n[        XU5      nX4nU	(       d  [         R                  R                  5       n	[        U5      u  pUR                  S   R                  [         R                  R                  :X  am  U[        R                  :w  aY  U	R!                  U["        R$                  SX['        U5      5      I Sh  vN nU ISh  vN    [)        UUX*XO5        Sh  vN nM  U	R!                  U["        R.                  SX['        U5      5      I Sh  vN nU ISh  vN   [)        UUX*XO5        Sh  vN nM   N Nx Nb
  SSS5      ISh  vN    g! [         R                  R*                   a    U[        R,                  :X  a  e  Of = fSSS5      ISh  vN    M  ! , ISh  vN  (       d  f       N= f N N N
 SSS5      ISh  vN    g! , ISh  vN  (       d  f       g= f7f)aU  Conduct an inbound transfer and apply it via a transaction from the
txn_manager.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.inbound_xfr()` for the documentation of
the other parameters, exceptions, and return type of this method.
Nr   )r.   r   
make_queryextract_serial_from_queryrT   rU   r   rW   rX   r   r   r   r   r   r   NEVERrZ   r   r[   r'   r   UseTCPONLYr   )rN   r   r=   r   rO   r   rP   rQ   r  rR   r   r   r_   r`   rb   r%   ra   s                    r   inbound_xfrr  ^  s    * }'',,[92259		 	 	'B2{3F]F""668$X.OQ~~a3==#5#55(gmm:S%%!!1fhz6J
 
 1+E7  !  !!
F68J3G 	A q#KE7W 	!'
     11 77>> w||+ , 11111	 	W qqqqqs&  DIF! 
I*F#+I.H0F;>F'F%F'F;	/I8H!9
IH#IH:H'H%H'H:!I#I%F''F;)I4F75I;3G1.H0G11H4I?H IHHHI#I%H''H:(I3H64I:I III)N)
NNFFNr    FFFN)NrL   Nr   FFFFNNF)NrL   Nr   FFFNNNF)NFNr    F)NrL   Nr   FFNN)NU  Nr   FFNNNNT)
Nr	  Nr   FFTNNT)Nr	  Nr   FFNTNNN)V__doc__r   
contextlibr   r   r|   r#   urllib.parser   typingr   r   r   r   r   r   dns.asyncbackendr.   dns.exceptiondns.inetdns.messagedns.namedns.quic	dns.rcodedns.rdataclassdns.rdatatypedns.transactiondns._asyncbackendr	   	dns.queryr
   r   r   r   r   r   r   r   r   r   r   r   r   rT   low_level_address_tuplerV   r   r'   rW   r   r/   r0   bytesfloatintr5   boolnameNametsigKeyrK   r   Backendrc   r   ri   rr   rx   r   rg   
SSLContextr   r   	AF_UNSPECr   r   r   r   AsyncQuicConnectiontransactionTransactionManagerSocketr   r  r   r    r   <module>r+     s  $         : :           )     88++  #'	



)
)
##U*
+  	
 3:@ "&"&#";?#&! %+/:0



)
):0#:0 :0 	:0
 :0 d388==#((,,678:0 %:0 :0 :0 :0 CKK''(:0 	:0@  $ #"! %6:26?
{{?? e_? 	?
 SM? ? ? ? ? ? 3##22
3? c&&../? ? 	[[?J  $ #"!:>8<26A 
{{A A  e_A  	A 
 SMA  A  A  A  A  s''667A  s''445A  c&&../A  A  3;;$%A N #'$



'
'$
##U*
+$ $ 3:	$2  #'";?#&!



'
'  d388==#((,,678	
 %  3;;%&B  $ "!48265
{{55 e_5 	5
 SM5 5 5 5 3##00
15 c&&../5 	[[5v  $ "!4826,0%)#C
{{CC e_C 	C
 SMC C C C 3##00
1C c&&../C #..)C c]C $)C 	[[CL34!"  $ "!,0#'+7;"" + 3 3!c
{{cc e_c 	c
 SMc c c c ()c c c $)c  }c 34c c  !c" 	[[#cT  $ "!#26"2
{{22 
2 e_	2
 2 SM2 2 2 2 $)2 c&&../2 sm2 2 	[[2p  $ "!9=#26"%)A
{{AA e_A 	A
 SMA A A A 556A $)A c&&../A smA c]A 	[[AH3:333:
3: ;;3: SM	3:
 e_3: 3: 	3:r ,0# $ 2633333 CKK''(3 	3
 e_3 uo3 SM3 3 3 c&&../3 
3r    