
    @wg                        d dl Z d dl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mZ ddlmZmZ d	ed
eeeef   fdZ	 d/de	dedeee   eeef   f   d
ed   fdZi d ed      d ed      d ed      d ed      d ed      d ed      d ed      d ed      d ed      d ed      d ed      d  ed       d! ed!      d" ed"      d# ed#      d$ ed$      d% ed%       ed&       ed'      d(Zd)Z	 d/de	dedeee   eeef   f   d
ed   fd*Z	 d/d+eeef   dedeee   eeef   f   d
eeef   fd,Zd-ed
efd.Zy)0    N)DictListTupleUnion   )_pdfdoc_encoding)
StreamTypelogger_warningread_non_whitespace)STREAM_TRUNCATED_PREMATURELYPdfStreamError   )ByteStringObjectTextStringObjectvaluereturnc                 ,     t         fddD              S )Nc              3   f   K   | ](  }t        j                  d       ||dz    d      dz   * yw)#r      g     o@N)intlstrip).0ir   s     K/var/www/horilla/myenv/lib/python3.12/site-packages/pypdf/generic/_utils.py	<genexpr>zhex_to_rgb.<locals>.<genexpr>   s1     R1U\\#&q1q5126>Rs   .1)r   r      )tuple)r   s   `r   
hex_to_rgbr   
   s    R	RRR    streamforced_encoding)r   r   c                 h   | j                  d       g }d}	 t        |       }|st        t              |dk(  rn2||z  }t	        |      dk(  r|j                  t        |d             d}Tt	        |      dk(  r|dz  }|dk7  r|j                  t        |d             t        t        |      |      S )Nr   r       >r   r   base   0)	readr   r   r   lenappendr   create_string_objectbytes)r!   r"   arrxtoks        r   read_hex_string_from_streamr0      s     KKN
CA
!&) !=>>$;	Sq6Q;JJs12'A  1v{	T	Cx

3qr?#c
O<<r       n   
   r      t   	   b      f      (   )   /   \       %   <r$      [   ]   #   _   &   $)rF   rG   \   c                    | j                  d      }d}g }	 | j                  d      }|st        t              |dk(  r|dz  }n@|dk(  r|dz  }|dk(  r1nK|dk(  r+| j                  d      }	 |j                  t        |          n|j                  t        |             t        t!        |      |      S # t
        $ r" d|cxk  rdk  rn n| j                         dz
  }t        d      D ]:  }| j                  d      }d|cxk  rdk  r	n n||z  }(| j                  d	d        n t        |d
      }|dkD  r'|j                  t               | j                  |       n|j                  |       Y ^|dv r*| j                  d      }|dvr| j                  d	d       Y d|j                  dd       }	t        |	t               |j                  t               Y [w xY w)Nr   r;   r<   r   r>   r'      7r      r%      s   
zUnexpected escaped string: zutf-8ignore)r(   r   r   r*   __ESPACE_DICT__KeyErrortellrangeseekr   __BACKSLASH_CODE__decoder
   __name__ordr+   r,   )
r!   r"   r/   parenstxtsav_ntokr   msgs
             r   read_string_from_streamr^   >   s    ++a.CF
C
kk!n !=>>$;aKFD[aKF{E\++a.C&3

?3/0J 	

3s8g h  c
O<<K  #33&$& !++-!+C"1X "%{{1~4/4/4KC"KKA.!" Ca(A3w

#56C(

1G^ !++a.C')B* 7

788T7UVC"31JJ12G#3s   +B4 4B=G 4+G ":G G stringc                 <   t        | t              rt        |       S t        | t              rt        |t        t
        f      r&d}| D ]  }	 |||   z  } t        |      }| |_        |S t        |t              r3|dk(  rt        |       S t        | j                  |            }| |_        |S 	 | j                  t        j                  t        j                  f      r4t        | j                  d            }| |_        d|_        | dd |_        |S | j                  d      r?t        | j                  d	            }| |_        d|_        t        j                  |_        |S | d
d dk(  r?t        | j                  d            }| |_        d|_        t        j                  |_        |S t        t!        |             }| |_        d|_        |S t'        d      # t        $ r" |t        |f      j                  d      z  }Y w xY w# t$        $ r t        |       cY S w xY w)a?  
    Create a ByteStringObject or a TextStringObject from a string to represent the string.

    Args:
        string: The data being used
        forced_encoding: Typically None, or an encoding string

    Returns:
        A ByteStringObject

    Raises:
        TypeError: If string is not of type str or bytes.

     charmapr,   zutf-16TNr       zutf-16ber   zutf-16lez3create_string_object should have str or unicode arg)
isinstancestrr   r,   listdict	ExceptionrU   _original_bytesr   
startswithcodecsBOM_UTF16_BEBOM_UTF16_LEautodetect_utf16	utf16_bomdecode_pdfdocencodingautodetect_pdfdocencodingUnicodeDecodeError	TypeError)r_   r"   outr.   objretvals         r   r+   r+   |   s   $ &#''	FE	"od|4C 99?1--C9
 #3'C"(CJ-')'//"6==#ABC"(CJ0$$f&9&96;N;N%OP-fmmH.EFF-3F*.2F+'-bqzF$!M$$W--fmmJ.GHF-3F*.2F+'-':':F$!M!A;')-fmmJ.GHF-3F*.2F+'-':':F$!M **?*GH)/&370 MNNY ! 95!;--i88C9R & 0'//0s9   G-A"H AH  AH '#H 'H HHH
byte_arrayc                 n    d}| D ]-  }t         |   }|dk(  rt        dt        |      ddd      ||z  }/ |S )Nra    pdfdocencodingrK   z#does not exist in translation table)r   rr   	bytearray)rw   rv   bcs       r   rp   rp      sY    F 
Q=$ !5  	!
 Mr    )N)rk   typingr   r   r   r   _codecsr   _utilsr	   r
   r   errorsr   r   _baser   r   re   floatr   r   r0   rW   rO   rT   r^   r,   r+   rp    r    r   <module>r      sm    + + & D D A 5Sc SeE5%$78 S DH==4d3ic3h?@= 12=0#e*#e* 	#e* 	#e*	
 	#e* 	#d) 	#d) 	#d) 
3u: 	#d) 	#d) 	#d) 	#d) 	#d) 	#d)  	#d)!" 	#d)#$ d)
d)'*  
 DH;=;=4d3ic3h?@;= 12;=@ DHFO#u*FO4d3ic3h?@FO --.FORe  r    