
    HAi@>                        S r SSKrSSKrSSKrSSKJrJrJrJrJ	r	J
r
JrJr  SSKJrJr  SSKJr  SSKJ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rSr Sr!Sr"Sr#Sr$Sr%\RL                  " S\RN                  5      r(\" S5      r)S\)S\)4S jr*S\+S\R                  4S jr,\*4S\SSS\+S\\/\4   S\
\	\+      4
S jjr-S\+S \+S\S/\
\	\+      4   4S! jr.\*4S\+S \+S\\/\4   S\S/\
\	\      4   4S" jjr/S\+S \+S\S/\
\\\4      4   4S# jr0\*4S\+S \+S\\+/\4   S\S/\
\   4   4S$ jjr1 " S% S\\5      r2g)&z~
Anything related to Extensible Metadata Platform (XMP) metadata.

https://en.wikipedia.org/wiki/Extensible_Metadata_Platform
    N)AnyCallableDictIteratorListOptionalTypeVarUnion)DocumentparseString)Element)
ExpatError   )XmpInformationProtocol)
StreamTypedeprecate_no_replacementdeprecate_with_replacement)PdfReadError)ContentStream	PdfObjectz+http://www.w3.org/1999/02/22-rdf-syntax-ns#z http://purl.org/dc/elements/1.1/zhttp://ns.adobe.com/xap/1.0/zhttp://ns.adobe.com/pdf/1.3/zhttp://ns.adobe.com/xap/1.0/mm/zhttp://ns.adobe.com/pdfx/1.3/zhttp://www.aiim.org/pdfa/ns/id/a{  
        (?P<year>[0-9]{4})
        (-
            (?P<month>[0-9]{2})
            (-
                (?P<day>[0-9]+)
                (T
                    (?P<hour>[0-9]{2}):
                    (?P<minute>[0-9]{2})
                    (:(?P<second>[0-9]{2}(.[0-9]+)?))?
                    (?P<tzd>Z|[-+][0-9]{2}:[0-9]{2})
                )?
            )?
        )?
        Kvaluereturnc                     U $ N )r   s    E/var/www/html/land-ocr/venv/lib/python3.13/site-packages/pypdf/xmp.py	_identityr   Q   s    L    c           	      f   [         R                  U 5      nUc  [        SU  35      e[        UR	                  S5      5      n[        UR	                  S5      =(       d    S5      n[        UR	                  S5      =(       d    S5      n[        UR	                  S5      =(       d    S5      n[        UR	                  S5      =(       d    S5      n[
        R                  " UR	                  S	5      =(       d    S5      nUR                  [
        R                  5      nXx-
  S
-  n	[        U5      n
[        U	5      nUR	                  S5      =(       d    Sn[        R                  " X#XEXjU5      nUS:w  aA  S UR                  S5       5       u  pUS-  nUS:  a  US-  nU[        R                  " XS9-   nU$ )NzInvalid date format: yearmonth1dayhour0minutesecondi@B tzdZc              3   8   #    U  H  n[        U5      v   M     g 7fr   )int).0xs     r   	<genexpr>"_converter_date.<locals>.<genexpr>h   s     !A.Q#a&&.s   :r   )hoursminutes)iso8601match
ValueErrorr,   groupdecimalDecimalto_integralROUND_FLOORdatetimesplit	timedelta)r   matchesr!   r"   r$   r%   r'   r(   seconds_decmilliseconds_decsecondsmillisecondsr)   dt	tzd_hourstzd_minutess                   r   _converter_daterH   U   si   mmE"G0899w}}V$%Dg&-#.E
gmmE")c
*Cw}}V$+,Dx(/C0F__W]]84;<F$$W%8%89K,	9+G'(L
--

%#C			46L	QB
cz!A#))C.!A	R	q=2K($$9JJIr   elementselfXmpInformation	list_type	converterc                     U R                  [        U5      n/ n[        U5      (       aR  U HJ  nUR                  [        S5       H-  nUR                  U5      nU" U5      nUR	                  U5        M/     ML     U$ g )Nli)getElementsByTagNameNSRDF_NAMESPACElen	_get_textappend)	rI   rJ   rL   rM   
containersretval	containeritemr   s	            r   _generic_getrY   p   st     //yIJF
:#I!88Mt,!%(e$ N $
 r   	namespacenamec                 H   ^ ^ SSS[         [        [              4UU 4S jjnU$ )NrJ   rK   r   c                 l  > U R                   R                  T0 5      R                  T5      nU(       a  U$ / nU R                  STT5       HE  n[        X0SS9=nb  UR	                  U5        M#  U R                  U5      nUR                  U5        MG     U R                   R                  T0 5      nX&T'   U$ )N BagrL   cachegetget_elementrY   extendrS   rT   
setdefault)	rJ   cachedrV   rI   bagsr   ns_cacher[   rZ   s	          r   rc   _getter_bag.<locals>.get   s    	2.2248M''It<G$WeDDQd#w/e$ = ::((B7r   )r   r   strrZ   r[   rc   s   `` r   _getter_bagrm      s,    " xS	':   Jr   c                 L   ^ ^^ SSS[         [        [              4UUU 4S jjnU$ )NrJ   rK   r   c                   > U R                   R                  T
0 5      R                  T	5      nU(       a  U$ / nU R                  ST
T	5       Hl  n[        X0STS9=nb  UR	                  U5        M$  [        X0SS9=nb  UR	                  U5        MD  T" U R                  U5      5      nUR                  U5        Mn     U R                   R                  T
0 5      nX'T	'   U$ )Nr^   Seq)rL   rM   r_   r`   ra   )rJ   rg   rV   rI   seqsrh   r   ri   rM   r[   rZ   s           r   rc   _getter_seq.<locals>.get   s    	2.2248M''It<G$WeyYYfd#&wFF$S d#!$.."9:e$ = ::((B7r   )r   r   r   rZ   r[   rM   rc   s   ``` r   _getter_seqrt      s,    " xS	':  0 Jr   c                 T   ^ ^ SSS[         [        [        [        4      4UU 4S jjnU$ )NrJ   rK   r   c                   > U R                   R                  T
0 5      R                  T	5      nU(       a  U$ 0 nU R                  ST
T	5       H  nUR                  [        S5      n[        U5      (       aL  U HD  nUR                  [        S5       H'  nU R                  U5      nXrUR                  S5      '   M)     MF     Mu  U R                  U5      US'   M     U R                   R                  T
0 5      nX(T	'   U$ )Nr^   AltrO   zxml:langz	x-default)	rb   rc   rd   rP   rQ   rR   rS   getAttributerf   )rJ   rg   rV   rI   altsaltrX   r   ri   r[   rZ   s            r   rc   _getter_langalt.<locals>.get   s    	2.2248M''It<G11-GD4yyC # : :=$ O $t 4@Et00<= !P  
 '+nnW&={# = ::((B7r   )r   r   r   rl   s   `` r   _getter_langaltr|      s0    " xS#X'?  $ Jr   c                 >   ^ ^^ SSS[         [           4UUU 4S jjnU$ )NrJ   rK   r   c                 n  > U R                   R                  T0 5      R                  T5      nU(       a  U$ S nU R                  STT5       H;  nUR                  UR                  :X  a  UR
                  nOU R                  U5      n  O   Ub  T" U5      nU R                   R                  T0 5      nX$T'   U$ Nr^   )rb   rc   rd   nodeTypeATTRIBUTE_NODE	nodeValuerS   rf   )rJ   rg   r   rI   ri   rM   r[   rZ   s        r   rc   _getter_single.<locals>.get   s    	2.2248M''It<G7#9#99))w/ = e$E::((B7r   )r   r   rs   s   ``` r   _getter_singler      s'    " x}  " Jr   c            	       
   \ rS rSrSrS\SS4S jr S,S\S\S\	\
4   SS4S jjrS	\	S
\	S\	S\\   4S jrS	\	S
\	S\\   4S jrS\S\	4S jr\" \" \S5      5      r \" \" \S5      5      r \" \" \S5      5      r \" \" \S\5      5      r \" \" \S5      5      r \" \" \S5      5      r \" \" \S5      5      r \" \" \S5      5      r  \" \" \S5      5      r! \" \" \S5      5      r" \" \" \S5      5      r# \" \" \S5      5      r$ \" \" \S5      5      r% \" \" \S5      5      r& \" \" \S5      5      r' \" \" \(S5      5      r) \" \" \(S 5      5      r* \" \" \(S!5      5      r+ \" \" \,S"\5      5      r- \" \" \,S#\5      5      r. \" \" \,S$\5      5      r/ \" \" \,S%5      5      r0 \" \" \1S&5      5      r2 \" \" \1S'5      5      r3 \" \" \4S(5      5      r5 \" \" \4S)5      5      r6 \S\7\\4   4S* j5       r8S+r9g)-rK      z
An object that represents Extensible Metadata Platform (XMP) metadata.
Usually accessed by :py:attr:`xmp_metadata()<pypdf.PdfReader.xmp_metadata>`.

Raises:
  PdfReadError: if XML is invalid

streamr   Nc                     Xl          U R                   R                  5       n[        U5      nUR                  [        S5      S   U l        0 U l	        g ! [        [        4 a  n[        SU 35      eS nAff = f)Nz#XML in XmpInformation was invalid: RDFr   )
r   get_datar   AttributeErrorr   r   rP   rQ   rdf_rootrb   )rJ   r   datadoc_rootes        r   __init__XmpInformation.__init__   s    	J;;'')D!,T!2H %-$C$C5%

% &(
 
+ 	J!DQCHII	Js   %A A6#A11A6encryption_keyc                 r    [        SSS5        Ub  [        SS5        U R                  R                  U5        g )NzXmpInformation.write_to_streamzPdfWriter.xmp_metadataz6.0.0z/the encryption_key parameter of write_to_streamz5.0.0)r   r   r   write_to_stream)rJ   r   r   s      r   r   XmpInformation.write_to_stream   s>     	#,$	

 %$A7 	##F+r   	about_urirZ   r[   c              #      #    U R                   R                  [        S5       HP  nUR                  [        S5      U:X  d  M  UR	                  X#5      nUb  Uv   UR                  X#5       S h  vN   MR     g  N	7fNDescriptionabout)r   rP   rQ   getAttributeNSgetAttributeNodeNS)rJ   r   rZ   r[   descattrs         r   rd   XmpInformation.get_element  sk     MM88VD""=':iG..y?#J66yGGG W
 Hs   <A:,A:.A8/
A:c              #     #    U R                   R                  [        S5       H  nUR                  [        S5      U:X  d  M  [	        UR
                  R                  5       H=  nUR
                  R                  U5      nU(       d  M'  UR                  U:X  d  M9  Uv   M?     UR                   H  nUR                  U:X  d  M  Uv   M     M     g 7fr   )
r   rP   rQ   r   range
attributeslengthrX   namespaceURI
childNodes)rJ   r   rZ   r   ir   childs          r   get_nodes_in_namespace%XmpInformation.get_nodes_in_namespace  s     MM88VD""=':iGt556A??//2Dt 1 1Y >"
 7 "__E))Y6# - Ws   <CACC%CCrI   c                     SnUR                    H-  nUR                  UR                  :X  d  M  X#R                  -  nM/     U$ r   )r   r   	TEXT_NODEr   )rJ   rI   textr   s       r   rS   XmpInformation._get_text  s:    ''E~~0

" ( r   contributorcoveragecreatordatedescriptionformat
identifierlanguage	publisherrelationrightssourcesubjecttitletypeKeywords
PDFVersionProducer
CreateDate
ModifyDateMetadataDateCreatorTool
DocumentID
InstanceIDpartconformancec           
         [        U S5      (       d  0 U l        U R                  S[        5       H  nUR                  n UR                  S5      nUS:X  a  O+USU [        [        X#S-   US-    SS	95      -   X#S-   S -   nMC  UR                  UR                  :X  a  UR                  nOU R                  U5      nX@R                  U'   M     U R                  $ )
z
Retrieve custom metadata properties defined in the undocumented pdfx
metadata schema.

Returns:
    A dictionary of key/value items for custom metadata properties.

_custom_propertiesr^   u   ↂr2   Nr         )base)hasattrr   r   PDFX_NAMESPACE	localNamefindchrr,   r   r   r   rS   )rJ   nodekeyidxr   s        r   custom_properties XmpInformation.custom_properties  s     t122&(D#33BGnn((8,CbyDS	c#Aga"8rBCDAgi.)   ==D$7$77 NNE NN40E/4'',! H" &&&r   )r   rb   r   r   r   ):__name__
__module____qualname____firstlineno____doc__r   r   r   r
   rk   bytesr   r   r   rd   r   
XmlElementrS   propertyrm   DC_NAMESPACEdc_contributorr   dc_coveragert   
dc_creatorrH   dc_dater|   dc_description	dc_formatdc_identifierdc_languagedc_publisherdc_relation	dc_rights	dc_source
dc_subjectdc_titledc_typePDF_NAMESPACEpdf_keywordspdf_pdfversionpdf_producerXMP_NAMESPACExmp_create_datexmp_modify_datexmp_metadata_datexmp_creator_toolXMPMM_NAMESPACExmpmm_document_idxmpmm_instance_idPDFAID_NAMESPACEpdfaid_partpdfaid_conformancer   r   __static_attributes__r   r   r   rK   rK      s   
(} 
( 
( MQ, ,27c58H2I,	,HS HS H HQT H	$ 	$ 	$QT 	$   k,FGN >,
CDK>+lI>?J {<IJG olMJKN h?@I(^L,GHM,;|Z@AKKKkBCL0;|Z@AK x@AI" h?@IM+lI>?J- g>?HC{<89GJN=*EFLDn]LIJN7N=*EFL@}lODO }lODO !}noF  }m LMG !NOQ !NO >*:FCDKW!.1A="QRP'4S> ' 'r   )3r   r=   r9   retypingr   r   r   r   r   r   r	   r
   xml.dom.minidomr   r   r   r   xml.parsers.expatr   
_protocolsr   _utilsr   r   r   errorsr   genericr   r   rQ   r   r   r   r   r   r   compileVERBOSEr5   r   r   rk   rH   rY   rm   rt   r|   r   rK   r   r   r   <module>r	     s     		 	 	 2 1 ( . T T   -=1..3( 1 5 
** JJ!( CLQ 1 3 8#4#4 8 hq#3@CPXZ]Y^`cYcPdd3i (49"556, BK*2C5#:*> (49"556< (4S>"::;2 BK*2C5#:*> (3-/0.J'+Y J'r   