
    i\c                     R   S SK r S SKrS SKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSKJ!r!  SSK"J#r#  SSK"J$r$  SSK"J%r%   " S  S!\5      r& " S" S#\5      r'\" S$5      r(\" S%5      r)\" S&5      r*\" S'5      r+\" S(5      r, " S) S*5      r- " S+ S,5      r. " S- S.5      r/ " S/ S0\5      r0 " S1 S25      r1g)3    N)BytesIO   )CMapDB)CMap)PSTypeError)PSEOF)	PSKeywordliteral_name)keyword_name)PSStackParser)LIT)KWD)STRICT)PDFException)	PDFStream)	PDFObjRef)resolve1)
list_value)
dict_value)stream_value)PDFFontError)PDFType1Font)PDFTrueTypeFont)PDFType3Font)
PDFCIDFont)PDFColorSpace)PREDEFINED_COLORSPACE)choplist)mult_matrix)MATRIX_IDENTITYc                       \ rS rSrSrg)PDFResourceError%    N__name__
__module____qualname____firstlineno____static_attributes__r%       E/home/kodi/my-venv/lib/python3.13/site-packages/pdfminer/pdfinterp.pyr#   r#   %       r,   r#   c                       \ rS rSrSrg)PDFInterpreterError(   r%   Nr&   r%   r,   r-   r0   r0   (   r.   r,   r0   PDFTextFontFormImagec                   ,    \ rS rSrS rS rS rS rSrg)PDFTextState7   c                     S U l         SU l        SU l        SU l        SU l        SU l        SU l        SU l        U R                  5         g )Nr   d   )	fontfontsize	charspace	wordspacescalingleadingrenderriseresetselfs    r-   __init__PDFTextState.__init__9   sH    		

 	r,   c                     SU R                   < SU R                  < SU R                  < SU R                  < SU R                  < SU R
                  < SU R                  < SU R                  < S	U R                  < S
U R                  < S3$ )Nz<PDFTextState: font=z, fontsize=z, charspace=z, wordspace=z,  scaling=z
, leading=z	, render=z, rise=z
,  matrix=z, linematrix=>)
r<   r=   r>   r?   r@   rA   rB   rC   matrix
linematrixrE   s    r-   __repr__PDFTextState.__repr__G   sM     DMM4>>4>>t||T[[$))doo/ 	0r,   c                 n   [        5       nU R                  Ul        U R                  Ul        U R                  Ul        U R                  Ul        U R
                  Ul        U R                  Ul        U R                  Ul        U R                  Ul        U R                  Ul	        U R                  Ul
        U$ N)r8   r<   r=   r>   r?   r@   rA   rB   rC   rK   rL   rF   objs     r-   copyPDFTextState.copyO   s|    n99}}llll[[
99[[

r,   c                 (    [         U l        SU l        g N)r   r   )r!   rK   rL   rE   s    r-   rD   PDFTextState.reset]   s    % r,   )
r>   r<   r=   rA   rL   rK   rB   rC   r@   r?   N)	r'   r(   r)   r*   rG   rM   rS   rD   r+   r%   r,   r-   r8   r8   7   s    0r,   r8   c                   &    \ rS rSrS rS rS rSrg)PDFGraphicStatee   c                 f    SU l         S U l        S U l        S U l        S U l        S U l        S U l        g Nr   	linewidthlinecaplinejoin
miterlimitdashintentflatnessrE   s    r-   rG   PDFGraphicState.__init__g   s6    	r,   c                    [        5       nU R                  Ul        U R                  Ul        U R                  Ul        U R                  Ul        U R
                  Ul        U R                  Ul        U R                  Ul        U$ rP   )rY   r^   r_   r`   ra   rb   rc   rd   rQ   s     r-   rS   PDFGraphicState.copyq   s\    ll}}99[[
}}
r,   c                     SU R                   < SU R                  < SU R                  < SU R                  < SU R                  < SU R
                  < SU R                  < S3$ )	Nz<PDFGraphicState: linewidth=z
, linecap=z, linejoin=z,  miterlimit=z, dash=z	, intent=z, flatness=rJ   r]   rE   s    r-   rM   PDFGraphicState.__repr__|   s<     t}}$))T[[$--I 	Jr,   )rb   rd   rc   r_   r`   r^   ra   N)r'   r(   r)   r*   rG   rS   rM   r+   r%   r,   r-   rY   rY   e   s    	Jr,   rY   c                   <    \ rS rSrSrSrS
S jrS rSS jrS r	Sr
g	)PDFResourceManager   zRepository of shared resources.

ResourceManager facilitates reuse of shared resources
such as fonts and images so that large objects are not
allocated multiple times.
Fc                     Xl         0 U l        g rP   )caching_cached_fonts)rF   rn   s     r-   rG   PDFResourceManager.__init__   s    r,   c                 B    U H  nU[         L a  M  U[        L a  M  M     g rP   )LITERAL_PDFLITERAL_TEXT)rF   procsprocs      r-   get_procsetPDFResourceManager.get_procset   s,    D{"%   	r,   c                      [         R                  " U5      $ ! [         R                   a    U(       a  e [        5       s $ f = frP   )r   get_cmapCMapNotFoundr   )rF   cmapnamestricts      r-   ry   PDFResourceManager.get_cmap   s8    	??8,,"" 	6M	s    &A Ac                 J   U(       a   XR                   ;   a  U R                   U   nU$ U R                  (       a  [        R                  " SU< SU< 35        [        (       a  US   [
        La  [        S5      eSU;   a  [        US   5      nO[        (       a  [        S5      eSnUS;   a  [        X5      nOUS	:X  a  [        X5      nOUS
:X  a  [        X5      nOUS;   a  [        X5      nOUS:X  ae  [        US   5      nU(       d   e[        US   5      R                  5       nS H  nXr;   d  M
  [        X'   5      Xg'   M     U R!                  S U5      nO$[        (       a  [        SU-  5      e[        X5      nU(       a  U R"                  (       a  X0R                   U'   U$ )Nzget_font: create: objid=z, spec=TypezType is not /FontSubtypezFont Subtype is not specified.Type1)r   MMType1TrueTypeType3)CIDFontType0CIDFontType2Type0DescendantFontsr   )Encoding	ToUnicodezInvalid Font spec: %r)ro   debuglogginginfor   LITERAL_FONTr   r   r   r   r   r   r   r   rS   r   get_fontrn   )rF   objidspecr<   subtypedfontssubspecks           r-   r   PDFResourceManager.get_font   sw   U000%%e,DR O zzeTRSv<|3&':;;D &tI76&'GHH!..#D/J&&t2G##D/<<!$-G##D):$;<v$VAY/4462Ay%-dg%6
 3 }}T736&'>'EFF#D/,0""5)r,   )ro   rn   N)T)F)r'   r(   r)   r*   __doc__r   rG   rv   ry   r   r+   r%   r,   r-   rk   rk      s"     E
	+r,   rk   c                   r    \ rS rSrS rS rS rS rSS jrS r	\
" S	5      r\
" S
5      r\
" S5      rS rSrg)PDFContentParser   c                 L    Xl         SU l        [        R                  " U S 5        g r\   )streamsistreamr   rG   )rF   r   s     r-   rG   PDFContentParser.__init__   s!    tT*r,   c                 .   U R                   (       d  U R                  [        U R                  5      :  a8  [	        U R                  U R                     5      nU =R                  S-  sl        O[        S5      e[        UR                  5       5      U l         g )Nr   zUnexpected EOF, file truncated?)fpr   lenr   r   r   r   get_data)rF   strms     r-   fillfpPDFContentParser.fillfp   sd    ww||c$,,//#DLL$>?!=>>dmmo.DGr,   c                 P    U R                  5         [        R                  " X5        g rP   )r   r   seek)rF   poss     r-   r   PDFContentParser.seek   s    4%r,   c                 D   U R                   [        U R                  5      :  a  g  U R                  5         U R                  R                  5       U l        U R                  R                  U R                  5      U l        U R                  (       a  O	S U l        Mt  SU l         g r\   )	charposr   bufr   r   tellbufposreadBUFSIZrE   s    r-   fillbufPDFContentParser.fillbuf   sp    <<#dhh-'KKM'',,.DKww||DKK0DHxxDG  r,      EIc                 @   U R                  U5        SnSnU[        U5      ::  Ga  U R                  5         U(       a  U R                  U R                  U R                  S-    nXE-  nU =R                  S-  sl        [        U5      U::  a  UR                  5       (       a  US-  nOvU[        U5      :  a  XRX3S-    :X  a  US-  nOWSnOT U R                  R                  US   U R                  5      nX@R                  U R                  US-    -  nUS-   U l        SnU[        U5      ::  a  GM  US [        U5      S-   *  n[        R                  " SSU5      nX4$ ! [         a8    X@R                  U R                  S  -  n[        U R                  5      U l         Nf = f)Nr   r,   r   s   (\x0d\x0a|[\x0d\x0a])$)
r   r   r   r   r   isspaceindex
ValueErrorresub)rF   r   targetidatacjs          r-   get_inline_data PDFContentParser.get_inline_data   sk   		#3v;LLNHHT\\$,,q.9	!v;!#		FAV_Qsm);FAA1vay$,,?AHHT\\!A#66D#$Q3DLA% 3v;, %s6{1}%&vv0#t<{ " 1HHT\\]33D#&txx=DL1s   	AE ?FFc                 >    U R                   " U R                  5       6   g rP   )add_resultspopallrE   s    r-   flushPDFContentParser.flush  s    $++-(r,   s   BIs   IDc                    X R                   L a  U R                  US5        g X R                  L a   U R                  S5      u  p4[	        U5      S-  S:w  a  [        SU-  5      e[        S [        SU5       5       5      nU R                  U[	        S5      -   5      u  p[        XV5      nU R                  X45        U R                  XR                  45        g U R                  X45        g ! [
         a    [        (       a  e  g f = f)Ninline   r   z Invalid dictionary construct: %rc              3   @   #    U  H  u  p[        U5      U4v   M     g 7frP   r
   ).0r   vs      r-   	<genexpr>.PDFContentParser.do_keyword.<locals>.<genexpr>+  s     N<M&1,q/1-<Ms   s   ID )
KEYWORD_BI
start_type
KEYWORD_IDend_typer   r   dictr   r   r   push
KEYWORD_EIr   )rF   r   token_objsdr   rR   s           r-   
do_keywordPDFContentParser.do_keyword"  s    OO#OOC*  	 oo% MM(3	t9q=A%%&H4&OPPNHQ<MNN"223s6{?C(		3*%		301 	 IIsl#  6  	s   B'C, ,DD)r   r   r   r   r   r   N)r   )r'   r(   r)   r*   rG   r   r   r   r   r   r   r   r   r   r   r+   r%   r,   r-   r   r      sB    
< UJUJUJr,   r   c                      \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!\!r"S  r#S! r$S" r%S# r&S$ r'S% r(S& r)S' r*S( r+S) r,S* r-S+ r.S, r/S- r0S. r1S/ r2S0 r3S1 r4S2 r5S3 r6S4 r7S5 r8S6 r9S7 r:S8 r;S9 r<S: r=S; r>S< r?S= r@S> rAS? rBS@ rCSA rDSB rESC rFSD rGSE rHSF rISG rJSH rKSI rLSJ rMSK rNSL rOSM rPSN rQSO rRSP rSSQ rT\U4SR jrVSS rWSTrXgU)VPDFPageInterpreteri:  r   c                     Xl         X l        g rP   )rsrcmgrdevice)rF   r   r   s      r-   rG   PDFPageInterpreter.__init__>  s    r,   c                 N    U R                  U R                  U R                  5      $ rP   )	__class__r   r   rE   s    r-   dupPDFPageInterpreter.dupC  s    ~~dllDKK88r,   c                 x   Xl         0 U l        0 U l        [        R                  " 5       U l        U(       d  g S n[        U5      R                  5        GHc  u  p4U R                  (       a  [        R                  " SU< SU< 35        US:X  az  [        U5      R                  5        H[  u  pVS n[        U[        5      (       a  UR                  n[        U5      nU R                  R                  Xv5      U R                  U'   M]     M  US:X  aB  [        U5      R                  5        H#  u  pU" [        U5      5      U R
                  U'   M%     M  US:X  a'  U R                  R!                  [#        U5      5        GM*  US:X  d  GM3  [        U5      R                  5        H  u  pXR                  U	'   M     GMf     g )Nc           	         [        U [        5      (       a  [        U S   5      nO[        U 5      nUS:X  a?  [        U [        5      (       a*  S[        U 5      ::  a  [	        U[        U S   5      S   5      $ US:X  aE  [        U [        5      (       a0  S[        U 5      ::  a!  [	        U[        [        U S   5      5      5      $ [        R                  " U5      $ )Nr   ICCBasedr   r   NDeviceN)	
isinstancelistr   r   r   r   r   r   get)r   names     r-   get_colorspace9PDFPageInterpreter.init_resources.<locals>.get_colorspaceP  s    $%%#DG,#D)z!jt&<&<c$i$T<Q+@+EFF"z$'='=!s4y.$T3z$q'/B+CDD,0066r,   z
Resource: z: r4   
ColorSpaceProcSetXObject)	resourcesfontmapxobjmapr   rS   csmapr   itemsr   r   r   r   r   r   r   r   rv   r   )rF   r   r   r   r   fontidr   r   csidxobjidxobjstrms              r-   init_resources!PDFPageInterpreter.init_resourcesH  sP   "*//1

	7 !+113FQzzAq9:F{&0m&9&9&;NV E!$	22 $

%d+D+/<<+@+@+MDLL( '< l"$.qM$7$7$9LT'5htn'EDJJt$ %:i((A7i*4Q-*=*=*?&V+3LL( +@! 4$ 	r,   c                 \   / U l         Xl        U R                  R                  U R                  5        [	        5       U l        [        5       U l        / U l        / U l	        S =U l
        U l        U R                  (       a/  U R                  R                  5        H  nU=U l
        U l          g    g rP   )gstackctmr   set_ctmr8   	textstaterY   graphicstatecurpathargstackscsncsr   values)rF   r   r   s      r-   
init_statePDFPageInterpreter.init_stateq  s    DHH%%+-""48::ZZ&&(&''48 ) 	r,   c                 :    U R                   R                  U5        g rP   )r  appendrQ   s     r-   r   PDFPageInterpreter.push  s    S!r,   c                 `    US:X  a  / $ U R                   U* S  nU R                   S U*  U l         U$ r\   )r  )rF   nxs      r-   popPDFPageInterpreter.pop  s9    6IMM1"#cr*r,   c                     U R                   U R                  R                  5       U R                  R                  5       4$ rP   )r   r  rS   r  rE   s    r-   get_current_state$PDFPageInterpreter.get_current_state  s/    $..--/1B1B1G1G1IJJr,   c                 x    Uu  U l         U l        U l        U R                  R	                  U R                   5        g rP   )r   r  r  r   r  )rF   states     r-   set_current_state$PDFPageInterpreter.set_current_state  s.    8=54>4#4DHH%r,   c                 V    U R                   R                  U R                  5       5        g rP   )r   r  r  rE   s    r-   do_qPDFPageInterpreter.do_q  s     41134r,   c                 x    U R                   (       a)  U R                  U R                   R                  5       5        g rP   )r   r  r  rE   s    r-   do_QPDFPageInterpreter.do_Q  s%    ;;""4;;??#45r,   c                     [        XX4XV4U R                  5      U l        U R                  R                  U R                  5        g rP   )r    r   r   r  )rF   a1b1c1d1e1f1s          r-   do_cmPDFPageInterpreter.do_cm  s4    7BDHH%r,   c                 $    XR                   l        g rP   )r  r^   )rF   r^   s     r-   do_wPDFPageInterpreter.do_w  s    &/#r,   c                 $    XR                   l        g rP   )r  r_   )rF   r_   s     r-   do_JPDFPageInterpreter.do_J  s    $+!r,   c                 $    XR                   l        g rP   )r  r`   )rF   r`   s     r-   do_jPDFPageInterpreter.do_j      %-"r,   c                 $    XR                   l        g rP   )r  ra   )rF   ra   s     r-   do_MPDFPageInterpreter.do_M  s    '1$r,   c                 (    X4U R                   l        g rP   )r  rb   )rF   rb   phases      r-   do_dPDFPageInterpreter.do_d  s    "&r,   c                 $    XR                   l        g rP   )r  rc   )rF   rc   s     r-   do_riPDFPageInterpreter.do_ri  s    #) r,   c                 $    XR                   l        g rP   )r  rd   )rF   rd   s     r-   do_iPDFPageInterpreter.do_i  r2  r,   c                     g rP   r%   rF   r   s     r-   do_gsPDFPageInterpreter.do_gs      r,   c                 >    U R                   R                  SX45        g )Nmr  r  rF   r  ys      r-   do_mPDFPageInterpreter.do_m      S!K(r,   c                 >    U R                   R                  SX45        g )NlrG  rH  s      r-   do_lPDFPageInterpreter.do_l  rL  r,   c           	      B    U R                   R                  SXX4XV45        g )Nr   rG  )rF   x1y1x2y2x3y3s          r-   do_cPDFPageInterpreter.do_c  s     S"""9:r,   c                 @    U R                   R                  SXX445        g )Nr   rG  )rF   rT  rU  rV  rW  s        r-   do_vPDFPageInterpreter.do_v      S""12r,   c                 @    U R                   R                  SXX445        g )NrI  rG  )rF   rR  rS  rV  rW  s        r-   do_yPDFPageInterpreter.do_y  r]  r,   c                 :    U R                   R                  S5        g )NhrG  rE   s    r-   do_hPDFPageInterpreter.do_h  s    F#r,   c                 8   U R                   R                  SX45        U R                   R                  SX-   U45        U R                   R                  SX-   X$-   45        U R                   R                  SXU-   45        U R                   R                  S5        g )NrF  rN  rb  rG  )rF   r  rI  wrc  s        r-   do_rePDFPageInterpreter.do_re  s}    S!K(S!#qM*S!#qsO,S!qSM*F#r,   c                 x    U R                   R                  U R                  SSSU R                  5        / U l        g NTFr   
paint_pathr  r  rE   s    r-   do_SPDFPageInterpreter.do_S  s0    t00$udllSr,   c                 D    U R                  5         U R                  5         g rP   )rd  rn  rE   s    r-   do_sPDFPageInterpreter.do_s      				r,   c                 x    U R                   R                  U R                  SSSU R                  5        / U l        g NFTrl  rE   s    r-   do_fPDFPageInterpreter.do_f  s0    t00%udllSr,   c                 x    U R                   R                  U R                  SSSU R                  5        / U l        g ru  rl  rE   s    r-   do_f_aPDFPageInterpreter.do_f_a  s0    t00%tT\\Rr,   c                 x    U R                   R                  U R                  SSSU R                  5        / U l        g rk  rl  rE   s    r-   do_BPDFPageInterpreter.do_B  s0    t00$eT\\Rr,   c                 x    U R                   R                  U R                  SSSU R                  5        / U l        g )NTrl  rE   s    r-   do_B_aPDFPageInterpreter.do_B_a  s0    t00$dDLLQr,   c                 D    U R                  5         U R                  5         g rP   )rd  r|  rE   s    r-   do_bPDFPageInterpreter.do_b  rs  r,   c                 D    U R                  5         U R                  5         g rP   )rd  r  rE   s    r-   do_b_aPDFPageInterpreter.do_b_a#  s    		r,   c                     / U l         g rP   )r  rE   s    r-   do_nPDFPageInterpreter.do_n)  s    r,   c                     g rP   r%   rE   s    r-   do_WPDFPageInterpreter.do_W.      r,   c                     g rP   r%   rE   s    r-   do_W_aPDFPageInterpreter.do_W_a2  r  r,   c                      U R                   [        U5         U l        g ! [         a    [        (       a  [        SU-  5      e g f = fNzUndefined ColorSpace: %r)r   r   r  KeyErrorr   r0   rA  s     r-   do_CSPDFPageInterpreter.do_CS6  S    	Mzz,t"45DH 	  	Mv)*Dt*KLL 	M     #AAc                      U R                   [        U5         U l        g ! [         a    [        (       a  [        SU-  5      e g f = fr  )r   r   r  r  r   r0   rA  s     r-   do_csPDFPageInterpreter.do_cs?  r  r  c                     g rP   r%   rF   grays     r-   do_GPDFPageInterpreter.do_GH  rD  r,   c                     g rP   r%   r  s     r-   do_gPDFPageInterpreter.do_gM  rD  r,   c                     g rP   r%   rF   rgbs       r-   do_RGPDFPageInterpreter.do_RGR  rD  r,   c                     g rP   r%   r  s       r-   do_rgPDFPageInterpreter.do_rgW  rD  r,   c                     g rP   r%   rF   r   rF  rI  r   s        r-   do_KPDFPageInterpreter.do_K\  rD  r,   c                     g rP   r%   r  s        r-   do_kPDFPageInterpreter.do_ka  rD  r,   c                     U R                   (       a  U R                   R                  nO[        (       a  [        S5      eSnU R	                  U5        g NzNo colorspace specified!r   )r  ncomponentsr   r0   r  rF   r  s     r-   do_SCNPDFPageInterpreter.do_SCNf  <    88$$Av)*DEEAr,   c                     U R                   (       a  U R                   R                  nO[        (       a  [        S5      eSnU R	                  U5        g r  )r  r  r   r0   r  r  s     r-   do_scnPDFPageInterpreter.do_scnp  r  r,   c                 $    U R                  5         g rP   )r  rE   s    r-   do_SCPDFPageInterpreter.do_SCz      r,   c                 $    U R                  5         g rP   )r  rE   s    r-   do_scPDFPageInterpreter.do_sc~  r  r,   c                     g rP   r%   rA  s     r-   do_shPDFPageInterpreter.do_sh  r  r,   c                 8    U R                   R                  5         g rP   )r  rD   rE   s    r-   do_BTPDFPageInterpreter.do_BT  s    r,   c                     g rP   r%   rE   s    r-   do_ETPDFPageInterpreter.do_ET  r  r,   c                     g rP   r%   rE   s    r-   do_BXPDFPageInterpreter.do_BX  r  r,   c                     g rP   r%   rE   s    r-   do_EXPDFPageInterpreter.do_EX  r  r,   c                 :    U R                   R                  U5        g rP   r   do_tagrF   tags     r-   do_MPPDFPageInterpreter.do_MP  s    3r,   c                 :    U R                   R                  X5        g rP   r  rF   r  propss      r-   do_DPPDFPageInterpreter.do_DP  s    3&r,   c                 :    U R                   R                  U5        g rP   r   	begin_tagr  s     r-   do_BMCPDFPageInterpreter.do_BMC  s    c"r,   c                 :    U R                   R                  X5        g rP   r  r  s      r-   do_BDCPDFPageInterpreter.do_BDC  s    c)r,   c                 8    U R                   R                  5         g rP   )r   end_tagrE   s    r-   do_EMCPDFPageInterpreter.do_EMC  s    r,   c                 $    XR                   l        g rP   )r  r>   rF   spaces     r-   do_TcPDFPageInterpreter.do_Tc      #( r,   c                 $    XR                   l        g rP   )r  r?   r  s     r-   do_TwPDFPageInterpreter.do_Tw  r  r,   c                 $    XR                   l        g rP   )r  r@   )rF   scales     r-   do_TzPDFPageInterpreter.do_Tz  s    !&r,   c                 (    U* U R                   l        g rP   )r  rA   )rF   rA   s     r-   do_TLPDFPageInterpreter.do_TL  s    ")r,   c                     U R                   [        U5         U R                  l        X R                  l	        g ! [         aG    [
        (       a  [        SU-  5      eU R                  R                  S 0 5      U R                  l         Naf = f)NzUndefined Font id: %r)
r   r   r  r<   r  r   r0   r   r   r=   )rF   r   r=   s      r-   do_TfPDFPageInterpreter.do_Tf  sw    	B"&,,|F/C"DDNN
 #+  	Bv)*AF*JKK"&,,"7"7b"ADNN	Bs   ': AB
Bc                 $    XR                   l        g rP   )r  rB   )rF   rB   s     r-   do_TrPDFPageInterpreter.do_Tr  s     &r,   c                 $    XR                   l        g rP   )r  rC   )rF   rC   s     r-   do_TsPDFPageInterpreter.do_Ts  s    "r,   c                     U R                   R                  u  p4pVpxX4XVX-  X%-  -   U-   X-  X&-  -   U-   4U R                   l        SU R                   l        g rV   r  rK   rL   	rF   txtyar  r   r   efs	            r-   do_TdPDFPageInterpreter.do_Td  sT    !^^22qQ!"qRT"$Yq["$rt)A+ F$*!r,   c                     U R                   R                  u  p4pVpxX4XVX-  X%-  -   U-   X-  X&-  -   U-   4U R                   l        X R                   l        SU R                   l        g rV   r  rK   rA   rL   r  s	            r-   do_TDPDFPageInterpreter.do_TD  s^    !^^22qQ!"qRT"$Yq["$rt)A+ F!#$*!r,   c                 N    XX4XV4U R                   l        SU R                   l        g rV   r  rF   r
  r  r   r   r  r  s          r-   do_TmPDFPageInterpreter.do_Tm  s$    !"qQ 2$*!r,   c                     U R                   R                  u  pp4pVXX4U R                   R                  U-  U-   U R                   R                  U-  U-   4U R                   l        SU R                   l        g rV   r  r  s          r-   do_T_aPDFPageInterpreter.do_T_a  sf    !^^22qQ!"qT^^-C-CA-Ea-GI_I_`aIabcIc d$*!r,   c                     U R                   R                  c  [        (       a  [        S5      eg U R                  R                  U R                   U5        g )NzNo font specified!)r  r<   r   r0   r   render_string)rF   seqs     r-   do_TJPDFPageInterpreter.do_TJ  sA    >>&v)*>??!!$..#6r,   c                 (    U R                  U/5        g rP   )r  rF   ss     r-   do_TjPDFPageInterpreter.do_Tj  s    

A3r,   c                 H    U R                  5         U R                  U/5        g rP   )r  r  r   s     r-   do__qPDFPageInterpreter.do__q  s    

A3r,   c                 l    U R                  U5        U R                  U5        U R                  U/5        g rP   )r  r  r  )rF   awacr!  s       r-   do__wPDFPageInterpreter.do__w	  s(    

2

2

A3r,   c                     g rP   r%   rE   s    r-   do_BIPDFPageInterpreter.do_BI  r  r,   c                     g rP   r%   rE   s    r-   do_IDPDFPageInterpreter.do_ID  r  r,   c                     SU;   aq  SU;   ak  [        [        U5      5      nU R                  R                  US[        5        U R                  R                  X!5        U R                  R                  U5        g )NWHr   r   r   r   )stridr   begin_figurer!   render_image
end_figure)rF   rR   iobjids      r-   do_EIPDFPageInterpreter.do_EI  sY    #:#*C\FKK$$V\?KKK$$V1KK""6*r,   c                    [        U5      n [        U R                  U   5      nU R                  (       a  [        R                  " SU-  5        UR                  S5      nU[        L a  SU;   a  U R                  5       n[        US   5      n[        UR                  S[        5      5      n[        UR                  S5      5      =(       d    U R                  R!                  5       nU R"                  R%                  XU5        UR'                  Xr/[)        X`R*                  5      S9  U R"                  R-                  U5        g U[.        L ad  SU;   a^  S	U;   aX  U R"                  R%                  US
[        5        U R"                  R1                  X5        U R"                  R-                  U5        g  g ! [         a    [        (       a  [        SU-  5      e g f = f)NzUndefined xobject id: %rzProcessing xobj: %rr   BBoxMatrix	Resourcesr   WidthHeightr5  )r   r   r   r  r   r0   r   r   r   r   LITERAL_FORMr   r   r!   r   r   rS   r   r8  render_contentsr    r   r:  LITERAL_IMAGEr9  )rF   r   xobjr   interpreterbboxrK   r   s           r-   do_DoPDFPageInterpreter.do_Do  s   f%	V 45D
 ::w||$9D$@A((9%l"v~((*Kd6l+D? CDF #488K#89RT^^=P=P=RIKK$$V6:''	6{6S[S[?\']KK""6* 	 %'T/h$>NKK$$V\?KKK$$V2KK""6* 	 1  	v)*Dv*MNN	s   F2 2#GGc                    U R                   (       a  [        R                  " SU-  5        UR                  u  p#pEUR                  S:X  a
  SSSSU* U4nO;UR                  S:X  a  SSSSXE4nO#UR                  S:X  a	  SSSSXR* 4nO
SSSSU* U* 4nU R
                  R                  X5        U R                  UR                  UR                  US9  U R
                  R                  U5        g )	NzProcessing page: %rZ   r   r      i  rB  )r   r   r   mediaboxrotater   
begin_pagerF  r   contentsend_page)rF   pagex0y0rR  rS  r   s          r-   process_pagePDFPageInterpreter.process_page=  s    ::w||$9D$@A==;;"b!QR(C[[Cq!R(C[[CaQC(CaAsRC(Ct)T^^T]]DT"r,   c                     U R                   (       a"  [        R                  " SU< SU< SU< 35        U R                  U5        U R	                  U5        U R                  [        U5      5        g )Nzrender_contents: resources=z
, streams=z, ctm=)r   r   r   r   r	  executer   )rF   r   r   r   s       r-   rF  "PDFPageInterpreter.render_contentsP  sO    ::LL#/ 0I&Z()r,   c                 ,    [        U5      n  UR                  5       u  p4[        U[        5      (       Ga+  [        U5      R                  S5      nSUR                  SS5      R                  SS5      R                  SS	5      -  n[        X5      (       a  [        X5      nUR                  R                  S-
  nU(       aU  U R                  U5      n	U R                  (       a  [        R                  " S
U< SU	< 35        [        U	5      U:X  a  U" U	6   O]U R                  (       a  [        R                  " SU-  5        U" 5         O+[         (       a  [#        SU-  5      eOU R%                  U5        GMh  ! [         a     g f = f! [         a     g f = f)Nr   asciizdo_%s*_a"_w'_qzexec:  zexec: %szUnknown operator: %r)r   r   
nextobjectr   r	   r   decodereplacehasattrgetattr__code__co_argcountr  r   r   r   r   r0   r   )
rF   r   parserr   rR   r   methodfuncnargsargss
             r-   r\  PDFPageInterpreter.executeY  s[   	%g.F !,,. #y))#C(//8 4<<T#:#B#B3#M#U#UVY[_#``4(("40D MM55a7E#xx::#MM4*FGt9- $K::#MM*t*;<v12H42OPP  		#3   		  , 	/s"   E6 F 6
FF
FF)r  r   r   r  r   r   r  r   r  r   r   r  r  r   N)Yr'   r(   r)   r*   r   rG   r   r   r	  r   r  r  r  r  r  r'  r*  r-  r0  r4  r8  r;  r>  rB  rJ  rO  rX  r[  r_  rd  rh  rn  rq  rv  do_Fry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r"  r%  r*  r-  r0  r<  rK  rY  r!   rF  r\  r+   r%   r,   r-   r   r   :  s   E
9
%R$K















 D
















<& 7F  r,   r   )2r   r   ior   cmapdbr   r   psparserr   r   r	   r   r   r   r   r   r   pdftypesr   r   r   r   r   r   r   pdffontr   r   r   r   r   pdfcolorr   r   utilsr   r    r!   r#   r0   rr   rs   r   rE  rG  r8   rY   rk   r   r   r%   r,   r-   <module>r|     s    	     !   " " #    "        " ! ! $ !  # +   "
	| 		, 	 %j6{6{6{G
) )\J J@N Nf]} ]D r,   