"Jd6ddlmZmZmZddlmZmZddlZddlm Z ddlm Z ddlm Z ddl m Z dd lmZdd lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z dd Z!ddZ"dZ#Gdde$Z%ej&dZ'dZ( ddZ)Gdde*Z+dS))absolute_importdivisionunicode_literals)with_metaclassviewkeysN) _inputstream) _tokenizer) treebuilders)Marker)_utils)spaceCharactersasciiUpper2LowerspecialElementsheadingElements cdataElementsrcdataElements tokenTypes tagTokenTypes namespaceshtmlIntegrationPointElements"mathmlTextIntegrationPointElementsadjustForeignAttributesadjustMathMLAttributesadjustSVGAttributesE_ReparseExceptionetreeTc htj|}t||}|j|fi|S)aParse an HTML document as a string or file-like object into a tree :arg doc: the document to parse as a string or file-like object :arg treebuilder: the treebuilder to use when parsing :arg namespaceHTMLElements: whether or not to namespace HTML elements :returns: parsed tree Example: >>> from html5lib.html5parser import parse >>> parse('

This is a doc

') namespaceHTMLElements)r getTreeBuilder HTMLParserparse)doc treebuilderr!kwargstbps S/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/html5lib/html5parser.pyr$r$sA$  $[ 1 1B2-BCCCA 173 ! !& ! !!divc ltj|}t||}|j|fd|i|S)a#Parse an HTML fragment as a string or file-like object into a tree :arg doc: the fragment to parse as a string or file-like object :arg container: the container context to parse the fragment in :arg treebuilder: the treebuilder to use when parsing :arg namespaceHTMLElements: whether or not to namespace HTML elements :returns: parsed tree Example: >>> from html5lib.html5libparser import parseFragment >>> parseFragment('this is a fragment') r container)r r"r# parseFragment)r%r.r&r!r'r(r)s r*r/r/1sF(  $[ 1 1B2-BCCCA 1?3 > >) >v > >>r+c2Gfddt}|S)NceZdZfdZdS)-method_decorator_metaclass..Decoratedc|D]/\}}t|tjr |}|||<0t||||SN)items isinstancetypes FunctionTypetype__new__)meta classnamebases classDict attributeName attributefunctions r*r:z5method_decorator_metaclass..Decorated.__new__Lsj,5OO,=,= 5 5( yi);<<4 ( 3 3I+4 -((<<i BB Br+N)__name__ __module__ __qualname__r:)rAsr* Decoratedr2Ks5 C C C C C C Cr+rE)r9)rArEs` r*method_decorator_metaclassrFJsICCCCCCCDCCC r+ceZdZdZddZddZdZed Zd Z d Z d Z d Z dZ ddZdZdZdZdZdZdZdS)r#z]HTML parser Generates a tree structure from a stream of (possibly malformed) HTML. NFTc|_|tjd}||_g_fdt |D_dS)a :arg tree: a treebuilder class controlling the type of tree that will be returned. Built in treebuilders can be accessed through html5lib.treebuilders.getTreeBuilder(treeType) :arg strict: raise an exception when a parse error is encountered :arg namespaceHTMLElements: whether or not to namespace HTML elements :arg debug: whether or not to enable debug mode which logs things Example: >>> from html5lib.html5parser import HTMLParser >>> parser = HTMLParser() # generates parser with etree builder >>> parser = HTMLParser('lxml', strict=True) # generates parser with lxml builder which is strict Nrc:i|]\}}||jS)tree).0nameclsselfs r* z'HTMLParser.__init__..ys9111idCtSSty11111r+)strictr r"rKerrors getPhasesr5phases)rOrKrQr!debugs` r*__init__zHTMLParser.__init__]s|* <.w77DD.//  1111 ''--//111 r+r,c &||_||_||_tj|fd|i||_| |dS#t$r,||YdSwxYw)Nparser) innerHTMLModer. scriptingr HTMLTokenizer tokenizerresetmainLoopr)rOstream innerHTMLr.rZr's r*_parsezHTMLParser._parse|s&""#1&PPPPP   MMOOOOO     JJLLL MMOOOOOO sA2BBcp|jd|_g|_g|_d|_|jr|j|_ |j tvr|j j |j _ nH|j tvr|j j|j _ n#|j dkr|j j|j _ n |jd|_|j|nd|_ |jd|_d|_d|_d|_dS)NFz no quirks plaintext beforeHtmlinitialT)rKr] firstStartTagrRlog compatModerYr.lowerr`rr\ rcdataStatestater rawtextStateplaintextStaterTphaseinsertHtmlElementresetInsertionMode lastPhasebeforeRCDataPhase framesetOKrOs r*r]zHTMLParser.resets " %   0!^1133DN~..'+~'A$$>11'+~'B$$;..'+~'D$$\2DJ J ( ( * * *  # # % % % %"DNY/DJ!%r+c^t|dsdS|jjjdjS)zName of the character encoding that was used to decode the input stream, or :obj:`None` if that is not determined yet r\Nr)hasattrr\r_ charEncodingrMrts r*documentEncodingzHTMLParser.documentEncodings1 t[)) 4~$1!499r+c|jdkrF|jtdkr0d|jvo&|jdt dvS|j|jft vS)Nannotation-xmlmathmlencoding)z text/htmlzapplication/xhtml+xml)rM namespacer attributes translaterrrOelements r*isHTMLIntegrationPointz!HTMLParser.isHTMLIntegrationPointsv L, , ,!Z%999'"44;&z2<<(**:; < %w|48TT Tr+c,|j|jftvSr4)r}rMrrs r*isMathMLTextIntegrationPointz'HTMLParser.isMathMLTextIntegrationPoints!7<04VVVr+ctd}td}td}td}td}td}td}|jD]#}d} |} | | } |jjr|jjdnd} | r| jnd} | r| jnd} | d }||kr4|| d | d id} nht|jjd ks| |jj ks| | r%||kr|d tddgvsK|||fvsE| tdkr| dkr||kr |d dks| | r||||fvr|j}n |jd}||kr|| } n||kr|| } no||kr|| } nS||kr|| } n7||kr|| } n||kr|| } | ||kr.| dr&| ds|dd | d i%d}g}|rD||j|j}|r |j|vsJ|BdSdS)N CharactersSpaceCharactersStartTagEndTagCommentDoctype ParseErrorr9datadatavarsrrMmglyph malignmarkr{rzsvginForeignContent selfClosingselfClosingAcknowledgedz&non-void-element-with-trailing-solidusT)rr\rK openElementsr}rM parseErrorgetlendefaultNamespacer frozensetrrrnrTprocessCharactersprocessSpaceCharactersprocessStartTag processEndTagprocessCommentprocessDoctypeappend processEOF)rOCharactersTokenSpaceCharactersToken StartTagToken EndTagToken CommentToken DoctypeTokenParseErrorTokentoken prev_token new_token currentNodecurrentNodeNamespacecurrentNodeNamer9rn reprocessrTs r*r^zHTMLParser.mainLoopsn$\2)*;<":.  * !), !), $\2^/ >/ >EJI'& <@I ?..$)$;$;I$F$F !555$)$@$@$K$K ..$)$9$9)$D$D ,,$)$7$7 $B$B --$)$8$8$C$C --$)$8$8$C$C O'R %%*]*C%"#<=& H!'F); <>>>  0 MM$* % % % --//I 0z////  0 0 0 0 0r+cZ|j|ddg|Ri||jS)aParse a HTML document into a well-formed tree :arg stream: a file-like object or string containing the HTML to be parsed The optional encoding parameter must be a string that indicates the encoding. If specified, that encoding will be used, regardless of any BOM or later declaration (such as in a meta element). :arg scripting: treat noscript elements as if JavaScript was turned on :returns: parsed tree Example: >>> from html5lib.html5parser import HTMLParser >>> parser = HTMLParser() >>> parser.parse('

This is a doc

') FN)rarK getDocumentrOr_argsr's r*r$zHTMLParser.parses>,  FE49$999&999y$$&&&r+cX|j|dg|Ri||jS)aZParse a HTML fragment into a well-formed tree fragment :arg container: name of the element we're setting the innerHTML property if set to None, default to 'div' :arg stream: a file-like object or string containing the HTML to be parsed The optional encoding parameter must be a string that indicates the encoding. If specified, that encoding will be used, regardless of any BOM or later declaration (such as in a meta element) :arg scripting: treat noscript elements as if JavaScript was turned on :returns: parsed tree Example: >>> from html5lib.html5libparser import HTMLParser >>> parser = HTMLParser() >>> parser.parseFragment('this is a fragment') T)rarK getFragmentrs r*r/zHTMLParser.parseFragments<2  FD242226222y$$&&&r+XXX-undefined-errorc|i}|j|jj||f|jrt t||zdSr4)rRrr\r_positionrQrr)rO errorcoders r*rzHTMLParser.parseError;sf  H DN1::<AAA~%%% DNdi.HHH8## K(:;   K1   r+c|dvsJ|j||dkr|jj|j_n|jj|j_|j|_|jd|_dS)N)RAWTEXTRCDATArtext) rK insertElementr\rlrkrjrn originalPhaserT)rOr contentTypes r*parseRCDataRawtextzHTMLParser.parseRCDataRawtext|sr33333 &&& ) # ##'>#>DN #'>#=DN !Z[( r+)NFTF)Fr,F)rN)rBrCrD__doc__rVrar]propertyrxrrr^r$r/rrrrrrprrJr+r*r#r#Vs5 1111>       D::X:UUUWWWA0A0A0F'''2'''86666999666===***X ) ) ) ) )r+r#c d}d}Gddt|||Gdd}Gdd}Gd d }Gd d }Gd d}Gdd}GfddGdd} Gfdd} GfddGfdd} Gfdd} Gfdd} Gfdd }Gfd!d"}Gfd#d$}Gd%d&}Gfd'd(}Gd)d*}Gfd+d,}Gfd-d.}Gd/d0}Gd1d2}id3|d4|d5|d6|d7|d8|d9d:| d;| d<d=| d>| d?| d@|dA|dB|dC|||||||dDS)ENcPdtjDfd}|S)z4Logger that records which phase processes each tokenci|]\}}|| SrJrJ)rLkeyvalues r*rPz*getPhases..log..sFFFZS%eSFFFr+cjdrt|dkr|d}d|di}|dtvr |d|d<|jj|jjjj|jj j j|j jj|f|g|Ri|S|g|Ri|S)Nprocessrr9rM) rB startswithrrrXrgrr\rkrn __class__)rOrr'rinforA type_namess r*wrappedz'getPhases..log..wrappeds ++I66 73t99q==Q 5= 9:=M11#(=DL && (=(C(L(, (9(C(L(,(?(0(9(, (.///  x6t666v666x6t666v666r+)rr5)rArrs` @r*rgzgetPhases..logsEFF:3C3E3EFFF  7 7 7 7 7 7r+c2|rt|StSr4)rFr9) use_metaclassmetaclass_funcs r* getMetaclasszgetPhases..getMetaclasss  -n== =Kr+cLeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d S) getPhases..PhasezNBase class for helper object that implements each phase of processing )rXrK__startTagCache __endTagCachec>||_||_i|_i|_dSr4)rXrK_Phase__startTagCache_Phase__endTagCache)rOrXrKs r*rVz!getPhases..Phase.__init__s& DKDI#%D !#D   r+ctr4)NotImplementedErrorrts r*rz#getPhases..Phase.processEOFs% %r+c\|j||jjddS)NrrK insertCommentrrs r*rz'getPhases..Phase.processComments, I # #E49+A"+E F F F F Fr+c:|jddS)Nzunexpected-doctyperXrrs r*rz'getPhases..Phase.processDoctypes K " "#7 8 8 8 8 8r+cF|j|ddSNrrK insertTextrs r*rz*getPhases..Phase.processCharacters" I v / / / / /r+cF|j|ddSr r rs r*rz/getPhases..Phase.processSpaceCharactersrr+c|d}||jvr|j|}n|j|x}|j|<t|jt|jdzkrf|jt t |jt|jt|jdzkf||SNrMg?)rstartTagHandlerrpopnextiterrOrrMfuncs r*rz(getPhases..Phase.processStartTags=Dt++++D1484H4NNt+D1$.//#d6J2K2Kc2QQQ(,,T$t7K2L2L-M-MNNN$.//#d6J2K2Kc2QQQ4;; r+c(|jjs&|ddkr|jd|dD]8\}}||jjdjvr||jjdj|<9d|j_dS)NrMrz non-html-rootrrF)rXrfrr5rKrr~rOrattrrs r* startTagHtmlz%getPhases..Phase.startTagHtmls;, 8v&1H1H &&777 %V}2244 G G ety5a8CCCAFDI*1-8>(-DK % % %r+c|d}||jvr|j|}n|j|x}|j|<t|jt|jdzkrf|jt t |jt|jt|jdzkf||Sr)r endTagHandlerrrrrrs r*rz&getPhases..Phase.processEndTags=Dt))))$/262DT2JJt)$/$,--D4F0G0G#0MMM&**4T5G0H0H+I+IJJJ$,--D4F0G0G#0MMM4;; r+N)rBrCrDr __slots__rVrrrrrrrrrJr+r*Phasers  J  $ $ $  & & & G G G  9 9 9 0 0 0 0 0 0   " . . .     r+rcReZdZeZdZdZdZdZdZ dZ dZ dZ d S) getPhases..InitialPhasecdSr4rJrs r*rz6getPhases..InitialPhase.processSpaceCharacters Dr+cP|j||jjdSr4rKrdocumentrs r*rz.getPhases..InitialPhase.processComment% I # #E49+= > > > > >r+c|d}|d}|d}|d}|dks || |dkr|jd|d}|j||dkr|t }|rV|ddksJ|d s5|d vs1|d r||r%|d kr d |j_n8|ds|d r| d|j_|jj d|j_ dS)NrMpublicIdsystemIdcorrectrzabout:legacy-compatzunknown-doctype)7z*+//silmaril//dtd html pro v0r11 19970101//z4-//advasoft ltd//dtd html 3.0 aswedit + extensions//z*-//as//dtd html 3.0 aswedit + extensions//z-//ietf//dtd html 2.0 level 1//z-//ietf//dtd html 2.0 level 2//z&-//ietf//dtd html 2.0 strict level 1//z&-//ietf//dtd html 2.0 strict level 2//z-//ietf//dtd html 2.0 strict//z-//ietf//dtd html 2.0//z-//ietf//dtd html 2.1e//z-//ietf//dtd html 3.0//z-//ietf//dtd html 3.2 final//z-//ietf//dtd html 3.2//z-//ietf//dtd html 3//z-//ietf//dtd html level 0//z-//ietf//dtd html level 1//z-//ietf//dtd html level 2//z-//ietf//dtd html level 3//z"-//ietf//dtd html strict level 0//z"-//ietf//dtd html strict level 1//z"-//ietf//dtd html strict level 2//z"-//ietf//dtd html strict level 3//z-//ietf//dtd html strict//z-//ietf//dtd html//z(-//metrius//dtd metrius presentational//z5-//microsoft//dtd internet explorer 2.0 html strict//z.-//microsoft//dtd internet explorer 2.0 html//z0-//microsoft//dtd internet explorer 2.0 tables//z5-//microsoft//dtd internet explorer 3.0 html strict//z.-//microsoft//dtd internet explorer 3.0 html//z0-//microsoft//dtd internet explorer 3.0 tables//z#-//netscape comm. corp.//dtd html//z*-//netscape comm. corp.//dtd strict html//z*-//o'reilly and associates//dtd html 2.0//z3-//o'reilly and associates//dtd html extended 1.0//z;-//o'reilly and associates//dtd html extended relaxed 1.0//zN-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//zE-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//z$-//spyglass//dtd html 2.0 extended//z+-//sq//dtd html 2.0 hotmetal + extensions//z--//sun microsystems corp.//dtd hotjava html//z4-//sun microsystems corp.//dtd hotjava strict html//z-//w3c//dtd html 3 1995-03-24//z-//w3c//dtd html 3.2 draft//z-//w3c//dtd html 3.2 final//z-//w3c//dtd html 3.2//z-//w3c//dtd html 3.2s draft//z-//w3c//dtd html 4.0 frameset//z#-//w3c//dtd html 4.0 transitional//z(-//w3c//dtd html experimental 19960712//z&-//w3c//dtd html experimental 970421//z-//w3c//dtd w3 html//z-//w3o//dtd w3 html 3.0//z#-//webtechs//dtd mozilla html 2.0//z-//webtechs//dtd mozilla html//)z$-//w3o//dtd w3 html strict 3.0//en//z"-/w3c/dtd html 4.0 transitional/enr)z -//w3c//dtd html 4.01 frameset//z$-//w3c//dtd html 4.01 transitional//z:http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtdquirks)z -//w3c//dtd xhtml 1.0 frameset//z$-//w3c//dtd xhtml 1.0 transitional//zlimited quirksrd) rXrrK insertDoctyperrrrirhrTrn)rOrrMr)r*r+s r*rz.getPhases..InitialPhase.processDoctypes=DZ(HZ(HI&G("6(X9N-N-N &&'8999 I # #E * * *2~~#--.>??I :uV}66''6<7=7= 7r!)))''ABB) $%!)!1!15q!q!q)1 &&%%=>> :%%?@@ : &)9 & $ 2< @DK   r+cVd|j_|jjd|j_dS)Nr-rd)rXrhrTrnrts r* anythingElsez,getPhases..InitialPhase.anythingElseZs&%-DK " $ 2< @DK   r+cb|jd||S)Nzexpected-doctype-but-got-charsrXrr0rs r*rz1getPhases..InitialPhase.processCharacters^s0 K " "#C D D D      Lr+ct|jdd|di||S)Nz"expected-doctype-but-got-start-tagrMr2rs r*rz/getPhases..InitialPhase.processStartTagcsB K " "#G$*E&M#: < < <      Lr+ct|jdd|di||S)Nz expected-doctype-but-got-end-tagrMr2rs r*rz-getPhases..InitialPhase.processEndTagisB K " "#E$*E&M#: < < <      Lr+cb|jd|dS)Nzexpected-doctype-but-got-eofTr2rts r*rz*getPhases..InitialPhase.processEOFos0 K " "#A B B B      4r+N) rBrCrDtuplerrrrr0rrrrrJr+r* InitialPhaser!sEGG     ? ? ?] A] A] A~ A A A                 r+r7cLeZdZeZdZdZdZdZdZ dZ dZ dS) "getPhases..BeforeHtmlPhasec|jtdd|jjd|j_dS)Nrrr)rK insertRootimpliedTagTokenrXrTrnrts r*roz4getPhases..BeforeHtmlPhase.insertHtmlElementxs< I !D!D E E E $ 2< @DK   r+c.|dSNTrorts r*rz-getPhases..BeforeHtmlPhase.processEOF}s  " " $ $ $4r+cP|j||jjdSr4r%rs r*rz1getPhases..BeforeHtmlPhase.processCommentr'r+cdSr4rJrs r*rz9getPhases..BeforeHtmlPhase.processSpaceCharactersr#r+c.||Sr4r?rs r*rz4getPhases..BeforeHtmlPhase.processCharacterss  " " $ $ $Lr+c^|ddkr d|j_||S)NrMrT)rXrfrors r*rz2getPhases..BeforeHtmlPhase.processStartTags2V}&&,0 )  " " $ $ $Lr+c|ddvr%|jdd|didS||S)NrMrrrbrzunexpected-end-tag-before-html)rXrrors r*rz0getPhases..BeforeHtmlPhase.processEndTagscV}$BBB &&'G(.f '>@@@@@&&((( r+N) rBrCrDr6rrorrrrrrrJr+r*BeforeHtmlPhaser9tsEGG  A A A     ? ? ?               r+rGceZdZeZdZdZdZdZdZ dZ dZ dZ e jd efd e fgZe e_e jd e fgZe e_d S) "getPhases..BeforeHeadPhasecL|tdddS)NrrT startTagHeadr<rts r*rz-getPhases..BeforeHeadPhase.processEOFs%   ofjAA B B B4r+cdSr4rJrs r*rz9getPhases..BeforeHeadPhase.processSpaceCharactersr#r+cL|tdd|SNrrrKrs r*rz4getPhases..BeforeHeadPhase.processCharacters%   ofjAA B B BLr+cL|jjd|SNrrXrTrrs r*rz/getPhases..BeforeHeadPhase.startTagHtml ;%h/??FF Fr+c|j||jjd|j_|jjd|j_dS)NrinHead)rKrr headPointerrXrTrnrs r*rLz/getPhases..BeforeHeadPhase.startTagHeadsF I # #E * * *$(I$:2$>DI ! $ 28 .BeforeHeadPhase.startTagOtherrPr+cL|tdd|SrOrKrs r*endTagImplyHeadz2getPhases..BeforeHeadPhase.endTagImplyHeadrPr+cL|jdd|didS)Nzend-tag-after-implied-rootrMr rs r* endTagOtherz.getPhases..BeforeHeadPhase.endTagOthers5 K " "#?$*E&M#: < < < < .InHeadPhasec.|dSr>r0rts r*rz)getPhases..InHeadPhase.processEOF      4r+c.||Sr4rdrs r*rz0getPhases..InHeadPhase.processCharacters      Lr+cL|jjd|SrRrSrs r*rz+getPhases..InHeadPhase.startTagHtmlrTr+c:|jddS)Nz!two-heads-are-not-better-than-oner rs r*rLz+getPhases..InHeadPhase.startTagHeads K " "#F G G G G Gr+c|j||jjd|d<dSNTrrKrrrrs r*startTagBaseLinkCommandz6getPhases..InHeadPhase.startTagBaseLinkCommand@ I # #E * * * I " & & ( ( (/3E+ , , ,r+c~|j||jjd|d<|d}|jjjjddkrd|vr,|jjj|ddSd|vrd|vr|d d krtj |d d }tj |}|}|jjj|dSdSdSdSdS) NTrrr tentativecharsetcontentz http-equivz content-typezutf-8)rKrrrrXr\r_rwchangeEncodingrir EncodingBytesencodeContentAttrParserr$)rOrr~rrXcodecs r* startTagMetaz+getPhases..InHeadPhase.startTagMetasD I # #E * * * I " & & ( ( (/3E+ ,vJ{$+8;{JJ **K)0?? 9@UVVVVV:--"j00 .4466.HH (5j6K6R6RSZ6[6[\\D);DAAF"LLNNEK)0??FFFFFKJ.-00HHr+c<|j|ddS)NrrXrrs r* startTagTitlez,getPhases..InHeadPhase.startTagTitles K * *5( ; ; ; ; ;r+c<|j|ddS)Nrrzrs r*startTagNoFramesStylez4getPhases..InHeadPhase.startTagNoFramesStyle K * *5) < < < < .InHeadPhase.startTagNoscripts_{$ I ..ui@@@@@ ''...$(K$67G$H !!!r+c|j||jjj|jj_|jj|j_|jjd|j_dS)Nr) rKrrXr\scriptDataStaterkrnrrTrs r*startTagScriptz-getPhases..InHeadPhase.startTagScriptsV I # #E * * **.+*?*ODK ! '(, (9DK % $ 26 :DK   r+c.||Sr4rdrs r*rYz,getPhases..InHeadPhase.startTagOtherrgr+c|jjj}|jdksJd|jz|jjd|j_dS)NrzExpected head got %s afterHeadrXrKrrrMrTrnrOrrs r* endTagHeadz)getPhases..InHeadPhase.endTagHead sX;#04466D9&&&(>(J&&& $ 2; ?DK   r+c.||Sr4rdrs r*endTagHtmlBodyBrz/getPhases..InHeadPhase.endTagHtmlBodyBrrgr+cL|jdd|didSNunexpected-end-tagrMr rs r*r]z*getPhases..InHeadPhase.endTagOther* K " "#7&%-9P Q Q Q Q Qr+cJ|tddS)Nr)rr<rts r*r0z+getPhases..InHeadPhase.anythingElses" OOOF33 4 4 4 4 4r+rtitle)noframesstylenoscriptscript)basebasefontbgsoundcommandlinkr;r)rFrrN)rBrCrDr6rrrrrLrmrxr{r}rrrYrrr]r0r r^rr_rrJr+r* InHeadPhaserbsEGG        G G G H H H 4 4 4  G G G* < < < = = = I I I ; ; ;     @ @ @     R R R 5 5 52&1 \ " m $ "$9 : ) * ~ & ? $ & \ " \ " 3   #0// Z #%5 61   !, r+rceZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zejd e fde fde fgZe e_ejde fdefgZee_dS)&getPhases..InHeadNoscriptPhasecb|jd|dS)Nzeof-in-head-noscriptTr2rts r*rz1getPhases..InHeadNoscriptPhase.processEOF/s0 K " "#9 : : :      4r+cL|jjd|SNrV)rXrTrrs r*rz5getPhases..InHeadNoscriptPhase.processComment4s ;%h/>>uEE Er+cb|jd||S)Nzchar-in-head-noscriptr2rs r*rz8getPhases..InHeadNoscriptPhase.processCharacters7s0 K " "#: ; ; ;      Lr+cL|jjd|SrrXrTrrs r*rz=getPhases..InHeadNoscriptPhase.processSpaceCharacters< ;%h/FFuMM Mr+cL|jjd|SrRrSrs r*rz3getPhases..InHeadNoscriptPhase.startTagHtml?rTr+cL|jjd|SrrSrs r*rmz>getPhases..InHeadNoscriptPhase.startTagBaseLinkCommandBrTr+cL|jdd|didSNunexpected-start-tagrMr rs r*startTagHeadNoscriptz;getPhases..InHeadNoscriptPhase.startTagHeadNoscriptE* K " "#9FE&M;R S S S S Sr+ct|jdd|di||SNzunexpected-inhead-noscript-tagrMr2rs r*rYz4getPhases..InHeadNoscriptPhase.startTagOtherH< K " "#CfeTZmE\ ] ] ]      Lr+c|jjj}|jdksJd|jz|jjd|j_dS)NrzExpected noscript got %srVrrs r*endTagNoscriptz5getPhases..InHeadNoscriptPhase.endTagNoscriptMsX;#04466D9 ***,F,R*** $ 28 .InHeadNoscriptPhase.endTagBrRrr+cL|jdd|didSrr rs r*r]z2getPhases..InHeadNoscriptPhase.endTagOtherWrr+cJ|tddS)Nr)rr<rts r*r0z3getPhases..InHeadNoscriptPhase.anythingElseZs$    ; ; < < < < .AfterHeadPhasec.|dSr>rdrts r*rz,getPhases..AfterHeadPhase.processEOFnrer+c.||Sr4rdrs r*rz3getPhases..AfterHeadPhase.processCharactersrrgr+cL|jjd|SrRrSrs r*rz.getPhases..AfterHeadPhase.startTagHtmlvrTr+cd|j_|j||jjd|j_dS)NFr)rXrsrKrrTrnrs r* startTagBodyz.getPhases..AfterHeadPhase.startTagBodyys<%*DK " I # #E * * * $ 28 .AfterHeadPhase.startTagFrameset~s2 I # #E * * * $ 2< @DK   r+cr|jdd|di|jj|jj|jjd||jjdddD]/}|jdkr"|jj |dS0dS)Nz#unexpected-start-tag-out-of-my-headrMrVrr) rXrrKrrrWrTrrMremovers r*startTagFromHeadz2getPhases..AfterHeadPhase.startTagFromHeads K " "#H$*E&M#: < < < I " ) )$)*? @ @ @ K x ( 8 8 ? ? ? .ttt4  9&&I*11$777EE'  r+cL|jdd|didSrr rs r*rLz.getPhases..AfterHeadPhase.startTagHeadrr+c.||Sr4rdrs r*rYz/getPhases..AfterHeadPhase.startTagOtherrgr+c.||Sr4rdrs r*rz2getPhases..AfterHeadPhase.endTagHtmlBodyBrrgr+cL|jdd|didSrr rs r*r]z-getPhases..AfterHeadPhase.endTagOtherrr+c|jtdd|jjd|j_d|j_dS)NrrrT)rKrr<rXrTrnrsrts r*r0z.getPhases..AfterHeadPhase.anythingElsesF I # #OFJ$G$G H H H $ 28 efd?efd@efdAefdBefdCefdDefdEefdFefdGefdHefdIefdJe fdKe!fdLe"fdMe#fdNe$fdOe&fdPe'fdQe%fdRe(fdSe)fdTe*fZ;e+e;_<e7j8d7e-fd5e.fdUe/fd;e0fdVe,fdWe1fe:e2fdXe3fdBe4fdYe5fg Z=e6e=_<xZ>S)ZgetPhases..InBodyPhase)rcVt|j|i||j|_dSr4)superrVprocessSpaceCharactersNonPrer)rOrr' InBodyPhasers r*rVz'getPhases..InBodyPhase.__init__s6 -E+t $ $ -t >v > > >*.*KD ' ' 'r+cb|j|jko|j|jko|j|jkSr4)rMr}r~)rOnode1node2s r*isMatchingFormattingElementz:getPhases..InBodyPhase.isMatchingFormattingElements7J%*,9Ou69$(88 :r+c|j||jjd}g}|jjdddD]8}|turn,|||r||9t|dksJt|dkr%|jj|d|jj|dS)Nr) rKrractiveFormattingElementsr rrrr)rOrrmatchingElementsrs r*addFormattingElementz3getPhases..InBodyPhase.addFormattingElements I # #E * * *i,R0G!  :44R4@ 2 26>>E55dGDD2$++D111'((A----#$$)) 299:J2:NOOO I . 5 5g > > > > >r+ctd}|jjdddD](}|j|vr|jddS)dS)N) dddtlir)rrrrrrrrrz expected-closing-tag-but-got-eof)rrKrrMrXr)rOallowed_elementsrs r*rz)getPhases..InBodyPhase.processEOFss(*2 3 3  .ttt4  9$444K**+MNNNEE5  r+cT|d}|j|_|drG|jjdjdvr.|jjds |dd}|r5|j|j|dSdS)Nr r)prelistingtextarear) rrrrKrrM hasContent#reconstructActiveFormattingElementsr )rOrrs r*!processSpaceCharactersDropNewlinez@getPhases..InBodyPhase.processSpaceCharactersDropNewlines=D*.*KD '%%  &r*/3QQQ .r2==??RABBx + ==??? $$T***** + +r+c |ddkrdS|j|j|d|jjr-t d|dDrd|j_dSdSdS)Nrc g|] }|tv SrJrrLchars r* zDgetPhases..InBodyPhase.processCharacters..s-0000000r+F)rKrr rXrsanyrs r*rz0getPhases..InBodyPhase.processCharacterssV}(( I 9 9 ; ; ; I v / / / & /00!&v00011 /*/ &&& / / / /r+cx|j|j|ddSr )rKrr rs r*rz;getPhases..InBodyPhase.processSpaceCharactersNonPres6 I 9 9 ; ; ; I v / / / / /r+cL|jjd|SrrSrs r*startTagProcessInHeadz4getPhases..InBodyPhase.startTagProcessInHeadrTr+c|jdddit|jjdks|jjdjdkr|jjsJdSd|j_|dD]8\}}||jjdj vr||jjdj |<9dS)NrrMrrFr) rXrrrKrrMr`rsr5r~rs r*rz+getPhases..InBodyPhase.startTagBodys K " "#9FF;K L L LDI*++q00I*1-2f<<{,,,,,,). &#(=#6#6#8#8KKKD%49#9!#<#GGGEJ .q1.InBodyPhase.startTagFramesets5 K " "#9FJ;O P P PDI*++q00DI4J14M4RV\4\4\{,,,,,,[+ E9)!,3\I*1-4@@AWXYAZ[[[i,R05??I*..000i,R05?? ''...$(K$6|$D !!!r+c|jddr"|td|j|dSNr)buttonvariant)rKelementInScopeendTagPr<rrs r*startTagClosePz-getPhases..InBodyPhase.startTagClosePsUy''X'>> 3 _S11222 I # #E * * * * *r+c|jddr"|td|j|d|j_|j|_dS)Nr)rrF) rKrrr<rrXrsrrrs r*startTagPreListingz1getPhases..InBodyPhase.startTagPreListingsjy''X'>> 3 _S11222 I # #E * * *%*DK "*.*PD ' ' 'r+cD|jjr|jdddidS|jddr"|t d|j||jjd|j_dS)NrrMformr)rrr) rK formPointerrXrrrr<rrrs r* startTagFormz+getPhases..InBodyPhase.startTagFormsy$ C &&'=?OPPPPP9++C+BB7LL!5!5666 ''...(, (>r(B %%%r+cd|j_dgddgddgd}||d}t|jjD]X}|j|vr4|jjt|jdn|j tvr |jdvrnY|j d d r-|jjtd d|j |dS) NFrrr)rrrrMr)addressr,r)r)rr) rXrsreversedrKrrMrnrr< nameTuplerrr)rOr stopNamesMap stopNamesrs r*startTagListItemz/getPhases..InBodyPhase.startTagListItem&s%*DK "#'&#',#',00L%U6]3I !788  9 ))K%33' 8<<>>>ENo55 )@@@Ey''X'>> 4 !//#C22444 I # #E * * * * *r+c|jddr"|td|j||jjj|jj_dSr) rKrrr<rrXr\rmrkrs r*startTagPlaintextz0getPhases..InBodyPhase.startTagPlaintext<sjy''X'>> 3 _S11222 I # #E * * **.+*?*NDK ! ' ' 'r+ct|jddr"|td|jjdjt vrA|jdd|di|jj |j |dS)Nr)rrrrrM) rKrrr<rrMrrXrrrrs r*startTagHeadingz.getPhases..InBodyPhase.startTagHeadingBsy''X'>> 3 _S11222y%b)./AA &&'=f ?VWWW &**,,, I # #E * * * * *r+c|jd}|r|jdddd|t d||jjvr|jj|||jjvr|jj||j | |dS)Na$unexpected-start-tag-implies-end-tag startNameendName) rK!elementInActiveFormattingElementsrXrendTagFormattingr<rrrrr)rOr afeAElements r* startTagAz(getPhases..InBodyPhase.startTagAJs)EEcJJK K &&'M58S'I'IKKK%%oc&:&:;;;$)"888I*11+>>>$)"DDDI6==kJJJ I 9 9 ; ; ;  % %e , , , , ,r+cb|j||dSr4)rKrrrs r*startTagFormattingz1getPhases..InBodyPhase.startTagFormattingWs0 I 9 9 ; ; ;  % %e , , , , ,r+cH|j|jdrY|jdddd|t d|j||dS)Nnobrrr)rKrrrXrrr<rrs r* startTagNobrz+getPhases..InBodyPhase.startTagNobr[s I 9 9 ; ; ;y''// @ &&'M5;'O'OQQQ""?6#:#:;;; ==???  % %e , , , , ,r+c<|jdrB|jdddd|t d|S|j|j|d|j_dS)NrrrF) rKrrXrrr<rrrsrs r*startTagButtonz-getPhases..InBodyPhase.startTagButtonesy''11 / &&'M5=('S'SUUU""?8#<#<===  ==??? ''...). &&&r+c|j|j||jjt d|j_dSNF)rKrrrrr rXrsrs r*startTagAppletMarqueeObjectz:getPhases..InBodyPhase.startTagAppletMarqueeObjectpsU I 9 9 ; ; ; I # #E * * * I . 5 5f = = =%*DK " " "r+c|jddr"|td|jd|j_|j|ddS)Nr)rrFr)rKrrr<rrXrsrrs r* startTagXmpz*getPhases..InBodyPhase.startTagXmpvsuy''X'>> 3 _S11222 I 9 9 ; ; ;%*DK " K * *5) < < < < |jddr"|t d|j|d|j_|jjd|j_ dS)Nr-r)rrFr) rXrhrKrrr<rrsrTrnrs r* startTagTablez,getPhases..InBodyPhase.startTagTable}s{%119++C+BB=&&s';';<<< I # #E * * *%*DK " $ 29 =DK   r+c|j|j||jjd|d<d|j_dS)NTrF)rKrrrrrXrsrs r*startTagVoidFormattingz5getPhases..InBodyPhase.startTagVoidFormattings^ I 9 9 ; ; ; I # #E * * * I " & & ( ( (/3E+ ,%*DK " " "r+c|jj}||d|dvr8|ddtdkr||j_dSdSdS)Nr9rhidden)rXrsr&rr)rOrrss r* startTagInputz,getPhases..InBodyPhase.startTagInputsp/J  ' ' . . .%-''&M&)334DEEQQ)3 &&&('QQr+c|j||jjd|d<dSrkrlrs r*startTagParamSourcez2getPhases..InBodyPhase.startTagParamSourcernr+c|jddr"|td|j||jjd|d<d|j_dS)Nr)rrTrF) rKrrr<rrrrXrsrs r* startTagHrz)getPhases..InBodyPhase.startTagHrsy''X'>> 3 _S11222 I # #E * * * I " & & ( ( (/3E+ ,%*DK " " "r+c |jdddd|tdd|d|ddS) Nzunexpected-start-tag-treated-asimageimg originalNamenewNamerrrr~r)rXrrr<rs r* startTagImagez,getPhases..InBodyPhase.startTagImages{ K " "#D4;#N#N P P P   .InBodyPhase.startTagIsIndexs K " "#3fi5H I I Iy$ J5=((',V}X'> 8$  .InBodyPhase.startTagTextareasH I # #E * * **.+*?*KDK ! '*.*PD '%*DK " " "r+cHd|j_||dSr)rXrsstartTagRawtextrs r*startTagIFramez-getPhases..InBodyPhase.startTagIFrames&%*DK "   ' ' ' ' 'r+cv|jjr||dS||dSr4)rXrZrDrYrs r*rz/getPhases..InBodyPhase.startTagNoscriptsC{$ *$$U+++++""5)))))r+c<|j|ddS)z8iframe, noembed noframes, noscript(if scripting enabled)rNrzrs r*rDz.getPhases..InBodyPhase.startTagRawtextr~r+c|jjdjdkr,|jjt d|j|jj|dSNroption) rKrrMrXrnrr<rrrs r* startTagOptz*getPhases..InBodyPhase.startTagOptsny%b).(:: !//0I0IJJJ I 9 9 ; ; ; K  * *5 1 1 1 1 1r+c|j|j|d|j_|jj|jjd|jjd|jjd|jjd|jjd|jjdfvr|jjd|j_dS|jjd |j_dS) NFrrrrrrinSelectInTabler)rKrrrXrsrnrTrs r*startTagSelectz-getPhases..InBodyPhase.startTagSelects I 9 9 ; ; ; I # #E * * *%*DK "{ T[%7 %B%)[%7 %D%)[%7%H%)[%7 %F%)[%7%@%)[%7%A %CCC %)K$67H$I !!!$(K$6z$B !!!r+c|jdrM|j|jjdjdkr|j|j|dS)Nrubyr)rKrgenerateImpliedEndTagsrrMrXrrrs r* startTagRpRtz+getPhases..InBodyPhase.startTagRpRtsvy''// - 002229)"-2f<<K**,,, I # #E * * * * *r+cN|j|j||j|t d|d<|j||dr%|jjd|d<dSdS)Nr{r}rTr) rKrrXrrrrrrrs r* startTagMathz+getPhases..InBodyPhase.startTagMaths I 9 9 ; ; ; K . .u 5 5 5 K / / 6 6 6!+H!5E+  I # #E * * *]# 8 &**,,,37/000 8 8r+cN|j|j||j|t d|d<|j||dr%|jjd|d<dSdS)Nrr}rTr) rKrrXrrrrrrrs r* startTagSvgz*getPhases..InBodyPhase.startTagSvgs I 9 9 ; ; ; K + +E 2 2 2 K / / 6 6 6!+E!2E+  I # #E * * *]# 8 &**,,,37/000 8 8r+cL|jdd|didS)a5 Elements that should be children of other elements that have a different insertion mode; here they are ignored "caption", "col", "colgroup", "frame", "frameset", "head", "option", "optgroup", "tbody", "td", "tfoot", "th", "thead", "tr", "noscript" zunexpected-start-tag-ignoredrMNr rs r*startTagMisplacedz0getPhases..InBodyPhase.startTagMisplaceds- K " "#AFERXMCZ [ [ [ [ [r+cl|j|j|dSr4)rKrrrs r*rYz,getPhases..InBodyPhase.startTagOthers2 I 9 9 ; ; ; I # #E * * * * *r+cT|jddse|tdd|jdddi|tdddS|jd|jjdj dkr|jdddi|jj }|j dkr+|jj }|j dk)dSdS) Nr)rrrrrMrr) rKrrr<rXrrrQrrMrrs r*rz&getPhases..InBodyPhase.endTagPs9++C+BB 8##OC$D$DEEE &&';fc]KKK _S(;;<<<<< 005559)"-2c99K**+?&#OOOy-1133i3&&915577Di3&&&&&&r+c|jds|jdS|jjdjdkrR|jjddD]=}|jt dvr%|jdd|jdn>|jjd|j_dS)Nrr)rrroptgrouprJr)rprtrrrrrrrr$expected-one-end-tag-but-got-anothergotName expectedName afterBody) rKrrXrrrMrrTrnrs r* endTagBodyz)getPhases..InBodyPhase.endTagBody)s9++F33  &&((('+0F:: I21226  Dy 3;)<)<<<  ..B(. JJLLL<!% 2; ?DK   r+c|jdr$|td|SdS)Nr)rKrrer<rs r* endTagHtmlz)getPhases..InBodyPhase.endTagHtml;sCy''//  7 7888   r+c|ddkr |j|_|j|d}|r|j|jjdj|dkr#|jdd|di|r`|jj }|j|dkr3|jj }|j|dk/dSdSdS)NrMrrend-tag-too-early) rrrKrrQrrMrXrr)rOrinScopers r* endTagBlockz*getPhases..InBodyPhase.endTagBlockAsV}%%.2.O+i..uV}==G 3 00222y%b).%-?? &&':VU6].InBodyPhase.endTagFormOs9(D$(DI !|49#;#;D#A#A| &&';(.'799999 002229)"-55K**+F,2F+;=== &--d33333r+c@|ddkrd}nd}|j|d|s%|jdd|didS|j|d|jjdj|dkr#|jdd|di|jj}|j|dkr1|jj}|j|dk/dSdS) NrMrlistrrexcluderri)rKrrXrrQrrMr)rOrrrs r*endTagListItemz-getPhases..InBodyPhase.endTagListItem\s&V}$$ 9++E&M7+KK 8 &&';feFm=TUUUUU 00v0GGG9)"-2eFmCCK**+v/111y-1133i5=00915577Di5=000000r+c tD]7}|j|r|jn8|jjdj|dkr#|jdd|ditD]w}|j|r[|jj}|jtvr,|jj}|jtv,dSxdS)NrrMri) rrKrrQrrMrXrr)rOritems r* endTagHeadingz,getPhases..InBodyPhase.endTagHeadingms '  9++D11I44666Ey%b).%-?? &&':VU6].InBodyPhase.endTagFormatting|s9 ! #Q&&!A% %)I$O$O&M%#%#!)!_&$)*@@@112C2HIIA $$U+++F 'di.DDDK**+@65QW=BYZZZI6==>OPPPF 112C2HII _K**+@65QW=BYZZZF)DI,B2,FFF ../DvuU[}F]^^^ 91778IJJ $ #y5hii@G(O;;(/ <!("i488::G!%666"&)"8"<"<">">"%666I6==gFFFF"&!71 !E 9=CCDUVV#0/4#$  .44T::&**$)$QJE91%8D49#EEE .55d;;; 000=00#'9#E#K#KD#Q#QTU#U NN,,EKPI6 :@@FFH?DI* .44T::< D > 33H===$$X...#H9'**D?:O//999!&)4^*_*___+/9+R+R+T+T(FL'',????"..x888*3355..u555))%000 299:KLLL 299(EJJJ &--.?@@@ &--I*00??!CULLLo#Q&&&&&&r+c2|j|dr|j|jjdj|dkr#|jdd|di|j|dry|jj}|j|dkr/|jj}|j|dk/|jdSdS)NrMrri) rKrrQrrMrXrrclearActiveFormattingElements)rOrrs r*endTagAppletMarqueeObjectz8getPhases..InBodyPhase.endTagAppletMarqueeObjectsy''f 66 3 00222y%b).%-?? &&':VU6].InBodyPhase.endTagBr+s~ K " "#B48\#R#R T T T I 9 9 ; ; ; I # #OD*$E$E F F F I " & & ( ( ( ( (r+c|jjdddD]}|j|dkr|j|d|jjdj|dkr#|jdd|di|jj|kr# |jj|k#dS|jtvr&|jdd|didSdS)NrrMrpr) rKrrMrQrXrrrrrs r*r]z*getPhases..InBodyPhase.endTagOther2s .ttt4  9f --I44U6]4KKKy-b16%-GG ../CfeTZmE\]]])04466$>>)04466$>>EE~88 ../CfeTZmE\]]]9  r+r) rrrrrr;rrrrr)rarticleaside blockquotecenterdetailsdirr,dlfieldset figcaptionfigurefooterheaderhgroupmainmenunavolr)sectionsummaryul)rrr)rrrrcr) bbigcodeemfontissmallstrikestrongtturr)appletmarqueeobjectxmpr)arearFembedr0keygenwbr)paramsourcetrackr=r9r/r7riframer)noembedrr)r^r_)rJr]mathr) rcolrframerrrrrrr)rrrrrrrdialogrr,rrrrrrrrrrrrrrrrr))rrr)rrrrrrrrrrrrrrrF)?rBrCrDrrVrrrrrrrrrrrrrr r rrrrr r"r$r&r)r+r-r5r@rBrErrDrKrNrRrTrVrXrYrrergrkrmrrrurrrr]r r^rrrr_r __classcell__)rrrs@r*rrs0  L L L L L L  : : :  ? ? ?"    + + + / / / 0 0 0 G G G K K K E E E + + +  Q Q Q C C C + + +, O O O  + + + - - - - - - - - - / / / + + +  = = = > > > + + + 4 4 4 4 4 4  + + + T T T 8 8 8> + + +  ( ( ( * * *  = = = 2 2 2 C C C + + + 8 8 8 8 8 8 \ \ \ + + + 8 8 8 @ @ @$    8 8 8 4 4 4 8 8 8"   a La La LF : : : ) ) )   2&1,3 U' (,3 * " $,3 \ " ,3 ) * ,3 *  ,3 o .,3  !3 4,3 \ ",3  !1 2,3 + ,!,3 ") #,3 $#$6 8%,3 (\ "),3 *~ &+,3 ,-.I J-,3 .K /,3 0m $1,3 2= # %3,3 6*+> ?7,3 8m $9,3 :: ;,3 <m $=,3 > (?,3 @) *A,3 B~ &C,3 D) *E,3 F%o 6G,3 H~ &I,3 J< (K,3 L$[ 1M,3 N| $O,3 Pk "Q,3 R& (S,3 , , Z#0// Z Z *,7 8Z 'N  0 m ,-.> @ ,.G H 8 1   !, r+rceZdZeZdZdZdZdZdZ e j gZ ee _ e j defgZe e_ dS)getPhases..TextPhasecF|j|ddSr r rs r*rz.getPhases..TextPhase.processCharactersrr+c|jdd|jjdji|jj|jj|j_dS)Nz&expected-named-closing-tag-but-got-eofrMrT)rXrrKrrMrrrnrts r*rz'getPhases..TextPhase.processEOFsb K " "#K$*DI,B2,F,K#L N N N I " & & ( ( ( $ 9DK 4r+c(Jd|dz)NFz4Tried to process start tag %s in RCDATA/RAWTEXT moderMrJrs r*rYz*getPhases..TextPhase.startTagOthers `PSXY_S`` ` ` `r+c|jj}|jdksJ|jj|j_dS)Nr)rKrrrMrXrrnrs r* endTagScriptz)getPhases..TextPhase.endTagScripts@9)--//D9(((( $ 9DK   r+cn|jj|jj|j_dSr4)rKrrrXrrnrs r*r]z(getPhases..TextPhase.endTagOthers. I " & & ( ( ( $ 9DK   r+rN)rBrCrDr6rrrrYrr]r r^rr_rrJr+r* TextPhasersEGG  0 0 0    a a a : : : : : :2&1"55"/// | $1&'' + r+rc >eZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZejdjfde fde fde fde fdefdefdefdefdefg Zee_ejdefdefgZee_dS)getPhases..InTablePhasec|jjdjdvr9|jj|jjdjdv7dSdS)Nr)rr)rKrrMrrts r*clearStackToTableContextz8getPhases..InTablePhase.clearStackToTableContexts[)(,19JJJ &**,,,)(,19JJJJJJJr+c|jjdjdkr|jddS|jjsJdS)Nrrz eof-in-tablerKrrMrXrr`rts r*rz*getPhases..InTablePhase.processEOFsMy%b).&88 &&~66666{,,,,,,r+c|jj}|jjd|j_||jj_|jj|dSN inTableText)rXrnrTrrrOrrs r*rz6getPhases..InTablePhase.processSpaceCharacterssL K-M $ 2= ADK .;DK  + K  4 4U ; ; ; ; ;r+c|jj}|jjd|j_||jj_|jj|dSr)rXrnrTrrrs r*rz1getPhases..InTablePhase.processCharacterssL K-M $ 2= ADK .;DK  + K  / / 6 6 6 6 6r+cd|j_|jjd|d|j_dS)NTrF)rKinsertFromTablerXrTrrs r*r z*getPhases..InTablePhase.insertTexts<)-DI % K x ( : :5 A A A(-DI % % %r+c||jjt|j||jjd|j_dS)Nr) rrKrrr rrXrTrnrs r*startTagCaptionz/getPhases..InTablePhase.startTagCaptions]  ) ) + + + I . 5 5f = = = I # #E * * * $ 2; ?DK   r+c||j||jjd|j_dS)NrrrKrrXrTrnrs r*startTagColgroupz0getPhases..InTablePhase.startTagColgroupsD  ) ) + + + I # #E * * * $ 2? CDK   r+cL|tdd|S)Nrr)rr<rs r* startTagColz+getPhases..InTablePhase.startTagCols%  ! !/*j"I"I J J JLr+c||j||jjd|j_dSNrrrs r*startTagRowGroupz0getPhases..InTablePhase.startTagRowGroupsD  ) ) + + + I # #E * * * $ 2= ADK   r+cL|tdd|S)Nrr)rr<rs r*startTagImplyTbodyz2getPhases..InTablePhase.startTagImplyTbodys%  ! !/':"F"F G G GLr+c|jdddd|jjt d|jjs|SdS)Nrrr)rXrrnrr<r`rs r*r$z-getPhases..InTablePhase.startTagTablesj K " "#I18W#M#M O O O K  + +OG,D,D E E E;(    r+cL|jjd|SrrSrs r*startTagStyleScriptz3getPhases..InTablePhase.startTagStyleScriptrTr+c@d|dvr~|ddtdkrT|jd|j||jjdS||dS)Nr9rr(z unexpected-hidden-input-in-table) rrrXrrKrrrrYrs r*r)z-getPhases..InTablePhase.startTagInputs%-''&M&)334DEEQQ &&'IJJJ ''... &**,,,,,""5)))))r+c|jd|jjV|j||jjd|j_|jjdSdS)Nzunexpected-form-in-tabler)rXrrKrrrrrs r*rz,getPhases..InTablePhase.startTagFormss K " "#= > > >y$, ''...(, (>r(B % &**,,,,,-,r+c|jdd|did|j_|jjd|d|j_dS)Nz)unexpected-start-tag-implies-table-voodoorMTrF)rXrrKrrTrrs r*rYz-getPhases..InTablePhase.startTagOthers` K " "#NQWY^_eYfPg h h h(,DI % K x ( 8 8 ? ? ?(-DI % % %r+ct|jddr|j|jjdjdkr3|jdd|jjdjd|jjdjdkr9|jj|jjdjdk9|jj|jdS|jj sJ|jdS)Nrrrzend-tag-too-early-namedra) rKrrQrrMrXrrrpr`rs r* endTagTablez+getPhases..InTablePhase.endTagTables4y'''AA ) 002229)"-2g==K**+D7><@I.InTablePhase.endTagIgnorerr+c|jdd|did|j_|jjd|d|j_dS)Nz'unexpected-end-tag-implies-table-voodoorMTrF)rXrrKrrTrrs r*r]z+getPhases..InTablePhase.endTagOthers_ K " "#LvW\]cWdNe f f f(,DI % K x ( 6 6u = = =(-DI % % %r+rrrrrrr)rrrr)rrr=r) rrrrrrrrrrrN)rBrCrDr6rrrrrr rrrrrr$rr)rrYrrr]r r^rrr_rrsr* InTablePhasersEGG  - - - - - - < < <  7 7 7  . . . @ @ @  D D D     B B B        G G G * * * - - - . . . ) ) )  R R R . . .2&1 U' (  ( ) * K (*: ; !3 4 m $ "5 6 m $ \ " 3   #0// k ",-9 ;1   !, r+rcPeZdZdZfdZdZdZdZdZdZ dZ d Z xZ S) #getPhases..InTableTextPhase)rcharacterTokenscZt|j|i|d|_g|_dSr4)rrVrr)rOrr'InTableTextPhasers r*rVz,getPhases..InTableTextPhase.__init__6s< 2E"D ) ) 2D CF C C C!%D #%D r+c2dd|jD}td|Dr6td|d}|jjd|n|r|j|g|_dS)Nr,cg|] }|d S)rrJrLrts r*rzGgetPhases..InTableTextPhase.flushCharacters..<sJJJTDLJJJr+c g|] }|tv SrJrrs r*rzGgetPhases..InTableTextPhase.flushCharacters..=sAAADD/AAAr+rr<r)joinrrrrXrTr rK)rOrrs r*flushCharactersz3getPhases..InTableTextPhase.flushCharacters;s77JJT5IJJJKKDAADAAABB +!+L!94HH "9-88???? + $$T***#%D r+cP||j|j_|Sr4rrrXrnrs r*rz2getPhases..InTableTextPhase.processCommentD&  " " " $ 2DK Lr+cP||j|j_dSr>rrts r*rz.getPhases..InTableTextPhase.processEOFIs&  " " " $ 2DK 4r+cV|ddkrdS|j|dSNrrrrrs r*rz5getPhases..InTableTextPhase.processCharactersNs3V}((  ' ' . . . . .r+c:|j|dSr4rrs r*rz:getPhases..InTableTextPhase.processSpaceCharactersSs  ' ' . . . . .r+cP||j|j_|Sr4rrs r*rz3getPhases..InTableTextPhase.processStartTagXrr+cP||j|j_|Sr4rrs r*rz1getPhases..InTableTextPhase.processEndTag]rr+) rBrCrDrrVrrrrrrrr)rrs@r*rr3s8  & & & & & &  & & &         / / /  / / /            r+rceZdZeZdZdZdZdZdZ dZ dZ dZ d Z ejd jfd efgZe e_ejd e fd e fde fgZe e_dS)!getPhases..InCaptionPhasec<|jdd S)NrrrrKrrts r*ignoreEndTagCaptionz5getPhases..InCaptionPhase.ignoreEndTagCaptionfs y// 7/KKK Kr+cN|jjddSrRrXrTrrts r*rz,getPhases..InCaptionPhase.processEOFi$ K x ( 3 3 5 5 5 5 5r+cL|jjd|SrRrXrTrrs r*rz3getPhases..InCaptionPhase.processCharactersl ;%h/AA%HH Hr+c|j|}|jjt d|s|SdSNrrXrr rnrr<rOr ignoreEndTags r*startTagTableElementz6getPhases..InCaptionPhase.startTagTableElementos_ K " " $ $ $3355L K  + +OI,F,F G G G    r+cL|jjd|SrRrSrs r*rYz/getPhases..InCaptionPhase.startTagOtherwrTr+c|s|j|jjdjdkr3|jdd|jjdjd|jjdjdkr9|jj|jjdjdk9|jj|j|jj d|j_ dS|jj sJ|jdS)Nrrr`rar) r rKrQrrMrXrrrrTrnr`rs r* endTagCaptionz/getPhases..InCaptionPhase.endTagCaptionzs?++-- ) 002229)"-2i??K**+Q7@<@I.InCaptionPhase.endTagTables_ K " " $ $ $3355L K  + +OI,F,F G G G    r+cL|jdd|didSrr rs r*rz.getPhases..InCaptionPhase.endTagIgnorerr+cL|jjd|SrRrXrTrrs r*r]z-getPhases..InCaptionPhase.endTagOther ;%h/==eDD Dr+r rrrrrrrrrrr) rrrrrrrrrrN)rBrCrDr6rr rrrrYrrrr]r r^rrr_rrsr*InCaptionPhaserbs/EGG  L L L 6 6 6 I I I    G G G ) ) )$    R R R E E E2&1 U' (2 43    #0//  & k "* ,1   !, r+rceZdZeZdZdZdZdZdZ dZ dZ dZ e jd jfd efgZe e_e jd e fd e fgZe e_d S) %getPhases..InColumnGroupPhasec8|jjdjdkS)Nrr)rKrrMrts r*ignoreEndTagColgroupz:getPhases..InColumnGroupPhase.ignoreEndTagColgroups9)"-2f< .InColumnGroupPhase.processEOFsty%b).&88{,,,,#88:: ##OJ$?$?@@@# 4  r+cz|}|td|s|SdSNrr#r%r<rs r*rz7getPhases..InColumnGroupPhase.processCharactersF4466L    ; ; < < <    r+c|j||jjd|d<dSrkrlrs r*rz1getPhases..InColumnGroupPhase.startTagColrnr+cz|}|td|s|SdSr'r(rs r*rYz3getPhases..InColumnGroupPhase.startTagOtherr)r+c|r)|jjsJ|jdS|jj|jjd|j_dSNr) r#rXr`rrKrrrTrnrs r*r%z4getPhases..InColumnGroupPhase.endTagColgroupss((** B{,,,, &&((((( &**,,,$(K$6y$A !!!r+c@|jdddidS)Nz no-end-tagrMrr rs r* endTagColz/getPhases..InColumnGroupPhase.endTagCols$ K " "<&% A A A A Ar+cz|}|td|s|SdSr'r(rs r*r]z1getPhases..InColumnGroupPhase.endTagOtherr)r+rrrN)rBrCrDr6rr#rrrrYr%r/r]r r^rrr_rrsr*InColumnGroupPhaser!sEGG  = = =        4 4 4      B B B B B B    2&1 U' ( K 3   #0//  ( I 1   !, r+r1ceZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zejd jfde fde fde fgZe e_ejde fdefdefgZee_dS)#getPhases..InTableBodyPhasec|jjdjdvr7|jj|jjdjdv7|jjdjdkr|jjsJdSdS)Nr)rrrrr)rKrrMrrXr`rts r*clearStackToTableBodyContextz@getPhases..InTableBodyPhase.clearStackToTableBodyContexts)(,1:KKK &**,,, )(,1:KKK y%b).&88{,,,,98,,r+cN|jjddSr-r rts r*rz.getPhases..InTableBodyPhase.processEOF$ K y ) 4 4 6 6 6 6 6r+cL|jjd|Sr-rrs r*rz:getPhases..InTableBodyPhase.processSpaceCharacters ;%i0GGNN Nr+cL|jjd|Sr-rrs r*rz5getPhases..InTableBodyPhase.processCharacters ;%i0BB5II Ir+c||j||jjd|j_dS)Nr)r5rKrrXrTrnrs r* startTagTrz.getPhases..InTableBodyPhase.startTagTrsD  - - / / / I # #E * * * $ 27 ;DK   r+c|jdd|di|tdd|S)Nzunexpected-cell-in-table-bodyrMrr)rXrr=r<rs r*startTagTableCellz5getPhases..InTableBodyPhase.startTagTableCellsL K " "#B$*E&M#: < < < OOOD*== > > >Lr+c|jdds8|jdds|jddrM||t |jjdj|S|jjsJ|j dSNrrrrrr rKrr5endTagTableRowGroupr<rrMrXr`rrs r*startTagTableOtherz6getPhases..InTableBodyPhase.startTagTableOther s (('(BB ) (('(BB )I,,Wg,FF )11333((#DI$:2$>$CDDFFF {,,,, &&(((((r+cL|jjd|Sr-rSrs r*rYz1getPhases..InTableBodyPhase.startTagOther ;%i0@@GG Gr+c0|j|ddrP||jj|jjd|j_dS|jdd|didS)NrMrrr unexpected-end-tag-in-table-body) rKrr5rrrXrTrnrrs r*rCz7getPhases..InTableBodyPhase.endTagTableRowGroupsy''f w'GG @11333 &**,,,$(K$6y$A !!! &&'I(.f '>@@@@@r+c|jdds8|jdds|jddrM||t |jjdj|S|jjsJ|j dSrArBrs r*rz/getPhases..InTableBodyPhase.endTagTable%s (('(BB ) (('(BB )I,,Wg,FF )11333((#DI$:2$>$CDDFFF {,,,, &&(((((r+cL|jdd|didS)NrHrMr rs r*rz0getPhases..InTableBodyPhase.endTagIgnore25 K " "#E$*E&M#: < < < < .InTableBodyPhase.endTagOther6 ;%i0>>uEE Er+rrrr)rrrrrrrr)rrrrrrrrN)rBrCrDr6rr5rrrr=r?rDrYrCrrr]r r^rrr_rrsr*InTableBodyPhaser3slEGG  - - - 7 7 7 O O O J J J < < <     ) ) ) H H H @ @ @ ) ) ) < < < F F F2&1 U' ( :  , - F  ! 3   #0// (*= > k "! #1   !, r+rOceZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd Zejdjfde fde fgZe e_ejde fdefdefdefgZee_dS)getPhases..InRowPhasec|jjdjdvrk|jdd|jjdji|jj|jjdjdvidSdS)Nr)rrz'unexpected-implied-end-tag-in-table-rowrM)rKrrMrXrrrts r*clearStackToTableRowContextz9getPhases..InRowPhase.clearStackToTableRowContextOs)(,1GG &&'P(. 0Fr0J0O'PRRR &**,,,)(,1GGGGGGr+c<|jdd S)Nrrrrrts r*ignoreEndTagTrz,getPhases..InRowPhase.ignoreEndTagTrUs y//g/FFF Fr+cN|jjddSr-r rts r*rz(getPhases..InRowPhase.processEOFYr7r+cL|jjd|Sr-rrs r*rz4getPhases..InRowPhase.processSpaceCharacters\r9r+cL|jjd|Sr-rrs r*rz/getPhases..InRowPhase.processCharacters_r;r+c||j||jjd|j_|jjtdS)Nr) rSrKrrXrTrnrrr rs r*r?z/getPhases..InRowPhase.startTagTableCellbs]  , , . . . I # #E * * * $ 28 .InRowPhase.startTagTableOtherhsD..00L MM/$// 0 0 0    r+cL|jjd|Sr-rSrs r*rYz+getPhases..InRowPhase.startTagOtherorFr+c|sP||jj|jjd|j_dS|jjsJ|j dSr) rUrSrKrrrXrTrnr`rrs r*r]z&getPhases..InRowPhase.endTagTrrs&&(( )00222 &**,,,$(K$6}$E !!!{,,,, &&(((((r+cz|}|td|s|SdSr[r\rs r*rz)getPhases..InRowPhase.endTagTable|sF..00L MM/$// 0 0 0     r+c|j|ddr$|td|S|jdS)NrMrrr)rKrr]r<rXrrs r*rCz1getPhases..InRowPhase.endTagTableRowGroups\y''f w'GG ) od33444  &&(((((r+cL|jdd|didS)Nzunexpected-end-tag-in-table-rowrMr rs r*rz*getPhases..InRowPhase.endTagIgnores5 K " "#D$*E&M#: < < < < .InRowPhase.endTagOtherrMr+rrN)rrrrrrrrrr)rrrrrrrN)rBrCrDr6rrSrUrrrr?rDrYr]rrCrr]r r^rrr_rrsr* InRowPhaserQJs{EGG  - - -  G G G 7 7 7 O O O J J J > > >     H H H ) ) )    ) ) ) < < < F F F2&1 U' ( , -' )3    #0// 8  k " (*= > G   1   !, r+rdceZdZeZdZdZdZdZdZ dZ dZ dZ d Z ejd jfd efgZe e_ejd e fd e fde fgZe e_dS)getPhases..InCellPhasec|jddr$|tddS|jddr$|tddSdSNrrrr)rKrendTagTableCellr<rts r* closeCellz(getPhases..InCellPhase.closeCellsy''g'>> <$$_T%:%:;;;;;))$)@@ <$$_T%:%:;;;;; < .InCellPhase.processEOFr r+cL|jjd|SrRrrs r*rz0getPhases..InCellPhase.processCharactersrr+c|jdds|jddr||S|jjsJ|jdSrh)rKrrjrXr`rrs r*rDz1getPhases..InCellPhase.startTagTableOthers~ ((w(?? )I,,T7,CC )    {,,,, &&(((((r+cL|jjd|SrRrSrs r*rYz,getPhases..InCellPhase.startTagOtherrTr+ch|j|ddr|j|d|jjdj|dkrV|jdd|di |jj}|j|dkrn1n|jj|j|jj d|j_ dS|jdd|didS) NrMrrrzunexpected-cell-end-tagTrr) rKrrQrrMrXrrrrTrnrs r*riz.getPhases..InCellPhase.endTagTableCells,y''f w'GG V 00v???9)"-2eFmCCK**+D,2E&M+BDDD"#y599;;9f 55!""I*..000 77999$(K$6w$? !!! &&';feFm=TUUUUUr+cL|jdd|didSrr rs r*rz+getPhases..InCellPhase.endTagIgnorerr+c|j|ddr||S|jdS)NrMrr)rKrrjrXrrs r* endTagImplyz*getPhases..InCellPhase.endTagImplysTy''f w'GG )     &&(((((r+cL|jjd|SrRrrs r*r]z*getPhases..InCellPhase.endTagOtherrr+rrrN)rrrrrrxN)rBrCrDr6rrjrrrDrYrirrrr]r r^rrr_rrsr* InCellPhaserfs*EGG  < < < 6 6 6 I I I ) ) ) G G G V V V" R R R ) ) ) E E E2&1 U' (0 23    #0// ? + ;\ J 7 E1   !, r+rtc eZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zejd jfdefdefde fde fde fgZe e_ejde fdefdefgZee_dS) getPhases..InSelectPhasec|jjdjdkr|jddS|jjsJdS)Nrrz eof-in-selectrrts r*rz+getPhases..InSelectPhase.processEOFsMy%b).&88 &&77777{,,,,,,r+cb|ddkrdS|j|ddSrr rs r*rz2getPhases..InSelectPhase.processCharacterss6V}(( I v / / / / /r+c|jjdjdkr|jj|j|dSrIrKrrMrrrs r*startTagOptionz/getPhases..InSelectPhase.startTagOptionsMy%b).(:: &**,,, I # #E * * * * *r+c|jjdjdkr|jj|jjdjdkr|jj|j|dS)NrrJr]rzrs r*startTagOptgroupz1getPhases..InSelectPhase.startTagOptgroup s|y%b).(:: &**,,,y%b).*<< &**,,, I # #E * * * * *r+c~|jd|tddS)Nzunexpected-select-in-selectr)rXr endTagSelectr<rs r*rNz/getPhases..InSelectPhase.startTagSelect s; K " "#@ A A A   oh77 8 8 8 8 8r+c|jd|jddr$|t d|S|jjsJdS)Nzunexpected-input-in-selectrr)rXrrKrrr<r`rs r*r)z.getPhases..InSelectPhase.startTagInput sn K " "#? @ @ @y''('CC -!!/(";";<<< {,,,,,,r+cL|jjd|SrrSrs r*rz/getPhases..InSelectPhase.startTagScript rTr+cL|jdd|didS)Nzunexpected-start-tag-in-selectrMr rs r*rYz.getPhases..InSelectPhase.startTagOther 5 K " "#C$*E&M#: < < < < .InSelectPhase.endTagOption sfy%b).(:: &**,,,,, &&'E(.'9;;;;;r+c^|jjdjdkr9|jjdjdkr|jj|jjdjdkr |jjdS|jdddidS)NrrJr]rrMrrs r*endTagOptgroupz/getPhases..InSelectPhase.endTagOptgroup% s &r*/8;;I*2.3zAA &**,,,y%b).*<< &**,,,,, &&'E(. ';=====r+cf|jddrm|jj}|jdkr)|jj}|jdk)|jdS|jjsJ|jdS)Nrr) rKrrrrMrXrpr`rrs r*rz-getPhases..InSelectPhase.endTagSelect2 sy''('CC )y-1133i8++915577Di8++ ..00000{,,,, &&(((((r+cL|jdd|didS)NrrMr rs r*r]z,getPhases..InSelectPhase.endTagOther= 5 K " "#A$*E&M#: < < < < .InSelectInTablePhasecN|jjddSNrr rts r*rz2getPhases..InSelectInTablePhase.processEOFU s$ K z * 5 5 7 7 7 7 7r+cL|jjd|Srrrs r*rz9getPhases..InSelectInTablePhase.processCharactersX s ;%j1CCEJJ Jr+c|jdd|di|td|S)Nz5unexpected-table-element-start-tag-in-select-in-tablerMr)rXrr]r<rs r*r$z5getPhases..InSelectInTablePhase.startTagTable[ sI K " "#Z]cejkqer\s t t t   _X66 7 7 7Lr+cL|jjd|SrrSrs r*rYz5getPhases..InSelectInTablePhase.startTagOther` s ;%j1AA%HH Hr+c|jdd|di|j|ddr$|t d|SdS)Nz3unexpected-table-element-end-tag-in-select-in-tablerMrrr)rXrrKrr]r<rs r*rz3getPhases..InSelectInTablePhase.endTagTablec st K " "#X[achiocpZq r r ry''f w'GG   !:!:;;;   r+cL|jjd|Srrrs r*r]z3getPhases..InSelectInTablePhase.endTagOtheri s ;%j1??FF Fr+)rrrrrrrrN)rBrCrDr6rrrr$rYrr]r r^rr_rrJr+r*InSelectInTablePhaserR sEGG  8 8 8 K K K     I I I     G G G2&1 N  3   #0// N  1   !, r+rcZeZdZeZegdZdZfdZdZ dZ dS)(getPhases..InForeignContentPhase),rrrrrFrrrr,rrrrh1h2h3h4h5h6rr9rr0rrrr;rrr)rrPrrspanrrsubsuprrrrvarciddddddddd d d d d ddddddddddddddddddd d!d"id#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdG}|dH|vr||dH|dH<dSdS)INaltglyphaltGlyph altglyphdef altGlyphDef altglyphitem altGlyphItem animatecolor animateColor animatemotion animateMotionanimatetransformanimateTransformclippathclipPathfeblendfeBlend fecolormatrix feColorMatrixfecomponenttransferfeComponentTransfer fecomposite feCompositefeconvolvematrixfeConvolveMatrixfediffuselightingfeDiffuseLightingfedisplacementmapfeDisplacementMapfedistantlightfeDistantLightfefloodfeFloodfefuncafeFuncAfefuncbfeFuncBfefuncgfeFuncGfefuncrfeFuncRfegaussianblurfeGaussianBlurfeimagefeImagefemergefeMerge femergenode feMergeNode femorphology feMorphologyfeoffsetfeOffset fepointlight fePointLightfespecularlightingfeSpecularLighting fespotlight feSpotLightfetilefeTile feturbulence feTurbulence foreignobject foreignObjectglyphrefglyphReflineargradientlinearGradientradialGradienttextPath)radialgradienttextpathrMrJ)rOr replacementss r*adjustSVGTagNamesz:getPhases..InForeignContentPhase.adjustSVGTagNames s#4J #4)=#4*N#4+N#4,_ #4 /0B #4 ' #4&y#4,_#423H#4*=#4/0B#401D#401D#4-.>#4&y#4 &y!#4#4"&y##4$&y%#4&&y'#4(-.>)#4*&y+#4,&y-#4.*=/#40+N1#42' 3#44+N5#4612F7#48*=9#4:%h;#4<+N=#4>,_?#4@' A#4B-.>C#4#4D/?(2G#4#4#4LJV} ,, ,U6] ;f -,r+c|ddkrd|d<n7|jjr+td|dDr d|j_||dS)Nrru�c3(K|] }|tvVdSr4rrs r* zMgetPhases..InForeignContentPhase.processCharacters.. s'LLdd/1LLLLLLr+F)rXrsrr)rOrrs r*rz:getPhases..InForeignContentPhase.processCharacters ssV}(( (f +( /LLeFmLLLLL /). &  # #D% 0 0 0 0 0r+c|jjd}|d|jvs:|ddkrbt|dhdzr5|jdd|di|jjdj|jjkr|j |jjds|j |jjds|jj |jjdj|jjkrT|j |jjds*|j |jjd|S|jtdkr|j |nE|jtdkr/|||j||j||j|d <|j||d r%|jj d |d <dSdS) NrrMrr>facesizecolorz*unexpected-html-element-in-foreign-contentr{rr}rTr)rKrbreakoutElementssetkeysrXrr}rrrrrrrrrr)rOrrs r*rz8getPhases..InForeignContentPhase.processStartTag sc)04Kf !666v&((U6]''))**-F-F-FF) &&'S(.f '>@@@y-b1;y122;==di>TUW>XYY2 ;CCDIDZ[]D^__2I*..000 y-b1;y122;==di>TUW>XYY2 ;CCDIDZ[]D^__2  (Jx,@@@K66u==== *j.???**5111K33E::: 33E:::%0%:k" ''...'<I*..0007;E3444<.InForeignContentPhase.processEndTag ssDI233a7I9)"-Dy""#344f EE &&';feFm=TUUU 9&&'788E&MII{(DK,>},MMM )99;;;,0K,=,K ))04466$>>#y5555)04466$>> $IQ y-i8>TY%??? $ 1 ? ? F FI r+N) rBrCrDr6rrrrrrrrsr*InForeignContentPhaserx sEGG $9&G&G&GHH' <' <' .AfterBodyPhasecdSr4rJrts r*rz,getPhases..AfterBodyPhase.processEOF  Dr+c\|j||jjddS)Nrrrs r*rz0getPhases..AfterBodyPhase.processComment s, I # #E49+A!+D E E E E Er+cr|jd|jjd|j_|S)Nzunexpected-char-after-bodyrrXrrTrnrs r*rz3getPhases..AfterBodyPhase.processCharacters s2 K " "#? @ @ @ $ 28 .AfterBodyPhase.startTagHtml rTr+c|jdd|di|jjd|j_|S)Nzunexpected-start-tag-after-bodyrMrrrs r*rYz/getPhases..AfterBodyPhase.startTagOther sD K " "#D$*E&M#: < < < $ 28 .AfterBodyPhase.endTagHtml sH{$ I &&'PQQQQQ$(K$67G$H !!!r+c|jdd|di|jjd|j_|S)Nzunexpected-end-tag-after-bodyrMrrrs r*r]z-getPhases..AfterBodyPhase.endTagOther sD K " "#B$*E&M#: < < < $ 28 .InFramesetPhasec|jjdjdkr|jddS|jjsJdS)Nrrzeof-in-framesetrrts r*rz-getPhases..InFramesetPhase.processEOF sNy%b).&88 &&'899999{,,,,,,r+c:|jddS)Nzunexpected-char-in-framesetr rs r*rz4getPhases..InFramesetPhase.processCharacters" s K " "#@ A A A A Ar+c:|j|dSr4)rKrrs r*rz3getPhases..InFramesetPhase.startTagFrameset% s I # #E * * * * *r+cv|j||jjdSr4rlrs r* startTagFramez0getPhases..InFramesetPhase.startTagFrame( s5 I # #E * * * I " & & ( ( ( ( (r+cL|jjd|SrRrSrs r*startTagNoframesz3getPhases..InFramesetPhase.startTagNoframes, rTr+cL|jdd|didS)Nz unexpected-start-tag-in-framesetrMr rs r*rYz0getPhases..InFramesetPhase.startTagOther/ rKr+c<|jjdjdkr|jdn|jj|jjs9|jjdjdkr |jjd|j_dSdSdS)Nrrz)unexpected-frameset-in-frameset-innerhtmlr afterFrameset) rKrrMrXrrr`rTrnrs r*endTagFramesetz1getPhases..InFramesetPhase.endTagFrameset3 sy%b).&88 &&'RSSSS &**,,,K) HI*2.3zAA%)K$6$G !!!  H HAAr+cL|jdd|didS)Nzunexpected-end-tag-in-framesetrMr rs r*r]z.getPhases..InFramesetPhase.endTagOther? rr+rrrrN)rBrCrDr6rrrrrrrYrr]r r^rrr_rrsr*InFramesetPhaser  sEGG  - - -  B B B + + + ) ) ) G G G < < < H H H < < <2&1 U' ( ) * m $ ) * 3    #0//  (1   !, r+rceZdZeZdZdZdZdZdZ dZ e j dj fdefgZee_e j de fgZe e_d S) %getPhases..AfterFramesetPhasecdSr4rJrts r*rz0getPhases..AfterFramesetPhase.processEOFT rr+c:|jddS)Nzunexpected-char-after-framesetr rs r*rz7getPhases..AfterFramesetPhase.processCharactersX s K " "#C D D D D Dr+cL|jjd|SrrSrs r*rz6getPhases..AfterFramesetPhase.startTagNoframes[ rTr+cL|jdd|didS)Nz#unexpected-start-tag-after-framesetrMr rs r*rYz3getPhases..AfterFramesetPhase.startTagOther^ s5 K " "#H$*E&M#: < < < < |jjd|j_dS)NafterAfterFrameset)rXrTrnrs r*rgz0getPhases..AfterFramesetPhase.endTagHtmlb s $ 23G HDK   r+cL|jdd|didS)Nz!unexpected-end-tag-after-framesetrMr rs r*r]z1getPhases..AfterFramesetPhase.endTagOthere s5 K " "#F$*E&M#: < < < < .AfterAfterBodyPhasecdSr4rJrts r*rz1getPhases..AfterAfterBodyPhase.processEOFw r#r+cP|j||jjdSr4r%rs r*rz5getPhases..AfterAfterBodyPhase.processCommentz r'r+cL|jjd|SrRrrs r*rz=getPhases..AfterAfterBodyPhase.processSpaceCharacters} rr+cr|jd|jjd|j_|S)Nexpected-eof-but-got-charrrrs r*rz8getPhases..AfterAfterBodyPhase.processCharacters s2 K " "#> ? ? ? $ 28 .AfterAfterBodyPhase.startTagHtml rTr+c|jdd|di|jjd|j_|S)Nexpected-eof-but-got-start-tagrMrrrs r*rYz4getPhases..AfterAfterBodyPhase.startTagOther sD K " "#C$*E&M#: < < < $ 28 .AfterAfterBodyPhase.processEndTag sD K " "#A$*E&M#: < < < $ 28 .AfterAfterFramesetPhasecdSr4rJrts r*rz5getPhases..AfterAfterFramesetPhase.processEOF r#r+cP|j||jjdSr4r%rs r*rz9getPhases..AfterAfterFramesetPhase.processComment r'r+cL|jjd|SrRrrs r*rzAgetPhases..AfterAfterFramesetPhase.processSpaceCharacters rr+c:|jddS)Nr)r rs r*rz.AfterAfterFramesetPhase.processCharacters s K " "#> ? ? ? ? ?r+cL|jjd|SrRrSrs r*rz7getPhases..AfterAfterFramesetPhase.startTagHtml rTr+cL|jjd|SrrSrs r*startTagNoFramesz;getPhases..AfterAfterFramesetPhase.startTagNoFrames rTr+cL|jdd|didS)Nr,rMr rs r*rYz8getPhases..AfterAfterFramesetPhase.startTagOther rr+cL|jdd|didS)Nr.rMr rs r*rz8getPhases..AfterAfterFramesetPhase.processEndTag rr+rrN)rBrCrDr6rrrrrrr8rYrr r^rr_rJr+r*AfterAfterFramesetPhaser1 sEGG     ? ? ? N N N @ @ @ G G G G G G < < < < < <2&1 \ " ) *3   #0r+r;rerdrrVrrrrrrrrrrrrrM)rrdrrrr )r)rUrgrr7rGr`rrrrrrr1rOrdrtrrrr rr"r/r;rrrs @@@r*rSrSs'*FFFFF||E37788FFFP@@@@@u@@@D#####%###J+,+,+,+,+,%+,+,+,Zd,d,d,d,d,ed,d,d,L=,=,=,=,=,e=,=,=,~@,@,@,@,@,@,@,@,DR ,R ,R ,R ,R ,R ,R ,R ,eR ,R ,R ,h,,,,,E,,,BO,O,O,O,O,O,O,uO,O,O,b-------5---^D,D,D,D,D,D,D,D,D,D,L>,>,>,>,>,>,>,U>,>,>,@`,`,`,`,`,`,`,5`,`,`,DW,W,W,W,W,W,W,UW,W,W,rJ,J,J,J,J,J,J,eJ,J,J,Xa,a,a,a,a,a,a,a,a,a,F$,$,$,$,$,u$,$,$,Lppppppppppd,,,,,,,,,,,,,,,,\6,6,6,6,6,6,6,%6,6,6,p",",",",",",",U",",",H#0#0#0#0#0e#0#0#0J!0!0!0!0!0%!0!0!0J < o  o  +   -   ^   +     <  '  ^  +  '    +  M! " /# $2#%+-5/   r+ct|dtz}|rGt|dfd|dD|d<dSdS)Nrc3NK|]\}}|||fV dSr4)r)rLkvrs r*rz$adjust_attributes.. sX,O,O041.:-=-=a-C-CQ,G,O,O,O,O,O,Or+)rr9r5)rrneeds_adjustments ` r*rr sf ..,1G1GGO+U6]++,O,O,O,O8=f 8K8K8M8M,O,O,OOOf OOr+rFc.|i}t||||dS)N)r9rMrr)r)rMr9r~rs r*r<r< s+ t$dJ& ( ((r+ceZdZdZdS)rzError in parsed documentN)rBrCrDrrJr+r*rr s""Dr+r)rT)r,rT)rNF), __future__rrrpip._vendor.sixrrr7r,r r r treebuilders.baser r constantsrrrrrrrrrrrrrrrrrr$r/rFrr#memoizerSrr< ExceptionrrJr+r*rIs@BBBBBBBBBB44444444 %%%%%%                                    """".????2   s)s)s)s)s)s)s)s)l J%J%J%ZJOOO59 %((((          r+