a 8êdgðCã@s´ddlZddlZddlmZdgZe d¡Ze d¡Ze d¡Ze d¡Z e d¡Z e d ¡Z e d ¡Z e d ¡Z e d ¡Ze d ej¡Ze d ¡Ze d¡ZGdd„dejƒZdS)é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--\s*>z+([a-zA-Z][^\t\n\r\f />\x00]*)(?:\s|/(?!>))*z]((?<=[\'"\s/])[^\s/>][^\s/=>]*)(\s*=+\s*(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?(?:\s|/(?!>))*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#c@sÜeZdZdZddœdd„Zdd„Zdd „Zd d „Zd Zd d„Z dd„Z dd„Z dd„Z dd„Z d6dd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd S)7r)ZscriptÚstyleT)Úconvert_charrefscCs||_| ¡dS©N)rÚreset)Úselfr©r ú'/usr/local/lib/python3.9/html/parser.pyÚ__init__VszHTMLParser.__init__cCs(d|_d|_t|_d|_tj |¡dS)NÚz???)ÚrawdataÚlasttagÚinteresting_normalÚ interestingÚ cdata_elemÚ _markupbaseÚ ParserBaser©r r r r r_s zHTMLParser.resetcCs|j||_| d¡dS)Nr)rÚgoahead©r Údatar r r Úfeedgs zHTMLParser.feedcCs| d¡dS)Né)rrr r r ÚclosepszHTMLParser.closeNcCs|jSr)Ú_HTMLParser__starttag_textrr r r Úget_starttag_textvszHTMLParser.get_starttag_textcCs$| ¡|_t d|jtj¡|_dS)Nz )ÚlowerrÚreÚcompileÚIr)r Úelemr r r Úset_cdata_modezs zHTMLParser.set_cdata_modecCst|_d|_dSr)rrrrr r r Úclear_cdata_mode~szHTMLParser.clear_cdata_modec CsJ|j}d}t|ƒ}||krÚ|jrv|jsv| d|¡}|dkr | dt||dƒ¡}|dkrpt d¡  ||¡spqÚ|}n*|j   ||¡}|r’|  ¡}n|jrœqÚ|}||krÞ|jrÌ|jsÌ|  t |||…ƒ¡n|  |||…¡| ||¡}||kröqÚ|j}|d|ƒrJt ||¡r"| |¡} n†|d|ƒr:| |¡} nn|d|ƒrR| |¡} nV|d|ƒrj| |¡} n>|d |ƒr‚| |¡} n&|d |krÚ|  d¡|d } nqÚ| dkr<|s¼qÚ| d |d ¡} | dkrú| d|d ¡} | dkr|d } n| d 7} |jr*|js*|  t ||| …ƒ¡n|  ||| …¡| || ¡}q|d |ƒrðt ||¡}|r²| ¡d d…} | | ¡| ¡} |d| d ƒs¢| d } | || ¡}qnrÚiÚnÚjZampposr5r3ÚkÚnamer r r r…s   ÿ                                 zHTMLParser.goaheadcCs¢|j}|||d…dkr$| |¡S|||d…dkrB| |¡S|||d… ¡dkr”| d|d¡}|dkrvdS| ||d |…¡|d S| |¡SdS) Nér(éz)r rBrr5rDr r r r9 szHTMLParser.parse_picCsÞd|_| |¡}|dkr|S|j}|||…|_g}t ||d¡}| ¡}| d¡ ¡|_}||kr t  ||¡}|s~q | ddd¡\} } } | sœd} nZ| dd…dkrÀ| dd…ksên| dd…dkræ| dd…krönn | dd…} | rt | ƒ} |  |  ¡| f¡| ¡}q`|||…  ¡} | dvrž|  ¡\} }d |jvrz| |j d ¡} t|jƒ|j d ¡}n|t|jƒ}| |||…¡|S|  d ¡r¸| ||¡n"| ||¡||jvrÚ| |¡|S) Nrrr)rHú'r*ú")rú/>Ú rT)rÚcheck_for_whole_start_tagrÚtagfind_tolerantr5r>r<rrÚattrfind_tolerantrÚappendÚstripZgetposÚcountr,r.r2ÚendswithÚhandle_startendtagÚhandle_starttagÚCDATA_CONTENT_ELEMENTSr#)r rBÚendposrÚattrsr5rEÚtagÚmÚattrnameÚrestZ attrvaluer>ÚlinenoÚoffsetr r r r6,sX   & ÿ ÿ       ÿ    zHTMLParser.parse_starttagcCs¶|j}t ||¡}|rª| ¡}|||d…}|dkr>|dS|dkr~| d|¡rZ|dS| d|¡rjdS||krv|S|dS|dkrŠdS|dvr–dS||kr¢|S|dStd ƒ‚dS) Nrrú/rTr)r*r z6abcdefghijklmnopqrstuvwxyz=/ABCDEFGHIJKLMNOPQRSTUVWXYZzwe should not get here!)rÚlocatestarttagend_tolerantr5r>r3ÚAssertionError)r rBrrcrDÚnextr r r rV_s.   z$HTMLParser.check_for_whole_start_tagcCs|j}t ||d¡}|sdS| ¡}t ||¡}|sÀ|jdurV| |||…¡|St ||d¡}|s|||d…dkr†|dS|  |¡S|  d¡  ¡}|  d| ¡¡}|  |¡|dS|  d¡  ¡}|jdurø||jkrø| |||…¡|S|  |¡| ¡|S)Nrr*r)rHzr)rÚ endendtagr0r>Ú endtagfindr5rr2rWrKr<rr-Ú handle_endtagr$)r rBrr5rLZ namematchZtagnamer"r r r r7s6       zHTMLParser.parse_endtagcCs| ||¡| |¡dSr)r^rn©r rbrar r r r]©s zHTMLParser.handle_startendtagcCsdSrr ror r r r^®szHTMLParser.handle_starttagcCsdSrr )r rbr r r rn²szHTMLParser.handle_endtagcCsdSrr ©r rFr r r r=¶szHTMLParser.handle_charrefcCsdSrr rpr r r r@ºszHTMLParser.handle_entityrefcCsdSrr rr r r r2¾szHTMLParser.handle_datacCsdSrr rr r r rMÂszHTMLParser.handle_commentcCsdSrr )r Zdeclr r r rJÆszHTMLParser.handle_declcCsdSrr rr r r rQÊszHTMLParser.handle_picCsdSrr rr r r Ú unknown_declÍszHTMLParser.unknown_decl)r)Ú__name__Ú __module__Ú __qualname__r_r rrrrrr#r$rr:rKr9r6rVr7r]r^rnr=r@r2rMrJrQrqr r r r r>s4  z  3"()rrZhtmlrÚ__all__r rrAr?r;r4rPZ commentcloserWrXÚVERBOSErirlrmrrr r r r Ú s(         ÿò