ó
    ã¾yjh ã                   ó  • S r SSKrSSKrSSKJrJrJrJr  SSK7  SSK	J
r
Jr  \R                  R                  R                  \R                  R                  R                  4r " S S\R                  R                  5      r\" \SS	S
9  \" \SSS
9  \" \SSS
9  S rS rS rS r " S S\5      r " S S\5      r\" \SSS
9  \" \SSS
9  \" \SSS
9   " S S\5      r\" \SSS
9  \r " S  S!\5      r\" SS5      r " S" S#\5      r\" \S$S%S
9  \" \SS&S
9  S' r " S( S)5      r " S* S+\\5      r  " S, S-\\5      r!\" \!SS.S
9   " S/ S0\!5      r"\" \"S1S2S
9  \" \"S3S4S
9  S5 r#S6 r$ " S7 S8\!5      r% " S9 S:\"5      r& " S; S<\5      r'\" \'SS=S
9   " S> S?5      r( " S@ SA\(\\5      r) " SB SC\(\5      r* " SD SE\(\\5      r+ " SF SG\
5      r, " SH SI\5      r-SJ r. " SK SL\\5      r/\" \/SMSNS
9  SO r0SP r1SQ r2SUSR jr3SVSS jr4SVST jr5g)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                   óÂ   • \ rS rSrSrSrSrSrSr\	r
S rSS jr  SS jrS rS rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!Sr"g)ÚNodeé"   Nc                 ó   • g)NT© ©Úselfs    Ú&/usr/lib/python3.13/xml/dom/minidom.pyÚ__bool__ÚNode.__bool__+   ó   € Øó    c                 ó(   • U R                  SSX5      $ ©NÚ )Útoprettyxml)r   ÚencodingÚ
standalones      r   ÚtoxmlÚ
Node.toxml.   s   € Ø×Ñ  B¨Ó=Ð=r   c                 óv  • Uc  [         R                  " 5       nO*[         R                  " [         R                  " 5       USSS9nU R                  [
        R                  :X  a  U R                  USXX45        OU R                  USX5        Uc  UR                  5       $ UR                  5       R                  5       $ )NÚxmlcharrefreplaceÚ
)r   ÚerrorsÚnewliner   )
ÚioÚStringIOÚTextIOWrapperÚBytesIOÚnodeTyper   ÚDOCUMENT_NODEÚwritexmlÚgetvalueÚdetach)r   ÚindentÚnewlr   r   Úwriters         r   r   ÚNode.toprettyxml1   s’   € àÑÜ—[’[“]‰Fä×%Ò%¤b§j¢j£lØ/7Ø-@Ø.2ñ4ˆFð �=‰=œD×.Ñ.Ó.à�M‰M˜& " f°HÕIà�M‰M˜& " fÔ3ØÑØ—?‘?Ó$Ð$à—=‘=“?×+Ñ+Ó-Ð-r   c                 ó,   • [        U R                  5      $ ©N)ÚboolÚ
childNodesr   s    r   ÚhasChildNodesÚNode.hasChildNodesD   s   € Ü�D—O‘OÓ$Ð$r   c                 ó   • U R                   $ r1   ©r3   r   s    r   Ú_get_childNodesÚNode._get_childNodesG   ó   € Ø�‰Ðr   c                 óD   • U R                   (       a  U R                   S   $ g ©Nr   r7   r   s    r   Ú_get_firstChildÚNode._get_firstChildJ   s   € Ø�?�?Ø—?‘? 1Ñ%Ð%ð r   c                 óD   • U R                   (       a  U R                   S   $ g ©Néÿÿÿÿr7   r   s    r   Ú_get_lastChildÚNode._get_lastChildN   s   € Ø�?�?Ø—?‘? 2Ñ&Ð&ð r   c                 ó:  • UR                   U R                  :X  a/  [        UR                  5       H  nU R	                  X25        M     U$ UR                   U R
                  ;  a8  [        R                  R                  [        U5      < S[        U 5      < 35      eUR                  b  UR                  R                  U5        Uc  U R                  U5        U$  U R                  R                  U5      nUR                   [         ;   a  [#        U 5        U R                  R%                  XA5        X!l        Xl        U(       a  U R                  US-
     nXl        XQl        OS Ul        Xl
        U$ ! [         a    [        R                  R                  5       ef = f)Nú cannot be child of é   )r'   ÚDOCUMENT_FRAGMENT_NODEÚtupler3   Ú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ÚcrR   Únodes         r   rI   ÚNode.insertBeforeR   s`  € Ø×Ñ × ;Ñ ;Ó;Ü˜8×.Ñ.Ö/�Ø×!Ñ! !Ö.ñ 0ð ˆOØ×Ñ D×$:Ñ$:Ó:Ü—'‘'×-Ñ-Ü.2°8®n¼dÀ4½jÐIóKð Kà×ÑÑ*Ø×Ñ×+Ñ+¨HÔ5ØÑØ×Ñ˜XÔ&ð$ ˆð!,ØŸ™×-Ñ-¨hÓ7�ð × Ñ Ô$<Ó<Ü Ô%Ø�O‰O×"Ñ" 5Ô3Ø#+Ô Ø'/Ô$ÞØ—‘ u¨Q¡wÑ/�Ø#+Ô Ø+/Õ(à+/�Ô(Ø"&ÔØˆøô ó ,Ü—g‘g×)Ñ)Ó+Ð+ð,ús   ÃE1 Å1)Fc                 óî  • UR                   U R                  :X  a/  [        UR                  5       H  nU R	                  U5        M     U$ UR                   U R
                  ;  a8  [        R                  R                  [        U5      < S[        U 5      < 35      eUR                   [        ;   a  [        U 5        UR                  b  UR                  R                  U5        [        X5        S Ul        U$ ©NrE   )r'   rG   rH   r3   rQ   rJ   rK   rL   rM   rN   rU   rV   rO   rP   Ú_append_childrX   )r   r]   r\   s      r   rQ   Ú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Ô!ØˆÔØˆr   c                 ó¤  • UR                   U R                  :X  a.  UR                  nU R                  U5        U R	                  X5      $ UR                   U R
                  ;  a8  [        R                  R                  [        U5      < S[        U 5      < 35      eXL a  g UR                  b  UR                  R                  U5         U R                  R                  U5      nXR                  U'   Xl
        S Ul
        UR                   [        ;   d  UR                   [        ;   a  [!        U 5        UR                  Ul        UR"                  Ul        S Ul        S Ul        UR"                  (       a  XR"                  l        UR                  (       a  XR                  l        U$ ! [         a    [        R                  R                  5       ef = fr`   )r'   rG   rX   rP   rI   rJ   rK   rL   rM   rN   rO   r3   rR   rS   rT   rU   rV   rY   )r   rZ   ÚoldChildr[   rR   s        r   ÚreplaceChildÚNode.replaceChildƒ   s€  € Ø×Ñ × ;Ñ ;Ó;Ø×+Ñ+ˆHØ×Ñ˜XÔ&Ø×$Ñ$ XÓ8Ð8Ø×Ñ D×$:Ñ$:Ó:Ü—'‘'×-Ñ-Ü.2°8®n¼dÀ4½jÐIóKð KàÒØØ×ÑÑ*Ø×Ñ×+Ñ+¨HÔ5ð	(Ø—O‘O×)Ñ)¨(Ó3ˆEð "*�‰˜ÑØ"ÔØ"ˆÔØ×ÑÔ!9Ó9Ø× Ñ Ô$<Ó<Ü˜DÔ!Ø'×3Ñ3ˆÔØ#+×#;Ñ#;ˆÔ Ø#ˆÔØ#'ˆÔ Ø×#×#Ø3;×$Ñ$Ô0Ø××Ø3;× Ñ Ô0Øˆøô! ó 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   Ã	F& Æ&)Gc                 óž  •  U R                   R                  U5        UR                  b  UR                  UR                  l        UR                  b  UR                  UR                  l        S =Ul        Ul        UR                  [        ;   a  [        U 5        S Ul        U$ ! [         a    [        R                  R                  5       ef = fr1   )r3   ÚremoverS   rK   rL   rT   rX   rY   r'   rU   rV   rO   ©r   rd   s     r   rP   Ú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                 ó$  • / nU R                    GHo  nUR                  [        R                  :X  Ga
  UR                  (       dY  U(       a  UR
                  US   l        UR
                  (       a  UR                  UR
                  l        UR                  5         M�  U(       a…  US   R                  UR                  :X  ah  US   nUR                  UR                  -   Ul        UR
                  Ul        UR
                  (       a  X2R
                  l        UR                  5         GM  UR                  U5        GM-  UR                  U5        UR                  [        R                  :X  d  GM_  UR                  5         GMr     XR                   S S & g r@   )r3   r'   r   Ú	TEXT_NODEÚdatarX   rY   ÚunlinkÚappendÚELEMENT_NODEÚ	normalize)r   ÚLÚchildr]   s       r   rq   Ú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                 ó@   • [        XU R                  =(       d    U 5      $ r1   )Ú_clone_nodeÚownerDocument)r   Údeeps     r   Ú	cloneNodeÚNode.cloneNodeÎ   s   € Ü˜4 t×'9Ñ'9×'A¸TÓBÐBr   c                 óL   • U R                   R                  R                  X5      $ r1   )rw   ÚimplementationÚ
hasFeature©r   ÚfeatureÚversions      r   ÚisSupportedÚNode.isSupportedÑ   s   € Ø×!Ñ!×0Ñ0×;Ñ;¸GÓMÐMr   c                 ó   • g r1   r   r   s    r   Ú_get_localNameÚNode._get_localNameÔ   s   € àr   c                 ó   • XL $ r1   r   ©r   Úothers     r   Ú
isSameNodeÚNode.isSameNodeÚ   s
   € Øˆ}Ðr   c                 ó6   • U R                  US 5      (       a  U $ g r1   )r�   ©r   r   s     r   ÚgetInterfaceÚNode.getInterfaceÝ   s   € Ø×Ñ˜G T×*Ñ*ØˆKàr   c                 óT   •  U R                   U   S   $ ! [        [        4 a     g f = fr<   )Ú
_user_dataÚAttributeErrorÚKeyError©r   Úkeys     r   ÚgetUserDataÚNode.getUserDataç   s2   € ð	Ø—?‘? 3Ñ'¨Ñ*Ð*øÜ¤Ð)ó 	Ùð	ús   ‚ ”'¦'c                 óŽ   • S n U R                   nX;   a  XQ   S   nUc	  S nUb  XQ	 U$ X#4XQ'   U$ ! [         a    0 nXPl          N3f = fr<   )r�   r‘   )r   r”   rm   ÚhandlerÚoldÚds         r   ÚsetUserDataÚNode.setUserDataí   sm   € Øˆð	 Ø—‘ˆAð ‹8Ø‘&˜‘)ˆCØ‰<àˆGØ‰Ø�Fð ˆ
ð �_ˆA‰FØˆ
øô ó 	 ØˆAØŽOð	 ús   „/ ¯AÁAc                 ó¶   • [        U S5      (       aH  [        U R                  R                  5       5       H   u  nu  pVUc  M  UR	                  XXRU5        M"     g g )Nr�   )ÚhasattrÚlistr�   ÚitemsÚhandle)r   Ú	operationÚsrcÚdstr”   rm   r˜   s          r   Ú_call_user_data_handlerÚNode._call_user_data_handlerÿ   sN   € Ü�4˜×&Ñ&Ü(,¨T¯_©_×-BÑ-BÓ-DÖ(EÑ$�‘_�dØÓ&Ø—N‘N 9°4¸cÖBò )Fð 'r   c                 óÂ   • S =U l         U l        U R                  (       a2  U R                   H  nUR                  5         M     [	        5       U l        S U l        S U l        g r1   )rO   rw   r3   rn   ÚNodeListrY   rX   )r   rs   s     r   rn   ÚNode.unlink  sH   € Ø/3Ð3ˆŒ˜$Ô,Ø�?�?ØŸœ�Ø—‘–ñ )ä&›jˆDŒOØ#ˆÔØˆÕr   c                 ó   • U $ r1   r   r   s    r   Ú	__enter__ÚNode.__enter__  s   € Øˆr   c                 ó$   • U R                  5         g r1   )rn   )r   ÚetÚevÚtbs       r   Ú__exit__ÚNode.__exit__  s   € Ø�‰�r   )r�   r3   rX   rw   rO   rY   ©NN)Ú	r    NN)#Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚnamespaceURIrO   rw   rX   rY   r   Úprefixr   r   r   r4   r8   r=   rB   rI   rQ   re   rP   rq   ry   r�   r„   r‰   r�   r•   r›   r¥   rn   r«   r±   Ú__static_attributes__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                 óz   • U R                   nU(       a  US   nX1l        Xl        UR                  U5        Xl        g r@   )r3   rY   rX   ro   rO   )r   r]   r3   Úlasts       r   ra   ra     s6   € à—‘€JÞØ˜"‰~ˆØ#ÔØÔØ×Ñ�dÔØ…Or   c                 ó”  • U(       d  gSU;   a  UR                  SS5      nSU;   a  UR                  SS5      nSU;   a  UR                  SS5      nU(       a`  SU;   a  UR                  SS	5      nS
U;   a  UR                  S
S5      nSU;   a  UR                  SS5      nSU;   a  UR                  SS5      nU R                  U5        g)zWrites datachars to writer.NÚ&z&amp;Ú<z&lt;Ú>z&gt;Ú"z&quot;Úz&#13;r    z&#10;r´   z&#9;)ÚreplaceÚwrite)r.   ÚtextÚattrs      r   Ú_write_datarÌ   (  sº   € æØð ˆdƒ{Ø�|‰|˜C Ó)ˆØ
ˆdƒ{Ø�|‰|˜C Ó(ˆØ
ˆdƒ{Ø�|‰|˜C Ó(ˆÞØ�$‹;Ø—<‘<  XÓ.ˆDØ�4‹<Ø—<‘<  gÓ.ˆDØ�4‹<Ø—<‘<  gÓ.ˆDØ�4‹<Ø—<‘<  fÓ-ˆDØ
‡L�L�Õr   c                 óÎ   • U R                    HT  nUR                  [        R                  :X  a'  US:X  d  UR                  U:X  a  UR                  U5        [        X1U5        MV     U$ ©Nr   )r3   r'   r   rp   ÚtagNamero   Ú_get_elements_by_tagName_helper)ÚparentÚnameÚrcr]   s       r   rÐ   rÐ   ?  sR   € Ø×!Ô!ˆØ�=‰=œD×-Ñ-Ó-Ø�S‹[˜DŸL™L¨DÓ0Ø�I‰I�dŒOÜ'¨°BÖ7ñ	 "ð
 €Ir   c                 óþ   • U R                    Hl  nUR                  [        R                  :X  d  M#  US:X  d  UR                  U:X  a'  US:X  d  UR
                  U:X  a  UR                  U5        [        XAX#5        Mn     U$ rÎ   )r3   r'   r   rp   r¿   r¹   ro   Ú"_get_elements_by_tagName_ns_helper)rÑ   ÚnsURIr¿   rÓ   r]   s        r   rÕ   rÕ   G  sg   € Ø×!Ô!ˆØ�=‰=œD×-Ñ-Õ-Ø˜cÓ! T§^¡^°yÓ%@Ø˜#“ ×!2Ñ!2°eÓ!;Ø—	‘	˜$”Ü.¨t¸IÖJñ "ð €Ir   c                   óà   • \ rS rSr\R
                  rSrSrSr	Sr
\R                  \R                  \R                  \R                  \R                  \R                   \R"                  4rS rSrg)ÚDocumentFragmentiP  z#document-fragmentNc                 ó"   • [        5       U l        g r1   )r¨   r3   r   s    r   Ú__init__ÚDocumentFragment.__init__^  s   € Ü"›*ˆ�r   r7   )rµ   r¶   r·   r¸   r   rG   r'   ÚnodeNameÚ	nodeValueÚ
attributesrO   rp   rl   ÚCDATA_SECTION_NODEÚENTITY_REFERENCE_NODEÚPROCESSING_INSTRUCTION_NODEÚCOMMENT_NODEÚNOTATION_NODErJ   rÚ   r»   r   r   r   rØ   rØ   P  sk   † Ø×*Ñ*€HØ#€HØ€IØ€JØ€JØ×*Ñ*ØŸ™Ø×0Ñ0Ø×3Ñ3Ø×9Ñ9Ø×*Ñ*Ø×+Ñ+ð-Ðõ%r   rØ   c                   óü   • \ rS rSrSr\R                  rSrSr	Sr
\R                  \R                  4r\SS4S jrS rS rS rS	 r\" \\5      =rrS
 rS r\" \\5      =rrS rS r\" \\5      rS rS rS r Sr!g)ÚAttrib  )Ú_nameÚ_valuer¹   Ú_prefixr3   Ú
_localNamerw   ÚownerElementNFc                 óº   • S U l         S U l        Xl        X l        X@l        Ub  X0l        [        5       U l        U R                  R                  [        5       5        g r1   )
rê   rw   ræ   r¹   rè   ré   r¨   r3   ro   ÚText)r   ÚqNamer¹   r¿   rº   s        r   rÚ   ÚAttr.__init__l  sL   € à ˆÔØ!ˆÔØŒ
Ø(ÔØŒØÑ Ø'ŒOÜ"›*ˆŒð 	�‰×Ñœt›vÕ&r   c                 óz   •  U R                   $ ! [         a"    U R                  R                  SS5      S   s $ f = f©NÚ:rF   rA   )ré   r‘   rÜ   Úsplitr   s    r   r„   ÚAttr._get_localName|  s<   € ð	3Ø—?‘?Ð"øÜó 	3Ø—=‘=×&Ñ& s¨AÓ.¨rÑ2Ò2ð	3úó   ‚ Ž):¹:c                 ó   • U R                   $ r1   )Ú	specifiedr   s    r   Ú_get_specifiedÚAttr._get_specified‚  ó   € Ø�~‰~Ðr   c                 ó   • U R                   $ r1   )ræ   r   s    r   Ú	_get_nameÚAttr._get_name…  ó   € Ø�z‰zÐr   c                 óV   • Xl         U R                  b  [        U R                  5        g g r1   )ræ   rê   rV   ©r   Úvalues     r   Ú	_set_nameÚAttr._set_nameˆ  s&   € ØŒ
Ø×ÑÑ(Ü˜D×-Ñ-Õ.ð )r   c                 ó   • U R                   $ r1   )rç   r   s    r   Ú
_get_valueÚAttr._get_value�  ó   € Ø�{‰{Ðr   c                 ó    • Xl         XR                  S   l        U R                  b  [	        U R                  5        XR                  S   l        g r<   )rç   r3   rm   rê   rV   rÿ   s     r   Ú
_set_valueÚAttr._set_value’  s?   € ØŒØ"'�‰˜ÑÔØ×ÑÑ(Ü˜D×-Ñ-Ô.Ø"'�‰˜ÑÕr   c                 ó   • U R                   $ r1   )rè   r   s    r   Ú_get_prefixÚAttr._get_prefix›  ó   € Ø�|‰|Ðr   c                 ó2  • U R                   nUS:X  a0  U(       a)  U[        :w  a  [        R                  R	                  S5      eXl        Uc  U R                  nOU< SU R                  < 3nU R                  (       a  [        U R                  5        X0l	        g )NÚxmlnsz5illegal use of 'xmlns' prefix for the wrong namespacerñ   )
r¹   r   rK   rL   ÚNamespaceErrrè   r¿   rê   rV   rÒ   )r   rº   ÚnsuriÚnewNames       r   Ú_set_prefixÚAttr._set_prefixž  sx   € Ø×!Ñ!ˆØ�WÓÞ˜¤/Ó1Ü—g‘g×*Ñ*ØKóMð MàŒØ‰>Ø—n‘n‰Gã!'¨¯«Ð8ˆGØ××Ü˜D×-Ñ-Ô.Ø�	r   c                 ó’  • U R                   nUb†  UR                  U R                  	 UR                  U R                  U R
                  4	 U R                  (       a;  SU l        U=R                  S-  sl        U R                  =R                  S-  sl	        U R                   H  nUR                  5         M     U R                  S S 2	 g )NFrF   )rê   Ú_attrsrÜ   Ú_attrsNSr¹   r¿   Ú_is_idÚ_magic_id_nodesrw   Ú_magic_id_countr3   rn   )r   Úelemrs   s      r   rn   Ú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                 ó2  • U R                   (       a  gU R                  nU R                  nUb  Uc  gUR                  U5      nUc  gU R                  (       a&  UR                  U R                  U R                  5      $ UR                  U R                  5      $ ©NTF)	r  rw   rê   Ú_get_elem_infor¹   ÚisIdNSr¿   ÚisIdrÜ   ©r   r½   r  Úinfos       r   Ú	_get_isIdÚAttr._get_isIdÀ  s}   € Ø�;�;ØØ× Ñ ˆØ× Ñ ˆØ‰;˜$™,Øà×!Ñ! $Ó'ˆØ‰<ØØ××Ø—;‘;˜t×0Ñ0°$·.±.ÓAÐAà—9‘9˜TŸ]™]Ó+Ð+r   c                 ó"  • U R                   nU R                  nUb  Uc  [        $ UR                  U5      nUc  [        $ U R                  (       a&  UR                  U R                  U R                  5      $ UR                  U R                  5      $ r1   )	rw   rê   Ú_no_typer  r¹   ÚgetAttributeTypeNSr¿   ÚgetAttributeTyperÜ   r"  s       r   Ú_get_schemaTypeÚAttr._get_schemaTypeÐ  s{   € Ø× Ñ ˆØ× Ñ ˆØ‰;˜$™,ÜˆOà×!Ñ! $Ó'ˆØ‰<ÜˆOØ××Ø×*Ñ*¨4×+<Ñ+<¸d¿n¹nÓMÐMà×(Ñ(¨¯©Ó7Ð7r   )
r  ré   ræ   rè   rç   r3   rÒ   r¹   rw   rê   )"rµ   r¶   r·   r¸   Ú	__slots__r   ÚATTRIBUTE_NODEr'   rÞ   rö   r  rl   rà   rJ   r   rÚ   r„   r÷   rû   r  ÚpropertyrÜ   rÒ   r  r  rÝ   r   r  r  rº   rn   r$  r*  r»   r   r   r   rå   rå   b  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                   óÆ   • \ rS rSrSrSrS rS rS rS r	S r
S	 rS
 rS rS rS S jr\rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!Sr"g)!ÚNamedNodeMapiã  zû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                 ó(   • Xl         X l        X0l        g r1   r2  )r   ÚattrsÚattrsNSrê   s       r   rÚ   ÚNamedNodeMap.__init__î  s   € ØŒØŒØ)Õr   c                 ó,   • [        U R                  5      $ r1   )Úlenr  r   s    r   Ú_get_lengthÚNamedNodeMap._get_lengthó  s   € Ü�4—;‘;ÓÐr   c                 óv   •  U [        U R                  R                  5       5      U      $ ! [         a     g f = fr1   )rŸ   r  ÚkeysÚ
IndexError©r   rR   s     r   ÚitemÚNamedNodeMap.itemö  s;   € ð	Øœ˜TŸ[™[×-Ñ-Ó/Ó0°Ñ7Ñ8Ð8øÜó 	Ùð	ús   ‚(+ «
8·8c                 óš   • / nU R                   R                  5        H*  nUR                  UR                  UR                  45        M,     U$ r1   )r  Úvaluesro   rÜ   r   ©r   rr   r]   s      r   r    ÚNamedNodeMap.itemsü  s<   € ØˆØ—K‘K×&Ñ&Ö(ˆDØ�H‰H�d—m‘m T§Z¡ZÐ0Ö1ñ )àˆr   c                 ó²   • / nU R                   R                  5        H6  nUR                  UR                  UR                  4UR
                  45        M8     U$ r1   )r  rC  ro   r¹   r¿   r   rD  s      r   ÚitemsNSÚNamedNodeMap.itemsNS  sG   € ØˆØ—K‘K×&Ñ&Ö(ˆDØ�H‰H�t×(Ñ(¨$¯.©.Ð9¸4¿:¹:ÐFÖGñ )àˆr   c                 ód   • [        U[        5      (       a  XR                  ;   $ XR                  ;   $ r1   )Ú
isinstanceÚstrr  r  r“   s     r   Ú__contains__ÚNamedNodeMap.__contains__  s)   € Ü�cœ3×ÑØŸ+™+Ñ%Ð%àŸ-™-Ñ'Ð'r   c                 ó6   • U R                   R                  5       $ r1   )r  r=  r   s    r   r=  ÚNamedNodeMap.keys  s   € Ø�{‰{×ÑÓ!Ð!r   c                 ó6   • U R                   R                  5       $ r1   )r  r=  r   s    r   ÚkeysNSÚNamedNodeMap.keysNS  s   € Ø�}‰}×!Ñ!Ó#Ð#r   c                 ó6   • U R                   R                  5       $ r1   )r  rC  r   s    r   rC  ÚNamedNodeMap.values  s   € Ø�{‰{×!Ñ!Ó#Ð#r   Nc                 ó8   • U R                   R                  X5      $ r1   ©r  Úget)r   rÒ   r   s      r   rW  ÚNamedNodeMap.get  s   € Ø�{‰{�‰˜tÓ+Ð+r   c                 ó–   • U R                   [        USS 5      L a  g[        U 5      [        U5      :„  [        U 5      [        U5      :  -
  $ )Nr  r   )r  ÚgetattrÚidr‡   s     r   Ú_cmpÚNamedNodeMap._cmp  s?   € Ø�;‰;œ' %¨°4Ó8Ò8Øä�t“Hœr %›yÑ(¬R°«X¼¸5»	Ñ-AÑBÐBr   c                 ó*   • U R                  U5      S:H  $ r<   ©r\  r‡   s     r   Ú__eq__ÚNamedNodeMap.__eq__"  ó   € Ø�y‰y˜Ó 1Ñ$Ð$r   c                 ó*   • U R                  U5      S:¬  $ r<   r_  r‡   s     r   Ú__ge__ÚNamedNodeMap.__ge__%  rb  r   c                 ó*   • U R                  U5      S:„  $ r<   r_  r‡   s     r   Ú__gt__ÚNamedNodeMap.__gt__(  ó   € Ø�y‰y˜Ó !Ñ#Ð#r   c                 ó*   • U R                  U5      S:*  $ r<   r_  r‡   s     r   Ú__le__ÚNamedNodeMap.__le__+  rb  r   c                 ó*   • U R                  U5      S:  $ r<   r_  r‡   s     r   Ú__lt__ÚNamedNodeMap.__lt__.  ri  r   c                 óh   • [        U[        5      (       a  U R                  U   $ U R                  U   $ r1   )rJ  rH   r  r  )r   Úattname_or_tuples     r   Ú__getitem__ÚNamedNodeMap.__getitem__1  s0   € ÜÐ&¬×.Ñ.Ø—=‘=Ð!1Ñ2Ð2à—;‘;Ð/Ñ0Ð0r   c                 óP  • [        U[        5      (       a   U R                  U   nX#l        g [        U[        5      (       d  [        S5      eUnU R                  U5        g ! [         a:    [	        U5      nU R
                  R                  Ul        U R                  U5         N~f = f)Nz%value must be a string or Attr object)
rJ  rK  r  r’   rå   r3  rw   ÚsetNamedItemr   Ú	TypeError)r   Úattnamer   r]   s       r   Ú__setitem__ÚNamedNodeMap.__setitem__8  s‘   € Ü�eœS×!Ñ!ð(Ø—{‘{ 7Ñ+�ð
 �Jä˜e¤T×*Ñ*ÜÐ GÓHÐHØˆDØ×Ñ˜dÕ#øô ó (Ü˜G“}�Ø%)×%7Ñ%7×%EÑ%E�Ô"Ø×!Ñ! $Ö'ð(ús   —A! Á!AB%Â$B%c                 óB   •  U R                   U   $ ! [         a     g f = fr1   )r  r’   ©r   rÒ   s     r   ÚgetNamedItemÚNamedNodeMap.getNamedItemG  s(   € ð	Ø—;‘;˜tÑ$Ð$øÜó 	Ùð	ús   ‚ ‘
�c                 óD   •  U R                   X4   $ ! [         a     g f = fr1   )r  r’   ©r   r¹   r¿   s      r   ÚgetNamedItemNSÚNamedNodeMap.getNamedItemNSM  s+   € ð	Ø—=‘= ,Ð!:Ñ;Ð;øÜó 	Ùð	ús   ‚ ’
žc                 ó8  • U R                  U5      nUbi  [        U R                  5        U R                  UR                  	 U R
                  UR                  UR                  4	 [        US5      (       a  S Ul	        U$ [        R                  R                  5       e©Nrê   )r|  rV   r3  r  rÜ   r  r¹   r¿   rž   rê   rK   rL   rT   ©r   rÒ   Úns      r   ÚremoveNamedItemÚNamedNodeMap.removeNamedItemS  sz   € Ø×Ñ˜dÓ#ˆØ‰=Ü˜D×.Ñ.Ô/Ø—‘˜AŸJ™JÐ'Ø—‘˜qŸ~™~¨q¯{©{Ð;Ð<Ü�q˜.×)Ñ)Ø!%�”ØˆHä—'‘'×%Ñ%Ó'Ð'r   c                 ó8  • U R                  X5      nUbi  [        U R                  5        U R                  UR                  UR
                  4	 U R                  UR                  	 [        US5      (       a  S Ul	        U$ [        R                  R                  5       erƒ  )r€  rV   r3  r  r¹   r¿   r  rÜ   rž   rê   rK   rL   rT   ©r   r¹   r¿   r…  s       r   ÚremoveNamedItemNSÚNamedNodeMap.removeNamedItemNS_  sz   € Ø×Ñ Ó8ˆØ‰=Ü˜D×.Ñ.Ô/Ø—‘˜qŸ~™~¨q¯{©{Ð;Ð<Ø—‘˜AŸJ™JÐ'Ü�q˜.×)Ñ)Ø!%�”ØˆHä—'‘'×%Ñ%Ó'Ð'r   c                 óÜ  • [        U[        5      (       d8  [        R                  R	                  [        U5      < S[        U 5      < 35      eU R                  R                  UR                  5      nU(       a  UR                  5         XR                  UR                  '   XR                  UR                  UR                  4'   U R                  Ul        [        UR                  5        U$ r`   )rJ  rå   rK   rL   rM   rN   r  rW  rÒ   rn   r  r¹   r¿   r3  rê   rV   )r   r]   r™   s      r   ru  ÚNamedNodeMap.setNamedItemk  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                 ó$   • U R                  U5      $ r1   )ru  ©r   r]   s     r   ÚsetNamedItemNSÚNamedNodeMap.setNamedItemNSx  s   € Ø× Ñ  Ó&Ð&r   c                 óV   • X   n[        UR                  5        UR                  5         g r1   )rV   rê   rn   )r   rq  r]   s      r   Ú__delitem__ÚNamedNodeMap.__delitem__{  s!   € ØÑ%ˆÜ˜×)Ñ)Ô*Ø�‰�r   c                 óH   • U R                   U R                  U R                  4$ r1   r2  r   s    r   Ú__getstate__ÚNamedNodeMap.__getstate__€  s   € Ø�{‰{˜DŸM™M¨4×+=Ñ+=Ð=Ð=r   c                 ó.   • Uu  U l         U l        U l        g r1   r2  ©r   Ústates     r   Ú__setstate__ÚNamedNodeMap.__setstate__ƒ  s   € Ø9>Ñ6ˆŒ�T”] DÕ$6r   r1   )#rµ   r¶   r·   r¸   Ú__doc__r,  rÚ   r:  r@  r    rG  rL  r=  rQ  rC  rW  Ú__len__r\  r`  rd  rg  rk  rn  rr  rx  r|  r€  r†  rŠ  ru  r�  r“  r–  r›  r»   r   r   r   r1  r1  ã  s�   † ñð 8€Iò*ò
 òòòò(ò"ò$ò$ô,ð €GòCò%ò%ò$ò%ò$ò1ò$òòò
(ò
(òò'òò
>õ?r   r1  Úlengthz$Number of nodes in the NamedNodeMap.c                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	ÚTypeInfoiŒ  ©Ú	namespacerÒ   c                 ó   • Xl         X l        g r1   r¢  )r   r£  rÒ   s      r   rÚ   ÚTypeInfo.__init__�  s   € Ø"ŒØ�	r   c                 óä   • U R                   (       a7  SU R                  R                  < SU R                  < SU R                   < S3$ SU R                  R                  < SU R                  < S3$ )NrÄ   Ú z (from z)>rÅ   )r£  Ú	__class__rµ   rÒ   r   s    r   Ú__repr__ÚTypeInfo.__repr__“  sO   € Ø�>�>ˆ>Ø*.¯.©.×*AÔ*AÀ4Ç9Ä9Ø*.¯.¬.ð:ð :ð ð !%§¡× 7Ô 7¸¿¼ÐCÐCr   c                 ó   • U R                   $ r1   )rÒ   r   s    r   rû   ÚTypeInfo._get_nameš  ó   € Ø�y‰yÐr   c                 ó   • U R                   $ r1   )r£  r   s    r   Ú_get_namespaceÚTypeInfo._get_namespace�  rù   r   )rÒ   r£  N)
rµ   r¶   r·   r¸   r,  rÚ   r©  rû   r¯  r»   r   r   r   r¡  r¡  Œ  s   † Ø#€IòòDòõr   r¡  c                   óv  • \ rS rSrSr\R                  rSr\	r
Sr\R                  \R                  \R                  \R                  \R                  \R                   4r\SS4S jrS rS rS rS	 rS
 rS rS rS rS rS rS r\rS r S r!S r"\"r#S r$S r%S r&S r'S r(S S jr)S r*S r+S r,S r-S r.Sr/g)!ÚElementi¢  )rw   rO   rÏ   rÜ   rº   r¹   ré   r3   r  r  rX   rY   Nr   c                 óª   • S U l         S U l        U=U l        U l        X0l        X l        [        5       U l        S =U l        U l	        S U l
        S U l        g r1   )rw   rO   rÏ   rÜ   rº   r¹   r¨   r3   rX   rY   r  r  )r   rÏ   r¹   rº   r¿   s        r   rÚ   ÚElement.__init__³  sS   € à!ˆÔØˆŒØ'.Ð.ˆŒ�t”}ØŒØ(ÔÜ"›*ˆŒØ26Ð6ˆÔ˜4Ô/ð ˆŒØˆ�r   c                 ó<   • U R                   c  0 U l         0 U l        g g r1   )r  r  r   s    r   Ú_ensure_attributesÚElement._ensure_attributesÈ  s   € Ø�;‰;ÑØˆDŒKØˆD�Mð r   c                 óz   •  U R                   $ ! [         a"    U R                  R                  SS5      S   s $ f = frð   )ré   r‘   rÏ   rò   r   s    r   r„   ÚElement._get_localNameÍ  s<   € ð	2Ø—?‘?Ð"øÜó 	2Ø—<‘<×%Ñ% c¨1Ó-¨bÑ1Ò1ð	2úrô   c                 ó   • U R                   $ r1   ©rÏ   r   s    r   Ú_get_tagNameÚElement._get_tagNameÓ  r  r   c                 óØ   • U R                   b:  [        U R                   R                  5       5       H  nUR                  5         M     S U l         S U l        [
        R                  U 5        g r1   )r  rŸ   rC  rn   r  r   )r   rË   s     r   rn   ÚElement.unlinkÖ  sK   € Ø�;‰;Ñ"Ü˜TŸ[™[×/Ñ/Ó1Ö2�Ø—‘–ñ 3àˆŒØˆŒÜ�‰�DÕr   c                 ór   • U R                   c  g U R                   U   R                  $ ! [         a     gf = f)aV  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   rw  s     r   ÚgetAttributeÚElement.getAttributeÞ  s=   € ð �;‰;ÑØð	Ø—;‘;˜wÑ'×-Ñ-Ð-øÜó 	Ùð	ús   �) ©
6µ6c                 ót   • U R                   c  g U R                   X4   R                  $ ! [         a     gf = fr   )r  r   r’   r  s      r   ÚgetAttributeNSÚElement.getAttributeNSî  s>   € Ø�=‰=Ñ Øð	Ø—=‘= ,Ð!:Ñ;×AÑAÐAøÜó 	Ùð	ús   �* ª
7¶7c                 óú   • U R                  U5      nUc4  [        U5      nX#l        U R                  Ul        U R	                  U5        g X#R                  :w  a$  X#l        UR
                  (       a  [        U 5        g g g r1   )ÚgetAttributeNoderå   r   rw   ÚsetAttributeNoder!  rV   )r   rw  r   rË   s       r   ÚsetAttributeÚElement.setAttributeö  si   € Ø×$Ñ$ WÓ-ˆØ‰<Ü˜“=ˆDØŒJØ!%×!3Ñ!3ˆDÔØ×!Ñ! $Õ'Ø—j‘jÓ ØŒJØ�y�yÜ Õ%ð ð !r   c                 óL  • [        U5      u  pEU R                  X5      nUc5  [        X!XT5      nX6l        U R                  Ul        U R                  U5        g X6R                  :w  a"  X6l        UR                  (       a  [        U 5        UR                  U:w  a  XFl        X&l	        g g r1   )
Ú_nssplitÚgetAttributeNodeNSrå   r   rw   rÈ  r!  rV   rº   rÜ   )r   r¹   ÚqualifiedNamer   rº   Ú	localnamerË   s          r   ÚsetAttributeNSÚElement.setAttributeNS  sŠ   € Ü$ ]Ó3ÑˆØ×&Ñ& |Ó?ˆØ‰<Ü˜°YÓGˆDØŒJØ!%×!3Ñ!3ˆDÔØ×!Ñ! $Õ'àŸ
™
Ó"Ø"”
Ø—9—9Ü# DÔ)Ø�{‰{˜fÓ$Ø$”Ø -•ð %r   c                 óT   • U R                   c  g U R                   R                  U5      $ r1   rV  )r   Úattrnames     r   rÇ  ÚElement.getAttributeNode  s"   € Ø�;‰;ÑØØ�{‰{�‰˜xÓ(Ð(r   c                 óV   • U R                   c  g U R                   R                  X45      $ r1   )r  rW  r  s      r   rÍ  ÚElement.getAttributeNodeNS  s'   € Ø�=‰=Ñ ØØ�}‰}× Ñ  ,Ð!:Ó;Ð;r   c                 ó¼  • UR                   S U 4;  a  [        R                  R                  S5      eU R	                  5         U R
                  R                  UR                  S 5      nUb  U R                  U5        U R                  R                  UR                  UR                  4S 5      nUb  X2La  U R                  U5        [        X5        X!La  U$ X1La  U$ g )Nzattribute node already owned)rê   rK   rL   ÚInuseAttributeErrr¶  r  rW  rÒ   ÚremoveAttributeNoder  r¹   r¿   Ú_set_attribute_node)r   rË   Úold1Úold2s       r   rÈ  ÚElement.setAttributeNode  sÅ   € Ø×Ñ T¨4 LÓ0Ü—'‘'×+Ñ+Ð,JÓKÐKØ×ÑÔ!Ø�{‰{�‰˜tŸy™y¨$Ó/ˆØÑØ×$Ñ$ TÔ*Ø�}‰}× Ñ  $×"3Ñ"3°T·^±^Ð!DÀdÓKˆØÑ Ò 0Ø×$Ñ$ TÔ*Ü˜DÔ'àÒð ˆKØÒØˆKð r   c                 óô   • U R                   c  [        R                  R                  5       e U R                  U   nU R                  U5        g ! [
         a    [        R                  R                  5       ef = fr1   )r  rK   rL   rT   r  r’   rÙ  )r   rÒ   rË   s      r   ÚremoveAttributeÚElement.removeAttribute2  sf   € Ø�=‰=Ñ Ü—'‘'×%Ñ%Ó'Ð'ð	(Ø—;‘;˜tÑ$ˆDð 	× Ñ  Õ&øô ó 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   ­A Á)A7c                 óö   • U R                   c  [        R                  R                  5       e U R                   X4   nU R                  U5        g ! [         a    [        R                  R                  5       ef = fr1   )r  rK   rL   rT   r’   rÙ  )r   r¹   r¿   rË   s       r   ÚremoveAttributeNSÚElement.removeAttributeNS;  si   € Ø�=‰=Ñ Ü—'‘'×%Ñ%Ó'Ð'ð	(Ø—=‘= ,Ð!:Ñ;ˆDð 	× Ñ  Õ&øô ó 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   ­A Á)A8c                 ó,  • Uc  [         R                  R                  5       e U R                  UR                       [        U 5        UR                  5         U R                  Ul        U$ ! [
         a    [         R                  R                  5       ef = fr1   )	rK   rL   rT   r  rÒ   r’   rV   rn   rw   r�  s     r   rÙ  ÚElement.removeAttributeNodeD  s{   € Ø‰<Ü—'‘'×%Ñ%Ó'Ð'ð	(Ø�K‰K˜Ÿ	™	Ò"ô 	˜ÔØ�‰Œð "×/Ñ/ˆÔØˆøô ó 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   £A* Á*)Bc                 ó:   • U R                   c  gXR                   ;   $ )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   ÚhasAttributeÚElement.hasAttributeT  s   € ð �;‰;ÑØØ—{‘{Ñ"Ð"r   c                 ó>   • U R                   c  gX4U R                   ;   $ ©NF)r  r  s      r   ÚhasAttributeNSÚElement.hasAttributeNS^  s!   € Ø�=‰=Ñ ØØÐ(¨D¯M©MÑ9Ð9r   c                 ó*   • [        X[        5       5      $ )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   ÚgetElementsByTagNameÚElement.getElementsByTagNamec  s   € ô /¨t¼8»:ÓFÐFr   c                 ó,   • [        XU[        5       5      $ r1   ©rÕ   r¨   r  s      r   ÚgetElementsByTagNameNSÚElement.getElementsByTagNameNSk  ó   € Ü1Ø 	¬8«:ó7ð 	7r   c                 ó6   • SU R                   [        U 5      4-  $ )Nz<DOM Element: %s at %#x>)rÏ   r[  r   s    r   r©  ÚElement.__repr__o  s   € Ø)¨T¯\©\¼2¸d»8Ð,DÑDÐDr   c                 óD  • UR                  US-   U R                  -   5        U R                  5       nUR                  5        HA  nUR                  SU-  5        [	        XU   R
                  S5        UR                  S5        MC     U R                  (       aõ  UR                  S5        [        U R                  5      S:X  a]  U R                  S   R                  [        R                  [        R                  4;   a"  U R                  S   R                  USSS5        OJUR                  U5        U R                   H  nUR                  XU-   X45        M     UR                  U5        UR                  S	U R                  < SU< 35        gUR                  S
U-  5        g)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="TrÆ   rÅ   rF   r   r   z</z/>%sN)rÉ   rÏ   Ú_get_attributesr=  rÌ   r   r3   r9  r'   r   rl   rß   r)   )r   r.   r,   Ú	addindentr-   r5  Úa_namer]   s           r   r)   ÚElement.writexmlr  s:  € ð 	�‰�V˜C‘Z $§,¡,Ñ.Ô/à×$Ñ$Ó&ˆà—j‘j–lˆFØ�L‰L˜ FÑ*Ô+Ü˜ f¡× 3Ñ 3°TÔ:Ø�L‰L˜Öñ #ð �?�?Ø�L‰L˜ÔÜ�D—O‘OÓ$¨Ó)Ø—‘ Ñ"×+Ñ+ÜŸ™¬×(?Ñ(?ð0Aó Aà—‘ Ñ"×+Ñ+¨F°B¸¸BÕ?à—‘˜TÔ"Ø ŸOœO�DØ—M‘M &°Ñ*:¸IÖLñ ,à—‘˜VÔ$Ø�LŠL d§l¤l²DÐ9Õ:à�L‰L˜ ™Õ'r   c                 ód   • U R                  5         [        U R                  U R                  U 5      $ r1   )r¶  r1  r  r  r   s    r   rú  ÚElement._get_attributes’  s%   € Ø×ÑÔ!Ü˜DŸK™K¨¯©¸Ó=Ð=r   c                 ó(   • U R                   (       a  ggr  rç  r   s    r   ÚhasAttributesÚElement.hasAttributes–  s   € Ø�;�;Øàr   c                 óH   • U R                  U5      nU R                  U5        g r1   )rÇ  ÚsetIdAttributeNode)r   rÒ   ÚidAttrs      r   ÚsetIdAttributeÚElement.setIdAttributež  s    € Ø×&Ñ& tÓ,ˆØ×Ñ Õ'r   c                 óH   • U R                  X5      nU R                  U5        g r1   )rÍ  r  )r   r¹   r¿   r  s       r   ÚsetIdAttributeNSÚElement.setIdAttributeNS¢  s    € Ø×(Ñ(¨ÓAˆØ×Ñ Õ'r   c                 óŠ  • Ub   U R                  UR                  5      (       d  [        R                  R	                  5       e[        U 5      b  [        R                  R                  5       eUR                  (       dG  SUl        U =R                  S-  sl        U R                  =R                  S-  sl
        [        U 5        g g )NTrF   )r‰   rê   rK   rL   rT   Ú_get_containing_entrefÚNoModificationAllowedErrr  r  rw   r  rV   )r   r  s     r   r  ÚElement.setIdAttributeNode¦  s�   € Ø‰> §¡°×1DÑ1D×!EÑ!EÜ—'‘'×%Ñ%Ó'Ð'Ü! $Ó'Ñ3Ü—'‘'×2Ñ2Ó4Ð4Ø�}�}Ø ˆFŒMØ× Ò  AÑ%Õ Ø×Ñ×.Ò.°!Ñ3Õ.Ü˜DÕ!ð	 r   )r  r  r3   r¹   rX   rÜ   rw   rO   rº   rY   rÏ   ©r   r   r   )0rµ   r¶   r·   r¸   r,  r   rp   r'   rÝ   r'  r/  r  rá   râ   rl   rß   rà   rJ   r   rÚ   r¶  r„   r¼  rn   rÁ  rÄ  rÉ  rÐ  rÇ  rÍ  rÈ  ÚsetAttributeNodeNSrß  râ  rÙ  ÚremoveAttributeNodeNSrè  rì  rð  rô  r©  r)   rú  r  r  r	  r  r»   r   r   r   r²  r²  ¢  s   † ð1€Ið × Ñ €HØ€IØ€Jà€Oà×*Ñ*Ø×9Ñ9Ø×*Ñ*ØŸ™Ø×0Ñ0Ø×3Ñ3ð5Ðð .=ÀTØôò*ò
2òòòò ò
&ò.ò")ò
<ò
ð& *Ðò'ò'òð 0Ðò#ò:ò
Gò7òEô(ò@>òò(ò(õ	"r   r²  rÞ   z*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.c                 ó¾   • [        U 5        U R                  5         XR                  UR                  '   XR                  UR
                  UR                  4'   Xl        g r1   )rV   r¶  r  rÒ   r  r¹   r¿   rê   )ÚelementrË   s     r   rÚ  rÚ  ·  sK   € Ü�GÔØ×ÑÔ Ø $‡N�N�4—9‘9ÑØ<@×Ñ�d×'Ñ'¨¯©Ð8Ñ9ð
  Õr   c                   óf   • \ rS rSrSrSrSr\" 5       rSr	Sr
S rS rS rS rS	 rS
 rS rS rSrg)Ú	ChildlessiÂ  zyMixin that makes childless-ness easy to implement and avoids
the complexity of the Node methods that deal with children.
r   Nc                 ó   • g r1   r   r   s    r   r=   ÚChildless._get_firstChildÍ  r   r   c                 ó   • g r1   r   r   s    r   rB   ÚChildless._get_lastChildÐ  r   r   c                 óZ   • [         R                  R                  U R                  S-   5      e)Nz nodes cannot have children©rK   rL   rM   rÜ   r�  s     r   rQ   ÚChildless.appendChildÓ  ó&   € Ü�g‰g×)Ñ)Ø�M‰MÐ9Ñ9ó;ð 	;r   c                 ó   • grë  r   r   s    r   r4   ÚChildless.hasChildNodes×  ó   € Ør   c                 óZ   • [         R                  R                  U R                  S-   5      e©Nz nodes do not have childrenr  ©r   rZ   r[   s      r   rI   ÚChildless.insertBeforeÚ  r  r   c                 óZ   • [         R                  R                  U R                  S-   5      er"  )rK   rL   rT   rÜ   ri   s     r   rP   ÚChildless.removeChildÞ  s&   € Ü�g‰g×!Ñ!Ø�M‰MÐ9Ñ9ó;ð 	;r   c                 ó   • g r1   r   r   s    r   rq   ÚChildless.normalizeâ  s   € àr   c                 óZ   • [         R                  R                  U R                  S-   5      er"  r  ©r   rZ   rd   s      r   re   ÚChildless.replaceChildæ  r  r   )rµ   r¶   r·   r¸   r�  r,  rÞ   ÚEmptyNodeListr3   r¼   r¾   r=   rB   rQ   r4   rI   rP   rq   re   r»   r   r   r   r  r  Â  sL   † ñð €Ià€JÙ“€JØ€JØ€Iòòò;òò;ò;òõ;r   r  c                   ó|   • \ rS rSr\R
                  rSrS rS r	S r
\" \	\
5      rS rS r\" \\5      rSS jrS	rg
)ÚProcessingInstructionië  ©Útargetrm   c                 ó   • Xl         X l        g r1   r/  )r   r0  rm   s      r   rÚ   ÚProcessingInstruction.__init__ï  s   € ØŒØ�	r   c                 ó   • U R                   $ r1   ©rm   r   s    r   Ú_get_nodeValueÚ$ProcessingInstruction._get_nodeValueô  r­  r   c                 ó   • Xl         g r1   r4  rÿ   s     r   Ú_set_nodeValueÚ$ProcessingInstruction._set_nodeValueö  s   € Ø�	r   c                 ó   • U R                   $ r1   ©r0  r   s    r   Ú_get_nodeNameÚ#ProcessingInstruction._get_nodeNameû  r  r   c                 ó   • Xl         g r1   r;  rÿ   s     r   Ú_set_nodeNameÚ#ProcessingInstruction._set_nodeNameý  s   € Ø�r   c           	      ól   • UR                  U< SU R                  < SU R                  < SU< 35        g )Nz<?r§  ú?>)rÉ   r0  rm   ©r   r.   r,   rû  r-   s        r   r)   ÚProcessingInstruction.writexml  s   € Ø�‰«¨t¯{¬{¸D¿I¼IÂtÐLÕMr   )rm   r0  Nr  )rµ   r¶   r·   r¸   r   rá   r'   r,  rÚ   r5  r8  r.  rÝ   r<  r?  rÜ   r)   r»   r   r   r   r.  r.  ë  sI   † Ø×/Ñ/€HØ"€Iòò
òá˜¨Ó8€Iòòá˜ }Ó5€H÷Nr   r.  c                   ón   • \ rS rSrSrS rS r\rS rS r	\
" \\	5      =rrS rS rS	 rS
 rS rS rSrg)ÚCharacterDatai  )Ú_datarw   rO   rY   rX   c                 ót   • S =U l         U l        S =U l        U l        SU l        [
        R                  U 5        g r   )rw   rO   rY   rX   rG  r   rÚ   r   s    r   rÚ   ÚCharacterData.__init__  s4   € Ø/3Ð3ˆÔ˜Tœ_Ø26Ð6ˆÔ˜tÔ/ØˆŒ
Ü�‰�dÕr   c                 ó,   • [        U R                  5      $ r1   )r9  rm   r   s    r   r:  ÚCharacterData._get_length  ó   € Ü�4—9‘9‹~Ðr   c                 ó   • U R                   $ r1   ©rG  r   s    r   Ú	_get_dataÚCharacterData._get_data  rý   r   c                 ó   • Xl         g r1   rN  ©r   rm   s     r   Ú	_set_dataÚCharacterData._set_data  s   € Ø�
r   c                 óŒ   • U R                   n[        U5      S:”  a  SnOSnSU R                  R                  < SUSS < U< S3$ )Né
   z...r   z<DOM z node "r   z">)rm   r9  r¨  rµ   )r   rm   Ú	dotdotdots      r   r©  ÚCharacterData.__repr__  sB   € Ø�y‰yˆÜˆt‹9�r‹>Ø‰IàˆIøà�N‰N×#Ô# T¨!¨B¢Z³ð<ð 	<r   c                 ó(  • US:  a  [         R                  R                  S5      eU[        U R                  5      :¼  a  [         R                  R                  S5      eUS:  a  [         R                  R                  S5      eU R                  XU-    $ ©Nr   úoffset cannot be negativeú#offset cannot be beyond end of datazcount cannot be negative©rK   rL   ÚIndexSizeErrr9  rm   ©r   ÚoffsetÚcounts      r   ÚsubstringDataÚCharacterData.substringData"  su   € Ø�A‹:Ü—'‘'×&Ñ&Ð'BÓCÐCØ”S˜Ÿ™“^Ó#Ü—'‘'×&Ñ&Ð'LÓMÐMØ�1‹9Ü—'‘'×&Ñ&Ð'AÓBÐBØ�y‰y˜ u¡Ð-Ð-r   c                 ó,   • U R                   U-   U l         g r1   r4  )r   Úargs     r   Ú
appendDataÚCharacterData.appendData+  s   € Ø—I‘I ‘Oˆ�	r   c                 ó"  • US:  a  [         R                  R                  S5      eU[        U R                  5      :¼  a  [         R                  R                  S5      eU(       a+  U R                  S U < U< U R                  US  < 3U l        g g )Nr   r[  r\  r]  )r   r`  re  s      r   Ú
insertDataÚCharacterData.insertData.  ss   € Ø�A‹:Ü—'‘'×&Ñ&Ð'BÓCÐCØ”S˜Ÿ™“^Ó#Ü—'‘'×&Ñ&Ð'LÓMÐMÞà—	‘	˜'˜6Ò"¢C¨¯©°6°7Ò);ð=ˆD�Ið r   c                 ód  • US:  a  [         R                  R                  S5      eU[        U R                  5      :¼  a  [         R                  R                  S5      eUS:  a  [         R                  R                  S5      eU(       a'  U R                  S U U R                  X-   S  -   U l        g g rZ  r]  r_  s      r   Ú
deleteDataÚCharacterData.deleteData7  sŽ   € Ø�A‹:Ü—'‘'×&Ñ&Ð'BÓCÐCØ”S˜Ÿ™“^Ó#Ü—'‘'×&Ñ&Ð'LÓMÐMØ�1‹9Ü—'‘'×&Ñ&Ð'AÓBÐBÞØŸ	™	 ' 6Ð*¨T¯Y©Y°v±|°}Ð-EÑEˆD�Ið r   c                 óp  • US:  a  [         R                  R                  S5      eU[        U R                  5      :¼  a  [         R                  R                  S5      eUS:  a  [         R                  R                  S5      eU(       a-  U R                  S U < U< U R                  X-   S  < 3U l        g g rZ  r]  )r   r`  ra  re  s       r   ÚreplaceDataÚCharacterData.replaceDataA  s“   € Ø�A‹:Ü—'‘'×&Ñ&Ð'BÓCÐCØ”S˜Ÿ™“^Ó#Ü—'‘'×&Ñ&Ð'LÓMÐMØ�1‹9Ü—'‘'×&Ñ&Ð'AÓBÐBÞà—	‘	˜'˜6Ò"¢C¨¯©°6±<°=Ò)AðCˆD�Ið r   )rG  rm   rX   rw   rO   rY   N)rµ   r¶   r·   r¸   r,  rÚ   r:  rž  rO  rS  r.  rm   rÝ   r©  rb  rf  ri  rl  ro  r»   r   r   r   rF  rF    sS   † ØW€Iòòà€Gòòñ   	¨9Ó5Ð5€Dˆ9ò<ò.ò$ò=òFõ	Cr   rF  zLength of the string data.c                   óZ   • \ rS rSrSr\R                  rSrSr	S r
SS jrS rS rS	 rS
rg)rì   iO  r   z#textNc                 óô  • US:  d  U[        U R                  5      :”  a  [        R                  R	                  S5      eU R                  5       nU R                  US  Ul        U R                  Ul        U R                  nU R                  (       aS  X R                  R                  ;   a:  Uc  U R                  R                  U5        OU R                  R                  X#5        U R                  S U U l        U$ )Nr   zillegal offset value)r9  rm   rK   rL   r^  r¨  rw   rX   rO   r3   rQ   rI   )r   r`  ÚnewTextÚnexts       r   Ú	splitTextÚText.splitTextV  s»   € Ø�A‹:˜¤# d§i¡i£.Ó0Ü—'‘'×&Ñ&Ð'=Ó>Ð>Ø—.‘.Ó"ˆØ—y‘y  Ð)ˆŒØ $× 2Ñ 2ˆÔØ×ÑˆØ�?�?˜t§¡×'AÑ'AÓAØ‰|Ø—‘×+Ñ+¨GÕ4à—‘×,Ñ,¨WÔ;Ø—I‘I˜g˜vÐ&ˆŒ	Øˆr   c                 óB   • [        X< U R                  < U< 3S5        g rë  )rÌ   rm   rC  s        r   r)   ÚText.writexmle  s   € Ü�F©°·	³	º4Ð@À%ÕHr   c                 óì  • U R                   /nU R                  nUb]  UR                  [        R                  [        R
                  4;   a)  UR                  SUR                   5        UR                  nOOUb  M]  U R                  nUb\  UR                  [        R                  [        R
                  4;   a(  UR                  UR                   5        UR                  nOOUb  M\  SR                  U5      $ )Nr   r   )
rm   rY   r'   r   rl   rß   rW   rX   ro   Újoin)r   rr   r…  s      r   Ú_get_wholeTextÚText._get_wholeTextj  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                 óö  • U R                   nU R                  nUbT  UR                  [        R                  [        R
                  4;   a   UR                  nUR                  U5        UnOOUb  MT  U R                  nU(       d  UR                  U 5        UbT  UR                  [        R                  [        R
                  4;   a   UR                  nUR                  U5        UnOOUb  MT  U(       a  Xl        U $ g r1   )	rO   rY   r'   r   rl   rß   rP   rX   rm   )r   ÚcontentrÑ   r…  rt  s        r   ÚreplaceWholeTextÚText.replaceWholeText|  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ö ØŒIØˆKàr   c                 ó¾   • U R                   R                  5       (       a  g[        U 5      nUc  gU R                  R	                  U5      nUc  gUR                  5       $ rë  )rm   ÚstripÚ_get_containing_elementrw   r  ÚisElementContent)r   r  r#  s      r   Ú!_get_isWhitespaceInElementContentÚ&Text._get_isWhitespaceInElementContent˜  sU   € Ø�9‰9�?‰?×ÑØÜ& tÓ,ˆØ‰<ØØ×!Ñ!×0Ñ0°Ó6ˆØ‰<Øà×(Ñ(Ó*Ð*r   r4  r  )rµ   r¶   r·   r¸   r,  r   rl   r'   rÜ   rÞ   ru  r)   r{  r  r…  r»   r   r   r   rì   rì   O  s4   † Ø€Ià�~‰~€HØ€HØ€JòôIò
ò$õ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                 ó„   • U R                   nUb1  UR                  [        R                  :X  a  U$ UR                   nUb  M1  g r1   )rO   r'   r   rp   ©r]   r\   s     r   rƒ  rƒ  «  s<   € Ø�‰€AØ
‰-Ø�:‰:œ×*Ñ*Ó*ØˆHØ�L‰Lˆð ‹-ð r   c                 ó„   • U R                   nUb1  UR                  [        R                  :X  a  U$ UR                   nUb  M1  g r1   )rO   r'   r   rà   rŠ  s     r   r  r  ³  s<   € Ø�‰€AØ
‰-Ø�:‰:œ×3Ñ3Ó3ØˆHØ�L‰Lˆð ‹-ð r   c                   ó@   • \ rS rSr\R
                  rSrS rSS jr	Sr
g)ÚCommenti¼  z#commentc                 ó:   • [         R                  U 5        Xl        g r1   )rF  rÚ   rG  rR  s     r   rÚ   ÚComment.__init__À  s   € Ü×Ñ˜tÔ$Ø�
r   c                 ó†   • SU R                   ;   a  [        S5      eUR                  U< SU R                   < SU< 35        g )Nz--z%'--' is not allowed in a comment nodez<!--z-->)rm   rS   rÉ   rC  s        r   r)   ÚComment.writexmlÄ  s1   € Ø�4—9‘9ÓÜÐDÓEÐEØ�‰«°·	´	º4Ð@ÕAr   rN  Nr  )rµ   r¶   r·   r¸   r   râ   r'   rÜ   rÚ   r)   r»   r   r   r   r�  r�  ¼  s   † Ø× Ñ €HØ€Hò÷Br   r�  c                   ó>   • \ rS rSrSr\R                  rSrSS jr	Sr
g)ÚCDATASectioniÊ  r   z#cdata-sectionc                 ó”   • U R                   R                  S5      S:¼  a  [        S5      eUR                  SU R                   -  5        g )Nz]]>r   z$']]>' not allowed in a CDATA sectionz<![CDATA[%s]]>)rm   ÚfindrS   rÉ   rC  s        r   r)   Ú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   r“  r“  Ê  s   † Ø€Ià×&Ñ&€HØ€H÷3r   r“  c                   ój   • \ rS rSrSrSS jrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)ÚReadOnlySequentialNamedNodeMapiÖ  ©Ú_seqc                 ó   • Xl         g r1   r™  )r   Úseqs     r   rÚ   Ú'ReadOnlySequentialNamedNodeMap.__init__Ù  s   € à�	r   c                 ó,   • [        U R                  5      $ r1   ©r9  rš  r   s    r   rž  Ú&ReadOnlySequentialNamedNodeMap.__len__Ý  rL  r   c                 ó,   • [        U R                  5      $ r1   rŸ  r   s    r   r:  Ú*ReadOnlySequentialNamedNodeMap._get_lengthà  rL  r   c                 óR   • U R                    H  nUR                  U:X  d  M  Us  $    g r1   )rš  rÜ   r„  s      r   r|  Ú+ReadOnlySequentialNamedNodeMap.getNamedItemã  s!   € Ø—”ˆAØ�z‰z˜TÕ!Ø’ò r   c                 óv   • U R                    H)  nUR                  U:X  d  M  UR                  U:X  d  M'  Us  $    g r1   )rš  r¹   r¿   r‰  s       r   r€  Ú-ReadOnlySequentialNamedNodeMap.getNamedItemNSè  s,   € Ø—”ˆAØ�~‰~ Õ-°!·+±+ÀÕ2JØ’ò r   c                 óŽ   • [        U[        5      (       a  U R                  " U6 nOU R                  U5      nUc  [	        U5      eU$ r1   )rJ  rH   r€  r|  r’   )r   Úname_or_tupler]   s      r   rr  Ú*ReadOnlySequentialNamedNodeMap.__getitem__í  sD   € Ü�m¤U×+Ñ+Ø×&Ò&¨Ð6‰Dà×$Ñ$ ]Ó3ˆDØ‰<Ü˜=Ó)Ð)Øˆr   c                 óP   • US:  a  g  U R                   U   $ ! [         a     g f = fr<   )rš  r>  r?  s     r   r@  Ú#ReadOnlySequentialNamedNodeMap.itemö  s2   € Ø�1‹9Øð	Ø—9‘9˜UÑ#Ð#øÜó 	Ùð	ús   ‰ ˜
%¤%c                 ó@   • [         R                  R                  S5      e©Nz"NamedNodeMap instance is read-only©rK   rL   r  r{  s     r   r†  Ú.ReadOnlySequentialNamedNodeMap.removeNamedItemþ  ó   € Ü�g‰g×.Ñ.Ø0ó2ð 	2r   c                 ó@   • [         R                  R                  S5      er­  r®  r  s      r   rŠ  Ú0ReadOnlySequentialNamedNodeMap.removeNamedItemNS  r°  r   c                 ó@   • [         R                  R                  S5      er­  r®  r�  s     r   ru  Ú+ReadOnlySequentialNamedNodeMap.setNamedItem  r°  r   c                 ó@   • [         R                  R                  S5      er­  r®  r�  s     r   r�  Ú-ReadOnlySequentialNamedNodeMap.setNamedItemNS
  r°  r   c                 ó   • U R                   /$ r1   r™  r   s    r   r–  Ú+ReadOnlySequentialNamedNodeMap.__getstate__  s   € Ø—	‘	ˆ{Ðr   c                 ó   • US   U l         g r<   r™  r™  s     r   r›  Ú+ReadOnlySequentialNamedNodeMap.__setstate__  s   € Ø˜!‘Hˆ�	r   N)r   )rµ   r¶   r·   r¸   r,  rÚ   rž  r:  r|  r€  rr  r@  r†  rŠ  ru  r�  r–  r›  r»   r   r   r   r˜  r˜  Ö  sH   † Ø€Iôòòòò
ò
òò2ò2ò2ò2òõr   r˜  z&Number of entries in the NamedNodeMap.c                   ó.   • \ rS rSrSrSrS rS rS rSr	g)Ú
Identifiedi  z@Mix-in class that supports the publicId and systemId attributes.©ÚpublicIdÚsystemIdc                 ó   • Xl         X l        g r1   r½  )r   r¾  r¿  s      r   Ú_identified_mixin_initÚ!Identified._identified_mixin_init  s   € Ø ŒØ �r   c                 ó   • U R                   $ r1   )r¾  r   s    r   Ú_get_publicIdÚIdentified._get_publicId!  ó   € Ø�}‰}Ðr   c                 ó   • U R                   $ r1   )r¿  r   s    r   Ú_get_systemIdÚIdentified._get_systemId$  rÆ  r   N)
rµ   r¶   r·   r¸   r�  r,  rÁ  rÄ  rÈ  r»   r   r   r   r¼  r¼    s   † ÙJà&€Iò!òõr   r¼  c                   ó\   • \ rS rSr\R
                  rSrSrSr	Sr
SrS rS rS rSS jrSrg)	ÚDocumentTypei'  Nc                 ó–   • [        5       U l        [        5       U l        U(       a  [        U5      u  p#X0l        U R                  U l        g r1   )r˜  ÚentitiesÚ	notationsrÌ  rÒ   rÜ   )r   rÎ  rº   rÏ  s       r   rÚ   ÚDocumentType.__init__/  s6   € Ü6Ó8ˆŒÜ7Ó9ˆŒÞÜ (¨Ó 7ÑˆFØ!ŒIØŸ	™	ˆ�r   c                 ó   • U R                   $ r1   )ÚinternalSubsetr   s    r   Ú_get_internalSubsetÚ DocumentType._get_internalSubset7  ó   € Ø×"Ñ"Ð"r   c                 ó¶  • U R                   GcË  [        S 5      nU R                  Ul        U R                  Ul        [        R
                  R                  R                  nU(       Ga^  / UR                  l	        / UR                  l	        U R                  R                   He  n[        UR                  UR                  UR                  5      nUR                  R                  R                  U5        UR                  X4U5        Mg     U R                  R                   H£  n[!        UR                  UR                  UR                  UR"                  5      nUR$                  Ul        UR&                  Ul        UR(                  Ul        UR                  R                  R                  U5        UR                  X6U5        M¥     U R                  X0U5        U$ g r1   )rw   rË  rÒ   rÜ   rK   rL   ÚUserDataHandlerÚNODE_CLONEDrÍ  rš  rÎ  ÚNotationr¾  r¿  ro   r¥   ÚEntityÚnotationNameÚactualEncodingr   r€   )r   rx   Úcloner¢   r…  ÚnotationÚeÚentitys           r   ry   ÚDocumentType.cloneNode:  sS  € Ø×ÑÒ%ä  Ó&ˆEØŸ™ˆEŒJØ!ŸY™YˆEŒNÜŸ™×/Ñ/×;Ñ;ˆIßØ&(�—‘Ô#Ø')�—‘Ô$ØŸ™×,Ô,�AÜ'¨¯
©
°A·J±JÀÇ
Á
ÓK�HØ—O‘O×(Ñ(×/Ñ/°Ô9Ø×-Ñ-¨i¸HÖEñ -ð Ÿ™×+Ô+�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ñ ,ð ×(Ñ(¨¸%Ô@ØˆLàr   c           
      ó  • UR                  S5        UR                  U R                  5        U R                  (       a6  UR                  U< SU R                  < SU< SU R                  < S35        O4U R                  (       a#  UR                  U< SU R                  < S35        U R                  b=  UR                  S5        UR                  U R                  5        UR                  S5        UR                  SU-   5        g )	Nz
<!DOCTYPE z
  PUBLIC 'Ú'z  'z
  SYSTEM 'z [Ú]rÅ   )rÉ   rÒ   r¾  r¿  rÑ  rC  s        r   r)   ÚDocumentType.writexmlU  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  )rµ   r¶   r·   r¸   r   ÚDOCUMENT_TYPE_NODEr'   rÝ   rÒ   r¾  r¿  rÑ  rÚ   rÒ  ry   r)   r»   r   r   r   rË  rË  '  s:   † Ø×&Ñ&€HØ€IØ€DØ€HØ€HØ€Nò"ò#ò÷6r   rË  c                   óp   • \ rS rSrSr\R                  rSrSr	Sr
SrS rS rS rS rS rS rS	 rS
 rSrg)rÙ  ic  Nc                 ó\   • Xl         X@l        [        5       U l        U R	                  X#5        g r1   )rÜ   rÚ  r¨   r3   rÁ  )r   rÒ   r¾  r¿  rÝ  s        r   rÚ   ÚEntity.__init__l  s$   € ØŒØ$ÔÜ"›*ˆŒØ×#Ñ# HÕ7r   c                 ó   • U R                   $ r1   ©rÛ  r   s    r   Ú_get_actualEncodingÚEntity._get_actualEncodingr  rÔ  r   c                 ó   • U R                   $ r1   ©r   r   s    r   Ú_get_encodingÚEntity._get_encodingu  rÆ  r   c                 ó   • U R                   $ r1   ©r€   r   s    r   Ú_get_versionÚEntity._get_versionx  r  r   c                 ó@   • [         R                  R                  S5      e)Nz(cannot append children to an entity node©rK   rL   rM   )r   rZ   s     r   rQ   ÚEntity.appendChild{  s   € Ü�g‰g×)Ñ)Ø6ó8ð 	8r   c                 ó@   • [         R                  R                  S5      e)Nz+cannot insert children below an entity noderö  r#  s      r   rI   ÚEntity.insertBefore  s   € Ü�g‰g×)Ñ)Ø9ó;ð 	;r   c                 ó@   • [         R                  R                  S5      e)Nz*cannot remove children from an entity noderö  ri   s     r   rP   ÚEntity.removeChildƒ  s   € Ü�g‰g×)Ñ)Ø8ó:ð 	:r   c                 ó@   • [         R                  R                  S5      e)Nz)cannot replace children of an entity noderö  r*  s      r   re   ÚEntity.replaceChild‡  s   € Ü�g‰g×)Ñ)Ø7ó9ð 	9r   )r3   rÜ   rÚ  )rµ   r¶   r·   r¸   rÞ   r   ÚENTITY_NODEr'   rÝ   rÛ  r   r€   rÚ   rë  rï  ró  rQ   rI   rP   re   r»   r   r   r   rÙ  rÙ  c  sN   † Ø€JØ×Ñ€HØ€Ià€NØ€HØ€Gò8ò#òòò8ò;ò:õ9r   rÙ  c                   ó6   • \ rS rSr\R
                  rSrS rSr	g)rØ  i‹  Nc                 ó2   • Xl         U R                  X#5        g r1   )rÜ   rÁ  )r   rÒ   r¾  r¿  s       r   rÚ   ÚNotation.__init__�  s   € ØŒØ×#Ñ# HÕ7r   )rÜ   )
rµ   r¶   r·   r¸   r   rã   r'   rÝ   rÚ   r»   r   r   r   rØ  rØ  ‹  s   † Ø×!Ñ!€HØ€Iõ8r   rØ  c                   ó:   • \ rS rSr/ SQrS rS rS rS rS r	Sr
g	)
ÚDOMImplementationi”  ))Úcoreú1.0)r  ú2.0)r  N)rK   r  )rK   r  )rK   N)úls-loadz3.0)r  Nc                 óP   • US:X  a  S nUR                  5       U4U R                  ;   $ r   )ÚlowerÚ	_featuresr~   s      r   r}   ÚDOMImplementation.hasFeatureŸ  s(   € Ø�b‹=ØˆGØ—‘“ Ð)¨T¯^©^Ñ;Ð;r   c                 ó²  • U(       a,  UR                   b  [        R                  R                  S5      eU R	                  5       nUS L =(       a    US L =(       a    US L (       + nU(       d&  U(       a  [        R                  R                  S5      eU(       aŸ  [        U5      u  pgUS:X  a%  US:w  a  [        R                  R                  S5      eU(       a&  U(       d  [        R                  R                  S5      eUR                  X5      nU(       a  UR                  U5        UR                  U5        U(       a  U=Ul         Ul
        X4l        Xl        U$ )Nz(doctype object owned by another DOM treezElement with no namerK   z$http://www.w3.org/XML/1998/namespacezillegal use of 'xml' prefixz(illegal use of prefix without namespaces)rO   rK   rL   ÚWrongDocumentErrÚ_create_documentÚInvalidCharacterErrrÌ  r  ÚcreateElementNSrQ   rw   Údoctyper|   )	r   r¹   rÎ  r  r½   Úadd_root_elementrº   rÏ  r  s	            r   ÚcreateDocumentÚ DOMImplementation.createDocument¤  s&  € Þ�w×)Ñ)Ñ5Ü—'‘'×*Ñ*Ø:ó<ð <à×#Ñ#Ó%ˆà ,°Ð 4÷ !4Ø$1°TÐ$9÷!4à$+¨t Oô5Ðö Ö!1ô —'‘'×-Ñ-Ð.DÓEÐEæÜ (¨Ó 7ÑˆFØ˜‹ØÐ#IÓIÜ—g‘g×*Ñ*Ð+HÓIÐIÞžlÜ—g‘g×*Ñ*Ø>ó@ð @à×)Ñ)¨,ÓFˆGÞØ—‘ Ô(Ø�O‰O˜GÔ$æØ9<Ð<ˆGÔ Ô!6àŒØ!ÔØˆ
r   c                 ó4   • [        U5      nX$l        X4l        U$ r1   )rË  r¾  r¿  )r   rÎ  r¾  r¿  r  s        r   ÚcreateDocumentTypeÚ$DOMImplementation.createDocumentTypeÑ  s   € Ü˜}Ó-ˆØ#ÔØ#ÔØˆr   c                 ó6   • U R                  US 5      (       a  U $ g r1   )r}   rŒ   s     r   r�   ÚDOMImplementation.getInterfaceÙ  s   € Ø�?‰?˜7 D×)Ñ)ØˆKàr   c                 ó   • [        5       $ r1   )ÚDocumentr   s    r   r  Ú"DOMImplementation._create_documentà  s
   € Ü‹zÐr   r   N)rµ   r¶   r·   r¸   r
  r}   r  r  r�   r  r»   r   r   r   r  r  ”  s#   † ò€Iò<ò
+òZòõr   r  c                   óR   • \ rS rSrSrSrS rS rS rS r	S r
S	 rS
 rS rS rSrg)ÚElementInfoiã  zç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.

r»  c                 ó   • Xl         g r1   r»  r{  s     r   rÚ   ÚElementInfo.__init__î  s   € Ø�r   c                 ó   • [         $ r1   ©r'  ©r   Úanames     r   r)  ÚElementInfo.getAttributeTypeñ  ó   € Üˆr   c                 ó   • [         $ r1   r"  r  s      r   r(  ÚElementInfo.getAttributeTypeNSô  r&  r   c                 ó   • grë  r   r   s    r   r„  ÚElementInfo.isElementContent÷  r   r   c                 ó   • g)zIReturns true iff this element is declared to have an EMPTY
content model.Fr   r   s    r   ÚisEmptyÚElementInfo.isEmptyú  s   € ð r   c                 ó   • g)z7Returns true iff the named attribute is a DTD-style ID.Fr   r#  s     r   r!  ÚElementInfo.isIdÿ  ó   € àr   c                 ó   • g)z<Returns true iff the identified attribute is a DTD-style ID.Fr   r  s      r   r   ÚElementInfo.isIdNS  r0  r   c                 ó   • U R                   $ r1   r»  r   s    r   r–  ÚElementInfo.__getstate__  r  r   c                 ó   • Xl         g r1   r»  r™  s     r   r›  ÚElementInfo.__setstate__
  s   € Ø�r   N)rµ   r¶   r·   r¸   r�  r,  rÚ   r)  r(  r„  r,  r!  r   r–  r›  r»   r   r   r   r  r  ã  s;   † ñð €Iòòòòòò
òòõr   r  c                 ó  • U R                   [        R                  :X  a"  U R                  R	                  5         S U l        g U R                  (       a6  U R                  R                  R	                  5         S U R                  l        g g r1   )r'   r   r(   Ú	_id_cacheÚclearÚ_id_search_stackrw   )r]   s    r   rV   rV     s`   € Ø‡}�}œ×*Ñ*Ó*Ø�‰×ÑÔØ $ˆÕØ	×	×	Ø×Ñ×$Ñ$×*Ñ*Ô,Ø-1ˆ×ÑÕ+ð 
r   c                   ó   • \ rS rSrSr\R                  \R                  \R                  \R                  4r
\" 5       r\R                  rSrSrSrSrS=rrSrSrSrSrSrSrSrSrS rS rS	 rS
 r S r!S r"S r#S r$S r%S r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S r0S r1S r2S r3S r4S r5S  r6S! r7S" r8S# r9S$ r:S% r;  S)S& jr<S' r=S(r>g)*r  i  )Ú
_elem_infor  r:  r3   r8  z	#documentNFr   c                 óZ   • S U l         [        5       U l        0 U l        0 U l        S U l        g r1   )r  r¨   r3   r<  r8  r:  r   s    r   rÚ   ÚDocument.__init__0  s*   € ØˆŒÜ"›*ˆŒð ˆŒØˆŒØ $ˆÕr   c                 ó¤   • UR                   (       a  UR                   UR                  4nOUR                  nU R                  R	                  U5      $ r1   )r¹   r¿   rÏ   r<  rW  )r   r  r”   s      r   r  ÚDocument._get_elem_info9  s?   € Ø××Ø×&Ñ&¨×(9Ñ(9Ð9‰Cà—/‘/ˆCØ�‰×"Ñ" 3Ó'Ð'r   c                 ó   • U R                   $ r1   rê  r   s    r   rë  ÚDocument._get_actualEncoding@  rÔ  r   c                 ó   • U R                   $ r1   )r  r   s    r   Ú_get_doctypeÚDocument._get_doctypeC  r  r   c                 ó   • U R                   $ r1   )ÚdocumentURIr   s    r   Ú_get_documentURIÚDocument._get_documentURIF  s   € Ø×ÑÐr   c                 ó   • U R                   $ r1   rî  r   s    r   rï  ÚDocument._get_encodingI  rÆ  r   c                 ó   • U R                   $ r1   )ÚerrorHandlerr   s    r   Ú_get_errorHandlerÚDocument._get_errorHandlerL  s   € Ø× Ñ Ð r   c                 ó   • U R                   $ r1   )r   r   s    r   Ú_get_standaloneÚDocument._get_standaloneO  r:   r   c                 ó   • U R                   $ r1   )ÚstrictErrorCheckingr   s    r   Ú_get_strictErrorCheckingÚ!Document._get_strictErrorCheckingR  s   € Ø×'Ñ'Ð'r   c                 ó   • U R                   $ r1   rò  r   s    r   ró  ÚDocument._get_versionU  r  r   c                 óÄ  • UR                   U R                  ;  a8  [        R                  R	                  [        U5      < S[        U 5      < 35      eUR                  b  UR                  R                  U5        UR                   [        R                  :X  a4  U R                  5       (       a  [        R                  R	                  S5      e[        R                  X5      $ )NrE   z two document elements disallowed)r'   rJ   rK   rL   rM   rN   rO   rP   r   rp   Ú_get_documentElementrQ   r�  s     r   rQ   ÚDocument.appendChildX  s§   € Ø�=‰= × 6Ñ 6Ó6Ü—'‘'×-Ñ-Ü.2°4®j¼$¸t½*ÐEóGð Gà�?‰?Ñ&ð �O‰O×'Ñ'¨Ô-à�=‰=œD×-Ñ-Ó-Ø×(Ñ(×*Ñ*Ü—'‘'×-Ñ-Ø2ó4ð 4ä×Ñ Ó+Ð+r   c                 óì   •  U R                   R                  U5        S =Ul        Ul        S Ul        U R                  UL a  S U l	        U$ ! [         a    [        R                  R                  5       ef = fr1   )
r3   rh   rS   rK   rL   rT   rX   rY   rO   ÚdocumentElementri   s     r   rP   ÚDocument.removeChildh  sr   € ð	(Ø�O‰O×"Ñ" 8Ô,ð ;?Ð>ˆÔ˜xÔ7Ø"ˆÔØ×Ñ 8Ò+Ø#'ˆDÔ àˆøô ó 	(Ü—'‘'×%Ñ%Ó'Ð'ð	(ús   ‚A
 Á
)A3c                 ón   • U R                    H%  nUR                  [        R                  :X  d  M#  Us  $    g r1   )r3   r'   r   rp   r�  s     r   rZ  ÚDocument._get_documentElementt  s'   € Ø—O”OˆDØ�}‰}¤× 1Ñ 1Õ1Ø’ò $r   c                 óŠ   • U R                   b!  U R                   R                  5         S U l         [        R                  U 5        g r1   )r  rn   r   r   s    r   rn   ÚDocument.unlinky  s/   € Ø�<‰<Ñ#Ø�L‰L×ÑÔ!ØˆDŒLÜ�‰�DÕr   c                 ó¤  • U(       d  g U R                   R                  S S S 5      nU R                  Ul        U R                  Ul        U R                  Ul        U R
                   H³  n[        X1U5      nUR                  R                  U5      (       d   eUR
                  R                  U5        UR                  [        R                  :X  a  UR                  b   eO3UR                  [        R                  :X  a  UR                  b   eXBl        X$l        Mµ     U R#                  [$        R&                  R(                  R*                  X5        U$ r1   )r|   r  r   r   r€   r3   rv   rw   r‰   ro   r'   r   r(   r]  rå  r  rO   r¥   rK   rL   rÖ  r×  )r   rx   rÜ  r…  Ú
childclones        r   ry   ÚDocument.cloneNode  s  € ÞØØ×#Ñ#×2Ñ2°4¸¸tÓDˆØŸ™ˆŒØŸ?™?ˆÔØŸ™ˆŒØ—”ˆAÜ$ Q¨eÓ4ˆJØ×+Ñ+×6Ñ6°u×=Ñ=Ð=Ð=Ø×Ñ×#Ñ# JÔ/Ø×"Ñ"¤d×&8Ñ&8Ó8Ø×,Ñ,Ñ4Ð4Ñ4Ø×$Ñ$¬×(?Ñ(?Ó?Ø—}‘}Ñ,Ð,Ð,Ø *”Ø$)Ö!ñ !ð 	×$Ñ$¤S§W¡W×%<Ñ%<×%HÑ%HØ%)ô	2àˆr   c                 ó&   • [        5       nXl        U$ r1   )rØ   rw   )r   rš   s     r   ÚcreateDocumentFragmentÚDocument.createDocumentFragment”  s   € ÜÓˆØŒØˆr   c                 ó(   • [        U5      nXl        U$ r1   )r²  rw   )r   rÏ   rÞ  s      r   ÚcreateElementÚDocument.createElement™  s   € Ü�GÓˆØŒØˆr   c                 ór   • [        U[        5      (       d  [        S5      e[        5       nXl        Xl        U$ ©Nznode contents must be a string)rJ  rK  rv  rì   rm   rw   )r   rm   Úts      r   ÚcreateTextNodeÚDocument.createTextNodež  s1   € Ü˜$¤×$Ñ$ÜÐ<Ó=Ð=Ü‹FˆØŒØŒØˆr   c                 ór   • [        U[        5      (       d  [        S5      e[        5       nXl        Xl        U$ rm  )rJ  rK  rv  r“  rm   rw   ©r   rm   r\   s      r   ÚcreateCDATASectionÚDocument.createCDATASection¦  s1   € Ü˜$¤×$Ñ$ÜÐ<Ó=Ð=Ü‹NˆØŒØŒØˆr   c                 ó(   • [        U5      nXl        U$ r1   )r�  rw   rr  s      r   ÚcreateCommentÚDocument.createComment®  s   € Ü�D‹MˆØŒØˆr   c                 ó(   • [        X5      nXl        U$ r1   )r.  rw   )r   r0  rm   Úps       r   ÚcreateProcessingInstructionÚ$Document.createProcessingInstruction³  s   € Ü! &Ó/ˆØŒØˆr   c                 ó6   • [        U5      nXl        SUl        U$ r   )rå   rw   r   )r   rí   Úas      r   ÚcreateAttributeÚDocument.createAttribute¸  s   € Ü�‹KˆØŒØˆŒØˆr   c                 óD   • [        U5      u  p4[        X!U5      nXl        U$ r1   )rÌ  r²  rw   )r   r¹   rÎ  rº   r¿   rÞ  s         r   r  ÚDocument.createElementNS¾  s%   € Ü$ ]Ó3ÑˆÜ�M°Ó8ˆØŒØˆr   c                 óR   • [        U5      u  p4[        X!XC5      nXl        SUl        U$ r   )rÌ  rå   rw   r   )r   r¹   rÎ  rº   r¿   r}  s         r   ÚcreateAttributeNSÚDocument.createAttributeNSÄ  s,   € Ü$ ]Ó3ÑˆÜ�¨iÓ@ˆØŒØˆŒØˆr   c                 ó*   • [        XX45      nXl        U$ r1   )rÙ  rw   )r   rÒ   r¾  r¿  rÚ  rÞ  s         r   Ú_create_entityÚDocument._create_entityÎ  s   € Ü�4 8Ó:ˆØŒØˆr   c                 ó*   • [        XU5      nXl        U$ r1   )rØ  rw   )r   rÒ   r¾  r¿  r…  s        r   Ú_create_notationÚDocument._create_notationÓ  s   € Ü�T XÓ.ˆØŒØˆr   c                 ó‚  • XR                   ;   a  U R                   U   $ U R                  (       d  U R                  (       d  g U R                  nUc  U R                  /nX l        OU(       d  g S nU(       GaC  UR                  5       nUR                  UR                   Vs/ s H  nUR                  [        ;   d  M  UPM     sn5        U R                  U5      nU(       GaW  UR                  R                  5        GH7  nUR                  (       ao  UR                  UR                  UR                  5      (       aB  X@R                   UR                   '   UR                   U:X  a  UnMl  UR"                  (       d    GO.M‚  M„  UR%                  UR&                  5      (       aA  X@R                   UR                   '   UR                   U:X  a  UnMÐ  UR"                  (       d    OËMå  UR(                  (       d  Mø  X@R                   UR                   '   UR                   U:X  a  UnGM%  UR"                  S:X  d  GM8    Ot   OqUR"                  (       a`  UR                  R                  5        HB  nUR(                  (       d  M  X@R                   UR                   '   UR                   U:X  d  M@  UnMD     Ub   U$ U(       a  GMC  U$ s  snf )NrF   )r8  r<  r  r:  r]  ÚpopÚextendr3   r'   rU   r  rÞ   rC  r¹   r   r¿   r   r  r!  rÒ   r  )r   r[  ÚstackÚresultr]   rs   r#  rË   s           r   ÚgetElementByIdÚDocument.getElementByIdØ  s#  € Ø—‘ÓØ—>‘> "Ñ%Ð%Ø—— 4×#7×#7Øà×%Ñ%ˆØ‰=à×)Ñ)Ð*ˆEØ$)Õ!Þð àˆßØ—9‘9“;ˆDà�L‰L¨T¯_ª_ó Iª_ EØ"Ÿ^™^Ô/GÑG÷  ©_ñ Iô Jð ×&Ñ& tÓ,ˆDßð !ŸO™O×2Ñ2×4�DØ×(×(ØŸ;™; t×'8Ñ'8¸$¿.¹.×IÑIØ9=ŸN™N¨4¯:©:Ñ6Ø#Ÿz™z¨RÓ/Ø)-¢Ø%)×%9×%9Ú %ñ &:ñ	 Jð Ÿ™ 4§9¡9×-Ñ-Ø59Ÿ™ t§z¡zÑ2ØŸ:™:¨Ó+Ø%)šFØ!%×!5×!5Ù!ñ "6àŸŸ™Ø59Ÿ™ t§z¡zÑ2ØŸ:™:¨Ó+Ø%)›FØ!×1Ñ1°QÖ6Ù!ò' 5ð( ×%×%Ø ŸO™O×2Ñ2Ö4�DØ—{—{‘{Ø59Ÿ™ t§z¡zÑ2ØŸ:™:¨Õ+Ø%)šFñ	 5ð
 Ñ!ØØˆ÷O ‰eðN ˆùòIIs   Â J<Â<J<c                 ó*   • [        X[        5       5      $ r1   rï  r{  s     r   rð  ÚDocument.getElementsByTagName  s   € Ü.¨t¼8»:ÓFÐFr   c                 ó,   • [        XU[        5       5      $ r1   ró  r  s      r   rô  ÚDocument.getElementsByTagNameNS  rö  r   c                 ó8   • U R                   R                  X5      $ r1   )r|   r}   r~   s      r   r�   ÚDocument.isSupported  s   € Ø×"Ñ"×-Ñ-¨gÓ?Ð?r   c                 ó  • UR                   [        R                  :X  a  [        R                  R                  S5      eUR                   [        R                  :X  a  [        R                  R                  S5      e[        XU 5      $ )Nzcannot import document nodesz!cannot import document type nodes)r'   r   r(   rK   rL   ÚNotSupportedErrrå  rv   )r   r]   rx   s      r   Ú
importNodeÚDocument.importNode  s_   € Ø�=‰=œD×.Ñ.Ó.Ü—'‘'×)Ñ)Ð*HÓIÐIØ�]‰]œd×5Ñ5Ó5Ü—'‘'×)Ñ)Ð*MÓNÐNÜ˜4 tÓ,Ð,r   c                 ó  • / nU(       a  UR                  SU S35        Ub  UR                  SU(       a  SOS S35        UR                  SSR                  U5       SU 35        U R                   H  nUR	                  XX45        M     g )	Nz
encoding="rÆ   zstandalone="ÚyesÚnoz<?xml version="1.0" r§  rB  )ro   rÉ   rz  r3   r)   )	r   r.   r,   rû  r-   r   r   Údeclarationsr]   s	            r   r)   Ú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˜&¨)Ö:ò $r   c                 ó>  • UR                   U La1  [        R                  R                  SU < SUR                   < 35      eUR                  [
        R                  [
        R                  4;  a  [        R                  R                  S5      eU[        :w  aÄ  SU;   aX  UR                  SS5      u  pEUS:X  a=  U[        R                  R                  :w  a  [        R                  R                  S5      eOjUS:X  a[  U[        R                  R                  :w  a=  UR                  [
        R                  :X  a  [        R                  R                  S5      eS nUnOS nS nUR                  [
        R                  :X  a-  UR                  nUb  UR                  nUR                  U5        OS nXAl        XQl        X!l        X1l        UR                  [
        R                  :X  a  X1l        U$ X1l        Ub)  UR-                  U5        W(       a  UR/                  U5        U$ )	Nz3cannot rename nodes from other documents;
expected z,
found z8renameNode() only applies to element and attribute nodesrñ   rF   r  zillegal use of 'xmlns' prefixz$illegal use of the 'xmlns' attribute)rw   rK   rL   r  r'   r   rp   r-  r™  r   rò   r   r  rê   r  rÙ  rº   ré   r¹   rÜ   rÏ   rÒ   rÈ  r  )r   r…  r¹   rÒ   rº   r¿   r  Úis_ids           r   Ú
renameNodeÚDocument.renameNode3  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ØŒØ ŒØ%ŒØŒ
Ø�:‰:œ×*Ñ*Ó*ØŒIð ˆð ŒFØÑ"Ø×(Ñ(¨Ô+ÞØ×.Ñ.¨qÔ1ð ˆr   )r<  r8  r:  r3   r  r]  )r   r   r   NN)?rµ   r¶   r·   r¸   r,  r   rp   rá   râ   rå  rJ   r  r|   r(   r'   rÜ   rÝ   rÞ   rO   rY   rX   rÛ  r   r   r€   rT  rM  rG  r  rÚ   r  rë  rD  rH  rï  rN  rQ  rU  ró  rQ   rP   rZ  rn   ry   rg  rj  ro  rs  rv  rz  r~  r  rƒ  r†  r‰  r�  rð  rô  r�   rš  r)   r£  r»   r   r   r   r  r    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   r  r]  z#Top-level element of this document.c                 óT  • U R                   R                  U5      (       a%  [        R                  R                  R
                  nO$[        R                  R                  R                  nU R                  [        R                  :X  aè  UR                  U R                  U R                  5      nU R                  R                  5        Hk  nUR                  UR                  UR                  UR                   5        UR#                  UR                  UR$                  5      nUR&                  Ul        Mm     U(       a0  U R(                   H   n[+        XqU5      nUR-                  U5        M"     GOU R                  [        R.                  :X  aI  UR1                  5       nU(       a0  U R(                   H   n[+        XqU5      nUR-                  U5        M"     GO®U R                  [        R2                  :X  a  UR5                  U R6                  5      nGOsU R                  [        R8                  :X  a  UR;                  U R6                  5      nGO8U R                  [        R<                  :X  a(  UR?                  U R@                  U R6                  5      nGOòU R                  [        RB                  :X  a  URE                  U R6                  5      nGO·U R                  [        RF                  :X  a@  URI                  U R                  U R                  5      nSUl        U R                   Ul        GOYU R                  [        RJ                  :X  Ga  U R                   ULd   e[        R                  R                  R                  nURL                  RO                  U RP                  U RR                  U RT                  5      nX$l         U(       Ga�  / URV                  l,        / URZ                  l,        U RZ                  RX                   H~  n	[]        U	R                  U	RR                  U	RT                  5      n
X*l         URZ                  RX                  R_                  U
5        [a        U	S5      (       d  Ml  U	Rc                  X9U
5        M€     U RV                  RX                   H¼  n[e        UR                  URR                  URT                  URf                  5      nURh                  Ul4        URj                  Ul5        URl                  Ul6        X,l         URV                  RX                  R_                  U5        [a        US5      (       d  Mª  URc                  X;U5        M¾     O+[        R                  Ro                  S[q        U 5      -  5      e[a        U S5      (       a  U Rc                  X0U5        U$ )zc
Clone a node and give it the new owner document.
Called by Node.cloneNode and Document.importNode
Tr¥   zCannot clone node %s)9rw   r‰   rK   rL   rÖ  r×  ÚNODE_IMPORTEDr'   r   rp   r  r¹   rÜ   rÞ   rC  rÐ  r   rÍ  r¿   rö   r3   rv   rQ   rG   rg  rl   ro  rm   rß   rs  rá   rz  r0  râ   rv  r-  rƒ  rå  r|   r  rÒ   r¾  r¿  rÍ  rš  rÎ  rØ  ro   rž   r¥   rÙ  rÚ  rÛ  r   r€   r™  rN   )r]   rx   ÚnewOwnerDocumentr¢   rÜ  rË   r}  rs   r\   r…  rÝ  rÞ  rß  s                r   rv   rv   l  s
  € ð
 ×Ñ×$Ñ$Ð%5×6Ñ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ñ -ö
 ØŸœ�Ü Ð-=Ó>�Ø×!Ñ! !Ö$ñ )ùð 
�‰œ$×5Ñ5Ó	5Ø ×7Ñ7Ó9ˆÞØŸœ�Ü Ð-=Ó>�Ø×!Ñ! !Ö$ñ )ùð 
�‰œ$Ÿ.™.Ó	(Ø ×/Ñ/°·	±	Ó:ŠØ	�‰œ$×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Ô Ø—^‘^×(Ô(�Ü# A§J¡J°·
±
¸A¿J¹JÓG�Ø)9Ô&Ø—‘×$Ñ$×+Ñ+¨HÔ5Ü˜1Ð7×8Ó8Ø×-Ñ-¨i¸HÖEñ )ð —]‘]×'Ô'�Ü §
¡
¨A¯J©J¸¿
¹
Ø !§¡ó0�à()×(8Ñ(8�Ô%Ø"#§*¡*�”Ø!"§¡�”Ø'7Ô$Ø—‘×#Ñ#×*Ñ*¨6Ô2Ü˜1Ð7×8Ó8Ø×-Ñ-¨i¸FÖCñ (øô �g‰g×%Ñ%Ð&<¼tÀD»zÑ&IÓJÐJô
 ˆtÐ.×/Ñ/Ø×$Ñ$ Y°eÔ<Ø€Lr   c                 óV   • U R                  SS5      n[        U5      S:X  a  U$ S US   4$ )Nrñ   rF   é   r   )rò   r9  )rÎ  Úfieldss     r   rÌ  rÌ  ¾  s4   € Ø× Ñ   aÓ(€FÜ
ˆ6ƒ{�aÓØˆà�f˜Q‘iÐ Ð r   c                 ó|   • U " U0 UD6nUR                  5       u  pEUR                  U5        UR                  5         U$ r1   )ÚgetEventÚ
expandNoder9  )ÚfuncÚargsÚkwargsÚeventsÚtoktypeÚrootNodes         r   Ú_do_pulldom_parser´  Æ  s<   € Ù�4Ð"˜6Ñ"€FØŸ™Ó)Ñ€GØ
×Ñ�hÔØ
‡L�L„NØ€Or   c                 ó„   • Uc  U(       d  SSK Jn  UR                  U 5      $ SSK Jn  [	        UR                  U 4XS.5      $ )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                 óv   • Uc  SSK Jn  UR                  U 5      $ SSK Jn  [	        UR                  U 4SU05      $ )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                 óè   • U (       a\  [        U [        5      (       a  [        R                  " U 5      n U  H+  u  p[        R
                  R                  X5      (       a  M+    g    [        R
                  $ r1   )rJ  rK  r   Ú_parse_feature_stringr  r|   r}   )ÚfeaturesÚfÚvs      r   ÚgetDOMImplementationrÇ  á  sV   € ÞÜ�h¤×$Ñ$Ü×3Ò3°HÓ=ˆHÛ‰DˆAÜ×*Ñ*×5Ñ5°a×;Ó;Ùñ ô ×"Ñ"Ð"r   r³   r1   )6r�  r#   r¼  rK   r   r   r   r   Úxml.dom.minicompatÚxml.dom.xmlbuilderr   r	   rL   r   rp   rà   rU   Údefpropertyra   rÌ   rÐ   rÕ   rØ   rå   Úobjectr1  ÚAttributeListr¡  r'  r²  rÚ  r  r.  rF  rì   rƒ  r  r�  r“  r˜  r¼  rË  rÙ  rØ  r  r  rV   r  rv   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   