Ë
    oj“Q  ã                   ó„   — d Z ddlmZ ddlmZ dZdZdZdZedz   Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Z G d„ de«      Z G d„ de«      Zy)aÒ  
*S*mall, *U*ncomplicated *X*ML.

This is a very simple implementation of XML/HTML as a network
protocol.  It is not at all clever.  Its main features are that it
does not:

  - support namespaces
  - mung mnemonic entity references
  - validate
  - perform *any* external actions (such as fetching URLs or writing files)
    under *any* circumstances
  - has lots and lots of horrible hacks for supporting broken HTML (as an
    option, they're not on by default).
é    )ÚProtocol)ÚprefixedMethodNamesé   é   z.-_:z;+#/%~c                   ó   — y)zDo nothing.N© )ÚargsÚkws     ú1/usr/lib/python3/dist-packages/twisted/web/sux.pyÚnopr   $   s   � ó    c                  ó€   — g }| D ]  }|j                  |«       Œ |D �ci c]  }|d“Œ }}|j                  «       S c c}w )Nr   )ÚextendÚkeys)r	   ÚlÚxÚds       r   Ú	unionlistr   (   sH   € Ø
€AØò ˆØ	�‰��ðàÖ�!ˆˆA‰Ð€AÐØ�6‰6‹8€Oùò 	s   Ÿ
;c                  ó’   ‡‡— |j                  dt        «      Ši }t        d„ | D «       Ž D ]  Št        ˆˆfd„| D «       «      |‰<   Œ |S )NÚdefaultc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­w©N)r   )Ú.0Úfndicts     r   ú	<genexpr>zzipfndict.<locals>.<genexpr>3   s   è ø€ Ò<¨V˜6Ÿ;™;Ÿ=Ñ<ùs   ‚c              3   óB   •K  — | ]  }|j                  ‰‰«      –— Œ y ­wr   )Úget)r   r   r   Úkeys     €€r   r   zzipfndict.<locals>.<genexpr>4   s   øè ø€ Ò9¨q�q—u‘u˜S '×*Ñ9ùs   ƒ)r   r   r   Útuple)r	   r
   r   r   r   s      @@r   Ú	zipfndictr    0   sK   ù€ Ø�f‰f�Y¤Ó$€GØ
€AÜÑ<°tÔ<Ð=ò :ˆÜÔ9°DÔ9Ó9ˆˆ#Šð:à€Hr   c           	      ó\   — t        | |«      D �ci c]  }|t        | ||z   «      “Œ c}S c c}w r   )r   Úgetattr)ÚclazzÚprefixÚnames      r   ÚprefixedMethodClassDictr&   8   s;   € ô (¨¨vÓ6öàð 	Œg�e˜V d™]Ó+Ñ+òð ùò s   �)c           	      óp   — t        | j                  |«      D �ci c]  }|t        | ||z   «      “Œ c}S c c}w r   )r   Ú	__class__r"   )Úobjr$   r%   s      r   ÚprefixedMethodObjDictr*   ?   s?   € ô (¨¯©°vÓ>öàð 	Œg�c˜6 D™=Ó)Ñ)òð ùò s   ™3c                   ó   — e Zd Zd„ Zdefd„Zy)Ú
ParseErrorc                 ó<   — || _         || _        || _        || _        y r   ©ÚfilenameÚlineÚcolÚmessage)Úselfr/   r0   r1   r2   s        r   Ú__init__zParseError.__init__G   s   € Ø ˆŒØˆŒ	ØˆŒØˆ�r   Úreturnc                 ól   — | j                   › d| j                  › d| j                  › d| j                  › �S )Nú:z: r.   ©r3   s    r   Ú__str__zParseError.__str__M   s/   € Ø—-‘-�  $§)¡) ¨A¨d¯h©h¨Z°r¸$¿,¹,¸ÐHÐHr   N)Ú__name__Ú
__module__Ú__qualname__r4   Ústrr9   r   r   r   r,   r,   F   s   „ òðI˜ô Ir   r,   c                   ó~  — e Zd ZdZdZdZdZdZdZd„ Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d Z%d Z&d!„ Z'd"„ Z(d#„ Z)d$„ Z*d%„ Z+d&„ Z,d'„ Z-d(„ Z.d)„ Z/d*„ Z0d+„ Z1d,„ Z2d-„ Z3d.„ Z4d/„ Z5d0„ Z6d1„ Z7d2„ Z8d3„ Z9d4„ Z:e2Z;e3Z<d5„ Z=d6„ Z>d7„ Z?d8„ Z@d9„ ZAd:„ ZBd;„ ZCy)<Ú	XMLParserNz<xml />r   c                 ó.   — d| _         d| _        g | _        y )Nr   r   )ÚlinenoÚcolnoÚ	encodingsr8   s    r   ÚconnectionMadezXMLParser.connectionMade]   s   € ØˆŒØˆŒ
Øˆ�r   c                 ó2   — | j                   | j                  fS )z;Get the line number and column of the last character parsed)rA   rB   r8   s    r   ÚsaveMarkzXMLParser.saveMarkb   s   € ð —‘˜TŸZ™ZÐ(Ð(r   c                 óR   — t        | j                  f| j                  «       z   |fz   Ž ‚r   )r,   r/   rF   )r3   r2   s     r   Ú_parseErrorzXMLParser._parseErrorg   s&   € Ü˜DŸM™MÐ+¨d¯m©m«oÑ=ÀÀ
ÑJÐLÐLr   c                 ó~   ‡ — t        ‰ j                  dd«      }|€"t        ˆ fd„dD «       Ž x}‰ j                  _        |S )z;Return a dictionary of begin, do, end state function tuplesÚ__stateTableNc              3   ó6   •K  — | ]  }t        ‰|«      –— Œ y ­wr   )r*   )r   r$   r3   s     €r   r   z-XMLParser._buildStateTable.<locals>.<genexpr>r   s    øè ø€ ò àô *¨$°×7ñùs   ƒ)Úbegin_Údo_Úend_)r"   r(   r    Ú_XMLParser__stateTable)r3   Ú
stateTables   ` r   Ú_buildStateTablezXMLParser._buildStateTablej   sJ   ø€ ô
 ˜TŸ^™^¨^¸TÓBˆ
ØÐÜ7@óà";ôð8ð ˆJ˜Ÿ™Ô4ð Ðr   c                 óØ   — d| j                   v sd| j                   v rt        |«      dz  rJ d«       ‚| j                  r| j                  |z   }| j                   D ]  }t        ||«      }Œ |S )NúUTF-16zUCS-2r   z!UTF-16 must come in pairs for now)rC   ÚlenÚ_prependr=   )r3   ÚdataÚencodings      r   Ú_decodezXMLParser._decodey   si   € Ø�t—~‘~Ñ%¨°D·N±NÑ)BÜ˜4“y 1’}ÐIÐ&IÓIÐ$Ø�=Š=Ø—=‘= 4Ñ'ˆDØŸ™ò 	'ˆHÜ�t˜XÓ&‰Dð	'àˆr   c                 ó|   — | j                   ry| j                  dk(  r d| j                  vr| j                  d «       yy)NÚbodydataÚscriptÚsrcÚwaitforendscript)ÚendtagÚtagNameÚtagAttributesÚbegin_bodydatar8   s    r   ÚmaybeBodyDatazXMLParser.maybeBodyData‚   s=   € Ø�;Š;Øð �<‰<˜8Ò#¨°T×5GÑ5GÑ(Gð ×Ñ Ô%Ø%Ør   c                 ó¬  ‡‡— | j                  «       }| j                  sB|j                  d«      r*|dd | _        | j                  j                  d«       |dd  }d| _        | j                  r| j                  |«      }n|j                  d«      }| j                  | j                  cŠŠ| j                  }| j                  }ˆˆfd„}|| _
        ||   \  }}}	 |D ]?  }	|	dk(  r‰d	z  ŠdŠn‰d	z  Š ||	«      }
|
€Œ |
|k7  sŒ& |«        |
}||   \  }}} ||	«       ŒA 	 || _
        ‰‰c| _        | _	        || _        y # || _
        ‰‰c| _        | _	        w xY w)
N)s   ÿþs   þÿr   r   rS   Úbeginzutf-8c                  ó   •— ‰‰ fS r   r   )rB   rA   s   €€r   rF   z(XMLParser.dataReceived.<locals>.saveMark©   s   ø€ Ø˜E�?Ð"r   ú
r   )rQ   ÚstateÚ
startswithrU   rC   ÚappendrX   ÚdecoderA   rB   rF   )r3   rV   rP   ÚcurStateÚ	_saveMarkrF   ÚbeginFnÚdoFnÚendFnÚbyteÚnewStaterB   rA   s              @@r   ÚdataReceivedzXMLParser.dataReceived–   sb  ù€ Ø×*Ñ*Ó,ˆ
Ø�zŠzà�‰Ð9Ô:Ø $ Q q 	�”Ø—‘×%Ñ% hÔ/Ø˜A˜B�x�Ø ˆDŒJØ�>Š>Ø—<‘< Ó%‰Dà—;‘;˜wÓ'ˆDàŸ™ T§Z¡Zˆˆ�Ø—:‘:ˆà—M‘Mˆ	õ	#ð !ˆŒà)¨(Ñ3Ñˆ��uð	4Øò "�à˜4’<Ø˜a‘K�FØ‘Eà˜Q‘J�EÙ ›:�ØÑ'¨H¸Ó,@á”GØ'�HØ+5°hÑ+?Ñ(�G˜T 5Ù˜D•Mñ"ð &ˆDŒMØ&,¨eÐ#ˆDŒK˜œàˆ�
øð &ˆDŒMØ&,¨eÐ#ˆDŒK˜�ús   Ã!D; Ã:D; Ä D; Ä;Ec                 óZ   — | j                  «       } || j                     t           «        y)z0
        End the last state we were in.
        N)rQ   rg   ÚEND_HANDLER)r3   ÚreasonrP   s      r   ÚconnectionLostzXMLParser.connectionLostÄ   s(   € ð ×*Ñ*Ó,ˆ
Ø+ˆ
�4—:‘:Ñœ{Ñ+Õ-r   c                 ó‚   — |j                  «       ry |dk7  r)| j                  r|| _        y| j                  d|›d�«       y)Nú<rZ   zFirst char of document [z
] wasn't <Útagstart)ÚisspaceÚbeExtremelyLenientÚ_leadingBodyDatarH   ©r3   rp   s     r   Údo_beginzXMLParser.do_beginÍ   sD   € Ø�<‰<Œ>ØØ�3Š;Ø×&Ò&Ø(,�Ô%Ø!Ø×ÑÐ7¸°x¸zÐJÔKØr   c                 ó   — d| _         y ©NÚ )Ú
commentbufr}   s     r   Úbegin_commentzXMLParser.begin_comment×   s	   € Øˆ�r   c                 ó¢   — | xj                   |z  c_         | j                   j                  d«      r| j                  | j                   d d «       yy )Nz-->éýÿÿÿrZ   )r‚   ÚendswithÚ
gotCommentr}   s     r   Ú
do_commentzXMLParser.do_commentÚ   sA   € Ø�Š˜4Ñ�Ø�?‰?×#Ñ# EÔ*Ø�O‰O˜DŸO™O¨C¨RÐ0Ô1Øð +r   c                 ó<   — d| _         i | _        d| _        d| _        y ©Nr�   r   )r_   r`   Útermtagr^   r}   s     r   Úbegin_tagstartzXMLParser.begin_tagstartà   s   € ØˆŒØˆÔØˆŒØˆ�r   c                 ó:  — |j                  «       s|t        v r&| xj                  |z  c_        | j                  dk(  ryy |j                  «       r,| j                  r| j                  ryy| j                  d«       y |dk(  rg| j                  r| j                  | j                  «       y| j                  | j                  i «       | j                   xr dxs | j                  «       S |dk(  r| j                  ry	d
| _        y |dv rH| j                  r| j                  s/| j                  d«       y | xj                  |z  c_        d
| _
        y y |dk(  r"| j                  dk(  ry| j                  d«       y | j                  rd| _        y| j                  d|z  «       y )Nz!--ÚcommentÚ	waitforgtÚattrszWhitespace before tag-nameú>rZ   ú/Ú
afterslashr   ú!?zInvalid character in tag-nameú[ú!ÚexpectcdatazInvalid '[' in tag-namerx   ÚunentityzInvalid tag character: %r)ÚisalnumÚ
identCharsr_   rz   r^   rH   Ú	gotTagEndÚgotTagStartr{   rb   r‹   rZ   r}   s     r   Údo_tagstartzXMLParser.do_tagstartæ   sc  € Ø�<‰<Œ>˜T¤ZÑ/Ø�LŠL˜DÑ �LØ�|‰|˜uÒ$Ø ð %à�\‰\Œ^Ø�|Š|Ø—;’;ð 'Øà× Ñ Ð!=Õ>Ø�SŠ[Ø�{Š{Ø—‘˜tŸ|™|Ô,Ø!à× Ñ  §¡¨rÔ2à×0Ñ0Ð0Ò@°jÒXÀD×DVÑDVÓDXðð �SŠ[Ø�|Š|Ø#à�•Ø�T‰\Ø�|Š|Ø×.Ò.Ø×$Ñ$Ð%DÕEà—’ Ñ$•Ø �•ð	 /ð
 �SŠ[Ø�|‰|˜sÒ"Ø$à× Ñ Ð!:Õ;à×&Ò&Ø #�”Ø!Ø×ÑÐ8¸4Ñ?Õ@r   c                 ó.   — | xj                   |z  c_         y r   ©rZ   r}   s     r   Úbegin_unentityzXMLParser.begin_unentity  s   € Ø�Š˜ÑŽr   c                 ó.   — | xj                   |z  c_         y)NrZ   rŸ   r}   s     r   Údo_unentityzXMLParser.do_unentity  s   € Ø�Š˜Ñ�Ør   c                 ó:   — | j                  | j                  «       y r   ©ÚgotTextrZ   r8   s    r   Úend_unentityzXMLParser.end_unentity  s   € Ø�‰�T—]‘]Õ#r   c                 ó   — || _         y r   )Úcdatabufr}   s     r   Úbegin_expectcdatazXMLParser.begin_expectcdata  s	   € Øˆ�r   c                 ó  — | xj                   |z  c_         | j                   }d}t        |«      t        |«      kD  r0|j                  |«      ry | j                  ry| j	                  d«       ||k(  rd| _         y| j	                  d«       y )Nz[CDATA[r�   zMal-formed CDATA headerr�   Úcdata)r¨   rT   rh   r{   rH   )r3   rp   ÚcdbÚcds       r   Údo_expectcdatazXMLParser.do_expectcdata!  sz   € Ø�Š˜Ñ�Ø�m‰mˆØˆÜˆr‹7”S˜“XÒØ�}‰}˜SÔ!ØØ×(Ò(ð
 #à× Ñ Ð!:Ô;Ø�Š9ØˆDŒMØØ×ÑÐ2Õ3r   c                 óŽ   — | xj                   |z  c_         | j                   j                  d«      r| j                   d d | _         yy )Nz]]>r…   rZ   )r¨   r†   r}   s     r   Údo_cdatazXMLParser.do_cdata5  s<   € Ø�Š˜Ñ�Ø�=‰=×!Ñ! %Ô(Ø ŸM™M¨#¨2Ð.ˆDŒMØð )r   c                 óH   — | j                  | j                  «       d| _        y r€   )ÚgotCDatar¨   r8   s    r   Ú	end_cdatazXMLParser.end_cdata;  s   € Ø�‰�d—m‘mÔ$Øˆ�r   c                 ó†  — |j                  «       s|t        v r#| j                  dk(  ry| j                  d   dv ryy|j                  «       ry |dk(  rI| j	                  | j                  | j
                  «       | j                   xr dxs | j                  «       S |d	k(  ry
| j                  ry | j                  d|z  «       y )Nú!DOCTYPEÚdoctyper   r”   r�   Úattrnamer‘   rZ   r’   r“   zUnexpected character: %r)	r™   rš   r_   rz   rœ   r`   r{   rb   rH   r}   s     r   Údo_attrszXMLParser.do_attrs?  s²   € Ø�<‰<Œ>˜T¤ZÑ/à�|‰|˜zÒ)Ø Ø�|‰|˜A‰ $Ñ&Ø"ØØ�\‰\Œ^ØØ�SŠ[Ø×Ñ˜TŸ\™\¨4×+=Ñ+=Ô>Ø×/Ñ/Ð/Ò?°ZÒWÀ4×CUÑCUÓCWÐWØ�SŠ[ØØ×$Ò$ð Ø×ÑÐ3°dÑ:Õ;r   c                 ó   — || _         y r   ©r¶   r}   s     r   Úbegin_doctypezXMLParser.begin_doctypeT  ó	   € Øˆ�r   c                 ó:   — |dk(  ry| xj                   |z  c_         y ©Nr‘   rZ   rº   r}   s     r   Ú
do_doctypezXMLParser.do_doctypeW  s   € Ø�3Š;ØØ�Š˜ÑŽr   c                 óH   — | j                  | j                  «       d | _        y r   )Ú
gotDoctyper¶   r8   s    r   Úend_doctypezXMLParser.end_doctype\  s   € Ø�‰˜Ÿ™Ô%Øˆ�r   c                 ó`   — |dk(  r)| j                   s| j                  sy| j                  «       S y r¾   )r^   r{   rb   r}   s     r   Údo_waitforgtzXMLParser.do_waitforgt`  s/   € Ø�3Š;Ø�{Š{ $×"9Ò"9Ø!Ø×%Ñ%Ó'Ð'ð r   c                 ó    — || _         d| _        y ©Nr   )r·   Ú_attrname_termtagr}   s     r   Úbegin_attrnamezXMLParser.begin_attrnamef  s   € ØˆŒØ!"ˆÕr   c                 ó„  — |j                  «       s|t        v r| xj                  |z  c_        y |dk(  ry|j                  «       ry| j                  rÎ|dv ry|t
        v s|j                  «       r| xj                  |z  c_        y |dk(  rd| _        y |dk(  rˆd	| _        | j                  | j                  | j                  <   | j                  | j                  | j                  «       | j                  r| j                  | j                  «       y
| j                  «       S y | j                  d| j                  ›d|›�«       y )Nú=ÚbeforeattrvalÚbeforeeqú"'Úattrvalr’   r   r‘   ÚTruerZ   zInvalid attribute name: ú )r™   rš   r·   rz   r{   ÚlenientIdentCharsrÇ   rÎ   r`   rœ   r_   r›   rb   rH   r}   s     r   Údo_attrnamezXMLParser.do_attrnamej  s  € Ø�<‰<Œ>˜T¤ZÑ/Ø�MŠM˜TÑ!�MØØ�SŠ[Ø"Ø�\‰\Œ^ØØ×$Ò$Ø�u‰}Ø ØÔ(Ñ(¨D¯L©L¬NØ—’ Ñ%•ØØ�sŠ{Ø)*�Ô&ØØ�sŠ{Ø%�”Ø48·L±L�×"Ñ" 4§=¡=Ñ1Ø× Ñ  §¡¨t×/AÑ/AÔBØ×)Ò)Ø—N‘N 4§<¡<Ô0Ø%Ø×)Ñ)Ó+Ð+ð Ø×ÑÐ3°D·M±MÐ3DÀAÀdÀXÐNÕOr   c                 óx  — |dv ry|j                  «       ry | j                  r„|t        v s|j                  «       ry|dk(  r`d| _        | j                  | j
                  | j                  <   | j                  | j                  | j
                  «       | j                  «       S |dk(  ry | j                  d|z  «       y )NrÍ   rÎ   Ú	messyattrr‘   rÏ   ú\zEInvalid initial attribute value: %r; Attribute values must be quoted.)rz   r{   rÑ   r™   rÎ   r`   r·   rœ   r_   rb   rH   r}   s     r   Údo_beforeattrvalzXMLParser.do_beforeattrvalˆ  s©   € Ø�5‰=ØØ�\‰\Œ^ØØ×$Ò$ØÔ(Ñ(¨D¯L©L¬NØ"Ø�sŠ{Ø%�”Ø48·L±L�×"Ñ" 4§=¡=Ñ1Ø× Ñ  §¡¨t×/AÑ/AÔBØ×)Ñ)Ó+Ð+Ø�tŠ|ð Ø×ÑØSØñõ	
r   r�   c                 ó   — d| _         y rÆ   )Ú_beforeeq_termtagr}   s     r   Úbegin_beforeeqzXMLParser.begin_beforeeq¡  s
   € Ø!"ˆÕr   c                 ó&  — |dk(  ry|j                  «       ry | j                  rÝ|j                  «       s|t        v r+d| _        | j                  | j
                  | j                  <   y|dk(  rˆd| _        | j                  | j
                  | j                  <   | j                  | j                  | j
                  «       | j                  r| j                  | j                  «       y| j                  «       S |dk(  rd| _	        y | j                  d	«       y )
NrÊ   rË   rÏ   r·   r‘   rZ   r’   r   zInvalid attribute)rz   r{   r™   rš   rÎ   r`   r·   rœ   r_   rØ   r›   rb   rH   r}   s     r   Údo_beforeeqzXMLParser.do_beforeeq¤  sß   € Ø�3Š;Ø"Ø�\‰\Œ^ØØ×$Ò$Ø�|‰|Œ~ ¬Ñ!3Ø%�”Ø48·L±L�×"Ñ" 4§=¡=Ñ1Ø!Ø˜’Ø%�”Ø48·L±L�×"Ñ" 4§=¡=Ñ1Ø× Ñ  §¡¨t×/AÑ/AÔBØ×)Ò)Ø—N‘N 4§<¡<Ô0Ø%Ø×)Ñ)Ó+Ð+Ø˜’Ø)*�Ô&ØØ×ÑÐ,Õ-r   c                 ó    — || _         d| _        y r€   ©Ú	quotetyperÎ   r}   s     r   Úbegin_attrvalzXMLParser.begin_attrval»  s   € ØˆŒØˆ�r   c                 óN   — || j                   k(  ry| xj                  |z  c_        y )Nr�   rÝ   r}   s     r   Ú
do_attrvalzXMLParser.do_attrval¿  s   € Ø�4—>‘>Ò!ØØ�Š˜ÑŽr   c                 óf   — | j                   | j                  | j                  <   dx| _        | _         y r€   ©rÎ   r`   r·   r8   s    r   Úend_attrvalzXMLParser.end_attrvalÄ  s(   € Ø,0¯L©Lˆ×Ñ˜4Ÿ=™=Ñ)Ø')Ð)ˆŒ˜�r   c                 ó   — || _         y r   )rÎ   r}   s     r   Úbegin_messyattrzXMLParser.begin_messyattrÈ  r¼   r   c                 ó®  — |j                  «       ry|dk(  rªd}| j                  j                  d«      rd}| j                  d d | _        | j                  | j                  | j                  <   | j                  | j                  | j                  «       |r| j                  | j                  «       y| j                  «       S | xj                  |z  c_        y )Nr�   r‘   r   r’   r   éÿÿÿÿrZ   )	rz   rÎ   r†   r`   r·   rœ   r_   r›   rb   )r3   rp   ÚendTags      r   Údo_messyattrzXMLParser.do_messyattrË  s¨   € Ø�<‰<Œ>ØØ�SŠ[ØˆFØ�|‰|×$Ñ$ SÔ)Ø�Ø#Ÿ|™|¨C¨RÐ0�”Ø04·±ˆD×Ñ˜tŸ}™}Ñ-Ø×Ñ˜TŸ\™\¨4×+=Ñ+=Ô>ÙØ—‘˜tŸ|™|Ô,Ø!Ø×%Ñ%Ó'Ð'à�LŠL˜DÑ ŽLr   c                 ód   — | j                   r$| j                   | j                  | j                  <   y y r   rã   r8   s    r   Úend_messyattrzXMLParser.end_messyattrÜ  s&   € Ø�<Š<Ø04·±ˆD×Ñ˜tŸ}™}Ò-ð r   c                 ó   — d| _         y rÆ   )Ú_after_slash_closedr}   s     r   Úbegin_afterslashzXMLParser.begin_afterslashà  s
   € Ø#$ˆÕ r   c                 ó  — | j                   r| j                  d«       |dk7  r| j                  ry | j                  d«       d| _         | j                  | j                  | j
                  «       | j                  | j                  «       y)Nz
Mal-formedr‘   zNo data allowed after '/'r   rZ   )rî   rH   r{   rœ   r_   r`   r›   r}   s     r   Údo_afterslashzXMLParser.do_afterslashã  sr   € à×#Ò#Ø×Ñ˜\Ô*Ø�3Š;Ø×&Ò&Øà× Ñ Ð!<Ô=Ø#$ˆÔ Ø×Ñ˜Ÿ™ t×'9Ñ'9Ô:Ø�‰�t—|‘|Ô$ð r   c                 óR   — | j                   r| j                   | _        | ` y d| _        y r€   )r|   rZ   r}   s     r   ra   zXMLParser.begin_bodydataó  s%   € Ø× Ò Ø ×1Ñ1ˆDŒMØÑ%àˆD�Mr   c                 óF   — |dk(  ry|dk(  ry| xj                   |z  c_         y )Nrx   ry   ú&Ú	entityrefrŸ   r}   s     r   Údo_bodydatazXMLParser.do_bodydataú  s$   € Ø�3Š;ØØ�3Š;ØØ�Š˜ÑŽr   c                 óH   — | j                  | j                  «       d| _        y r€   r¤   r8   s    r   Úend_bodydatazXMLParser.end_bodydata  s   € Ø�‰�T—]‘]Ô#Øˆ�r   c                 ó:   — |dk(  ry| xj                   |z  c_         y )Nrx   ÚwaitscriptendtagrŸ   r}   s     r   Údo_waitforendscriptzXMLParser.do_waitforendscript  s   € Ø�3Š;Ø%Ø�Š˜ÑŽr   c                 ó.   — d| _         d| _        d| _        y rŠ   )Útemptagdatar_   r^   r}   s     r   Úbegin_waitscriptendtagz XMLParser.begin_waitscriptendtag
  s   € ØˆÔØˆŒØˆ�r   c                 óp  — | xj                   |z  c_         |dk(  rd| _        y | j                  s#| xj                  d| j                   z   z  c_        y|j                  «       s|t        v rš| xj
                  |z  c_        dj                  | j
                  «      s#| xj                  d| j                   z   z  c_        y| j
                  dk(  r7| j                  | j                  «       | j                  | j
                  «       yy |j                  «       ry| xj                  d| j                   z   z  c_        y)Nr’   Trx   r]   r[   r�   rú   )
rý   r^   rZ   r™   rš   r_   rh   r¥   r›   rz   r}   s     r   Údo_waitscriptendtagzXMLParser.do_waitscriptendtag  sô   € ð 	×Ò˜DÑ Õð �3Š;ØˆD�KØ—’Ø�MŠM˜S 4×#3Ñ#3Ñ3Ñ3�MØ%à�\‰\Œ^˜t¤zÑ1Ø�LŠL˜DÑ �LØ×&Ñ& t§|¡|Ô4Ø—’  t×'7Ñ'7Ñ!7Ñ7•Ø)Ø—‘ Ò)Ø—‘˜TŸ]™]Ô+Ø—‘˜tŸ|™|Ô,Ø"ð *ð
 �\‰\Œ^Ø%ð �MŠM˜S 4×#3Ñ#3Ñ3Ñ3�MØ%r   c                 ó    — d| _         d| _        y r€   )ÚerefbufÚ	erefextrar}   s     r   Úbegin_entityrefzXMLParser.begin_entityref6  s   € ØˆŒØˆ�r   c                 ó>  — |j                  «       s|dk(  rm| j                  rO| j                  r | j                  dk7  r| j                  | _        d| _        |dk(  ry| xj                  |z  c_        y| j	                  d«       y |dk7  r| xj                  |z  c_        y y)Nrx   Úampry   ÚspacebodydatazBad entity referenceú;rZ   )rz   r{   r  r  rH   r}   s     r   Údo_entityrefzXMLParser.do_entityref:  s€   € Ø�<‰<Œ>˜T Sš[Ø×&Ò&à—<’< D§L¡L°EÒ$9Ø%)§\¡\�D”NØ$�”Ø˜3’;Ø%à—N’N dÑ*•NØ*Ø×ÑÐ3Õ4Ø�SŠ[Ø�LŠL˜DÑ ŽLàr   c                 ó:   — | j                  | j                  «       y r   )ÚgotEntityReferencer  r8   s    r   Úend_entityrefzXMLParser.end_entityrefL  s   € Ø×Ñ §¡Õ-r   c                 ó4   — | j                   | _        d | _         y r   )r  rZ   r}   s     r   Úbegin_spacebodydatazXMLParser.begin_spacebodydataQ  s   € ØŸ™ˆŒØˆ�r   c                 ó   — t        d||«       y)zCEncountered an opening tag.

        Default behaviour is to print.rd   N©Úprint)r3   r%   Ú
attributess      r   rœ   zXMLParser.gotTagStartZ  s   € ô 	ˆg�t˜ZÕ(r   c                 ó.   — t        dt        |«      «       y)z8Encountered text

        Default behaviour is to print.ztext:N©r  Úrepr)r3   rV   s     r   r¥   zXMLParser.gotText`  s   € ô 	ˆg”t˜D“zÕ"r   c                 ó    — t        d|z  «       y)zMEncountered mnemonic entity reference

        Default behaviour is to print.zentityRef: &%s;Nr  )r3   Ú	entityRefs     r   r  zXMLParser.gotEntityReferencef  s   € ô 	Ð )Ñ+Õ,r   c                  ó   — y)z=Encountered comment.

        Default behaviour is to ignore.Nr   )r3   rŽ   s     r   r‡   zXMLParser.gotCommentl  s   € ð 	r   c                 ó&   — | j                  |«       y)zJEncountered CDATA

        Default behaviour is to call the gotText methodN)r¥   )r3   r«   s     r   r²   zXMLParser.gotCDatar  s   € ð 	�‰�UÕr   c                 ó.   — t        dt        |«      «       y)z—Encountered DOCTYPE

        This is really grotty: it basically just gives you everything between
        '<!DOCTYPE' and '>' as an argument.
        rµ   Nr  )r3   r¶   s     r   rÁ   zXMLParser.gotDoctypex  s   € ô 	ˆjœ$˜w›-Õ(r   c                 ó   — t        d|«       y)z?Encountered closing tag

        Default behaviour is to print.ÚendNr  )r3   r%   s     r   r›   zXMLParser.gotTagEnd€  s   € ô 	ˆe�TÕr   )Dr:   r;   r<   rg   rC   r/   r{   rU   r|   rD   rF   rH   rQ   rX   rb   rr   rv   r~   rƒ   rˆ   rŒ   r�   r    r¢   r¦   r©   r®   r°   r³   r¸   r»   r¿   rÂ   rÄ   rÈ   rÒ   rÖ   r·   rÎ   rÙ   rÛ   rß   rá   rä   ræ   rê   rì   rï   rñ   ra   rö   rø   rû   rþ   r   r  r	  r  r  Údo_spacebodydataÚend_spacebodydatarœ   r¥   r  r‡   r²   rÁ   r›   r   r   r   r?   r?   Q   sW  „ Ø€EØ€IØ€HØÐØ€Hð
 Ðòò
)ò
Mòòòò(,ò\.òòòòò,Aò\òò$òò4ò(òò<ò*òò
ò(ò#òPò<
ð, €HØ€Gò#ò.ò.òò
*òò!ò"=ò%òò òòòò
ò
%&òNòò$.ò
ð #ÐØ$Ðò)ò#ò-òòò)ór   r?   N)Ú__doc__Útwisted.internet.protocolr   Útwisted.python.reflectr   ÚBEGIN_HANDLERÚ
DO_HANDLERrt   rš   rÑ   r   r   r    r&   r*   Ú	Exceptionr,   r?   r   r   r   ú<module>r%     sh   ðñõ" /Ý 6ð €Ø€
Ø€à€
Ø Ñ)Ð òòòòòôI�ô Iôs�õ sr   