python (3.11.7)

(root)/
lib/
python3.11/
xml/
dom/
__pycache__/
minidom.cpython-311.opt-2.pyc

e,
	ddlZddlZddlmZmZmZmZddlTddlm	Z	m
Z
ejjj
ejjjfZGddejjZeedd	eed
d	eedd
	dZdZdZdZdZGddeZGddeZeedd	eedd	eedd	GddeZeedd	eZGd d!eZeddZGd"d#eZeed$d%	eedd&	d'ZGd(d)ZGd*d+eeZ Gd,d-eeZ!ee!dd.	Gd/d0e!Z"ee"d1d2	ee"d3d4	d5Z#d6Z$Gd7d8e!Z%Gd9d:e"Z&Gd;d<eZ'ee'dd=	Gd>d?Z(Gd@dAe(eeZ)GdBdCe(eZ*GdDdEe(eeZ+GdFdGe	Z,GdHdIeZ-dJZ.GdKdLee
Z/ee/dMdN	dOZ0dPZ1dQZ2dUdRZ3dVdSZ4dVdTZ5dS)WN)EMPTY_NAMESPACEEMPTY_PREFIXXMLNS_NAMESPACEdomreg)*)DOMImplementationLS
DocumentLSceZdZdZdZdZdZdZeZ	dZ
ddZ		ddZdZ
dZd	Zd
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZ dS)NodeNcdS)NTselfs C/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/xml/dom/minidom.py__bool__z
Node.__bool__+tc2|dd||SN)toprettyxml)rencoding
standalones   rtoxmlz
Node.toxml.sB*===r	
c|tj}n)tjtj|dd}|jt
jkr||d||||n||d||||S|	S)Nxmlcharrefreplacer)rerrorsnewliner)
ioStringIO
TextIOWrapperBytesIOnodeTyper
DOCUMENT_NODEwritexmlgetvaluedetach)rindentnewlrrwriters      rrzNode.toprettyxml1s[]]FF%bjll/7-@.2444F=D...MM&"fdHjIIIIMM&"fd333??$$$==??++---rc*t|jSN)bool
childNodesrs r
hasChildNodeszNode.hasChildNodesDsDO$$$rc|jSr.r0rs r_get_childNodeszNode._get_childNodesG
rc.|jr
|jdSdSNrr3rs r_get_firstChildzNode._get_firstChildJs#?	&?1%%	&	&rc.|jr
|jdSdSNr3rs r_get_lastChildzNode._get_lastChildNs#?	'?2&&	'	'rc|j|jkr/t|jD]}||||S|j|jvr>tjt|dt||j
|j
||||n	|j
|}n,#t$rtjwxYw|jt vrt#||j||||_||_|r|j|dz
}||_||_nd|_||_
|S)N cannot be child of )r%DOCUMENT_FRAGMENT_NODEtupler0insertBefore_child_node_typesxmldomHierarchyRequestErrrepr
parentNoderemoveChildappendChildindex
ValueErrorNotFoundErr_nodeTypes_with_children_clear_id_cacheinsertnextSiblingpreviousSibling)rnewChildrefChildcrKnodes      rrBzNode.insertBeforeRs ;;;8.//
/
/!!!X....OD$:::'--.28nnnnd4jjjIKK
K*++H555X&&&&
,--h77
,
,
,g))+++
, $<<<%%%O""5(333#+H '/H$
0uQw/#+ +/((+/("&HsC!!)D
c|j|jkr.t|jD]}|||S|j|jvr>tjt|dt||jtvrt||j|j
|t||d|_|SNr>)r%r@rAr0rJrCrDrErFrGrNrOrHrI
_append_childrQ)rrVrUs   rrJzNode.appendChildrs=D7774?++
$
$  ####K= 666'--.24jjjj$t***EGG
G
]6
6
6D!!!?&O''---dD!!!rc|j|jkr2|j}|||||S|j|jvr>tjt|dt|||urdS|j
|j
|	|j|}n,#t$rtjwxYw||j|<||_
d|_
|jtvs|jtvrt!||j|_|j|_d|_d|_|jr||j_|jr||j_|SrX)r%r@rQrIrBrCrDrErFrGrHr0rKrLrMrNrOrR)rrSoldChildrTrKs     rreplaceChildzNode.replaceChilds ;;;+HX&&&$$Xx888D$:::'--.28nnnnd4jjjIKK
KxF*++H555	(O))(33EE	(	(	('%%'''	(!)""!999 $<<<D!!!'3#+#; ##' #	<3;H$0	<3;H 0s7C)C;cZ	|j|n,#t$rtjwxYw|j|j|j_|j|j|j_dx|_|_|jtvrt|d|_|Sr.)r0removerLrDrErMrQrRr%rNrOrHrr[s  rrIzNode.removeChilds	(O""8,,,,	(	(	('%%'''	(+3;3KH 0#/3;3GH$0:>>x7 888D!!!"	)Aclg}|jD]}|jtjkr|jsA|r|j|d_|jr|j|j_|`|rf|dj|jkrP|d}|j|jz|_|j|_|jr||j_||||||jtj	kr|
||jdd<dSr:)r0r%r	TEXT_NODEdatarQrRunlinkappendELEMENT_NODE	normalize)rLchildrVs    rrgzNode.normalizes,_	&	&E~//z$>,1,=")(R<A<Q)9LLNNNN	$1R5>U^;;R5D $	EJ 6DI','8D$(A<@)9LLNNNNHHUOOOO>T%666OO%%%rc2t|||jp|Sr.)_clone_node
ownerDocument)rdeeps  r	cloneNodezNode.cloneNodes4t'9'ATBBBrcB|jj||Sr.)rlimplementation
hasFeaturerfeatureversions   risSupportedzNode.isSupporteds!0;;GWMMMrcdSr.r
rs r_get_localNamezNode._get_localNamestrc
||uSr.r
rothers  r
isSameNodezNode.isSameNodesu}rc6||dr|SdSr.)rurrss  rgetInterfacezNode.getInterfaces$GT**	K4rcZ	|j|dS#ttf$rYdSwxYwr7)
_user_dataAttributeErrorKeyErrorrkeys  rgetUserDatazNode.getUserDatas@	?3'**)			44	s**cd}	|j}n#t$ri}||_YnwxYw||vr||d}|d}|||=n||f||<|Sr7)rr)rrrchandleroldds      rsetUserDatazNode.setUserDatas	 AA	 	 	 ADOOO	 !88C&)C<GcFG_AcF
s""ct|drJt|jD]%\}\}}|||||||$dSdS)Nr)hasattrlistritemshandle)r	operationsrcdstrrcrs       r_call_user_data_handlerzNode._call_user_data_handlers~4&&	C(,T_-B-B-D-D(E(E
C
C$_dG&NN9c4cBBB	C	C
C
Crcdx|_|_|jr1|jD]}|t	|_d|_d|_dSr.)rHrlr0rdNodeListrRrQ)rris  rrdzNode.unlinks\/33$,?	)

&jjDO#rc|Sr.r
rs r	__enter__zNode.__enter__src.|dSr.)rd)retevtbs    r__exit__z
Node.__exit__s




rNN)rrNN)!__name__
__module____qualname__namespaceURIrHrlrQrRrprefixrrrr1r4r8r<rBrJr\rIrgrnrurwr{r~rrrrdrrr
rrrr"sLJMKO
F>>>><@#....&%%%&&&'''@"@ 6CCCNNN$CCC   rr
firstChildzFirst child node, or None.)doc	lastChildzLast child node, or None.	localNamez"Namespace-local name of this node.c||j}|r|d}||_||_||||_dSr:)r0rRrQrerH)rrVr0lasts    rrYrYsIJ "~#dDOOOrcJ| |jtjkrdS|j}| dSNTF)r%rr&rHrVs r_in_documentr's3

=D...4
5rc	|ri|dddddddd}||dSdS)	N&z&amp;<z&lt;"z&quot;>z&gt;)replacewrite)r,rcs  r_write_datar/sr!||C))11#v>>GD(++GGC,@,@	
Trc|jD]N}|jtjkr&|dks|j|kr||t
|||O|SNr)r0r%rrftagNamere_get_elements_by_tagName_helper)parentnamercrVs    rrr6sb!88=D---
S[[DLD00IIdOOO'dB7777
Irc|jD]`}|jtjkrI|dks|j|kr&|dks|j|kr||t||||a|Sr)r0r%rrfrrre"_get_elements_by_tagName_ns_helper)rnsURIrrrVs     rrr>s|!KK=D---c!!T^y%@%@#!2e!;!;		$.tUIrJJJ
IrceZdZejZdZdZdZdZ	ej
ejejej
ejejejfZdZdS)DocumentFragmentz#document-fragmentNc,t|_dSr.)rr0rs r__init__zDocumentFragment.__init__Us"**r)rrrrr@r%nodeName	nodeValue
attributesrHrfrbCDATA_SECTION_NODEENTITY_REFERENCE_NODEPROCESSING_INSTRUCTION_NODECOMMENT_NODE
NOTATION_NODErCrr
rrrrGsp*H#HIJJ*039*+
-%%%%%rrceZdZdZejZdZdZdZ	ej
ejfZe
ddfdZdZdZdZdZeeexZZd	Zd
ZeeexZZdZdZeeeZd
ZdZdZdS)Attr)_name_valuer_prefixr0
_localNamerlownerElementNFcd|_||_||_||_|||_t|_|jtdSr.)	rrrrrrr0reText)rqNamerrrs     rrz
Attr.__init__csZ 
( 'DO"**	
tvv&&&&&rct	|jS#t$r$|jdddcYSwxYwN:r?r;)rrrsplitrs rrwzAttr._get_localNamersM	3?"	3	3	3=&&sA..r2222	3	+77c|jSr.)	specifiedrs r_get_specifiedzAttr._get_specifiedx
~rc|jSr.)rrs r	_get_namezAttr._get_name{
zrcN||_|jt|jdSdSr.)rrrOrvalues  r	_set_namezAttr._set_name~s1
(D-.....)(rc|jSr.)rrs r
_get_valuezAttr._get_value
{rc||_||jd_|jt	|j||jd_dSr7)rr0rcrrOrs  r
_set_valuezAttr._set_valuesG"'(D-..."'rc|jSr.)rrs r_get_prefixzAttr._get_prefix
|rc|j}|dkr,|r*|tkrtjd||_||j}n|d|j}|jrt|j||_	dS)Nxmlnsz5illegal use of 'xmlns' prefix for the wrong namespacer)
rrrDrENamespaceErrrrrrOr)rrnsurinewNames    r_set_prefixzAttr._set_prefixs!W
M/11g**KMMM>nGG!'8G	/D-...			rc|j}|T|j|j=|j|j|jf=|jr,d|_|xjdzc_|jxj	dzc_	|j
D]}||j
dd=dS)NFr?)r_attrsr_attrsNSrr_is_id_magic_id_nodesrl_magic_id_countr0rd)relemris   rrdzAttr.unlinks
 DM*
t0$.AB{
8#$$)$$"22a722_		ELLNNNNOAAArc|jrdS|j}|j}||dS||}|dS|jr ||j|jS||jSr)	rrlr_get_elem_inforisIdNSrisIdrrrrinfos    r	_get_isIdzAttr._get_isIds;	4  ;$,5!!$''<5	,;;t0$.AAA99T]+++rc|j}|j}||tS||}|tS|jr ||j|jS||jSr.)	rlr_no_typerrgetAttributeTypeNSrgetAttributeTyperrs    r_get_schemaTypezAttr._get_schemaTypesy  ;$,O!!$''<O	8**4+<dnMMM((777r) rrr	__slots__rATTRIBUTE_NODEr%rrrrbrrCrrrwrrrpropertyrrrrrrrrrrdrrr
rrrrYsGWI"HJI
F)CD+:d''''333///
hy)444Ht(((!Z888I


Xk;
/
/F",,, 88888rrrz True if this attribute is an ID.z'Namespace-local name of this attribute.
schemaTypezSchema type for this attribute.ceZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZddZ
eZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS)NamedNodeMaprr
_ownerElementc0||_||_||_dSr.r)rattrsattrsNSrs    rrzNamedNodeMap.__init__s
)rc*t|jSr.)lenrrs r_get_lengthzNamedNodeMap._get_lengths4;rc	|t|j|S#t$rYdSwxYwr.)rrkeys
IndexErrorrrKs  ritemzNamedNodeMap.itemsO	T[--//00788			44	s14
AAcg}|jD]#}||j|jf$|Sr.)rvaluesrerrrrhrVs   rrzNamedNodeMap.itemssGK&&((	2	2D
HHdmTZ01111rcg}|jD]*}||j|jf|jf+|Sr.)rrrerrrrs   ritemsNSzNamedNodeMap.itemsNSsQK&&((	H	HD
HHt($.94:FGGGGrcPt|tr	||jvS||jvSr.)
isinstancestrrrrs  r__contains__zNamedNodeMap.__contains__s.c3	($+%%$-''rc4|jSr.)rrrs rrzNamedNodeMap.keyss{!!!rc4|jSr.)rrrs rkeysNSzNamedNodeMap.keysNSs}!!###rc4|jSr.)rrrs rrzNamedNodeMap.values
s{!!###rNc8|j||Sr.rget)rrrs   rr(zNamedNodeMap.get
s{tU+++rc|jt|ddurdSt|t|kt|t|kz
S)Nrr)rgetattridrys  r_cmpzNamedNodeMap._cmpsM;'%488881tHHr%yy(RXX5		-ABBrc4||dkSr7r,rys  r__eq__zNamedNodeMap.__eq__yy1$$rc4||dkSr7r.rys  r__ge__zNamedNodeMap.__ge__r0rc4||dkSr7r.rys  r__gt__zNamedNodeMap.__gt__yy!##rc4||dkSr7r.rys  r__le__zNamedNodeMap.__le__!r0rc4||dkSr7r.rys  r__lt__zNamedNodeMap.__lt__$r5rc`t|tr
|j|S|j|Sr.)rrArr)rattname_or_tuples  r__getitem__zNamedNodeMap.__getitem__'s1&..	1=!122;/00rc`t|tr]	|j|}nE#t$r8t	|}|jj|_||YnwxYw||_dSt|tstd|}||dS)Nz%value must be a string or Attr object)
rr rrrr
rlsetNamedItemr	TypeError)rattnamerrVs    r__setitem__zNamedNodeMap.__setitem__.seS!!	$
({7+
(
(
(G}}%)%7%E"!!$'''''
(DJJJeT**
I GHHHDd#####s
%?A'&A'c@	|j|S#t$rYdSwxYwr.)rrrrs  rgetNamedItemzNamedNodeMap.getNamedItem=s6	;t$$			44	s
cD	|j||fS#t$rYdSwxYwr.)rrrrrs   rgetNamedItemNSzNamedNodeMap.getNamedItemNSCs;	=,	!:;;			44	s
c||}|Nt|j|j|j=|j|j|jf=t|drd|_	|StjNr)
rDrOr
rrrrrrrrDrErMrrns   rremoveNamedItemzNamedNodeMap.removeNamedItemIs|d##=D.///AJ'
q~q{;<q.))
&!%H'%%'''rc
|||}|Nt|j|j|j|jf=|j|j=t|drd|_	|StjrI)
rGrOr
rrrrrrrrDrErMrrrrKs    rremoveNamedItemNSzNamedNodeMap.removeNamedItemNSUs~i88=D.///
q~q{;<AJ'q.))
&!%H'%%'''rct|ts>tjt|dt||j|j}|r|	||j|j<||j
|j|jf<|j
|_t|j|SrX)rrrDrErFrGrr(rrdrrrr
rrO)rrVrs   rr>zNamedNodeMap.setNamedItemas$%%	G'--.24jjjj$t***EGG
Gkoodi((	JJLLL!%DI=A
t($.9: .)***
rc,||Sr.)r>rrVs  rsetNamedItemNSzNamedNodeMap.setNamedItemNSns  &&&rcf||}t|j|dSr.)rOrrd)rr;rVs   r__delitem__zNamedNodeMap.__delitem__qs/$%)***




rc*|j|j|jfSr.rrs r__getstate__zNamedNodeMap.__getstate__vs{DM4+===rc0|\|_|_|_dSr.rrstates  r__setstate__zNamedNodeMap.__setstate__ys9>6T]D$6$6$6rr.) rrrrrrrrrr!rr$rr(__len__r,r/r2r4r7r9r<rArDrGrLrOr>rSrUrWr[r
rrrrs8I***
   ((("""$$$$$$,,,,GCCC%%%%%%$$$%%%$$$111
$
$
$
(
(
(
(
(
('''
>>>?????rrlengthz$Number of nodes in the NamedNodeMap.c*eZdZdZdZdZdZdZdS)TypeInfo	namespacerc"||_||_dSr.r`)rrars   rrzTypeInfo.__init__s"			rc|jr d|jjd|jd|jdSd|jjd|jdS)Nr z (from z)>r)ra	__class__rrrs r__repr__zTypeInfo.__repr__s`>	D	D*..*A*A*A4999*....:
:	D!% 7 7 7CCrc|jSr.)rrs rrzTypeInfo._get_name
yrc|jSr.)rars r_get_namespacezTypeInfo._get_namespacerrN)rrrrrrfrrjr
rrr_r_sX#IDDDrr_c&eZdZdZejZdZeZ	dZ
ejejejej
ejejfZeddfdZdZdZdZdZd	Zd
ZdZdZd
ZdZdZeZdZdZ dZ!e!Z"dZ#dZ$dZ%dZ&dZ'ddZ(dZ)dZ*dZ+dZ,dZ-dS) Element)rlrHrrrrrr0rrrQrRNrcd|_|x|_|_||_||_t|_dx|_|_d|_	d|_
dSr.)rHrrrrrr0rQrRrr)rrrrrs     rrzElement.__init__sU'..t}("**2664/


rc4|ji|_i|_dSdSr.)rrrs r_ensure_attributeszElement._ensure_attributess$;DKDMMMrct	|jS#t$r$|jdddcYSwxYwr)rrrrrs rrwzElement._get_localNamesM	2?"	2	2	2<%%c1--b1111	2rc|jSr.rrs r_get_tagNamezElement._get_tagNamerrc|j=t|jD]}|d|_d|_t
|dSr.)rrrrdrr)rattrs  rrdzElement.unlinksd;"T[//1122






Drc^	|jdS	|j|jS#t$rYdSwxYwr)rrr)rr@s  rgetAttributezElement.getAttributesM	;2	;w'--			22	s
,,c`|jdS	|j||fjS#t$rYdSwxYwr)rrrrFs   rgetAttributeNSzElement.getAttributeNSsK= 2	=,	!:;AA			22	s
--c||}|9t|}||_|j|_||dS||jkr||_|jrt
|dSdSdSr.)getAttributeNoderrrlsetAttributeNoderrO)rr@rrus    rsetAttributezElement.setAttributes$$W--<==DDJ!%!3D!!$'''''
dj
 
 DJy
&%%%%%!
 
&
&rcXt|\}}|||}|<t||||}||_|j|_||dS||jkr||_|jrt||j|kr||_||_	dSdSr.)
_nssplitgetAttributeNodeNSrrrlr|rrOrr)rr
qualifiedNamerr	localnamerus       rsetAttributeNSzElement.setAttributeNSs$]33	&&|Y??<
|YGGDDJ!%!3D!!$'''''
"""
9*#D))){f$$$ -


%$rcH|jdS|j|Sr.r')rattrnames  rr{zElement.getAttributeNodes#;4{x(((rcL|jdS|j||fSr.)rr(rFs   rrzElement.getAttributeNodeNS
s*= 4}  ,	!:;;;rc|jd|fvrtjd||j|jd}||||j	|j
|jfd}|||ur||t||||ur|S||ur|SdS)Nzattribute node already owned)
rrDrEInuseAttributeErrrorr(rremoveAttributeNoderrr_set_attribute_node)rruold1old2s    rr|zElement.setAttributeNodesT4L00'++,JKKK!!!{ty$//$$T***}  $"3T^!DdKKD 0 0$$T***D$'''tKtKrc|jtj	|j|}n,#t
$rtjwxYw||dSr.)rrDrErMrrr)rrrus   rremoveAttributezElement.removeAttribute'sz= '%%'''	(;t$DD	(	(	('%%'''	(  &&&&&s	
5)Ac|jtj	|j||f}n,#t$rtjwxYw||dSr.)rrDrErMrr)rrrrus    rremoveAttributeNSzElement.removeAttributeNS0s= '%%'''	(=,	!:;DD	(	(	('%%'''	(  &&&&&s	7)A c$|tj	|j|jn,#t
$rtjwxYwt
|||j|_|Sr.)	rDrErMrrrrOrdrlrRs  rrzElement.removeAttributeNode9s<'%%'''	(K	"""	(	(	('%%'''	(


"/s	5)Ac(	|jdS||jvSNFrrCs  rhasAttributezElement.hasAttributeIs#	
;5t{""rc*|jdS||f|jvSr)rrFs   rhasAttributeNSzElement.hasAttributeNSSs!= 5i(DM99rc>	t||tSr.rrrCs  rgetElementsByTagNamezElement.getElementsByTagNameXs	
/tT8::FFFrc>t|||tSr.rrrFs   rgetElementsByTagNameNSzElement.getElementsByTagNameNS`!1,	8::77	7rc4d|jt|fzS)Nz<DOM Element: %s at %#x>)rr+rs rrfzElement.__repr__ds)T\2d88,DDDrrcD	||dz|jz|}|D]J}|d|zt	|||j|dK|jr|dt|jdkrN|jdjtj
tjfvr$|jd|dddnO|||jD]}||||z|||||d|jd|dS|d	|zdS)
Nrz %s="rrr?rrz</z/>%s)
rr_get_attributesrrrr0rr%rrbrr')rr,r*	addindentr+ra_namerVs        rr'zElement.writexmlgs		VCZ$,.///$$&&jjll		FLLF*+++f
 3444LL?
	(LLDO$$))"+(?0AAA"++FBB????T""" OMMDMM&&*:ItLLLLV$$$LLLdlllDD9:::::LL'''''rc`|t|j|j|Sr.)rorrrrs rrzElement._get_attributess*!!!DK===rc|jrdSdSrrrs r
hasAttributeszElement.hasAttributess;	45rcZ||}||dSr.)r{setIdAttributeNode)rridAttrs   rsetIdAttributezElement.setIdAttributes/&&t,,'''''rc\|||}||dSr.)rr)rrrrs    rsetIdAttributeNSzElement.setIdAttributeNSs1((yAA'''''rc\|||jstjt|tj|js=d|_|xjdz
c_|j	xj
dz
c_
t|dSdS)NTr?)r{rrDrErM_get_containing_entrefNoModificationAllowedErrrrrlrrO)rrs  rrzElement.setIdAttributeNodes>1D!E!E>'%%'''!$''3'22444}	" FM  A%  ..!3..D!!!!!		"	"rrrr).rrrrrrfr%rrr	rrrrbrrrCrrrorwrsrdrwryr}rr{rr|setAttributeNodeNSrrrremoveAttributeNodeNSrrrrrfr'rrrrrr
rrrlrls1I HIJO*9*035.=T(
222 
&
&
&...")))
<<<
&*''''''0###:::
GGG777EEE((((@>>>((((((	"	"	"	"	"rrlrz*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.ct||||j|j<||j|j|jf<||_dSr.)rOrorrrrrr)elementrus  rrrsWG    $GN49<@Gd'89
 DrcdeZdZ	dZdZeZdZdZdZ	dZ
dZdZdZ
dZd	Zd
ZdS)	Childlessr
NcdSr.r
rs rr8zChildless._get_firstChildrrcdSr.r
rs rr<zChildless._get_lastChildrrcPtj|jdz)Nz nodes cannot have childrenrDrErFrrRs  rrJzChildless.appendChild'g))M99;;	;rcdSrr
rs rr1zChildless.hasChildNodesurcPtj|jdzNz nodes do not have childrenrrrSrTs   rrBzChildless.insertBeforerrcPtj|jdzr)rDrErMrr_s  rrIzChildless.removeChilds'g!!M99;;	;rcdSr.r
rs rrgzChildless.normalizesrcPtj|jdzrrrrSr[s   rr\zChildless.replaceChildrr)rrrrr
EmptyNodeListr0rrr8r<rJr1rBrIrgr\r
rrrrsIJJJI;;;;;;;;;


;;;;;rrcveZdZejZdZdZdZdZ	e
ee	ZdZdZ
e
ee
Zd
dZd	S)ProcessingInstructiontargetrcc"||_||_dSr.r)rrrcs   rrzProcessingInstruction.__init__s			rc|jSr.rcrs r_get_nodeValuez$ProcessingInstruction._get_nodeValuerhrc||_dSr.rrs  r_set_nodeValuez$ProcessingInstruction._set_nodeValues
			rc|jSr.rrs r
_get_nodeNamez#ProcessingInstruction._get_nodeNamerrc||_dSr.rrs  r
_set_nodeNamez#ProcessingInstruction._set_nodeNames
rrc	Z||d|jd|jd|dS)Nz<?rd?>)rrrcrr,r*rr+s     rr'zProcessingInstruction.writexmls5t{{{DIIIttLMMMMMrNr)rrrrrr%rrrrrrrrrr'r
rrrrs/H"I
88Ix
}55HNNNNNNrrcneZdZdZdZdZeZdZdZe	eexZ
ZdZdZ
dZd	Zd
ZdZdS)

CharacterData)_datarlrHrRrQcdx|_|_dx|_|_d|_t
|dSr)rlrHrRrQrrrrs rrzCharacterData.__init__s@/33T_266t/


drc*t|jSr.)rrcrs rrzCharacterData._get_length49~~rc|jSr.rrs r	_get_datazCharacterData._get_datarrc||_dSr.rrrcs  r	_set_datazCharacterData._set_data	s



rcz|j}t|dkrd}nd}d|jjd|dd|dS)N
z...rz<DOM z node "rz">)rcrrer)rrc	dotdotdots   rrfzCharacterData.__repr__sOyt99r>>IIIN###T!B$ZZ<	<rc(|dkrtjd|t|jkrtjd|dkrtjd|j|||zSNroffset cannot be negative#offset cannot be beyond end of datazcount cannot be negativerDrEIndexSizeErrrrcroffsetcounts   r
substringDatazCharacterData.substringDatasA::'&&'BCCCS^^##'&&'LMMM199'&&'ABBByu,--rc$|j|z|_dSr.r)rargs  r
appendDatazCharacterData.appendData sIO			rc|dkrtjd|t|jkrtjd|r)|jd|||j|d|_dSdS)Nrrrr)rrrs   r
insertDatazCharacterData.insertData#sA::'&&'BCCCS^^##'&&'LMMM	=	'6'""CC677););=DIII	=	=rc^|dkrtjd|t|jkrtjd|dkrtjd|r)|jd||j||zdz|_dSdSrrrs   r
deleteDatazCharacterData.deleteData,sA::'&&'BCCCS^^##'&&'LMMM199'&&'ABBB	F	'6'*TYve|}}-EEDIII	F	Frcd|dkrtjd|t|jkrtjd|dkrtjd|r,|jd|||j||zd|_dSdSrr)rrrrs    rreplaceDatazCharacterData.replaceData6sA::'&&'BCCCS^^##'&&'LMMM199'&&'ABBB	C	'6'""CC6%<==)A)ACDIII	C	CrN)rrrrrrr\rrrrcrrfrrrrrr
rrrrsWIG x	9555D9<<<...$$$===FFF	C	C	C	C	CrrzLength of the string data.cHeZdZdZejZdZdZdZ	d
dZ
dZdZd	Z
dS)rr
z#textNc|dks|t|jkrtjd|}|j|d|_|j|_|j}|jrF||jj	vr8||j
|n|j|||jd||_|S)Nrzillegal offset value)rrcrDrErrerlrQrHr0rJrB)rrnewTextnexts    r	splitTextzText.splitTextKsA::#di..00'&&'=>>>..""y) $ 2?	<tt'AAA|++G4444,,Wd;;;Igvg&	rrc<t|||j|dSr.)rrcrs     rr'z
Text.writexmlZs'F		44@AAAAArcr|jg}|j}|E|jtjtjfvr#|d|j|j}nn|E|j}|D|jtjtjfvr"||j|j}nn|Dd	|S)Nrr)
rcrRr%rrbrrPrQrejoin)rrhrKs   r_get_wholeTextzText._get_wholeText_s
YK mzdnd.EFFFAF###%m
mzdnd.EFFF   Mmwwqzzrc|j}|j}|A|jtjtjfvr|j}|||}nn|A|j}|s|||A|jtjtjfvr|j}|||}nn|A|r	||_|SdSr.)	rHrRr%rrbrrIrQrc)rcontentrrKrs     rreplaceWholeTextzText.replaceWholeTextqs mzdnd.EFFF(""1%%%
m
	%t$$$mzdnd.EFFF}""1%%%
m	DIK4rc|jrdSt|}|dS|j|}|dS|Sr)rcstrip_get_containing_elementrlrisElementContent)rrrs   r!_get_isWhitespaceInElementContentz&Text._get_isWhitespaceInElementContentsd9??	5&t,,<5!0066<5((***rr)rrrrrrbr%rrrr'rrr
r
rrrrDs~I~HHJ


BBBB
$8
+
+
+
+
+rrisWhitespaceInElementContentzKTrue iff this text node contains only whitespace and is in element content.	wholeTextz.The text of all logically-adjacent text nodes.cX|j}| |jtjkr|S|j}| dSr.)rHr%rrfrVrUs  rrrs8A
-:***H
L-4rcX|j}| |jtjkr|S|j}| dSr.)rHr%rrrs  rrrs8A
-:333H
L-4rc.eZdZejZdZdZddZdS)Commentz#commentcHt|||_dSr.)rrrrs  rrzComment.__init__s!t$$$


rrczd|jvrtd||d|jd|dS)Nz--z%'--' is not allowed in a comment nodez<!--z-->)rcrLrrs     rr'zComment.writexmlsI49DEEE			44@AAAAArNr)	rrrrrr%rrr'r
rrrrsJ HHBBBBBBrrc,eZdZdZejZdZddZdS)CDATASectionr
z#cdata-sectionrc|jddkrtd|d|jzdS)Nz]]>rz$']]>' not allowed in a CDATA sectionz<![CDATA[%s]]>)rcfindrLrrs     rr'zCDATASection.writexmlsJ9>>%  A%%CDDD%	122222rNr)	rrrrrrr%rr'r
rrrrs:I&HH333333rrcbeZdZdZddZdZdZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdS)ReadOnlySequentialNamedNodeMap_seqr
c||_dSr.r)rseqs  rrz'ReadOnlySequentialNamedNodeMap.__init__s
			rc*t|jSr.rrrs rr\z&ReadOnlySequentialNamedNodeMap.__len__rrc*t|jSr.rrs rrz*ReadOnlySequentialNamedNodeMap._get_lengthrrc8|jD]}|j|kr|cSdSr.)rrrJs   rrDz+ReadOnlySequentialNamedNodeMap.getNamedItems8		AzT!!"		rcN|jD]}|j|kr|j|kr|cSdSr.)rrrrNs    rrGz-ReadOnlySequentialNamedNodeMap.getNamedItemNSs@		A~--!+2J2J		rct|tr|j|}n||}|t	||Sr.)rrArGrDr)r
name_or_tuplerVs   rr<z*ReadOnlySequentialNamedNodeMap.__getitem__sPmU++	4&4&
6DD$$]33D<=)))rcP|dkrdS	|j|S#t$rYdSwxYwr7)rrrs  rrz#ReadOnlySequentialNamedNodeMap.itemsD1994	9U##			44	s
%%c@tjdNz"NamedNodeMap instance is read-onlyrDrErrCs  rrLz.ReadOnlySequentialNamedNodeMap.removeNamedItemg..022	2rc@tjdr'r(rFs   rrOz0ReadOnlySequentialNamedNodeMap.removeNamedItemNSr)rc@tjdr'r(rRs  rr>z+ReadOnlySequentialNamedNodeMap.setNamedItemr)rc@tjdr'r(rRs  rrSz-ReadOnlySequentialNamedNodeMap.setNamedItemNSr)rc|jgSr.rrs rrWz+ReadOnlySequentialNamedNodeMap.__getstate__s	{rc |d|_dSr7rrYs  rr[z+ReadOnlySequentialNamedNodeMap.__setstate__s!H			rN)r
)rrrrrr\rrDrGr<rrLrOr>rSrWr[r
rrrrsI

222222222222rrz&Number of entries in the NamedNodeMap.c&eZdZ	dZdZdZdZdS)
IdentifiedpublicIdsystemIdc"||_||_dSr.r1)rr2r3s   r_identified_mixin_initz!Identified._identified_mixin_inits 
 


rc|jSr.)r2rs r
_get_publicIdzIdentified._get_publicId
}rc|jSr.)r3rs r
_get_systemIdzIdentified._get_systemIdr8rN)rrrrr5r7r:r
rrr0r0
sIJ&I!!!rr0cJeZdZejZdZdZdZdZ	dZ
dZdZdZ
ddZdS)DocumentTypeNct|_t|_|rt|\}}||_|j|_dSr.)rentities	notationsrrr)rrrrs    rrzDocumentType.__init__$sJ688
799	" ( 7 7FI!DI	


rc|jSr.)internalSubsetrs r_get_internalSubsetz DocumentType._get_internalSubset,""rc|jetd}|j|_|j|_tjjj}|rg|j_	g|j
_	|j
j	D]X}t|j|j|j
}|j
j	|||||Y|jj	D]}t!|j|j|j
|j}|j|_|j|_|j|_|jj	||||||||||SdSr.)rlr<rrrDrEUserDataHandlerNODE_CLONEDr>rr?Notationr2r3rerEntitynotationNameactualEncodingrrt)rrmclonerrKnotationeentitys        rrnzDocumentType.cloneNode/s^% &&EEJ!YEN/;I
D&(#')$,FFA'
AJ
KKHO(//999--iHEEEE+DDA#AJ
AJ$%N44F,-,<F)&'jFO%&YFNN'..v666--iFCCCC((D%@@@L4rrc
|d||j|jr,||d|jd|d|jdn'|jr ||d|jd|jD|d||j|d|d|zdS)	Nz
<!DOCTYPE z
  PUBLIC ''z  'z
  SYSTEM 'z []r)rrr2r3rArs     rr'zDocumentType.writexmlJs\"""TY=	DLL DD$---t}}}F
G
G
G
G
]	DLLdddDMMMBCCC*LLLL,---LLSXrr)rrrrDOCUMENT_TYPE_NODEr%rrr2r3rArrBrnr'r
rrr<r<sv&HIDHHN"""###6rr<c`eZdZdZejZdZdZdZ	dZ
dZdZdZ
dZdZdZdZd	ZdS)
rHNct||_||_t|_|||dSr.)rrIrr0r5)rrr2r3rLs     rrzEntity.__init__as8
$"**##Hh77777rc|jSr.rJrs r_get_actualEncodingzEntity._get_actualEncodinggrCrc|jSr.rrs r
_get_encodingzEntity._get_encodingjr8rc|jSr.rtrs r_get_versionzEntity._get_versionmrrc@tjd)Nz(cannot append children to an entity noderDrErF)rrSs  rrJzEntity.appendChildpsg))688	8rc@tjd)Nz+cannot insert children below an entity noder_rs   rrBzEntity.insertBeforetsg))9;;	;rc@tjd)Nz*cannot remove children from an entity noder_r_s  rrIzEntity.removeChildxsg))8::	:rc@tjd)Nz)cannot replace children of an entity noder_rs   rr\zEntity.replaceChild|sg))799	9r)rrrrrENTITY_NODEr%rrJrrtrrWrZr]rJrBrIr\r
rrrHrHXsJHINHG888###888;;;:::99999rrHc&eZdZejZdZdZdS)rGNc@||_|||dSr.)rr5)rrr2r3s    rrzNotation.__init__s%
##Hh77777r)rrrrrr%rrr
rrrGrGs0!HI88888rrGc4eZdZgdZdZdZdZdZdZdS)DOMImplementation))core1.0)rh2.0)rhN)rDri)rDrj)rDN)ls-loadz3.0)rkNcL|dkrd}||f|jvSr)lower	_featuresrrs   rrqzDOMImplementation.hasFeatures*b==G

)T^;;rcb|r&|jtjd|}|duo|duo|du}|s!|rtjd|rt
|\}}|dkr%|dkrtjd|r!|stjd|||}|r|	||	||r|x|_|_
||_||_|S)Nz(doctype object owned by another DOM treezElement with no namerDz$http://www.w3.org/XML/1998/namespacezillegal use of 'xml' prefixz(illegal use of prefix without namespaces)
rHrDrEWrongDocumentErr_create_documentInvalidCharacterErrrrcreateElementNSrJrldoctyperp)	rrrrtradd_root_elementrrrs	         rcreateDocumentz DOMImplementation.createDocumentsz	<w)5'**:<<
<##%% , 4!4$1T$9!4$+tO5
	F!1
	F'--.DEEE	% ( 7 7FI#IIIg**+HIII
@l
@g**>@@@)),
FFG
)(((OOG$$$	=9<<G!6!
rc@t|}||_||_|Sr.)r<r2r3)rrr2r3rts     rcreateDocumentTypez$DOMImplementation.createDocumentTypes$}--##rc6||dr|SdSr.)rqr}s  rr~zDOMImplementation.getInterfaces"??7D))	K4rctSr.)Documentrs rrqz"DOMImplementation._create_documentszzrN)	rrrrnrqrvrxr~rqr
rrrgrgsqI<<<
+++ZrrgcJeZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)ElementInforrc||_dSr.rrrCs  rrzElementInfo.__init__s
rctSr.rranames  rrzElementInfo.getAttributeTyperctSr.rrFs   rrzElementInfo.getAttributeTypeNSrrcdSrr
rs rr	zElementInfo.isElementContentrrc	dSrr
rs risEmptyzElementInfo.isEmptys	urc	dSrr
rs  rrzElementInfo.isIds
Eurc	dSrr
rFs   rrzElementInfo.isIdNSs
Jurc|jSr.rrrs rrWzElementInfo.__getstate__rrc||_dSr.rrrYs  rr[zElementInfo.__setstate__s
rN)
rrrrrrrr	rrrrWr[r
rrr}r}sI
rr}c|jtjkr"|jd|_dSt
|r,|jjd|j_dSdSr.)r%rr&	_id_cacheclear_id_search_stackrrlrs rrOrOsw}*** $	d		2$**,,,-1+++22rcleZdZdZejejejejfZ	e
ZejZ
dZdZdZdZdxZZdZdZdZdZdZdZdZdZdZdZdZd	Zd
Z dZ!dZ"d
Z#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5d Z6d!Z7d"Z8d#Z9d$Z:		d(d&Z;d'Z<dS))r{)
_elem_infortrr0rz	#documentNFrcdd|_t|_i|_i|_d|_dSr.)rtrr0rrrrs rrzDocument.__init__%s2"** $rcp|jr|j|jf}n|j}|j|Sr.)rrrrr()rrrs   rrzDocument._get_elem_info.s<	"&(99CC/C""3'''rc|jSr.rVrs rrWzDocument._get_actualEncoding5rCrc|jSr.)rtrs r_get_doctypezDocument._get_doctype8rrc|jSr.)documentURIrs r_get_documentURIzDocument._get_documentURI;src|jSr.rYrs rrZzDocument._get_encoding>r8rc|jSr.)errorHandlerrs r_get_errorHandlerzDocument._get_errorHandlerAs  rc|jSr.)rrs r_get_standalonezDocument._get_standaloneDr5rc|jSr.)strictErrorCheckingrs r_get_strictErrorCheckingz!Document._get_strictErrorCheckingGs''rc|jSr.r\rs rr]zDocument._get_versionJrrc|j|jvr>tjt|dt||j|j||jtj	kr3|
rtjdt||S)Nr>z two document elements disallowed)r%rCrDrErFrGrHrIrrf_get_documentElementrJrRs  rrJzDocument.appendChildMs= 666'--.24jjjj$t***EGG
G?&
O''---=D---((**.'--244
4d+++rc	|j|n,#t$rtjwxYwdx|_|_d|_|j	|urd|_	|Sr.)
r0r^rLrDrErMrQrRrHdocumentElementr_s  rrIzDocument.removeChild]s	(O""8,,,,	(	(	('%%'''	(:>>x7"8++#'D r`cL|jD]}|jtjkr|cSdSr.)r0r%rrfrRs  rrzDocument._get_documentElementis;O		D} 1112		rc|j |jd|_t|dSr.)rtrdrrs rrdzDocument.unlinkns=<#L!!!DLDrc|sdS|jddd}|j|_|j|_|j|_|jD]f}t
|||}|j||jtj
krn|jtjkr||_||_
g|tjjj|||Sr.)rprvrrrtr0rkrer%rr&rRrtrHrrDrErErF)rrmrKrK
childclones     rrnzDocument.cloneNodets	4#224tDD?
		*		*A$Qe44J##J///"d&8888$(??? *
$)J!!$$SW%<%H%)5	2	2	2rc0t}||_|Sr.)rrl)rrs  rcreateDocumentFragmentzDocument.createDocumentFragmentsrc2t|}||_|Sr.)rlrl)rrrMs   r
createElementzDocument.createElementsGrct|tstdt}||_||_|SNznode contents must be a string)rr r?rrcrl)rrcts   rcreateTextNodezDocument.createTextNodes?$$$	><===FFrct|tstdt}||_||_|Sr)rr r?rrcrlrrcrUs   rcreateCDATASectionzDocument.createCDATASections?$$$	><===NNrc2t|}||_|Sr.)rrlrs   r
createCommentzDocument.createCommentsDMMrc4t||}||_|Sr.)rrl)rrrcps    rcreateProcessingInstructionz$Document.createProcessingInstructions!&$//rc@t|}||_d|_|Sr)rrlr)rras   rcreateAttributezDocument.createAttributes KKrcZt|\}}t|||}||_|Sr.)rrlrl)rrrrrrMs      rrszDocument.createElementNSs1$]33	M<88rcjt|\}}t||||}||_d|_|Sr)rrrlr)rrrrrrs      rcreateAttributeNSzDocument.createAttributeNSs:$]33	i@@rc8t||||}||_|Sr.)rHrl)rrr2r3rIrMs      r_create_entityzDocument._create_entitys!48\::rc6t|||}||_|Sr.)rGrl)rrr2r3rKs     r_create_notationzDocument._create_notationsT8X..rc||jvr
|j|S|js	|jsdS|j}||jg}||_n|sdSd}|rx|}|d|jD||}|r|j	
D]}|jrG||j|j
r&||j|j<|j|kr|}F|jsntP||jr'||j|j<|j|kr|}|jsn3|jr*||j|j<|j|kr|}|jdkrnnF|jr?|j	
D]%}|jr||j|j<|j|kr|}&|n|x|S)Nc.g|]}|jtv|Sr
)r%rN).0ris  r
<listcomp>z+Document.getElementById.<locals>.<listcomp>s2IIIE"^/GGG GGGrr?)rrrrrpopextendr0rrrrrrrrrrr)rr+stackresultrVrrus       rgetElementByIdzDocument.getElementByIdsN
>"%%	4#7	4%=)*E$)D!!	4&	99;;DLLIIT_III
J
J
J&&t,,D
*!O2244""D(";;t'8$.II&9=DN4:6#zR//)-%)%9& %49--"59tz2:++%)FF!%!5"!E""59tz2:++%)FF!1Q66!E%
* O2244**D{*59tz2:++%)F!M&	N
rc<t||tSr.rrCs  rrzDocument.getElementsByTagNames.tT8::FFFrc>t|||tSr.rrFs   rrzDocument.getElementsByTagNameNS
rrc8|j||Sr.)rprqrrs   rruzDocument.isSupporteds"--gw???rc|jtjkrtjd|jtjkrtjdt|||S)Nzcannot import document nodesz!cannot import document type nodes)r%rr&rDrENotSupportedErrrRrk)rrVrms   r
importNodezDocument.importNodesb=D...'))*HIII
]d5
5
5'))*MNNN4t,,,rrcg}|r|d|d||d|rdndd|dd|d||jD]}|||||dS)	Nz
encoding="rzstandalone="yesnoz<?xml version="1.0" rdr)rerrr0r')	rr,r*rr+rrdeclarationsrVs	         rr'zDocument.writexmls	: 8X 8 8 8999! O
/Luu O O OPPPLCHH\,B,BLLdLLMMMO	;	;DMM&&)T::::	;	;rc|j|ur*tjd|d|j|jt
jt
jfvrtjd|tkrd|vrT|
dd\}}|dkr4|tjjkrtjdnX|dkrI|tjjkr4|jt
jkrtjdd}|}nd}d}|jt
jkr&|j
}||j}||nd}||_||_||_||_|jt
jkr||_n5||_|,|||r|||S)	Nz3cannot rename nodes from other documents;
expected z,
found z8renameNode() only applies to element and attribute nodesrr?rzillegal use of 'xmlns' prefixz$illegal use of the 'xmlns' attribute)rlrDrErpr%rrfrrrrrrrrrrrrrrrr|r)rrKrrrrris_ids        r
renameNodezDocument.renameNode(s?$&&'***,0DD!//CDD
D
:d/1DEEE'))JLL
L?**d{{$(JJsA$6$6!	''&#'*AAA'..7999goo&#'*AAA*(;;;'..>@@@ 		FI:,,,nG"++A...G %
:***AIIAF"((+++2..q111r)rrrNN)=rrrrrrfrrrRrCrgrpr&r%rrrrHrRrQrJrrrtrrrrrrrWrrrZrrrr]rJrIrrdrnrrrrrrrrsrrrrrrrurr'rr
rrr{r{
s@I*D,L*D,CE'&((N!HHIJJ$((Ok
NHJGLKO%%%(((###   !!!(((,,, 



*





888tGGG777@@@---KO ;;;; 33333rr{rz#Top-level element of this document.c
		|j|rtjjj}ntjjj}|jtj	kr|
|j|j}|j
D]T}||j|j|j||j|j}|j|_U|r0|jD](}t+|||}||)n<|jtjkrH|}|r0|jD](}t+|||}||)n|jtjkr||j}n|jtjkr||j}n}|jtjkr"||j |j}nF|jtj!kr|"|j}n|jtj#kr5|$|j|j}d|_|j|_n|jtj%krtjjj}|j&'|j(|j)|j*}||_|r:g|j+_,g|j-_,|j-j,D]o}	t]|	j|	j)|	j*}
||
_|j-j,/|
ta|	dr|	1||	|
p|j+j,D]}te|j|j)|j*|j3}|j4|_4|j5|_5|j6|_6||_|j+j,/|ta|dr|1|||n/tj7dtq|zta|dr|1||||S)NTrzCannot clone node %s)9rlr{rDrErErF
NODE_IMPORTEDr%rrfrsrrrrrrrrrr0rkrJr@rrbrrcrrrrrrrrrrRrprxrr2r3r>rr?rGrerrrHrIrJrrtrrG)
rVrmnewOwnerDocumentrrKrurrirUrKrLrMrNs
             rrkrkas;$$%566:G+7		G+9	}))) 001B15@@O**,,	)	)D  !2DM4:NNN(():DNKKA.AKK	%
%
%t-=>>!!!$$$$	
$5	5	5 7799	%
%
%t-=>>!!!$$$$	
$.	(	( //	::	
$1	1	1 33DI>>	
$:	:	: <<T[=AYHH	
$+	+	+ ..ty99	
$-	-	- 2243D37=BBj	
$1	1	1G+9	 /BBIt}dm55.	D"$EN#%EO ^(
F
F#AJ
AJGG)9&$++H5551788F--iHEEE]'	
D	
D
AJ
 !00()(8%"#*!"'7$#**62221788D--iFCCC
g%%&<tDzz&IJJJ
t.//=$$Ye<<<Lrcl|dd}t|dkr|Sd|dfS)Nrr?r)rr)rfieldss  rrrs<

 
 a
(
(F
6{{a
fQi  rc||i|}|\}}||||Sr.)getEvent
expandNoder)funcargskwargseventstoktyperootNodes      r_do_pulldom_parsersP
T4
"6
"
"F))GX
h
LLNNNOrc	||sddlm}||Sddlm}t	|j|f||dS)Nrexpatbuilderpulldom)parserbufsize)xml.domrparserr)filerrrrs     rrrsk=
~g~((((((!!$'''###### '2244	4rc|	|ddlm}||Sddlm}t	|j|fd|iS)Nrrrr)rrparseStringrr)stringrrrs    rrrse0
~((((((''///###### !4vi"*F!355	5rc|rTt|trtj|}|D](\}}tj||sdS)tjSr.)rr r_parse_feature_stringr{rprq)featuresfvs   rgetDOMImplementationrsoh$$	>3H==H		DAq*55a;;
tt
""rrr.)6r!rrDrrrrxml.dom.minicompatxml.dom.xmlbuilderrr	rErrfrrNdefpropertyrYrrrrrrobjectr
AttributeListr_rrlrrrrrrrrrrr0r<rHrGrgr}rOr{rkrrrrrr
rr<module>rs"
			JJJJJJJJJJJJ    >>>>>>>> GL5GL>@ttttt37<tttlD,$@AAAAD+$?@@@@D+$HIIII%%%%%t%%%$y8y8y8y8y84y8y8y8vD&$FGGGGD+$MNNNND,$EFFFFa?a?a?a?a?6a?a?a?FL(68888
v(8D$L"L"L"L"L"dL"L"L"\G\<>>>>G[79999	 	 	 &;&;&;&;&;&;&;&;RNNNNNItNNN4ECECECECECItECECECNM8)EFFFFS+S+S+S+S+=S+S+S+jD0.////D+@BBBBBBBBBmBBB	3	3	3	3	34	3	3	3<<<<<V<<<|*H8::::







::::::y$:::x&9&9&9&9&9Z&9&9&9P88888z9d888MMMMM+MMM^(((((&(((T222QQQQQtZQQQf
H'57777OOOd!!!44445555######r