
    Ngv                     V   d dl Z d dlZd dlZd dlZd dlZd dl mZ 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mZ ej        dd         dk    rd dl
mZ nd dl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  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*dZ+ G d de,e'          Z- G d de.e'          Z/ G d de0e'          Z1 G d de2e'          Z3 G d  d!e2e'          Z4d"e2d#e0fd$Z5d%ed#eede(e*f                  fd&Z6dS )'    N)	unhexlify)log10)iter_unpack)AnyCallableClassVarDictOptionalSequenceUnioncast   )   
   )	TypeGuard_pdfdoc_encoding_rev)PdfObjectProtocolPdfWriterProtocol)
StreamTypedeprecate_no_replacementlogger_warningread_non_whitespaceread_until_regex)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efdZd	edd fd
Z	 	 dd	ededeeeee	f                           dd fdZ	 dded	ededefdZded          fdZ	 d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                 :    t          | j        j         d          )q
        Used to detect modified object.

        Returns:
            Hash considering type and value.

        z& does not implement .hash_bin() so farNotImplementedError	__class____name__selfs    O/var/www/html/ai-engine/env/lib/python3.11/site-packages/pypdf/generic/_base.pyhash_binzPdfObject.hash_bin>   s'     "~&NNN
 
 	
    c                 0    d| z                                   S )Nz%s)encoder*   s    r,   hash_value_datazPdfObject.hash_value_dataJ   s    t##%%%r.   c                     | j         j        d|                     |                                                                                                           S )N:)r(   r)   r    r1   	hexdigestr0   r*   s    r,   
hash_valuezPdfObject.hash_valueM   sQ     '''t335566@@BBB
 &((	r.   pdf_destc                 ,    |                      |          S )a/  
        Clone object into pdf_dest (PdfWriterProtocol which is an interface for PdfWriter)
        without ensuring links. This is used in clone_document_from_root with incremental = True.

        Args:
          pdf_dest: Target to clone to.

        Returns:
          The cloned PdfObject

        )cloner+   r6   s     r,   	replicatezPdfObject.replicateV   s     zz(###r.   F force_duplicateignore_fieldsc                 :    t          | j        j         d          )a  
        Clone object into pdf_dest (PdfWriterProtocol which is an interface for PdfWriter).

        By default, this method will call ``_reference_clone`` (see ``_reference``).


        Args:
          pdf_dest: Target to clone to.
          force_duplicate: By default, if the object has already been cloned and referenced,
            the copy will be returned; when ``True``, a new copy will be created.
            (Default value = ``False``)
          ignore_fields: List/tuple of field names (for dictionaries) that will be ignored
            during cloning (applies to children duplication as well). If fields are to be
            considered for a limited number of levels, you have to add it as integer, for
            example ``[1,"/B","/TOTO"]`` means that ``"/B"`` will be ignored at the first
            level only but ``"/TOTO"`` on all levels.

        Returns:
          The cloned PdfObject

        z! does not implement .clone so farr&   r+   r6   r<   r=   s       r,   r8   zPdfObject.cloneg   s'    6 "~&III
 
 	
r.   r8   c                    	 |s|j         j        |k    r|S n# t          $ r Y nw xY w	 | j         }n# t          $ r |cY S w xY w|j        r7|5|j        |j        k    r%|j        t          |j                  k    r|j        }nt          |j                  dz   }|t          |j                  |j
        vrCi |j
        t          |j                  <   |j        |j
        t          |j                           d<   |si|j        |j
        t          |j                           v rC|                    |j
        t          |j                           |j                           }|J |S ||j
        t          |j                           |j        <   	 ||j        |dz
  <   n># t          $ r1 |j                            |           t          |j                  }Y nw xY wt          |d|          |_         |S )aX  
        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

        N   	PreventGCr   )r"   pdf	ExceptionAttributeErrorincremental_readeridnumlen_objectsid_id_translated
get_object
IndexErrorappendr!   )r+   r8   r6   r<   indiobjs          r,   _reference_clonezPdfObject._reference_clone   s   "	" u'?'Cx'O'O 	 	 	D		)CC 	 	 	LLL	  	+8+++	S!23333	AAH%&&*A?#'{{("99979'374DGG'374[A#I!8CG!EEE))+BswKK8C  
>?H#BswKK0;	'',Ha!e$$ 	' 	' 	'$$U+++H%&&AAA	' $2!Q#A#A s*    
$$0 ??
F 8GGc                     | S )zResolve indirect references.r;   r*   s    r,   rM   zPdfObject.get_object       r.   Nstreamencryption_keyc                     t           N)r'   r+   rV   rW   s      r,   write_to_streamzPdfObject.write_to_stream   s
     "!r.   Fr;   )FrY   )r)   
__module____qualname__hashlibsha1r    r   __annotations__r
   intr-   bytesr1   r5   r   r:   boolr   r   strr8   r   r   rS   rM   r   r[   r;   r.   r,   r   r   9   s        07Ix,-<<< !12222

# 

 

 

 

& & & & &E    $#$ 
$ $ $ $( !&=?	
 
#
 
  sCx 9:	

 

 
 
 
@ PU8 88$58HL8	8 8 8 8tH[1    
 MQ" " "27c58H2I"	" " " " " "r.   r   c                       e Zd Z	 	 ddededeeeee	f                           dd fdZ
de	fdZ	 dd
eded	eef         dd	fdZed
edd fd            ZdefdZd	S )
NullObjectFr;   r6   r<   r=   r#   c                 d    t          d|                     t                      ||                    S )Clone object into pdf_dest.rg   )r   rS   rg   r?   s       r,   r8   zNullObject.clone   s1     $//
hXX
 
 	
r.   c                 ,    t          | j        f          S r%   hashr(   r*   s    r,   r-   zNullObject.hash_bin   s     T^%&&&r.   NrV   rW   c                 T    |t          dd           |                    d           d S )N/the encryption_key parameter of write_to_stream5.0.0   null)r   writerZ   s      r,   r[   zNullObject.write_to_stream   s;     %$A7   	Wr.   c                 r    |                      d          }|dk    rt          d          t                      S )N   rq   zCould not read Null object)readr   rg   )rV   nulltxts     r,   read_from_streamzNullObject.read_from_stream   s5    ++a..g;<<<||r.   c                     dS )Nrg   r;   r*   s    r,   __repr__zNullObject.__repr__   s    |r.   r\   rY   )r)   r]   r^   r   rd   r
   r   r   re   rb   r8   r-   r   rc   r[   staticmethodrw   ry   r;   r.   r,   rg   rg      s        !&=?		
 	
#	
 	
  sCx 9:		

 
	
 	
 	
 	
'# ' ' ' ' MQ  27c58H2I	         \#      r.   rg   c                       e Zd ZdeddfdZ	 	 ddeded	eee	e
ef                           dd fd
ZdefdZdedefdZde
fdZ	 ddede	de
ef         ddfdZededd fd            ZdS )BooleanObjectvaluer#   Nc                     || _         d S rY   r}   )r+   r}   s     r,   __init__zBooleanObject.__init__   s    


r.   Fr;   r6   r<   r=   c                 p    t          d|                     t          | j                  ||                    S )ri   r|   )r   rS   r|   r}   r?   s       r,   r8   zBooleanObject.clone   s8     !!-
";";XWW
 
 	
r.   c                 8    t          | j        | j        f          S rk   )rm   r(   r}   r*   s    r,   r-   zBooleanObject.hash_bin  s     T^TZ0111r.   _BooleanObject__oc                     t          |t                    r| j        |j        k    S t          |t                    r| j        |k    S dS )NF)
isinstancer|   r}   rd   )r+   r   s     r,   __eq__zBooleanObject.__eq__  sG    c=)) 	:**T"" 	:$$5r.   c                     | j         rdndS )NTrueFalser   r*   s    r,   ry   zBooleanObject.__repr__  s    0vv0r.   rV   rW   c                     |t          dd           | j        r|                    d           d S |                    d           d S )Nro   rp      trues   false)r   r}   rr   rZ   s      r,   r[   zBooleanObject.write_to_stream  s]     %$A7   : 	#LL!!!!!LL"""""r.   c                     |                      d          }|dk    rt          d          S |dk    r$|                      d           t          d          S t          d          )Nrt   r   Ts   falsrA   FzCould not read Boolean object)ru   r|   r   )rV   words     r,   rw   zBooleanObject.read_from_stream%  s]    {{1~~7?? &&&W__KKNNN '''>???r.   r\   rY   )r)   r]   r^   r   r   r   rd   r
   r   r   re   rb   r8   r-   objectr   ry   r   rc   r[   rz   rw   r;   r.   r,   r|   r|      sa       c d     !&=?	

 

#

 

  sCx 9:	


 


 

 

 

2# 2 2 2 2& T    1# 1 1 1 1 MQ
# 
# 
#27c58H2I
#	
# 
# 
# 
# @ @ @ @ @ \@ @ @r.   r|   c                      e Zd ZdedededdfdZdefdZdefdZd	edd
fdZ		 	 d$d	ede
deeeeef                           dd fdZed%d            Zded
         fdZdedd fdZded
         fdZdedefdZdedef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&d ed!edeef         ddfd"Ze d ededd fd#            Z!dS )'r!   rH   
generationrC   r#   Nc                 0    || _         || _        || _        d S rY   )rH   r   rC   )r+   rH   r   rC   s       r,   r   zIndirectObject.__init__2  s    
$r.   c                 ^    t          | j        | j        t          | j                  f          S rY   )rm   rH   r   rK   rC   r*   s    r,   __hash__zIndirectObject.__hash__7  s#    TZ"TX,,?@@@r.   c                 j    t          | j        | j        | j        t	          | j                  f          S rk   )rm   r(   rH   r   rK   rC   r*   s    r,   r-   zIndirectObject.hash_bin:  s)     T^TZ"TX,,OPPPr.   r6   r   c                 8    t          | j        | j        |          S rY   )r!   rH   r   r9   s     r,   r:   zIndirectObject.replicateD  s     dj$/8DDDr.   Fr;   r<   r=   c                    | j         |k    r|s| S t          | j                   |j        vri |j        t          | j                   <   | j        |j        t          | j                            v rt|                    |j        t          | j                            | j                           }|r4|J |j        J |j        }t          |j        |j        |j                   S nm|                                 }|-t                      }t          | t          f          sJ | |_        |
                    |                    |||                    }|J |j        J |j        S )ri   )rC   rK   rL   rH   rM   r"   r!   r   rg   r   _add_objectr8   )r+   r6   r<   r=   dupidrefrR   s          r,   r8   zIndirectObject.cloneJ  s`    8xKdh<<x66646H#BtxLL1:0DH>>>%%h&=bll&KDJ&WXXC P-999.%ek53CUYOOO	P //##C{ ll!$(9:::::)-&&&		(O]CC C %111%%r.   c                     | S rY   r;   r*   s    r,   r"   z!IndirectObject.indirect_referencen  rU   r.   c                 6    | j                             |           S rY   )rC   rM   r*   s    r,   rM   zIndirectObject.get_objectr  s    x""4(((r.   memoc                 B    t          | j        | j        | j                  S rY   )r!   rH   r   rC   )r+   r   s     r,   __deepcopy__zIndirectObject.__deepcopy__u  s    dj$/48DDDr.   c                     |                                  }t          |t                    r8t          |                                  d|                                           |S )Nz references an IndirectObject )rM   r   r!   r   ry   )r+   os     r,   _get_object_with_checkz%IndirectObject._get_object_with_checkx  s]    OOa(( 	 ==??PP!**,,PP   r.   namec                     	 t          |                                 |          S # t          $ r t          d| d          w xY w)NzNo attribute z* found in IndirectObject or pointed object)getattrr   rE   )r+   r   s     r,   __getattr__zIndirectObject.__getattr__  s^    	46688$??? 	 	 	 PPPP  	s	   !$ Akeyc                 6    |                                  |         S rY   )r   )r+   r   s     r,   __getitem__zIndirectObject.__getitem__  s    **,,S11r.   c                 N    |                                                                  S rY   )rM   	__float__r*   s    r,   r   zIndirectObject.__float__  s      **,,,r.   c                 N    |                                                                  S rY   )rM   __str__r*   s    r,   r   zIndirectObject.__str__  s      ((***r.   c                 R    d| j         d| j        dt          | j                   dS )NzIndirectObject(z, ))rH   r   rK   rC   r*   s    r,   ry   zIndirectObject.__repr__  s/    UUUUUbllUUUUr.   otherc                     |d uoBt          |t                    o-| j        |j        k    o| j        |j        k    o| j        |j        u S rY   )r   r!   rH   r   rC   r+   r   s     r,   r   zIndirectObject.__eq__  sY     &5.11&
ek)& 5#33& EI%	
r.   c                 .    |                      |           S rY   )r   r   s     r,   __ne__zIndirectObject.__ne__  s    ;;u%%%%r.   rV   rW   c                     |t          dd           |                    | j         d| j         d                                           d S )Nro   rp    z R)r   rr   rH   r   r0   rZ   s      r,   r[   zIndirectObject.write_to_stream  s\     %$A7   	
88T_888??AABBBBBr.   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.   TrA      Rz0Error reading indirect object reference at byte )
ru   r   r   isspacer   r   hextellr!   rb   )rV   rC   rH   tokr   rs         r,   rw   zIndirectObject.read_from_stream  s   	++a..C C$%ABBB{{}} SLE	 
	++a..C C$%ABBB{{}} ! #J	  ''99W3v{{}}CUCUWW   c%jj#j//3???r.   r\   )r#   r!   rY   )"r)   r]   r^   rb   r   r   r   r-   r   r:   rd   r
   r   r   re   r8   propertyr"   rM   r   r   r   r   r   r   ry   r   r   r   r   rc   r[   rz   rw   r;   r.   r,   r!   r!   1  s       c s      
A# A A A AQ# Q Q Q QE#E 
E E E E !&=?	"& "&#"& "&  sCx 9:	"&
 
"& "& "& "&H    X)H[1 ) ) ) )E E)9 E E E E(=         2s 2s 2 2 2 2-3 - - - -+ + + + +V# V V V V
F 
t 
 
 
 
&F &t & & & & MQC C C27c58H2IC	C C C C @ @# @:J @ @ @ \@ @ @r.   r!      c                       e Zd Z	 ddedee         dd fdZ	 	 dd	ed
edeeee	e
f                           dd fdZde
fdZde	fdZde	fdZdefdZ	 ddedede	ef         ddfdZdS )FloatObject0.0Nr}   contextr#   c                     	 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        )float__new__rD   r   r)   )clsr}   r   es       r,   r   zFloatObject.__new__  s    		+%LLE==e,,, 	+ 	+ 	+ GGeGGG   ==c********	+s   ), 
A65A1+A61A6Fr;   r6   r<   r=   c                 f    t          d|                     t          |           ||                    S )ri   r   )r   rS   r   r?   s       r,   r8   zFloatObject.clone  s6     !!+d"3"3XOO
 
 	
r.   c                 8    t          | j        | j        f          S rk   rm   r(   
as_numericr*   s    r,   r-   zFloatObject.hash_bin  s     T^T_5666r.   c                     | dk    rdS t           t          t          t          |                               z
  }| dt	          d|           d                    d                              d          }|S )Nr   r   .rA   f0)FLOAT_WRITE_PRECISIONrb   r   absmaxrstrip)r+   nbss      r,   myreprzFloatObject.myrepr  so    1995"Ss4yy)9)9%:%::#c!Bii####**3//66s;;r.   c                 *    |                                  S rY   )r   r*   s    r,   ry   zFloatObject.__repr__  s    {{}}r.   c                      t          |           S rY   )r   r*   s    r,   r   zFloatObject.as_numeric  s    T{{r.   rV   rW   c                     |t          dd           |                    |                                                     d                     d S Nro   rp   utf8)r   rr   r   r0   rZ   s      r,   r[   zFloatObject.write_to_stream  sQ     %$A7   	T[[]]))&1122222r.   )r   Nr\   rY   )r)   r]   r^   r   r
   r   rd   r   r   re   rb   r8   r-   r   ry   r   r   r   rc   r[   r;   r.   r,   r   r     sU       :>+ ++*23-+	+ + + +" !&=?	

 



 

  sCx 9:	


 


 

 

 

7# 7 7 7 7    #    E     MQ3 3 327c58H2I3	3 3 3 3 3 3r.   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eef                           dd fd
ZdefdZdefdZ	 ddededeef         ddfdZededed         fd            ZdS )NumberObjects	   [^+-.0-9]r}   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   )rb   r   
ValueErrorr   r)   )r   r}   s     r,   r   zNumberObject.__new__  sr    	';;sCJJ/// 	' 	' 	'J5JJJHUUU;;sA&&&&&	's   '* >A+*A+Fr;   r6   r<   r=   c                 f    t          d|                     t          |           ||                    S )ri   r   )r   rS   r   r?   s       r,   r8   zNumberObject.clone  s6     !!,t"4"4hPP
 
 	
r.   c                 R    t          | j        |                                 f          S rk   r   r*   s    r,   r-   zNumberObject.hash_bin  s#     T^T__%6%67888r.   c                 `    t          t          |                               d                    S )Nr   )rb   reprr0   r*   s    r,   r   zNumberObject.as_numeric)  s$    4::$$V,,---r.   NrV   rW   c                     |t          dd           |                    t          |                               d                     d S r   )r   rr   r   r0   rZ   s      r,   r[   zNumberObject.write_to_stream,  sO     %$A7   	T$ZZ&&v../////r.   )r   r   c                     t          | t          j                  }|                    d          dk    rt	          |          S t          |          S )N   .)r   r   NumberPatternfindr   )rV   nums     r,   rw   zNumberObject.read_from_stream5  sE    v|'ABB88D>>Rs###C   r.   r\   rY   )r)   r]   r^   recompiler   r   r   rd   r
   r   r   re   rb   r8   r-   r   r   rc   r[   rz   rw   r;   r.   r,   r   r   	  sN       BJ|,,M'C 'N ' ' ' ' !&=?	

 



 

  sCx 9:	


 


 

 

 

9# 9 9 9 9.C . . . . MQ0 0 027c58H2I0	0 0 0 0 ! !6S0T ! ! ! \! ! !r.   r   c                       e Zd ZdZ	 	 ddededeeee	e
f                           dd fdZde
fd	Zedefd
            Z	 d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;   r6   r<   r=   r#   c           
          t          d|                     t          t          |                     ||                    S )ri   r   )r   rS   r   rc   r?   s       r,   r8   zByteStringObject.cloneF  sA     !! t--x 
 
 	
r.   c                 H    t          | j        t          |           f          S rk   )rm   r(   rc   r*   s    r,   r-   zByteStringObject.hash_binT  s     T^U4[[1222r.   c                     | S )z7For compatibility with TextStringObject.original_bytes.r;   r*   s    r,   original_byteszByteStringObject.original_bytes^  s	     r.   NrV   rW   c                     |t          dd           |                    d           |                    t          j        |                      |                    d           d S )Nro   rp      <   >)r   rr   binasciihexlifyrZ   s      r,   r[   z ByteStringObject.write_to_streamc  sj     %$A7   	TX%d++,,,Tr.   r\   rY   )r)   r]   r^   __doc__r   rd   r
   r   r   re   rb   r8   r-   r   rc   r   r   r[   r;   r.   r,   r   r   =  s          !&=?	
 

 
  sCx 9:	

 

 
 
 
3# 3 3 3 3     X
 MQ	 	 	27c58H2I			 	 	 	 	 	r.   r   c                      e Zd ZU dZeed<   eed<   eed<   dZee         ed<   de	dd fd	Z
	 	 dde	dedeeeeef                           dd fdZdefdZedefd            ZdefdZdefdZ	 d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.
    autodetect_pdfdocencodingautodetect_utf16	utf16_bomN_original_bytesr}   r#   c                 
   d }t          |t                    r|}|                    d          }t                              | |          }||_        d|_        d|_        d|_        |	                    d          r|J 	 t                              | |                    d                    }nv# t          $ ri}t          |d|j        t                     t                              | |j        d |j                                     d                    }Y d }~nd }~ww xY w||_        d|_        |d d         |_        n@	 t          |           d|_        n(# t           $ r d|_        t"          j        |_        Y nw xY w|S )	NcharmapFr.   )u   þÿu   ÿþzutf-16z
initial string:Tr   )r   rc   decodere   r   r   r   r   r   
startswithUnicodeDecodeErrorr   r   r)   startencode_pdfdocencodingUnicodeEncodeErrorcodecsBOM_UTF16_BE)r   r}   orgr   excs        r,   r   zTextStringObject.__new__}  s   eU## 	,CLL++EKKU##"&+#455 	2???OKKSZZ%9%9::% O O O==sz==   KKSZ#)%<%C%CH%M%MNNO !$A!%Abqb'AKK2%a(((.2++% 2 2 2%)"$12 s+    .B/ /
D"9ADD"E "F ?F Fr;   r6   r<   r=   c                     t          |           }| j        |_        | j        |_        | j        |_        | j        |_        t          d|                     |||                    S )ri   r   )r   r   r   r   r   r   rS   )r+   r6   r<   r=   rR   s        r,   r8   zTextStringObject.clone  sd     t$$"2(,(F%#4 5 5c8_ U U
 
 	
r.   c                 8    t          | j        | j        f          S rk   )rm   r(   r   r*   s    r,   r-   zTextStringObject.hash_bin  s     T^T%89:::r.   c                 F    | j         | j         S |                                 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.
        )r   get_original_bytesr*   s    r,   r   zTextStringObject.original_bytes  s(     +''**,,,r.   c                 `   | j         r| j        t          j        k    r"t          j        |                     d          z   S | j        t          j        k    r"t          j        |                     d          z   S |                     d          S | j        rt          |           S t          d          )Nutf-16leutf-16bez#no information about original bytes)	r   r   r  BOM_UTF16_LEr0   r  r   r  rD   r*   s    r,   r  z#TextStringObject.get_original_bytes  s       
	C~!444*T[[-D-DDD6#666*T[[-D-DDD{{:...+ 	C(...ABBBr.   c                    	 | j         | j         S | j        rt          ddddd          t          |           }n# t          $ r | j        t
          j        k    r#t
          j        |                     d          z   }nM| j        t
          j        k    r#t
          j        |                     d          z   }n|                     d          }Y nw xY w|S )N forcedr   r  r  )	r   r   r  r  r   r  r  r0   r  )r+   bytearrs     r,   get_encoded_bytesz"TextStringObject.get_encoded_bytes  s    	2#/++$ C(Xr2rBBB+D11GG! 	2 	2 	2~!444 -J0G0GG6#666 -J0G0GG++j11	2 s   : ): BCCrV   rW   c                    |t          dd           |                                 }|                    d           t          d|          D ]r}t	          t
          |d                   }|                                s,|dk    r&|                    dt          |          z             ]|                    |           s|                    d           d S )	Nro   rp      (cr       s   \%03o   ))r   r  rr   r   r   rc   isalnumord)r+   rV   rW   r  c_r  s         r,   r[   z TextStringObject.write_to_stream  s     %$A7   ((**Tc7++ 		  		 BUBqE""A99;;  199
 YQ/0000QTr.   r\   rY   )r)   r]   r^   r   rd   ra   rc   r   r
   r   r   r   r   re   rb   r8   r-   r   r   r  r  r   r[   r;   r.   r,   r   r   o  s           $###'+OXe_+++C $6    F !&=?	
 

 
  sCx 9:	

 

 
 
 
 ;# ; ; ; ; 
- 
- 
- 
- X
-CE C C C C$5    ( MQ  27c58H2I	     r.   r   c                   d   e Zd ZU  ej        d          ZdZddddddd	  ed
          D             Ze	e
eef                  ed<   	 	 ddededeeeeef                           dd fdZdefdZ	 d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dZedededd fd            ZdS ) 
NameObjects   \s+|[\(\)<>\[\]{}/%]   /s   #23s   #28s   #29s   #2Fs   #25)#(r   /%c                 Z    i | ](}t          |          d |d                                )S )r#  02X)chrr0   ).0rQ   s     r,   
<dictcomp>zNameObject.<dictcomp>  s4    
;
;
;A3q66;q;;;%%''
;
;
;r.   !   renumber_tableFr;   r6   r<   r=   r#   c                 f    t          d|                     t          |           ||                    S )ri   r!  )r   rS   r!  r?   s       r,   r8   zNameObject.clone  s6     !!*T"2"2HoNN
 
 	
r.   c                 .    t          | j        | f          S rk   rl   r*   s    r,   r-   zNameObject.hash_bin  s     T^T*+++r.   NrV   rW   c                 x    |t          dd           |                    |                                            d S )Nro   rp   )r   rr   renumberrZ   s      r,   r[   zNameObject.write_to_stream!  sC     %$A7   	T]]__%%%%%r.   c                 p   | d                              d          }|dk    rt          d|  dd           | 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, should start with '/': (r   z6.0.0rA   ~r#  r(  )r0   r   r-  KeyError)r+   outr  xs       r,   r1  zNameObject.renumber*  s    1gnnW%%$;;$VtVVV   abb 	- 	-A3ww'** 0 0A;q;;;--///CC0-4.q11CC - - -188G,,,CCC-
s   =B"B32B3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   rA   r   )r   r   r   )r8  rQ   s     r,   unnumberzNameObject.unnumber<  s    HHT11ff"1"g	#a!ea!em*< = ==AEGGLHHT1q5))    E	 1ff 
s   AA. .B ?B )r3  gbklatin1rC   c                 r   |                      d          }|t          j        k    rt          d          |t	          | t          j                  z  }	 t                              |          }t          j        D ]8}	 |                    |          }t          |          c S # t          $ r Y 5w xY wt          d|ddd          # t          t          f$ r`}|j        s@t          d|dt                     t          |                    d                    cY d }~S t          d|d	          |d }~ww xY w)
NrA   zName read errorr  r   zCode Not Foundz!Illegal character in NameObject (z-), you may need to adjust NameObject.CHARSETSr   z.). You may need to adjust NameObject.CHARSETS.)ru   r!  surfixr   r   delimiter_patternr;  CHARSETSr  rD   r  r  strictr   r)   )rV   rC   r   encretr   s         r,   rw   zNameObject.read_from_streamK  s   {{1~~:$$$0111 )EFFF	 &&t,,D!*  ++c**C%c??***    D$Rq!5EFFF"$67 	 	 	: A A A A  
 "$++i"8"899999999"B B B B  	sI   (C <#B"C "
B/,C .B//C D6AD1D6D11D6r\   rY   )r)   r]   r^   r   r   r@  r?  ranger-  r   r	   re   rc   ra   r   rd   r
   r   r   rb   r8   r-   r   r[   r1  rz   r;  rA  rw   r;   r.   r,   r!  r!    s        "
#;<<F2 2 <
;r
;
;
;2NHT#u*-.    !&=?	

 



 

  sCx 9:	


 


 

 

 

,# , , , , MQ& & &27c58H2I&	& & & &%    $ 
e 
 
 
 
 \
 *H # ,    \  r.   r!  unicode_stringr#   c                 x    	 t          d | D                       S # t          $ r t          d| ddd          w xY w)Nc                 (    g | ]}t           |         S r;   r   )r*  ks     r,   
<listcomp>z)encode_pdfdocencoding.<locals>.<listcomp>m  s    FFF!*1-FFFr.   pdfdocencodingr   z#does not exist in translation table)rc   r5  r  )rF  s    r,   r  r  k  s`    	
FF~FFFGGG 
 
 
 1
 
 	

s    9r7  c                     | du pQt          | t                    o<|                                 du p&t          |                                 t                    S )z<
    Returns:
        True if x is None or NullObject.

    N)r   r   rM   rg   )r7  s    r,   is_null_or_nonerM  x  sO     9 1i   	O\\^^t#Mz!,,..*'M'Mr.   )7r   r  r_   r   sysr   mathr   structr   typingr   r   r   r	   r
   r   r   r   version_infor   typing_extensions_codecsr   
_protocolsr   r   _utilsr   r   r   r   r   errorsr   r   r   
__author____author_email__r   rg   r|   r!   r   r   r   rb   r   rc   r   re   r   r!  r  rM  r;   r.   r,   <module>rZ     s  6    				 



                   Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q QBQB7""       ++++++ * * * * * * = = = = = = = =              P O O O O O O O O O
/ N" N" N" N" N"! N" N" N"b' ' ' ' ' ' ' 'T:@ :@ :@ :@ :@I :@ :@ :@zV@ V@ V@ V@ V@Y V@ V@ V@r  93 93 93 93 93% 93 93 93x1! 1! 1! 1! 1!3	 1! 1! 1!h/ / / / /ui / / /dM M M M MsI M M M`i i i i ii i i iX

# 

% 

 

 

 

	s 	ytZ/O)PQ 	 	 	 	 	 	r.   