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: //lib/python3/dist-packages/PIL/__pycache__/EpsImagePlugin.cpython-38.pyc
U

tCfQ/�@s"ddlZddlZddlZddlZddlZddlZddlmZmZddl	m
Ze�d�Z
e�d�ZdZej�d�r�ddlZdD]Ze�e�dk	r|eZq�q|d	Zd
d�Zddd
�ZGdd�d�Zdd�ZGdd�dej�Zddd�Ze�ejee�e�eje�e�ejddg�e�ejd�dS)�N�)�Image�	ImageFile)�i32lez^%%([^:]*):[ \t]*(.*)[ \t]*$z^%[%!\w]([^:]*)[ \t]*$�win)Zgswin32cZgswin64c�gsFcCsHtrdStj�d�sDztjddgtjd�WdStk
rBYnXdS)NTrrz	--version)�stdoutF)�gs_windows_binary�sys�platform�
startswith�
subprocess�
check_callZDEVNULL�OSError�rr�4/usr/lib/python3/dist-packages/PIL/EpsImagePlugin.py�has_ghostscript3srcCs<|d\}}}}|\}}t|�p"d}|d||d|f}td|d|d|d�td|d|d|d�f}	t��\}
}t�|
�d}t|d�r�tj�|j	�r�|j	}
n�t��\}}t�|�|}
t
|d��h}|�dtj
�|��}|�d�|}|dk�r>|�t|d	��}|�s$�q>|t|�8}|�|��qW5QRXd
dd|d
|	ddddd|dd|d|dfd|
ddg}tdk	�r�t�s�td��t|d<zNd}tj�d��r�t��}|jtjO_tj||d�t�
|�}|��W5zt�|�|�rt�|�Wntk
�r.YnXX|j �!�S)z!Render an image using GhostscriptrrgR@��N�name�wbi�rz-qz-g%dx%dz-r%fx%fz-dBATCHz	-dNOPAUSEz-dSAFERz-sDEVICE=ppmrawz-sOutputFile=%sz-cz%d %d translatez-fZshowpagez%Unable to locate Ghostscript on pathsr)�startupinfo)"�int�float�tempfileZmkstemp�os�close�hasattr�path�existsr�open�seek�io�SEEK_END�tell�read�min�len�writer	r�unlinkr
rrr
ZSTARTUPINFOZdwFlagsZSTARTF_USESHOWWINDOWrr�load�im�copy)�tile�size�fp�scale�decoder�offset�data�lengthZbbox�resZout_fdZoutfileZinfile_tempZinfileZin_fd�fZfsizeZ
lengthfile�sZcommandrr+rrr�Ghostscript@sz�



�


r8c@s.eZdZdZdd�Zejfdd�Zdd�ZdS)	�PSFilezP
    Wrapper for bytesio object that treats either CR or LF as end of line.
    cCs||_d|_dS�N)r/�char)�selfr/rrr�__init__�szPSFile.__init__cCsd|_|j�||�dSr:)r;r/r!)r<r2�whencerrrr!�szPSFile.seekcCst|jpdg}d|_|j�d�}|dkrFt|�rF|�|�|j�d�}q|j�d�|_|jdkrdd|_d�|��d�S)N�rs
�latin-1)r;r/r%r'�append�join�decode)r<r7�crrr�readline�s

zPSFile.readlineN)	�__name__�
__module__�__qualname__�__doc__r=r"�SEEK_SETr!rErrrrr9�sr9cCs(|dd�dkp&t|�dko&t|�dkS)N��%!PS��P�
)r'�i32)�prefixrrr�_accept�srPc@sHeZdZdZdZdZddddd�Zd	d
�Zdd�Zddd�Z	dd�Z
dS)�EpsImageFilez.EPS File Parser for the Python Imaging LibraryZEPSzEncapsulated Postscript�LZLAB�RGB�CMYK)rrrrKcCs�|�|j�\}}t|j�}|�|�d}d|_d|_|��}|�d�}|�r�|�r�t|�dkrft	d��zt
�|�}Wntj
k
r�t	d��YnX|�r*|�dd�\}}	|	|j|<|dk�r�zRd	d
�|	�
�D�}|d|d|d|df|_d
d|j|||ffg|_Wntk
�r&YnXnzt�|�}|�r�|�d�}|dk�rR�q�|dd�dk�r�|dd�|j|dd�<n
d|j|<n|ddk�r�ntd��|��}|�d�}|rF|dd�dkrF�q�qF|dd�dk�r�t|�dk�r�t	d��|dd�dk�r�|dd��
dd�dd�\}
}}}
t|�dk�r@�q�z|jt|
�|_Wntk
�rpY�q�YnXt|
�t|�f|_dS|���d�}|�sАq��q�|�s�td��dS)NrS)rrz
��not an EPS filerrZBoundingBoxcSsg|]}tt|���qSr)rr)�.0�irrr�
<listcomp>�sz&EpsImageFile._open.<locals>.<listcomp>rr�eps�rrZEndComments�zPS-Adobe�	��%zbad EPS header�z%ImageData:�rKz!cannot determine EPS bounding box)�_find_offsetr/r9r!�mode�_sizerE�stripr'�SyntaxError�split�match�re�error�group�infor.r-�	Exception�fieldrr�mode_map�
ValueError)r<r4r2r/ZboxZs_rawr7�m�k�v�x�yZbiZmorrr�_open�sx




"�




$zEpsImageFile._opencCs||�d�}|dd�dkr6|�dtj�|��}d}n>t|dd��dkrlt|dd��}t|dd��}ntd��||fS)	N�rKrLrrMr\�rV)r%r!r"r#r$rNrf)r<r/r7r4r2rrrrb0s
zEpsImageFile._find_offsetrcCs>|js
dSt|j|j|j|�|_|jj|_|jj|_g|_dSr:)r-r8r.r/r+rcrd)r<r0rrrr*Fs

zEpsImageFile.loadcOsdSr:r)r<�args�kwargsrrr�	load_seekOszEpsImageFile.load_seekN)r)rFrGrHrI�formatZformat_descriptionrorvrbr*r{rrrrrQ�sd
	rQcCs�|��|jdkrd}n(|jdkr(d}n|jdkr8d}ntd��|}d}|tjkrdtj|d	d
�}d}�zT|r�|�d�|�d
�|�d|j	�|�d�|�d�|�d�|�d|j	�|�d|�|�d�|�d�|�d|j	d|d�|�d|j	�|�d|j	�|�d|j	d|j	d|j	df�|�d�|�|dd�t
|d��rr|��t�
||d d!|j	dd"fg�|�d#�|�d$�t
|d��r�|��W5|�r�|��Xd"S)%z*EPS Writer for the Python Imaging Library.rR)r\rZimagerS)r\rzfalse 3 colorimagerT)r\rKzfalse 4 colorimagezimage mode is not supportedFr@)�encodingTz%!PS-Adobe-3.0 EPSF-3.0
z%%Creator: PIL 0.1 EpsEncode
z%%%%BoundingBox: 0 0 %d %d
z%%Pages: 1
z%%EndComments
z%%Page: 1 1
z%%ImageData: %d %d z%d %d 0 1 1 "%s"
zgsave
z10 dict begin
z/buf %d string def
rrz%d %d scale
z%d %d 8
z[%d 0 0 -%d 0 %d]
z+{ currentfile buf readhexstring pop } bind
r�
�flushrZr[Nz
%%%%EndBinary
z
grestore end
)r*rcrpr
rr"�
TextIOWrapper�detachr(r.rrr�_save)r+r/�filenamerZ�operatorZbase_fpZ
wrapped_fprrrr�YsP










&


r�z.psz.epszapplication/postscript)r)r) r"rrir
r
rr^rrZ_binaryrrN�compilergrnr	rrZshutil�binaryZwhichrr8r9rPrQr�Z
register_openr|Z
register_saveZregister_extensionsZ
register_mimerrrr�<module>s8


]	
B