�`^c@sdZddlZddlmZmZmZmZddlTddlm Z m
Z
ejjj
ejjjfZdejjfd��YZeedd d
�eedd d�eed
d d�d�Zd�Zd�Zd�Zd�Zdefd��YZdefd��YZeedd d�eed
d d�eedd d�defd��YZeedd d �eZd!efd"��YZeee�Zd#efd$��YZeed%d d&�eed
d d'�d(�Zd)fd*��YZ d+e efd,��YZ!d-e efd.��YZ"ee"dd d/�d0e"fd1��YZ#ee#d2d d3�ee#d4d d5�d6�Z$d7�Z%d8e e"fd9��YZ&d:e#fd;��YZ'd<efd=��YZ(ee(dd d>�d?fd@��YZ)dAe)e efdB��YZ*dCe)efdD��YZ+dEe)e efdF��YZ,dGe fdH��YZ-dIefdJ��YZ.dK�Z/dLee
fdM��YZ0ee0dNd dO�dP�Z1dQ�Z2dR�Z3dS�Z4eedT�Z5edU�Z6edV�Z7dS(WscSimple 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
i�N(tEMPTY_NAMESPACEtEMPTY_PREFIXtXMLNS_NAMESPACEtdomreg(t*(tDOMImplementationLSt
DocumentLStNodecBs�eZdZdZdZdZdZeZ d�Z
dd�Zdddd�Zd�Z
d�Zd�Zd�Zd �Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCstS(N(tTrue(tself((s%/sys/lib/python2.7/xml/dom/minidom.pyt__nonzero__*scCs|jdd|�S(Nt(ttoprettyxml(R tencoding((s%/sys/lib/python2.7/xml/dom/minidom.pyttoxml-ss s
cCs�t�}|dk r=ddl}|j|�d|�}n|jtjkrk|j|d|||�n|j|d||�|j�S(Ni�iR( t
_get_StringIOtNonetcodecstlookuptnodeTypeRt
DOCUMENT_NODEtwritexmltgetvalue(R tindenttnewlR
twriterR((s%/sys/lib/python2.7/xml/dom/minidom.pyR0s cCs|jr
tStSdS(N(t
childNodesRtFalse(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt
hasChildNodes?s cCs|jS(N(R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_childNodesEscCs|jr|jdSdS(Ni(R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_firstChildHs cCs|jr|jdSdS(Ni�(R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_lastChildLs cCsw|j|jkr@x't|j�D]}|j||�q"W|S|j|jkr}tjjdt |�t |�f��n|j
dk r�|j
j|�n|dkr�|j
|�n�y|jj|�}Wn tk
r�tjj��nX|jtkrt|�n|jj||�||_||_|ra|j|d}||_||_n d|_||_
|S(Ns%s cannot be child of %si(RtDOCUMENT_FRAGMENT_NODEttupleRtinsertBeforet_child_node_typestxmltdomtHierarchyRequestErrtreprt
parentNodeRtremoveChildtappendChildtindext
ValueErrortNotFoundErrt_nodeTypes_with_childrent_clear_id_cachetinserttnextSiblingtpreviousSibling(R tnewChildtrefChildtcR+tnode((s%/sys/lib/python2.7/xml/dom/minidom.pyR"Ps6 "
cCs�|j|jkr=x$t|j�D]}|j|�q"W|S|j|jkrztjjdt |�t |�f��n|jt
kr�t|�n|jdk r�|jj|�nt||�d|_|S(Ns%s cannot be child of %s(RR R!RR*R#R$R%R&R'R.R/R(RR)t
_append_childR1(R R6R5((s%/sys/lib/python2.7/xml/dom/minidom.pyR*ps "
cCs�|j|jkr8|j}|j|�|j||�S|j|jkrutjjdt |�t |�f��n||kr�dS|j
dk r�|j
j|�ny|jj
|�}Wn tk
r�tjj��nX||j|<||_
d|_
|jtks|jtkr*t|�n|j|_|j|_d|_d|_|jrl||j_n|jr�||j_n|S(Ns%s cannot be child of %s(RR R1R)R"R#R$R%R&R'R(RRR+R,R-R.R/R2(R R3toldChildR4R+((s%/sys/lib/python2.7/xml/dom/minidom.pytreplaceChild�s<
"
cCs�y|jj|�Wn tk
r6tjj��nX|jdk rX|j|j_n|jdk ry|j|j_nd|_|_|j t
kr�t|�nd|_|S(N(
RtremoveR,R$R%R-R1RR2RR.R/R((R R8((s%/sys/lib/python2.7/xml/dom/minidom.pyR)�s
cCs*g}x|jD]}|jtjkr�jsr|rJ|j|d_n|jre|j|j_n|j�q|r�|dj|jkr�|d}|j|j|_|j|_|jr�||j_n|j�q|j|�q|j|�|jtj kr|j
�qqW||j(dS(Ni�(RRRt TEXT_NODEtdataR1R2tunlinktappendtELEMENT_NODEt normalize(R tLtchildR6((s%/sys/lib/python2.7/xml/dom/minidom.pyR@�s*
cCst|||jp|�S(N(t_clone_nodet
ownerDocument(R tdeep((s%/sys/lib/python2.7/xml/dom/minidom.pyt cloneNode�scCs|jjj||�S(N(RDtimplementationt
hasFeature(R tfeaturetversion((s%/sys/lib/python2.7/xml/dom/minidom.pytisSupported�scCsdS(N(R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_localName�scCs
||kS(N((R tother((s%/sys/lib/python2.7/xml/dom/minidom.pyt
isSameNode�scCs|j|d�r|SdSdS(N(RKR(R RI((s%/sys/lib/python2.7/xml/dom/minidom.pytgetInterface�scCs2y|j|dSWnttfk
r-dSXdS(Ni(t
_user_datatAttributeErrortKeyErrorR(R tkey((s%/sys/lib/python2.7/xml/dom/minidom.pytgetUserData�scCs�d}y
|j}Wn tk
r5i}||_nX||krS||d}n|dkr~d}|dk r�||=q�n||f||<|S(Ni(RRPRQ(R RSR<thandlertoldtd((s%/sys/lib/python2.7/xml/dom/minidom.pytsetUserData�s
cCsdt|d�r`xN|jj�D]:\}\}}|dk r|j|||||�qqWndS(NRP(thasattrRPtitemsRthandle(R t operationtsrctdstRSR<RU((s%/sys/lib/python2.7/xml/dom/minidom.pyt_call_user_data_handler�s"cCs\d|_|_|jrFx|jD]}|j�q#Wt�|_nd|_d|_dS(N(RR(RDRR=tNodeListR2R1(R RB((s%/sys/lib/python2.7/xml/dom/minidom.pyR=s N(t__name__t
__module__RtnamespaceURIR(RDR1R2RtprefixR
RRRRRRR"R*R9R)R@RFRKRLRNRORTRXR_R=(((s%/sys/lib/python2.7/xml/dom/minidom.pyR!s6
t
firstChildtdocsFirst child node, or None.t lastChildsLast child node, or None.t localNames"Namespace-local name of this node.cCsT|j}|r6|d}||jd<||jd<n|j|�||jd<dS(Ni�R2R1R((Rt__dict__R>(R R6Rtlast((s%/sys/lib/python2.7/xml/dom/minidom.pyR7s
cCs6x/|dk r1|jtjkr%tS|j}qWtS(N(RRRRRR(R(R6((s%/sys/lib/python2.7/xml/dom/minidom.pyt_in_documents
cCsP|rL|jdd�jdd�jdd�jdd�}|j|�nd S(
sWrites datachars to writer.t&s&t<s<s"s"t>s>N(treplacetwrite(RR<((s%/sys/lib/python2.7/xml/dom/minidom.pyt_write_data%scCsex^|jD]S}|jtjkrM|dks=|j|krM|j|�nt|||�q
W|S(NR(RRRR?ttagNameR>t_get_elements_by_tagName_helper(tparenttnametrcR6((s%/sys/lib/python2.7/xml/dom/minidom.pyRs,scCs�x|jD]t}|jtjkr
|dks=|j|krh|dksX|j|krh|j|�nt||||�q
q
W|S(NR(RRRR?RhRcR>t"_get_elements_by_tagName_ns_helper(RttnsURIRhRvR6((s%/sys/lib/python2.7/xml/dom/minidom.pyRw4stDocumentFragmentcBsbeZejZdZdZdZdZ ej
ejejej
ejejejfZd�ZRS(s#document-fragmentcCst�|_dS(N(R`R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt__init__KsN(RaRbRR RtnodeNameRt nodeValuet
attributesR(R?R;tCDATA_SECTION_NODEtENTITY_REFERENCE_NODEtPROCESSING_INSTRUCTION_NODEtCOMMENT_NODEt
NOTATION_NODER#Rz(((s%/sys/lib/python2.7/xml/dom/minidom.pyRy=s tAttrcBs�eZejZd Zd ZeZ eZ
ejejfZ
ed d d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(
cCsS|j}||d<|d<||d<||d<t�|d<|jjt��dS(NR{RuRcRdR(RiR`RR>tText(R tqNameRcRhRdRW((s%/sys/lib/python2.7/xml/dom/minidom.pyRzXs
cCs|jjdd�dS(Nt:ii�(R{tsplit(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyRLfscCs|jS(N(t specified(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_specifiediscCs�|j}|dkrk||d<|d<|jdj}||d<|d<|jdk r�t|j�q�nJ|dkr�||d<|d<|jdk r�t|j�q�n
|||<dS( NtvalueR|iR<RuR{(svalues nodeValue(snamesnodeName(RiRtownerElementRR/(R RuR�RWtd2((s%/sys/lib/python2.7/xml/dom/minidom.pyt__setattr__ls cCs�|j}|dkr?|r?|tkr?tjjd��q?n|j}||d<|dkrj|j}nd||jf}|jr�t |j�n||d<|d<dS(Ntxmlnss5illegal use of 'xmlns' prefix for the wrong namespaceRds%s:%sR{Ru(
RcRR$R%tNamespaceErrRiRRhR�R/(R RdtnsuriRWtnewName((s%/sys/lib/python2.7/xml/dom/minidom.pyt_set_prefix{s
cCsH|j}||d<|d<|jr4t|j�n||jd_dS(NR�R|i(RiR�R/RR<(R R�RW((s%/sys/lib/python2.7/xml/dom/minidom.pyt
_set_value�s
cCs�|j}|dk rq|j|j=|j|j|jf=|jrqt|_|j d8_ |j
jd8_qqnx|jD]}|j
�q{W|j2dS(Ni(R�Rt_attrsR{t_attrsNSRcRht_is_idRt_magic_id_nodesRDt_magic_id_countRR=(R telemRB((s%/sys/lib/python2.7/xml/dom/minidom.pyR=�s
cCs�|jr
tS|j}|j}|dks7|dkr;tS|j|�}|dkrZtS|jry|j|j|j �S|j
|j�SdS(N(R�RRDR�RRt_get_elem_infoRctisIdNSRhtisIdR{(R RfR�tinfo((s%/sys/lib/python2.7/xml/dom/minidom.pyt _get_isId�s cCs�|j}|j}|dks*|dkr.tS|j|�}|dkrMtS|jrl|j|j|j�S|j|j �SdS(N(
RDR�Rt_no_typeR�RctgetAttributeTypeNSRhtgetAttributeTypeR{(R RfR�R�((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_schemaType�s N(RaRbRtATTRIBUTE_NODERRR}R�RR�R�R;RR#RRzRLR�R�R�R�R=R�R�(((s%/sys/lib/python2.7/xml/dom/minidom.pyR�Os
R�s True if this attribute is an ID.s'Namespace-local name of this attribute.t
schemaTypesSchema type for this attribute.tNamedNodeMapcBs�eZdZdZd�Zd�Zd�Zd�Zd�Zd �Z d
�Z
d�Zd�Zdd
�ZeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(sThe 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�t
_ownerElementcCs||_||_||_dS(N(R�R�R�(R tattrstattrsNSR�((s%/sys/lib/python2.7/xml/dom/minidom.pyRz�s cCs
t|j�S(N(tlenR�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_length�scCs2y||jj�|SWntk
r-dSXdS(N(R�tkeyst
IndexErrorR(R R+((s%/sys/lib/python2.7/xml/dom/minidom.pytitem�s
cCs=g}x0|jj�D]}|j|j|jf�qW|S(N(R�tvaluesR>R{R�(R RAR6((s%/sys/lib/python2.7/xml/dom/minidom.pyRZ�scCsFg}x9|jj�D](}|j|j|jf|jf�qW|S(N(R�R�R>RcRhR�(R RAR6((s%/sys/lib/python2.7/xml/dom/minidom.pytitemsNS�s&cCs-t|t�r||jkS||jkSdS(N(t
isinstancetStringTypesR�R�(R RS((s%/sys/lib/python2.7/xml/dom/minidom.pythas_key�s
cCs
|jj�S(N(R�R�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs
|jj�S(N(R�R�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pytkeysNS�scCs
|jj�S(N(R�R�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs|jj||�S(N(R�tget(R RuR�((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs<|jt|dd�krdStt|�t|��SdS(NR�i(R�tgetattrRtcmptid(R RM((s%/sys/lib/python2.7/xml/dom/minidom.pyt__cmp__scCs)t|t�r|j|S|j|SdS(N(R�R!R�R�(R tattname_or_tuple((s%/sys/lib/python2.7/xml/dom/minidom.pyt__getitem__scCs�t|t�rhy|j|}Wn9tk
r[t|�}|jj|_|j|�nX||_n.t|t�s�t d�n|}|j|�dS(Ns%value must be a string or Attr object(
R�R�R�RRR�R�RDtsetNamedItemR�t TypeError(R tattnameR�R6((s%/sys/lib/python2.7/xml/dom/minidom.pyt__setitem__
s
cCs(y|j|SWntk
r#dSXdS(N(R�RRR(R Ru((s%/sys/lib/python2.7/xml/dom/minidom.pytgetNamedItems
cCs.y|j||fSWntk
r)dSXdS(N(R�RRR(R RcRh((s%/sys/lib/python2.7/xml/dom/minidom.pytgetNamedItemNS"s
cCs�|j|�}|dk rnt|j�|j|j=|j|j|jf=d|j krjd|j d<n|St
jj��dS(NR�(
R�RR/R�R�R{R�RcRhRiR$R%R-(R Rutn((s%/sys/lib/python2.7/xml/dom/minidom.pytremoveNamedItem(s
cCs�|j||�}|dk rqt|j�|j|j|jf=|j|j=d|j krmd|j d<n|St
jj��dS(NR�(
R�RR/R�R�RcRhR�R{RiR$R%R-(R RcRhR�((s%/sys/lib/python2.7/xml/dom/minidom.pytremoveNamedItemNS4s
cCs�t|t�s:tjjdt|�t|�f��n|jj|j�}|rb|j �n||j|j<||j
|j|jf<|j
|_t|j�|S(Ns%s cannot be child of %s(R�R�R$R%R&R'R�R�RuR=R�RcRhR�R�R/(R R6RV((s%/sys/lib/python2.7/xml/dom/minidom.pyR�@s "
cCs
|j|�S(N(R�(R R6((s%/sys/lib/python2.7/xml/dom/minidom.pytsetNamedItemNSMscCs%||}t|j�|j�dS(N(R/R�R=(R R�R6((s%/sys/lib/python2.7/xml/dom/minidom.pyt__delitem__Ps
cCs|j|j|jfS(N(R�R�R�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt__getstate__UscCs|\|_|_|_dS(N(R�R�R�(R tstate((s%/sys/lib/python2.7/xml/dom/minidom.pyt__setstate__Xs(s_attrss_attrsNSs
_ownerElementN(RaRbt__doc__t __slots__RzR�R�RZR�R�R�R�R�RR�t__len__t__hash__R�R�R�R�R�R�R�R�R�R�R�R�(((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s4
tlengths$Number of nodes in the NamedNodeMap.tTypeInfocBs2eZdZd�Zd�Zd�Zd�ZRS(t namespaceRucCs||_||_dS(N(R�Ru(R R�Ru((s%/sys/lib/python2.7/xml/dom/minidom.pyRzds cCs,|jrd|j|jfSd|jSdS(Ns<TypeInfo %r (from %r)>s
<TypeInfo %r>(R�Ru(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt__repr__hs cCs|jS(N(Ru(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt _get_namenscCs|jS(N(R�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_namespaceqs(s namespacesname(RaRbR�RzR�R�R�(((s%/sys/lib/python2.7/xml/dom/minidom.pyR�as
tElementcBsLeZejZdZeZdZ ejej
ejejej
ejfZeddd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd �Zd
�Zd�ZeZd�Zd
�Zd�ZeZ d�Z!d�Z"d�Z#d�Z$d�Z%dddd�Z&d�Z'd�Z(d�Z)d�Z*d�Z+RS(icCsD||_|_||_||_t�|_i|_i|_dS(N(RrR{RdRcR`RR�R�(R RrRcRdRh((s%/sys/lib/python2.7/xml/dom/minidom.pyRz�s cCs|jjdd�dS(NR�ii�(RrR�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyRL�scCs|jS(N(Rr(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_tagName�scCsGx!|jj�D]}|j�qWd|_d|_tj|�dS(N(R�R�R=RR�R(R tattr((s%/sys/lib/python2.7/xml/dom/minidom.pyR=�s
cCs+y|j|jSWntk
r&dSXdS(NR(R�R�RR(R R�((s%/sys/lib/python2.7/xml/dom/minidom.pytgetAttribute�s
cCs1y|j||fjSWntk
r,dSXdS(NR(R�R�RR(R RcRh((s%/sys/lib/python2.7/xml/dom/minidom.pytgetAttributeNS�s
cCs�|j|�}|dkr_t|�}|j}||d<|d<|j|d<|j|�nC||jkr�|j}||d<|d<|jr�t|�q�ndS(NR�R|RD( tgetAttributeNodeRR�RiRDtsetAttributeNodeR�R�R/(R R�R�R�RW((s%/sys/lib/python2.7/xml/dom/minidom.pytsetAttribute�s
cCs�t|�\}}|j||�}|dkr�t||||�}|j}||d<||d<||d<|d<|j|d<|j|�ni|j}||jkr�||d<|d<|jr�t |�q�n|j
|kr�|d<||d<ndS(NRdR{R�R|RD(t_nssplittgetAttributeNodeNSRR�RiRDR�R�R�R/Rd(R Rct
qualifiedNameR�Rdt localnameR�RW((s%/sys/lib/python2.7/xml/dom/minidom.pytsetAttributeNS�s$
cCs|jj|�S(N(R�R�(R tattrname((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs|jj||f�S(N(R�R�(R RcRh((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs�|jd|fkr*tjjd��n|jj|jd�}|dk r^|j|�n|j j|j
|jfd�}|dk r�||k r�|j|�nt||�||k r�|S||k r�|SdS(Nsattribute node already owned(
R�RR$R%tInuseAttributeErrR�R�RutremoveAttributeNodeR�RcRht_set_attribute_node(R R�told1told2((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s!
cCsEy|j|}Wn tk
r3tjj��nX|j|�dS(N(R�RRR$R%R-R�(R RuR�((s%/sys/lib/python2.7/xml/dom/minidom.pytremoveAttribute�s
cCsKy|j||f}Wn tk
r9tjj��nX|j|�dS(N(R�RRR$R%R-R�(R RcRhR�((s%/sys/lib/python2.7/xml/dom/minidom.pytremoveAttributeNS�s
cCsw|dkrtjj��ny|j|jWn tk
rRtjj��nXt|�|j�|j |_ dS(N(
RR$R%R-R�RuRRR/R=RD(R R6((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s
cCs
||jkS(N(R�(R Ru((s%/sys/lib/python2.7/xml/dom/minidom.pythasAttributescCs||f|jkS(N(R�(R RcRh((s%/sys/lib/python2.7/xml/dom/minidom.pythasAttributeNSscCst||t��S(N(RsR`(R Ru((s%/sys/lib/python2.7/xml/dom/minidom.pytgetElementsByTagNamescCst|||t��S(N(RwR`(R RcRh((s%/sys/lib/python2.7/xml/dom/minidom.pytgetElementsByTagNameNSscCsd|jt|�fS(Ns<DOM Element: %s at %#x>(RrR�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR�sRc Cs[|j|d|j�|j�}|j�}|j�x@|D]8}|jd|�t|||j�|jd�qAW|jrF|jd�t|j�dkr�jdj t
jkr�jdj|ddd�nH|j|�x+|jD] }|j|||||�q�j|�|jd|j|f�n|jd |�dS(
NRms %s="s"RniiRs</%s>%ss/>%s(
RpRrt_get_attributesR�tsortRqR�RR�RRR;R( R RRt addindentRR�ta_namesta_nameR6((s%/sys/lib/python2.7/xml/dom/minidom.pyRs&
cCst|j|j|�S(N(R�R�R�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR�4scCs|jr
tStSdS(N(R�RR(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt
hasAttributes7s cCs |j|�}|j|�dS(N(R�tsetIdAttributeNode(R RutidAttr((s%/sys/lib/python2.7/xml/dom/minidom.pytsetIdAttribute?scCs#|j||�}|j|�dS(N(R�R�(R RcRhR�((s%/sys/lib/python2.7/xml/dom/minidom.pytsetIdAttributeNSCscCs�|dks|j|j�r1tjj��nt|�dk rUtjj��n|js�t |j
d<|jd7_|jj
d7_
t|�ndS(NR�i(RRNR�R$R%R-t_get_containing_entreftNoModificationAllowedErrR�RRiR�RDR�R/(R R�((s%/sys/lib/python2.7/xml/dom/minidom.pyR�Gs
N(,RaRbRR?RRR|R�R�R�R�R�R;R~RR#RRzRLR�R=R�R�R�R�R�R�R�tsetAttributeNodeNSR�R�R�tremoveAttributeNodeNSR�R�R�R�R�RR�R�R�R�R�(((s%/sys/lib/python2.7/xml/dom/minidom.pyR�vsL
R}s*NamedNodeMap of attributes on the element.s%Namespace-local name of this element.cCsDt|�||j|j<||j|j|jf<||jd<dS(NR�(R/R�RuR�RcRhRi(telementR�((s%/sys/lib/python2.7/xml/dom/minidom.pyR�Xs
t ChildlesscBsqeZdZd Ze�Zd Zd Zd�Z d�Z
d�Zd�Zd�Z
d�Zd�Zd�ZRS(
s�Mixin that makes childless-ness easy to implement and avoids
the complexity of the Node methods that deal with children.
cCsdS(N(R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyRmscCsdS(N(R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyRpscCstjj|jd��dS(Ns nodes cannot have children(R$R%R&R{(R R6((s%/sys/lib/python2.7/xml/dom/minidom.pyR*ss cCstS(N(R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyRwscCstjj|jd��dS(Ns nodes do not have children(R$R%R&R{(R R3R4((s%/sys/lib/python2.7/xml/dom/minidom.pyR"zs cCstjj|jd��dS(Ns nodes do not have children(R$R%R-R{(R R8((s%/sys/lib/python2.7/xml/dom/minidom.pyR)~s cCsdS(N((R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR@�scCstjj|jd��dS(Ns nodes do not have children(R$R%R&R{(R R3R8((s%/sys/lib/python2.7/xml/dom/minidom.pyR9�s N(RaRbR�RR}t
EmptyNodeListRReRgRRR*RR"R)R@R9(((s%/sys/lib/python2.7/xml/dom/minidom.pyR�cs tProcessingInstructioncBsYeZejZd�Zd�Zd�Zd�Zd�Z d�Z
dddd�ZRS(cCs$||_|_||_|_dS(N(ttargetR{R<R|(R R�R<((s%/sys/lib/python2.7/xml/dom/minidom.pyRz�scCs|jS(N(R<(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt _get_data�scCs|j}||d<|d<dS(NR<R|(Ri(R R�RW((s%/sys/lib/python2.7/xml/dom/minidom.pyt _set_data�s cCs|jS(N(R�(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_target�scCs|j}||d<|d<dS(NR�R{(Ri(R R�RW((s%/sys/lib/python2.7/xml/dom/minidom.pyt_set_target�s cCsw|dks|dkr3||jd<|jd<n@|dksK|dkrf||jd<|jd<n
||j|<dS(NR<R|R�R{(Ri(R RuR�((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s
RcCs'|jd||j|j|f�dS(Ns
%s<?%s %s?>%s(RpR�R<(R RRR�R((s%/sys/lib/python2.7/xml/dom/minidom.pyR�s(RaRbRR�RRzR�RRRR�R(((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s t
CharacterDatacBsteZd�ZeZd�Zd�ZeZeZd�Zd�Z d�Z
d�Zd�Zd�Z
d �ZRS(
cCs
t|j�S(N(R�R<(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs|jdS(NR<(Ri(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs|j}||d<|d<dS(NR<R|(Ri(R R<RW((s%/sys/lib/python2.7/xml/dom/minidom.pyR�s cCsD|dks|dkr3||jd<|jd<n
||j|<dS(NR<R|(Ri(R RuR�((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCsH|j}t|�dkr$d}nd}d|jj|dd!|fS(Ni
s...Rs<DOM %s node "%r%s">i(R<R�t __class__Ra(R R<t dotdotdot((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s cCs~|dkr!tjjd��n|t|j�krKtjjd��n|dkrltjjd��n|j|||!S(Nisoffset cannot be negatives#offset cannot be beyond end of datascount cannot be negative(R$R%tIndexSizeErrR�R<(R toffsettcount((s%/sys/lib/python2.7/xml/dom/minidom.pyt
substringData�scCs|j||_dS(N(R<(R targ((s%/sys/lib/python2.7/xml/dom/minidom.pyt
appendData�scCs||dkr!tjjd��n|t|j�krKtjjd��n|rxd|j| ||j|f|_ndS(Nisoffset cannot be negatives#offset cannot be beyond end of datas%s%s%s(R$R%RR�R<(R RR
((s%/sys/lib/python2.7/xml/dom/minidom.pyt
insertData�scCs�|dkr!tjjd��n|t|j�krKtjjd��n|dkrltjjd��n|r�|j| |j|||_ndS(Nisoffset cannot be negatives#offset cannot be beyond end of datascount cannot be negative(R$R%RR�R<(R RR((s%/sys/lib/python2.7/xml/dom/minidom.pyt
deleteData�scCs�|dkr!tjjd��n|t|j�krKtjjd��n|dkrltjjd��n|r�d|j| ||j||f|_ndS(Nisoffset cannot be negatives#offset cannot be beyond end of datascount cannot be negatives%s%s%s(R$R%RR�R<(R RRR
((s%/sys/lib/python2.7/xml/dom/minidom.pytreplaceData�s(RaRbR�R�R�Rt_get_nodeValuet_set_nodeValueR�R�R RRR
R(((s%/sys/lib/python2.7/xml/dom/minidom.pyR�s
sLength of the string data.R�cBsSeZejZdZdZd�Zdddd�Z d�Z
d�Zd�ZRS(s#textcCs�|dks!|t|j�kr6tjjd��n|j�}|j||_|j|_|j}|jr�||jj kr�|dkr�|jj|�q�|jj||�n|j| |_|S(Nisillegal offset value(
R�R<R$R%RRRDR1R(RRR*R"(R RtnewTexttnext((s%/sys/lib/python2.7/xml/dom/minidom.pyt splitText�s! RcCs!t|d||j|f�dS(Ns%s%s%s(RqR<(R RRR�R((s%/sys/lib/python2.7/xml/dom/minidom.pyR
scCs�|jg}|j}xK|dk rb|jtjtjfkr^|jd|j�|j}qPqW|j}xH|dk r�|jtjtjfkr�|j |j�|j}qoPqoWdj
|�S(NiR(R<R2RRRR;R~R0R1R>tjoin(R RAR�((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_wholeTexts cCs�|j}|j}xK|dk r_|jtjtjfkr[|j}|j|�|}qPqW|j}|s|j|�nxK|dk r�|jtjtjfkr�|j}|j|�|}q�Pq�W|r�j }||d<||d<|SdSdS(NR<R|(
R(R2RRRR;R~R)R1Ri(R tcontentRtR�RRW((s%/sys/lib/python2.7/xml/dom/minidom.pytreplaceWholeText$s.
cCs_|jj�rtSt|�}|dkr/tS|jj|�}|dkrQtS|j�SdS(N(R<tstripRt_get_containing_elementRRDR�tisElementContent(R R�R�((s%/sys/lib/python2.7/xml/dom/minidom.pyt!_get_isWhitespaceInElementContentBsN(
RaRbRR;RR{RR}RRRRR(((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s tisWhitespaceInElementContentsKTrue iff this text node contains only whitespace and is in element content.t wholeTexts.The text of all logically-adjacent text nodes.cCs?|j}x/|dk r:|jtjkr.|S|j}qWdS(N(R(RRRR?(R6R5((s%/sys/lib/python2.7/xml/dom/minidom.pyRUs
cCs?|j}x/|dk r:|jtjkr.|S|j}qWdS(N(R(RRRR(R6R5((s%/sys/lib/python2.7/xml/dom/minidom.pyR�]s
tCommentcBs2eZejZdZd�Zdddd�ZRS(s#commentcCs||_|_dS(N(R<R|(R R<((s%/sys/lib/python2.7/xml/dom/minidom.pyRzjsRcCs?d|jkrtd��n|jd||j|f�dS(Ns--s%'--' is not allowed in a comment nodes
%s<!--%s-->%s(R<R,Rp(R RRR�R((s%/sys/lib/python2.7/xml/dom/minidom.pyRms(RaRbRR�RR{RzR(((s%/sys/lib/python2.7/xml/dom/minidom.pyRfs tCDATASectioncBs)eZejZdZdddd�ZRS(s#cdata-sectionRcCs?|jjd�dkr'td��n|jd|j�dS(Ns]]>is$']]>' not allowed in a CDATA sections<![CDATA[%s]]>(R<tfindR,Rp(R RRR�R((s%/sys/lib/python2.7/xml/dom/minidom.pyR|s(RaRbRR~RR{R(((s%/sys/lib/python2.7/xml/dom/minidom.pyRss tReadOnlySequentialNamedNodeMapcBs�eZdZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�Zd
�ZRS(t_seqcCs
||_dS(N(R"(R tseq((s%/sys/lib/python2.7/xml/dom/minidom.pyRz�scCs
t|j�S(N(R�R"(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs
t|j�S(N(R�R"(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs+x$|jD]}|j|kr
|Sq
WdS(N(R"R{(R RuR�((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs:x3|jD](}|j|kr
|j|kr
|Sq
WdS(N(R"RcRh(R RcRhR�((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCsLt|t�r!|j|�}n|j|�}|dkrHt|�n|S(N(R�R!R�R�RRR(R t
name_or_tupleR6((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs8|dkrdSy|j|SWntk
r3dSXdS(Ni(RR"R�(R R+((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s
cCstjjd��dS(Ns"NamedNodeMap instance is read-only(R$R%R�(R Ru((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s cCstjjd��dS(Ns"NamedNodeMap instance is read-only(R$R%R�(R RcRh((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s cCstjjd��dS(Ns"NamedNodeMap instance is read-only(R$R%R�(R R6((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s cCstjjd��dS(Ns"NamedNodeMap instance is read-only(R$R%R�(R R6((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s cCs
|jgS(N(R"(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs|d|_dS(Ni(R"(R R�((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s(s_seq((RaRbR�RzR�R�R�R�R�R�R�R�R�R�R�R�(((s%/sys/lib/python2.7/xml/dom/minidom.pyR!�s s&Number of entries in the NamedNodeMap.t
IdentifiedcBs)eZdZd�Zd�Zd�ZRS(s@Mix-in class that supports the publicId and systemId attributes.cCs||_||_dS(N(tpublicIdtsystemId(R R&R'((s%/sys/lib/python2.7/xml/dom/minidom.pyt_identified_mixin_init�s cCs|jS(N(R&(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt
_get_publicId�scCs|jS(N(R'(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt
_get_systemId�s(RaRbR�R(R)R*(((s%/sys/lib/python2.7/xml/dom/minidom.pyR%�s tDocumentTypecBs\eZejZdZdZdZdZ dZ
d�Zd�Zd�Z
dddd�ZRS(cCsLt�|_t�|_|r<t|�\}}||_n|j|_dS(N(R!tentitiest notationsR�RuR{(R R�RdR�((s%/sys/lib/python2.7/xml/dom/minidom.pyRz�scCs|jS(N(tinternalSubset(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_internalSubset�scCs\|jdkrTtd�}|j|_|j|_tjjj}|r=g|j _
g|j_
xU|jj
D]G}t|j|j
|j�}|jj
j|�|j|||�qmWx�|j j
D]q}t|j|j
|j|j�}|j|_|j|_|j|_|j j
j|�|j|||�q�Wn|j|||�|SdSdS(N(RDRR+RuR{R$R%tUserDataHandlertNODE_CLONEDR,R"R-tNotationR&R'R>R_tEntitytnotationNametactualEncodingR
RJ(R REtcloneR\R�tnotationtetentity((s%/sys/lib/python2.7/xml/dom/minidom.pyRF�s.RcCs�|jd�|j|j�|jrL|jd||j||jf�n&|jrr|jd||jf�n|jdk r�|jd�|j|j�|jd�n|jd|�dS(Ns
<!DOCTYPE s%s PUBLIC '%s'%s '%s's%s SYSTEM '%s's [t]Rn(RpRuR&R'R.R(R RRR�R((s%/sys/lib/python2.7/xml/dom/minidom.pyRs
N(RaRbRtDOCUMENT_TYPE_NODERRR|RuR&R'R.RzR/RFR(((s%/sys/lib/python2.7/xml/dom/minidom.pyR+�s R3cBsweZdZejZdZdZdZ dZ
d�Zd�Zd�Z
d�Zd�Zd�Zd�Zd�ZRS( cCs2||_||_t�|_|j||�dS(N(R{R4R`RR((R RuR&R'R7((s%/sys/lib/python2.7/xml/dom/minidom.pyRzs cCs|jS(N(R5(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_actualEncodingscCs|jS(N(R
(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt
_get_encoding"scCs|jS(N(RJ(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_version%scCstjjd��dS(Ns(cannot append children to an entity node(R$R%R&(R R3((s%/sys/lib/python2.7/xml/dom/minidom.pyR*(s cCstjjd��dS(Ns+cannot insert children below an entity node(R$R%R&(R R3R4((s%/sys/lib/python2.7/xml/dom/minidom.pyR",s cCstjjd��dS(Ns*cannot remove children from an entity node(R$R%R&(R R8((s%/sys/lib/python2.7/xml/dom/minidom.pyR)0s cCstjjd��dS(Ns)cannot replace children of an entity node(R$R%R&(R R3R8((s%/sys/lib/python2.7/xml/dom/minidom.pyR94s N(RaRbRR}RtENTITY_NODERR|R5R
RJRzR<R=R>R*R"R)R9(((s%/sys/lib/python2.7/xml/dom/minidom.pyR3s R2cBs eZejZdZd�ZRS(cCs||_|j||�dS(N(R{R((R RuR&R'((s%/sys/lib/python2.7/xml/dom/minidom.pyRz<s N(RaRbRR�RRR|Rz(((s%/sys/lib/python2.7/xml/dom/minidom.pyR28s tDOMImplementationc BsSeZddddddddgZd�Zd�Zd�Zd �Zd
�ZRS(tcores1.0s2.0R$sls-loads3.0cCs.|dkrd}n|j�|f|jkS(NR(Rtlowert _features(R RIRJ((s%/sys/lib/python2.7/xml/dom/minidom.pyRHLs c CsK|r*|jdk r*tjjd��n|j�}|dkoW|dkoW|dk}|r}|r}tjjd��n|rt|�\}}|dkr�|dkr�tjjd��n|r�r�jjd��n|j ||�}|r|j
|�n|j
|�n|r5||_|_n||_||_
|S(Ns(doctype object owned by another DOM treesElement with no nameR$s$http://www.w3.org/XML/1998/namespacesillegal use of 'xml' prefixs(illegal use of prefix without namespaces(R(RR$R%tWrongDocumentErrt_create_documenttInvalidCharacterErrR�R�tcreateElementNSR*RDtdoctypeRG( R RcR�RHRftadd_root_elementRdR�R�((s%/sys/lib/python2.7/xml/dom/minidom.pytcreateDocumentQs4
cCs"t|�}||_||_|S(N(R+R&R'(R R�R&R'RH((s%/sys/lib/python2.7/xml/dom/minidom.pytcreateDocumentType~s cCs|j|d�r|SdSdS(N(RHR(R RI((s%/sys/lib/python2.7/xml/dom/minidom.pyRO�scCst�S(N(tDocument(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyRE�s(RAs1.0(RAs2.0N(RAN(sxmls1.0(sxmls2.0(sxmlN(sls-loads3.0(sls-loadN( RaRbRRCRHRJRKRORE(((s%/sys/lib/python2.7/xml/dom/minidom.pyR@As - tElementInfocBseeZdZdZd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�ZRS(s�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.
RrcCs
||_dS(N(Rr(R Ru((s%/sys/lib/python2.7/xml/dom/minidom.pyRz�scCstS(N(R�(R taname((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCstS(N(R�(R RcRh((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCstS(N(R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR�scCstS(sQReturns true iff this element is declared to have an EMPTY
content model.(R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pytisEmpty�scCstS(s7Returns true iff the named attribute is a DTD-style ID.(R(R RN((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCstS(s<Returns true iff the identified attribute is a DTD-style ID.(R(R RcRh((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs|jS(N(Rr(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs
||_dS(N(Rr(R R�((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s(stagName(
RaRbR�R�RzR�R�RROR�R�R�R�(((s%/sys/lib/python2.7/xml/dom/minidom.pyRM�s cCsZ|jtjkr+|jj�d|_n+t|�rV|jjj�d|j_ndS(N( RRRt _id_cachetclearRt_id_search_stackRkRD(R6((s%/sys/lib/python2.7/xml/dom/minidom.pyR/�s
RLcBs�eZejejejejfZejZ dZ
d$Zd$Z
d$Zd$Zd$ZZe�Zd$Zd$Zd$Zd$ZeZd$Zd$ZdZd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d �Z$d
�Z%d�Z&d�Z'd
�Z(d�Z)d�Z*d�Z+d�Z,d�Z-d�Z.d�Z/d�Z0d�Z1d�Z2d�Z3d�Z4d�Z5d�Z6d�Z7d�Z8d�Z9d�Z:d �Z;d!d!d!d$d"�Z<d#�Z=RS(%s #documenticCs+t�|_i|_i|_d|_dS(N(R`Rt
_elem_infoRPRRR(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyRz�s cCs7|jr|j|jf}n |j}|jj|�S(N(RcRhRrRSR�(R R�RS((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s cCs|jS(N(R5(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR<�scCs|jS(N(RH(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_doctype�scCs|jS(N(tdocumentURI(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_documentURI�scCs|jS(N(R
(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR=�scCs|jS(N(terrorHandler(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_errorHandler�scCs|jS(N(t
standalone(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_standalone�scCs|jS(N(tstrictErrorChecking(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyt_get_strictErrorChecking�scCs|jS(N(RJ(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR>scCs�|j|jkr=tjjdt|�t|�f��n|jdk r_|jj|�n|jt j
kr�|j�r�tjjd��nt j||�S(Ns%s cannot be child of %ss two document elements disallowed(
RR#R$R%R&R'R(RR)RR?t_get_documentElementR*(R R6((s%/sys/lib/python2.7/xml/dom/minidom.pyR*s " cCsoy|jj|�Wn tk
r6tjj��nXd|_|_d|_ |j
|krkd|_
n|S(N(RR:R,R$R%R-RR1R2R(tdocumentElement(R R8((s%/sys/lib/python2.7/xml/dom/minidom.pyR)s
cCs.x'|jD]}|jtjkr
|Sq
WdS(N(RRRR?(R R6((s%/sys/lib/python2.7/xml/dom/minidom.pyR]scCs9|jdk r(|jj�d|_ntj|�dS(N(RHRR=R(R ((s%/sys/lib/python2.7/xml/dom/minidom.pyR=$s
cCs�|s
dS|jjddd�}|j|_|j|_|j|_xo|jD]d}t|||�}|jj|�|j t
jkr�n|j t
jkr�||_
n||_qPW|jtjjj||�|S(N(RRGRJR
RYRJRRCR>RRRR;RHR(R_R$R%R0R1(R RER6R�t
childclone((s%/sys/lib/python2.7/xml/dom/minidom.pyRF*s"
cCst�}||_|S(N(RyRD(R RW((s%/sys/lib/python2.7/xml/dom/minidom.pytcreateDocumentFragment?s cCst|�}||_|S(N(R�RD(R RrR8((s%/sys/lib/python2.7/xml/dom/minidom.pyt
createElementDs cCs:t|t�std�nt�}||_||_|S(Nsnode contents must be a string(R�R�R�R�R<RD(R R<tt((s%/sys/lib/python2.7/xml/dom/minidom.pytcreateTextNodeIs cCs:t|t�std�nt�}||_||_|S(Nsnode contents must be a string(R�R�R�RR<RD(R R<R5((s%/sys/lib/python2.7/xml/dom/minidom.pytcreateCDATASectionQs cCst|�}||_|S(N(RRD(R R<R5((s%/sys/lib/python2.7/xml/dom/minidom.pyt
createCommentYs cCst||�}||_|S(N(R�RD(R R�R<tp((s%/sys/lib/python2.7/xml/dom/minidom.pytcreateProcessingInstruction^s cCs"t|�}||_d|_|S(NR(R�RDR�(R R�ta((s%/sys/lib/python2.7/xml/dom/minidom.pytcreateAttributecs cCs1t|�\}}t|||�}||_|S(N(R�R�RD(R RcR�RdRhR8((s%/sys/lib/python2.7/xml/dom/minidom.pyRGis cCs=t|�\}}t||||�}||_d|_|S(NR(R�R�RDR�(R RcR�RdRhRh((s%/sys/lib/python2.7/xml/dom/minidom.pytcreateAttributeNSos
cCs"t||||�}||_|S(N(R3RD(R RuR&R'R4R8((s%/sys/lib/python2.7/xml/dom/minidom.pyt_create_entityys cCst|||�}||_|S(N(R2RD(R RuR&R'R�((s%/sys/lib/python2.7/xml/dom/minidom.pyt_create_notation~s cCsE||jkr|j|S|jp)|js0dS|j}|dkr]|jg}||_n
|sgdSd}x�|r@|j�}|jg|jD]}|j t
kr�|^q��|j|�}|r�xa|jj
�D]�|jr;|j|j|j�r�||j|j<|j|kr(|}q8|js8Pq8q�q�|j|j�r�||j|j<|j|kru|}q�|js�Pq�q�|jr�||j|j<|j|kr�|}q�|jdkr�Pq�q�q�WnZ|jr-xN|jj
�D]:}|jr�|j|j<|j|kr&|}q&q��n|dk rpPqpqpW|S(Ni(RPRSR�RRRR^tpoptextendRRR.R�R}R�RcR�RhR�R�R�RuR�(R R�tstacktresultR6RBR�R�((s%/sys/lib/python2.7/xml/dom/minidom.pytgetElementById�s\
cCst||t��S(N(RsR`(R Ru((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCst|||t��S(N(RwR`(R RcRh((s%/sys/lib/python2.7/xml/dom/minidom.pyR��scCs|jj||�S(N(RGRH(R RIRJ((s%/sys/lib/python2.7/xml/dom/minidom.pyRK�scCs^|jtjkr'tjjd��n'|jtjkrNtjjd��nt|||�S(Nscannot import document nodess!cannot import document type nodes(RRRR$R%tNotSupportedErrR;RC(R R6RE((s%/sys/lib/python2.7/xml/dom/minidom.pyt
importNode�s
RcCse|dkr |jd|�n|jd||f�x'|jD]}|j||||�qAWdS(Ns<?xml version="1.0" ?>s%<?xml version="1.0" encoding="%s"?>%s(RRpRR(R RRR�RR
R6((s%/sys/lib/python2.7/xml/dom/minidom.pyR�s
c Cs|j|k r1tjjd||jf��n|jtjtjfkratjjd��n|t krd|kr�|j
dd�\}}|dkr|tjjkrtjjd��qq'|dkr|tjjkr|jtjkrtjjd��nd}|}nd}d}|jtjkrj|j}|dk rp|j}|j|�qpnd}|j}||d<||d <||d
<||d<|jtjkr�||d<n<||d
<|dk r�j|�|r�j|�q�|S(Ns?cannot rename nodes from other documents;
expected %s,
found %ss8renameNode() only applies to element and attribute nodesR�iR�sillegal use of 'xmlns' prefixs$illegal use of the 'xmlns' attributeRdRhRcR{RrRu(RDR$R%RDRRR?R�RrRR�RR�RR�R�R�RiR�R�( R R�RcRuRdRhR�tis_idRW((s%/sys/lib/python2.7/xml/dom/minidom.pyt
renameNode�sT
N(>RaRbRR?R�R�R;R#RRR{RR|R}RHR(R2R1R@RGR5R
RYRJRR[RWRUR�RzR�R<RTRVR=RXRZR\R>R*R)R]R=RFR`RaRcRdReRgRiRGRjRkRlRqR�R�RKRsRRu(((s%/sys/lib/python2.7/xml/dom/minidom.pyRL�sh
:
R^s#Top-level element of this document.c
Cs�|jj|�r$tjjj}ntjjj}|jtj kr�j
|j|j�}xW|j
j�D]F}|j|j|j|j�|j|j|j�}|j|_qmW|r�x3|jD]%}t|||�}|j|�q�Wq�n�|jtjkrS|j�}|r�x3|jD]%}t|||�}|j|�q$Wq�n|jtjkrz|j|j�}nX|jtjkr�|j|j�}n1|jtjkr�|j|j |j�}n|jtj!kr�j"|j�}n�|jtj#kr7|j$|j|j�}t%|_|j|_n�|jtj&kr�tjjj}|j'j(|j)|j*|j+�}||_|r�g|j,_-g|j._-xp|j.j-D]b} t/| j| j*| j+�}
||
_|j.j-j0|
�t1| d�r�| j2|| |
�q�q�Wx�|j,j-D]�}t3|j|j*|j+|j4�}|j5|_5|j6|_6|j7|_7||_|j,j-j0|�t1|d�r |j2|| |�q q Wq�ntjj8dt9|���t1|d�r�j2|||�n|S(so
Clone a node and give it the new owner document.
Called by Node.cloneNode and Document.importNode
R_sCannot clone node %s(:RDRNR$R%R0R1t
NODE_IMPORTEDRRR?RGRcR{R}R�R�R�R�RhR�RRCR*R R`R;RcR<R~RdR�RgR�R�ReR�RjRR;RGRKRuR&R'R,R"R-R2R>RYR_R3R4R5R
RJRrR'(
R6REtnewOwnerDocumentR\R6R�RhRBR5R�R7R8R9((s%/sys/lib/python2.7/xml/dom/minidom.pyRCs| cCs:|jdd�}t|�dkr(|Sd|dfSdS(NR�iii(R�R�R(R�tfields((s%/sys/lib/python2.7/xml/dom/minidom.pyR�fscCsddlm}|�S(Ni�(tStringIO(Ry(Ry((s%/sys/lib/python2.7/xml/dom/minidom.pyRnscCs<|||�}|j�\}}|j|�|j�|S(N(tgetEventt
expandNodeRQ(tfunctargstkwargsteventsttoktypetrootNode((s%/sys/lib/python2.7/xml/dom/minidom.pyt_do_pulldom_parsess
cCsh|dkr0|r0ddlm}|j|�Sddlm}t|j|fi|d6|d6�SdS(s3Parse a file into a DOM by filename or file object.i�(texpatbuilder(tpulldomtparsertbufsizeN(Rtxml.domR�tparseR�R�(tfileR�R�R�R�((s%/sys/lib/python2.7/xml/dom/minidom.pyR�zs
cCsZ|dkr)ddlm}|j|�Sddlm}t|j|fi|d6�SdS(s&Parse a file into a DOM from a string.i�(R�(R�R�N(RR�R�tparseStringR�R�(tstringR�R�R�((s%/sys/lib/python2.7/xml/dom/minidom.pyR��s
cCsa|rZt|t�r'tj|�}nx0|D]%\}}tjj||�s.dSq.WntjS(N(R�R�Rt_parse_feature_stringRLRGRHR(tfeaturestftv((s%/sys/lib/python2.7/xml/dom/minidom.pytgetDOMImplementation�s(8R�R�R$RRRRtxml.dom.minicompattxml.dom.xmlbuilderRRR%RR?RR.tdefpropertyR7RkRqRsRwRyR�tobjectR�t
AttributeListR�RR�R�R�R�R�RR�RR�RRR!R%R+R3R2R@RMR/RLRCR�RR�R�R�R�(((s%/sys/lib/python2.7/xml/dom/minidom.pyt<module>s�"
�
r�� (GZ
><( O* � R
|