o 0iR@s ddlZddlZddlmZdgZedZedZedZedZ edZ ed Z ed Z ed Z ed Zed ZedejZedejZedejZed ZedZGdddejZdS)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@seZdZ dZdZdddddZdd Zd d Zd d ZdZ ddZ ddddZ ddZ d=ddZ ddZddZd=ddZd>dd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<ZdS)?r)ZscriptZstyleZxmpZiframeZnoembedZnoframes)ZtextareatitleTF)convert_charrefs scriptingcCs ||_||_|dSN)rrreset)selfrrr 2/opt/alt/python310/lib64/python3.10/html/parser.py__init__vs  zHTMLParser.__init__cCs6 d|_d|_t|_d|_d|_d|_tj |dS)Nz???T) rawdatalasttaginteresting_normal interesting cdata_elem_support_cdata _escapable _markupbase ParserBaser r r r r r szHTMLParser.resetcCs |j||_|ddS)Nr)rgoaheadr datar r r feeds zHTMLParser.feedcCs |ddS)N)rrr r r closeszHTMLParser.closeNcCs |jSr)_HTMLParser__starttag_textrr r r get_starttag_textszHTMLParser.get_starttag_text escapablecCst||_||_|jdkrtd|_dS|r*|js*td|jtjtjB|_dStd|jtjtjB|_dS)N plaintextz\Zz&|])z])) lowerrrrecompilerr IGNORECASEASCII)r elemr"r r r set_cdata_modes        zHTMLParser.set_cdata_modecCst|_d|_d|_dS)NT)rrrrrr r r clear_cdata_modes zHTMLParser.clear_cdata_modecCs ||_dSr)r)r flagr r r _set_support_cdatas zHTMLParser._set_support_cdatac Cs|j}d}t|}||krU|jr;|js;|d|}|dkr:|dt||d}|dkr8td ||s8n|}n|j ||}|rI| }n|jrNn|}||kro|jrf|j rf| t|||n | ||||||}||kr{n|j}|d|rt||r||} n@|d|r||} n5|d|r||} n*|d|r||} n|d |r||} n|d |ks|r| d|d } nn| dkr|sِn|t||rn|d|r|d |kr| dnt||rn|||d dn|d|r0|}d D]} || |d r"|t| 8}nq|||d |nW|d|rF|jrF|||ddnA|||ddkr_|||d dn(|d |rq|||d dn|d|r|||d dnt d|} ||| }n|d|rt!||}|r|"d d} |#| |$} |d| d s| d } ||| }q d||dvr| |||d |||d }nu|d|rQt%||}|r|"d } |&| |$} |d| d s | d } ||| }q t'||}|r;|r:|"||dkr:|$} | |kr2|} |||d }n|d |krP| d|||d }nn||ks|r||kr|jrq|j rq| t|||n | ||||||}||d|_dS)Nr<&"z [\t\n\r\f ;]zrr9r6r8rr2rz rhZnoscriptr#Fr!T)rcheck_for_whole_start_tagrtagfind_tolerantrDrTrRr$rattrfind_tolerantrappendstripZgetposcountr;r=rArLhandle_startendtaghandle_starttagCDATA_CONTENT_ELEMENTSrr*RCDATA_CONTENT_ELEMENTS)r rXendposrattrsrDr[tagmattrnamerestZ attrvaluerTlinenooffsetr r r rEsd  &(        zHTMLParser.parse_starttagcCs6|j}t||d}|}||ddkrdS|S)Nrrr9)r locatetagendrDrTrer r r rjs z$HTMLParser.check_for_whole_start_tagcCs|j}|d|ddkrdSt||s*||d|ddkr%|dS||St||d}|}||ddkr@dSt||d}|d }| || |S)Nrr2rr9r6r) rr<rJrDr_r|rTrkrRr$ handle_endtagr+)r rXrrDrZrvr r r rFs    zHTMLParser.parse_endtagcCs|||||dSr)rqr}r rvrur r r rps zHTMLParser.handle_startendtagcCdSrr r~r r r rqzHTMLParser.handle_starttagcCrrr )r rvr r r r}rzHTMLParser.handle_endtagcCrrr r r]r r r rSrzHTMLParser.handle_charrefcCrrr rr r r rV rzHTMLParser.handle_entityrefcCrrr rr r r rA rzHTMLParser.handle_datacCrrr rr r r rKrzHTMLParser.handle_commentcCrrr )r Zdeclr r r rNrzHTMLParser.handle_declcCrrr rr r r rOrzHTMLParser.handle_picCrrr rr r r rMrzHTMLParser.unknown_decl)T)r) __name__ __module__ __qualname__rrrsr r rrrr r*r+r-rrIrGr_rHrErjrFrprqr}rSrVrArKrNrOrMr r r r rZs@    "   9  )r%rZhtmlr__all__r&rrWrUrQrCrJrdr`rarkVERBOSErlr|Zlocatestarttagend_tolerantZ endendtagZ endtagfindrrr r r r s6