
    _i~&                       S SK Jr  S SKJr  SSKJrJr   SSKJr  SrSr
\
(       a  S SKJrJr  S	S
S
S.rSS jr " S S\R                  5      rSS jrSS jrSS jr\R(                  " \R*                  \\5        \(       au  \R,                  " \R*                  \5        \R.                  " \R*                  \5        \R0                  " \R*                  S5        \R2                  " \R*                  S5        gg! \	 a    Sr Nf = f)    )annotations)BytesIO   )Image	ImageFile)_webpTF)IOAnyRGBRGBA)s   VP8 s   VP8Xs   VP8Lc                    U R                  S5      nU SS S:H  nU SS [        ;   nU(       a  U(       a  U(       a  [        (       d   ggg)	Ns   RIFF      s   WEBP   zEimage file could not be identified because WEBP support not installedTF)
startswith_VP8_MODES_BY_IDENTIFIER	SUPPORTED)prefixis_riff_file_formatis_webp_fileis_valid_vp8_modes       O/var/www/html/land-ocr/venv/lib/python3.13/site-packages/PIL/WebPImagePlugin.py_acceptr      sR     ++G4!B<7*Lr")AA|0AyW     c                     ^  \ rS rSrSrSrSrSrSS jrSS jr	SS jr
SSS jjrSS	 jrSS
 jrSU 4S jjrSS jrSS jrSrU =r$ )WebPImageFile'   WEBPz
WebP imager   c                x   U R                   c   e[        R                  " U R                   R                  5       5      U l        U R                  R                  5       u  U l        U R                  S'   ol        U l	        US-	  S-  US-	  S-  US-  US-	  S-  4U R                  S'   U R                  S:  U l
        U R                  S:X  a  S	OU R                  U l        S
SSS.R                  5        H7  u  p#U R                  R                  U5      =n(       d  M)  X@R                  U'   M9     U R                  SS9  g )Nloopr      r      
backgroundr   RGBXr   ICCPEXIFzXMP )icc_profileexifxmpF)reset)fpr   WebPAnimDecoderread_decoderget_info_sizeinfon_framesrawmodeis_animated_modeitems	get_chunk_reset)selfbgcolorkey
chunk_namevalues        r   _openWebPImageFile._open-   s%    ww"""--dgglln= MM""$ 	L
DIIf%wt| ]d"\T!dN]d"	#
		,  ==1,"llf4U$,,
 " 
 %'	 OC
 //
;;u;!&		#  	% r   c                `    SU R                   ;  a  g U R                  5       R                  5       $ )Nr(   )r1   getexif_get_merged_dictr9   s    r   _getexifWebPImageFile._getexifL   s&    "||~..00r   c                >    U R                  U5      (       d  g Xl        g N)_seek_check_WebPImageFile__logical_framer9   frames     r   seekWebPImageFile.seekQ   s    &&  %r   c                p    U(       a  U R                   R                  5         SU l        SU l        SU l        g )Nr   )r.   r*   _WebPImageFile__physical_frame_WebPImageFile__loaded_WebPImageFile__timestamp)r9   r*   s     r   r8   WebPImageFile._resetX   s,    MM! !r   c                   U R                   R                  5       nU =R                  S-  sl        Uc.  U R                  5         U R	                  S5        Sn[        U5      eUu  p4X@R                  -
  nX@l        XE-  nX4U4$ )Nr   r   z(failed to decode next frame in WebP file)r.   get_nextrP   r8   rL   EOFErrorrR   )r9   retmsgdata	timestampdurations         r   	_get_nextWebPImageFile._get_next_   s    mm$$&" ;KKMIIaL<C3- ///$ 		((r   c                    U R                   U:X  a  g XR                   :  a  U R                  5         U R                   U:  a#  U R                  5         U R                   U:  a  M"  g g rG   )rP   r8   r\   rJ   s     r   _seekWebPImageFile._seekt   sP      E)(((KKM##e+NN ##e+r   c                
  > U R                   U R                  :w  a  U R                  U R                  5        U R                  5       u  oR                  S'   U R                  S'   U R                  U l         U R
                  (       a+  U R                  (       a  U R
                  R                  5         [        U5      U l        [        R                  " SSU R                  -   SU R                  5      /U l        [        TU ]=  5       $ )NrZ   r[   raw)r   r   r   )rQ   rI   r_   r\   r1   r+   _exclusive_fpcloser   r   _Tilesizer3   tilesuperload)r9   rY   	__class__s     r   ri   WebPImageFile.load|   s    ==D000JJt++, CG..BR?D))K($))J*? 00DM ww4--dmDG"0BAt||TUDIw|~r   c                    g rG    )r9   poss     r   	load_seekWebPImageFile.load_seek   s    r   c                    U R                   $ rG   )rI   rC   s    r   tellWebPImageFile.tell   s    ###r   )__loaded__logical_frame__physical_frame__timestampr.   r5   r0   r+   r4   r2   r3   rg   )returnNone)rx   zdict[int, Any] | None)rK   intrx   ry   )T)r*   boolrx   ry   )rx   ztuple[bytes, int, int])rx   zImage.core.PixelAccess | None)rn   rz   rx   ry   )rx   rz   )__name__
__module____qualname____firstlineno__formatformat_descriptionrQ   rI   r>   rD   rL   r8   r\   r_   ri   ro   rr   __static_attributes____classcell__)rj   s   @r   r   r   '   sJ    F%HO!>1
%)* $ $r   r   c                n    U R                   S;  a$  U R                  U R                  (       a  SOS5      n U $ )N)r$   r   r   r   r   )modeconverthas_transparency_data)ims    r   _convert_framer      s,    	ww--ZZ"":":FIr   c           
     	   U R                   R                  5       n[        UR                  S/ 5      5      nSnU /U-    H  nU[	        USS5      -  nM     US:X  a  [        XU5        g SnSU;   a  US   nOfSU R                  ;   aV  U R                  S   n[        U[        5      (       a2  U R                  5       nU(       a  XS-  US-   S-   u  pnXUS4nOXwUS4nU R                   R                  S	U R                  R                  S	S5      5      nU R                   R                  S
S5      nU R                   R                  SS5      nU R                   R                  SS 5      nU R                   R                  SS 5      nU R                   R                  SS5      nSnU R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  S5      =(       d    SnU R                   R                  SS5      n[        U[        R                  5      (       a  UR                  5       nU R                   R                  SS5      nU(       a  SnUc  U(       a  SOSnUc  U(       a  SOSn[        U[        [        45      (       a&  [        U5      S:w  d  [        S U 5       5      (       d  SU 3n[!        U5      eUu  nnnnUS -  US!-  -  US"-  -  US-  -  n["        R$                  " U R&                  UUUUUUU5      nSn Sn!U R)                  5       n" U /U-    H  n[	        USS5      n#[+        U#5       Hz  n$UR-                  U$5        [/        U5      n%UR1                  U%R3                  5       [5        U!5      UUUU5        [        U[        [        45      (       a	  U!UU    -  n!OU!U-  n!U S-  n M|     M     U R-                  U"5        UR1                  S [5        U!5      UUUS5        UR7                  UUU5      n&U&c  S#n[!        U5      eUR9                  U&5        g ! U R-                  U"5        f = f)$Nappend_imagesr   r2   r   )r   r   r   r   r#      r!   r[   r    minimize_sizeFkminkmaxallow_mixedlosslessqualityP   alpha_qualityd   methodr'    r(   r)   	            c              3  L   #    U  H  nS Us=:*  =(       a    S:  Os  v   M     g7f)r      Nrm   ).0vs     r   	<genexpr>_save_all.<locals>.<genexpr>   s     4A1<<C<<s   "$z:Background color is not an RGBA tuple clamped to (0-255): r"   r   r   1cannot write file as WebP (encoder returned None))encoderinfocopylistgetgetattr_saver1   
isinstancerz   
getpaletter   ExiftobytestuplelenallOSErrorr   WebPAnimEncoderrf   rr   rangerL   r   addgetimroundassemblewrite)'r   r+   filenamer   r   totalimsr#   palettergbr[   r    r   r   r   r   verboser   r   r   r   r'   r(   r)   rX   bg_rbg_gbg_bbg_aenc	frame_idxrZ   cur_idxnfridxrK   rY   s'                                          r   	_save_allr      s3   ..%%'K"=>M Etm#j!,, $zbh(4J{" .
		 WW\*
j#&& mmoG!q.JNa3GHaAs^
(j#F
~~!!*bggkk*a.HIH>>fa(DNN&&>M>>fd+D>>fd+D..$$]E:KG~~!!*e4Hnn  B/GNN&&<M^^!,F..$$]39rK>>fb)D$

##||~
..

UB
'C |q!|r1 zD%=11z?a4444J:,Wcl (D$d"*,	:daiHJ 


	C IIggiG4-'C#z1-CSz&s+ KKM)$! hu66)!44I)IQ	) "	 (6 	 GGD%	"Hg}aH <<T3/D|AclHHTN 	s   +B#Q3 3Rc                L   U R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  S5      =(       d    SnU R                   R                  S	S
5      n[        U[        R                  5      (       a  UR                  5       nUR                  S5      (       a  USS  nU R                   R                  SS5      nU R                   R                  SS5      n	U R                   R                  S5      (       a  SOSn
[        U 5      n [        R                  " U R                  5       U[        U5      [        U5      UU	U
UU5	      nUc  Sn[        U5      eUR                  U5        g )Nr   Fr   r   r   r   r'   r   r(   r   s   Exif     r)   r   r   exactr   r   r   )r   r   r   r   r   r   r   r   r   
WebPEncoder   floatr   r   )r   r+   r   r   r   r   r'   r(   r)   r   r   rY   rX   s                r   r   r     sU   ~~!!*e4Hnn  B/GNN&&<M..$$]39rK>>fc*D$

##||~''ABx
..

UB
'C^^!,F##G,,A!E		B

gm
D |AclHHTNr   z.webpz
image/webpN)r   bytesrx   z
bool | str)r   Image.Imagerx   r   )r   r   r+   z	IO[bytes]r   zstr | bytesrx   ry   )
__future__r   ior   r   r   r   r   r   ImportErrorTYPE_CHECKINGtypingr	   r
   r   r   r   r   r   r   register_openr   register_saveregister_save_allregister_extensionregister_mimerm   r   r   <module>r      s    "  I   i$I'' i$XyxD   M((- A	,,e4	M00)<	]117;	,,l;	 ]	  Is   C9 9DD