+
     i  c                  s   ^ RI Ht ^ RIt^ RIt^ RIHt ^RIHtHt ^RI	H
t ^RI	Ht R R lt ! R	 R
]P                  4      t ! R R]P                   4      t]P$                  ! R]4       R R lt]P(                  ! ]P*                  ]]4       ]P,                  ! ]P*                  ]4       ]P.                  ! ]P*                  R4       R# )    )annotationsN)IO)Image	ImageFile)i16le)o16lec                    V ^8  d   QhRRRR/# )   prefixZbytesreturnZbool format   "9/usr/lib64/python3.14/site-packages/PIL/MspImagePlugin.py__annotate__r   '   s     1 1E 1d 1    c                s$    V P                  R4      # )   DanM)r   s   LinS)
startswith)r	   s   &r   _acceptr   '   s    /00r   c                  s*    ] tR t^0tRtRtR R ltRtR# )MspImageFileMSPzWindows Paintc               s    V ^8  d   QhRR/# )r   r
   Noner   r   r   r   r   ZMspImageFile.__annotate__4   s     I It Ir   c                	sH   V P                   f   Q hV P                   P                  ^ 4      p\        V4      '       g   Rp\        V4      h^ p\	        ^ ^ ^4       F  pV\        W4      ,          pK  	  V^ 8w  d   Rp\        V4      hRV n        \        V^4      \        V^4      3V n        VP                  R4      '       d3   \        P                  ! RRV P                  ,           ^ R4      .V n        R # \        P                  ! RRV P                  ,           ^ 4      .V n        R # )Nznot an MSP filezbad MSP checksum1r   rawr   r    r    )fpreadr   ZSyntaxErrorZrangei16_mode_sizer   r   _Tilesizetile)selfZsmsgchecksumZis   &    r   _openZMspImageFile._open4   s    ww"""GGLLqzz#Cc"" q"aA#a)+H !q=$Cc""
AYAq	)
<<  "0BBLMDI"0BBGHDIr   )r   r   r"   N)__name__
__module____qualname____firstlineno__r   Zformat_descriptionr&   __static_attributes__r   r   r   r   r   0   s    F(I Ir   r   c                  s&    ] tR t^NtRtR R ltRtR# )
MspDecoderTc               r   )r   bufferz$bytes | Image.SupportsArrayInterfacer
   ztuple[int, int]r   r   r   r   r   ZMspDecoder.__annotate__s   s     * *A *o *r   c                	s   V P                   f   Q h\        P                  ! 4       p\        R	V P                  P
                  ^,           ^,          ,          4      p V P                   P                  ^ 4       \        P                  ! RV P                  P                   R2V P                   P                  V P                  P                  ^,          4      4      p\        T4       F  w  rx T^ 8X  d   TP                  T4       K   T P                   P                  T4      p	\        T	4      T8w  d   RT RT 2p\        T4      h^ p
Y8  dy   Y,          pT
^,          p
T^ 8X  d<   \        P                  ! RY4      w  rTP                  Y,          4       T
^,          p
KY  TpTP                  YY,            4       Y,          p
K~  K  	  T P!                  TP#                  4       R4       R
#   \        P                   d   pRp\        T4      ThR p?ii ; i  \        P                   d   pRT 2p\        T4      ThR p?ii ; i)NZ<ZHzTruncated MSP file in row mapzTruncated MSP file, expected z bytes on row ZBczCorrupted MSP file in row r   )i   )ir    )ZfdioZBytesIOZ	bytearrayZstateZxsizeZseekstructZunpack_fromZysizer   ZerrorOSErrorZ	enumeratewriteZlenZ
set_as_rawZgetvalue)r#   r-   ZimgZ
blank_lineZrowmapZer$   ZxZrowlenZrowZidxZruntypeZruncountZrunvals   &&            r   decodeZMspDecoder.decodes   s   ww"""jjlw4::+;+;a+?A*EFG
	&GGLL''DJJ$$%Q'djj6F6F6J)KF #6*IA*Q;IIj)ggll6*s8v%9&PQsSC!#,&l!hG1HC!|-3-?-?c-O*		&"34q#*		#CN";< # +4 	,A || 	&1C#,A%	&4 << *21#6cl)*s8   A>G( *HB>H(H=HHH>(H99H>r   N)r'   r(   r)   r*   Z	_pulls_fdr2   r+   r   r   r   r,   r,   N   s    F I* *r   r,   r   c               s(    V ^8  d   QhRRRRRRRR/# )	r   imzImage.Imager   z	IO[bytes]filenamezstr | bytesr
   r   r   r   r   r   r   r      s.     Q Qk Qy QK QD Qr   c           
     s    V P                   R 8w  d   RV P                    R2p\        V4      h^ .^,          p\        R4      \        R4      uV^ &   V^&   V P                  w  V^&   V^&   ^^uV^&   V^&   ^^uV^&   V^&   V P                  w  V^&   V^	&   ^ pV F  pWV,          pK  	  WT^&   V F  pVP	                  \        V4      4       K  	  \        P                  ! W\        P                  ! RRV P                  ,           ^ R 4      .4       R# )r   zcannot write mode z as MSPs   Das   nMr   Nr   )	Zmoder0   r   r!   r1   o16r   _saver    )r3   r   r4   r$   Zheaderr%   Zhs   &&&    r   r6   r6      s
   	ww#~"277)73cl S2XFu:s5zF1Ivay77F1IvayaF1IvayaF1Ivay77F1IvayH< 2J 
Q  OOBY__UFRWW4Db#NOPr   z.msp)Z
__future__r   r.   r/   Ztypingr   Z r   r   Z_binaryr   r   r   r5   r   r   Z	PyDecoderr,   Zregister_decoderr6   Zregister_openr   Zregister_saveZregister_extensionr   r   r   <module>r7      s   2 # 	    ! !1I9&& I<O$$ Od   uj )Q<   L''w ?   L'' /   ,,f 5r   