HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/share/inkscape/extensions/render_alphabetsoup.pyo
�
��Yc@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZejZejZejZejZd�Zd�Zd�Zd�Zd�Zd�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d�Z'de	j(fd��YZ)e*dkr�e)�Z+e+j,�ndS(s)
Copyright (C) 2001-2002 Matt Chisholm matt@theory.org
Copyright (C) 2008 Joel Holdsworth joel@airwebreathe.org.uk
    for AP

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
i����NcCs�tjjtjjtj�tjjt���}tjj	|d|�}|j
�}|jd�}|dkrxdS|j
d�}t|j
d��}t|j
d��}tj|�||fS(Nt/s {http://www.w3.org/2000/svg}pathitdtwidththeight(Nii(tostpathtnormpathtjointgetcwdtdirnamet__file__tinkextetreetparsetgetroottfindtNonetgettfloatt
simplepatht	parsePath(tsvgPathtextensionDirttreetroottpathElementRRR((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytloadPath,s	*cCsH|dkr|dkrdS|dkr,|S|dkr<|S||SdS(N(R(tpathAtpathB((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytcombinePaths<scCs�g}|j�}|jd|ddg�x�|r�|j�}|d}|dkr�|j|d|ddd!|dd |ddg�n|j|d|ddg�|}q0W|S(NtMii����itCii(tpoptappend(tctnctlasttthistcmd((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytreverseComponentFs	
=
cCsug}g}xb|D]Z}|\}}|dkr`|jt|��|jdgg�g}q|j|�qW|S(NtZ(textendR'R!(tsptrpt	componenttpR&tparams((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytreversePathTs
	cCslxe|D]]\}}tj|}xAt|d�D]/}|d|dkr1|||||<q1q1WqWdS(Niitx(Rtpathdefstrange(R*RR&R.tdefsti((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyt
flipLeftRightas

cCslxe|D]]\}}tj|}xAt|d�D]/}|d|dkr1|||||<q1q1WqWdS(Niity(RR1R2(R*RR&R.R3R4((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyt
flipTopBottomhs

cCsg||d||}|dkr4tj|�}ntj|�}||d|||d|fS(Ng@ii(tmathtsqrttcmath(tatbR"tdettsdet((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytsolveQuadraticos
cCs*|dkr|ddS|ddSdS(Nig�?g@((R0((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytcbrtwscCs
|dkr�d|t|�|t|�|t|�f\}}}}|d}|d|d|||d|d}}td||dd�\}}t|�td�krtj|jd|jd�}	tj|j|j�}
dt|	�tj	|
d�}nt|�t|�}td|||d�\}}
t|�td�krn||gS|||||
|gS|dkr�||d||}|dkr|tj|�d||tj|�d|gSn|dkr||gSgS(	Niig@iiyg@g@(
RR?ttypeR8R9trealtimagtatan2R@tcos(R;R<R"RttR-tqtutvtrtwty1ty2ty3R=((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyt
findRealRoots}s*<
-!!$ 9c	Cs-d}d}d}x|D]\}}d}|dkrH|}|}no|dkr�|r�t|d|d�t|d|d�t|d|d�t|d|d�f}n|}|}n�|dkr�|r�t|d|d�t|d|d�t|d|d�t|d|d�f}|\}}	|\}
}}}
}}|d|
d||d}d|d	|
d|d
}d|d|
}td|||�}x�|D]�}|dkr�|dkr�|d|
d|||dd|d	|
d||d
d|d|
||}t|d|�t|d|�|d
|df}q�q�W|	d|d|
|d}d|	d	|d|
d
}d|	d|}td|||�}x�|D]�}|dkr�|dkr�|	d|d|
||dd|	d	|d|
|d
d|	d|||	}|d|dt|d
|�t|d|�f}q�q�Wn|d}|d
d!}n
|d
kr2|rt|d|d�t|d|d�t|d|d�t|d|d�f}n|d}|d
d!}n�|dkr�|r�t|d|d�t|d|d�t|d|d�t|d|d�f}n|d}|d
d!}n|r|rt|d|d�t|d|d�t|d
|d
�t|d|d�f}q%|}qqW|S(NRtLiiRiiiiii����i����tQtA(RtmintmaxRO(R*tboxR$tlostctrlR&R.t
segmentBoxtlastctrltbx0tby0tbx1tby1tbx2tby2tbx3tby3R;R<R"ttsRFR0R6((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytgetPathBoundingBox�sj
Y
V

T;
T>
Y
Y
Y
cCs�|}|ddkr?t||�t|�}|jd�n|}|ddkr~t||�t|�}|jd�n|S(Nit-t|(R7R/R R5(timageRRtstackttbimagetlrimage((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytmxfm�s

cCsCx<tdt|��D]%}||||dkr7qdSqWdS(Nii(R2tlen(truletnodesR4((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytcomparerule�s
cCsZt|d}t|�}x9|D]1}t|�}||kr!t||�r!|Sq!WdS(Ni(tsyntaxRjRm(tstateRltrulesettnodelenRktrulelen((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytfindrule�s
cCs�|g}tt|�dkr#|S|jd�tjdtt|d�d�}x�t|d|D]w}|dkrgt|d�}x|D]}|j|�q�W|dr�|jd�n|dr�|jd�q�qgqgW|jd�|SdS(	Nit[iiRciRdt](RjRnR!trandomtrandinttgenerate(RoRfRtsymboltsubstacktelt((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyRxs 	
$



cCs�|jd�}ttt|d�\}}}|ddkr|tt|�dkrc|||fSt|�}t|�Sn?|jd�g}g}xx|ddkr|d}t|�\}	}}|	rt|	|||�}
|j|
||g�|j|�q�dSq�Wt
||�}xtdt|��D]h}||\}
}}|
r5||dt}||dt}t
j|
||�t||
�}q5q5W|jd�|||fSdS(NiRtiRui(Nii(R RtfontRnRjRxtdrawRiR!RRsR2tunitsRt
translatePathR(RfRoReRRRztimagesRltnewstatetnewimagettfimageRkR4tcurrimgtdxtdy((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyR}s8!




cCsyt|�\}}}t|�}tj||dd�tj||t|t�||d|d|d|dfS(Niiii(R}RbRRt	scalePathR~(RftzoomReRRtbbox((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytdraw_crop_scale>s
c	Cs�g}x�tdt|��D]�}||}tj|�r�|dkry|||dkry|j|t|�d�q�tjt|tjdtt|�d�d�}|jt	||��q|dkr�|jd�qt
jjd|�qW|S(Niit.t sbad character "%s"
(
R2Rjtalphabetthas_keyR!tstringtsplitRvRwR�tsyststderrtwrite(ttokensR�t	imagelistR4tcharRf((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytrandomize_input_stringEs
 4cCs�g}x�|D]�}|dkr/|jd�q
tjd|�rPtd�}nAtjd|�rqtd�}n tjjd|�td�}|jt||��q
W|S(NR�s[a-z]tlcs[A-Z]tUCsbad character"%s"
tstart(R!tretmatchRxR�R�R�R�(R�R�R�R�Rf((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytgenerate_random_stringXs
c	Cs�g}g}d}x�tdd|�D]�}d||d|}d}d}	x.|D]&\}
}d}|
dkr�|}
|}qU|
dkr�||
dkr�||dks�||dkr�||
dkr�|d|
dkr�|d}n[|d|
d|d|
d}|
d||
d}|dkrF|||}nd}|r�|dksj||krs|}n|	dks�||	kr�|}	q�q�n|}
|}qU|
d	kr/|
r|
\}}|\}}}}}}||}d
|d|}d|d|d|}|d|d||}t||||�}x�|D]�}|dkrP|dkrP|d|d|||dd|d|d||d
d
|d|||}|dks�||kr�|}n|	dks||	kr|}	qqPqPWn|d}
|d
d!}qU|
dkrU|d}
|d
d!}qU|
dkrU|d}
|d
d!}qUqUW|dkr�|	dkr�|j|�|j||	�q&|j|�|j|�q&W||fS(Niiig�?g�?RRPiRi����iiii����iRQRR(R2RROR!(ReRR�tlefttrightt
resolutionR4R6txmintxmaxR&R.RWR$RXR0R;R<RYRZR[R\R]R^R_R`RR"RaRF((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytoptikernisv
@
"	



T	




cCs�g}|}xd|D]\}|dkr9||tj}q|\}}}|||}|jt|||��qWd}|}	x*tdt|��D]}
x2||
dkr�|	|tj}	|j|
�q�W||
\}}}|
dkr�d}ngg}xRtdt||
d��D]3}
|j||
d|
||
dd|
�qWt|�}|	|}	t	j
|�}tj||	d�t
||�}|	||}	q�W|S(NR�ii(trender_alphabetsoup_configtspaceR!R�RR2RjR RStcopytdeepcopyRRR(R�R�tkernlisttlengthtentryReRRt	workspacetpositionR4tkerntkerncomparetjt	thisimage((s5/usr/share/inkscape/extensions/render_alphabetsoup.pytlayoutstring�s6
	$1
cCs�g}d}x�|t|�kr�||}|d7}|dkr�d}xT|t|�kr�||}|dkrvPn|d7}|dkr�Pn||7}qJW|r�|j|�q�q|j|�qW|S(s_Tokenize the string, looking for LaTeX style, multi-character tokens in the string, like \yogh.iis\tR�(RjR!(ttextR�R4R"RF((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyttokenize�s&



tAlphabetSoupcBseZd�Zd�ZRS(c
Cs�tjj|�|jjddddddddd	d
dd�|jjd
dddddddd	ddd�|jjddddddddd	tdd�dS(Ns-ts--texttactiontstoreRAR�tdestR�tdefaulttInkscapethelpsThe text for alphabet soups-zs--zoomRR�s8.0sThe zoom on the output graphicss-rs--randomizetinkboolt	randomizes!Generate random (unreadable) text(RtEffectt__init__tOptionParsert
add_optiontFalse(tself((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyR��scCsR|jt|jj�d�}|jjrCt|jj|�}n!t|jj�}t||�}t	||�}|rNidd6dd6}t
jjt
j
dd��}|jdtj|��|jd	tj|��|jj|�|jj�dk	rNtj|jd
ddgdd
dgg�}tjtj|�|�qNndS(Ntpxtnonetstrokes#000000tfillRtsvgtstyleRg�?g(tunittouutstrtoptionsR�R�R�R�R�R�R�RRtElementtaddNStsettsimplestyletformatStyleRt
formatPatht
current_layerR!t	getparentRtsimpletransformtcomposeParentstapplyTransformToNodetinvertTransform(R�R�R�R�Retstnewtmat((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyteffects-(t__name__t
__module__R�R�(((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyR��s	t__main__(-t__doc__R�R8R:R�RvRR�R�RR�R�tbezmiscRR�RnR�R~R|RRR'R/R5R7R?R@RORbRiRmRsRxR}R�R�R�R�R�R�R�R�R�tetaffect(((s5/usr/share/inkscape/extensions/render_alphabetsoup.pyt<module>sV						
		
						L						*				O	$	*