Ë
    ¤2Úi¶É ã                   ó,  — d dl mZmZmZ d dlmZmZ d dlZddlm	Z	 ddlm
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  dd„Z!dd„Z"d„ Z# G d„ de$«      Z%ejL                  d„ «       Z'd„ Z(	 	 dd„Z) G d„ de*«      Z+y)é    )Ú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Ú_ReparseExceptionc                 ól   — t        j                  |«      }t        ||¬«      } |j                  | fi |¤Ž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('<html><body><p>This is a doc</p></body></html>')
    <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0>

    ©ÚnamespaceHTMLElements)r   ÚgetTreeBuilderÚ
HTMLParserÚparse)ÚdocÚtreebuilderr    ÚkwargsÚtbÚps         úK/var/www/html/acx/venv/lib/python3.12/site-packages/html5lib/html5parser.pyr#   r#      s7   € ô$ 
×	$Ñ	$ [Ó	1€BÜ�2Ð-BÔC€AØˆ1�7‰7�3Ñ!˜&Ñ!Ð!ó    c                 óp   — t        j                  |«      }t        ||¬«      } |j                  | fd|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('<b>this is a fragment</b>')
    <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

    r   Ú	container)r   r!   r"   ÚparseFragment)r$   r,   r%   r    r&   r'   r(   s          r)   r-   r-   1   s<   € ô( 
×	$Ñ	$ [Ó	1€BÜ�2Ð-BÔC€AØˆ1�?‰?˜3Ñ>¨)Ð>°vÑ>Ð>r*   c                 ó*   ‡ —  G ˆ fd„dt         «      }|S )Nc                   ó   •— e Zd Zˆ fd„Zy)ú-method_decorator_metaclass.<locals>.Decoratedc                 ó²   •— |j                  «       D ],  \  }}t        |t        j                  «      r ‰|«      }|||<   Œ. t        j                  | |||«      S ©N)ÚitemsÚ
isinstanceÚtypesÚFunctionTypeÚtypeÚ__new__)ÚmetaÚ	classnameÚbasesÚ	classDictÚattributeNameÚ	attributeÚfunctions         €r)   r8   z5method_decorator_metaclass.<locals>.Decorated.__new__L   sY   ø€ Ø,5¯O©OÓ,=ò 5Ñ(�˜yÜ˜i¬×);Ñ);Ô<Ù (¨Ó 3�Ià+4�	˜-Ò(ð	5ô
 —<‘<  i°¸	ÓBÐBr*   N)Ú__name__Ú
__module__Ú__qualname__r8   )r?   s   €r)   Ú	Decoratedr0   K   s	   ø„ õ	Cr*   rC   )r7   )r?   rC   s   ` r)   Úmethod_decorator_metaclassrD   J   s   ø€ öC”Dô Cð Ðr*   c                   ó€   — e Zd ZdZdd„Zdd„Zd„ Zed„ «       Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r"   z]HTML parser

    Generates a tree structure from a stream of (possibly malformed) HTML.

    Nc           	      óú   — || _         |€t        j                  d«      } ||«      | _        g | _        t        |«      j                  «       D ��ci c]  \  }}| || | j                  «      “Œ c}}| _        yc c}}w )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

        NÚetree)Ústrictr   r!   ÚtreeÚerrorsÚ	getPhasesr3   Úphases)ÚselfrI   rH   r    ÚdebugÚnameÚclss          r)   Ú__init__zHTMLParser.__init__]   ss   € ð* ˆŒàˆ<Ü×.Ñ.¨wÓ7ˆDÙÐ.Ó/ˆŒ	ØˆŒô ! Ó'×-Ñ-Ó/÷1±i°d¸C�t™S  t§y¡yÓ1Ñ1ó 1ˆ�ùó 1s   ÁA7c                 ó  — || _         || _        || _        t        j                  |fd| i|¤Ž| _        | j                  «        	 | j                  «        y # t        $ r# | j                  «        | j                  «        Y y w xY w)NÚparser)	ÚinnerHTMLModer,   Ú	scriptingr
   ÚHTMLTokenizerÚ	tokenizerÚresetÚmainLoopr   )rM   ÚstreamÚ	innerHTMLr,   rU   r&   s         r)   Ú_parsezHTMLParser._parse|   sl   € à&ˆÔØ"ˆŒØ"ˆŒÜ#×1Ñ1°&ÑPÀÐPÈÑPˆŒØ�
‰
Œð	Ø�M‰M�OøÜ ò 	Ø�J‰JŒLØ�M‰MŽOð	ús   ÁA Á)BÂ Bc                 óò  — | j                   j                  «        d| _        g | _        g | _        d| _        | j                  �r| j                  j                  «       | _	        | j                  t        v r&| j                  j                  | j                  _        nn| j                  t        v r&| j                  j                  | j                  _        n6| j                  dk(  r&| j                  j                   | j                  _        n	 | j"                  d   | _        | j$                  j'                  «        | j)                  «        nd| _	        | j"                  d   | _        d | _        d | _        d| _        y )NFz	no quirksÚ	plaintextÚ
beforeHtmlÚinitialT)rI   rX   ÚfirstStartTagrJ   ÚlogÚ
compatModerT   r,   Úlowerr[   r   rW   ÚrcdataStateÚstater   ÚrawtextStateÚplaintextStaterL   ÚphaseÚinsertHtmlElementÚresetInsertionModeÚ	lastPhaseÚbeforeRCDataPhaseÚ
framesetOK©rM   s    r)   rX   zHTMLParser.resetŠ   s  € Ø�	‰	�‰ÔØ"ˆÔØˆŒØˆŒà%ˆŒà×ÓØ!Ÿ^™^×1Ñ1Ó3ˆDŒNà�~‰~¤Ñ.Ø'+§~¡~×'AÑ'A�—‘Õ$Ø—‘¤>Ñ1Ø'+§~¡~×'BÑ'B�—‘Õ$Ø—‘ ;Ò.Ø'+§~¡~×'DÑ'D�—‘Õ$ð ØŸ™ \Ñ2ˆDŒJØ�J‰J×(Ñ(Ô*Ø×#Ñ#Õ%à"ˆDŒNØŸ™ YÑ/ˆDŒJàˆŒà!%ˆÔàˆ�r*   c                 óv   — t        | d«      sy| j                  j                  j                  d   j                  S )z‡Name of the character encoding that was used to decode the input stream, or
        :obj:`None` if that is not determined yet

        rW   Nr   )ÚhasattrrW   rZ   ÚcharEncodingrO   ro   s    r)   ÚdocumentEncodingzHTMLParser.documentEncoding¬   s2   € ô �t˜[Ô)ØØ�~‰~×$Ñ$×1Ñ1°!Ñ4×9Ñ9Ð9r*   c                 óð   — |j                   dk(  rJ|j                  t        d   k(  r4d|j                  v xr$ |j                  d   j	                  t
        «      dv S |j                  |j                   ft        v S )Núannotation-xmlÚmathmlÚencoding)z	text/htmlzapplication/xhtml+xml)rO   Ú	namespacer   Ú
attributesÚ	translater   r   ©rM   Úelements     r)   ÚisHTMLIntegrationPointz!HTMLParser.isHTMLIntegrationPoint¶   s{   € Ø�L‰LÐ,Ò,Ø×!Ñ!¤Z°Ñ%9Ò9Ø '×"4Ñ"4Ð4ò ;Ø×&Ñ& zÑ2×<Ñ<Ü(ó*à:ð;ð<ð
 ×%Ñ% w§|¡|Ð4Ô8TÐTÐTr*   c                 ó>   — |j                   |j                  ft        v S r2   )rx   rO   r   r{   s     r)   ÚisMathMLTextIntegrationPointz'HTMLParser.isMathMLTextIntegrationPointÀ   s   € Ø×!Ñ! 7§<¡<Ð0Ô4VÐVÐVr*   c                 óL  — t         d   }t         d   }t         d   }t         d   }t         d   }t         d   }t         d   }| j                  D �]  }d }	|}
|
��Î|
}	| j                  j                  r| j                  j                  d   nd }|r|j                  nd }|r|j
                  nd }|
d	   }||k(  r)| j                  |
d
   |
j                  di «      «       d }
�nDt        | j                  j                  «      dk(  s}|| j                  j                  k(  sd| j                  |«      r||k(  r|d   t        ddg«      vs<|||fv s6|t        d   k(  r|dk(  r||k(  r|d   dk(  s| j                  |«      r||||fv r| j                  }n| j                  d   }||k(  r|j!                  |
«      }
nr||k(  r|j#                  |
«      }
n[||k(  r|j%                  |
«      }
nD||k(  r|j'                  |
«      }
n-||k(  r|j)                  |
«      }
n||k(  r|j+                  |
«      }
|
��ŒÎ|k(  s�Œà|	d   s�Œç|	d   r�Œî| j                  dd|	d   i«       �Œ d}g }|rK|j-                  | j                  «       | j                  j/                  «       }|r| j                  |vsJ ‚|rŒJy y )NÚ
CharactersÚSpaceCharactersÚStartTagÚEndTagÚCommentÚDoctypeÚ
ParseErroréÿÿÿÿr7   ÚdataÚdatavarsr   rO   ÚmglyphÚ
malignmarkrv   ru   ÚsvgÚinForeignContentÚselfClosingÚselfClosingAcknowledgedz&non-void-element-with-trailing-solidusT)r   rW   rI   ÚopenElementsrx   rO   Ú
parseErrorÚgetÚlenÚdefaultNamespacer   Ú	frozensetr   r}   ri   rL   ÚprocessCharactersÚprocessSpaceCharactersÚprocessStartTagÚprocessEndTagÚprocessCommentÚprocessDoctypeÚappendÚ
processEOF)rM   ÚCharactersTokenÚSpaceCharactersTokenÚStartTagTokenÚEndTagTokenÚCommentTokenÚDoctypeTokenÚParseErrorTokenÚtokenÚ
prev_tokenÚ	new_tokenÚcurrentNodeÚcurrentNodeNamespaceÚcurrentNodeNamer7   ri   Ú	reprocessrL   s                     r)   rY   zHTMLParser.mainLoopÃ   sÌ  € Ü$ \Ñ2ˆÜ)Ð*;Ñ<ÐÜ" :Ñ.ˆÜ  Ñ*ˆÜ! )Ñ,ˆÜ! )Ñ,ˆÜ$ \Ñ2ˆà—^‘^ó /	>ˆEØˆJØˆIØÑ'Ø&�
Ø<@¿I¹I×<RÒ<R˜dŸi™i×4Ñ4°RÒ8ÐX\�Ù@K {×'<Ò'<ÐQUÐ$Ù6A +×"2Ò"2Àt�à  Ñ(�à˜?Ò*Ø—O‘O I¨fÑ$5°y·}±}ÀZÐQSÓ7TÔUØ $’Iä˜DŸI™I×2Ñ2Ó3°qÒ8Ø,°·	±	×0JÑ0JÒJØ×:Ñ:¸;ÔGØ =Ò0Ø  ™=´	¸8À\Ð:RÓ0SÑSØ ?Ð4HÐ"IÑIØ-´¸HÑ1EÒEØ(Ð,<Ò<Ø Ò.Ø˜v™¨%Ò/Ø×4Ñ4°[ÔAØ -°ÐBVÐ!WÑWØ $§
¡
™à $§¡Ð,>Ñ ?˜à˜Ò.Ø$)×$;Ñ$;¸IÓ$F™	ØÐ!5Ò5Ø$)×$@Ñ$@ÀÓ$K™	Ø Ò.Ø$)×$9Ñ$9¸)Ó$D™	Ø Ò,Ø$)×$7Ñ$7¸	Ó$B™	Ø Ò-Ø$)×$8Ñ$8¸Ó$C™	Ø Ò-Ø$)×$8Ñ$8¸Ó$C˜	ðO Ò'ðR ˜Ô%¨*°]Ô*CØ"Ð#<Ô=Ø—‘Ð HØ!'¨°FÑ);Ð <ö>ð]/	>ðd ˆ	ØˆÙØ�M‰M˜$Ÿ*™*Ô%ØŸ
™
×-Ñ-Ó/ˆIÙØ—z‘z¨Ñ/Ð/Ð/ô	 r*   c                 óf   —  | j                   |ddg|¢­i |¤Ž | j                  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('<html><body><p>This is a doc</p></body></html>')
        <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0>

        FN)r\   rI   ÚgetDocument©rM   rZ   Úargsr&   s       r)   r#   zHTMLParser.parse  s3   € ð, 	ˆ�‰�F˜E 4Ð9¨$Ò9°&Ò9Ø�y‰y×$Ñ$Ó&Ð&r*   c                 ód   —  | j                   |dg|¢­i |¤Ž | j                  j                  «       S )aZ  Parse 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('<b>this is a fragment</b>')
        <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

        T)r\   rI   ÚgetFragmentr¯   s       r)   r-   zHTMLParser.parseFragment  s1   € ð2 	ˆ�‰�F˜DÐ2 4Ò2¨6Ò2Ø�y‰y×$Ñ$Ó&Ð&r*   c                 óÎ   — |€i }| j                   j                  | j                  j                  j	                  «       ||f«       | j
                  rt        t        |   |z  «      ‚y r2   )rJ   r�   rW   rZ   ÚpositionrH   r‡   r   )rM   Ú	errorcoderŠ   s      r)   r’   zHTMLParser.parseError;  sY   € àÐØˆHØ�‰×Ñ˜DŸN™N×1Ñ1×:Ñ:Ó<¸iÈÐRÔSØ�;Š;ÜœQ˜y™\¨HÑ4Ó5Ð5ð r*   c                 ó$   — t        |t        «       y r2   )Úadjust_attributesr   ©rM   r¦   s     r)   r   z!HTMLParser.adjustMathMLAttributesC  s   € Ü˜%Ô!7Õ8r*   c                 ó$   — t        |t        «       y r2   )r·   r   r¸   s     r)   r   zHTMLParser.adjustSVGAttributesF  s   € Ü˜%Ô!4Õ5r*   c                 ó$   — t        |t        «       y r2   )r·   ÚadjustForeignAttributesMapr¸   s     r)   r   z"HTMLParser.adjustForeignAttributesI  s   € Ü˜%Ô!;Õ<r*   c                 ó8   — | j                   j                  «        y r2   )rS   ri   r¸   s     r)   ÚreparseTokenNormalzHTMLParser.reparseTokenNormalL  s   € à�‰×ÑÕr*   c                 óè  — d}ddddddddddd	d	d
ddœ}| j                   j                  d d d…   D ]¹  }|j                  }d }|| j                   j                  d   k(  r| j                  sJ ‚d}| j                  }|dv r| j                  sJ ‚|s$|j                  | j                   j
                  k7  rŒ�||v r| j                  ||      } || _        y |sŒ£| j                  d	   } || _        y  | _        y )NFÚinSelectÚinCellÚinRowÚinTableBodyÚ	inCaptionÚinColumnGroupÚinTableÚinBodyÚ
inFramesetÚ
beforeHead)ÚselectÚtdÚthÚtrÚtbodyÚtheadÚtfootÚcaptionÚcolgroupÚtableÚheadÚbodyÚframesetÚhtmlrˆ   r   T)rÉ   rÑ   rÓ   rÖ   )rI   r‘   rO   r[   rx   r•   rL   ri   )rM   ÚlastÚnewModesÚnodeÚnodeNameÚ	new_phases         r)   rk   zHTMLParser.resetInsertionModeP  s  € ð ˆà ØØØØ"Ø"Ø"Ø"Ø'ØØØØ$Ø ñ
ˆð  —I‘I×*Ñ*©4¨R¨4Ñ0ò 	ˆDØ—y‘yˆHØˆIØ�t—y‘y×-Ñ-¨aÑ0Ò0Ø—~’~Ð%�~Ø�ØŸ>™>�ð ÐAÑAØ—~’~Ð%�~á˜DŸN™N¨d¯i©i×.HÑ.HÒHØà˜8Ñ#Ø ŸK™K¨°Ñ(:Ñ;�	Øð
 ˆ�
ò	 Ø ŸK™K¨Ñ1�	Øàˆ�
ð-	ð, ˆ�
r*   c                 ó0  — |dv sJ ‚| j                   j                  |«       |dk(  r&| j                  j                  | j                  _        n%| j                  j
                  | j                  _        | j                  | _        | j                  d   | _        y )N)ÚRAWTEXTÚRCDATArÝ   Útext)	rI   ÚinsertElementrW   rg   rf   re   ri   ÚoriginalPhaserL   )rM   r¦   ÚcontentTypes      r)   ÚparseRCDataRawtextzHTMLParser.parseRCDataRawtext|  ss   € àÐ3Ñ3Ð3Ð3à�	‰	×Ñ Ô&à˜)Ò#Ø#'§>¡>×#>Ñ#>ˆD�N‰NÕ à#'§>¡>×#=Ñ#=ˆD�N‰NÔ à!ŸZ™ZˆÔà—[‘[ Ñ(ˆ�
r*   )NFTF)FÚdivF)zXXX-undefined-errorN)r@   rA   rB   Ú__doc__rQ   r\   rX   Úpropertyrs   r}   r   rY   r#   r-   r’   r   r   r   r½   rk   rã   © r*   r)   r"   r"   V   sl   „ ñó1ó>ò ðD ñ:ó ð:òUòWòA0òF'ò2'ó86ò9ò6ò=òò*óX)r*   r"   c           
      óò  ‡‡‡— d„ }d„ } G d„ dt         || |«      «      «      Š G d„ d‰«      } G d„ d‰«      } G d	„ d
‰«      } G d„ d‰«      } G d„ d‰«      } G d„ d‰«      } G ˆˆfd„d‰«      Š G d„ d‰«      }	 G ˆfd„d‰«      }
 G ˆfd„d‰«      Š G ˆfd„d‰«      } G ˆfd„d‰«      } G ˆfd„d‰«      } G ˆfd„d ‰«      } G ˆfd!„d"‰«      } G ˆfd#„d$‰«      } G d%„ d&‰«      } G ˆfd'„d(‰«      } G d)„ d*‰«      } G ˆfd+„d,‰«      } G ˆfd-„d.‰«      } G d/„ d0‰«      } G d1„ d2‰«      }i d3|“d4|“d5|“d6|“d7|“d8|“d9‰“d:|	“d;|
“d<‰“d=|“d>|“d?|“d@|“dA|“dB|“dC|“||||||dDœ¥S )ENc                 ór   ‡ ‡— t        j                  «       D ��ci c]  \  }}||“Œ
 c}}Šˆ ˆfd„}|S c c}}w )z4Logger that records which phase processes each tokenc                 óú  •— ‰j                   j                  d«      rÔt        |«      dkD  rÆ|d   }d‰|d      i}|d   t        v r|d   |d<   | j                  j
                  j                  | j                  j                  j                  j                   | j                  j                  j                  j                   | j                  j                   ‰j                   |f«        ‰| g|¢­i |¤ŽS  ‰| g|¢­i |¤ŽS )NÚprocessr   r7   rO   )r@   Ú
startswithr”   r   rS   rb   r�   rW   rf   ri   Ú	__class__)rM   r°   r&   r¦   Úinfor?   Ú
type_namess        €€r)   Úwrappedz'getPhases.<locals>.log.<locals>.wrapped’  sç   ø€ Ø× Ñ ×+Ñ+¨IÔ6¼3¸t»9Àqº=Ø˜Q™�Ø 
¨5°©=Ñ 9Ð:�Ø˜‘=¤MÑ1Ø#(¨¡=�D˜‘Là—‘—‘×&Ñ&¨¯©×(=Ñ(=×(CÑ(C×(LÑ(LØ(,¯©×(9Ñ(9×(CÑ(C×(LÑ(LØ(,¯©×(?Ñ(?Ø(0×(9Ñ(9Ø(,ð	(.ô /ñ
   Ð6 tÒ6¨vÑ6Ð6á Ð6 tÒ6¨vÑ6Ð6r*   )r   r3   )r?   ÚkeyÚvaluerð   rï   s   `   @r)   rb   zgetPhases.<locals>.logŽ  s6   ù€ ä3=×3CÑ3CÓ3E×F¡Z S¨%�e˜S‘jÓFˆ
õ	7ð ˆùó# Gs   š3c                 ó(   — | rt        |«      S t        S r2   )rD   r7   )Úuse_metaclassÚmetaclass_funcs     r)   ÚgetMetaclasszgetPhases.<locals>.getMetaclass£  s   € ÙÜ-¨nÓ=Ð=äˆKr*   c                   óJ   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)úgetPhases.<locals>.PhasezNBase class for helper object that implements each phase of processing
        )rS   rI   Ú__startTagCacheÚ__endTagCachec                 ó<   — || _         || _        i | _        i | _        y r2   )rS   rI   Ú_Phase__startTagCacheÚ_Phase__endTagCache)rM   rS   rI   s      r)   rQ   z!getPhases.<locals>.Phase.__init__¯  s    € Ø ˆDŒKØˆDŒIØ#%ˆDÔ Ø!#ˆDÕr*   c                 ó   — t         ‚r2   )ÚNotImplementedErrorro   s    r)   rž   z#getPhases.<locals>.Phase.processEOFµ  s   € Ü%Ð%r*   c                 ój   — | j                   j                  || j                   j                  d   «       y )Nrˆ   ©rI   ÚinsertCommentr‘   r¸   s     r)   r›   z'getPhases.<locals>.Phase.processComment¸  s'   € ð �I‰I×#Ñ# E¨4¯9©9×+AÑ+AÀ"Ñ+EÕFr*   c                 ó:   — | j                   j                  d«       y )Nzunexpected-doctype©rS   r’   r¸   s     r)   rœ   z'getPhases.<locals>.Phase.processDoctype½  s   € Ø�K‰K×"Ñ"Ð#7Õ8r*   c                 ó@   — | j                   j                  |d   «       y ©Nr‰   ©rI   Ú
insertTextr¸   s     r)   r—   z*getPhases.<locals>.Phase.processCharactersÀ  ó   € Ø�I‰I× Ñ   v¡Õ/r*   c                 ó@   — | j                   j                  |d   «       y r  r  r¸   s     r)   r˜   z/getPhases.<locals>.Phase.processSpaceCharactersÃ  r	  r*   c                 ó¼  — |d   }|| j                   v r| j                   |   }n²| j                  |   x}| j                   |<   t        | j                   «      t        | j                  «      dz  kD  rf| j                   j                  t	        t        | j                   «      «      «       t        | j                   «      t        | j                  «      dz  kD  rŒf ||«      S ©NrO   gš™™™™™ñ?)rü   ÚstartTagHandlerr”   ÚpopÚnextÚiter©rM   r¦   rO   Úfuncs       r)   r™   z(getPhases.<locals>.Phase.processStartTagÆ  sÅ   € ð ˜‘=ˆDð �t×+Ñ+Ñ+Ø×+Ñ+¨DÑ1‘à48×4HÑ4HÈÑ4NÐN��t×+Ñ+¨DÑ1ä˜$×.Ñ.Ó/´#°d×6JÑ6JÓ2KÈcÑ2QÒQà×(Ñ(×,Ñ,¬T´$°t×7KÑ7KÓ2LÓ-MÔNô ˜$×.Ñ.Ó/´#°d×6JÑ6JÓ2KÈcÑ2QÓQñ ˜“;Ðr*   c                 óf  — | j                   j                  s#|d   dk(  r| j                   j                  d«       |d   j                  «       D ]Q  \  }}|| j                  j
                  d   j                  vsŒ,|| j                  j
                  d   j                  |<   ŒS d| j                   _        y )NrO   rÖ   znon-html-rootr‰   r   F)rS   ra   r’   r3   rI   r‘   ry   ©rM   r¦   Úattrrò   s       r)   ÚstartTagHtmlz%getPhases.<locals>.Phase.startTagHtml×  sš   € Ø—;‘;×,Ò,°°v±À&Ò1HØ—‘×&Ñ& Ô7ð  % V™}×2Ñ2Ó4ò G‘��eØ˜tŸy™y×5Ñ5°aÑ8×CÑCÒCØAF�D—I‘I×*Ñ*¨1Ñ-×8Ñ8¸Ò>ðGð ).ˆD�K‰KÕ%r*   c                 ó¼  — |d   }|| j                   v r| j                   |   }n²| j                  |   x}| j                   |<   t        | j                   «      t        | j                  «      dz  kD  rf| j                   j                  t	        t        | j                   «      «      «       t        | j                   «      t        | j                  «      dz  kD  rŒf ||«      S r  )rý   ÚendTagHandlerr”   r  r  r  r  s       r)   rš   z&getPhases.<locals>.Phase.processEndTagá  sÅ   € ð ˜‘=ˆDð �t×)Ñ)Ñ)Ø×)Ñ)¨$Ñ/‘à26×2DÑ2DÀTÑ2JÐJ��t×)Ñ)¨$Ñ/ä˜$×,Ñ,Ó-´°D×4FÑ4FÓ0GÈ#Ñ0MÒMà×&Ñ&×*Ñ*¬4´°T×5GÑ5GÓ0HÓ+IÔJô ˜$×,Ñ,Ó-´°D×4FÑ4FÓ0GÈ#Ñ0MÓMñ ˜“;Ðr*   N)r@   rA   rB   rå   Ú	__slots__rQ   rž   r›   rœ   r—   r˜   r™   r  rš   rç   r*   r)   ÚPhaserø   ª  s:   „ ñ	àJˆ	ò	$ò	&ò	Gò
	9ò	0ò	0ò	ò"	.ó	r*   r  c                   óJ   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zy	)
úgetPhases.<locals>.InitialPhasec                  ó   — y r2   rç   r¸   s     r)   r˜   z6getPhases.<locals>.InitialPhase.processSpaceCharactersõ  ó   € Ør*   c                 ód   — | j                   j                  || j                   j                  «       y r2   ©rI   r  Údocumentr¸   s     r)   r›   z.getPhases.<locals>.InitialPhase.processCommentø  ó    € Ø�I‰I×#Ñ# E¨4¯9©9×+=Ñ+=Õ>r*   c                 ó\  — |d   }|d   }|d   }|d   }|dk7  s	|€|� |dk7  r| j                   j                  d«       |€d}| j                  j                  |«       |dk7  r|j	                  t
        «      }|rE|d   dk7  s=|j                  d	«      s,|d
v s(|j                  d«      r|�|r%|j                  «       dk(  rd| j                   _        n5|j                  d«      s|j                  d«      r|�d| j                   _        | j                   j                  d   | j                   _
        y )NrO   ÚpublicIdÚsystemIdÚcorrectrÖ   zabout:legacy-compatzunknown-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//zlimited quirksr_   )rS   r’   rI   ÚinsertDoctyperz   r   rì   rd   rc   rL   ri   )rM   r¦   rO   r$  r%  r&  s         r)   rœ   z.getPhases.<locals>.InitialPhase.processDoctypeû  sQ  € Ø˜‘=ˆDØ˜ZÑ(ˆHØ˜ZÑ(ˆHØ˜IÑ&ˆGà˜’ (Ð"6ØÐ(¨XÐ9NÒ-NØ—‘×&Ñ&Ð'8Ô9àÐØ�à�I‰I×#Ñ# EÔ*à˜2Š~Ø#×-Ñ-Ô.>Ó?�á˜u V™}°Ò6Ø×'Ñ'ð6<ô7=ðp ð !)ñ )ð ×'Ñ'ðAôBð Ð$Ù §¡Ó!1Ð5qÒ!qØ)1�—‘Õ&Ø×%Ñ%ð=ô>ð ×%Ñ%ð?ô@ð Ð&Ø)9�—‘Ô&à $§¡× 2Ñ 2°<Ñ @ˆD�K‰KÕr*   c                 óv   — d| j                   _        | j                   j                  d   | j                   _        y )Nr(  r_   )rS   rc   rL   ri   ro   s    r)   ÚanythingElsez,getPhases.<locals>.InitialPhase.anythingElseZ  s)   € Ø%-ˆD�K‰KÔ"Ø $§¡× 2Ñ 2°<Ñ @ˆD�K‰KÕr*   c                 ó\   — | j                   j                  d«       | j                  «        |S )Nzexpected-doctype-but-got-chars©rS   r’   r+  r¸   s     r)   r—   z1getPhases.<locals>.InitialPhase.processCharacters^  s&   € Ø�K‰K×"Ñ"Ð#CÔDØ×ÑÔØˆLr*   c                 óh   — | j                   j                  dd|d   i«       | j                  «        |S )Nz"expected-doctype-but-got-start-tagrO   r-  r¸   s     r)   r™   z/getPhases.<locals>.InitialPhase.processStartTagc  s4   € Ø�K‰K×"Ñ"Ð#GØ$*¨E°&©MÐ#:ô<à×ÑÔØˆLr*   c                 óh   — | j                   j                  dd|d   i«       | j                  «        |S )Nz expected-doctype-but-got-end-tagrO   r-  r¸   s     r)   rš   z-getPhases.<locals>.InitialPhase.processEndTagi  s4   € Ø�K‰K×"Ñ"Ð#EØ$*¨E°&©MÐ#:ô<à×ÑÔØˆLr*   c                 óZ   — | j                   j                  d«       | j                  «        y)Nzexpected-doctype-but-got-eofTr-  ro   s    r)   rž   z*getPhases.<locals>.InitialPhase.processEOFo  s$   € Ø�K‰K×"Ñ"Ð#AÔBØ×ÑÔØr*   N)r@   rA   rB   Útupler  r˜   r›   rœ   r+  r—   r™   rš   rž   rç   r*   r)   ÚInitialPhaser  ò  s5   „ Ù“Gˆ	ò	ò	?ò]	Aò~	Aò	ò
	ò	ó	r*   r2  c                   óD   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zy)	ú"getPhases.<locals>.BeforeHtmlPhasec                 óž   — | j                   j                  t        dd«      «       | j                  j                  d   | j                  _        y )NrÖ   rƒ   rÈ   )rI   Ú
insertRootÚimpliedTagTokenrS   rL   ri   ro   s    r)   rj   z4getPhases.<locals>.BeforeHtmlPhase.insertHtmlElementx  s6   € Ø�I‰I× Ñ ¤°¸Ó!DÔEØ $§¡× 2Ñ 2°<Ñ @ˆD�K‰KÕr*   c                 ó$   — | j                  «        y©NT©rj   ro   s    r)   rž   z-getPhases.<locals>.BeforeHtmlPhase.processEOF}  s   € Ø×"Ñ"Ô$Ør*   c                 ód   — | j                   j                  || j                   j                  «       y r2   r   r¸   s     r)   r›   z1getPhases.<locals>.BeforeHtmlPhase.processComment�  r"  r*   c                  ó   — y r2   rç   r¸   s     r)   r˜   z9getPhases.<locals>.BeforeHtmlPhase.processSpaceCharacters„  r  r*   c                 ó&   — | j                  «        |S r2   r:  r¸   s     r)   r—   z4getPhases.<locals>.BeforeHtmlPhase.processCharacters‡  s   € Ø×"Ñ"Ô$ØˆLr*   c                 óX   — |d   dk(  rd| j                   _        | j                  «        |S )NrO   rÖ   T)rS   ra   rj   r¸   s     r)   r™   z2getPhases.<locals>.BeforeHtmlPhase.processStartTag‹  s+   € Ø�V‰} Ò&Ø,0�—‘Ô)Ø×"Ñ"Ô$ØˆLr*   c                 óx   — |d   dvr"| j                   j                  dd|d   i«       y | j                  «        |S )NrO   ©rÓ   rÔ   rÖ   Úbrzunexpected-end-tag-before-html)rS   r’   rj   r¸   s     r)   rš   z0getPhases.<locals>.BeforeHtmlPhase.processEndTag‘  sD   € Ø�V‰}Ð$BÑBØ—‘×&Ñ&Ð'GØ(.°°f±Ð'>õ@ð ×&Ñ&Ô(Ø�r*   N)r@   rA   rB   r1  r  rj   rž   r›   r˜   r—   r™   rš   rç   r*   r)   ÚBeforeHtmlPhaser4  t  s-   „ Ù“Gˆ	ò	Aò
	ò	?ò	ò	ò	ó	r*   rB  c                   óÀ   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Z ej                  d	efd
e	fg«      Ze
e_         ej                  defg«      Zee_        y)ú"getPhases.<locals>.BeforeHeadPhasec                 ó:   — | j                  t        dd«      «       y)NrÓ   rƒ   T©ÚstartTagHeadr7  ro   s    r)   rž   z-getPhases.<locals>.BeforeHeadPhase.processEOFœ  s   € Ø×Ñœo¨f°jÓAÔBØr*   c                  ó   — y r2   rç   r¸   s     r)   r˜   z9getPhases.<locals>.BeforeHeadPhase.processSpaceCharacters   r  r*   c                 ó<   — | j                  t        dd«      «       |S ©NrÓ   rƒ   rF  r¸   s     r)   r—   z4getPhases.<locals>.BeforeHeadPhase.processCharacters£  ó   € Ø×Ñœo¨f°jÓAÔBØˆLr*   c                 óR   — | j                   j                  d   j                  |«      S ©NrÆ   ©rS   rL   r™   r¸   s     r)   r  z/getPhases.<locals>.BeforeHeadPhase.startTagHtml§  ó"   € Ø—;‘;×%Ñ% hÑ/×?Ñ?ÀÓFÐFr*   c                 óÚ   — | j                   j                  |«       | j                   j                  d   | j                   _        | j                  j
                  d   | j                  _        y )Nrˆ   ÚinHead)rI   rà   r‘   ÚheadPointerrS   rL   ri   r¸   s     r)   rG  z/getPhases.<locals>.BeforeHeadPhase.startTagHeadª  sJ   € Ø�I‰I×#Ñ# EÔ*Ø$(§I¡I×$:Ñ$:¸2Ñ$>ˆD�I‰IÔ!Ø $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÕr*   c                 ó<   — | j                  t        dd«      «       |S rJ  rF  r¸   s     r)   ÚstartTagOtherz0getPhases.<locals>.BeforeHeadPhase.startTagOther¯  rK  r*   c                 ó<   — | j                  t        dd«      «       |S rJ  rF  r¸   s     r)   ÚendTagImplyHeadz2getPhases.<locals>.BeforeHeadPhase.endTagImplyHead³  rK  r*   c                 óF   — | j                   j                  dd|d   i«       y )Nzend-tag-after-implied-rootrO   r  r¸   s     r)   ÚendTagOtherz.getPhases.<locals>.BeforeHeadPhase.endTagOther·  s#   € Ø�K‰K×"Ñ"Ð#?Ø$*¨E°&©MÐ#:õ<r*   rÖ   rÓ   r@  N)r@   rA   rB   r1  r  rž   r˜   r—   r  rG  rT  rV  rX  r   ÚMethodDispatcherr  Údefaultr  rç   r*   r)   ÚBeforeHeadPhaserD  ™  sŽ   „ Ù“Gˆ	ò	ò	ò	ò	Gò	=ò
	ò	ò	<ð 2˜&×1Ñ1Ø�\Ð"Ø�\Ð"ð3
ó ˆð #0ˆÔà/˜×/Ñ/Ø+¨_Ð=ð1
ó ˆð !,ˆÕr*   r[  c                   ó  — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z ej*                  defdefdefdefdefde	fde
fdefg«      Zee_         ej*                  defdefg«      Zee_        y)úgetPhases.<locals>.InHeadPhasec                 ó$   — | j                  «        yr9  ©r+  ro   s    r)   rž   z)getPhases.<locals>.InHeadPhase.processEOFÊ  ó   € Ø×ÑÔØr*   c                 ó&   — | j                  «        |S r2   r_  r¸   s     r)   r—   z0getPhases.<locals>.InHeadPhase.processCharactersÎ  ó   € Ø×ÑÔØˆLr*   c                 óR   — | j                   j                  d   j                  |«      S rM  rN  r¸   s     r)   r  z+getPhases.<locals>.InHeadPhase.startTagHtmlÒ  rO  r*   c                 ó:   — | j                   j                  d«       y )Nz!two-heads-are-not-better-than-oner  r¸   s     r)   rG  z+getPhases.<locals>.InHeadPhase.startTagHeadÕ  s   € Ø�K‰K×"Ñ"Ð#FÕGr*   c                 óŒ   — | j                   j                  |«       | j                   j                  j                  «        d|d<   y ©NTr�   ©rI   rà   r‘   r  r¸   s     r)   ÚstartTagBaseLinkCommandz6getPhases.<locals>.InHeadPhase.startTagBaseLinkCommandØ  ó5   € Ø�I‰I×#Ñ# EÔ*Ø�I‰I×"Ñ"×&Ñ&Ô(Ø/3ˆEÐ+Ò,r*   c                 óž  — | j                   j                  |«       | j                   j                  j                  «        d|d<   |d   }| j                  j
                  j                  j                  d   dk(  rÔd|v r3| j                  j
                  j                  j                  |d   «       y d|v r˜d|v r“|d   j                  «       d	k(  r|t        j                  |d   j                  d
«      «      }t        j                  |«      }|j                  «       }| j                  j
                  j                  j                  |«       y y y y y )NTr�   r‰   r   Ú	tentativeÚcharsetÚcontentz
http-equivzcontent-typezutf-8)rI   rà   r‘   r  rS   rW   rZ   rr   ÚchangeEncodingrd   r	   ÚEncodingBytesÚencodeÚContentAttrParserr#   )rM   r¦   ry   r‰   rS   Úcodecs         r)   ÚstartTagMetaz+getPhases.<locals>.InHeadPhase.startTagMetaÝ  s$  € Ø�I‰I×#Ñ# EÔ*Ø�I‰I×"Ñ"×&Ñ&Ô(Ø/3ˆEÐ+Ñ,à˜v™ˆJØ�{‰{×$Ñ$×+Ñ+×8Ñ8¸Ñ;¸{ÒJØ 
Ñ*Ø—K‘K×)Ñ)×0Ñ0×?Ñ?À
È9Ñ@UÕVØ :Ñ-Ø" jÑ0Ø  Ñ.×4Ñ4Ó6¸.ÒHô
 (×5Ñ5°jÀÑ6K×6RÑ6RÐSZÓ6[Ó\�DÜ)×;Ñ;¸DÓA�FØ"ŸL™L›N�EØ—K‘K×)Ñ)×0Ñ0×?Ñ?ÀÕFð Ið 1ð .ð Kr*   c                 ó<   — | j                   j                  |d«       y )NrÞ   ©rS   rã   r¸   s     r)   ÚstartTagTitlez,getPhases.<locals>.InHeadPhase.startTagTitleò  s   € Ø�K‰K×*Ñ*¨5°(Õ;r*   c                 ó<   — | j                   j                  |d«       y )NrÝ   ru  r¸   s     r)   ÚstartTagNoFramesStylez4getPhases.<locals>.InHeadPhase.startTagNoFramesStyleõ  ó   € à�K‰K×*Ñ*¨5°)Õ<r*   c                 óð   — | j                   j                  r| j                   j                  |d«       y | j                  j	                  |«       | j                   j
                  d   | j                   _        y )NrÝ   ÚinHeadNoscript)rS   rU   rã   rI   rà   rL   ri   r¸   s     r)   ÚstartTagNoscriptz/getPhases.<locals>.InHeadPhase.startTagNoscriptù  sQ   € Ø�{‰{×$Ò$Ø—‘×.Ñ.¨u°iÕ@à—	‘	×'Ñ'¨Ô.Ø$(§K¡K×$6Ñ$6Ð7GÑ$H�—‘Õ!r*   c                 óF  — | j                   j                  |«       | j                  j                  j                  | j                  j                  _        | j                  j                  | j                  _        | j                  j                  d   | j                  _        y )Nrß   )	rI   rà   rS   rW   ÚscriptDataStaterf   ri   rá   rL   r¸   s     r)   ÚstartTagScriptz-getPhases.<locals>.InHeadPhase.startTagScript   sg   € Ø�I‰I×#Ñ# EÔ*Ø*.¯+©+×*?Ñ*?×*OÑ*OˆD�K‰K×!Ñ!Ô'Ø(,¯©×(9Ñ(9ˆD�K‰KÔ%Ø $§¡× 2Ñ 2°6Ñ :ˆD�K‰KÕr*   c                 ó&   — | j                  «        |S r2   r_  r¸   s     r)   rT  z,getPhases.<locals>.InHeadPhase.startTagOther  rb  r*   c                 óö   — | j                   j                  j                  j                  «       }|j                  dk(  sJ d|j                  z  «       ‚| j                   j
                  d   | j                   _        y )NrÓ   zExpected head got %sÚ	afterHead©rS   rI   r‘   r  rO   rL   ri   ©rM   r¦   rÙ   s      r)   Ú
endTagHeadz)getPhases.<locals>.InHeadPhase.endTagHead
  s\   € Ø—;‘;×#Ñ#×0Ñ0×4Ñ4Ó6ˆDØ—9‘9 Ò&ÐJÐ(>ÀÇÁÑ(JÓJÐ&Ø $§¡× 2Ñ 2°;Ñ ?ˆD�K‰KÕr*   c                 ó&   — | j                  «        |S r2   r_  r¸   s     r)   ÚendTagHtmlBodyBrz/getPhases.<locals>.InHeadPhase.endTagHtmlBodyBr  rb  r*   c                 óF   — | j                   j                  dd|d   i«       y ©Núunexpected-end-tagrO   r  r¸   s     r)   rX  z*getPhases.<locals>.InHeadPhase.endTagOther  ó    € Ø�K‰K×"Ñ"Ð#7¸&À%ÈÁ-Ð9PÕQr*   c                 ó8   — | j                  t        d«      «       y )NrÓ   )r…  r7  ro   s    r)   r+  z+getPhases.<locals>.InHeadPhase.anythingElse  s   € Ø�O‰OœO¨FÓ3Õ4r*   rÖ   Útitle)ÚnoframesÚstyleÚnoscriptÚscript)ÚbaseÚbasefontÚbgsoundÚcommandÚlinkr9   rÓ   )rA  rÖ   rÔ   N)r@   rA   rB   r1  r  rž   r—   r  rG  rh  rs  rv  rx  r|  r  rT  r…  r‡  rX  r+  r   rY  r  rZ  r  rç   r*   r)   ÚInHeadPhaser]  Æ  sô   „ Ù“Gˆ	ò	ò	ò	Gò	Hò	4ò
	Gò*	<ò	=ò	Iò	;ò	ò	@ò
	ò	Rò	5ð 2˜&×1Ñ1Ø�\Ð"Ø�mÐ$Ø"Ð$9Ð:ØÐ)Ð*Ø�~Ð&Ø?Ø$ð&à�\Ð"Ø�\Ð"ð
3
ó 
ˆð #0ˆÔà/˜×/Ñ/Ø�ZÐ Ø#Ð%5Ð6ð1
ó ˆð !,ˆÕr*   r—  c                   óä   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Z ej$                  de	fde
fdefg«      Zee_         ej$                  defdefg«      Zee_        y)ú&getPhases.<locals>.InHeadNoscriptPhasec                 óZ   — | j                   j                  d«       | j                  «        y)Nzeof-in-head-noscriptTr-  ro   s    r)   rž   z1getPhases.<locals>.InHeadNoscriptPhase.processEOF/  s$   € Ø�K‰K×"Ñ"Ð#9Ô:Ø×ÑÔØr*   c                 óR   — | j                   j                  d   j                  |«      S ©NrQ  )rS   rL   r›   r¸   s     r)   r›   z5getPhases.<locals>.InHeadNoscriptPhase.processComment4  s"   € Ø—;‘;×%Ñ% hÑ/×>Ñ>¸uÓEÐEr*   c                 ó\   — | j                   j                  d«       | j                  «        |S )Nzchar-in-head-noscriptr-  r¸   s     r)   r—   z8getPhases.<locals>.InHeadNoscriptPhase.processCharacters7  s&   € Ø�K‰K×"Ñ"Ð#:Ô;Ø×ÑÔØˆLr*   c                 óR   — | j                   j                  d   j                  |«      S rœ  ©rS   rL   r˜   r¸   s     r)   r˜   z=getPhases.<locals>.InHeadNoscriptPhase.processSpaceCharacters<  ó"   € Ø—;‘;×%Ñ% hÑ/×FÑFÀuÓMÐMr*   c                 óR   — | j                   j                  d   j                  |«      S rM  rN  r¸   s     r)   r  z3getPhases.<locals>.InHeadNoscriptPhase.startTagHtml?  rO  r*   c                 óR   — | j                   j                  d   j                  |«      S rœ  rN  r¸   s     r)   rh  z>getPhases.<locals>.InHeadNoscriptPhase.startTagBaseLinkCommandB  rO  r*   c                 óF   — | j                   j                  dd|d   i«       y ©Núunexpected-start-tagrO   r  r¸   s     r)   ÚstartTagHeadNoscriptz;getPhases.<locals>.InHeadNoscriptPhase.startTagHeadNoscriptE  ó    € Ø�K‰K×"Ñ"Ð#9¸FÀEÈ&ÁMÐ;RÕSr*   c                 óh   — | j                   j                  dd|d   i«       | j                  «        |S ©Nzunexpected-inhead-noscript-tagrO   r-  r¸   s     r)   rT  z4getPhases.<locals>.InHeadNoscriptPhase.startTagOtherH  ó2   € Ø�K‰K×"Ñ"Ð#CÀfÈeÐTZÉmÐE\Ô]Ø×ÑÔØˆLr*   c                 óö   — | j                   j                  j                  j                  «       }|j                  dk(  sJ d|j                  z  «       ‚| j                   j
                  d   | j                   _        y )Nr�  zExpected noscript got %srQ  rƒ  r„  s      r)   ÚendTagNoscriptz5getPhases.<locals>.InHeadNoscriptPhase.endTagNoscriptM  s\   € Ø—;‘;×#Ñ#×0Ñ0×4Ñ4Ó6ˆDØ—9‘9 
Ò*ÐRÐ,FÈÏÉÑ,RÓRÐ*Ø $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÕr*   c                 óh   — | j                   j                  dd|d   i«       | j                  «        |S r©  r-  r¸   s     r)   ÚendTagBrz/getPhases.<locals>.InHeadNoscriptPhase.endTagBrR  rª  r*   c                 óF   — | j                   j                  dd|d   i«       y r‰  r  r¸   s     r)   rX  z2getPhases.<locals>.InHeadNoscriptPhase.endTagOtherW  r‹  r*   c                 ó8   — | j                  t        d«      «       y )Nr�  )r¬  r7  ro   s    r)   r+  z3getPhases.<locals>.InHeadNoscriptPhase.anythingElseZ  s   € à×Ñ¤°
Ó ;Õ<r*   rÖ   )r“  r”  r–  r9   rŽ  r�  )rÓ   r�  r�  rA  N)r@   rA   rB   r1  r  rž   r›   r—   r˜   r  rh  r¦  rT  r¬  r®  rX  r+  r   rY  r  rZ  r  rç   r*   r)   ÚInHeadNoscriptPhaser™  ,  s¹   „ Ù“Gˆ	ò	ò
	Fò	ò
	Nò	Gò	Gò	Tò	ò
	=ò
	ò
	Rò	=ð 2˜&×1Ñ1Ø�\Ð"ØIÐKbÐcØ!Ð#7Ð8ð3
ó ˆð
 #0ˆÔà/˜×/Ñ/Ø˜Ð(Ø�8Ðð1
ó ˆð !,ˆÕr*   r±  c                   óä   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Z ej"                  defdefde	fde
fdefg«      Zee_         ej"                  defg«      Zee_        y)ú!getPhases.<locals>.AfterHeadPhasec                 ó$   — | j                  «        yr9  r_  ro   s    r)   rž   z,getPhases.<locals>.AfterHeadPhase.processEOFn  r`  r*   c                 ó&   — | j                  «        |S r2   r_  r¸   s     r)   r—   z3getPhases.<locals>.AfterHeadPhase.processCharactersr  rb  r*   c                 óR   — | j                   j                  d   j                  |«      S rM  rN  r¸   s     r)   r  z.getPhases.<locals>.AfterHeadPhase.startTagHtmlv  rO  r*   c                 ó¬   — d| j                   _        | j                  j                  |«       | j                   j                  d   | j                   _        y )NFrÆ   )rS   rn   rI   rà   rL   ri   r¸   s     r)   ÚstartTagBodyz.getPhases.<locals>.AfterHeadPhase.startTagBodyy  s;   € Ø%*ˆD�K‰KÔ"Ø�I‰I×#Ñ# EÔ*Ø $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÕr*   c                 óŠ   — | j                   j                  |«       | j                  j                  d   | j                  _        y )NrÇ   )rI   rà   rS   rL   ri   r¸   s     r)   ÚstartTagFramesetz2getPhases.<locals>.AfterHeadPhase.startTagFrameset~  s/   € Ø�I‰I×#Ñ# EÔ*Ø $§¡× 2Ñ 2°<Ñ @ˆD�K‰KÕr*   c                 ó¶  — | j                   j                  dd|d   i«       | j                  j                  j	                  | j                  j
                  «       | j                   j                  d   j                  |«       | j                  j                  d d d…   D ]8  }|j                  dk(  sŒ| j                  j                  j                  |«        y  y )Nz#unexpected-start-tag-out-of-my-headrO   rQ  rˆ   rÓ   )
rS   r’   rI   r‘   r�   rR  rL   r™   rO   Úremover„  s      r)   ÚstartTagFromHeadz2getPhases.<locals>.AfterHeadPhase.startTagFromHead‚  s«   € Ø�K‰K×"Ñ"Ð#HØ$*¨E°&©MÐ#:ô<à�I‰I×"Ñ"×)Ñ)¨$¯)©)×*?Ñ*?Ô@Ø�K‰K×Ñ˜xÑ(×8Ñ8¸Ô?ØŸ	™	×.Ñ.©t°¨tÑ4ò �Ø—9‘9 Ó&Ø—I‘I×*Ñ*×1Ñ1°$Ô7Ùñr*   c                 óF   — | j                   j                  dd|d   i«       y r¤  r  r¸   s     r)   rG  z.getPhases.<locals>.AfterHeadPhase.startTagHeadŒ  r§  r*   c                 ó&   — | j                  «        |S r2   r_  r¸   s     r)   rT  z/getPhases.<locals>.AfterHeadPhase.startTagOther�  rb  r*   c                 ó&   — | j                  «        |S r2   r_  r¸   s     r)   r‡  z2getPhases.<locals>.AfterHeadPhase.endTagHtmlBodyBr“  rb  r*   c                 óF   — | j                   j                  dd|d   i«       y r‰  r  r¸   s     r)   rX  z-getPhases.<locals>.AfterHeadPhase.endTagOther—  r‹  r*   c                 óÀ   — | j                   j                  t        dd«      «       | j                  j                  d   | j                  _        d| j                  _        y )NrÔ   rƒ   rÆ   T)rI   rà   r7  rS   rL   ri   rn   ro   s    r)   r+  z.getPhases.<locals>.AfterHeadPhase.anythingElseš  sB   € Ø�I‰I×#Ñ#¤O°F¸JÓ$GÔHØ $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÔØ%)ˆD�K‰KÕ"r*   rÖ   rÔ   rÕ   )	r’  r“  r”  r–  r9   rŽ  r‘  r�  r�  rÓ   )rÔ   rÖ   rA  N)r@   rA   rB   r1  r  rž   r—   r  r¸  rº  r½  rG  rT  r‡  rX  r+  r   rY  r  rZ  r  rç   r*   r)   ÚAfterHeadPhaser³  k  sÄ   „ Ù“Gˆ	ò	ò	ò	Gò	=ò
	Aò	ò	Tò	ò	ò	Rò	*ð
 2˜&×1Ñ1Ø�\Ð"Ø�\Ð"ØÐ)Ð*ð àðð �\Ð"ð3
ó ˆð #0ˆÔØ/˜×/Ñ/Ð2HØ2Bð2Dð 1Eó Fˆà +ˆÕr*   rÃ  c                   ó  •‡ — e Zd ZdZˆˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1d0„ Z2d1„ Z3d2„ Z4d3„ Z5d4„ Z6 e7jp                  g d5W °jr                  f‘d6ef‘d7ef‘d8ef‘d9ef‘e:ef‘d:ef‘d;ef‘d<ef‘d=ef‘d>ef‘d?ef‘d@ef‘dAef‘dBef‘dCef‘dDef‘dEef‘dFef‘dGef‘dHef‘dIef‘dJe f‘dKe!f‘dLe"f‘dMe#f‘dNe$f‘dOe&f‘dPe'f‘dQe%f‘dRe(f‘dSe)f‘dTe*f‘«      Z;e+e;_<         e7jp                  d7e-fd5e.fdUe/fd;e0fdVe,fdWe1fe:e2fdXe3fdBe4fdYe5fg
«      Z=e6e=_<        ˆ xZ>S )ZúgetPhases.<locals>.InBodyPhase)r˜   c                 óF   •— t        ‰| �  |i |¤Ž | j                  | _        y r2   )ÚsuperrQ   ÚprocessSpaceCharactersNonPrer˜   )rM   r°   r&   ÚInBodyPhaserí   s      €€r)   rQ   z'getPhases.<locals>.InBodyPhase.__init__²  s%   ø€ Ü�+˜tÑ-¨tÐ>°vÒ>à*.×*KÑ*KˆDÕ'r*   c                 ó    — |j                   |j                   k(  xr4 |j                  |j                  k(  xr |j                  |j                  k(  S r2   )rO   rx   ry   )rM   Únode1Únode2s      r)   ÚisMatchingFormattingElementz:getPhases.<locals>.InBodyPhase.isMatchingFormattingElement·  sE   € Ø—J‘J %§*¡*Ñ,ò 9Ø—O‘O u§¡Ñ6ò9à×$Ñ$¨×(8Ñ(8Ñ8ð:r*   c                 óä  — | j                   j                  |«       | j                   j                  d   }g }| j                   j                  d d d…   D ]0  }|t        u r n&| j                  ||«      sŒ |j                  |«       Œ2 t        |«      dk  sJ ‚t        |«      dk(  r(| j                   j                  j                  |d   «       | j                   j                  j                  |«       y )Nrˆ   é   )	rI   rà   r‘   ÚactiveFormattingElementsr   rÍ  r�   r”   r¼  )rM   r¦   r|   ÚmatchingElementsrÙ   s        r)   ÚaddFormattingElementz3getPhases.<locals>.InBodyPhase.addFormattingElement½  sÒ   € Ø�I‰I×#Ñ# EÔ*Ø—i‘i×,Ñ,¨RÑ0ˆGà!ÐØŸ	™	×:Ñ:¹4¸R¸4Ñ@ò 2�Øœ6‘>ÙØ×5Ñ5°d¸GÕDØ$×+Ñ+¨DÕ1ð	2ô Ð'Ó(¨AÒ-Ð-Ð-ÜÐ#Ó$¨Ò)Ø—	‘	×2Ñ2×9Ñ9Ð:JÈ2Ñ:NÔOØ�I‰I×.Ñ.×5Ñ5°gÕ>r*   c                 ó²   — t        d«      }| j                  j                  d d d…   D ]-  }|j                  |vsŒ| j                  j                  d«        y  y )N)ÚddÚdtÚlir(   rÍ   rÊ   rÏ   rË   rÎ   rÌ   rÔ   rÖ   rˆ   z expected-closing-tag-but-got-eof)r–   rI   r‘   rO   rS   r’   )rM   Úallowed_elementsrÙ   s      r)   rž   z)getPhases.<locals>.InBodyPhase.processEOFÎ  sY   € Ü(ð *2ó  3Ðð Ÿ	™	×.Ñ.©t°¨tÑ4ò �Ø—9‘9Ð$4Ò4Ø—K‘K×*Ñ*Ð+MÔNÙñr*   c                 ód  — |d   }| j                   | _        |j                  d«      rQ| j                  j                  d   j
                  dv r,| j                  j                  d   j                  «       s|dd  }|r6| j                  j                  «        | j                  j                  |«       y y )Nr‰   ú
rˆ   )ÚpreÚlistingÚtextarear   )	rÈ  r˜   rì   rI   r‘   rO   Ú
hasContentÚ#reconstructActiveFormattingElementsr  )rM   r¦   r‰   s      r)   Ú!processSpaceCharactersDropNewlinez@getPhases.<locals>.InBodyPhase.processSpaceCharactersDropNewlineØ  s•   € ð ˜‘=ˆDØ*.×*KÑ*KˆDÔ'Ø—‘ Ô%Ø—	‘	×&Ñ& rÑ*×/Ñ/Ð3QÑQØŸ	™	×.Ñ.¨rÑ2×=Ñ=Ô?Ø˜A˜B�x�ÙØ—	‘	×=Ñ=Ô?Ø—	‘	×$Ñ$ TÕ*ð r*   c                 ó&  — |d   dk(  ry | j                   j                  «        | j                   j                  |d   «       | j                  j                  r5t        |d   D �cg c]
  }|t        v‘Œ c}«      rd| j                  _        y y y c c}w )Nr‰   ú F)rI   rÞ  r  rS   rn   Úanyr   )rM   r¦   Úchars      r)   r—   z0getPhases.<locals>.InBodyPhase.processCharacterså  s†   € Ø�V‰} Ò(àØ�I‰I×9Ñ9Ô;Ø�I‰I× Ñ   v¡Ô/à—‘×&Ò&ÜØ!& v¡ö0Øð ¤Ò0ò 0ô 1à).�—‘Õ&ð1ð 'ùò0s   Á$Bc                 ót   — | j                   j                  «        | j                   j                  |d   «       y r  )rI   rÞ  r  r¸   s     r)   rÈ  z;getPhases.<locals>.InBodyPhase.processSpaceCharactersNonPreñ  s(   € Ø�I‰I×9Ñ9Ô;Ø�I‰I× Ñ   v¡Õ/r*   c                 óR   — | j                   j                  d   j                  |«      S rœ  rN  r¸   s     r)   ÚstartTagProcessInHeadz4getPhases.<locals>.InBodyPhase.startTagProcessInHeadõ  rO  r*   c                 óò  — | j                   j                  dddi«       t        | j                  j                  «      dk(  s&| j                  j                  d   j
                  dk7  r| j                   j                  sJ ‚y d| j                   _        |d   j                  «       D ]Q  \  }}|| j                  j                  d   j                  vsŒ,|| j                  j                  d   j                  |<   ŒS y )Nr¥  rO   rÔ   r   Fr‰   )
rS   r’   r”   rI   r‘   rO   r[   rn   r3   ry   r  s       r)   r¸  z+getPhases.<locals>.InBodyPhase.startTagBodyø  sÍ   € Ø�K‰K×"Ñ"Ð#9¸FÀFÐ;KÔLÜ�D—I‘I×*Ñ*Ó+¨qÒ0Ø—I‘I×*Ñ*¨1Ñ-×2Ñ2°fÒ<Ø—{‘{×,Ò,Ð,Ñ,à).�—‘Ô&Ø#(¨¡=×#6Ñ#6Ó#8ò K‘K�D˜%Ø 4§9¡9×#9Ñ#9¸!Ñ#<×#GÑ#GÒGØEJ˜Ÿ	™	×.Ñ.¨qÑ1×<Ñ<¸TÒBñKr*   c                 óp  — | j                   j                  dddi«       t        | j                  j                  «      dk(  s&| j                  j                  d   j
                  dk7  r| j                   j                  sJ ‚y | j                   j                  sy | j                  j                  d   j                  rI| j                  j                  d   j                  j                  | j                  j                  d   «       | j                  j                  d   j
                  dk7  rK| j                  j                  j                  «        | j                  j                  d   j
                  dk7  rŒK| j                  j                  |«       | j                   j                  d   | j                   _        y )	Nr¥  rO   rÕ   r   rÔ   rˆ   rÖ   rÇ   )rS   r’   r”   rI   r‘   rO   r[   rn   ÚparentÚremoveChildr  rà   rL   ri   r¸   s     r)   rº  z/getPhases.<locals>.InBodyPhase.startTagFrameset  s=  € Ø�K‰K×"Ñ"Ð#9¸FÀJÐ;OÔPÜ�D—I‘I×*Ñ*Ó+¨qÒ0°D·I±I×4JÑ4JÈ1Ñ4M×4RÑ4RÐV\Ò4\Ø—{‘{×,Ò,Ð,Ñ,Ø—[‘[×+Ò+Øà—9‘9×)Ñ)¨!Ñ,×3Ò3Ø—I‘I×*Ñ*¨1Ñ-×4Ñ4×@Ñ@ÀÇÁ×AWÑAWÐXYÑAZÔ[Ø—i‘i×,Ñ,¨RÑ0×5Ñ5¸Ò?Ø—I‘I×*Ñ*×.Ñ.Ô0ð —i‘i×,Ñ,¨RÑ0×5Ñ5¸Ó?à—	‘	×'Ñ'¨Ô.Ø$(§K¡K×$6Ñ$6°|Ñ$D�—‘Õ!r*   c                 ó¨   — | j                   j                  dd¬«      r| j                  t        d«      «       | j                   j	                  |«       y ©Nr(   Úbutton©Úvariant)rI   ÚelementInScopeÚendTagPr7  rà   r¸   s     r)   ÚstartTagClosePz-getPhases.<locals>.InBodyPhase.startTagCloseP  s<   € Ø�y‰y×'Ñ'¨°XÐ'Ô>Ø—‘œ_¨SÓ1Ô2Ø�I‰I×#Ñ# EÕ*r*   c                 óì   — | j                   j                  dd¬«      r| j                  t        d«      «       | j                   j	                  |«       d| j
                  _        | j                  | _        y )Nr(   rí  rî  F)	rI   rð  rñ  r7  rà   rS   rn   rß  r˜   r¸   s     r)   ÚstartTagPreListingz1getPhases.<locals>.InBodyPhase.startTagPreListing  sV   € Ø�y‰y×'Ñ'¨°XÐ'Ô>Ø—‘œ_¨SÓ1Ô2Ø�I‰I×#Ñ# EÔ*Ø%*ˆD�K‰KÔ"Ø*.×*PÑ*PˆDÕ'r*   c                 ób  — | j                   j                  r| j                  j                  dddi«       y | j                   j	                  dd¬«      r| j                  t        d«      «       | j                   j                  |«       | j                   j                  d   | j                   _        y )Nr¥  rO   Úformr(   rí  rî  rˆ   )	rI   ÚformPointerrS   r’   rð  rñ  r7  rà   r‘   r¸   s     r)   ÚstartTagFormz+getPhases.<locals>.InBodyPhase.startTagForm  s~   € Ø�y‰y×$Ò$Ø—‘×&Ñ&Ð'=ÀÈÐ?OÕPà—9‘9×+Ñ+¨C¸Ð+ÔBØ—L‘L¤°Ó!5Ô6Ø—	‘	×'Ñ'¨Ô.Ø(,¯	©	×(>Ñ(>¸rÑ(B�—	‘	Õ%r*   c                 ó:  — d| j                   _        dgddgddgdœ}||d      }t        | j                  j                  «      D ]n  }|j
                  |v r;| j                   j                  j                  t        |j
                  d«      «        n%|j                  t        v sŒ_|j
                  dvsŒn n | j                  j                  d	d
¬«      r/| j                   j                  j                  t        d	d«      «       | j                  j                  |«       y )NFrÖ  rÕ  rÔ  )rÖ  rÕ  rÔ  rO   r„   )Úaddressrä   r(   r(   rí  rî  )rS   rn   ÚreversedrI   r‘   rO   ri   rš   r7  Ú	nameTupler   rð  rà   )rM   r¦   ÚstopNamesMapÚ	stopNamesrÙ   s        r)   ÚstartTagListItemz/getPhases.<locals>.InBodyPhase.startTagListItem&  sö   € Ø%*ˆD�K‰KÔ"à#' &Ø#'¨ ,Ø#'¨ ,ñ0ˆLð % U¨6¡]Ñ3ˆIÜ  §¡×!7Ñ!7Ó8ò �Ø—9‘9 	Ñ)Ø—K‘K×%Ñ%×3Ñ3Ü'¨¯	©	°8Ó<ô>áØ—N‘N¤oÒ5ØŸ	™	Ð)@Ò@Ùðð �y‰y×'Ñ'¨°XÐ'Ô>Ø—‘×!Ñ!×/Ñ/Ü# C¨Ó2ô4ð �I‰I×#Ñ# EÕ*r*   c                 ó  — | j                   j                  dd¬«      r| j                  t        d«      «       | j                   j	                  |«       | j
                  j                  j                  | j
                  j                  _        y rì  )	rI   rð  rñ  r7  rà   rS   rW   rh   rf   r¸   s     r)   ÚstartTagPlaintextz0getPhases.<locals>.InBodyPhase.startTagPlaintext<  s^   € Ø�y‰y×'Ñ'¨°XÐ'Ô>Ø—‘œ_¨SÓ1Ô2Ø�I‰I×#Ñ# EÔ*Ø*.¯+©+×*?Ñ*?×*NÑ*NˆD�K‰K×!Ñ!Õ'r*   c                 ó„  — | j                   j                  dd¬«      r| j                  t        d«      «       | j                   j                  d   j
                  t        v rE| j                  j                  dd|d   i«       | j                   j                  j                  «        | j                   j                  |«       y )Nr(   rí  rî  rˆ   r¥  rO   )rI   rð  rñ  r7  r‘   rO   r   rS   r’   r  rà   r¸   s     r)   ÚstartTagHeadingz.getPhases.<locals>.InBodyPhase.startTagHeadingB  s�   € Ø�y‰y×'Ñ'¨°XÐ'Ô>Ø—‘œ_¨SÓ1Ô2Ø�y‰y×%Ñ% bÑ)×.Ñ.´/ÑAØ—‘×&Ñ&Ð'=ÀÈÈfÉÐ?VÔWØ—	‘	×&Ñ&×*Ñ*Ô,Ø�I‰I×#Ñ# EÕ*r*   c                 óú  — | j                   j                  d«      }|r³| j                  j                  ddddœ«       | j	                  t        d«      «       || j                   j                  v r%| j                   j                  j                  |«       || j                   j                  v r%| j                   j                  j                  |«       | j                   j                  «        | j                  |«       y )NÚaú$unexpected-start-tag-implies-end-tag©Ú	startNameÚendName)rI   Ú!elementInActiveFormattingElementsrS   r’   ÚendTagFormattingr7  r‘   r¼  rÐ  rÞ  rÒ  )rM   r¦   ÚafeAElements      r)   Ú	startTagAz(getPhases.<locals>.InBodyPhase.startTagAJ  s¼   € ØŸ)™)×EÑEÀcÓJˆKÙØ—‘×&Ñ&Ð'MØ58ÀSÑ'IôKà×%Ñ%¤o°cÓ&:Ô;Ø $§)¡)×"8Ñ"8Ñ8Ø—I‘I×*Ñ*×1Ñ1°+Ô>Ø $§)¡)×"DÑ"DÑDØ—I‘I×6Ñ6×=Ñ=¸kÔJØ�I‰I×9Ñ9Ô;Ø×%Ñ% eÕ,r*   c                 óZ   — | j                   j                  «        | j                  |«       y r2   )rI   rÞ  rÒ  r¸   s     r)   ÚstartTagFormattingz1getPhases.<locals>.InBodyPhase.startTagFormattingW  s    € Ø�I‰I×9Ñ9Ô;Ø×%Ñ% eÕ,r*   c                 ó6  — | j                   j                  «        | j                   j                  d«      rS| j                  j	                  ddddœ«       | j                  t        d«      «       | j                   j                  «        | j                  |«       y )NÚnobrr  r  )rI   rÞ  rð  rS   r’   rš   r7  rÒ  r¸   s     r)   ÚstartTagNobrz+getPhases.<locals>.InBodyPhase.startTagNobr[  ss   € Ø�I‰I×9Ñ9Ô;Ø�y‰y×'Ñ'¨Ô/Ø—‘×&Ñ&Ð'MØ5;ÈÑ'OôQà×"Ñ"¤?°6Ó#:Ô;à—	‘	×=Ñ=Ô?Ø×%Ñ% eÕ,r*   c                 ó<  — | j                   j                  d«      r;| j                  j                  ddddœ«       | j	                  t        d«      «       |S | j                   j                  «        | j                   j                  |«       d| j                  _        y )Nrí  r  r  F)	rI   rð  rS   r’   rš   r7  rÞ  rà   rn   r¸   s     r)   ÚstartTagButtonz-getPhases.<locals>.InBodyPhase.startTagButtone  sx   € Ø�y‰y×'Ñ'¨Ô1Ø—‘×&Ñ&Ð'MØ5=È(Ñ'SôUà×"Ñ"¤?°8Ó#<Ô=Ø�à—	‘	×=Ñ=Ô?Ø—	‘	×'Ñ'¨Ô.Ø).�—‘Õ&r*   c                 óâ   — | j                   j                  «        | j                   j                  |«       | j                   j                  j	                  t
        «       d| j                  _        y ©NF)rI   rÞ  rà   rÐ  r�   r   rS   rn   r¸   s     r)   ÚstartTagAppletMarqueeObjectz:getPhases.<locals>.InBodyPhase.startTagAppletMarqueeObjectp  sH   € Ø�I‰I×9Ñ9Ô;Ø�I‰I×#Ñ# EÔ*Ø�I‰I×.Ñ.×5Ñ5´fÔ=Ø%*ˆD�K‰KÕ"r*   c                 ó   — | j                   j                  dd¬«      r| j                  t        d«      «       | j                   j	                  «        d| j
                  _        | j
                  j                  |d«       y )Nr(   rí  rî  FrÝ   )rI   rð  rñ  r7  rÞ  rS   rn   rã   r¸   s     r)   ÚstartTagXmpz*getPhases.<locals>.InBodyPhase.startTagXmpv  sZ   € Ø�y‰y×'Ñ'¨°XÐ'Ô>Ø—‘œ_¨SÓ1Ô2Ø�I‰I×9Ñ9Ô;Ø%*ˆD�K‰KÔ"Ø�K‰K×*Ñ*¨5°)Õ<r*   c                 óL  — | j                   j                  dk7  r7| j                  j                  dd¬«      r| j	                  t        d«      «       | j                  j                  |«       d| j                   _        | j                   j                  d   | j                   _	        y )Nr(  r(   rí  rî  FrÅ   )
rS   rc   rI   rð  rš   r7  rà   rn   rL   ri   r¸   s     r)   ÚstartTagTablez,getPhases.<locals>.InBodyPhase.startTagTable}  sw   € Ø�{‰{×%Ñ%¨Ò1Ø—9‘9×+Ñ+¨C¸Ð+ÔBØ×&Ñ&¤°sÓ';Ô<Ø�I‰I×#Ñ# EÔ*Ø%*ˆD�K‰KÔ"Ø $§¡× 2Ñ 2°9Ñ =ˆD�K‰KÕr*   c                 óâ   — | j                   j                  «        | j                   j                  |«       | j                   j                  j	                  «        d|d<   d| j
                  _        y )NTr�   F)rI   rÞ  rà   r‘   r  rS   rn   r¸   s     r)   ÚstartTagVoidFormattingz5getPhases.<locals>.InBodyPhase.startTagVoidFormatting…  sQ   € Ø�I‰I×9Ñ9Ô;Ø�I‰I×#Ñ# EÔ*Ø�I‰I×"Ñ"×&Ñ&Ô(Ø/3ˆEÐ+Ñ,Ø%*ˆD�K‰KÕ"r*   c                 óÂ   — | j                   j                  }| j                  |«       d|d   v r1|d   d   j                  t        «      dk(  r|| j                   _        y y y )Nr7   r‰   Úhidden)rS   rn   r  rz   r   )rM   r¦   rn   s      r)   ÚstartTagInputz,getPhases.<locals>.InBodyPhase.startTagInputŒ  s_   € ØŸ™×/Ñ/ˆJØ×'Ñ'¨Ô.Ø˜% ™-Ñ'Ø˜&‘M &Ñ)×3Ñ3Ô4DÓEÈÒQà)3�—‘Õ&ð Rð (r*   c                 óŒ   — | j                   j                  |«       | j                   j                  j                  «        d|d<   y rf  rg  r¸   s     r)   ÚstartTagParamSourcez2getPhases.<locals>.InBodyPhase.startTagParamSource”  ri  r*   c                 ó  — | j                   j                  dd¬«      r| j                  t        d«      «       | j                   j	                  |«       | j                   j
                  j                  «        d|d<   d| j                  _        y )Nr(   rí  rî  Tr�   F)	rI   rð  rñ  r7  rà   r‘   r  rS   rn   r¸   s     r)   Ú
startTagHrz)getPhases.<locals>.InBodyPhase.startTagHr™  si   € Ø�y‰y×'Ñ'¨°XÐ'Ô>Ø—‘œ_¨SÓ1Ô2Ø�I‰I×#Ñ# EÔ*Ø�I‰I×"Ñ"×&Ñ&Ô(Ø/3ˆEÐ+Ñ,Ø%*ˆD�K‰KÕ"r*   c           	      óŠ   — | j                   j                  ddddœ«       | j                  t        dd|d   |d   ¬«      «       y )	Nzunexpected-start-tag-treated-asÚimageÚimg©ÚoriginalNameÚnewNamerƒ   r‰   r�   ©ry   r�   )rS   r’   r™   r7  r¸   s     r)   ÚstartTagImagez,getPhases.<locals>.InBodyPhase.startTagImage¡  sJ   € à�K‰K×"Ñ"Ð#DØ4;ÈÑ#NôPà× Ñ ¤°¸
Ø<AÀ&¹MØ=BÀ=Ñ=Qô"Sõ Tr*   c           	      óÂ  — | j                   j                  dddi«       | j                  j                  ry i }d|d   v r|d   d   |d<   | j	                  t        dd|¬«      «       | j	                  t        d	d«      «       | j	                  t        d
d«      «       d|d   v r	|d   d   }nd}| j                  t        d   |dœ«       |d   j                  «       }d|v r|d= d|v r|d= d|d<   | j	                  t        dd||d   ¬«      «       | j                  t        d
«      «       | j	                  t        d	d«      «       | j                  t        d«      «       y )Nzdeprecated-tagrO   ÚisindexÚactionr‰   rö  rƒ   )ry   ÚhrÚlabelÚpromptz3This is a searchable index. Enter search keywords: r�   ©r7   r‰   Úinputr�   r+  )
rS   r’   rI   r÷  r™   r7  r—   r   Úcopyrš   )rM   r¦   Ú
form_attrsr2  ry   s        r)   ÚstartTagIsIndexz.getPhases.<locals>.InBodyPhase.startTagIsIndex©  sr  € Ø�K‰K×"Ñ"Ð#3°f¸iÐ5HÔIØ�y‰y×$Ò$ØØˆJØ˜5 ™=Ñ(Ø',¨V¡}°XÑ'>�
˜8Ñ$Ø× Ñ ¤°¸Ø<Fô"Hô Ià× Ñ ¤°°zÓ!BÔCØ× Ñ ¤°¸*Ó!EÔFà˜5 ™=Ñ(Ø˜v™ xÑ0‘àN�Ø×"Ñ"Ü# LÑ1¸6ÑBôDà˜v™×+Ñ+Ó-ˆJØ˜:Ñ%Ø˜xÐ(Ø˜:Ñ%Ø˜xÐ(Ø!*ˆJ�vÑØ× Ñ ¤°¸*Ø<FØ=BÀ=Ñ=Qô"Sô Tð ×Ñœ¨wÓ7Ô8Ø× Ñ ¤°°zÓ!BÔCØ×Ñœ¨vÓ6Õ7r*   c                 óð   — | j                   j                  |«       | j                  j                  j                  | j                  j                  _        | j                  | _        d| j                  _        y r  )	rI   rà   rS   rW   re   rf   rß  r˜   rn   r¸   s     r)   ÚstartTagTextareaz/getPhases.<locals>.InBodyPhase.startTagTextareaÈ  sP   € Ø�I‰I×#Ñ# EÔ*Ø*.¯+©+×*?Ñ*?×*KÑ*KˆD�K‰K×!Ñ!Ô'Ø*.×*PÑ*PˆDÔ'Ø%*ˆD�K‰KÕ"r*   c                 óH   — d| j                   _        | j                  |«       y r  )rS   rn   ÚstartTagRawtextr¸   s     r)   ÚstartTagIFramez-getPhases.<locals>.InBodyPhase.startTagIFrameÎ  s   € Ø%*ˆD�K‰KÔ"Ø× Ñ  Õ'r*   c                 óv   — | j                   j                  r| j                  |«       y | j                  |«       y r2   )rS   rU   r;  rT  r¸   s     r)   r|  z/getPhases.<locals>.InBodyPhase.startTagNoscriptÒ  s+   € Ø�{‰{×$Ò$Ø×$Ñ$ UÕ+à×"Ñ" 5Õ)r*   c                 ó<   — | j                   j                  |d«       y)z8iframe, noembed noframes, noscript(if scripting enabled)rÝ   Nru  r¸   s     r)   r;  z.getPhases.<locals>.InBodyPhase.startTagRawtextØ  ry  r*   c                 ó*  — | j                   j                  d   j                  dk(  r.| j                  j                  j                  t        d«      «       | j                   j                  «        | j                  j                   j                  |«       y ©Nrˆ   Úoption)	rI   r‘   rO   rS   ri   rš   r7  rÞ  rà   r¸   s     r)   ÚstartTagOptz*getPhases.<locals>.InBodyPhase.startTagOptÜ  sd   € Ø�y‰y×%Ñ% bÑ)×.Ñ.°(Ò:Ø—‘×!Ñ!×/Ñ/´ÀÓ0IÔJØ�I‰I×9Ñ9Ô;Ø�K‰K×Ñ×*Ñ*¨5Õ1r*   c                 ó‚  — | j                   j                  «        | j                   j                  |«       d| j                  _        | j                  j
                  | j                  j                  d   | j                  j                  d   | j                  j                  d   | j                  j                  d   | j                  j                  d   | j                  j                  d   fv r)| j                  j                  d   | j                  _        y | j                  j                  d	   | j                  _        y )
NFrÅ   rÃ   rÄ   rÂ   rÁ   rÀ   ÚinSelectInTabler¿   )rI   rÞ  rà   rS   rn   ri   rL   r¸   s     r)   ÚstartTagSelectz-getPhases.<locals>.InBodyPhase.startTagSelectâ  sí   € Ø�I‰I×9Ñ9Ô;Ø�I‰I×#Ñ# EÔ*Ø%*ˆD�K‰KÔ"Ø�{‰{× Ñ  T§[¡[×%7Ñ%7¸	Ñ%BØ%)§[¡[×%7Ñ%7¸Ñ%DØ%)§[¡[×%7Ñ%7¸Ñ%HØ%)§[¡[×%7Ñ%7¸Ñ%FØ%)§[¡[×%7Ñ%7¸Ñ%@Ø%)§[¡[×%7Ñ%7¸Ñ%Að%Cñ Cð %)§K¡K×$6Ñ$6Ð7HÑ$I�—‘Õ!à$(§K¡K×$6Ñ$6°zÑ$B�—‘Õ!r*   c                 ó$  — | j                   j                  d«      rZ| j                   j                  «        | j                   j                  d   j                  dk7  r| j
                  j                  «        | j                   j                  |«       y )NÚrubyrˆ   )rI   rð  ÚgenerateImpliedEndTagsr‘   rO   rS   r’   rà   r¸   s     r)   ÚstartTagRpRtz+getPhases.<locals>.InBodyPhase.startTagRpRtð  sc   € Ø�y‰y×'Ñ'¨Ô/Ø—	‘	×0Ñ0Ô2Ø—9‘9×)Ñ)¨"Ñ-×2Ñ2°fÒ<Ø—K‘K×*Ñ*Ô,Ø�I‰I×#Ñ# EÕ*r*   c                 óP  — | j                   j                  «        | j                  j                  |«       | j                  j	                  |«       t
        d   |d<   | j                   j                  |«       |d   r*| j                   j                  j                  «        d|d<   y y )Nrv   rx   r�   Tr�   )	rI   rÞ  rS   r   r   r   rà   r‘   r  r¸   s     r)   ÚstartTagMathz+getPhases.<locals>.InBodyPhase.startTagMath÷  s‡   € Ø�I‰I×9Ñ9Ô;Ø�K‰K×.Ñ.¨uÔ5Ø�K‰K×/Ñ/°Ô6Ü!+¨HÑ!5ˆE�+ÑØ�I‰I×#Ñ# EÔ*ð �]Ò#Ø—	‘	×&Ñ&×*Ñ*Ô,Ø37�Ð/Ò0ð $r*   c                 óP  — | j                   j                  «        | j                  j                  |«       | j                  j	                  |«       t
        d   |d<   | j                   j                  |«       |d   r*| j                   j                  j                  «        d|d<   y y )Nr�   rx   r�   Tr�   )	rI   rÞ  rS   r   r   r   rà   r‘   r  r¸   s     r)   ÚstartTagSvgz*getPhases.<locals>.InBodyPhase.startTagSvg  s‡   € Ø�I‰I×9Ñ9Ô;Ø�K‰K×+Ñ+¨EÔ2Ø�K‰K×/Ñ/°Ô6Ü!+¨EÑ!2ˆE�+ÑØ�I‰I×#Ñ# EÔ*ð �]Ò#Ø—	‘	×&Ñ&×*Ñ*Ô,Ø37�Ð/Ò0ð $r*   c                 óF   — | j                   j                  dd|d   i«       y)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"
            zunexpected-start-tag-ignoredrO   Nr  r¸   s     r)   ÚstartTagMisplacedz0getPhases.<locals>.InBodyPhase.startTagMisplaced  s#   € ð �K‰K×"Ñ"Ð#AÀFÈEÐRXÉMÐCZÕ[r*   c                 ón   — | j                   j                  «        | j                   j                  |«       y r2   )rI   rÞ  rà   r¸   s     r)   rT  z,getPhases.<locals>.InBodyPhase.startTagOther  s$   € Ø�I‰I×9Ñ9Ô;Ø�I‰I×#Ñ# EÕ*r*   c                 óv  — | j                   j                  dd¬«      sU| j                  t        dd«      «       | j                  j                  dddi«       | j                  t        dd«      «       y | j                   j                  d«       | j                   j                  d   j                  dk7  r| j                  j                  dddi«       | j                   j                  j                  «       }|j                  dk7  r5| j                   j                  j                  «       }|j                  dk7  rŒ4y y )	Nr(   rí  rî  rƒ   rŠ  rO   r„   rˆ   )rI   rð  rò  r7  rS   r’   rñ  rH  r‘   rO   r  r„  s      r)   rñ  z&getPhases.<locals>.InBodyPhase.endTagP  sì   € Ø—9‘9×+Ñ+¨C¸Ð+ÔBØ×#Ñ#¤O°C¸Ó$DÔEØ—‘×&Ñ&Ð';¸fÀc¸]ÔKØ—‘œ_¨S°(Ó;Õ<à—	‘	×0Ñ0°Ô5Ø—9‘9×)Ñ)¨"Ñ-×2Ñ2°cÒ9Ø—K‘K×*Ñ*Ð+?À&È#ÀÔOØ—y‘y×-Ñ-×1Ñ1Ó3�Ø—i‘i 3Ò&ØŸ9™9×1Ñ1×5Ñ5Ó7�Dð —i‘i 3Õ&r*   c                 óÌ  — | j                   j                  d«      s| j                  j                  «        y | j                   j                  d   j
                  dk7  r`| j                   j                  dd  D ]D  }|j
                  t        d«      vsŒ| j                  j                  dd|j
                  dœ«        n | j                  j                  d   | j                  _        y )NrÔ   rˆ   é   )rÔ  rÕ  rÖ  ÚoptgrouprA  r(   ÚrpÚrtrÍ   rÊ   rÏ   rË   rÎ   rÌ   rÔ   rÖ   ú$expected-one-end-tag-but-got-another©ÚgotNameÚexpectedNameÚ	afterBody)	rI   rð  rS   r’   r‘   rO   r–   rL   ri   r„  s      r)   Ú
endTagBodyz)getPhases.<locals>.InBodyPhase.endTagBody)  sÂ   € Ø—9‘9×+Ñ+¨FÔ3Ø—‘×&Ñ&Ô(ØØ—‘×'Ñ'¨Ñ+×0Ñ0°FÒ:Ø ŸI™I×2Ñ2°1°2Ð6ò 
�DØ—y‘y¬	ð 3;ó )<ò <ð Ÿ™×.Ñ.ØBØ(.ÀÇ	Á	ÑJôLñ ð
ð !%§¡× 2Ñ 2°;Ñ ?ˆD�K‰KÕr*   c                 ór   — | j                   j                  d«      r| j                  t        d«      «       |S y )NrÔ   )rI   rð  r\  r7  r¸   s     r)   Ú
endTagHtmlz)getPhases.<locals>.InBodyPhase.endTagHtml;  s/   € à�y‰y×'Ñ'¨Ô/Ø—‘¤°Ó 7Ô8Ø�ð 0r*   c                 ó   — |d   dk(  r| j                   | _        | j                  j                  |d   «      }|r| j                  j	                  «        | j                  j
                  d   j                  |d   k7  r!| j                  j                  dd|d   i«       |ro| j                  j
                  j                  «       }|j                  |d   k7  r8| j                  j
                  j                  «       }|j                  |d   k7  rŒ7y y y )NrO   rÚ  rˆ   úend-tag-too-early)
rÈ  r˜   rI   rð  rH  r‘   rO   rS   r’   r  )rM   r¦   ÚinScoperÙ   s       r)   ÚendTagBlockz*getPhases.<locals>.InBodyPhase.endTagBlockA  sà   € à�V‰} Ò%Ø.2×.OÑ.O�Ô+Ø—i‘i×.Ñ.¨u°V©}Ó=ˆGÙØ—	‘	×0Ñ0Ô2Ø�y‰y×%Ñ% bÑ)×.Ñ.°%¸±-Ò?Ø—‘×&Ñ&Ð':¸VÀUÈ6Á]Ð<SÔTÙØ—y‘y×-Ñ-×1Ñ1Ó3�Ø—i‘i 5¨¡=Ò0ØŸ9™9×1Ñ1×5Ñ5Ó7�Dð —i‘i 5¨¡=Õ0ð r*   c                 ó¼  — | j                   j                  }d | j                   _        |�| j                   j                  |«      s| j                  j	                  dddi«       y | j                   j                  «        | j                   j                  d   |k7  r| j                  j	                  dddi«       | j                   j                  j                  |«       y )NrŠ  rO   rö  rˆ   zend-tag-too-early-ignored)rI   r÷  rð  rS   r’   rH  r‘   r¼  r„  s      r)   Ú
endTagFormz)getPhases.<locals>.InBodyPhase.endTagFormO  s®   € Ø—9‘9×(Ñ(ˆDØ$(ˆD�I‰IÔ!Øˆ| 4§9¡9×#;Ñ#;¸DÔ#AØ—‘×&Ñ&Ð';Ø(.°Ð'7õ9ð —	‘	×0Ñ0Ô2Ø—9‘9×)Ñ)¨"Ñ-°Ò5Ø—K‘K×*Ñ*Ð+FØ,2°FÐ+;ô=à—	‘	×&Ñ&×-Ñ-¨dÕ3r*   c                 óP  — |d   dk(  rd}nd }| j                   j                  |d   |¬«      s"| j                  j                  dd|d   i«       y | j                   j	                  |d   ¬«       | j                   j
                  d   j                  |d   k7  r!| j                  j                  dd|d   i«       | j                   j
                  j                  «       }|j                  |d   k7  r8| j                   j
                  j                  «       }|j                  |d   k7  rŒ7y y )	NrO   rÖ  Úlistrî  rŠ  ©Úexcluderˆ   r`  )rI   rð  rS   r’   rH  r‘   rO   r  )rM   r¦   rï  rÙ   s       r)   ÚendTagListItemz-getPhases.<locals>.InBodyPhase.endTagListItem\  s   € Ø�V‰} Ò$Ø ‘à�Ø—9‘9×+Ñ+¨E°&©MÀ7Ð+ÔKØ—‘×&Ñ&Ð';¸fÀeÈFÁmÐ=TÕUà—	‘	×0Ñ0¸¸v¹Ð0ÔGØ—9‘9×)Ñ)¨"Ñ-×2Ñ2°e¸F±mÒCØ—K‘K×*Ñ*Ø+Ø  v¡Ð/ô1ð —y‘y×-Ñ-×1Ñ1Ó3�Ø—i‘i 5¨¡=Ò0ØŸ9™9×1Ñ1×5Ñ5Ó7�Dð —i‘i 5¨¡=Õ0r*   c                 óF  — t         D ]9  }| j                  j                  |«      sŒ| j                  j                  «         n | j                  j                  d   j
                  |d   k7  r!| j                  j                  dd|d   i«       t         D ]Œ  }| j                  j                  |«      sŒ| j                  j                  j                  «       }|j
                  t         vr7| j                  j                  j                  «       }|j
                  t         vrŒ7 y  y )Nrˆ   rO   r`  )	r   rI   rð  rH  r‘   rO   rS   r’   r  )rM   r¦   Úitems      r)   ÚendTagHeadingz,getPhases.<locals>.InBodyPhase.endTagHeadingm  så   € Ü'ò �Ø—9‘9×+Ñ+¨DÕ1Ø—I‘I×4Ñ4Ô6Ùðð �y‰y×%Ñ% bÑ)×.Ñ.°%¸±-Ò?Ø—‘×&Ñ&Ð':¸VÀUÈ6Á]Ð<SÔTä'ò �Ø—9‘9×+Ñ+¨DÕ1ØŸ9™9×1Ñ1×5Ñ5Ó7�DØŸ)™)¬?Ñ:Ø#Ÿy™y×5Ñ5×9Ñ9Ó;˜ð Ÿ)™)¬?Ò:áñr*   c                 óú
  — d}|dk  �rs|dz  }| j                   j                  |d   «      }|r=|| j                   j                  v r7| j                   j                  |j                  «      s| j                  |«       y|| j                   j                  vrG| j                  j                  dd|d   i«       | j                   j                  j                  |«       y| j                   j                  |j                  «      s"| j                  j                  dd|d   i«       y|| j                   j                  d   k7  r!| j                  j                  d	d|d   i«       | j                   j                  j                  |«      }d}| j                   j                  |d D ]  }|j                  t        v sŒ|} n |€y| j                   j                  j                  «       }||k7  r*| j                   j                  j                  «       }||k7  rŒ*| j                   j                  j                  |«       y| j                   j                  |dz
     }| j                   j                  j                  |«      }|x}	}
d}| j                   j                  j                  |
«      }|d
k  �r_|dz  }|dz  }| j                   j                  |   }
|
| j                   j                  vr&| j                   j                  j                  |
«       Œg|
|k(  rnø|	|k(  r(| j                   j                  j                  |
«      dz   }|
j                  «       }|| j                   j                  | j                   j                  j                  |
«      <   || j                   j                  | j                   j                  j                  |
«      <   |}
|	j                  r|	j                  j!                  |	«       |
j#                  |	«       |
}	|d
k  r�Œ_|	j                  r|	j                  j!                  |	«       |j                  t%        d«      v r0| j                   j'                  «       \  }}|j)                  |	|«       n|j#                  |	«       |j                  «       }|j+                  |«       |j#                  |«       | j                   j                  j                  |«       | j                   j                  j-                  ||«       | j                   j                  j                  |«       | j                   j                  j-                  | j                   j                  j                  |«      dz   |«       |dk  r�Œryy)z)The much-feared adoption agency algorithmr   é   r   rO   Nzadoption-agency-1.2zadoption-agency-4.4rˆ   zadoption-agency-1.3rÏ  ©rÒ   rÍ   rÏ   rÎ   rÌ   )rI   r
  r‘   rð  rO   rX  rS   r’   rÐ  r¼  Úindexrü  r   r  Ú	cloneNoderé  rê  ÚappendChildr–   ÚgetTableMisnestedNodePositionÚinsertBeforeÚreparentChildrenÚinsert)rM   r¦   ÚouterLoopCounterÚformattingElementÚafeIndexÚfurthestBlockr|   ÚcommonAncestorÚbookmarkÚlastNoderÙ   ÚinnerLoopCounterrp  Úcloneré  rt  s                   r)   r  z/getPhases.<locals>.InBodyPhase.endTagFormatting|  sÎ  € ð  !Ðð # QÓ&ð ! AÑ%Ð ð %)§I¡I×$OÑ$OØ˜&‘Mó%#Ð!á)Ø&¨$¯)©)×*@Ñ*@Ñ@ØŸ™×1Ñ1Ð2C×2HÑ2HÔIð ×$Ñ$ UÔ+Øð '¨d¯i©i×.DÑ.DÑDØ—K‘K×*Ñ*Ð+@À6È5ÐQWÉ=ÐBYÔZØ—I‘I×6Ñ6×=Ñ=Ð>OÔPØð Ÿ™×1Ñ1Ð2C×2HÑ2HÔIØ—K‘K×*Ñ*Ð+@À6È5ÐQWÉ=ÐBYÔZØð )¨D¯I©I×,BÑ,BÀ2Ñ,FÒFØŸ™×.Ñ.Ð/DÀvÈuÐU[É}ÐF]Ô^ð  Ÿ9™9×1Ñ1×7Ñ7Ð8IÓJ�Ø $�Ø#Ÿy™y×5Ñ5°h°iÐ@ò �GØ×(Ñ(¬OÒ;Ø(/˜Ùðð !Ð(Ø"Ÿi™i×4Ñ4×8Ñ8Ó:�GØ!Ð%6Ò6Ø"&§)¡)×"8Ñ"8×"<Ñ"<Ó">˜ð "Ð%6Ó6à—I‘I×6Ñ6×=Ñ=¸gÔFØð "&§¡×!7Ñ!7¸À1¹Ñ!E�ð  Ÿ9™9×=Ñ=×CÑCÐDUÓV�ð #0Ð/�˜4Ø#$Ð àŸ	™	×.Ñ.×4Ñ4°TÓ:�Ø&¨Ó*Ø$¨Ñ)Ð$à˜Q‘J�EØŸ9™9×1Ñ1°%Ñ8�DØ 4§9¡9×#EÑ#EÑEØŸ	™	×.Ñ.×5Ñ5°dÔ;Ø àÐ0Ò0Øà =Ò0Ø#'§9¡9×#EÑ#E×#KÑ#KÈDÓ#QÐTUÑ#U˜à ŸN™NÓ,�Eð KPð —I‘I×6Ñ6ØŸ	™	×:Ñ:×@Ñ@ÀÓFñHð ?Dð —I‘I×*Ñ*ØŸ	™	×.Ñ.×4Ñ4°TÓ:ñ<à �Dð  —’Ø Ÿ™×3Ñ3°HÔ=Ø×$Ñ$ XÔ.à#�Hð9 '¨Ô*ðD —?’?Ø—O‘O×/Ñ/°Ô9à!×&Ñ&¬)Ð4^Ó*_Ñ_Ø+/¯9©9×+RÑ+RÓ+TÑ(�F˜LØ×'Ñ'¨°,Õ?à"×.Ñ.¨xÔ8ð *×3Ñ3Ó5�ð ×.Ñ.¨uÔ5ð ×)Ñ)¨%Ô0ð —	‘	×2Ñ2×9Ñ9Ð:KÔLØ—	‘	×2Ñ2×9Ñ9¸(ÀEÔJð —	‘	×&Ñ&×-Ñ-Ð.?Ô@Ø—	‘	×&Ñ&×-Ñ-Ø—I‘I×*Ñ*×0Ñ0°Ó?À!ÑCÀUôLðo # QÖ&r*   c                 óT  — | j                   j                  |d   «      r| j                   j                  «        | j                   j                  d   j                  |d   k7  r!| j
                  j                  dd|d   i«       | j                   j                  |d   «      rˆ| j                   j                  j                  «       }|j                  |d   k7  r7| j                   j                  j                  «       }|j                  |d   k7  rŒ7| j                   j                  «        y y )NrO   rˆ   r`  )	rI   rð  rH  r‘   rO   rS   r’   r  ÚclearActiveFormattingElements)rM   r¦   r|   s      r)   ÚendTagAppletMarqueeObjectz8getPhases.<locals>.InBodyPhase.endTagAppletMarqueeObject  sä   € Ø�y‰y×'Ñ'¨¨f©Ô6Ø—	‘	×0Ñ0Ô2Ø�y‰y×%Ñ% bÑ)×.Ñ.°%¸±-Ò?Ø—‘×&Ñ&Ð':¸VÀUÈ6Á]Ð<SÔTà�y‰y×'Ñ'¨¨f©Ô6ØŸ)™)×0Ñ0×4Ñ4Ó6�Ø—l‘l e¨F¡mÒ3Ø"Ÿi™i×4Ñ4×8Ñ8Ó:�Gð —l‘l e¨F¡mÓ3à—	‘	×7Ñ7Õ9ð	 7r*   c                 ó  — | j                   j                  ddddœ«       | j                  j                  «        | j                  j	                  t        dd«      «       | j                  j                  j                  «        y )Nzunexpected-end-tag-treated-asrA  z
br elementr(  rƒ   )rS   r’   rI   rÞ  rà   r7  r‘   r  r¸   s     r)   r®  z'getPhases.<locals>.InBodyPhase.endTagBr+  s_   € Ø�K‰K×"Ñ"Ð#BØ48À\Ñ#RôTà�I‰I×9Ñ9Ô;Ø�I‰I×#Ñ#¤O°D¸*Ó$EÔFØ�I‰I×"Ñ"×&Ñ&Õ(r*   c                 óL  — | j                   j                  d d d…   D �]  }|j                  |d   k(  r»| j                   j                  |d   ¬«       | j                   j                  d   j                  |d   k7  r!| j                  j                  dd|d   i«       | j                   j                  j                  «       |k7  r)	 | j                   j                  j                  «       |k7  rŒ) y |j                  t        v sŒä| j                  j                  dd|d   i«        y  y )Nrˆ   rO   rg  rŠ  )	rI   r‘   rO   rH  rS   r’   r  rü  r   r„  s      r)   rX  z*getPhases.<locals>.InBodyPhase.endTagOther2  sù   € ØŸ	™	×.Ñ.©t°¨tÑ4ó �Ø—9‘9  f¡Ò-Ø—I‘I×4Ñ4¸UÀ6¹]Ð4ÔKØ—y‘y×-Ñ-¨bÑ1×6Ñ6¸%À¹-ÒGØŸ™×.Ñ.Ð/CÀfÈeÐTZÉmÐE\Ô]ØŸ)™)×0Ñ0×4Ñ4Ó6¸$Ò>Øð Ÿ)™)×0Ñ0×4Ñ4Ó6¸$Ó>áà—~‘~¬Ò8ØŸ™×.Ñ.Ð/CÀfÈeÐTZÉmÐE\Ô]Ùñr*   rÖ   )	r’  r“  r”  r•  r–  r9   r‘  r�  r�  rÔ   rÕ   )rú  ÚarticleÚasideÚ
blockquoteÚcenterÚdetailsÚdirrä   ÚdlÚfieldsetÚ
figcaptionÚfigureÚfooterÚheaderÚhgroupÚmainÚmenuÚnavÚolr(   ÚsectionÚsummaryÚul)rÚ  rÛ  rö  )rÖ  rÔ  rÕ  r^   r  )ÚbÚbigÚcodeÚemÚfontÚiÚsÚsmallÚstrikeÚstrongÚttÚur  rí  )ÚappletÚmarqueeÚobjectÚxmprÒ   )ÚarearA  Úembedr'  ÚkeygenÚwbr)ÚparamÚsourceÚtrackr4  r0  r&  r.  rÜ  Úiframer�  )ÚnoembedrŽ  rÉ   )rU  rV  )rA  rT  Úmathr�   )rÐ   ÚcolrÑ   ÚframerÓ   rÍ   rÊ   rÏ   rË   rÎ   rÌ   )rú  r…  r†  r‡  rí  rˆ  r‰  ÚdialogrŠ  rä   r‹  rŒ  r�  rŽ  r�  r�  r‘  rÛ  r’  r“  r”  r•  rÚ  r–  r—  r˜  r(   )rÔ  rÕ  rÖ  )r  r™  rš  r›  rœ  r�  rž  r  rŸ  r   r¡  r¢  r£  r¤  rA  )?r@   rA   rB   r  rQ   rÍ  rÒ  rž   rß  r—   rÈ  ræ  r¸  rº  rò  rô  rø  rÿ  r  r  r  r  r  r  r  r  r  r  r   r"  r$  r,  r7  r9  r<  r|  r;  rB  rE  rI  rK  rM  rO  rT  rñ  r\  r^  rb  rd  ri  rl  r  r‚  r®  rX  r   rY  r  r   r  rZ  r  Ú__classcell__)rí   rÉ  r  s   @€€r)   rÉ  rÅ  ­  sÞ  ù„ ð 0ˆ	õ	Lò
	:ò	?ò"	ò	+ò
	/ò	0ò	Gò		Kò	Eò	+ò
	Qò	Cò	+ò,	Oò	+ò	-ò	-ò	-ò		/ò	+ò	=ò	>ò	+ò	4ò	4ò
	+ò	Tò	8ò>	+ò	(ò	*ò	=ò	2ò	Cò	+ò
	8ò
	8ò	\ò	+ò	8ò	@ò$	ò	8ò	4ò	8ò"	òa	LòF
	:ò	)ò	ð 2˜&×1Ñ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
ð0 �mÐ$ð1,3
ð2 =Ø#ð%ð3,3
ð6 *Ð+>Ð?ð7,3
ð8 �mÐ$ð9,3
ð: �:Ðð;,3
ð< �mÐ$ð=,3
ð> ˜Ð(ð?,3
ð@ Ð)Ð*ðA,3
ðB �~Ð&ðC,3
ðD Ð)Ð*ðE,3
ðF % oÐ6ðG,3
ðH �~Ð&ðI,3
ðJ ˜<Ð(ðK,3
ðL $ [Ð1ðM,3
ðN �|Ð$ðO,3
ðP �kÐ"ðQ,3
ðRà&ð(ðS,3
ó ,ˆðZ #0ˆÔà/˜×/Ñ/Ø�ZÐ Ø�ZÐ ð*ð ,7ð8ð �ZÐ Ø�'ˆNØ Ð0Ø˜mÐ,ð-Ø.>ð@à,Ð.GÐHØ�8Ðð1
ó ˆð  !,ˆ×Ðr*   rÉ  c                   ó¢   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	 e
j                  g «      Zee_         e
j                  defg«      Ze	e_        y)úgetPhases.<locals>.TextPhasec                 ó@   — | j                   j                  |d   «       y r  r  r¸   s     r)   r—   z.getPhases.<locals>.TextPhase.processCharacters„  r	  r*   c                 ó  — | j                   j                  dd| j                  j                  d   j                  i«       | j                  j                  j                  «        | j                   j                  | j                   _        y)Nz&expected-named-closing-tag-but-got-eofrO   rˆ   T)rS   r’   rI   r‘   rO   r  rá   ri   ro   s    r)   rž   z'getPhases.<locals>.TextPhase.processEOF‡  sd   € Ø�K‰K×"Ñ"Ð#KØ$*¨D¯I©I×,BÑ,BÀ2Ñ,F×,KÑ,KÐ#LôNà�I‰I×"Ñ"×&Ñ&Ô(Ø $§¡× 9Ñ 9ˆD�K‰KÔØr*   c                 ó   — J d|d   z  «       ‚)Nz4Tried to process start tag %s in RCDATA/RAWTEXT moderO   rç   r¸   s     r)   rT  z*getPhases.<locals>.TextPhase.startTagOtherŽ  s   € Ø`ÐPÐSXÐY_ÑS`Ñ`Ó`�5r*   c                 ó¸   — | j                   j                  j                  «       }|j                  dk(  sJ ‚| j                  j
                  | j                  _        y )Nr‘  )rI   r‘   r  rO   rS   rá   ri   r„  s      r)   ÚendTagScriptz)getPhases.<locals>.TextPhase.endTagScript‘  sB   € Ø—9‘9×)Ñ)×-Ñ-Ó/ˆDØ—9‘9 Ò(Ð(Ð(Ø $§¡× 9Ñ 9ˆD�K‰KÕr*   c                 ó–   — | j                   j                  j                  «        | j                  j                  | j                  _        y r2   )rI   r‘   r  rS   rá   ri   r¸   s     r)   rX  z(getPhases.<locals>.TextPhase.endTagOther˜  s.   € Ø�I‰I×"Ñ"×&Ñ&Ô(Ø $§¡× 9Ñ 9ˆD�K‰KÕr*   r‘  N)r@   rA   rB   r1  r  r—   rž   rT  r½  rX  r   rY  r  rZ  r  rç   r*   r)   Ú	TextPhaser¸  �  sf   „ Ù“Gˆ	ò	0ò	ò	aò	:ò	:ð 2˜&×1Ñ1°"Ó5ˆØ"/ˆÔØ/˜×/Ñ/Ø�|Ð$ð1&ó 'ˆà +ˆÕr*   r¿  c                   óJ  •— e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z ej0                  dW ° j2                  fde
fdefdefdefdefdefdefdefdefg
«      Zee_         ej0                  defdefg«      Zee_        y)úgetPhases.<locals>.InTablePhasec                 óä   — | j                   j                  d   j                  dvrK| j                   j                  j                  «        | j                   j                  d   j                  dvrŒJy y )Nrˆ   )rÒ   rÖ   )rI   r‘   rO   r  ro   s    r)   ÚclearStackToTableContextz8getPhases.<locals>.InTablePhase.clearStackToTableContext§  sX   € à—)‘)×(Ñ(¨Ñ,×1Ñ1Ð9JÑJð —	‘	×&Ñ&×*Ñ*Ô,ð —)‘)×(Ñ(¨Ñ,×1Ñ1Ð9JÔJr*   c                 ó¸   — | j                   j                  d   j                  dk7  r| j                  j	                  d«       y | j                  j
                  sJ ‚y )Nrˆ   rÖ   zeof-in-table©rI   r‘   rO   rS   r’   r[   ro   s    r)   rž   z*getPhases.<locals>.InTablePhase.processEOF°  sD   € Ø�y‰y×%Ñ% bÑ)×.Ñ.°&Ò8Ø—‘×&Ñ& ~Õ6à—{‘{×,Ò,Ð,Ñ,r*   c                 ó   — | j                   j                  }| j                   j                  d   | j                   _        || j                   j                  _        | j                   j                  j	                  |«       y ©NÚinTableText)rS   ri   rL   rá   r˜   ©rM   r¦   rá   s      r)   r˜   z6getPhases.<locals>.InTablePhase.processSpaceCharacters·  sV   € Ø ŸK™K×-Ñ-ˆMØ $§¡× 2Ñ 2°=Ñ AˆD�K‰KÔØ.;ˆD�K‰K×ÑÔ+Ø�K‰K×Ñ×4Ñ4°UÕ;r*   c                 ó   — | j                   j                  }| j                   j                  d   | j                   _        || j                   j                  _        | j                   j                  j	                  |«       y rÇ  )rS   ri   rL   rá   r—   rÉ  s      r)   r—   z1getPhases.<locals>.InTablePhase.processCharacters½  sV   € Ø ŸK™K×-Ñ-ˆMØ $§¡× 2Ñ 2°=Ñ AˆD�K‰KÔØ.;ˆD�K‰K×ÑÔ+Ø�K‰K×Ñ×/Ñ/°Õ6r*   c                 ó˜   — d| j                   _        | j                  j                  d   j	                  |«       d| j                   _        y )NTrÆ   F)rI   ÚinsertFromTablerS   rL   r—   r¸   s     r)   r  z*getPhases.<locals>.InTablePhase.insertTextÃ  s9   € ð )-ˆD�I‰IÔ%Ø�K‰K×Ñ˜xÑ(×:Ñ:¸5ÔAØ(-ˆD�I‰IÕ%r*   c                 óü   — | j                  «        | j                  j                  j                  t        «       | j                  j                  |«       | j                  j                  d   | j                  _        y )NrÃ   )	rÃ  rI   rÐ  r�   r   rà   rS   rL   ri   r¸   s     r)   ÚstartTagCaptionz/getPhases.<locals>.InTablePhase.startTagCaptionÊ  sS   € Ø×)Ñ)Ô+Ø�I‰I×.Ñ.×5Ñ5´fÔ=Ø�I‰I×#Ñ# EÔ*Ø $§¡× 2Ñ 2°;Ñ ?ˆD�K‰KÕr*   c                 óª   — | j                  «        | j                  j                  |«       | j                  j                  d   | j                  _        y )NrÄ   ©rÃ  rI   rà   rS   rL   ri   r¸   s     r)   ÚstartTagColgroupz0getPhases.<locals>.InTablePhase.startTagColgroupÐ  s;   € Ø×)Ñ)Ô+Ø�I‰I×#Ñ# EÔ*Ø $§¡× 2Ñ 2°?Ñ CˆD�K‰KÕr*   c                 ó<   — | j                  t        dd«      «       |S )NrÑ   rƒ   )rÑ  r7  r¸   s     r)   ÚstartTagColz+getPhases.<locals>.InTablePhase.startTagColÕ  s   € Ø×!Ñ!¤/°*¸jÓ"IÔJØˆLr*   c                 óª   — | j                  «        | j                  j                  |«       | j                  j                  d   | j                  _        y ©NrÂ   rÐ  r¸   s     r)   ÚstartTagRowGroupz0getPhases.<locals>.InTablePhase.startTagRowGroupÙ  s;   € Ø×)Ñ)Ô+Ø�I‰I×#Ñ# EÔ*Ø $§¡× 2Ñ 2°=Ñ AˆD�K‰KÕr*   c                 ó<   — | j                  t        dd«      «       |S )NrÍ   rƒ   )rÖ  r7  r¸   s     r)   ÚstartTagImplyTbodyz2getPhases.<locals>.InTablePhase.startTagImplyTbodyÞ  s   € Ø×!Ñ!¤/°'¸:Ó"FÔGØˆLr*   c                 óÎ   — | j                   j                  ddddœ«       | j                   j                  j                  t	        d«      «       | j                   j
                  s|S y )Nr  rÒ   r  )rS   r’   ri   rš   r7  r[   r¸   s     r)   r  z-getPhases.<locals>.InTablePhase.startTagTableâ  sT   € Ø�K‰K×"Ñ"Ð#IØ18ÀWÑ#MôOà�K‰K×Ñ×+Ñ+¬O¸GÓ,DÔEØ—;‘;×(Ò(Ø�ð )r*   c                 óR   — | j                   j                  d   j                  |«      S rœ  rN  r¸   s     r)   ÚstartTagStyleScriptz3getPhases.<locals>.InTablePhase.startTagStyleScripté  rO  r*   c                 ó&  — d|d   v ry|d   d   j                  t        «      dk(  r[| j                  j                  d«       | j                  j                  |«       | j                  j                  j                  «        y | j                  |«       y )Nr7   r‰   r  z unexpected-hidden-input-in-table)	rz   r   rS   r’   rI   rà   r‘   r  rT  r¸   s     r)   r   z-getPhases.<locals>.InTablePhase.startTagInputì  st   € Ø˜% ™-Ñ'Ø˜&‘M &Ñ)×3Ñ3Ô4DÓEÈÒQØ—‘×&Ñ&Ð'IÔJØ—	‘	×'Ñ'¨Ô.à—	‘	×&Ñ&×*Ñ*Õ,à×"Ñ" 5Õ)r*   c                 ó6  — | j                   j                  d«       | j                  j                  €h| j                  j	                  |«       | j                  j
                  d   | j                  _        | j                  j
                  j                  «        y y )Nzunexpected-form-in-tablerˆ   )rS   r’   rI   r÷  rà   r‘   r  r¸   s     r)   rø  z,getPhases.<locals>.InTablePhase.startTagFormö  sm   € Ø�K‰K×"Ñ"Ð#=Ô>Ø�y‰y×$Ñ$Ð,Ø—	‘	×'Ñ'¨Ô.Ø(,¯	©	×(>Ñ(>¸rÑ(B�—	‘	Ô%Ø—	‘	×&Ñ&×*Ñ*Õ,ð -r*   c                 óÚ   — | j                   j                  dd|d   i«       d| j                  _        | j                   j                  d   j                  |«       d| j                  _        y )Nz)unexpected-start-tag-implies-table-voodoorO   TrÆ   F)rS   r’   rI   rÌ  rL   r™   r¸   s     r)   rT  z-getPhases.<locals>.InTablePhase.startTagOtherý  sY   € Ø�K‰K×"Ñ"Ð#NÐQWÐY^Ð_eÑYfÐPgÔhà(,ˆD�I‰IÔ%Ø�K‰K×Ñ˜xÑ(×8Ñ8¸Ô?Ø(-ˆD�I‰IÕ%r*   c                 ó  — | j                   j                  dd¬«      �r0| j                   j                  «        | j                   j                  d   j                  dk7  r@| j
                  j                  dd| j                   j                  d   j                  dœ«       | j                   j                  d   j                  dk7  rK| j                   j                  j                  «        | j                   j                  d   j                  dk7  rŒK| j                   j                  j                  «        | j
                  j                  «        y | j
                  j                  sJ ‚| j
                  j                  «        y )NrÒ   rî  rˆ   zend-tag-too-early-namedrX  )
rI   rð  rH  r‘   rO   rS   r’   r  rk   r[   r¸   s     r)   ÚendTagTablez+getPhases.<locals>.InTablePhase.endTagTable  s  € Ø�y‰y×'Ñ'¨¸Ð'ÕAØ—	‘	×0Ñ0Ô2Ø—9‘9×)Ñ)¨"Ñ-×2Ñ2°gÒ=Ø—K‘K×*Ñ*Ð+DØ7>Ø<@¿I¹I×<RÑ<RÐSUÑ<V×<[Ñ<[ñ,]ô^ð —i‘i×,Ñ,¨RÑ0×5Ñ5¸Ò@Ø—I‘I×*Ñ*×.Ñ.Ô0ð —i‘i×,Ñ,¨RÑ0×5Ñ5¸Ó@à—	‘	×&Ñ&×*Ñ*Ô,Ø—‘×.Ñ.Õ0ð —{‘{×,Ò,Ð,Ð,Ø—‘×&Ñ&Õ(r*   c                 óF   — | j                   j                  dd|d   i«       y r‰  r  r¸   s     r)   ÚendTagIgnorez,getPhases.<locals>.InTablePhase.endTagIgnore  r‹  r*   c                 óÚ   — | j                   j                  dd|d   i«       d| j                  _        | j                   j                  d   j                  |«       d| j                  _        y )Nz'unexpected-end-tag-implies-table-voodoorO   TrÆ   F)rS   r’   rI   rÌ  rL   rš   r¸   s     r)   rX  z+getPhases.<locals>.InTablePhase.endTagOther  sX   € Ø�K‰K×"Ñ"Ð#LÈvÐW\Ð]cÑWdÐNeÔfà(,ˆD�I‰IÔ%Ø�K‰K×Ñ˜xÑ(×6Ñ6°uÔ=Ø(-ˆD�I‰IÕ%r*   rÖ   rÐ   rÑ   r³  ©rÍ   rÏ   rÎ   )rÊ   rË   rÌ   rÒ   )r�  r‘  r4  rö  )rÔ   rÐ   r³  rÑ   rÖ   rÍ   rÊ   rÏ   rË   rÎ   rÌ   N)r@   rA   rB   r1  r  rÃ  rž   r˜   r—   r  rÎ  rÑ  rÓ  rÖ  rØ  r  rÛ  r   rø  rT  rà  râ  rX  r   rY  r  r  rZ  r  ©r  s   €r)   ÚInTablePhaserÁ  ¢  s  ø„ á“Gˆ	ò	-ò	-ò	<ò	7ò	.ò	@ò	Dò
	ò	Bò
	ò	ò	Gò	*ò	-ò	.ò	)ò 	Rò	.ð 2˜&×1Ñ1Ø‘U×'Ñ'Ð(Ø˜Ð(ØÐ)Ð*Ø�KÐ Ø(Ð*:Ð;ØÐ!3Ð4Ø�mÐ$Ø Ð"5Ð6Ø�mÐ$Ø�\Ð"ð3
ó ˆð #0ˆÔà/˜×/Ñ/Ø�kÐ"ð,Ø-9ð;ð1
ó ˆð
 !,ˆÕr*   ræ  c                   óP   •‡ — e Zd ZdZˆˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zˆ xZS )
ú#getPhases.<locals>.InTableTextPhase)rá   ÚcharacterTokensc                 ó@   •— t        ‰| �  |i |¤Ž d | _        g | _        y r2   )rÇ  rQ   rá   ré  )rM   r°   r&   ÚInTableTextPhaserí   s      €€r)   rQ   z,getPhases.<locals>.InTableTextPhase.__init__6  s(   ø€ ÜÐ" DÑ2°DÐC¸FÒCØ!%ˆDÔØ#%ˆDÕ r*   c                 ón  — dj                  | j                  D �cg c]  }|d   ‘Œ	 c}«      }t        |D �cg c]
  }|t        v‘Œ c}«      r<t        d   |dœ}| j
                  j                  d   j                  |«       g | _        y |r| j                  j                  |«       g | _        y c c}w c c}w )Nr'  r‰   r�   r3  rÅ   )	Újoinré  râ  r   r   rS   rL   r  rI   )rM   rk  r‰   r¦   s       r)   ÚflushCharactersz3getPhases.<locals>.InTableTextPhase.flushCharacters;  s›   € Ø—7‘7°T×5IÑ5IÖJ¨T˜D ›LÒJÓKˆDÜ¸DÖA°D�D¤Ò/ÒAÔBÜ!+¨LÑ!9À4ÑH�Ø—‘×"Ñ" 9Ñ-×8Ñ8¸Ô?ð $&ˆDÕ ñ Ø—	‘	×$Ñ$ TÔ*Ø#%ˆDÕ ùò KùÚAs
   šB-¶B2c                 ó\   — | j                  «        | j                  | j                  _        |S r2   ©rî  rá   rS   ri   r¸   s     r)   r›   z2getPhases.<locals>.InTableTextPhase.processCommentD  ó%   € Ø× Ñ Ô"Ø $× 2Ñ 2ˆD�K‰KÔØˆLr*   c                 óZ   — | j                  «        | j                  | j                  _        yr9  rð  ro   s    r)   rž   z.getPhases.<locals>.InTableTextPhase.processEOFI  s#   € Ø× Ñ Ô"Ø $× 2Ñ 2ˆD�K‰KÔØr*   c                 óL   — |d   dk(  ry | j                   j                  |«       y ©Nr‰   rá  ©ré  r�   r¸   s     r)   r—   z5getPhases.<locals>.InTableTextPhase.processCharactersN  s%   € Ø�V‰} Ò(ØØ× Ñ ×'Ñ'¨Õ.r*   c                 ó:   — | j                   j                  |«       y r2   rõ  r¸   s     r)   r˜   z:getPhases.<locals>.InTableTextPhase.processSpaceCharactersS  s   € à× Ñ ×'Ñ'¨Õ.r*   c                 ó\   — | j                  «        | j                  | j                  _        |S r2   rð  r¸   s     r)   r™   z3getPhases.<locals>.InTableTextPhase.processStartTagX  rñ  r*   c                 ó\   — | j                  «        | j                  | j                  _        |S r2   rð  r¸   s     r)   rš   z1getPhases.<locals>.InTableTextPhase.processEndTag]  rñ  r*   )r@   rA   rB   r  rQ   rî  r›   rž   r—   r˜   r™   rš   r¶  )rí   rë  s   @€r)   rë  rè  3  s0   ù„ Ø8ˆ	õ	&ò
	&ò	ò
	ò
	/ò
	/ò
	ö
	r*   rë  c                   óê   •— e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Z ej                  d
W ° j                   fdefg«      Ze	e_         ej                  de
fdefdefg«      Zee_        y)ú!getPhases.<locals>.InCaptionPhasec                 ó>   — | j                   j                  dd¬«       S )NrÐ   rÒ   rî  ©rI   rð  ro   s    r)   ÚignoreEndTagCaptionz5getPhases.<locals>.InCaptionPhase.ignoreEndTagCaptionf  s   € Ø—y‘y×/Ñ/°	À7Ð/ÓKÐKÐKr*   c                 óR   — | j                   j                  d   j                  «        y rM  ©rS   rL   rž   ro   s    r)   rž   z,getPhases.<locals>.InCaptionPhase.processEOFi  ó   € Ø�K‰K×Ñ˜xÑ(×3Ñ3Õ5r*   c                 óR   — | j                   j                  d   j                  |«      S rM  ©rS   rL   r—   r¸   s     r)   r—   z3getPhases.<locals>.InCaptionPhase.processCharactersl  ó"   € Ø—;‘;×%Ñ% hÑ/×AÑAÀ%ÓHÐHr*   c                 ó¼   — | j                   j                  «        | j                  «       }| j                   j                  j	                  t        d«      «       |s|S y ©NrÐ   ©rS   r’   rý  ri   rš   r7  ©rM   r¦   ÚignoreEndTags      r)   ÚstartTagTableElementz6getPhases.<locals>.InCaptionPhase.startTagTableElemento  sJ   € Ø�K‰K×"Ñ"Ô$à×3Ñ3Ó5ˆLØ�K‰K×Ñ×+Ñ+¬O¸IÓ,FÔGÙØ�ð  r*   c                 óR   — | j                   j                  d   j                  |«      S rM  rN  r¸   s     r)   rT  z/getPhases.<locals>.InCaptionPhase.startTagOtherw  rO  r*   c                 ó:  — | j                  «       �sX| j                  j                  «        | j                  j                  d   j                  dk7  r@| j
                  j                  dd| j                  j                  d   j                  dœ«       | j                  j                  d   j                  dk7  rK| j                  j                  j                  «        | j                  j                  d   j                  dk7  rŒK| j                  j                  j                  «        | j                  j                  «        | j
                  j                  d   | j
                  _
        y | j
                  j                  sJ ‚| j
                  j                  «        y )Nrˆ   rÐ   rW  rX  rÅ   )rý  rI   rH  r‘   rO   rS   r’   r  r�  rL   ri   r[   r¸   s     r)   ÚendTagCaptionz/getPhases.<locals>.InCaptionPhase.endTagCaptionz  s-  € Ø×+Ñ+Õ-à—	‘	×0Ñ0Ô2Ø—9‘9×)Ñ)¨"Ñ-×2Ñ2°iÒ?Ø—K‘K×*Ñ*Ð+QØ7@Ø<@¿I¹I×<RÑ<RÐSUÑ<V×<[Ñ<[ñ,]ô^ð —i‘i×,Ñ,¨RÑ0×5Ñ5¸ÒBØ—I‘I×*Ñ*×.Ñ.Ô0ð —i‘i×,Ñ,¨RÑ0×5Ñ5¸ÓBà—	‘	×&Ñ&×*Ñ*Ô,Ø—	‘	×7Ñ7Ô9Ø$(§K¡K×$6Ñ$6°yÑ$A�—‘Õ!ð —{‘{×,Ò,Ð,Ð,Ø—‘×&Ñ&Õ(r*   c                 ó¼   — | j                   j                  «        | j                  «       }| j                   j                  j	                  t        d«      «       |s|S y r  r  r  s      r)   rà  z-getPhases.<locals>.InCaptionPhase.endTagTableŒ  sJ   € Ø�K‰K×"Ñ"Ô$Ø×3Ñ3Ó5ˆLØ�K‰K×Ñ×+Ñ+¬O¸IÓ,FÔGÙØ�ð  r*   c                 óF   — | j                   j                  dd|d   i«       y r‰  r  r¸   s     r)   râ  z.getPhases.<locals>.InCaptionPhase.endTagIgnore“  r‹  r*   c                 óR   — | j                   j                  d   j                  |«      S rM  ©rS   rL   rš   r¸   s     r)   rX  z-getPhases.<locals>.InCaptionPhase.endTagOther–  ó"   € Ø—;‘;×%Ñ% hÑ/×=Ñ=¸eÓDÐDr*   rÖ   ©	rÐ   r³  rÑ   rÍ   rÊ   rÏ   rË   rÎ   rÌ   rÐ   rÒ   )
rÔ   r³  rÑ   rÖ   rÍ   rÊ   rÏ   rË   rÎ   rÌ   N)r@   rA   rB   r1  r  rý  rž   r—   r	  rT  r  rà  râ  rX  r   rY  r  r  rZ  r  rå  s   €r)   ÚInCaptionPhaserú  b  s¸   ø„ á“Gˆ	ò	Lò	6ò	Iò	ò	Gò	)ò$	ò	Rò	Eð 2˜&×1Ñ1Ø‘U×'Ñ'Ð(ðØ2ð4ð3
ó ˆð
 #0ˆÔà/˜×/Ñ/Ø˜Ð&Ø�kÐ"ðØ*ð,ð1
ó ˆð !,ˆÕr*   r  c                   óÞ   •— e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Z ej                  d	W ° j                  fd
efg«      Ze	e_         ej                  de
fd
efg«      Zee_        y)ú%getPhases.<locals>.InColumnGroupPhasec                 óN   — | j                   j                  d   j                  dk(  S )Nrˆ   rÖ   )rI   r‘   rO   ro   s    r)   ÚignoreEndTagColgroupz:getPhases.<locals>.InColumnGroupPhase.ignoreEndTagColgroup¬  s"   € Ø—9‘9×)Ñ)¨"Ñ-×2Ñ2°fÑ<Ð<r*   c                 óÜ   — | j                   j                  d   j                  dk(  r| j                  j                  sJ ‚y | j                  «       }| j                  t        d«      «       |syy )Nrˆ   rÖ   rÑ   T)rI   r‘   rO   rS   r[   r  ÚendTagColgroupr7  )rM   r  s     r)   rž   z0getPhases.<locals>.InColumnGroupPhase.processEOF¯  sa   € Ø�y‰y×%Ñ% bÑ)×.Ñ.°&Ò8Ø—{‘{×,Ò,Ð,Ð,Øà#×8Ñ8Ó:�Ø×#Ñ#¤O°JÓ$?Ô@Ù#Øð $r*   c                 ó`   — | j                  «       }| j                  t        d«      «       |s|S y ©NrÑ   ©r  r  r7  r  s      r)   r—   z7getPhases.<locals>.InColumnGroupPhase.processCharacters¹  ó0   € Ø×4Ñ4Ó6ˆLØ×Ñ¤°
Ó ;Ô<ÙØ�ð  r*   c                 óŒ   — | j                   j                  |«       | j                   j                  j                  «        d|d<   y rf  rg  r¸   s     r)   rÓ  z1getPhases.<locals>.InColumnGroupPhase.startTagCol¿  ri  r*   c                 ó`   — | j                  «       }| j                  t        d«      «       |s|S y r  r  r  s      r)   rT  z3getPhases.<locals>.InColumnGroupPhase.startTagOtherÄ  r  r*   c                 ó"  — | j                  «       r3| j                  j                  sJ ‚| j                  j                  «        y | j                  j
                  j                  «        | j                  j                  d   | j                  _        y ©NrÅ   )	r  rS   r[   r’   rI   r‘   r  rL   ri   r¸   s     r)   r  z4getPhases.<locals>.InColumnGroupPhase.endTagColgroupÊ  sb   € Ø×(Ñ(Ô*à—{‘{×,Ò,Ð,Ð,Ø—‘×&Ñ&Õ(à—	‘	×&Ñ&×*Ñ*Ô,Ø$(§K¡K×$6Ñ$6°yÑ$A�—‘Õ!r*   c                 ó@   — | j                   j                  dddi«       y )Nz
no-end-tagrO   r³  r  r¸   s     r)   Ú	endTagColz/getPhases.<locals>.InColumnGroupPhase.endTagColÓ  s   € Ø�K‰K×"Ñ" <°&¸%°ÕAr*   c                 ó`   — | j                  «       }| j                  t        d«      «       |s|S y r  r  r  s      r)   rX  z1getPhases.<locals>.InColumnGroupPhase.endTagOtherÖ  r  r*   rÖ   r³  rÑ   N)r@   rA   rB   r1  r  r  rž   r—   rÓ  rT  r  r#  rX  r   rY  r  r  rZ  r  rå  s   €r)   ÚInColumnGroupPhaser  ¨  sž   ø„ á“Gˆ	ò	=ò	 ò	ò	4ò
	ò	Bò	Bò	ð 2˜&×1Ñ1Ø‘U×'Ñ'Ð(Ø�KÐ ð3
ó ˆð #0ˆÔà/˜×/Ñ/Ø˜Ð(Ø�IÐð1
ó ˆð !,ˆÕr*   r%  c                   ó  •— e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Z ej$                  dW ° j&                  fde	fde
fdefg«      Zee_         ej$                  defdefdefg«      Zee_        y)ú#getPhases.<locals>.InTableBodyPhasec                 ó`  — | j                   j                  d   j                  dvrJ| j                   j                  j                  «        | j                   j                  d   j                  dvrŒJ| j                   j                  d   j                  dk(  r| j                  j
                  sJ ‚y y )Nrˆ   )rÍ   rÏ   rÎ   rÖ   rÖ   )rI   r‘   rO   r  rS   r[   ro   s    r)   ÚclearStackToTableBodyContextz@getPhases.<locals>.InTableBodyPhase.clearStackToTableBodyContextí  s›   € Ø—)‘)×(Ñ(¨Ñ,×1Ñ1ð :Kñ Kð —	‘	×&Ñ&×*Ñ*Ô,ð	 —)‘)×(Ñ(¨Ñ,×1Ñ1ð :Kò Kð
 �y‰y×%Ñ% bÑ)×.Ñ.°&Ò8Ø—{‘{×,Ò,Ð,Ñ,ð 9r*   c                 óR   — | j                   j                  d   j                  «        y r!  rÿ  ro   s    r)   rž   z.getPhases.<locals>.InTableBodyPhase.processEOF÷  ó   € Ø�K‰K×Ñ˜yÑ)×4Ñ4Õ6r*   c                 óR   — | j                   j                  d   j                  |«      S r!  rŸ  r¸   s     r)   r˜   z:getPhases.<locals>.InTableBodyPhase.processSpaceCharactersú  ó"   € Ø—;‘;×%Ñ% iÑ0×GÑGÈÓNÐNr*   c                 óR   — | j                   j                  d   j                  |«      S r!  r  r¸   s     r)   r—   z5getPhases.<locals>.InTableBodyPhase.processCharactersý  ó"   € Ø—;‘;×%Ñ% iÑ0×BÑBÀ5ÓIÐIr*   c                 óª   — | j                  «        | j                  j                  |«       | j                  j                  d   | j                  _        y )NrÁ   )r)  rI   rà   rS   rL   ri   r¸   s     r)   Ú
startTagTrz.getPhases.<locals>.InTableBodyPhase.startTagTr   s;   € Ø×-Ñ-Ô/Ø�I‰I×#Ñ# EÔ*Ø $§¡× 2Ñ 2°7Ñ ;ˆD�K‰KÕr*   c                 ó~   — | j                   j                  dd|d   i«       | j                  t        dd«      «       |S )Nzunexpected-cell-in-table-bodyrO   rÌ   rƒ   )rS   r’   r1  r7  r¸   s     r)   ÚstartTagTableCellz5getPhases.<locals>.InTableBodyPhase.startTagTableCell  s;   € Ø�K‰K×"Ñ"Ð#BØ$*¨E°&©MÐ#:ô<à�O‰OœO¨D°*Ó=Ô>ØˆLr*   c                 ó°  — | j                   j                  dd¬«      s:| j                   j                  dd¬«      s| j                   j                  dd¬«      rM| j                  «        | j                  t	        | j                   j
                  d   j                  «      «       |S | j                  j                  sJ ‚| j                  j                  «        y ©NrÍ   rÒ   rî  rÎ   rÏ   rˆ   ©
rI   rð  r)  ÚendTagTableRowGroupr7  r‘   rO   rS   r[   r’   r¸   s     r)   ÚstartTagTableOtherz6getPhases.<locals>.InTableBodyPhase.startTagTableOther  s©   € à—	‘	×(Ñ(¨¸'Ð(ÔBØ—	‘	×(Ñ(¨¸'Ð(ÔBØ—I‘I×,Ñ,¨W¸gÐ,ÔFØ×1Ñ1Ô3Ø×(Ñ(Ü# D§I¡I×$:Ñ$:¸2Ñ$>×$CÑ$CÓDôFà�ð —{‘{×,Ò,Ð,Ð,Ø—‘×&Ñ&Õ(r*   c                 óR   — | j                   j                  d   j                  |«      S r!  rN  r¸   s     r)   rT  z1getPhases.<locals>.InTableBodyPhase.startTagOther  ó"   € Ø—;‘;×%Ñ% iÑ0×@Ñ@ÀÓGÐGr*   c                 ó@  — | j                   j                  |d   d¬«      r]| j                  «        | j                   j                  j	                  «        | j
                  j                  d   | j
                  _        y | j
                  j                  dd|d   i«       y )NrO   rÒ   rî  rÅ   ú unexpected-end-tag-in-table-body)	rI   rð  r)  r‘   r  rS   rL   ri   r’   r¸   s     r)   r7  z7getPhases.<locals>.InTableBodyPhase.endTagTableRowGroup  s|   € Ø�y‰y×'Ñ'¨¨f©¸wÐ'ÔGØ×1Ñ1Ô3Ø—	‘	×&Ñ&×*Ñ*Ô,Ø$(§K¡K×$6Ñ$6°yÑ$A�—‘Õ!à—‘×&Ñ&Ð'IØ(.°°f±Ð'>õ@r*   c                 ó°  — | j                   j                  dd¬«      s:| j                   j                  dd¬«      s| j                   j                  dd¬«      rM| j                  «        | j                  t	        | j                   j
                  d   j                  «      «       |S | j                  j                  sJ ‚| j                  j                  «        y r5  r6  r¸   s     r)   rà  z/getPhases.<locals>.InTableBodyPhase.endTagTable%  s©   € Ø—	‘	×(Ñ(¨¸'Ð(ÔBØ—	‘	×(Ñ(¨¸'Ð(ÔBØ—I‘I×,Ñ,¨W¸gÐ,ÔFØ×1Ñ1Ô3Ø×(Ñ(Ü# D§I¡I×$:Ñ$:¸2Ñ$>×$CÑ$CÓDôFà�ð —{‘{×,Ò,Ð,Ð,Ø—‘×&Ñ&Õ(r*   c                 óF   — | j                   j                  dd|d   i«       y )Nr<  rO   r  r¸   s     r)   râ  z0getPhases.<locals>.InTableBodyPhase.endTagIgnore2  ó#   € Ø�K‰K×"Ñ"Ð#EØ$*¨E°&©MÐ#:õ<r*   c                 óR   — | j                   j                  d   j                  |«      S r!  r  r¸   s     r)   rX  z/getPhases.<locals>.InTableBodyPhase.endTagOther6  ó"   € Ø—;‘;×%Ñ% iÑ0×>Ñ>¸uÓEÐEr*   rÖ   rÌ   ©rÊ   rË   )rÐ   r³  rÑ   rÍ   rÏ   rÎ   rä  rÒ   )rÔ   rÐ   r³  rÑ   rÖ   rÊ   rË   rÌ   N)r@   rA   rB   r1  r  r)  rž   r˜   r—   r1  r3  r8  rT  r7  rà  râ  rX  r   rY  r  r  rZ  r  rå  s   €r)   ÚInTableBodyPhaser'  è  s×   ø„ á“Gˆ	ò	-ò	7ò	Oò	Jò	<ò
	ò	)ò	Hò	@ò	)ò	<ò	Fð 2˜&×1Ñ1Ø‘U×'Ñ'Ð(Ø�:ÐØÐ,Ð-ØFØð!ð	3
ó ˆð #0ˆÔà/˜×/Ñ/Ø(Ð*=Ð>Ø�kÐ"ðØ!ð#ð1
ó ˆð !,ˆÕr*   rC  c                   ó  •— e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Z ej&                  dW ° j(                  fde
fdefg«      Zee_         ej&                  defdefdefdefg«      Zee_        y)úgetPhases.<locals>.InRowPhasec                 ób  — | j                   j                  d   j                  dvrŠ| j                  j	                  dd| j                   j                  d   j                  i«       | j                   j                  j                  «        | j                   j                  d   j                  dvrŒ‰y y )Nrˆ   )rÌ   rÖ   z'unexpected-implied-end-tag-in-table-rowrO   )rI   r‘   rO   rS   r’   r  ro   s    r)   ÚclearStackToTableRowContextz9getPhases.<locals>.InRowPhase.clearStackToTableRowContextO  s‡   € Ø—)‘)×(Ñ(¨Ñ,×1Ñ1¸ÑGØ—‘×&Ñ&Ð'PØ(.°·	±	×0FÑ0FÀrÑ0J×0OÑ0OÐ'PôRà—	‘	×&Ñ&×*Ñ*Ô,ð —)‘)×(Ñ(¨Ñ,×1Ñ1¸ÔGr*   c                 ó>   — | j                   j                  dd¬«       S )NrÌ   rÒ   rî  rü  ro   s    r)   ÚignoreEndTagTrz,getPhases.<locals>.InRowPhase.ignoreEndTagTrU  s   € Ø—y‘y×/Ñ/°¸gÐ/ÓFÐFÐFr*   c                 óR   — | j                   j                  d   j                  «        y r!  rÿ  ro   s    r)   rž   z(getPhases.<locals>.InRowPhase.processEOFY  r+  r*   c                 óR   — | j                   j                  d   j                  |«      S r!  rŸ  r¸   s     r)   r˜   z4getPhases.<locals>.InRowPhase.processSpaceCharacters\  r-  r*   c                 óR   — | j                   j                  d   j                  |«      S r!  r  r¸   s     r)   r—   z/getPhases.<locals>.InRowPhase.processCharacters_  r/  r*   c                 óü   — | j                  «        | j                  j                  |«       | j                  j                  d   | j                  _        | j                  j                  j                  t        «       y )NrÀ   )	rG  rI   rà   rS   rL   ri   rÐ  r�   r   r¸   s     r)   r3  z/getPhases.<locals>.InRowPhase.startTagTableCellb  sS   € Ø×,Ñ,Ô.Ø�I‰I×#Ñ# EÔ*Ø $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÔØ�I‰I×.Ñ.×5Ñ5´fÕ=r*   c                 ó`   — | j                  «       }| j                  t        d«      «       |s|S y ©NrÌ   ©rI  ÚendTagTrr7  r  s      r)   r8  z0getPhases.<locals>.InRowPhase.startTagTableOtherh  s.   € Ø×.Ñ.Ó0ˆLØ�M‰Mœ/¨$Ó/Ô0áØ�ð  r*   c                 óR   — | j                   j                  d   j                  |«      S r!  rN  r¸   s     r)   rT  z+getPhases.<locals>.InRowPhase.startTagOthero  r:  r*   c                 óB  — | j                  «       s]| j                  «        | j                  j                  j	                  «        | j
                  j                  d   | j
                  _        y | j
                  j                  sJ ‚| j
                  j                  «        y rÕ  )
rI  rG  rI   r‘   r  rS   rL   ri   r[   r’   r¸   s     r)   rQ  z&getPhases.<locals>.InRowPhase.endTagTrr  sp   € Ø×&Ñ&Ô(Ø×0Ñ0Ô2Ø—	‘	×&Ñ&×*Ñ*Ô,Ø$(§K¡K×$6Ñ$6°}Ñ$E�—‘Õ!ð —{‘{×,Ò,Ð,Ð,Ø—‘×&Ñ&Õ(r*   c                 ó`   — | j                  «       }| j                  t        d«      «       |s|S y rO  rP  r  s      r)   rà  z)getPhases.<locals>.InRowPhase.endTagTable|  s0   € Ø×.Ñ.Ó0ˆLØ�M‰Mœ/¨$Ó/Ô0ñ  Ø�ð  r*   c                 ó°   — | j                   j                  |d   d¬«      r| j                  t        d«      «       |S | j                  j                  «        y )NrO   rÒ   rî  rÌ   )rI   rð  rQ  r7  rS   r’   r¸   s     r)   r7  z1getPhases.<locals>.InRowPhase.endTagTableRowGroup„  sC   € Ø�y‰y×'Ñ'¨¨f©¸wÐ'ÔGØ—‘œo¨dÓ3Ô4Ø�à—‘×&Ñ&Õ(r*   c                 óF   — | j                   j                  dd|d   i«       y )Nzunexpected-end-tag-in-table-rowrO   r  r¸   s     r)   râ  z*getPhases.<locals>.InRowPhase.endTagIgnore‹  s#   € Ø�K‰K×"Ñ"Ð#DØ$*¨E°&©MÐ#:õ<r*   c                 óR   — | j                   j                  d   j                  |«      S r!  r  r¸   s     r)   rX  z)getPhases.<locals>.InRowPhase.endTagOther�  rA  r*   rÖ   rB  )rÐ   r³  rÑ   rÍ   rÏ   rÎ   rÌ   rÌ   rÒ   rä  )rÔ   rÐ   r³  rÑ   rÖ   rÊ   rË   N)r@   rA   rB   r1  r  rG  rI  rž   r˜   r—   r3  r8  rT  rQ  rà  r7  râ  rX  r   rY  r  r  rZ  r  rå  s   €r)   Ú
InRowPhaserE  J  sÜ   ø„ á“Gˆ	ò	-ò	Gò	7ò	Oò	Jò	>ò	ò	Hò	)ò	ò	)ò	<ò	Fð 2˜&×1Ñ1Ø‘U×'Ñ'Ð(ØÐ,Ð-ðØ'ð)ð3
ó ˆð #0ˆÔà/˜×/Ñ/Ø�8ÐØ�kÐ"Ø(Ð*=Ð>ØGØðð	1
ó ˆð !,ˆÕr*   rX  c                   óê   •— e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Z ej                  d
W ° j                   fdefg«      Ze	e_         ej                  de
fdefdefg«      Zee_        y)úgetPhases.<locals>.InCellPhasec                 óä   — | j                   j                  dd¬«      r| j                  t        d«      «       y | j                   j                  dd¬«      r| j                  t        d«      «       y y ©NrÊ   rÒ   rî  rË   )rI   rð  ÚendTagTableCellr7  ro   s    r)   Ú	closeCellz(getPhases.<locals>.InCellPhase.closeCell¨  s\   € Ø�y‰y×'Ñ'¨°gÐ'Ô>Ø×$Ñ$¤_°TÓ%:Õ;Ø—‘×)Ñ)¨$¸Ð)Ô@Ø×$Ñ$¤_°TÓ%:Õ;ð Ar*   c                 óR   — | j                   j                  d   j                  «        y rM  rÿ  ro   s    r)   rž   z)getPhases.<locals>.InCellPhase.processEOF¯  r   r*   c                 óR   — | j                   j                  d   j                  |«      S rM  r  r¸   s     r)   r—   z0getPhases.<locals>.InCellPhase.processCharacters²  r  r*   c                 ó   — | j                   j                  dd¬«      s| j                   j                  dd¬«      r| j                  «        |S | j                  j                  sJ ‚| j                  j                  «        y r\  )rI   rð  r^  rS   r[   r’   r¸   s     r)   r8  z1getPhases.<locals>.InCellPhase.startTagTableOtherµ  sd   € Ø—	‘	×(Ñ(¨°wÐ(Ô?Ø—I‘I×,Ñ,¨T¸7Ð,ÔCØ—‘Ô Ø�ð —{‘{×,Ò,Ð,Ð,Ø—‘×&Ñ&Õ(r*   c                 óR   — | j                   j                  d   j                  |«      S rM  rN  r¸   s     r)   rT  z,getPhases.<locals>.InCellPhase.startTagOther¿  rO  r*   c                 ó˜  — | j                   j                  |d   d¬«      �r| j                   j                  |d   «       | j                   j                  d   j                  |d   k7  rZ| j
                  j                  dd|d   i«       	 | j                   j                  j                  «       }|j                  |d   k(  rn%Œ8| j                   j                  j                  «        | j                   j                  «        | j
                  j                  d   | j
                  _
        y | j
                  j                  dd|d   i«       y )NrO   rÒ   rî  rˆ   zunexpected-cell-end-tagrÁ   rŠ  )rI   rð  rH  r‘   rO   rS   r’   r  r�  rL   ri   r„  s      r)   r]  z.getPhases.<locals>.InCellPhase.endTagTableCellÂ  s
  € Ø�y‰y×'Ñ'¨¨f©¸wÐ'ÕGØ—	‘	×0Ñ0°°v±Ô?Ø—9‘9×)Ñ)¨"Ñ-×2Ñ2°e¸F±mÒCØ—K‘K×*Ñ*Ð+DØ,2°E¸&±MÐ+BôDàØ#Ÿy™y×5Ñ5×9Ñ9Ó;˜ØŸ9™9¨¨f©Ò5Ø!ð ð
 —I‘I×*Ñ*×.Ñ.Ô0Ø—	‘	×7Ñ7Ô9Ø$(§K¡K×$6Ñ$6°wÑ$?�—‘Õ!à—‘×&Ñ&Ð';¸fÀeÈFÁmÐ=TÕUr*   c                 óF   — | j                   j                  dd|d   i«       y r‰  r  r¸   s     r)   râ  z+getPhases.<locals>.InCellPhase.endTagIgnoreÓ  r‹  r*   c                 óœ   — | j                   j                  |d   d¬«      r| j                  «        |S | j                  j	                  «        y )NrO   rÒ   rî  )rI   rð  r^  rS   r’   r¸   s     r)   ÚendTagImplyz*getPhases.<locals>.InCellPhase.endTagImplyÖ  s>   € Ø�y‰y×'Ñ'¨¨f©¸wÐ'ÔGØ—‘Ô Ø�ð —‘×&Ñ&Õ(r*   c                 óR   — | j                   j                  d   j                  |«      S rM  r  r¸   s     r)   rX  z*getPhases.<locals>.InCellPhase.endTagOtherÞ  r  r*   rÖ   r  rB  )rÔ   rÐ   r³  rÑ   rÖ   ro  N)r@   rA   rB   r1  r  r^  rž   r—   r8  rT  r]  râ  rf  rX  r   rY  r  r  rZ  r  rå  s   €r)   ÚInCellPhaserZ  £  s³   ø„ á“Gˆ	ò	<ò	6ò	Iò	)ò	Gò	Vò"	Rò	)ò	Eð 2˜&×1Ñ1Ø‘U×'Ñ'Ð(ðØ0ð2ð3
ó ˆð
 #0ˆÔà/˜×/Ñ/Ø˜?Ð+Ø;¸\ÐJØ7¸ÐEð1
ó ˆð
 !,ˆÕr*   rh  c            	       ó  •— e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Z ej$                  dW ° j&                  fdefdefde	fde
fdefg«      Zee_         ej$                  defdefdefg«      Zee_        y)ú getPhases.<locals>.InSelectPhasec                 ó¸   — | j                   j                  d   j                  dk7  r| j                  j	                  d«       y | j                  j
                  sJ ‚y )Nrˆ   rÖ   zeof-in-selectrÅ  ro   s    r)   rž   z+getPhases.<locals>.InSelectPhase.processEOFó  sD   € Ø�y‰y×%Ñ% bÑ)×.Ñ.°&Ò8Ø—‘×&Ñ& Õ7à—{‘{×,Ò,Ð,Ñ,r*   c                 óR   — |d   dk(  ry | j                   j                  |d   «       y rô  r  r¸   s     r)   r—   z2getPhases.<locals>.InSelectPhase.processCharactersù  s'   € Ø�V‰} Ò(ØØ�I‰I× Ñ   v¡Õ/r*   c                 óÎ   — | j                   j                  d   j                  dk(  r$| j                   j                  j                  «        | j                   j	                  |«       y r@  ©rI   r‘   rO   r  rà   r¸   s     r)   ÚstartTagOptionz/getPhases.<locals>.InSelectPhase.startTagOptionþ  sG   € à�y‰y×%Ñ% bÑ)×.Ñ.°(Ò:Ø—	‘	×&Ñ&×*Ñ*Ô,Ø�I‰I×#Ñ# EÕ*r*   c                 ób  — | j                   j                  d   j                  dk(  r$| j                   j                  j                  «        | j                   j                  d   j                  dk(  r$| j                   j                  j                  «        | j                   j	                  |«       y )Nrˆ   rA  rT  rn  r¸   s     r)   ÚstartTagOptgroupz1getPhases.<locals>.InSelectPhase.startTagOptgroup	  sz   € Ø�y‰y×%Ñ% bÑ)×.Ñ.°(Ò:Ø—	‘	×&Ñ&×*Ñ*Ô,Ø�y‰y×%Ñ% bÑ)×.Ñ.°*Ò<Ø—	‘	×&Ñ&×*Ñ*Ô,Ø�I‰I×#Ñ# EÕ*r*   c                 ón   — | j                   j                  d«       | j                  t        d«      «       y )Nzunexpected-select-in-selectrÉ   )rS   r’   ÚendTagSelectr7  r¸   s     r)   rE  z/getPhases.<locals>.InSelectPhase.startTagSelect	  s(   € Ø�K‰K×"Ñ"Ð#@ÔAØ×Ñœo¨hÓ7Õ8r*   c                 óÜ   — | j                   j                  d«       | j                  j                  dd¬«      r| j	                  t        d«      «       |S | j                   j                  sJ ‚y )Nzunexpected-input-in-selectrÉ   rî  )rS   r’   rI   rð  rs  r7  r[   r¸   s     r)   r   z.getPhases.<locals>.InSelectPhase.startTagInput	  sW   € Ø�K‰K×"Ñ"Ð#?Ô@Ø�y‰y×'Ñ'¨¸(Ð'ÔCØ×!Ñ!¤/°(Ó";Ô<Ø�à—{‘{×,Ò,Ð,Ñ,r*   c                 óR   — | j                   j                  d   j                  |«      S rœ  rN  r¸   s     r)   r  z/getPhases.<locals>.InSelectPhase.startTagScript	  rO  r*   c                 óF   — | j                   j                  dd|d   i«       y )Nzunexpected-start-tag-in-selectrO   r  r¸   s     r)   rT  z.getPhases.<locals>.InSelectPhase.startTagOther	  ó#   € Ø�K‰K×"Ñ"Ð#CØ$*¨E°&©MÐ#:õ<r*   c                 óÖ   — | j                   j                  d   j                  dk(  r%| j                   j                  j                  «        y | j                  j                  dddi«       y )Nrˆ   rA  úunexpected-end-tag-in-selectrO   ©rI   r‘   rO   r  rS   r’   r¸   s     r)   ÚendTagOptionz-getPhases.<locals>.InSelectPhase.endTagOption	  sR   € Ø�y‰y×%Ñ% bÑ)×.Ñ.°(Ò:Ø—	‘	×&Ñ&×*Ñ*Õ,à—‘×&Ñ&Ð'EØ(.°Ð'9õ;r*   c                 ó¶  — | j                   j                  d   j                  dk(  rJ| j                   j                  d   j                  dk(  r$| j                   j                  j                  «        | j                   j                  d   j                  dk(  r%| j                   j                  j                  «        y | j                  j                  dddi«       y )Nrˆ   rA  éþÿÿÿrT  ry  rO   rz  r¸   s     r)   ÚendTagOptgroupz/getPhases.<locals>.InSelectPhase.endTagOptgroup%	  s¤   € à—	‘	×&Ñ& rÑ*×/Ñ/°8Ò;Ø—I‘I×*Ñ*¨2Ñ.×3Ñ3°zÒAØ—	‘	×&Ñ&×*Ñ*Ô,à�y‰y×%Ñ% bÑ)×.Ñ.°*Ò<Ø—	‘	×&Ñ&×*Ñ*Õ,ð —‘×&Ñ&Ð'EØ(.°
Ð';õ=r*   c                 ó¦  — | j                   j                  dd¬«      r‚| j                   j                  j                  «       }|j                  dk7  r4| j                   j                  j                  «       }|j                  dk7  rŒ4| j
                  j                  «        y | j
                  j                  sJ ‚| j
                  j                  «        y )NrÉ   rî  )	rI   rð  r‘   r  rO   rS   rk   r[   r’   r„  s      r)   rs  z-getPhases.<locals>.InSelectPhase.endTagSelect2	  s˜   € Ø�y‰y×'Ñ'¨¸(Ð'ÔCØ—y‘y×-Ñ-×1Ñ1Ó3�Ø—i‘i 8Ò+ØŸ9™9×1Ñ1×5Ñ5Ó7�Dð —i‘i 8Ó+à—‘×.Ñ.Õ0ð —{‘{×,Ò,Ð,Ð,Ø—‘×&Ñ&Õ(r*   c                 óF   — | j                   j                  dd|d   i«       y )Nry  rO   r  r¸   s     r)   rX  z,getPhases.<locals>.InSelectPhase.endTagOther=	  ó#   € Ø�K‰K×"Ñ"Ð#AØ$*¨E°&©MÐ#:õ<r*   rÖ   rA  rT  rÉ   )r4  r«  rÜ  r‘  N)r@   rA   rB   r1  r  rž   r—   ro  rq  rE  r   r  rT  r{  r~  rs  rX  r   rY  r  r  rZ  r  rå  s   €r)   ÚInSelectPhaserj  ï  sÚ   ø„ Ù“Gˆ	ò	-ò	0ò
	+ò	+ò	9ò	-ò	Gò	<ò	;ò	=ò		)ò	<ð 2˜&×1Ñ1Ø‘U×'Ñ'Ð(Ø�~Ð&ØÐ)Ð*Ø�~Ð&Ø,¨mÐ<Ø�~Ð&ð3
ó ˆð #0ˆÔà/˜×/Ñ/Ø�|Ð$Ø˜Ð(Ø�|Ð$ð1
ó ˆð
 !,ˆÕr*   r‚  c                   ó®   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
 ej                  defg«      Zee_         ej                  de	fg«      Ze
e_        y)	ú'getPhases.<locals>.InSelectInTablePhasec                 óR   — | j                   j                  d   j                  «        y ©Nr¿   rÿ  ro   s    r)   rž   z2getPhases.<locals>.InSelectInTablePhase.processEOFU	  s   € Ø�K‰K×Ñ˜zÑ*×5Ñ5Õ7r*   c                 óR   — | j                   j                  d   j                  |«      S r†  r  r¸   s     r)   r—   z9getPhases.<locals>.InSelectInTablePhase.processCharactersX	  s"   € Ø—;‘;×%Ñ% jÑ1×CÑCÀEÓJÐJr*   c                 ó|   — | j                   j                  dd|d   i«       | j                  t        d«      «       |S )Nz5unexpected-table-element-start-tag-in-select-in-tablerO   rÉ   )rS   r’   rX  r7  r¸   s     r)   r  z5getPhases.<locals>.InSelectInTablePhase.startTagTable[	  s<   € Ø�K‰K×"Ñ"Ð#ZÐ]cÐejÐkqÑerÐ\sÔtØ×Ñœ_¨XÓ6Ô7ØˆLr*   c                 óR   — | j                   j                  d   j                  |«      S r†  rN  r¸   s     r)   rT  z5getPhases.<locals>.InSelectInTablePhase.startTagOther`	  s"   € Ø—;‘;×%Ñ% jÑ1×AÑAÀ%ÓHÐHr*   c                 ó¾   — | j                   j                  dd|d   i«       | j                  j                  |d   d¬«      r| j	                  t        d«      «       |S y )Nz3unexpected-table-element-end-tag-in-select-in-tablerO   rÒ   rî  rÉ   )rS   r’   rI   rð  rX  r7  r¸   s     r)   rà  z3getPhases.<locals>.InSelectInTablePhase.endTagTablec	  s]   € Ø�K‰K×"Ñ"Ð#XÐ[aÐchÐioÑcpÐZqÔrØ�y‰y×'Ñ'¨¨f©¸wÐ'ÔGØ× Ñ ¤°Ó!:Ô;Ø�ð Hr*   c                 óR   — | j                   j                  d   j                  |«      S r†  r  r¸   s     r)   rX  z3getPhases.<locals>.InSelectInTablePhase.endTagOtheri	  s"   € Ø—;‘;×%Ñ% jÑ1×?Ñ?ÀÓFÐFr*   )rÐ   rÒ   rÍ   rÏ   rÎ   rÌ   rÊ   rË   N)r@   rA   rB   r1  r  rž   r—   r  rT  rà  rX  r   rY  r  rZ  r  rç   r*   r)   ÚInSelectInTablePhaser„  R	  s„   „ Ù“Gˆ	ò	8ò	Kò	ò
	Iò	ò	Gð 2˜&×1Ñ1ØNØðð3
ó ˆð #0ˆÔà/˜×/Ñ/ØNØðð1
ó ˆð !,ˆÕr*   rŒ  c                   óL   •— e Zd Z e«       Z eg d¢«      Zd„ Zˆ fd„Zd„ Z	d„ Z
y)ú(getPhases.<locals>.InForeignContentPhase),r™  rš  r‡  rÔ   rA  rˆ  r›  rÔ  rä   r‹  rÕ  rœ  rª  Úh1Úh2Úh3Úh4Úh5Úh6rÓ   r0  rž  r'  rÖ  rÛ  r“  r9   r  r•  r(   rÚ  rG  rŸ  r   Úspanr¢  r¡  ÚsubÚsuprÒ   r£  r¤  r˜  Úvarc                 ó  — i dd“dd“dd“dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“i d#d$“d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“¥dEdFdGœ¥}|dH   |v r||dH      |dH<   y y )INÚaltglyphÚaltGlyphÚaltglyphdefÚaltGlyphDefÚaltglyphitemÚaltGlyphItemÚanimatecolorÚanimateColorÚanimatemotionÚanimateMotionÚanimatetransformÚanimateTransformÚclippathÚclipPathÚfeblendÚfeBlendÚfecolormatrixÚfeColorMatrixÚfecomponenttransferÚfeComponentTransferÚfecompositeÚfeCompositeÚfeconvolvematrixÚfeConvolveMatrixÚfediffuselightingÚfeDiffuseLightingÚfedisplacementmapÚfeDisplacementMapÚfedistantlightÚfeDistantLightÚfefloodÚfeFloodÚfefuncaÚfeFuncAÚfefuncbÚfeFuncBÚfefuncgÚfeFuncGÚfefuncrÚfeFuncRÚfegaussianblurÚfeGaussianBlurÚfeimageÚfeImageÚfemergeÚfeMergeÚfemergenodeÚfeMergeNodeÚfemorphologyÚfeMorphologyÚfeoffsetÚfeOffsetÚfepointlightÚfePointLightÚfespecularlightingÚfeSpecularLightingÚfespotlightÚfeSpotLightÚfetileÚfeTileÚfeturbulenceÚfeTurbulenceÚforeignobjectÚforeignObjectÚglyphrefÚglyphRefÚlineargradientÚlinearGradientÚradialGradientÚtextPath)ÚradialgradientÚtextpathrO   rç   )rM   r¦   Úreplacementss      r)   ÚadjustSVGTagNamesz:getPhases.<locals>.InForeignContentPhase.adjustSVGTagNames„	  sÜ  € ð#4˜J¨
ð #4Ø)¨=ð#4à*¨Nð#4ð +¨Nð#4ð ,¨_ð	#4ð
 /Ð0Bð#4ð '¨
ð#4ð & yð#4ð ,¨_ð#4ð 2Ð3Hð#4ð *¨=ð#4ð /Ð0Bð#4ð 0Ð1Dð#4ð 0Ð1Dð#4ð -Ð.>ð#4ð & yð#4ð  & yñ!#4ð" & yð##4ð$ & yð%#4ð& & yð'#4ð( -Ð.>ð)#4ð* & yð+#4ð, & yð-#4ð. *¨=ð/#4ð0 +¨Nð1#4ð2 '¨
ð3#4ð4 +¨Nð5#4ð6 1Ð2Fð7#4ð8 *¨=ð9#4ð: % hð;#4ð< +¨Nð=#4ð> ,¨_ð?#4ð@ '¨
ðA#4ðB -Ð.>ñC#4ðD /?Ø(2òG#4ˆLðJ �V‰} Ñ,Ø ,¨U°6©]Ñ ;��f’ð -r*   c                 ó¾   •— |d   dk(  rd|d<   n<| j                   j                  r&t        d„ |d   D «       «      rd| j                   _        ‰j                  | |«       y )Nr‰   rá  u   ï¿½c              3   ó,   K  — | ]  }|t         v–— Œ y ­wr2   )r   )Ú.0rã  s     r)   ú	<genexpr>zMgetPhases.<locals>.InForeignContentPhase.processCharacters.<locals>.<genexpr>±	  s   è ø€ ÒL°d�d¤/Ô1ÑLùs   ‚F)rS   rn   râ  r—   )rM   r¦   r  s     €r)   r—   z:getPhases.<locals>.InForeignContentPhase.processCharacters­	  sS   ø€ Ø�V‰} Ò(Ø (��f’Ø—+‘+×(Ò(ÜÑL¸eÀF¹mÔLÔLØ).�—‘Ô&Ø×#Ñ# D¨%Õ0r*   c                 óˆ  — | j                   j                  d   }|d   | j                  v s+|d   dk(  �r§t        |d   j	                  «       «      h d£z  �r…| j
                  j                  dd|d   i«       | j                   j                  d   j                  | j                   j                  k7  �r'| j
                  j                  | j                   j                  d   «      sõ| j
                  j                  | j                   j                  d   «      sÃ| j                   j                  j                  «        | j                   j                  d   j                  | j                   j                  k7  re| j
                  j                  | j                   j                  d   «      s3| j
                  j                  | j                   j                  d   «      sŒÃ|S |j                  t        d   k(  r| j
                  j                  |«       nB|j                  t        d   k(  r,| j                  |«       | j
                  j                  |«       | j
                  j!                  |«       |j                  |d	<   | j                   j#                  |«       |d
   r*| j                   j                  j                  «        d|d<   y y )Nrˆ   rO   r�  r‰   >   ÚfaceÚsizeÚcolorz*unexpected-html-element-in-foreign-contentrv   r�   rx   r�   Tr�   )rI   r‘   ÚbreakoutElementsÚsetÚkeysrS   r’   rx   r•   r}   r   r  r   r   rã  r   r   rà   )rM   r¦   r©   s      r)   r™   z8getPhases.<locals>.InForeignContentPhase.processStartTagµ	  s&  € ØŸ)™)×0Ñ0°Ñ4ˆKØ�f‘ ×!6Ñ!6Ñ6Ø�v‘ &Ó(Ü�U˜6‘]×'Ñ'Ó)Ó*Ò-FÓFØ—‘×&Ñ&Ð'SØ(.°°f±Ð'>ô@à—y‘y×-Ñ-¨bÑ1×;Ñ;Ø—y‘y×1Ñ1ó2àŸ;™;×=Ñ=¸d¿i¹i×>TÑ>TÐUWÑ>XÔYØŸ;™;×CÑCÀDÇIÁI×DZÑDZÐ[]ÑD^Ô_Ø—I‘I×*Ñ*×.Ñ.Ô0ð	 —y‘y×-Ñ-¨bÑ1×;Ñ;Ø—y‘y×1Ñ1ò2àŸ;™;×=Ñ=¸d¿i¹i×>TÑ>TÐUWÑ>XÔYØŸ;™;×CÑCÀDÇIÁI×DZÑDZÐ[]ÑD^Õ_à�ð ×(Ñ(¬J°xÑ,@Ò@Ø—K‘K×6Ñ6°uÕ=Ø ×*Ñ*¬j¸Ñ.?Ò?Ø×*Ñ*¨5Ô1Ø—K‘K×3Ñ3°EÔ:Ø—‘×3Ñ3°EÔ:Ø%0×%:Ñ%:��kÑ"Ø—	‘	×'Ñ'¨Ô.Ø˜Ò'Ø—I‘I×*Ñ*×.Ñ.Ô0Ø7;�EÐ3Ò4ð (r*   c                 ó  — t        | j                  j                  «      dz
  }| j                  j                  d   }|j                  j	                  t
        «      |d   k7  r!| j                  j                  dd|d   i«       	 |j                  j	                  t
        «      |d   k(  rï| j                  j                  | j                  j                  d   k(  rS| j                  j                  j                  «        | j                  j                  j                  | j                  _        | j                  j                  j                  «       |k7  r@| j                  j                  sJ ‚| j                  j                  j                  «       |k7  rŒ@d }	 |S |dz  }| j                  j                  |   }|j                  | j                  j                  k7  r�ŒX| j                  j                  j                  |«      }	 |S )Nr   rˆ   rO   rŠ  rÈ  )r”   rI   r‘   rO   rz   r   rS   r’   ri   rL   rî  rá   r  rx   r•   rš   )rM   r¦   Ú	nodeIndexrÙ   r¨   s        r)   rš   z6getPhases.<locals>.InForeignContentPhase.processEndTagÐ	  s‘  € Ü˜DŸI™I×2Ñ2Ó3°aÑ7ˆIØ—9‘9×)Ñ)¨"Ñ-ˆDØ�y‰y×"Ñ"Ô#3Ó4¸¸f¹ÒEØ—‘×&Ñ&Ð';¸fÀeÈFÁmÐ=TÔUàØ—9‘9×&Ñ&Ô'7Ó8¸EÀ&¹MÒIà—{‘{×(Ñ(¨D¯K©K×,>Ñ,>¸}Ñ,MÒMØŸ™×)Ñ)×9Ñ9Ô;Ø,0¯K©K×,=Ñ,=×,KÑ,K˜Ÿ™Ô)ØŸ)™)×0Ñ0×4Ñ4Ó6¸$Ò>Ø#Ÿy™y×5Ò5Ð5Ð5ð Ÿ)™)×0Ñ0×4Ñ4Ó6¸$Ó>à $�IØð Ðð ˜Q‘�	à—y‘y×-Ñ-¨iÑ8�Ø—>‘> T§Y¡Y×%?Ñ%?Ò?Ùà $§¡× 1Ñ 1× ?Ñ ?ÀÓ F�IØØÐr*   N)r@   rA   rB   r1  r  r–   rì  rã  r—   r™   rš   rå  s   €r)   ÚInForeignContentPhaserŽ  x	  s1   ø„ Ù“Gˆ	á$ò &Gó HÐò'	<ôR	1ò	<ó6	r*   rñ  c                   ó´   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Z ej                  defg«      Ze	e_         ej                  de
fg«      Zee_        y	)
ú!getPhases.<locals>.AfterBodyPhasec                  ó   — y r2   rç   ro   s    r)   rž   z,getPhases.<locals>.AfterBodyPhase.processEOFí	  ó   € àr*   c                 ój   — | j                   j                  || j                   j                  d   «       y )Nr   r  r¸   s     r)   r›   z0getPhases.<locals>.AfterBodyPhase.processCommentñ	  s'   € ð �I‰I×#Ñ# E¨4¯9©9×+AÑ+AÀ!Ñ+DÕEr*   c                 óŒ   — | j                   j                  d«       | j                   j                  d   | j                   _        |S )Nzunexpected-char-after-bodyrÆ   ©rS   r’   rL   ri   r¸   s     r)   r—   z3getPhases.<locals>.AfterBodyPhase.processCharactersö	  s5   € Ø�K‰K×"Ñ"Ð#?Ô@Ø $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÔØˆLr*   c                 óR   — | j                   j                  d   j                  |«      S rM  rN  r¸   s     r)   r  z.getPhases.<locals>.AfterBodyPhase.startTagHtmlû	  rO  r*   c                 ó˜   — | j                   j                  dd|d   i«       | j                   j                  d   | j                   _        |S )Nzunexpected-start-tag-after-bodyrO   rÆ   rø  r¸   s     r)   rT  z/getPhases.<locals>.AfterBodyPhase.startTagOtherþ	  sC   € Ø�K‰K×"Ñ"Ð#DØ$*¨E°&©MÐ#:ô<à $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÔØˆLr*   c                 ó¸   — | j                   j                  r| j                   j                  d«       y | j                   j                  d   | j                   _        y )Nz'unexpected-end-tag-after-body-innerhtmlÚafterAfterBody)rS   r[   r’   rL   ri   )rM   rO   s     r)   r^  z,getPhases.<locals>.AfterBodyPhase.endTagHtml
  s>   € Ø�{‰{×$Ò$Ø—‘×&Ñ&Ð'PÕQà$(§K¡K×$6Ñ$6Ð7GÑ$H�—‘Õ!r*   c                 ó˜   — | j                   j                  dd|d   i«       | j                   j                  d   | j                   _        |S )Nzunexpected-end-tag-after-bodyrO   rÆ   rø  r¸   s     r)   rX  z-getPhases.<locals>.AfterBodyPhase.endTagOther

  sC   € Ø�K‰K×"Ñ"Ð#BØ$*¨E°&©MÐ#:ô<à $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÔØˆLr*   rÖ   N)r@   rA   rB   r1  r  rž   r›   r—   r  rT  r^  rX  r   rY  r  rZ  r  rç   r*   r)   ÚAfterBodyPhaseró  ê	  s|   „ Ù“Gˆ	ò	ò	Fò
	ò
	Gò	ò	Iò	ð 2˜&×1Ñ1Ø�\Ð"ð3
ó ˆð #0ˆÔà/˜×/Ñ/°&¸*Ð1EÐ0FÓGˆØ +ˆÕr*   rþ  c                   óä   •— e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Z ej                  d	W ° j                  fd
efdefde	fg«      Ze
e_         ej                  d
efg«      Zee_        y)ú"getPhases.<locals>.InFramesetPhasec                 ó¸   — | j                   j                  d   j                  dk7  r| j                  j	                  d«       y | j                  j
                  sJ ‚y )Nrˆ   rÖ   zeof-in-framesetrÅ  ro   s    r)   rž   z-getPhases.<locals>.InFramesetPhase.processEOF
  sE   € Ø�y‰y×%Ñ% bÑ)×.Ñ.°&Ò8Ø—‘×&Ñ&Ð'8Õ9à—{‘{×,Ò,Ð,Ñ,r*   c                 ó:   — | j                   j                  d«       y )Nzunexpected-char-in-framesetr  r¸   s     r)   r—   z4getPhases.<locals>.InFramesetPhase.processCharacters"
  s   € Ø�K‰K×"Ñ"Ð#@ÕAr*   c                 ó:   — | j                   j                  |«       y r2   )rI   rà   r¸   s     r)   rº  z3getPhases.<locals>.InFramesetPhase.startTagFrameset%
  s   € Ø�I‰I×#Ñ# EÕ*r*   c                 ó‚   — | j                   j                  |«       | j                   j                  j                  «        y r2   rg  r¸   s     r)   ÚstartTagFramez0getPhases.<locals>.InFramesetPhase.startTagFrame(
  s*   € Ø�I‰I×#Ñ# EÔ*Ø�I‰I×"Ñ"×&Ñ&Õ(r*   c                 óR   — | j                   j                  d   j                  |«      S rM  rN  r¸   s     r)   ÚstartTagNoframesz3getPhases.<locals>.InFramesetPhase.startTagNoframes,
  rO  r*   c                 óF   — | j                   j                  dd|d   i«       y )Nz unexpected-start-tag-in-framesetrO   r  r¸   s     r)   rT  z0getPhases.<locals>.InFramesetPhase.startTagOther/
  r?  r*   c                 óœ  — | j                   j                  d   j                  dk(  r| j                  j	                  d«       n$| j                   j                  j                  «        | j                  j                  sP| j                   j                  d   j                  dk7  r)| j                  j                  d   | j                  _        y y y )Nrˆ   rÖ   z)unexpected-frameset-in-frameset-innerhtmlrÕ   ÚafterFrameset)	rI   r‘   rO   rS   r’   r  r[   rL   ri   r¸   s     r)   ÚendTagFramesetz1getPhases.<locals>.InFramesetPhase.endTagFrameset3
  sš   € Ø�y‰y×%Ñ% bÑ)×.Ñ.°&Ò8à—‘×&Ñ&Ð'RÕSà—	‘	×&Ñ&×*Ñ*Ô,Ø—K‘K×)Ò)Ø—I‘I×*Ñ*¨2Ñ.×3Ñ3°zÒAð %)§K¡K×$6Ñ$6°Ñ$G�—‘Õ!ð Bð *r*   c                 óF   — | j                   j                  dd|d   i«       y )Nzunexpected-end-tag-in-framesetrO   r  r¸   s     r)   rX  z.getPhases.<locals>.InFramesetPhase.endTagOther?
  rw  r*   rÖ   rÕ   r´  rŽ  N)r@   rA   rB   r1  r  rž   r—   rº  r  r  rT  r  rX  r   rY  r  r  rZ  r  rå  s   €r)   ÚInFramesetPhaser   
  s©   ø„ á“Gˆ	ò	-ò	Bò	+ò	)ò	Gò	<ò
	Hò	<ð 2˜&×1Ñ1Ø‘U×'Ñ'Ð(ØÐ)Ð*Ø�mÐ$ØÐ)Ð*ð	3
ó ˆð #0ˆÔà/˜×/Ñ/Ø˜Ð(ð1
ó ˆð !,ˆÕr*   r  c                   óÌ   •— e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
 ej                  dW ° j                  fdefg«      Zee_         ej                  de	fg«      Ze
e_        y	)
ú%getPhases.<locals>.AfterFramesetPhasec                  ó   — y r2   rç   ro   s    r)   rž   z0getPhases.<locals>.AfterFramesetPhase.processEOFT
  rõ  r*   c                 ó:   — | j                   j                  d«       y )Nzunexpected-char-after-framesetr  r¸   s     r)   r—   z7getPhases.<locals>.AfterFramesetPhase.processCharactersX
  s   € Ø�K‰K×"Ñ"Ð#CÕDr*   c                 óR   — | j                   j                  d   j                  |«      S rœ  rN  r¸   s     r)   r  z6getPhases.<locals>.AfterFramesetPhase.startTagNoframes[
  rO  r*   c                 óF   — | j                   j                  dd|d   i«       y )Nz#unexpected-start-tag-after-framesetrO   r  r¸   s     r)   rT  z3getPhases.<locals>.AfterFramesetPhase.startTagOther^
  s#   € Ø�K‰K×"Ñ"Ð#HØ$*¨E°&©MÐ#:õ<r*   c                 óT   — | j                   j                  d   | j                   _        y )NÚafterAfterFrameset)rS   rL   ri   r¸   s     r)   r^  z0getPhases.<locals>.AfterFramesetPhase.endTagHtmlb
  s   € Ø $§¡× 2Ñ 2Ð3GÑ HˆD�K‰KÕr*   c                 óF   — | j                   j                  dd|d   i«       y )Nz!unexpected-end-tag-after-framesetrO   r  r¸   s     r)   rX  z1getPhases.<locals>.AfterFramesetPhase.endTagOthere
  s#   € Ø�K‰K×"Ñ"Ð#FØ$*¨E°&©MÐ#:õ<r*   rÖ   rŽ  N)r@   rA   rB   r1  r  rž   r—   r  rT  r^  rX  r   rY  r  r  rZ  r  rå  s   €r)   ÚAfterFramesetPhaser  P
  sŽ   ø„ á“Gˆ	ò	ò	Eò	Gò	<ò	Iò	<ð 2˜&×1Ñ1Ø‘U×'Ñ'Ð(ØÐ)Ð*ð3
ó ˆð #0ˆÔà/˜×/Ñ/Ø�ZÐ ð1
ó ˆð !,ˆÕr*   r  c                   ó|   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Z ej                  de	fg«      Ze
e_        y	)
ú&getPhases.<locals>.AfterAfterBodyPhasec                  ó   — y r2   rç   ro   s    r)   rž   z1getPhases.<locals>.AfterAfterBodyPhase.processEOFw
  r  r*   c                 ód   — | j                   j                  || j                   j                  «       y r2   r   r¸   s     r)   r›   z5getPhases.<locals>.AfterAfterBodyPhase.processCommentz
  r"  r*   c                 óR   — | j                   j                  d   j                  |«      S rM  rŸ  r¸   s     r)   r˜   z=getPhases.<locals>.AfterAfterBodyPhase.processSpaceCharacters}
  r   r*   c                 óŒ   — | j                   j                  d«       | j                   j                  d   | j                   _        |S )Núexpected-eof-but-got-charrÆ   rø  r¸   s     r)   r—   z8getPhases.<locals>.AfterAfterBodyPhase.processCharacters€
  s5   € Ø�K‰K×"Ñ"Ð#>Ô?Ø $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÔØˆLr*   c                 óR   — | j                   j                  d   j                  |«      S rM  rN  r¸   s     r)   r  z3getPhases.<locals>.AfterAfterBodyPhase.startTagHtml…
  rO  r*   c                 ó˜   — | j                   j                  dd|d   i«       | j                   j                  d   | j                   _        |S )Núexpected-eof-but-got-start-tagrO   rÆ   rø  r¸   s     r)   rT  z4getPhases.<locals>.AfterAfterBodyPhase.startTagOtherˆ
  sC   € Ø�K‰K×"Ñ"Ð#CØ$*¨E°&©MÐ#:ô<à $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÔØˆLr*   c                 ó˜   — | j                   j                  dd|d   i«       | j                   j                  d   | j                   _        |S )Núexpected-eof-but-got-end-tagrO   rÆ   rø  r¸   s     r)   rš   z4getPhases.<locals>.AfterAfterBodyPhase.processEndTagŽ
  sC   € Ø�K‰K×"Ñ"Ð#AØ$*¨E°&©MÐ#:ô<à $§¡× 2Ñ 2°8Ñ <ˆD�K‰KÔØˆLr*   rÖ   N)r@   rA   rB   r1  r  rž   r›   r˜   r—   r  rT  rš   r   rY  r  rZ  rç   r*   r)   ÚAfterAfterBodyPhaser  t
  sY   „ Ù“Gˆ	ò	ò	?ò	Nò	ò
	Gò	ò	ð 2˜&×1Ñ1Ø�\Ð"ð3
ó ˆð #0ˆÕr*   r$  c                   óˆ   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Z ej                  d	e	fd
e
fg«      Zee_        y)ú*getPhases.<locals>.AfterAfterFramesetPhasec                  ó   — y r2   rç   ro   s    r)   rž   z5getPhases.<locals>.AfterAfterFramesetPhase.processEOFœ
  r  r*   c                 ód   — | j                   j                  || j                   j                  «       y r2   r   r¸   s     r)   r›   z9getPhases.<locals>.AfterAfterFramesetPhase.processCommentŸ
  r"  r*   c                 óR   — | j                   j                  d   j                  |«      S rM  rŸ  r¸   s     r)   r˜   zAgetPhases.<locals>.AfterAfterFramesetPhase.processSpaceCharacters¢
  r   r*   c                 ó:   — | j                   j                  d«       y )Nr  r  r¸   s     r)   r—   z<getPhases.<locals>.AfterAfterFramesetPhase.processCharacters¥
  s   € Ø�K‰K×"Ñ"Ð#>Õ?r*   c                 óR   — | j                   j                  d   j                  |«      S rM  rN  r¸   s     r)   r  z7getPhases.<locals>.AfterAfterFramesetPhase.startTagHtml¨
  rO  r*   c                 óR   — | j                   j                  d   j                  |«      S rœ  rN  r¸   s     r)   ÚstartTagNoFramesz;getPhases.<locals>.AfterAfterFramesetPhase.startTagNoFrames«
  rO  r*   c                 óF   — | j                   j                  dd|d   i«       y )Nr!  rO   r  r¸   s     r)   rT  z8getPhases.<locals>.AfterAfterFramesetPhase.startTagOther®
  rw  r*   c                 óF   — | j                   j                  dd|d   i«       y )Nr#  rO   r  r¸   s     r)   rš   z8getPhases.<locals>.AfterAfterFramesetPhase.processEndTag²
  r�  r*   rÖ   rŽ  N)r@   rA   rB   r1  r  rž   r›   r˜   r—   r  r-  rT  rš   r   rY  r  rZ  rç   r*   r)   ÚAfterAfterFramesetPhaser&  ™
  si   „ Ù“Gˆ	ò	ò	?ò	Nò	@ò	Gò	Gò	<ò	<ð 2˜&×1Ñ1Ø�\Ð"ØÐ)Ð*ð3
ó ˆð #0ˆÕr*   r0  r`   r_   rÈ   rQ  r{  r‚  rÆ   rß   rÅ   rÈ  rÃ   rÄ   rÂ   rÁ   rÀ   r¿   rD  )rŽ   r[  rÇ   r
  rü  r  )r   )rN   rb   rö   r2  rB  r[  r—  r±  rÃ  r¿  ræ  r  r%  rC  rX  rh  r‚  rŒ  rñ  rþ  r  r  r$  r0  rÉ  rë  r  s                           @@@r)   rK   rK   Œ  sY  ú€ òò*ôF”™|¨E°3Ó7Ó8ô FôP@�uô @ôD#˜%ô #ôJ+,˜%ô +,ôZd,�eô d,ôL=,˜eô =,ô~@,˜ô @,÷DR,�eô R,ôh,�Eô ,öBO,�uô O,öb-˜5ô -ö^D,˜ô D,öL>,˜Uô >,ö@`,˜5ô `,öDW,�Uô W,örJ,�eô J,öXa,˜ô a,ôF$,˜uô $,öLp ô pôd,,˜ô ,,ö\6,˜%ô 6,öp",˜Uô ",ôH#0˜eô #0ôJ!0 %ô !0ðJØ�<ðà�oðð 	�oðð 	�+ð	ð
 	Ð-ðð 	�^ðð 	�+ðð 	�	ðð 	�<ðð 	Ð'ðð 	�^ðð 	Ð+ðð 	Ð'ðð 	�ðð 	�+ðð  	�Mð!ð" 	Ð/ð#ð$ 2Ø#Ø%Ø+Ø-Ø5ò/ð r*   c                 ó¢   ‡— t        | d   «      t        ‰«      z  }|r2 t        | d   «      ˆfd„| d   j                  «       D «       «      | d<   y y )Nr‰   c              3   óL   •K  — | ]  \  }}‰j                  ||«      |f–— Œ y ­wr2   )r“   )ræ  ÚkÚvrâ  s      €r)   rç  z$adjust_attributes.<locals>.<genexpr>Ý
  s1   øè ø€ ò ,OÙ04°°1ð .:×-=Ñ-=¸aÀÓ-CÀQÔ,Gñ ,Oùs   ƒ!$)r   r7   r3   )r¦   râ  Úneeds_adjustments    ` r)   r·   r·   Ú
  sZ   ø€ Ü  f¡Ó.´¸,Ó1GÑGÐÙØ+œ˜U 6™]Ó+ó ,OØ8=¸f¹×8KÑ8KÓ8Mô,Oó OˆˆfŠð r*   c                 ó&   — |€i }t         |   | ||dœS )N)r7   rO   r‰   r�   )r   )rO   r7   ry   r�   s       r)   r7  r7  á
  s&   € àÐØˆ
Ü˜tÑ$¨d¸JØ&ñ(ð (r*   c                   ó   — e Zd ZdZy)r‡   zError in parsed documentN)r@   rA   rB   rå   rç   r*   r)   r‡   r‡   é
  s   „ Ù"Ør*   r‡   )rG   T)rä   rG   T)r„   NF),Ú
__future__r   r   r   Úsixr   r   r5   r'  r	   r
   r   Útreebuilders.baser   r   Ú	constantsr   r   r   r   r   r   r   r   r   r   r   r   r»   r   r   r   r   r#   r-   rD   r§  r"   ÚmemoizerK   r·   r7  Ú	Exceptionr‡   rç   r*   r)   ú<module>r>     s’   ðß BÑ Bß (ã å Ý å Ý %å ÷
÷ 
÷ 
÷ 
ó 
ó"ó.?ò2	ôs)�ô s)ðl	 ‡�ñJ%ó ðJ%òZJOð 59Ø %ó(ô	�õ 	r*   