§
    dÒ³g“‘  ã                   óÊ  — d dl Z d dlZd dlZd dlZd dlmZmZmZmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZ ddlmZ ddlm Z  dd	l!m"Z" dd
l#m$Z$m%Z%m&Z& ddl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z=m>Z>  ej?        e@¦  «        ZA G d„ de$¦  «        ZB G d„ deC¦  «        ZD G d„ de)¦  «        ZE G d„ de)¦  «        ZF G d„ de)¦  «        ZG G d„ de)¦  «        ZH G d„ deH¦  «        ZI G d„ deJ¦  «        ZK G d„ deJ¦  «        ZL G d „ d!eH¦  «        ZM G d"„ d#eM¦  «        ZN e7d$¦  «        ZO e7d%¦  «        ZP e7d&¦  «        ZQ G d'„ d(¦  «        ZR G d)„ d*eR¦  «        ZS G d+„ d,eS¦  «        ZT G d-„ d.eR¦  «        ZU G d/„ d0¦  «        ZV G d1„ d2eV¦  «        ZW G d3„ d4eW¦  «        ZX G d5„ d6¦  «        ZY G d7„ d8e"¦  «        ZZdS )9é    N)Úsha256Úmd5Úsha384Úsha512)ÚAnyÚCallableÚDictÚIterableÚIteratorÚKeysViewÚListÚOptionalÚSequenceÚTupleÚTypeÚUnionÚcast)Údefault_backend)ÚCipherÚ
algorithmsÚmodesé   )Úsettings)ÚArcfour)Ú
NumberTree)ÚPDFSyntaxErrorÚ	PDFParserÚPDFStreamParser)ÚDecipherCallableÚPDFExceptionÚPDFTypeErrorÚ	PDFStreamÚPDFObjectNotFoundÚdecipher_allÚ	int_valueÚ	str_valueÚ
list_valueÚ
uint_valueÚ
dict_valueÚstream_value)ÚPSEOFÚliteral_nameÚLITÚKWD)ÚchoplistÚdecode_textÚnunpackÚformat_int_romanÚformat_int_alphac                   ó   — e Zd ZdS )ÚPDFNoValidXRefN©Ú__name__Ú
__module__Ú__qualname__© ó    úR/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pdfminer/pdfdocument.pyr5   r5   1   ó   € € € € € Ø€Dr;   r5   c                   ó   — e Zd ZdZdS )ÚPDFNoValidXRefWarningztLegacy warning for missing xref.

    Not used anymore because warnings.warn is replaced by logger.Logger.warn.
    N©r7   r8   r9   Ú__doc__r:   r;   r<   r?   r?   5   ó   € € € € € ðð ð
 	€Dr;   r?   c                   ó   — e Zd ZdS )ÚPDFNoOutlinesNr6   r:   r;   r<   rD   rD   >   r=   r;   rD   c                   ó   — e Zd ZdS )ÚPDFNoPageLabelsNr6   r:   r;   r<   rF   rF   B   r=   r;   rF   c                   ó   — e Zd ZdS )ÚPDFDestinationNotFoundNr6   r:   r;   r<   rH   rH   F   r=   r;   rH   c                   ó   — e Zd ZdS )ÚPDFEncryptionErrorNr6   r:   r;   r<   rJ   rJ   J   r=   r;   rJ   c                   ó   — e Zd ZdS )ÚPDFPasswordIncorrectNr6   r:   r;   r<   rL   rL   N   r=   r;   rL   c                   ó   — e Zd ZdZdS )ÚPDFEncryptionWarningzyLegacy warning for failed decryption.

    Not used anymore because warnings.warn is replaced by logger.Logger.warn.
    Nr@   r:   r;   r<   rN   rN   R   rB   r;   rN   c                   ó   — e Zd ZdZdS )Ú"PDFTextExtractionNotAllowedWarningzŠLegacy warning for PDF that does not allow extraction.

    Not used anymore because warnings.warn is replaced by logger.Logger.warn.
    Nr@   r:   r;   r<   rP   rP   [   rB   r;   rP   c                   ó   — e Zd ZdS )ÚPDFTextExtractionNotAllowedNr6   r:   r;   r<   rR   rR   d   r=   r;   rR   c                   ó(   ‡ — e Zd Zdeddfˆ fd„Zˆ xZS )Ú PDFTextExtractionNotAllowedErrorÚargsÚreturnNc                 ób   •— ddl m}  |dt          ¦  «          t          ¦   «         j        |Ž  d S )Nr   )ÚwarnzhPDFTextExtractionNotAllowedError will be removed in the future. Use PDFTextExtractionNotAllowed instead.)ÚwarningsrX   ÚDeprecationWarningÚsuperÚ__init__)ÚselfrU   rX   Ú	__class__s      €r<   r\   z)PDFTextExtractionNotAllowedError.__init__i   sM   ø€ Ø!Ð!Ð!Ð!Ð!Ð!àˆð7åñ	
ô 	
ð 	
ð
 	�‰ŒÔ˜$ÐÐÐÐr;   )r7   r8   r9   Úobjectr\   Ú__classcell__©r^   s   @r<   rT   rT   h   sK   ø€ € € € € ð ˜fð  ¨ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  r;   rT   ÚObjStmÚXRefÚCatalogc                   ó€   — e Zd Zdeeef         fd„Zdee         fd„Z	dede
ee         eef         fd„Zdeddfd„ZdS )	ÚPDFBaseXRefrV   c                 ó   — t           ‚©N©ÚNotImplementedError©r]   s    r<   Úget_trailerzPDFBaseXRef.get_trailer{   ó   € Ý!Ð!r;   c                 ó   — g S rh   r:   rk   s    r<   Ú
get_objidszPDFBaseXRef.get_objids~   s   € Øˆ	r;   Úobjidc                 ó    — t          |¦  «        ‚rh   )ÚKeyError©r]   rp   s     r<   Úget_poszPDFBaseXRef.get_pos„   s   € Ý�u‰oŒoÐr;   ÚparserNc                 ó   — t           ‚rh   ri   )r]   ru   s     r<   ÚloadzPDFBaseXRef.load‡   rm   r;   )r7   r8   r9   r	   Ústrr   rl   r
   Úintro   r   r   rt   r   rw   r:   r;   r<   rf   rf   z   sª   € € € € € ð"˜T # s (œ^ð "ð "ð "ð "ð˜H SœMð ð ð ð ð˜Sð  U¨8°C¬=¸#¸sÐ+BÔ%Cð ð ð ð ð"˜9ð "¨ð "ð "ð "ð "ð "ð "r;   rf   c                   ó¤   — e Zd Zdd„Zdefd„Zdeddfd„Zdeddfd„Zde	ee
f         fd„Zdee         fd	„Zd
edeee         eef         fd„ZdS )ÚPDFXRefrV   Nc                 ó"   — i | _         i | _        d S rh   )ÚoffsetsÚtrailerrk   s    r<   r\   zPDFXRef.__init__Œ   s   € ØBDˆŒØ')ˆŒˆˆr;   c                 ó:   — d| j                              ¦   «         z  S )Nz<PDFXRef: offsets=%r>©r}   Úkeysrk   s    r<   Ú__repr__zPDFXRef.__repr__�   s   € Ø&¨$¬,×*;Ò*;Ñ*=Ô*=Ñ>Ð>r;   ru   c                 ó^  — 	 	 |                      ¦   «         \  }}|                     ¦   «         }|sŒ0n# t          $ r t          d¦  «        ‚w xY w|                     d¦  «        r|                     |¦  «         �n}|                     d¦  «        }t          |¦  «        dk    r%d                     ||¦  «        }t          |¦  «        ‚	 t          t          |¦  «        \  }}n3# t          $ r& d                     ||¦  «        }t          |¦  «        ‚w xY wt          |||z   ¦  «        D ]Í}	 |                      ¦   «         \  }	}|                     ¦   «         }n# t          $ r t          d¦  «        ‚w xY w|                     d¦  «        }t          |¦  «        dk    r%d	                     ||¦  «        }t          |¦  «        ‚|\  }
}}|d
k    rŒ¦d t          |
¦  «        t          |¦  «        f| j        |<   ŒÎ�Œöt                               d| j        ¦  «         |                      |¦  «         d S )NTz Unexpected EOF - file corrupted?ó   traileró    é   z"Trailer not found: {!r}: line={!r}zInvalid line: {!r}: line={!r}é   z$Invalid XRef format: {!r}, line={!r}ó   nzxref objects: %r)ÚnextlineÚstripr+   r5   Ú
startswithÚseekÚsplitÚlenÚformatÚmapry   Ú
ValueErrorÚranger}   ÚlogÚdebugÚload_trailer)r]   ru   ÚposÚlineÚfÚ	error_msgÚstartÚnobjsrp   Ú_Úpos_bÚgenno_bÚuse_bs                r<   rw   zPDFXRef.load“   se  € ð#	GðIØ$ŸošoÑ/Ô/‘��dØ—z’z‘|”|�Øð Øðøåð Ið Ið IÝ$Ð%GÑHÔHÐHðIøøøà�Š˜zÑ*Ô*ð Ø—’˜CÑ Ô Ð ÙØ—
’
˜4Ñ Ô ˆAÝ�1‰vŒv˜Š{ˆ{Ø@×GÒGÈÐPTÑUÔU�	Ý$ YÑ/Ô/Ð/ð0Ý!$¥S¨!¡¤‘�˜˜øÝð 0ð 0ð 0Ø;×BÒBÀ6È4ÑPÔP�	Ý$ YÑ/Ô/Ð/ð0øøøõ ˜u e¨e¡mÑ4Ô4ð Gð G�ðMØ &§¢Ñ 1Ô 1‘I�Q˜ØŸ:š:™<œ<�D�DøÝð Mð Mð MÝ(Ð)KÑLÔLÐLðMøøøà—J’J˜tÑ$Ô$�Ý�q‘6”6˜Q’;�;Ø F× MÒ MØ ñ!ô !�Iõ )¨Ñ3Ô3Ð3Ø*+Ñ'�˜ Ø˜D’=�=ØØ'+­S°©Z¬Z½¸W¹¼Ð&F�”˜UÑ#Ð#ñG#	GõH 	�	Š	Ð$ d¤lÑ3Ô3Ð3Ø×Ò˜&Ñ!Ô!Ð!Ð!Ð!s!   ƒ-2 ²AÃ	C" Ã"0DÄ++EÅE1c                 óÆ  — 	 |                      ¦   «         \  }}|t          d¦  «        u sJ t          |¦  «        ¦   «         ‚|                     ¦   «         \  }}nA# t          $ r4 |                     d¦  «        }|st          d¦  «        ‚|d         \  }}Y nw xY w| j                             t          |¦  «        ¦  «         t                               d| j        ¦  «         d S )Nr„   r   zUnexpected EOF - file corruptedr   z
trailer=%r)Ú	nexttokenr.   rx   Ú
nextobjectr+   Úpopr5   r~   Úupdater)   r“   r”   )r]   ru   rœ   ÚkwdÚdicÚxs         r<   r•   zPDFXRef.load_trailer»   så   € ð	Ø×'Ò'Ñ)Ô)‰HˆQ�Ø�#˜j™/œ/Ð)Ð)Ð)­3¨s©8¬8Ñ)Ô)Ð)Ø×(Ò(Ñ*Ô*‰HˆQ��øÝð 	ð 	ð 	Ø—
’
˜1‘”ˆAØð HÝ$Ð%FÑGÔGÐGØ˜”t‰HˆQ���ð		øøøð
 	Œ×Ò�J s™OœOÑ,Ô,Ð,Ý�	Š	�, ¤Ñ-Ô-Ð-Ð-Ð-s   ‚AA Á;BÂBc                 ó   — | j         S rh   ©r~   rk   s    r<   rl   zPDFXRef.get_trailerÈ   ó
   € ØŒ|Ðr;   c                 ó4   — | j                              ¦   «         S rh   r€   rk   s    r<   ro   zPDFXRef.get_objidsË   s   € ØŒ|× Ò Ñ"Ô"Ð"r;   rp   c                 ó<   — 	 | j         |         S # t          $ r ‚ w xY wrh   )r}   rr   rs   s     r<   rt   zPDFXRef.get_posÎ   s2   € ð	Ø”< Ô&Ð&øÝð 	ð 	ð 	Øð	øøøs   ‚ �©rV   N)r7   r8   r9   r\   rx   r‚   r   rw   r•   r	   r   rl   r   ry   ro   r   r   rt   r:   r;   r<   r{   r{   ‹   sü   € € € € € ð*ð *ð *ð *ð?˜#ð ?ð ?ð ?ð ?ð&"˜9ð &"¨ð &"ð &"ð &"ð &"ðP. 9ð .°ð .ð .ð .ð .ð˜T # s (œ^ð ð ð ð ð#˜H SœMð #ð #ð #ð #ð˜Sð  U¨8°C¬=¸#¸sÐ+BÔ%Cð ð ð ð ð ð r;   r{   c                   óJ   — e Zd Zdefd„Z ej        d¦  «        Zdeddfd„Z	dS )ÚPDFXRefFallbackrV   c                 ó:   — d| j                              ¦   «         z  S )Nz<PDFXRefFallback: offsets=%r>r€   rk   s    r<   r‚   zPDFXRefFallback.__repr__Ö   s   € Ø.°$´,×2CÒ2CÑ2EÔ2EÑFÐFr;   z^(\d+)\s+(\d+)\s+obj\bru   Nc                 óþ  — |                      d¦  «         	 	 |                     ¦   «         \  }}n# t          $ r Y d S w xY w|                     d¦  «        rL|                      |¦  «         |                      |¦  «         t
                               d| j        ¦  «         d S |                     d¦  «        }| j	         
                    |¦  «        }|sŒ¾|                     ¦   «         \  }}t          |¦  «        }t          |¦  «        }	d ||	f| j        |<   |                      |¦  «         |                     ¦   «         \  }
}t          |t           ¦  «        �r%|                     d¦  «        t$          u �rt'          |¦  «        }	 |d         }n0# t(          $ r# t*          j        rt/          d|z  ¦  «        ‚d}Y nw xY wt1          |                     ¦   «         ¦  «        }g }	 	 |                     ¦   «         \  }
}|                     t7          t          |¦  «        ¦  «         Œ@# t          $ r Y nw xY wt9          |t;          |¦  «        d	z  ¦  «        }t=          |¦  «        D ]}||d	z           }||df| j        |<   Œ�Œh)
Nr   r   r„   útrailer: %rzlatin-1r   ÚNúN is not defined: %rr†   )rŒ   r‰   r+   r‹   r•   r“   r”   r~   ÚdecodeÚ
PDFOBJ_CUEÚmatchÚgroupsry   r}   r¢   Ú
isinstancer"   ÚgetÚLITERAL_OBJSTMr*   rr   r   ÚSTRICTr   r   Úget_dataÚappendr   ÚminrŽ   r’   )r]   ru   r–   Ú
line_bytesr—   ÚmÚobjid_sÚgenno_srp   Úgennorœ   ÚobjÚstreamÚnÚparser1ÚobjsÚindexÚobjid1s                     r<   rw   zPDFXRefFallback.loadÛ   sš  € Ø�Š�A‰Œˆð(	=ðØ$*§O¢OÑ$5Ô$5Ñ!��j�jøÝð ð ð Ø��ðøøøà×$Ò$ ZÑ0Ô0ð Ø—’˜CÑ Ô Ð Ø×!Ò! &Ñ)Ô)Ð)Ý—	’	˜-¨¬Ñ6Ô6Ð6Ø�Ø×$Ò$ YÑ/Ô/ˆDØ”×%Ò% dÑ+Ô+ˆAØð ØØ!"§¢¡¤ÑˆW�gÝ˜‘L”LˆEÝ˜‘L”LˆEØ#'¨¨eÐ"4ˆDŒL˜Ñà�KŠK˜ÑÔÐØ×(Ò(Ñ*Ô*‰HˆQ�Ý˜#�yÑ)Ô)ñ =¨c¯gªg°f©o¬oÅÐ.OÑ.OÝ% cÑ*Ô*�ðØ˜sœ�A�AøÝð ð ð Ý”ð NÝ,Ð-CÀfÑ-LÑMÔMÐMØ�A�A�Aðøøøõ *¨&¯/ª/Ñ*;Ô*;Ñ<Ô<�Ø"$�ðð4Ø#*×#5Ò#5Ñ#7Ô#7™˜˜CØŸš¥D­¨c¡N¤NÑ3Ô3Ð3ð4øõ ð ð ð Ø�Dðøøøå˜�3˜t™9œ9¨™>Ñ*Ô*�Ý" 1™XœXð =ð =�EØ! %¨!¡)œ_�FØ,1°5¸!Ð+<�D”L Ñ(Ð(ñQ(	=s1   ˜0 °
>½>ÆF Æ*F;Æ:F;Ç"AH# È#
H0È/H0)
r7   r8   r9   rx   r‚   ÚreÚcompiler¶   r   rw   r:   r;   r<   r¯   r¯   Õ   sj   € € € € € ðG˜#ð Gð Gð Gð Gð �”Ð5Ñ6Ô6€Jð*=˜9ð *=¨ð *=ð *=ð *=ð *=ð *=ð *=r;   r¯   c                   ó”   — e Zd Zdd„Zdefd„Zdeddfd„Zdeee	f         fd„Z
dee         fd„Zd	edeee         eef         fd
„ZdS )ÚPDFXRefStreamrV   Nc                 óZ   — d | _         d | _        d | _        d | _        d | _        g | _        d S rh   )ÚdataÚentlenÚfl1Úfl2Úfl3Úrangesrk   s    r<   r\   zPDFXRefStream.__init__	  s0   € Ø%)ˆŒ	Ø%)ˆŒØ"&ˆŒØ"&ˆŒØ"&ˆŒØ-/ˆŒˆˆr;   c                 ó   — d| j         z  S )Nz<PDFXRefStream: ranges=%r>)rÖ   rk   s    r<   r‚   zPDFXRefStream.__repr__  s   € Ø+¨t¬{Ñ;Ð;r;   ru   c           	      ó  — |                      ¦   «         \  }}|                      ¦   «         \  }}|                      ¦   «         \  }}|                     ¦   «         \  }}t          |t          ¦  «        r|                     d¦  «        t
          urt          d¦  «        ‚|d         }|                     dd|f¦  «        }t          |¦  «        dz  dk    rt          d¦  «        ‚| j	         
                    t          t          t          t          t          f                  t          d|¦  «        ¦  «        ¦  «         |d         \  | _        | _        | _        | j        �| j        �| j        €J ‚|                     ¦   «         | _        | j        | j        z   | j        z   | _        |j        | _        t0                               d	d
                     t7          t8          | j	        ¦  «        ¦  «        | j        | j        | j        ¦  «         d S )Nr   zInvalid PDF stream spec.ÚSizeÚIndexr   r†   zInvalid index numberÚWz&xref stream: objid=%s, fields=%d,%d,%dz, )r¡   r¢   r¹   r"   rº   ÚLITERAL_XREFr5   rŽ   r   rÖ   Úextendr   r   r   ry   r/   rÓ   rÔ   rÕ   r½   rÑ   rÒ   Úattrsr~   r“   r”   Újoinr�   Úrepr)	r]   ru   rœ   rp   rÄ   r¥   rÆ   ÚsizeÚindex_arrays	            r<   rw   zPDFXRefStream.load  s¸  € Ø×%Ò%Ñ'Ô'‰
ˆˆEØ×%Ò%Ñ'Ô'‰
ˆˆEØ×#Ò#Ñ%Ô%‰ˆˆCØ×'Ò'Ñ)Ô)‰ˆˆFÝ˜&¥)Ñ,Ô,ð 	=°·
²
¸6Ñ0BÔ0BÍ,Ð0VÐ0VÝ Ð!;Ñ<Ô<Ð<Ø�fŒ~ˆØ—j’j ¨1¨d¨)Ñ4Ô4ˆÝˆ{ÑÔ˜aÑ 1Ò$Ð$Ý Ð!7Ñ8Ô8Ð8ØŒ×Ò�4¥­­sµC¨x¬Ô 9½8ÀAÀ{Ñ;SÔ;SÑTÔTÑUÔUÐUØ)/°¬Ñ&ˆŒ�4”8˜TœXØŒxÐ#¨¬Ð(<ÀÄÐAUÐAUÐAUØ—O’OÑ%Ô%ˆŒ	Ø”h ¤Ñ)¨D¬HÑ4ˆŒØ”|ˆŒÝ�	Š	Ø4Ø�IŠI•c�$ ¤Ñ,Ô,Ñ-Ô-ØŒHØŒHØŒHñ	
ô 	
ð 	
ð 	ˆr;   c                 ó   — | j         S rh   r©   rk   s    r<   rl   zPDFXRefStream.get_trailer.  rª   r;   c              #   ó  K  — | j         D ]z\  }}t          |¦  «        D ]e}| j        €J ‚| j        €J ‚| j        |z  }| j        ||| j        z   …         }t	          |d | j        …         d¦  «        }|dk    s|dk    r||z   V — ŒfŒ{d S )Nr   r†   )rÖ   r’   rÒ   rÑ   r1   rÓ   )r]   rš   r›   ÚiÚoffsetÚentÚf1s          r<   ro   zPDFXRefStream.get_objids1  s³   è è € Ø"œkð 	$ð 	$‰NˆU�EÝ˜5‘\”\ð $ð $�Ø”{Ð.Ð.Ð.Ø”yÐ,Ð,Ð,Øœ q™�Ø”i ¨°$´+Ñ)=Ð =Ô>�Ý˜S  4¤8 œ_¨aÑ0Ô0�Ø˜’7�7˜b Ašg˜gØ !™)�O�O�Oøð$ð 	ˆr;   rp   c                 ó,  — d}| j         D ]#\  }}||k    r|||z   k     r
|||z
  z  } n||z  }Œ$t          |¦  «        ‚| j        €J ‚| j        €J ‚| j        �| j        �| j        €J ‚| j        |z  }| j        ||| j        z   …         }t          |d | j        …         d¦  «        }t          || j        | j        | j        z   …         ¦  «        }t          || j        | j        z   d …         ¦  «        }	|dk    rd ||	fS |dk    r||	dfS t          |¦  «        ‚)Nr   r   r†   )rÖ   rr   rÒ   rÑ   rÓ   rÔ   rÕ   r1   )
r]   rp   rÊ   rš   r›   ræ   rç   rè   Úf2Úf3s
             r<   rt   zPDFXRefStream.get_pos=  sM  € ØˆØ"œkð 	"ð 	"‰NˆU�EØ˜Š~ˆ~ %¨%°%©-Ò"7Ð"7Ø˜ ™Ñ&�Ø�à˜‘��å˜5‘/”/Ð!ØŒ{Ð&Ð&Ð&ØŒyÐ$Ð$Ð$ØŒxÐ#¨¬Ð(<ÀÄÐAUÐAUÐAUØ”˜uÑ$ˆØŒi˜ ¨$¬+Ñ!5Ð5Ô6ˆÝ�S˜˜4œ8˜”_ aÑ(Ô(ˆÝ�S˜œ D¤H¨t¬xÑ$7Ð7Ô8Ñ9Ô9ˆÝ�S˜œ D¤HÑ,Ð.Ð.Ô/Ñ0Ô0ˆØ�Š7ˆ7Ø˜"˜b�>Ð!Ø�1ŠWˆWØ˜˜A�;Ðõ ˜5‘/”/Ð!r;   r­   )r7   r8   r9   r\   rx   r‚   r   rw   r	   r   rl   r   ry   ro   r   r   rt   r:   r;   r<   rÏ   rÏ     sÙ   € € € € € ð0ð 0ð 0ð 0ð<˜#ð <ð <ð <ð <ð˜9ð ¨ð ð ð ð ð4˜T # s (œ^ð ð ð ð ð
˜H SœMð 
ð 
ð 
ð 
ð"˜Sð " U¨8°C¬=¸#¸sÐ+BÔ%Cð "ð "ð "ð "ð "ð "r;   rÏ   c                   ó~  — e Zd ZU dZdZeedf         ed<   	 ddee	         de
eef         ded	d
fd„Zd d„Zd d„Zd d„Zd	efd„Zd	efd„Zd	efd„Zde	d	e	fd„Zde	d	e	fd„Zded	ee	         fd„Zde	d	ee	         fd„Zde	d	efd„Zde	d	ee	         fd„Z	 d!dedede	dee
eef                  d	e	f
d„Zdedede	d	e	fd„Zd
S )"ÚPDFStandardSecurityHandlers    (¿N^NuŠAd NVÿú.. ¶Ðh>€/©þdSiz)r†   r‡   .Úsupported_revisionsÚ ÚdocidÚparamÚpasswordrV   Nc                 óX   — || _         || _        || _        |                      ¦   «          d S rh   )rð   rñ   rò   Úinit)r]   rð   rñ   rò   s       r<   r\   z#PDFStandardSecurityHandler.__init__`  s+   € ð ˆŒ
ØˆŒ
Ø ˆŒØ�	Š	‰ŒˆØˆr;   c                 ó¤   — |                       ¦   «          | j        | j        vrd| j        z  }t	          |¦  «        ‚|                      ¦   «          d S )NzUnsupported revision: param=%r)Úinit_paramsÚrrî   rñ   rJ   Úinit_key)r]   r™   s     r<   rô   zPDFStandardSecurityHandler.initi  sP   € Ø×ÒÑÔÐØŒ6˜Ô1Ð1Ð1Ø8¸4¼:ÑEˆIÝ$ YÑ/Ô/Ð/Ø�Š‰ŒˆØˆr;   c                 ó´  — t          | j                             dd¦  «        ¦  «        | _        t          | j        d         ¦  «        | _        t          | j        d         d¦  «        | _        t          | j        d         ¦  «        | _        t          | j        d         ¦  «        | _	        t          | j                             dd	¦  «        ¦  «        | _
        d S )
NÚVr   ÚRÚPé    ÚOÚUÚLengthé(   )r%   rñ   rº   Úvr÷   r(   Úpr&   ÚoÚuÚlengthrk   s    r<   rö   z&PDFStandardSecurityHandler.init_paramsq  s›   € Ý˜4œ:Ÿ>š>¨#¨qÑ1Ô1Ñ2Ô2ˆŒÝ˜4œ: cœ?Ñ+Ô+ˆŒÝ˜DœJ sœO¨RÑ0Ô0ˆŒÝ˜4œ: cœ?Ñ+Ô+ˆŒÝ˜4œ: cœ?Ñ+Ô+ˆŒÝ ¤
§¢¨x¸Ñ <Ô <Ñ=Ô=ˆŒØˆr;   c                 ó`   — |                       | j        ¦  «        | _        | j        €t          ‚d S rh   )Úauthenticaterò   ÚkeyrL   rk   s    r<   rø   z#PDFStandardSecurityHandler.init_keyz  s,   € Ø×$Ò$ T¤]Ñ3Ô3ˆŒØŒ8ÐÝ&Ð&Øˆr;   c                 ó0   — t          | j        dz  ¦  «        S )Né   ©Úboolr  rk   s    r<   Úis_printablez'PDFStandardSecurityHandler.is_printable€  ó   € Ý�D”F˜Q‘JÑÔÐr;   c                 ó0   — t          | j        dz  ¦  «        S )Né   r  rk   s    r<   Úis_modifiablez(PDFStandardSecurityHandler.is_modifiableƒ  r  r;   c                 ó0   — t          | j        dz  ¦  «        S )Né   r  rk   s    r<   Úis_extractablez)PDFStandardSecurityHandler.is_extractable†  s   € Ý�D”F˜R‘KÑ Ô Ð r;   r	  c                 ó  ‡— | j         dk    r't          |¦  «                             | j        ¦  «        S t	          | j        ¦  «        }|                     | j        d         ¦  «         t          |¦  «                             |                     ¦   «         ¦  «        }t          dd¦  «        D ]RŠd 	                    ˆfd„t          |¦  «        D ¦   «         ¦  «        }t          |¦  «                             |¦  «        }ŒS||z  }|S )Nr†   r   r   é   r;   c              3   ó>   •K  — | ]}t          |‰z  f¦  «        V — Œd S rh   ©Úbytes©Ú.0Úcrå   s     €r<   ú	<genexpr>z7PDFStandardSecurityHandler.compute_u.<locals>.<genexpr>“  ó/   øè è € Ð@Ð@°�U A¨¡E 8™_œ_Ð@Ð@Ð@Ð@Ð@Ð@r;   )r÷   r   ÚencryptÚPASSWORD_PADDINGr   r¤   rð   Údigestr’   rß   Úiter)r]   r	  ÚhashÚresultÚkrå   s        @r<   Ú	compute_uz$PDFStandardSecurityHandler.compute_u‰  sã   ø€ ØŒ6�QŠ;ˆ;å˜3‘<”<×'Ò'¨Ô(=Ñ>Ô>Ð>õ �tÔ,Ñ-Ô-ˆDØ�KŠK˜œ
 1œÑ&Ô&Ð&Ý˜S‘\”\×)Ò)¨$¯+ª+©-¬-Ñ8Ô8ˆFÝ˜1˜b‘\”\ð 4ð 4�Ø—H’HÐ@Ð@Ð@Ð@µd¸3±i´iÐ@Ñ@Ô@Ñ@Ô@�Ý  ™œ×+Ò+¨FÑ3Ô3��Ø�fÑˆFØˆMr;   c                 óf  — || j         z   d d…         }t          |¦  «        }|                     | j        ¦  «         |                     t	          j        d| j        ¦  «        ¦  «         |                     | j        d         ¦  «         | j        dk    r/t          t          | ¦  «        j        s|                     d¦  «         |                     ¦   «         }d}| j        dk    rE| j        dz  }t          d	¦  «        D ]+}t          |d |…         ¦  «                             ¦   «         }Œ,|d |…         S )
Nrý   ú<Lr   r  s   ÿÿÿÿé   r‡   r  é2   )r!  r   r¤   r  ÚstructÚpackr  rð   r÷   r   ÚPDFStandardSecurityHandlerV4Úencrypt_metadatar"  r  r’   )r]   rò   r$  r%  rÇ   rœ   s         r<   Úcompute_encryption_keyz1PDFStandardSecurityHandler.compute_encryption_key˜  s  € à˜tÔ4Ñ4°c°r°cÔ:ˆÝ�8‰}Œ}ˆØ�Š�D”FÑÔÐà�Š•F”K  d¤fÑ-Ô-Ñ.Ô.Ð.Ø�Š�D”J˜q”MÑ"Ô"Ð"ØŒ6�QŠ;ˆ;ÝÕ4°dÑ;Ô;ÔLð 1Ø—’Ð/Ñ0Ô0Ð0Ø—’‘”ˆØˆØŒ6�QŠ;ˆ;Ø”˜qÑ ˆAÝ˜2‘Y”Yð 2ð 2�Ý˜V B Q BœZ™œ×/Ò/Ñ1Ô1��Ø�b�q�bŒzÐr;   c                 óˆ   — |                      d¦  «        }|                      |¦  «        }|€|                      |¦  «        }|S )NÚlatin1)ÚencodeÚauthenticate_user_passwordÚauthenticate_owner_password)r]   rò   Úpassword_bytesr	  s       r<   r  z'PDFStandardSecurityHandler.authenticate«  sC   € Ø!Ÿš¨Ñ2Ô2ˆØ×-Ò-¨nÑ=Ô=ˆØˆ;Ø×2Ò2°>ÑBÔBˆCØˆ
r;   c                 ó^   — |                       |¦  «        }|                      |¦  «        r|S d S rh   )r0  Úverify_encryption_key)r]   rò   r	  s      r<   r4  z5PDFStandardSecurityHandler.authenticate_user_password²  s5   € Ø×)Ò)¨(Ñ3Ô3ˆØ×%Ò% cÑ*Ô*ð 	ØˆJà�4r;   c                 óŽ   — |                       |¦  «        }| j        dk    r|| j        k    S |d d…         | j        d d…         k    S )Nr†   r  )r'  r÷   r  )r]   r	  r  s      r<   r8  z0PDFStandardSecurityHandler.verify_encryption_key¹  sG   € à�NŠN˜3ÑÔˆØŒ6�QŠ;ˆ;Ø˜œ’;ÐØ��"�Œv˜œ   œÒ$Ð$r;   c                 óŽ  ‡— || j         z   d d…         }t          |¦  «        }| j        dk    r3t          d¦  «        D ]#}t          |                     ¦   «         ¦  «        }Œ$d}| j        dk    r
| j        dz  }|                     ¦   «         d |…         }| j        dk    r(t          |¦  «                             | j        ¦  «        }nk| j        }t          ddd¦  «        D ]RŠd	 	                    ˆfd
„t          |¦  «        D ¦   «         ¦  «        }t          |¦  «                             |¦  «        }ŒS|                      |¦  «        S )Nrý   r‡   r+  r*  r  r†   é   éÿÿÿÿr;   c              3   ó>   •K  — | ]}t          |‰z  f¦  «        V — Œd S rh   r  r  s     €r<   r  zIPDFStandardSecurityHandler.authenticate_owner_password.<locals>.<genexpr>Ð  r  r;   )r!  r   r÷   r’   r"  r  r   Údecryptr  rß   r#  r4  )	r]   rò   r$  rœ   rÇ   r	  Úuser_passwordr&  rå   s	           @r<   r5  z6PDFStandardSecurityHandler.authenticate_owner_passwordÀ  s4  ø€ à˜tÔ4Ñ4°c°r°cÔ:ˆÝ�8‰}Œ}ˆØŒ6�QŠ;ˆ;Ý˜2‘Y”Yð *ð *�Ý˜4Ÿ;š;™=œ=Ñ)Ô)��ØˆØŒ6�QŠ;ˆ;Ø”˜qÑ ˆAØ�kŠk‰mŒm˜B˜Q˜BÔˆØŒ6�QŠ;ˆ;Ý# C™LœL×0Ò0°´Ñ8Ô8ˆMˆMà œFˆMÝ˜2˜r 2Ñ&Ô&ð Bð B�Ø—H’HÐ@Ð@Ð@Ð@µd¸3±i´iÐ@Ñ@Ô@Ñ@Ô@�Ý '¨¡
¤
× 2Ò 2°=Ñ AÔ A��Ø×.Ò.¨}Ñ=Ô=Ð=r;   rp   rÄ   rÑ   rÞ   c                 ó0   — |                       |||¦  «        S rh   )Údecrypt_rc4)r]   rp   rÄ   rÑ   rÞ   s        r<   r>  z"PDFStandardSecurityHandler.decryptÔ  s   € ð ×Ò  u¨dÑ3Ô3Ð3r;   c                 ój  — | j         €J ‚| j         t          j        d|¦  «        d d…         z   t          j        d|¦  «        d d…         z   }t          |¦  «        }|                     ¦   «         d t          t          |¦  «        d¦  «        …         }t          |¦  «                             |¦  «        S )Nr)  r‡   r†   r  )	r	  r,  r-  r   r"  r¿   rŽ   r   r>  )r]   rp   rÄ   rÑ   r	  r$  s         r<   rA  z&PDFStandardSecurityHandler.decrypt_rc4Ý  s›   € ØŒxÐ#Ð#Ð#ØŒh�œ T¨5Ñ1Ô1°"°1°"Ô5Ñ5½¼ÀDÈ%Ñ8PÔ8PÐQSÐRSÐQSÔ8TÑTˆÝ�3‰xŒxˆØ�kŠk‰mŒmÐ/�c¥# c¡(¤(¨BÑ/Ô/Ð/Ô0ˆÝ�s‰|Œ|×#Ò# DÑ)Ô)Ð)r;   ©rï   r­   rh   )r7   r8   r9   r!  rî   r   ry   Ú__annotations__r   r  r	   rx   r   r\   rô   rö   rø   r  r  r  r  r'  r0  r   r  r4  r8  r5  r>  rA  r:   r;   r<   rí   rí   X  sw  € € € € € € ð	1ð ð ,2Ð˜˜s C˜xœÐ1Ð1Ñ1ð NPðð Ø˜e”_ðØ-1°#°s°(¬^ðØGJðà	ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ˜dð  ð  ð  ð  ð ˜tð  ð  ð  ð  ð! ð !ð !ð !ð !ð˜Uð  uð ð ð ð ð¨uð ¸ð ð ð ð ð& Sð ¨X°e¬_ð ð ð ð ð°5ð ¸XÀe¼_ð ð ð ð ð%¨ð %°4ð %ð %ð %ð %ð>°Eð >¸hÀu¼oð >ð >ð >ð >ð2 +/ð4ð 4àð4ð ð4ð ð	4ð
 ˜˜S #˜XœÔ'ð4ð 
ð4ð 4ð 4ð 4ð* ð *¨Sð *¸ð *À%ð *ð *ð *ð *ð *ð *r;   rí   c                   óð   ‡ — e Zd ZU dZeedf         ed<   dˆ fd„Zdede	e
eeegef                  fd„Z	 	 dd	ed
edede	eeef                  de	e         defd„Zd	ed
ededefd„Zd	ed
ededefd„Zˆ xZS )r.  )r  .rî   rV   Nc                 ó(  •— t          ¦   «                              ¦   «          d| _        t          | j                             d¦  «        ¦  «        | _        t          | j        d         ¦  «        | _        t          | j        d         ¦  «        | _	        t          | j                             dd¦  «        ¦  «        | _        | j        | j	        k    rd| j        z  }t          |¦  «        ‚i | _        | j                             ¦   «         D ]R\  }}|                      t          |d         ¦  «        ¦  «        }|€d	| j        z  }t          |¦  «        ‚|| j        |<   ŒS| j        | j        d
<   | j	        | j        vrd| j        z  }t          |¦  «        ‚d S )Né€   ÚCFÚStmFÚStrFÚEncryptMetadataTz"Unsupported crypt filter: param=%rÚCFMz%Unknown crypt filter method: param=%rÚIdentityz Undefined crypt filter: param=%r)r[   rö   r  r)   rñ   rº   Úcfr,   ÚstmfÚstrfr  r/  rJ   ÚcfmÚitemsÚget_cfmÚdecrypt_identity)r]   r™   r&  r  r˜   r^   s        €r<   rö   z(PDFStandardSecurityHandlerV4.init_paramsé  s]  ø€ Ý‰Œ×ÒÑÔÐØˆŒÝ˜TœZŸ^š^¨DÑ1Ô1Ñ2Ô2ˆŒÝ  ¤¨FÔ!3Ñ4Ô4ˆŒ	Ý  ¤¨FÔ!3Ñ4Ô4ˆŒ	Ý $ T¤Z§^¢^Ð4EÀtÑ%LÔ%LÑ MÔ MˆÔØŒ9˜œ	Ò!Ð!Ø<¸t¼zÑIˆIÝ$ YÑ/Ô/Ð/ØˆŒØ”G—M’M‘O”Oð 	ð 	‰DˆAˆqØ—’�\¨!¨E¬(Ñ3Ô3Ñ4Ô4ˆAØˆyØCÀdÄjÑP�	Ý(¨Ñ3Ô3Ð3ØˆDŒH�Q‰KˆKØ#Ô4ˆŒ�ÑØŒ9˜DœHÐ$Ð$Ø:¸T¼ZÑGˆIÝ$ YÑ/Ô/Ð/Øˆr;   Únamec                 ó:   — |dk    r| j         S |dk    r| j        S d S )NÚV2ÚAESV2)rA  Údecrypt_aes128©r]   rU  s     r<   rS  z$PDFStandardSecurityHandlerV4.get_cfm   s+   € Ø�4Š<ˆ<ØÔ#Ð#Ø�WŠ_ˆ_ØÔ&Ð&à�4r;   rp   rÄ   rÑ   rÞ   c                 ó®   — | j         s.|�,|                     d¦  «        }|�t          |¦  «        dk    r|S |€| j        } | j        |         |||¦  «        S )Nr   ÚMetadata)r/  rº   r,   rP  rQ  )r]   rp   rÄ   rÑ   rÞ   rU  Úts          r<   r>  z$PDFStandardSecurityHandlerV4.decrypt  se   € ð Ô$ð 	¨Ð):Ø—	’	˜&Ñ!Ô!ˆAØˆ}¥¨a¡¤°JÒ!>Ð!>Ø�Øˆ<Ø”9ˆDØˆtŒx˜Œ~˜e U¨DÑ1Ô1Ð1r;   c                 ó   — |S rh   r:   )r]   rp   rÄ   rÑ   s       r<   rT  z-PDFStandardSecurityHandlerV4.decrypt_identity  s   € Øˆr;   c                 ó&  — | j         €J ‚| j         t          j        d|¦  «        d d…         z   t          j        d|¦  «        d d…         z   dz   }t          |¦  «        }|                     ¦   «         d t          t          |¦  «        d¦  «        …         }|d d…         }|dd …         }t          t          j	        |¦  «        t          j        |¦  «        t          ¦   «         ¬¦  «        }|                     ¦   «                              |¦  «        S )Nr)  r‡   r†   s   sAlTr  ©Úbackend)r	  r,  r-  r   r"  r¿   rŽ   r   r   ÚAESr   ÚCBCr   Ú	decryptorr¤   )	r]   rp   rÄ   rÑ   r	  r$  Úinitialization_vectorÚ
ciphertextÚciphers	            r<   rY  z+PDFStandardSecurityHandlerV4.decrypt_aes128  s  € ØŒxÐ#Ð#Ð#àŒHÝŒk˜$ Ñ&Ô& r¨ rÔ*ñ+åŒk˜$ Ñ&Ô& r¨ rÔ*ñ+ð ñð 	õ �3‰xŒxˆØ�kŠk‰mŒmÐ/�c¥# c¡(¤(¨BÑ/Ô/Ð/Ô0ˆØ $ S b S¤	ÐØ˜"˜#˜#”Yˆ
ÝÝŒN˜3ÑÔÝŒIÐ+Ñ,Ô,Ý#Ñ%Ô%ð
ñ 
ô 
ˆð
 ×ÒÑ!Ô!×(Ò(¨Ñ4Ô4Ð4r;   r­   )NN)r7   r8   r9   rî   r   ry   rD  rö   rx   r   r   r  rS  r	   r   r>  rT  rY  r`   ra   s   @r<   r.  r.  å  s\  ø€ € € € € € à+/Ð˜˜s C˜xœÐ/Ð/Ñ/ðð ð ð ð ð ð.˜Cð  H¨X°s¸CÀÐ6GÈÐ6NÔ-OÔ$Pð ð ð ð ð +/Ø"ð2ð 2àð2ð ð2ð ð	2ð
 ˜˜S #˜XœÔ'ð2ð �sŒmð2ð 
ð2ð 2ð 2ð 2ð  cð °#ð ¸Uð Àuð ð ð ð ð5 Cð 5°ð 5¸5ð 5ÀUð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5r;   r.  c            	       óJ  ‡ — e Zd ZdZdˆ fd„Zdedeeeee	ge	f                  fd„Z
dedee	         fd„Zdede	fd	„Z	 dde	d
e	dee	         de	fd„Z	 dde	d
e	dee	         de	fd„Z	 dde	d
e	dee	         de	fd„Zede	defd„¦   «         Zde	de	de	de	fd„Zdedede	de	fd„Zˆ xZS )ÚPDFStandardSecurityHandlerV5)r*  é   rV   Nc                 óÂ  •— t          ¦   «                              ¦   «          d| _        t          | j        d         ¦  «        | _        t          | j        d         ¦  «        | _        | j        d d…         | _        | j        dd…         | _	        | j        dd …         | _
        | j        d d…         | _        | j        dd…         | _        | j        dd …         | _        d S )Né   ÚOEÚUErý   r  )r[   rö   r  r&   rñ   ÚoeÚuer  Úo_hashÚo_validation_saltÚ
o_key_saltr  Úu_hashÚu_validation_saltÚ
u_key_salt)r]   r^   s    €r<   rö   z(PDFStandardSecurityHandlerV5.init_params3  s¹   ø€ Ý‰Œ×ÒÑÔÐØˆŒÝ˜DœJ tÔ,Ñ-Ô-ˆŒÝ˜DœJ tÔ,Ñ-Ô-ˆŒØ”f˜S˜b˜S”kˆŒØ!%¤¨¨2¨¤ˆÔØœ&   œ+ˆŒØ”f˜S˜b˜S”kˆŒØ!%¤¨¨2¨¤ˆÔØœ&   œ+ˆŒØˆr;   rU  c                 ó    — |dk    r| j         S d S )NÚAESV3)Údecrypt_aes256rZ  s     r<   rS  z$PDFStandardSecurityHandlerV5.get_cfm@  s   € Ø�7Š?ˆ?ØÔ&Ð&à�4r;   rò   c                 ó  — |                       |¦  «        }|                      || j        | j        ¦  «        }|| j        k    r�|                      || j        | j        ¦  «        }t          t          j        |¦  «        t          j
        d¦  «        t          ¦   «         ¬¦  «        }|                     ¦   «                              | j        ¦  «        S |                      || j        ¦  «        }|| j        k    r‰|                      || j        ¦  «        }t          t          j        |¦  «        t          j
        d¦  «        t          ¦   «         ¬¦  «        }|                     ¦   «                              | j        ¦  «        S d S )Ns                   r`  )Ú_normalize_passwordÚ_password_hashrr  r  rq  rs  r   r   rb  r   rc  r   rd  r¤   ro  ru  rt  rv  rp  )r]   rò   Ú
password_br$  rg  s        r<   r  z)PDFStandardSecurityHandlerV5.authenticateF  sL  € Ø×-Ò-¨hÑ7Ô7ˆ
Ø×"Ò" :¨tÔ/EÀtÄvÑNÔNˆØ�4”;ÒÐØ×&Ò& z°4´?ÀDÄFÑKÔKˆDÝÝ”˜tÑ$Ô$¥e¤i°
Ñ&;Ô&;Å_ÑEVÔEVðñ ô ˆFð ×#Ò#Ñ%Ô%×,Ò,¨T¬WÑ5Ô5Ð5Ø×"Ò" :¨tÔ/EÑFÔFˆØ�4”;ÒÐØ×&Ò& z°4´?ÑCÔCˆDÝÝ”˜tÑ$Ô$¥e¤i°
Ñ&;Ô&;Å_ÑEVÔEVðñ ô ˆFð ×#Ò#Ñ%Ô%×,Ò,¨T¬WÑ5Ô5Ð5Øˆtr;   c                 ó|   — | j         dk    r|sdS ddlm}  ||¦  «        }|                     d¦  «        d d…         S )Nrj  r;   r   )Úsaslprepzutf-8é   )r÷   Ú	_saslprepr  r3  )r]   rò   r  s      r<   r{  z0PDFStandardSecurityHandlerV5._normalize_passwordX  sV   € ØŒ6�QŠ;ˆ;àð Ø�sØ+Ð+Ð+Ð+Ð+Ð+à�x Ñ)Ô)ˆHØ�Š˜wÑ'Ô'¨¨¨Ô-Ð-r;   ÚsaltÚvectorc                 ó„   — | j         dk    r|                      |||¦  «        S |                      ||dd…         |¦  «        S )zD
        Compute password hash depending on revision number
        r*  r   r  )r÷   Ú_r5_passwordÚ_r6_password)r]   rò   r‚  rƒ  s       r<   r|  z+PDFStandardSecurityHandlerV5._password_hashb  sG   € ð Œ6�QŠ;ˆ;Ø×$Ò$ X¨t°VÑ<Ô<Ð<Ø× Ò  ¨4°°!°¬9°fÑ=Ô=Ð=r;   c                 ó    — t          |¦  «        }|                     |¦  «         |�|                     |¦  «         |                     ¦   «         S )z5
        Compute the password for revision 5
        )r   r¤   r"  )r]   rò   r‚  rƒ  r$  s        r<   r…  z)PDFStandardSecurityHandlerV5._r5_passwordl  sI   € õ �hÑÔˆØ�Š�DÑÔÐØÐØ�KŠK˜ÑÔÐØ�{Š{‰}Œ}Ðr;   c                 óD  — t          |¦  «        }|                     |¦  «         |�|                     |¦  «         |                     ¦   «         }t           t          t          f}dx}}|dk     s	||dz
  k    r¡||z   |pdz   dz  }	|                      |dd…         |dd…         |	¬¦  «        }
||                      |
dd…         ¦  «                 } ||
¦  «                             ¦   «         }|
t          |
¦  «        dz
           }|dz  }|dk     °˜||dz
  k    °¡|dd…         S )	z5
        Compute the password for revision 6
        Nr   é@   rý   r;   r  )r	  ÚivrÑ   r   )r   r¤   r"  r   r   Ú_aes_cbc_encryptÚ_bytes_mod_3rŽ   )r]   rò   r‚  rƒ  Úinitial_hashr&  ÚhashesÚround_noÚlast_byte_valÚk1ÚeÚ	next_hashs               r<   r†  z)PDFStandardSecurityHandlerV5._r6_passwordx  s=  € õ ˜hÑ'Ô'ˆØ×Ò˜DÑ!Ô!Ð!ØÐØ×Ò Ñ'Ô'Ð'Ø×ÒÑ!Ô!ˆÝ�&¥&Ð)ˆØ#$Ð$ˆ�=Ø˜Šmˆm˜}¨x¸"©}Ò<Ð<Ø˜Q‘, & -¨CÑ0°BÑ6ˆBØ×%Ò%¨!¨C¨R¨C¬&°Q°r¸"°u´XÀBÐ%ÑGÔGˆAð ˜t×0Ò0°°3°B°3´Ñ8Ô8Ô9ˆIØ�	˜!‘”×#Ò#Ñ%Ô%ˆAØ�c !™fœf q™jœMˆMØ˜‰MˆHð ˜Šmˆm˜}¨x¸"©}Ò<Ð<ð ��"�Œvˆr;   Úinput_bytesc                 ó:   — t          d„ | D ¦   «         ¦  «        dz  S )Nc              3   ó    K  — | ]	}|d z  V — Œ
dS )r‡   Nr:   )r  Úbs     r<   r  z<PDFStandardSecurityHandlerV5._bytes_mod_3.<locals>.<genexpr>“  s&   è è € Ð.Ð.˜Q�1�q‘5Ð.Ð.Ð.Ð.Ð.Ð.r;   r‡   )Úsum)r”  s    r<   rŒ  z)PDFStandardSecurityHandlerV5._bytes_mod_3�  s&   € õ Ð.Ð. +Ð.Ñ.Ô.Ñ.Ô.°Ñ2Ð2r;   r	  rŠ  rÑ   c                 óæ   — t          t          j        |¦  «        t          j        |¦  «        ¦  «        }|                     ¦   «         }|                     |¦  «        |                     ¦   «         z   S rh   )r   r   rb  r   rc  Ú	encryptorr¤   Úfinalize)r]   r	  rŠ  rÑ   rg  rš  s         r<   r‹  z-PDFStandardSecurityHandlerV5._aes_cbc_encrypt•  sY   € Ý�
œ sÑ+Ô+­U¬Y°r©]¬]Ñ;Ô;ˆØ×$Ò$Ñ&Ô&ˆ	Ø×Ò Ñ%Ô%¨	×(:Ò(:Ñ(<Ô(<Ñ<Ð<r;   rp   rÄ   c                 ó  — |d d…         }|dd …         }| j         €J ‚t          t          j        | j         ¦  «        t	          j        |¦  «        t          ¦   «         ¬¦  «        }|                     ¦   «                              |¦  «        S )Nr  r`  )	r	  r   r   rb  r   rc  r   rd  r¤   )r]   rp   rÄ   rÑ   re  rf  rg  s          r<   ry  z+PDFStandardSecurityHandlerV5.decrypt_aes256š  s‡   € Ø $ S b S¤	ÐØ˜"˜#˜#”Yˆ
ØŒxÐ#Ð#Ð#ÝÝŒN˜4œ8Ñ$Ô$ÝŒIÐ+Ñ,Ô,Ý#Ñ%Ô%ð
ñ 
ô 
ˆð
 ×ÒÑ!Ô!×(Ò(¨Ñ4Ô4Ð4r;   r­   rh   )r7   r8   r9   rî   rö   rx   r   r   ry   r  rS  r  r{  r|  r…  r†  ÚstaticmethodrŒ  r‹  ry  r`   ra   s   @r<   ri  ri  /  s  ø€ € € € € à Ððð ð ð ð ð ð˜Cð  H¨X°s¸CÀÐ6GÈÐ6NÔ-OÔ$Pð ð ð ð ð Sð ¨X°e¬_ð ð ð ð ð$.¨Cð .°Eð .ð .ð .ð .ð GKð>ð >Øð>Ø%*ð>Ø4<¸U´Oð>à	ð>ð >ð >ð >ð GKð
ð 
Øð
Ø%*ð
Ø4<¸U´Oð
à	ð
ð 
ð 
ð 
ð GKðð ØðØ%*ðØ4<¸U´Oðà	ðð ð ð ð0 ð3 %ð 3¨Cð 3ð 3ð 3ñ „\ð3ð= Eð =¨uð =¸Eð =Àeð =ð =ð =ð =ð
	5 Cð 	5°ð 	5¸5ð 	5ÀUð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5r;   ri  c                   ó¾  — e Zd ZU dZeeeedœZee	e
e         f         ed<   	 	 	 d"dededed	ed
df
d„Z ed¦  «        Zd#ded
dfd„Zdede	de	d
efd„Zded
eee         e	f         fd„Zde	de	d
efd„Zde	d
efd„Zeeeeeef         Zd
ee         fd„Zd
ee         fd„Zdede ee!f         d
efd„Z"de ee!f         d
efd„Z#ded
e	fd„Z$dede	d ee%         d
dfd!„Z&dS )$ÚPDFDocumentaP  PDFDocument object represents a PDF document.

    Since a PDF file can be very big, normally it is not loaded at
    once. So PDF document has to cooperate with a PDF parser in order to
    dynamically import the data as processing goes.

    Typical usage:
      doc = PDFDocument(parser, password)
      obj = doc.getobj(objid)

    )r   r†   r  r*  Úsecurity_handler_registryrï   Tru   rò   ÚcachingÚfallbackrV   Nc                 ó  — || _         g | _        g | _        i | _        d| _        d| _        d| _        i | _        i | _        || _        | j         	                    | ¦  «         dx| _
        x| _        | _        	 |                      |¦  «        }|                      ||| j        ¦  «         nV# t          $ rI |rDd|_        t#          ¦   «         }|                     |¦  «         | j                             |¦  «         Y nw xY w| j        D ]»}|                     ¦   «         }|sŒd|v rMd|v rt+          |d         ¦  «        }	nd}	|	t-          |d         ¦  «        f| _        |                      |¦  «         d|v r-| j                             t-          |d         ¦  «        ¦  «         d|v rt-          |d         ¦  «        | _         nŒ¼t1          d¦  «        ‚| j                             d	¦  «        t4          urt6          j        rt1          d
¦  «        ‚dS )z1Set the document to use a given PDFParser object.NTÚEncryptÚID)r;   r;   ÚInfoÚRootz(No /Root object! - Is this really a PDF?r   zCatalog not found!)r¡  ÚxrefsÚinfoÚcatalogÚ
encryptionÚdecipherÚ_parserÚ_cached_objsÚ_parsed_objsÚset_documentr  r  r  Ú	find_xrefÚread_xref_fromr5   r¢  r¯   rw   r¾   rl   r'   r)   Ú_initialize_passwordr   rº   ÚLITERAL_CATALOGr   r¼   )
r]   ru   rò   r¡  r¢  r–   ÚnewxrefÚxrefr~   Úid_values
             r<   r\   zPDFDocument.__init__º  s7  € ð ˆŒØ(*ˆŒ
ØˆŒ	Ø')ˆŒØ59ˆŒØ48ˆŒØˆŒØ;=ˆÔØACˆÔØˆŒØŒ×!Ò! $Ñ'Ô'Ð'ØGKÐKˆÔÐK˜DÔ.°Ô1Dð	+Ø—.’. Ñ(Ô(ˆCØ×Ò ¨¨T¬ZÑ8Ô8Ð8Ð8øÝð 	+ð 	+ð 	+Øð +Ø"&�”Ý)Ñ+Ô+�Ø—’˜VÑ$Ô$Ð$Ø”
×!Ò! 'Ñ*Ô*Ð*øøð	+øøøð ”Jð 	Mð 	MˆDØ×&Ò&Ñ(Ô(ˆGØð Øà˜GÐ#Ð#Ø˜7�?�?Ý)¨'°$¬-Ñ8Ô8�H�Hð
  *�HØ#+­Z¸À	Ô8JÑ-KÔ-KÐ"L�”Ø×)Ò)¨(Ñ3Ô3Ð3Ø˜Ð Ð Ø”	× Ò ¥¨G°F¬OÑ!<Ô!<Ñ=Ô=Ð=Ø˜Ð Ð å)¨'°&¬/Ñ:Ô:�”Ø�ð !õ
 !Ð!KÑLÔLÐLØŒ<×Ò˜FÑ#Ô#­?Ð:Ð:ÝŒð ;Ý$Ð%9Ñ:Ô:Ð:Øˆs   Á71B) Â)AC<Ã;C<ó   objc                 ó0  — | j         €J ‚| j         \  }}t          |                     d¦  «        ¦  «        dk    rt          d|z  ¦  «        ‚t	          |                     dd¦  «        ¦  «        }| j                             |¦  «        }|€t          d|z  ¦  «        ‚ ||||¦  «        }|j        | _        |                     ¦   «         | _        | 	                    ¦   «         | _	        | 
                    ¦   «         | _
        | j        €J ‚d| j        _        d S )NÚFilterÚStandardzUnknown filter: param=%rrú   r   zUnknown algorithm: param=%rF)r«  r,   rº   rJ   r%   r   r>  r¬  r  r  r  r­  r¢  )r]   rò   rð   rñ   r  ÚfactoryÚhandlers          r<   r³  z PDFDocument._initialize_passwordú  s  € ØŒÐ*Ð*Ð*Øœ‰ˆ�Ý˜Ÿ	š	 (Ñ+Ô+Ñ,Ô,°
Ò:Ð:Ý$Ð%?À%Ñ%GÑHÔHÐHÝ�e—i’i  QÑ'Ô'Ñ(Ô(ˆØÔ0×4Ò4°QÑ7Ô7ˆØˆ?Ý$Ð%BÀUÑ%JÑKÔKÐKØ�'˜% ¨Ñ1Ô1ˆØœˆŒØ#×0Ò0Ñ2Ô2ˆÔØ$×2Ò2Ñ4Ô4ˆÔØ%×4Ò4Ñ6Ô6ˆÔØŒ|Ð'Ð'Ð'Ø %ˆŒÔØˆr;   rÆ   rÊ   rp   c                 ó$  — |j         | j        v r| j        |j                  \  }}n9|                      |¦  «        \  }}| j        r|j         €J ‚||f| j        |j         <   |dz  |z   }	 ||         }n # t          $ r t          d|z  ¦  «        ‚w xY w|S )Nr†   zindex too big: %r)rp   r¯  Ú_get_objectsr¡  Ú
IndexErrorr   )r]   rÆ   rÊ   rp   rÉ   rÇ   rå   rÅ   s           r<   Ú_getobj_objstmzPDFDocument._getobj_objstm  sº   € ØŒ<˜4Ô,Ð,Ð,ØÔ)¨&¬,Ô7‰IˆT�1�1à×)Ò)¨&Ñ1Ô1‰IˆT�1ØŒ|ð <Ø”|Ð/Ð/Ð/Ø37¸°)�Ô! &¤,Ñ/Ø�‰E�E‰Mˆð	>Ø�q”'ˆCˆCøÝð 	>ð 	>ð 	>Ý Ð!4°uÑ!<Ñ=Ô=Ð=ð	>øøøàˆ
s   Á'A0 Á0Bc                 ó  — |                      d¦  «        t          urt          j        rt	          d|z  ¦  «        ‚	 t          t          |d         ¦  «        }n0# t          $ r# t          j        rt	          d|z  ¦  «        ‚d}Y nw xY wt          | 	                    ¦   «         ¦  «        }| 
                    | ¦  «         g }	 	 |                     ¦   «         \  }}|                     |¦  «         Œ-# t          $ r Y nw xY w||fS )Nr   zNot a stream object: %rr³   r´   r   )rº   r»   r   r¼   r   r   ry   rr   r   r½   r°  r¢   r¾   r+   )r]   rÆ   rÇ   ru   rÉ   rœ   rÅ   s          r<   r¿  zPDFDocument._get_objects  s)  € Ø�:Š:�fÑÔ¥^Ð3Ð3ÝŒð IÝ$Ð%>ÀÑ%GÑHÔHÐHð	Ý•S˜& œ+Ñ&Ô&ˆAˆAøÝð 	ð 	ð 	ÝŒð FÝ$Ð%;¸fÑ%DÑEÔEÐEØˆAˆAˆAð	øøøõ ! §¢Ñ!2Ô!2Ñ3Ô3ˆØ×Ò˜DÑ!Ô!Ð!Øˆð	ð!Ø!×,Ò,Ñ.Ô.‘��CØ—’˜CÑ Ô Ð ð!øõ ð 	ð 	ð 	ØˆDð	øøøà�aˆyÐs#   ¼A Á*BÂBÃ.C/ Ã/
C<Ã;C<r–   c                 ó”  — | j         €J ‚| j                              |¦  «         | j                              ¦   «         \  }}| j                              ¦   «         \  }}| j                              ¦   «         \  }}||k    r`g }|| j        ur:| j                              ¦   «         \  }}|                     |¦  «         || j        u°:t          |¦  «        dk    r|d         }||k    r#t          d                     ||¦  «        ¦  «        ‚|t          d¦  «        k    rt          d|z  ¦  «        ‚| j          	                    ¦   «         \  }}|S )Nr†   éþÿÿÿzobjid mismatch: {!r}={!r}r¸  zInvalid object spec: offset=%r)
r­  rŒ   r¡   ÚKEYWORD_OBJr¾   rŽ   r   r�   r.   r¢   )	r]   r–   rp   rœ   rË   rÄ   r¥   r§   rÅ   s	            r<   Ú_getobj_parsezPDFDocument._getobj_parse0  sB  € ØŒ|Ð'Ð'Ð'ØŒ×Ò˜#ÑÔÐØ”l×,Ò,Ñ.Ô.‰ˆˆFØ”\×+Ò+Ñ-Ô-‰
ˆˆEØ”<×)Ò)Ñ+Ô+‰ˆˆCð �UŠ?ˆ?ØˆAØ˜TÔ-Ð-Ð-Øœ<×1Ò1Ñ3Ô3‘��CØ—’˜‘”�ð ˜TÔ-Ð-Ð-õ �1‰vŒv˜Š{ˆ{Ø˜2œ�à�UŠ?ˆ?Ý Ð!<×!CÒ!CÀFÈEÑ!RÔ!RÑSÔSÐSà•#�f‘+”+ÒÐÝ Ð!AÀCÑ!GÑHÔHÐHØ”<×*Ò*Ñ,Ô,‰ˆˆCØˆ
r;   c                 óì  — | j         st          d¦  «        ‚t                               d|¦  «         || j        v r| j        |         \  }}�n'| j         D ]á}	 |                     |¦  «        \  }}}n# t          $ r Y Œ)w xY w	 |�:t          |                      |¦  «        ¦  «        }|  	                    |||¦  «        }n4|  
                    ||¦  «        }| j        rt          | j        |||¦  «        }t          |t          ¦  «        r|                     ||¦  «          n&# t           t"          f$ r Y ŒÞw xY wt%          |¦  «        ‚t                               d||¦  «         | j        r||f| j        |<   |S )z�Get object from PDF

        :raises PDFException if PDFDocument is not initialized
        :raises PDFObjectNotFound if objid does not exist in PDF
        zPDFDocument is not initializedzgetobj: objid=%rNzregister: objid=%r: %r)r¨  r    r“   r”   r®  rt   rr   r*   ÚgetobjrÁ  rÆ  r¬  r$   r¹   r"   Ú	set_objidr+   r   r#   r¡  )r]   rp   rÅ   rÄ   r¶  ÚstrmidrÊ   rÆ   s           r<   rÈ  zPDFDocument.getobjL  s­  € ð Œzð 	AÝÐ?Ñ@Ô@Ð@Ý�	Š	Ð$ eÑ,Ô,Ð,Ø�DÔ%Ð%Ð%ØÔ,¨UÔ3‰LˆS�%‘%àœ
ð /ð /�ðØ-1¯\ª\¸%Ñ-@Ô-@Ñ*�V˜U E EøÝð ð ð Ø�HðøøøðØÐ)Ý!-¨d¯kªk¸&Ñ.AÔ.AÑ!BÔ!B˜Ø"×1Ò1°&¸%ÀÑGÔG˜˜à"×0Ò0°¸Ñ>Ô>˜Øœ=ð QÝ".¨t¬}¸eÀUÈCÑ"PÔ"P˜Cå! #¥yÑ1Ô1ð 4ØŸš e¨UÑ3Ô3Ð3Ø�EøÝ�~Ð.ð ð ð Ø�Hðøøøõ (¨Ñ.Ô.Ð.Ý�IŠIÐ.°°sÑ;Ô;Ð;ØŒ|ð 8Ø,/°¨<�Ô! %Ñ(Øˆ
s%   ÁA1Á1
A>Á=A>ÂBDÄD3Ä2D3c                 ó¨   ‡— d| j         vrt          ‚dt          dt          dt          t
          j                 fˆfd„Š ‰| j         d         d¦  «        S )NÚOutlinesÚentryÚlevelrV   c              3   ó”  •K  — t          | ¦  «        } d| v rrd| v sd| v rjt          t          | d         ¦  «        ¦  «        }|                      d¦  «        }|                      d¦  «        }|                      d¦  «        }|||||fV — d| v rd| v r ‰| d         |dz   ¦  «        E d {V —† d| v r ‰| d         |¦  «        E d {V —† d S )	NÚTitleÚAÚDestÚSEÚFirstÚLastr   ÚNext)r)   r0   r&   rº   )rÍ  rÎ  ÚtitleÚdestÚactionÚseÚsearchs         €r<   rÛ  z(PDFDocument.get_outlines.<locals>.searchx  s  øè è € Ý˜uÑ%Ô%ˆEØ˜%ÐÐØ˜%�<�< 6¨U ? ?Ý'­	°%¸´.Ñ(AÔ(AÑBÔB�EØ Ÿ9š9 VÑ,Ô,�DØ"ŸYšY s™^œ^�FØŸš 4™œ�BØ  %¨¨v°rÐ:Ð:Ð:Ð:Ø˜%ÐÐ F¨e O OØ!˜6 %¨¤.°%¸!±)Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ø˜ˆˆØ!˜6 %¨¤-°Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ØˆFr;   r   )rª  rD   r_   ry   r   rŸ  ÚOutlineType)r]   rÛ  s    @r<   Úget_outlineszPDFDocument.get_outlinest  sl   ø€ Ø˜Tœ\Ð)Ð)ÝÐð	�&ð 	­ð 	µ½+Ô:QÔ1Rð 	ð 	ð 	ð 	ð 	ð 	ð ˆv�d”l :Ô.°Ñ2Ô2Ð2r;   c                 ó’   — | j         €J ‚	 t          | j         d         ¦  «        }n# t          t          f$ r t          ‚w xY w|j        S )zê
        Generate page label strings for the PDF document.

        If the document includes page labels, generates strings, one per page.
        If not, raises PDFNoPageLabels.

        The resulting iteration is unbounded.
        NÚ
PageLabels)rª  rß  r!   rr   rF   Úlabels)r]   Úpage_labelss     r<   Úget_page_labelszPDFDocument.get_page_labels‰  s^   € ð Œ|Ð'Ð'Ð'ð	"Ý$ T¤\°,Ô%?Ñ@Ô@ˆKˆKøÝ�hÐ'ð 	"ð 	"ð 	"Ý!Ð!ð	"øøøð Ô!Ð!s   ‹& ¦?Úcatr	  c                 ó  ‡‡‡— 	 t          | j        d         ¦  «        }n&# t          t          f$ r t          ‰‰f¦  «        ‚w xY wt          |‰         ¦  «        }dt          t
          t          f         dt          fˆˆˆfd„Š ‰|¦  «        S )NÚNamesÚdrV   c           	      óî  •— d| v r&t          | d         ¦  «        \  }}‰|k     s|‰k     rd S d| v r|t          | d         ¦  «        }t          t          t          t          t
          t          t          f         t          f                  t          d|¦  «        ¦  «        ¦  «        }|‰         S d| v r6t          | d         ¦  «        D ] } ‰	t          |¦  «        ¦  «        }|r|c S Œ!t          ‰‰f¦  «        ‚)NÚLimitsrå  r†   ÚKids)r'   Údictr   r   r   r   rx   r  r   r/   r)   rr   )
ræ  r‘  Úk2rÉ   Únamesr  r  rã  r	  Úlookups
          €€€r<   rí  z'PDFDocument.lookup_name.<locals>.lookup£  sü   ø€ Ø˜1ˆ}ˆ}Ý% a¨¤kÑ2Ô2‘��RØ˜’8�8˜r Cšx˜xØ˜4Ø˜!ˆ|ˆ|Ý! ! G¤*Ñ-Ô-�ÝÝ�¥%­­cµ5¨jÔ(9½3Ð(>Ô"?Ô@Å(È1ÈdÑBSÔBSÑTÔTñô �ð ˜S”zÐ!Ø˜ˆ{ˆ{Ý# A f¤IÑ.Ô.ð !ð !�AØ˜�z¨!™}œ}Ñ-Ô-�AØð !Ø ˜˜˜ð!å˜C ˜:Ñ&Ô&Ð&r;   )r)   rª  r!   rr   r	   rx   r   )r]   rã  r	  rì  Úd0rí  s    ``  @r<   Úlookup_namezPDFDocument.lookup_name›  s³   øøø€ ð	'Ý˜tœ|¨GÔ4Ñ5Ô5ˆEˆEøÝ�hÐ'ð 	'ð 	'ð 	'Ý˜C ˜:Ñ&Ô&Ð&ð	'øøøõ ˜˜cœ
Ñ#Ô#ˆð	'•d�3¥˜8”nð 	'­ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð$ ˆv�b‰zŒzÐs	   …   #ArU  c                 óð   — 	 |                       d|¦  «        }n]# t          $ rP d| j        vrt          |¦  «        ‚t	          | j        d         ¦  «        }||vrt          |¦  «        ‚||         }Y nw xY w|S )NÚDests)rï  rr   rª  rH   r)   )r]   rU  rÅ   rî  s       r<   Úget_destzPDFDocument.get_dest·  s“   € ð
	à×"Ò" 7¨DÑ1Ô1ˆCˆCøÝð 	ð 	ð 	à˜dœlÐ*Ð*Ý,¨TÑ2Ô2Ð2Ý˜DœL¨Ô1Ñ2Ô2ˆBØ˜2ˆ~ˆ~Ý,¨TÑ2Ô2Ð2Ø�T”(ˆCˆCˆCð	øøøð ˆ
s   ‚ ™AA3Á2A3c                 ó$  — d}|                      ¦   «         D ]=}|                     ¦   «         }t                               d|¦  «         |dk    r n|r|}Œ>t	          d¦  «        ‚t                               d|¦  «         |€J ‚t          |¦  «        S )z0Internal function used to locate the first XRef.Nzfind_xref: %rs	   startxrefúUnexpected EOFzxref found: pos=%r)ÚrevreadlinesrŠ   r“   r”   r5   ry   )r]   ru   Úprevr—   s       r<   r±  zPDFDocument.find_xrefÆ  sŸ   € ð ˆØ×'Ò'Ñ)Ô)ð 	3ð 	3ˆDØ—:’:‘<”<ˆDÝ�IŠI�o tÑ,Ô,Ð,Ø�|Ò#Ð#Ø�Øð Ø�øå Ð!1Ñ2Ô2Ð2Ý�	Š	Ð&¨Ñ-Ô-Ð-ØÐÐÐÝ�4‰yŒyÐr;   rš   r¨  c                 óˆ  — |                      |¦  «         |                     ¦   «          	 |                     ¦   «         \  }}n# t          $ r t	          d¦  «        ‚w xY wt
                               d||¦  «         t          |t          ¦  «        rM|                      |¦  «         |                     ¦   «          t          ¦   «         }| 
                    |¦  «         n@||j        u r|                     ¦   «          t          ¦   «         }| 
                    |¦  «         |                     |¦  «         |                     ¦   «         }t
                               d|¦  «         d|v r,t!          |d         ¦  «        }|                      |||¦  «         d|v r,t!          |d         ¦  «        }|                      |||¦  «         dS )z$Reads XRefs from the given location.rô  z"read_xref_from: start=%d, token=%rr²   ÚXRefStmÚPrevN)rŒ   Úresetr¡   r+   r5   r“   r”   r¹   ry   rÏ   rw   ÚKEYWORD_XREFr‰   r{   r¾   rl   r%   r²  )r]   ru   rš   r¨  r–   Útokenr¶  r~   s           r<   r²  zPDFDocument.read_xref_fromØ  s­  € ð 	�Š�EÑÔÐØ�Š‰Œˆð	3Ø!×+Ò+Ñ-Ô-‰LˆS�%�%øÝð 	3ð 	3ð 	3Ý Ð!1Ñ2Ô2Ð2ð	3øøøå�	Š	Ð6¸¸uÑEÔEÐEÝ�e�SÑ!Ô!ð 
	à�KŠK˜ÑÔÐØ�LŠL‰NŒNˆNÝ -¡¤ˆDØ�IŠI�fÑÔÐÐà˜Ô+Ð+Ð+Ø—’Ñ!Ô!Ð!Ý‘9”9ˆDØ�IŠI�fÑÔÐØ�Š�TÑÔÐØ×"Ò"Ñ$Ô$ˆÝ�	Š	�- Ñ)Ô)Ð)Ø˜ÐÐÝ˜G IÔ.Ñ/Ô/ˆCØ×Ò ¨¨UÑ3Ô3Ð3Ø�WÐÐå˜G FœOÑ,Ô,ˆCØ×Ò ¨¨UÑ3Ô3Ð3Øˆs   «A ÁA)rï   TTrC  )'r7   r8   r9   rA   rí   r.  ri  r   r	   ry   r   rD  r   rx   r  r\   r.   rÅ  r³  r"   r_   rÁ  r   r   r¿  rÆ  rÈ  r   rÜ  r   rÝ  râ  r   r  rï  rò  r±  rf   r²  r:   r;   r<   rŸ  rŸ  ¦  s£  € € € € € € ð
ð 
ð &Ø%Ø'Ø'ð	Nð NÐ˜t C¨Ð.HÔ)IÐ$IÔJð ð ñ ð ØØð:ð :àð:ð ð:ð ð	:ð
 ð:ð 
ð:ð :ð :ð :ðx �#�f‘+”+€Kðð ¨Sð ¸$ð ð ð ð ð$ Yð °sð À3ð È6ð ð ð ð ð 9ð °°t¸F´|ÀSÐ7HÔ1Ið ð ð ð ð* ð ¨Sð °Vð ð ð ð ð8$˜Cð $ Fð $ð $ð $ð $ðL ˜˜S # s¨CÐ/Ô0€Kð3˜h {Ô3ð 3ð 3ð 3ð 3ð*" ¨#¤ð "ð "ð "ð "ð$˜sð ¨¨s°E¨zÔ):ð ¸sð ð ð ð ð8˜U 3¨ :Ô.ð °3ð ð ð ð ð 	ð ¨cð ð ð ð ð$ Øð Ø(+ð Ø48¸Ô4Eð à	ð ð  ð  ð  ð  ð  r;   rŸ  c                   ó^   — e Zd ZdZedee         fd„¦   «         Zede	de
defd„¦   «         ZdS )rß  zWPageLabels from the document catalog.

    See Section 8.3.1 in the PDF Reference.
    rV   c           	   #   óÂ  K  — | j         }t          |¦  «        dk    s|d         d         dk    r3t          j        rt	          d¦  «        ‚|                     ddi f¦  «         t          |d¦  «        D ]ì\  }\  }}t          |¦  «        }|                     d¦  «        }t          t          |                     dd¦  «        ¦  «        ¦  «        }t          |                     dd¦  «        ¦  «        }|t          |¦  «        k    rt          j        |¦  «        }	n#||         \  }
}|
|z
  }t          |||z   ¦  «        }	|	D ]}|                      ||¦  «        }||z   V — Œ Œíd S )Nr   z"PageLabels is missing page index 0r   ÚSrü   r;   ÚSt)ÚvaluesrŽ   r   r¼   r   ÚinsertÚ	enumerater)   rº   r0   r&   r%   Ú	itertoolsÚcountr’   Ú_format_page_label)r]   rÖ   Únextrš   Úlabel_dict_uncheckedÚ
label_dictÚstyleÚprefixÚfirst_valuer  Úendrœ   Úrange_lengthÚvalueÚlabels                  r<   rà  zPageLabels.labels  sz  è è € à”ˆõ ˆv‰;Œ;˜!ÒÐ˜v aœy¨œ|¨qÒ0Ð0ÝŒð *Ý$Ð%IÑJÔJÐJð —’˜a ! R Ñ)Ô)Ð)å5>¸vÀqÑ5IÔ5Ið 	%ð 	%Ñ1ˆTÑ0�EÐ/Ý#Ð$8Ñ9Ô9ˆJØ—N’N 3Ñ'Ô'ˆEÝ ¥¨:¯>ª>¸#¸sÑ+CÔ+CÑ!DÔ!DÑEÔEˆFÝ# J§N¢N°4¸Ñ$;Ô$;Ñ<Ô<ˆKà•s˜6‘{”{Ò"Ð"õ )2¬¸Ñ(DÔ(D��à œ‘��QØ" U™{�Ý˜{¨K¸,Ñ,FÑGÔG�àð %ð %�Ø×/Ò/°°uÑ=Ô=�Ø˜u‘nÐ$Ð$Ð$Ð$ð%ð	%ð 	%r;   r  r
  c                 óÜ  — |€d}næ|t          d¦  «        u rt          | ¦  «        }nÅ|t          d¦  «        u r"t          | ¦  «                             ¦   «         }n’|t          d¦  «        u rt          | ¦  «        }nq|t          d¦  «        u r"t	          | ¦  «                             ¦   «         }n>|t          d¦  «        u rt	          | ¦  «        }nt
                               d|¦  «         d}|S )	z+Format page label value in a specific styleNrï   ÚDrû   r÷   rÑ  ÚazUnknown page label style: %r)r-   rx   r2   Úupperr3   r“   Úwarning)r  r
  r  s      r<   r  zPageLabels._format_page_label   så   € ð ˆ=ØˆEˆEØ•c˜#‘h”hÐÐÝ˜‘J”JˆEˆEØ•c˜#‘h”hÐÐÝ$ UÑ+Ô+×1Ò1Ñ3Ô3ˆEˆEØ•c˜#‘h”hÐÐÝ$ UÑ+Ô+ˆEˆEØ•c˜#‘h”hÐÐÝ$ UÑ+Ô+×1Ò1Ñ3Ô3ˆEˆEØ•c˜#‘h”hÐÐÝ$ UÑ+Ô+ˆEˆEå�KŠKÐ6¸Ñ>Ô>Ð>ØˆEØˆr;   N)r7   r8   r9   rA   Úpropertyr   rx   rà  r�  ry   r   r  r:   r;   r<   rß  rß  û  s~   € € € € € ðð ð
 ð%˜ œð %ð %ð %ñ „Xð%ð< ð #ð ¨cð °cð ð ð ñ „\ðð ð r;   rß  )[r  ÚloggingrÌ   r,  Úhashlibr   r   r   r   Útypingr   r   r	   r
   r   r   r   r   r   r   r   r   r   Úcryptography.hazmat.backendsr   Ú&cryptography.hazmat.primitives.ciphersr   r   r   rï   r   Úarcfourr   Údata_structuresr   Ú	pdfparserr   r   r   Úpdftypesr   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Úpsparserr+   r,   r-   r.   Úutilsr/   r0   r1   r2   r3   Ú	getLoggerr7   r“   r5   ÚSyntaxWarningr?   rD   rF   rH   rJ   rL   ÚUserWarningrN   rP   rR   rT   r»   rÜ   r´  rf   r{   r¯   rÏ   rí   r.  ri  rŸ  rß  r:   r;   r<   ú<module>r%     s  ðØ Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  9Ð 8Ð 8Ð 8Ð 8Ð 8Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Là Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ Uà€gÔ˜Ñ!Ô!€ð	ð 	ð 	ð 	ð 	�^ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜Mñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�Lñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�lñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜\ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð-ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜;ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	¨ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð"4ñ 	ô 	ð 	ð	 ð 	 ð 	 ð 	 ð 	 Ð'Bñ 	 ô 	 ð 	 ð ��X‘”€Øˆs�6‰{Œ{€Ø�#�i‘.”.€ð"ð "ð "ð "ð "ñ "ô "ð "ð"Gð Gð Gð Gð Gˆkñ Gô Gð GðT0=ð 0=ð 0=ð 0=ð 0=�gñ 0=ô 0=ð 0=ðfM"ð M"ð M"ð M"ð M"�Kñ M"ô M"ð M"ð`J*ð J*ð J*ð J*ð J*ñ J*ô J*ð J*ðZG5ð G5ð G5ð G5ð G5Ð#=ñ G5ô G5ð G5ðTt5ð t5ð t5ð t5ð t5Ð#?ñ t5ô t5ð t5ðnRð Rð Rð Rð Rñ Rô Rð Rðj
7ð 7ð 7ð 7ð 7�ñ 7ô 7ð 7ð 7ð 7r;   