§
    dÒ³gÁL  ã            	       ó¶  — d dl Z d dlZd dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZ ddlmZ ddlmZ  e j        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¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z edee¦  «        Z G d„ dee         ¦  «        Z ee¦  «        Z  ee¦  «        Z!e j"        Z#e!j"        Z$ e$d¦  «        Z% e$d¦  «        Z& e$d¦  «        Z' e$d¦  «        Z( e$d¦  «        Z) e$d¦  «        Z*de+d efd!„Z,de+d efd"„Z- ej.        d#¦  «        Z/ ej.        d$¦  «        Z0 ej.        d%¦  «        Z1 ej.        d&¦  «        Z2 ej.        d'¦  «        Z3 ej.        d(¦  «        Z4 ej.        d)¦  «        Z5 ej.        d*¦  «        Z6 ej.        d'¦  «        Z7 ej.        d+¦  «        Z8 ej.        d,¦  «        Z9d-d.d/d0d1d2d3d4d5œZ:ee;e<eee=f         Z> G d6„ d7¦  «        Z? ed8¦  «        Z@ee;e<ee=eee@f         ZAe
eBeAe@         f         ZC G d9„ d:e?ee@         ¦  «        ZDdS );é    N)ÚAnyÚBinaryIOÚDictÚGenericÚIteratorÚListÚOptionalÚTupleÚTypeÚTypeVarÚUnioné   )Úsettings)Úchoplistc                   ó   — e Zd ZdS )ÚPSExceptionN©Ú__name__Ú
__module__Ú__qualname__© ó    úO/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pdfminer/psparser.pyr   r      ó   € € € € € Ø€Dr   r   c                   ó   — e Zd ZdS )ÚPSEOFNr   r   r   r   r   r      r   r   r   c                   ó   — e Zd ZdS )ÚPSSyntaxErrorNr   r   r   r   r   r   #   r   r   r   c                   ó   — e Zd ZdS )ÚPSTypeErrorNr   r   r   r   r    r    '   r   r   r    c                   ó   — e Zd ZdS )ÚPSValueErrorNr   r   r   r   r"   r"   +   r   r   r"   c                   ó   — e Zd ZdZdS )ÚPSObjectz0Base class for all PS or PDF-related data types.N)r   r   r   Ú__doc__r   r   r   r$   r$   /   s   € € € € € Ø:Ð:à€Dr   r$   c                   óB   — e Zd ZdZeeef         Zdeddfd„Zdefd„Z	dS )Ú	PSLiteralaa  A class that represents a PostScript literal.

    Postscript literals are used as identifiers, such as
    variable names, property names and dictionary keys.
    Literals are case sensitive and denoted by a preceding
    slash sign (e.g. "/Name")

    Note: Do not create an instance of PSLiteral directly.
    Always use PSLiteralTable.intern().
    ÚnameÚreturnNc                 ó   — || _         d S ©N©r(   ©Úselfr(   s     r   Ú__init__zPSLiteral.__init__D   ó   € ØˆŒ	ˆ	ˆ	r   c                 ó   — | j         }d|z  S ©Nz/%rr,   r-   s     r   Ú__repr__zPSLiteral.__repr__G   ó   € ØŒyˆØ�t‰|Ðr   )
r   r   r   r%   r   ÚstrÚbytesÚNameTyper/   r3   r   r   r   r'   r'   5   sk   € € € € € ð	ð 	ð �S˜%�ZÔ €Hð˜Xð ¨$ð ð ð ð ð˜#ð ð ð ð ð ð r   r'   c                   ó.   — e Zd ZdZdeddfd„Zdefd„ZdS )Ú	PSKeywordaN  A class that represents a PostScript keyword.

    PostScript keywords are a dozen of predefined words.
    Commands and directives in PostScript are expressed by keywords.
    They are also used to denote the content boundaries.

    Note: Do not create an instance of PSKeyword directly.
    Always use PSKeywordTable.intern().
    r(   r)   Nc                 ó   — || _         d S r+   r,   r-   s     r   r/   zPSKeyword.__init__X   r0   r   c                 ó   — | j         }d|z  S r2   r,   r-   s     r   r3   zPSKeyword.__repr__[   r4   r   )r   r   r   r%   r6   r/   r5   r3   r   r   r   r9   r9   L   s[   € € € € € ðð ð˜Uð  tð ð ð ð ð˜#ð ð ð ð ð ð r   r9   Ú_SymbolTc                   óH   — e Zd ZdZdee         ddfd„Zdej        defd„Z	dS )ÚPSSymbolTablezƒA utility class for storing PSLiteral/PSKeyword objects.

    Interned objects can be checked its identity with "is" operator.
    Úklassr)   Nc                 ó"   — i | _         || _        d S r+   ©Údictr?   )r.   r?   s     r   r/   zPSSymbolTable.__init__i   s   € Ø8:ˆŒ	Ø%*ˆŒ
ˆ
ˆ
r   r(   c                 ór   — || j         v r| j         |         }n|                      |¦  «        }|| j         |<   |S r+   rA   )r.   r(   Úlits      r   ÚinternzPSSymbolTable.internm   s?   € Ø�4”9ÐÐØ”)˜D”/ˆCˆCð —*’*˜TÑ"Ô"ˆCØ!ˆDŒI�d‰OØˆ
r   )
r   r   r   r%   r   r<   r/   r'   r7   rE   r   r   r   r>   r>   c   si   € € € € € ðð ð
+˜d 8œnð +°ð +ð +ð +ð +ð˜9Ô-ð °(ð ð ð ð ð ð r   r>   ó   {ó   }ó   [ó   ]s   <<s   >>Úxr)   c                 ó  — t          | t          ¦  «        s1t          j        r"t	          d                     | ¦  «        ¦  «        ‚| }n>| j        }t          |t          ¦  «        s"	 t          |d¦  «        }n# t          $ r Y nw xY w|S )NzLiteral required: {!r}úutf-8)	Ú
isinstancer'   r   ÚSTRICTr    Úformatr(   r5   Ú	Exception©rJ   r(   s     r   Úliteral_namerR   „   s–   € Ý�a�Ñ#Ô#ð ÝŒ?ð 	ÝÐ6×=Ò=¸aÑ@Ô@ÑAÔAÐAàˆDˆDàŒvˆÝ˜$¥Ñ$Ô$ð 	ðÝ˜4 Ñ)Ô)��øÝð ð ð Ø�ðøøøà€Ks   Á$A5 Á5
BÂBc                 óž   — t          | t          ¦  «        s!t          j        rt	          d| z  ¦  «        ‚| }nt          | j        dd¦  «        }|S )NzKeyword required: %rrL   Úignore)rM   r9   r   rN   r    r5   r(   rQ   s     r   Úkeyword_namerU   ”   sQ   € Ý�a�Ñ#Ô#ð .ÝŒ?ð 	ÝÐ4°qÑ8Ñ9Ô9Ð9àˆDˆDå�1”6˜7 HÑ-Ô-ˆØ€Kr   s   [\r\n]s   \ss   \Ss   [0-9a-fA-F]s   [#/%\[\]()<>{}\s]s   [^\s0-9a-fA-F]s   [0-9a-fA-F]{2}|.s   [^0-9]s   [()\134]s   [0-7]é   é	   é
   é   é   é(   é)   é\   )ó   bó   tó   nó   fó   ró   (ó   )ó   \c                   óØ  — e Zd ZdZdZdeddfd„Zdefd„Zd$d„Z	d$d	„Z
defd
„Zd%dee         deddfd„Zdeddfd„Zd$d„Zdeeef         fd„Zdee         fd„Zdededefd„Zdeddfd„Zdededefd„Zdededefd„Zdededefd„Zdededefd„Zdededefd„Zdededefd„Zdededefd„Zdededefd„Z dededefd „Z!dededefd!„Z"dededefd"„Z#deeef         fd#„Z$dS )&ÚPSBaseParserz=Most basic PostScript parser that performs only tokenization.i   Úfpr)   Nc                 ó>   — || _         |                      d¦  «         d S ©Nr   )rh   Úseek©r.   rh   s     r   r/   zPSBaseParser.__init__¿   s   € ØˆŒØ�	Š	�!‰Œˆˆˆr   c                 ó:   — d| j         j        | j        | j        fz  S )Nz<%s: %r, bufpos=%d>)Ú	__class__r   rh   Úbufpos©r.   s    r   r3   zPSBaseParser.__repr__Ã   s   € Ø$¨¬Ô(?ÀÄÈ$Ì+Ð'VÑVÐVr   c                 ó   — d S r+   r   rp   s    r   ÚflushzPSBaseParser.flushÆ   ó   € Øˆr   c                 ó.   — |                       ¦   «          d S r+   )rr   rp   s    r   ÚclosezPSBaseParser.closeÉ   s   € Ø�
Š
‰ŒˆØˆr   c                 ó    — | j         | j        z   S r+   )ro   Úcharposrp   s    r   ÚtellzPSBaseParser.tellÍ   s   € ØŒ{˜Tœ\Ñ)Ð)r   éP   ÚposÚnc                 ó*  — | j                              ¦   «         }|s| j        | j        z   }| j                              |¦  «         t
                               d|| j                              |¦  «        ¦  «         | j                              |¦  «         d S )Nzpoll(%d): %r)rh   rx   ro   rw   rk   ÚlogÚdebugÚread)r.   rz   r{   Úpos0s       r   ÚpollzPSBaseParser.pollÐ   sv   € ØŒw�|Š|‰~Œ~ˆØð 	-Ø”+ ¤Ñ,ˆCØŒ�Š�SÑÔÐÝ�	Š	�. # t¤w§|¢|°A¡¤Ñ7Ô7Ð7ØŒ�Š�TÑÔÐØˆr   c                 óÜ   — t                                d|¦  «         | j                             |¦  «         || _        d| _        d| _        | j        | _        d| _	        d| _
        g | _        dS )z'Seeks the parser to the given position.zseek: %rr   r   N)r}   r~   rh   rk   ro   Úbufrw   Ú_parse_mainÚ_parse1Ú	_curtokenÚ_curtokenposÚ_tokens©r.   rz   s     r   rk   zPSBaseParser.seekÙ   sd   € å�	Š	�*˜cÑ"Ô"Ð"ØŒ�Š�SÑÔÐàˆŒØˆŒØˆŒàÔ'ˆŒØˆŒØˆÔØ<>ˆŒØˆr   c                 ó  — | j         t          | j        ¦  «        k     rd S | j                             ¦   «         | _        | j                             | j        ¦  «        | _        | j        st          d¦  «        ‚d| _         d S )NzUnexpected EOFr   )	rw   Úlenrƒ   rh   rx   ro   r   ÚBUFSIZr   rp   s    r   ÚfillbufzPSBaseParser.fillbufè   si   € ØŒ<�#˜dœh™-œ-Ò'Ð'ØˆFà”g—l’l‘n”nˆŒØ”7—<’< ¤Ñ,Ô,ˆŒØŒxð 	*ÝÐ(Ñ)Ô)Ð)ØˆŒØˆr   c                 ób  — d}| j         | j        z   }d}	 |                      ¦   «          |r8| j        | j        | j        dz   …         }|dk    r||z  }| xj        dz  c_        n®t                               | j        | j        ¦  «        }|rV|| j        | j        |                     d¦  «        …         z  }|                     d¦  «        | _        |dd…         dk    rd	}n1n1|| j        | j        d…         z  }t          | j        ¦  «        | _        Œüt           	                    d
||¦  «         ||fS )z3Fetches a next line that ends either with \r or \n.r   Fr   ó   
r   éÿÿÿÿNó   Tznextline: %r, %r)
ro   rw   r�   rƒ   ÚEOLÚsearchÚendr‹   r}   r~   )r.   ÚlinebufÚlineposÚeolÚcÚms         r   ÚnextlinezPSBaseParser.nextlineó   s1  € àˆØ”+ ¤Ñ,ˆØˆð	-Ø�LŠL‰NŒNˆNØð Ø”H˜Tœ\¨D¬L¸1Ñ,<Ð<Ô=�à˜’:�:Ø˜q‘L�GØ�L”L AÑ%�L”LØÝ—
’
˜4œ8 T¤\Ñ2Ô2ˆAØð 	-Ø˜4œ8 D¤L°1·5²5¸±8´8Ð$;Ô<Ñ<�Ø Ÿušu Q™xœx�”Ø˜2˜3˜3”< 5Ò(Ð(Ø�C�Càà˜4œ8 D¤L N NÔ3Ñ3�Ý" 4¤8™}œ}�”ð'	-õ( 	�	Š	Ð$ g¨wÑ7Ô7Ð7à˜Ð!Ð!r   c              #   óô  K  — | j                              dd¦  «         | j                              ¦   «         }d}d|k     r¹|}t          d|| j        z
  ¦  «        }| j                              |¦  «         | j                              ||z
  ¦  «        }|sne	 t          |                     d¦  «        |                     d¦  «        ¦  «        }|dk    r||z   }n||d…         |z   V — |d|…         }d}Œ^d|k     °¹dS )	ziFetches a next line backword.

        This is used to locate the trailers at the end of a file.
        r   é   r   r   r‘   r�   r�   N)rh   rk   rx   ÚmaxrŒ   r   Úrfind)r.   rz   rƒ   ÚprevposÚsr{   s         r   ÚrevreadlineszPSBaseParser.revreadlines  s
  è è € ð
 	Œ�Š�Q˜ÑÔÐØŒg�lŠl‰nŒnˆØˆØ�#ŠgˆgØˆGÝ�a˜˜tœ{Ñ*Ñ+Ô+ˆCØŒG�LŠL˜ÑÔÐØ”—’˜W s™]Ñ+Ô+ˆAØð ØðÝ˜Ÿš ™œ¨¯ª°©¬Ñ7Ô7�Ø˜’7�7Ø˜c™'�CØØ˜˜˜”e˜c‘kÐ!Ð!Ð!Ø�b�q�b”E�Ø�ðð �#Šgˆgð 	ˆr   r    Úic                 óN  — t                                ||¦  «        }|st          |¦  «        S |                     d¦  «        }|||dz   …         }| j        |z   | _        |dk    rd| _        | j        | _        |dz   S |dk    rd| _        | j	        | _        |dz   S |dv s| 
                    ¦   «         r|| _        | j        | _        |dz   S |dk    r|| _        | j        | _        |dz   S |                     ¦   «         r|| _        | j        | _        |dz   S |dk    rd| _        d| _        | j        | _        |dz   S |d	k    rd| _        | j        | _        |dz   S |d
k    rd| _        | j        | _        |dz   S |dk    r|dz   S |                      t)          |¦  «        ¦  «         |dz   S )Nr   r   ó   %ó   /r   s   -+ó   .rc   ó   <ó   >ó    )ÚNONSPCr“   r‹   Ústartro   r‡   r†   Ú_parse_commentr…   Ú_parse_literalÚisdigitÚ_parse_numberÚ_parse_floatÚisalphaÚ_parse_keywordÚparenÚ_parse_stringÚ_parse_wopenÚ_parse_wcloseÚ
_add_tokenÚKWD©r.   r    r¢   r™   Újr˜   s         r   r„   zPSBaseParser._parse_main)  s»  € Ý�MŠM˜!˜QÑÔˆØð 	Ý�q‘6”6ˆMØ�GŠG�A‰JŒJˆØˆa�!�a‘%ˆiŒLˆØ œK¨!™OˆÔØ�Š9ˆ9Ø!ˆDŒNØÔ.ˆDŒLØ�q‘5ˆLØ�$ŠYˆYØ ˆDŒNØÔ.ˆDŒLØ�q‘5ˆLØ�%ˆZˆZ˜1Ÿ9š9™;œ;ˆZØˆDŒNØÔ-ˆDŒLØ�q‘5ˆLØ�$ŠYˆYØˆDŒNØÔ,ˆDŒLØ�q‘5ˆLØ�YŠY‰[Œ[ð 	ØˆDŒNØÔ.ˆDŒLØ�q‘5ˆLØ�$ŠYˆYØ ˆDŒNØˆDŒJØÔ-ˆDŒLØ�q‘5ˆLØ�$ŠYˆYØ ˆDŒNØÔ,ˆDŒLØ�q‘5ˆLØ�$ŠYˆYØ ˆDŒNØÔ-ˆDŒLØ�q‘5ˆLØ�'Š\ˆ\Ø�q‘5ˆLà�OŠO�C ™FœFÑ#Ô#Ð#Ø�q‘5ˆLr   Úobjc                 óH   — | j                              | j        |f¦  «         d S r+   )rˆ   Úappendr‡   )r.   r»   s     r   r·   zPSBaseParser._add_tokenW  s%   € ØŒ×Ò˜TÔ.°Ð4Ñ5Ô5Ð5Øˆr   c                 ó   — t                                ||¦  «        }|s'| xj        ||d …         z  c_        t          |¦  «        S |                     d¦  «        }| xj        |||…         z  c_        | j        | _        |S rj   )r’   r“   r†   r‹   r«   r„   r…   ©r.   r    r¢   r™   rº   s        r   r¬   zPSBaseParser._parse_comment[  sx   € Ý�JŠJ�q˜!ÑÔˆØð 	ØˆNŒN˜a   œeÑ#ˆNŒNÝ�q‘6”6ˆMØ�GŠG�A‰JŒJˆØˆŒ˜!˜A˜a˜Cœ&Ñ ˆŒØÔ'ˆŒð ˆr   c                 óö  — t                                ||¦  «        }|s'| xj        ||d …         z  c_        t          |¦  «        S |                     d¦  «        }| xj        |||…         z  c_        |||dz   …         }|dk    rd| _        | j        | _        |dz   S 	 t          | j        d¦  «        }n# t          $ r
 | j        }Y nw xY w|  
                    t          |¦  «        ¦  «         | j        | _        |S )Nr   r   ó   #r   rL   )ÚEND_LITERALr“   r†   r‹   r«   ÚhexÚ_parse_literal_hexr…   r5   rP   r·   ÚLITr„   )r.   r    r¢   r™   rº   r˜   r(   s          r   r­   zPSBaseParser._parse_literalg  s  € Ý×Ò˜q !Ñ$Ô$ˆØð 	ØˆNŒN˜a   œeÑ#ˆNŒNÝ�q‘6”6ˆMØ�GŠG�A‰JŒJˆØˆŒ˜!˜A˜a˜Cœ&Ñ ˆŒØˆa�!�a‘%ˆiŒLˆØ�Š9ˆ9ØˆDŒHØÔ2ˆDŒLØ�q‘5ˆLð	"Ý&)¨$¬.¸'Ñ&BÔ&BˆDˆDøÝð 	"ð 	"ð 	"Ø”>ˆDˆDˆDð	"øøøà�Š�˜D™	œ	Ñ"Ô"Ð"ØÔ'ˆŒØˆs   ÂB4 Â4CÃCc                 ó6  — |||dz   …         }t                                |¦  «        r-t          | j        ¦  «        dk     r| xj        |z  c_        |dz   S | j        r1| xj        t          t          | j        d¦  «        f¦  «        z  c_        | j        | _        |S )Nr   rœ   é   )	ÚHEXÚmatchr‹   rÃ   r†   r6   Úintr­   r…   ©r.   r    r¢   r˜   s       r   rÄ   zPSBaseParser._parse_literal_hex{  s�   € Øˆa�!�a‘%ˆiŒLˆÝ�9Š9�Q‰<Œ<ð 	�C ¤™MœM¨AÒ-Ð-ØˆHŒH˜‰MˆHŒHØ�q‘5ˆLØŒ8ð 	:ØˆNŒN�e¥S¨¬°2Ñ%6Ô%6Ð$8Ñ9Ô9Ñ9ˆNŒNØÔ*ˆŒØˆr   c                 óÚ  — t                                ||¦  «        }|s'| xj        ||d …         z  c_        t          |¦  «        S |                     d¦  «        }| xj        |||…         z  c_        |||dz   …         }|dk    r!| xj        |z  c_        | j        | _        |dz   S 	 |                      t          | j        ¦  «        ¦  «         n# t          $ r Y nw xY w| j
        | _        |S )Nr   r   r¦   )Ú
END_NUMBERr“   r†   r‹   r«   r°   r…   r·   rÊ   Ú
ValueErrorr„   r¹   s         r   r¯   zPSBaseParser._parse_number…  sù   € Ý×Ò˜a Ñ#Ô#ˆØð 	ØˆNŒN˜a   œeÑ#ˆNŒNÝ�q‘6”6ˆMØ�GŠG�A‰JŒJˆØˆŒ˜!˜A˜a˜Cœ&Ñ ˆŒØˆa�!�a‘%ˆiŒLˆØ�Š9ˆ9ØˆNŒN˜aÑˆNŒNØÔ,ˆDŒLØ�q‘5ˆLð	Ø�OŠO�C ¤Ñ/Ô/Ñ0Ô0Ð0Ð0øÝð 	ð 	ð 	ØˆDð	øøøàÔ'ˆŒØˆs   Â''C Ã
CÃCc                 ór  — t                                ||¦  «        }|s'| xj        ||d …         z  c_        t          |¦  «        S |                     d¦  «        }| xj        |||…         z  c_        	 |                      t          | j        ¦  «        ¦  «         n# t          $ r Y nw xY w| j        | _	        |S rj   )
rÍ   r“   r†   r‹   r«   r·   ÚfloatrÎ   r„   r…   r¿   s        r   r°   zPSBaseParser._parse_float˜  s¼   € Ý×Ò˜a Ñ#Ô#ˆØð 	ØˆNŒN˜a   œeÑ#ˆNŒNÝ�q‘6”6ˆMØ�GŠG�A‰JŒJˆØˆŒ˜!˜A˜a˜Cœ&Ñ ˆŒð	Ø�OŠO�E $¤.Ñ1Ô1Ñ2Ô2Ð2Ð2øÝð 	ð 	ð 	ØˆDð	øøøàÔ'ˆŒØˆs   Á3'B Â
B(Â'B(c                 óŠ  — t                                ||¦  «        }|s'| xj        ||d …         z  c_        t          |¦  «        S |                     d¦  «        }| xj        |||…         z  c_        | j        dk    rd}n"| j        dk    rd}nt          | j        ¦  «        }|                      |¦  «         | j        | _        |S )Nr   s   trueTs   falseF)	ÚEND_KEYWORDr“   r†   r‹   r«   r¸   r·   r„   r…   ©r.   r    r¢   r™   rº   Útokens         r   r²   zPSBaseParser._parse_keyword¦  sÁ   € Ý×Ò˜q !Ñ$Ô$ˆØð 	ØˆNŒN˜a   œeÑ#ˆNŒNÝ�q‘6”6ˆMØ�GŠG�A‰JŒJˆØˆŒ˜!˜A˜a˜Cœ&Ñ ˆŒØŒ>˜WÒ$Ð$Ø,0ˆEˆEØŒ^˜xÒ'Ð'ØˆEˆEå˜œÑ'Ô'ˆEØ�Š˜ÑÔÐØÔ'ˆŒØˆr   c                 óJ  — t                                ||¦  «        }|s'| xj        ||d …         z  c_        t          |¦  «        S |                     d¦  «        }| xj        |||…         z  c_        |||dz   …         }|dk    rd| _        | j        | _        |dz   S |dk    r%| xj        dz  c_        | xj        |z  c_        |dz   S |dk    r,| xj        dz  c_        | j        r| xj        |z  c_        |dz   S |  	                    | j        ¦  «         | j
        | _        |dz   S )Nr   r   re   r   rc   rd   )Ú
END_STRINGr“   r†   r‹   r«   ÚoctÚ_parse_string_1r…   r³   r·   r„   r¹   s         r   r´   zPSBaseParser._parse_string·  s0  € Ý×Ò˜a Ñ#Ô#ˆØð 	ØˆNŒN˜a   œeÑ#ˆNŒNÝ�q‘6”6ˆMØ�GŠG�A‰JŒJˆØˆŒ˜!˜A˜a˜Cœ&Ñ ˆŒØˆa�!�a‘%ˆiŒLˆØ�Š:ˆ:ØˆDŒHØÔ/ˆDŒLØ�q‘5ˆLØ�Š9ˆ9ØˆJŒJ˜!‰OˆJŒJØˆNŒN˜aÑˆNŒNØ�q‘5ˆLØ�Š9ˆ9ØˆJŒJ˜!‰OˆJŒJØŒzð à�” !Ñ#�”Ø˜1‘u�Ø�Š˜œÑ'Ô'Ð'ØÔ'ˆŒØ�1‰uˆr   c                 ó(  — |||dz   …         }t                                |¦  «        r-t          | j        ¦  «        dk     r| xj        |z  c_        |dz   S | j        r?| xj        t          t          | j        d¦  «        f¦  «        z  c_        | j        | _        |S |t          v r*| xj        t          t          |         f¦  «        z  c_        n5|dk    r/t          |¦  «        |dz   k    r||dz   |dz   …         dk    r|dz  }| j        | _        |dz   S )z;Parse literal strings

        PDF Reference 3.2.3
        r   é   rV   r‘   rœ   r�   )
Ú
OCT_STRINGrÉ   r‹   r×   r†   r6   rÊ   r´   r…   Ú
ESC_STRINGrË   s       r   rØ   zPSBaseParser._parse_string_1Ñ  s  € ð
 ˆa�!�a‘%ˆiŒLˆÝ×Ò˜AÑÔð 	¥3 t¤x¡=¤=°1Ò#4Ð#4ØˆHŒH˜‰MˆHŒHØ�q‘5ˆLàŒXð 	ØˆNŒN�e¥S¨¬°1Ñ%5Ô%5Ð$7Ñ8Ô8Ñ8ˆNŒNØÔ-ˆDŒLØˆHà•*ˆ_ˆ_ØˆNŒN�e¥Z°¤]Ð$4Ñ5Ô5Ñ5ˆNŒNˆNà�%ŠZˆZ�C ™FœF Q¨¡UšN˜N¨q°°Q±¸¸Q¹°Ô/?À5Ò/HÐ/Hð �‰FˆAð Ô)ˆŒØ�1‰uˆr   c                 óœ   — |||dz   …         }|dk    r,|                       t          ¦  «         | j        | _        |dz  }n| j        | _        |S )Nr   r§   )r·   ÚKEYWORD_DICT_BEGINr„   r…   Ú_parse_hexstringrË   s       r   rµ   zPSBaseParser._parse_wopenì  sS   € Øˆa�!�a‘%ˆiŒLˆØ�Š9ˆ9Ø�OŠOÕ.Ñ/Ô/Ð/ØÔ+ˆDŒLØ�‰FˆAˆAàÔ0ˆDŒLØˆr   c                 ó‚   — |||dz   …         }|dk    r|                       t          ¦  «         |dz  }| j        | _        |S )Nr   r¨   )r·   ÚKEYWORD_DICT_ENDr„   r…   rË   s       r   r¶   zPSBaseParser._parse_wcloseö  sG   € Øˆa�!�a‘%ˆiŒLˆØ�Š9ˆ9Ø�OŠOÕ,Ñ-Ô-Ð-Ø�‰FˆAØÔ'ˆŒØˆr   c                 óž  — t                                ||¦  «        }|s'| xj        ||d …         z  c_        t          |¦  «        S |                     d¦  «        }| xj        |||…         z  c_        t
                               d„ t                               d| j        ¦  «        ¦  «        }|                      |¦  «         | j	        | _
        |S )Nr   c                 ód   — t          t          |                      d¦  «        d¦  «        f¦  «        S )Nr   rÇ   )r6   rÊ   Úgroup)r™   s    r   ú<lambda>z/PSBaseParser._parse_hexstring.<locals>.<lambda>  s%   € •e�S §¢¨¡¤¨RÑ0Ô0Ð2Ñ3Ô3€ r   r   )ÚEND_HEX_STRINGr“   r†   r‹   r«   ÚHEX_PAIRÚsubÚSPCr·   r„   r…   rÓ   s         r   rß   zPSBaseParser._parse_hexstringþ  s·   € Ý×!Ò! ! QÑ'Ô'ˆØð 	ØˆNŒN˜a   œeÑ#ˆNŒNÝ�q‘6”6ˆMØ�GŠG�A‰JŒJˆØˆŒ˜!˜A˜a˜Cœ&Ñ ˆŒÝ—’Ø3Ð3µS·W²W¸SÀ$Ä.Ñ5QÔ5Qñ
ô 
ˆð 	�Š˜ÑÔÐØÔ'ˆŒØˆr   c                 óþ   — | j         s@|                      ¦   «          |                      | j        | j        ¦  «        | _        | j         ¯@| j                              d¦  «        }t                               d|¦  «         |S )Nr   znexttoken: %r)rˆ   r�   r…   rƒ   rw   Úpopr}   r~   )r.   rÔ   s     r   Ú	nexttokenzPSBaseParser.nexttoken  sp   € Ø”,ð 	@Ø�LŠL‰NŒNˆNØŸ<š<¨¬°$´,Ñ?Ô?ˆDŒLð ”,ð 	@ð ”× Ò  Ñ#Ô#ˆÝ�	Š	�/ 5Ñ)Ô)Ð)Øˆr   ©r)   N)Nry   )%r   r   r   r%   rŒ   r   r/   r5   r3   rr   ru   rÊ   rx   r	   r�   rk   r�   r
   r6   rš   r   r¡   r„   ÚPSBaseParserTokenr·   r¬   r­   rÄ   r¯   r°   r²   r´   rØ   rµ   r¶   rß   rì   r   r   r   rg   rg   ¹   s…  € € € € € àGÐGà€Fð˜8ð ¨ð ð ð ð ðW˜#ð Wð Wð Wð Wðð ð ð ðð ð ð ð*�cð *ð *ð *ð *ðð ˜ œð °ð ¸dð ð ð ð ð˜ð  ð ð ð ð ð	ð 	ð 	ð 	ð"˜%  U 
Ô+ð "ð "ð "ð "ð:˜h uœoð ð ð ð ð2,˜Uð , sð ,¨sð ,ð ,ð ,ð ,ð\Ð/ð °Dð ð ð ð ð
 ð 
¨#ð 
°#ð 
ð 
ð 
ð 
ð ð ¨#ð °#ð ð ð ð ð( Eð ¨cð °cð ð ð ð ð˜uð ¨ð °ð ð ð ð ð&˜eð ¨ð °ð ð ð ð ð ð ¨#ð °#ð ð ð ð ð"˜uð ¨ð °ð ð ð ð ð4 ð ¨3ð °3ð ð ð ð ð6˜eð ¨ð °ð ð ð ð ð˜uð ¨ð °ð ð ð ð ð %ð ¨Cð °Cð ð ð ð ð˜5 Ð&7Ð!7Ô8ð ð ð ð ð ð r   rg   ÚExtraTc                   ó2  — e Zd Zdeddfd„Zdd„Zdeddfd„Zdee	         ddfd	„Z
d
edeee	                  fd„Zdeee	                  fd„Zdee	         ddfd„Zdededdfd„Zdedeeeee	                  f         fd„Zdededdfd„Zdee	         fd„ZdS )ÚPSStackParserrh   r)   Nc                 ód   — t                                | |¦  «         |                      ¦   «          d S r+   )rg   r/   Úresetrl   s     r   r/   zPSStackParser.__init__   s*   € Ý×Ò˜d BÑ'Ô'Ð'Ø�
Š
‰ŒˆØˆr   c                 ó>   — g | _         d | _        g | _        g | _        d S r+   )ÚcontextÚcurtypeÚcurstackÚresultsrp   s    r   ró   zPSStackParser.reset%  s#   € ØTVˆŒØ&*ˆŒØ46ˆŒØ35ˆŒØˆr   rz   c                 ód   — t                                | |¦  «         |                      ¦   «          d S r+   )rg   rk   ró   r‰   s     r   rk   zPSStackParser.seek,  s*   € Ý×Ò˜$ Ñ$Ô$Ð$Ø�
Š
‰ŒˆØˆr   Úobjsc                 ó:   — | j                              |¦  «         d S r+   )r÷   Úextend©r.   rú   s     r   ÚpushzPSStackParser.push1  s   € ØŒ×Ò˜TÑ"Ô"Ð"Øˆr   r{   c                 ó@   — | j         | d …         }g | j         | d …<   |S r+   ©r÷   )r.   r{   rú   s      r   rë   zPSStackParser.pop5  s+   € ØŒ}˜a˜R˜S˜SÔ!ˆØˆŒ�q�b�c�cÑØˆr   c                 ó"   — | j         }g | _         |S r+   r   rý   s     r   ÚpopallzPSStackParser.popall:  s   € ØŒ}ˆØˆŒØˆr   c                 óÈ   — 	 t                                d|¦  «         n*# t          $ r t                                d¦  «         Y nw xY w| j                             |¦  «         d S )Nzadd_results: %rz!add_results: (unprintable object))r}   r~   rP   rø   rü   rý   s     r   Úadd_resultszPSStackParser.add_results?  sn   € ð	;Ý�IŠIÐ'¨Ñ.Ô.Ð.Ð.øÝð 	;ð 	;ð 	;Ý�IŠIÐ9Ñ:Ô:Ð:Ð:Ð:ð	;øøøàŒ×Ò˜DÑ!Ô!Ð!Øˆs   ‚ ž$AÁAÚtypec                 óª   — | j                              || j        | j        f¦  «         |g c| _        | _        t                               d||¦  «         d S )Nzstart_type: pos=%r, type=%r)rõ   r½   rö   r÷   r}   r~   )r.   rz   r  s      r   Ú
start_typezPSStackParser.start_typeG  sO   € ØŒ×Ò˜S $¤,°´Ð>Ñ?Ô?Ð?Ø)-¨rÐ%ˆŒ�t”}Ý�	Š	Ð/°°dÑ;Ô;Ð;Øˆr   c                 ó  — | j         |k    r(t          d                     | j         |¦  «        ¦  «        ‚d„ | j        D ¦   «         }| j                             ¦   «         \  }| _         | _        t                               d|||¦  «         ||fS )NzType mismatch: {!r} != {!r}c                 ó   — g | ]\  }}|‘ŒS r   r   )Ú.0Ú_r»   s      r   ú
<listcomp>z*PSStackParser.end_type.<locals>.<listcomp>P  s   € Ð2Ð2Ð2™˜˜C�Ð2Ð2Ð2r   z"end_type: pos=%r, type=%r, objs=%r)rö   r    rO   r÷   rõ   rë   r}   r~   )r.   r  rú   rz   s       r   Úend_typezPSStackParser.end_typeM  s‡   € ØŒ<˜4ÒÐÝÐ;×BÒBÀ4Ä<ÐQUÑVÔVÑWÔWÐWØ2Ð2 D¤MÐ2Ñ2Ô2ˆØ-1¬\×-=Ò-=Ñ-?Ô-?Ñ*ˆˆdŒl˜DœMÝ�	Š	Ð6¸¸TÀ4ÑHÔHÐHØ�Tˆ{Ðr   rÔ   c                 ó   — d S r+   r   )r.   rz   rÔ   s      r   Ú
do_keywordzPSStackParser.do_keywordU  rs   r   c           	      óP  — | j         �s¼|                      ¦   «         \  }}t          |t          t          t
          t          t          t          f¦  «        r|  	                    ||f¦  «         �n3|t          k    r|                      |d¦  «         �n|t          k    rI	 |  	                    |                      d¦  «        ¦  «         �nÚ# t          $ r t          j        r‚ Y �nÀw xY w|t"          k    r|                      |d¦  «         �n™|t$          k    r“	 |                      d¦  «        \  }}t'          |¦  «        dz  dk    rd|z  }t)          |¦  «        ‚d„ t+          d|¦  «        D ¦   «         }|  	                    ||f¦  «         �n# t          $ r t          j        r‚ Y nÿw xY w|t,          k    r|                      |d¦  «         nÙ|t.          k    rG	 |  	                    |                      d¦  «        ¦  «         n¤# t          $ r t          j        r‚ Y n‹w xY wt          |t0          ¦  «        r9t2                               d||| j        ¦  «         |                      ||¦  «         n9t2                               d	||| j        ¦  «         |                      ||¦  «         ‚ | j        r�Œ¨|                      ¦   «          | j         �¯¼| j                               d¦  «        }	 t2                               d
|¦  «         n*# tB          $ r t2                               d¦  «         Y nw xY w|S )zÎYields a list of objects.

        Arrays and dictionaries are represented as Python lists and
        dictionaries.

        :return: keywords, literals, strings, numbers, arrays and dictionaries.
        ÚaÚdrœ   r   z Invalid dictionary construct: %rc                 ó8   — i | ]\  }}|®t          |¦  «        |“ŒS r+   )rR   )r
  ÚkÚvs      r   ú
<dictcomp>z,PSStackParser.nextobject.<locals>.<dictcomp>y  s1   € ð ð ð á"˜Q Ø˜=õ % Q™œ¨à(˜=˜=r   Úpz&do_keyword: pos=%r, token=%r, stack=%rz)unknown token: pos=%r, token=%r, stack=%rznextobject: %rz nextobject: (unprintable object))"rø   rì   rM   rÊ   rÐ   Úboolr5   r6   r'   rþ   ÚKEYWORD_ARRAY_BEGINr  ÚKEYWORD_ARRAY_ENDr  r    r   rN   rÞ   rá   r‹   r   r   ÚKEYWORD_PROC_BEGINÚKEYWORD_PROC_ENDr9   r}   r~   r÷   r  Úerrorrõ   rr   rë   rP   )r.   rz   rÔ   rú   Ú	error_msgr  r»   s          r   Ú
nextobjectzPSStackParser.nextobjectX  sv  € ð ”,ñ =	ØŸ>š>Ñ+Ô+‰LˆS�%Ý˜%¥#¥u­dµC½Å	Ð!JÑKÔKð 7à—	’	˜3 ˜,Ñ'Ô'Ð'Ñ'ØÕ-Ò-Ð-à—’  SÑ)Ô)Ð)Ñ)ØÕ+Ò+Ð+ðØ—I’I˜dŸmšm¨CÑ0Ô0Ñ1Ô1Ð1Ñ1øÝ"ð ð ð Ý”ð Øðñ ðøøøð Õ,Ò,Ð,à—’  SÑ)Ô)Ð)Ñ)ØÕ*Ò*Ð*ðØ"&§-¢-°Ñ"4Ô"4‘K�S˜$Ý˜4‘y”y 1‘}¨Ò)Ð)Ø$FÈÑ$M˜	Ý+¨IÑ6Ô6Ð6ðð å&.¨q°$Ñ&7Ô&7ðñ ô �Að
 —I’I˜s A˜hÑ'Ô'Ð'Ñ'øÝ"ð ð ð Ý”ð Øðð ðøøøð Õ,Ò,Ð,à—’  SÑ)Ô)Ð)Ð)ØÕ*Ò*Ð*ðØ—I’I˜dŸmšm¨CÑ0Ô0Ñ1Ô1Ð1Ð1øÝ"ð ð ð Ý”ð Øðð ðøøøõ ˜E¥9Ñ-Ô-ð Ý—	’	Ø<¸cÀ5È$Ì-ñô ð ð —’  UÑ+Ô+Ð+Ð+å—	’	Ø?ØØØ”Mñ	ô ð ð —’  UÑ+Ô+Ð+ØØŒ|ð Ùà—
’
‘”�ð{ ”,ñ =	ð| Œl×Ò˜qÑ!Ô!ˆð	:Ý�IŠIÐ&¨Ñ,Ô,Ð,Ð,øÝð 	:ð 	:ð 	:Ý�IŠIÐ8Ñ9Ô9Ð9Ð9Ð9ð	:øøøàˆ
sI   Â(C ÃC!Ã C!ÄA3F ÆF"Æ!F"Ç(G< Ç<HÈHË K< Ë<$L#Ì"L#rí   )r   r   r   r   r/   ró   rÊ   rk   ÚPSStackEntryrï   rþ   r   rë   r  r  r5   r  r
   ÚPSStackTyper  r9   r  r  r   r   r   rñ   rñ     sº  € € € € € ð˜8ð ¨ð ð ð ð ð
ð ð ð ð˜ð  ð ð ð ð ð
˜, vÔ.ð °4ð ð ð ð ð�Sð ˜T ,¨vÔ"6Ô7ð ð ð ð ð
˜˜\¨&Ô1Ô2ð ð ð ð ð
 ¨fÔ!5ð ¸$ð ð ð ð ð˜cð ¨ð °ð ð ð ð ð˜Sð  U¨3°°[ÀÔ5HÔ0IÐ+IÔ%Jð ð ð ð ð˜cð ¨)ð ¸ð ð ð ð ðK˜L¨Ô0ð Kð Kð Kð Kð Kð Kr   rñ   )EÚloggingÚreÚtypingr   r   r   r   r   r   r	   r
   r   r   r   Ú r   Úutilsr   Ú	getLoggerr   r}   rP   r   r   r   r    r"   r$   r'   r9   r<   r>   ÚPSLiteralTableÚPSKeywordTablerE   rÅ   r¸   r  r  r  r  rÞ   rá   ÚobjectrR   rU   Úcompiler’   ré   rª   rÈ   rÂ   ræ   rç   rÍ   rÒ   rÖ   rÛ   rÜ   rÐ   r  r6   rî   rg   rï   r!  rÊ   r   rñ   r   r   r   ú<module>r,     sÝ  ðð
 €€€Ø 	€	€	€	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€gÔ˜Ñ!Ô!€ð	ð 	ð 	ð 	ð 	�)ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ˆKñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�Kñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�+ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�;ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ðð ð ð ð �ñ ô ð ð.ð ð ð ð �ñ ô ð ð( ˆ7�:˜y¨)Ñ4Ô4€ðð ð ð ð �G˜HÔ%ñ ô ð ð* �˜yÑ)Ô)€Ø�˜yÑ)Ô)€ØÔ€ØÔ€Ø�S˜‘Y”YÐ Ø�3�t‘9”9Ð Ø�c˜$‘i”iÐ Ø�C˜‘I”IÐ Ø�S˜‘Z”ZÐ Ø�3�u‘:”:Ð ð�Fð ˜sð ð ð ð ð �Fð ˜sð ð ð ð ð €b„j�ÑÔ€Ø€b„j�ÑÔ€Ø	ˆŒ�FÑ	Ô	€Ø€b„j�Ñ!Ô!€ØˆbŒjÐ.Ñ/Ô/€Ø�”Ð.Ñ/Ô/€Øˆ2Œ:Ð*Ñ+Ô+€ØˆRŒZ˜
Ñ#Ô#€
ØˆbŒjÐ.Ñ/Ô/€ØˆRŒZ˜Ñ%Ô%€
ØˆRŒZ˜	Ñ"Ô"€
à
Ø
Ø
Ø
Ø
Ø
Ø
Øð	ð 	€
ð ˜%  y°)¸UÐBÔCÐ ðYð Yð Yð Yð Yñ Yô Yð YðB 
ˆ�Ñ	Ô	€Ø�E˜4 ¨E°4¸¸vÐEÔF€Ø�S˜+ fÔ-Ð-Ô.€ðDð Dð Dð Dð D�L '¨&¤/ñ Dô Dð Dð Dð Dr   