o
    Z#ûa~	  ã                   @   s‚   d dl Z ddlmZmZ e  d¡Zdd„ ZG dd„ dejƒZd	d
„ Ze 	ej
ee¡ e ej
e¡ e ej
d¡ e ej
d¡ dS )é    Né   )ÚImageÚ	ImageFilesì   \s*#define[ \t]+.*_width[ \t]+(?P<width>[0-9]+)[\r\n]+#define[ 	]+.*_height[ 	]+(?P<height>[0-9]+)[
]+(?P<hotspot>#define[ 	]+[^_]*_x_hot[ 	]+(?P<xhot>[0-9]+)[
]+#define[ 	]+[^_]*_y_hot[ 	]+(?P<yhot>[0-9]+)[
]+)?[\000-\377]*_bits\[\]c                 C   s   |   ¡ d d… dkS )Né   s   #define)Úlstrip)Úprefix© r   ú4/usr/lib/python3/dist-packages/PIL/XbmImagePlugin.pyÚ_accept&   s   r
   c                   @   s   e Zd ZdZdZdd„ ZdS )ÚXbmImageFileÚXBMz
X11 Bitmapc                 C   s   t  | j d¡¡}|rFt| d¡ƒ}t| d¡ƒ}| d¡r/t| d¡ƒt| d¡ƒf| jd< d| _||f| _dd	| j	 | 
¡ d fg| _d S d S )
Ni   ÚwidthÚheightÚhotspotÚxhotÚyhotÚ1Úxbm©r   r   )Úxbm_headÚmatchÚfpÚreadÚintÚgroupÚinfoÚmodeÚ_sizeÚsizeÚendÚtile)ÚselfÚmÚxsizeÚysizer   r   r	   Ú_open3   s   
"
õzXbmImageFile._openN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionr%   r   r   r   r	   r   .   s    r   c                 C   sÖ   | j dkrtd| j › dƒ‚| d| jd › d d¡¡ | d| jd	 › d d¡¡ | j d
¡}|rP| d|d › d d¡¡ | d|d	 › d d¡¡ | d¡ t | |dd| j dd fg¡ | d¡ d S )Nr   zcannot write mode z as XBMz#define im_width r   Ú
Úasciiz#define im_height r   r   z#define im_x_hot z#define im_y_hot s   static char im_bits[] = {
r   r   s   };
)	r   ÚOSErrorÚwriter   ÚencodeÚencoderinfoÚgetr   Ú_save)Úimr   Úfilenamer   r   r   r	   r2   E   s   

r2   z.xbmz	image/xbm)ÚreÚ r   r   Úcompiler   r
   r   r2   Úregister_openr)   Úregister_saveÚregister_extensionÚregister_mimer   r   r   r	   Ú<module>   s   ÿ