o
    üÞhÕ  ã                   @  sL   d Z ddlmZ ddlmZ ddlmZmZ dd
d„ZG dd„ dejƒZ	dS )z*
Parse X Bitmap Distribution Format (BDF)
é    )Úannotations)ÚBinaryIOé   )ÚFontFileÚImageÚfr   Úreturnúqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | Nonec                 C  sn  	 |   ¡ }|s	d S | d¡rnq|dd …  ¡  d¡}i }	 |   ¡ }|r)| d¡r*n| d¡}||d d…  d¡||d |…  d¡< qtƒ }	 |   ¡ }|rS| d	¡rTn	||d d… 7 }qHd
d„ |d  ¡ D ƒ\}}}}	dd„ |d  ¡ D ƒ\}
}|
|f||	 | || |	 fdd||ff}zt d||f|dd¡}W n t	y¬   t 
d||f¡}Y nw |t|d ƒ||fS )NTs	   STARTCHARé	   Úasciis   BITMAPó    r   éÿÿÿÿs   ENDCHARc                 s  ó   � | ]}t |ƒV  qd S ©N©Úint©Ú.0Úp© r   úO/var/www/html/premium_crap/venv/lib/python3.10/site-packages/PIL/BdfFontFile.pyÚ	<genexpr>G   ó   € zbdf_char.<locals>.<genexpr>ÚBBXc                 s  r   r   r   r   r   r   r   r   K   r   ÚDWIDTHr   Ú1ÚhexÚENCODING)ÚreadlineÚ
startswithÚstripÚdecodeÚfindÚ	bytearrayÚsplitr   Ú	frombytesÚ
ValueErrorÚnewr   )r   ÚsÚidÚpropsÚiÚbitmapÚwidthÚheightÚx_dispÚy_dispÚdwxÚdwyÚbboxÚimr   r   r   Úbdf_char   sF   
û
(ûü

ýþr5   c                      s"   e Zd ZdZd‡ fdd„Z‡  ZS )	ÚBdfFontFilez(Font file plugin for the X11 BDF format.Úfpr   r   ÚNonec                   s  t ƒ  ¡  | ¡ }| d¡sd}t|ƒ‚i }g }	 | ¡ }|r$| d¡r%n7| d¡}||d d…  d¡||d |…  d¡< |d |… d	v r[| d
¡dk r[| ||d d…  d¡¡ q	 t|ƒ}|sed S |\}}	\}
}}}d|	  kr{t	| j
ƒk r†n n	|
|||f| j
|	< q])Ns   STARTFONT 2.1znot a valid BDF fileTs   ENDPROPERTIESr   r   r   r   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )ÚsuperÚ__init__r   r   ÚSyntaxErrorr"   r!   Úappendr5   ÚlenÚglyph)Úselfr7   r(   Úmsgr*   Úcommentsr+   Úcr)   ÚchÚxyÚdstÚsrcr4   ©Ú	__class__r   r   r:   _   s2   


(ø
úzBdfFontFile.__init__)r7   r   r   r8   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   Ú__classcell__r   r   rG   r   r6   \   s    r6   N)r   r   r   r	   )
rL   Ú
__future__r   Útypingr   Ú r   r   r5   r6   r   r   r   r   Ú<module>   s   
>