B š•ReÂÉã@sddlmZmZmZddlmZmZddlZddlm Z ddlm Z ddlm Z ddl m Z dd lmZdd lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z d d d„Z!d!dd„Z"dd„Z#Gdd„de$ƒZ%ej&dd„ƒZ'dd„Z(d"dd„Z)Gdd„de*ƒZ+dS)#é)Úabsolute_importÚdivisionÚunicode_literals)Úwith_metaclassÚviewkeysNé)Ú _inputstream)Ú _tokenizer)Ú treebuilders)ÚMarker)Ú_utils)ÚspaceCharactersÚasciiUpper2LowerÚspecialElementsÚheadingElementsÚ cdataElementsÚrcdataElementsÚ tokenTypesÚ tagTokenTypesÚ namespacesÚhtmlIntegrationPointElementsÚ"mathmlTextIntegrationPointElementsÚadjustForeignAttributesÚadjustMathMLAttributesÚadjustSVGAttributesÚEÚ_ReparseExceptionÚetreeTcKs$t |¡}t||d}|j|f|ŽS)aòParse 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Ú HTMLParserÚparse)ÚdocÚ treebuilderrÚkwargsÚtbÚp©r'ú/builddir/build/BUILDROOT/alt-python37-pip-20.2.4-6.el8.x86_64/opt/alt/python37/lib/python3.7/site-packages/pip/_vendor/html5lib/html5parser.pyr!s  r!ÚdivcKs,t |¡}t||d}|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 rr Ú parseFragment)r"r*r#rr$r%r&r'r'r(r+1s  r+csG‡fdd„dtƒ}|S)NcseZdZ‡fdd„ZdS)z-method_decorator_metaclass..DecoratedcsBx0| ¡D]$\}}t|tjƒr&ˆ|ƒ}|||<q Wt ||||¡S)N)ÚitemsÚ isinstanceÚtypesÚ FunctionTypeÚtypeÚ__new__)ÚmetaÚ classnameÚbasesÚ classDictÚ attributeNameÚ attribute)Úfunctionr'r(r1Ls   z5method_decorator_metaclass..Decorated.__new__N)Ú__name__Ú __module__Ú __qualname__r1r')r8r'r(Ú DecoratedKsr<)r0)r8r<r')r8r(Úmethod_decorator_metaclassJsr=c@sšeZdZdZd'dd„Zd(dd „Zd d „Zed d „ƒZdd„Z dd„Z dd„Z dd„Z dd„Z d)dd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„ZdS)*r z]HTML parser Generates a tree structure from a stream of (possibly malformed) HTML. NFTcsH|ˆ_|dkrt d¡}||ƒˆ_gˆ_‡fdd„t|ƒ ¡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 Nrcsi|]\}}|ˆˆjƒ|“qSr')Útree)Ú.0ÚnameÚcls)Úselfr'r(ú ysz'HTMLParser.__init__..)Ústrictr rr>ÚerrorsÚ getPhasesr,Úphases)rBr>rDrÚdebugr')rBr(Ú__init__]s   zHTMLParser.__init__r)cKsh||_||_||_tj|fd|i|—Ž|_| ¡y | ¡Wn$tk rb| ¡| ¡YnXdS)NÚparser) Ú innerHTMLModer*Ú scriptingr Ú HTMLTokenizerÚ tokenizerÚresetÚmainLoopr)rBÚstreamÚ innerHTMLr*rLr$r'r'r(Ú_parse|s zHTMLParser._parsecCsÄ|j ¡d|_g|_g|_d|_|jrœ|j ¡|_ |j t krL|j j |j _ n0|j tkrd|j j|j _ n|j dkr||j j|j _ n|jd|_|j ¡| ¡nd|_ |jd|_d|_d|_d|_dS)NFz no quirksÚ plaintextÚ beforeHtmlÚinitialT)r>rOÚ firstStartTagrEÚlogÚ compatModerKr*ÚlowerrRrrNÚ rcdataStateÚstaterÚ rawtextStateÚplaintextStaterGÚphaseÚinsertHtmlElementÚresetInsertionModeÚ lastPhaseÚbeforeRCDataPhaseÚ framesetOK)rBr'r'r(rOŠs*         zHTMLParser.resetcCst|dƒsdS|jjjdjS)z‡Name of the character encoding that was used to decode the input stream, or :obj:`None` if that is not determined yet rNNr)ÚhasattrrNrQÚ charEncodingr@)rBr'r'r(ÚdocumentEncoding¬s zHTMLParser.documentEncodingcCsJ|jdkr6|jtdkr6d|jko4|jd t¡dkS|j|jftkSdS)Nzannotation-xmlÚmathmlÚencoding)z text/htmlzapplication/xhtml+xml)r@Ú namespacerÚ attributesÚ translaterr)rBÚelementr'r'r(ÚisHTMLIntegrationPoint¶s   z!HTMLParser.isHTMLIntegrationPointcCs|j|jftkS)N)rjr@r)rBrmr'r'r(ÚisMathMLTextIntegrationPointÀsz'HTMLParser.isMathMLTextIntegrationPointcCsvtd}td}td}td}td}td}td}xô|jD]è}d} |} x¬| dk rþ| } |jjrv|jjdnd} | r„| jnd} | r’| jnd} | d }||krÄ| | d |  d i¡¡d} qTt|jjƒd ksj| |jj ksj|  | ¡r||kr|d t ddgƒksj|||fksj| t dkrN| dkrN||krN|d dksj|  | ¡rr||||fkrr|j}n |jd}||kr’| | ¡} qT||kr¨| | ¡} qT||kr¾| | ¡} qT||krÔ| | ¡} qT||krê| | ¡} qT||krT| | ¡} qTW||krB| drB| dsB| dd | d i¡qBWd}g}x8|rp| |j¡|j ¡}|r:|j|ks:t‚q:WdS)NÚ CharactersÚSpaceCharactersÚStartTagÚEndTagÚCommentÚDoctypeÚ ParseErroréÿÿÿÿr0ÚdataÚdatavarsrr@ÚmglyphÚ malignmarkrhzannotation-xmlÚsvgÚinForeignContentÚ selfClosingÚselfClosingAcknowledgedz&non-void-element-with-trailing-solidusT)rrNr>Ú openElementsrjr@Ú parseErrorÚgetÚlenÚdefaultNamespaceroÚ frozensetrrnr_rGÚprocessCharactersÚprocessSpaceCharactersÚprocessStartTagÚ processEndTagÚprocessCommentÚprocessDoctypeÚappendÚ processEOFÚAssertionError)rBÚCharactersTokenÚSpaceCharactersTokenÚ StartTagTokenÚ EndTagTokenÚ CommentTokenÚ DoctypeTokenÚParseErrorTokenÚtokenÚ prev_tokenÚ new_tokenÚ currentNodeÚcurrentNodeNamespaceÚcurrentNodeNamer0r_Ú reprocessrGr'r'r(rPÃsp                  zHTMLParser.mainLoopcOs |j|ddf|ž|Ž|j ¡S)aîParse 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)rSr>Ú getDocument)rBrQÚargsr$r'r'r(r!szHTMLParser.parsecOs|j|df|ž|Ž|j ¡S)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)rSr>Ú getFragment)rBrQržr$r'r'r(r+szHTMLParser.parseFragmentúXXX-undefined-errorcCs@|dkr i}|j |jj ¡||f¡|jrr€r@rRrŽrjr„rGr_)rBÚlastÚnewModesÚnodeÚnodeNameÚ new_phaser'r'r(raPsB   zHTMLParser.resetInsertionModecCsR|dks t‚|j |¡|dkr.|jj|j_n |jj|j_|j|_|j d|_dS)N)ÚRAWTEXTÚRCDATArÃÚtext) rŽr>Ú insertElementrNr]r\r[r_Ú originalPhaserG)rBr–Ú contentTyper'r'r(ÚparseRCDataRawtext|s   zHTMLParser.parseRCDataRawtext)NFTF)Fr)F)r N)r9r:r;Ú__doc__rIrSrOÚpropertyrgrnrorPr!r+rrrrr¥rarÉr'r'r'r(r Vs"  "  C ,r csdd„}dd„}Gdd„dt|||ƒƒƒ‰Gdd„dˆƒ}Gd d „d ˆƒ}Gd d „d ˆƒ}Gd d„dˆƒ}Gdd„dˆƒ}Gdd„dˆƒ}G‡‡fdd„dˆƒ‰Gdd„dˆƒ} G‡fdd„dˆƒ} G‡fdd„dˆƒ‰G‡fdd„dˆƒ} G‡fdd„dˆƒ} G‡fdd „d ˆƒ} G‡fd!d"„d"ˆƒ}G‡fd#d$„d$ˆƒ}G‡fd%d&„d&ˆƒ}Gd'd(„d(ˆƒ}G‡fd)d*„d*ˆƒ}Gd+d,„d,ˆƒ}G‡fd-d.„d.ˆƒ}G‡fd/d0„d0ˆƒ}Gd1d2„d2ˆƒ}Gd3d4„d4ˆƒ}||||||ˆ| | ˆ| | | ||||||||||d5œS)6Ncs$dd„t ¡Dƒ‰‡‡fdd„}|S)z4Logger that records which phase processes each tokencSsi|]\}}||“qSr'r')r?ÚkeyÚvaluer'r'r(rCsz*getPhases..log..csšˆj d¡r†t|ƒdkr†|d}dˆ|di}|dtkrH|d|d<|jj |jjjj|jj j j|j jˆj|f¡ˆ|f|ž|ŽSˆ|f|ž|ŽSdS)NÚprocessrr0r@) r9Ú startswithrƒrrJrXrŒrNr\r_Ú __class__)rBržr$r–Úinfo)r8Ú type_namesr'r(Úwrapped’s   z'getPhases..log..wrapped)rr,)r8rÓr')r8rÒr(rXŽszgetPhases..logcSs|r t|ƒStSdS)N)r=r0)Ú use_metaclassÚmetaclass_funcr'r'r(Ú getMetaclass£szgetPhases..getMetaclassc@s\eZdZdZdZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dS)zgetPhases..PhasezNBase class for helper object that implements each phase of processing )rJr>Ú__startTagCacheÚ __endTagCachecSs||_||_i|_i|_dS)N)rJr>Ú_Phase__startTagCacheÚ_Phase__endTagCache)rBrJr>r'r'r(rI¯sz!getPhases..Phase.__init__cSst‚dS)N)ÚNotImplementedError)rBr'r'r(rµsz#getPhases..Phase.processEOFcSs|j ||jjd¡dS)Nrw)r>Ú insertCommentr€)rBr–r'r'r(rЏsz'getPhases..Phase.processCommentcSs|j d¡dS)Nzunexpected-doctype)rJr)rBr–r'r'r(r‹½sz'getPhases..Phase.processDoctypecSs|j |d¡dS)Nrx)r>Ú insertText)rBr–r'r'r(r†Àsz*getPhases..Phase.processCharacterscSs|j |d¡dS)Nrx)r>rÝ)rBr–r'r'r(r‡Ãsz/getPhases..Phase.processSpaceCharacterscSsn|d}||jkr|j|}nH|j|}|j|<x2t|jƒt|jƒdkrd|j tt|jƒƒ¡q4W||ƒS)Nr@gš™™™™™ñ?)rÙÚstartTagHandlerrƒÚpopÚnextÚiter)rBr–r@Úfuncr'r'r(rˆÆs  z(getPhases..Phase.processStartTagcSsj|jjs |ddkr |j d¡x<|d ¡D],\}}||jjdjkr.||jjdj|<q.Wd|j_dS)Nr@r½z non-html-rootrxrF)rJrWrr,r>r€rk)rBr–ÚattrrÍr'r'r(Ú startTagHtml×s  z%getPhases..Phase.startTagHtmlcSsn|d}||jkr|j|}nH|j|}|j|<x2t|jƒt|jƒdkrd|j tt|jƒƒ¡q4W||ƒS)Nr@gš™™™™™ñ?)rÚÚ endTagHandlerrƒrßràrá)rBr–r@râr'r'r(r‰ás  z&getPhases..Phase.processEndTagN)r9r:r;rÊÚ __slots__rIrrŠr‹r†r‡rˆrär‰r'r'r'r(ÚPhaseªs rçc@sReZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dS)zgetPhases..InitialPhasecSsdS)Nr')rBr–r'r'r(r‡õsz6getPhases..InitialPhase.processSpaceCharacterscSs|j ||jj¡dS)N)r>rÜÚdocument)rBr–r'r'r(rŠøsz.getPhases..InitialPhase.processCommentcSsü|d}|d}|d}|d}|dks@|dk s@|dk rL|dkrL|j d¡|dkrXd}|j |¡|dkrv| t¡}|rº|ddksº| d ¡sº|d ksº| d ¡rª|dksº|rÄ| ¡d krÄd |j_n$| d¡sà| d ¡rè|dk rèd|j_|jj d|j_ dS)Nr@ÚpublicIdÚsystemIdÚcorrectr½zabout: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.dtdÚquirks)z -//w3c//dtd xhtml 1.0 frameset//z$-//w3c//dtd xhtml 1.0 transitional//zlimited quirksrU) rJrr>Ú insertDoctyperlrrÏrZrYrGr_)rBr–r@rérêrër'r'r(r‹ûs8   7 z.getPhases..InitialPhase.processDoctypecSsd|j_|jjd|j_dS)NrírU)rJrYrGr_)rBr'r'r(Ú anythingElseZsz,getPhases..InitialPhase.anythingElsecSs|j d¡| ¡|S)Nzexpected-doctype-but-got-chars)rJrrï)rBr–r'r'r(r†^s z1getPhases..InitialPhase.processCharacterscSs"|j dd|di¡| ¡|S)Nz"expected-doctype-but-got-start-tagr@)rJrrï)rBr–r'r'r(rˆcsz/getPhases..InitialPhase.processStartTagcSs"|j dd|di¡| ¡|S)Nz expected-doctype-but-got-end-tagr@)rJrrï)rBr–r'r'r(r‰isz-getPhases..InitialPhase.processEndTagcSs|j d¡| ¡dS)Nzexpected-doctype-but-got-eofT)rJrrï)rBr'r'r(ros z*getPhases..InitialPhase.processEOFN) r9r:r;Útuplerær‡rŠr‹rïr†rˆr‰rr'r'r'r(Ú InitialPhaseòs_rñc@sJeZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dS)z"getPhases..BeforeHtmlPhasecSs&|j tddƒ¡|jjd|j_dS)Nr½rrr¯)r>Ú insertRootÚimpliedTagTokenrJrGr_)rBr'r'r(r`xsz4getPhases..BeforeHtmlPhase.insertHtmlElementcSs | ¡dS)NT)r`)rBr'r'r(r}sz-getPhases..BeforeHtmlPhase.processEOFcSs|j ||jj¡dS)N)r>rÜrè)rBr–r'r'r(rŠsz1getPhases..BeforeHtmlPhase.processCommentcSsdS)Nr')rBr–r'r'r(r‡„sz9getPhases..BeforeHtmlPhase.processSpaceCharacterscSs | ¡|S)N)r`)rBr–r'r'r(r†‡sz4getPhases..BeforeHtmlPhase.processCharacterscSs |ddkrd|j_| ¡|S)Nr@r½T)rJrWr`)rBr–r'r'r(rˆ‹s z2getPhases..BeforeHtmlPhase.processStartTagcSs4|ddkr$|j dd|di¡n | ¡|SdS)Nr@)rºr»r½Úbrzunexpected-end-tag-before-html)rJrr`)rBr–r'r'r(r‰‘s  z0getPhases..BeforeHtmlPhase.processEndTagN) r9r:r;rðrær`rrŠr‡r†rˆr‰r'r'r'r(ÚBeforeHtmlPhasetsrõc@s„eZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z e  defde fg¡Ze e_e  de fg¡Ze e_dS)z"getPhases..BeforeHeadPhasecSs| tddƒ¡dS)NrºrrT)Ú startTagHeadró)rBr'r'r(rœsz-getPhases..BeforeHeadPhase.processEOFcSsdS)Nr')rBr–r'r'r(r‡ sz9getPhases..BeforeHeadPhase.processSpaceCharacterscSs| tddƒ¡|S)Nrºrr)röró)rBr–r'r'r(r†£sz4getPhases..BeforeHeadPhase.processCharacterscSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(rä§sz/getPhases..BeforeHeadPhase.startTagHtmlcSs0|j |¡|jjd|j_|jjd|j_dS)NrwÚinHead)r>rÆr€Ú headPointerrJrGr_)rBr–r'r'r(röªs z/getPhases..BeforeHeadPhase.startTagHeadcSs| tddƒ¡|S)Nrºrr)röró)rBr–r'r'r(Ú startTagOther¯sz0getPhases..BeforeHeadPhase.startTagOthercSs| tddƒ¡|S)Nrºrr)röró)rBr–r'r'r(ÚendTagImplyHead³sz2getPhases..BeforeHeadPhase.endTagImplyHeadcSs|j dd|di¡dS)Nzend-tag-after-implied-rootr@)rJr)rBr–r'r'r(Ú endTagOther·sz.getPhases..BeforeHeadPhase.endTagOtherr½rº)rºr»r½rôN)r9r:r;rðrærr‡r†rärörùrúrûr ÚMethodDispatcherrÞÚdefaultrår'r'r'r(ÚBeforeHeadPhase™s   rþc @sæeZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Ze defd e fd!e fd"e fd#efd$e fd%e fd&efg¡Zee_e d&efd'efg¡Zee_d(S))zgetPhases..InHeadPhasecSs | ¡dS)NT)rï)rBr'r'r(rÊsz)getPhases..InHeadPhase.processEOFcSs | ¡|S)N)rï)rBr–r'r'r(r†Îsz0getPhases..InHeadPhase.processCharacterscSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(räÒsz+getPhases..InHeadPhase.startTagHtmlcSs|j d¡dS)Nz!two-heads-are-not-better-than-one)rJr)rBr–r'r'r(röÕsz+getPhases..InHeadPhase.startTagHeadcSs$|j |¡|jj ¡d|d<dS)NTr)r>rÆr€rß)rBr–r'r'r(ÚstartTagBaseLinkCommandØs  z6getPhases..InHeadPhase.startTagBaseLinkCommandcSs´|j |¡|jj ¡d|d<|d}|jjjjddkr°d|krZ|jjj |d¡nVd|kr°d|kr°|d  ¡d kr°t   |d  d ¡¡}t   |¡}| ¡}|jjj |¡dS) NTrrxrÚ tentativeÚcharsetÚcontentz http-equivz content-typezutf-8)r>rÆr€rßrJrNrQrfÚchangeEncodingrZrÚ EncodingBytesÚencodeÚContentAttrParserr!)rBr–rkrxrJÚcodecr'r'r(Ú startTagMetaÝs   z+getPhases..InHeadPhase.startTagMetacSs|j |d¡dS)NrÄ)rJrÉ)rBr–r'r'r(Ú startTagTitleòsz,getPhases..InHeadPhase.startTagTitlecSs|j |d¡dS)NrÃ)rJrÉ)rBr–r'r'r(ÚstartTagNoFramesStyleõsz4getPhases..InHeadPhase.startTagNoFramesStylecSs8|jjr|j |d¡n|j |¡|jjd|j_dS)NrÃÚinHeadNoscript)rJrLrÉr>rÆrGr_)rBr–r'r'r(ÚstartTagNoscriptùs z/getPhases..InHeadPhase.startTagNoscriptcSs<|j |¡|jjj|jj_|jj|j_|jjd|j_dS)NrÅ) r>rÆrJrNÚscriptDataStater\r_rÇrG)rBr–r'r'r(ÚstartTagScripts  z-getPhases..InHeadPhase.startTagScriptcSs | ¡|S)N)rï)rBr–r'r'r(rùsz,getPhases..InHeadPhase.startTagOthercSs:|jjj ¡}|jdks&td|jƒ‚|jjd|j_dS)NrºzExpected head got %sÚ afterHead)rJr>r€rßr@rŽrGr_)rBr–rÀr'r'r(Ú endTagHead sz)getPhases..InHeadPhase.endTagHeadcSs | ¡|S)N)rï)rBr–r'r'r(ÚendTagHtmlBodyBrsz/getPhases..InHeadPhase.endTagHtmlBodyBrcSs|j dd|di¡dS)Nzunexpected-end-tagr@)rJr)rBr–r'r'r(rûsz*getPhases..InHeadPhase.endTagOthercSs| tdƒ¡dS)Nrº)rró)rBr'r'r(rïsz+getPhases..InHeadPhase.anythingElser½Útitle)ÚnoframesÚstyleÚnoscriptÚscript)ÚbaseÚbasefontÚbgsoundÚcommandÚlinkr2rº)rôr½r»N)r9r:r;rðrærr†rärörÿrr r r rrùrrrûrïr rürÞrýrår'r'r'r(Ú InHeadPhaseÆs>  rc@s°eZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Ze de fde fde fg¡Ze e_e de fdefg¡Zee_dS)z&getPhases..InHeadNoscriptPhasecSs|j d¡| ¡dS)Nzeof-in-head-noscriptT)rJrrï)rBr'r'r(r/s z1getPhases..InHeadNoscriptPhase.processEOFcSs|jjd |¡S)Nr÷)rJrGrŠ)rBr–r'r'r(rŠ4sz5getPhases..InHeadNoscriptPhase.processCommentcSs|j d¡| ¡|S)Nzchar-in-head-noscript)rJrrï)rBr–r'r'r(r†7s z8getPhases..InHeadNoscriptPhase.processCharacterscSs|jjd |¡S)Nr÷)rJrGr‡)rBr–r'r'r(r‡<sz=getPhases..InHeadNoscriptPhase.processSpaceCharacterscSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(rä?sz3getPhases..InHeadNoscriptPhase.startTagHtmlcSs|jjd |¡S)Nr÷)rJrGrˆ)rBr–r'r'r(rÿBsz>getPhases..InHeadNoscriptPhase.startTagBaseLinkCommandcSs|j dd|di¡dS)Nzunexpected-start-tagr@)rJr)rBr–r'r'r(ÚstartTagHeadNoscriptEsz;getPhases..InHeadNoscriptPhase.startTagHeadNoscriptcSs"|j dd|di¡| ¡|S)Nzunexpected-inhead-noscript-tagr@)rJrrï)rBr–r'r'r(rùHsz4getPhases..InHeadNoscriptPhase.startTagOthercSs:|jjj ¡}|jdks&td|jƒ‚|jjd|j_dS)NrzExpected noscript got %sr÷)rJr>r€rßr@rŽrGr_)rBr–rÀr'r'r(ÚendTagNoscriptMsz5getPhases..InHeadNoscriptPhase.endTagNoscriptcSs"|j dd|di¡| ¡|S)Nzunexpected-inhead-noscript-tagr@)rJrrï)rBr–r'r'r(ÚendTagBrRsz/getPhases..InHeadNoscriptPhase.endTagBrcSs|j dd|di¡dS)Nzunexpected-end-tagr@)rJr)rBr–r'r'r(rûWsz2getPhases..InHeadNoscriptPhase.endTagOthercSs| tdƒ¡dS)Nr)rró)rBr'r'r(rïZsz3getPhases..InHeadNoscriptPhase.anythingElser½)rrrr2rr)rºrrrôN)r9r:r;rðrærrŠr†r‡rärÿrrùrrrûrïr rürÞrýrår'r'r'r(ÚInHeadNoscriptPhase,s,  r c@s®eZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Ze defdefde fde fde fg¡Ze e_e de fg¡Zee_dS)z!getPhases..AfterHeadPhasecSs | ¡dS)NT)rï)rBr'r'r(rnsz,getPhases..AfterHeadPhase.processEOFcSs | ¡|S)N)rï)rBr–r'r'r(r†rsz3getPhases..AfterHeadPhase.processCharacterscSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(rävsz.getPhases..AfterHeadPhase.startTagHtmlcSs(d|j_|j |¡|jjd|j_dS)NFr­)rJrdr>rÆrGr_)rBr–r'r'r(Ú startTagBodyys z.getPhases..AfterHeadPhase.startTagBodycSs |j |¡|jjd|j_dS)Nr®)r>rÆrJrGr_)rBr–r'r'r(ÚstartTagFrameset~s z2getPhases..AfterHeadPhase.startTagFramesetcSst|j dd|di¡|jj |jj¡|jjd |¡x4|jjddd…D]}|jdkrN|jj  |¡PqNWdS)Nz#unexpected-start-tag-out-of-my-headr@r÷rwrº) rJrr>r€rŒrørGrˆr@Úremove)rBr–rÀr'r'r(ÚstartTagFromHead‚s z2getPhases..AfterHeadPhase.startTagFromHeadcSs|j dd|di¡dS)Nzunexpected-start-tagr@)rJr)rBr–r'r'r(röŒsz.getPhases..AfterHeadPhase.startTagHeadcSs | ¡|S)N)rï)rBr–r'r'r(rùsz/getPhases..AfterHeadPhase.startTagOthercSs | ¡|S)N)rï)rBr–r'r'r(r“sz2getPhases..AfterHeadPhase.endTagHtmlBodyBrcSs|j dd|di¡dS)Nzunexpected-end-tagr@)rJr)rBr–r'r'r(rû—sz-getPhases..AfterHeadPhase.endTagOthercSs.|j tddƒ¡|jjd|j_d|j_dS)Nr»rrr­T)r>rÆrórJrGr_rd)rBr'r'r(rïšsz.getPhases..AfterHeadPhase.anythingElser½r»r¼) rrrrr2rrrrrº)r»r½rôN)r9r:r;rðrærr†rär!r"r$rörùrrûrïr rürÞrýrår'r'r'r(ÚAfterHeadPhaseks.   r%c$sÖeZdZdZ‡‡fdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:d;„Z dd?„Z"d@dA„Z#dBdC„Z$dDdE„Z%dFdG„Z&dHdI„Z'dJdK„Z(dLdM„Z)dNdO„Z*dPdQ„Z+dRdS„Z,dTdU„Z-dVdW„Z.dXdY„Z/dZd[„Z0d\d]„Z1d^d_„Z2d`da„Z3dbdc„Z4ddde„Z5dfdg„Z6e7 8dh”j9fdie fdje fdke fdlefe:efdmefdnefdoefdpefdqefdrefdsefdtefduefdvefdwefdxefdyefdzefd{efd|efd}e fd~e!fde"fd€e#fde$fd‚e&fdƒe'fd„e%fd…e(fd†e)fd‡e*fg!¡Z;e+e;_S)zgetPhases..InBodyPhase)r‡cstˆ|ƒj||Ž|j|_dS)N)ÚsuperrIÚprocessSpaceCharactersNonPrer‡)rBržr$)Ú InBodyPhaserÐr'r(rI²sz'getPhases..InBodyPhase.__init__cSs$|j|jko"|j|jko"|j|jkS)N)r@rjrk)rBÚnode1Únode2r'r'r(ÚisMatchingFormattingElement·s  z:getPhases..InBodyPhase.isMatchingFormattingElementcSsš|j |¡|jjd}g}x<|jjddd…D]&}|tkr@Pq0| ||¡r0| |¡q0Wt|ƒdksjt‚t|ƒdkrˆ|jj  |d¡|jj |¡dS)Nrwé) r>rÆr€ÚactiveFormattingElementsr r+rŒrƒrŽr#)rBr–rmÚmatchingElementsrÀr'r'r(ÚaddFormattingElement½s    z3getPhases..InBodyPhase.addFormattingElementcSs@tdƒ}x2|jjddd…D]}|j|kr|j d¡PqWdS)N) ÚddÚdtÚlir&r´r±r¶r²rµr³r»r½rwz expected-closing-tag-but-got-eof)r…r>r€r@rJr)rBÚallowed_elementsrÀr'r'r(rÎs   z)getPhases..InBodyPhase.processEOFcSsf|d}|j|_| d¡rH|jjdjdkrH|jjd ¡sH|dd…}|rb|j ¡|j |¡dS)NrxÚ rw)ÚpreÚlistingÚtextarear) r'r‡rÏr>r€r@Ú hasContentÚ#reconstructActiveFormattingElementsrÝ)rBr–rxr'r'r(Ú!processSpaceCharactersDropNewlineØs   z@getPhases..InBodyPhase.processSpaceCharactersDropNewlinecSsT|ddkrdS|j ¡|j |d¡|jjrPtdd„|dDƒƒrPd|j_dS)NrxúcSsg|] }|tk‘qSr')r )r?Úcharr'r'r(ú íszDgetPhases..InBodyPhase.processCharacters..F)r>r9rÝrJrdÚany)rBr–r'r'r(r†ås  z0getPhases..InBodyPhase.processCharacterscSs|j ¡|j |d¡dS)Nrx)r>r9rÝ)rBr–r'r'r(r'ñs z;getPhases..InBodyPhase.processSpaceCharactersNonPrecSs|jjd |¡S)Nr÷)rJrGrˆ)rBr–r'r'r(ÚstartTagProcessInHeadõsz4getPhases..InBodyPhase.startTagProcessInHeadcSsŒ|j dddi¡t|jjƒdks4|jjdjdkrB|jjsˆt‚nFd|j_x<|d  ¡D],\}}||jjdj krX||jjdj |<qXWdS)Nzunexpected-start-tagr@r»rFrx) rJrrƒr>r€r@rRrŽrdr,rk)rBr–rãrÍr'r'r(r!øsz+getPhases..InBodyPhase.startTagBodycSsº|j dddi¡t|jjƒdks4|jjdjdkrB|jjs¶t‚nt|jjsLnj|jjdj rv|jjdj   |jjd¡x"|jjdjdkr˜|jj  ¡qxW|j  |¡|jj d|j_dS) Nzunexpected-start-tagr@r¼rr»rwr½r®)rJrrƒr>r€r@rRrŽrdÚparentÚ removeChildrßrÆrGr_)rBr–r'r'r(r"s" z/getPhases..InBodyPhase.startTagFramesetcSs.|jjdddr| tdƒ¡|j |¡dS)Nr&Úbutton)Úvariant)r>ÚelementInScopeÚendTagPrórÆ)rBr–r'r'r(ÚstartTagClosePsz-getPhases..InBodyPhase.startTagClosePcSs>|jjdddr| tdƒ¡|j |¡d|j_|j|_dS)Nr&rB)rCF) r>rDrErórÆrJrdr:r‡)rBr–r'r'r(ÚstartTagPreListings  z1getPhases..InBodyPhase.startTagPreListingcSsZ|jjr|j dddi¡n:|jjdddr:| tdƒ¡|j |¡|jjd|j_dS)Nzunexpected-start-tagr@Úformr&rB)rCrw) r>Ú formPointerrJrrDrErórÆr€)rBr–r'r'r(Ú startTagForms  z+getPhases..InBodyPhase.startTagFormcSs¬d|j_dgddgddgdœ}||d}xLt|jjƒD]<}|j|kr^|jj t|jdƒ¡P|j t kr8|jdkr8Pq8W|jj d d d rœ|jj td dƒ¡|j  |¡dS) NFr2r1r0)r2r1r0r@rs)Úaddressr)r&r&rB)rC) rJrdÚreversedr>r€r@r_r‰róÚ nameTuplerrDrÆ)rBr–Ú stopNamesMapÚ stopNamesrÀr'r'r(ÚstartTagListItem&s"      z/getPhases..InBodyPhase.startTagListItemcSs>|jjdddr| tdƒ¡|j |¡|jjj|jj_dS)Nr&rB)rC) r>rDrErórÆrJrNr^r\)rBr–r'r'r(ÚstartTagPlaintext<s z0getPhases..InBodyPhase.startTagPlaintextcSsb|jjdddr| tdƒ¡|jjdjtkrR|j dd|di¡|jj  ¡|j  |¡dS)Nr&rB)rCrwzunexpected-start-tagr@) r>rDrErór€r@rrJrrßrÆ)rBr–r'r'r(ÚstartTagHeadingBs  z.getPhases..InBodyPhase.startTagHeadingcSs~|j d¡}|rf|j ddddœ¡| tdƒ¡||jjkrL|jj |¡||jjkrf|jj |¡|j  ¡|  |¡dS)NÚaz$unexpected-start-tag-implies-end-tag)Ú startNameÚendName) r>Ú!elementInActiveFormattingElementsrJrÚendTagFormattingrór€r#r-r9r/)rBr–Ú afeAElementr'r'r(Ú startTagAJs     z(getPhases..InBodyPhase.startTagAcSs|j ¡| |¡dS)N)r>r9r/)rBr–r'r'r(ÚstartTagFormattingWs z1getPhases..InBodyPhase.startTagFormattingcSsP|j ¡|j d¡rB|j ddddœ¡| tdƒ¡|j ¡| |¡dS)NÚnobrz$unexpected-start-tag-implies-end-tag)rTrU)r>r9rDrJrr‰rór/)rBr–r'r'r(Ú startTagNobr[s    z+getPhases..InBodyPhase.startTagNobrcSsT|j d¡r2|j ddddœ¡| tdƒ¡|S|j ¡|j |¡d|j_dS)NrBz$unexpected-start-tag-implies-end-tag)rTrUF) r>rDrJrr‰rór9rÆrd)rBr–r'r'r(ÚstartTagButtones    z-getPhases..InBodyPhase.startTagButtoncSs0|j ¡|j |¡|jj t¡d|j_dS)NF)r>r9rÆr-rŒr rJrd)rBr–r'r'r(ÚstartTagAppletMarqueeObjectps  z:getPhases..InBodyPhase.startTagAppletMarqueeObjectcSsB|jjdddr| tdƒ¡|j ¡d|j_|j |d¡dS)Nr&rB)rCFrÃ)r>rDrErór9rJrdrÉ)rBr–r'r'r(Ú startTagXmpvs  z*getPhases..InBodyPhase.startTagXmpcSsR|jjdkr*|jjdddr*| tdƒ¡|j |¡d|j_|jjd|j_ dS)Nrír&rB)rCFr¬) rJrYr>rDr‰rórÆrdrGr_)rBr–r'r'r(Ú startTagTable}s   z,getPhases..InBodyPhase.startTagTablecSs6|j ¡|j |¡|jj ¡d|d<d|j_dS)NTrF)r>r9rÆr€rßrJrd)rBr–r'r'r(ÚstartTagVoidFormatting…s    z5getPhases..InBodyPhase.startTagVoidFormattingcSs@|jj}| |¡d|dkr<|dd t¡dkr<||j_dS)Nr0rxÚhidden)rJrdrarlr)rBr–rdr'r'r(Ú startTagInputŒs   z,getPhases..InBodyPhase.startTagInputcSs$|j |¡|jj ¡d|d<dS)NTr)r>rÆr€rß)rBr–r'r'r(ÚstartTagParamSource”s  z2getPhases..InBodyPhase.startTagParamSourcecSsJ|jjdddr| tdƒ¡|j |¡|jj ¡d|d<d|j_dS)Nr&rB)rCTrF) r>rDrErórÆr€rßrJrd)rBr–r'r'r(Ú startTagHr™s   z)getPhases..InBodyPhase.startTagHrcSs6|j ddddœ¡| tdd|d|dd¡dS) Nzunexpected-start-tag-treated-asÚimageÚimg)Ú originalNameÚnewNamerrrxr~)rkr~)rJrrˆró)rBr–r'r'r(Ú startTagImage¡s   z,getPhases..InBodyPhase.startTagImagecSs|j dddi¡|jjrdSi}d|dkr>|dd|d<| tdd|d¡| td dƒ¡| td dƒ¡d |dkrŒ|dd }nd }| td |dœ¡|d ¡}d|kr¾|d=d |krÌ|d =d|d<| tdd||dd¡|  td ƒ¡| td dƒ¡|  tdƒ¡dS)Nzdeprecated-tagr@ÚisindexÚactionrxrHrr)rkÚhrÚlabelÚpromptz3This is a searchable index. Enter search keywords: rp)r0rxÚinputr~)rkr~) rJrr>rIrˆrór†rÚcopyr‰)rBr–Ú form_attrsrorkr'r'r(ÚstartTagIsIndex©s6      z.getPhases..InBodyPhase.startTagIsIndexcSs0|j |¡|jjj|jj_|j|_d|j_dS)NF) r>rÆrJrNr[r\r:r‡rd)rBr–r'r'r(ÚstartTagTextareaÈs z/getPhases..InBodyPhase.startTagTextareacSsd|j_| |¡dS)NF)rJrdÚstartTagRawtext)rBr–r'r'r(ÚstartTagIFrameÎsz-getPhases..InBodyPhase.startTagIFramecSs"|jjr| |¡n | |¡dS)N)rJrLrurù)rBr–r'r'r(r Òs z/getPhases..InBodyPhase.startTagNoscriptcSs|j |d¡dS)z8iframe, noembed noframes, noscript(if scripting enabled)rÃN)rJrÉ)rBr–r'r'r(ruØsz.getPhases..InBodyPhase.startTagRawtextcSs@|jjdjdkr$|jj tdƒ¡|j ¡|jj |¡dS)NrwÚoption) r>r€r@rJr_r‰rór9rÆ)rBr–r'r'r(Ú startTagOptÜs z*getPhases..InBodyPhase.startTagOptcSsŒ|j ¡|j |¡d|j_|jj|jjd|jjd|jjd|jjd|jjd|jjdfkrx|jjd|j_n|jjd |j_dS) NFr¬rªr«r©r¨r§ÚinSelectInTabler¦)r>r9rÆrJrdr_rG)rBr–r'r'r(ÚstartTagSelectâs      z-getPhases..InBodyPhase.startTagSelectcSsB|j d¡r2|j ¡|jjdjdkr2|j ¡|j |¡dS)NÚrubyrw)r>rDÚgenerateImpliedEndTagsr€r@rJrrÆ)rBr–r'r'r(Ú startTagRpRtðs    z+getPhases..InBodyPhase.startTagRpRtcSsZ|j ¡|j |¡|j |¡td|d<|j |¡|drV|jj ¡d|d<dS)Nrhrjr~Tr) r>r9rJrrrrÆr€rß)rBr–r'r'r(Ú startTagMath÷s      z+getPhases..InBodyPhase.startTagMathcSsZ|j ¡|j |¡|j |¡td|d<|j |¡|drV|jj ¡d|d<dS)Nr|rjr~Tr) r>r9rJrrrrÆr€rß)rBr–r'r'r(Ú startTagSvgs      z*getPhases..InBodyPhase.startTagSvgcSs|j dd|di¡dS)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-ignoredr@N)rJr)rBr–r'r'r(ÚstartTagMisplacedsz0getPhases..InBodyPhase.startTagMisplacedcSs|j ¡|j |¡dS)N)r>r9rÆ)rBr–r'r'r(rùs z,getPhases..InBodyPhase.startTagOthercSs |jjdddsD| tddƒ¡|j dddi¡| tddƒ¡nX|j d¡|jjdj dkrt|j dddi¡|jj  ¡}x|j dkrš|jj  ¡}q‚WdS) Nr&rB)rCrrzunexpected-end-tagr@rsrw) r>rDrFrórJrrEr|r€r@rß)rBr–rÀr'r'r(rEs   z&getPhases..InBodyPhase.endTagPcSs€|j d¡s|j ¡dS|jjdjdkrlx>|jjdd…D]*}|jtdƒkr>|j dd|jdœ¡Pq>W|jjd|j_dS)Nr»rwé)r0r1r2Úoptgrouprwr&ÚrpÚrtr´r±r¶r²rµr³r»r½z$expected-one-end-tag-but-got-another)ÚgotNameÚ expectedNameÚ afterBody) r>rDrJrr€r@r…rGr_)rBr–rÀr'r'r(Ú endTagBody)s  z)getPhases..InBodyPhase.endTagBodycSs"|j d¡r| tdƒ¡|SdS)Nr»)r>rDrˆró)rBr–r'r'r(Ú endTagHtml;s z)getPhases..InBodyPhase.endTagHtmlcSs’|ddkr|j|_|j |d¡}|r2|j ¡|jjdj|dkr^|j dd|di¡|rŽ|jj  ¡}x|j|dkrŒ|jj  ¡}qpWdS)Nr@r5rwzend-tag-too-early) r'r‡r>rDr|r€r@rJrrß)rBr–ÚinScoperÀr'r'r(Ú endTagBlockAs   z*getPhases..InBodyPhase.endTagBlockcSsv|jj}d|j_|dks$|j |¡s8|j dddi¡n:|j ¡|jjd|krd|j dddi¡|jj |¡dS)Nzunexpected-end-tagr@rHrwzend-tag-too-early-ignored)r>rIrDrJrr|r€r#)rBr–rÀr'r'r(Ú endTagFormOs   z)getPhases..InBodyPhase.endTagFormcSs°|ddkrd}nd}|jj|d|dsB|j dd|di¡nj|jj|dd|jjdj|dkr€|j dd|di¡|jj ¡}x|j|dkrª|jj ¡}qŽWdS) Nr@r2Úlist)rCzunexpected-end-tag)Úexcluderwzend-tag-too-early)r>rDrJrr|r€r@rß)rBr–rCrÀr'r'r(ÚendTagListItem\s  z-getPhases..InBodyPhase.endTagListItemcSsšx$tD]}|j |¡r|j ¡PqW|jjdj|dkrR|j dd|di¡xBtD]:}|j |¡rX|jj ¡}x|jtkrŽ|jj ¡}qvWPqXWdS)Nrwr@zend-tag-too-early) rr>rDr|r€r@rJrrß)rBr–Úitemr'r'r(Ú endTagHeadingms       z,getPhases..InBodyPhase.endTagHeadingcSsd}x|dkr|d7}|j |d¡}|rH||jjkrV|j |j¡sV| |¡dS||jjkrŠ|j dd|di¡|jj  |¡dS|j |j¡s²|j dd|di¡dS||jjdkrØ|j d d|di¡|jj  |¡}d}x,|jj|d…D]}|j t krü|}PqüW|dkr^|jj  ¡}x||krJ|jj  ¡}q0W|jj  |¡dS|jj|d}|jj  |¡}|} } d} |jj  | ¡} xÎ| d krd| d7} | d8} |jj| } | |jjkrÞ|jj  | ¡q˜| |krêP| |kr|jj  | ¡d}|  ¡} | |jj|jj  | ¡<| |jj|jj  | ¡<| } | jrR| j | ¡|  | ¡| } q˜W| jrz| j | ¡|jtd ƒkr¦|j ¡\}}| | |¡n | | ¡| ¡} | | ¡| | ¡|jj  |¡|jj || ¡|jj  |¡|jj |jj  |¡d| ¡qWdS) z)The much-feared adoption agency algorithmrérr@Nzadoption-agency-1.2zadoption-agency-4.4rwzadoption-agency-1.3r,)r¹r´r¶rµr³)r>rVr€rDr@rûrJrr-r#ÚindexrMrrßÚ cloneNoder@rAÚ appendChildr…ÚgetTableMisnestedNodePositionÚ insertBeforeÚreparentChildrenÚinsert)rBr–ÚouterLoopCounterÚformattingElementÚafeIndexÚ furthestBlockrmÚcommonAncestorÚbookmarkÚlastNoderÀÚinnerLoopCounterr“Úcloner@r—r'r'r(rW|sŠ                    z/getPhases..InBodyPhase.endTagFormattingcSs|j |d¡r|j ¡|jjdj|dkrF|j dd|di¡|j |d¡rŒ|jj ¡}x|j|dkr€|jj ¡}qdW|j ¡dS)Nr@rwzend-tag-too-early) r>rDr|r€r@rJrrßÚclearActiveFormattingElements)rBr–rmr'r'r(ÚendTagAppletMarqueeObjects  z8getPhases..InBodyPhase.endTagAppletMarqueeObjectcSs@|j ddddœ¡|j ¡|j tddƒ¡|jj ¡dS)Nzunexpected-end-tag-treated-asrôz br element)rhrirr)rJrr>r9rÆrór€rß)rBr–r'r'r(r+s   z'getPhases..InBodyPhase.endTagBrcSs¨x¢|jjddd…D]Œ}|j|dkr~|jj|dd|jjdj|dkrd|j dd|di¡x|jj ¡|krxqfWPq|jtkr|j dd|di¡PqWdS)Nrwr@)rŽzunexpected-end-tag) r>r€r@r|rJrrßrMr)rBr–rÀr'r'r(rû2s z*getPhases..InBodyPhase.endTagOtherr½) rrrrrr2rrrr»r¼)rKÚarticleÚasideÚ blockquoteÚcenterÚdetailsÚdirr)ÚdlÚfieldsetÚ figcaptionÚfigureÚfooterÚheaderÚhgroupÚmainÚmenuÚnavÚolr&ÚsectionÚsummaryÚul)r5r6rH)r2r0r1rTrS) ÚbÚbigÚcodeÚemÚfontÚiÚsÚsmallÚstrikeÚstrongÚttÚur[rB)ÚappletÚmarqueeÚobjectÚxmpr¹)ÚarearôÚembedrgÚkeygenÚwbr)ÚparamÚsourceÚtrackrprmrfrkr7Úiframer)Únoembedrr°)rƒr„)rwr‚Úmathr|) r·Úcolr¸Úframerºr´r±r¶r²rµr³)rKr¥r¦r§rBr¨r©Údialogrªr)r«r¬r­r®r¯r°r±r6r²r³r´rµr5r¶r·r¸r&)r0r1r2)rSr¹rºr»r¼r½r¾r[r¿rÀrÁrÂrÃrÄrô)?r9r:r;rærIr+r/rr:r†r'r?r!r"rFrGrJrPrQrRrYrZr\r]r^r_r`rarcrdrerjrsrtrvr rurxrzr}r~rr€rùrErˆr‰r‹rŒrr‘rWr¤rrûr rürärrÞrýråÚ __classcell__r')r(rç)rÐr(r(­sÖ             $   r(c@s`eZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z e   g¡Z ee _ e   d efg¡Ze e_ d S) zgetPhases..TextPhasecSs|j |d¡dS)Nrx)r>rÝ)rBr–r'r'r(r†„sz.getPhases..TextPhase.processCharacterscSs8|j dd|jjdji¡|jj ¡|jj|j_dS)Nz&expected-named-closing-tag-but-got-eofr@rwT)rJrr>r€r@rßrÇr_)rBr'r'r(r‡s   z'getPhases..TextPhase.processEOFcSsdstd|dƒ‚dS)NFz4Tried to process start tag %s in RCDATA/RAWTEXT moder@)rŽ)rBr–r'r'r(rùŽsz*getPhases..TextPhase.startTagOthercSs*|jj ¡}|jdkst‚|jj|j_dS)Nr)r>r€rßr@rŽrJrÇr_)rBr–rÀr'r'r(Ú endTagScript‘s z)getPhases..TextPhase.endTagScriptcSs|jj ¡|jj|j_dS)N)r>r€rßrJrÇr_)rBr–r'r'r(rû˜s z(getPhases..TextPhase.endTagOtherrN)r9r:r;rðrær†rrùr×rûr rürÞrýrår'r'r'r(Ú TextPhases  rØc s eZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Ze d%”jfd&e fd'e fd(e fd)e fd*efd+efd,efd-efd.efg ¡Zee_e d+efd/efg¡Zee_d0S)1zgetPhases..InTablePhasecSs(x"|jjdjdkr"|jj ¡qWdS)Nrw)r¹r½)r>r€r@rß)rBr'r'r(ÚclearStackToTableContext§sz8getPhases..InTablePhase.clearStackToTableContextcSs0|jjdjdkr |j d¡n |jjs,t‚dS)Nrwr½z eof-in-table)r>r€r@rJrrRrŽ)rBr'r'r(r°sz*getPhases..InTablePhase.processEOFcSs4|jj}|jjd|j_||jj_|jj |¡dS)NÚ inTableText)rJr_rGrÇr‡)rBr–rÇr'r'r(r‡·s z6getPhases..InTablePhase.processSpaceCharacterscSs4|jj}|jjd|j_||jj_|jj |¡dS)NrÚ)rJr_rGrÇr†)rBr–rÇr'r'r(r†½s z1getPhases..InTablePhase.processCharacterscSs&d|j_|jjd |¡d|j_dS)NTr­F)r>ÚinsertFromTablerJrGr†)rBr–r'r'r(rÝÃsz*getPhases..InTablePhase.insertTextcSs6| ¡|jj t¡|j |¡|jjd|j_dS)Nrª) rÙr>r-rŒr rÆrJrGr_)rBr–r'r'r(ÚstartTagCaptionÊs z/getPhases..InTablePhase.startTagCaptioncSs(| ¡|j |¡|jjd|j_dS)Nr«)rÙr>rÆrJrGr_)rBr–r'r'r(ÚstartTagColgroupÐs z0getPhases..InTablePhase.startTagColgroupcSs| tddƒ¡|S)Nr¸rr)rÝró)rBr–r'r'r(Ú startTagColÕsz+getPhases..InTablePhase.startTagColcSs(| ¡|j |¡|jjd|j_dS)Nr©)rÙr>rÆrJrGr_)rBr–r'r'r(ÚstartTagRowGroupÙs z0getPhases..InTablePhase.startTagRowGroupcSs| tddƒ¡|S)Nr´rr)rßró)rBr–r'r'r(ÚstartTagImplyTbodyÞsz2getPhases..InTablePhase.startTagImplyTbodycSs6|j ddddœ¡|jj tdƒ¡|jjs2|SdS)Nz$unexpected-start-tag-implies-end-tagr¹)rTrU)rJrr_r‰rórR)rBr–r'r'r(r`âs  z-getPhases..InTablePhase.startTagTablecSs|jjd |¡S)Nr÷)rJrGrˆ)rBr–r'r'r(ÚstartTagStyleScriptész3getPhases..InTablePhase.startTagStyleScriptcSsVd|dkrH|dd t¡dkrH|j d¡|j |¡|jj ¡n | |¡dS)Nr0rxrbz unexpected-hidden-input-in-table) rlrrJrr>rÆr€rßrù)rBr–r'r'r(rcìs    z-getPhases..InTablePhase.startTagInputcSsD|j d¡|jjdkr@|j |¡|jjd|j_|jj ¡dS)Nzunexpected-form-in-tablerw)rJrr>rIrÆr€rß)rBr–r'r'r(rJös    z,getPhases..InTablePhase.startTagFormcSs<|j dd|di¡d|j_|jjd |¡d|j_dS)Nz)unexpected-start-tag-implies-table-voodoor@Tr­F)rJrr>rÛrGrˆ)rBr–r'r'r(rùýsz-getPhases..InTablePhase.startTagOthercSs |jjdddr†|j ¡|jjdjdkrJ|j dd|jjdjdœ¡x"|jjdjdkrl|jj ¡qLW|jj ¡|j ¡n|jj s’t ‚|j ¡dS)Nr¹)rCrwzend-tag-too-early-named)r…r†) r>rDr|r€r@rJrrßrarRrŽ)rBr–r'r'r(Ú endTagTables    z+getPhases..InTablePhase.endTagTablecSs|j dd|di¡dS)Nzunexpected-end-tagr@)rJr)rBr–r'r'r(Ú endTagIgnoresz,getPhases..InTablePhase.endTagIgnorecSs<|j dd|di¡d|j_|jjd |¡d|j_dS)Nz'unexpected-end-tag-implies-table-voodoor@Tr­F)rJrr>rÛrGr‰)rBr–r'r'r(rûsz+getPhases..InTablePhase.endTagOtherr½r·r¸rÓ)r´r¶rµ)r±r²r³r¹)rrrprH) r»r·rÓr¸r½r´r±r¶r²rµr³N)r9r:r;rðrærÙrr‡r†rÝrÜrÝrÞrßràr`rárcrJrùrârãrûr rürärÞrýrår')rçr'r(Ú InTablePhase¢sH    räcsZeZdZdZ‡‡fdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z ‡Z S)z#getPhases..InTableTextPhase)rÇÚcharacterTokenscs"tˆ|ƒj||Žd|_g|_dS)N)r&rIrÇrå)rBržr$)ÚInTableTextPhaserÐr'r(rI6sz,getPhases..InTableTextPhase.__init__cSsdd dd„|jDƒ¡}tdd„|DƒƒrJtd|dœ}|jjd |¡n|rZ|j |¡g|_dS)NrìcSsg|] }|d‘qS)rxr')r?rr'r'r(r=<szGgetPhases..InTableTextPhase.flushCharacters..cSsg|] }|tk‘qSr')r )r?rr'r'r(r==srp)r0rxr¬)Újoinrår>rrJrGrÝr>)rBrxr–r'r'r(ÚflushCharacters;s z3getPhases..InTableTextPhase.flushCharacterscSs| ¡|j|j_|S)N)rèrÇrJr_)rBr–r'r'r(rŠDs z2getPhases..InTableTextPhase.processCommentcSs| ¡|j|j_dS)NT)rèrÇrJr_)rBr'r'r(rIs z.getPhases..InTableTextPhase.processEOFcSs |ddkrdS|j |¡dS)Nrxr;)rårŒ)rBr–r'r'r(r†Ns z5getPhases..InTableTextPhase.processCharacterscSs|j |¡dS)N)rårŒ)rBr–r'r'r(r‡Ssz:getPhases..InTableTextPhase.processSpaceCharacterscSs| ¡|j|j_|S)N)rèrÇrJr_)rBr–r'r'r(rˆXs z3getPhases..InTableTextPhase.processStartTagcSs| ¡|j|j_|S)N)rèrÇrJr_)rBr–r'r'r(r‰]s z1getPhases..InTableTextPhase.processEndTag) r9r:r;rærIrèrŠrr†r‡rˆr‰rÖr')ræ)rÐr(ræ3s ræcsšeZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z e d”jfdefg¡Ze e_e de fde fde fg¡Ze e_dS)z!getPhases..InCaptionPhasecSs|jjddd S)Nr·r¹)rC)r>rD)rBr'r'r(ÚignoreEndTagCaptionfsz5getPhases..InCaptionPhase.ignoreEndTagCaptioncSs|jjd ¡dS)Nr­)rJrGr)rBr'r'r(risz,getPhases..InCaptionPhase.processEOFcSs|jjd |¡S)Nr­)rJrGr†)rBr–r'r'r(r†lsz3getPhases..InCaptionPhase.processCharacterscSs0|j ¡| ¡}|jj tdƒ¡|s,|SdS)Nr·)rJrrér_r‰ró)rBr–Ú ignoreEndTagr'r'r(ÚstartTagTableElementos  z6getPhases..InCaptionPhase.startTagTableElementcSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(rùwsz/getPhases..InCaptionPhase.startTagOthercSs¨| ¡sŽ|j ¡|jjdjdkrB|j dd|jjdjdœ¡x"|jjdjdkrd|jj ¡qDW|jj ¡|j ¡|jj d|j_ n|jj sšt ‚|j ¡dS)Nrwr·z$expected-one-end-tag-but-got-another)r…r†r¬) rér>r|r€r@rJrrßr£rGr_rRrŽ)rBr–r'r'r(Ú endTagCaptionzs    z/getPhases..InCaptionPhase.endTagCaptioncSs0|j ¡| ¡}|jj tdƒ¡|s,|SdS)Nr·)rJrrér_r‰ró)rBr–rêr'r'r(râŒs  z-getPhases..InCaptionPhase.endTagTablecSs|j dd|di¡dS)Nzunexpected-end-tagr@)rJr)rBr–r'r'r(rã“sz.getPhases..InCaptionPhase.endTagIgnorecSs|jjd |¡S)Nr­)rJrGr‰)rBr–r'r'r(rû–sz-getPhases..InCaptionPhase.endTagOtherr½) r·rÓr¸r´r±r¶r²rµr³r·r¹) r»rÓr¸r½r´r±r¶r²rµr³N)r9r:r;rðrærérr†rërùrìrârãrûr rürärÞrýrår')rçr'r(ÚInCaptionPhasebs*  rícsŒeZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z e  d”jfdefg¡Ze e_e  de fde fg¡Ze e_dS)z%getPhases..InColumnGroupPhasecSs|jjdjdkS)Nrwr½)r>r€r@)rBr'r'r(ÚignoreEndTagColgroup¬sz:getPhases..InColumnGroupPhase.ignoreEndTagColgroupcSsD|jjdjdkr"|jjst‚dS| ¡}| tdƒ¡|s@dSdS)Nrwr½r¸T) r>r€r@rJrRrŽrîÚendTagColgroupró)rBrêr'r'r(r¯s z0getPhases..InColumnGroupPhase.processEOFcSs"| ¡}| tdƒ¡|s|SdS)Nr¸)rîrïró)rBr–rêr'r'r(r†¹sz7getPhases..InColumnGroupPhase.processCharacterscSs$|j |¡|jj ¡d|d<dS)NTr)r>rÆr€rß)rBr–r'r'r(rÞ¿s  z1getPhases..InColumnGroupPhase.startTagColcSs"| ¡}| tdƒ¡|s|SdS)Nr¸)rîrïró)rBr–rêr'r'r(rùÄsz3getPhases..InColumnGroupPhase.startTagOthercSs@| ¡r |jjst‚|j ¡n|jj ¡|jjd|j_ dS)Nr¬) rîrJrRrŽrr>r€rßrGr_)rBr–r'r'r(rïÊs    z4getPhases..InColumnGroupPhase.endTagColgroupcSs|j dddi¡dS)Nz no-end-tagr@rÓ)rJr)rBr–r'r'r(Ú endTagColÓsz/getPhases..InColumnGroupPhase.endTagColcSs"| ¡}| tdƒ¡|s|SdS)Nr¸)rîrïró)rBr–rêr'r'r(rûÖsz1getPhases..InColumnGroupPhase.endTagOtherr½rÓr¸N)r9r:r;rðrærîrr†rÞrùrïrðrûr rürärÞrýrår')rçr'r(ÚInColumnGroupPhase¨s"    rñcs¾eZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Ze d”jfde fde fde fg¡Ze e_e de fdefdefg¡Zee_d S)!z#getPhases..InTableBodyPhasecSsFx"|jjdjdkr"|jj ¡qW|jjdjdkrB|jjsBt‚dS)Nrw)r´r¶rµr½r½)r>r€r@rßrJrRrŽ)rBr'r'r(ÚclearStackToTableBodyContextísz@getPhases..InTableBodyPhase.clearStackToTableBodyContextcSs|jjd ¡dS)Nr¬)rJrGr)rBr'r'r(r÷sz.getPhases..InTableBodyPhase.processEOFcSs|jjd |¡S)Nr¬)rJrGr‡)rBr–r'r'r(r‡úsz:getPhases..InTableBodyPhase.processSpaceCharacterscSs|jjd |¡S)Nr¬)rJrGr†)rBr–r'r'r(r†ýsz5getPhases..InTableBodyPhase.processCharacterscSs(| ¡|j |¡|jjd|j_dS)Nr¨)ròr>rÆrJrGr_)rBr–r'r'r(Ú startTagTrs z.getPhases..InTableBodyPhase.startTagTrcSs*|j dd|di¡| tddƒ¡|S)Nzunexpected-cell-in-table-bodyr@r³rr)rJrróró)rBr–r'r'r(ÚstartTagTableCellsz5getPhases..InTableBodyPhase.startTagTableCellcSsn|jjddds0|jjddds0|jjdddrT| ¡| t|jjdjƒ¡|S|jjs`t ‚|j  ¡dS)Nr´r¹)rCrµr¶rw) r>rDròÚendTagTableRowGrouprór€r@rJrRrŽr)rBr–r'r'r(ÚstartTagTableOther s z6getPhases..InTableBodyPhase.startTagTableOthercSs|jjd |¡S)Nr¬)rJrGrˆ)rBr–r'r'r(rùsz1getPhases..InTableBodyPhase.startTagOthercSsT|jj|dddr:| ¡|jj ¡|jjd|j_n|j dd|di¡dS)Nr@r¹)rCr¬z unexpected-end-tag-in-table-body) r>rDròr€rßrJrGr_r)rBr–r'r'r(rõs  z7getPhases..InTableBodyPhase.endTagTableRowGroupcSsn|jjddds0|jjddds0|jjdddrT| ¡| t|jjdjƒ¡|S|jjs`t ‚|j  ¡dS)Nr´r¹)rCrµr¶rw) r>rDròrõrór€r@rJrRrŽr)rBr–r'r'r(râ%s z/getPhases..InTableBodyPhase.endTagTablecSs|j dd|di¡dS)Nz unexpected-end-tag-in-table-bodyr@)rJr)rBr–r'r'r(rã2sz0getPhases..InTableBodyPhase.endTagIgnorecSs|jjd |¡S)Nr¬)rJrGr‰)rBr–r'r'r(rû6sz/getPhases..InTableBodyPhase.endTagOtherr½r³)r±r²)r·rÓr¸r´r¶rµ)r´r¶rµr¹)r»r·rÓr¸r½r±r²r³N)r9r:r;rðræròrr‡r†rórôrörùrõrârãrûr rürärÞrýrår')rçr'r(ÚInTableBodyPhaseès4     r÷csÆeZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Ze d”jfde fde fg¡Ze e_e de fdefd efd!efg¡Zee_d"S)#zgetPhases..InRowPhasecSsDx>|jjdjdkr>|j dd|jjdji¡|jj ¡qWdS)Nrw)r³r½z'unexpected-implied-end-tag-in-table-rowr@)r>r€r@rJrrß)rBr'r'r(ÚclearStackToTableRowContextOsz9getPhases..InRowPhase.clearStackToTableRowContextcSs|jjddd S)Nr³r¹)rC)r>rD)rBr'r'r(ÚignoreEndTagTrUsz,getPhases..InRowPhase.ignoreEndTagTrcSs|jjd ¡dS)Nr¬)rJrGr)rBr'r'r(rYsz(getPhases..InRowPhase.processEOFcSs|jjd |¡S)Nr¬)rJrGr‡)rBr–r'r'r(r‡\sz4getPhases..InRowPhase.processSpaceCharacterscSs|jjd |¡S)Nr¬)rJrGr†)rBr–r'r'r(r†_sz/getPhases..InRowPhase.processCharacterscSs6| ¡|j |¡|jjd|j_|jj t¡dS)Nr§) rør>rÆrJrGr_r-rŒr )rBr–r'r'r(rôbs z/getPhases..InRowPhase.startTagTableCellcSs"| ¡}| tdƒ¡|s|SdS)Nr³)rùÚendTagTrró)rBr–rêr'r'r(röhsz0getPhases..InRowPhase.startTagTableOthercSs|jjd |¡S)Nr¬)rJrGrˆ)rBr–r'r'r(rùosz+getPhases..InRowPhase.startTagOthercSsH| ¡s.| ¡|jj ¡|jjd|j_n|jjs:t ‚|j  ¡dS)Nr©) rùrør>r€rßrJrGr_rRrŽr)rBr–r'r'r(rúrs   z&getPhases..InRowPhase.endTagTrcSs"| ¡}| tdƒ¡|s|SdS)Nr³)rùrúró)rBr–rêr'r'r(râ|sz)getPhases..InRowPhase.endTagTablecSs4|jj|dddr&| tdƒ¡|S|j ¡dS)Nr@r¹)rCr³)r>rDrúrórJr)rBr–r'r'r(rõ„sz1getPhases..InRowPhase.endTagTableRowGroupcSs|j dd|di¡dS)Nzunexpected-end-tag-in-table-rowr@)rJr)rBr–r'r'r(rã‹sz*getPhases..InRowPhase.endTagIgnorecSs|jjd |¡S)Nr¬)rJrGr‰)rBr–r'r'r(rûsz)getPhases..InRowPhase.endTagOtherr½)r±r²)r·rÓr¸r´r¶rµr³r³r¹)r´r¶rµ)r»r·rÓr¸r½r±r²N)r9r:r;rðrærørùrr‡r†rôrörùrúrârõrãrûr rürärÞrýrår')rçr'r(Ú InRowPhaseJs6   rûcsšeZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z e d”jfdefg¡Ze e_e de fde fde fg¡Ze e_dS)zgetPhases..InCellPhasecSsB|jjdddr | tdƒ¡n|jjdddr>| tdƒ¡dS)Nr±r¹)rCr²)r>rDÚendTagTableCellró)rBr'r'r(Ú closeCell¨sz(getPhases..InCellPhase.closeCellcSs|jjd ¡dS)Nr­)rJrGr)rBr'r'r(r¯sz)getPhases..InCellPhase.processEOFcSs|jjd |¡S)Nr­)rJrGr†)rBr–r'r'r(r†²sz0getPhases..InCellPhase.processCharacterscSsF|jjddds |jjdddr,| ¡|S|jjs8t‚|j ¡dS)Nr±r¹)rCr²)r>rDrýrJrRrŽr)rBr–r'r'r(röµs  z1getPhases..InCellPhase.startTagTableOthercSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(rù¿sz,getPhases..InCellPhase.startTagOthercSs¶|jj|dddrœ|j |d¡|jjdj|dkrt|j dd|di¡x.|jj ¡}|j|dkrRPqRWn |jj ¡|j ¡|jj d|j_ n|j dd|di¡dS)Nr@r¹)rCrwzunexpected-cell-end-tagr¨zunexpected-end-tag) r>rDr|r€r@rJrrßr£rGr_)rBr–rÀr'r'r(rüÂs   z.getPhases..InCellPhase.endTagTableCellcSs|j dd|di¡dS)Nzunexpected-end-tagr@)rJr)rBr–r'r'r(rãÓsz+getPhases..InCellPhase.endTagIgnorecSs.|jj|dddr | ¡|S|j ¡dS)Nr@r¹)rC)r>rDrýrJr)rBr–r'r'r(Ú endTagImplyÖsz*getPhases..InCellPhase.endTagImplycSs|jjd |¡S)Nr­)rJrGr‰)rBr–r'r'r(rûÞsz*getPhases..InCellPhase.endTagOtherr½) r·rÓr¸r´r±r¶r²rµr³)r±r²)r»r·rÓr¸r½)r¹r´r¶rµr³N)r9r:r;rðrærýrr†rörùrürãrþrûr rürärÞrýrår')rçr'r(Ú InCellPhase£s(   rÿc sÊeZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Ze d”jfdefdefde fde fde fg¡Ze e_e de fdefdefg¡Zee_dS) z getPhases..InSelectPhasecSs0|jjdjdkr |j d¡n |jjs,t‚dS)Nrwr½z eof-in-select)r>r€r@rJrrRrŽ)rBr'r'r(rósz+getPhases..InSelectPhase.processEOFcSs$|ddkrdS|j |d¡dS)Nrxr;)r>rÝ)rBr–r'r'r(r†ùs z2getPhases..InSelectPhase.processCharacterscSs.|jjdjdkr|jj ¡|j |¡dS)Nrwrw)r>r€r@rßrÆ)rBr–r'r'r(ÚstartTagOptionþs z/getPhases..InSelectPhase.startTagOptioncSsL|jjdjdkr|jj ¡|jjdjdkr<|jj ¡|j |¡dS)Nrwrwr‚)r>r€r@rßrÆ)rBr–r'r'r(ÚstartTagOptgroup s   z1getPhases..InSelectPhase.startTagOptgroupcSs|j d¡| tdƒ¡dS)Nzunexpected-select-in-selectr°)rJrÚ endTagSelectró)rBr–r'r'r(rz s z/getPhases..InSelectPhase.startTagSelectcSs>|j d¡|jjdddr.| tdƒ¡|S|jjs:t‚dS)Nzunexpected-input-in-selectr°)rC)rJrr>rDrrórRrŽ)rBr–r'r'r(rc s  z.getPhases..InSelectPhase.startTagInputcSs|jjd |¡S)Nr÷)rJrGrˆ)rBr–r'r'r(r sz/getPhases..InSelectPhase.startTagScriptcSs|j dd|di¡dS)Nzunexpected-start-tag-in-selectr@)rJr)rBr–r'r'r(rù sz.getPhases..InSelectPhase.startTagOthercSs6|jjdjdkr |jj ¡n|j dddi¡dS)Nrwrwzunexpected-end-tag-in-selectr@)r>r€r@rßrJr)rBr–r'r'r(Ú endTagOption sz-getPhases..InSelectPhase.endTagOptioncSsf|jjdjdkr0|jjdjdkr0|jj ¡|jjdjdkrP|jj ¡n|j dddi¡dS)Nrwrwéþÿÿÿr‚zunexpected-end-tag-in-selectr@)r>r€r@rßrJr)rBr–r'r'r(ÚendTagOptgroup% s z/getPhases..InSelectPhase.endTagOptgroupcSs^|jjdddrD|jj ¡}x|jdkr6|jj ¡}qW|j ¡n|jjsPt‚|j  ¡dS)Nr°)rC) r>rDr€rßr@rJrarRrŽr)rBr–rÀr'r'r(r2 s    z-getPhases..InSelectPhase.endTagSelectcSs|j dd|di¡dS)Nzunexpected-end-tag-in-selectr@)rJr)rBr–r'r'r(rû= sz,getPhases..InSelectPhase.endTagOtherr½rwr‚r°)rprËr7rN)r9r:r;rðrærr†rrrzrcrrùrrrrûr rürärÞrýrår')rçr'r(Ú InSelectPhaseïs4    rc@sneZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z e   d efg¡Z ee _e   d e fg¡Ze e_dS)z'getPhases..InSelectInTablePhasecSs|jjd ¡dS)Nr¦)rJrGr)rBr'r'r(rU sz2getPhases..InSelectInTablePhase.processEOFcSs|jjd |¡S)Nr¦)rJrGr†)rBr–r'r'r(r†X sz9getPhases..InSelectInTablePhase.processCharacterscSs(|j dd|di¡| tdƒ¡|S)Nz5unexpected-table-element-start-tag-in-select-in-tabler@r°)rJrrûró)rBr–r'r'r(r`[ sz5getPhases..InSelectInTablePhase.startTagTablecSs|jjd |¡S)Nr¦)rJrGrˆ)rBr–r'r'r(rù` sz5getPhases..InSelectInTablePhase.startTagOthercSs@|j dd|di¡|jj|dddr<| tdƒ¡|SdS)Nz3unexpected-table-element-end-tag-in-select-in-tabler@r¹)rCr°)rJrr>rDrûró)rBr–r'r'r(râc sz3getPhases..InSelectInTablePhase.endTagTablecSs|jjd |¡S)Nr¦)rJrGr‰)rBr–r'r'r(rûi sz3getPhases..InSelectInTablePhase.endTagOther)r·r¹r´r¶rµr³r±r²N)r9r:r;rðrærr†r`rùrârûr rürÞrýrår'r'r'r(ÚInSelectInTablePhaseR s  rc-s–eZdZeƒZeddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,g,ƒZd-d.„Z‡fd/d0„Zd1d2„Z d3d4„Z d5S)6z(getPhases..InForeignContentPhaser¹rºr§r»rôr¨r»r0r)r«r1r¼rÊÚh1Úh2Úh3Úh4Úh5Úh6rºrmr¾rgr2r6r³r2r[rµr&r5r{r¿rÀÚspanrÂrÁÚsubÚsupr¹rÃrÄr¸Úvarc%Ssnddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%œ$}|d&|krj||d&|d&<dS)'NÚaltGlyphÚ altGlyphDefÚ altGlyphItemÚ animateColorÚ animateMotionÚanimateTransformÚclipPathÚfeBlendÚ feColorMatrixÚfeComponentTransferÚ feCompositeÚfeConvolveMatrixÚfeDiffuseLightingÚfeDisplacementMapÚfeDistantLightÚfeFloodÚfeFuncAÚfeFuncBÚfeFuncGÚfeFuncRÚfeGaussianBlurÚfeImageÚfeMergeÚ feMergeNodeÚ feMorphologyÚfeOffsetÚ fePointLightÚfeSpecularLightingÚ feSpotLightÚfeTileÚ feTurbulenceÚ foreignObjectÚglyphRefÚlinearGradientÚradialGradientÚtextPath)$ÚaltglyphÚ altglyphdefÚ altglyphitemÚ animatecolorÚ animatemotionÚanimatetransformÚclippathÚfeblendÚ fecolormatrixÚfecomponenttransferÚ fecompositeÚfeconvolvematrixÚfediffuselightingÚfedisplacementmapÚfedistantlightÚfefloodÚfefuncaÚfefuncbÚfefuncgÚfefuncrÚfegaussianblurÚfeimageÚfemergeÚ femergenodeÚ femorphologyÚfeoffsetÚ fepointlightÚfespecularlightingÚ fespotlightÚfetileÚ feturbulenceÚ foreignobjectÚglyphrefÚlineargradientÚradialgradientÚtextpathr@r')rBr–Ú replacementsr'r'r(ÚadjustSVGTagNames„ sL z:getPhases..InForeignContentPhase.adjustSVGTagNamescsL|ddkrd|d<n&|jjr± szMgetPhases..InForeignContentPhase.processCharacters..F)rJrdr>r†)rBr–)rçr'r(r†­ s   z:getPhases..InForeignContentPhase.processCharacterscSs.|jjd}|d|jks@|ddkrªt|d ¡ƒdddh@rª|j dd|di¡xN|jjdj|jjkr¤|j  |jjd¡s¤|j  |jjd¡s¤|jj  ¡qXW|S|jt d krÆ|j  |¡n$|jt d krê| |¡|j |¡|j |¡|j|d <|j |¡|d r*|jj  ¡d |d<dS)Nrwr@r½rxÚcolorÚfaceÚsizez*unexpected-html-element-in-foreign-contentrhr|rjr~Tr)r>r€ÚbreakoutElementsÚsetÚkeysrJrrjr„rnrorßrrr[rrrÆ)rBr–r™r'r'r(rˆµ s.          z8getPhases..InForeignContentPhase.processStartTagcSsðt|jjƒd}|jjd}|j t¡|dkrF|j dd|di¡x¤|j t¡|dkr²|jj|jj dkrŠ|jj  ¡|jjj |j_x |jj  ¡|krª|jjsŒt ‚qŒWd}P|d8}|jj|}|j|jjkrØqHqH|jj |¡}PqHW|S)Nrrwr@zunexpected-end-tagrÚ)rƒr>r€r@rlrrJrr_rGrèrÇrßrŽrjr„r‰)rBr–Ú nodeIndexrÀr˜r'r'r(r‰Ð s(   z6getPhases..InForeignContentPhase.processEndTagN) r9r:r;rðrær…r`r[r†rˆr‰r')rçr'r(ÚInForeignContentPhasex s      ) rdc@sveZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z e   defg¡Ze e_e   de fg¡Ze e_dS)z!getPhases..AfterBodyPhasecSsdS)Nr')rBr'r'r(rí sz,getPhases..AfterBodyPhase.processEOFcSs|j ||jjd¡dS)Nr)r>rÜr€)rBr–r'r'r(rŠñ sz0getPhases..AfterBodyPhase.processCommentcSs |j d¡|jjd|j_|S)Nzunexpected-char-after-bodyr­)rJrrGr_)rBr–r'r'r(r†ö s z3getPhases..AfterBodyPhase.processCharacterscSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(räû sz.getPhases..AfterBodyPhase.startTagHtmlcSs*|j dd|di¡|jjd|j_|S)Nzunexpected-start-tag-after-bodyr@r­)rJrrGr_)rBr–r'r'r(rùþ sz/getPhases..AfterBodyPhase.startTagOthercSs*|jjr|j d¡n|jjd|j_dS)Nz'unexpected-end-tag-after-body-innerhtmlÚafterAfterBody)rJrRrrGr_)rBr@r'r'r(r‰ sz,getPhases..AfterBodyPhase.endTagHtmlcSs*|j dd|di¡|jjd|j_|S)Nzunexpected-end-tag-after-bodyr@r­)rJrrGr_)rBr–r'r'r(rû sz-getPhases..AfterBodyPhase.endTagOtherr½N)r9r:r;rðrærrŠr†rärùr‰rûr rürÞrýrår'r'r'r(ÚAfterBodyPhaseê s rfcs’eZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z e  d”jfdefdefde fg¡Ze e_e  de fg¡Ze e_dS)z"getPhases..InFramesetPhasecSs0|jjdjdkr |j d¡n |jjs,t‚dS)Nrwr½zeof-in-frameset)r>r€r@rJrrRrŽ)rBr'r'r(r sz-getPhases..InFramesetPhase.processEOFcSs|j d¡dS)Nzunexpected-char-in-frameset)rJr)rBr–r'r'r(r†" sz4getPhases..InFramesetPhase.processCharacterscSs|j |¡dS)N)r>rÆ)rBr–r'r'r(r"% sz3getPhases..InFramesetPhase.startTagFramesetcSs|j |¡|jj ¡dS)N)r>rÆr€rß)rBr–r'r'r(Ú startTagFrame( s z0getPhases..InFramesetPhase.startTagFramecSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(ÚstartTagNoframes, sz3getPhases..InFramesetPhase.startTagNoframescSs|j dd|di¡dS)Nz unexpected-start-tag-in-framesetr@)rJr)rBr–r'r'r(rù/ sz0getPhases..InFramesetPhase.startTagOthercSsZ|jjdjdkr |j d¡n |jj ¡|jjsV|jjdjdkrV|jjd|j_dS)Nrwr½z)unexpected-frameset-in-frameset-innerhtmlr¼Ú afterFrameset) r>r€r@rJrrßrRrGr_)rBr–r'r'r(ÚendTagFrameset3 s  z1getPhases..InFramesetPhase.endTagFramesetcSs|j dd|di¡dS)Nzunexpected-end-tag-in-framesetr@)rJr)rBr–r'r'r(rû? sz.getPhases..InFramesetPhase.endTagOtherr½r¼rÔrN)r9r:r;rðrærr†r"rgrhrùrjrûr rürärÞrýrår')rçr'r(ÚInFramesetPhase s$   rkcsveZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z e   d ”j fdefg¡Zee_e   d e fg¡Ze e_dS)z%getPhases..AfterFramesetPhasecSsdS)Nr')rBr'r'r(rT sz0getPhases..AfterFramesetPhase.processEOFcSs|j d¡dS)Nzunexpected-char-after-frameset)rJr)rBr–r'r'r(r†X sz7getPhases..AfterFramesetPhase.processCharacterscSs|jjd |¡S)Nr÷)rJrGrˆ)rBr–r'r'r(rh[ sz6getPhases..AfterFramesetPhase.startTagNoframescSs|j dd|di¡dS)Nz#unexpected-start-tag-after-framesetr@)rJr)rBr–r'r'r(rù^ sz3getPhases..AfterFramesetPhase.startTagOthercSs|jjd|j_dS)NÚafterAfterFrameset)rJrGr_)rBr–r'r'r(r‰b sz0getPhases..AfterFramesetPhase.endTagHtmlcSs|j dd|di¡dS)Nz!unexpected-end-tag-after-framesetr@)rJr)rBr–r'r'r(rûe sz1getPhases..AfterFramesetPhase.endTagOtherr½rN)r9r:r;rðrærr†rhrùr‰rûr rürärÞrýrår')rçr'r(ÚAfterFramesetPhaseP s  rmc@s`eZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z e   de fg¡Ze e_dS)z&getPhases..AfterAfterBodyPhasecSsdS)Nr')rBr'r'r(rw sz1getPhases..AfterAfterBodyPhase.processEOFcSs|j ||jj¡dS)N)r>rÜrè)rBr–r'r'r(rŠz sz5getPhases..AfterAfterBodyPhase.processCommentcSs|jjd |¡S)Nr­)rJrGr‡)rBr–r'r'r(r‡} sz=getPhases..AfterAfterBodyPhase.processSpaceCharacterscSs |j d¡|jjd|j_|S)Nzexpected-eof-but-got-charr­)rJrrGr_)rBr–r'r'r(r†€ s z8getPhases..AfterAfterBodyPhase.processCharacterscSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(rä… sz3getPhases..AfterAfterBodyPhase.startTagHtmlcSs*|j dd|di¡|jjd|j_|S)Nzexpected-eof-but-got-start-tagr@r­)rJrrGr_)rBr–r'r'r(rùˆ sz4getPhases..AfterAfterBodyPhase.startTagOthercSs*|j dd|di¡|jjd|j_|S)Nzexpected-eof-but-got-end-tagr@r­)rJrrGr_)rBr–r'r'r(r‰Ž sz4getPhases..AfterAfterBodyPhase.processEndTagr½N)r9r:r;rðrærrŠr‡r†rärùr‰r rürÞrýr'r'r'r(ÚAfterAfterBodyPhaset s rnc@sneZdZeƒZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z e  de fde fg¡Ze e_dS)z*getPhases..AfterAfterFramesetPhasecSsdS)Nr')rBr'r'r(rœ sz5getPhases..AfterAfterFramesetPhase.processEOFcSs|j ||jj¡dS)N)r>rÜrè)rBr–r'r'r(rŠŸ sz9getPhases..AfterAfterFramesetPhase.processCommentcSs|jjd |¡S)Nr­)rJrGr‡)rBr–r'r'r(r‡¢ szAgetPhases..AfterAfterFramesetPhase.processSpaceCharacterscSs|j d¡dS)Nzexpected-eof-but-got-char)rJr)rBr–r'r'r(r†¥ sz.AfterAfterFramesetPhase.processCharacterscSs|jjd |¡S)Nr­)rJrGrˆ)rBr–r'r'r(rä¨ sz7getPhases..AfterAfterFramesetPhase.startTagHtmlcSs|jjd |¡S)Nr÷)rJrGrˆ)rBr–r'r'r(ÚstartTagNoFrames« sz;getPhases..AfterAfterFramesetPhase.startTagNoFramescSs|j dd|di¡dS)Nzexpected-eof-but-got-start-tagr@)rJr)rBr–r'r'r(rù® sz8getPhases..AfterAfterFramesetPhase.startTagOthercSs|j dd|di¡dS)Nzexpected-eof-but-got-end-tagr@)rJr)rBr–r'r'r(r‰² sz8getPhases..AfterAfterFramesetPhase.processEndTagr½rN)r9r:r;rðrærrŠr‡r†rärorùr‰r rürÞrýr'r'r'r(ÚAfterAfterFramesetPhase™ s rp)rVrUr¯r÷r rr­rÅr¬rÚrªr«r©r¨r§r¦ryr}r‡r®rirerl)r)rHrXrÖrñrõrþrr r%rØrärírñr÷rûrÿrrrdrfrkrmrnrpr')r(rærçr(rFŒspH%-f?BY!/F@bYLc&r.8$%&rFcsFt|dƒtˆƒ@}|rBt|dƒ‡fdd„|d ¡Dƒƒ|d<dS)Nrxc3s"|]\}}ˆ ||¡|fVqdS)N)r‚)r?ÚkÚv)rZr'r(r\Ý sz$adjust_attributes..)rr0r,)r–rZÚneeds_adjustmentr')rZr(r£Ú sr£rsFcCs|dkr i}t||||dœS)N)r0r@rxr~)r)r@r0rkr~r'r'r(róá s róc@seZdZdZdS)rvzError in parsed documentN)r9r:r;rÊr'r'r'r(rvé srv)rT)r)rT)rsNF),Ú __future__rrrZpip._vendor.sixrrr.rìrr r Ztreebuilders.baser r Ú constantsr rrrrrrrrrrrr¤rrrrr!r+r=rÇr ÚmemoizerFr£róÚ Exceptionrvr'r'r'r(ÚsJ     H   8`