
    i#                     |   S SK r S SKrS SKrS SKJr  S SKJrJrJ	r	  S SK
Jr  S SKJrJr  S SKJrJr  S SKJrJrJrJr  S SKJr  S S	KJrJr  \" \" \S
5      5      rS rSS jr S r!SS jr"  SS jr#\	" S5      r$\	" S5      r%  SS jr&  SS jr'S r(\)S:X  a#  \ RT                  " \(" \ RV                  5      5        gg)    N)StringIO)	PSKeyword	PSLiteralLIT)	PDFParser)PDFDocumentPDFNoOutlines)PDFObjectNotFoundPDFValueError)	PDFStream	PDFObjRefresolve1stream_value)PDFPage)isnumberqz&<>"c                     [        5       nU  HJ  nUS:  d  SU::  d
  U[        ;   a  UR                  SU S35        M0  UR                  [        U5      5        ML     UR	                  5       $ )N       z&#;)r   ESCAPEwritechrgetvalue)databufbs      G/home/kodi/my-venv/lib/python3.13/site-packages/../../../bin/dumppdf.pyencoder      sX    
*Cr6SAXfII1#Qi IIc!f	 
 <<>    c                 F   Uc  U R                  S5        g [        U[        5      (       a  U R                  S[        U5      -  5        UR	                  5        HF  u  p4U R                  SU-  5        U R                  S5        [        X5        U R                  S5        MH     U R                  S5        g [        U[        5      (       aT  U R                  S[        U5      -  5        U H  n[        X5        U R                  S5        M!     U R                  S	5        g [        U[        5      (       a)  U R                  S
[        U5      [        U5      4-  5        g [        U[        5      (       a  US:X  a*  U R                  R                  UR                  5       5        g US:X  a*  U R                  R                  UR                  5       5        g U R                  S5        [        XR                  5        U R                  S5        US:X  a8  UR                  5       nU R                  S[        U5      [        U5      4-  5        U R                  S5        g [        U[        5      (       a  U R                  SUR                  -  5        g [        U[         5      (       a  U R                  SUR"                  -  5        g [        U[$        5      (       a  U R                  SUR"                  -  5        g ['        U5      (       a  U R                  SU-  5        g [)        U5      e)Nz<null />z<dict size="%d">
z<key>%s</key>
z<value>z	</value>
z</dict>z<list size="%d">

z</list>z<string size="%d">%s</string>rawbinaryz<stream>
<props>
z

</props>
textz<data size="%d">%s</data>
z	</stream>z<ref id="%d" />z<keyword>%s</keyword>z<literal>%s</literal>z<number>%s</number>)r   
isinstancedictlenitemsdumpxmllistbytesr   r   bufferget_rawdataget_dataattrsr   objidr   namer   r   	TypeError)outobjmodekvr   s         r   r*   r*       sf   
{		*#t		&S12YY[EQII'!+,IIi COIIl#	 !
 			)#t		&S12ACOIIdO  			)#u		1SXvc{4KKL#y!!5=JJS__./ 	 XJJS\\^, 	 II+,C#IIn%v~||~		73t9fTl:SSTIIk"#y!!		#cii/0#y!!		)CHH45#y!!		)CHH45}}		'#-.
C.r    c                     UR                    H:  nU R                  S5        [        XR                  5        U R                  S5        M<     g )Nz
<trailer>
z
</trailer>

)xrefsr   r*   trailer)r4   docxrefs      r   dumptrailersr>   ]   s:    				- \\"		$%  r    c                    [        5       nU R                  S5        UR                   Hx  nUR                  5        Ha  nXS;   a  M
  UR	                  U5         UR                  U5      nUc  M2  U R                  SU-  5        [        XUS9  U R                  S5        Mc     Mz     [        X5        U R                  S5        g ! [         a'  n[        SU< 3[        R                  S9   S nAM  S nAff = f)Nz<pdf>z<object id="%d">
r6   z
</object>

znot found: filez</pdf>)setr   r:   
get_objidsaddgetobjr*   r
   printsysstderrr>   )r4   r<   r6   visitedr=   r1   r5   es           r   dumpallobjsrL   e   s    eGIIg		__&EKK<jj';		.67t,		+, '  IIh
	 % <A5)

;;<s   C-/C
C2C--C2c           
        ^ [        US5       n[        U5      n	[        X5      m[        S [	        [
        R                  " T5      5       5       5      n
U4S jn TR                  5       nU R                  S5        U GH0  u  pnnnS nU(       a  U" U5      nXS   R                     nOU(       a~  UR                  5       n[        U[        5      (       aY  UR                  S5      nU(       aA  [        U5      S:X  a2  UR                  S5      (       a  U" US   5      nXS   R                     nU R                  S	U< S
[        [        5      < S35        Ub-  U R                  S5        [!        X5        U R                  S5        Ub  U R                  SU-  5        U R                  S5        GM3     U R                  S5        U	R%                  5         S S S 5        g ! ["         a     N%f = f! , (       d  f       g = f)Nrbc              3   B   #    U  H  u  pUR                   U4v   M     g 7fN)pageid).0pagenopages      r   	<genexpr>dumpoutline.<locals>.<genexpr>~   s#      @= 1>t{{F+=s   c                   > [        U [        5      (       a  [        TR                  U 5      5      n O9[        U [        5      (       a$  [        TR                  U R
                  5      5      n [        U [        5      (       a  U S   n U $ )ND)r&   strr   get_destr   r2   r'   )destr<   s    r   resolve_dest!dumpoutline.<locals>.resolve_dest   sb    $$$T 23D),,TYY 78$%%CyKr    z<outlines>
r   Sz/GoTorX   z<outline level="z	" title="z">
z<dest>z</dest>
z<pageno>%r</pageno>
z</outline>
z</outlines>
)openr   r   r'   	enumerater   create_pagesget_outlinesr   r1   resolver&   getreprr   sr*   r	   close)outfpfnameobjidspagenospassworddumpallr6   
extractdirfpparserpagesr\   outlinesleveltitler[   aserS   actionsubtyper<   s                        @r   dumpoutlinery   y   s   	eT	b2&+ @"7#7#7#<=@ @		'')HKK'+3'T!B'-D"7==1FYY[F!&$//"(**S/"tG}'?FJJsOO#/s#<D%*7==%9F5!A$OP#KK)E(KK,%KK 7& @AN+' ,4( KK( 	O 
P   		K 
	P s1   AG-E)GG-
G*'G-)G**G--
G;FilespecEmbeddedFilec                 v  ^^ UU4S jn[        US5       n	[        U	5      n
[        X5      mTR                   Hd  nUR	                  5        HM  nTR                  U5      n[        U[        5      (       d  M+  UR                  S5      [        L d  ME  U" U5        MO     Mf     S S S 5        g ! , (       d  f       g = f)Nc                   > [         R                  R                  U S   =(       d    U S   5      nU S   S   nTR                  UR                  5      n[        U[        5      (       d  [        SU-  5      eUR                  S5      [        La  [        SU-  5      e[         R                  R                  TU5      n[         R                  R                  U5      (       a  [        SU-  5      e[        SU< 3[        R                  S	9  [!        US
5       nUR#                  UR%                  5       5        S S S 5        g ! , (       d  f       g = f)NUFFEFz:unable to process PDF: reference for %r is not a PDFStreamTypez>unable to process PDF: reference for %r is not an EmbeddedFilezfile exists: %rzextracting: rA   wb)ospathbasenamerF   r1   r&   r   r   rd   LITERAL_EMBEDDEDFILEjoinexistsIOErrorrG   rH   rI   r_   r   r/   )r5   filenamefilereffileobjr   r4   r<   rn   s         r   extract1!extractembedded.<locals>.extract1   s   77##CI$9S:d)C.**W]]+'9--L  ;;v&::P  ww||J177>>$+d233TH%CJJ7$IIg&&()  s    D??
ErN   r   )
r_   r   r   r:   rD   rF   r&   r'   rd   LITERAL_FILESPEC)rh   ri   rj   rk   rl   rm   r6   rn   r   ro   rp   r=   r1   r5   r<   s          `      @r   extractembeddedr      s    ( 
eT	b2&+IID*jj'c4((SWWV_@P-PSM +  
  
	 s   AB*7B*B**
B8c           	      R   [        US5       n[        U5      n	[        X5      n
U(       a$  U H  nU
R                  U5      n[	        XUS9  M      U(       aq  [        [        R                  " U
5      5       HN  u  pX;   d  M  Ub*  UR                   H  n[        U5      n[	        XUS9  M     M9  [	        XR                  5        MP     U(       a
  [        X
US9  U(       d  U(       d  U(       d  [        X
5        US;  a  U R                  S5        S S S 5        g ! , (       d  f       g = f)NrN   r@   )r#   r$   r"   )r_   r   r   rF   r*   r`   r   ra   contentsr   r0   rL   r>   r   )rh   ri   rj   rk   rl   rm   r6   rn   ro   rp   r<   r1   r5   rS   rT   s                  r   dumppdfr      s    	eT	b2&+jj'.   !*7+?+?+D!E$'#'==C".s"3C#ET: $1  zz2 "F .7$''KK+ 
, - 
	, s   A0DBD
D&c                   ^  SS K nU 4S jn UR                  T SS  S5      u  p4U(       d  U" 5       $ Sn/ n[        5       nS nSn	Sn
[        n[        R
                  nS nU H  u  pUS:X  a  US-  nM  US:X  a  UR                  S	5      n	M+  US
:X  a  Sn
M5  US:X  a)  UR                  S UR                  S5       5       5        Md  US:X  a)  UR                  S UR                  S5       5       5        M  US:X  a  [        US5      nM  US:X  a  SnM  US:X  a  SnM  US:X  a  SnM  US:X  a  [        nM  US:X  d  M  Un[        nM     U[        l        U[        l        U H  nU" UUXgU	XUS9  M     g ! UR                   a
    U" 5       s $ f = f)Nr   c                  *   > [        ST S    S35        g)Nzusage: r   zi [-P password] [-a] [-p pageid] [-i objid] [-o output] [-r|-b|-t] [-T] [-O output_dir] [-d] input.pdf ...d   )rG   )argvs   r   usagemain.<locals>.usage   s%    Qy !D D 	Er       zdP:ap:i:o:rbtTO:r    Fz-dz-Pasciiz-aTz-pc              3   >   #    U  H  n[        U5      S -
  v   M     g7f)r   NintrR   xs     r   rU   main.<locals>.<genexpr>   s     &H,QAq,s   ,z-ic              3   8   #    U  H  n[        U5      v   M     g 7frP   r   r   s     r   rU   r      s     %E|!s1vv|s   z-or   z-rr#   z-br$   z-tr%   z-Tz-O)rl   rm   r6   rn   )getoptGetoptErrorrC   r   rH   stdoutr   updatesplitextendr_   ry   r   r   debugr   )r   r   r   optsargsr   rj   rk   r6   rl   rm   procrh   rn   r7   r8   ri   s   `                r   mainr      s   }}T!"X/AB EFeGDHGDJJEJ9eqje$Y188G#4$Y$$Y&H!''#,&HH$Y%Eqwws|%EE$YQ$Yu$Yx$Yv$Y{$YJ"D  KIOUE6XJ	@  C  ws   E2 2FF__main__rP   )r    FNN),rH   os.pathr   reior   pdfminer.psparserr   r   r   pdfminer.pdfparserr   pdfminer.pdfdocumentr   r	   pdfminer.pdftypesr
   r   r   r   r   r   pdfminer.pdfpager   pdfminer.utilsr   r   rC   mapordr   r   r*   r>   rL   ry   r   r   r   r   r   __name__exitr    r    r   <module>r      s       7 7 ( ; > J J $ & 
Sf	:z( 9<59*Z z? >* <?9=B 58158)V z388DN3r    