+
    2j                    L   ^ RI Ht ^ RIt^ RIHt ^RIHtHtHtH	t	H
t
Ht  ! R R]P                  4      t ! R R]P                  4      t ! R	 R
]P                  4      t ! R R]]P"                  4      t ! R R]]P$                  4      tR R lt]P(                  ! ]4       R# )    )annotationsN)Any)	IDNAError_unicode_dots_realabeldecodeencodeulabelc                  :    ] tR t^	tRtRR R lltRR R lltRtR# )	CodecaN  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`.
c               $    V ^8  d   QhRRRRRR/# )   datastrerrorsreturntuple[bytes, int] )formats   "U/home/user/billing-ledger-validation/.venv/lib/python3.14/site-packages/idna/codec.py__annotate__Codec.__annotate__   s"     ' '3 ' ';L '    c                	r    VR 8w  d   \        RV R2RR7      hV'       g   R# \        V4      \        V4      3# )strictUnsupported error handling ""unsupported_errorscoder   r   )r   r	   lenselfr   r   s   &&&r   r	   Codec.encode   s=    X:6(!DK_``Md|SY&&r   c               $    V ^8  d   QhRRRRRR/# )r   r   bytesr   r   r   tuple[str, int]r   )r   s   "r   r   r      s!     ' '5 '# '_ 'r   c                	r    VR 8w  d   \        RV R2RR7      hV'       g   R# \        V4      \        V4      3# )r   r   r   r   r    r   )r   r   r"   r#   s   &&&r   r   Codec.decode   s=    X:6(!DK_``Ld|SY&&r   r   N)r   )__name__
__module____qualname____firstlineno____doc__r	   r   __static_attributes__r   r   r   r   r   	   s    '' 'r   r   c                  &    ] tR t^'tRtR R ltRtR# )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.
c               (    V ^8  d   QhRRRRRRRR/# )r   r   r   r   finalboolr   r   r   )r   s   "r   r   IncrementalEncoder.__annotate__3   s)     " "3 " "D "EV "r   c                	   VR 8w  d   \        RV R2RR7      hV'       g   R# \        P                  ! V4      pRpV'       d+   VR,          '       g   RpVR MV'       g   VR V'       d   Rp. p^ pV F@  pVP                  \	        V4      4       V'       d
   V^,          pV\        V4      ,          pKB  	  RP                  V4      V,           p	V\        V4      ,          pW3# )	r   r   r   r   r   r      .r!   )r   r   splitappendr   r"   join)
r$   r   r   r6   labelstrailing_dotresultsizelabelresult_bytess
   &&&&      r   _buffer_encode!IncrementalEncoder._buffer_encode3   s    X:6(!DK_``M!''-"::#2J2J#'LEMM&-(	CJD	  yy(<7L!!!!r   r   N)r-   r.   r/   r0   r1   rE   r2   r   r   r   r4   r4   '   s    	" "r   r4   c                  &    ] tR t^StRtR R ltRtR# )IncrementalDecoderzIncremental 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.
c               (    V ^8  d   QhRRRRRRRR/# )	r   r   r   r   r   r6   r7   r   r(   r   )r   s   "r   r   IncrementalDecoder.__annotate__]   s(     #" #"3 #" #"D #"_ #"r   c                	P   VR 8w  d   \        RV R2RR7      hV'       g   R# \        V\        4      '       g    \        VR4      p\        P
                  ! V4      pRpV'       d+   VR,          '       g   R
pVR MV'       g   VR V'       d   R
p. p^ pV F@  p	VP                  \        V	4      4       V'       d
   V^,          pV\        V	4      ,          pKB  	  R
P                  V4      V,           p
V\        V4      ,          pW3#   \         d   p\        RRR7      ThR	p?ii ; i)r   r   r   r   r   r+   asciizInvalid ASCII in A-labelinvalid_asciiN.r*   r;   )
r   
isinstancer   UnicodeDecodeErrorr   r<   r=   r
   r"   r>   )r$   r   r   r6   errr?   r@   rA   rB   rC   
result_strs   &&&&       r   _buffer_decode!IncrementalDecoder._buffer_decode]   s   X:6(!DK_``N$$$[4) "''-"::"2J2J#&LEMM&-(	CJD	  XXf%4
L!!!!3 & [ :QWZZ[s   D D%D  D%r   N)r-   r.   r/   r0   r1   rS   r2   r   r   r   rH   rH   S   s    #" #"r   rH   c                      ] tR t^tRtR# )StreamWriterr   Nr-   r.   r/   r0   r2   r   r   r   rV   rV          r   rV   c                      ] tR t^tRtR# )StreamReaderr   NrW   r   r   r   rZ   rZ      rX   r   rZ   c                    V ^8  d   QhRRRR/# )r   namer   r   zcodecs.CodecInfo | Noner   )r   s   "r   r   r      s      # "9 r   c           
         V R8w  d   R# \         P                  ! V \        4       P                  \        4       P                  \
        \        \        \        R7      # )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)r\   r	   r   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInfor   r	   r   r4   rH   rV   rZ   )r\   s   &r   search_functionre      sC     zw~~w~~--!! r   )
__future__r   rc   typingr   corer   r   r   r   r	   r
   r   BufferedIncrementalEncoderr4   BufferedIncrementalDecoderrH   rV   rZ   re   registerr   r   r   <module>rl      s    "   M M'FLL '<)":: )"X-":: -"`	5&-- 		5&-- 	0   r   