o
    sÇha  ã                   @  s|   d dl mZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 dZddd„ZG dd„ de
ƒZe ejee¡ e ejd¡ dS )é    )Úannotationsé   )ÚImage)Úi32le)ÚDeferredError)ÚPcxImageFilei±hÞ:ÚprefixÚbytesÚreturnÚboolc                 C  s   t | ƒdkot| ƒtkS )Né   )ÚlenÚi32ÚMAGIC)r   © r   úf/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/PIL/DcxImagePlugin.pyÚ_accept!   s   r   c                   @  s6   e Zd ZdZdZdZddd„Zdd
d„Zddd„ZdS )ÚDcxImageFileÚDCXz	Intel DCXFr
   ÚNonec                 C  sŒ   | j  d¡}t|ƒsd}t|ƒ‚g | _tdƒD ]}t| j  d¡ƒ}|s% n| j |¡ q| j | _d| _	t
| jƒ| _| jdk| _|  d¡ d S )Nr   znot a DCX filei   éÿÿÿÿr   r   )ÚfpÚreadr   ÚSyntaxErrorÚ_offsetÚranger   ÚappendÚ_fpÚframer   Ún_framesÚis_animatedÚseek)ÚselfÚsÚmsgÚiÚoffsetr   r   r   Ú_open.   s   zDcxImageFile._openr   Úintc                 C  sP   |   |¡sd S t| jtƒr| jj‚|| _| j| _| j | j| ¡ t	 
| ¡ d S ©N)Ú_seek_checkÚ
isinstancer   r   Úexr   r   r!   r   r   r'   )r"   r   r   r   r   r!   C   s   
zDcxImageFile.seekc                 C  s   | j S r)   )r   )r"   r   r   r   ÚtellM   s   zDcxImageFile.tellN)r
   r   )r   r(   r
   r   )r
   r(   )	Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingr'   r!   r-   r   r   r   r   r   )   s    


r   z.dcxN)r   r	   r
   r   )Ú
__future__r   Ú r   Ú_binaryr   r   Ú_utilr   ÚPcxImagePluginr   r   r   r   Úregister_openr1   Úregister_extensionr   r   r   r   Ú<module>   s   
(