ó
    F\h ã                   ó  • 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 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   " S0 S1\"5      r#\" \#S2S3S
9  \" \#S4S5S
9  S6 r$S7 r% " S8 S9\"5      r& " S: S;\#5      r' " S< S=\5      r(\" \(SS>S
9   " S? S@5      r) " SA SB\)\ \5      r* " SC SD\)\5      r+ " SE SF\)\ \5      r, " SG SH\
5      r- " SI SJ\5      r.SK r/ " SL SM\\5      r0\" \0SNSOS
9  SP r1SQ r2SR r3SVSS jr4SWST jr5SWSU jr6g)Xac  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                 ój   • U b0  U R                   [        R                  :X  a  gU R                  n U b  M0  g©NTF)r'   r   r(   rO   ©r]   s    r   Ú_in_documentrÅ   '  s3   € à
Ñ
Ø�=‰=œD×.Ñ.Ó.ØØ�‰ˆð Ó
ð r   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Ô   F  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Ù   N  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)ÚDocumentFragmentiW  z#document-fragmentNc                 ó"   • [        5       U l        g r1   )r¨   r3   r   s    r   Ú__init__ÚDocumentFragment.__init__e  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Ü   W  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)ÚAttrii  )Ú_nameÚ_valuer¹   Ú_prefixr3   Ú
_localNamerw   ÚownerElementNFc                 ó¬   • S U l         Xl        X l        X@l        Ub  X0l        [        5       U l        U R                  R                  [        5       5        g r1   )	rî   rê   r¹   rì   rí   r¨   r3   ro   ÚText)r   ÚqNamer¹   r¿   rº   s        r   rÞ   ÚAttr.__init__s  sD   € à ˆÔØŒ
Ø(ÔØŒØÑ Ø'Œ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      $ rÃ   )	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¹   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é   i  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   r5  )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  rF  ro   r¹   r¿   r  rG  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  rF  r   s    r   rF  ÚNamedNodeMap.values  s   € Ø�{‰{×!Ñ!Ó#Ð#r   Nc                 ó8   • U R                   R                  X5      $ r1   ©r  Úget)r   rÖ   r  s      r   rZ  Ú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<   rb  r‡   s     r   Ú__ge__ÚNamedNodeMap.__ge__+  re  r   c                 ó*   • U R                  U5      S:„  $ r<   rb  r‡   s     r   Ú__gt__ÚNamedNodeMap.__gt__.  ó   € Ø�y‰y˜Ó !Ñ#Ð#r   c                 ó*   • U R                  U5      S:*  $ r<   rb  r‡   s     r   Ú__le__ÚNamedNodeMap.__le__1  re  r   c                 ó*   • U R                  U5      S:  $ r<   rb  r‡   s     r   Ú__lt__ÚNamedNodeMap.__lt__4  rl  r   c                 óh   • [        U[        5      (       a  U R                  U   $ U R                  U   $ r1   )rM  rH   r  r  )r   Úattname_or_tuples     r   Ú__getitem__ÚNamedNodeMap.__getitem__7  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)
rM  rN  r  r’   ré   r6  rw   ÚsetNamedItemr  Ú	TypeError)r   Úattnamer  r]   s       r   Ú__setitem__ÚNamedNodeMap.__setitem__>  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.getNamedItemM  s(   € ð	Ø—;‘;˜tÑ$Ð$øÜó 	Ùð	ús   ‚ ‘
�c                 óD   •  U R                   X4   $ ! [         a     g f = fr1   )r  r’   ©r   r¹   r¿   s      r   ÚgetNamedItemNSÚNamedNodeMap.getNamedItemNSS  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   r6  r  rà   r  r¹   r¿   rž   rî   rK   rL   rT   ©r   rÖ   Úns      r   ÚremoveNamedItemÚNamedNodeMap.removeNamedItemY  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   r6  r  r¹   r¿   r  rà   rž   rî   rK   rL   rT   ©r   r¹   r¿   rˆ  s       r   ÚremoveNamedItemNSÚNamedNodeMap.removeNamedItemNSe  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`   )rM  ré   rK   rL   rM   rN   r  rZ  rÖ   rn   r  r¹   r¿   r6  rî   rV   )r   r]   r™   s      r   rx  ÚNamedNodeMap.setNamedItemq  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   )rx  ©r   r]   s     r   ÚsetNamedItemNSÚNamedNodeMap.setNamedItemNS~  s   € Ø× Ñ  Ó&Ð&r   c                 óV   • X   n[        UR                  5        UR                  5         g r1   )rV   rî   rn   )r   rt  r]   s      r   Ú__delitem__ÚNamedNodeMap.__delitem__�  s!   € ØÑ%ˆÜ˜×)Ñ)Ô*Ø�‰�r   c                 óH   • U R                   U R                  U R                  4$ r1   r5  r   s    r   Ú__getstate__ÚNamedNodeMap.__getstate__†  s   € Ø�{‰{˜DŸM™M¨4×+=Ñ+=Ð=Ð=r   c                 ó.   • Uu  U l         U l        U l        g r1   r5  ©r   Ústates     r   Ú__setstate__ÚNamedNodeMap.__setstate__‰  s   € Ø9>Ñ6ˆŒ�T”] DÕ$6r   r1   )#rµ   r¶   r·   r¸   Ú__doc__r/  rÞ   r=  rC  r    rJ  rO  r@  rT  rF  rZ  Ú__len__r_  rc  rg  rj  rn  rq  ru  r{  r  rƒ  r‰  r�  rx  r“  r–  r™  rž  r»   r   r   r   r4  r4  é  s�   † ñð 8€Iò*ò
 òòòò(ò"ò$ò$ô,ð €GòCò%ò%ò$ò%ò$ò1ò$òòò
(ò
(òò'òò
>õ?r   r4  Ú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         U=U l        U l        X0l        X l        [        5       U l        S =U l        U l        S U l	        S U l
        g r1   )rO   rÓ   rà   rº   r¹   r¨   r3   rX   rY   r  r  )r   rÓ   r¹   rº   r¿   s        r   rÞ   ÚElement.__init__¹  sK   € àˆŒØ'.Ð.ˆŒ�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Ÿ   rF  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   rz  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   rz  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   rY  )r   Úattrnames     r   rÊ  ÚElement.getAttributeNode  s"   € Ø�;‰;ÑØØ�{‰{�‰˜xÓ(Ð(r   c                 óV   • U R                   c  g U R                   R                  X45      $ r1   )r  rZ  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  rZ  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.removeAttribute7  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.removeAttributeNodeI  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.hasAttributeY  s   € ð �;‰;ÑØØ—{‘{Ñ"Ð"r   c                 ó>   • U R                   c  gX4U R                   ;   $ ©NF)r  r‚  s      r   ÚhasAttributeNSÚElement.hasAttributeNSc  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.getElementsByTagNameh  s   € ô /¨t¼8»:ÓFÐFr   c                 ó,   • [        XU[        5       5      $ r1   ©rÙ   r¨   r‚  s      r   ÚgetElementsByTagNameNSÚElement.getElementsByTagNameNSp  ó   € Ü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__t  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   r<  r'   r   rl   rã   r)   )r   r.   r,   Ú	addindentr-   r8  Úa_namer]   s           r   r)   ÚElement.writexmlw  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¹  r4  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à   rO   rº   rY   rÓ   ©r   r   r   )0rµ   r¶   r·   r¸   r/  r   rp   r'   rá   r*  r2  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   r2  )r   r3  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   r7  r  s     r   Ú_set_nodeValueÚ$ProcessingInstruction._set_nodeValueû  s   € Ø�	r   c                 ó   • U R                   $ r1   ©r3  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Í   r3  rm   ©r   r.   r,   rþ  r-   s        r   r)   ÚProcessingInstruction.writexml  s   € Ø�‰«¨t¯{¬{¸D¿I¼IÂtÐLÕMr   )rm   r3  Nr  )rµ   r¶   r·   r¸   r   rå   r'   r/  rÞ   r8  r;  r1  rá   r?  rB  rà   r)   r»   r   r   r   r1  r1  ð  sI   † Ø×/Ñ/€HØ"€Iòò
òá˜¨Ó8€Iòòá˜ }Ó5€H÷Nr   r1  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   rJ  r   rÞ   r   s    r   rÞ   ÚCharacterData.__init__  s4   € Ø/3Ð3ˆÔ˜Tœ_Ø26Ð6ˆÔ˜tÔ/ØˆŒ
Ü�‰�dÕr   c                 ó,   • [        U R                  5      $ r1   )r<  rm   r   s    r   r=  ÚCharacterData._get_length  ó   € Ü�4—9‘9‹~Ðr   c                 ó   • U R                   $ r1   ©rJ  r   s    r   Ú	_get_dataÚCharacterData._get_data  r  r   c                 ó   • Xl         g r1   rQ  ©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   r<  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   ÚIndexSizeErrr<  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   r7  )r   Úargs     r   Ú
appendDataÚCharacterData.appendData0  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   rc  rh  s      r   Ú
insertDataÚCharacterData.insertData3  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 r]  r`  rb  s      r   Ú
deleteDataÚCharacterData.deleteData<  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 r]  r`  )r   rc  rd  rh  s       r   ÚreplaceDataÚCharacterData.replaceDataF  s“   € Ø�A‹:Ü—'‘'×&Ñ&Ð'BÓCÐCØ”S˜Ÿ™“^Ó#Ü—'‘'×&Ñ&Ð'LÓMÐMØ�1‹9Ü—'‘'×&Ñ&Ð'AÓBÐBÞà—	‘	˜'˜6Ò"¢C¨¯©°6±<°=Ò)AðCˆD�Ið r   )rJ  rm   rX   rw   rO   rY   N)rµ   r¶   r·   r¸   r/  rÞ   r=  r¡  rR  rV  r1  rm   rá   r¬  re  ri  rl  ro  rr  r»   r   r   r   rI  rI  
  sS   † ØW€Iòòà€Gòòñ   	¨9Ó5Ð5€Dˆ9ò<ò.ò$ò=òFõ	Cr   rI  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ð   iT  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)r<  rm   rK   rL   ra  r«  rw   rX   rO   r3   rQ   rI   )r   rc  ÚnewTextÚnexts       r   Ú	splitTextÚText.splitText[  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   rF  s        r   r)   ÚText.writexmlj  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_wholeTexto  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ˆ  rw  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   r7  r  )rµ   r¶   r·   r¸   r/  r   rl   r'   rà   râ   rx  r)   r~  r‚  rˆ  r»   r   r   r   rð   rð   T  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   )rI  rÞ   rJ  rU  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Í   rF  s        r   r)   ÚComment.writexmlÉ  s1   € Ø�4—9‘9ÓÜÐDÓEÐEØ�‰«°·	´	º4Ð@ÕAr   rQ  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Í   rF  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   ©r<  r�  r   s    r   r¡  Ú&ReadOnlySequentialNamedNodeMap.__len__â  rO  r   c                 ó,   • [        U R                  5      $ r1   r¢  r   s    r   r=  Ú*ReadOnlySequentialNamedNodeMap._get_lengthå  rO  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   )rM  rH   rƒ  r  r’   )r   Úname_or_tupler]   s      r   ru  Ú*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�  rA  rB  s     r   rC  Ú#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   rx  Ú+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ƒ  ru  rC  r‰  r�  rx  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__4  s6   € Ü6Ó8ˆŒÜ7Ó9ˆŒÞÜ (¨Ó 7ÑˆFØ!ŒIØŸ	™	ˆ�r   c                 ó   • U R                   $ r1   )ÚinternalSubsetr   s    r   Ú_get_internalSubsetÚ DocumentType._get_internalSubset<  ó   € Ø×"Ñ"Ð"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Ô  rF  s        r   r)   ÚDocumentType.writexmlZ  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Ü  ih  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__q  s$   € ØŒØ$ÔÜ"›*ˆŒØ×#Ñ# HÕ7r   c                 ó   • U R                   $ r1   ©rÞ  r   s    r   Ú_get_actualEncodingÚEntity._get_actualEncodingw  r×  r   c                 ó   • U R                   $ r1   ©r   r   s    r   Ú_get_encodingÚEntity._get_encodingz  rÉ  r   c                 ó   • U R                   $ r1   ©r€   r   s    r   Ú_get_versionÚEntity._get_version}  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Ü  h  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  r3  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 5      (       a6  U R                  R                  R	                  5         S U R                  l        g g r1   )r'   r   r(   Ú	_id_cacheÚclearÚ_id_search_stackrÅ   rw   rÄ   s    r   rV   rV     sb   € Ø‡}�}œ×*Ñ*Ó*Ø�‰×ÑÔØ $ˆÕÜ	�d×	Ñ	Ø×Ñ×$Ñ$×*Ñ*Ô,Ø-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   r;  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?  r;  r=  r   s    r   rÞ   ÚDocument.__init__5  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?  rZ  )r   r  r”   s      r   r"  ÚDocument._get_elem_info>  s?   € Ø××Ø×&Ñ&¨×(9Ñ(9Ð9‰Cà—/‘/ˆCØ�‰×"Ñ" 3Ó'Ð'r   c                 ó   • U R                   $ r1   rí  r   s    r   rî  ÚDocument._get_actualEncodingE  r×  r   c                 ó   • U R                   $ r1   )r  r   s    r   Ú_get_doctypeÚDocument._get_doctypeH  r  r   c                 ó   • U R                   $ r1   )ÚdocumentURIr   s    r   Ú_get_documentURIÚDocument._get_documentURIK  s   € Ø×ÑÐr   c                 ó   • U R                   $ r1   rñ  r   s    r   rò  ÚDocument._get_encodingN  rÉ  r   c                 ó   • U R                   $ r1   )ÚerrorHandlerr   s    r   Ú_get_errorHandlerÚDocument._get_errorHandlerQ  s   € Ø× Ñ Ð r   c                 ó   • U R                   $ r1   )r   r   s    r   Ú_get_standaloneÚDocument._get_standaloneT  r:   r   c                 ó   • U R                   $ r1   )ÚstrictErrorCheckingr   s    r   Ú_get_strictErrorCheckingÚ!Document._get_strictErrorCheckingW  s   € Ø×'Ñ'Ð'r   c                 ó   • U R                   $ r1   rõ  r   s    r   rö  ÚDocument._get_versionZ  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.appendChild]  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.removeChildm  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   r]  ÚDocument._get_documentElementy  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.unlink~  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)rM  rN  ry  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$ rp  )rM  rN  ry  r–  rm   rw   ©r   rm   r\   s      r   ÚcreateCDATASectionÚDocument.createCDATASection«  s1   € Ü˜$¤×$Ñ$ÜÐ<Ó=Ð=Ü‹NˆØŒØŒØˆr   c                 ó(   • [        U5      nXl        U$ r1   )r�  rw   ru  s      r   ÚcreateCommentÚDocument.createComment³  s   € Ü�D‹MˆØŒØˆr   c                 ó(   • [        X5      nXl        U$ r1   )r1  rw   )r   r3  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   )r;  r?  r  r=  r`  ÚpopÚextendr3   r'   rU   r"  râ   rF  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ª  rE  )ro   rÍ   r}  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   r0  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.renameNode8  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?  r;  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€   rW  rP  rJ  r  rÞ   r"  rî  rG  rK  rò  rQ  rT  rX  rö  rQ   rP   r]  rn   ry   rj  rm  rr  rv  ry  r}  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â   rF  rÓ  r  rÐ  r¿   rú   r3   rv   rQ   rG   rj  rl   rr  rm   rã   rv  rå   r}  r3  ræ   ry  r0  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   q  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ö   r<  )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Ú
expandNoder<  )Ú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   )rM  rN  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   )7r   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Ü   ré   Úobjectr4  ÚAttributeListr¤  r*  rµ  rÝ  r  r1  rI  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ô %ô$y8ˆ4ô y8ñv ˆD�&Ð$FÒ GÙ ˆD�+Ð$MÒ NÙ ˆD�,Ð$EÒ Fôa?�6ô a?ñF ˆL˜(Ø6ò8ð €ôˆvô ñ( �D˜$Ó€ôL"ˆdô L"ñ\ ˆ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   