§
    �’jÊ~  ã                   óX  — d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	m
Z
mZmZmZmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
l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"m#Z# ddl$m%Z%m&Z& dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/e*de+de,de-de/de.diZ0 ej1        dej2        ¦  «        Z3 ed ¦  «        Z4d!e)› d"e*› d#e+› d$e,› d%e-› d&e/› d'e.› d(�Z5d)e4d*e4fd+„Z6d)e7d*ej        fd,„Z8d)ej        d*e7fd-„Z9e6fd.ed/d0d1e7d2e
e	ge	f         d*ee:e7                  f
d3„Z; G d4„ d5e¦  «        Z< G d6„ d0ee&¦  «        Z=dS )7z~
Anything related to Extensible Metadata Platform (XMP) metadata.

https://en.wikipedia.org/wiki/Extensible_Metadata_Platform
é    N)ÚIterator©Ú	hexdigits)ÚAnyÚCallableÚOptionalÚTypeVarÚUnionÚcast)ÚExpatBuilderNS)ÚDocument)ÚElement)ÚOptions)Ú
ExpatErrorÚXMLParserTypeé   )ÚXmpInformationProtocol)Ú
StreamTypeÚdeprecate_with_replacementÚdeprecation_no_replacement)ÚLimitReachedErrorÚPdfReadErrorÚXmpDocumentError)ÚContentStreamÚ	PdfObjecti@KL i † z+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/ÚdcÚxmpÚpdfÚxmpMMÚpdfaidÚpdfxa{  
        (?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})
                )?
            )?
        )?
        ÚKuƒ   <?xpacket begin="ï»¿" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="pypdf">
    <rdf:RDF xmlns:rdf="z?">
        <rdf:Description rdf:about=""
            xmlns:dc="z"
            xmlns:xmp="z"
            xmlns:pdf="z"
            xmlns:xmpMM="z"
            xmlns:pdfaid="z"
            xmlns:pdfx="zM">
        </rdf:Description>
    </rdf:RDF>
</x:xmpmeta>
<?xpacket end="r"?>ÚvalueÚreturnc                 ó   — | S ©N© ©r#   s    ú7C:\Projects\DSCons\.venv\Lib\site-packages\pypdf\xmp.pyÚ	_identityr*   p   s   € Ø€Ló    c           	      ó¦  — t                                | ¦  «        }|€t          d| › �¦  «        ‚t          |                     d¦  «        ¦  «        }t          |                     d¦  «        pd¦  «        }t          |                     d¦  «        pd¦  «        }t          |                     d¦  «        pd¦  «        }t          |                     d¦  «        pd¦  «        }t          j        |                     d	¦  «        pd¦  «        }|                     t
          j        ¦  «        }||z
  d
z  }	t          |¦  «        }
t          |	¦  «        }|                     d¦  «        pd}t          j	        ||||||
|¦  «        }|dk    rKd„ | 
                    d¦  «        D ¦   «         \  }}|dz  }|dk     r|dz  }|t          j        ||¬¦  «        z   }|S )NzInvalid date format: ÚyearÚmonthÚ1ÚdayÚhourÚ0ÚminuteÚsecondi@B ÚtzdÚZc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r&   )Úint)Ú.0Úxs     r)   ú	<genexpr>z"_converter_date.<locals>.<genexpr>‡   s(   è è € Ð!AÐ!A¨Q¥# a¡&¤&Ð!AÐ!AÐ!AÐ!AÐ!AÐ!Ar+   ú:éÿÿÿÿr   )ÚhoursÚminutes)Úiso8601ÚmatchÚ
ValueErrorr8   ÚgroupÚdecimalÚDecimalÚto_integralÚROUND_FLOORÚdatetimeÚsplitÚ	timedelta)r#   Úmatchesr-   r.   r0   r1   r3   r4   Úseconds_decÚmilliseconds_decÚsecondsÚmillisecondsr5   ÚdtÚ	tzd_hoursÚtzd_minutess                   r)   Ú_converter_daterS   t   s¹  € Ý�mŠm˜EÑ"Ô"€GØ€ÝÐ8°Ð8Ð8Ñ9Ô9Ð9Ýˆw�}Š}˜VÑ$Ô$Ñ%Ô%€DÝ�—’˜gÑ&Ô&Ð-¨#Ñ.Ô.€EÝ
ˆg�mŠm˜EÑ"Ô"Ð) cÑ
*Ô
*€CÝˆw�}Š}˜VÑ$Ô$Ð+¨Ñ,Ô,€DÝ�—’˜xÑ(Ô(Ð/¨CÑ0Ô0€FÝŒ_˜WŸ]š]¨8Ñ4Ô4Ð;¸Ñ<Ô<€FØ×$Ò$¥WÔ%8Ñ9Ô9€KØ Ñ,°	Ñ9Ðå�+ÑÔ€GÝÐ'Ñ(Ô(€Là
�-Š-˜Ñ
Ô
Ð
% #€CÝ	Ô	˜4 ¨¨T°6¸7ÀLÑ	QÔ	Q€BØ
ˆc‚z€zØ!AÐ!A°#·)²)¸C±.´.Ð!AÑ!AÔ!AÑˆ	�;Ø�R‰ˆ	Ø�qŠ=ˆ=Ø˜2ÑˆKØ•(Ô$¨9¸kÐJÑJÔJÑJˆØ€Ir+   c                 óÖ   — | j         �8|                      ¦   «         �$|                      t          j        j        ¦  «        } |                      d¬¦  «        } |                      d¦  «        S )z‰Format a datetime as UTC with trailing 'Z'.

    - If the input is timezone-aware, convert to UTC first.
    - If naive, assume UTC.
    N)Útzinfoz%Y-%m-%dT%H:%M:%S.%fZ)rU   Ú	utcoffsetÚ
astimezonerH   ÚtimezoneÚutcÚreplaceÚstrftimer(   s    r)   Ú_format_datetime_utcr\   �   sZ   € ð „|Ð E§O¢OÑ$5Ô$5Ð$AØ× Ò ¥Ô!2Ô!6Ñ7Ô7ˆà�MŠM ˆMÑ&Ô&€EØ�>Š>Ð1Ñ2Ô2Ð2r+   ÚelementÚselfÚXmpInformationÚ	list_typeÚ	converterc                 ó  — |                       t          |¦  «        }g }t          |¦  «        rZ|D ]U}|                      t          d¦  «        D ]7}|                     |¦  «        } ||¦  «        }|                     |¦  «         Œ8ŒV|S d S )NÚli)ÚgetElementsByTagNameNSÚRDF_NAMESPACEÚlenÚ	_get_textÚappend)	r]   r^   r`   ra   Ú
containersÚretvalÚ	containerÚitemr#   s	            r)   Ú_generic_getrm   œ   s    € ð ×/Ò/µ¸yÑIÔI€JØ€FÝ
ˆ:�„ð Ø#ð 	%ð 	%ˆIØ!×8Ò8½ÈÑMÔMð %ð %�ØŸš tÑ,Ô,�Ø!˜	 %Ñ(Ô(�Ø—’˜eÑ$Ô$Ð$Ð$ð%ð ˆØˆ4r+   c                   óÊ   ‡ — e Zd ZdZddee         ddfˆ fd„Zdededee         d	ee         d
edee         dee         ddfd„Z	dede
e         ddfˆ fd„Zdeddfˆ fd„Zˆ xZS )Ú_XmpBuilderac  
    Custom XML parser denying all entity declarations.

    This is a stripped down and typed version inspired by what *defusedxml* does.

    Why do we need this? The default limits of *libexpat* used by Python only block exponential entity expansion,
    but not cases like quadratic entity expansion which can still cause quite some memory usage.
    NÚoptionsr$   c                 óZ   •— t          ¦   «                              |¬¦  «         d| _        d S )N)rp   r   )ÚsuperÚ__init__Ú_element_count)r^   rp   Ú	__class__s     €r)   rs   z_XmpBuilder.__init__µ   s,   ø€ Ý‰Œ×Ò ÐÑ)Ô)Ð)ØˆÔÐÐr+   Úentity_nameÚis_parameter_entityr#   ÚbaseÚ	system_idÚ	public_idÚnotation_namec                 ó&   — t          d|›�¦  «        ‚)NzForbidden entities: )r   )r^   rv   rw   r#   rx   ry   rz   r{   s           r)   Ú!custom_entity_declaration_handlerz-_XmpBuilder.custom_entity_declaration_handler¹   s   € õ Ð?°Ð?Ð?Ñ@Ô@Ð@r+   ÚnameÚ
attributesc                 ó¾   •— | xj         dz  c_         | j         t          k    rt          dt          › d�¦  «        ‚t          ¦   «                              ||¬¦  «         d S )Nr   zXMP metadata exceeds limit of z
 elements.)r~   r   )rt   ÚXMP_MAX_ELEMENT_COUNTr   rr   Ústart_element_handler)r^   r~   r   ru   s      €r)   r‚   z!_XmpBuilder.start_element_handlerÅ   sd   ø€ ØÐÔ˜qÑ ÐÔØÔÕ!6Ò6Ð6Ý#Ð$fÕEZÐ$fÐ$fÐ$fÑgÔgÐgÝ‰Œ×%Ò%¨4¸JÐ%ÑGÔGÐGÐGÐGr+   Úparserc                 óz   •— t          ¦   «                              |¦  «         | j        |_        | j        |_        d S r&   )rr   Úinstallr}   ÚEntityDeclHandlerr‚   ÚStartElementHandler)r^   rƒ   ru   s     €r)   r…   z_XmpBuilder.installË   s5   ø€ Ý‰Œ�Š˜ÑÔÐà#'Ô#IˆÔ Ø%)Ô%?ˆÔ"Ð"Ð"r+   r&   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   rs   ÚstrÚboolr}   Úlistr‚   r   r…   Ú__classcell__)ru   s   @r)   ro   ro   «   sU  ø€ € € € € ðð ð ð   ¨Ô 1ð  ¸Tð  ð  ð  ð  ð  ð  ð
Aàð
Að "&ð
Að ˜C”=ð	
Að
 ˜3”-ð
Að ð
Að   ”}ð
Að $ Cœ=ð
Að 
ð
Að 
Að 
Að 
AðH¨#ð H¸4À¼9ð HÈð Hð Hð Hð Hð Hð Hð@˜mð @°ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @r+   ro   c                   óÂ  — e Zd ZdZdeddfd„ZedUd„¦   «         Z	 dVdede	e
edf         ddfd„Zd	e
d
e
de
dee         fd„Zd	e
d
e
dee         fd„Zdede
fd„Zefd
e
de
dee
gef         dee         fd„Zd
e
de
deee
                  fd„Zefd
e
de
deegef         deee                  fd„Zd
e
de
deeeef                  fd„Zedeee
                  fd„¦   «         Zej        deee
                  ddfd„¦   «         Zedee
         fd„¦   «         Zej        dee
         ddfd„¦   «         Zedeee
                  fd„¦   «         Z e j        deee
                  ddfd„¦   «         Z edeee!j!                          fd„¦   «         Z"e"j        deee	e
e!j!        f                           ddfd„¦   «         Z"edeee
e
f                  fd„¦   «         Z#e#j        deee
e
f                  ddfd „¦   «         Z#edee
         fd!„¦   «         Z$e$j        dee
         ddfd"„¦   «         Z$edee
         fd#„¦   «         Z%e%j        dee
         ddfd$„¦   «         Z%edeee
                  fd%„¦   «         Z&e&j        deee
                  ddfd&„¦   «         Z&edeee
                  fd'„¦   «         Z'e'j        deee
                  ddfd(„¦   «         Z'edeee
                  fd)„¦   «         Z(e(j        deee
                  ddfd*„¦   «         Z(edeee
e
f                  fd+„¦   «         Z)e)j        deee
e
f                  ddfd,„¦   «         Z)edee
         fd-„¦   «         Z*e*j        dee
         ddfd.„¦   «         Z*edeee
                  fd/„¦   «         Z+e+j        deee
                  ddfd0„¦   «         Z+edeee
e
f                  fd1„¦   «         Z,e,j        deee
e
f                  ddfd2„¦   «         Z,edeee
                  fd3„¦   «         Z-e-j        deee
                  ddfd4„¦   «         Z-edee
         fd5„¦   «         Z.e.j        dee
         ddfd6„¦   «         Z.edee
         fd7„¦   «         Z/e/j        dee
         ddfd8„¦   «         Z/edee
         fd9„¦   «         Z0e0j        dee
         ddfd:„¦   «         Z0edee!j!                 fd;„¦   «         Z1e1j        dee!j!                 ddfd<„¦   «         Z1edee!j!                 fd=„¦   «         Z2e2j        dee!j!                 ddfd>„¦   «         Z2edee!j!                 fd?„¦   «         Z3e3j        dee!j!                 ddfd@„¦   «         Z3edee
         fdA„¦   «         Z4e4j        dee
         ddfdB„¦   «         Z4edee
         fdC„¦   «         Z5e5j        dee
         ddfdD„¦   «         Z5edee
         fdE„¦   «         Z6e6j        dee
         ddfdF„¦   «         Z6edee
         fdG„¦   «         Z7e7j        dee
         ddfdH„¦   «         Z7edee
         fdI„¦   «         Z8e8j        dee
         ddfdJ„¦   «         Z8edeeef         fdK„¦   «         Z9dWd	e
defdM„Z:d
e
de
ddfdN„Z;d
e
de
dee
         ddfdO„Z<d
e
de
deee
                  ddfdP„Z=d
e
de
deee
                  ddfdQ„Z>d
e
de
deee
e
f                  ddfdR„Z?d
e
de
fdS„Z@dXdT„ZAdS )Yr_   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                 óÌ  — || _         	 | j                              ¦   «         }t          |¦  «        x}t          k    rt	          d|› dt          › d�¦  «        ‚t          ¦   «                              |¦  «        }n+# t          t          f$ r}t          d|› �¦  «        ‚d }~ww xY w| 
                    t          d¦  «        }|st          d¦  «        ‚|d         | _        i | _        d S )NzXMP stream size z exceeds limit of ú.z#XML in XmpInformation was invalid: ÚRDFz?XML in XmpInformation was invalid: Missing rdf:RDF root elementr   )r‘   Úget_datarf   ÚXMP_MAX_INPUT_LENGTHr   ro   ÚparseStringÚAttributeErrorr   r   rd   re   Úrdf_rootÚcache)r^   r‘   ÚdataÚlengthÚdoc_rootÚeÚ	rdf_rootss          r)   rs   zXmpInformation.__init__Ü   sþ   € ØˆŒð	JØ”;×'Ò'Ñ)Ô)ˆDÝ˜d™)œ)Ð#�Õ';Ò;Ð;Ý'Ð(l¸6Ð(lÐ(lÕUiÐ(lÐ(lÐ(lÑmÔmÐmÝ!,¡¤×!:Ò!:¸4Ñ!@Ô!@ˆHˆHøÝ¥
Ð+ð 	Jð 	Jð 	JÝÐHÀQÐHÐHÑIÔIÐIøøøøð	Jøøøà×3Ò3µMÀ5ÑIÔIˆ	Øð 	ÝØQñô ð ð %.¨a¤LˆŒØ%'ˆŒ
ˆ
ˆ
s   ‰A/A9 Á9B!Â
BÂB!c                 ó’   — t          dd¦  «        }|                     t                               d¦  «        ¦  «          | |¦  «        S )z¤
        Create a new XmpInformation object with minimal structure.

        Returns:
            A new XmpInformation instance with empty metadata fields.
        Núutf-8)r   Úset_dataÚ_MINIMAL_XMPÚencode)Úclsr‘   s     r)   ÚcreatezXmpInformation.createí   sA   € õ ˜t TÑ*Ô*ˆØ�Š�×+Ò+¨GÑ4Ô4Ñ5Ô5Ð5Øˆs�6‰{Œ{Ðr+   Úencryption_keyc                 ó€   — t          ddd¦  «         |�t          dd¦  «         | j                             |¦  «         d S )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)r^   r‘   r§   s      r)   r©   zXmpInformation.write_to_streamù   s\   € õ 	#Ø,Ø$Øñ	
ô 	
ð 	
ð
 Ð%Ý&ØAÀ7ñô ð ð 	Œ×#Ò# FÑ+Ô+Ð+Ð+Ð+r+   Ú	about_uriÚ	namespacer~   c              #   óþ   K  — | j                              t          d¦  «        D ]Y}|                     t          d¦  «        |k    r8|                     ||¦  «        }|�|V — |                     ||¦  «        E d {V —† ŒZd S ©NÚDescriptionÚabout)r™   rd   re   ÚgetAttributeNSÚgetAttributeNodeNS)r^   rª   r«   r~   ÚdescÚattrs         r)   Úget_elementzXmpInformation.get_element  s�   è è € Ø”M×8Ò8½ÈÑVÔVð 	Hð 	HˆDØ×"Ò"¥=°'Ñ:Ô:¸iÒGÐGØ×.Ò.¨y¸$Ñ?Ô?�ØÐ#Ø�J�J�JØ×6Ò6°yÀ$ÑGÔGÐGÐGÐGÐGÐGÐGÐGøð	Hð 	Hr+   c              #   óN  K  — | j                              t          d¦  «        D ]�}|                     t          d¦  «        |k    r`t	          |j        j        ¦  «        D ]-}|j                             |¦  «        }|r|j        |k    r|V — Œ.|j	        D ]}|j        |k    r|V — ŒŒ‚d S r­   )
r™   rd   re   r°   Úranger   rœ   rl   ÚnamespaceURIÚ
childNodes)r^   rª   r«   r²   Úir³   Úchilds          r)   Úget_nodes_in_namespacez%XmpInformation.get_nodes_in_namespace  sÆ   è è € Ø”M×8Ò8½ÈÑVÔVð 	$ð 	$ˆDØ×"Ò"¥=°'Ñ:Ô:¸iÒGÐGÝ˜tœÔ5Ñ6Ô6ð #ð #�AØœ?×/Ò/°Ñ2Ô2�DØð # Ô 1°YÒ >Ð >Ø"˜
˜
˜
øØ!œ_ð $ð $�EØÔ)¨YÒ6Ð6Ø#˜˜˜øøð	$ð 	$r+   r]   c                 óR   — d}|j         D ]}|j        |j        k    r
||j        z  }Œ|S ©NÚ )r¸   ÚnodeTypeÚ	TEXT_NODEr›   )r^   r]   Útextrº   s       r)   rg   zXmpInformation._get_text  s:   € ØˆØÔ'ð 	#ð 	#ˆEØŒ~ ¤Ò0Ð0Ø˜œ
Ñ"�øØˆr+   ra   c                 óV  — | j                              |i ¦  «                             |¦  «        }|r|S d }|                      d||¦  «        D ]/}|j        |j        k    r|j        }n|                      |¦  «        } |� ||¦  «        }| j                              |i ¦  «        }|||<   |S r½   )rš   Úgetr´   r¿   ÚATTRIBUTE_NODEÚ	nodeValuerg   Ú
setdefault)r^   r«   r~   ra   Úcachedr#   r]   Úns_caches           r)   Ú_get_single_valuez XmpInformation._get_single_value!  sÃ   € ð ”—’ 	¨2Ñ.Ô.×2Ò2°4Ñ8Ô8ˆØð 	ØˆMØˆØ×'Ò'¨¨I°tÑ<Ô<ð 	ð 	ˆGØÔ 7Ô#9Ò9Ð9ØÔ)��àŸš wÑ/Ô/�ØØÐØ�I˜eÑ$Ô$ˆEØ”:×(Ò(¨°BÑ7Ô7ˆØˆ�‰Øˆr+   c                 óÆ  — | j                              |i ¦  «                             |¦  «        }|r t          t          t                   |¦  «        S g }|                      d||¦  «        D ]V}t          || d¬¦  «        x}�|                     |¦  «         Œ,|                      |¦  «        }| 	                    |¦  «         ŒW| j          
                    |i ¦  «        }|||<   |S )Nr¾   ÚBag©r`   )rš   rÃ   r   rŽ   rŒ   r´   rm   Úextendrg   rh   rÆ   )	r^   r«   r~   rÇ   rj   r]   Úbagsr#   rÈ   s	            r)   Ú_getter_bagzXmpInformation._getter_bag7  sá   € Ø”—’ 	¨2Ñ.Ô.×2Ò2°4Ñ8Ô8ˆØð 	+Ý��Sœ	 6Ñ*Ô*Ð*ØˆØ×'Ò'¨¨I°tÑ<Ô<ð 	%ð 	%ˆGÝ$ W¨d¸eÐDÑDÔDÐD�ÐQØ—’˜dÑ#Ô#Ð#Ð#àŸš wÑ/Ô/�Ø—’˜eÑ$Ô$Ð$Ð$Ø”:×(Ò(¨°BÑ7Ô7ˆØˆ�‰Øˆr+   c                 ó.  — | j                              |i ¦  «                             |¦  «        }|r t          t          t                   |¦  «        S g }|                      d||¦  «        D ]Š}t          || d|¬¦  «        x}�|                     |¦  «         Œ-t          || d¬¦  «        x}�|                     |¦  «         ŒW ||                      |¦  «        ¦  «        }	| 	                    |	¦  «         Œ‹| j          
                    |i ¦  «        }
||
|<   |S )Nr¾   ÚSeq)r`   ra   rË   rÌ   )rš   rÃ   r   rŽ   r   r´   rm   rÍ   rg   rh   rÆ   )r^   r«   r~   ra   rÇ   rj   r]   ÚseqsrÎ   r#   rÈ   s              r)   Ú_get_seq_valueszXmpInformation._get_seq_valuesF  s   € ð ”—’ 	¨2Ñ.Ô.×2Ò2°4Ñ8Ô8ˆØð 	+Ý��Sœ	 6Ñ*Ô*Ð*ØˆØ×'Ò'¨¨I°tÑ<Ô<ð 	%ð 	%ˆGÝ$ W¨d¸eÈyÐYÑYÔYÐY�ÐfØ—’˜dÑ#Ô#Ð#Ð#Ý& w°ÀÐFÑFÔFÐF�$ÐSð —’˜dÑ#Ô#Ð#Ð#à!˜	 $§.¢.°Ñ"9Ô"9Ñ:Ô:�Ø—’˜eÑ$Ô$Ð$Ð$Ø”:×(Ò(¨°BÑ7Ô7ˆØˆ�‰Øˆr+   c                 óR  — | j                              |i ¦  «                             |¦  «        }|r't          t          t          t          f         |¦  «        S i }|                      d||¦  «        D ]•}|                     t          d¦  «        }t          |¦  «        rQ|D ]M}|                     t          d¦  «        D ]/}|  	                    |¦  «        }	|	|| 
                    d¦  «        <   Œ0ŒNŒ}|  	                    |¦  «        |d<   Œ–| j                              |i ¦  «        }
||
|<   |S )Nr¾   ÚAltrc   úxml:langz	x-default)rš   rÃ   r   Údictr   r´   rd   re   rf   rg   ÚgetAttributerÆ   )r^   r«   r~   rÇ   rj   r]   ÚaltsÚaltrl   r#   rÈ   s              r)   Ú_get_langalt_valuesz"XmpInformation._get_langalt_valuesc  s8  € Ø”—’ 	¨2Ñ.Ô.×2Ò2°4Ñ8Ô8ˆØð 	0Ý��S¥#˜Xœ¨Ñ/Ô/Ð/Ø!#ˆØ×'Ò'¨¨I°tÑ<Ô<ð 	>ð 	>ˆGØ×1Ò1µ-ÀÑGÔGˆDÝ�4‰yŒyð >Øð Fð F�CØ #× :Ò :½=È$Ñ OÔ Oð Fð F˜Ø $§¢¨tÑ 4Ô 4˜Ø@E˜˜t×0Ò0°Ñ<Ô<Ñ=Ð=ðFðFð
 '+§n¢n°WÑ&=Ô&=��{Ñ#Ð#Ø”:×(Ò(¨°BÑ7Ô7ˆØˆ�‰Øˆr+   c                 ó8   — |                       t          d¦  «        S )z6Contributors to the resource (other than the authors).Úcontributor©rÏ   ÚDC_NAMESPACE©r^   s    r)   Údc_contributorzXmpInformation.dc_contributoru  s   € ð ×Ò¥¨mÑ<Ô<Ð<r+   Úvaluesc                 ó>   — |                       t          d|¦  «         d S )NrÝ   ©Ú_set_bag_valuesrß   ©r^   râ   s     r)   rá   zXmpInformation.dc_contributorz  s    € à×Ò�\¨=¸&ÑAÔAÐAÐAÐAr+   c                 ó8   — |                       t          d¦  «        S )z4Text describing the extent or scope of the resource.Úcoverage©rÉ   rß   rà   s    r)   Údc_coveragezXmpInformation.dc_coverage~  s   € ð ×%Ò%¥l°JÑ?Ô?Ð?r+   r#   c                 ó>   — |                       t          d|¦  «         d S )Nrè   ©Ú_set_single_valuerß   ©r^   r#   s     r)   rê   zXmpInformation.dc_coverageƒ  s    € à×Ò�|¨Z¸Ñ?Ô?Ð?Ð?Ð?r+   c                 ó8   — |                       t          d¦  «        S )zVA sorted array of names of the authors of the resource, listed in order of precedence.Úcreator)rÓ   rß   rà   s    r)   Ú
dc_creatorzXmpInformation.dc_creator‡  s   € ð ×#Ò#¥L°)Ñ<Ô<Ð<r+   c                 ó>   — |                       t          d|¦  «         d S )Nrð   )Ú_set_seq_valuesrß   ræ   s     r)   rñ   zXmpInformation.dc_creatorŒ  ó    € à×Ò�\¨9°fÑ=Ô=Ð=Ð=Ð=r+   c                 óD   — |                       t          dt          ¦  «        S )zXA sorted array of dates of significance to the resource. The dates and times are in UTC.Údate)rÓ   rß   rS   rà   s    r)   Údc_datezXmpInformation.dc_date�  s   € ð ×#Ò#¥L°&½/ÑJÔJÐJr+   c                 óJ  — |€|                       t          dd ¦  «         d S g }|D ]a}t          |t          j        ¦  «        r#|                     t          |¦  «        ¦  «         Œ?|                     t          |¦  «        ¦  «         Œb|                       t          d|¦  «         d S )Nrö   )ró   rß   Ú
isinstancerH   rh   r\   rŒ   )r^   râ   Údate_stringsr#   s       r)   r÷   zXmpInformation.dc_date•  s©   € àˆ>Ø× Ò ¥¨v°tÑ<Ô<Ð<Ð<Ð<àˆLØð 4ð 4�Ý˜e¥XÔ%6Ñ7Ô7ð 4Ø ×'Ò'Õ(<¸UÑ(CÔ(CÑDÔDÐDÐDà ×'Ò'­¨E©
¬
Ñ3Ô3Ð3Ð3Ø× Ò ¥¨v°|ÑDÔDÐDÐDÐDr+   c                 ó8   — |                       t          d¦  «        S )zSA language-keyed dictionary of textual descriptions of the content of the resource.Údescription©rÛ   rß   rà   s    r)   Údc_descriptionzXmpInformation.dc_description¢  s   € ð ×'Ò'­°mÑDÔDÐDr+   c                 ó>   — |                       t          d|¦  «         d S )Nrü   ©Ú_set_langalt_valuesrß   ræ   s     r)   rþ   zXmpInformation.dc_description§  s    € à× Ò ¥¨}¸fÑEÔEÐEÐEÐEr+   c                 ó8   — |                       t          d¦  «        S )zThe mime-type of the resource.Úformatré   rà   s    r)   Ú	dc_formatzXmpInformation.dc_format«  ó   € ð ×%Ò%¥l°HÑ=Ô=Ð=r+   c                 ó>   — |                       t          d|¦  «         d S )Nr  rì   rî   s     r)   r  zXmpInformation.dc_format°  ó    € à×Ò�|¨X°uÑ=Ô=Ð=Ð=Ð=r+   c                 ó8   — |                       t          d¦  «        S )z"Unique identifier of the resource.Ú
identifierré   rà   s    r)   Údc_identifierzXmpInformation.dc_identifier´  s   € ð ×%Ò%¥l°LÑAÔAÐAr+   c                 ó>   — |                       t          d|¦  «         d S )Nr	  rì   rî   s     r)   r
  zXmpInformation.dc_identifier¹  s    € à×Ò�|¨\¸5ÑAÔAÐAÐAÐAr+   c                 ó8   — |                       t          d¦  «        S )zAAn unordered array specifying the languages used in the resource.ÚlanguagerÞ   rà   s    r)   Údc_languagezXmpInformation.dc_language½  ó   € ð ×Ò¥¨jÑ9Ô9Ð9r+   c                 ó>   — |                       t          d|¦  «         d S )Nr  rä   ræ   s     r)   r  zXmpInformation.dc_languageÂ  ó    € à×Ò�\¨:°vÑ>Ô>Ð>Ð>Ð>r+   c                 ó8   — |                       t          d¦  «        S )z&An unordered array of publisher names.Ú	publisherrÞ   rà   s    r)   Údc_publisherzXmpInformation.dc_publisherÆ  s   € ð ×Ò¥¨kÑ:Ô:Ð:r+   c                 ó>   — |                       t          d|¦  «         d S )Nr  rä   ræ   s     r)   r  zXmpInformation.dc_publisherË  s    € à×Ò�\¨;¸Ñ?Ô?Ð?Ð?Ð?r+   c                 ó8   — |                       t          d¦  «        S )zLAn unordered array of text descriptions of relationships to other documents.ÚrelationrÞ   rà   s    r)   Údc_relationzXmpInformation.dc_relationÏ  r  r+   c                 ó>   — |                       t          d|¦  «         d S )Nr  rä   ræ   s     r)   r  zXmpInformation.dc_relationÔ  r  r+   c                 ó8   — |                       t          d¦  «        S )z`A language-keyed dictionary of textual descriptions of the rights the user has to this resource.Úrightsrý   rà   s    r)   Ú	dc_rightszXmpInformation.dc_rightsØ  s   € ð ×'Ò'­°hÑ?Ô?Ð?r+   c                 ó>   — |                       t          d|¦  «         d S )Nr  r   ræ   s     r)   r  zXmpInformation.dc_rightsÝ  s    € à× Ò ¥¨x¸Ñ@Ô@Ð@Ð@Ð@r+   c                 ó8   — |                       t          d¦  «        S )zCUnique identifier of the work from which this resource was derived.Úsourceré   rà   s    r)   Ú	dc_sourcezXmpInformation.dc_sourceá  r  r+   c                 ó>   — |                       t          d|¦  «         d S )Nr  rì   rî   s     r)   r   zXmpInformation.dc_sourceæ  r  r+   c                 ó8   — |                       t          d¦  «        S )z\An unordered array of descriptive phrases or keywords that specify the topic of the content.ÚsubjectrÞ   rà   s    r)   Ú
dc_subjectzXmpInformation.dc_subjectê  s   € ð ×Ò¥¨iÑ8Ô8Ð8r+   c                 ó>   — |                       t          d|¦  «         d S )Nr#  rä   ræ   s     r)   r$  zXmpInformation.dc_subjectï  rô   r+   c                 ó8   — |                       t          d¦  «        S )z9A language-keyed dictionary of the title of the resource.Útitlerý   rà   s    r)   Údc_titlezXmpInformation.dc_titleó  s   € ð ×'Ò'­°gÑ>Ô>Ð>r+   c                 ó>   — |                       t          d|¦  «         d S )Nr'  r   ræ   s     r)   r(  zXmpInformation.dc_titleø  s    € à× Ò ¥¨w¸Ñ?Ô?Ð?Ð?Ð?r+   c                 ó8   — |                       t          d¦  «        S )z@An unordered array of textual descriptions of the document type.ÚtyperÞ   rà   s    r)   Údc_typezXmpInformation.dc_typeü  s   € ð ×Ò¥¨fÑ5Ô5Ð5r+   c                 ó>   — |                       t          d|¦  «         d S )Nr+  rä   ræ   s     r)   r,  zXmpInformation.dc_type  s    € à×Ò�\¨6°6Ñ:Ô:Ð:Ð:Ð:r+   c                 ó8   — |                       t          d¦  «        S )z:An unformatted text string representing document keywords.ÚKeywords©rÉ   ÚPDF_NAMESPACErà   s    r)   Úpdf_keywordszXmpInformation.pdf_keywords  ó   € ð ×%Ò%¥m°ZÑ@Ô@Ð@r+   c                 ó>   — |                       t          d|¦  «         d S )Nr/  ©rí   r1  rî   s     r)   r2  zXmpInformation.pdf_keywords
  ó    € à×Ò�}¨j¸%Ñ@Ô@Ð@Ð@Ð@r+   c                 ó8   — |                       t          d¦  «        S )z-The PDF file version, for example 1.0 or 1.3.Ú
PDFVersionr0  rà   s    r)   Úpdf_pdfversionzXmpInformation.pdf_pdfversion  s   € ð ×%Ò%¥m°\ÑBÔBÐBr+   c                 ó>   — |                       t          d|¦  «         d S )Nr8  r5  rî   s     r)   r9  zXmpInformation.pdf_pdfversion  s    € à×Ò�}¨l¸EÑBÔBÐBÐBÐBr+   c                 ó8   — |                       t          d¦  «        S )z6The name of the tool that saved the document as a PDF.ÚProducerr0  rà   s    r)   Úpdf_producerzXmpInformation.pdf_producer  r3  r+   c                 ó>   — |                       t          d|¦  «         d S )Nr<  r5  rî   s     r)   r=  zXmpInformation.pdf_producer  r6  r+   c                 óD   — |                       t          dt          ¦  «        S )zYThe date and time the resource was originally created. Returned as a UTC datetime object.Ú
CreateDate©rÉ   ÚXMP_NAMESPACErS   rà   s    r)   Úxmp_create_datezXmpInformation.xmp_create_date   ó   € ð ×%Ò%¥m°\Å?ÑSÔSÐSr+   c                 óœ   — |r-t          |¦  «        }|                      t          d|¦  «         d S |                      t          dd ¦  «         d S )Nr@  ©r\   rí   rB  ©r^   r#   Údate_strs      r)   rC  zXmpInformation.xmp_create_date%  óT   € àð 	FÝ+¨EÑ2Ô2ˆHØ×"Ò"¥=°,ÀÑIÔIÐIÐIÐIà×"Ò"¥=°,ÀÑEÔEÐEÐEÐEr+   c                 óD   — |                       t          dt          ¦  «        S )zTThe date and time the resource was last modified. Returned as a UTC datetime object.Ú
ModifyDaterA  rà   s    r)   Úxmp_modify_datezXmpInformation.xmp_modify_date-  rD  r+   c                 óœ   — |r-t          |¦  «        }|                      t          d|¦  «         d S |                      t          dd ¦  «         d S )NrK  rF  rG  s      r)   rL  zXmpInformation.xmp_modify_date2  rI  r+   c                 óD   — |                       t          dt          ¦  «        S )zjThe date and time that any metadata for this resource was last changed. Returned as a UTC datetime object.ÚMetadataDaterA  rà   s    r)   Úxmp_metadata_datez XmpInformation.xmp_metadata_date:  s   € ð ×%Ò%¥m°^Å_ÑUÔUÐUr+   c                 óœ   — |r-t          |¦  «        }|                      t          d|¦  «         d S |                      t          dd ¦  «         d S )NrO  rF  rG  s      r)   rP  z XmpInformation.xmp_metadata_date?  sT   € àð 	HÝ+¨EÑ2Ô2ˆHØ×"Ò"¥=°.À(ÑKÔKÐKÐKÐKà×"Ò"¥=°.À$ÑGÔGÐGÐGÐGr+   c                 ó8   — |                       t          d¦  «        S )z=The name of the first known tool used to create the resource.ÚCreatorTool)rÉ   rB  rà   s    r)   Úxmp_creator_toolzXmpInformation.xmp_creator_toolG  s   € ð ×%Ò%¥m°]ÑCÔCÐCr+   c                 ó>   — |                       t          d|¦  «         d S )NrS  )rí   rB  rî   s     r)   rT  zXmpInformation.xmp_creator_toolL  s    € à×Ò�}¨m¸UÑCÔCÐCÐCÐCr+   c                 ó8   — |                       t          d¦  «        S )zGThe common identifier for all versions and renditions of this resource.Ú
DocumentID©rÉ   ÚXMPMM_NAMESPACErà   s    r)   Úxmpmm_document_idz XmpInformation.xmpmm_document_idP  ó   € ð ×%Ò%¥o°|ÑDÔDÐDr+   c                 ó>   — |                       t          d|¦  «         d S )NrW  ©rí   rY  rî   s     r)   rZ  z XmpInformation.xmpmm_document_idU  ó    € à×Ò�°¸eÑDÔDÐDÐDÐDr+   c                 ó8   — |                       t          d¦  «        S )zZAn identifier for a specific incarnation of a document, updated each time a file is saved.Ú
InstanceIDrX  rà   s    r)   Úxmpmm_instance_idz XmpInformation.xmpmm_instance_idY  r[  r+   c                 ó>   — |                       t          d|¦  «         d S )Nr`  r]  rî   s     r)   ra  z XmpInformation.xmpmm_instance_id^  r^  r+   c                 ó8   — |                       t          d¦  «        S )zMThe part of the PDF/A standard that the document conforms to (e.g., 1, 2, 3).Úpart©rÉ   ÚPDFAID_NAMESPACErà   s    r)   Úpdfaid_partzXmpInformation.pdfaid_partb  s   € ð ×%Ò%Õ&6¸Ñ?Ô?Ð?r+   c                 ó>   — |                       t          d|¦  «         d S )Nrd  ©rí   rf  rî   s     r)   rg  zXmpInformation.pdfaid_partg  s!   € à×ÒÕ/°¸Ñ?Ô?Ð?Ð?Ð?r+   c                 ó8   — |                       t          d¦  «        S )zFThe conformance level within the PDF/A standard (e.g., 'A', 'B', 'U').Úconformancere  rà   s    r)   Úpdfaid_conformancez!XmpInformation.pdfaid_conformancek  s   € ð ×%Ò%Õ&6¸ÑFÔFÐFr+   c                 ó>   — |                       t          d|¦  «         d S )Nrk  ri  rî   s     r)   rl  z!XmpInformation.pdfaid_conformancep  s!   € à×ÒÕ/°ÀÑFÔFÐFÐFÐFr+   c                 ó6  — t          | d¦  «        �si | _        |                      dt          ¦  «        D ]ß}|j        }d}	 |                     d|¦  «        }|dk    rn||dz   |dz   …         }t          |¦  «        d	k    st          d
„ |D ¦   «         ¦  «        s|dz   }Œ`|d|…         t          t          |d¬¦  «        ¦  «        z   ||dz   d…         z   }|dz   }Œœ|j
        |j        k    r|j        }n|                      |¦  «        }|| j        |<   Œà| j        S )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¾   r   Tu   â†‚r=   r   é   é   c              3   ó(   K  — | ]}|t           v V — Œd S r&   r   )r9   Úcs     r)   r;   z3XmpInformation.custom_properties.<locals>.<genexpr>‰  s&   è è € Ð2RÐ2RÀa°1½	°>Ð2RÐ2RÐ2RÐ2RÐ2RÐ2Rr+   Né   )rx   )Úhasattrro  r»   ÚPDFX_NAMESPACEÚ	localNameÚfindrf   ÚallÚchrr8   r¿   rÄ   rÅ   rg   )r^   ÚnodeÚkeyÚstartÚidxÚhex_idr#   s          r)   Úcustom_propertiesz XmpInformation.custom_propertiest  sK  € õ �tÐ1Ñ2Ô2ñ 	5Ø&(ˆDÔ#Ø×3Ò3°B½ÑGÔGð 5ð 5�Ø”n�Ø�ð$àŸ(š( 8¨UÑ3Ô3�CØ˜b’y�yØØ   q¡¨3°©7Ð!2Ô3�FÝ˜6‘{”{ aÒ'Ð'­sÐ2RÐ2RÈ6Ð2RÑ2RÔ2RÑ/RÔ/RÐ'ð !$ a¡˜Ø Ø˜d˜s˜dœ)¥c­#¨f¸2Ð*>Ñ*>Ô*>Ñ&?Ô&?Ñ?À#ÀcÈAÁgÀiÀiÄ.ÑP�CØ !™G�Eð$ð ”= DÔ$7Ò7Ð7Ø œN�E�Eà ŸNšN¨4Ñ0Ô0�EØ/4�Ô'¨Ñ,Ð,ØÔ&Ð&r+   r¾   c                 ón  — | j                              t          d¦  «        D ]%}|                     t          d¦  «        |k    r|c S Œ&| j         j        }|€t          d¦  «        ‚|                     t          d¦  «        }|                     t          d|¦  «         | j                              |¦  «         |S )zBGet or create an rdf:Description element with the given about URI.r®   r¯   NúXMP Document is Nonezrdf:Descriptionz	rdf:about)	r™   rd   re   r°   ÚownerDocumentr   ÚcreateElementNSÚsetAttributeNSÚappendChild)r^   rª   r²   Údocs       r)   Ú_get_or_create_descriptionz)XmpInformation._get_or_create_description—  s¶   € à”M×8Ò8½ÈÑVÔVð 	ð 	ˆDØ×"Ò"¥=°'Ñ:Ô:¸iÒGÐGØ���ð Hð ŒmÔ)ˆØˆ;Ý"Ð#9Ñ:Ô:Ð:Ø×"Ò"¥=Ð2CÑDÔDˆØ×Ò�M¨;¸	ÑBÔBÐBØŒ×!Ò! $Ñ'Ô'Ð'Øˆr+   c                 óT   — | j                              |¦  «        }|r	||v r||= dS dS dS )z<Remove a cached value for a given namespace/name if present.N)rš   rÃ   )r^   r«   r~   rÈ   s       r)   Ú_clear_cache_entryz!XmpInformation._clear_cache_entry¥  sB   € à”:—>’> )Ñ,Ô,ˆØð 	˜ Ð(Ð(Ø˜���ð	ð 	Ð(Ð(r+   c                 óŒ  — |                       ||¦  «         |                      ¦   «         }t          |                     ||¦  «        ¦  «        }|D ]}|                     |¦  «         Œ|                     ||¦  «        x}r|                     |¦  «         |�™| j        j        }|€t          d¦  «        ‚|  
                    |¦  «        }	|                     ||	› d|› �¦  «        }|                     t          |¦  «        ¦  «        }
|                     |
¦  «         |                     |¦  «         |                      ¦   «          dS )z&Set or remove a single metadata value.Nr‚  r<   )rŠ  rˆ  rŽ   rd   ÚremoveChildr±   ÚremoveAttributeNoder™   rƒ  r   Ú_get_namespace_prefixr„  ÚcreateTextNoderŒ   r†  Ú_update_stream)r^   r«   r~   r#   r²   Úexisting_elementsÚelemÚexisting_attrr‡  ÚprefixÚ	text_nodes              r)   rí   z XmpInformation._set_single_value«  sQ  € à×Ò 	¨4Ñ0Ô0Ð0Ø×.Ò.Ñ0Ô0ˆå  ×!<Ò!<¸YÈÑ!MÔ!MÑNÔNÐØ%ð 	#ð 	#ˆDØ×Ò˜TÑ"Ô"Ð"Ð"à ×3Ò3°I¸tÑDÔDÐDˆ=ð 	4Ø×$Ò$ ]Ñ3Ô3Ð3àÐØ”-Ô-ˆCØˆ{Ý&Ð'=Ñ>Ô>Ð>Ø×/Ò/°	Ñ:Ô:ˆFØ×&Ò& y°VÐ2DÐ2D¸dÐ2DÐ2DÑEÔEˆDØ×*Ò*­3¨u©:¬:Ñ6Ô6ˆIØ×Ò˜YÑ'Ô'Ð'Ø×Ò˜TÑ"Ô"Ð"à×ÒÑÔÐÐÐr+   c                 óü  — |                       ||¦  «         |                      ¦   «         }t          |                     ||¦  «        ¦  «        }|D ]}|                     |¦  «         Œ|rþ| j        j        }|€t          d¦  «        ‚|                      |¦  «        }| 	                    ||› d|› �¦  «        }| 	                    t          d¦  «        }	|D ]i}
| 	                    t          d¦  «        }|                     t          |
¦  «        ¦  «        }|                     |¦  «         |	                     |¦  «         Œj|                     |	¦  «         |                     |¦  «         |                      ¦   «          dS )z+Set or remove bag values (unordered array).Nr‚  r<   zrdf:Bagúrdf:li©rŠ  rˆ  rŽ   rd   rŒ  r™   rƒ  r   rŽ  r„  re   r�  rŒ   r†  r�  )r^   r«   r~   râ   r²   r‘  r’  r‡  r”  Úbagr#   rc   r•  s                r)   rå   zXmpInformation._set_bag_valuesÃ  ó‚  € à×Ò 	¨4Ñ0Ô0Ð0Ø×.Ò.Ñ0Ô0ˆå  ×!<Ò!<¸YÈÑ!MÔ!MÑNÔNÐØ%ð 	#ð 	#ˆDØ×Ò˜TÑ"Ô"Ð"Ð"àð 	#Ø”-Ô-ˆCØˆ{Ý&Ð'=Ñ>Ô>Ð>Ø×/Ò/°	Ñ:Ô:ˆFØ×&Ò& y°VÐ2DÐ2D¸dÐ2DÐ2DÑEÔEˆDØ×%Ò%¥m°YÑ?Ô?ˆCàð $ð $�Ø×(Ò(­¸ÑAÔA�Ø×.Ò.­s°5©z¬zÑ:Ô:�	Ø—’˜yÑ)Ô)Ð)Ø—’ Ñ#Ô#Ð#Ð#à×Ò˜SÑ!Ô!Ð!Ø×Ò˜TÑ"Ô"Ð"à×ÒÑÔÐÐÐr+   c                 óü  — |                       ||¦  «         |                      ¦   «         }t          |                     ||¦  «        ¦  «        }|D ]}|                     |¦  «         Œ|rþ| j        j        }|€t          d¦  «        ‚|                      |¦  «        }| 	                    ||› d|› �¦  «        }| 	                    t          d¦  «        }	|D ]i}
| 	                    t          d¦  «        }|                     t          |
¦  «        ¦  «        }|                     |¦  «         |	                     |¦  «         Œj|                     |	¦  «         |                     |¦  «         |                      ¦   «          dS )z.Set or remove sequence values (ordered array).Nr‚  r<   zrdf:Seqr—  r˜  )r^   r«   r~   râ   r²   r‘  r’  r‡  r”  Úseqr#   rc   r•  s                r)   ró   zXmpInformation._set_seq_valuesß  rš  r+   c                 óT  — |                       ||¦  «         |                      ¦   «         }t          |                     ||¦  «        ¦  «        }|D ]}|                     |¦  «         Œ|�r)| j        j        }|€t          d¦  «        ‚|                      |¦  «        }| 	                    ||› d|› �¦  «        }| 	                    t          d¦  «        }	|                     ¦   «         D ]‚\  }
}| 	                    t          d¦  «        }|                     d|
¦  «         |                     t          |¦  «        ¦  «        }|                     |¦  «         |	                     |¦  «         Œƒ|                     |	¦  «         |                     |¦  «         |                      ¦   «          dS )z*Set or remove language alternative values.Nr‚  r<   zrdf:Altr—  rÖ   )rŠ  rˆ  rŽ   rd   rŒ  r™   rƒ  r   rŽ  r„  re   ÚitemsÚsetAttributer�  rŒ   r†  r�  )r^   r«   r~   râ   r²   r‘  r’  r‡  r”  rÚ   Úlangr#   rc   r•  s                 r)   r  z"XmpInformation._set_langalt_valuesû  s¢  € à×Ò 	¨4Ñ0Ô0Ð0Ø×.Ò.Ñ0Ô0ˆå  ×!<Ò!<¸YÈÑ!MÔ!MÑNÔNÐØ%ð 	#ð 	#ˆDØ×Ò˜TÑ"Ô"Ð"Ð"àñ 	#Ø”-Ô-ˆCØˆ{Ý&Ð'=Ñ>Ô>Ð>Ø×/Ò/°	Ñ:Ô:ˆFØ×&Ò& y°VÐ2DÐ2D¸dÐ2DÐ2DÑEÔEˆDØ×%Ò%¥m°YÑ?Ô?ˆCà%Ÿ|š|™~œ~ð $ð $‘��eØ×(Ò(­¸ÑAÔA�Ø—’ 
¨DÑ1Ô1Ð1Ø×.Ò.­s°5©z¬zÑ:Ô:�	Ø—’˜yÑ)Ô)Ð)Ø—’ Ñ#Ô#Ð#Ð#à×Ò˜SÑ!Ô!Ð!Ø×Ò˜TÑ"Ô"Ð"à×ÒÑÔÐÐÐr+   c                 ó8   — t                                |d¦  «        S )z?Get the appropriate namespace prefix for a given namespace URI.Úunknown)Ú_NAMESPACE_PREFIX_MAPrÃ   )r^   r«   s     r)   rŽ  z$XmpInformation._get_namespace_prefix  s   € å$×(Ò(¨°IÑ>Ô>Ð>r+   c                 ó    — | j         j        }|€t          d¦  «        ‚|                     d¬¦  «        }| j                             |¦  «         dS )z/Update the stream with the current XML content.Nr‚  r¡   )Úencoding)r™   rƒ  r   Útoxmlr‘   r¢   )r^   r‡  Úxml_datas      r)   r�  zXmpInformation._update_stream  sO   € àŒmÔ)ˆØˆ;Ý"Ð#9Ñ:Ô:Ð:à—9’9 g�9Ñ.Ô.ˆØŒ×Ò˜XÑ&Ô&Ð&Ð&Ð&r+   )r$   r_   r&   )r¾   )r$   N)Brˆ   r‰   rŠ   r‹   r   rs   Úclassmethodr¦   r   r
   rŒ   Úbytesr©   r   r   r´   r»   Ú
XmlElementrg   r*   r   r   rÉ   rŽ   rÏ   rÓ   r×   rÛ   Úpropertyrá   Úsetterrê   rñ   rH   r÷   rþ   r  r
  r  r  r  r  r   r$  r(  r,  r2  r9  r=  rC  rL  rP  rT  rZ  ra  rg  rl  r€  rˆ  rŠ  rí   rå   ró   r  rŽ  r�  r'   r+   r)   r_   r_   Ò   s,  € € € € € ðð ð(˜}ð (°ð (ð (ð (ð (ð" ð	ð 	ð 	ñ „[ð	ð MQð,ð ,Ø ð,Ø27¸¸UÀDÐ8HÔ2Ið,à	ð,ð ,ð ,ð ,ðH Sð H°Sð HÀð HÈÐQTÌð Hð Hð Hð Hð	$°ð 	$Àð 	$ÈÐQTÌð 	$ð 	$ð 	$ð 	$ð ð °ð ð ð ð ð +4ð	ð àðð ðð ˜S˜E 3˜JÔ'ð	ð
 
�#Œðð ð ð ð, Sð °ð ¸ÀÀcÄÔ8Kð ð ð ð ð& +4ð	ð àðð ðð ˜S˜E 3˜JÔ'ð	ð
 
�$�s”)Ô	ðð ð ð ð:¨Sð ¸ð ÀÈÈcÐSVÈhÌÔ@Xð ð ð ð ð$ ð= ¨¨c¬Ô 3ð =ð =ð =ñ „Xð=ð ÔðB X¨d°3¬iÔ%8ð B¸Tð Bð Bð Bñ ÔðBð ð@˜X cœ]ð @ð @ð @ñ „Xð@ð Ôð@ ¨#¤ð @°4ð @ð @ð @ñ Ôð@ð ð=˜H T¨#¤YÔ/ð =ð =ð =ñ „Xð=ð Ôð> ¨$¨s¬)Ô!4ð >¸ð >ð >ð >ñ Ôð>ð ðK˜ $ xÔ'8Ô"9Ô:ð Kð Kð Kñ „XðKð „^ð
E˜h t¨E°#°xÔ7HÐ2HÔ,IÔ'JÔKð 
EÐPTð 
Eð 
Eð 
Eñ „^ð
Eð ðE ¨¨c°3¨h¬Ô 8ð Eð Eð Eñ „XðEð ÔðF X¨d°3¸°8¬nÔ%=ð FÀ$ð Fð Fð Fñ ÔðFð ð>˜8 Cœ=ð >ð >ð >ñ „Xð>ð Ôð>˜x¨œ}ð >°ð >ð >ð >ñ Ôð>ð ðB˜x¨œ}ð Bð Bð Bñ „XðBð ÔðB 8¨C¤=ð B°Tð Bð Bð Bñ ÔðBð ð:˜X d¨3¤iÔ0ð :ð :ð :ñ „Xð:ð Ôð? (¨4°¬9Ô"5ð ?¸$ð ?ð ?ð ?ñ Ôð?ð ð;˜h t¨C¤yÔ1ð ;ð ;ð ;ñ „Xð;ð Ôð@ 8¨D°¬IÔ#6ð @¸4ð @ð @ð @ñ Ôð@ð ð:˜X d¨3¤iÔ0ð :ð :ð :ñ „Xð:ð Ôð? (¨4°¬9Ô"5ð ?¸$ð ?ð ?ð ?ñ Ôð?ð ð@˜8 D¨¨c¨¤NÔ3ð @ð @ð @ñ „Xð@ð ÔðA ¨¨c°3¨h¬Ô 8ð A¸Tð Að Að Añ ÔðAð ð>˜8 Cœ=ð >ð >ð >ñ „Xð>ð Ôð>˜x¨œ}ð >°ð >ð >ð >ñ Ôð>ð ð9˜H T¨#¤YÔ/ð 9ð 9ð 9ñ „Xð9ð Ôð> ¨$¨s¬)Ô!4ð >¸ð >ð >ð >ñ Ôð>ð ð?˜( 4¨¨S¨¤>Ô2ð ?ð ?ð ?ñ „Xð?ð „_ð@˜x¨¨S°#¨X¬Ô7ð @¸Dð @ð @ð @ñ „_ð@ð ð6˜ $ s¤)Ô,ð 6ð 6ð 6ñ „Xð6ð „^ð;˜h t¨C¤yÔ1ð ;°dð ;ð ;ð ;ñ „^ð;ð ðA˜h sœmð Að Að Añ „XðAð ÔðA (¨3¤-ð A°Dð Að Að Añ ÔðAð ðC ¨¤ð Cð Cð Cñ „XðCð ÔðC H¨S¤Mð C°dð Cð Cð Cñ ÔðCð ðA˜h sœmð Að Að Añ „XðAð ÔðA (¨3¤-ð A°Dð Að Að Añ ÔðAð ðT ¨(Ô*;Ô!<ð Tð Tð Tñ „XðTð ÔðF X¨hÔ.?Ô%@ð FÀTð Fð Fð Fñ ÔðFð ðT ¨(Ô*;Ô!<ð Tð Tð Tñ „XðTð ÔðF X¨hÔ.?Ô%@ð FÀTð Fð Fð Fñ ÔðFð ðV 8¨HÔ,=Ô#>ð Vð Vð Vñ „XðVð ÔðH x°Ô0AÔ'Bð HÀtð Hð Hð Hñ ÔðHð ðD (¨3¤-ð Dð Dð Dñ „XðDð ÔðD h¨s¤mð D¸ð Dð Dð Dñ ÔðDð ðE 8¨C¤=ð Eð Eð Eñ „XðEð ÔðE x°¤}ð E¸ð Eð Eð Eñ ÔðEð ðE 8¨C¤=ð Eð Eð Eñ „XðEð ÔðE x°¤}ð E¸ð Eð Eð Eñ ÔðEð ð@˜X cœ]ð @ð @ð @ñ „Xð@ð Ôð@ ¨#¤ð @°4ð @ð @ð @ñ Ôð@ð ðG H¨S¤Mð Gð Gð Gñ „XðGð ÔðG¨°¬ð G¸$ð Gð Gð Gñ ÔðGð ð ' 4¨¨S¨¤>ð  'ð  'ð  'ñ „Xð 'ðDð °Cð Àð ð ð ð ð¨Cð °sð ¸tð ð ð ð ð¨3ð °cð À(È3Ä-ð ÐTXð ð ð ð ð0¨ð °Cð ÀÈ$ÈsÌ)ÔATð ÐY]ð ð ð ð ð8¨ð °Cð ÀÈ$ÈsÌ)ÔATð ÐY]ð ð ð ð ð8¨Sð ¸ð ÀXÈdÐSVÐX[ÐS[ÌnÔE]ð Ðbfð ð ð ð ð:?¨sð ?°sð ?ð ?ð ?ð ?ð'ð 'ð 'ð 'ð 'ð 'r+   )>r‹   rH   rD   ÚreÚcollections.abcr   Ústringr   Útypingr   r   r   r	   r
   r   Úxml.dom.expatbuilderr   Úxml.dom.minidomr   r   rª  Úxml.dom.xmlbuilderr   Úxml.parsers.expatr   r   Ú
_protocolsr   Ú_utilsr   r   r   Úerrorsr   r   r   Úgenericr   r   r–   r�   re   rß   rB  r1  rY  rv  rf  r£  ÚcompileÚVERBOSEr@   r"   r£   r*   rŒ   rS   r\   rŽ   rm   ro   r_   r'   r+   r)   ú<module>r»     s§  ððð ð €€€Ø €€€Ø 	€	€	€	Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ø $Ð $Ð $Ð $Ð $Ð $Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø &Ð &Ð &Ð &Ð &Ð &Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à .Ð .Ð .Ð .Ð .Ð .Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à Ð ØÐ à=€Ø1€Ø.€Ø.€Ø3€ð( 1€ð 5Ð ð �$Ø�5Ø�5Ø�WØ�hØ�FðÐ ð ˆ"Œ*ðð „Jñ!ô €ð( €GˆC�L„L€ðà&ðð ð $ð	ð ð
 &ðð ð &ðð ð *ðð ð ,ðð ð (ðð ð €ð �Qð ˜1ð ð ð ð ð˜3ð  8Ô#4ð ð ð ð ð6
3 Ô 1ð 
3°cð 
3ð 
3ð 
3ð 
3ð hqðð ØðØ#3ðØ@CðØPXÐZ]ÐY^Ð`cÐYcÔPdðàˆd�3ŒiÔðð ð ð ð$@ð $@ð $@ð $@ð $@�.ñ $@ô $@ð $@ðNQ	'ð Q	'ð Q	'ð Q	'ð Q	'Ð+¨Yñ Q	'ô Q	'ð Q	'ð Q	'ð Q	'r+   