
    <`
2                     T   d ddddZ  G d de          Z G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de          Zg dZg dZ	g dZ
d Zd Zd Z G d de          Z G d de          Z G d de          Z G d de          Z G d d e          Z G d! d"e          Z G d# d$e          Z G d% d&e          Z G d' d(e          Z G d) d*e          Z G d+ d,e          Zd-Zd.d/lmZ  e eee                    Zd0S )1 readonlyexecuteonlynoaccess)             c                   &    e Zd ZdZdZdZd Zd ZdS )	ps_objectr   r   Nc                 L    || _         | j        j        dd          dz   | _        d S Nr	   typevalue	__class____name__r   )selfr   s     :lib/python3.11/site-packages/fontTools/misc/psOperators.py__init__zps_object.__init__
   s'    $*n%abb)F2$)))    c                 \    d| j         j        dd          dt          | j                  dS )N<r	    >)r   r   reprr   r   s    r   __repr__zps_object.__repr__   s3     n-abb1114
3C3C3C3C	DDr   )r   
__module____qualname__literalaccessr   r   r    r   r   r   r      sF        
	3 3 3E E E E Er   r   c                       e Zd ZdZd Zd ZdS )ps_operatorr   c                 Z    || _         || _        | j        j        dd          dz   | _        d S r   )namefunctionr   r   r   )r   r&   r'   s      r   r   zps_operator.__init__   s.    $)$-n%abb)F2$)))r   c                     d| j         z  S )Nz<operator %s>)r&   r   s    r   r   zps_operator.__repr__   s    	49	$$r   N)r   r   r   r    r   r   r"   r   r   r$   r$      s7        3 3 3% % % % %r   r$   c                       e Zd ZdZd Zd ZdS )ps_procedurer   c                     dS )Nz<procedure>r"   r   s    r   r   zps_procedure.__repr__   s    	r   c                     d}t          t          | j                            D ]B}|r!|dz   t          | j        |                   z   }%|t          | j        |                   z   }C|dz   S )N{r   })rangelenr   str)r   psstringis      r   __str__zps_procedure.__str__!   sp    (TZ!! - -a -#~DJqM 2 22HH#djm,,,HH	Cr   N)r   r   r   r    r   r4   r"   r   r   r*   r*      s7              r   r*   c                       e Zd ZdZd ZdS )ps_namer   c                 2    | j         r
d| j        z   S | j        S N/)r    r   r   s    r   r4   zps_name.__str__,   s!    	\ 



*r   N)r   r   r   r    r4   r"   r   r   r6   r6   *   s(            r   r6   c                       e Zd Zd ZdS )
ps_literalc                     d| j         z   S r8   r   r   s    r   r4   zps_literal.__str__3   s    	tz	r   Nr   r   r   r4   r"   r   r   r;   r;   2   #            r   r;   c                       e Zd Zd Zd ZdS )ps_arrayc                    d}t          t          | j                            D ]X}| j        |         }t          |j                 }|rd|z   }|r|dz   t          |          z   |z   }C|t          |          z   |z   }Y|dz   S )N[r   ])r/   r0   r   _accessstringsr!   r1   )r   r2   r3   itemr!   s        r   r4   zps_array.__str__7   s    (TZ!! - -a
*Q-44;'6 6\F -#~D		)F2HH#d))#f,HH	Cr   c                     dS )Nz<array>r"   r   s    r   r   zps_array.__repr__C   s    	r   Nr   r   r   r4   r   r"   r   r   rA   rA   6   s2              r   rA   )
FontInfoFontNameEncoding	PaintTypeFontType
FontMatrixFontBBoxUniqueIDMetricsStrokeWidth)	versionNoticeFullName
FamilyNameWeightItalicAngleisFixedPitchUnderlinePositionUnderlineThickness)PrivateCharStringsFIDc                    d}t           |j                 }|r|dz   }| dk    r|d| dt          |j                  dz   }nC| dk    r|t	          ||          z   }n)|dt          |           dt          |          d|dz   }|S )Nr   r   r]   r9   z def
rK   def
)rE   r!   _type1_CharString_reprr   _type1_Encoding_reprr1   )keyr   r2   r!   s       r   _type1_item_reprrd   e   s    

&
 C<&=X###/Eek/R/R/R/RSS((	Z,UF;;;((XCHHHHc%jjjj&&&II(r   c                     | j         } d}t          d          D ]}| |         j         }|dk    r
|d||fz  z   } ||z   dz   S )Nz</Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
   .notdefzdup %d /%s put
r`   )r   r/   )encodingr!   r2   r3   r&   s        r   rb   rb   r   s_    NL
** 8 8Q	!	$	Y+q$i7786G##r   c                 H    t          |                                           }dS )Nxxx)sorteditems)charstringsrl   s     r   ra   ra   {   s     	!!##	$	$r   c                       e Zd Zd Zd ZdS )ps_fontc                    dt          | j                  z  }t          D ]3}	 | j        |         }|t          ||          z   }$# t          $ r Y 0w xY wt          | j                                                  }|D ])\  }}|t          t          z   vr|t          ||          z   }*|dz   }t          D ]3}	 | j        |         }|t          ||          z   }$# t          $ r Y 0w xY w|dz   dz   dz   dz   S )N%d dict dup begin
z&currentdict end
currentfile eexec
dup z@dup/FontName get exch definefont pop
mark currentfile closefile
a  0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
)r0   r   _type1_pre_eexec_orderrd   KeyErrorrk   rl   _type1_post_eexec_order)r   r2   rc   r   rl   s        r   r4   zps_font.__str__   sS   "S__4(# 7 7c7JsOE *3666HH  	 	 	D	 !!##
$
$% 7 7jc5	'*AAAA*3666HBB($ 7 7c7JsOE *3666HH  	 	 	D	 
X	X
)
*,0
1 1s#   A
AA4C
C"!C"c                     dS )Nz<font>r"   r   s    r   r   zps_font.__repr__       	r   NrH   r"   r   r   ro   ro      s2        1 1 1.    r   ro   c                       e Zd ZdS )ps_fileN)r   r   r   r"   r   r   rz   rz      s        r   rz   c                       e Zd Zd Zd ZdS )ps_dictc           	         dt          | j                  z  }t          | j                                                  }|D ]G\  }}t          |j                 }|r|dz   }|dt          |          dt          |          d|dz   }H|dz   S )Nrq   r   r9   r`   zend )r0   r   rk   rl   rE   r!   r1   )r   r2   rl   rc   r   r!   s         r   r4   zps_dict.__str__   s    "S__4(
!!##
$
$% K Kjc55<(6 c\FhSXXXXs5zzzz666JJ88	F	r   c                     dS )Nz<dict>r"   r   s    r   r   zps_dict.__repr__   rx   r   NrH   r"   r   r   r|   r|      s2              r   r|   c                       e Zd Zd ZdS )ps_markc                 L    d| _         | j        j        dd          dz   | _        d S )Nmarkr	   r   r   r   s    r   r   zps_mark.__init__   s'    $*n%abb)F2$)))r   Nr   r   r   r   r"   r   r   r   r      #        3 3 3 3 3r   r   c                       e Zd Zd ZdS )ps_procmarkc                 L    d| _         | j        j        dd          dz   | _        d S )Nprocmarkr	   r   r   r   s    r   r   zps_procmark.__init__   s'    $*n%abb)F2$)))r   Nr   r"   r   r   r   r      r   r   r   c                       e Zd Zd ZdS )ps_nullc                 >    | j         j        dd          dz   | _        d S r   )r   r   r   r   s    r   r   zps_null.__init__   s     n%abb)F2$)))r   Nr   r"   r   r   r   r      s#        3 3 3 3 3r   r   c                       e Zd Zd ZdS )
ps_booleanc                     | j         rdS dS )Ntruefalser=   r   s    r   r4   zps_boolean.__str__   s    	Z 
&
'r   Nr>   r"   r   r   r   r      s#            r   r   c                       e Zd Zd ZdS )	ps_stringc                 @    dt          | j                  dd         z  S )Nz(%s)r   r   r   r   s    r   r4   zps_string.__str__   s     	$tz""1R4(	((r   Nr>   r"   r   r   r   r      s#        ) ) ) ) )r   r   c                       e Zd Zd ZdS )
ps_integerc                 *    t          | j                  S Nr   r   s    r   r4   zps_integer.__str__       	dj		r   Nr>   r"   r   r   r   r      r?   r   r   c                       e Zd Zd ZdS )ps_realc                 *    t          | j                  S r   r   r   s    r   r4   zps_real.__str__   r   r   Nr>   r"   r   r   r   r      r?   r   r   c                   :   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZeefdZd Zd Zd Zd Zd Z d Z!d Z"d Z#d  Z$d! Z%d" Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2S )3PSOperatorsc                     |                                  }|                                  }|| j        d         |j        <   d S Nr   )pop	dictstackr   )r   objr&   s      r   ps_defzPSOperators.ps_def   s5    

#	$#&$.TZ   r   c                     |                      d          }|                     |           |                     |           d S Nproceduretype)r   	proc_bindpushr   procs     r   ps_bindzPSOperators.ps_bind   s8    	/	"	"$..))D/////r   c                 (   t          t          |j                            D ]o}|j        |         }|j        dk    r|                     |           0|j        s8	 |                     |j                  }|j        dk    r
||j        |<   h#  Y lxY wpd S )Nr   operatortype)r/   r0   r   r   r   r    resolve_name)r   r   r3   rF   r   s        r   r   zPSOperators.proc_bind   s    TZ!!  a
*Q-4
i?""NN4< dj))c 
^	#	#tz!}	
d	 s   B

Bc                     t          | j                  dk     rt          d          |                                 }|                                 }|                     |           |                     |           d S )Nr   stack underflow)r0   stackRuntimeErrorr   r   )r   obj1obj2s      r   ps_exchzPSOperators.ps_exch   s`    __q	'	(	((	$	$))D///))D/////r   c                 r    | j         st          d          |                     | j         d                    d S )Nr   r   )r   r   r   r   s    r   ps_dupzPSOperators.ps_dup   s9    	 )	'	(	(())DJrNr   c                     |                                  }|j        dk    r|                     |           d S |                     |           d S r   )r   r   call_procedurehandle_objectr   r   s     r   ps_execzPSOperators.ps_exec   sP    

#X  scr   c                 n    |                      t          t          | j                                       d S r   )r   r   r0   r   r   s    r   ps_countzPSOperators.ps_count   s*    ))Js4:''(((((r   c                     |                                  }|                                  }|                     t          |j        |j        k                         d S r   r   r   r   r   r   any1any2s      r   ps_eqzPSOperators.ps_eq   E    	$	$))JtzTZ/0011111r   c                     |                                  }|                                  }|                     t          |j        |j        k                         d S r   r   r   s      r   ps_nezPSOperators.ps_ne  r   r   c                 f    |                                  }d|_        |                     |           d S Nr   )r   r    r   r   s     r   ps_cvxzPSOperators.ps_cvx  s)    

##+))C.....r   c                     t          d          t          d          t          d          t          d          t          d          t          d          g}|                     t          |                     d S )Ng      ?r   )r   r   r   rA   )r   matrixs     r   	ps_matrixzPSOperators.ps_matrix  s]    CLL*Q--AjQRmmU_`aUbUbc&))HVr   c                     |                      d          j        }|                     t          d|z                       d S )Nintegertype )r   r   r   r   )r   nums     r   r   zPSOperators.ps_string  s:    %#))IdSj!!"""""r   c                 |    |                                  }|                     t          |j                             d S r   )r   r   r   r   r   s     r   ps_typezPSOperators.ps_type  s1    

#))Ich     r   c                    |                                  }|                                  }|j        }t          t          | j                  dz
  dd          D ]#}|| j        |         v r|| j        |         |<    n$|| j        d         |<   d S )Nr   r   )r   r   r/   r0   r   )r   r   rc   r&   r3   s        r   ps_storezPSOperators.ps_store  s    
((**%

#	$T^$$Q&B// 
 
a
dnQ#DN1d	E   #$.Tr   c                 r    |                                  }|                     t          d                     d S r   )r   r   r   r   r&   s     r   ps_wherezPSOperators.ps_where#  s-    	$))JqMMr   c                 `    |                      t          | j        d                              d S r   r   r|   r   r   s    r   ps_systemdictzPSOperators.ps_systemdict(  )    ))GDN1%&&'''''r   c                 `    |                      t          | j        d                              d S Nr   r   r   s    r   ps_userdictzPSOperators.ps_userdict+  r   r   c                 `    |                      t          | j        d                              d S r   r   r   s    r   ps_currentdictzPSOperators.ps_currentdict.  s)    ))GDN2&''(((((r   c                 T    |                      t          | j                             d S r   )r   rz   	tokenizerr   s    r   ps_currentfilezPSOperators.ps_currentfile1  s$    ))GDN##$$$$$r   c                 b    |                      d          j        }|                                 d S Nfiletype)r   r   
starteexecr   fs     r   ps_eexeczPSOperators.ps_eexec4  s'    
hhz !,,.....r   c                     |                      d          j        }|                                 |                                 d S r   )r   r   	skipwhite	stopeexecr   s     r   ps_closefilezPSOperators.ps_closefile8  s4    
hhz !++---++-----r   c                     |                                  }|| j        k    r!|                                  }|| j        k    d S d S r   )r   r   r   s     r   ps_cleartomarkzPSOperators.ps_cleartomark=  sD    

#ty	3 	tyr   c                    |                      d          }|j        }|                      d          }|j        j        dz   |j        _        |j                             ||                    }||_        |                     |           |                      | ||           ||          k                         d S )N
stringtyper   r   )r   r   posreadr   )r   r   r0   soldstrr   newstrs          r   ps_readstringzPSOperators.ps_readstringB  s     hh|!7&
hhz! a!'+7<<F$$&!'))A,,,))JJss6{{cc&kk12233333r   c                     |                                  }|                      dd          }|                     t          |j        |j        v                      d S )Ndicttypefonttyper   )r   rc   ds      r   ps_knownzPSOperators.ps_knownP  sK    

#
hhz:&&!))JsyAG+,,-----r   c                     |                      d          }|                      d          j        r|                     |           d S d S Nr   booleantyper   r   r   r   s     r   ps_ifzPSOperators.ps_ifU  sN    	/	"	"$	XXm" t r   c                     |                      d          }|                      d          }|                      d          j        r|                     |           d S |                     |           d S r  r  )r   proc2proc1s      r   	ps_ifelsezPSOperators.ps_ifelseZ  so    
((?
#
#%
((?
#
#%	XXm" uur   c                 |    |                                  }|j        dk     rd|_        |                     |           d S r   r   r!   r   r   s     r   ps_readonlyzPSOperators.ps_readonlyb  4    

#Z!^^3:))C.....r   c                 |    |                                  }|j        dk     rd|_        |                     |           d S )Nr   r  r   s     r   ps_executeonlyzPSOperators.ps_executeonlyh  r  r   c                 |    |                                  }|j        dk     rd|_        |                     |           d S )Nr	   r  r   s     r   ps_noaccesszPSOperators.ps_noaccessn  r  r   c                     |                      dd          }|j        dk    r*|                     t          |j                              d S |                     t          |j                              d S )Nr  r   )r   r   r   r   r   r   r   s     r   ps_notzPSOperators.ps_nott  sj    ..#X99ZCI&&'''''99Z
##$$$$$r   c                 Z    |                      d          }t          d|j                   d S )Nr   zPS output --->)r   printr   )r   r1   s     r   ps_printzPSOperators.ps_print{  s,    ##)$$$$$r   c                    |                      d          }|                      d          }t          |j                  }|j        d |         |j        k    rh|                     t	          |j        |d                               |                     |           |                     t          d                     d S |                     |           |                     t          d                     d S )Nr   r   r   )r   r0   r   r   r   r   )r   seekr   seeklens       r   ps_anchorsearchzPSOperators.ps_anchorsearch  s    	,		$
hh|!
OO'WXgX$*$$99Yqwwxx())***99T???99Z]]99Q<<<99Z]]r   c                     |                      d          }t          d g|j        z            }|                     |           d S Nr   )r   rA   r   r   )r   r   arrays      r   rA   zPSOperators.ps_array  sA    #
D6CI%
&
&%))Er   c                     |                      d          }t          t          |j                  dz
  dd          D ]}|                                  |j        |<   |                     |           d S )N	arraytyper   r   )r   r/   r0   r   r   )r   r  r3   s      r   	ps_astorezPSOperators.ps_astore  sj    
((;

%U[!!!#R,,  aHHJJ5;q>>))Er   c                     |                                  }|                     |                     |j                             d S r   )r   r   r   r   r   s     r   ps_loadzPSOperators.ps_load  s7    	$))Ddj))*****r   c                    |                                  }|                                  }|                      dddd          }|j        }|dk    s|dk    r||j        |j        <   d S |dk    r||j        |j        <   d S |dk    rE|j        }|j        d |         t          |j                  z   |j        |dz   d          z   |_        d S d S )Nr  r   r   r   r   )r   r   r   chr)r   r   r   obj3tpindexs         r   ps_putzPSOperators.ps_put  s    	$	$	+z<	I	I$y";"// 4:dj	Z 4:dj	\:5
6E6"S__4tz%'((7KK4::: r   c                    |                                  }|j        dk    r	 |                      ddddd          }|j        }|dv r'|                     |j        |j                            d S |dv r'|                     |j        |j                            d S |dk    rA|                     t	          t          |j        |j                                                d S J d
            )NrK   r  r   r   r   r   )r  r   )r   r   Fzshouldn't get here)r   r   r   r   r   ord)r   r   r   r&  s       r   ps_getzPSOperators.ps_get  s    	$	Z:	+z<*	U	U$y")))99TZ
#$$$$$	%%%99TZ
#$$$$$	\99ZDJtz2334455555%%%%%r   c                    |                      d          }|                      d          }|                      dd          }|j        }|dk    rC|                     t          |j        |j        |j        |j        z                                 d S |dk    rC|                     t          |j        |j        |j        |j        z                                 d S d S )Nr   r  r   )r   r   r   rA   r   r   )r   r   r   r%  r&  s        r   ps_getintervalzPSOperators.ps_getinterval  s    	-	 	 $	-	 	 $	+|	,	,$y";99XdjDJ,C!CDEEFFFFF	\99Ytz$*TZ$*-D"DEFFGGGGG r   c                    |                      dd          }|                      d          }|                      dd          }|j        }|dk    r2|j        |j        |j        |j        t          |j                  z   <   d S |dk    rS|j        d |j                 }||j        z   }||j        |j        t          |j                  z   d          z   }||_        d S d S )Nr  r   r   )r   r   r   r0   )r   r   r   r%  r&  r   s         r   ps_putintervalzPSOperators.ps_putinterval  s    	+|	,	,$	-	 	 $	+|	,	,$y";9=4:djc$*oo55666	\J{
{#6TZ6TZ
S__ < = =>>64:::	 r   c                 z    |                      t          |                     d          j                             d S )Nr   )r   r6   r   r   r   s    r   ps_cvnzPSOperators.ps_cvn  s1    ))GDHH\**01122222r   c                     |                      d          j        }|dk     rt          d          |                     | j        d|z
                      d S )Nr   r   zindex may not be negativer   )r   r   r   r   r   )r   ns     r   ps_indexzPSOperators.ps_index  sQ    
hh}#!UU	1	2	22))DJr!tr   c                    |                      d          }|                      dd          j        }|                      dd          j        }|                      dd          j        }	 |dk    r	||k    rd S n||k     rd S t          |          t          d          k    r#|                     t	          |                     n"|                     t          |                     |                     |           ||z   })Nr   r   realtyper   r   g        )r   r   r   r   r   r   r   )r   r   limit	incrementr3   s        r   ps_forzPSOperators.ps_for  s    	/	"	"$
((=*
-
-
3%hh}j117)
hh}j))/!!mm5yy
U  	5yy
U
1ggcIIgajjIIjmmt9}1r   c                 v   |                      d          }|                      ddd          }|j        }|dk    r6|j        D ],}|                     |           |                     |           -d S |dk    rP|j        D ]F}|                     t          t          |                               |                     |           Gd S |dk    rk|j                                        D ]S\  }}|                     t          |                     |                     |           |                     |           Rd S d S )Nr   r  r   r   )	r   r   r   r   r   r   r*  rl   r6   )r   r   r   r&  rF   rc   r   s          r   	ps_forallzPSOperators.ps_forall  sY   	/	"	"$lJ77#
x";y  tIIdOOO  
\y  tIIjT##$$$  
ZY__&&  zsEIIgcllIIe	  r   c                     |                      d          }|                                  }t          |j                  }|| j        d         d         j        |j        <   |                     |           d S )Nr   r   FontDirectory)r   ro   r   r   r   )r   fontr&   s      r   ps_definefontzPSOperators.ps_definefont  s]    	*		$	$			$9=$.O$*4:6))D/////r   c                     |                                  }| j        d         d         j        |j                 }|                     |           d S )Nr   r=  )r   r   r   r   )r   r&   r>  s      r   ps_findfontzPSOperators.ps_findfont  s=    	$		?	+	1$*	=$))D/////r   c                 .    |                                   d S r   )r   r   s    r   ps_popzPSOperators.ps_pop  s    ((*****r   c                 t    |                      d           |                     t          i                      d S r  )r   r   r|   r   s    r   r|   zPSOperators.ps_dict
  s2    ((=))GBKKr   c                 j    | j                             |                     d          j                   d S )Nr   )r   appendr   r   r   s    r   ps_beginzPSOperators.ps_begin  s-    .,,233333r   c                 d    t          | j                  dk    r
| j        d= d S t          d          )Nr   r   zdictstack underflow)r0   r   r   r   s    r   ps_endzPSOperators.ps_end  s6    1~b	+	,	,,r   N)6r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   r   r   r  r	  r  r  r  r  r  r  rA   r   r"  r(  r+  r-  r/  r1  r4  r9  r;  r?  rA  rC  r|   rG  rI  r"   r   r   r   r      s       ' ' '
  
      
  ) ) )2 2 2
2 2 2
  
  # # #! ! !# # #  
( ( (( ( () ) )% % %    
   
4 4 4 4. . .
  
        % % %% % %
 
 
  
  + + +L L L& & &H H H  3 3 3    &  $    
    4 4 4- - - - -r   r   rg   r   )StandardEncodingN)rE   objectr   r$   r*   r6   r;   rA   rt   _type1_fontinfo_orderrv   rd   rb   ra   ro   rz   r|   r   r   r   r   r   r   r   r   notdef$fontTools.encodings.StandardEncodingrJ  listmapps_StandardEncodingr"   r   r   <module>rR     s  J=ZHHE E E E E E E E	% 	% 	% 	% 	%) 	% 	% 	%    9       i              y       
 
 
      $ $ $      i   6    i       i   3 3 3 3 3i 3 3 3
3 3 3 3 3) 3 3 3
3 3 3 3 3i 3 3 3       ) ) ) ) )	 ) ) )           i   
I- I- I- I- I-& I- I- I-V
 
 A A A A A Ad33w(899::   r   