
    (ph2                    .   S SK Jr  S SKrSSKJrJr  SSKJr  SS jr	 " S S\R
                  5      r
 " S	 S
\R                  5      r\R                  " \
R                  \
\	5        \R                  " S\5        \R                   " \
R                  S5        g)    )annotationsN   )Image	ImageFile)i32bec                    U S S S:H  $ )N   s   qoif )prefixs    E/var/www/html/venv/lib/python3.13/site-packages/PIL/QoiImagePlugin.py_acceptr      s    "1:      c                  &    \ rS rSrSrSrSS jrSrg)QoiImageFile   QOIzQuite OK Imagec                  ^  [        T R                  R                  S5      5      (       d  Sn[        U5      e[	        U 4S j[        S5       5       5      T l        T R                  R                  S5      S   nUS:X  a  SOS	T l        T R                  R                  S[        R                  5        S
ST R                  -   T R                  R                  5       S 4/T l        g )Nr	   znot a QOI filec              3  l   >#    U  H)  n[        TR                  R                  S 5      5      v   M+     g7f)r	   N)i32fpread).0iselfs     r   	<genexpr>%QoiImageFile._open.<locals>.<genexpr>   s%     BA3tww||A//s   14   r   r      RGBRGBAqoi)r   r   )r   r   r   SyntaxErrortuplerange_size_modeseekosSEEK_CURtelltile)r   msgchannelss   `  r   _openQoiImageFile._open   s    tww||A''"Cc""BqBB
77<<?1%&!mU
Q$Vdjj0$'',,.$GH	r   )r&   r%   r+   N)returnNone)__name__
__module____qualname____firstlineno__formatformat_descriptionr.   __static_attributes__r
   r   r   r   r      s    F)Ir   r   c                  J    \ rS rSr% SrSrS\S'   0 rS\S'   SS jrSS	 jr	S
r
g)
QoiDecoder&   TNzbytes | bytearray | None_previous_pixelzdict[int, bytes | bytearray]_previously_seen_pixelsc                j    Xl         Uu  p#pEUS-  US-  -   US-  -   US-  -   S-  nXR                  U'   g )Nr            @   r<   r=   )r   valuergba
hash_values          r   _add_to_previous_pixels"QoiDecoder._add_to_previous_pixels+   sG    $
a!ea!ema!e+a"f4:
38$$Z0r   c           
       ^ ^ T R                   c   e0 T l        T R                  [        S5      5        [        5       n[        R
                  " T R                  5      nT R                  R                  T R                  R                  -  U-  n[        U5      U:  GaJ  T R                   R                  S5      S   nUS:X  aG  T R                  (       a6  [        T R                   R                  S5      5      T R                  SS  -   nGOUS:X  a  T R                   R                  S5      nGOUS-	  nUS:X  a,  US	-  nT R                  R                  U[        S
5      5      nGOSUS:X  a  T R                  (       an  [        T R                  S   US-  S-	  -   S-
  S-  T R                  S   US-  S-	  -   S-
  S-  T R                  S   US-  -   S-
  S-  T R                  S   45      nOUS:X  a  T R                  (       aw  T R                   R                  S5      S   n	US	-  S-
  mU	S-  S-	  S-
  n
U	S-  S-
  n[        [        UU 4S j[        U
SU45       5       5      5      nUT R                  SS  -  nO@US:X  a:  T R                  (       a)  US	-  S-   nT R                  nUS:X  a  US S nX&U-  -  nGM(  T R                  W5        US:X  a  US S nX&-  n[        U5      U:  a  GMJ  T R!                  U5        g)N)r   r   r      r   r      r   rM   r	      ?   )r   r   r   r   0   r                      c              3  X   >#    U  H  u  pTR                   U   T-   U-   S -  v   M!     g7f)rR   N)r<   )r   r   diff
diff_greenr   s      r   r   $QoiDecoder.decode.<locals>.<genexpr>[   s4      +N "11!4zADHCO+Ns   '*)r   )fdr=   rJ   	bytearrayr   getmodebandsmodestatexsizeysizelenr   r<   getr#   	enumerate
set_as_raw)r   bufferdatabandsdest_lengthbyterD   opop_indexsecond_bytediff_red	diff_blue
run_lengthrZ   s   `            @r   decodeQoiDecoder.decode2   s   ww"""')$$$Y~%>?{""499-jj&&)9)99EA$i+%77<<?1%Dz!d&:&:!$'',,q/2T5I5I!"5MM#QQY7#j0H 88<< )L"9E 1W!5!5%!11!4
9Jq8PQTUU!"!11!4
9Jq8PQTUU!"!11!4z8IJQNRUU 003	E 1W!5!5"&'',,q/!"4K"&"3r!9J!,z!9a ?1DH!,z!9Q >I% +4h95M+N E T11!"55E1W!5!5"&"3q!8J 00Ez %bq	J..D((/zbq	MDc $i+%d 	r   rC   )rD   zbytes | bytearrayr0   r1   )rh   bytesr0   ztuple[int, int])r2   r3   r4   r5   	_pulls_fdr<   __annotations__r=   rJ   rs   r8   r
   r   r   r:   r:   &   s(    I04O-4<>9>9<r   r:   r!   z.qoi)r   ru   r0   bool)
__future__r   r(    r   r   _binaryr   r   r   r   	PyDecoderr:   register_openr6   register_decoderregister_extensionr
   r   r   <module>r      s    # 	  !!I9&& I$H$$ HV   L''w ?   uj )   ,,f 5r   