HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/PIL/__pycache__/MspImagePlugin.cpython-38.pyc
U

g�
^��@s�ddlZddlZddlmZmZddlmZmZm	Z
dd�ZGdd�dej�ZGd	d
�d
ej
�Ze�de�dd
�Ze�ejee�e�eje�e�ejd�dS)�N�)�Image�	ImageFile)�i8�i16le�o16lecCs|dd�dkS)N���DanMsLinS�)�prefixrr�4/usr/lib/python3/dist-packages/PIL/MspImagePlugin.py�_accept$src@seZdZdZdZdd�ZdS)�MspImageFile�MSPz
Windows PaintcCs�|j�d�}|dd�dkr$td��d}tddd�D]}|t|||d��A}q4|dkrbtd��d|_t|dd��t|d	d��f|_|dd�d
kr�dd|jdd
fg|_ndd|jddfg|_dS)N� rr	znot an MSP filer�zbad MSP checksum�1�r
�raw�rr�rrrr)	�fp�read�SyntaxError�range�i16�modeZ_size�sizeZtile)�self�s�checksum�irrr
�_open2s"zMspImageFile._openN)�__name__�
__module__�__qualname__�formatZformat_descriptionr#rrrr
r-src@seZdZdZdd�ZdS)�
MspDecoderTc	Cszt��}td|jjdd�}z4|j�d�t�d|jj	|j�
|jj	d��}Wntjk
rrtd��YnXt
|�D]�\}}z�|dkr�|�|�Wq||j�
|�}t|�|kr�td	||f��d}||k�r<t||�}	|d
7}|	dk�rt�d||�\}
}|�||
�|d7}q�|	}
|�||||
��||
7}q�Wq|tjk
�rbtd|��Yq|Xq||�|��d
�dS)N)���rz<%dHrzTruncated MSP file in row maprz/Truncated MSP file, expected %d bytes on row %srZBczCorrupted MSP file in row %drr)�io�BytesIO�	bytearray�stateZxsize�fd�seek�structZunpack_fromZysizer�error�OSError�	enumerate�write�lenrZ
set_as_raw�getvalue)r�bufferZimgZ
blank_lineZrowmap�xZrowlen�row�idxZruntypeZruncountZrunvalrrr
�decodensH
�
�


zMspDecoder.decodeN)r$r%r&Z	_pulls_fdr=rrrr
r(Is#r(rcCs�|jdkrtd|j��dgd}td�td�|d<|d<|j\|d<|d	<d
\|d<|d<d
\|d
<|d<|j\|d<|d<d}|D]}||A}q�||d<|D]}|�t|��q�t�||dd|jddfg�dS)Nrzcannot write mode %s as MSPr�sDasnMrr�)rrr�rr*r+�	�rrrr)rr4rrr6�o16r�_save)Zimr�filename�headerr!�hrrr
rD�s


rDz.msp)r,r2�rrZ_binaryrrrrrCrrZ	PyDecoderr(Zregister_decoderrDZ
register_openr'Z
register_saveZregister_extensionrrrr
�<module>s	P