o
    Z#ûaa  ã                   @   sb   d dl mZ d dlmZ d dlmZ dZdd„ ZG dd„ deƒZ	e 
e	je	e¡ e e	jd	¡ d
S )é   )ÚImage)Úi32le)ÚPcxImageFilei±hÞ:c                 C   s   t | ƒdkot| ƒtkS )Né   )ÚlenÚi32ÚMAGIC)Úprefix© r
   ú4/usr/lib/python3/dist-packages/PIL/DcxImagePlugin.pyÚ_accept   s   r   c                   @   s8   e Zd ZdZdZdZdd„ Zdd„ Zdd	„ Zd
d„ Z	dS )ÚDcxImageFileÚDCXz	Intel DCXFc                 C   sˆ   | j  d¡}t|ƒstdƒ‚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   é    )ÚfpÚreadr   ÚSyntaxErrorÚ_offsetÚranger   ÚappendÚ_DcxImageFile__fpÚframer   Ún_framesÚis_animatedÚseek)ÚselfÚsÚiÚoffsetr
   r
   r   Ú_open-   s   zDcxImageFile._openc                 C   s<   |   |¡sd S || _| j| _| j | j| ¡ t | ¡ d S ©N)Ú_seek_checkr   r   r   r   r   r   r   )r   r   r
   r
   r   r   B   s   
zDcxImageFile.seekc                 C   s   | j S r    )r   ©r   r
   r
   r   ÚtellJ   s   zDcxImageFile.tellc                 C   sP   z#z| j | jkr| j  ¡  W n	 ty   Y nw W d | _ d S W d | _ d S d | _ w r    )r   r   ÚcloseÚAttributeErrorr"   r
   r
   r   Ú
_close__fpM   s   
€ÿ€
þzDcxImageFile._close__fpN)
Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingr   r   r#   r&   r
   r
   r
   r   r   '   s    r   z.dcxN)Ú r   Ú_binaryr   r   ÚPcxImagePluginr   r   r   r   Úregister_openr*   Úregister_extensionr
   r
   r
   r   Ú<module>   s   0