
    є j1                        U 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	 ddl
mZmZ ddlmZmZ dd	lmZ dd
lmZmZmZmZmZ i ddddddddddddddddddddddddddddddddd dd!diZeeef         ed"<   d#ed$eeeeeef         f         eeef         f         fd%Zd#ed$eeeeef         f         fd&Zd#ed$eeeef         e e         f         fd'Z!d#ed$e"fd(Z#d)e"d*e$d+e$d,edeeef         f         d-eeef         d.e e         d$ee$e$edeeef         f         f         fd/Z%d0Z&d1ed$dfd2Z'd)e"d-eeef         d.e e         d,edeeef         f         d$edeeef         f         f
d3Z(d)e"d-eeef         d.e e         d$dfd4Z)d#ed-eeef         d.e e         d$eeeef         e e         f         fd5Z*dS )6    N)Error)	unhexlify)ceil)AnyUnioncast   )adobe_glyphscharset_encoding)logger_errorlogger_warning)LimitReachedError)DecodedStreamObjectDictionaryObject
NullObjectStreamObjectis_null_or_nonez/Identity-H	utf-16-bez/Identity-Vz	/GB-EUC-Hgbkz	/GB-EUC-Vz/GBpc-EUC-Hgb2312z/GBpc-EUC-Vz
/GBK-EUC-Hz
/GBK-EUC-Vz/GBK2K-Hgb18030z/GBK2K-Vz
/ETen-B5-Hcp950z
/ETen-B5-Vz/ETenms-B5-Hz/ETenms-B5-Vz/UniCNS-UTF16-Hz/UniCNS-UTF16-Vz/UniGB-UTF16-Hz/UniGB-UTF16-V_predefined_cmapftreturnc                     t          |           }t          |           \  }}t          |t                    r|D ]}|dk    rt	          |          ||<   ||fS )N   )_parse_encoding_parse_to_unicode
isinstancedictchr)r   encodingmap_dict	int_entryxs        _C:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pypdf/_cmap.pyget_encodingr(   )   sm     r""H+B//Hi (D!! % 	% 	%ACx %!!ffX    c                    g }d| vryd| v rqt          t          | d                   t          v rOt          t	          t          d          t          t          t          | d                                                }nd}|S t          t          t          t          t          f         | d         	                                          }t          |t                    r	 |t          v r t          |                                         }n-|t          v rt          |         }nd|v rd}nt          d          n# t          $ r t          dt          |	           |}Y nw xY wt          |t                    rd
|v r	 t          t          t          |d
                                                            }ne# t          $ r9 t          dt          |	           t          d                                         }Y n#w xY wt          d                                         }t          |t                    r{d|v rwd}t          t          |d                   D ]Y}t          |t                     r|}	 |t#          |          k     rt$          |         ||<   n# t          $ r |||<   Y nw xY w|dz  }Zt          |t&                    r*t          t	          t          d          |                    }|S )Nz	/Encodingz	/BaseFont   charmapz-UCS2-r   z	not foundz2Advanced encoding %(encoding)s not implemented yet)sourcer#   z/BaseEncodingz/StandardEncodingz/Differencesr   r	   )r   strr   r!   zipranger   r   r   
get_objectr    copyr   	Exceptionr   __name__intlenr
   list)r   r#   encr&   os        r'   r   r   ;   s    79H" " 	!c2k?!;!;?O!O 	!E#JJ 0c2k?1K1K LMM HH !H48c#Z/0"[/2L2L2N2N5 5C #s @	 && -+C05577(( -+C0S -&,,, 	 	 	MV^ilmmmmHHH	 
C)	*	* 
@#/E 
@	D'S#o2F(G(GHMMOOHH 	D 	D 	DD(    ((;<AACCHHH	D $$78==??#'(( ^s-B &N(;<< 		 		A!S!! $3x==( 6&21o  $ $ $"#HQKKK$Q(D!! 3E#JJ1122Os8   AD2 2#EE58F. .A G10G1$#JJJc           	      (   i }g }d| vr/|                      dd          dk    rt          | ||          S i g fS d}d}d }t          |           }|                    d          D ]-}t	          |                    d          |||||          \  }}}.||fS )N
/ToUnicodez/Subtype z/Type1F   
s    	)get_type1_alternative
prepare_cmsplitprocess_cm_linestrip)r   r$   r%   
process_rgprocess_charmultiline_rgcmlines           r'   r   r   v   s    
  "H I2 66*b!!X- 	?%b(I>>>2vJL 	  
BB 
 
1@JJv2
 2
.
L,, Yr)   c                    | d         }t          |t                    r.t          t          | d                                                   }nd}t          |t
                    r|                                }|                                                    dd                              dd                              dd                              d	d
                              dd                              dd          }|	                    d          }t          t          |                    D ]l}||                             d          }|dk    rI|dk    rd}n$||         d |                             dd          }|dz   ||         |dz   d          z   ||<   md                    |                              dd                              dd                              dd          }|S )Nr;   s,   beginbfrange
<0000> <0001> <0000>
endbfrange   beginbfchars   
beginbfchar
	   endbfchars   
endbfchar
   beginbfranges   
beginbfrange

   endbfranges   
endbfrange
s   <<s   
{
s   >>s   
}
   <   >r      .    r)   r	      [s    [    ]s    ]
    r=   )r    r   r   r   get_datar.   encoderC   replacerA   r0   r6   findjoin)r   turG   llijcontents          r'   r@   r@      s   	L	B"l## ?%r,'788AACC ?"c YY[[ 	

	!3	4	4	/	0	0	"5	6	6	 1	2	2		!	!		!	!  
$B3r77^^ 	4 	4qEJJt6 	4Av 7 Q%)++D#66dNRU1q577^3BqE	2	v			x	 	 				  Ir)   rH   rD   rE   rF   r$   r%   c                 ^   | dk    s| d         dk    r|||fS |                      dd          } d| v rd}nud| v rd	}nnd
| v rd}ngd| v rd	}n`|rK	 t          | |||          }nJ# t          j        $ r%}t	          d| d| t
                     Y d }~nd }~ww xY w|rt          | ||           |||fS )Nr)   r   %      	rQ   rL   TrM   FrJ   rK   zSkipping broken line z: )rW   parse_bfrangebinasciir   r   r4   parse_bfchar)rH   rD   rE   rF   r$   r%   errors          r'   rB   rB      s.    s{ 6d1gm 6<55<<t$$D$ 0

	$	 0

	4	 
0		 0	 0	P(xLQQLL~ 	P 	P 	PD4DDUDDhOOOOOOOO	P	 0T8Y///|\11s   A   B/BBi sizec                 R    | t           k    rt          d|  dt            d          d S )Nz'Maximum /ToUnicode size limit reached: z > .)MAPPING_DICTIONARY_SIZE_LIMITr   )rf   s    r'   _check_mapping_sizerj      s@    ++ u s$ s sSp s s stttu ur)   c                 4   d |                      d          D             }d}t          |          }t          |           |d|d         dz  z  }|d         }|d         }	|D ]}
|
d	k    rd
} n|dz  }t          |           t          |
                              dd          |t          ||z                                |d         dk    rdndd          <   |                    |           |dz  }nt          |d         d          }t          |d         d          }	t          t          |d                   t          |d                             }t          |dz            |d<   d|d         dz  z  }|d         dk    r|dd          D ]}
|
d	k    rd
} n|dz  }t          |           t          |
                              dd          |t          ||z                                |d         dk    rdndd          <   |                    |           |dz  }nt          |d         d          }dt          dt          |d                             z  }d
}t          d|	|z
  dz             }t          ||z              ||	k    rt          ||z                                dd          |t          ||z                                |d         dk    rdndd          <   |                    |           |dz  }|dz  }||	k    |rd n||	fS )Nc                     g | ]}||S  rm   .0r&   s     r'   
<listcomp>z!parse_bfrange.<locals>.<listcomp>       
,
,
,!
,1
,
,
,r)   rQ   Fs   %%0%dX   r   r	   rS   Tr   surrogatepassr,      rR         )	rA   r6   rj   r   decodeappendr5   maxr   )rH   r$   r%   rF   lstclosure_foundentry_countfmtabsqnbicfmt2
range_sizes                  r'   rb   rb      s~    -
,djj&&
,
,
,CMi..K$$$ 68B<!+,OO 	 	BTz  $1K,,, "$$[/BB #'""))!)"!2CII#  QFAAAOOAOO#c!f++s3q6{{++C!G}}8B<!+,q6T> 	!""g  : $(MEq #K000 bMM((oFF cAg&&--%-b\Q%6G		K'    ###QCFBAs1c#a&kk222D MQA	**Jj 8999q& 	 dQh''..{OLL cAg&&--%-b\Q%6G		K'    ###QQ q& 	 !,44q!f,r)   c                 $   d |                      d          D             }t          |          dz  }t          t          |          |z              t          |d                   dz  |d<   t          |          dk    rd}|d         dk    r	 t          |d                                       t          |d                   d	k     rd
ndd          }n9# t
          $ r,}t          d|d|d         dt                     Y d }~nd }~ww xY w||t          |d                                       |d         dk    rd
ndd          <   |                    t          |d         d                     |dd          }t          |          dk    d S d S )Nc                     g | ]}||S rm   rm   rn   s     r'   rp   z parse_bfchar.<locals>.<listcomp>+  rq   r)   rQ   rs   r   rr   r	   r<   rP   rw   r,   r   rt   zGot invalid hex string: z ()ru   )
rA   r6   rj   r   rx   BinasciiErrorr   r4   ry   r5   )rH   r$   r%   r{   	new_countmap_to	exceptions          r'   rd   rd   *  s   
,
,djj&&
,
,
,CCAII2333s1v;;!#HRL
c((Q, q6T> 	``"3q6**11!$SVqAIIk?  ! ` ` `T)TTQTTTV^________` 	 	c!f$$%b\Q.?		K 	

 	SVR)))!""g! c((Q,     s   AC 
D
"DD
c           	      :   d| vr||fS t          t          | d                                       d          }t          |          r||fS |
J d            |                                                                }|                    d          d         }|                    d          d         }|                    dd	                              d	          }|D ]:}|                    d
          r!d |                    d          D             }t          |          dk    r|d         dk    rX	 t          |d                   }n# t          $ r Y {w xY w	 t          |d                                                  }	nm# t          $ r` |d                             d          r?	 t          t          |d         dd          d                    }	n# t          $ r Y Y w xY wY Y nw xY w|	|t          |          <   |                    |           <||fS )Nz/FontDescriptorz	/FontFilemypys   eexec
r   s	   /Encodingr	   rT   r=   s   dupc                     g | ]
}|d k    |S )r)   rm   )ro   _ws     r'   rp   z&_type1_alternative.<locals>.<listcomp>S  s!    >>>BB#I>R>>>r)   rQ   rv   s   putrs   s   /unirw   ru   )r   r   r>   r   r1   rU   rA   rW   
startswithr6   r5   
ValueErrorr
   rx   KeyErrorr"   ry   )
r   r$   r%   ft_desctxtlinesliwordsr\   vs
             r'   r?   r?   B  sT   
 " #""#R(9%:;;??LLGw #""&&&&&





'
'
)
)C
))J


"C
))L
!
!!
$CKKu%%++E22E    ==   	 >>"((4..>>>E5zzA~ %(f"4 aMM   	 q!2!23   8&&w// !E!HQRRL" 5 566% ! ! ! ! H	   !HSVVQYsH   6E
EE%F%G-)+GG-
G$G-#G$$G-,G-)+rc   r   r   r   mathr   typingr   r   r   _codecsr
   r   _utilsr   r   errorsr   genericr   r   r   r   r   r   r!   r.   __annotations__tupler5   r(   r   r7   r   bytesr@   boolrB   ri   rj   rb   rd   r?   rm   r)   r'   <module>r      s    + + + + + +             # # # # # # # # # # 3 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 % % % % % %             $;$;$ $ 	$
 8$ 8$ %$ %$ 	$ 	$ '$ '$ G$ G$ {$  {!$" i#$$ i%$ $ $sCx.   .
5d38n$%tCH~56   $88
3S#X8 8 8 8v
4S>49$%   B&# & & & & &R2
22 2 eCHo-.	2
 38n2 Cy2 4uT5c?23342 2 2 2< !( uc ud u u u u
A-
A-38nA- CyA- eCHo-.	A-
 4sCx !A- A- A- A-Hu S#X 49 QU    0$$38n$ Cy$ 4S>49$%	$ $ $ $ $ $r)   