+
    +O|j0  ã                   ó  € R t ^ RIHt  ! R R]4      t ! R R]4      t ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t	 ! R R]4      t
 ! R R]
4      t ! R R]4      t ! R R]4      t ! R R4      tR# )z…Common DNS Exceptions.

Dnspython modules may also define their own exceptions, which will
always be subclasses of ``DNSException``.
)ÚSetc                   óv   a a€ ] tR t^t oRtRt]! 4       tRtV 3R lt	R t
R tR tV 3R ltV3R ltR	tVtV ;t# )
ÚDNSExceptionaµ  Abstract base class shared by all dnspython exceptions.

It supports two basic modes of operation:

a) Old/compatible mode is used if ``__init__`` was called with
empty *kwargs*.  In compatible mode all *args* are passed
to the standard Python Exception class as before and all *args* are
printed by the standard ``__str__`` implementation.  Class variable
``msg`` (or doc string if ``msg`` is ``None``) is returned from ``str()``
if *args* is empty.

b) New/parametrized mode is used if ``__init__`` was called with
non-empty *kwargs*.
In the new mode *args* must be empty and all kwargs must match
those set in class variable ``supp_kwargs``. All kwargs are stored inside
``self.kwargs`` and used in a new ``__str__`` implementation to construct
a formatted message based on the ``fmt`` class variable, a ``string``.

In the simplest case it is enough to override the ``supp_kwargs``
and ``fmt`` class variables to get nice parametrized messages.
Nc                óJ  <€ V P                   ! V/ VB  V'       d)   V P                  ! R/ VB V n        \        V 4      V n        M\        4       V n        V P                  f   V P                  V n        V'       d   \        SV `   ! V!   R # \        SV `!  V P                  4       R # ©N© )	Ú_check_paramsÚ_check_kwargsÚkwargsÚstrÚmsgÚdictÚ__doc__ÚsuperÚ__init__©ÚselfÚargsr
   Ú	__class__s   &*,€ÚFC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\dns/exception.pyr   ÚDNSException.__init__7   sx   ø€ Ø×Ò˜DÐ+ FÒ+ßà×,Ò,Ñ6¨vÑ6ˆDŒKÜ˜4“yˆD�Hä›&ˆDŒKØ�8‰8Òà—|‘|ˆDŒHßÜ‰GÒ˜dÔ#ä‰GÑ˜TŸX™XÖ&ó    c                ój   € V'       g	   V'       d#   \        V4      \        V4      8w  g   Q R4       hR# R# )zkOld exceptions supported only args and not kwargs.

For sanity we do not allow to mix old and new behavior.z=keyword arguments are mutually exclusive with positional argsN)Úbool)r   r   r
   s   &*,r   r   ÚDNSException._check_paramsG   s8   € ÷ —6Ü˜“:¤Øó"ô ð OàNóOò ñ r   c                óŽ   € V'       d=   \        VP                  4       4      V P                  8X  g   Q R V P                   24       hV# )z+following set of keyword args is required: )ÚsetÚkeysÚsupp_kwargs)r   r
   s   &,r   r	   ÚDNSException._check_kwargsP   sC   € ßä�F—K‘K“MÓ" d×&6Ñ&6Ô6ðPà<¸T×=MÑ=MÐ<NÐOóPØ6àˆr   c                ó   € / pVP                  4        Fw  w  r4\        V\        \        ,          4      '       dN   \        \	        \
        V4      4      W#&   \        W#,          4      ^8X  d   W#,          P                  4       W#&   Kq  Ks  WBV&   Ky  	  V# )z€Format kwargs before printing them.

Resulting dictionary has to have keys necessary for str.format call
on fmt class variable.
)ÚitemsÚ
isinstanceÚlistr   Úmapr   ÚlenÚpop)r   r
   ÚfmtargsÚkwÚdatas   &,   r   Ú_fmt_kwargsÚDNSException._fmt_kwargsW   sr   € ð ˆØŸ™ž‰HˆBÜ˜$¤¤s¥
×+Ò+ä"¤3¤s¨D£>Ó2�‘Ü�w•{Ó# qÔ(à")¥+§/¡/Ó"3�G“Kñ )ð #˜“ñ 'ð ˆr   c                óØ   <€ V P                   '       dK   V P                  '       d9   V P                  ! R/ V P                   B pV P                  P                  ! R/ VB # \        SV `  4       # r   )r
   Úfmtr*   Úformatr   Ú__str__)r   r'   r   s   & €r   r/   ÚDNSException.__str__i   sP   ø€ Ø�;�;ˆ;˜4Ÿ8Ÿ8˜8à×&Ò&Ñ5¨¯©Ñ5ˆGØ—8‘8—?’?Ñ- WÑ-Ð-ô ‘7‘?Ó$Ð$r   c                ój   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[S[ ,          ;R&   S[ R,          ;R&   # )é   Nr   r   r-   )r   r   )r.   Ú__classdict__s   "€r   Ú__annotate__ÚDNSException.__annotate__   s8   ø‡ ‚ ñ. 
ˆt�Ññ/ ñ0 ‘S•Ñ!ñ1 ñ2 
ˆt�Ñò3 r   )r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r-   r   r   r	   r*   r/   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r   r3   s   @@r   r   r      s?   ù‡ € ñð, €CÙ›E€KØ€Cõ'ò Oòòõ$%÷[ … r   r   c                   ó   € ] tR t^stRtRtR# )Ú	FormErrorzDNS message is malformed.r   N©r6   r7   r8   r9   r   r;   r   r   r   r@   r@   s   s   † Ý#r   r@   c                   ó   € ] tR t^wtRtRtR# )ÚSyntaxErrorzText input is malformed.r   NrA   r   r   r   rC   rC   w   ó   † Ý"r   rC   c                   ó   € ] tR t^{tRtRtR# )ÚUnexpectedEndzText input ended unexpectedly.r   NrA   r   r   r   rF   rF   {   s   † Ý(r   rF   c                   ó   € ] tR t^tRtRtR# )ÚTooBigzThe DNS message is too big.r   NrA   r   r   r   rH   rH      s   † Ý%r   rH   c                   ó@   a a€ ] tR t^ƒt oRtR0tRtV 3R ltRtVt	V ;t
# )ÚTimeoutzThe DNS operation timed out.Útimeoutz7The DNS operation timed out after {timeout:.3f} secondsc                ó(   <€ \         SV `  ! V/ VB  R # ©N)r   r   r   s   &*,€r   r   ÚTimeout.__init__‹   s   ø€ Ü‰Ò˜$Ð) &Ô)r   r   )r6   r7   r8   r9   r   r   r-   r   r;   r<   r=   r>   s   @@r   rJ   rJ   ƒ   s   ù‡ € Ù&à�+€KØ
C€C÷*õ *r   rJ   c                   ó   € ] tR t^�tRtRtR# )ÚUnsupportedAlgorithmz&The DNSSEC algorithm is not supported.r   NrA   r   r   r   rP   rP   �   s   † Ý0r   rP   c                   ó   € ] tR t^“tRtRtR# )ÚAlgorithmKeyMismatchz=The DNSSEC algorithm is not supported for the given key type.r   NrA   r   r   r   rR   rR   “   s   † ÝGr   rR   c                   ó   € ] tR t^—tRtRtR# )ÚValidationFailurez The DNSSEC signature is invalid.r   NrA   r   r   r   rT   rT   —   s   † Ý*r   rT   c                   ó   € ] tR t^›tRtRtR# )ÚDeniedByPolicyzDenied by DNSSEC policy.r   NrA   r   r   r   rV   rV   ›   rD   r   rV   c                   ó2   a € ] tR t^Ÿt o R tR tR tRtV tR# )ÚExceptionWrapperc                ó   € Wn         R # rM   ©Úexception_class)r   r[   s   &&r   r   ÚExceptionWrapper.__init__    s   € Ø.Ör   c                ó   € V # rM   r   )r   s   &r   Ú	__enter__ÚExceptionWrapper.__enter__£   s   € Øˆr   c                óz   € Ve7   \        W P                  4      '       g   V P                  \        V4      4      VhR# )NF)r"   r[   r   )r   Úexc_typeÚexc_valÚexc_tbs   &&&&r   Ú__exit__ÚExceptionWrapper.__exit__¦   s2   € ØÒ¬
°7×<PÑ<P×(QÒ(QØ×&Ñ&¤s¨7£|Ó4¸'ÐAÙr   rZ   N)	r6   r7   r8   r9   r   r^   rd   r;   r<   )r3   s   @r   rX   rX   Ÿ   s   ø‡ € ò/ò÷ð r   rX   N)r   Útypingr   Ú	Exceptionr   r@   rC   rF   rH   rJ   rP   rR   rT   rV   rX   r   r   r   Ú<module>rh      s—   ðñ$õ ôT%�9ô T%ôn$�ô $ô#�,ô #ô)�Kô )ô&ˆ\ô &ô	*ˆlô 	*ô1˜<ô 1ôHÐ/ô Hô+˜ô +ô#�\ô #÷
ó 
r   