a ´iÌRã@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 ¡Ze dej¡Ze dej¡Ze dej¡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 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#c@süeZdZdZdZdddœdd„Zdd „Zd d „Zd d „ZdZ dd„Z ddœdd„Z dd„Z d=dd„Z dd„Zdd„Zd>dd„Zd?dd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„ZdS)@r)ZscriptÚstyleZxmpZiframeZnoembedZnoframes)ZtextareaÚtitleTF)Úconvert_charrefsÚ scriptingcCs||_||_| ¡dS©N)rrÚreset)Úselfrr©r ú#/usr/lib64/python3.9/html/parser.pyÚ__init__vs zHTMLParser.__init__cCs4d|_d|_t|_d|_d|_d|_tj  |¡dS)NÚz???T) ÚrawdataÚlasttagÚinteresting_normalÚ interestingÚ cdata_elemÚ_support_cdataÚ _escapableÚ _markupbaseÚ ParserBaser ©r r r r r „szHTMLParser.resetcCs|j||_| d¡dS)Nr)rÚgoahead©r Údatar r r ÚfeedŽs zHTMLParser.feedcCs| d¡dS)Né)rrr r r Úclose—szHTMLParser.closeNcCs|jSr )Ú_HTMLParser__starttag_textrr r r Úget_starttag_textszHTMLParser.get_starttag_text©Ú escapablecCsp| ¡|_||_|jdkr(t d¡|_nD|rP|jsPt d|jtjtjB¡|_nt d|jtjtjB¡|_dS)NÚ plaintextz\Zz&|])z])) ÚlowerrrÚreÚcompilerrÚ IGNORECASEÚASCII)r Úelemr#r r r Úset_cdata_mode¡s     ÿ  ÿzHTMLParser.set_cdata_modecCst|_d|_d|_dS)NT)rrrrrr r r Úclear_cdata_mode­szHTMLParser.clear_cdata_modecCs ||_dSr )r)r Úflagr r r Ú_set_support_cdata²s zHTMLParser._set_support_cdatac Cs4|j}d}t|ƒ}||krÌ|jrv|jsv| d|¡}|dkr | dt||dƒ¡}|dkrpt d¡  ||¡spqÌ|}n*|j   ||¡}|r’|  ¡}n|jrœqÌ|}||krÞ|jrÌ|j rÌ|  t|||…ƒ¡n|  |||…¡| ||¡}||kröqÌ|j}|d|ƒrrr:r7r9rr3rzÚ riZnoscriptr$Fr"T)r Úcheck_for_whole_start_tagrÚtagfind_tolerantrErUrSr%rÚattrfind_tolerantrÚappendÚstripZgetposÚcountr<r>rBrMÚhandle_startendtagÚhandle_starttagÚCDATA_CONTENT_ELEMENTSrr+ÚRCDATA_CONTENT_ELEMENTS)r rYÚendposrÚattrsrEr\ÚtagÚmÚattrnameÚrestZ attrvaluerUÚlinenoÚoffsetr r r rF—sh   & ÿ ÿ       ÿ   ÿÿþ zHTMLParser.parse_starttagcCs6|j}t ||d¡}| ¡}||ddkr2dS|S)Nrrr:)rÚ locatetagendrErUrfr r r rkÐs z$HTMLParser.check_for_whole_start_tagcCs´|j}| d|d¡dkrdSt ||¡sT||d|d…dkrJ|dS| |¡St ||d¡}| ¡}||ddkr€dSt ||d¡}| d¡  ¡}|  |¡|  ¡|S)Nrr3rr:r7r) rr=rKrEr`r}rUrlrSr%Ú handle_endtagr,)r rYrrEr[rwr r r rGÚs    zHTMLParser.parse_endtagcCs| ||¡| |¡dSr )rrr~©r rwrvr r r rqøs zHTMLParser.handle_startendtagcCsdSr r rr r r rrýszHTMLParser.handle_starttagcCsdSr r )r rwr r r r~szHTMLParser.handle_endtagcCsdSr r ©r r^r r r rTszHTMLParser.handle_charrefcCsdSr r r€r r r rW szHTMLParser.handle_entityrefcCsdSr r rr r r rB szHTMLParser.handle_datacCsdSr r rr r r rLszHTMLParser.handle_commentcCsdSr r )r Zdeclr r r rOszHTMLParser.handle_declcCsdSr r rr r r rPszHTMLParser.handle_picCsdSr r rr r r rNszHTMLParser.unknown_decl)T)T)r) Ú__name__Ú __module__Ú __qualname__rsrtrr rrr r!r+r,r.rrJrHr`rIrFrkrGrqrrr~rTrWrBrLrOrPrNr r r r rZs<     "   9 )r&rZhtmlrÚ__all__r'rrXrVrRrDrKrerarbrlÚVERBOSErmr}Zlocatestarttagend_tolerantZ endendtagZ endtagfindrrr r r r Ú s2           õ  óò