Ë
    V.j°  ã                   ó`  — d dl Z d dlmZmZ ddlmZmZmZmZm	Z	m
Z
  G d„ de j                  «      Z G d„ de j                  «      Z G d	„ d
e j                  «      Z G d„ dee j                   «      Z G d„ dee j"                  «      Zdedee j&                     fd„Z e j*                  e«       y)é    N)ÚAnyÚOptionalé   )Ú	IDNAErrorÚ_unicode_dots_reÚalabelÚdecodeÚencodeÚulabelc            	       óP   — e Zd ZdZddededeeef   fd„Zddededeeef   fd„Z	y)	ÚCodecaf  Stateless IDNA 2008 codec.

    Implements the :class:`codecs.Codec` protocol so that the whole-domain
    encoder (:func:`idna.encode`) and decoder (:func:`idna.decode`) are
    accessible through the standard codec machinery as ``"idna2008"``.

    Only the ``"strict"`` error handler is supported; any other handler
    raises :exc:`~idna.IDNAError`.
    ÚdataÚerrorsÚreturnc                 ó\   — |dk7  rt        d|› d�«      ‚|syt        |«      t        |«      fS )NÚstrictúUnsupported error handling "Ú"©ó    r   )r   r
   Úlen©Úselfr   r   s      úLC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\idna/codec.pyr
   zCodec.encode   s8   € Ø�XÒÜÐ:¸6¸(À!ÐDÓEÐEáØä�d‹|œS ›YÐ&Ð&r   c                 ó\   — |dk7  rt        d|› d�«      ‚|syt        |«      t        |«      fS )Nr   r   r   ©Ú r   )r   r	   r   r   s      r   r	   zCodec.decode   s8   € Ø�XÒÜÐ:¸6¸(À!ÐDÓEÐEáØä�d‹|œS ›YÐ&Ð&r   N)r   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚtupleÚbytesÚintr
   r	   © r   r   r   r      sL   „ ññ'˜3ð '¨ð '¸5ÀÈÀÑ;Ló 'ñ'˜5ð '¨#ð '¸UÀ3ÈÀ8¹_ô 'r   r   c            
       ó2   — e Zd ZdZdedededeeef   fd„Z	y)ÚIncrementalEncodera·  Incremental IDNA 2008 encoder.

    Buffers a partial trailing label across calls until either the next
    label separator is seen or ``final=True``, so that streamed input is
    encoded one whole label at a time. Any of the four Unicode label
    separators (``U+002E``, ``U+3002``, ``U+FF0E``, ``U+FF61``) ends a
    label; the result always uses ``U+002E`` as the separator.

    Only the ``"strict"`` error handler is supported.
    r   r   Úfinalr   c                 óJ  — |dk7  rt        d|› d�«      ‚|syt        j                  |«      }d}|r|d   sd}|d= n	|s|d= |rd}g }d}|D ]1  }|j                  t	        |«      «       |r|d	z  }|t        |«      z  }Œ3 dj                  |«      |z   }	|t        |«      z  }|	|fS )
Nr   r   r   r   r   éÿÿÿÿó   .r   r   )r   r   ÚsplitÚappendr   r   Újoin)
r   r   r   r)   ÚlabelsÚtrailing_dotÚresultÚsizeÚlabelÚresult_bytess
             r   Ú_buffer_encodez!IncrementalEncoder._buffer_encode1   sÏ   € Ø�XÒÜÐ:¸6¸(À!ÐDÓEÐEáØä!×'Ñ'¨Ó-ˆØˆÙØ˜"’:Ø#�Ø˜2‘JÙà˜2�JÙØ#'�LàˆØˆÛˆEØ�M‰Mœ& ›-Ô(ÙØ˜‘	�Ø”C˜“JÑ‰Dð	 ð —y‘y Ó(¨<Ñ7ˆØ”�LÓ!Ñ!ˆØ˜TÐ!Ð!r   N)
r   r   r    r!   r"   Úboolr#   r$   r%   r6   r&   r   r   r(   r(   %   s2   „ ñ	ð" 3ð "°ð "¸Dð "ÀUÈ5ÐRUÈ:ÑEVô "r   r(   c            
       ó2   — e Zd ZdZdedededeeef   fd„Z	y)ÚIncrementalDecodera  Incremental IDNA 2008 decoder.

    Buffers a partial trailing label across calls until either the next
    label separator is seen or ``final=True``, so that streamed input is
    decoded one whole label at a time.

    Only the ``"strict"`` error handler is supported.
    r   r   r)   r   c                 ó‚  — |dk7  rt        d|› d�«      ‚|syt        |t        «      st        |d«      }t        j                  |«      }d}|r|d   sd}|d= n	|s|d= |rd}g }d	}|D ]1  }|j                  t        |«      «       |r|d
z  }|t        |«      z  }Œ3 dj                  |«      |z   }	|t        |«      z  }|	|fS )Nr   r   r   r   Úasciir   r+   Ú.r   r   )	r   Ú
isinstancer"   r   r-   r.   r   r   r/   )
r   r   r   r)   r0   r1   r2   r3   r4   Ú
result_strs
             r   Ú_buffer_decodez!IncrementalDecoder._buffer_decode\   så   € Ø�XÒÜÐ:¸6¸(À!ÐDÓEÐEáØä˜$¤Ô$Ü�t˜WÓ%ˆDä!×'Ñ'¨Ó-ˆØˆÙØ˜"’:Ø"�Ø˜2‘JÙà˜2�JÙØ#&�LàˆØˆÛˆEØ�M‰Mœ& ›-Ô(ÙØ˜‘	�Ø”C˜“JÑ‰Dð	 ð —X‘X˜fÓ%¨Ñ4ˆ
Ø”�LÓ!Ñ!ˆØ˜DÐ!Ð!r   N)
r   r   r    r!   r   r"   r7   r#   r%   r?   r&   r   r   r9   r9   R   s1   „ ñð " 3ð  "°ð  "¸Dð  "ÀUÈ3ÐPSÈ8Á_ô  "r   r9   c                   ó   — e Zd Zy)ÚStreamWriterN©r   r   r    r&   r   r   rA   rA      ó   „ Ør   rA   c                   ó   — e Zd Zy)ÚStreamReaderNrB   r&   r   r   rE   rE   ƒ   rC   r   rE   Únamer   c           	      ó®   — | dk7  ryt        j                  | t        «       j                  t        «       j                  t
        t        t        t        ¬«      S )a£  Codec search function registered with :mod:`codecs`.

    Returns a :class:`codecs.CodecInfo` for the ``"idna2008"`` codec name
    so that ``str.encode("idna2008")`` and ``bytes.decode("idna2008")``
    invoke the IDNA 2008 codec defined in this module.

    :param name: The codec name being looked up.
    :returns: A :class:`codecs.CodecInfo` instance if ``name`` is
        ``"idna2008"``, otherwise ``None``.
    Úidna2008N)rF   r
   r	   ÚincrementalencoderÚincrementaldecoderÚstreamwriterÚstreamreader)	ÚcodecsÚ	CodecInfor   r
   r	   r(   r9   rA   rE   )rF   s    r   Úsearch_functionrO   ‡   sC   € ð ˆzÒØÜ×ÑØÜ‹w�~‰~Ü‹w�~‰~Ü-Ü-Ü!Ü!ôð r   )rM   Útypingr   r   Úcorer   r   r   r	   r
   r   r   ÚBufferedIncrementalEncoderr(   ÚBufferedIncrementalDecoderr9   rA   rE   r"   rN   rO   Úregisterr&   r   r   Ú<module>rU      s�   ðÛ ß  ç M× Mô'ˆF�L‰Lô 'ô<*"˜×:Ñ:ô *"ôZ*"˜×:Ñ:ô *"ôZ	�5˜&×-Ñ-ô 	ô	�5˜&×-Ñ-ô 	ð˜#ð  (¨6×+;Ñ+;Ñ"<ó ð0 €‡��Õ  r   