o ?Ogð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ÞeZdZ dZddœ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)ZscriptZstyleT)Úconvert_charrefscCs ||_| ¡dS©N)rÚreset)Úselfr©r ú2/opt/alt/python310/lib64/python3.10/html/parser.pyÚ__init__Vs zHTMLParser.__init__cCs* d|_d|_t|_d|_tj |¡dS)NÚz???)ÚrawdataÚlasttagÚinteresting_normalÚ interestingÚ cdata_elemÚ _markupbaseÚ ParserBaser©rr 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~s zHTMLParser.clear_cdata_modec Cs2|j}d}t|ƒ}||krá|jr;|js;| d|¡}|dkr:| dt||dƒ¡}|dkr8t d¡  ||¡s8n©|}n|j   ||¡}|rI|  ¡}n|jrNn“|}||kro|jrf|jsf|  t |||…ƒ¡n |  |||…¡| ||¡}||kr{nf|j}|d|ƒrt ||¡r| |¡} n>|d|ƒr›| |¡} n3|d|ƒr¦| |¡} n(|d|ƒr±| |¡} n|d |ƒr¼| |¡} n|d |krÌ|  d¡|d } nn| dkr|s×n | d |d ¡} | dkrô| d|d ¡} | dkró|d } n| d 7} |jr |js |  t ||| …ƒ¡n |  ||| …¡| || ¡}nÁ|d |ƒrlt ||¡}|rO| ¡d d…} | | ¡| ¡} |d| d ƒsH| d } | || ¡}q d||d…vrk|  |||d …¡| ||d ¡}nu|d|ƒrÝt ||¡}|rœ| d ¡} | | ¡| ¡} |d| d ƒs•| d } | || ¡}q t ||¡}|rÇ|rÆ| ¡||d…krÆ| ¡} | |kr¾|} | ||d ¡}n|d |krÜ|  d¡| ||d ¡}nn||ks|r||kr|js|jr|js|  t |||…ƒ¡n |  |||…¡| ||¡}||d…|_dS)Nrú<ú&é"z[\s;]zÚ rR)rÚcheck_for_whole_start_tagr Útagfind_tolerantr4r=r;rrÚattrfind_tolerantrÚappendÚstripZgetposÚcountr+r-r1ÚendswithÚhandle_startendtagÚhandle_starttagÚCDATA_CONTENT_ELEMENTSr")rrAÚendposr Úattrsr4rDÚtagÚmÚattrnameÚrestZ attrvaluer=ÚlinenoÚoffsetr r r r5,sV  &( ó   ÿ   ý  zHTMLParser.parse_starttagcCs²|j}t ||¡}|rU| ¡}|||d…}|dkr|dS|dkr?| d|¡r-|dS| d|¡r5dS||kr;|S|dS|dkrEdS|dvrKdS||krQ|S|dStd ƒ‚) Nrrú/rRr(r)r z6abcdefghijklmnopqrstuvwxyz=/ABCDEFGHIJKLMNOPQRSTUVWXYZzwe should not get here!)r Úlocatestarttagend_tolerantr4r=r2ÚAssertionError)rrAr rarCÚnextr r r rT_s.   z$HTMLParser.check_for_whole_start_tagcCs|j}t ||d¡}|sdS| ¡}t ||¡}|s`|jdur+| |||…¡|St ||d¡}|sH|||d…dkrC|dS|  |¡S|  d¡  ¡}|  d| ¡¡}|  |¡|dS|  d¡  ¡}|jdur|||jkr|| |||…¡|S|  |¡| ¡|S)Nrr)r(rGzr)r Ú endendtagr/r=Ú endtagfindr4rr1rUrJr;rr,Ú handle_endtagr#)rrAr r4rKZ namematchZtagnamer!r r r r6s6       zHTMLParser.parse_endtagcCs| ||¡| |¡dSr)r\rl©rr`r_r r r r[©s zHTMLParser.handle_startendtagcCódSrr rmr r r r\®ózHTMLParser.handle_starttagcCrnrr )rr`r r r rl²rozHTMLParser.handle_endtagcCrnrr ©rrEr r r r<¶rozHTMLParser.handle_charrefcCrnrr rpr r r r?ºrozHTMLParser.handle_entityrefcCrnrr rr r r r1¾rozHTMLParser.handle_datacCrnrr rr r r rLÂrozHTMLParser.handle_commentcCrnrr )rZdeclr r r rIÆrozHTMLParser.handle_declcCrnrr rr r r rOÊrozHTMLParser.handle_picCrnrr rr r r Ú unknown_declÍrozHTMLParser.unknown_decl)r)Ú__name__Ú __module__Ú __qualname__r]r rrrrrr"r#rr9rJr8r5rTr6r[r\rlr<r?r1rLrIrOrqr r r r r>s8  z   3"( )rrZhtmlrÚ__all__rrr@r>r:r3rNZ commentcloserUrVÚVERBOSErgrjrkrrr r r r Ús,          ÿò