§
    Å‡tj—  ã            	      óô  — d dl m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 ej        eez  ef         Znej        Zdyd„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 d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“dMdN“dOdP“¥dQdRdSdTdUdVdWdXœ¥ZdzdZ„Z G d[„ d\e¦  «        Zd{da„Z G db„ dce¦  «        Z G dd„ dee¦  «        Z G df„ dge¦  «        Z G dh„ di¦  «        Z G dj„ dk¦  «        Z G dl„ dme e         ¦  «        Z! G dn„ doe¦  «        Z" G dp„ dq¦  «        Z# G dr„ ds¦  «        Z$d|dv„Z% G dw„ dx¦  «        Z&dS )}é    )ÚannotationsN)ÚAnyÚ
NamedTupleé   )Ú	ImageFileF)ÚIOÚsÚstrÚreturnÚbytesc                óF   — t           j        |                      d¦  «        z   S )NÚ	utf_16_be)ÚcodecsÚBOM_UTF16_BEÚencode)r	   s    úK/var/www/html/CA-Chatbot/venv/lib/python3.11/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>O   s8   è è € ÐIÐI¸t•~×)Ò)¨$µ°D±	´	Ñ:Ô:ÐIÐIÐIÐIÐIÐIr   )Úlenr   r   ÚdecodeÚjoin)r?   s    r   Údecode_textrM   K   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   rO   rO   R   s   € € € € € ðð ð 	€Dr   rO   Ú	conditionÚboolÚerror_messageÚNonec                ó(   — | st          |¦  «        ‚d S rC   )rO   )rU   rW   s     r   Úcheck_format_conditionrZ   Y   s"   € Øð ,Ý˜]Ñ+Ô+Ð+ð,ð ,r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚIndirectReferenceTupleÚintÚ	object_idÚ
generationN)rP   rQ   rR   Ú__annotations__rT   r   r   r\   r\   ^   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©r^   r_   ©Úselfs    r   Ú__str__zIndirectReference.__str__d   s   € Ø”.Ð6Ð6 4¤?Ð6Ð6Ð6Ð6r   r   c                óP   — |                       ¦   «                              d¦  «        S ©Núus-ascii)rh   r   rf   s    r   Ú	__bytes__zIndirectReference.__bytes__g   s   € Ø�|Š|‰~Œ~×$Ò$ ZÑ0Ô0Ð0r   ÚotherÚobjectrV   c                ó�   — | j         |j         urdS t          |t          ¦  «        sJ ‚|j        | j        k    o|j        | j        k    S )NF)Ú	__class__Ú
isinstancerb   r^   r_   ©rg   rm   s     r   Ú__eq__zIndirectReference.__eq__j   sK   € ØŒ> ¤Ð0Ð0Ø�5Ý˜%Õ!2Ñ3Ô3Ð3Ð3Ð3ØŒ $¤.Ò0ÐX°UÔ5EÈÌÒ5XÐXr   c                ó   — | |k     S rC   rT   rr   s     r   Ú__ne__zIndirectReference.__ne__p   s   € Ø˜E’MÐ"Ð"r   r]   c                ó8   — t          | j        | j        f¦  «        S rC   )Úhashr^   r_   rf   s    r   Ú__hash__zIndirectReference.__hash__s   s   € Ý�T”^ T¤_Ð5Ñ6Ô6Ð6r   N©r   r
   ©r   r   ©rm   rn   r   rV   ©r   r]   )rP   rQ   rR   rh   rl   rs   ru   rx   rT   r   r   rb   rb   c   s|   € € € € € ð7ð 7ð 7ð 7ð1ð 1ð 1ð 1ðYð Yð Yð Yð#ð #ð #ð #ð7ð 7ð 7ð 7ð 7ð 7r   rb   c                  ó   — e Zd Zdd„ZdS )ÚIndirectObjectDefr   r
   c                ó&   — | j         › d| j        › d�S )Nrd   z objre   rf   s    r   rh   zIndirectObjectDef.__str__x   s   € Ø”.Ð8Ð8 4¤?Ð8Ð8Ð8Ð8r   Nry   )rP   rQ   rR   rh   rT   r   r   r~   r~   w   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   rX   c                óB   — i | _         i | _        ddi| _        d| _        d S )Nr   i   F)Úexisting_entriesÚnew_entriesÚdeleted_entriesÚreading_finishedrf   s    r   Ú__init__zXrefTable.__init__}   s6   € àð 	Ôð ð 	Ôð !" 5˜zˆÔØ %ˆÔÐÐr   Úkeyr]   Úvalueútuple[int, int]c                ód   — | j         r|| j        |<   n
|| j        |<   || j        v r
| j        |= d S d S rC   )r†   r„   rƒ   r…   ©rg   rˆ   r‰   s      r   Ú__setitem__zXrefTable.__setitem__‡   sQ   € ØÔ ð 	/Ø$)ˆDÔ˜SÑ!Ð!à).ˆDÔ! #Ñ&Ø�$Ô&Ð&Ð&ØÔ$ SÐ)Ð)Ð)ð 'Ð&r   c                óX   — 	 | j         |         S # t          $ r | j        |         cY S w xY wrC   )r„   ÚKeyErrorrƒ   ©rg   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)rg   rˆ   r_   Ú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   rV   c                ó&   — || j         v p|| j        v S rC   )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 rC   )rJ   Úsetrƒ   Úkeysr„   r…   rf   s    r   Ú__len__zXrefTable.__len__¦   sl   € ÝÝ�Ô%×*Ò*Ñ,Ô,Ñ-Ô-Ý�$Ô"×'Ò'Ñ)Ô)Ñ*Ô*ñ+å�$Ô&×+Ò+Ñ-Ô-Ñ.Ô.ñ/ñ
ô 
ð 	
r   úset[int]c                óê   — t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z
  t          | j                             ¦   «         ¦  «        z  S rC   )r™   rƒ   rš   r…   r„   rf   s    r   rš   zXrefTable.keys­   s\   € å�Ô%×*Ò*Ñ,Ô,Ñ-Ô-µ°DÔ4H×4MÒ4MÑ4OÔ4OÑ0PÔ0PÑPÝ�Ô ×%Ò%Ñ'Ô'Ñ(Ô(ñ)ð 	)r   Úfú	IO[bytes]c                ó˜  — t          t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z  ¦  «        }t          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Ú	enumeraterJ   ÚpoprZ   r“   )rg   rž   rš   Údeleted_keysÚ	startxrefÚprevÚindexrˆ   Úcontiguous_keysr^   Ú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ˆÝ�c $Ô"6×";Ò";Ñ"=Ô"=Ñ>Ô>Ñ?Ô?ˆØ—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   ÆFÆFÆFN©r   rX   )rˆ   r]   r‰   rŠ   r   rX   )rˆ   r]   r   rŠ   )rˆ   r]   r   rX   )rˆ   r]   r   rV   r|   )r   rœ   )rž   rŸ   r   r]   )rP   rQ   rR   r‡   r�   r‘   r•   r—   r›   rš   r£   rT   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   rX   c                ó¼   — t          |t          ¦  «        r|j        | _        d S t          |t          ¦  «        r	|| _        d S |                     d¦  «        | _        d S rj   )rq   r¯   r°   r   r   )rg   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 rj   )r°   rK   rf   s    r   Úname_as_strzPdfName.name_as_strå   s   € ØŒy×Ò 
Ñ+Ô+Ð+r   rm   rn   rV   c                ób   — t          |t          ¦  «        o|j        | j        k    p
|| j        k    S rC   )rq   r¯   r°   rr   s     r   rs   zPdfName.__eq__è   s1   € å�u�gÑ&Ô&ÐB¨5¬:¸¼Ò+Bð à�d”iÒð	 r   r]   c                ó*   — t          | j        ¦  «        S rC   )rw   r°   rf   s    r   rx   zPdfName.__hash__í   s   € Ý�D”I‰ŒÐr   c                óJ   — | j         j        › dt          | j        ¦  «        › d�S )Nú(ú))rp   rP   Úreprr°   rf   s    r   Ú__repr__zPdfName.__repr__ð   s&   € Ø”.Ô)Ð>Ð>­D°´©O¬OÐ>Ð>Ð>Ð>r   Údatac                óH   —  | t                                |¦  «        ¦  «        S rC   )Ú	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 rT   )Úord)rG   Ú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   )rg   Úresultr?   s      r   rl   zPdfName.__bytes__ù   sf   € Ý˜4‘”ˆØ”ð 	,ð 	,ˆAØ�DÔ&Ð&Ð&Ø—’˜aÑ Ô Ð Ð à—’˜h¨™lÑ+Ô+Ð+Ð+Ý�V‰}Œ}Ðr   N)r°   r±   r   rX   ry   r{   r|   )r¼   r   r   r¯   rz   )rP   rQ   rR   r`   r‡   r´   rs   rx   r»   ÚclassmethodrÁ   r™   ÚrangerË   rl   rT   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 rC   )Úpdf_repr)rG   Úxs     r   rI   z%PdfArray.__bytes__.<locals>.<genexpr>  s(   è è € Ð ;Ð ;°¥¨!¡¤Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;r   s    ])rL   rf   s    r   rl   zPdfArray.__bytes__  s-   € Ø�t—y’yÐ ;Ð ;°dÐ ;Ñ ;Ô ;Ñ;Ô;Ñ;¸eÑCÐCr   Nrz   )rP   rQ   rR   rl   rT   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   rX   c                óˆ   — |dk    r#t           j                             | ||¦  «         d S || |                     d¦  «        <   d S )Nr¼   rk   )Ú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 )Nrk   ÚDatezD:é   ÚZé   é   é   é<   é   é   z%Y%m%d%H%M%S)ú+ú-ré   éÿÿÿÿ)r   r�   ÚAttributeErrorrq   r   rM   ÚendswithÚ
startswithrJ   r]   ÚtimeÚstrptimeÚgmtimeÚcalendarÚtimegm)rg   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¯   )rg   Úoutrˆ   r‰   s       r   rl   zPdfDict.__bytes__*  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   rX   )rˆ   r
   r   rÞ   rz   )rP   rQ   rR   rÝ   rø   rl   rT   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   rX   c                ó   — || _         d S rC   )r¼   )rg   r¼   s     r   r‡   zPdfBinary.__init__9  s   € ØˆŒ	ˆ	ˆ	r   r   c                óP   — dd                      d„ | j        D ¦   «         ¦  «        z  S )Ns   <%s>r   c              3  ó    K  — | ]	}d |z  V — Œ
dS )s   %02XNrT   ©rG   r?   s     r   rI   z&PdfBinary.__bytes__.<locals>.<genexpr>=  s&   è è € Ð!AÐ!A°! '¨A¡+Ð!AÐ!AÐ!AÐ!AÐ!AÐ!Ar   )rL   r¼   rf   s    r   rl   zPdfBinary.__bytes__<  s*   € Ø˜ŸšÐ!AÐ!A°t´yÐ!AÑ!AÔ!AÑAÔAÑAÐAr   N)r¼   r   r   rX   rz   )rP   rQ   rR   r‡   rl   rT   r   r   rÿ   rÿ   8  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   rX   c                ó"   — || _         || _        d S rC   )r  r  )rg   r  r  s      r   r‡   zPdfStream.__init__A  s   € Ø$ˆŒØˆŒˆˆr   Ú
max_lengthr]   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  ÚzlibÚdecompressobjÚ
decompressÚunconsumed_tailÚ
ValueErrorrº   ÚNotImplementedError)rg   r
  ÚfilterÚdobjÚ	plaintextr”   s         r   rK   zPdfStream.decodeE  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   rX   )r
  r]   r   r   )rP   rQ   rR   r‡   r   Ú	SAFEBLOCKrK   rT   r   r   r  r  @  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   nullrk   s   (D:z%Y%m%d%H%M%SZó   )ó   \s   \\ó   (ó   \(s   \))rq   r¯   rÙ   rÒ   rÿ   r   r]   Úfloatr
   r   rï   Ústruct_timeÚstrftimeÚdictÚlistrÖ   r   Úreplace)r×   s    r   rÖ   rÖ   V  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‘d1„Zd2Zd3Zd4Zd5Zed6z   Zed7z   Zd8Zd9Z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   d@z   ez   d<z   ez   d=z   ez   d>z   ez   e j"        ¦  «        Z$d‰dA„Z%	 dŒd’dE„Z& e j!        e¦  «        Z' e j!        edFz   ez   dGz   ¦  «        Z( e j!        edHz   ¦  «        Z) e j!        edIz   ez   ¦  «        Z*e+d“dM„¦   «         Z, e j!        dN¦  «        Z-e+d”d•dT„¦   «         Z. e j!        edUz   ez   dGz   ¦  «        Z/ e j!        edVz   ez   dGz   ¦  «        Z0 e j!        edWz   ez   dGz   ¦  «        Z1 e j!        edXz   ez   dGz   ¦  «        Z2 e j!        edYz   ez   dGz   ¦  «        Z3 e j!        edZz   ¦  «        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   d`z   ez   dGz   ¦  «        Z8 e j!        ed_z   ez   d_z   ez   daz   ez   dGz   ¦  «        Z9 e j!        edbz   ez   dGz   ¦  «        Z: e j!        dcez   ddz   ez   dez   ¦  «        Z; e j!        edfz   ¦  «        Z< e j!        edgz   ez   dGz   ¦  «        Z=e+	 	 d–d—dn„¦   «         Z> e j!        do¦  «        Z?i dpdq“drds“dtdu“dvdw“dxdy“dcdc“dGdG“dzdz“ e@dp¦  «        dq“ e@dr¦  «        ds“ e@dt¦  «        du“ e@dv¦  «        dw“ e@dx¦  «        dy“ e@dc¦  «        dc“ e@dG¦  «        dG“ e@dz¦  «        dz“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_offsetr]   Úmoder
   r   rX   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_inforO   Ú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)rg   r#  rž   r  r'  r(  r”   s          r   r‡   zPdfParser.__init__y  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/c                ó   — | S rC   rT   rf   s    r   Ú	__enter__zPdfParser.__enter__®  s   € Øˆr   Úargsrn   c                ó.   — |                       ¦   «          d S rC   )r2  )rg   rC  s     r   Ú__exit__zPdfParser.__exit__±  s   € Ø�
Š
‰Œˆˆˆr   c                óV   — |                       ¦   «          |                      ¦   «          d S rC   )Ú	close_bufr@  rf   s    r   Ústart_writingzPdfParser.start_writing´  s#   € Ø�ŠÑÔÐØ�Š‰Œˆˆˆr   c                óì   — t          | j        t          ¦  «        r| j                             ¦   «          n8t          | j        t          j        ¦  «        r| j                             ¦   «          d | _        d S rC   )rq   r  Ú
memoryviewÚreleaseÚmmapr2  rf   s    r   rG  zPdfParser.close_buf¸  s`   € Ý�d”h¥
Ñ+Ô+ð 	ØŒH×ÒÑÔÐÐÝ˜œ¥$¤)Ñ,Ô,ð 	ØŒH�NŠNÑÔÐØˆŒˆˆr   c                ó    — | j         r|                      ¦   «          | j        �)| j        r$| j                             ¦   «          d | _        d S d S d S rC   )r+  rG  rž   r,  r2  rf   s    r   r2  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_ENDrf   s    r   r@  zPdfParser.seek_endÆ  s.   € ØŒvÐ!Ð!Ð!ØŒ�Š�A•r”{Ñ#Ô#Ð#Ð#Ð#r   c                óL   — | j         €J ‚| j                              d¦  «         d S )Ns	   %PDF-1.4
)rž   r£   rf   s    r   Úwrite_headerzPdfParser.write_headerÊ  s*   € ØŒvÐ!Ð!Ð!ØŒ�Š�]Ñ#Ô#Ð#Ð#Ð#r   r	   c                óx   — | j         €J ‚| j                              d|› d�                     ¦   «         ¦  «         d S )Nz% ú
)rž   r£   r   )rg   r	   s     r   Úwrite_commentzPdfParser.write_commentÎ  s>   € ØŒvÐ!Ð!Ð!ØŒ�Š�Z˜!�Z�Z�Z×&Ò&Ñ(Ô(Ñ)Ô)Ð)Ð)Ð)r   rb   c                óê  — | j         €J ‚|                      ¦   «          |                      | j                              ¦   «         ¦  «        | _        |                      d¦  «        | _        |                      ¦   «          |                      | j        t          d¦  «        | j        ¬¦  «         |                      | j        t          d¦  «        t          | j
        ¦  «        | j
        ¬¦  «         | j        S )Nr   ó   Catalog)ÚTypeÚPagesó   Pages)rY  ÚCountÚKids)rž   Údel_rootÚnext_object_idr¢   r6  r<  Úrewrite_pagesÚ	write_objr¯   rJ   r:  rf   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                óZ  — 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 ]D}|r@| j        |         }|j        | j        v r| j        |j        = |                     dd ¦  «        }|°@ŒEg | _        d S )Ns   ParentÚParentrC   )r¤   r;  r0  r?  r^   rÌ   r¯   r:  rü   r´   r<  Ú
write_pagerE   )rg   Ú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Úpages_tree_nodes                r   r`  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ÐØ%ð KØ"&Ô"5Ð6IÔ"J�Ø&Ô0°D´OÐCÐCØœÐ(;Ô(EÐFØ&5×&9Ò&9¸)ÀTÑ&JÔ&JÐ#ð	 &ð Køð
 ˆŒˆˆ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ž   r^  r6  r7  ra  r8  r?  r£   rJ   r=  r   rÙ   )rg   rp  Ú
start_xrefÚnum_entriesr>  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 )NrY  ó   Pagerd  )rq   r]   r:  r¯   r<  ra  )rg   rz  r|  r}  Úobj_refs        r   re  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ž   r_  r¢   r_   r?  r^   r£   r   r~   r¥   rJ   rÖ   )rg   rz  r|  r}  rž   r‚  Úobjs          r   ra  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 )Nr[  )r6  r?  r^   r5  rf   s    r   r^  zPdfParser.del_root:  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   )r/  rˆ  r‰  rL  ÚfilenoÚACCESS_READr  )rž   s    r   r.  zPdfParser.get_buf_from_file@  s‹   € å�1�kÑ"Ô"ð 	Ø—;’;‘=”=Ð Ý�Q˜
Ñ#Ô#ð 	Ø—:’:‘<”<ÐðÝ”y §¢¡¤¨QµtÔ7GÐHÑHÔHÐHøÝð ð ð Ø�s�sðøøøs   Á
2A= Á=
BÂ
Bc                ó@  — | 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        ¦  «        | _        | j        d d …         | _        d S )Nrs  zRoot is missingrv  ó   Typez/Type missing in RootrX  z/Type in Root is not /Catalogr[  z/Pages missing in Rootz+/Pages in Root is not an indirect reference)r  rJ   r3  r'  r4  Úread_trailerrZ   r>  rE   r6  r8  rÙ   Úread_indirectr5  r7  rq   rb   r<  r9  Úlinearize_page_treer:  r;  rf   s    r   r1  zPdfParser.read_pdf_infoL  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°´Ñ@Ô@ˆÔØ×-Ò-¨dÔ.AÑBÔBˆŒ
ð œ* Q Q Qœ-ˆŒˆˆr   rö   ú
int | Nonec                óÞ   — 	 t          t          | j                             ¦   «         ¦  «        dz   d¦  «        }n # t          $ r t          dd¦  «        }Y nw xY w|�|df| j        |j        <   |S )Nr   r   )rb   Úmaxr?  rš   r  r^   )rg   rö   Ú	references      r   r_  zPdfParser.next_object_idp  s€   € ð	0å)­#¨d¬o×.BÒ.BÑ.DÔ.DÑ*EÔ*EÈÑ*IÈ1ÑMÔMˆIˆIøÝð 	0ð 	0ð 	0Ý)¨!¨QÑ/Ô/ˆIˆIˆIð	0øøøàÐØ4:¸A°;ˆDŒO˜IÔ/Ñ0ØÐs   ‚7: ºAÁA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_offsetru  )r  rJ   r'  Úre_trailer_endÚsearchrZ   ÚstartÚgroupr]   r=  Úinterpret_trailerr>  r�   r?  Úread_xref_tableÚread_prev_trailer)rg   Ú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 ‚|                      |¬¦  «        }| j                             | j         ||dz   …         ¦  «        }t	          |d ud¦  «         |€J ‚|                     d¦  «        }t	          t          |                     d¦  «        ¦  «        |k    d¦  «         |                      |¦  «        }d|v rO|€g }|                     |¦  «         t	          |d         |vd¦  «         |  	                    |d         |¦  «         d S d S )	Nrœ  rš  zprevious trailer not foundr   rá   zGxref section offset in previous trailer doesn't match what was expectedru  ztrailer loop found)
r  r£  Úre_trailer_prevrŸ  rZ   r¡  r]   r¢  rÌ   r¤  )rg   r�  r©  Útrailer_offsetr¦  r¨  r>  s          r   r¤  zPdfParser.read_prev_trailer¹  sB  € ð ŒxÐ#Ð#Ð#Ø×-Ò-ÐBUÐ-ÑVÔVˆØÔ ×'Ò'ØŒH�^ n°uÑ&<Ð<Ô=ñ
ô 
ˆõ 	˜q¨˜}Ð.JÑKÔKÐKØˆ}ˆ}ˆ}Ø—w’w˜q‘z”zˆÝÝ�—’˜‘
”
‰OŒOÐ2Ò2ØUñ	
ô 	
ð 	
ð ×-Ò-¨lÑ;Ô;ˆØ�lÐ"Ð"Ø Ð(Ø$&Ð!Ø×$Ò$Ð%8Ñ9Ô9Ð9Ý"Ø˜WÔ%Ð->Ð>Ð@Tñô ð ð ×"Ò" <°Ô#8Ð:KÑLÔLÐLÐLÐLð #Ð"r   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   rt  z&/Size not in trailer or not an integerrs  z1/Root not in trailer or not an indirect reference)Úre_nameÚmatchÚre_dict_endrZ   ÚendrJ   rº   r¿   r¡  rq   r   Ú	get_valuer]   rb   )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_textrV   ústr | bytesc                óš  — d}| j                              |¦  «        D ]‰}|                     d¦  «        rZ||                     d¦  «        t                               |                     d¦  «                             d¦  «        ¦  «        z   z  }Œq||                     d¦  «        z  }ŒŠ|r|                     d¦  «        S t          |¦  «        S )Nr   é   r   rk   zutf-8)Úre_hashes_in_nameÚfinditerr¡  rÊ   ÚfromhexrK   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ë   r¼   ú*bytes | bytearray | memoryview | mmap.mmapÚexpect_indirectÚmax_nestingútuple[Any, int | None]c                ód  — |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                             ||¦  «        }|}	|sn|	€J ‚|                      ||	|dz
  ¬¦  «        \  }
}	|	€|d fS |                      ||	|dz
  ¬¦  «        \  }}	|||
<   |	€|d fS | j                             ||	¦  «        }|¯n|                     ¦   «         }	| 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                             ||¦  «        }|rIt9          |                      |                     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-negatives   Lengthz&bad or missing Length in stream dict (r¹   zstream end not foundTFc              3  ó"   K  — | ]
}|d v ¯|V — ŒdS )s   0123456789abcdefABCDEFNrT   r  s     r   rI   z&PdfParser.get_value.<locals>.<genexpr>¹  s6   è è € ð #ð #Ø¨Ð.GÐ)GÐ)G�Ð)GÐ)GÐ)GÐ)Gð#ð #r   ó   0rk   zunrecognized object: é    )*Ú
re_commentr±  r³  Úre_indirect_def_startrZ   r]   r¡  rb   r´  Úre_indirect_def_endÚre_indirect_referenceÚre_dict_startr²  Úre_stream_startrE   rq   rO   r   Úre_stream_endr  rÙ   Úre_array_startÚre_array_endrÌ   Úre_nullÚre_trueÚre_falser°  r¯   r¿   Úre_intÚre_realr  Úre_string_hexrÊ   rJ   rÅ   r¾  rK   Úre_string_litÚget_literal_stringrº   )rÀ   r¼   rö   rÁ  rÂ  r¦  rn   Úobject_offsetrÎ   Úcurrent_offsetrˆ   r‰   Ú
stream_lenr”   Ústream_dataÚresultsÚ
hex_strings                    r   r´  zPdfParser.get_value;  s  € ð ˜!ÒÐØ�:ØŒ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Ø&)§m¢mØ˜.°kÀA±oð '4ñ 'ô 'Ñ#��^ð "Ð)Ø! 4˜<Ð'Ø(+¯ªØ˜.°kÀA±oð )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Ì   r]   r   r³  rO   )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'  rZ   r³  Úre_xref_subsection_startr]   r¡  rÐ   Úre_xref_entryr?  )rg   r�  Úsubsection_foundr¦  rö   Úfirst_objectÚnum_objectsrg  Úis_freer_   Ú	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Â  )r?  rZ   r  r´  r'  rb   r0  )rg   rz  rÂ  rö   r_   r‰   s         r   r�  zPdfParser.read_indirect%  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                ó*  — |�|n| j         }t          |d         dk    d¦  «         g }|d         D ]b}|                      |¦  «        }|d         dk    r|                     |¦  «         Œ9|                     |                      |¬¦  «        ¦  «         Œc|S )NrŽ  r[  z%/Type of page tree node is not /Pagess   Kidsr  )rû  )r9  rZ   r�  rÌ   rÍ   r‘  )rg   rû  Ú	page_noder:  ÚkidÚ
kid_objects         r   r‘  zPdfParser.linearize_page_tree6  s·   € ð !Ð,�D�D°$Ô2Eˆ	ÝØ�gÔ (Ò*Ð,Sñ	
ô 	
ð 	
ð ˆØ˜WÔ%ð 	Hð 	HˆCØ×+Ò+¨CÑ0Ô0ˆJØ˜'Ô" gÒ-Ð-Ø—’˜SÑ!Ô!Ð!Ð!à—’˜T×5Ò5¸:Ð5ÑFÔFÑGÔGÐGÐGØˆr   )NNNr   r"  )r#  r$  rž   r%  r  r&  r'  r]   r(  r
   r   rX   )r   r¾   )rC  rn   r   rX   r­   )r	   r
   r   rX   )r   rb   rC   )rp  rq  r   rX   )rz  r{  r|  r   r}  r   r   rb   )rz  rq  r|  r   r}  r   r   rb   )rž   rŸ   r   r†  )rö   r’  r   rb   )r�  r]   r©  rª  r   rX   )r¨  r   r   r®  )F)r·  r   r¸  rV   r   r¹  )Nrë   )
r¼   rÀ  rö   r]   rÁ  rq  rÂ  r]   r   rÃ  )r¼   rÀ  rö   r]   r   rè  )r�  r]   r   r]   )rë   )rz  rb   rÂ  r]   r   r   )rû  rü  r   rý  )IrP   rQ   rR   rS   r‡   rB  rE  rH  rG  r2  r@  rS  rV  rb  r`  ry  re  ra  r^  Ústaticmethodr.  r1  r_  Ú	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‘  rT   r   r   r¾   r¾   s  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ðMð Mð Mð Mð Mð2 (˜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   )r?   r   r   r
   )rU   rV   rW   r
   r   rX   )r×   r   r   r   )'Ú
__future__r   rò   r   rÛ   rL  rP  r  rï   r  Útypingr   r   rA   r   ÚTYPE_CHECKINGr   rÜ   r
   r   Ú	_DictBaser   rD   rM   r*  rO   rZ   r\   rb   r~   r�   r¯   r  rÒ   rÙ   rÿ   r  rÖ   r¾   rT   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ð
[ð [ð [ð [ð [ñ [ô [ð [ð|&ð &ð &ð &ð &ñ &ô &ð &ðRDð Dð Dð Dð Dˆt�CŒyñ Dô Dð Dð
-ð -ð -ð -ð -ˆiñ -ô -ð -ð`Bð Bð Bð Bð Bñ Bô Bð Bð+ð +ð +ð +ð +ñ +ô +ð +ð,ð ð ð ð:Qð Qð Qð Qð Qñ Qô Qð Qð Qð Qr   