Ë
    òT•jŽ	 ã                   óZ  — d Z ddlZddlZddlmZmZmZmZ ddl­ ddl	m
Z
mZ ej                  j                  j                  ej                  j                  j                  fZ G d„ dej                  j                  «      Z eedd	¬
«        eedd¬
«        eedd¬
«       d„ Zd„ Zd„ Zd„ Z G d„ de«      Z G d„ de«      Z eedd¬
«        eedd¬
«        eedd¬
«        G d„ de«      Z eedd¬
«       eZ G d „ d!e«      Z edd«      Z G d"„ d#e«      Z eed$d%¬
«        eedd&¬
«       d'„ Z G d(„ d)«      Z G d*„ d+ee«      Z  G d,„ d-ee«      Z! ee!dd.¬
«        G d/„ d0e!«      Z" ee"d1d2¬
«        ee"d3d4¬
«       d5„ Z#d6„ Z$ G d7„ d8e!«      Z% G d9„ d:e"«      Z& G d;„ d<e«      Z' ee'dd=¬
«        G d>„ d?«      Z( G d@„ dAe(ee«      Z) G dB„ dCe(e«      Z* G dD„ dEe(ee«      Z+ G dF„ dGe
«      Z, G dH„ dIe«      Z-dJ„ Z. G dK„ dLee«      Z/ ee/dMdN¬
«       dO„ Z0dP„ Z1dQ„ Z2dUdR„Z3dVdS„Z4dVdT„Z5y)Wac  Simple implementation of the Level 1 DOM.

Namespaces and other minor Level 2 features are also supported.

parse("foo.xml")

parseString("<foo><bar/></foo>")

Todo:
=====
 * convenience methods for getting elements and text.
 * more testing
 * bring some of the writer and linearizer code into conformance with this
        interface
 * SAX 2 namespaces
é    N)ÚEMPTY_NAMESPACEÚEMPTY_PREFIXÚXMLNS_NAMESPACEÚdomreg)Ú*)ÚDOMImplementationLSÚ
DocumentLSc                   ó¶   — e Zd ZdZdZdZdZdZeZ	d„ Z
dd„Z	 	 dd„Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z y)ÚNodeNc                  ó   — y)NT© ©Úselfs    ú&/usr/lib/python3.12/xml/dom/minidom.pyÚ__bool__zNode.__bool__+   ó   € Øó    c                 ó*   — | j                  dd||«      S ©NÚ )Útoprettyxml)r   ÚencodingÚ
standalones      r   Útoxmlz
Node.toxml.   s   € Ø×Ñ  B¨°*Ó=Ð=r   c                 óv  — |€t        j                  «       }n+t        j                  t        j                  «       |dd¬«      }| j                  t
        j                  k(  r| j                  |d||||«       n| j                  |d||«       |€|j                  «       S |j                  «       j                  «       S )NÚxmlcharrefreplaceú
)r   ÚerrorsÚnewliner   )
ÚioÚStringIOÚTextIOWrapperÚBytesIOÚnodeTyper   ÚDOCUMENT_NODEÚwritexmlÚgetvalueÚdetach)r   ÚindentÚnewlr   r   Úwriters         r   r   zNode.toprettyxml1   s˜   € àÐÜ—[‘[“]‰Fä×%Ñ%¤b§j¡j£lØ/7Ø-@Ø.2ô4ˆFð �=‰=œD×.Ñ.Ò.à�M‰M˜& " f¨d°H¸jÕIà�M‰M˜& " f¨dÔ3ØÐØ—?‘?Ó$Ð$à—=‘=“?×+Ñ+Ó-Ð-r   c                 ó,   — t        | j                  «      S ©N)ÚboolÚ
childNodesr   s    r   ÚhasChildNodeszNode.hasChildNodesD   s   € Ü�D—O‘OÓ$Ð$r   c                 ó   — | j                   S r-   ©r/   r   s    r   Ú_get_childNodeszNode._get_childNodesG   ó   € Ø�‰Ðr   c                 ó:   — | j                   r| j                   d   S y ©Nr   r2   r   s    r   Ú_get_firstChildzNode._get_firstChildJ   s   € Ø�?Š?Ø—?‘? 1Ñ%Ð%ð r   c                 ó:   — | j                   r| j                   d   S y ©Néÿÿÿÿr2   r   s    r   Ú_get_lastChildzNode._get_lastChildN   s   € Ø�?Š?Ø—?‘? 2Ñ&Ð&ð r   c                 ó&  — |j                   | j                  k(  r.t        |j                  «      D ]  }| j	                  ||«       Œ |S |j                   | j
                  vr6t        j                  j                  t        |«      ›dt        | «      ›�«      ‚|j                  �|j                  j                  |«       |€| j                  |«       |S 	 | j                  j                  |«      }|j                   t         v rt#        | «       | j                  j%                  ||«       ||_        ||_        |r!| j                  |dz
     }||_        ||_        nd |_        | |_
        |S # t        $ r t        j                  j                  «       ‚w xY w)Nú cannot be child of é   )r$   ÚDOCUMENT_FRAGMENT_NODEÚtupler/   ÚinsertBeforeÚ_child_node_typesÚxmlÚdomÚHierarchyRequestErrÚreprÚ
parentNodeÚremoveChildÚappendChildÚindexÚ
ValueErrorÚNotFoundErrÚ_nodeTypes_with_childrenÚ_clear_id_cacheÚinsertÚnextSiblingÚpreviousSibling)r   ÚnewChildÚrefChildÚcrJ   Únodes         r   rA   zNode.insertBeforeR   ss  € Ø×Ñ × ;Ñ ;Ò;Ü˜8×.Ñ.Ó/ò /�Ø×!Ñ! ! XÕ.ð/ð ˆOØ×Ñ D×$:Ñ$:Ñ:Ü—'‘'×-Ñ-Ü.2°8­n¼dÀ4¼jÐIóKð Kà×ÑÐ*Ø×Ñ×+Ñ+¨HÔ5ØÐØ×Ñ˜XÔ&ð$ ˆð!,ØŸ™×-Ñ-¨hÓ7�ð × Ñ Ô$<Ñ<Ü Ô%Ø�O‰O×"Ñ" 5¨(Ô3Ø#+ˆHÔ Ø'/ˆHÔ$ÙØ—‘ u¨Q¡wÑ/�Ø#+�Ô Ø+/�Õ(à+/�Ô(Ø"&ˆHÔØˆøô ò ,Ü—g‘g×)Ñ)Ó+Ð+ð,ús   ÃE( Å((Fc                 óÜ  — |j                   | j                  k(  r-t        |j                  «      D ]  }| j	                  |«       Œ |S |j                   | j
                  vr6t        j                  j                  t        |«      ›dt        | «      ›�«      ‚|j                   t        v rt        | «       |j                  �|j                  j                  |«       t        | |«       d |_        |S ©Nr=   )r$   r?   r@   r/   rI   rB   rC   rD   rE   rF   rM   rN   rG   rH   Ú_append_childrP   )r   rU   rT   s      r   rI   zNode.appendChildr   sÄ   € Ø�=‰=˜D×7Ñ7Ò7Ü˜4Ÿ?™?Ó+ò $�Ø× Ñ  Õ#ð$ð ˆKØ�=‰= × 6Ñ 6Ñ6Ü—'‘'×-Ñ-Ü.2°4­j¼$¸t¼*ÐEóGð Gà�]‰]Ô6Ñ6Ü˜DÔ!Ø�?‰?Ð&Ø�O‰O×'Ñ'¨Ô-Ü�d˜DÔ!ØˆÔØˆr   c                 ó„  — |j                   | j                  k(  r/|j                  }| j                  |«       | j	                  ||«      S |j                   | j
                  vr6t        j                  j                  t        |«      ›dt        | «      ›�«      ‚||u ry |j                  �|j                  j                  |«       	 | j                  j                  |«      }|| j                  |<   | |_
        d |_
        |j                   t        v s|j                   t        v rt!        | «       |j                  |_        |j"                  |_        d |_        d |_        |j"                  r||j"                  _        |j                  r||j                  _        |S # t        $ r t        j                  j                  «       ‚w xY wrW   )r$   r?   rP   rH   rA   rB   rC   rD   rE   rF   rG   r/   rJ   rK   rL   rM   rN   rQ   )r   rR   ÚoldChildrS   rJ   s        r   ÚreplaceChildzNode.replaceChildƒ   sŒ  € Ø×Ñ × ;Ñ ;Ò;Ø×+Ñ+ˆHØ×Ñ˜XÔ&Ø×$Ñ$ X¨xÓ8Ð8Ø×Ñ D×$:Ñ$:Ñ:Ü—'‘'×-Ñ-Ü.2°8­n¼dÀ4¼jÐIóKð Kà�xÑØØ×ÑÐ*Ø×Ñ×+Ñ+¨HÔ5ð	(Ø—O‘O×)Ñ)¨(Ó3ˆEð "*ˆ�‰˜ÑØ"ˆÔØ"ˆÔØ×ÑÔ!9Ñ9Ø× Ñ Ô$<Ñ<Ü˜DÔ!Ø'×3Ñ3ˆÔØ#+×#;Ñ#;ˆÔ Ø#ˆÔØ#'ˆÔ Ø×#Ò#Ø3;ˆH×$Ñ$Ô0Ø×ÒØ3;ˆH× Ñ Ô0Øˆøô! ò 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   ÃF Æ(F?c                 ó”  — 	 | j                   j                  |«       |j                  �|j                  |j                  _        |j                  �|j                  |j                  _        d x|_        |_        |j                  t        v rt        | «       d |_        |S # t        $ r t        j                  j                  «       ‚w xY wr-   )r/   ÚremoverK   rC   rD   rL   rP   rQ   r$   rM   rN   rG   ©r   rZ   s     r   rH   zNode.removeChild£   s³   € ð	(Ø�O‰O×"Ñ" 8Ô,ð ×ÑÐ+Ø3;×3KÑ3KˆH× Ñ Ô0Ø×#Ñ#Ð/Ø3;×3GÑ3GˆH×$Ñ$Ô0Ø:>Ð>ˆÔ˜xÔ7Ø×ÑÔ 8Ñ8Ü˜DÔ!à"ˆÔØˆøô ò 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   ‚B Â(Cc                 óà  — g }| j                   D �]M  }|j                  t        j                  k(  rí|j                  sN|r|j
                  |d   _        |j
                  r|j                  |j
                  _        |j                  «        Œ{|r~|d   j                  |j                  k(  rb|d   }|j                  |j                  z   |_        |j
                  |_        |j
                  r||j
                  _        |j                  «        Œû|j                  |«       �Œ|j                  |«       |j                  t        j                  k(  s�Œ>|j                  «        �ŒP || j                   d d  y r9   )r/   r$   r   Ú	TEXT_NODEÚdatarP   rQ   ÚunlinkÚappendÚELEMENT_NODEÚ	normalize)r   ÚLÚchildrU   s       r   re   zNode.normalize³   s  € ØˆØ—_‘_ó 	&ˆEØ�~‰~¤§¡Ò/Ø—z’záØ,1×,=Ñ,=˜˜"™Ô)Ø×(Ò(Ø<A×<QÑ<Q˜×)Ñ)Ô9Ø—L‘L•NÙ˜1˜R™5Ÿ>™>¨U¯^©^Ò;à˜R™5�DØ $§	¡	¨E¯J©JÑ 6�D”IØ',×'8Ñ'8�DÔ$Ø×(Ò(Ø<@˜×)Ñ)Ô9Ø—L‘L•Nà—H‘H˜U–Oà—‘˜”Ø—>‘>¤T×%6Ñ%6Ô6Ø—O‘OÖ%ð-	&ð. ˆ�‰™Ñr   c                 ó8   — t        | || j                  xs | «      S r-   )Ú_clone_nodeÚownerDocument)r   Údeeps     r   Ú	cloneNodezNode.cloneNodeÎ   s   € Ü˜4  t×'9Ñ'9Ò'A¸TÓBÐBr   c                 óN   — | j                   j                  j                  ||«      S r-   )rj   ÚimplementationÚ
hasFeature©r   ÚfeatureÚversions      r   ÚisSupportedzNode.isSupportedÑ   s!   € Ø×!Ñ!×0Ñ0×;Ñ;¸GÀWÓMÐMr   c                  ó   — y r-   r   r   s    r   Ú_get_localNamezNode._get_localNameÔ   s   € àr   c                 ó
   — | |u S r-   r   ©r   Úothers     r   Ú
isSameNodezNode.isSameNodeÚ   s   € Ø�uˆ}Ðr   c                 ó,   — | j                  |d «      r| S y r-   )rs   ©r   rq   s     r   ÚgetInterfacezNode.getInterfaceÝ   s   € Ø×Ñ˜G TÔ*ØˆKàr   c                 óR   — 	 | j                   |   d   S # t        t        f$ r Y y w xY wr6   )Ú
_user_dataÚAttributeErrorÚKeyError©r   Úkeys     r   ÚgetUserDatazNode.getUserDataç   s2   € ð	Ø—?‘? 3Ñ'¨Ñ*Ð*øÜ¤Ð)ò 	Ùð	ús   ‚ ”&¥&c                 ó�   — d }	 | j                   }||v r||   d   }|€	d }|�||= |S ||f||<   |S # t        $ r i }|| _         Y Œ4w xY wr6   )r~   r   )r   r‚   ra   ÚhandlerÚoldÚds         r   ÚsetUserDatazNode.setUserDataí   sy   € Øˆð	 Ø—‘ˆAð �!‰8Ø�C‘&˜‘)ˆCØˆ<àˆGØˆØ�c�Fð ˆ
ð ˜G�_ˆAˆc‰FØˆ
øô ò 	 ØˆAØˆDŽOð	 ús   „0 °AÁAc                 óª   — t        | d«      rGt        | j                  j                  «       «      D ]   \  }\  }}|€Œ|j	                  |||||«       Œ" y y )Nr~   )ÚhasattrÚlistr~   ÚitemsÚhandle)r   Ú	operationÚsrcÚdstr‚   ra   r…   s          r   Ú_call_user_data_handlerzNode._call_user_data_handlerÿ   sW   € Ü�4˜Ô&Ü(,¨T¯_©_×-BÑ-BÓ-DÓ(Eò CÑ$�‘_�d˜GØÑ&Ø—N‘N 9¨c°4¸¸cÕBñCð 'r   c                 ó´   — d x| _         | _        | j                  r0| j                  D ]  }|j                  «        Œ t	        «       | _        d | _        d | _        y r-   )rG   rj   r/   rb   ÚNodeListrQ   rP   )r   rg   s     r   rb   zNode.unlink  sM   € Ø/3Ð3ˆŒ˜$Ô,Ø�?Š?ØŸ™ò �Ø—‘•ðä&›jˆDŒOØ#ˆÔØˆÕr   c                 ó   — | S r-   r   r   s    r   Ú	__enter__zNode.__enter__  s   € Øˆr   c                 ó$   — | j                  «        y r-   )rb   )r   ÚetÚevÚtbs       r   Ú__exit__zNode.__exit__  s   € Ø�‰�r   ©NN)ú	r   NN)!Ú__name__Ú
__module__Ú__qualname__ÚnamespaceURIrG   rj   rP   rQ   r   Úprefixr   r   r   r0   r3   r7   r;   rA   rI   r[   rH   re   rl   rs   ru   ry   r|   rƒ   rˆ   r‘   rb   r•   rš   r   r   r   r   r   "   s¡   „ Ø€LØ€JØ€MØ€KØ€Oà€Fòó>ð <@Ø#ó.ò&%òò&ò'òò@ò"ò@ò ò6CòNòòòòòò$Cò òór   r   Ú
firstChildzFirst child node, or None.)ÚdocÚ	lastChildzLast child node, or None.Ú	localNamez"Namespace-local name of this node.c                 óv   — | j                   }|r|d   }||_        ||_        |j                  |«       | |_        y r9   )r/   rQ   rP   rc   rG   )r   rU   r/   Úlasts       r   rX   rX     s<   € à—‘€JÙØ˜"‰~ˆØ#ˆÔØˆÔØ×Ñ�dÔØ€D…Or   c                 ó°   — |rT|j                  dd«      j                  dd«      j                  dd«      j                  dd«      }| j                  |«       y	y	)
zWrites datachars to writer.ú&z&amp;ú<z&lt;ú"z&quot;ú>z&gt;N)ÚreplaceÚwrite)r+   ra   s     r   Ú_write_datar¯   (  sM   € áØ�|‰|˜C Ó)×1Ñ1°#°vÓ>ß‘G˜D (Ó+¯G©G°C¸Ó,@ð 	à�‰�TÕð r   c                 óÆ   — | j                   D ]Q  }|j                  t        j                  k(  r%|dk(  s|j                  |k(  r|j                  |«       t        |||«       ŒS |S ©Nr   )r/   r$   r   rd   ÚtagNamerc   Ú_get_elements_by_tagName_helper)ÚparentÚnameÚrcrU   s       r   r³   r³   /  sY   € Ø×!Ñ!ò 8ˆØ�=‰=œD×-Ñ-Ò-Ø�SŠ[˜DŸL™L¨DÒ0Ø�I‰I�dŒOÜ'¨¨d°BÕ7ð	8ð
 €Ir   c                 óò   — | j                   D ]g  }|j                  t        j                  k(  sŒ!|dk(  s|j                  |k(  r%|dk(  s|j
                  |k(  r|j                  |«       t        ||||«       Œi |S r±   )r/   r$   r   rd   r¥   r    rc   Ú"_get_elements_by_tagName_ns_helper)r´   ÚnsURIr¥   r¶   rU   s        r   r¸   r¸   7  sr   € Ø×!Ñ!ò KˆØ�=‰=œD×-Ñ-Ó-Ø˜cÒ! T§^¡^°yÒ%@Ø˜#’ ×!2Ñ!2°eÒ!;Ø—	‘	˜$”Ü.¨t°U¸IÀrÕJðKð €Ir   c                   óØ   — e Zd Zej                  ZdZdZdZdZ	ej                  ej                  ej                  ej                  ej                  ej                  ej                   fZd„ Zy)ÚDocumentFragmentz#document-fragmentNc                 ó"   — t        «       | _        y r-   )r“   r/   r   s    r   Ú__init__zDocumentFragment.__init__N  s   € Ü"›*ˆ�r   )r�   rž   rŸ   r   r?   r$   ÚnodeNameÚ	nodeValueÚ
attributesrG   rd   r`   ÚCDATA_SECTION_NODEÚENTITY_REFERENCE_NODEÚPROCESSING_INSTRUCTION_NODEÚCOMMENT_NODEÚNOTATION_NODErB   r½   r   r   r   r»   r»   @  sk   „ Ø×*Ñ*€HØ#€HØ€IØ€JØ€JØ×*Ñ*ØŸ™Ø×0Ñ0Ø×3Ñ3Ø×9Ñ9Ø×*Ñ*Ø×+Ñ+ð-Ðó%r   r»   c                   óò   — e Zd ZdZej
                  ZdZdZdZ	ej                  ej                  fZeddfd„Zd„ Zd„ Zd„ Zd„ Z eee«      xZZd	„ Zd
„ Z eee«      xZZd„ Zd„ Z eee«      Zd„ Zd„ Zd„ Zy)ÚAttr)Ú_nameÚ_valuer    Ú_prefixr/   Ú
_localNamerj   ÚownerElementNFc                 óÀ   — d | _         d | _        || _        || _        || _        |�|| _        t        «       | _        | j                  j                  t        «       «       y r-   )
rÌ   rj   rÈ   r    rÊ   rË   r“   r/   rc   ÚText)r   ÚqNamer    r¥   r¡   s        r   r½   zAttr.__init__\  sT   € à ˆÔØ!ˆÔØˆŒ
Ø(ˆÔØˆŒØÐ Ø'ˆDŒOÜ"›*ˆŒð 	�‰×Ñœt›vÕ&r   c                 óx   — 	 | j                   S # t        $ r" | j                  j                  dd«      d   cY S w xY w©Nú:r>   r:   )rË   r   r¾   Úsplitr   s    r   ru   zAttr._get_localNamel  s<   € ð	3Ø—?‘?Ð"øÜò 	3Ø—=‘=×&Ñ& s¨AÓ.¨rÑ2Ò2ð	3úó   ‚ Ž(9¸9c                 ó   — | j                   S r-   )Ú	specifiedr   s    r   Ú_get_specifiedzAttr._get_specifiedr  ó   € Ø�~‰~Ðr   c                 ó   — | j                   S r-   )rÈ   r   s    r   Ú	_get_namezAttr._get_nameu  ó   € Ø�z‰zÐr   c                 óV   — || _         | j                  �t        | j                  «       y y r-   )rÈ   rÌ   rN   ©r   Úvalues     r   Ú	_set_namezAttr._set_namex  s(   € ØˆŒ
Ø×ÑÐ(Ü˜D×-Ñ-Õ.ð )r   c                 ó   — | j                   S r-   )rÉ   r   s    r   Ú
_get_valuezAttr._get_value  ó   € Ø�{‰{Ðr   c                 ó¤   — || _         || j                  d   _        | j                  �t	        | j                  «       || j                  d   _        y r6   )rÉ   r/   ra   rÌ   rN   rÝ   s     r   Ú
_set_valuezAttr._set_value‚  sE   € ØˆŒØ"'ˆ�‰˜ÑÔØ×ÑÐ(Ü˜D×-Ñ-Ô.Ø"'ˆ�‰˜ÑÕr   c                 ó   — | j                   S r-   )rÊ   r   s    r   Ú_get_prefixzAttr._get_prefix‹  ó   € Ø�|‰|Ðr   c                 ó  — | j                   }|dk(  r*|r(|t        k7  rt        j                  j	                  d«      ‚|| _        |€| j                  }n|›d| j                  ›�}| j                  rt        | j                  «       || _	        y )NÚxmlnsz5illegal use of 'xmlns' prefix for the wrong namespacerÒ   )
r    r   rC   rD   ÚNamespaceErrrÊ   r¥   rÌ   rN   rµ   )r   r¡   ÚnsuriÚnewNames       r   Ú_set_prefixzAttr._set_prefixŽ  s|   € Ø×!Ñ!ˆØ�WÒÙ˜¤/Ò1Ü—g‘g×*Ñ*ØKóMð MàˆŒØˆ>Ø—n‘n‰Gâ!'¨¯ªÐ8ˆGØ×ÒÜ˜D×-Ñ-Ô.Øˆ�	r   c                 ó‚  — | j                   }|��|j                  | j                  = |j                  | j                  | j
                  f= | j                  r;d| _        |xj                  dz  c_        | j                  xj                  dz  c_	        | j                  D ]  }|j                  «        Œ | j                  d d …= y )NFr>   )rÌ   Ú_attrsr¾   Ú_attrsNSr    r¥   Ú_is_idÚ_magic_id_nodesrj   Ú_magic_id_countr/   rb   )r   Úelemrg   s      r   rb   zAttr.unlinkŸ  sž   € ð
 × Ñ ˆØÐØ—‘˜DŸM™MÐ*Ø—‘˜t×0Ñ0°$·.±.ÐAÐBØ�{Š{Ø#�”Ø×$Ò$¨Ñ)Õ$Ø×"Ñ"×2Ò2°aÑ7Õ2Ø—_‘_ò 	ˆEØ�L‰L�Nð	à�O‰OšAÑr   c                 ó  — | j                   ry| j                  }| j                  }|�|€y|j                  |«      }|€y| j                  r&|j                  | j                  | j                  «      S |j                  | j                  «      S ©NTF)	rñ   rj   rÌ   Ú_get_elem_infor    ÚisIdNSr¥   ÚisIdr¾   ©r   r£   rô   Úinfos       r   Ú	_get_isIdzAttr._get_isId°  s}   € Ø�;Š;ØØ× Ñ ˆØ× Ñ ˆØˆ;˜$˜,Øà×!Ñ! $Ó'ˆØˆ<ØØ×ÒØ—;‘;˜t×0Ñ0°$·.±.ÓAÐAà—9‘9˜TŸ]™]Ó+Ð+r   c                 ó  — | j                   }| j                  }|�|€t        S |j                  |«      }|€t        S | j                  r&|j                  | j                  | j                  «      S |j                  | j                  «      S r-   )	rj   rÌ   Ú_no_typer÷   r    ÚgetAttributeTypeNSr¥   ÚgetAttributeTyper¾   rú   s       r   Ú_get_schemaTypezAttr._get_schemaTypeÀ  s{   € Ø× Ñ ˆØ× Ñ ˆØˆ;˜$˜,ÜˆOà×!Ñ! $Ó'ˆØˆ<ÜˆOØ×ÒØ×*Ñ*¨4×+<Ñ+<¸d¿n¹nÓMÐMà×(Ñ(¨¯©Ó7Ð7r   ) r�   rž   rŸ   Ú	__slots__r   ÚATTRIBUTE_NODEr$   rÀ   rÖ   rñ   r`   rÂ   rB   r   r½   ru   r×   rÚ   rß   Úpropertyr¾   rµ   rá   rä   r¿   rÞ   ræ   rí   r¡   rb   rü   r  r   r   r   rÇ   rÇ   R  s±   „ ðW€Ià×"Ñ"€HØ€JØ€IØ€FàŸ™¨×)CÑ)CÐDÐà+:ÀdØó'ò 3òòò/ñ
 ˜y¨)Ó4Ð4€Hˆtòò(ñ ! ¨ZÓ8Ð8€I�òòñ �k ;Ó/€Fòò",ó 8r   rÇ   rù   z True if this attribute is an ID.z'Namespace-local name of this attribute.Ú
schemaTypezSchema type for this attribute.c                   ó¼   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zdd„ZeZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z y) ÚNamedNodeMapa  The attribute list is a transient interface to the underlying
    dictionaries.  Mutations here will change the underlying element's
    dictionary.

    Ordering is imposed artificially and does not reflect the order of
    attributes as found in an input document.
    ©rï   rð   Ú_ownerElementc                 ó.   — || _         || _        || _        y r-   r  )r   ÚattrsÚattrsNSrÌ   s       r   r½   zNamedNodeMap.__init__Þ  s   € ØˆŒØˆŒØ)ˆÕr   c                 ó,   — t        | j                  «      S r-   )Úlenrï   r   s    r   Ú_get_lengthzNamedNodeMap._get_lengthã  s   € Ü�4—;‘;ÓÐr   c                 ót   — 	 | t        | j                  j                  «       «      |      S # t        $ r Y y w xY wr-   )r‹   rï   ÚkeysÚ
IndexError©r   rJ   s     r   ÚitemzNamedNodeMap.itemæ  s;   € ð	Øœ˜TŸ[™[×-Ñ-Ó/Ó0°Ñ7Ñ8Ð8øÜò 	Ùð	ús   ‚(+ «	7¶7c                 ó–   — g }| j                   j                  «       D ])  }|j                  |j                  |j                  f«       Œ+ |S r-   )rï   Úvaluesrc   r¾   rÞ   ©r   rf   rU   s      r   rŒ   zNamedNodeMap.itemsì  sA   € ØˆØ—K‘K×&Ñ&Ó(ò 	2ˆDØ�H‰H�d—m‘m T§Z¡ZÐ0Õ1ð	2àˆr   c                 ó®   — g }| j                   j                  «       D ]5  }|j                  |j                  |j                  f|j
                  f«       Œ7 |S r-   )rï   r  rc   r    r¥   rÞ   r  s      r   ÚitemsNSzNamedNodeMap.itemsNSò  sN   € ØˆØ—K‘K×&Ñ&Ó(ò 	HˆDØ�H‰H�t×(Ñ(¨$¯.©.Ð9¸4¿:¹:ÐFÕGð	Hàˆr   c                 óZ   — t        |t        «      r|| j                  v S || j                  v S r-   )Ú
isinstanceÚstrrï   rð   r�   s     r   Ú__contains__zNamedNodeMap.__contains__ø  s*   € Ü�cœ3ÔØ˜$Ÿ+™+Ð%Ð%à˜$Ÿ-™-Ð'Ð'r   c                 ó6   — | j                   j                  «       S r-   )rï   r  r   s    r   r  zNamedNodeMap.keysþ  s   € Ø�{‰{×ÑÓ!Ð!r   c                 ó6   — | j                   j                  «       S r-   )rð   r  r   s    r   ÚkeysNSzNamedNodeMap.keysNS  s   € Ø�}‰}×!Ñ!Ó#Ð#r   c                 ó6   — | j                   j                  «       S r-   )rï   r  r   s    r   r  zNamedNodeMap.values  s   € Ø�{‰{×!Ñ!Ó#Ð#r   Nc                 ó:   — | j                   j                  ||«      S r-   ©rï   Úget)r   rµ   rÞ   s      r   r$  zNamedNodeMap.get  s   € Ø�{‰{�‰˜t UÓ+Ð+r   c                 ó”   — | j                   t        |dd «      u ryt        | «      t        |«      kD  t        | «      t        |«      k  z
  S )Nrï   r   )rï   ÚgetattrÚidrw   s     r   Ú_cmpzNamedNodeMap._cmp  s?   € Ø�;‰;œ' %¨°4Ó8Ñ8Øä�t“Hœr %›yÑ(¬R°«X¼¸5»	Ñ-AÑBÐBr   c                 ó*   — | j                  |«      dk(  S r6   ©r(  rw   s     r   Ú__eq__zNamedNodeMap.__eq__  ó   € Ø�y‰y˜Ó 1Ñ$Ð$r   c                 ó*   — | j                  |«      dk\  S r6   r*  rw   s     r   Ú__ge__zNamedNodeMap.__ge__  r,  r   c                 ó*   — | j                  |«      dkD  S r6   r*  rw   s     r   Ú__gt__zNamedNodeMap.__gt__  ó   € Ø�y‰y˜Ó !Ñ#Ð#r   c                 ó*   — | j                  |«      dk  S r6   r*  rw   s     r   Ú__le__zNamedNodeMap.__le__  r,  r   c                 ó*   — | j                  |«      dk  S r6   r*  rw   s     r   Ú__lt__zNamedNodeMap.__lt__  r1  r   c                 ó^   — t        |t        «      r| j                  |   S | j                  |   S r-   )r  r@   rð   rï   )r   Úattname_or_tuples     r   Ú__getitem__zNamedNodeMap.__getitem__!  s-   € ÜÐ&¬Ô.Ø—=‘=Ð!1Ñ2Ð2à—;‘;Ð/Ñ0Ð0r   c                 óJ  — t        |t        «      r	 | j                  |   }||_        y t        |t        «      st        d«      ‚|}| j                  |«       y # t        $ rA t	        |«      }| j
                  j                  |_        | j                  |«       Y ||_        y w xY w)Nz%value must be a string or Attr object)
r  r  rï   r€   rÇ   r	  rj   ÚsetNamedItemrÞ   Ú	TypeError)r   ÚattnamerÞ   rU   s       r   Ú__setitem__zNamedNodeMap.__setitem__(  s”   € Ü�eœSÔ!ð(Ø—{‘{ 7Ñ+�ð
 ˆD�Jä˜e¤TÔ*ÜÐ GÓHÐHØˆDØ×Ñ˜dÕ#øô ò (Ü˜G“}�Ø%)×%7Ñ%7×%EÑ%E�Ô"Ø×!Ñ! $Õ'ØˆD�Jð	(ús   ’A ÁA B"Â!B"c                 ó@   — 	 | j                   |   S # t        $ r Y y w xY wr-   )rï   r€   ©r   rµ   s     r   ÚgetNamedItemzNamedNodeMap.getNamedItem7  s(   € ð	Ø—;‘;˜tÑ$Ð$øÜò 	Ùð	ús   ‚ ‘	œc                 óD   — 	 | j                   ||f   S # t        $ r Y y w xY wr-   )rð   r€   ©r   r    r¥   s      r   ÚgetNamedItemNSzNamedNodeMap.getNamedItemNS=  s-   € ð	Ø—=‘= ,°	Ð!:Ñ;Ð;øÜò 	Ùð	ús   ‚ “	žc                 ó,  — | j                  |«      }|�dt        | j                  «       | j                  |j                  = | j
                  |j                  |j                  f= t        |d«      rd |_	        |S t        j                  j                  «       ‚©NrÌ   )r@  rN   r	  rï   r¾   rð   r    r¥   rŠ   rÌ   rC   rD   rL   ©r   rµ   Úns      r   ÚremoveNamedItemzNamedNodeMap.removeNamedItemC  sw   € Ø×Ñ˜dÓ#ˆØˆ=Ü˜D×.Ñ.Ô/Ø—‘˜AŸJ™JÐ'Ø—‘˜qŸ~™~¨q¯{©{Ð;Ð<Ü�q˜.Ô)Ø!%�”ØˆHä—'‘'×%Ñ%Ó'Ð'r   c                 ó.  — | j                  ||«      }|�dt        | j                  «       | j                  |j                  |j
                  f= | j                  |j                  = t        |d«      rd |_	        |S t        j                  j                  «       ‚rE  )rC  rN   r	  rð   r    r¥   rï   r¾   rŠ   rÌ   rC   rD   rL   ©r   r    r¥   rG  s       r   ÚremoveNamedItemNSzNamedNodeMap.removeNamedItemNSO  sy   € Ø×Ñ ¨iÓ8ˆØˆ=Ü˜D×.Ñ.Ô/Ø—‘˜qŸ~™~¨q¯{©{Ð;Ð<Ø—‘˜AŸJ™JÐ'Ü�q˜.Ô)Ø!%�”ØˆHä—'‘'×%Ñ%Ó'Ð'r   c                 óÈ  — t        |t        «      s6t        j                  j	                  t        |«      ›dt        | «      ›�«      ‚| j                  j                  |j                  «      }|r|j                  «        || j                  |j                  <   || j                  |j                  |j                  f<   | j                  |_        t        |j                  «       |S rW   )r  rÇ   rC   rD   rE   rF   rï   r$  rµ   rb   rð   r    r¥   r	  rÌ   rN   )r   rU   r†   s      r   r:  zNamedNodeMap.setNamedItem[  s§   € Ü˜$¤Ô%Ü—'‘'×-Ñ-Ü.2°4­j¼$¸t¼*ÐEóGð Gà�k‰k�o‰o˜dŸi™iÓ(ˆÙØ�J‰JŒLØ!%ˆ�‰�D—I‘IÑØ=Aˆ�‰�t×(Ñ(¨$¯.©.Ð9Ñ:Ø ×.Ñ.ˆÔÜ˜×)Ñ)Ô*Øˆ
r   c                 ó$   — | j                  |«      S r-   )r:  ©r   rU   s     r   ÚsetNamedItemNSzNamedNodeMap.setNamedItemNSh  s   € Ø× Ñ  Ó&Ð&r   c                 óX   — | |   }t        |j                  «       |j                  «        y r-   )rN   rÌ   rb   )r   r7  rU   s      r   Ú__delitem__zNamedNodeMap.__delitem__k  s$   € ØÐ$Ñ%ˆÜ˜×)Ñ)Ô*Ø�‰�r   c                 óH   — | j                   | j                  | j                  fS r-   r  r   s    r   Ú__getstate__zNamedNodeMap.__getstate__p  s   € Ø�{‰{˜DŸM™M¨4×+=Ñ+=Ð=Ð=r   c                 ó.   — |\  | _         | _        | _        y r-   r  ©r   Ústates     r   Ú__setstate__zNamedNodeMap.__setstate__s  s   € Ø9>Ñ6ˆŒ�T”] DÕ$6r   r-   )!r�   rž   rŸ   Ú__doc__r  r½   r  r  rŒ   r  r  r  r   r  r$  Ú__len__r(  r+  r.  r0  r3  r5  r8  r=  r@  rC  rH  rK  r:  rO  rQ  rS  rW  r   r   r   r  r  Ó  s�   „ ñð 8€Iò*ò
 òòòò(ò"ò$ò$ó,ð €GòCò%ò%ò$ò%ò$ò1ò$òòò
(ò
(òò'òò
>ó?r   r  Úlengthz$Number of nodes in the NamedNodeMap.c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚTypeInfo©Ú	namespacerµ   c                 ó    — || _         || _        y r-   r]  )r   r^  rµ   s      r   r½   zTypeInfo.__init__  s   € Ø"ˆŒØˆ�	r   c                 óÐ   — | j                   r4d| j                  j                  ›d| j                  ›d| j                   ›d�S d| j                  j                  ›d| j                  ›d�S )Nrª   ú z (from z)>r¬   )r^  Ú	__class__r�   rµ   r   s    r   Ú__repr__zTypeInfo.__repr__ƒ  sM   € Ø�>‹>Ø*.¯.©.×*AÓ*AÀ4Ç9Ã9Ø*.¯.«.ð:ð :ð ð !%§¡× 7Ó 7¸¿»ÐCÐCr   c                 ó   — | j                   S r-   )rµ   r   s    r   rÚ   zTypeInfo._get_nameŠ  ó   € Ø�y‰yÐr   c                 ó   — | j                   S r-   )r^  r   s    r   Ú_get_namespacezTypeInfo._get_namespace�  rØ   r   N)r�   rž   rŸ   r  r½   rc  rÚ   rg  r   r   r   r\  r\  |  s   „ Ø#€IòòDòór   r\  c                   ój  — e Zd ZdZej
                  ZdZeZ	dZ
ej
                  ej                  ej                  ej                  ej                  ej                  fZeddfd„Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZd„ Zd„ Z d„ Z!e!Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'dd„Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-y)ÚElement)rj   rG   r²   r¾   r¡   r    rË   r/   rï   rð   rP   rQ   Nr   c                 ó®   — d | _         d | _        |x| _        | _        || _        || _        t        «       | _        d x| _        | _	        d | _
        d | _        y r-   )rj   rG   r²   r¾   r¡   r    r“   r/   rP   rQ   rï   rð   )r   r²   r    r¡   r¥   s        r   r½   zElement.__init__£  sW   € à!ˆÔØˆŒØ'.Ð.ˆŒ�t”}ØˆŒØ(ˆÔÜ"›*ˆŒØ26Ð6ˆÔ˜4Ô/ð ˆŒØˆ�r   c                 ó:   — | j                   €i | _         i | _        y y r-   )rï   rð   r   s    r   Ú_ensure_attributeszElement._ensure_attributes¸  s   € Ø�;‰;ÐØˆDŒKØˆD�Mð r   c                 óx   — 	 | j                   S # t        $ r" | j                  j                  dd«      d   cY S w xY wrÑ   )rË   r   r²   rÓ   r   s    r   ru   zElement._get_localName½  s<   € ð	2Ø—?‘?Ð"øÜò 	2Ø—<‘<×%Ñ% c¨1Ó-¨bÑ1Ò1ð	2úrÔ   c                 ó   — | j                   S r-   ©r²   r   s    r   Ú_get_tagNamezElement._get_tagNameÃ  rç   r   c                 óÒ   — | j                   �8t        | j                   j                  «       «      D ]  }|j                  «        Œ d | _         d | _        t
        j                  | «       y r-   )rï   r‹   r  rb   rð   r   )r   Úattrs     r   rb   zElement.unlinkÆ  sP   € Ø�;‰;Ð"Ü˜TŸ[™[×/Ñ/Ó1Ó2ò �Ø—‘•ðàˆŒØˆŒÜ�‰�DÕr   c                 ón   — | j                   €y	 | j                   |   j                  S # t        $ r Y yw xY w)a†  Returns the value of the specified attribute.

        Returns the value of the element's attribute named attname as
        a string. An empty string is returned if the element does not
        have such an attribute. Note that an empty string may also be
        returned as an explicitly given attribute value, use the
        hasAttribute method to distinguish these two cases.
        r   )rï   rÞ   r€   )r   r<  s     r   ÚgetAttributezElement.getAttributeÎ  s=   € ð �;‰;ÐØð	Ø—;‘;˜wÑ'×-Ñ-Ð-øÜò 	Ùð	ús   �( ¨	4³4c                 ór   — | j                   €y	 | j                   ||f   j                  S # t        $ r Y yw xY wr   )rð   rÞ   r€   rB  s      r   ÚgetAttributeNSzElement.getAttributeNSÞ  s@   € Ø�=‰=Ð Øð	Ø—=‘= ,°	Ð!:Ñ;×AÑAÐAøÜò 	Ùð	ús   �* ª	6µ6c                 óò   — | j                  |«      }|€5t        |«      }||_        | j                  |_        | j	                  |«       y ||j                  k7  r ||_        |j
                  rt        | «       y y y r-   )ÚgetAttributeNoderÇ   rÞ   rj   ÚsetAttributeNoderù   rN   )r   r<  rÞ   rr  s       r   ÚsetAttributezElement.setAttributeæ  so   € Ø×$Ñ$ WÓ-ˆØˆ<Ü˜“=ˆDØˆDŒJØ!%×!3Ñ!3ˆDÔØ×!Ñ! $Õ'Ø�d—j‘jÒ ØˆDŒJØ�yŠyÜ Õ%ð ð !r   c                 óN  — t        |«      \  }}| j                  ||«      }|€8t        ||||«      }||_        | j                  |_        | j                  |«       y ||j                  k7  r||_        |j                  rt        | «       |j                  |k7  r||_        ||_	        y y r-   )
Ú_nssplitÚgetAttributeNodeNSrÇ   rÞ   rj   ry  rù   rN   r¡   r¾   )r   r    ÚqualifiedNamerÞ   r¡   Ú	localnamerr  s          r   ÚsetAttributeNSzElement.setAttributeNSò  sœ   € Ü$ ]Ó3Ñˆ�	Ø×&Ñ& |°YÓ?ˆØˆ<Ü˜ |°YÀÓGˆDØˆDŒJØ!%×!3Ñ!3ˆDÔØ×!Ñ! $Õ'à˜Ÿ
™
Ò"Ø"�”
Ø—9’9Ü# DÔ)Ø�{‰{˜fÒ$Ø$�”Ø -�•ð %r   c                 óR   — | j                   €y | j                   j                  |«      S r-   r#  )r   Úattrnames     r   rx  zElement.getAttributeNode  s"   € Ø�;‰;ÐØØ�{‰{�‰˜xÓ(Ð(r   c                 óV   — | j                   €y | j                   j                  ||f«      S r-   )rð   r$  rB  s      r   r}  zElement.getAttributeNodeNS  s)   € Ø�=‰=Ð ØØ�}‰}× Ñ  ,°	Ð!:Ó;Ð;r   c                 ó¶  — |j                   d | fvrt        j                  j                  d«      ‚| j	                  «        | j
                  j                  |j                  d «      }|�| j                  |«       | j                  j                  |j                  |j                  fd «      }|�||ur| j                  |«       t        | |«       ||ur|S ||ur|S y )Nzattribute node already owned)rÌ   rC   rD   ÚInuseAttributeErrrl  rï   r$  rµ   ÚremoveAttributeNoderð   r    r¥   Ú_set_attribute_node)r   rr  Úold1Úold2s       r   ry  zElement.setAttributeNode  sÍ   € Ø×Ñ T¨4 LÑ0Ü—'‘'×+Ñ+Ð,JÓKÐKØ×ÑÔ!Ø�{‰{�‰˜tŸy™y¨$Ó/ˆØÐØ×$Ñ$ TÔ*Ø�}‰}× Ñ  $×"3Ñ"3°T·^±^Ð!DÀdÓKˆØÐ ¨DÑ 0Ø×$Ñ$ TÔ*Ü˜D $Ô'à�tÑð ˆKØ�tÑØˆKð r   c                 óð   — | j                   €t        j                  j                  «       ‚	 | j                  |   }| j                  |«       y # t
        $ r t        j                  j                  «       ‚w xY wr-   )rð   rC   rD   rL   rï   r€   r†  )r   rµ   rr  s      r   ÚremoveAttributezElement.removeAttribute"  sf   € Ø�=‰=Ð Ü—'‘'×%Ñ%Ó'Ð'ð	(Ø—;‘;˜tÑ$ˆDð 	× Ñ  Õ&øô ò 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   ¬A Á(A5c                 óô   — | j                   €t        j                  j                  «       ‚	 | j                   ||f   }| j                  |«       y # t        $ r t        j                  j                  «       ‚w xY wr-   )rð   rC   rD   rL   r€   r†  )r   r    r¥   rr  s       r   ÚremoveAttributeNSzElement.removeAttributeNS+  sk   € Ø�=‰=Ð Ü—'‘'×%Ñ%Ó'Ð'ð	(Ø—=‘= ,°	Ð!:Ñ;ˆDð 	× Ñ  Õ&øô ò 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   ¬A Á(A7c                 ó(  — |€t         j                  j                  «       ‚	 | j                  |j                      t        | «       |j                  «        | j                  |_        |S # t
        $ r t         j                  j                  «       ‚w xY wr-   )	rC   rD   rL   rï   rµ   r€   rN   rb   rj   rN  s     r   r†  zElement.removeAttributeNode4  s{   € Øˆ<Ü—'‘'×%Ñ%Ó'Ð'ð	(Ø�K‰K˜Ÿ	™	Ò"ô 	˜ÔØ�‰Œð "×/Ñ/ˆÔØˆøô ò 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   ¢A) Á)(Bc                 ó8   — | j                   €y|| j                   v S )z¾Checks whether the element has an attribute with the specified name.

        Returns True if the element has an attribute with the specified name.
        Otherwise, returns False.
        F©rï   r?  s     r   ÚhasAttributezElement.hasAttributeD  s    € ð �;‰;ÐØØ�t—{‘{Ð"Ð"r   c                 ó<   — | j                   €y||f| j                   v S ©NF)rð   rB  s      r   ÚhasAttributeNSzElement.hasAttributeNSN  s#   € Ø�=‰=Ð ØØ˜iÐ(¨D¯M©MÐ9Ð9r   c                 ó,   — t        | |t        «       «      S )z¶Returns all descendant elements with the given tag name.

        Returns the list of all descendant elements (not direct children
        only) with the specified tag name.
        ©r³   r“   r?  s     r   ÚgetElementsByTagNamezElement.getElementsByTagNameS  s   € ô /¨t°T¼8»:ÓFÐFr   c                 ó.   — t        | ||t        «       «      S r-   ©r¸   r“   rB  s      r   ÚgetElementsByTagNameNSzElement.getElementsByTagNameNS[  ó   € Ü1Ø�, 	¬8«:ó7ð 	7r   c                 ó6   — d| j                   t        | «      fz  S )Nz<DOM Element: %s at %#x>)r²   r'  r   s    r   rc  zElement.__repr___  s   € Ø)¨T¯\©\¼2¸d»8Ð,DÑDÐDr   c                 ó,  — |j                  |dz   | j                  z   «       | j                  «       }|j                  «       D ]@  }|j                  d|z  «       t	        |||   j
                  «       |j                  d«       ŒB | j                  rð|j                  d«       t        | j                  «      dk(  r[| j                  d   j                  t        j                  t        j                  fv r"| j                  d   j                  |ddd«       nJ|j                  |«       | j                  D ]  }|j                  |||z   ||«       Œ |j                  |«       |j                  d| j                  ›d|›�«       y
|j                  d	|z  «       y
)z®Write an XML element to a file-like object

        Write the element to the writer object that must provide
        a write method (e.g. a file or StringIO object).
        rª   z %s="r«   r¬   r>   r   r   z</z/>%sN)r®   r²   Ú_get_attributesr  r¯   rÞ   r/   r  r$   r   r`   rÁ   r&   )r   r+   r)   Ú	addindentr*   r  Úa_namerU   s           r   r&   zElement.writexmlb  sJ  € ð 	�‰�V˜C‘Z $§,¡,Ñ.Ô/à×$Ñ$Ó&ˆà—j‘j“lò 	ˆFØ�L‰L˜ FÑ*Ô+Ü˜  f¡× 3Ñ 3Ô4Ø�L‰L˜Õð	ð �?Š?Ø�L‰L˜ÔÜ�D—O‘OÓ$¨Ò)Ø—‘ Ñ"×+Ñ+ÜŸ™¬×(?Ñ(?ð0Añ Aà—‘ Ñ"×+Ñ+¨F°B¸¸BÕ?à—‘˜TÔ"Ø ŸO™Oò M�DØ—M‘M &¨&°Ñ*:¸IÀtÕLðMà—‘˜VÔ$Ø�LŠL d§l£l±DÐ9Õ:à�L‰L˜ ™Õ'r   c                 ód   — | j                  «        t        | j                  | j                  | «      S r-   )rl  r  rï   rð   r   s    r   rž  zElement._get_attributes‚  s%   € Ø×ÑÔ!Ü˜DŸK™K¨¯©¸Ó=Ð=r   c                 ó   — | j                   ryyrö   r�  r   s    r   ÚhasAttributeszElement.hasAttributes†  s   € Ø�;Š;Øàr   c                 óH   — | j                  |«      }| j                  |«       y r-   )rx  ÚsetIdAttributeNode)r   rµ   ÚidAttrs      r   ÚsetIdAttributezElement.setIdAttributeŽ  s    € Ø×&Ñ& tÓ,ˆØ×Ñ Õ'r   c                 óJ   — | j                  ||«      }| j                  |«       y r-   )r}  r¥  )r   r    r¥   r¦  s       r   ÚsetIdAttributeNSzElement.setIdAttributeNS’  s"   € Ø×(Ñ(¨°yÓAˆØ×Ñ Õ'r   c                 ór  — |�| j                  |j                  «      st        j                  j	                  «       ‚t        | «      �t        j                  j                  «       ‚|j                  sGd|_        | xj                  dz  c_        | j                  xj                  dz  c_
        t        | «       y y )NTr>   )ry   rÌ   rC   rD   rL   Ú_get_containing_entrefÚNoModificationAllowedErrrñ   rò   rj   ró   rN   )r   r¦  s     r   r¥  zElement.setIdAttributeNode–  sŒ   € Øˆ> §¡°×1DÑ1DÔ!EÜ—'‘'×%Ñ%Ó'Ð'Ü! $Ó'Ð3Ü—'‘'×2Ñ2Ó4Ð4Ø�}Š}Ø ˆFŒMØ× Ò  AÑ%Õ Ø×Ñ×.Ò.°!Ñ3Õ.Ü˜DÕ!ð	 r   ©r   r   r   ).r�   rž   rŸ   r  r   rd   r$   r¿   rþ   r  rò   rÃ   rÄ   r`   rÁ   rÂ   rB   r   r½   rl  ru   rp  rb   rt  rv  rz  r€  rx  r}  ry  ÚsetAttributeNodeNSr‹  r�  r†  ÚremoveAttributeNodeNSr‘  r”  r—  rš  rc  r&   rž  r£  r§  r©  r¥  r   r   r   ri  ri  ’  s   „ ð1€Ið × Ñ €HØ€IØ€Jà€Oà×*Ñ*Ø×9Ñ9Ø×*Ñ*ØŸ™Ø×0Ñ0Ø×3Ñ3ð5Ðð .=ÀTØóò*ò
2òòòò ò
&ò.ò")ò
<ò
ð& *Ðò'ò'òð 0Ðò#ò:ò
Gò7òEó(ò@>òò(ò(ó	"r   ri  rÀ   z*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.c                 óÄ   — t        | «       | j                  «        || j                  |j                  <   || j                  |j
                  |j                  f<   | |_        y r-   )rN   rl  rï   rµ   rð   r    r¥   rÌ   )Úelementrr  s     r   r‡  r‡  §  sQ   € Ü�GÔØ×ÑÔ Ø $€G‡N�N�4—9‘9ÑØ<@€G×Ñ�d×'Ñ'¨¯©Ð8Ñ9ð
  €DÕr   c                   ó^   — e Zd ZdZdZdZ e«       ZdZdZ	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zy)Ú	Childlessz�Mixin that makes childless-ness easy to implement and avoids
    the complexity of the Node methods that deal with children.
    r   Nc                  ó   — y r-   r   r   s    r   r7   zChildless._get_firstChild½  r   r   c                  ó   — y r-   r   r   s    r   r;   zChildless._get_lastChildÀ  r   r   c                 óZ   — t         j                  j                  | j                  dz   «      ‚)Nz nodes cannot have children©rC   rD   rE   r¾   rN  s     r   rI   zChildless.appendChildÃ  ó&   € Ü�g‰g×)Ñ)Ø�M‰MÐ9Ñ9ó;ð 	;r   c                  ó   — yr“  r   r   s    r   r0   zChildless.hasChildNodesÇ  ó   € Ør   c                 óZ   — t         j                  j                  | j                  dz   «      ‚©Nz nodes do not have childrenr·  ©r   rR   rS   s      r   rA   zChildless.insertBeforeÊ  r¸  r   c                 óZ   — t         j                  j                  | j                  dz   «      ‚r¼  )rC   rD   rL   r¾   r^   s     r   rH   zChildless.removeChildÎ  s&   € Ü�g‰g×!Ñ!Ø�M‰MÐ9Ñ9ó;ð 	;r   c                  ó   — y r-   r   r   s    r   re   zChildless.normalizeÒ  s   € àr   c                 óZ   — t         j                  j                  | j                  dz   «      ‚r¼  r·  ©r   rR   rZ   s      r   r[   zChildless.replaceChildÖ  r¸  r   )r�   rž   rŸ   rX  r  rÀ   ÚEmptyNodeListr/   r¢   r¤   r7   r;   rI   r0   rA   rH   re   r[   r   r   r   r³  r³  ²  sL   „ ñð €Ià€JÙ“€JØ€JØ€Iòòò;òò;ò;òó;r   r³  c                   ór   — e Zd Zej                  ZdZd„ Zd„ Zd„ Z	 e
ee	«      Zd„ Zd„ Z e
ee«      Zd	d„Zy)
ÚProcessingInstruction©Útargetra   c                 ó    — || _         || _        y r-   rÅ  )r   rÆ  ra   s      r   r½   zProcessingInstruction.__init__ß  s   € ØˆŒØˆ�	r   c                 ó   — | j                   S r-   ©ra   r   s    r   Ú_get_nodeValuez$ProcessingInstruction._get_nodeValueä  re  r   c                 ó   — || _         y r-   rÉ  rÝ   s     r   Ú_set_nodeValuez$ProcessingInstruction._set_nodeValueæ  s	   € Øˆ�	r   c                 ó   — | j                   S r-   ©rÆ  r   s    r   Ú_get_nodeNamez#ProcessingInstruction._get_nodeNameë  râ   r   c                 ó   — || _         y r-   rÎ  rÝ   s     r   Ú_set_nodeNamez#ProcessingInstruction._set_nodeNameí  s	   € Øˆ�r   c           	      ód   — |j                  |›d| j                  ›d| j                  ›d|›�«       y )Nz<?ra  ú?>)r®   rÆ  ra   ©r   r+   r)   rŸ  r*   s        r   r&   zProcessingInstruction.writexmlñ  s   € Ø�‰ª¨t¯{«{¸D¿I»IÁtÐLÕMr   Nr­  )r�   rž   rŸ   r   rÃ   r$   r  r½   rÊ  rÌ  r  r¿   rÏ  rÑ  r¾   r&   r   r   r   rÄ  rÄ  Û  sI   „ Ø×/Ñ/€HØ"€Iòò
òá˜¨Ó8€Iòòá˜ }Ó5€HôNr   rÄ  c                   óf   — e Zd ZdZd„ Zd„ ZeZd„ Zd„ Z e	ee«      xZ
Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zy)ÚCharacterData)Ú_datarj   rG   rQ   rP   c                 ót   — d x| _         | _        d x| _        | _        d| _        t
        j                  | «       y r   )rj   rG   rQ   rP   r×  r   r½   r   s    r   r½   zCharacterData.__init__ø  s4   € Ø/3Ð3ˆÔ˜Tœ_Ø26Ð6ˆÔ˜tÔ/ØˆŒ
Ü�‰�dÕr   c                 ó,   — t        | j                  «      S r-   )r  ra   r   s    r   r  zCharacterData._get_lengthþ  ó   € Ü�4—9‘9‹~Ðr   c                 ó   — | j                   S r-   ©r×  r   s    r   Ú	_get_datazCharacterData._get_data  rÛ   r   c                 ó   — || _         y r-   rÜ  ©r   ra   s     r   Ú	_set_datazCharacterData._set_data  s	   € Øˆ�
r   c                 ó„   — | j                   }t        |«      dkD  rd}nd}d| j                  j                  ›d|dd ›|›d�S )Né
   z...r   z<DOM z node "r   z">)ra   r  rb  r�   )r   ra   Ú	dotdotdots      r   rc  zCharacterData.__repr__	  sB   € Ø�y‰yˆÜˆt‹9�rŠ>Ø‰IàˆIøà�N‰N×#Ó# T¨!¨B¡Z²ð<ð 	<r   c                 ó$  — |dk  rt         j                  j                  d«      ‚|t        | j                  «      k\  rt         j                  j                  d«      ‚|dk  rt         j                  j                  d«      ‚| j                  |||z    S ©Nr   úoffset cannot be negativeú#offset cannot be beyond end of datazcount cannot be negative©rC   rD   ÚIndexSizeErrr  ra   ©r   ÚoffsetÚcounts      r   ÚsubstringDatazCharacterData.substringData  sw   € Ø�AŠ:Ü—'‘'×&Ñ&Ð'BÓCÐCØ”S˜Ÿ™“^Ò#Ü—'‘'×&Ñ&Ð'LÓMÐMØ�1Š9Ü—'‘'×&Ñ&Ð'AÓBÐBØ�y‰y˜  u¡Ð-Ð-r   c                 ó,   — | j                   |z   | _         y r-   rÉ  )r   Úargs     r   Ú
appendDatazCharacterData.appendData  s   € Ø—I‘I ‘Oˆ�	r   c                 ó  — |dk  rt         j                  j                  d«      ‚|t        | j                  «      k\  rt         j                  j                  d«      ‚|r(| j                  d | ›|›| j                  |d  ›�| _        y y )Nr   ræ  rç  rè  )r   rë  rï  s      r   Ú
insertDatazCharacterData.insertData  ss   € Ø�AŠ:Ü—'‘'×&Ñ&Ð'BÓCÐCØ”S˜Ÿ™“^Ò#Ü—'‘'×&Ñ&Ð'LÓMÐMÙà—	‘	˜'˜6Ñ"¡C¨¯©°6°7Ñ);ð=ˆD�Ið r   c                 óV  — |dk  rt         j                  j                  d«      ‚|t        | j                  «      k\  rt         j                  j                  d«      ‚|dk  rt         j                  j                  d«      ‚|r(| j                  d | | j                  ||z   d  z   | _        y y rå  rè  rê  s      r   Ú
deleteDatazCharacterData.deleteData'  s�   € Ø�AŠ:Ü—'‘'×&Ñ&Ð'BÓCÐCØ”S˜Ÿ™“^Ò#Ü—'‘'×&Ñ&Ð'LÓMÐMØ�1Š9Ü—'‘'×&Ñ&Ð'AÓBÐBÙØŸ	™	 ' 6Ð*¨T¯Y©Y°v¸e±|°}Ð-EÑEˆD�Ið r   c                 ó\  — |dk  rt         j                  j                  d«      ‚|t        | j                  «      k\  rt         j                  j                  d«      ‚|dk  rt         j                  j                  d«      ‚|r+| j                  d | ›|›| j                  ||z   d  ›�| _        y y rå  rè  )r   rë  rì  rï  s       r   ÚreplaceDatazCharacterData.replaceData1  s•   € Ø�AŠ:Ü—'‘'×&Ñ&Ð'BÓCÐCØ”S˜Ÿ™“^Ò#Ü—'‘'×&Ñ&Ð'LÓMÐMØ�1Š9Ü—'‘'×&Ñ&Ð'AÓBÐBÙà—	‘	˜'˜6Ñ"¡C¨¯©°6¸%±<°=Ñ)AðCˆD�Ið r   N)r�   rž   rŸ   r  r½   r  rY  rÝ  rà  r  ra   r¿   rc  rí  rð  rò  rô  rö  r   r   r   rÖ  rÖ  õ  sS   „ ØW€Iòòà€Gòòñ   	¨9Ó5Ð5€Dˆ9ò<ò.ò$ò=òFó	Cr   rÖ  zLength of the string data.c                   óP   — e Zd ZdZej
                  ZdZdZd„ Z	d	d„Z
d„ Zd„ Zd„ Zy)
rÎ   r   z#textNc                 óä  — |dk  s|t        | j                  «      kD  rt        j                  j	                  d«      ‚| j                  «       }| j                  |d  |_        | j                  |_        | j                  }| j                  rR| | j                  j                  v r:|€| j                  j                  |«       n| j                  j                  ||«       | j                  d | | _        |S )Nr   zillegal offset value)r  ra   rC   rD   ré  rb  rj   rP   rG   r/   rI   rA   )r   rë  ÚnewTextÚnexts       r   Ú	splitTextzText.splitTextF  s¿   € Ø�AŠ:˜¤# d§i¡i£.Ò0Ü—'‘'×&Ñ&Ð'=Ó>Ð>Ø—.‘.Ó"ˆØ—y‘y  Ð)ˆŒØ $× 2Ñ 2ˆÔØ×ÑˆØ�?Š?˜t t§¡×'AÑ'AÑAØˆ|Ø—‘×+Ñ+¨GÕ4à—‘×,Ñ,¨W°dÔ;Ø—I‘I˜g˜vÐ&ˆŒ	Øˆr   c                 ó<   — t        ||›| j                  ›|›�«       y r-   )r¯   ra   rÔ  s        r   r&   zText.writexmlU  s   € Ü�F©°·	²	¹4Ð@ÕAr   c                 óØ  — | j                   g}| j                  }|�Y|j                  t        j                  t        j
                  fv r)|j                  d|j                   «       |j                  }nn|�ŒY| j                  }|�X|j                  t        j                  t        j
                  fv r(|j                  |j                   «       |j                  }nn|�ŒXdj                  |«      S )Nr   r   )
ra   rQ   r$   r   r`   rÁ   rO   rP   rc   Újoin)r   rf   rG  s      r   Ú_get_wholeTextzText._get_wholeTextZ  s¿   € Ø�Y‰YˆKˆØ× Ñ ˆØˆmØ�z‰zœdŸn™n¬d×.EÑ.EÐFÑFØ—‘˜˜AŸF™FÔ#Ø×%Ñ%‘àð ‰mð ×ÑˆØˆmØ�z‰zœdŸn™n¬d×.EÑ.EÐFÑFØ—‘˜Ÿ™Ô Ø—M‘M‘àð ‰mð �w‰w�q‹zÐr   c                 óÐ  — | j                   }| j                  }|�P|j                  t        j                  t        j
                  fv r |j                  }|j                  |«       |}nn|�ŒP| j                  }|s|j                  | «       |�P|j                  t        j                  t        j
                  fv r |j                  }|j                  |«       |}nn|�ŒP|r	|| _        | S y r-   )	rG   rQ   r$   r   r`   rÁ   rH   rP   ra   )r   Úcontentr´   rG  rú  s        r   ÚreplaceWholeTextzText.replaceWholeTextl  sØ   € ð —‘ˆØ× Ñ ˆØˆmØ�z‰zœdŸn™n¬d×.EÑ.EÐFÑFØ×(Ñ(�Ø×"Ñ" 1Ô%Ø‘àð ‰mð ×ÑˆÙØ×Ñ˜tÔ$ØˆmØ�z‰zœdŸn™n¬d×.EÑ.EÐFÑFØ—}‘}�Ø×"Ñ" 1Ô%Ø‘àð ‰mñ ØˆDŒIØˆKàr   c                 ó°   — | j                   j                  «       ryt        | «      }|€y| j                  j	                  |«      }|€y|j                  «       S r“  )ra   ÚstripÚ_get_containing_elementrj   r÷   ÚisElementContent)r   rô   rû   s      r   Ú!_get_isWhitespaceInElementContentz&Text._get_isWhitespaceInElementContentˆ  sR   € Ø�9‰9�?‰?ÔØÜ& tÓ,ˆØˆ<ØØ×!Ñ!×0Ñ0°Ó6ˆØˆ<Øà×(Ñ(Ó*Ð*r   r­  )r�   rž   rŸ   r  r   r`   r$   r¾   rÀ   rû  r&   rÿ  r  r  r   r   r   rÎ   rÎ   ?  s4   „ Ø€Ià�~‰~€HØ€HØ€JòóBò
ò$ó8
+r   rÎ   ÚisWhitespaceInElementContentzKTrue iff this text node contains only whitespace and is in element content.Ú	wholeTextz.The text of all logically-adjacent text nodes.c                 ó|   — | j                   }|�.|j                  t        j                  k(  r|S |j                   }|�Œ.y r-   )rG   r$   r   rd   ©rU   rT   s     r   r  r  ›  s<   € Ø�‰€AØ
ˆ-Ø�:‰:œ×*Ñ*Ò*ØˆHØ�L‰Lˆð ‰-ð r   c                 ó|   — | j                   }|�.|j                  t        j                  k(  r|S |j                   }|�Œ.y r-   )rG   r$   r   rÂ   r  s     r   r«  r«  £  s<   € Ø�‰€AØ
ˆ-Ø�:‰:œ×3Ñ3Ò3ØˆHØ�L‰Lˆð ‰-ð r   c                   ó6   — e Zd Zej                  ZdZd„ Zdd„Zy)ÚCommentz#commentc                 ó<   — t         j                  | «       || _        y r-   )rÖ  r½   r×  rß  s     r   r½   zComment.__init__°  s   € Ü×Ñ˜tÔ$Øˆ�
r   c                 ó|   — d| j                   v rt        d«      ‚|j                  |›d| j                   ›d|›�«       y )Nz--z%'--' is not allowed in a comment nodez<!--z-->)ra   rK   r®   rÔ  s        r   r&   zComment.writexml´  s1   € Ø�4—9‘9ÑÜÐDÓEÐEØ�‰ª°·	³	¹4Ð@ÕAr   Nr­  )	r�   rž   rŸ   r   rÄ   r$   r¾   r½   r&   r   r   r   r  r  ¬  s   „ Ø× Ñ €HØ€HòôBr   r  c                   ó4   — e Zd ZdZej
                  ZdZdd„Zy)ÚCDATASectionr   z#cdata-sectionc                 ó’   — | j                   j                  d«      dk\  rt        d«      ‚|j                  d| j                   z  «       y )Nz]]>r   z$']]>' not allowed in a CDATA sectionz<![CDATA[%s]]>)ra   ÚfindrK   r®   rÔ  s        r   r&   zCDATASection.writexmlÀ  s9   € Ø�9‰9�>‰>˜%Ó  AÒ%ÜÐCÓDÐDØ�‰Ð%¨¯	©	Ñ1Õ2r   Nr­  )	r�   rž   rŸ   r  r   rÁ   r$   r¾   r&   r   r   r   r  r  º  s   „ Ø€Ià×&Ñ&€HØ€Hô3r   r  c                   ó`   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)ÚReadOnlySequentialNamedNodeMap©Ú_seqc                 ó   — || _         y r-   r  )r   Úseqs     r   r½   z'ReadOnlySequentialNamedNodeMap.__init__É  s	   € àˆ�	r   c                 ó,   — t        | j                  «      S r-   ©r  r  r   s    r   rY  z&ReadOnlySequentialNamedNodeMap.__len__Í  rÚ  r   c                 ó,   — t        | j                  «      S r-   r  r   s    r   r  z*ReadOnlySequentialNamedNodeMap._get_lengthÐ  rÚ  r   c                 óL   — | j                   D ]  }|j                  |k(  sŒ|c S  y r-   )r  r¾   rF  s      r   r@  z+ReadOnlySequentialNamedNodeMap.getNamedItemÓ  s&   € Ø—‘ò 	ˆAØ�z‰z˜TÓ!Ø’ñ	r   c                 ól   — | j                   D ]%  }|j                  |k(  sŒ|j                  |k(  sŒ#|c S  y r-   )r  r    r¥   rJ  s       r   rC  z-ReadOnlySequentialNamedNodeMap.getNamedItemNSØ  s1   € Ø—‘ò 	ˆAØ�~‰~ Ó-°!·+±+ÀÓ2JØ’ñ	r   c                 ó‚   — t        |t        «      r | j                  |Ž }n| j                  |«      }|€t	        |«      ‚|S r-   )r  r@   rC  r@  r€   )r   Úname_or_tuplerU   s      r   r8  z*ReadOnlySequentialNamedNodeMap.__getitem__Ý  sC   € Ü�m¤UÔ+Ø&�4×&Ñ&¨Ð6‰Dà×$Ñ$ ]Ó3ˆDØˆ<Ü˜=Ó)Ð)Øˆr   c                 óL   — |dk  ry 	 | j                   |   S # t        $ r Y y w xY wr6   )r  r  r  s     r   r  z#ReadOnlySequentialNamedNodeMap.itemæ  s2   € Ø�1Š9Øð	Ø—9‘9˜UÑ#Ð#øÜò 	Ùð	ús   ˆ —	#¢#c                 ó@   — t         j                  j                  d«      ‚©Nz"NamedNodeMap instance is read-only©rC   rD   r¬  r?  s     r   rH  z.ReadOnlySequentialNamedNodeMap.removeNamedItemî  ó   € Ü�g‰g×.Ñ.Ø0ó2ð 	2r   c                 ó@   — t         j                  j                  d«      ‚r$  r%  rB  s      r   rK  z0ReadOnlySequentialNamedNodeMap.removeNamedItemNSò  r&  r   c                 ó@   — t         j                  j                  d«      ‚r$  r%  rN  s     r   r:  z+ReadOnlySequentialNamedNodeMap.setNamedItemö  r&  r   c                 ó@   — t         j                  j                  d«      ‚r$  r%  rN  s     r   rO  z-ReadOnlySequentialNamedNodeMap.setNamedItemNSú  r&  r   c                 ó   — | j                   gS r-   r  r   s    r   rS  z+ReadOnlySequentialNamedNodeMap.__getstate__þ  s   € Ø—	‘	ˆ{Ðr   c                 ó   — |d   | _         y r6   r  rU  s     r   rW  z+ReadOnlySequentialNamedNodeMap.__setstate__  s   € Ø˜!‘Hˆ�	r   N)r   )r�   rž   rŸ   r  r½   rY  r  r@  rC  r8  r  rH  rK  r:  rO  rS  rW  r   r   r   r  r  Æ  sH   „ Ø€Ióòòòò
ò
òò2ò2ò2ò2òór   r  z&Number of entries in the NamedNodeMap.c                   ó&   — e Zd ZdZdZd„ Zd„ Zd„ Zy)Ú
Identifiedz@Mix-in class that supports the publicId and systemId attributes.©ÚpublicIdÚsystemIdc                 ó    — || _         || _        y r-   r.  )r   r/  r0  s      r   Ú_identified_mixin_initz!Identified._identified_mixin_init  s   € Ø ˆŒØ ˆ�r   c                 ó   — | j                   S r-   )r/  r   s    r   Ú_get_publicIdzIdentified._get_publicId  ó   € Ø�}‰}Ðr   c                 ó   — | j                   S r-   )r0  r   s    r   Ú_get_systemIdzIdentified._get_systemId  r5  r   N)r�   rž   rŸ   rX  r  r2  r4  r7  r   r   r   r-  r-    s   „ ÙJà&€Iò!òór   r-  c                   óR   — e Zd Zej                  ZdZdZdZdZ	dZ
d„ Zd„ Zd„ Zdd„Zy)ÚDocumentTypeNc                 ó�   — t        «       | _        t        «       | _        |rt        |«      \  }}|| _        | j                  | _        y r-   )r  ÚentitiesÚ	notationsr|  rµ   r¾   )r   r~  r¡   r  s       r   r½   zDocumentType.__init__  s:   € Ü6Ó8ˆŒÜ7Ó9ˆŒÙÜ (¨Ó 7ÑˆF�IØ!ˆDŒIØŸ	™	ˆ�r   c                 ó   — | j                   S r-   )ÚinternalSubsetr   s    r   Ú_get_internalSubsetz DocumentType._get_internalSubset'  ó   € Ø×"Ñ"Ð"r   c                 ó¨  — | j                   �€Åt        d «      }| j                  |_        | j                  |_        t        j
                  j                  j                  }|�r\g |j                  _	        g |j                  _	        | j                  j                  D ]e  }t        |j                  |j                  |j                  «      }|j                  j                  j                  |«       |j                  |||«       Œg | j                  j                  D ]£  }t!        |j                  |j                  |j                  |j"                  «      }|j$                  |_        |j&                  |_        |j(                  |_        |j                  j                  j                  |«       |j                  |||«       Œ¥ | j                  || |«       |S y r-   )rj   r9  rµ   r¾   rC   rD   ÚUserDataHandlerÚNODE_CLONEDr;  r  r<  ÚNotationr/  r0  rc   r‘   ÚEntityÚnotationNameÚactualEncodingr   rr   )r   rk   ÚclonerŽ   rG  ÚnotationÚeÚentitys           r   rl   zDocumentType.cloneNode*  sg  € Ø×ÑÑ%ä  Ó&ˆEØŸ™ˆEŒJØ!ŸY™YˆEŒNÜŸ™×/Ñ/×;Ñ;ˆIÚØ&(�—‘Ô#Ø')�—‘Ô$ØŸ™×,Ñ,ò F�AÜ'¨¯
©
°A·J±JÀÇ
Á
ÓK�HØ—O‘O×(Ñ(×/Ñ/°Ô9Ø×-Ñ-¨i¸¸HÕEðFð Ÿ™×+Ñ+ò D�AÜ# A§J¡J°·
±
¸A¿J¹JØ$%§N¡Nó4�Fà,-×,<Ñ,<�FÔ)Ø&'§j¡j�F”OØ%&§Y¡Y�F”NØ—N‘N×'Ñ'×.Ñ.¨vÔ6Ø×-Ñ-¨i¸¸FÕCðDð ×(Ñ(¨°D¸%Ô@ØˆLàr   c           
      óì  — |j                  d«       |j                  | j                  «       | j                  r2|j                  |›d| j                  ›d|›d| j                  ›d�«       n-| j                  r!|j                  |›d| j                  ›d�«       | j                  �=|j                  d«       |j                  | j                  «       |j                  d«       |j                  d|z   «       y )	Nz
<!DOCTYPE z
  PUBLIC 'ú'z  'z
  SYSTEM 'z [ú]r¬   )r®   rµ   r/  r0  r>  rÔ  s        r   r&   zDocumentType.writexmlE  s«   € Ø�‰�\Ô"Ø�‰�T—Y‘YÔØ�=Š=Ø�L‰LÚ  $§-£-²°t·}³}ðFõ Gà�]Š]Ø�L‰Lªd°D·M³MÐBÔCØ×ÑÐ*Ø�L‰L˜ÔØ�L‰L˜×,Ñ,Ô-Ø�L‰L˜ÔØ�‰�S˜‘XÕr   r­  )r�   rž   rŸ   r   ÚDOCUMENT_TYPE_NODEr$   r¿   rµ   r/  r0  r>  r½   r?  rl   r&   r   r   r   r9  r9    s:   „ Ø×&Ñ&€HØ€IØ€DØ€HØ€HØ€Nò"ò#òô6r   r9  c                   óh   — e Zd ZdZej
                  ZdZdZdZ	dZ
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zy)
rE  Nc                 ób   — || _         || _        t        «       | _        | j	                  ||«       y r-   )r¾   rF  r“   r/   r2  )r   rµ   r/  r0  rI  s        r   r½   zEntity.__init__\  s*   € ØˆŒØ$ˆÔÜ"›*ˆŒØ×#Ñ# H¨hÕ7r   c                 ó   — | j                   S r-   ©rG  r   s    r   Ú_get_actualEncodingzEntity._get_actualEncodingb  r@  r   c                 ó   — | j                   S r-   ©r   r   s    r   Ú_get_encodingzEntity._get_encodinge  r5  r   c                 ó   — | j                   S r-   ©rr   r   s    r   Ú_get_versionzEntity._get_versionh  rç   r   c                 ó@   — t         j                  j                  d«      ‚)Nz(cannot append children to an entity node©rC   rD   rE   )r   rR   s     r   rI   zEntity.appendChildk  s   € Ü�g‰g×)Ñ)Ø6ó8ð 	8r   c                 ó@   — t         j                  j                  d«      ‚)Nz+cannot insert children below an entity noder\  r½  s      r   rA   zEntity.insertBeforeo  s   € Ü�g‰g×)Ñ)Ø9ó;ð 	;r   c                 ó@   — t         j                  j                  d«      ‚)Nz*cannot remove children from an entity noder\  r^   s     r   rH   zEntity.removeChilds  s   € Ü�g‰g×)Ñ)Ø8ó:ð 	:r   c                 ó@   — t         j                  j                  d«      ‚)Nz)cannot replace children of an entity noder\  rÁ  s      r   r[   zEntity.replaceChildw  s   € Ü�g‰g×)Ñ)Ø7ó9ð 	9r   )r�   rž   rŸ   rÀ   r   ÚENTITY_NODEr$   r¿   rG  r   rr   r½   rT  rW  rZ  rI   rA   rH   r[   r   r   r   rE  rE  S  sN   „ Ø€JØ×Ñ€HØ€Ià€NØ€HØ€Gò8ò#òòò8ò;ò:ó9r   rE  c                   ó.   — e Zd Zej                  ZdZd„ Zy)rD  Nc                 ó6   — || _         | j                  ||«       y r-   )r¾   r2  )r   rµ   r/  r0  s       r   r½   zNotation.__init__  s   € ØˆŒØ×#Ñ# H¨hÕ7r   )r�   rž   rŸ   r   rÅ   r$   r¿   r½   r   r   r   rD  rD  {  s   „ Ø×!Ñ!€HØ€Ió8r   rD  c                   ó2   — e Zd Zg d¢Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚDOMImplementation))Úcoreú1.0)re  ú2.0)re  N)rC   rf  )rC   rg  )rC   N)úls-loadz3.0)rh  Nc                 óL   — |dk(  rd }|j                  «       |f| j                  v S r   )ÚlowerÚ	_featuresrp   s      r   ro   zDOMImplementation.hasFeature�  s(   € Ø�bŠ=ØˆGØ—‘“ Ð)¨T¯^©^Ð;Ð;r   c                 óH  — |r+|j                   �t        j                  j                  d«      ‚| j	                  «       }|d u xr
 |d u xr |d u  }|s!|rt        j                  j                  d«      ‚|r�t        |«      \  }}|dk(  r$|dk7  rt        j                  j                  d«      ‚|r!|st        j                  j                  d«      ‚|j                  ||«      }|r|j                  |«       |j                  |«       |r|x|_         |_
        ||_        | |_        |S )Nz(doctype object owned by another DOM treezElement with no namerC   z$http://www.w3.org/XML/1998/namespacezillegal use of 'xml' prefixz(illegal use of prefix without namespaces)rG   rC   rD   ÚWrongDocumentErrÚ_create_documentÚInvalidCharacterErrr|  rê   ÚcreateElementNSrI   rj   Údoctypern   )	r   r    r~  rq  r£   Úadd_root_elementr¡   r  r±  s	            r   ÚcreateDocumentz DOMImplementation.createDocument”  s.  € Ù�w×)Ñ)Ð5Ü—'‘'×*Ñ*Ø:ó<ð <à×#Ñ#Ó%ˆà ,°Ð 4ò !4Ø$1°TÐ$9ò!4à$+¨t Oð5Ðñ Ñ!1ô —'‘'×-Ñ-Ð.DÓEÐEáÜ (¨Ó 7ÑˆF�IØ˜ŠØÐ#IÒIÜ—g‘g×*Ñ*Ð+HÓIÐIÙ™lÜ—g‘g×*Ñ*Ø>ó@ð @à×)Ñ)¨,¸ÓFˆGÙØ—‘ Ô(Ø�O‰O˜GÔ$áØ9<Ð<ˆGÔ Ô!6àˆŒØ!ˆÔØˆ
r   c                 ó8   — t        |«      }||_        ||_        |S r-   )r9  r/  r0  )r   r~  r/  r0  rq  s        r   ÚcreateDocumentTypez$DOMImplementation.createDocumentTypeÁ  s!   € Ü˜}Ó-ˆØ#ˆÔØ#ˆÔØˆr   c                 ó,   — | j                  |d «      r| S y r-   )ro   r{   s     r   r|   zDOMImplementation.getInterfaceÉ  s   € Ø�?‰?˜7 DÔ)ØˆKàr   c                 ó   — t        «       S r-   )ÚDocumentr   s    r   rn  z"DOMImplementation._create_documentÐ  s
   € Ü‹zÐr   N)	r�   rž   rŸ   rk  ro   rs  ru  r|   rn  r   r   r   rd  rd  „  s#   „ ò€Iò<ò
+òZòór   rd  c                   óJ   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚElementInfoz÷Object that represents content-model information for an element.

    This implementation is not expected to be used in practice; DOM
    builders should provide implementations which do the right thing
    using information available to it.

    ro  c                 ó   — || _         y r-   ro  r?  s     r   r½   zElementInfo.__init__Þ  s	   € Øˆ�r   c                 ó   — t         S r-   ©rþ   ©r   Úanames     r   r   zElementInfo.getAttributeTypeá  ó   € Üˆr   c                 ó   — t         S r-   r}  rB  s      r   rÿ   zElementInfo.getAttributeTypeNSä  r€  r   c                  ó   — yr“  r   r   s    r   r  zElementInfo.isElementContentç  rº  r   c                  ó   — y)zQReturns true iff this element is declared to have an EMPTY
        content model.Fr   r   s    r   ÚisEmptyzElementInfo.isEmptyê  s   € ð r   c                  ó   — y)z7Returns true iff the named attribute is a DTD-style ID.Fr   r~  s     r   rù   zElementInfo.isIdï  ó   € àr   c                  ó   — y)z<Returns true iff the identified attribute is a DTD-style ID.Fr   rB  s      r   rø   zElementInfo.isIdNSó  r†  r   c                 ó   — | j                   S r-   ro  r   s    r   rS  zElementInfo.__getstate__÷  rç   r   c                 ó   — || _         y r-   ro  rU  s     r   rW  zElementInfo.__setstate__ú  s	   € Øˆ�r   N)r�   rž   rŸ   rX  r  r½   r   rÿ   r  r„  rù   rø   rS  rW  r   r   r   rz  rz  Ó  s;   „ ñð €Iòòòòòò
òòór   rz  c                 ó  — | j                   t        j                  k(  r"| j                  j	                  «        d | _        y | j                  r6| j                  j                  j	                  «        d | j                  _        y y r-   )r$   r   r%   Ú	_id_cacheÚclearÚ_id_search_stackrj   )rU   s    r   rN   rN   ý  s`   € Ø‡}�}œ×*Ñ*Ò*Ø�‰×ÑÔØ $ˆÕØ	×	Ò	Ø×Ñ×$Ñ$×*Ñ*Ô,Ø-1ˆ×ÑÕ+ð 
r   c                   ó–  — e Zd ZdZej
                  ej                  ej                  ej                  fZ	 e
«       Zej                  ZdZdZdZdZdxZZdZdZdZdZdZdZdZdZd„ Zd„ Zd„ Zd	„ Zd
„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d „ Z6d!„ Z7d"„ Z8d#„ Z9d$„ Z:	 	 d'd%„Z;d&„ Z<y)(rx  )Ú
_elem_inforq  r�  r/   r‹  z	#documentNFr   c                 óZ   — d | _         t        «       | _        i | _        i | _        d | _        y r-   )rq  r“   r/   r�  r‹  r�  r   s    r   r½   zDocument.__init__   s*   € ØˆŒÜ"›*ˆŒð ˆŒØˆŒØ $ˆÕr   c                 óš   — |j                   r|j                   |j                  f}n|j                  }| j                  j	                  |«      S r-   )r    r¥   r²   r�  r$  )r   r±  r‚   s      r   r÷   zDocument._get_elem_info)  s?   € Ø×ÒØ×&Ñ&¨×(9Ñ(9Ð9‰Cà—/‘/ˆCØ�‰×"Ñ" 3Ó'Ð'r   c                 ó   — | j                   S r-   rS  r   s    r   rT  zDocument._get_actualEncoding0  r@  r   c                 ó   — | j                   S r-   )rq  r   s    r   Ú_get_doctypezDocument._get_doctype3  rç   r   c                 ó   — | j                   S r-   )ÚdocumentURIr   s    r   Ú_get_documentURIzDocument._get_documentURI6  s   € Ø×ÑÐr   c                 ó   — | j                   S r-   rV  r   s    r   rW  zDocument._get_encoding9  r5  r   c                 ó   — | j                   S r-   )ÚerrorHandlerr   s    r   Ú_get_errorHandlerzDocument._get_errorHandler<  s   € Ø× Ñ Ð r   c                 ó   — | j                   S r-   )r   r   s    r   Ú_get_standalonezDocument._get_standalone?  r4   r   c                 ó   — | j                   S r-   )ÚstrictErrorCheckingr   s    r   Ú_get_strictErrorCheckingz!Document._get_strictErrorCheckingB  s   € Ø×'Ñ'Ð'r   c                 ó   — | j                   S r-   rY  r   s    r   rZ  zDocument._get_versionE  rç   r   c                 ó°  — |j                   | j                  vr6t        j                  j	                  t        |«      ›dt        | «      ›�«      ‚|j                  �|j                  j                  |«       |j                   t        j                  k(  r/| j                  «       rt        j                  j	                  d«      ‚t        j                  | |«      S )Nr=   z two document elements disallowed)r$   rB   rC   rD   rE   rF   rG   rH   r   rd   Ú_get_documentElementrI   rN  s     r   rI   zDocument.appendChildH  s¦   € Ø�=‰= × 6Ñ 6Ñ6Ü—'‘'×-Ñ-Ü.2°4­j¼$¸t¼*ÐEóGð Gà�?‰?Ð&ð �O‰O×'Ñ'¨Ô-à�=‰=œD×-Ñ-Ò-Ø×(Ñ(Ô*Ü—'‘'×-Ñ-Ø2ó4ð 4ä×Ñ  dÓ+Ð+r   c                 óè   — 	 | j                   j                  |«       d x|_        |_        d |_        | j                  |u rd | _	        |S # t        $ r t        j                  j                  «       ‚w xY wr-   )
r/   r]   rK   rC   rD   rL   rP   rQ   rG   ÚdocumentElementr^   s     r   rH   zDocument.removeChildX  sr   € ð	(Ø�O‰O×"Ñ" 8Ô,ð ;?Ð>ˆÔ˜xÔ7Ø"ˆÔØ×Ñ 8Ñ+Ø#'ˆDÔ àˆøô ò 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   ‚A	 Á	(A1c                 óh   — | j                   D ]#  }|j                  t        j                  k(  sŒ!|c S  y r-   )r/   r$   r   rd   rN  s     r   r£  zDocument._get_documentElementd  s,   € Ø—O‘Oò 	ˆDØ�}‰}¤× 1Ñ 1Ó1Ø’ñ	r   c                 óˆ   — | j                   �!| j                   j                  «        d | _         t        j                  | «       y r-   )rq  rb   r   r   s    r   rb   zDocument.unlinki  s/   € Ø�<‰<Ð#Ø�L‰L×ÑÔ!ØˆDŒLÜ�‰�DÕr   c                 óŠ  — |sy | j                   j                  d d d «      }| j                  |_        | j                  |_        | j                  |_        | j
                  D ]«  }t        |||«      }|j                  j                  |«      sJ ‚|j
                  j                  |«       |j                  t        j                  k(  r|j                  �4J ‚|j                  t        j                  k(  r|j                  �J ‚||_        ||_        Œ­ | j#                  t$        j&                  j(                  j*                  | |«       |S r-   )rn   rs  r   r   rr   r/   ri   rj   ry   rc   r$   r   r%   r¥  rO  rq  rG   r‘   rC   rD   rB  rC  )r   rk   rH  rG  Ú
childclones        r   rl   zDocument.cloneNodeo  s  € ÙØØ×#Ñ#×2Ñ2°4¸¸tÓDˆØŸ™ˆŒØŸ?™?ˆÔØŸ™ˆŒØ—‘ò 		*ˆAÜ$ Q¨¨eÓ4ˆJØ×+Ñ+×6Ñ6°uÔ=Ð=Ð=Ø×Ñ×#Ñ# JÔ/Ø×"Ñ"¤d×&8Ñ&8Ò8Ø×,Ñ,Ð4Ð4Ð4Ø×$Ñ$¬×(?Ñ(?Ò?Ø—}‘}Ð,Ð,Ð,Ø *�”Ø$)ˆJÕ!ð		*ð 	×$Ñ$¤S§W¡W×%<Ñ%<×%HÑ%HØ%)¨5ô	2àˆr   c                 ó(   — t        «       }| |_        |S r-   )r»   rj   )r   r‡   s     r   ÚcreateDocumentFragmentzDocument.createDocumentFragment„  s   € ÜÓˆØˆŒØˆr   c                 ó*   — t        |«      }| |_        |S r-   )ri  rj   )r   r²   rJ  s      r   ÚcreateElementzDocument.createElement‰  s   € Ü�GÓˆØˆŒØˆr   c                 ól   — t        |t        «      st        d«      ‚t        «       }||_        | |_        |S ©Nznode contents must be a string)r  r  r;  rÎ   ra   rj   )r   ra   Úts      r   ÚcreateTextNodezDocument.createTextNodeŽ  s2   € Ü˜$¤Ô$ÜÐ<Ó=Ð=Ü‹FˆØˆŒØˆŒØˆr   c                 ól   — t        |t        «      st        d«      ‚t        «       }||_        | |_        |S r¯  )r  r  r;  r  ra   rj   ©r   ra   rT   s      r   ÚcreateCDATASectionzDocument.createCDATASection–  s2   € Ü˜$¤Ô$ÜÐ<Ó=Ð=Ü‹NˆØˆŒØˆŒØˆr   c                 ó*   — t        |«      }| |_        |S r-   )r  rj   r³  s      r   ÚcreateCommentzDocument.createCommentž  s   € Ü�D‹MˆØˆŒØˆr   c                 ó,   — t        ||«      }| |_        |S r-   )rÄ  rj   )r   rÆ  ra   Úps       r   ÚcreateProcessingInstructionz$Document.createProcessingInstruction£  s   € Ü! &¨$Ó/ˆØˆŒØˆr   c                 ó8   — t        |«      }| |_        d|_        |S r   )rÇ   rj   rÞ   )r   rÏ   Úas      r   ÚcreateAttributezDocument.createAttribute¨  s   € Ü�‹KˆØˆŒØˆŒØˆr   c                 óJ   — t        |«      \  }}t        |||«      }| |_        |S r-   )r|  ri  rj   )r   r    r~  r¡   r¥   rJ  s         r   rp  zDocument.createElementNS®  s+   € Ü$ ]Ó3Ñˆ�	Ü�M <°Ó8ˆØˆŒØˆr   c                 óZ   — t        |«      \  }}t        ||||«      }| |_        d|_        |S r   )r|  rÇ   rj   rÞ   )r   r    r~  r¡   r¥   r»  s         r   ÚcreateAttributeNSzDocument.createAttributeNS´  s4   € Ü$ ]Ó3Ñˆ�	Ü� ¨i¸Ó@ˆØˆŒØˆŒØˆr   c                 ó0   — t        ||||«      }| |_        |S r-   )rE  rj   )r   rµ   r/  r0  rF  rJ  s         r   Ú_create_entityzDocument._create_entity¾  s   € Ü�4˜ 8¨\Ó:ˆØˆŒØˆr   c                 ó.   — t        |||«      }| |_        |S r-   )rD  rj   )r   rµ   r/  r0  rG  s        r   Ú_create_notationzDocument._create_notationÃ  s   € Ü�T˜8 XÓ.ˆØˆŒØˆr   c                 óÄ  — || j                   v r| j                   |   S | j                  s| j                  sy | j                  }|€| j                  g}|| _        n|sy d }|�rù|j                  «       }|j                  |j                  D �cg c]  }|j                  t        v r|‘Œ c}«       | j                  |«      }|�r.|j                  j                  «       D �]  }|j                  rb|j                  |j                  |j                  «      sŒ7|| j                   |j                   <   |j                   |k(  r|}Œb|j"                  rŒo �n|j%                  |j&                  «      r:|| j                   |j                   <   |j                   |k(  r|}Œ¸|j"                  rŒÅ n°|j(                  sŒÔ|| j                   |j                   <   |j                   |k(  r|}Œÿ|j"                  dk(  s�Œ ne nc|j"                  rW|j                  j                  «       D ]:  }|j(                  sŒ|| j                   |j                   <   |j                   |k(  sŒ9|}Œ< |�	 |S |r�Œù|S c c}w )Nr>   )r‹  r�  ró   r�  r¥  ÚpopÚextendr/   r$   rM   r÷   rÀ   r  r    rø   r¥   rÞ   rò   rù   rµ   rñ   )r   r'  ÚstackÚresultrU   rg   rû   rr  s           r   ÚgetElementByIdzDocument.getElementByIdÈ  s  € Ø�—‘ÑØ—>‘> "Ñ%Ð%Ø—’ 4×#7Ò#7Øà×%Ñ%ˆØˆ=à×)Ñ)Ð*ˆEØ$)ˆDÕ!Ùð àˆÚØ—9‘9“;ˆDà�L‰L¨T¯_©_ö I EØ"Ÿ^™^Ô/GÑGò  ò Iô Jð ×&Ñ& tÓ,ˆDÚð !ŸO™O×2Ñ2Ó4ó "�DØ×(Ò(ØŸ;™; t×'8Ñ'8¸$¿.¹.ÕIØ9=˜DŸN™N¨4¯:©:Ñ6Ø#Ÿz™z¨RÒ/Ø)-¡Ø%)×%9Ó%9Ú %ØŸ™ 4§9¡9Ô-Ø59˜Ÿ™ t§z¡zÑ2ØŸ:™:¨Ò+Ø%)™FØ!%×!5Ó!5Ù!ØŸ›Ø59˜Ÿ™ t§z¡zÑ2ØŸ:™:¨Ò+Ø%)™FØ!×1Ñ1°QÔ6Ù!ñ'"ð( ×%Ò%Ø ŸO™O×2Ñ2Ó4ò *�DØ—{“{Ø59˜Ÿ™ t§z¡zÑ2ØŸ:™:¨Ó+Ø%)™Fð	*ð
 Ð!ØØˆóO ðN ˆùòIIs   ÂIc                 ó,   — t        | |t        «       «      S r-   r–  r?  s     r   r—  zDocument.getElementsByTagName  s   € Ü.¨t°T¼8»:ÓFÐFr   c                 ó.   — t        | ||t        «       «      S r-   r™  rB  s      r   rš  zDocument.getElementsByTagNameNS  r›  r   c                 ó:   — | j                   j                  ||«      S r-   )rn   ro   rp   s      r   rs   zDocument.isSupported	  s   € Ø×"Ñ"×-Ñ-¨g°wÓ?Ð?r   c                 ó  — |j                   t        j                  k(  rt        j                  j                  d«      ‚|j                   t        j                  k(  rt        j                  j                  d«      ‚t        ||| «      S )Nzcannot import document nodesz!cannot import document type nodes)r$   r   r%   rC   rD   ÚNotSupportedErrrO  ri   )r   rU   rk   s      r   Ú
importNodezDocument.importNode  sa   € Ø�=‰=œD×.Ñ.Ò.Ü—'‘'×)Ñ)Ð*HÓIÐIØ�]‰]œd×5Ñ5Ò5Ü—'‘'×)Ñ)Ð*MÓNÐNÜ˜4  tÓ,Ð,r   c                 ó  — g }|r|j                  d|› d�«       |�|j                  d|rdnd› d�«       |j                  ddj                  |«      › d|› �«       | j                  D ]  }|j	                  ||||«       Œ y )	Nz
encoding="r«   zstandalone="ÚyesÚnoz<?xml version="1.0" ra  rÓ  )rc   r®   rþ  r/   r&   )	r   r+   r)   rŸ  r*   r   r   ÚdeclarationsrU   s	            r   r&   zDocument.writexml  sŒ   € àˆáØ×Ñ *¨X¨J°aÐ 8Ô9ØÐ!Ø×Ñ ,¹
©uÈÐ.MÈQÐ OÔPà�‰Ð+¨C¯H©H°\Ó,BÐ+CÀ2ÀdÀVÐLÔMà—O‘Oò 	;ˆDØ�M‰M˜& &¨)°TÕ:ñ	;r   c                 ó  — |j                   | ur/t        j                  j                  d| ›d|j                   ›�«      ‚|j                  t
        j                  t
        j                  fvrt        j                  j                  d«      ‚|t        k7  r½d|v rV|j                  dd«      \  }}|dk(  r£|t        j                  j                  k7  r†t        j                  j                  d«      ‚|dk(  rY|t        j                  j                  k7  r<|j                  t
        j                  k(  rt        j                  j                  d«      ‚d }|}nd }d }|j                  t
        j                  k(  r,|j                  }|� |j                  }|j                  |«       nd }||_        ||_        ||_        ||_        |j                  t
        j                  k(  r	||_        |S ||_        |�$|j-                  |«       r|j/                  |«       |S )	Nz3cannot rename nodes from other documents;
expected z,
found z8renameNode() only applies to element and attribute nodesrÒ   r>   ré   zillegal use of 'xmlns' prefixz$illegal use of the 'xmlns' attribute)rj   rC   rD   rm  r$   r   rd   r  rÎ  r   rÓ   r   rê   rÌ   rñ   r†  r¡   rË   r    r¾   r²   rµ   ry  r¥  )r   rG  r    rµ   r¡   r¥   r±  Úis_ids           r   Ú
renameNodezDocument.renameNode#  sÔ  € Ø�?‰? $Ñ&Ü—'‘'×*Ò*â,0°!·/²/ðCóDð Dð �:‰:œd×/Ñ/´×1DÑ1DÐEÑEÜ—'‘'×)Ñ)ØJóLð Làœ?Ò*Ø�d‰{Ø$(§J¡J¨s°AÓ$6Ñ!�˜	Ø Ò'Ø&¬#¯'©'×*AÑ*AÒAÜŸ'™'×.Ñ.Ø7ó9ð 9ð ˜g’oØ&¬#¯'©'×*AÑ*AÒAØŸ*™*¬×(;Ñ(;Ò;ÜŸ'™'×.Ñ.Ø>ó@ð @à�Ø ‘	àˆFØˆIØ�:‰:œ×,Ñ,Ò,Ø—n‘nˆGØÐ"ØŸ™�Ø×+Ñ+¨AÕ.àˆGØˆŒØ ˆŒØ%ˆŒØˆŒ
Ø�:‰:œ×*Ñ*Ò*ØˆAŒIð ˆð ˆAŒFØÐ"Ø×(Ñ(¨Ô+ÙØ×.Ñ.¨qÔ1ð ˆr   )r   r   r   NN)=r�   rž   rŸ   r  r   rd   rÃ   rÄ   rO  rB   rd  rn   r%   r$   r¾   r¿   rÀ   rG   rQ   rP   rG  r   r   rr   rŸ  rš  r–  ró   r½   r÷   rT  r”  r—  rW  r›  r�  r   rZ  rI   rH   r£  rb   rl   r«  r­  r±  r´  r¶  r¹  r¼  rp  r¿  rÁ  rÃ  rÉ  r—  rš  rs   rÏ  r&   rÖ  r   r   r   rx  rx    sE  „ ð@€Ià×*Ñ*¨D×,LÑ,LØ×*Ñ*¨D×,CÑ,CðEÐñ 'Ó(€NØ×!Ñ!€HØ€HØ€IØ€JØ€JØ$(Ð(€O�kð
 €NØ€HØ€JØ€GØÐØ€LØ€Kà€Oò%ò(ò#òò òò!òò(òò,ò 
òò
òò*ò
ò
òòò
ò
òòòò
ò
8òtGò7ò@ò-ð KOØ ó;ó 3r   rx  r¥  z#Top-level element of this document.c                 óø
  — | j                   j                  |«      r%t        j                  j                  j
                  }n$t        j                  j                  j                  }| j                  t        j                  k(  rá|j                  | j                  | j                  «      }| j                  j                  «       D ]j  }|j                  |j                  |j                  |j                   «       |j#                  |j                  |j$                  «      }|j&                  |_        Œl |�r)| j(                  D ]   }t+        |||«      }|j-                  |«       Œ" �nø| j                  t        j.                  k(  rD|j1                  «       }|�rÈ| j(                  D ]   }t+        |||«      }|j-                  |«       Œ" �n—| j                  t        j2                  k(  r|j5                  | j6                  «      }�n]| j                  t        j8                  k(  r|j;                  | j6                  «      }�n#| j                  t        j<                  k(  r(|j?                  | j@                  | j6                  «      }�nÞ| j                  t        jB                  k(  r|jE                  | j6                  «      }�n¤| j                  t        jF                  k(  r@|jI                  | j                  | j                  «      }d|_        | j                   |_        �nG| j                  t        jJ                  k(  �rþ| j                   |usJ ‚t        j                  j                  j                  }|jL                  jO                  | jP                  | jR                  | jT                  «      }||_         |�r°g |jV                  _,        g |jZ                  _,        | jZ                  jX                  D ]y  }	t]        |	j                  |	jR                  |	jT                  «      }
||
_         |jZ                  jX                  j_                  |
«       ta        |	d«      sŒg|	jc                  ||	|
«       Œ{ | jV                  jX                  D ]·  }te        |j                  |jR                  |jT                  |jf                  «      }|jh                  |_4        |jj                  |_5        |jl                  |_6        ||_         |jV                  jX                  j_                  |«       ta        |d«      sŒ¥|jc                  |||«       Œ¹ n+t        j                  jo                  dtq        | «      z  «      ‚ta        | d«      r| jc                  || |«       |S )zo
    Clone a node and give it the new owner document.
    Called by Node.cloneNode and Document.importNode
    Tr‘   zCannot clone node %s)9rj   ry   rC   rD   rB  rC  ÚNODE_IMPORTEDr$   r   rd   rp  r    r¾   rÀ   r  r€  rÞ   r}  r¥   rÖ   r/   ri   rI   r?   r«  r`   r±  ra   rÁ   r´  rÃ   r¹  rÆ  rÄ   r¶  r  r¿  rO  rn   ru  rµ   r/  r0  r;  r  r<  rD  rc   rŠ   r‘   rE  rF  rG  r   rr   rÎ  rF   )rU   rk   ÚnewOwnerDocumentrŽ   rH  rr  r»  rg   rT   rG  rI  rJ  rK  s                r   ri   ri   \  s(  € ð
 ×Ñ×$Ñ$Ð%5Ô6Ü—G‘G×+Ñ+×7Ñ7‰	ä—G‘G×+Ñ+×9Ñ9ˆ	Ø‡}�}œ×)Ñ)Ò)Ø ×0Ñ0°×1BÑ1BØ15·±ó@ˆà—O‘O×*Ñ*Ó,ò 	)ˆDØ× Ñ  ×!2Ñ!2°D·M±MÀ4Ç:Á:ÔNØ×(Ñ(¨×):Ñ):¸D¿N¹NÓKˆAØŸ.™.ˆA�Kð	)ò
 ØŸ™ò %�Ü  tÐ-=Ó>�Ø×!Ñ! !Õ$ò%ð 
�‰œ$×5Ñ5Ò	5Ø ×7Ñ7Ó9ˆÚØŸ™ò %�Ü  tÐ-=Ó>�Ø×!Ñ! !Õ$ò%ð 
�‰œ$Ÿ.™.Ò	(Ø ×/Ñ/°·	±	Ó:ŠØ	�‰œ$×1Ñ1Ò	1Ø ×3Ñ3°D·I±IÓ>ŠØ	�‰œ$×:Ñ:Ò	:Ø ×<Ñ<¸T¿[¹[Ø=A¿Y¹YóHŠà	�‰œ$×+Ñ+Ò	+Ø ×.Ñ.¨t¯y©yÓ9ŠØ	�‰œ$×-Ñ-Ò	-Ø ×2Ñ2°4×3DÑ3DØ37·=±=óBˆàˆŒØ—j‘jˆŽØ	�‰œ$×1Ñ1Ó	1Ø×!Ñ!Ð)9Ñ9Ð9Ð9Ü—G‘G×+Ñ+×9Ñ9ˆ	Ø ×/Ñ/×BÑBØ�I‰I�t—}‘} d§m¡mó5ˆà.ˆÔÚØ"$ˆE�N‰NÔØ#%ˆE�O‰OÔ Ø—^‘^×(Ñ(ò F�Ü# A§J¡J°·
±
¸A¿J¹JÓG�Ø)9�Ô&Ø—‘×$Ñ$×+Ñ+¨HÔ5Ü˜1Ð7Õ8Ø×-Ñ-¨i¸¸HÕEðFð —]‘]×'Ñ'ò 	D�Ü §
¡
¨A¯J©J¸¿
¹
Ø !§¡ó0�à()×(8Ñ(8�Ô%Ø"#§*¡*�”Ø!"§¡�”Ø'7�Ô$Ø—‘×#Ñ#×*Ñ*¨6Ô2Ü˜1Ð7Õ8Ø×-Ñ-¨i¸¸FÕCñ	Dô �g‰g×%Ñ%Ð&<¼tÀD»zÑ&IÓJÐJô
 ˆtÐ.Ô/Ø×$Ñ$ Y°°eÔ<Ø€Lr   c                 óT   — | j                  dd«      }t        |«      dk(  r|S d |d   fS )NrÒ   r>   é   r   )rÓ   r  )r~  Úfieldss     r   r|  r|  ®  s4   € Ø× Ñ   aÓ(€FÜ
ˆ6ƒ{�aÒØˆà�f˜Q‘iÐ Ð r   c                 ó~   —  | |i |¤Ž}|j                  «       \  }}|j                  |«       |j                  «        |S r-   )ÚgetEventÚ
expandNoderŒ  )ÚfuncÚargsÚkwargsÚeventsÚtoktypeÚrootNodes         r   Ú_do_pulldom_parseræ  ¶  s>   € Ù�4Ð"˜6Ñ"€FØŸ™Ó)Ñ€GˆXØ
×Ñ�hÔØ
‡L�L„NØ€Or   c                 óz   — |€|sddl m} |j                  | «      S ddl m} t	        |j                  | f||dœ«      S )z3Parse a file into a DOM by filename or file object.r   ©Úexpatbuilder©Úpulldom)ÚparserÚbufsize)Úxml.domré  Úparserë  ræ  )Úfilerì  rí  ré  rë  s        r   rï  rï  ½  s?   € à€~™gÝ(Ø×!Ñ! $Ó'Ð'å#Ü  §¡°°Ø¨'Ñ2ó4ð 	4r   c                 ót   — |€ddl m} |j                  | «      S ddl m} t	        |j                  | fd|i«      S )z&Parse a file into a DOM from a string.r   rè  rê  rì  )rî  ré  ÚparseStringrë  ræ  )Ústringrì  ré  rë  s       r   rò  rò  Ç  s?   € à€~Ý(Ø×'Ñ'¨Ó/Ð/å#Ü  ×!4Ñ!4°v°iØ"*¨FÐ!3ó5ð 	5r   c                 óÈ   — | rQt        | t        «      rt        j                  | «      } | D ]'  \  }}t        j
                  j                  ||«      rŒ' y  t        j
                  S r-   )r  r  r   Ú_parse_feature_stringrx  rn   ro   )ÚfeaturesÚfÚvs      r   ÚgetDOMImplementationrù  Ñ  sY   € ÙÜ�h¤Ô$Ü×3Ñ3°HÓ=ˆHØò 	‰DˆAˆqÜ×*Ñ*×5Ñ5°a¸Õ;Ùð	ô ×"Ñ"Ð"r   r›   r-   )6rX  r    rî  rC   r   r   r   r   Úxml.dom.minicompatÚxml.dom.xmlbuilderr   r	   rD   r   rd   rÂ   rM   ÚdefpropertyrX   r¯   r³   r¸   r»   rÇ   Úobjectr  ÚAttributeListr\  rþ   ri  r‡  r³  rÄ  rÖ  rÎ   r  r«  r  r  r  r-  r9  rE  rD  rd  rz  rN   rx  ri   r|  ræ  rï  rò  rù  r   r   r   ú<module>rÿ     s¬  ðñó" 
Û ç JÓ JÜ  ß >ð  ŸG™GŸL™L×5Ñ5ØŸG™GŸL™L×>Ñ>ð@Ð ôtˆ3�7‰7�<‰<ô tñl ˆD�,Ð$@Õ AÙ ˆD�+Ð$?Õ @Ù ˆD�+Ð$HÕ Iòòòòô%�tô %ô$z8ˆ4ô z8ñx ˆD�&Ð$FÕ GÙ ˆD�+Ð$MÕ NÙ ˆD�,Ð$EÕ Fôa?�6ô a?ñF ˆL˜(Ø6õ8ð €ôˆvô ñ( �D˜$Ó€ôM"ˆdô M"ñ^ ˆG�\Ø<õ>á ˆG�[Ø7õ9ò	 ÷&;ñ &;ôRN˜I tô Nô4EC�I˜tô ECñN ˆM˜8Ð)EÕ FôS+ˆ=ô S+ñj ˆDÐ0ð.õ/ñ ˆD�+Ø@õBòòôBˆmô Bô	3�4ô 	3ô< Vô <ñ| Ð*¨HØ8õ:÷ñ ô:�:˜y¨$ô :ôx&9ˆZ˜ô &9ôP8ˆz˜9 dô 8ôMÐ+ô Mô^(�&ô (òT2ôQˆt�Zô Qñf
 ˆHÐ'Ø5õ7òOòd!òó4ó5ô#r   