ó
    F\h%  ã                   óÒ   • S r SSKrSS jrSS jr " S S\R                  5      r " S S\R
                  5      r " S	 S
\R                  5      r " S S\R                  5      rS r	g)a  Python 'utf-8-sig' Codec
This work similar to UTF-8 with the following changes:

* On encoding/writing a UTF-8 encoded BOM will be prepended/written as the
  first three bytes.

* On decoding/reading if the first three bytes are a UTF-8 encoded BOM, these
  bytes will be skipped.
é    Nc                 ól   • [         R                  [         R                  " X5      S   -   [        U 5      4$ ©Nr   )ÚcodecsÚBOM_UTF8Úutf_8_encodeÚlen)ÚinputÚerrorss     Ú*/usr/lib/python3.13/encodings/utf_8_sig.pyÚencoder      s/   € Ü�O‰Oœf×1Ò1°%Ó@ÀÑCÑCÜ�‹Jðð ó    c                 ó€   • SnU S S [         R                  :X  a  U SS  n Sn[         R                  " XS5      u  p4X4U-   4$ )Nr   é   T)r   r   Úutf_8_decode)r	   r
   ÚprefixÚoutputÚconsumeds        r   Údecoder      sK   € Ø€FØˆRˆa€y”F—O‘OÓ#Ø�a�b�	ˆØˆÜ×,Ò,¨U¸DÓAÑ€VØ˜V‘OÐ$Ð$r   c                   ó:   • \ rS rSrS	S jrS
S jrS rS rS rSr	g)ÚIncrementalEncoderé   c                 óP   • [         R                  R                  X5        SU l        g ©Né   )r   r   Ú__init__Úfirst©Úselfr
   s     r   r   ÚIncrementalEncoder.__init__   s   € Ü×!Ñ!×*Ñ*¨4Ô8Øˆ�
r   c                 óà   • U R                   (       a;  SU l         [        R                  [        R                  " XR                  5      S   -   $ [        R                  " XR                  5      S   $ r   )r   r   r   r   r
   )r   r	   Úfinals      r   r   ÚIncrementalEncoder.encode   sT   € Ø�:�:ØˆDŒJÜ—?‘?Ü×&Ò& u¯k©kÓ:¸1Ñ=ñ>ð >ô ×&Ò& u¯k©kÓ:¸1Ñ=Ð=r   c                 óP   • [         R                  R                  U 5        SU l        g r   )r   r   Úresetr   ©r   s    r   r$   ÚIncrementalEncoder.reset'   s   € Ü×!Ñ!×'Ñ'¨Ô-Øˆ�
r   c                 ó   • U R                   $ ©N©r   r%   s    r   ÚgetstateÚIncrementalEncoder.getstate+   s   € Ø�z‰zÐr   c                 ó   • Xl         g r(   r)   ©r   Ústates     r   ÚsetstateÚIncrementalEncoder.setstate.   s   € Ø�
r   r)   N©Ústrict)F)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r$   r*   r/   Ú__static_attributes__© r   r   r   r      s   † ôô>òòõr   r   c                   ó6   • \ rS rSrS	S jrS rS rS rS rSr	g)
ÚIncrementalDecoderé1   c                 óP   • [         R                  R                  X5        SU l        g r   )r   ÚBufferedIncrementalDecoderr   r   r   s     r   r   ÚIncrementalDecoder.__init__2   s   € Ü×)Ñ)×2Ñ2°4Ô@Øˆ�
r   c                 óJ  • U R                   (       a|  [        U5      S:  a-  [        R                  R	                  U5      (       a  gSU l         O@SU l         US S [        R                  :X  a"  [        R
                  " USS  X#5      u  pEXES-   4$ [        R
                  " XU5      $ )Nr   ©Ú r   r   )r   r   r   r   Ú
startswithr   )r   r	   r
   r!   r   r   s         r   Ú_buffer_decodeÚ!IncrementalDecoder._buffer_decode6   s‹   € Ø�:�:Ü�5‹z˜A‹~Ü—?‘?×-Ñ-¨e×4Ñ4ð #à!"�D•Jà�”
Ø˜˜!�9¤§¡Ó/ä×*Ò*¨5°°¨9°fÓDñ '�Và"¨Q¡JÐ/Ð/Ü×"Ò" 5°%Ó8Ð8r   c                 óP   • [         R                  R                  U 5        SU l        g r   )r   r=   r$   r   r%   s    r   r$   ÚIncrementalDecoder.resetG   s   € Ü×)Ñ)×/Ñ/°Ô5Øˆ�
r   c                 ób   • [         R                  R                  U 5      nUS   U R                  4$ r   )r   r=   r*   r   r-   s     r   r*   ÚIncrementalDecoder.getstateK   s+   € Ü×1Ñ1×:Ñ:¸4Ó@ˆà�a‘˜$Ÿ*™*Ð%Ð%r   c                 óV   • [         R                  R                  X5        US   U l        g r   )r   r=   r/   r   r-   s     r   r/   ÚIncrementalDecoder.setstateP   s!   € ä×)Ñ)×2Ñ2°4Ô?Ø˜1‘Xˆ�
r   r)   Nr1   )
r3   r4   r5   r6   r   rC   r$   r*   r/   r7   r8   r   r   r:   r:   1   s   † ôò9ò"ò&õ
r   r:   c                   ó$   • \ rS rSrS rSS jrSrg)ÚStreamWriteréU   c                 óh   • [         R                  R                  U 5         U ?g ! [         a     g f = fr(   )r   rL   r$   r   ÚAttributeErrorr%   s    r   r$   ÚStreamWriter.resetV   ó2   € Ü×Ñ×!Ñ! $Ô'ð	Ø‘øÜó 	Ùð	úó   ¡$ ¤
1°1c                 óB   • [         R                  U l        [        X5      $ r(   )r   r   r   )r   r	   r
   s      r   r   ÚStreamWriter.encode]   s   € Ü×)Ñ)ˆŒÜ�eÓ$Ð$r   )r   Nr1   )r3   r4   r5   r6   r$   r   r7   r8   r   r   rL   rL   U   s   † ò÷%r   rL   c                   ó$   • \ rS rSrS rSS jrSrg)ÚStreamReaderéa   c                 óh   • [         R                  R                  U 5         U ?g ! [         a     g f = fr(   )r   rV   r$   r   rO   r%   s    r   r$   ÚStreamReader.resetb   rQ   rR   c                 ó^  • [        U5      S:  a&  [        R                  R                  U5      (       a  gONUS S [        R                  :X  a7  [        R                  U l        [        R                  " USS  U5      u  p4X4S-   4$ [        R                  U l        [        R                  " X5      $ )Nr   r@   )r   r   r   rB   r   r   )r   r	   r
   r   r   s        r   r   ÚStreamReader.decodei   s“   € Üˆu‹:˜‹>Ü�‰×)Ñ)¨%×0Ñ0ð ð 1ð �2�AˆYœ&Ÿ/™/Ó)Ü ×-Ñ-ˆDŒKÜ!'×!4Ò!4°U¸1¸2°Y¸vÓ!FÑˆVØ Q™JÐ'Ð'ä×)Ñ)ˆŒÜ×"Ò" 5Ó1Ð1r   )r   Nr1   )r3   r4   r5   r6   r$   r   r7   r8   r   r   rV   rV   a   s   † ò÷2r   rV   c            
      óf   • [         R                  " S[        [        [        [
        [        [        S9$ )Nz	utf-8-sig)Únamer   r   ÚincrementalencoderÚincrementaldecoderÚstreamreaderÚstreamwriter)r   Ú	CodecInfor   r   r   r:   rV   rL   r8   r   r   Úgetregentryrc   y   s*   € Ü×ÒØÜÜÜ-Ü-Ü!Ü!ñð r   r1   )
Ú__doc__r   r   r   r   r=   r:   rL   rV   rc   r8   r   r   Ú<module>re      sg   ðñó ôô%ô˜×2Ñ2ô ô."˜×:Ñ:ô "ôH
%�6×&Ñ&ô 
%ô2�6×&Ñ&ô 2ó0	r   