§
    þÜÒj™   ã            	      ó  — d dl mZ h d£Zd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlmZmZ ddlmZ dZerd dlmZmZ ej        eez  ef         Znej        Zdzd„Zi dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+“d,d-“d.d/“i d0d1“d2d3“d4d5“d6d7“d8d9“d:d;“d<d=“d>d?“d@dA“dBdC“dDdE“dFdG“dHdI“dJdK“dLdM“dNdO“dPdQ“¥dRdSdTdUdVdWdXdYœ¥Zd{d[„Z G d\„ d]e¦  «        Zd|db„Z G dc„ dde¦  «        Z G de„ dfe¦  «        Z G dg„ dhe¦  «        Z  G di„ dj¦  «        Z! G dk„ dl¦  «        Z" G dm„ dne#e         ¦  «        Z$ G do„ dpe¦  «        Z% G dq„ dr¦  «        Z& G ds„ dt¦  «        Z'd}dw„Z( G dx„ dy¦  «        Z)dS )~é    )Úannotations>   ÚmmapÚzlibÚcalendarN)ÚAnyÚ
NamedTupleé   )Ú	ImageFileF)ÚIOÚSelfÚsÚstrÚreturnÚbytesc                óF   — t           j        |                      d¦  «        z   S )NÚ	utf_16_be)ÚcodecsÚBOM_UTF16_BEÚencode)r   s    úYC:\Users\johnn\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL/PdfParser.pyÚencode_textr      s   € ÝÔ §¢¨+Ñ!6Ô!6Ñ6Ð6ó    é   úé   u   Ë˜é   u   Ë‡é   u   Ë†é   u   Ë™é   u   Ë�é   u   Ë›é   u   Ëšé   u   Ëœé€   u   â€¢é�   u   â€ é‚   u   â€¡éƒ   u   â€¦é„   u   â€”é…   u   â€“é†   u   Æ’é‡   u   â�„éˆ   u   â€¹é‰   u   â€ºéŠ   u   âˆ’é‹   u   â€°éŒ   u   â€žé�   u   â€œéŽ   u   â€�é�   u   â€˜é�   u   â€™é‘   u   â€šé’   u   â„¢é“   u   ï¬�é”   u   ï¬‚é•   u   Å�é–   u   Å’é—   u   Å é˜   u   Å¸u   Å½u   Ä±u   Å‚u   Å“u   Å¡u   Å¾u   â‚¬)é™   éš   é›   éœ   é�   éž   é    Úbc                ó  — | d t          t          j        ¦  «        …         t          j        k    r4| t          t          j        ¦  «        d …                              d¦  «        S d                     d„ | D ¦   «         ¦  «        S )Nr   Ú c              3  óf   K  — | ],}t                                |t          |¦  «        ¦  «        V — Œ-d S ©N)ÚPDFDocEncodingÚgetÚchr)Ú.0Úbytes     r   ú	<genexpr>zdecode_text.<locals>.<genexpr>R   s8   è è € ÐIÐI¸t•~×)Ò)¨$µ°D±	´	Ñ:Ô:ÐIÐIÐIÐIÐIÐIr   )Úlenr   r   ÚdecodeÚjoin)rC   s    r   Údecode_textrQ   N   sq   € ØÐ	#�3�vÔ"Ñ#Ô#Ð	#Ô$­Ô(;Ò;Ð;Ø••VÔ(Ñ)Ô)Ð+Ð+Ô,×3Ò3°KÑ@Ô@Ð@à�wŠwÐIÐIÀqÐIÑIÔIÑIÔIÐIr   c                  ó   — e Zd ZdZdS )ÚPdfFormatErrorz\An error that probably indicates a syntactic or semantic error in the
    PDF file structureN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   rS   rS   U   s   € € € € € ðð ð 	€Dr   rS   Ú	conditionÚboolÚerror_messageÚNonec                ó(   — | st          |¦  «        ‚d S rG   )rS   )rY   r[   s     r   Úcheck_format_conditionr^   \   s"   € Øð ,Ý˜]Ñ+Ô+Ð+ð,ð ,r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚIndirectReferenceTupleÚintÚ	object_idÚ
generationN)rT   rU   rV   Ú__annotations__rX   r   r   r`   r`   a   s"   € € € € € € Ø€N€N�NØ€O€O�O€O€Or   r`   c                  ó6   — e Zd Zdd„Zdd„Zdd	„Zdd
„Zdd„ZdS )ÚIndirectReferencer   r   c                ó&   — | j         › d| j        › d�S )Nú z R©rb   rc   ©Úselfs    r   Ú__str__zIndirectReference.__str__g   s   € Ø”.Ð6Ð6 4¤?Ð6Ð6Ð6Ð6r   r   c                óP   — |                       ¦   «                              d¦  «        S ©Núus-ascii)rl   r   rj   s    r   Ú	__bytes__zIndirectReference.__bytes__j   s   € Ø�|Š|‰~Œ~×$Ò$ ZÑ0Ô0Ð0r   ÚotherÚobjectrZ   c                ó�   — | j         |j         urdS t          |t          ¦  «        sJ ‚|j        | j        k    o|j        | j        k    S )NF)Ú	__class__Ú
isinstancerf   rb   rc   ©rk   rq   s     r   Ú__eq__zIndirectReference.__eq__m   sK   € ØŒ> ¤Ð0Ð0Ø�5Ý˜%Õ!2Ñ3Ô3Ð3Ð3Ð3ØŒ $¤.Ò0ÐX°UÔ5EÈÌÒ5XÐXr   c                ó   — | |k     S rG   rX   rv   s     r   Ú__ne__zIndirectReference.__ne__s   s   € Ø˜E’MÐ"Ð"r   ra   c                ó8   — t          | j        | j        f¦  «        S rG   )Úhashrb   rc   rj   s    r   Ú__hash__zIndirectReference.__hash__v   s   € Ý�T”^ T¤_Ð5Ñ6Ô6Ð6r   N©r   r   ©r   r   ©rq   rr   r   rZ   ©r   ra   )rT   rU   rV   rl   rp   rw   ry   r|   rX   r   r   rf   rf   f   s|   € € € € € ð7ð 7ð 7ð 7ð1ð 1ð 1ð 1ðYð Yð Yð Yð#ð #ð #ð #ð7ð 7ð 7ð 7ð 7ð 7r   rf   c                  ó   — e Zd Zdd„ZdS )ÚIndirectObjectDefr   r   c                ó&   — | j         › d| j        › d�S )Nrh   z objri   rj   s    r   rl   zIndirectObjectDef.__str__{   s   € Ø”.Ð8Ð8 4¤?Ð8Ð8Ð8Ð8r   Nr}   )rT   rU   rV   rl   rX   r   r   r‚   r‚   z   s(   € € € € € ð9ð 9ð 9ð 9ð 9ð 9r   r‚   c                  óN   — e Zd Zdd„Zdd„Zdd	„Zdd
„Zdd„Zdd„Zdd„Z	dd„Z
dS )Ú	XrefTabler   r\   c                óP   — i | _         i | _        ddi| _        d| _        d| _        d S )Nr   i   F)Úexisting_entriesÚnew_entriesÚdeleted_entriesÚreading_finishedÚ_max_object_idrj   s    r   Ú__init__zXrefTable.__init__€   s>   € àð 	Ôð ð 	Ôð !" 5˜zˆÔØ %ˆÔØˆÔÐÐr   Úkeyra   Úvalueútuple[int, int]c                óˆ   — | j         r|| j        |<   n
|| j        |<   || j        k    r|| _        || j        v r
| j        |= d S d S rG   )rŠ   rˆ   r‡   r‹   r‰   ©rk   r�   rŽ   s      r   Ú__setitem__zXrefTable.__setitem__‹   sg   € ØÔ ð 	/Ø$)ˆDÔ˜SÑ!Ð!à).ˆDÔ! #Ñ&Ø�Ô$Ò$Ð$Ø"%ˆDÔØ�$Ô&Ð&Ð&ØÔ$ SÐ)Ð)Ð)ð 'Ð&r   c                óX   — 	 | j         |         S # t          $ r | j        |         cY S w xY wrG   )rˆ   ÚKeyErrorr‡   ©rk   r�   s     r   Ú__getitem__zXrefTable.__getitem__•   sD   € ð	.ØÔ# CÔ(Ð(øÝð 	.ð 	.ð 	.ØÔ(¨Ô-Ð-Ð-Ð-ð	.øøøs   ‚ �)¨)c                ó  — || j         v r*| j         |         d         dz   }| j         |= || j        |<   d S || j        v r"| j        |         d         dz   }|| j        |<   d S || j        v r| j        |         }d S d|› d�}t          |¦  «        ‚)Nr	   z
object ID z+ cannot be deleted because it doesn't exist)rˆ   r‰   r‡   Ú
IndexError)rk   r�   rc   Úmsgs       r   Ú__delitem__zXrefTable.__delitem__›   s¸   € Ø�$Ô"Ð"Ð"ØÔ)¨#Ô.¨qÔ1°AÑ5ˆJØÔ  Ð%Ø(2ˆDÔ  Ñ%Ð%Ð%Ø�DÔ)Ð)Ð)ØÔ.¨sÔ3°AÔ6¸Ñ:ˆJØ(2ˆDÔ  Ñ%Ð%Ð%Ø�DÔ(Ð(Ð(ØÔ-¨cÔ2ˆJˆJˆJàO˜sÐOÐOÐOˆCÝ˜S‘/”/Ð!r   rZ   c                ó&   — || j         v p|| j        v S rG   )r‡   rˆ   r•   s     r   Ú__contains__zXrefTable.__contains__©   s   € Ø�dÔ+Ð+ÐF¨s°dÔ6FÐ/FÐFr   c                ó  — t          t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z  t          | j                             ¦   «         ¦  «        z  ¦  «        S rG   )rN   Úsetr‡   Úkeysrˆ   r‰   rj   s    r   Ú__len__zXrefTable.__len__¬   sl   € ÝÝ�Ô%×*Ò*Ñ,Ô,Ñ-Ô-Ý�$Ô"×'Ò'Ñ)Ô)Ñ*Ô*ñ+å�$Ô&×+Ò+Ñ-Ô-Ñ.Ô.ñ/ñ
ô 
ð 	
r   úset[int]c                óê   — t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z
  t          | j                             ¦   «         ¦  «        z  S rG   )rž   r‡   rŸ   r‰   rˆ   rj   s    r   rŸ   zXrefTable.keys³   s\   € å�Ô%×*Ò*Ñ,Ô,Ñ-Ô-µ°DÔ4H×4MÒ4MÑ4OÔ4OÑ0PÔ0PÑPÝ�Ô ×%Ò%Ñ'Ô'Ñ(Ô(ñ)ð 	)r   Úfú	IO[bytes]c                óZ  — t          t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z  ¦  «        }t          | j        ¦  «        }|                     ¦   «         }|                     d¦  «         |�rd }t          |¦  «        D ](\  }}|�	|dz   |k    r|}Œ|d |…         }||d …         } n|}g }|                     d|d         t          |¦  «        fz  ¦  «         |D ]Ÿ}	|	| j        v r$|                     d| j        |	         z  ¦  «         Œ/| 	                    d¦  «        }
t          |	|
k    d|	› d|
› �¦  «         	 |d         }n# t          $ r d}Y nw xY w|                     d|| j        |	         fz  ¦  «         Œ |�°|S )	Ns   xref
r	   s   %d %d
r   s   %010d %05d n 
z*expected the next deleted object ID to be z, instead found s   %010d %05d f 
)Úsortedrž   rˆ   rŸ   r‰   ÚtellÚwriteÚ	enumeraterN   Úpopr^   r˜   )rk   r£   rŸ   Údeleted_keysÚ	startxrefÚprevÚindexr�   Úcontiguous_keysrb   Úthis_deleted_object_idÚnext_in_linked_lists               r   r¨   zXrefTable.write¸   s  € Ý•c˜$Ô*×/Ò/Ñ1Ô1Ñ2Ô2µS¸Ô9M×9RÒ9RÑ9TÔ9TÑ5UÔ5UÑUÑVÔVˆÝ˜dÔ2Ñ3Ô3ˆØ—F’F‘H”Hˆ	Ø	�Š�	ÑÔÐØñ 	à#ˆDÝ'¨™oœoð 	ð 	‘
��sØ�< 4¨!¡8¨s¢? ?Ø�D�Dà&*¨6¨E¨6¤l�OØ   œ<�DØ�Eà"&�Ø�Ø�GŠG�J /°!Ô"4µc¸/Ñ6JÔ6JÐ!KÑKÑLÔLÐLØ,ð ð �	Ø Ô 0Ð0Ð0Ø—G’GÐ.°Ô1AÀ)Ô1LÑLÑMÔMÐMÐMà-9×-=Ò-=¸aÑ-@Ô-@Ð*Ý*Ø!Ð%;Ò;ðBÀYð Bð BØ)?ðBð Bñô ð ð
0Ø.:¸1¬oÐ+Ð+øÝ%ð 0ð 0ð 0Ø./Ð+Ð+Ð+ð0øøøà—G’GØ*Ø.°Ô0DÀYÔ0OÐPñQñô ð ð ð9 ñ 	ð@ Ðs   Å'E0Å0E?Å>E?N©r   r\   )r�   ra   rŽ   r�   r   r\   )r�   ra   r   r�   )r�   ra   r   r\   )r�   ra   r   rZ   r€   )r   r¡   )r£   r¤   r   ra   )rT   rU   rV   rŒ   r’   r–   rš   rœ   r    rŸ   r¨   rX   r   r   r…   r…      s¸   € € € € € ð	 ð 	 ð 	 ð 	 ð*ð *ð *ð *ð.ð .ð .ð .ð"ð "ð "ð "ðGð Gð Gð Gð
ð 
ð 
ð 
ð)ð )ð )ð )ð
%ð %ð %ð %ð %ð %r   r…   c                  ó¦   — e Zd ZU ded<   dd„Zdd„Zdd„Zdd„Zdd„Ze	dd„¦   «         Z
 e edd¦  «        ¦  «        d„ dD ¦   «         z
  Zdd„ZdS )ÚPdfNamer   ÚnameúPdfName | bytes | strr   r\   c                ó¼   — t          |t          ¦  «        r|j        | _        d S t          |t          ¦  «        r	|| _        d S |                     d¦  «        | _        d S rn   )ru   r´   rµ   r   r   )rk   rµ   s     r   rŒ   zPdfName.__init__ã   sU   € Ý�d�GÑ$Ô$ð 	0Øœ	ˆDŒIˆIˆIÝ˜�eÑ$Ô$ð 	0ØˆDŒIˆIˆIàŸš JÑ/Ô/ˆDŒIˆIˆIr   r   c                ó6   — | j                              d¦  «        S rn   )rµ   rO   rj   s    r   Úname_as_strzPdfName.name_as_strë   s   € ØŒy×Ò 
Ñ+Ô+Ð+r   rq   rr   rZ   c                ób   — t          |t          ¦  «        o|j        | j        k    p
|| j        k    S rG   )ru   r´   rµ   rv   s     r   rw   zPdfName.__eq__î   s1   € å�u�gÑ&Ô&ÐB¨5¬:¸¼Ò+Bð à�d”iÒð	 r   ra   c                ó*   — t          | j        ¦  «        S rG   )r{   rµ   rj   s    r   r|   zPdfName.__hash__ó   s   € Ý�D”I‰ŒÐr   c                óJ   — | j         j        › dt          | j        ¦  «        › d�S )Nú(ú))rt   rT   Úreprrµ   rj   s    r   Ú__repr__zPdfName.__repr__ö   s&   € Ø”.Ô)Ð>Ð>­D°´©O¬OÐ>Ð>Ð>Ð>r   Údatac                óH   —  | t                                |¦  «        ¦  «        S rG   )Ú	PdfParserÚinterpret_name)ÚclsrÁ   s     r   Úfrom_pdf_streamzPdfName.from_pdf_streamù   s    € àˆs•9×+Ò+¨DÑ1Ô1Ñ2Ô2Ð2r   é!   é   c                ó,   — h | ]}t          |¦  «        ’ŒS rX   )Úord)rK   Úcs     r   ú	<setcomp>zPdfName.<setcomp>ý   s   € Ð*IÐ*IÐ*I°a­3¨q©6¬6Ð*IÐ*IÐ*Ir   z#%/()<>[]{}c                óÀ   — t          d¦  «        }| j        D ]9}|| j        v r|                     |¦  «         Œ!|                     d|z  ¦  «         Œ:t          |¦  «        S )Nó   /s   #%02X)Ú	bytearrayrµ   Úallowed_charsÚappendÚextendr   )rk   ÚresultrC   s      r   rp   zPdfName.__bytes__ÿ   sf   € Ý˜4‘”ˆØ”ð 	,ð 	,ˆAØ�DÔ&Ð&Ð&Ø—’˜aÑ Ô Ð Ð à—’˜h¨™lÑ+Ô+Ð+Ð+Ý�V‰}Œ}Ðr   N)rµ   r¶   r   r\   r}   r   r€   )rÁ   r   r   r´   r~   )rT   rU   rV   rd   rŒ   r¹   rw   r|   rÀ   ÚclassmethodrÆ   rž   ÚrangerÐ   rp   rX   r   r   r´   r´   à   sæ   € € € € € € Ø€K€K�Kð0ð 0ð 0ð 0ð,ð ,ð ,ð ,ð ð  ð  ð  ð
ð ð ð ð?ð ?ð ?ð ?ð ð3ð 3ð 3ñ „[ð3ð �C˜˜˜b #™œÑ'Ô'Ð*IÐ*I¸=Ð*IÑ*IÔ*IÑI€Mðð ð ð ð ð r   r´   c                  ó   — e Zd Zdd„ZdS )ÚPdfArrayr   r   c                óL   — dd                      d„ | D ¦   «         ¦  «        z   dz   S )Ns   [ ó    c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rG   )Úpdf_repr)rK   Úxs     r   rM   z%PdfArray.__bytes__.<locals>.<genexpr>  s(   è è € Ð ;Ð ;°¥¨!¡¤Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;r   s    ])rP   rj   s    r   rp   zPdfArray.__bytes__
  s-   € Ø�t—y’yÐ ;Ð ;°dÐ ;Ñ ;Ô ;Ñ;Ô;Ñ;¸eÑCÐCr   Nr~   )rT   rU   rV   rp   rX   r   r   r×   r×   	  s.   € € € € € ðDð Dð Dð Dð Dð Dr   r×   c                  ó&   — e Zd Zdd„Zdd	„Zdd„ZdS )ÚPdfDictr�   r   rŽ   r   r   r\   c                óˆ   — |dk    r#t           j                             | ||¦  «         d S || |                     d¦  «        <   d S )NrÁ   ro   )ÚcollectionsÚUserDictÚ__setattr__r   r‘   s      r   râ   zPdfDict.__setattr__  sH   € Ø�&Š=ˆ=ÝÔ ×,Ò,¨T°3¸Ñ>Ô>Ð>Ð>Ð>à+0ˆD�—’˜JÑ'Ô'Ñ(Ð(Ð(r   ústr | time.struct_timec                ó  — 	 | |                      d¦  «                 }n"# t          $ r}t          |¦  «        |‚d }~ww xY wt          |t          ¦  «        rt          |¦  «        }|                     d¦  «        �r|                     d¦  «        r
|dd …         }d}t          |¦  «        dk    rO|d         }t          |dd…         ¦  «        d	z  }t          |¦  «        d
k    r|t          |dd
…         ¦  «        z  }dd t          |¦  «        dz
  …         }t          j        |d t          |¦  «        dz   …         |¦  «        }|dv r9|d	z  }|dk    r|dz  }t          j        t          j        |¦  «        |z   ¦  «        }|S )Nro   ÚDatezD:é   ÚZé   é   é   é<   é   é   z%Y%m%d%H%M%S)ú+ú-rî   éÿÿÿÿ)r   r”   ÚAttributeErrorru   r   rQ   ÚendswithÚ
startswithrN   ra   ÚtimeÚstrptimeÚgmtimer   Útimegm)rk   r�   rŽ   ÚeÚrelationshipÚoffsetÚformats          r   Ú__getattr__zPdfDict.__getattr__  s�  € ð	-Ø˜Ÿš JÑ/Ô/Ô0ˆEˆEøÝð 	-ð 	-ð 	-Ý  Ñ%Ô%¨1Ð,øøøøð	-øøøå�e�UÑ#Ô#ð 	'Ý Ñ&Ô&ˆEØ�<Š<˜ÑÔñ 	EØ×Ò Ñ%Ô%ð "Ø˜a˜b˜bœ	�àˆLÝ�5‰zŒz˜BŠˆØ$ Rœy�Ý˜U 2 b 5œ\Ñ*Ô*¨RÑ/�Ý�u‘:”: ’?�?Ø�c %¨¨2¨¤,Ñ/Ô/Ñ/�Fà#Ð$4¥c¨%¡j¤j°1¡nÐ$4Ô5ˆFÝ”M %Ð(9­#¨f©+¬+¸©/Ð(9Ô":¸FÑCÔCˆEØ˜zÐ)Ð)Ø˜"‘�Ø 3Ò&Ð&Ø˜b‘L�FÝœ¥H¤O°EÑ$:Ô$:¸VÑ$CÑDÔD�Øˆs   ‚ ž
=¨8¸=r   c                óœ  — t          d¦  «        }|                      ¦   «         D ]…\  }}|€Œt          |¦  «        }|                     d¦  «         |                     t	          t          |¦  «        ¦  «        ¦  «         |                     d¦  «         |                     |¦  «         Œ†|                     d¦  «         t	          |¦  «        S )Nó   <<ó   
rÙ   s   
>>)rÏ   ÚitemsrÛ   rÒ   r   r´   )rk   Úoutr�   rŽ   s       r   rp   zPdfDict.__bytes__0  s´   € Ý˜ÑÔˆØŸ*š*™,œ,ð 	ð 	‰JˆC�Øˆ}ØÝ˜U‘O”OˆEØ�JŠJ�uÑÔÐØ�JŠJ•u�W S™\œ\Ñ*Ô*Ñ+Ô+Ð+Ø�JŠJ�tÑÔÐØ�JŠJ�uÑÔÐÐØ�
Š
�7ÑÔÐÝ�S‰zŒzÐr   N)r�   r   rŽ   r   r   r\   )r�   r   r   rã   r~   )rT   rU   rV   râ   rü   rp   rX   r   r   rÞ   rÞ     sP   € € € € € ð1ð 1ð 1ð 1ðð ð ð ð6ð ð ð ð ð r   rÞ   c                  ó   — e Zd Zd	d„Zd
d„ZdS )Ú	PdfBinaryrÁ   úlist[int] | bytesr   r\   c                ó   — || _         d S rG   )rÁ   )rk   rÁ   s     r   rŒ   zPdfBinary.__init__?  s   € ØˆŒ	ˆ	ˆ	r   r   c                óP   — dd                      d„ | j        D ¦   «         ¦  «        z  S )Ns   <%s>r   c              3  ó    K  — | ]	}d |z  V — Œ
dS )s   %02XNrX   ©rK   rC   s     r   rM   z&PdfBinary.__bytes__.<locals>.<genexpr>C  s&   è è € Ð!AÐ!A°! '¨A¡+Ð!AÐ!AÐ!AÐ!AÐ!AÐ!Ar   )rP   rÁ   rj   s    r   rp   zPdfBinary.__bytes__B  s*   € Ø˜ŸšÐ!AÐ!A°t´yÐ!AÑ!AÔ!AÑAÔAÑAÐAr   N)rÁ   r  r   r\   r~   )rT   rU   rV   rŒ   rp   rX   r   r   r  r  >  sB   € € € € € ðð ð ð ðBð Bð Bð Bð Bð Br   r  c                  ó,   — e Zd Zdd„Zej        fdd
„ZdS )Ú	PdfStreamÚ
dictionaryrÞ   Úbufr   r   r\   c                ó"   — || _         || _        d S rG   )r  r  )rk   r  r  s      r   rŒ   zPdfStream.__init__G  s   € Ø$ˆŒØˆŒˆˆr   Ú
max_lengthra   c                ó.  — 	 | j         d         }n# t          $ r
 | j        cY S w xY w|dk    rHt          j        ¦   «         }|                     | j        |¦  «        }|j        rd}t          |¦  «        ‚|S dt          |¦  «        › d�}t          |¦  «        ‚)Ns   Filters   FlateDecodezDecompressed data too largezstream filter z unknown/unsupported)
r  r”   r  r   ÚdecompressobjÚ
decompressÚunconsumed_tailÚ
ValueErrorr¿   ÚNotImplementedError)rk   r  ÚfilterÚdobjÚ	plaintextr™   s         r   rO   zPdfStream.decodeK  s¯   € ð	Ø”_ YÔ/ˆFˆFøÝð 	ð 	ð 	Ø”8ˆOˆOˆOð	øøøà�^Ò#Ð#ÝÔ%Ñ'Ô'ˆDØŸš¨¬°*Ñ=Ô=ˆIØÔ#ð &Ø3�Ý  ‘o”oÐ%ØÐàE¥4¨¡<¤<ÐEÐEÐEˆCÝ% cÑ*Ô*Ð*s   ‚ �$£$N)r  rÞ   r  r   r   r\   )r  ra   r   r   )rT   rU   rV   rŒ   r
   Ú	SAFEBLOCKrO   rX   r   r   r
  r
  F  sI   € € € € € ðð ð ð ð (1Ô':ð +ð +ð +ð +ð +ð +ð +r   r
  rÜ   r   c                óž  — | du rdS | du rdS | €dS t          | t          t          t          t          f¦  «        rt          | ¦  «        S t          | t          t          f¦  «        r"t          | ¦  «         	                    d¦  «        S t          | t          j        ¦  «        r.dt          j        d| ¦  «         	                    d¦  «        z   d	z   S t          | t          ¦  «        rt          t          | ¦  «        ¦  «        S t          | t          ¦  «        rt          t          | ¦  «        ¦  «        S t          | t          ¦  «        rt          t!          | ¦  «        ¦  «        S t          | t
          ¦  «        rJ|                      d
d¦  «        } |                      dd¦  «        } |                      d	d¦  «        } d| z   d	z   S t          | ¦  «        S )NTs   trueFs   falses   nullro   s   (D:z%Y%m%d%H%M%SZó   )ó   \s   \\ó   (ó   \(s   \))ru   r´   rÞ   r×   r  r   ra   Úfloatr   r   rô   Ústruct_timeÚstrftimeÚdictÚlistrÛ   r   Úreplace)rÜ   s    r   rÛ   rÛ   \  s‘  € ØˆD€y€yØˆwØ	
ˆeˆˆØˆxØ	
ˆØˆwÝ	�A�¥­(µIÐ>Ñ	?Ô	?ð Ý�Q‰xŒxˆÝ	�A��U�|Ñ	$Ô	$ð Ý�1‰vŒv�}Š}˜ZÑ(Ô(Ð(Ý	�A•tÔ'Ñ	(Ô	(ð Ø�œ o°qÑ9Ô9×@Ò@ÀÑLÔLÑLÈtÑSÐSÝ	�A•tÑ	Ô	ð Ý•W˜Q‘Z”ZÑ Ô Ð Ý	�A•tÑ	Ô	ð Ý•X˜a‘[”[Ñ!Ô!Ð!Ý	�A•sÑ	Ô	ð 	Ý� A™œÑ'Ô'Ð'Ý	�A•uÑ	Ô	ð à�IŠI�e˜WÑ%Ô%ˆØ�IŠI�d˜FÑ#Ô#ˆØ�IŠI�d˜FÑ#Ô#ˆØ�a‰x˜$‰Ðå�Q‰xŒxˆr   c                  óÆ  — e Zd ZdZ	 	 	 	 	 d†d‡d„Zdˆd„Zd‰d„ZdŠd„ZdŠd„ZdŠd„Z	dŠd„Z
dŠd„Zd‹d„ZdŒd„ZdŠd „Z	 d�dŽd#„Zd�d)„Zd�d*„ZdŠd+„Zed‘d.„¦   «         ZdŠd/„Zd�d’d2„Zd3Zd4Zd5Zd6Zed7z   Zed8z   Zd9Zd:Zeez   ez   Z e j!        ed;z   ez   d<z   ez   d=z   ez   d>z   ez   d?z   ez   d@z   e j"        ¦  «        Z# e j!        ed;z   ez   dAz   ez   d=z   ez   d>z   ez   d?z   ez   e j"        ¦  «        Z$dŠdB„Z%	 d�d“dF„Z& e j!        e¦  «        Z' e j!        edGz   ez   dHz   ¦  «        Z( e j!        edIz   ¦  «        Z) e j!        edJz   ez   ¦  «        Z*e+d”dN„¦   «         Z, e j!        dO¦  «        Z-e+d•d–dU„¦   «         Z. e j!        edVz   ez   dHz   ¦  «        Z/ e j!        edWz   ez   dHz   ¦  «        Z0 e j!        edXz   ez   dHz   ¦  «        Z1 e j!        edYz   ez   dHz   ¦  «        Z2 e j!        edZz   ez   dHz   ¦  «        Z3 e j!        ed[z   ¦  «        Z4 e j!        ed\z   ¦  «        Z5 e j!        ed]z   ez   d^z   ¦  «        Z6 e j!        ed_z   ¦  «        Z7 e j!        ed`z   ez   d`z   ez   daz   ez   dHz   ¦  «        Z8 e j!        ed`z   ez   d`z   ez   dbz   ez   dHz   ¦  «        Z9 e j!        edcz   ez   dHz   ¦  «        Z: e j!        ddez   dez   ez   dfz   ¦  «        Z; e j!        edgz   ¦  «        Z< e j!        edhz   ez   dHz   ¦  «        Z=e+	 	 d—d˜do„¦   «         Z> e j!        dp¦  «        Z?i dqdr“dsdt“dudv“dwdx“dydz“dddd“dHdH“d{d{“ e@dq¦  «        dr“ e@ds¦  «        dt“ e@du¦  «        dv“ e@dw¦  «        dx“ e@dy¦  «        dz“ e@dd¦  «        dd“ e@dH¦  «        dH“ e@d{¦  «        d{“ZAe+d™d}„¦   «         ZB e j!        ed~z   ez   ¦  «        ZC e j!        ed>z   ez   d>z   ez   ez   ¦  «        ZD e j!        d¦  «        ZEdšd€„ZFd›dœd�„ZG	 d�d�d…„ZHdS )žrÃ   z|Based on
    https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf
    Supports PDF up to 1.4
    Nr   ÚrbÚfilenameú
str | Noner£   úIO[bytes] | Noner  úbytes | bytearray | NoneÚstart_offsetra   Úmoder   r   r\   c                óF  — |r|rd}t          |¦  «        ‚|| _        || _        || _        || _        d| _        d| _        |� |€t          ||¦  «        x| _        }d| _        |�?|                      |¦  «        | _        d| _        |st          |d¦  «        r|j
        | _        i | _        |  |  |  |  | j        r9	 |                      ¦   «          n®# t          $ r |                      ¦   «          ‚ w xY wdx| _        | _        t#          ¦   «         | _        d | _        t#          ¦   «         | _        d | _        t#          ¦   «         | _        g | _        g | _        d | _        d | _        i | _        t9          ¦   «         | _        d| j        _        |r|                      ¦   «          d S d S )Nz4specify buf or f or filename, but not both buf and fFTrµ   r   ) ÚRuntimeErrorr&  r  r£   r*  Úshould_close_bufÚshould_close_fileÚopenÚget_buf_from_fileÚhasattrrµ   Úcached_objectsÚread_pdf_inforS   ÚcloseÚfile_size_totalÚfile_size_thisrÞ   ÚrootÚroot_refÚinfoÚinfo_refÚpage_tree_rootÚpagesÚ
orig_pagesÚ	pages_refÚlast_xref_section_offsetÚtrailer_dictr…   Ú
xref_tablerŠ   Úseek_end)rk   r&  r£   r  r*  r+  r™   s          r   rŒ   zPdfParser.__init__  sÍ  € ð ð 	$�1ð 	$ØHˆCÝ˜sÑ#Ô#Ð#Ø ˆŒØFIˆŒØˆŒØ(ˆÔØ %ˆÔØ!&ˆÔØÐ A IÝ˜h¨Ñ-Ô-Ð-ˆDŒF�QØ%)ˆDÔ"Øˆ=Ø×-Ò-¨aÑ0Ô0ˆDŒHØ$(ˆDÔ!Øð '¥¨¨6Ñ 2Ô 2ð 'Ø !¤�”Ø<>ˆÔØÐ/ØÐ/ØÐ0ØÐ1ØŒ8ð 	*ðØ×"Ò"Ñ$Ô$Ð$Ð$øÝ!ð ð ð Ø—
’
‘”�Øðøøøð :;Ð:ˆDÔ  4Ô#6Ý™	œ	ˆDŒIØ ˆDŒMÝ™	œ	ˆDŒIØ ˆDŒMÝ")¡)¤)ˆDÔØ24ˆDŒJØ79ˆDŒOØ!ˆDŒNØ,0ˆDÔ)Ø24ˆDÔÝ'™kœkˆDŒOØ+/ˆŒÔ(Øð 	Ø�MŠM‰OŒOˆOˆOˆOð	ð 	s   Â:C Ã C/r   c                ó   — | S rG   rX   rj   s    r   Ú	__enter__zPdfParser.__enter__´  s   € Øˆr   Úargsrr   c                ó.   — |                       ¦   «          d S rG   )r5  )rk   rF  s     r   Ú__exit__zPdfParser.__exit__·  s   € Ø�
Š
‰Œˆˆˆr   c                óV   — |                       ¦   «          |                      ¦   «          d S rG   )Ú	close_bufrC  rj   s    r   Ústart_writingzPdfParser.start_writingº  s#   € Ø�ŠÑÔÐØ�Š‰Œˆˆˆr   c                óF  — t          | j        t          ¦  «        rG| j                             ¦   «          t          j        j        dk    rdd l}|                     ¦   «          n8t          | j        t          j	        ¦  «        r| j         
                    ¦   «          d | _        d S )NÚpypyr   )ru   r  Ú
memoryviewÚreleaseÚsysÚimplementationrµ   ÚgcÚcollectr   r5  )rk   rR  s     r   rJ  zPdfParser.close_buf¾  s‡   € Ý�d”h¥
Ñ+Ô+ð 	ØŒH×ÒÑÔÐÝÔ!Ô&¨&Ò0Ð0Ø�	�	�	ð —
’
‘”�øÝ˜œ¥$¤)Ñ,Ô,ð 	ØŒH�NŠNÑÔÐØˆŒˆˆr   c                ó    — | j         r|                      ¦   «          | j        �)| j        r$| j                             ¦   «          d | _        d S d S d S rG   )r.  rJ  r£   r/  r5  rj   s    r   r5  zPdfParser.closeÊ  sU   € ØÔ ð 	Ø�NŠNÑÔÐØŒ6Ð $Ô"8ÐØŒF�LŠL‰NŒNˆNØˆDŒFˆFˆFð ÐÐÐr   c                ób   — | j         €J ‚| j                              dt          j        ¦  «         d S )Nr   )r£   ÚseekÚosÚSEEK_ENDrj   s    r   rC  zPdfParser.seek_endÑ  s.   € ØŒvÐ!Ð!Ð!ØŒ�Š�A•r”{Ñ#Ô#Ð#Ð#Ð#r   c                óL   — | j         €J ‚| j                              d¦  «         d S )Ns	   %PDF-1.4
)r£   r¨   rj   s    r   Úwrite_headerzPdfParser.write_headerÕ  s*   € ØŒvÐ!Ð!Ð!ØŒ�Š�]Ñ#Ô#Ð#Ð#Ð#r   r   c                óx   — | j         €J ‚| j                              d|› d�                     ¦   «         ¦  «         d S )Nz% ú
)r£   r¨   r   )rk   r   s     r   Úwrite_commentzPdfParser.write_commentÙ  s>   € ØŒvÐ!Ð!Ð!ØŒ�Š�Z˜!�Z�Z�Z×&Ò&Ñ(Ô(Ñ)Ô)Ð)Ð)Ð)r   rf   c                óê  — | j         €J ‚|                      ¦   «          |                      | j                              ¦   «         ¦  «        | _        |                      d¦  «        | _        |                      ¦   «          |                      | j        t          d¦  «        | j        ¬¦  «         |                      | j        t          d¦  «        t          | j
        ¦  «        | j
        ¬¦  «         | j        S )Nr   ó   Catalog)ÚTypeÚPagesó   Pages)r`  ÚCountÚKids)r£   Údel_rootÚnext_object_idr§   r9  r?  Úrewrite_pagesÚ	write_objr´   rN   r=  rj   s    r   Úwrite_catalogzPdfParser.write_catalogÝ  sÌ   € ØŒvÐ!Ð!Ð!Ø�Š‰ŒˆØ×+Ò+¨D¬F¯KªK©M¬MÑ:Ô:ˆŒØ×,Ò,¨QÑ/Ô/ˆŒØ×ÒÑÔÐØ�Š�t”}­7°:Ñ+>Ô+>ÀdÄnˆÑUÔUÐUØ�ŠØŒNÝ˜Ñ"Ô"Ý�d”j‘/”/Ø”ð	 	ñ 	
ô 	
ð 	
ð Œ}Ðr   c                ó˜  — g }t          | j        ¦  «        D ]Å\  }}| j        |         }| j        |j        = |                     |t          d¦  «                 ¦  «         || j        vrŒQi }|                     ¦   «         D ]\  }}||| 	                    ¦   «         <   Œ| j
        |d<    | j        di |¤Ž}t          | j        ¦  «        D ]\  }	}
|
|k    r
|| j        |	<   ŒŒÆ|D ]c}g }|r]||vrY|                     |¦  «         | j        |         }|j        | j        v r| j        |j        = |                     dd ¦  «        }|r||v°YŒdg | _        d S )Ns   ParentÚParentrG   )r©   r>  r3  rB  rb   rÑ   r´   r=  r   r¹   r?  Ú
write_pagerI   )rk   Úpages_tree_nodes_to_deleteÚiÚpage_refÚ	page_infoÚstringified_page_infor�   rŽ   Únew_page_refÚjÚcur_page_refÚpages_tree_node_refÚprocessed_refsÚpages_tree_nodes                 r   rg  zPdfParser.rewrite_pagesì  s³  € Ø%'Ð"Ý$ T¤_Ñ5Ô5ð 	1ð 	1‰KˆAˆxØÔ+¨HÔ5ˆIØ” Ô 2Ð3Ø&×-Ò-¨i½À	Ñ8JÔ8JÔ.KÑLÔLÐLØ˜tœzÐ)Ð)àà$&Ð!Ø'ŸošoÑ/Ô/ð Að A‘
��Uà;@Ð% c§o¢oÑ&7Ô&7Ñ8Ð8Ø.2¬nÐ! (Ñ+Ø*˜4œ?ÐIÐIÐ3HÐIÐIˆLÝ#,¨T¬ZÑ#8Ô#8ð 1ð 1‘��<Ø 8Ò+Ð+à$0�D”J˜q‘Møð1ð
 $>ð 	Kð 	KÐØˆNØ%ð KÐ*=À^Ð*SÐ*SØ×%Ò%Ð&9Ñ:Ô:Ð:Ø"&Ô"5Ð6IÔ"J�Ø&Ô0°D´OÐCÐCØœÐ(;Ô(EÐFØ&5×&9Ò&9¸)ÀTÑ&JÔ&JÐ#ð &ð KÐ*=À^Ð*SÐ*Søð ˆŒˆˆr   Únew_root_refúIndirectReference | Nonec                óæ  — | j         €J ‚|r|                      ¦   «          || _        | j        r |                      d | j        ¦  «        | _        | j                             | j         ¦  «        }t          | j        ¦  «        }| j        |dœ}| j	        �
| j	        |d<   | j        r
| j        |d<   || _	        | j                              dt          t          |¦  «        ¦  «        z   d|z  z   ¦  «         d S )N)ó   Rootó   Sizeó   Prevó   Infos   trailer
s   
startxref
%d
%%%%EOF)r£   re  r9  r:  rh  r;  rB  r¨   rN   r@  r   rÞ   )rk   rx  Ú
start_xrefÚnum_entriesrA  s        r   Úwrite_xref_and_trailerz PdfParser.write_xref_and_trailer  s	  € ð ŒvÐ!Ð!Ð!Øð 	)Ø�MŠM‰OŒOˆOØ(ˆDŒMØŒ9ð 	<Ø ŸNšN¨4°´Ñ;Ô;ˆDŒMØ”_×*Ò*¨4¬6Ñ2Ô2ˆ
Ý˜$œ/Ñ*Ô*ˆà”]Ø ð0
ð 0
ˆð Ô(Ð4Ø$(Ô$AˆL˜Ñ!ØŒ9ð 	2Ø$(¤MˆL˜Ñ!Ø(2ˆÔ%ØŒ�ŠØÝ•G˜LÑ)Ô)Ñ*Ô*ñ+à)¨JÑ6ñ7ñ	
ô 	
ð 	
ð 	
ð 	
r   Úrefúint | IndirectReference | NoneÚobjsr   Údict_objc                ó´   — t          |t          ¦  «        r| j        |         n|}d|vrt          d¦  «        |d<   d|vr
| j        |d<    | j        |g|¢R i |¤ŽS )Nr`  ó   Pagerk  )ru   ra   r=  r´   r?  rh  )rk   r‚  r„  r…  Úobj_refs        r   rl  zPdfParser.write_page%  sx   € õ &0°µSÑ%9Ô%9ÐB�$”*˜S”/�/¸sˆØ˜Ð!Ð!Ý& wÑ/Ô/ˆH�VÑØ˜8Ð#Ð#Ø!%¤ˆH�XÑØˆtŒ~˜gÐ9¨Ð9Ð9Ð9°Ð9Ð9Ð9r   c                ó²  — | j         €J ‚| j         }|€(|                      |                     ¦   «         ¦  «        }n(|                     ¦   «         |j        f| j        |j        <   |                     t          t          |Ž ¦  «        ¦  «         | 	                    dd ¦  «        }|�t          |¦  «        |d<   |r"|                     t          |¦  «        ¦  «         |D ]$}|                     t          |¦  «        ¦  «         Œ%|�?|                     d¦  «         |                     |¦  «         |                     d¦  «         |                     d¦  «         |S )NÚstreamÚLengths   stream
s   
endstream
s   endobj
)r£   rf  r§   rc   rB  rb   r¨   r   r‚   rª   rN   rÛ   )rk   r‚  r„  r…  r£   rŠ  Úobjs          r   rh  zPdfParser.write_obj/  s>  € ð ŒvÐ!Ð!Ð!ØŒFˆØˆ;Ø×%Ò% a§f¢f¡h¤hÑ/Ô/ˆCˆCà./¯fªf©h¬h¸¼Ð-GˆDŒO˜CœMÑ*Ø	�Š•Õ'¨Ð-Ñ.Ô.Ñ/Ô/Ð/Ø—’˜h¨Ñ-Ô-ˆØÐÝ!$ V¡¤ˆH�XÑØð 	(Ø�GŠG•H˜XÑ&Ô&Ñ'Ô'Ð'Øð 	#ð 	#ˆCØ�GŠG•H˜S‘M”MÑ"Ô"Ð"Ð"ØÐØ�GŠG�KÑ Ô Ð Ø�GŠG�F‰OŒOˆOØ�GŠGÐ$Ñ%Ô%Ð%Ø	�Š�ÑÔÐØˆ
r   c                ól   — | j         €d S | j        | j         j        = | j        | j        d         j        = d S )Nrb  )r9  rB  rb   r8  rj   s    r   re  zPdfParser.del_rootG  s8   € ØŒ=Ð ØˆFØŒO˜DœMÔ3Ð4ØŒO˜DœI hÔ/Ô9Ð:Ð:Ð:r   r¤   úbytes | mmap.mmapc                ó  — t          | d¦  «        r|                      ¦   «         S t          | d¦  «        r|                      ¦   «         S 	 t          j        |                      ¦   «         dt          j        ¬¦  «        S # t          $ r Y dS w xY w)NÚ	getbufferÚgetvaluer   )Úaccessr   )r2  r�  r‘  r   ÚfilenoÚACCESS_READr  )r£   s    r   r1  zPdfParser.get_buf_from_fileM  s‹   € å�1�kÑ"Ô"ð 	Ø—;’;‘=”=Ð Ý�Q˜
Ñ#Ô#ð 	Ø—:’:‘<”<ÐðÝ”y §¢¡¤¨QµtÔ7GÐHÑHÔHÐHøÝð ð ð Ø�s�sðøøøs   Á
2A= Á=
BÂ
Bc                ó4  — | j         €J ‚t          | j         ¦  «        | _        | j        | j        z
  | _        |                      ¦   «          t          | j                             d¦  «        d ud¦  «         | j        d         | _	        | j	        €J ‚| j                             dd ¦  «        | _
        t          |                      | j	        ¦  «        ¦  «        | _        | j
        €t          ¦   «         | _        n,t          |                      | j
        ¦  «        ¦  «        | _        t          d| j        v d¦  «         t          | j        d         dk    d¦  «         t          | j                             d¦  «        d ud	¦  «         t          t          | j        d         t           ¦  «        d
¦  «         | j        d         | _        | j        €J ‚|                      | j        ¦  «        | _        |                      ¦   «         | _        | j        d d …         | _        d S )Nr{  zRoot is missingr~  ó   Typez/Type missing in Rootr_  z/Type in Root is not /Catalogrb  z/Pages missing in Rootz+/Pages in Root is not an indirect reference)r  rN   r6  r*  r7  Úread_trailerr^   rA  rI   r9  r;  rÞ   Úread_indirectr8  r:  ru   rf   r?  r<  Úlinearize_page_treer=  r>  rj   s    r   r4  zPdfParser.read_pdf_infoY  sô  € ØŒxÐ#Ð#Ð#Ý" 4¤8™}œ}ˆÔØ"Ô2°TÔ5FÑFˆÔØ×ÒÑÔÐÝØÔ×!Ò! 'Ñ*Ô*°$Ð6Ð8Iñ	
ô 	
ð 	
ð Ô)¨'Ô2ˆŒØŒ}Ð(Ð(Ð(ØÔ)×-Ò-¨g°tÑ<Ô<ˆŒÝ˜D×.Ò.¨t¬}Ñ=Ô=Ñ>Ô>ˆŒ	ØŒ=Ð Ý™	œ	ˆDŒIˆIå × 2Ò 2°4´=Ñ AÔ AÑBÔBˆDŒIÝ˜w¨$¬)Ð3Ð5LÑMÔMÐMÝØŒI�gÔ *Ò,Ð.Mñ	
ô 	
ð 	
õ 	ØŒI�MŠM˜(Ñ#Ô#¨4Ð/Ð1Iñ	
ô 	
ð 	
õ 	Ý�t”y Ô*Õ,=Ñ>Ô>Ø9ñ	
ô 	
ð 	
ð œ 8Ô,ˆŒØŒ~Ð)Ð)Ð)Ø"×0Ò0°´Ñ@Ô@ˆÔØ×-Ò-Ñ/Ô/ˆŒ
ð œ* Q Q Qœ-ˆŒˆˆr   rú   ú
int | Nonec                óf   — t          | j        j        dz   d¦  «        }|�|df| j        |j        <   |S )Nr	   r   )rf   rB  r‹   rb   )rk   rú   Ú	references      r   rf  zPdfParser.next_object_id}  s:   € å% d¤oÔ&DÀqÑ&HÈ!ÑLÔLˆ	ØÐØ4:¸A°;ˆDŒO˜IÔ/Ñ0ØÐr   s   [][()<>{}/%]s$   [][()<>{}/%\000\011\012\014\015\040]s   [\000\011\012\014\015\040]s#   [\000\011\012\014\015\0400-9a-fA-F]ó   *ó   +s   [\000\011\014\040]*s   [\r\n]+s   trailers   <<(.*>>)s	   startxrefs   ([0-9]+)s   %%EOFó   $s	   <<(.*?>>)c                ó¶  — | j         €J ‚t          | j         ¦  «        dz
  }|| j        k     r| j        }| j                             | j         |¦  «        }t          |d ud¦  «         |}|r9|}| j                             | j         |                     ¦   «         dz   ¦  «        }|°9|s|}|€J ‚|                     d¦  «        }t          |                     d¦  «        ¦  «        | _	        |  
                    |¦  «        | _        t          ¦   «         | _        |                      | j	        ¬¦  «         d| j        v r"|                      | j        d         ¦  «         d S d S )Né @  ztrailer end not foundé   r	   ræ   ©Úxref_section_offsetr}  )r  rN   r*  Úre_trailer_endÚsearchr^   ÚstartÚgroupra   r@  Úinterpret_trailerrA  r…   rB  Úread_xref_tableÚread_prev_trailer)rk   Úsearch_start_offsetÚmÚ
last_matchÚtrailer_datas        r   r—  zPdfParser.read_trailer¬  s`  € ØŒxÐ#Ð#Ð#Ý! $¤(™mœm¨eÑ3ÐØ Ô!2Ò2Ð2Ø"&Ô"3ÐØÔ×&Ò& t¤xÐ1DÑEÔEˆÝ˜q¨˜}Ð.EÑFÔFÐFàˆ
Øð 	EØˆJØÔ#×*Ò*¨4¬8°Q·W²W±Y´YÀ±^ÑDÔDˆAð ð 	Eð ð 	ØˆAØˆ}ˆ}ˆ}Ø—w’w˜q‘z”zˆÝ(+¨A¯GªG°A©J¬J©¬ˆÔ%Ø ×2Ò2°<Ñ@Ô@ˆÔÝ#™+œ+ˆŒØ×Ò°Ô1NÐÑOÔOÐOØ�dÔ'Ð'Ð'Ø×"Ò" 4Ô#4°WÔ#=Ñ>Ô>Ð>Ð>Ð>ð (Ð'r   r¤  Úprocessed_offsetsúlist[int] | Nonec                óò  — | j         €J ‚|€g }	 t          ||vd¦  «         |                      |¬¦  «        }| j                             | j         ||dz   …         ¦  «        }t          |d ud¦  «         |€J ‚|                     d¦  «        }t          t          |                     d¦  «        ¦  «        |k    d¦  «         |                      |¦  «        }d	|vrd S |                     |¦  «         |d	         }Œê)
NTztrailer loop foundr£  r¡  zprevious trailer not foundr	   ræ   zGxref section offset in previous trailer doesn't match what was expectedr}  )	r  r^   rª  Úre_trailer_prevr¦  r¨  ra   r©  rÑ   )rk   r¤  r°  Útrailer_offsetr­  r¯  rA  s          r   r«  zPdfParser.read_prev_trailerÃ  s7  € ð ŒxÐ#Ð#Ð#ØÐ$Ø "Ðð	8Ý"Ø#Ð+<Ð<Ð>Rñô ð ð "×1Ò1Ø$7ð 2ñ ô ˆNð Ô$×+Ò+Ø”˜¨.¸5Ñ*@Ð@ÔAñô ˆAõ # 1¨D =Ð2NÑOÔOÐOØ�=�=�=ØŸ7š7 1™:œ:ˆLÝ"Ý�A—G’G˜A‘J”J‘”Ð#6Ò6ð2ñô ð ð
  ×1Ò1°,Ñ?Ô?ˆLØ˜lÐ*Ð*Ø�Ø×$Ò$Ð%8Ñ9Ô9Ð9Ø".¨wÔ"7Ðð-	8r   s   /([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=r  rþ   s   >>r¯  r   údict[bytes, Any]c           	     ó¾  — i }d}	 | j                              ||¦  «        }|sk| j                             ||¦  «        }t          |d uo$|                     ¦   «         t          |¦  «        k    dt          ||d …         ¦  «        z   ¦  «         nu|                      |                     d¦  «        ¦  «        }t          |t          ¦  «        sJ ‚|                      ||                     ¦   «         ¦  «        \  }}|||<   |€n|}Œýt          d|v ot          |d         t          ¦  «        d¦  «         t          d|v ot          |d         t          ¦  «        d¦  «         |S )	Nr   Tz+name not found in trailer, remaining data: r	   r|  z&/Size not in trailer or not an integerr{  z1/Root not in trailer or not an indirect reference)Úre_nameÚmatchÚre_dict_endr^   ÚendrN   r¿   rÄ   r¨  ru   r   Ú	get_valuera   rf   )rÅ   r¯  Útrailerrú   r­  r�   rŽ   Úvalue_offsets           r   r©  zPdfParser.interpret_trailerë  sx  € àˆØˆð	"Ø”×!Ò! ,°Ñ7Ô7ˆAØð Ø”O×)Ò)¨,¸Ñ?Ô?�Ý&Ø˜T�MÐB a§e¢e¡g¤gµ°\Ñ1BÔ1BÒ&BØAÝ˜<¨¨¨Ô0Ñ1Ô1ñ2ñô ð ð
 Ø×$Ò$ Q§W¢W¨Q¡Z¤ZÑ0Ô0ˆCÝ˜c¥5Ñ)Ô)Ð)Ð)Ð)Ø"%§-¢-°¸a¿eºe¹g¼gÑ"FÔ"FÑˆE�<Ø ˆG�C‰LØÐ#ØØ!ˆFð!	"õ" 	Ø�wÐÐD¥:¨g°gÔ.>ÅÑ#DÔ#DØ4ñ	
ô 	
ð 	
õ 	Ø�wÐÐR¥:¨g°gÔ.>Õ@QÑ#RÔ#RØ?ñ	
ô 	
ð 	
ð ˆr   s   ([^#]*)(#([0-9a-fA-F]{2}))?FÚrawÚas_textrZ   ústr | bytesc                óš  — d}| j                              |¦  «        D ]‰}|                     d¦  «        rZ||                     d¦  «        t                               |                     d¦  «                             d¦  «        ¦  «        z   z  }Œq||                     d¦  «        z  }ŒŠ|r|                     d¦  «        S t          |¦  «        S )Nr   é   r	   ro   zutf-8)Úre_hashes_in_nameÚfinditerr¨  rÏ   ÚfromhexrO   r   )rÅ   r¾  r¿  rµ   r­  s        r   rÄ   zPdfParser.interpret_name  s¶   € àˆØÔ&×/Ò/°Ñ4Ô4ð 	#ð 	#ˆAØ�wŠw�q‰zŒzð #Ø˜Ÿš ™
œ
¥Y×%6Ò%6°q·w²w¸q±z´z×7HÒ7HÈÑ7TÔ7TÑ%UÔ%UÑUÑU��à˜Ÿš ™
œ
Ñ"��Øð 	Ø—;’;˜wÑ'Ô'Ð'å˜‘;”;Ðr   s   null(?=s   true(?=s   false(?=s   ([-+]?[0-9]+)(?=s)   ([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=s   \[ó   ]s   <(s   *)>r  s   ([-+]?[0-9]+)s   R(?=s   obj(?=s	   endobj(?=r  s	   %[^\r\n]*s   )*s   stream\r?\ns   endstream(?=é„  rÁ   ú*bytes | bytearray | memoryview | mmap.mmapÚexpect_indirectÚmax_nestingútuple[Any, int | None]c                ó  — |dk    rdS | j                              ||¦  «        }|r|                     ¦   «         }| j                             ||¦  «        }|�rKt	          t          |                     d¦  «        ¦  «        dk    d¦  «         t	          t          |                     d¦  «        ¦  «        dk    d¦  «         t	          |d u pS|t          t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        ¦  «        k    d¦  «         |                      ||                     ¦   «         |dz
  ¬¦  «        \  }}|€|d fS | j	                             ||¦  «        }t	          |d ud	¦  «         |€J ‚||                     ¦   «         fS t	          | d
¦  «         | j
                             ||¦  «        }|rÌt	          t          |                     d¦  «        ¦  «        dk    d¦  «         t	          t          |                     d¦  «        ¦  «        dk    d¦  «         t          t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        ¦  «        |                     ¦   «         fS | j                             ||¦  «        }|�r.|                     ¦   «         }i }| j                             ||¦  «        }|}	|s¿|	€J ‚| j                             ||	¦  «        }|sd}
t          |
¦  «        ‚t          |                      |                     d¦  «        ¦  «        ¦  «        }|                      ||                     ¦   «         |dz
  ¬¦  «        \  }}	|||<   |	€|d fS | j                             ||	¦  «        }|¯¿|                     ¦   «         }	| j                             ||	¦  «        }|rø|                     d¦  «        }|�t'          |t
          ¦  «        sd|› d�}
t          |
¦  «        ‚t)          ||                     ¦   «         |                     ¦   «         |z   …         ¦  «        }| j                             ||                     ¦   «         |z   ¦  «        }t	          |d ud¦  «         |€J ‚|                     ¦   «         }	t-          t/          |¦  «        |¦  «        |	fS t/          |¦  «        |	fS | j                             ||¦  «        }|r¥|                     ¦   «         }g }| j                             ||¦  «        }|}	|sZ|	€J ‚|                      ||	|dz
  ¬¦  «        \  }}	|                     |¦  «         |	€|d fS | j                             ||	¦  «        }|¯Z||                     ¦   «         fS | j                             ||¦  «        }|rd |                     ¦   «         fS | j                             ||¦  «        }|rd|                     ¦   «         fS | j                             ||¦  «        }|rd|                     ¦   «         fS | j                             ||¦  «        }|rIt          |                      |                     d¦  «        ¦  «        ¦  «        |                     ¦   «         fS | j                             ||¦  «        }|r6t          |                     d¦  «        ¦  «        |                     ¦   «         fS | j                             ||¦  «        }|r6tA          |                     d¦  «        ¦  «        |                     ¦   «         fS | j!                             ||¦  «        }|r¥tE          d„ |                     d¦  «        D ¦   «         ¦  «        }tG          |¦  «        dz  dk    r"|                     tI          d¦  «        ¦  «         tD           %                    | &                    d¦  «        ¦  «        |                     ¦   «         fS | j'                             ||¦  «        }|r(|  (                    ||                     ¦   «         ¦  «        S dtS          |||dz   …         ¦  «        › �}
t          |
¦  «        ‚)Nr   )NNr	   z<indirect object definition: object ID must be greater than 0ræ   z;indirect object definition: generation must be non-negativez2indirect object definition different than expected)rÊ  z(indirect object definition end not foundz$indirect object definition not foundz;indirect object reference: object ID must be greater than 0z:indirect object reference: generation must be non-negativezkey must be a names   Lengthz&bad or missing Length in stream dict (r¾   zstream end not foundTFc              3  ó"   K  — | ]
}|d v ¯|V — ŒdS )s   0123456789abcdefABCDEFNrX   r  s     r   rM   z&PdfParser.get_value.<locals>.<genexpr>È  s6   è è € ð #ð #Ø¨Ð.GÐ)GÐ)G�Ð)GÐ)GÐ)GÐ)Gð#ð #r   ó   0ro   zunrecognized object: é    )*Ú
re_commentr¸  rº  Úre_indirect_def_startr^   ra   r¨  rf   r»  Úre_indirect_def_endÚre_indirect_referenceÚre_dict_startr¹  r·  rS   r´   rÄ   Úre_stream_startrI   ru   r   Úre_stream_endr
  rÞ   Úre_array_startÚre_array_endrÑ   Úre_nullÚre_trueÚre_falseÚre_intÚre_realr  Úre_string_hexrÏ   rN   rÊ   rÅ  rO   Úre_string_litÚget_literal_stringr¿   )rÅ   rÁ   rú   rÉ  rÊ  r­  rr   Úobject_offsetrÓ   Úcurrent_offsetr™   r�   rŽ   Ú
stream_lenÚstream_dataÚresultsÚ
hex_strings                    r   r»  zPdfParser.get_valueJ  sB  € ð ˜!ÒÐØ�:ØŒN× Ò   vÑ.Ô.ˆØð 	Ø—U’U‘W”WˆFØÔ%×+Ò+¨D°&Ñ9Ô9ˆØñ 	#Ý"Ý�A—G’G˜A‘J”J‘” !Ò#ØNñô ð õ #Ý�A—G’G˜A‘J”J‘” 1Ò$ØMñô ð õ #Ø 4Ð'ð GØ"Ý$¥S¨¯ª°©¬¡_¤_µc¸!¿'º'À!¹*¼*±o´oÑFÔFòGàDñ	ô ð ð %(§M¢MØ�a—e’e‘g”g¨;¸©?ð %2ñ %ô %Ñ!ˆF�Mð Ð$Ø˜t�|Ð#ØÔ'×-Ò-¨d°MÑBÔBˆAÝ"Ø˜�ÐIñô ð ð �=�=�=Ø˜1Ÿ5š5™7œ7�?Ð"ÝØÐÐ!Gñ	
ô 	
ð 	
ð Ô%×+Ò+¨D°&Ñ9Ô9ˆØð 		PÝ"Ý�A—G’G˜A‘J”J‘” !Ò#ØMñô ð õ #Ý�A—G’G˜A‘J”J‘” 1Ò$ØLñô ð õ %¥S¨¯ª°©¬¡_¤_µc¸!¿'º'À!¹*¼*±o´oÑFÔFÈÏÊÉÌÐOÐOØÔ×#Ò# D¨&Ñ1Ô1ˆØñ  	3Ø—U’U‘W”WˆFØ%'ˆFØ”×%Ò% d¨FÑ3Ô3ˆAØ)/ˆNØð @Ø%Ð1Ð1Ð1Ø”K×%Ò% d¨NÑ;Ô;�Øð .Ø.�CÝ(¨Ñ-Ô-Ð-Ý˜c×0Ò0°·²¸±´Ñ<Ô<Ñ=Ô=�Ø(+¯ªØ˜!Ÿ%š%™'œ'¨{¸Q©ð )6ñ )ô )Ñ%��~ð $��s‘Ø!Ð)Ø! 4˜<Ð'Ø”O×)Ò)¨$°Ñ?Ô?�ð ð @ð ŸUšU™WœWˆNØÔ#×)Ò)¨$°Ñ?Ô?ˆAØð 
OØ#ŸZšZ¨	Ñ2Ô2�
ØÐ%­Z¸
ÅCÑ-HÔ-HÐ%ØPÀ:ÐPÐPÐP�CÝ(¨Ñ-Ô-Ð-Ý# D¨¯ª©¬°1·5²5±7´7¸ZÑ3GÐ)GÔ$HÑIÔI�ØÔ%×+Ò+¨D°!·%²%±'´'¸JÑ2FÑGÔG�Ý& q° }Ð6LÑMÔMÐMØ�}�}�}Ø!"§¢¡¤�Ý ¥¨¡¤°+Ñ>Ô>ÀÐNÐNÝ˜6‘?”? NÐ2Ð2ØÔ×$Ò$ T¨6Ñ2Ô2ˆØð 	$Ø—U’U‘W”WˆFØˆGØÔ ×&Ò& t¨VÑ4Ô4ˆAØ#ˆNØð AØ%Ð1Ð1Ð1Ø(+¯ªØ˜.°kÀA±oð )6ñ )ô )Ñ%��~ð —’˜uÑ%Ô%Ð%Ø!Ð)Ø" D˜=Ð(ØÔ$×*Ò*¨4°Ñ@Ô@�ð ð Að ˜AŸEšE™GœGÐ#Ð#ØŒK×Ò˜d FÑ+Ô+ˆØð 	!Ø˜Ÿš™œ�=Ð ØŒK×Ò˜d FÑ+Ô+ˆØð 	!Ø˜Ÿš™œ�=Ð ØŒL×Ò˜t VÑ,Ô,ˆØð 	"Ø˜!Ÿ%š%™'œ'�>Ð!ØŒK×Ò˜d FÑ+Ô+ˆØð 	DÝ˜3×-Ò-¨a¯gªg°a©j¬jÑ9Ô9Ñ:Ô:¸A¿EºE¹G¼GÐCÐCØŒJ×Ò˜T 6Ñ*Ô*ˆØð 	,Ý�q—w’w˜q‘z”z‘?”? A§E¢E¡G¤GÐ+Ð+ØŒK×Ò˜d FÑ+Ô+ˆØð 	.å˜Ÿš ™œÑ$Ô$ a§e¢e¡g¤gÐ-Ð-ØÔ×#Ò# D¨&Ñ1Ô1ˆØð 	Må"ð #ð #ØŸ7š7 1™:œ:ð#ñ #ô #ñ ô ˆJõ �:‰Œ Ñ" aÒ'Ð'à×!Ò!¥# d¡)¤)Ñ,Ô,Ð,Ý×$Ò$ Z×%6Ò%6°zÑ%BÔ%BÑCÔCÀQÇUÂUÁWÄWÐLÐLØÔ×#Ò# D¨&Ñ1Ô1ˆØð 	9Ø×)Ò)¨$°·²±´Ñ8Ô8Ð8àH¥d¨4°¸À"¹Ð0DÔ+EÑ&FÔ&FÐHÐHˆÝ˜SÑ!Ô!Ð!r   sF   (\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))ó   nrÿ   ó   ró   ó   tó   	ó   bó   ó   fó   r  útuple[bytes, int]c                óè  — d}t          ¦   «         }| j                             ||¦  «        D �]µ}|                     |||                     ¦   «         …         ¦  «         |                     d¦  «        r;|                     | j        |                     d¦  «        d                  ¦  «         �n|                     d¦  «        r?|                     t          |                     d¦  «        dd …         d¦  «        ¦  «         nË|                     d¦  «        rnµ|                     d¦  «        r|                     d¦  «         nŠ|                     d¦  «        r|                     d	¦  «         |dz  }nZ|                     d
¦  «        rE|dk    r%t          |¦  «        | 
                    ¦   «         fc S |                     d¦  «         |dz  }| 
                    ¦   «         }�Œ·d}t          |¦  «        ‚)Nr   r	   ræ   é   rÂ  é   rÿ   é   r  é   r  zunfinished literal string)rÏ   Úre_lit_str_tokenrÄ  rÒ   r§  r¨  Úescaped_charsrÑ   ra   r   rº  rS   )rÅ   rÁ   rú   Únesting_depthrÓ   r­  r™   s          r   rà  zPdfParser.get_literal_stringì  s¾  € ð ˆÝ‘”ˆØÔ%×.Ò.¨t°VÑ<Ô<ð 	ñ 	ˆAØ�MŠM˜$˜v¨¯ª©	¬	Ð1Ô2Ñ3Ô3Ð3Ø�wŠw�q‰zŒzð #Ø—’˜cÔ/°·²¸±
´
¸1´Ô>Ñ?Ô?Ð?Ñ?Ø—’˜‘”ð #Ø—’�c !§'¢'¨!¡*¤*¨Q¨R¨R¤.°!Ñ4Ô4Ñ5Ô5Ð5Ð5Ø—’˜‘”ð #ØØ—’˜‘”ð 	#Ø—’˜eÑ$Ô$Ð$Ð$Ø—’˜‘”ð #Ø—’˜dÑ#Ô#Ð#Ø Ñ"��Ø—’˜‘”ð #Ø  AÒ%Ð%Ý  ™=œ=¨!¯%ª%©'¬'Ð1Ð1Ð1Ð1Ø—’˜dÑ#Ô#Ð#Ø Ñ"�Ø—U’U‘W”WˆF‰FØ)ˆÝ˜SÑ!Ô!Ð!r   s   xrefs+   ([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)c                óŠ  — | j         €J ‚d}| j                             | j         || j        z   ¦  «        }t	          |d ud¦  «         |€J ‚|                     ¦   «         }	 | j                             | j         |¦  «        }|st	          |d¦  «         �n0d}|                     ¦   «         }t          |                     d¦  «        ¦  «        }t          |                     d¦  «        ¦  «        }t          |||z   ¦  «        D ]À}| j
                             | j         |¦  «        }t	          |d ud¦  «         |€J ‚|                     ¦   «         }|                     d¦  «        d	k    }|sYt          |                     d¦  «        ¦  «        }	t          |                     d¦  «        ¦  «        |	f}
|| j        vr
|
| j        |<   ŒÁ�Œd|S )
NFzxref section start not foundTzxref subsection start not foundr	   ræ   zxref entry not foundrÂ  rî  )r  Úre_xref_section_startr¸  r*  r^   rº  Úre_xref_subsection_startra   r¨  rÕ   Úre_xref_entryrB  )rk   r¤  Úsubsection_foundr­  rú   Úfirst_objectÚnum_objectsrn  Úis_freerc   Ú	new_entrys              r   rª  zPdfParser.read_xref_table  sÀ  € ØŒxÐ#Ð#Ð#Ø ÐØÔ&×,Ò,ØŒHÐ)¨DÔ,=Ñ=ñ
ô 
ˆõ 	˜q¨˜}Ð.LÑMÔMÐMØˆ}ˆ}ˆ}Ø—’‘”ˆð	7ØÔ-×3Ò3°D´H¸fÑEÔEˆAØð Ý&Ø$Ð&Gñô ð ñ Ø#ÐØ—U’U‘W”WˆFÝ˜qŸwšw q™zœz™?œ?ˆLÝ˜aŸgšg a™jœj™/œ/ˆKÝ˜<¨¸Ñ)CÑDÔDð 
7ð 
7�ØÔ&×,Ò,¨T¬X°vÑ>Ô>�Ý& q° }Ð6LÑMÔMÐMØ�}�}�}ØŸš™œ�ØŸ'š' !™*œ*¨Ò,�Øð 7Ý!$ Q§W¢W¨Q¡Z¤Z¡¤�JÝ!$ Q§W¢W¨Q¡Z¤Z¡¤°*Ð =�IØ ¤Ð/Ð/Ø-6˜œ¨Ñ*øñ+	7ð, ˆr   c                ó"  — | j         |d                  \  }}t          ||d         k    d|d         › d|d         › d|› d|› �¦  «         | j        €J ‚|                      | j        || j        z   t          |Ž |¬¦  «        d         }|| j        |<   |S )Nr   r	   zexpected to find generation z for object ID z) in xref table, instead found generation z at offset )rÉ  rÊ  )rB  r^   r  r»  r*  rf   r3  )rk   r‚  rÊ  rú   rc   rŽ   s         r   r˜  zPdfParser.read_indirect4  sÞ   € Ø!œ_¨S°¬VÔ4Ñˆ�
ÝØ˜#˜aœ&Ò ðO¨3¨q¬6ð Oð OÀ#ÀaÄ&ð Oð OØ/9ðOð OØFLðOð Oñ	
ô 	
ð 	
ð
 ŒxÐ#Ð#Ð#Ø—’ØŒHØ�TÔ&Ñ&Ý-¨sÐ3Ø#ð	 ñ 
ô 
ð
 ôˆð $)ˆÔ˜CÑ Øˆr   ÚnodeúPdfDict | Noneúlist[IndirectReference]c                ó¦  — t          ¦   «         }|�|}n-| j        }| j        �|                     | j        j        ¦  «         t          |d         dk    d¦  «         g }t          |d         ¦  «        g}|rÜt          |d         d ¦  «        }|€|                     ¦   «          Œ/t          |j        |vd|› �¦  «         |                     |j        ¦  «         |  	                    |¦  «        }|d         dk    r| 
                    |¦  «         nBt          |d         dk    d¦  «         | 
                    t          |d         ¦  «        ¦  «         |°Ü|S )Nr–  rb  z%/Type of page tree node is not /Pagess   Kidsrð   z6page tree contains a cyclic or duplicate reference to r‡  )rž   r<  r?  Úaddrb   r^   ÚiterÚnextrª   r˜  rÑ   )rk   r  Úprocessed_idsÚ	page_noder=  ÚstackÚkidÚ
kid_objects           r   r™  zPdfParser.linearize_page_treeE  s~  € õ ™œˆØÐØˆIˆIàÔ+ˆIØŒ~Ð)Ø×!Ò! $¤.Ô":Ñ;Ô;Ð;ÝØ�gÔ (Ò*Ð,Sñ	
ô 	
ð 	
ð ˆõ �i Ô(Ñ)Ô)Ð*ˆØð 	8Ý�u˜R”y $Ñ'Ô'ˆCØˆ{Ø—	’	‘”�ØÝ"Ø” ]Ð2ØNÈÐNÐNñô ð ð ×Ò˜cœmÑ,Ô,Ð,Ø×+Ò+¨CÑ0Ô0ˆJØ˜'Ô" gÒ-Ð-Ø—’˜SÑ!Ô!Ð!Ð!å&Ø˜wÔ'¨8Ò3Ø;ñô ð ð —’�T *¨WÔ"5Ñ6Ô6Ñ7Ô7Ð7ð% ð 	8ð& ˆr   )NNNr   r%  )r&  r'  r£   r(  r  r)  r*  ra   r+  r   r   r\   )r   r   )rF  rr   r   r\   r²   )r   r   r   r\   )r   rf   rG   )rx  ry  r   r\   )r‚  rƒ  r„  r   r…  r   r   rf   )r‚  ry  r„  r   r…  r   r   rf   )r£   r¤   r   rŽ  )rú   rš  r   rf   )r¤  ra   r°  r±  r   r\   )r¯  r   r   rµ  )F)r¾  r   r¿  rZ   r   rÀ  )NrÇ  )
rÁ   rÈ  rú   ra   rÉ  ry  rÊ  ra   r   rË  )rÁ   rÈ  rú   ra   r   rð  )r¤  ra   r   ra   )rÇ  )r‚  rf   rÊ  ra   r   r   )r  r  r   r  )IrT   rU   rV   rW   rŒ   rE  rH  rK  rJ  r5  rC  rZ  r]  ri  rg  r�  rl  rh  re  Ústaticmethodr1  r4  rf  Ú	delimiterÚdelimiter_or_wsÚ
whitespaceÚwhitespace_or_hexÚwhitespace_optionalÚwhitespace_mandatoryÚwhitespace_optional_no_nlÚnewline_onlyÚnewlineÚreÚcompileÚDOTALLr¥  r³  r—  r«  Úre_whitespace_optionalr·  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÷  rà  rú  rû  rü  rª  r˜  r™  rX   r   r   rÃ   rÃ   y  sµ  € € € € € ðð ð  $Ø"Ø(,ØØð3ð 3ð 3ð 3ð 3ðjð ð ð ðð ð ð ðð ð ð ð
ð 
ð 
ð 
ðð ð ð ð$ð $ð $ð $ð$ð $ð $ð $ð*ð *ð *ð *ðð ð ð ðð ð ð ð@ 8<ð
ð 
ð 
ð 
ð 
ð4:ð :ð :ð :ðð ð ð ð0;ð ;ð ;ð ;ð ð	ð 	ð 	ñ „\ð	ð"(ð "(ð "(ð "(ðHð ð ð ð ð !€IØ>€OØ/€JØ?ÐØ$ tÑ+ÐØ%¨Ñ,Ðà 7ÐØ€LØ'¨,Ñ6Ð9RÑR€GØ�R”ZØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ð ñ	ð ñ		ð ñ
	ð ñ	ð 	Œ	ñô €Nð !�b”jØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ð ñ	ð ñ		ð ñ
	ð 	Œ	ñô €Oð?ð ?ð ?ð ?ð0 OSð8ð 8ð 8ð 8ð 8ð< (˜RœZÐ(;Ñ<Ô<ÐØˆbŒjØØ
-ñ	.à
ñ	ð ñ	ñô €Gð �B”JÐ2°VÑ;Ñ<Ô<€MØ�"”*Ð0°6Ñ9Ð<OÑOÑPÔP€Kàðð ð ñ „[ðð< #˜œ
Ð#BÑCÔCÐàð
ð 
ð 
ð 
ñ „[ð
ð ˆbŒjÐ,¨{Ñ:¸_ÑLÈuÑTÑUÔU€GØˆbŒjÐ,¨{Ñ:¸_ÑLÈuÑTÑUÔU€GØˆrŒzÐ-°Ñ<¸ÑNÐQVÑVÑWÔW€HØˆRŒZØÐ2Ñ2°_ÑDÀuÑLñô €Fð ˆbŒjØØ
7ñ	8à
ñ	ð ñ	ñô €Gð  �R”ZÐ 3°fÑ <Ñ=Ô=€NØ�2”:Ð1°EÑ9Ñ:Ô:€LØ�B”JØ˜fÑ$Ð'8Ñ8¸7ÑBñô €Mð �B”JÐ2°VÑ;Ñ<Ô<€MØ&˜BœJØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ñ	ô 	Ðð '˜BœJØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ñ	ô 	Ðð %˜"œ*Ø˜mÑ+¨oÑ=ÀÑEñô Ðð �”ØÐ#Ñ# mÑ3°gÑ=ÀÑFñô €Jð !�b”jÐ!4°Ñ!FÑGÔG€OØ�B”JØÐ.Ñ.°Ñ@À5ÑHñô €Mð ð
 59ØðI"ð I"ð I"ð I"ñ „[ðI"ðV "�r”zØRñô ÐðØˆeðàˆeðð 	ˆeðð 	ˆeð	ð
 	ˆeðð 	ˆdðð 	ˆdðð 	ˆuðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�4ðð 	ˆˆD‰	Œ	�4ðð  	ˆˆE‰
Œ
�Eð!€Mð& ð"ð "ð "ñ „[ð"ð6 '˜BœJÐ':¸XÑ'EÈÑ'OÑPÔPÐØ)˜rœzØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ñ ô  Ðð �B”JÐNÑOÔO€Mðð ð ð ðBð ð ð ð ð$ &*ð$ð $ð $ð $ð $ð $ð $r   rÃ   )r   r   r   r   )rC   r   r   r   )rY   rZ   r[   r   r   r\   )rÜ   r   r   r   )*Ú
__future__r   Ú__lazy_modules__r   r   rà   r   rW  r  rP  rô   r   Útypingr   r   rE   r
   ÚTYPE_CHECKINGr   r   rá   r   r   Ú	_DictBaser   rH   rQ   r-  rS   r^   r`   rf   r‚   r…   r´   r"  r×   rÞ   r  r
  rÛ   rÃ   rX   r   r   ú<module>r"     s  ðØ "Ð "Ð "Ð "Ð "Ð "à/Ð/Ð/Ð à €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à€Øð %ØÐÐÐÐÐÐÐàÔ$ S¨5¡[°#Ð%5Ô6€I€IàÔ$€Ið
7ð 7ð 7ð 7ð*Øˆ(ð*àˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð	*ð
 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð  	ˆ(ð!*ð" 	ˆ(ð#*ð *ð$ 	ˆ(ð%*ð& 	ˆ(ð'*ð( 	ˆ(ð)*ð* 	ˆ(ð+*ð, 	ˆ(ð-*ð. 	ˆ(ð/*ð0 	ˆ(ð1*ð2 	ˆ(ð3*ð4 	ˆ(ð5*ð6 	ˆ(ð7*ð8 	ˆ(ð9*ð: 	ˆ(ð;*ð< 	ˆ(ð=*ð> 	ˆ(ð?*ð@ 	ˆ(ðA*ðB 	ˆ(ðC*ðD 	ˆ(ðE*ð *ðF Ø
Ø
Ø
Ø
Ø
Ø
ðS*ð *ð *€ðZJð Jð Jð Jð	ð 	ð 	ð 	ð 	�\ñ 	ô 	ð 	ð,ð ,ð ,ð ,ð
ð ð ð ð ˜Zñ ô ð ð
7ð 7ð 7ð 7ð 7Ð.ñ 7ô 7ð 7ð(9ð 9ð 9ð 9ð 9Ð)ñ 9ô 9ð 9ð
^ð ^ð ^ð ^ð ^ñ ^ô ^ð ^ðB&ð &ð &ð &ð &ñ &ô &ð &ðRDð Dð Dð Dð Dˆt�CŒyñ Dô Dð Dð
-ð -ð -ð -ð -ˆiñ -ô -ð -ð`Bð Bð Bð Bð Bñ Bô Bð Bð+ð +ð +ð +ð +ñ +ô +ð +ð,ð ð ð ð:pð pð pð pð pñ pô pð pð pð pr   