§
    ;]¥eð]  ã                   óÔ  — d dl Z d dlZd dlZd dlmZ d dlmZ d dl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 ddlmZmZmZmZmZmZmZmZmZ dd	lmZm Z m!Z! d
Z"dZ# G d„ de¦  «        Z$ G d„ de$¦  «        Z% G d„ de$¦  «        Z& G d„ de$¦  «        Z' G d„ de(e$¦  «        Z) G d„ de*e$¦  «        Z+ G d„ de,e$¦  «        Z- G d„ de.e$¦  «        Z/ G d„ de.e$¦  «        Z0de.de,fd „Z1dS )!é    N)Ú	unhexlify)Úlog10)ÚAnyÚCallableÚListÚOptionalÚTupleÚUnionÚcasté   )Ú_pdfdoc_encoding_rev)ÚPdfObjectProtocolÚPdfWriterProtocol)	Ú
StreamTypeÚb_Údeprecation_with_replacementÚhex_strÚ	hexencodeÚlogger_warningÚread_non_whitespaceÚread_until_regexÚstr_)ÚSTREAM_TRUNCATED_PREMATURELYÚPdfReadErrorÚPdfStreamErrorzMathieu Fenniakzbiziqe@mathieu.fenniak.netc            
       ó  — e Zd ZU ej        Zed         ed<   ed         ed<   de	fd„Z
de	fd„Z	 	 dd
ededeeedf         ee         df         dd fd„Zded
edefd„Zded          fd„Zded          fd„Zdededee	f         ddfd„ZdS )Ú	PdfObject).zhashlib._HashÚ	hash_funcÚIndirectObjectÚindirect_referenceÚreturnc                 ó0   — d| z                        ¦   «         S )Nz%s)Úencode©Úselfs    ú5/usr/lib/python3/dist-packages/pypdf/generic/_base.pyÚhash_value_datazPdfObject.hash_value_data;   s   € Ø�t‘×#Ò#Ñ%Ô%Ð%ó    c                 ó¶   — | j         j        ›d|                      |                      ¦   «         ¦  «                             ¦   «         ›�                     ¦   «         S )Nú:)Ú	__class__Ú__name__r   r'   Ú	hexdigestr#   r$   s    r&   Ú
hash_valuezPdfObject.hash_value>   sQ   € ð ”Ô'Ð'Ð'Ø—’˜t×3Ò3Ñ5Ô5Ñ6Ô6×@Ò@ÑBÔBÐBð÷
 Š&‰(Œ(ð	r(   F© Úpdf_destÚforce_duplicateÚignore_fields.Nc                 ó    — t          d¦  «        ‚)a­  
        clone object into pdf_dest (PdfWriterProtocol which is an interface for PdfWriter)
        force_duplicate: in standard if the object has been already cloned and reference,
            the copy is returned; when force_duplicate == True,
            a new copy is always performed
        ignore_fields : list/tuple of Fields names (for dictionaries that will
            be ignored during cloning (apply also to childs duplication)
        in standard, clone function call _reference_clone (see _reference)

        Args:
          pdf_dest:
          force_duplicate:  (Default value = False)
          ignore_fields:

        Returns:
          The cloned PdfObject
        zclone PdfObject)Ú	Exception©r%   r0   r1   r2   s       r&   ÚclonezPdfObject.cloneG   s   € õ. Ð)Ñ*Ô*Ð*r(   r6   c                 óž  — 	 |j         j        |k    r|S n# t          $ r Y nw xY wt          | d¦  «        �r| j         }t	          |j        ¦  «        dz   }|�Çt          |j        ¦  «        |j        vri |j        t          |j        ¦  «        <   |j        |j        t          |j        ¦  «                 v rC| 	                    |j        t          |j        ¦  «                 |j                 ¦  «        }|€J ‚|S ||j        t          |j        ¦  «                 |j        <   |j         
                    |¦  «         t          |d|¦  «        |_         |S )aW  
        Reference the object within the _objects of pdf_dest only if
        indirect_reference attribute exists (which means the objects was
        already identified in xref/xobjstm) if object has been already
        referenced do nothing.

        Args:
          clone:
          pdf_dest:

        Returns:
          The clone
        r    é   Nr   )r    Úpdfr4   ÚhasattrÚlenÚ_objectsÚidÚ_id_translatedÚidnumÚ
get_objectÚappendr   )r%   r6   r0   ÚindÚiÚobjs         r&   Ú_reference_clonezPdfObject._reference_clone`   sK  € ð 	ØÔ'Ô+¨xÒ7Ð7Ø�ð 8øåð 	ð 	ð 	ØˆDð	øøøå�4Ð-Ñ.Ô.ñ 	FØÔ)ˆCÝ�HÔ%Ñ&Ô&¨Ñ*ˆAØˆÝ�c”g‘;”; hÔ&=Ð=Ð=Ø;=�HÔ+­B¨s¬w©K¬KÑ8Ø”9 Ô 7½¸3¼7¹¼Ô DÐDÐDØ"×-Ò-Ø Ô/µ°3´7±´Ô<¸S¼YÔGñô �Cð ˜?˜?˜?Ø�JØBC�Ô'­¨3¬7©¬Ô4°S´YÑ?ØÔ×$Ò$ UÑ+Ô+Ð+Ý'5°a¸¸HÑ'EÔ'EˆEÔ$Øˆs   ‚ •
"¡"c                 ó   — | S )zResolve indirect references.r/   r$   s    r&   r@   zPdfObject.get_object†   ó   € àˆr(   c                 óL   — t          ddd¦  «         |                      ¦   «         S )NÚ	getObjectr@   ú3.0.0)r   r@   r$   s    r&   rI   zPdfObject.getObjectŠ   s$   € Ý$ [°,ÀÑHÔHÐHØ�ŠÑ Ô Ð r(   ÚstreamÚencryption_keyc                 ó   — t           ‚©N)ÚNotImplementedError©r%   rK   rL   s      r&   Úwrite_to_streamzPdfObject.write_to_streamŽ   s
   € õ "Ð!r(   ©Fr/   )r,   Ú
__module__Ú__qualname__ÚhashlibÚsha1r   r   Ú__annotations__r   Úbytesr'   r.   r   Úboolr
   r	   Ústrr   r6   r   r   rE   r@   rI   r   rQ   r/   r(   r&   r   r   6   sz  € € € € € € à07´€IˆxÐ,Ô-Ð<Ð<Ñ<Ø Ð!1Ô2Ð2Ð2Ñ2ð& ð &ð &ð &ð &ð˜Eð ð ð ð ð !&ØACð	+ð +à#ð+ð ð+ð ˜U 3¨ 8œ_¨d°3¬i¸Ð=Ô>ð	+ð
 
ð+ð +ð +ð +ð2$Øð$Ø$5ð$à	ð$ð $ð $ð $ðL˜H [Ô1ð ð ð ð ð!˜8 KÔ0ð !ð !ð !ð !ð"Ø ð"Ø27¸¸cÀ5Ð8HÔ2Ið"à	ð"ð "ð "ð "ð "ð "r(   r   c            
       óò   — e Zd Z	 	 ddededeeedf         ee         df         dd fd	„Z	d
e
dedeef         ddfd„Zed
e
dd fd„¦   «         Zd
e
dedeef         ddfd„Zdefd„Zed
e
dd fd„¦   «         ZdS )Ú
NullObjectFr/   r0   r1   r2   .Nr!   c                 ób   — t          d|                      t          ¦   «         |¦  «        ¦  «        S )úClone object into pdf_dest.r\   )r   rE   r\   r5   s       r&   r6   zNullObject.clone•   s(   € õ �L $×"7Ò"7½
¹¼ÀhÑ"OÔ"OÑPÔPÐPr(   rK   rL   c                 ó0   — |                      d¦  «         d S )Nó   null)ÚwriterP   s      r&   rQ   zNullObject.write_to_streamž   s   € ð 	�Š�WÑÔÐÐÐr(   c                 ór   — |                       d¦  «        }|dk    rt          d¦  «        ‚t          ¦   «         S )Né   r`   zCould not read Null object)Úreadr   r\   )rK   Únulltxts     r&   Úread_from_streamzNullObject.read_from_stream£   s5   € à—+’+˜a‘.”.ˆØ�gÒÐÝÐ;Ñ<Ô<Ð<Ý‰|Œ|Ðr(   c                 óT   — t          ddd¦  «         |                      ||¦  «         d S ©NÚwriteToStreamrQ   rJ   ©r   rQ   rP   s      r&   ri   zNullObject.writeToStreamª   ó3   € õ 	% _Ð6GÈÑQÔQÐQØ×Ò˜V ^Ñ4Ô4Ð4Ð4Ð4r(   c                 ó   — dS )Nr\   r/   r$   s    r&   Ú__repr__zNullObject.__repr__°   s   € Øˆ|r(   c                 óX   — t          ddd¦  «         t                               | ¦  «        S ©NÚreadFromStreamrf   rJ   )r   r\   rf   ©rK   s    r&   rp   zNullObject.readFromStream³   s*   € å$Ð%5Ð7IÈ7ÑSÔSÐSÝ×*Ò*¨6Ñ2Ô2Ð2r(   rR   )r,   rS   rT   r   rY   r
   r	   rZ   r   r6   r   rX   rQ   Ústaticmethodrf   ri   rm   rp   r/   r(   r&   r\   r\   ”   sc  € € € € € ð !&ØACð	Qð Qà#ðQð ðQð ˜U 3¨ 8œ_¨d°3¬i¸Ð=Ô>ð	Qð
 
ðQð Qð Qð QðØ ðØ27¸¸cÀ5Ð8HÔ2Iðà	ðð ð ð ð
 ð ð °ð ð ð ñ „\ðð5Ø ð5Ø27¸¸cÀ5Ð8HÔ2Ið5à	ð5ð 5ð 5ð 5ð˜#ð ð ð ð ð ð3˜zð 3¨lð 3ð 3ð 3ñ „\ð3ð 3ð 3r(   r\   c            
       ó  — e Zd Zdeddfd„Z	 	 ddeded	eee	d
f         e
e	         df         dd fd„Zdedefd„Zde	fd„Zdedede	ef         ddfd„Zdedede	ef         ddfd„Zededd fd„¦   «         Zededd fd„¦   «         ZdS )ÚBooleanObjectÚvaluer!   Nc                 ó   — || _         d S rN   ©ru   )r%   ru   s     r&   Ú__init__zBooleanObject.__init__º   s   € ØˆŒ
ˆ
ˆ
r(   Fr/   r0   r1   r2   .c                 ón   — t          d|                      t          | j        ¦  «        |¦  «        ¦  «        S )r^   rt   )r   rE   rt   ru   r5   s       r&   r6   zBooleanObject.clone½   s5   € õ Ø˜T×2Ò2µ=ÀÄÑ3LÔ3LÈhÑWÔWñ
ô 
ð 	
r(   Ú_BooleanObject__oc                 ó�   — t          |t          ¦  «        r| j        |j        k    S t          |t          ¦  «        r| j        |k    S dS )NF)Ú
isinstancert   ru   rY   )r%   rz   s     r&   Ú__eq__zBooleanObject.__eq__È   sG   € Ý�c�=Ñ)Ô)ð 	Ø”: ¤Ò*Ð*Ý˜�TÑ"Ô"ð 	Ø”: Ò$Ð$à�5r(   c                 ó   — | j         rdndS )NÚTrueÚFalserw   r$   s    r&   rm   zBooleanObject.__repr__Ð   s   € ØœÐ0ˆvˆv¨Ð0r(   rK   rL   c                 ól   — | j         r|                     d¦  «         d S |                     d¦  «         d S )Nó   trues   false)ru   ra   rP   s      r&   rQ   zBooleanObject.write_to_streamÓ   s>   € ð Œ:ð 	#Ø�LŠL˜Ñ!Ô!Ð!Ð!Ð!à�LŠL˜Ñ"Ô"Ð"Ð"Ð"r(   c                 óT   — t          ddd¦  «         |                      ||¦  «         d S rh   rj   rP   s      r&   ri   zBooleanObject.writeToStreamÛ   rk   r(   c                 óÈ   — |                       d¦  «        }|dk    rt          d¦  «        S |dk    r$|                       d¦  «         t          d¦  «        S t          d¦  «        ‚)Nrc   r‚   Ts   falsr8   FzCould not read Boolean object)rd   rt   r   )rK   Úwords     r&   rf   zBooleanObject.read_from_streamá   s]   € à�{Š{˜1‰~Œ~ˆØ�7Š?ˆ?Ý  Ñ&Ô&Ð&Ø�WŠ_ˆ_Ø�KŠK˜‰NŒNˆNÝ  Ñ'Ô'Ð'åÐ>Ñ?Ô?Ð?r(   c                 óX   — t          ddd¦  «         t                               | ¦  «        S ro   )r   rt   rf   rq   s    r&   rp   zBooleanObject.readFromStreamì   s*   € å$Ð%5Ð7IÈ7ÑSÔSÐSÝ×-Ò-¨fÑ5Ô5Ð5r(   rR   )r,   rS   rT   r   rx   r   rY   r
   r	   rZ   r   r6   Úobjectr}   rm   r   rX   rQ   ri   rr   rf   rp   r/   r(   r&   rt   rt   ¹   s¤  € € € € € ð˜cð  dð ð ð ð ð !&ØACð		
ð 	
à#ð	
ð ð	
ð ˜U 3¨ 8œ_¨d°3¬i¸Ð=Ô>ð		
ð
 
ð	
ð 	
ð 	
ð 	
ð˜&ð  Tð ð ð ð ð1˜#ð 1ð 1ð 1ð 1ð#Ø ð#Ø27¸¸cÀ5Ð8HÔ2Ið#à	ð#ð #ð #ð #ð5Ø ð5Ø27¸¸cÀ5Ð8HÔ2Ið5à	ð5ð 5ð 5ð 5ð ð@ ð @°ð @ð @ð @ñ „\ð@ð ð6˜zð 6¨oð 6ð 6ð 6ñ „\ð6ð 6ð 6r(   rt   c            
       ób  — e Zd Zdedededdfd„Z	 	 dd	ed
edee	e
df         ee
         df         dd fd„Zedd„¦   «         Zded         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de
ef         ddfd„Zdedede
ef         ddfd„Zedededd fd„¦   «         Zedededd fd„¦   «         ZdS )r   r?   Ú
generationr9   r!   Nc                 ó0   — || _         || _        || _        d S rN   )r?   r‰   r9   )r%   r?   r‰   r9   s       r&   rx   zIndirectObject.__init__ó   s   € ØˆŒ
Ø$ˆŒØˆŒˆˆr(   Fr/   r0   r1   r2   .c                 óà  — | j         |k    r|s| S t          | j         ¦  «        |j        vri |j        t          | j         ¦  «        <   |sd| j        |j        t          | j         ¦  «                 v r>|                     |j        t          | j         ¦  «                 | j                 ¦  «        }n/|                      ¦   «         }|€J ‚|                     |||¦  «        }|€J ‚|j        €J ‚|j        S )r^   )r9   r=   r>   r?   r@   r6   r    )r%   r0   r1   r2   ÚduprD   s         r&   r6   zIndirectObject.cloneø   så   € ð Œ8�xÒÐ¨ÐàˆKÝˆdŒh‰<Œ<˜xÔ6Ð6Ð6Ø46ˆHÔ#¥B t¤x¡L¤LÑ1àð 	F 4¤:°Ô1HÍÈDÌHÉÌÔ1VÐ#VÐ#VØ×%Ò% hÔ&=½bÀÄ¹l¼lÔ&KÈDÌJÔ&WÑXÔXˆCˆCà—/’/Ñ#Ô#ˆCØ�?�?�?Ø—)’)˜H o°}ÑEÔEˆCØˆˆˆØÔ%Ð1Ð1Ð1ØÔ%Ð%r(   c                 ó   — | S rN   r/   r$   s    r&   r    z!IndirectObject.indirect_reference  rG   r(   r   c                 óf   — | j                              | ¦  «        }|€d S |                     ¦   «         S rN   )r9   r@   )r%   rD   s     r&   r@   zIndirectObject.get_object  s1   € ØŒh×!Ò! $Ñ'Ô'ˆØˆ;Ø�4Ø�~Š~ÑÔÐr(   c                 óR   — d| j         ›d| j        ›dt          | j        ¦  «        › d�S )NzIndirectObject(z, ú))r?   r‰   r=   r9   r$   s    r&   rm   zIndirectObject.__repr__  s/   € ØU ¤ÐUÐU°´ÐUÐUÅbÈÌÁlÄlÐUÐUÐUÐUr(   Úotherc                 ó�   — |d uoBt          |t          ¦  «        o-| j        |j        k    o| j        |j        k    o| j        |j        u S rN   )r|   r   r?   r‰   r9   ©r%   r‘   s     r&   r}   zIndirectObject.__eq__  sY   € à˜Ðð &Ý˜5¥.Ñ1Ô1ð&à”
˜eœkÒ)ð&ð ” 5Ô#3Ò3ð&ð ”˜EœIÐ%ð	
r(   c                 ó.   — |                       |¦  «         S rN   )r}   r“   s     r&   Ú__ne__zIndirectObject.__ne__%  s   € Ø—;’;˜uÑ%Ô%Ð%Ð%r(   rK   rL   c                 ój   — |                      t          | j        › d| j        › d�¦  «        ¦  «         d S )Nú z R)ra   r   r?   r‰   rP   s      r&   rQ   zIndirectObject.write_to_stream(  s9   € ð 	�Š•R˜4œ:Ð;Ð;¨¬Ð;Ð;Ð;Ñ<Ô<Ñ=Ô=Ð=Ð=Ð=r(   c                 óT   — t          ddd¦  «         |                      ||¦  «         d S rh   rj   rP   s      r&   ri   zIndirectObject.writeToStream-  rk   r(   c                 ó  — d}	 |                       d¦  «        }|st          t          ¦  «        ‚|                     ¦   «         rn||z  }ŒFd}	 |                       d¦  «        }|st          t          ¦  «        ‚|                     ¦   «         r|sŒCn||z  }ŒIt	          | ¦  «        }|dk    r1t          dt          |                      ¦   «         ¦  «        › �¦  «        ‚t          t          |¦  «        t          |¦  «        |¦  «        S )Nr(   Tr8   ó   Rz0Error reading indirect object reference at byte )
rd   r   r   Úisspacer   r   r   Útellr   Úint)rK   r9   r?   Útokr‰   Úrs         r&   rf   zIndirectObject.read_from_stream3  s  € àˆð	Ø—+’+˜a‘.”.ˆCØð CÝ$Õ%AÑBÔBÐBØ�{Š{‰}Œ}ð ØØ�S‰LˆEð	ð ˆ
ð	Ø—+’+˜a‘.”.ˆCØð CÝ$Õ%AÑBÔBÐBØ�{Š{‰}Œ}ð Ø!ð ØØØ˜#ÑˆJð	õ   Ñ'Ô'ˆØ�Š9ˆ9ÝØ[Å7È6Ï;Ê;É=Ì=ÑCYÔCYÐ[Ð[ñô ð õ �c %™jœj­#¨j©/¬/¸3Ñ?Ô?Ð?r(   c                 óZ   — t          ddd¦  «         t                               | |¦  «        S ro   )r   r   rf   ©rK   r9   s     r&   rp   zIndirectObject.readFromStreamN  s.   € õ 	%Ð%5Ð7IÈ7ÑSÔSÐSÝ×.Ò.¨v°sÑ;Ô;Ð;r(   rR   )r!   r   )r,   rS   rT   r�   r   rx   r   rY   r
   r	   rZ   r   r6   Úpropertyr    r   r@   rm   r}   r•   r   rX   rQ   ri   rr   rf   rp   r/   r(   r&   r   r   ò   s,  € € € € € ð˜cð ¨sð ¸ð Àð ð ð ð ð !&ØACð	&ð &à#ð&ð ð&ð ˜U 3¨ 8œ_¨d°3¬i¸Ð=Ô>ð	&ð
 
ð&ð &ð &ð &ð. ðð ð ñ „Xðð ˜H [Ô1ð  ð  ð  ð  ðV˜#ð Vð Vð Vð Vð
˜Cð 
 Dð 
ð 
ð 
ð 
ð&˜Cð & Dð &ð &ð &ð &ð>Ø ð>Ø27¸¸cÀ5Ð8HÔ2Ið>à	ð>ð >ð >ð >ð
5Ø ð5Ø27¸¸cÀ5Ð8HÔ2Ið5à	ð5ð 5ð 5ð 5ð ð@ ð @°#ð @Ð:Jð @ð @ð @ñ „\ð@ð4 ð<Øð<Ø!$ð<à	ð<ð <ð <ñ „\ð<ð <ð <r(   r   c            
       óþ   — e Zd Z	 ddeeef         dee         dd fd„Z	 	 dd	ed
edee	edf         e
e         df         dd fd„Zdefd„Zdefd„Zdefd„Zdededeef         ddfd„Zdededeef         ddfd„ZdS )ÚFloatObjectú0.0Nru   Úcontextr!   c                 ó  — 	 t          t          |¦  «        ¦  «        }t                                | |¦  «        S # t          $ r@}t	          |› d|› d�t
          ¦  «         t                                | d¦  «        cY d }~S d }~ww xY w)Nz : FloatObject (z) invalid; use 0.0 insteadg        )Úfloatr   Ú__new__r4   r   r,   )Úclsru   r¦   Úes       r&   r©   zFloatObject.__new__W  sœ   € ð		+Ý�$˜u™+œ+Ñ&Ô&ˆEÝ—=’=  eÑ,Ô,Ð,øÝð 	+ð 	+ð 	+õ ØÐGÐG eÐGÐGÐGÍñô ð õ —=’=  cÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*øøøøð	+øøøs   ‚69 ¹
BÁ5A>Á8BÁ>BFr/   r0   r1   r2   .c                 ód   — t          d|                      t          | ¦  «        |¦  «        ¦  «        S )r^   r¤   )r   rE   r¤   r5   s       r&   r6   zFloatObject.clonee  s,   € õ �M 4×#8Ò#8½ÀTÑ9JÔ9JÈHÑ#UÔ#UÑVÔVÐVr(   c                 óæ   — | dk    rdS t          t          t          | ¦  «        ¦  «        ¦  «        }| dt          dd|z
  ¦  «        › d�›                     d¦  «                             d¦  «        }|S )Nr   r¥   ú.r8   é   ÚfÚ0)r�   r   ÚabsÚmaxÚrstrip)r%   ÚnbÚss      r&   ÚmyreprzFloatObject.myreprn  sn   € Ø�1Š9ˆ9Ø�5Ý••s˜4‘y”yÑ!Ô!Ñ"Ô"ˆØÐ&•c˜!˜B˜r™E‘l”lÐ&Ð&Ð&Ð&×-Ò-¨cÑ2Ô2×9Ò9¸#Ñ>Ô>ˆØˆr(   c                 ó*   — |                       ¦   «         S rN   )r·   r$   s    r&   rm   zFloatObject.__repr__u  s   € Ø�{Š{‰}Œ}Ðr(   c                 ó    — t          | ¦  «        S rN   )r¨   r$   s    r&   Ú
as_numericzFloatObject.as_numericx  s   € Ý�T‰{Œ{Ðr(   rK   rL   c                 óz   — |                      |                      ¦   «                              d¦  «        ¦  «         d S ©NÚutf8)ra   r·   r#   rP   s      r&   rQ   zFloatObject.write_to_stream{  s2   € ð 	�Š�T—[’[‘]”]×)Ò)¨&Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r(   c                 óT   — t          ddd¦  «         |                      ||¦  «         d S rh   rj   rP   s      r&   ri   zFloatObject.writeToStream€  rk   r(   )r¥   NrR   )r,   rS   rT   r
   rZ   r   r   r©   rY   r	   r   r6   r·   rm   r¨   rº   r   rX   rQ   ri   r/   r(   r&   r¤   r¤   V  s}  € € € € € àFJð+ð +Ø˜#˜s˜(”Oð+Ø6>¸s´mð+à	ð+ð +ð +ð +ð" !&ØACð	Wð WàðWð ðWð ˜U 3¨ 8œ_¨d°3¬i¸Ð=Ô>ð	Wð
 
ðWð Wð Wð Wð˜ð ð ð ð ð˜#ð ð ð ð ð˜Eð ð ð ð ð3Ø ð3Ø27¸¸cÀ5Ð8HÔ2Ið3à	ð3ð 3ð 3ð 3ð
5Ø ð5Ø27¸¸cÀ5Ð8HÔ2Ið5à	ð5ð 5ð 5ð 5ð 5ð 5r(   r¤   c            
       ó:  — e Zd Z ej        d¦  «        Zdedd fd„Z	 	 ddeded	e	e
ed
f         ee         df         dd fd„Zdefd„Zdede	deef         ddfd„Zdede	deef         ddfd„Zedede	d         fd„¦   «         Zedede	d         fd„¦   «         ZdS )ÚNumberObjects	   [^+-.0-9]ru   r!   c                 óÜ   — 	 t                                | t          |¦  «        ¦  «        S # t          $ r7 t          d|› d�t          ¦  «         t                                | d¦  «        cY S w xY w)NzNumberObject(z) invalid; use 0 insteadr   )r�   r©   Ú
ValueErrorr   r,   )rª   ru   s     r&   r©   zNumberObject.__new__Š  sr   € ð	'Ý—;’;˜s¥C¨¡J¤JÑ/Ô/Ð/øÝð 	'ð 	'ð 	'ÝÐJ¨5ÐJÐJÐJÍHÑUÔUÐUÝ—;’;˜s AÑ&Ô&Ð&Ð&Ð&ð	'øøøs   ‚'* ª>A+Á*A+Fr/   r0   r1   r2   .Nc                 ód   — t          d|                      t          | ¦  «        |¦  «        ¦  «        S )r^   rÀ   )r   rE   rÀ   r5   s       r&   r6   zNumberObject.clone‘  s,   € õ �N D×$9Ò$9½,ÀtÑ:LÔ:LÈhÑ$WÔ$WÑXÔXÐXr(   c                 ó`   — t          t          | ¦  «                             d¦  «        ¦  «        S r¼   )r�   Úreprr#   r$   s    r&   rº   zNumberObject.as_numericš  s$   € Ý•4˜‘:”:×$Ò$ VÑ,Ô,Ñ-Ô-Ð-r(   rK   rL   c                 óp   — |                      t          | ¦  «                             d¦  «        ¦  «         d S r¼   )ra   rÅ   r#   rP   s      r&   rQ   zNumberObject.write_to_stream�  s0   € ð 	�Š•T˜$‘Z”Z×&Ò& vÑ.Ô.Ñ/Ô/Ð/Ð/Ð/r(   c                 óT   — t          ddd¦  «         |                      ||¦  «         d S rh   rj   rP   s      r&   ri   zNumberObject.writeToStream¢  rk   r(   )rÀ   r¤   c                 ó¤   — t          | t          j        ¦  «        }|                     d¦  «        dk    rt	          |¦  «        S t          |¦  «        S )Nó   .éÿÿÿÿ)r   rÀ   ÚNumberPatternÚfindr¤   )rK   Únums     r&   rf   zNumberObject.read_from_stream¨  sE   € å˜v¥|Ô'AÑBÔBˆØ�8Š8�D‰>Œ>˜RÒÐÝ˜sÑ#Ô#Ð#Ý˜CÑ Ô Ð r(   c                 óX   — t          ddd¦  «         t                               | ¦  «        S ro   )r   rÀ   rf   rq   s    r&   rp   zNumberObject.readFromStream¯  s,   € õ 	%Ð%5Ð7IÈ7ÑSÔSÐSÝ×,Ò,¨VÑ4Ô4Ð4r(   rR   )r,   rS   rT   ÚreÚcompilerË   r   r©   rY   r
   r	   rZ   r   r6   r�   rº   r   rX   rQ   ri   rr   rf   rp   r/   r(   r&   rÀ   rÀ   ‡  s¤  € € € € € Ø�B”J˜|Ñ,Ô,€Mð'˜Cð ' Nð 'ð 'ð 'ð 'ð !&ØACð	Yð YàðYð ðYð ˜U 3¨ 8œ_¨d°3¬i¸Ð=Ô>ð	Yð
 
ðYð Yð Yð Yð.˜Cð .ð .ð .ð .ð0Ø ð0Ø27¸¸cÀ5Ð8HÔ2Ið0à	ð0ð 0ð 0ð 0ð
5Ø ð5Ø27¸¸cÀ5Ð8HÔ2Ið5à	ð5ð 5ð 5ð 5ð ð! ð !°Ð6SÔ0Tð !ð !ð !ñ „\ð!ð ð5Øð5à	Ð,Ô	-ð5ð 5ð 5ñ „\ð5ð 5ð 5r(   rÀ   c            
       óÆ   — e Zd ZdZ	 	 ddededeeedf         e	e         df         d	d fd
„Z
ed	efd„¦   «         Zdededeef         d	dfd„Zdededeef         d	dfd„ZdS )ÚByteStringObjecta>  
    Represents a string object where the text encoding could not be determined.

    This occurs quite often, as the PDF spec doesn't provide an alternate way to
    represent strings -- for example, the encryption data stored in files (like
    /O) is clearly not text, but is still stored in a "String" object.
    Fr/   r0   r1   r2   .Nr!   c           
      ó~   — t          d|                      t          t          | ¦  «        ¦  «        |¦  «        ¦  «        S )r^   rÒ   )r   rE   rÒ   rX   r5   s       r&   r6   zByteStringObject.cloneÀ  s;   € õ ØØ×!Ò!Õ"2µ5¸±;´;Ñ"?Ô"?ÀÑJÔJñ
ô 
ð 	
r(   c                 ó   — | S )z7For compatibility with TextStringObject.original_bytes.r/   r$   s    r&   Úoriginal_byteszByteStringObject.original_bytesÌ  s	   € ð ˆr(   rK   rL   c                 óÊ   — | }|rddl m}  |||¦  «        }|                     d¦  «         |                     t          |¦  «        ¦  «         |                     d¦  «         d S )Nr   ©ÚRC4_encryptó   <ó   >)Ú	_securityrØ   ra   r   )r%   rK   rL   ÚbytearrrØ   s        r&   rQ   z ByteStringObject.write_to_streamÑ  sx   € ð ˆØð 	;Ø/Ð/Ð/Ð/Ð/Ð/à!�k .°'Ñ:Ô:ˆGØ�Š�TÑÔÐØ�Š•Y˜wÑ'Ô'Ñ(Ô(Ð(Ø�Š�TÑÔÐÐÐr(   c                 óT   — t          ddd¦  «         |                      ||¦  «         d S rh   rj   rP   s      r&   ri   zByteStringObject.writeToStreamÝ  rk   r(   rR   )r,   rS   rT   Ú__doc__r   rY   r
   r	   rZ   r   r6   r¢   rX   rÕ   r   rQ   ri   r/   r(   r&   rÒ   rÒ   ·  s  € € € € € ðð ð !&ØACð	

ð 

àð

ð ð

ð ˜U 3¨ 8œ_¨d°3¬i¸Ð=Ô>ð	

ð
 
ð

ð 

ð 

ð 

ð ð ð ð ð ñ „Xðð
Ø ð
Ø27¸¸cÀ5Ð8HÔ2Ið
à	ð
ð 
ð 
ð 
ð5Ø ð5Ø27¸¸cÀ5Ð8HÔ2Ið5à	ð5ð 5ð 5ð 5ð 5ð 5r(   rÒ   c            
       óÚ   — e Zd ZdZ	 	 ddededeeedf         e	e         df         d	d fd
„Z
dZdZed	efd„¦   «         Zd	efd„Zdededeef         d	dfd„Zdededeef         d	dfd„ZdS )ÚTextStringObjectzë
    A string object that has been decoded into a real unicode string.

    If read from a PDF document, this string appeared to match the
    PDFDocEncoding, or contained a UTF-16BE BOM mark to cause UTF-16 decoding
    to occur.
    Fr/   r0   r1   r2   .Nr!   c                 ó˜   — t          | ¦  «        }| j        |_        | j        |_        t          d|                      ||¦  «        ¦  «        S )r^   rà   )rà   Úautodetect_pdfdocencodingÚautodetect_utf16r   rE   )r%   r0   r1   r2   rD   s        r&   r6   zTextStringObject.cloneí  sH   € õ ˜tÑ$Ô$ˆØ(,Ô(FˆÔ%Ø#Ô4ˆÔÝÐ&¨×(=Ò(=¸cÀ8Ñ(LÔ(LÑMÔMÐMr(   c                 ó*   — |                       ¦   «         S )a  It is occasionally possible that a text string object gets created where
        a byte string object was expected due to the autodetection mechanism --
        if that occurs, this "original_bytes" property can be used to
        back-calculate what the original encoded bytes were.)Úget_original_bytesr$   s    r&   rÕ   zTextStringObject.original_bytesü  s   € ð ×&Ò&Ñ(Ô(Ð(r(   c                 óž   — | j         r"t          j        |                      d¦  «        z   S | j        rt          | ¦  «        S t          d¦  «        ‚)Núutf-16bez#no information about original bytes)rã   ÚcodecsÚBOM_UTF16_BEr#   râ   Úencode_pdfdocencodingr4   r$   s    r&   rå   z#TextStringObject.get_original_bytes  sS   € ð Ô ð 	CÝÔ&¨¯ª°ZÑ)@Ô)@Ñ@Ð@ØÔ+ð 	CÝ(¨Ñ.Ô.Ð.åÐAÑBÔBÐBr(   rK   rL   c                 óX  — 	 t          | ¦  «        }n2# t          $ r% t          j        |                      d¦  «        z   }Y nw xY w|r9ddlm}  |||¦  «        }t          |¦  «        }|                     |d ¦  «         d S | 	                    d¦  «         |D ]~}t          |¦  «                             ¦   «         s,|dk    r&| 	                    t          d|z  ¦  «        ¦  «         ŒO| 	                    t          t          |¦  «        ¦  «        ¦  «         Œ| 	                    d¦  «         d S )Nrç   r   r×   ó   (ó    z\%03oó   ))rê   ÚUnicodeEncodeErrorrè   ré   r#   rÛ   rØ   rÒ   rQ   ra   ÚchrÚisalnumr   )r%   rK   rL   rÜ   rØ   rD   Úcs          r&   rQ   z TextStringObject.write_to_stream  sD  € ð	DÝ+¨DÑ1Ô1ˆGˆGøÝ!ð 	Dð 	Dð 	DÝÔ)¨D¯KªK¸
Ñ,CÔ,CÑCˆGˆGˆGð	Døøøàð 	Ø/Ð/Ð/Ð/Ð/Ð/à!�k .°'Ñ:Ô:ˆGÝ" 7Ñ+Ô+ˆCØ×Ò ¨Ñ-Ô-Ð-Ð-Ð-à�LŠL˜ÑÔÐØð -ð -�Ý˜1‘v”v—~’~Ñ'Ô'ð -¨A°ªI¨Ið
 —L’L¥ H¨q¡LÑ!1Ô!1Ñ2Ô2Ð2Ð2à—L’L¥¥C¨¡F¤F¡¤Ñ,Ô,Ð,Ð,Ø�LŠL˜ÑÔÐÐÐs   ‚ ’,AÁ Ac                 óT   — t          ddd¦  «         |                      ||¦  «         d S rh   rj   rP   s      r&   ri   zTextStringObject.writeToStream.  rk   r(   rR   )r,   rS   rT   rÞ   r   rY   r
   r	   rZ   r   r6   râ   rã   r¢   rX   rÕ   rå   r   rQ   ri   r/   r(   r&   rà   rà   ä  sI  € € € € € ðð ð !&ØACð	
Nð 
Nàð
Nð ð
Nð ˜U 3¨ 8œ_¨d°3¬i¸Ð=Ô>ð	
Nð
 
ð
Nð 
Nð 
Nð 
Nð !&ÐØÐàð) ð )ð )ð )ñ „Xð)ðC Eð Cð Cð Cð CðØ ðØ27¸¸cÀ5Ð8HÔ2Iðà	ðð ð ð ð:5Ø ð5Ø27¸¸cÀ5Ð8HÔ2Ið5à	ð5ð 5ð 5ð 5ð 5ð 5r(   rà   c            
       óv  — e Zd Z ej        d¦  «        ZdZdddddœd„  ed	¦  «        D ¦   «         ¥Z	 	 dde	de
deeedf         ee         df         dd fd„Zdededeef         ddfd„Zdededeef         ddfd„Zdefd„Zededefd„¦   «         Zedede	dd fd„¦   «         Zedede	dd fd„¦   «         ZdS )Ú
NameObjects   \s+|[\(\)<>\[\]{}/%]ó   /s   #23s   #28s   #29s   #2F)ú#ú(r�   ú/c                 óZ   — i | ](}t          |¦  «        d |d›�                     ¦   «         “Œ)S )r÷   Ú02X)rð   r#   )Ú.0rC   s     r&   ú
<dictcomp>zNameObject.<dictcomp>=  s4   € Ð
;Ð
;Ð
;¨A�3ˆq‰6Œ6�;�q�;�;�;×%Ò%Ñ'Ô'Ð
;Ð
;Ð
;r(   é!   Fr/   r0   r1   r2   .Nr!   c                 ód   — t          d|                      t          | ¦  «        |¦  «        ¦  «        S )r^   rõ   )r   rE   rõ   r5   s       r&   r6   zNameObject.clone@  s,   € õ �L $×"7Ò"7½
À4Ñ8HÔ8HÈ(Ñ"SÔ"SÑTÔTÐTr(   rK   rL   c                 óT   — |                      |                      ¦   «         ¦  «         d S rN   )ra   ÚrenumberrP   s      r&   rQ   zNameObject.write_to_streamI  s$   € ð 	�Š�T—]’]‘_”_Ñ%Ô%Ð%Ð%Ð%r(   c                 óT   — t          ddd¦  «         |                      ||¦  «         d S rh   rj   rP   s      r&   ri   zNameObject.writeToStreamN  rk   r(   c                 óz  — | d                               d¦  «        }|dk    rt          d| › d�t          ¦  «         | dd …         D ]u}|dk    r4|                      d¦  «        D ]}|d|d	›�                      ¦   «         z  }ŒŒ<	 || j        |         z  }ŒN# t          $ r ||                      d¦  «        z  }Y Œrw xY w|S )
Nr   úutf-8rö   z$Incorrect first char in NameObject:(r�   r8   ú~r÷   rû   )r#   r   r,   Úrenumber_tableÚKeyError)r%   Úoutrò   Úxs       r&   r  zNameObject.renumberT  sï   € Ø�1Œg�nŠn˜WÑ%Ô%ˆØ�$Š;ˆ;ÝÐIÀ$ÐIÐIÐIÍ8ÑTÔTÐTØ�a�b�b”ð 	-ð 	-ˆAØ�3ŠwˆwØŸš 'Ñ*Ô*ð 0ð 0�AØ˜;˜q˜;˜;˜;×-Ò-Ñ/Ô/Ñ/�C�Cð0ð-Ø˜4Ô.¨qÔ1Ñ1�C�CøÝð -ð -ð -Ø˜1Ÿ8š8 GÑ,Ô,Ñ,�C�C�Cð-øøøàˆ
s   ÂBÂ"B8Â7B8Úsinc                 ó  — |                       dd¦  «        }|dk    rl	 | d |…         t          | |dz   |dz   …         ¦  «        z   | |dz   d …         z   } |                       d|dz   ¦  «        }n# t          $ r |dz   }Y nw xY w|dk    °l| S )Nó   #r   r8   é   )rÌ   r   rÂ   )r
  rC   s     r&   ÚunnumberzNameObject.unnumberc  s´   € à�HŠH�T˜1ÑÔˆØ�1ŠfˆfðØ˜"˜1˜"”g¥	¨#¨a°!©e°a¸!±e¨mÔ*<Ñ =Ô =Ñ=ÀÀAÈÁEÀGÀGÄÑL�Ø—H’H˜T 1 q¡5Ñ)Ô)��øÝð ð ð ð ˜‘E���ðøøøð	 �1Šfˆfð ˆ
s   žAA. Á.B Á?B r9   c                 ó’  — |                       d¦  «        }|t          j        k    rt          d¦  «        ‚|t	          | t          j        ¦  «        z  }	 t                               |¦  «        }dD ]8}	 |                     |¦  «        }t          |¦  «        c S # t          $ r Y Œ5w xY wt          d|ddd¦  «        ‚# t          t          f$ rz}|j        sMt          dt          |¦  «        › d�t          ¦  «         t          |                     d	¦  «        ¦  «        cY d }~S t          dt          |¦  «        › d�¦  «        |‚d }~ww xY w)
Nr8   zname read error)r  ÚgbkÚ r   zCode Not Foundz"Illegal character in Name Object (r�   Úcharmap)rd   rõ   Úsurfixr   r   Údelimiter_patternr  Údecoder4   ÚUnicodeDecodeErrorrï   Ústrictr   rÅ   r,   )rK   r9   ÚnameÚencÚretr«   s         r&   rf   zNameObject.read_from_streamp  sy  € à�{Š{˜1‰~Œ~ˆØ•:Ô$Ò$Ð$ÝÐ0Ñ1Ô1Ð1ØÕ  ­Ô)EÑFÔFÑFˆð	õ ×&Ò& tÑ,Ô,ˆDØ'ð ð �ðØŸ+š+ cÑ*Ô*�CÝ% c™?œ?Ð*Ð*Ð*øÝ ð ð ð Ø�Dðøøøå$ R¨¨q°!Ð5EÑFÔFÐFøÝ"Õ$6Ð7ð 		ð 		ð 		Ø”:ð ÝØF½¸d¹¼ÐFÐFÐFÍñô ð õ " $§+¢+¨iÑ"8Ô"8Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9å"ØF½¸d¹¼ÐFÐFÐFñô àðøøøøð		øøøsI   ÁB; Á2#BÂB; Â
B%Â"B; Â$B%Â%B; Â;EÃAEÄEÄ !EÅEc                 óZ   — t          ddd¦  «         t                               | |¦  «        S ro   )r   rõ   rf   r¡   s     r&   rp   zNameObject.readFromStreamŒ  s.   € õ 	%Ð%5Ð7IÈ7ÑSÔSÐSÝ×*Ò*¨6°3Ñ7Ô7Ð7r(   rR   )r,   rS   rT   rÏ   rÐ   r  r  Úranger  r   rY   r
   r	   rZ   r   r6   r   rX   rQ   ri   r  rr   r  rf   rp   r/   r(   r&   rõ   rõ   5  sò  € € € € € Ø"˜œ
Ð#;Ñ<Ô<ÐØ€FàØØØð	ð ð
 <Ð
;°°°r±´Ð
;Ñ
;Ô
;ð€Nð !&ØACð	Uð UàðUð ðUð ˜U 3¨ 8œ_¨d°3¬i¸Ð=Ô>ð	Uð
 
ðUð Uð Uð Uð&Ø ð&Ø27¸¸cÀ5Ð8HÔ2Ið&à	ð&ð &ð &ð &ð
5Ø ð5Ø27¸¸cÀ5Ð8HÔ2Ið5à	ð5ð 5ð 5ð 5ð˜%ð ð ð ð ð ð
�eð 
 ð 
ð 
ð 
ñ „\ð
ð ð ð °#ð ¸,ð ð ð ñ „\ðð6 ð8Øð8Ø!$ð8à	ð8ð 8ð 8ñ „\ð8ð 8ð 8r(   rõ   Úunicode_stringr!   c           	      ó¬   — d}| D ]N}	 |t          t          t          |         ¦  «        ¦  «        z  }Œ.# t          $ r t	          d|ddd¦  «        ‚w xY w|S )Nr(   ÚpdfdocencodingrÊ   z#does not exist in translation table)r   rð   r   r  rï   )r  Úretvalrò   s      r&   rê   rê   ”  s}   € Ø€FØð ð ˆð	Ø•b�Õ1°!Ô4Ñ5Ô5Ñ6Ô6Ñ6ˆFˆFøÝð 	ð 	ð 	Ý$Ø  ! R¨Ð-Rñô ð ð	øøøð €Ms	   ˆ*3³A)2rè   rU   rÏ   Úbinasciir   Úmathr   Útypingr   r   r   r   r	   r
   r   Ú_codecsr   Ú
_protocolsr   r   Ú_utilsr   r   r   r   r   r   r   r   r   Úerrorsr   r   r   Ú
__author__Ú__author_email__r   r\   rt   r   r¨   r¤   r�   rÀ   rX   rÒ   rZ   rà   rõ   rê   r/   r(   r&   ú<module>r*     s  ðð8 €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dà *Ð *Ð *Ð *Ð *Ð *Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð PÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oà€
Ø/Ð ð["ð ["ð ["ð ["ð ["Ð!ñ ["ô ["ð ["ð|"3ð "3ð "3ð "3ð "3�ñ "3ô "3ð "3ðJ66ð 66ð 66ð 66ð 66�Iñ 66ô 66ð 66ðra<ð a<ð a<ð a<ð a<�Yñ a<ô a<ð a<ðH.5ð .5ð .5ð .5ð .5�%˜ñ .5ô .5ð .5ðb-5ð -5ð -5ð -5ð -5�3˜	ñ -5ô -5ð -5ð`*5ð *5ð *5ð *5ð *5�u˜iñ *5ô *5ð *5ðZN5ð N5ð N5ð N5ð N5�s˜Iñ N5ô N5ð N5ðb\8ð \8ð \8ð \8ð \8��iñ \8ô \8ð \8ð~	¨#ð 	°%ð 	ð 	ð 	ð 	ð 	ð 	r(   