a :jg @spdZddlmZddlmZddlmZmZdddd d d d Zd dddZ dddddZ GdddejZ dS)z* Parse X Bitmap Distribution Format (BDF) ) annotations)BinaryIO)FontFileImageZRomanZItalicZObliquezReverse ItaliczReverse ObliqueOther)RIOZRIZROZOTZ ProportionalZ MonospacedZCell)PMCrzqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | None)freturncCs||}|sdS|dddkrq$q|ddd}i}|}|r|dddkr\q|d}||ddd||d|d<q>t}|}|r|dd d krq||dd7}qd d |d D\}}}} dd |dD\} } | | f|| |||| fdd||ff} ztd||f|dd} Wn$tyft d||f} Yn0|t |d| | fS)N s STARTCHARasciisBITMAP rsENDCHARcss|]}t|VqdSNint.0pr9/usr/local/lib/python3.9/site-packages/PIL/BdfFontFile.py Rzbdf_char..ZBBXcss|]}t|VqdSrrrrrrrVrZDWIDTHr1hexENCODING) readlinestripdecodefind bytearraysplitr frombytes ValueErrornewr)rsidpropsiZbitmapwidthheightZx_dispZy_dispZdwxZdwyZbboximrrrbdf_char)s8  * r3cs(eZdZdZdddfdd ZZS) BdfFontFilez(Font file plugin for the X11 BDF format.rNone)fprcst|}|dddkr.d}t|i}g}|}|r|dddkrTq|d}||ddd||d|d<|d|d vr6|d d kr6|||dddq6t|}|sҐq|\}} \} } } } d | krt|j krnq| | | | f|j | <qdS) N s STARTFONT 2.1znot a valid BDF files ENDPROPERTIESrrrr)sCOMMENTs COPYRIGHTsLogicalFontDescriptionr) super__init__r# SyntaxErrorr&r%appendr3lenZglyph)selfr6r,msgr.commentsr/cr-chZxydstsrcr2 __class__rrr9js*  ( zBdfFontFile.__init__)__name__ __module__ __qualname____doc__r9 __classcell__rrrDrr4gsr4N) rI __future__rtypingrrrZ bdf_slantZ bdf_spacingr3r4rrrrs   >