§
    ’dîirQ  ã                   óV  — d Z ddlZddlZddlmZ dgZ ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z	 ej        d¦  «        Z
 ej        d	¦  «        Z ej        d
¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        dej        ¦  «        Z ej        dej        ¦  «        Z ej        dej        ¦  «        Z ej        d¦  «        Z ej        d¦  «        Z G d„ dej        ¦  «        ZdS )zA parser for HTML and XHTML.é    N)ÚunescapeÚ
HTMLParserz[&<]z
&[a-zA-Z#]z%&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]z)&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]z	<[a-zA-Z]z
</[a-zA-Z]ú>z--!?>z-?>z0([a-zA-Z][^\t\n\r\f />]*)(?:[\t\n\r\f ]|/(?!>))*a{  
  (
    (?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]*  # attribute name
   )
  ([\t\n\r\f ]*=[\t\n\r\f ]*        # value indicator
    ('[^']*'                        # LITA-enclosed value
    |"[^"]*"                        # LIT-enclosed value
    |(?!['"])[^>\t\n\r\f ]*         # bare value
    )
   )?
  (?:[\t\n\r\f ]|/(?!>))*           # possibly followed by a space
a  
  [a-zA-Z][^\t\n\r\f />]*           # tag name
  [\t\n\r\f /]*                     # optional whitespace before attribute name
  (?:(?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]*  # attribute name
    (?:[\t\n\r\f ]*=[\t\n\r\f ]*    # value indicator
      (?:'[^']*'                    # LITA-enclosed value
        |"[^"]*"                    # LIT-enclosed value
        |(?!['"])[^>\t\n\r\f ]*     # bare value
       )
     )?
    [\t\n\r\f /]*                   # possibly followed by a space
   )*
   >?
aF  
  <[a-zA-Z][^\t\n\r\f />\x00]*       # tag name
  (?:[\s/]*                          # optional whitespace before attribute name
    (?:(?<=['"\s/])[^\s/>][^\s/=>]*  # attribute name
      (?:\s*=+\s*                    # value indicator
        (?:'[^']*'                   # LITA-enclosed value
          |"[^"]*"                   # LIT-enclosed value
          |(?!['"])[^>\s]*           # bare value
         )
        \s*                          # possibly followed by a space
       )?(?:\s|/(?!>))*
     )*
   )?
  \s*                                # trailing whitespace
z#</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>c                   óÎ   — e Zd ZdZdZdZdddœd„Zd„ Zd	„ Zd
„ Z	dZ
d„ Zddœd„Zd„ Zd$d„Zd„ Zd„ Zd$d„Zd%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S )&r   aE  Find tags and other markup and call handler functions.

    Usage:
        p = HTMLParser()
        p.feed(data)
        ...
        p.close()

    Start tags are handled by calling self.handle_starttag() or
    self.handle_startendtag(); end tags by self.handle_endtag().  The
    data between tags is passed from the parser to the derived class
    by calling self.handle_data() with the data as argument (the data
    may be split up in arbitrary chunks).  If convert_charrefs is
    True the character references are converted automatically to the
    corresponding Unicode character (and self.handle_data() is no
    longer split in chunks), otherwise they are passed by calling
    self.handle_entityref() or self.handle_charref() with the string
    containing respectively the named or numeric reference as the
    argument.
    )ÚscriptÚstyleÚxmpÚiframeÚnoembedÚnoframes)ÚtextareaÚtitleTF)Úconvert_charrefsÚ	scriptingc                óJ   — || _         || _        |                      ¦   «          dS )az  Initialize and reset this instance.

        If convert_charrefs is true (the default), all character references
        are automatically converted to the corresponding Unicode characters.

        If *scripting* is false (the default), the content of the
        ``noscript`` element is parsed normally; if it's true,
        it's returned as is without being parsed.
        N)r   r   Úreset)Úselfr   r   s      ú`/home/div/.local/share/uv/python/cpython-3.11.15-linux-aarch64-gnu/lib/python3.11/html/parser.pyÚ__init__zHTMLParser.__init__v   s$   € ð !1ˆÔØ"ˆŒØ�
Š
‰Œˆˆˆó    c                 ó¢   — d| _         d| _        t          | _        d| _        d| _        d| _        t          j         	                    | ¦  «         dS )z1Reset this instance.  Loses all unprocessed data.Ú z???NT)
ÚrawdataÚlasttagÚinteresting_normalÚinterestingÚ
cdata_elemÚ_support_cdataÚ
_escapableÚ_markupbaseÚ
ParserBaser   ©r   s    r   r   zHTMLParser.reset„   sK   € àˆŒØˆŒÝ-ˆÔØˆŒØ"ˆÔØˆŒÝÔ×$Ò$ TÑ*Ô*Ð*Ð*Ð*r   c                 óN   — | j         |z   | _         |                      d¦  «         dS )z‘Feed data to the parser.

        Call this as often as you want, with as little or as much text
        as you want (may include '\n').
        r   N)r   Úgoahead©r   Údatas     r   ÚfeedzHTMLParser.feedŽ   s%   € ð ”| dÑ*ˆŒØ�Š�Q‰Œˆˆˆr   c                 ó0   — |                       d¦  «         dS )zHandle any buffered data.é   N)r$   r"   s    r   ÚclosezHTMLParser.close—   s   € à�Š�Q‰Œˆˆˆr   Nc                 ó   — | j         S )z)Return full source of start tag: '<...>'.)Ú_HTMLParser__starttag_textr"   s    r   Úget_starttag_textzHTMLParser.get_starttag_text�   s   € àÔ#Ð#r   ©Ú	escapablec                óŒ  — |                      ¦   «         | _        || _        | j        dk    rt          j        d¦  «        | _        d S |rB| j        s;t          j        d| j        z  t          j        t          j        z  ¦  «        | _        d S t          j        d| j        z  t          j        t          j        z  ¦  «        | _        d S )NÚ	plaintextz\Zz&|</%s(?=[\t\n\r\f />])z</%s(?=[\t\n\r\f />]))	Úlowerr   r   ÚreÚcompiler   r   Ú
IGNORECASEÚASCII)r   Úelemr/   s      r   Úset_cdata_modezHTMLParser.set_cdata_mode¡   s·   € ØŸ*š*™,œ,ˆŒØ#ˆŒØŒ?˜kÒ)Ð)Ý!œz¨%Ñ0Ô0ˆDÔÐÐØð 	B˜tÔ4ð 	BÝ!œzÐ*DÀtÄÑ*VÝ*,¬-½¼Ñ*@ñ Bô  BˆDÔÐÐõ  "œzÐ*BÀTÄ_Ñ*TÝ*,¬-½¼Ñ*@ñ Bô  BˆDÔÐÐr   c                 ó:   — t           | _        d | _        d| _        d S )NT)r   r   r   r   r"   s    r   Úclear_cdata_modezHTMLParser.clear_cdata_mode­   s   € Ý-ˆÔØˆŒØˆŒˆˆr   c                 ó   — || _         dS )a  Enable or disable support of the CDATA sections.
        If enabled, "<[CDATA[" starts a CDATA section which ends with "]]>".
        If disabled, "<[CDATA[" starts a bogus comments which ends with ">".

        This method is not called by default. Its purpose is to be called
        in custom handle_starttag() and handle_endtag() methods, with
        value that depends on the adjusted current node.
        See https://html.spec.whatwg.org/multipage/parsing.html#markup-declaration-open-state
        for details.
        N)r   )r   Úflags     r   Ú_set_support_cdatazHTMLParser._set_support_cdata²   s   € ð #ˆÔÐÐr   c                 óð  — | j         }d}t          |¦  «        }||k     �rS| j        r}| j        sv|                     d|¦  «        }|dk     rY|                     dt          ||dz
  ¦  «        ¦  «        }|dk    r*t          j        d¦  «         	                    ||¦  «        s�nÒ|}n=| j
         	                    ||¦  «        }|r|                     ¦   «         }n| j        r�n”|}||k     rV| j        r2| j        r+|                      t          |||…         ¦  «        ¦  «         n|                      |||…         ¦  «         |                      ||¦  «        }||k    r�n|j        } |d|¦  «        �rÐt"                               ||¦  «        r|                      |¦  «        }	n° |d|¦  «        r|                      |¦  «        }	nŽ |d|¦  «        r|                      |¦  «        }	nl |d|¦  «        r|                      |¦  «        }	nJ |d	|¦  «        r|                      |¦  «        }	n(|d
z   |k     s|r|                      d¦  «         |d
z   }	n�n#|	dk     �rÐ|s�nt"                               ||¦  «        r�n­ |d|¦  «        r_|dz   |k    r|                      d¦  «         �n�t0                               ||¦  «        r�nd|                      ||dz   d …         ¦  «         �nB |d|¦  «        rU|}dD ]/}
|                     |
|dz   ¦  «        r|t          |
¦  «        z  } nŒ0|                      ||dz   |…         ¦  «         ná |d|¦  «        r(| j        r!|                      ||dz   d …         ¦  «         n­|||dz   …                              ¦   «         dk    r!|                      ||dz   d …         ¦  «         ni |d	|¦  «        r!|                      ||dz   d …         ¦  «         n< |d|¦  «        r!|                      ||dz   d …         ¦  «         ntA          d¦  «        ‚|}	|                      ||	¦  «        }�n- |d|¦  «        rÕtB                               ||¦  «        }|rq| "                    ¦   «         dd…         }|  #                    |¦  «         | $                    ¦   «         }	 |d|	d
z
  ¦  «        s|	d
z
  }	|                      ||	¦  «        }�ŒÀd||d …         v r9|                      |||dz   …         ¦  «         |                      ||dz   ¦  «        }�nS |d|¦  «        �r5tJ                               ||¦  «        }|rj| "                    d
¦  «        }|  &                    |¦  «         | $                    ¦   «         }	 |d|	d
z
  ¦  «        s|	d
z
  }	|                      ||	¦  «        }�Œ›tN                               ||¦  «        }|rX|rU| "                    ¦   «         ||d …         k    r5| $                    ¦   «         }	|	|k    r|}	|                      ||d
z   ¦  «        }nJ|d
z   |k     r/|                      d¦  «         |                      ||d
z   ¦  «        }nnJ d¦   «         ‚||k     �°S|rr||k     rl| j        r2| j        r+|                      t          |||…         ¦  «        ¦  «         n|                      |||…         ¦  «         |                      ||¦  «        }||d …         | _         d S )Nr   ú<ú&é"   z[\t\n\r\f ;]ú</ú<!--ú<?ú<!r)   é   )z--!z--Ú-é   ú	<![CDATA[é   é	   ú	<!doctypezwe should not get here!z&#éÿÿÿÿú;zinteresting.search() lied)(r   Úlenr   r   ÚfindÚrfindÚmaxr3   r4   Úsearchr   Ústartr   Úhandle_datar   Ú	updateposÚ
startswithÚstarttagopenÚmatchÚparse_starttagÚparse_endtagÚparse_commentÚparse_piÚparse_html_declarationÚ
endtagopenÚhandle_commentÚendswithr   Úunknown_declr2   Úhandle_declÚ	handle_piÚAssertionErrorÚcharrefÚgroupÚhandle_charrefÚendÚ	entityrefÚhandle_entityrefÚ
incomplete)r   ri   r   ÚiÚnÚjÚampposrY   rW   ÚkÚsuffixÚnames               r   r$   zHTMLParser.goaheadÂ   s¯  € Ø”,ˆØˆÝ�‰LŒLˆØ�!Še‰eØÔ$ð ¨T¬_ð Ø—L’L  aÑ(Ô(�Ø�q’5�5ð %Ÿ]š]¨3µ°A°q¸±t±´Ñ=Ô=�FØ !š˜ÝœJ Ñ7Ô7×>Ò>¸wÈÑOÔOð $áØ�AøàÔ(×/Ò/°¸Ñ;Ô;�Øð ØŸš™œ�A�Aà”ð ÙØ�AØ�1ŠuˆuØÔ(ð 3¨T¬_ð 3Ø×$Ò$¥X¨g°a¸°c¬lÑ%;Ô%;Ñ<Ô<Ð<Ð<à×$Ò$ W¨Q¨q¨S¤\Ñ2Ô2Ð2Ø—’˜q !Ñ$Ô$ˆAØ�AŠvˆv‘uØ Ô+ˆJØˆz˜#˜qÑ!Ô!ñ \6Ý×%Ò% g¨qÑ1Ô1ð Ø×+Ò+¨AÑ.Ô.�A�AØ�Z  aÑ(Ô(ð Ø×)Ò)¨!Ñ,Ô,�A�AØ�Z ¨Ñ*Ô*ð 
Ø×*Ò*¨1Ñ-Ô-�A�AØ�Z  aÑ(Ô(ð ØŸš aÑ(Ô(�A�AØ�Z  aÑ(Ô(ð Ø×3Ò3°AÑ6Ô6�A�AØ˜!‘e˜q’[�[ C�[Ø×$Ò$ SÑ)Ô)Ð)Ø˜A™�A�AáØ�q’5‘5Øð ÙÝ#×)Ò)¨'°1Ñ5Ô5ð HÙØ#˜ D¨!Ñ,Ô,ð HØ˜q™5 Aš:˜:Ø ×,Ò,¨TÑ2Ô2Ð2Ñ2Ý'×-Ò-¨g°qÑ9Ô9ð ?Ù ð !×/Ò/°¸¸!¹¸¸´Ñ>Ô>Ð>Ñ>Ø#˜ F¨AÑ.Ô.ð HØ˜Ø&8ð &ð &˜FØ&×/Ò/°¸¸!¹Ñ<Ô<ð &Ø !¥S¨¡[¤[Ñ 0 Ø % ð&ð ×+Ò+¨G°A°a±C¸°E¬NÑ;Ô;Ð;Ð;Ø#˜ K°Ñ3Ô3ð 
H¸Ô8Kð 
HØ×)Ò)¨'°!°A±#°$°$¬-Ñ8Ô8Ð8Ð8Ø   1 Q¡3 œ×-Ò-Ñ/Ô/°;Ò>Ð>Ø×(Ò(¨°°1±°°¬Ñ7Ô7Ð7Ð7Ø#˜ D¨!Ñ,Ô,ð Hà×+Ò+¨G°A°a±C°D°D¬MÑ:Ô:Ð:Ð:Ø#˜ D¨!Ñ,Ô,ð HØŸš w¨q°©s¨t¨t¤}Ñ5Ô5Ð5Ð5å,Ð-FÑGÔGÐGØ�AØ—N’N 1 aÑ(Ô(�‘Ø�˜D !Ñ$Ô$ð +6ÝŸš g¨qÑ1Ô1�Øð Ø Ÿ;š;™=œ=¨¨2¨Ô.�DØ×'Ò'¨Ñ-Ô-Ð-ØŸ	š	™œ�AØ%˜: c¨1¨Q©3Ñ/Ô/ð "Ø ™E˜ØŸš q¨!Ñ,Ô,�AÙà˜g a b bœkÐ)Ð)Ø×(Ò(¨°°1°Q±3°¬Ñ8Ô8Ð8Ø ŸNšN¨1¨a°©cÑ2Ô2˜ÙØ�˜C Ñ#Ô#ñ 6Ý!Ÿš¨°Ñ3Ô3�Øð Ø Ÿ;š; q™>œ>�DØ×)Ò)¨$Ñ/Ô/Ð/ØŸ	š	™œ�AØ%˜: c¨1¨Q©3Ñ/Ô/ð "Ø ™E˜ØŸš q¨!Ñ,Ô,�AÙÝ"×(Ò(¨°!Ñ4Ô4�Øð àð 5˜uŸ{š{™}œ}°¸¸¸´Ò;Ð;Ø!ŸIšI™KœK˜Ø š6˜6Ø !˜AØ ŸNšN¨1¨a°!©eÑ4Ô4˜àØ˜!‘e˜q’[�[ð ×$Ò$ SÑ)Ô)Ð)ØŸš q¨!¨a©%Ñ0Ô0�A�Aàà5Ð5Ñ5Ô5�qðw �!Še‰eðz ð 	%�1�q’5�5ØÔ$ð /¨¬ð /Ø× Ò ¥¨'°!°A°#¬,Ñ!7Ô!7Ñ8Ô8Ð8Ð8à× Ò  ¨¨1¨¤Ñ.Ô.Ð.Ø—’˜q !Ñ$Ô$ˆAØ˜q˜r˜r”{ˆŒˆˆr   c                 ó^  — | j         }|||dz   …         dk    s
J d¦   «         ‚|||dz   …         dk    r|                      |¦  «        S |||dz   …         dk    rM| j        rF|                     d|dz   ¦  «        }|d	k     rd
S |                      ||dz   |…         ¦  «         |dz   S |||dz   …                              ¦   «         dk    rF|                     d|dz   ¦  «        }|d
k    rd
S |                      ||dz   |…         ¦  «         |dz   S |||dz   …         dk    ry|                     d|dz   ¦  «        }|d	k     rd
S ||dz
           dk    r$|                      ||dz   |dz
  …         ¦  «         n |                      ||dz   |…         ¦  «         |dz   S |                      |¦  «        S )NrF   rE   z+unexpected call to parse_html_declaration()rH   rC   rK   rI   z]]>r   rM   rJ   rL   r   r)   z<![ú])	r   r\   r   rP   rb   r2   rc   r`   Úparse_bogus_comment)r   rm   r   ro   Úgtposs        r   r^   z!HTMLParser.parse_html_declarationN  sð  € Ø”,ˆØ�q˜˜1™�uŒ~ Ò%Ð%Ð%ð )CÑ%Ô%Ð%à�1�Q�q‘S�5Œ>˜VÒ#Ð#à×%Ò% aÑ(Ô(Ð(Ø�Q�q˜‘s�UŒ^˜{Ò*Ð*¨tÔ/BÐ*Ø—’˜U A a¡CÑ(Ô(ˆAØ�1ŠuˆuØ�rØ×Ò˜g a¨¡c¨1 fœoÑ.Ô.Ð.Ø�q‘5ˆLØ�Q�q˜‘s�UŒ^×!Ò!Ñ#Ô# {Ò2Ð2à—L’L  a¨¡cÑ*Ô*ˆEØ˜Š{ˆ{Ø�rØ×Ò˜W Q q¡S¨ YÔ/Ñ0Ô0Ð0Ø˜‘7ˆNØ�Q�q˜‘s�UŒ^˜uÒ$Ð$Ø—’˜S ! A¡#Ñ&Ô&ˆAØ�1ŠuˆuØ�rØ�q˜‘sŒ|˜sÒ"Ð"Ø×!Ò! '¨!¨A©#¨q°©s¨(Ô"3Ñ4Ô4Ð4Ð4à×#Ò# G¨A¨a©C°¨F¤OÑ4Ô4Ð4Ø�q‘5ˆLà×+Ò+¨AÑ.Ô.Ð.r   c                 óh  — | j         }|                     d|¦  «        s
J d¦   «         ‚t                               ||dz   ¦  «        }|s"t                               ||dz   ¦  «        }|sdS |r4|                     ¦   «         }|                      ||dz   |…         ¦  «         |                     ¦   «         S )NrC   ú"unexpected call to parse_comment()rH   rM   )	r   rW   ÚcommentcloserS   ÚcommentabruptcloserY   rT   r`   ri   )r   rm   Úreportr   rY   ro   s         r   r\   zHTMLParser.parse_commentp  s¸   € Ø”,ˆØ×!Ò! &¨!Ñ,Ô,ÐRÐRÐ.RÑRÔRÐ,Ý×#Ò# G¨Q¨q©SÑ1Ô1ˆØð 	Ý&×,Ò,¨W°a¸±cÑ:Ô:ˆEØð Ø�rØð 	1Ø—’‘”ˆAØ×Ò ¨¨!©¨Q¨¤Ñ0Ô0Ð0Ø�yŠy‰{Œ{Ðr   r)   c                 óÒ   — | j         }|||dz   …         dv s
J d¦   «         ‚|                     d|dz   ¦  «        }|dk    rdS |r |                      ||dz   |…         ¦  «         |dz   S )NrF   )rE   rB   ry   r   rM   r)   )r   rP   r`   )r   rm   r|   r   Úposs        r   rv   zHTMLParser.parse_bogus_comment  s‰   € Ø”,ˆØ�q˜˜1™�uŒ~ Ð-Ð-Ð-ð 1BÑ-Ô-Ð-à�lŠl˜3  !¡Ñ$Ô$ˆØ�"Š9ˆ9Ø�2Øð 	2Ø×Ò ¨¨!©¨C¨Ô 0Ñ1Ô1Ð1Ø�Q‰wˆr   c                 ó  — | j         }|||dz   …         dk    s
J d¦   «         ‚t                               ||dz   ¦  «        }|sdS |                     ¦   «         }|                      ||dz   |…         ¦  «         |                     ¦   «         }|S )NrF   rD   zunexpected call to parse_pi()rM   )r   ÚpicloserS   rT   rd   ri   ©r   rm   r   rY   ro   s        r   r]   zHTMLParser.parse_pi‹  s�   € Ø”,ˆØ�q˜˜1™�uŒ~ Ò%Ð%Ð%Ð'FÑ%Ô%Ð%Ý—’˜w¨¨!©Ñ,Ô,ˆØð 	Ø�2Ø�KŠK‰MŒMˆØ�Š�w˜q ™s A˜v”Ñ'Ô'Ð'Ø�IŠI‰KŒKˆØˆr   c                 óÂ  — d | _         |                      |¦  «        }|dk     r|S | j        }|||…         | _         g }t                               ||dz   ¦  «        }|s
J d¦   «         ‚|                     ¦   «         }|                     d¦  «                             ¦   «         x| _        }||k     rÛt                               ||¦  «        }|sn½|                     ddd¦  «        \  }	}
}|
sd }nI|d d…         dcxk    r|dd …         k    s"n |d d…         dcxk    r|dd …         k    rn n
|dd…         }|rt          |¦  «        }|                     |	                     ¦   «         |f¦  «         |                     ¦   «         }||k     °Û|||…                              ¦   «         }|d	vr|                      |||…         ¦  «         |S |                     d
¦  «        r|                      ||¦  «         nj|                      ||¦  «         || j        v s| j        r|dk    s|dk    r|                      |d¬¦  «         n || j        v r|                      |d¬¦  «         |S )Nr   r)   z#unexpected call to parse_starttag()rF   rJ   ú'rM   ú")r   ú/>r…   Únoscriptr1   Fr.   T)r,   Úcheck_for_whole_start_tagr   Útagfind_tolerantrY   ri   rg   r2   r   Úattrfind_tolerantr   ÚappendÚstriprU   ra   Úhandle_startendtagÚhandle_starttagÚCDATA_CONTENT_ELEMENTSr   r8   ÚRCDATA_CONTENT_ELEMENTS)r   rm   Úendposr   ÚattrsrY   rq   ÚtagÚmÚattrnameÚrestÚ	attrvalueri   s                r   rZ   zHTMLParser.parse_starttag—  sº  € ð  $ˆÔØ×/Ò/°Ñ2Ô2ˆØ�AŠ:ˆ:ØˆMØ”,ˆØ& q¨ xÔ0ˆÔð ˆÝ ×&Ò& w°°!±Ñ4Ô4ˆØÐ;Ð;Ð;Ñ;Ô;ˆuØ�IŠI‰KŒKˆØ"Ÿ[š[¨™^œ^×1Ò1Ñ3Ô3Ð3ˆŒ�sØ�&ŠjˆjÝ!×'Ò'¨°Ñ3Ô3ˆAØð ØØ()¯ª°°1°aÑ(8Ô(8Ñ%ˆH�d˜IØð ,Ø �	�	Ø˜2˜A˜2” $Ð8Ð8Ò8Ð8¨)°B°C°C¬.Ò8Ð8Ð8Ð8Ø˜2˜A˜2” #Ð7Ð7Ò7Ð7¨°2°3°3¬Ò7Ð7Ð7Ð7Ð7Ø% a¨ dœO�	Øð 0Ý$ YÑ/Ô/�	Ø�LŠL˜(Ÿ.š.Ñ*Ô*¨IÐ6Ñ7Ô7Ð7Ø—’‘”ˆAð �&Šjˆjð �a˜�hÔ×%Ò%Ñ'Ô'ˆØ�kÐ!Ð!Ø×Ò˜W Q v XÔ.Ñ/Ô/Ð/ØˆMØ�<Š<˜ÑÔð 
	9à×#Ò# C¨Ñ/Ô/Ð/Ð/à× Ò   eÑ,Ô,Ð,Ø�tÔ2Ð2Ð2Ø”ð 3Ø$'¨:Ò$5Ð$5Ø�{Ò"Ð"Ø×#Ò# C°5Ð#Ñ9Ô9Ð9Ð9Ø˜Ô4Ð4Ð4Ø×#Ò# C°4Ð#Ñ8Ô8Ð8Øˆr   c                 ó¢   — | j         }t                               ||dz   ¦  «        }|sJ ‚|                     ¦   «         }||dz
           dk    rdS |S )Nr)   r   rM   )r   ÚlocatetagendrY   ri   r�   s        r   r‡   z$HTMLParser.check_for_whole_start_tagÉ  sU   € Ø”,ˆÝ×"Ò" 7¨A¨a©CÑ0Ô0ˆØˆˆˆuØ�IŠI‰KŒKˆØ�1�Q‘3Œ<˜3ÒÐØ�2Øˆr   c                 óŒ  — | j         }|||dz   …         dk    s
J d¦   «         ‚|                     d|dz   ¦  «        dk     rdS t                               ||¦  «        s.||dz   |dz   …         dk    r|dz   S |                      |¦  «        S t
                               ||dz   ¦  «        }|sJ ‚|                     ¦   «         }||dz
           dk    rdS t                               ||dz   ¦  «        }|sJ ‚|                     d¦  «         	                    ¦   «         }|  
                    |¦  «         |                      ¦   «          |S )	NrF   rB   zunexpected call to parse_endtagr   r   rM   rJ   r)   )r   rP   r_   rY   rv   r˜   ri   rˆ   rg   r2   Úhandle_endtagr:   )r   rm   r   rY   ro   r’   s         r   r[   zHTMLParser.parse_endtagÓ  sU  € ð ”,ˆØ�q˜˜1™�uŒ~ Ò%Ð%Ð%Ð'HÑ%Ô%Ð%Ø�<Š<˜˜Q˜q™SÑ!Ô! AÒ%Ð%Ø�2Ý×Ò ¨Ñ+Ô+ð 	3Ø�q˜‘s˜1˜Q™3�wÔ 3Ò&Ð&à˜‘s�
à×/Ò/°Ñ2Ô2Ð2å×"Ò" 7¨A¨a©CÑ0Ô0ˆØˆˆˆuØ�IŠI‰KŒKˆØ�1�Q‘3Œ<˜3ÒÐØ�2õ !×&Ò& w°°!±Ñ4Ô4ˆØˆˆˆuØ�kŠk˜!‰nŒn×"Ò"Ñ$Ô$ˆØ×Ò˜3ÑÔÐØ×ÒÑÔÐØˆr   c                 ó\   — |                       ||¦  «         |                      |¦  «         d S ©N)r�   rš   ©r   r’   r‘   s      r   rŒ   zHTMLParser.handle_startendtagñ  s2   € Ø×Ò˜S %Ñ(Ô(Ð(Ø×Ò˜3ÑÔÐÐÐr   c                 ó   — d S rœ   © r�   s      r   r�   zHTMLParser.handle_starttagö  ó   € Øˆr   c                 ó   — d S rœ   rŸ   )r   r’   s     r   rš   zHTMLParser.handle_endtagú  r    r   c                 ó   — d S rœ   rŸ   ©r   rs   s     r   rh   zHTMLParser.handle_charrefþ  r    r   c                 ó   — d S rœ   rŸ   r£   s     r   rk   zHTMLParser.handle_entityref  r    r   c                 ó   — d S rœ   rŸ   r%   s     r   rU   zHTMLParser.handle_data  r    r   c                 ó   — d S rœ   rŸ   r%   s     r   r`   zHTMLParser.handle_comment
  r    r   c                 ó   — d S rœ   rŸ   )r   Údecls     r   rc   zHTMLParser.handle_decl  r    r   c                 ó   — d S rœ   rŸ   r%   s     r   rd   zHTMLParser.handle_pi  r    r   c                 ó   — d S rœ   rŸ   r%   s     r   rb   zHTMLParser.unknown_decl  r    r   )T)r)   )!Ú__name__Ú
__module__Ú__qualname__Ú__doc__rŽ   r�   r   r   r'   r*   r,   r-   r8   r:   r=   r$   r^   r\   rv   r]   rZ   r‡   r[   rŒ   r�   rš   rh   rk   rU   r`   rc   rd   rb   rŸ   r   r   r   r   Z   sò  € € € € € ðð ð0 YÐØ3Ðà+/¸5ð ð ð ð ð ð+ð +ð +ðð ð ðð ð ð €Oð$ð $ð $ð 16ð 
Bð 
Bð 
Bð 
Bð 
Bðð ð ð
#ð #ð #ð #ð G#ð G#ð G#ðX/ð /ð /ðDð ð ð ð	ð 	ð 	ð 	ð	ð 	ð 	ð.ð .ð .ðdð ð ðð ð ð< ð  ð  ð
ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð r   )r®   r3   r    Úhtmlr   Ú__all__r4   r   rl   rj   rf   rX   r_   r€   rz   r{   rˆ   ÚVERBOSEr‰   r˜   Úlocatestarttagend_tolerantÚ	endendtagÚ
endtagfindr!   r   rŸ   r   r   ú<module>rµ      s¶  ðØ "Ð "ð 
€	€	€	Ø Ð Ð Ð à Ð Ð Ð Ð Ð ð ˆ.€ð  �R”Z Ñ'Ô'Ð ØˆRŒZ˜Ñ%Ô%€
àˆBŒJÐ>Ñ?Ô?€	Ø
ˆ"Œ*Ð@Ñ
AÔ
A€àˆrŒz˜+Ñ&Ô&€ØˆRŒZ˜Ñ%Ô%€
Ø
ˆ"Œ*�S‰/Œ/€ØˆrŒz˜(Ñ#Ô#€Ø�R”Z Ñ'Ô'Ð ð �2”:ÐQÑRÔRÐ Ø�B”Jð  ð „Zñô Ð ð ˆrŒzð ð „Zñô €ð  (˜RœZð )ð „Zñô Ð ð ˆBŒJ�s‰OŒO€	ØˆRŒZÐ>Ñ?Ô?€
ð|ð |ð |ð |ð |�Ô'ñ |ô |ð |ð |ð |r   