403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.55
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/html5lib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/html5lib/__pycache__/html5parser.cpython-311.pyc
�

V=�^����6�ddlmZmZmZddlmZmZddlZddlm	Z	ddlm
Z
ddlmZddlm
Z
dd	lmZdd
lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z dd
�Z!dd�Z"d�Z#Gd�de$��Z%ej&d���Z'd�Z(		dd�Z)Gd�de*��Z+dS)�)�absolute_import�division�unicode_literals)�with_metaclass�viewkeysN�)�_inputstream)�
_tokenizer)�treebuilders)�Marker)�_utils)�spaceCharacters�asciiUpper2Lower�specialElements�headingElements�
cdataElements�rcdataElements�
tokenTypes�
tagTokenTypes�
namespaces�htmlIntegrationPointElements�"mathmlTextIntegrationPointElements�adjustForeignAttributes�adjustMathMLAttributes�adjustSVGAttributes�E�_ReparseException�etreeTc�h�tj|��}t||���}|j|fi|��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      �6/usr/lib/python3/dist-packages/html5lib/html5parser.pyr$r$sA��$
�	$�[�	1�	1�B��2�-B�C�C�C�A��1�7�3�!�!�&�!�!�!��divc�l�tj|��}t||���}|j|fd|i|��S)a#Parse an HTML fragment as a string or file-like object into a tree

    :arg doc: the fragment to parse as a string or file-like object

    :arg container: the container context to parse the fragment in

    :arg treebuilder: the treebuilder to use when parsing

    :arg namespaceHTMLElements: whether or not to namespace HTML elements

    :returns: parsed tree

    Example:

    >>> from html5lib.html5libparser import parseFragment
    >>> parseFragment('<b>this is a fragment</b>')
    <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

    r �	container)rr"r#�
parseFragment)r%r.r&r!r'r(r)s       r*r/r/1sF��(
�	$�[�	1�	1�B��2�-B�C�C�C�A��1�?�3�>�>�)�>�v�>�>�>r+c�2��G�fd�dt��}|S)Nc���eZdZ�fd�ZdS)�-method_decorator_metaclass.<locals>.Decoratedc����|���D]/\}}t|tj��r�|��}|||<�0t�||||��S�N)�items�
isinstance�types�FunctionType�type�__new__)�meta�	classname�bases�	classDict�
attributeName�	attribute�functions      �r*r:z5method_decorator_metaclass.<locals>.Decorated.__new__Lsj���,5�O�O�,=�,=�
5�
5�(�
�y��i��);�<�<�4� (��� 3� 3�I�+4�	�-�(�(��<�<��i��	�B�B�Br+N)�__name__�
__module__�__qualname__r:)rAs�r*�	Decoratedr2Ks5�������	C�	C�	C�	C�	C�	C�	Cr+rE)r9)rArEs` r*�method_decorator_metaclassrFJsI���C�C�C�C�C�C�C�D�C�C�C��r+c��eZdZdZdd�Zdd�Zd�Zed	���Zd
�Z	d�Z
d�Zd
�Zd�Z
dd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)r#z]HTML parser

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

    NFTc����|�_|�tjd��}||���_g�_�fd�t|�����D���_dS)a�
        :arg tree: a treebuilder class controlling the type of tree that will be
            returned. Built in treebuilders can be accessed through
            html5lib.treebuilders.getTreeBuilder(treeType)

        :arg strict: raise an exception when a parse error is encountered

        :arg namespaceHTMLElements: whether or not to namespace HTML elements

        :arg debug: whether or not to enable debug mode which logs things

        Example:

        >>> from html5lib.html5parser import HTMLParser
        >>> parser = HTMLParser()                     # generates parser with etree builder
        >>> parser = HTMLParser('lxml', strict=True)  # generates parser with lxml builder which is strict

        Nrc�:��i|]\}}||��j����S�)�tree)�.0�name�cls�selfs   �r*�
<dictcomp>z'HTMLParser.__init__.<locals>.<dictcomp>ys9���1�1�1�i�d�C�t�S�S��t�y�1�1�1�1�1r+)�strictrr"rK�errors�	getPhasesr5�phases)rOrKrQr!�debugs`    r*�__init__zHTMLParser.__init__]s|���*����<��.�w�7�7�D��D�.�/�/��	����1�1�1�1� ��'�'�-�-�/�/�1�1�1����r+r,c�&�||_||_||_tj|fd|i|��|_|���	|���dS#t$r,|���|���YdSwxYw)N�parser)	�
innerHTMLModer.�	scriptingr
�
HTMLTokenizer�	tokenizer�reset�mainLoopr)rO�stream�	innerHTMLr.rZr's      r*�_parsezHTMLParser._parse|s���&���"���"���#�1�&�P�P��P��P�P����
�
����	��M�M�O�O�O�O�O�� �	�	�	��J�J�L�L�L��M�M�O�O�O�O�O�O�	���s�A�2B�Bc�p�|j���d|_g|_g|_d|_|jr�|j���|_	|j	tvr|jj|j_
nH|j	tvr|jj|j_
n#|j	dkr|jj|j_
n	|jd|_|j���|���nd|_	|jd|_d|_d|_d|_dS)NFz	no quirks�	plaintext�
beforeHtml�initialT)rKr]�
firstStartTagrR�log�
compatModerYr.�lowerr`rr\�rcdataState�stater�rawtextState�plaintextStaterT�phase�insertHtmlElement�resetInsertionMode�	lastPhase�beforeRCDataPhase�
framesetOK�rOs r*r]zHTMLParser.reset�s���	������"���������%�����	0�!�^�1�1�3�3�D�N��~��.�.�'+�~�'A���$�$���>�1�1�'+�~�'B���$�$���;�.�.�'+�~�'D���$�$����\�2�D�J��J�(�(�*�*�*��#�#�%�%�%�%�"�D�N���Y�/�D�J����!%�������r+c�^�t|d��sdS|jjjdjS)z�Name of the character encoding that was used to decode the input stream, or
        :obj:`None` if that is not determined yet

        r\Nr)�hasattrr\r_�charEncodingrMrts r*�documentEncodingzHTMLParser.documentEncoding�s1���t�[�)�)�	��4��~�$�1�!�4�9�9r+c���|jdkrF|jtdkr0d|jvo&|jd�t
��dvS|j|jftvS)N�annotation-xml�mathml�encoding)z	text/htmlzapplication/xhtml+xml)rM�	namespacer�
attributes�	translaterr�rO�elements  r*�isHTMLIntegrationPointz!HTMLParser.isHTMLIntegrationPoint�sv���L�,�,�,��!�Z��%9�9�9��'�"4�4�;��&�z�2�<�<�(�*�*�:�;�
<�
�%�w�|�4�8T�T�Tr+c�,�|j|jftvSr4)r}rMrr�s  r*�isMathMLTextIntegrationPointz'HTMLParser.isMathMLTextIntegrationPoint�s���!�7�<�0�4V�V�Vr+c��td}td}td}td}td}td}td}|jD�]#}d}	|}
|
���|
}	|jjr|jjdnd}|r|jnd}|r|jnd}
|
d	}||kr4|�|
d
|
�di����d}
�nht|jj��dks�||jj	ks|�
|��r%||kr|d
tddg��vsK|||fvsE|tdkr|
dkr||kr|d
dks|�
|��r||||fvr|j}n
|jd}||kr|�|
��}
n�||kr|�|
��}
no||kr|�|
��}
nS||kr|�|
��}
n7||kr|�|
��}
n||kr|�|
��}
|
���||kr.|	dr&|	ds|�dd
|	d
i����%d}g}|rD|�|j��|j���}|r|j|vsJ�|�BdSdS)N�
Characters�SpaceCharacters�StartTag�EndTag�Comment�Doctype�
ParseError���r9�data�datavarsrrM�mglyph�
malignmarkr{rz�svg�inForeignContent�selfClosing�selfClosingAcknowledgedz&non-void-element-with-trailing-solidusT)rr\rK�openElementsr}rM�
parseError�get�len�defaultNamespacer��	frozensetrr�rnrT�processCharacters�processSpaceCharacters�processStartTag�
processEndTag�processComment�processDoctype�append�
processEOF)rO�CharactersToken�SpaceCharactersToken�
StartTagToken�EndTagToken�CommentToken�DoctypeToken�ParseErrorToken�token�
prev_token�	new_token�currentNode�currentNodeNamespace�currentNodeNamer9rn�	reprocessrTs                  r*r^zHTMLParser.mainLoop�sn��$�\�2��)�*;�<��"�:�.�
� ��*��!�)�,��!�)�,��$�\�2���^�/	>�/	>�E��J��I��'�&�
�<@�I�<R�\�d�i�4�R�8�8�X\��@K�'U�{�'<�'<�QU�$�6A�"K�+�"2�"2�t�� ��(���?�*�*��O�O�I�f�$5�y�}�}�Z�QS�7T�7T�U�U�U� $�I�I��D�I�2�3�3�q�8�8�,��	�0J�J�J��:�:�;�G�G�K��=�0�0� ��=�	�8�\�:R�0S�0S�S�S��?�4H�"I�I�I�-��H�1E�E�E�(�,<�<�<���.�.��v��%�/�/��4�4�[�A�A�0��-��BV�!W�W�W� $�
��� $��,>� ?����.�.�$)�$;�$;�I�$F�$F�	�	��!5�5�5�$)�$@�$@��$K�$K�	�	���.�.�$)�$9�$9�)�$D�$D�	�	���,�,�$)�$7�$7�	�$B�$B�	�	���-�-�$)�$8�$8��$C�$C�	�	���-�-�$)�$8�$8��$C�$C�	�O�'�R�
�%�%�*�]�*C�%�"�#<�=�&���� H�!'��F�);� <�>�>�>���	����	0��M�M�$�*�%�%�%��
�-�-�/�/�I��
0��z��/�/�/�/�	�	0�	0�	0�	0�	0r+c�Z�|j|ddg|�Ri|��|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)rarK�getDocument�rOr_�argsr's    r*r$zHTMLParser.parses>��,	���F�E�4�9�$�9�9�9�&�9�9�9��y�$�$�&�&�&r+c�X�|j|dg|�Ri|��|j���S)aZParse a HTML fragment into a well-formed tree fragment

        :arg container: name of the element we're setting the innerHTML
            property if set to None, default to 'div'

        :arg stream: a file-like object or string containing the HTML to be parsed

            The optional encoding parameter must be a string that indicates
            the encoding.  If specified, that encoding will be used,
            regardless of any BOM or later declaration (such as in a meta
            element)

        :arg scripting: treat noscript elements as if JavaScript was turned on

        :returns: parsed tree

        Example:

        >>> from html5lib.html5libparser import HTMLParser
        >>> parser = HTMLParser()
        >>> parser.parseFragment('<b>this is a fragment</b>')
        <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

        T)rarK�getFragmentr�s    r*r/zHTMLParser.parseFragments<��2	���F�D�2�4�2�2�2�6�2�2�2��y�$�$�&�&�&r+�XXX-undefined-errorc���|�i}|j�|jj���||f��|jrt
t||z���dSr4)rRr�r\r_�positionrQr�r)rO�	errorcoder�s   r*r�zHTMLParser.parseError;sf�����H�����D�N�1�:�:�<�<�i��R�S�S�S��;�	6��Q�y�\�H�4�5�5�5�	6�	6r+c�0�t|t��dSr4)�adjust_attributesr�rOr�s  r*rz!HTMLParser.adjustMathMLAttributesCs���%�!7�8�8�8�8�8r+c�0�t|t��dSr4)r�rr�s  r*rzHTMLParser.adjustSVGAttributesFs���%�!4�5�5�5�5�5r+c�0�t|t��dSr4)r��adjustForeignAttributesMapr�s  r*rz"HTMLParser.adjustForeignAttributesIs���%�!;�<�<�<�<�<r+c�8�|j���dSr4)rXrnr�s  r*�reparseTokenNormalzHTMLParser.reparseTokenNormalLs����������r+c�j�d}ddddddddddd	d	d
dd�}|jjddd
�D]�}|j}d}||jjdkr|jsJ�d}|j}|dvr	|jsJ�|s|j|jjkr�X||vr|j||}n|r|jd	}n��||_dS)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�rT)r�r�r�r�)rKr�rMr`r}r�rTrn)rO�last�newModes�node�nodeName�	new_phases      r*rpzHTMLParser.resetInsertionModePs���� ����"�"�"�"�'����$� �
�
�� �I�*�4�4�R�4�0�	�	�D��y�H��I��t�y�-�a�0�0�0��~�%�%�%����>���A�A�A��~�%�%�%��
�D�N�d�i�.H�H�H���8�#�#� �K���(:�;�	����
� �K��1�	���
���
�
�
r+c���|dvsJ�|j�|��|dkr|jj|j_n|jj|j_|j|_|jd|_dS)N)�RAWTEXT�RCDATAr��text)	rK�
insertElementr\rlrkrjrn�
originalPhaserT)rOr��contentTypes   r*�parseRCDataRawtextzHTMLParser.parseRCDataRawtext|sr���3�3�3�3�3��	����&�&�&��)�#�#�#'�>�#>�D�N� � �#'�>�#=�D�N� �!�Z����[��(��
�
�
r+)NFTF)Fr,F)r�N)rBrCrD�__doc__rVrar]�propertyrxr�r�r^r$r/r�rrrr�rpr�rJr+r*r#r#Vs5��������1�1�1�1�>���� � � �D�:�:��X�:�U�U�U�W�W�W�A0�A0�A0�F'�'�'�2'�'�'�86�6�6�6�9�9�9�6�6�6�=�=�=����*�*�*�X
)�
)�
)�
)�
)r+r#c
�����d�}d�}Gd�dt|||�������Gd�d���}Gd�d���}Gd	�d
���}Gd�d���}Gd
�d���}Gd�d���}G��fd�d����Gd�d���}	G�fd�d���}
G�fd�d����G�fd�d���}G�fd�d���}G�fd�d���}
G�fd�d ���}G�fd!�d"���}G�fd#�d$���}Gd%�d&���}G�fd'�d(���}Gd)�d*���}G�fd+�d,���}G�fd-�d.���}Gd/�d0���}Gd1�d2���}id3|�d4|�d5|�d6|�d7|�d8|�d9��d:|	�d;|
�d<��d=|�d>|�d?|
�d@|�dA|�dB|�dC|�||||||dD��S)ENc�P���d�tj��D�����fd�}|S)z4Logger that records which phase processes each tokenc��i|]\}}||��	SrJrJ)rL�key�values   r*rPz*getPhases.<locals>.log.<locals>.<dictcomp>�s��F�F�F�Z�S�%�e�S�F�F�Fr+c����j�d��r�t|��dkr�|d}d�|di}|dtvr|d|d<|jj�|jjjj|jj	j
j|j
j�j|f���|g|�Ri|��S�|g|�Ri|��S)N�processrr9rM)rB�
startswithr�rrXrgr�r\rkrn�	__class__)rOr�r'r��inforA�
type_namess     ��r*�wrappedz'getPhases.<locals>.log.<locals>.wrapped�s����� �+�+�I�6�6�

7�3�t�9�9�q�=�=��Q����
�5��=� 9�:����=�M�1�1�#(��=�D��L����&�&���(=�(C�(L�(,��(9�(C�(L�(,��(?�(0�(9�(,�	(.�/�/�/�
 �x��6�t�6�6�6�v�6�6�6��x��6�t�6�6�6�v�6�6�6r+)rr5)rAr�r�s` @r*rgzgetPhases.<locals>.log�sE����F�F�:�3C�3E�3E�F�F�F�
�	7�	7�	7�	7�	7�	7��r+c�2�|rt|��StSr4)rFr9)�
use_metaclass�metaclass_funcs  r*�getMetaclasszgetPhases.<locals>.getMetaclass�s���	�-�n�=�=�=��Kr+c�L�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�getPhases.<locals>.PhasezNBase class for helper object that implements each phase of processing
        )rXrK�__startTagCache�
__endTagCachec�>�||_||_i|_i|_dSr4)rXrK�_Phase__startTagCache�_Phase__endTagCache)rOrXrKs   r*rVz!getPhases.<locals>.Phase.__init__�s&�� �D�K��D�I�#%�D� �!#�D���r+c��t�r4)�NotImplementedErrorrts r*r�z#getPhases.<locals>.Phase.processEOF�s��%�%r+c�\�|j�||jjd��dS)Nr��rK�
insertCommentr�r�s  r*r�z'getPhases.<locals>.Phase.processComment�s,��
�I�#�#�E�4�9�+A�"�+E�F�F�F�F�Fr+c�:�|j�d��dS)Nzunexpected-doctype�rXr�r�s  r*r�z'getPhases.<locals>.Phase.processDoctype�s���K�"�"�#7�8�8�8�8�8r+c�F�|j�|d��dS�Nr��rK�
insertTextr�s  r*r�z*getPhases.<locals>.Phase.processCharacters��"���I� � ��v��/�/�/�/�/r+c�F�|j�|d��dSrrr�s  r*r�z/getPhases.<locals>.Phase.processSpaceCharacters�rr+c��|d}||jvr|j|}n�|j|x}|j|<t|j��t|j��dzkrf|j�t	t|j������t|j��t|j��dzk�f||��S�NrMg�������?)r�startTagHandlerr��pop�next�iter�rOr�rM�funcs    r*r�z(getPhases.<locals>.Phase.processStartTag�s�����=�D��t�+�+�+��+�D�1���48�4H��4N�N��t�+�D�1��$�.�/�/�#�d�6J�2K�2K�c�2Q�Q�Q��(�,�,�T�$�t�7K�2L�2L�-M�-M�N�N�N��$�.�/�/�#�d�6J�2K�2K�c�2Q�Q�Q��4��;�;�r+c�(�|jjs&|ddkr|j�d��|d���D]8\}}||jjdjvr||jjdj|<�9d|j_dS)NrMr�z
non-html-rootr�rF)rXrfr�r5rKr�r~�rOr��attrr�s    r*�startTagHtmlz%getPhases.<locals>.Phase.startTagHtml�s����;�,�
8��v��&�1H�1H���&�&��7�7�7� %�V�}�2�2�4�4�
G�
G���e��t�y�5�a�8�C�C�C�AF�D�I�*�1�-�8��>��(-�D�K�%�%�%r+c��|d}||jvr|j|}n�|j|x}|j|<t|j��t|j��dzkrf|j�t	t|j������t|j��t|j��dzk�f||��Sr)r�
endTagHandlerr�rrrrs    r*r�z&getPhases.<locals>.Phase.processEndTag�s�����=�D��t�)�)�)��)�$�/���26�2D�T�2J�J��t�)�$�/��$�,�-�-��D�4F�0G�0G�#�0M�M�M��&�*�*�4��T�5G�0H�0H�+I�+I�J�J�J��$�,�-�-��D�4F�0G�0G�#�0M�M�M��4��;�;�r+N)rBrCrDr��	__slots__rVr�r�r�r�r�r�rr�rJr+r*�Phaser��s�������	�	�J�	�	$�	$�	$�	&�	&�	&�	G�	G�	G�
	9�	9�	9�	0�	0�	0�	0�	0�	0�	�	�	�"	.�	.�	.�	�	�	�	�	r+rc�R�eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	S)
�getPhases.<locals>.InitialPhasec��dSr4rJr�s  r*r�z6getPhases.<locals>.InitialPhase.processSpaceCharacters�����Dr+c�P�|j�||jj��dSr4�rKr�documentr�s  r*r�z.getPhases.<locals>.InitialPhase.processComment��%���I�#�#�E�4�9�+=�>�>�>�>�>r+c��|d}|d}|d}|d}|dks
|�|� |dkr|j�d��|�d}|j�|��|dkr|�t
��}|rV|ddksJ|�d	��s5|d
vs1|�d��r|�|r%|���dkr
d
|j_n8|�d��s|�d��r|�d|j_|jj	d|j_
dS)NrM�publicId�systemId�correctr�zabout:legacy-compatzunknown-doctype�)7z*+//silmaril//dtd html pro v0r11 19970101//z4-//advasoft ltd//dtd html 3.0 aswedit + extensions//z*-//as//dtd html 3.0 aswedit + extensions//z-//ietf//dtd html 2.0 level 1//z-//ietf//dtd html 2.0 level 2//z&-//ietf//dtd html 2.0 strict level 1//z&-//ietf//dtd html 2.0 strict level 2//z-//ietf//dtd html 2.0 strict//z-//ietf//dtd html 2.0//z-//ietf//dtd html 2.1e//z-//ietf//dtd html 3.0//z-//ietf//dtd html 3.2 final//z-//ietf//dtd html 3.2//z-//ietf//dtd html 3//z-//ietf//dtd html level 0//z-//ietf//dtd html level 1//z-//ietf//dtd html level 2//z-//ietf//dtd html level 3//z"-//ietf//dtd html strict level 0//z"-//ietf//dtd html strict level 1//z"-//ietf//dtd html strict level 2//z"-//ietf//dtd html strict level 3//z-//ietf//dtd html strict//z-//ietf//dtd html//z(-//metrius//dtd metrius presentational//z5-//microsoft//dtd internet explorer 2.0 html strict//z.-//microsoft//dtd internet explorer 2.0 html//z0-//microsoft//dtd internet explorer 2.0 tables//z5-//microsoft//dtd internet explorer 3.0 html strict//z.-//microsoft//dtd internet explorer 3.0 html//z0-//microsoft//dtd internet explorer 3.0 tables//z#-//netscape comm. corp.//dtd html//z*-//netscape comm. corp.//dtd strict html//z*-//o'reilly and associates//dtd html 2.0//z3-//o'reilly and associates//dtd html extended 1.0//z;-//o'reilly and associates//dtd html extended relaxed 1.0//zN-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//zE-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//z$-//spyglass//dtd html 2.0 extended//z+-//sq//dtd html 2.0 hotmetal + extensions//z--//sun microsystems corp.//dtd hotjava html//z4-//sun microsystems corp.//dtd hotjava strict html//z-//w3c//dtd html 3 1995-03-24//z-//w3c//dtd html 3.2 draft//z-//w3c//dtd html 3.2 final//z-//w3c//dtd html 3.2//z-//w3c//dtd html 3.2s draft//z-//w3c//dtd html 4.0 frameset//z#-//w3c//dtd html 4.0 transitional//z(-//w3c//dtd html experimental 19960712//z&-//w3c//dtd html experimental 970421//z-//w3c//dtd w3 html//z-//w3o//dtd w3 html 3.0//z#-//webtechs//dtd mozilla html 2.0//z-//webtechs//dtd mozilla html//)z$-//w3o//dtd w3 html strict 3.0//en//z"-/w3c/dtd html 4.0 transitional/enr�)z -//w3c//dtd html 4.01 frameset//z$-//w3c//dtd html 4.01 transitional//z:http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd�quirks)z -//w3c//dtd xhtml 1.0 frameset//z$-//w3c//dtd xhtml 1.0 transitional//zlimited quirksrd)rXr�rK�
insertDoctyperrr�rirhrTrn)rOr�rMr)r*r+s      r*r�z.getPhases.<locals>.InitialPhase.processDoctype�s�����=�D��Z�(�H��Z�(�H��I�&�G�����(�"6��(�X�9N�-N�-N���&�&�'8�9�9�9������I�#�#�E�*�*�*��2�~�~�#�-�-�.>�?�?���I
:�u�V�}��6�6��'�'�6<�7=�7=� 7�r�!)�)�)��'�'�A�B�B�)��$��%�!)���!1�!1�5q�!q�!q�)1���&�&��%�%�=�>�>�
:��%�%�?�@�@�
:��&�)9���&� $�� 2�<� @�D�K���r+c�V�d|j_|jjd|j_dS)Nr-rd)rXrhrTrnrts r*�anythingElsez,getPhases.<locals>.InitialPhase.anythingElseZs&��%-�D�K�"� $�� 2�<� @�D�K���r+c�b�|j�d��|���|S)Nzexpected-doctype-but-got-chars�rXr�r0r�s  r*r�z1getPhases.<locals>.InitialPhase.processCharacters^s0���K�"�"�#C�D�D�D��������Lr+c�t�|j�dd|di��|���|S)Nz"expected-doctype-but-got-start-tagrMr2r�s  r*r�z/getPhases.<locals>.InitialPhase.processStartTagcsB���K�"�"�#G�$*�E�&�M�#:�
<�
<�
<��������Lr+c�t�|j�dd|di��|���|S)Nz expected-doctype-but-got-end-tagrMr2r�s  r*r�z-getPhases.<locals>.InitialPhase.processEndTagisB���K�"�"�#E�$*�E�&�M�#:�
<�
<�
<��������Lr+c�b�|j�d��|���dS)Nzexpected-doctype-but-got-eofTr2rts r*r�z*getPhases.<locals>.InitialPhase.processEOFos0���K�"�"�#A�B�B�B��������4r+N)
rBrCrD�tuplerr�r�r�r0r�r�r�r�rJr+r*�InitialPhaser!�s��������E�G�G�	�	�	�	�	?�	?�	?�]	A�]	A�]	A�~	A�	A�	A�	�	�	�
	�	�	�	�	�	�	�	�	�	�	r+r7c�L�eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�ZdS)	�"getPhases.<locals>.BeforeHtmlPhasec��|j�tdd����|jjd|j_dS)Nr�r�r�)rK�
insertRoot�impliedTagTokenrXrTrnrts r*roz4getPhases.<locals>.BeforeHtmlPhase.insertHtmlElementxs<���I� � ����!D�!D�E�E�E� $�� 2�<� @�D�K���r+c�.�|���dS�NT�rorts r*r�z-getPhases.<locals>.BeforeHtmlPhase.processEOF}s���"�"�$�$�$��4r+c�P�|j�||jj��dSr4r%r�s  r*r�z1getPhases.<locals>.BeforeHtmlPhase.processComment�r'r+c��dSr4rJr�s  r*r�z9getPhases.<locals>.BeforeHtmlPhase.processSpaceCharacters�r#r+c�.�|���|Sr4r?r�s  r*r�z4getPhases.<locals>.BeforeHtmlPhase.processCharacters�s���"�"�$�$�$��Lr+c�^�|ddkrd|j_|���|S)NrMr�T)rXrfror�s  r*r�z2getPhases.<locals>.BeforeHtmlPhase.processStartTag�s2���V�}��&�&�,0���)��"�"�$�$�$��Lr+c��|ddvr%|j�dd|di��dS|���|S)NrM�r�r�r��brzunexpected-end-tag-before-html)rXr�ror�s  r*r�z0getPhases.<locals>.BeforeHtmlPhase.processEndTag�sc���V�}�$B�B�B���&�&�'G�(.��f�
�'>�@�@�@�@�@��&�&�(�(�(��r+N)rBrCrDr6rror�r�r�r�r�r�rJr+r*�BeforeHtmlPhaser9ts��������E�G�G�	�	A�	A�	A�
	�	�	�	?�	?�	?�	�	�	�	�	�	�	�	�	�	�	�	�	�	r+rGc��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
jd	efd
e	fg��Ze
e_e
jdefg��Zee_dS)
�"getPhases.<locals>.BeforeHeadPhasec�L�|�tdd����dS)Nr�r�T��startTagHeadr<rts r*r�z-getPhases.<locals>.BeforeHeadPhase.processEOF�s%�����o�f�j�A�A�B�B�B��4r+c��dSr4rJr�s  r*r�z9getPhases.<locals>.BeforeHeadPhase.processSpaceCharacters�r#r+c�L�|�tdd����|S�Nr�r�rKr�s  r*r�z4getPhases.<locals>.BeforeHeadPhase.processCharacters��%�����o�f�j�A�A�B�B�B��Lr+c�L�|jjd�|��S�Nr��rXrTr�r�s  r*rz/getPhases.<locals>.BeforeHeadPhase.startTagHtml�� ���;�%�h�/�?�?��F�F�Fr+c��|j�|��|jjd|j_|jjd|j_dS)Nr��inHead)rKr�r��headPointerrXrTrnr�s  r*rLz/getPhases.<locals>.BeforeHeadPhase.startTagHead�sF���I�#�#�E�*�*�*�$(�I�$:�2�$>�D�I�!� $�� 2�8� <�D�K���r+c�L�|�tdd����|SrOrKr�s  r*�
startTagOtherz0getPhases.<locals>.BeforeHeadPhase.startTagOther�rPr+c�L�|�tdd����|SrOrKr�s  r*�endTagImplyHeadz2getPhases.<locals>.BeforeHeadPhase.endTagImplyHead�rPr+c�L�|j�dd|di��dS)Nzend-tag-after-implied-rootrMr	r�s  r*�endTagOtherz.getPhases.<locals>.BeforeHeadPhase.endTagOther�s5���K�"�"�#?�$*�E�&�M�#:�
<�
<�
<�
<�
<r+r�r�rEN)rBrCrDr6rr�r�r�rrLrYr[r]r
�MethodDispatcherr�defaultrrJr+r*�BeforeHeadPhaserI�s��������E�G�G�	�	�	�	�	�	�	�	�	�	�	G�	G�	G�	=�	=�	=�
	�	�	�	�	�	�	<�	<�	<�2�&�1�
�\�"�
�\�"�3
����#0���/��/�
+�_�=�1
���
�!,�
���r+r`c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zejdefdefdefde
fdefde	fde
fdefg��Zee_ejdefdefg��Zee_dS)�getPhases.<locals>.InHeadPhasec�.�|���dSr>�r0rts r*r�z)getPhases.<locals>.InHeadPhase.processEOF�����������4r+c�.�|���|Sr4rdr�s  r*r�z0getPhases.<locals>.InHeadPhase.processCharacters�����������Lr+c�L�|jjd�|��SrRrSr�s  r*rz+getPhases.<locals>.InHeadPhase.startTagHtml�rTr+c�:�|j�d��dS)Nz!two-heads-are-not-better-than-oner	r�s  r*rLz+getPhases.<locals>.InHeadPhase.startTagHead�s���K�"�"�#F�G�G�G�G�Gr+c��|j�|��|jj���d|d<dS�NTr��rKr�r�rr�s  r*�startTagBaseLinkCommandz6getPhases.<locals>.InHeadPhase.startTagBaseLinkCommand��@���I�#�#�E�*�*�*��I�"�&�&�(�(�(�/3�E�+�,�,�,r+c�~�|j�|��|jj���d|d<|d}|jjjjddkr�d|vr,|jjj�|d��dSd|vr�d|vr�|d�	��d	kr�tj|d�d
����}tj
|��}|���}|jjj�|��dSdSdSdSdS)NTr�r�r�	tentative�charset�contentz
http-equivzcontent-typezutf-8)rKr�r�rrXr\r_rw�changeEncodingrir	�
EncodingBytes�encode�ContentAttrParserr$)rOr�r~r�rX�codecs      r*�startTagMetaz+getPhases.<locals>.InHeadPhase.startTagMeta�sD���I�#�#�E�*�*�*��I�"�&�&�(�(�(�/3�E�+�,��v��J��{�$�+�8��;�{�J�J��
�*�*��K�)�0�?�?�
�9�@U�V�V�V�V�V��:�-�-�"�j�0�0� ��.�4�4�6�6�.�H�H�
(�5�j��6K�6R�6R�SZ�6[�6[�\�\�D�)�;�D�A�A�F�"�L�L�N�N�E��K�)�0�?�?��F�F�F�F�F�K�J�.�-�0�0�H�Hr+c�<�|j�|d��dS)Nr��rXr�r�s  r*�
startTagTitlez,getPhases.<locals>.InHeadPhase.startTagTitle�s ���K�*�*�5�(�;�;�;�;�;r+c�<�|j�|d��dS)Nr�rzr�s  r*�startTagNoFramesStylez4getPhases.<locals>.InHeadPhase.startTagNoFramesStyle�� ���K�*�*�5�)�<�<�<�<�<r+c���|jjr|j�|d��dS|j�|��|jjd|j_dS)Nr��inHeadNoscript)rXrZr�rKr�rTrnr�s  r*�startTagNoscriptz/getPhases.<locals>.InHeadPhase.startTagNoscript�s_���{�$�
I���.�.�u�i�@�@�@�@�@��	�'�'��.�.�.�$(�K�$6�7G�$H���!�!�!r+c���|j�|��|jjj|jj_|jj|j_|jjd|j_dS)Nr�)	rKr�rXr\�scriptDataStaterkrnr�rTr�s  r*�startTagScriptz-getPhases.<locals>.InHeadPhase.startTagScriptsV���I�#�#�E�*�*�*�*.�+�*?�*O�D�K�!�'�(,��(9�D�K�%� $�� 2�6� :�D�K���r+c�.�|���|Sr4rdr�s  r*rYz,getPhases.<locals>.InHeadPhase.startTagOtherrgr+c��|jjj���}|jdksJd|jz���|jjd|j_dS)Nr�zExpected head got %s�	afterHead�rXrKr�rrMrTrn�rOr�r�s   r*�
endTagHeadz)getPhases.<locals>.InHeadPhase.endTagHead
sX���;�#�0�4�4�6�6�D��9��&�&�&�(>���(J�&�&�&� $�� 2�;� ?�D�K���r+c�.�|���|Sr4rdr�s  r*�endTagHtmlBodyBrz/getPhases.<locals>.InHeadPhase.endTagHtmlBodyBrrgr+c�L�|j�dd|di��dS�N�unexpected-end-tagrMr	r�s  r*r]z*getPhases.<locals>.InHeadPhase.endTagOther�*���K�"�"�#7�&�%��-�9P�Q�Q�Q�Q�Qr+c�J�|�td����dS)Nr�)r�r<rts r*r0z+getPhases.<locals>.InHeadPhase.anythingElses"���O�O�O�F�3�3�4�4�4�4�4r+r��title)�noframes�style�noscript�script)�base�basefont�bgsound�command�linkr;r�)rFr�r�N)rBrCrDr6rr�r�rrLrmrxr{r}r�r�rYr�r�r]r0r
r^rr_rrJr+r*�InHeadPhaserb�s��������E�G�G�	�	�	�	�	�	�	�	G�	G�	G�	H�	H�	H�	4�	4�	4�
	G�	G�	G�*	<�	<�	<�	=�	=�	=�	I�	I�	I�	;�	;�	;�	�	�	�	@�	@�	@�
	�	�	�	R�	R�	R�	5�	5�	5�2�&�1�
�\�"�
�m�$�
"�$9�:�
�)�*�
�~�&�
?�
$�
&�
�\�"�
�\�"�
3
�
�
��#0���/��/�
�Z� �
#�%5�6�1
���
�!,�
���r+r�c���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zejd
e	fde
fdefg��Zee_ejde
fdefg��Zee_dS)�&getPhases.<locals>.InHeadNoscriptPhasec�b�|j�d��|���dS)Nzeof-in-head-noscriptTr2rts r*r�z1getPhases.<locals>.InHeadNoscriptPhase.processEOF/s0���K�"�"�#9�:�:�:��������4r+c�L�|jjd�|��S�NrV)rXrTr�r�s  r*r�z5getPhases.<locals>.InHeadNoscriptPhase.processComment4s ���;�%�h�/�>�>�u�E�E�Er+c�b�|j�d��|���|S)Nzchar-in-head-noscriptr2r�s  r*r�z8getPhases.<locals>.InHeadNoscriptPhase.processCharacters7s0���K�"�"�#:�;�;�;��������Lr+c�L�|jjd�|��Sr��rXrTr�r�s  r*r�z=getPhases.<locals>.InHeadNoscriptPhase.processSpaceCharacters<� ���;�%�h�/�F�F�u�M�M�Mr+c�L�|jjd�|��SrRrSr�s  r*rz3getPhases.<locals>.InHeadNoscriptPhase.startTagHtml?rTr+c�L�|jjd�|��Sr�rSr�s  r*rmz>getPhases.<locals>.InHeadNoscriptPhase.startTagBaseLinkCommandBrTr+c�L�|j�dd|di��dS�N�unexpected-start-tagrMr	r�s  r*�startTagHeadNoscriptz;getPhases.<locals>.InHeadNoscriptPhase.startTagHeadNoscriptE�*���K�"�"�#9�F�E�&�M�;R�S�S�S�S�Sr+c�t�|j�dd|di��|���|S�Nzunexpected-inhead-noscript-tagrMr2r�s  r*rYz4getPhases.<locals>.InHeadNoscriptPhase.startTagOtherH�<���K�"�"�#C�f�e�TZ�m�E\�]�]�]��������Lr+c��|jjj���}|jdksJd|jz���|jjd|j_dS)Nr�zExpected noscript got %srVr�r�s   r*�endTagNoscriptz5getPhases.<locals>.InHeadNoscriptPhase.endTagNoscriptMsX���;�#�0�4�4�6�6�D��9�
�*�*�*�,F���,R�*�*�*� $�� 2�8� <�D�K���r+c�t�|j�dd|di��|���|Sr�r2r�s  r*�endTagBrz/getPhases.<locals>.InHeadNoscriptPhase.endTagBrRr�r+c�L�|j�dd|di��dSr�r	r�s  r*r]z2getPhases.<locals>.InHeadNoscriptPhase.endTagOtherWr�r+c�J�|�td����dS)Nr�)r�r<rts r*r0z3getPhases.<locals>.InHeadNoscriptPhase.anythingElseZs$������
� ;� ;�<�<�<�<�<r+r�)r�r�r�r;r�r�)r�r�r�rFN)rBrCrDr6rr�r�r�r�rrmr�rYr�r�r]r0r
r^rr_rrJr+r*�InHeadNoscriptPhaser�,sS�������E�G�G�	�	�	�	�
	F�	F�	F�	�	�	�
	N�	N�	N�	G�	G�	G�	G�	G�	G�	T�	T�	T�	�	�	�
	=�	=�	=�
	�	�	�
	R�	R�	R�	=�	=�	=�2�&�1�
�\�"�
I�Kb�c�
!�#7�8�3
����
#0���/��/�
��(�
�8��1
���
�!,�
���r+r�c���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zejdefd
efde	fde
fdefg��Zee_ejde
fg��Zee_dS)�!getPhases.<locals>.AfterHeadPhasec�.�|���dSr>rdrts r*r�z,getPhases.<locals>.AfterHeadPhase.processEOFnrer+c�.�|���|Sr4rdr�s  r*r�z3getPhases.<locals>.AfterHeadPhase.processCharactersrrgr+c�L�|jjd�|��SrRrSr�s  r*rz.getPhases.<locals>.AfterHeadPhase.startTagHtmlvrTr+c��d|j_|j�|��|jjd|j_dS)NFr�)rXrsrKr�rTrnr�s  r*�startTagBodyz.getPhases.<locals>.AfterHeadPhase.startTagBodyys<��%*�D�K�"��I�#�#�E�*�*�*� $�� 2�8� <�D�K���r+c�r�|j�|��|jjd|j_dS)Nr�)rKr�rXrTrnr�s  r*�startTagFramesetz2getPhases.<locals>.AfterHeadPhase.startTagFrameset~s2���I�#�#�E�*�*�*� $�� 2�<� @�D�K���r+c�r�|j�dd|di��|jj�|jj��|jjd�|��|jjddd�D]/}|jdkr"|jj�	|��dS�0dS)Nz#unexpected-start-tag-out-of-my-headrMrVr�r�)
rXr�rKr�r�rWrTr�rM�remover�s   r*�startTagFromHeadz2getPhases.<locals>.AfterHeadPhase.startTagFromHead�s����K�"�"�#H�$*�E�&�M�#:�
<�
<�
<��I�"�)�)�$�)�*?�@�@�@��K��x�(�8�8��?�?�?��	�.�t�t��t�4�
�
���9��&�&��I�*�1�1�$�7�7�7��E�E�'�
�
r+c�L�|j�dd|di��dSr�r	r�s  r*rLz.getPhases.<locals>.AfterHeadPhase.startTagHead�r�r+c�.�|���|Sr4rdr�s  r*rYz/getPhases.<locals>.AfterHeadPhase.startTagOther�rgr+c�.�|���|Sr4rdr�s  r*r�z2getPhases.<locals>.AfterHeadPhase.endTagHtmlBodyBr�rgr+c�L�|j�dd|di��dSr�r	r�s  r*r]z-getPhases.<locals>.AfterHeadPhase.endTagOther�r�r+c��|j�tdd����|jjd|j_d|j_dS)Nr�r�r�T)rKr�r<rXrTrnrsrts r*r0z.getPhases.<locals>.AfterHeadPhase.anythingElse�sF���I�#�#�O�F�J�$G�$G�H�H�H� $�� 2�8� <�D�K��%)�D�K�"�"�"r+r�r�r�)	r�r�r�r�r;r�r�r�r�r�)r�r�rFN)rBrCrDr6rr�r�rr�r�r�rLrYr�r]r0r
r^rr_rrJr+r*�AfterHeadPhaser�ksQ�������E�G�G�	�	�	�	�	�	�	�	G�	G�	G�	=�	=�	=�
	A�	A�	A�	�	�	�	T�	T�	T�	�	�	�	�	�	�	R�	R�	R�	*�	*�	*�
2�&�1�
�\�"�
�\�"�
�)�*� �
�
��\�"�3
����#0���/��/�2H�2B�2D�1E�F�F�
� +�
���r+r�c
����eZdZdZ��fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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�Z6e7j8gd5�j9f�d6ef�d7ef�d8e
f�d9ef�e:ef�d:ef�d;ef�d<ef�d=ef�d>ef�d?ef�d@ef�dAef�dBef�dCef�dDef�dEef�dFef�dGef�dHef�dIef�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;_<e7j8d7e-fd5e.fdUe/fd;e0fdVe,fdWe1fe:e2fdXe3fdBe4fdYe5fg
��Z=e6e=_<�xZ>S)Z�getPhases.<locals>.InBodyPhase)r�c�V��t�|��j|i|��|j|_dSr4)�superrV�processSpaceCharactersNonPrer�)rOr�r'�InBodyPhaser�s   ��r*rVz'getPhases.<locals>.InBodyPhase.__init__�s6���-�E�+�t�$�$�-�t�>�v�>�>�>�*.�*K�D�'�'�'r+c�b�|j|jko|j|jko|j|jkSr4)rMr}r~)rO�node1�node2s   r*�isMatchingFormattingElementz:getPhases.<locals>.InBodyPhase.isMatchingFormattingElement�s7���J�%�*�,�9��O�u��6�9��$��(8�8�
:r+c���|j�|��|jjd}g}|jjddd�D]8}|turn,|�||��r|�|���9t|��dksJ�t|��dkr%|jj�|d��|jj�|��dS)Nr��)	rKr�r��activeFormattingElementsrr�r�r�r�)rOr�r��matchingElementsr�s     r*�addFormattingElementz3getPhases.<locals>.InBodyPhase.addFormattingElement�s����I�#�#�E�*�*�*��i�,�R�0�G�!���	�:�4�4�R�4�@�
2�
2���6�>�>��E��5�5�d�G�D�D�2�$�+�+�D�1�1�1���'�(�(�A�-�-�-�-��#�$�$��)�)��	�2�9�9�:J�2�:N�O�O�O��I�.�5�5�g�>�>�>�>�>r+c��td��}|jjddd�D](}|j|vr|j�d��dS�)dS)N)�dd�dt�lir)r�r�r�r�r�r�r�r�r�z expected-closing-tag-but-got-eof)r�rKr�rMrXr�)rO�allowed_elementsr�s   r*r�z)getPhases.<locals>.InBodyPhase.processEOF�ss��(�*2� 3� 3���	�.�t�t��t�4�
�
���9�$4�4�4��K�*�*�+M�N�N�N��E�E�5�
�
r+c�T�|d}|j|_|�d��rG|jjdjdvr.|jjd���s
|dd�}|r5|j���|j�|��dSdS)Nr��
r�)�pre�listing�textarear)	r�r�r�rKr�rM�
hasContent�#reconstructActiveFormattingElementsr
)rOr�r�s   r*�!processSpaceCharactersDropNewlinez@getPhases.<locals>.InBodyPhase.processSpaceCharactersDropNewline�s�����=�D�*.�*K�D�'�����%�%�
 ��	�&�r�*�/�3Q�Q�Q��	�.�r�2�=�=�?�?�R��A�B�B�x���
+��	�=�=�?�?�?��	�$�$�T�*�*�*�*�*�
+�
+r+c�
�|ddkrdS|j���|j�|d��|jjr-td�|dD����rd|j_dSdSdS)Nr��c� �g|]}|tv��SrJ�r�rL�chars  r*�
<listcomp>zDgetPhases.<locals>.InBodyPhase.processCharacters.<locals>.<listcomp>�s-��0�0�0����0�0�0�0r+F)rKr�r
rXrs�anyr�s  r*r�z0getPhases.<locals>.InBodyPhase.processCharacters�s����V�}��(�(����I�9�9�;�;�;��I� � ��v��/�/�/���&�
/��0�0�!&�v��0�0�0�1�1�
/�*/���&�&�&�
/�
/�
/�
/r+c�x�|j���|j�|d��dSr)rKr�r
r�s  r*r�z;getPhases.<locals>.InBodyPhase.processSpaceCharactersNonPre�s6���I�9�9�;�;�;��I� � ��v��/�/�/�/�/r+c�L�|jjd�|��Sr�rSr�s  r*�startTagProcessInHeadz4getPhases.<locals>.InBodyPhase.startTagProcessInHead�rTr+c��|j�dddi��t|jj��dks|jjdjdkr|jjsJ�dSd|j_|d���D]8\}}||jjdj	vr||jjdj	|<�9dS)Nr�rMr�rFr�)
rXr�r�rKr�rMr`rsr5r~rs    r*r�z+getPhases.<locals>.InBodyPhase.startTagBody�s����K�"�"�#9�F�F�;K�L�L�L��D�I�*�+�+�q�0�0��I�*�1�-�2�f�<�<��{�,�,�,�,�,�,�).���&�#(��=�#6�#6�#8�#8�K�K�K�D�%��4�9�#9�!�#<�#G�G�G�EJ��	�.�q�1�<�T�B��K�Kr+c��|j�dddi��t|jj��dks|jjdjdkr|jjsJ�dS|jjsdS|jjdjr:|jjdj�	|jjd��|jjdjdkr9|jj�
��|jjdjdk�9|j�|��|jjd|j_
dS)	Nr�rMr�rr�r�r�r�)rXr�r�rKr�rMr`rs�parent�removeChildrr�rTrnr�s  r*r�z/getPhases.<locals>.InBodyPhase.startTagFramesets5���K�"�"�#9�F�J�;O�P�P�P��D�I�*�+�+�q�0�0�D�I�4J�1�4M�4R�V\�4\�4\��{�,�,�,�,�,�,��[�+�
E����9�)�!�,�3�\��I�*�1�-�4�@�@���AW�XY�AZ�[�[�[��i�,�R�0�5��?�?��I�*�.�.�0�0�0��i�,�R�0�5��?�?��	�'�'��.�.�.�$(�K�$6�|�$D���!�!�!r+c��|j�dd���r"|�td����|j�|��dS�Nr)�button��variant)rK�elementInScope�endTagPr<r�r�s  r*�startTagClosePz-getPhases.<locals>.InBodyPhase.startTagClosePsU���y�'�'��X�'�>�>�
3����_�S�1�1�2�2�2��I�#�#�E�*�*�*�*�*r+c���|j�dd���r"|�td����|j�|��d|j_|j|_dS)Nr)r�r�F)	rKr�r�r<r�rXrsr�r�r�s  r*�startTagPreListingz1getPhases.<locals>.InBodyPhase.startTagPreListingsj���y�'�'��X�'�>�>�
3����_�S�1�1�2�2�2��I�#�#�E�*�*�*�%*�D�K�"�*.�*P�D�'�'�'r+c�D�|jjr|j�dddi��dS|j�dd���r"|�t
d����|j�|��|jjd|j_dS)Nr�rM�formr)r�r�r�)	rK�formPointerrXr�r�r�r<r�r�r�s  r*�startTagFormz+getPhases.<locals>.InBodyPhase.startTagForms����y�$�
C���&�&�'=���?O�P�P�P�P�P��9�+�+�C��+�B�B�7��L�L���!5�!5�6�6�6��	�'�'��.�.�.�(,�	�(>�r�(B��	�%�%�%r+c��d|j_dgddgddgd�}||d}t|jj��D]X}|j|vr4|jj�t|jd����n|j	tvr|jdvrn�Y|j�d	d
���r-|jj�td	d����|j�|��dS)NFr�r�r�)r�r�r�rMr�)�addressr,r)r)r�r�)
rXrs�reversedrKr�rMrnr�r<�	nameTuplerr�r�)rOr��stopNamesMap�	stopNamesr�s     r*�startTagListItemz/getPhases.<locals>.InBodyPhase.startTagListItem&s��%*�D�K�"�#'�&�#'��,�#'��,�0�0�L�%�U�6�]�3�I� ���!7�8�8�
�
���9�	�)�)��K�%�3�3�'��	�8�<�<�>�>�>��E��N�o�5�5��	�)@�@�@��E���y�'�'��X�'�>�>�
4���!�/�/�#�C��2�2�4�4�4�
�I�#�#�E�*�*�*�*�*r+c��|j�dd���r"|�td����|j�|��|jjj|jj_dSr�)	rKr�r�r<r�rXr\rmrkr�s  r*�startTagPlaintextz0getPhases.<locals>.InBodyPhase.startTagPlaintext<sj���y�'�'��X�'�>�>�
3����_�S�1�1�2�2�2��I�#�#�E�*�*�*�*.�+�*?�*N�D�K�!�'�'�'r+c�t�|j�dd���r"|�td����|jjdjtvrA|j�dd|di��|jj�	��|j�
|��dS)Nr)r�r�r�r�rM)rKr�r�r<r�rMrrXr�rr�r�s  r*�startTagHeadingz.getPhases.<locals>.InBodyPhase.startTagHeadingBs����y�'�'��X�'�>�>�
3����_�S�1�1�2�2�2��y�%�b�)�.�/�A�A���&�&�'=���f�
�?V�W�W�W��	�&�*�*�,�,�,��I�#�#�E�*�*�*�*�*r+c���|j�d��}|r�|j�dddd���|�td����||jjvr|jj�|��||jjvr|jj�|��|j�	��|�
|��dS)N�a�$unexpected-start-tag-implies-end-tag��	startName�endName)rK�!elementInActiveFormattingElementsrXr��endTagFormattingr<r�r�r�r�r�)rOr��afeAElements   r*�	startTagAz(getPhases.<locals>.InBodyPhase.startTagAJs����)�E�E�c�J�J�K��
K���&�&�'M�58�S�'I�'I�K�K�K��%�%�o�c�&:�&:�;�;�;��$�)�"8�8�8��I�*�1�1�+�>�>�>��$�)�"D�D�D��I�6�=�=�k�J�J�J��I�9�9�;�;�;��%�%�e�,�,�,�,�,r+c�b�|j���|�|��dSr4)rKr�r�r�s  r*�startTagFormattingz1getPhases.<locals>.InBodyPhase.startTagFormattingWs0���I�9�9�;�;�;��%�%�e�,�,�,�,�,r+c�H�|j���|j�d��rY|j�dddd���|�t
d����|j���|�|��dS)N�nobrrr)rKr�r�rXr�r�r<r�r�s  r*�startTagNobrz+getPhases.<locals>.InBodyPhase.startTagNobr[s����I�9�9�;�;�;��y�'�'��/�/�
@���&�&�'M�5;��'O�'O�Q�Q�Q��"�"�?�6�#:�#:�;�;�;��	�=�=�?�?�?��%�%�e�,�,�,�,�,r+c�<�|j�d��rB|j�dddd���|�td����|S|j���|j�|��d|j_dS)Nr�rrF)	rKr�rXr�r�r<r�r�rsr�s  r*�startTagButtonz-getPhases.<locals>.InBodyPhase.startTagButtones����y�'�'��1�1�
/���&�&�'M�5=�(�'S�'S�U�U�U��"�"�?�8�#<�#<�=�=�=����	�=�=�?�?�?��	�'�'��.�.�.�).���&�&�&r+c���|j���|j�|��|jj�t
��d|j_dS�NF)rKr�r�r�r�rrXrsr�s  r*�startTagAppletMarqueeObjectz:getPhases.<locals>.InBodyPhase.startTagAppletMarqueeObjectpsU���I�9�9�;�;�;��I�#�#�E�*�*�*��I�.�5�5�f�=�=�=�%*�D�K�"�"�"r+c��|j�dd���r"|�td����|j���d|j_|j�|d��dS)Nr)r�r�Fr�)rKr�r�r<r�rXrsr�r�s  r*�startTagXmpz*getPhases.<locals>.InBodyPhase.startTagXmpvsu���y�'�'��X�'�>�>�
3����_�S�1�1�2�2�2��I�9�9�;�;�;�%*�D�K�"��K�*�*�5�)�<�<�<�<�<r+c�&�|jjdkr>|j�dd���r"|�td����|j�|��d|j_|jjd|j_	dS)Nr-r)r�r�Fr�)
rXrhrKr�r�r<r�rsrTrnr�s  r*�
startTagTablez,getPhases.<locals>.InBodyPhase.startTagTable}s����{�%��1�1��9�+�+�C��+�B�B�=��&�&��s�';�';�<�<�<��I�#�#�E�*�*�*�%*�D�K�"� $�� 2�9� =�D�K���r+c���|j���|j�|��|jj���d|d<d|j_dS)NTr�F)rKr�r�r�rrXrsr�s  r*�startTagVoidFormattingz5getPhases.<locals>.InBodyPhase.startTagVoidFormatting�s^���I�9�9�;�;�;��I�#�#�E�*�*�*��I�"�&�&�(�(�(�/3�E�+�,�%*�D�K�"�"�"r+c���|jj}|�|��d|dvr8|dd�t��dkr||j_dSdSdS)Nr9r��hidden)rXrsr&rr)rOr�rss   r*�
startTagInputz,getPhases.<locals>.InBodyPhase.startTagInput�sp����/�J��'�'��.�.�.��%��-�'�'��&�M�&�)�3�3�4D�E�E��Q�Q�)3���&�&�&�(�'�Q�Qr+c��|j�|��|jj���d|d<dSrkrlr�s  r*�startTagParamSourcez2getPhases.<locals>.InBodyPhase.startTagParamSource�rnr+c��|j�dd���r"|�td����|j�|��|jj���d|d<d|j_dS)Nr)r�r�Tr�F)	rKr�r�r<r�r�rrXrsr�s  r*�
startTagHrz)getPhases.<locals>.InBodyPhase.startTagHr�s����y�'�'��X�'�>�>�
3����_�S�1�1�2�2�2��I�#�#�E�*�*�*��I�"�&�&�(�(�(�/3�E�+�,�%*�D�K�"�"�"r+c	��|j�dddd���|�tdd|d|d�����dS)	Nzunexpected-start-tag-treated-as�image�img��originalName�newNamer�r�r��r~r�)rXr�r�r<r�s  r*�
startTagImagez,getPhases.<locals>.InBodyPhase.startTagImage�s{���K�"�"�#D�4;��#N�#N�
P�
P�
P�� � ���
�<A�&�M�=B�=�=Q�"S�"S�"S�
T�
T�
T�
T�
Tr+c	�h�|j�dddi��|jjrdSi}d|dvr|dd|d<|�tdd|�����|�td	d����|�td
d����d|dvr|dd}nd}|�td
|d���|d���}d|vr|d=d|vr|d=d|d<|�tdd||d�����|�	td
����|�td	d����|�	td����dS)Nzdeprecated-tagrM�isindex�actionr�r�r�)r~�hr�label�promptz3This is a searchable index. Enter search keywords: r��r9r��inputr�r4)
rXr�rKrr�r<r�r�copyr�)rOr��
form_attrsr;r~s     r*�startTagIsIndexz.getPhases.<locals>.InBodyPhase.startTagIsIndex�s����K�"�"�#3�f�i�5H�I�I�I��y�$�
����J��5��=�(�(�',�V�}�X�'>�
�8�$�� � ����<F�"H�"H�"H�
I�
I�
I�� � ���z�!B�!B�C�C�C�� � ���*�!E�!E�F�F�F��5��=�(�(��v��x�0���N���"�"�#�L�1�6�B�B�
D�
D�
D��v��+�+�-�-�J��:�%�%��x�(��:�%�%��x�(�!*�J�v��� � ���*�<F�=B�=�=Q�"S�"S�"S�
T�
T�
T�
����w�7�7�8�8�8�� � ���z�!B�!B�C�C�C�����v�6�6�7�7�7�7�7r+c��|j�|��|jjj|jj_|j|_d|j_dSr)	rKr�rXr\rjrkr�r�rsr�s  r*�startTagTextareaz/getPhases.<locals>.InBodyPhase.startTagTextarea�sH���I�#�#�E�*�*�*�*.�+�*?�*K�D�K�!�'�*.�*P�D�'�%*�D�K�"�"�"r+c�H�d|j_|�|��dSr)rXrs�startTagRawtextr�s  r*�startTagIFramez-getPhases.<locals>.InBodyPhase.startTagIFrame�s&��%*�D�K�"�� � ��'�'�'�'�'r+c�v�|jjr|�|��dS|�|��dSr4)rXrZrDrYr�s  r*r�z/getPhases.<locals>.InBodyPhase.startTagNoscript�sC���{�$�
*��$�$�U�+�+�+�+�+��"�"�5�)�)�)�)�)r+c�<�|j�|d��dS)z8iframe, noembed noframes, noscript(if scripting enabled)r�Nrzr�s  r*rDz.getPhases.<locals>.InBodyPhase.startTagRawtext�r~r+c��|jjdjdkr,|jj�t
d����|j���|jj�|��dS�Nr��option)	rKr�rMrXrnr�r<r�r�r�s  r*�startTagOptz*getPhases.<locals>.InBodyPhase.startTagOpt�sn���y�%�b�)�.�(�:�:���!�/�/���0I�0I�J�J�J��I�9�9�;�;�;��K��*�*�5�1�1�1�1�1r+c���|j���|j�|��d|j_|jj|jjd|jjd|jjd|jjd|jjd|jjdfvr|jjd|j_dS|jjd	|j_dS)
NFr�r�r�r�r�r��inSelectInTabler�)rKr�r�rXrsrnrTr�s  r*�startTagSelectz-getPhases.<locals>.InBodyPhase.startTagSelect�s����I�9�9�;�;�;��I�#�#�E�*�*�*�%*�D�K�"��{� �T�[�%7�	�%B�%)�[�%7��%D�%)�[�%7��%H�%)�[�%7�
�%F�%)�[�%7��%@�%)�[�%7��%A�%C�C�C�%)�K�$6�7H�$I���!�!�!�$(�K�$6�z�$B���!�!�!r+c��|j�d��rM|j���|jjdjdkr|j���|j�|��dS)N�rubyr�)rKr��generateImpliedEndTagsr�rMrXr�r�r�s  r*�startTagRpRtz+getPhases.<locals>.InBodyPhase.startTagRpRt�sv���y�'�'��/�/�
-��	�0�0�2�2�2��9�)�"�-�2�f�<�<��K�*�*�,�,�,��I�#�#�E�*�*�*�*�*r+c�N�|j���|j�|��|j�|��t
d|d<|j�|��|dr%|jj���d|d<dSdS)Nr{r}r�Tr�)	rKr�rXrrrr�r�rr�s  r*�startTagMathz+getPhases.<locals>.InBodyPhase.startTagMath�s����I�9�9�;�;�;��K�.�.�u�5�5�5��K�/�/��6�6�6�!+�H�!5�E�+���I�#�#�E�*�*�*��]�#�
8��	�&�*�*�,�,�,�37��/�0�0�0�
8�
8r+c�N�|j���|j�|��|j�|��t
d|d<|j�|��|dr%|jj���d|d<dSdS)Nr�r}r�Tr�)	rKr�rXrrrr�r�rr�s  r*�startTagSvgz*getPhases.<locals>.InBodyPhase.startTagSvgs����I�9�9�;�;�;��K�+�+�E�2�2�2��K�/�/��6�6�6�!+�E�!2�E�+���I�#�#�E�*�*�*��]�#�
8��	�&�*�*�,�,�,�37��/�0�0�0�
8�
8r+c�L�|j�dd|di��dS)a5 Elements that should be children of other elements that have a
            different insertion mode; here they are ignored
            "caption", "col", "colgroup", "frame", "frameset", "head",
            "option", "optgroup", "tbody", "td", "tfoot", "th", "thead",
            "tr", "noscript"
            zunexpected-start-tag-ignoredrMNr	r�s  r*�startTagMisplacedz0getPhases.<locals>.InBodyPhase.startTagMisplaceds-��
�K�"�"�#A�F�E�RX�M�CZ�[�[�[�[�[r+c�l�|j���|j�|��dSr4)rKr�r�r�s  r*rYz,getPhases.<locals>.InBodyPhase.startTagOthers2���I�9�9�;�;�;��I�#�#�E�*�*�*�*�*r+c�T�|j�dd���se|�tdd����|j�dddi��|�tdd����dS|j�d��|jjdj	dkr|j�dddi��|jj�
��}|j	dkr+|jj�
��}|j	dk�)dSdS)	Nr)r�r�r�r�rMr�r�)rKr�r�r<rXr�r�rQr�rMrr�s   r*r�z&getPhases.<locals>.InBodyPhase.endTagPs���9�+�+�C��+�B�B�

8��#�#�O�C��$D�$D�E�E�E���&�&�';�f�c�]�K�K�K����_�S�(�;�;�<�<�<�<�<��	�0�0��5�5�5��9�)�"�-�2�c�9�9��K�*�*�+?�&�#��O�O�O��y�-�1�1�3�3���i�3�&�&��9�1�5�5�7�7�D��i�3�&�&�&�&�&�&r+c��|j�d��s|j���dS|jjdjdkrR|jjdd�D]=}|jt
d��vr%|j�dd|jd���n�>|jjd|j_dS)Nr�r��)r�r�r��optgrouprJr)�rp�rtr�r�r�r�r�r�r�r��$expected-one-end-tag-but-got-another��gotName�expectedName�	afterBody)	rKr�rXr�r�rMr�rTrnr�s   r*�
endTagBodyz)getPhases.<locals>.InBodyPhase.endTagBody)s����9�+�+�F�3�3�
���&�&�(�(�(�����'��+�0�F�:�:� �I�2�1�2�2�6�
�
�D��y�	�3;�)<�)<�<�<���.�.�B�(.��	�J�J�L�L�L���<�!%�� 2�;� ?�D�K���r+c��|j�d��r$|�td����|SdS)Nr�)rKr�rer<r�s  r*�
endTagHtmlz)getPhases.<locals>.InBodyPhase.endTagHtml;sC���y�'�'��/�/�
������ 7� 7�8�8�8���
�
r+c��|ddkr|j|_|j�|d��}|r|j���|jjdj|dkr#|j�dd|di��|r`|jj�	��}|j|dkr3|jj�	��}|j|dk�/dSdSdS)NrMr�r��end-tag-too-early)
r�r�rKr�rQr�rMrXr�r)rOr��inScoper�s    r*�endTagBlockz*getPhases.<locals>.InBodyPhase.endTagBlockAs����V�}��%�%�.2�.O��+��i�.�.�u�V�}�=�=�G��
3��	�0�0�2�2�2��y�%�b�)�.�%��-�?�?���&�&�':�V�U�6�]�<S�T�T�T��
8��y�-�1�1�3�3���i�5��=�0�0��9�1�5�5�7�7�D��i�5��=�0�0�0�0�
8�
8�0�0r+c��|jj}d|j_|�|j�|��s|j�dddi��dS|j���|jjd|kr|j�dddi��|jj�|��dS)Nr�rMr�r�zend-tag-too-early-ignored)rKrr�rXr�rQr�r�r�s   r*�
endTagFormz)getPhases.<locals>.InBodyPhase.endTagFormOs����9�(�D�$(�D�I�!��|�4�9�#;�#;�D�#A�#A�|���&�&�';�(.��'7�9�9�9�9�9��	�0�0�2�2�2��9�)�"�-��5�5��K�*�*�+F�,2�F�+;�=�=�=��	�&�-�-�d�3�3�3�3�3r+c�@�|ddkrd}nd}|j�|d|���s%|j�dd|di��dS|j�|d���|jjdj|dkr#|j�dd|di��|jj���}|j|dkr1|jj���}|j|dk�/dSdS)	NrMr��listr�r���excluder�ri)rKr�rXr�rQr�rMr)rOr�r�r�s    r*�endTagListItemz-getPhases.<locals>.InBodyPhase.endTagListItem\s&���V�}��$�$� ������9�+�+�E�&�M�7�+�K�K�

8���&�&�';�f�e�F�m�=T�U�U�U�U�U��	�0�0��v��0�G�G�G��9�)�"�-�2�e�F�m�C�C��K�*�*�+���v��/�1�1�1��y�-�1�1�3�3���i�5��=�0�0��9�1�5�5�7�7�D��i�5��=�0�0�0�0�0�0r+c�
�tD]7}|j�|��r|j���n�8|jjdj|dkr#|j�dd|di��tD]w}|j�|��r[|jj���}|jtvr,|jj���}|jtv�,dS�xdS)Nr�rMri)	rrKr�rQr�rMrXr�r)rOr��items   r*�
endTagHeadingz,getPhases.<locals>.InBodyPhase.endTagHeadingms��'�
�
���9�+�+�D�1�1���I�4�4�6�6�6��E���y�%�b�)�.�%��-�?�?���&�&�':�V�U�6�]�<S�T�T�T�'�
�
���9�+�+�D�1�1���9�1�5�5�7�7�D��)�?�:�:�#�y�5�9�9�;�;���)�?�:�:��E�E�	�
�
r+c��	�d}|dk�r�|dz
}|j�|d��}|r-||jjvr6|j�|j��s|�|��dS||jjvrD|j�dd|di��|jj�	|��dS|j�|j��s%|j�dd|di��dS||jjdkr#|j�d	d|di��|jj�
|��}d}|jj|d�D]}|jtvr|}n�|�i|jj�
��}||kr$|jj�
��}||k�$|jj�	|��dS|jj|dz
}|jj�
|��}|x}	}
d}|jj�
|
��}|d
k�r&|dz
}|dz}|jj|}
|
|jjvr |jj�	|
���Q|
|krn�|	|kr"|jj�
|
��dz}|
���}
|
|jj|jj�
|
��<|
|jj|jj�
|
��<|
}
|	jr|	j�|	��|
�|	��|
}	|d
k��&|	jr|	j�|	��|jt%d��vr3|j���\}}|�|	|��n|�|	��|���}
|�|
��|�|
��|jj�	|��|jj�||
��|jj�	|��|jj�|jj�
|��dz|
��|dk���dSdS)z)The much-feared adoption agency algorithmr�rrMNzadoption-agency-1.2zadoption-agency-4.4r�zadoption-agency-1.3r��r�r�r�r�r�)rKrr�r�rMr]rXr�r�r��indexrrr�	cloneNoder�r��appendChildr��getTableMisnestedNodePosition�insertBefore�reparentChildren�insert)rOr��outerLoopCounter�formattingElement�afeIndex�
furthestBlockr��commonAncestor�bookmark�lastNoder��innerLoopCounterry�cloner�r}s                r*rz/getPhases.<locals>.InBodyPhase.endTagFormatting|s9�� !��#�Q�&�&�!�A�%� �%)�I�$O�$O��&�M�%#�%#�!�)�!_�&�$�)�*@�@�@���1�1�2C�2H�I�I�A�
�$�$�U�+�+�+��F�'�d�i�.D�D�D��K�*�*�+@�6�5�QW�=�BY�Z�Z�Z��I�6�=�=�>O�P�P�P��F���1�1�2C�2H�I�I�_��K�*�*�+@�6�5�QW�=�BY�Z�Z�Z��F�)�D�I�,B�2�,F�F�F���.�.�/D�v�u�U[�}�F]�^�^�^� �9�1�7�7�8I�J�J�� $�
�#�y�5�h�i�i�@���G��(�O�;�;�(/�
���<�!�(�"�i�4�8�8�:�:�G�!�%6�6�6�"&�)�"8�"<�"<�">�">��"�%6�6�6��I�6�=�=�g�F�F�F��F�"&��!7��1��!E�� �9�=�C�C�DU�V�V��#0�/��4�#$� ��	�.�4�4�T�:�:��&��*�*�$��)�$��Q�J�E��9�1�%�8�D��4�9�#E�E�E��	�.�5�5�d�;�;�;� ��0�0�0���=�0�0�#'�9�#E�#K�#K�D�#Q�#Q�TU�#U�� �N�N�,�,�E�KP��I�6��	�:�@�@��F�F�H�?D��I�*��	�.�4�4�T�:�:�<� �D� ��>� ��3�3�H�=�=�=��$�$�X�.�.�.�#�H�9'��*�*�D�?�:��O�/�/��9�9�9�!�&�)�4^�*_�*_�_�_�+/�9�+R�+R�+T�+T�(�F�L��'�'��,�?�?�?�?�"�.�.�x�8�8�8�*�3�3�5�5���.�.�u�5�5�5��)�)�%�0�0�0��	�2�9�9�:K�L�L�L��	�2�9�9�(�E�J�J�J��	�&�-�-�.?�@�@�@��	�&�-�-��I�*�0�0��?�?�!�C�U�L�L�L�o#�Q�&�&�&�&�&�&r+c�2�|j�|d��r|j���|jjdj|dkr#|j�dd|di��|j�|d��ry|jj���}|j|dkr/|jj���}|j|dk�/|j���dSdS)NrMr�ri)	rKr�rQr�rMrXr�r�clearActiveFormattingElements)rOr�r�s   r*�endTagAppletMarqueeObjectz8getPhases.<locals>.InBodyPhase.endTagAppletMarqueeObjects���y�'�'��f�
�6�6�
3��	�0�0�2�2�2��y�%�b�)�.�%��-�?�?���&�&�':�V�U�6�]�<S�T�T�T��y�'�'��f�
�6�6�
:��)�0�4�4�6�6���l�e�F�m�3�3�"�i�4�8�8�:�:�G��l�e�F�m�3�3��	�7�7�9�9�9�9�9�	
:�
:r+c��|j�dddd���|j���|j�tdd����|jj���dS)Nzunexpected-end-tag-treated-asrFz
br elementr1r�)rXr�rKr�r�r<r�rr�s  r*r�z'getPhases.<locals>.InBodyPhase.endTagBr+s~���K�"�"�#B�48�\�#R�#R�
T�
T�
T��I�9�9�;�;�;��I�#�#�O�D�*�$E�$E�F�F�F��I�"�&�&�(�(�(�(�(r+c��|jjddd�D]�}|j|dkr�|j�|d���|jjdj|dkr#|j�dd|di��|jj���|kr#	|jj���|k�#dS|jtvr&|j�dd|di��dS��dS)Nr�rMrpr�)	rKr�rMrQrXr�rrrr�s   r*r]z*getPhases.<locals>.InBodyPhase.endTagOther2s���	�.�t�t��t�4�
�
���9��f�
�-�-��I�4�4�U�6�]�4�K�K�K��y�-�b�1�6�%��-�G�G���.�.�/C�f�e�TZ�m�E\�]�]�]��)�0�4�4�6�6�$�>�>���)�0�4�4�6�6�$�>�>��E�E��~��8�8���.�.�/C�f�e�TZ�m�E\�]�]�]����9�
�
r+r�)	r�r�r�r�r�r;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�rcr)�b�big�code�em�font�i�s�small�strike�strong�tt�urr�)�applet�marquee�object�xmpr�)�arearF�embedr0�keygen�wbr)�param�source�trackr=r9r/r7r��iframer�)�noembedr�r�)r^r_)rJr]�mathr�)r��colr��framer�r�r�r�r�r�r�)rr�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�)rr�r�r�r�r�r�rr�r�r�r�r�r�rF)?rBrCrDrrVr�r�r�r�r�r�r�r�r�r�r�rrr
rrrrrr r"r$r&r)r+r-r5r@rBrEr�rDrKrNrRrTrVrXrYr�rergrkrmrrrurr�r�r]r
r^rrrr_r�
__classcell__)r�r�rs@��r*r�r��s��������0�	�	L�	L�	L�	L�	L�	L�
	:�	:�	:�	?�	?�	?�"	�	�	�	+�	+�	+�
	/�
	/�
	/�	0�	0�	0�	G�	G�	G�		K�		K�		K�	E�	E�	E�	+�	+�	+�
	Q�	Q�	Q�	C�	C�	C�	+�	+�	+�,	O�	O�	O�	+�	+�	+�	-�	-�	-�	-�	-�	-�	-�	-�	-�		/�		/�		/�	+�	+�	+�	=�	=�	=�	>�	>�	>�	+�	+�	+�	4�	4�	4�	4�	4�	4�
	+�	+�	+�	T�	T�	T�	8�	8�	8�>	+�	+�	+�	(�	(�	(�	*�	*�	*�	=�	=�	=�	2�	2�	2�	C�	C�	C�	+�	+�	+�
	8�
	8�
	8�
	8�
	8�
	8�	\�	\�	\�	+�	+�	+�	8�	8�	8�	@�	@�	@�$	�	�	�	8�	8�	8�	4�	4�	4�	8�	8�	8�"
	�
	�
	�a	L�a	L�a	L�F
	:�
	:�
	:�	)�	)�	)�	�	�	�2�&�1�,3
�
�U�'�(�,3
�*�
"�
$�,3
�
�\�"�,3
��)�*�
,3
�*��	
�,3
��o�.�,3
� �!3�4�,3
��\�"�,3
� �!1�2�,3
� �+�,�!,3
�"�)��#,3
�$#�$6�
8�%,3
�(�\�"�),3
�*�~�&�+,3
�,-�.I�J�-,3
�.�K� �/,3
�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��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	e
jg��Zee_
e
jdefg��Ze	e_
dS)�getPhases.<locals>.TextPhasec�F�|j�|d��dSrrr�s  r*r�z.getPhases.<locals>.TextPhase.processCharacters�rr+c���|j�dd|jjdji��|jj���|jj|j_dS)Nz&expected-named-closing-tag-but-got-eofrMr�T)rXr�rKr�rMrr�rnrts r*r�z'getPhases.<locals>.TextPhase.processEOF�sb���K�"�"�#K�$*�D�I�,B�2�,F�,K�#L�
N�
N�
N��I�"�&�&�(�(�(� $�� 9�D�K���4r+c�(�Jd|dz���)NFz4Tried to process start tag %s in RCDATA/RAWTEXT moderMrJr�s  r*rYz*getPhases.<locals>.TextPhase.startTagOther�s��`�P�SX�Y_�S`�`�`�`�`r+c��|jj���}|jdksJ�|jj|j_dS)Nr�)rKr�rrMrXr�rnr�s   r*�endTagScriptz)getPhases.<locals>.TextPhase.endTagScript�s@���9�)�-�-�/�/�D��9��(�(�(�(� $�� 9�D�K���r+c�n�|jj���|jj|j_dSr4)rKr�rrXr�rnr�s  r*r]z(getPhases.<locals>.TextPhase.endTagOther�s.���I�"�&�&�(�(�(� $�� 9�D�K���r+r�N)rBrCrDr6rr�r�rYr�r]r
r^rr_rrJr+r*�	TextPhaser��s��������E�G�G�	�	0�	0�	0�	�	�	�	a�	a�	a�	:�	:�	:�	:�	:�	:�2�&�1�"�5�5��"/���/��/�
�|�$�1&�'�'�
� +�
���r+r�c
�>��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zejd�jfde
fdefdefde
fdefdefdefdefdefg
��Zee_ejdefdefg��Zee_dS)�getPhases.<locals>.InTablePhasec��|jjdjdvr9|jj���|jjdjdv�7dSdS)Nr�)r�r�)rKr�rMrrts r*�clearStackToTableContextz8getPhases.<locals>.InTablePhase.clearStackToTableContext�s[���)�(��,�1�9J�J�J��	�&�*�*�,�,�,��)�(��,�1�9J�J�J�J�J�J�Jr+c��|jjdjdkr|j�d��dS|jjsJ�dS)Nr�r�zeof-in-table�rKr�rMrXr�r`rts r*r�z*getPhases.<locals>.InTablePhase.processEOF�sM���y�%�b�)�.�&�8�8���&�&�~�6�6�6�6�6��{�,�,�,�,�,�,r+c��|jj}|jjd|j_||jj_|jj�|��dS�N�inTableText)rXrnrTr�r��rOr�r�s   r*r�z6getPhases.<locals>.InTablePhase.processSpaceCharacters�sL�� �K�-�M� $�� 2�=� A�D�K��.;�D�K��+��K��4�4�U�;�;�;�;�;r+c��|jj}|jjd|j_||jj_|jj�|��dSr�)rXrnrTr�r�r�s   r*r�z1getPhases.<locals>.InTablePhase.processCharacters�sL�� �K�-�M� $�� 2�=� A�D�K��.;�D�K��+��K��/�/��6�6�6�6�6r+c��d|j_|jjd�|��d|j_dS)NTr�F)rK�insertFromTablerXrTr�r�s  r*r
z*getPhases.<locals>.InTablePhase.insertText�s<��)-�D�I�%��K��x�(�:�:�5�A�A�A�(-�D�I�%�%�%r+c���|���|jj�t��|j�|��|jjd|j_dS)Nr�)	r�rKr�r�rr�rXrTrnr�s  r*�startTagCaptionz/getPhases.<locals>.InTablePhase.startTagCaption�s]���)�)�+�+�+��I�.�5�5�f�=�=�=��I�#�#�E�*�*�*� $�� 2�;� ?�D�K���r+c��|���|j�|��|jjd|j_dS)Nr��r�rKr�rXrTrnr�s  r*�startTagColgroupz0getPhases.<locals>.InTablePhase.startTagColgroup�sD���)�)�+�+�+��I�#�#�E�*�*�*� $�� 2�?� C�D�K���r+c�L�|�tdd����|S)Nr�r�)r�r<r�s  r*�startTagColz+getPhases.<locals>.InTablePhase.startTagCol�s%���!�!�/�*�j�"I�"I�J�J�J��Lr+c��|���|j�|��|jjd|j_dS�Nr�r�r�s  r*�startTagRowGroupz0getPhases.<locals>.InTablePhase.startTagRowGroup�sD���)�)�+�+�+��I�#�#�E�*�*�*� $�� 2�=� A�D�K���r+c�L�|�tdd����|S)Nr�r�)r�r<r�s  r*�startTagImplyTbodyz2getPhases.<locals>.InTablePhase.startTagImplyTbody�s%���!�!�/�'�:�"F�"F�G�G�G��Lr+c��|j�dddd���|jj�t	d����|jjs|SdS)Nrr�r)rXr�rnr�r<r`r�s  r*r$z-getPhases.<locals>.InTablePhase.startTagTable�sj���K�"�"�#I�18�W�#M�#M�
O�
O�
O��K��+�+�O�G�,D�,D�E�E�E��;�(�
���
�
r+c�L�|jjd�|��Sr�rSr�s  r*�startTagStyleScriptz3getPhases.<locals>.InTablePhase.startTagStyleScript�rTr+c�@�d|dvr~|dd�t��dkrT|j�d��|j�|��|jj���dS|�|��dS)Nr9r�r(z unexpected-hidden-input-in-table)	rrrXr�rKr�r�rrYr�s  r*r)z-getPhases.<locals>.InTablePhase.startTagInput�s����%��-�'�'��&�M�&�)�3�3�4D�E�E��Q�Q���&�&�'I�J�J�J��	�'�'��.�.�.��	�&�*�*�,�,�,�,�,��"�"�5�)�)�)�)�)r+c��|j�d��|jj�V|j�|��|jjd|j_|jj���dSdS)Nzunexpected-form-in-tabler�)rXr�rKrr�r�rr�s  r*rz,getPhases.<locals>.InTablePhase.startTagForm�ss���K�"�"�#=�>�>�>��y�$�,��	�'�'��.�.�.�(,�	�(>�r�(B��	�%��	�&�*�*�,�,�,�,�,�-�,r+c���|j�dd|di��d|j_|jjd�|��d|j_dS)Nz)unexpected-start-tag-implies-table-voodoorMTr�F)rXr�rKr�rTr�r�s  r*rYz-getPhases.<locals>.InTablePhase.startTagOther�s`���K�"�"�#N�QW�Y^�_e�Yf�Pg�h�h�h�(,�D�I�%��K��x�(�8�8��?�?�?�(-�D�I�%�%�%r+c�t�|j�dd���r�|j���|jjdjdkr3|j�dd|jjdjd���|jjdjdkr9|jj���|jjdjdk�9|jj���|j���dS|jj	sJ�|j���dS)Nr�r�r�zend-tag-too-early-namedra)
rKr�rQr�rMrXr�rrpr`r�s  r*�endTagTablez+getPhases.<locals>.InTablePhase.endTagTables4���y�'�'���'�A�A�

)��	�0�0�2�2�2��9�)�"�-�2�g�=�=��K�*�*�+D�7>�<@�I�<R�SU�<V�<[�,]�,]�^�^�^��i�,�R�0�5��@�@��I�*�.�.�0�0�0��i�,�R�0�5��@�@��	�&�*�*�,�,�,���.�.�0�0�0�0�0��{�,�,�,�,���&�&�(�(�(�(�(r+c�L�|j�dd|di��dSr�r	r�s  r*�endTagIgnorez,getPhases.<locals>.InTablePhase.endTagIgnorer�r+c���|j�dd|di��d|j_|jjd�|��d|j_dS)Nz'unexpected-end-tag-implies-table-voodoorMTr�F)rXr�rKr�rTr�r�s  r*r]z+getPhases.<locals>.InTablePhase.endTagOthers_���K�"�"�#L�v�W\�]c�Wd�Ne�f�f�f�(,�D�I�%��K��x�(�6�6�u�=�=�=�(-�D�I�%�%�%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�N)rBrCrDr6rr�r�r�r�r
r�r�r�r�r�r$r�r)rrYr�r�r]r
r^rrr_r�rs�r*�InTablePhaser��s���������E�G�G�	�	-�	-�	-�	-�	-�	-�	<�	<�	<�	7�	7�	7�	.�	.�	.�	@�	@�	@�	D�	D�	D�
	�	�	�	B�	B�	B�
	�	�	�	�	�	�	G�	G�	G�	*�	*�	*�	-�	-�	-�	.�	.�	.�	)�	)�	)� 	R�	R�	R�	.�	.�	.�2�&�1�
�U�'�(�
��(�
�)�*�
�K� �
(�*:�;�
�!3�4�
�m�$�
 �"5�6�
�m�$�
�\�"�3
����#0���/��/�
�k�"�,�-9�
;�1
���
�
!,�
���r+r�c�P���eZdZdZ��fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Z�xZS)
�#getPhases.<locals>.InTableTextPhase)r��characterTokensc�Z��t�|��j|i|��d|_g|_dSr4)r�rVr�r�)rOr�r'�InTableTextPhaser�s   ��r*rVz,getPhases.<locals>.InTableTextPhase.__init__6s<���2�E�"�D�)�)�2�D�C�F�C�C�C�!%�D��#%�D� � � r+c�2�d�d�|jD����}td�|D����r6td|d�}|jjd�|��n|r|j�|��g|_dS)Nr,c��g|]
}|d��S)r�rJ�rLrts  r*r�zGgetPhases.<locals>.InTableTextPhase.flushCharacters.<locals>.<listcomp><s��J�J�J�T�D��L�J�J�Jr+c� �g|]}|tv��SrJr�r�s  r*r�zGgetPhases.<locals>.InTableTextPhase.flushCharacters.<locals>.<listcomp>=s��A�A�A�D�D��/�A�A�Ar+r�r<r�)�joinr�r�rrXrTr
rK)rOr�r�s   r*�flushCharactersz3getPhases.<locals>.InTableTextPhase.flushCharacters;s����7�7�J�J�T�5I�J�J�J�K�K�D��A�A�D�A�A�A�B�B�
+�!+�L�!9�4�H�H����"�9�-�8�8��?�?�?�?��
+��	�$�$�T�*�*�*�#%�D� � � r+c�P�|���|j|j_|Sr4�r�r�rXrnr�s  r*r�z2getPhases.<locals>.InTableTextPhase.processCommentD�&��� � �"�"�"� $� 2�D�K���Lr+c�P�|���|j|j_dSr>r�rts r*r�z.getPhases.<locals>.InTableTextPhase.processEOFIs&��� � �"�"�"� $� 2�D�K���4r+c�V�|ddkrdS|j�|��dS�Nr�r��r�r�r�s  r*r�z5getPhases.<locals>.InTableTextPhase.processCharactersNs3���V�}��(�(���� �'�'��.�.�.�.�.r+c�:�|j�|��dSr4rr�s  r*r�z:getPhases.<locals>.InTableTextPhase.processSpaceCharactersSs��� �'�'��.�.�.�.�.r+c�P�|���|j|j_|Sr4r�r�s  r*r�z3getPhases.<locals>.InTableTextPhase.processStartTagXr�r+c�P�|���|j|j_|Sr4r�r�s  r*r�z1getPhases.<locals>.InTableTextPhase.processEndTag]r�r+)
rBrCrDrrVr�r�r�r�r�r�r�r�)r�r�s@�r*r�r�3s���������8�	�	&�	&�	&�	&�	&�	&�
	&�	&�	&�	�	�	�
	�	�	�
	/�	/�	/�
	/�	/�	/�
	�	�	�
	�	�	�	�	�	�	r+r�c����eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ejd
�jfdefg��Ze	e_ejde
fd
efdefg��Ze
e_dS)�!getPhases.<locals>.InCaptionPhasec�<�|j�dd���S)Nr�r�r��rKr�rts r*�ignoreEndTagCaptionz5getPhases.<locals>.InCaptionPhase.ignoreEndTagCaptionfs ���y�/�/�	�7�/�K�K�K�Kr+c�N�|jjd���dSrR�rXrTr�rts r*r�z,getPhases.<locals>.InCaptionPhase.processEOFi�$���K��x�(�3�3�5�5�5�5�5r+c�L�|jjd�|��SrR�rXrTr�r�s  r*r�z3getPhases.<locals>.InCaptionPhase.processCharactersl� ���;�%�h�/�A�A�%�H�H�Hr+c��|j���|���}|jj�td����|s|SdS�Nr��rXr�r	rnr�r<�rOr��ignoreEndTags   r*�startTagTableElementz6getPhases.<locals>.InCaptionPhase.startTagTableElementos_���K�"�"�$�$�$��3�3�5�5�L��K��+�+�O�I�,F�,F�G�G�G��
���
�
r+c�L�|jjd�|��SrRrSr�s  r*rYz/getPhases.<locals>.InCaptionPhase.startTagOtherwrTr+c��|����s|j���|jjdjdkr3|j�dd|jjdjd���|jjdjdkr9|jj���|jjdjdk�9|jj���|j���|jj	d|j_
dS|jjsJ�|j���dS)Nr�r�r`rar�)r	rKrQr�rMrXr�rr�rTrnr`r�s  r*�
endTagCaptionz/getPhases.<locals>.InCaptionPhase.endTagCaptionzs?���+�+�-�-�
)��	�0�0�2�2�2��9�)�"�-�2�i�?�?��K�*�*�+Q�7@�<@�I�<R�SU�<V�<[�,]�,]�^�^�^��i�,�R�0�5��B�B��I�*�.�.�0�0�0��i�,�R�0�5��B�B��	�&�*�*�,�,�,��	�7�7�9�9�9�$(�K�$6�y�$A���!�!�!��{�,�,�,�,���&�&�(�(�(�(�(r+c��|j���|���}|jj�td����|s|SdSrrrs   r*r�z-getPhases.<locals>.InCaptionPhase.endTagTable�s_���K�"�"�$�$�$��3�3�5�5�L��K��+�+�O�I�,F�,F�G�G�G��
���
�
r+c�L�|j�dd|di��dSr�r	r�s  r*r�z.getPhases.<locals>.InCaptionPhase.endTagIgnore�r�r+c�L�|jjd�|��SrR�rXrTr�r�s  r*r]z-getPhases.<locals>.InCaptionPhase.endTagOther�� ���;�%�h�/�=�=�e�D�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)rBrCrDr6rr	r�r�rrYrr�r�r]r
r^rrr_rr�s�r*�InCaptionPhaserbs/��������E�G�G�	�	L�	L�	L�	6�	6�	6�	I�	I�	I�	�	�	�	G�	G�	G�	)�	)�	)�$	�	�	�	R�	R�	R�	E�	E�	E�2�&�1�
�U�'�(��2�
4�3
����
#0���/��/�
�
�&�
�k�"��*�
,�1
���
�!,�
���r+rc����eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
jd	�jfd
efg��Ze	e_e
jde
fd
efg��Zee_dS)
�%getPhases.<locals>.InColumnGroupPhasec�8�|jjdjdkS)Nr�r�)rKr�rMrts r*�ignoreEndTagColgroupz:getPhases.<locals>.InColumnGroupPhase.ignoreEndTagColgroup�s���9�)�"�-�2�f�<�<r+c���|jjdjdkr|jjsJ�dS|���}|�td����|sdSdS)Nr�r�r�T)rKr�rMrXr`r#�endTagColgroupr<)rOrs  r*r�z0getPhases.<locals>.InColumnGroupPhase.processEOF�st���y�%�b�)�.�&�8�8��{�,�,�,�,���#�8�8�:�:���#�#�O�J�$?�$?�@�@�@�#� ��4� � r+c�z�|���}|�td����|s|SdS�Nr��r#r%r<rs   r*r�z7getPhases.<locals>.InColumnGroupPhase.processCharacters��F���4�4�6�6�L�����
� ;� ;�<�<�<��
���
�
r+c��|j�|��|jj���d|d<dSrkrlr�s  r*r�z1getPhases.<locals>.InColumnGroupPhase.startTagCol�rnr+c�z�|���}|�td����|s|SdSr'r(rs   r*rYz3getPhases.<locals>.InColumnGroupPhase.startTagOther�r)r+c���|���r)|jjsJ�|j���dS|jj���|jjd|j_dS�Nr�)	r#rXr`r�rKr�rrTrnr�s  r*r%z4getPhases.<locals>.InColumnGroupPhase.endTagColgroup�ss���(�(�*�*�
B��{�,�,�,�,���&�&�(�(�(�(�(��	�&�*�*�,�,�,�$(�K�$6�y�$A���!�!�!r+c�@�|j�dddi��dS)Nz
no-end-tagrMr�r	r�s  r*�	endTagColz/getPhases.<locals>.InColumnGroupPhase.endTagCol�s$���K�"�"�<�&�%��A�A�A�A�Ar+c�z�|���}|�td����|s|SdSr'r(rs   r*r]z1getPhases.<locals>.InColumnGroupPhase.endTagOther�r)r+r�r�r�N)rBrCrDr6rr#r�r�r�rYr%r/r]r
r^rrr_rr�s�r*�InColumnGroupPhaser!�s��������E�G�G�	�	=�	=�	=�	 �	 �	 �	�	�	�	4�	4�	4�
	�	�	�	B�	B�	B�	B�	B�	B�	�	�	�2�&�1�
�U�'�(�
�K� �3
����#0���/��/�
��(�
�I��1
���
�!,�
���r+r1c���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zejd
�jfde	fde
fdefg��Zee_ejde
fdefdefg��Zee_dS)�#getPhases.<locals>.InTableBodyPhasec��|jjdjdvr7|jj���|jjdjdv�7|jjdjdkr|jjsJ�dSdS)Nr�)r�r�r�r�r�)rKr�rMrrXr`rts r*�clearStackToTableBodyContextz@getPhases.<locals>.InTableBodyPhase.clearStackToTableBodyContext�s����)�(��,�1�:K�K�K��	�&�*�*�,�,�,�	�)�(��,�1�:K�K�K�
�y�%�b�)�.�&�8�8��{�,�,�,�,�9�8�,�,r+c�N�|jjd���dSr-rrts r*r�z.getPhases.<locals>.InTableBodyPhase.processEOF��$���K��y�)�4�4�6�6�6�6�6r+c�L�|jjd�|��Sr-r�r�s  r*r�z:getPhases.<locals>.InTableBodyPhase.processSpaceCharacters�� ���;�%�i�0�G�G��N�N�Nr+c�L�|jjd�|��Sr-rr�s  r*r�z5getPhases.<locals>.InTableBodyPhase.processCharacters�� ���;�%�i�0�B�B�5�I�I�Ir+c��|���|j�|��|jjd|j_dS)Nr�)r5rKr�rXrTrnr�s  r*�
startTagTrz.getPhases.<locals>.InTableBodyPhase.startTagTrsD���-�-�/�/�/��I�#�#�E�*�*�*� $�� 2�7� ;�D�K���r+c��|j�dd|di��|�tdd����|S)Nzunexpected-cell-in-table-bodyrMr�r�)rXr�r=r<r�s  r*�startTagTableCellz5getPhases.<locals>.InTableBodyPhase.startTagTableCellsL���K�"�"�#B�$*�E�&�M�#:�
<�
<�
<��O�O�O�D�*�=�=�>�>�>��Lr+c��|j�dd���s8|j�dd���s|j�dd���rM|���|�t	|jjdj����|S|jjsJ�|j�	��dS�Nr�r�r�r�r�r��
rKr�r5�endTagTableRowGroupr<r�rMrXr`r�r�s  r*�startTagTableOtherz6getPhases.<locals>.InTableBodyPhase.startTagTableOthers����	�(�(��'�(�B�B�

)��	�(�(��'�(�B�B�

)��I�,�,�W�g�,�F�F�

)��1�1�3�3�3��(�(�#�D�I�$:�2�$>�$C�D�D�F�F�F����{�,�,�,�,���&�&�(�(�(�(�(r+c�L�|jjd�|��Sr-rSr�s  r*rYz1getPhases.<locals>.InTableBodyPhase.startTagOther� ���;�%�i�0�@�@��G�G�Gr+c�0�|j�|dd���rP|���|jj���|jjd|j_dS|j�dd|di��dS)NrMr�r�r�� unexpected-end-tag-in-table-body)	rKr�r5r�rrXrTrnr�r�s  r*rCz7getPhases.<locals>.InTableBodyPhase.endTagTableRowGroups����y�'�'��f�
�w�'�G�G�
@��1�1�3�3�3��	�&�*�*�,�,�,�$(�K�$6�y�$A���!�!�!���&�&�'I�(.��f�
�'>�@�@�@�@�@r+c��|j�dd���s8|j�dd���s|j�dd���rM|���|�t	|jjdj����|S|jjsJ�|j�	��dSrArBr�s  r*r�z/getPhases.<locals>.InTableBodyPhase.endTagTable%s����	�(�(��'�(�B�B�

)��	�(�(��'�(�B�B�

)��I�,�,�W�g�,�F�F�

)��1�1�3�3�3��(�(�#�D�I�$:�2�$>�$C�D�D�F�F�F����{�,�,�,�,���&�&�(�(�(�(�(r+c�L�|j�dd|di��dS)NrHrMr	r�s  r*r�z0getPhases.<locals>.InTableBodyPhase.endTagIgnore2�5���K�"�"�#E�$*�E�&�M�#:�
<�
<�
<�
<�
<r+c�L�|jjd�|��Sr-rr�s  r*r]z/getPhases.<locals>.InTableBodyPhase.endTagOther6� ���;�%�i�0�>�>�u�E�E�Er+r�r��r�r�)r�r�r�r�r�r�r�r�)r�r�r�r�r�r�r�r�N)rBrCrDr6rr5r�r�r�r=r?rDrYrCr�r�r]r
r^rrr_rr�s�r*�InTableBodyPhaser3�sl��������E�G�G�	�	-�	-�	-�	7�	7�	7�	O�	O�	O�	J�	J�	J�	<�	<�	<�
	�	�	�	)�	)�	)�	H�	H�	H�	@�	@�	@�	)�	)�	)�	<�	<�	<�	F�	F�	F�2�&�1�
�U�'�(�
�:��
�,�-�
F�
�
!�	3
����#0���/��/�
(�*=�>�
�k�"��!�
#�1
���
�!,�
���r+rOc���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zejd�jfde
fdefg��Zee_ejde
fdefdefdefg��Zee_dS)�getPhases.<locals>.InRowPhasec��|jjdjdvrk|j�dd|jjdji��|jj���|jjdjdv�idSdS)Nr�)r�r�z'unexpected-implied-end-tag-in-table-rowrM)rKr�rMrXr�rrts r*�clearStackToTableRowContextz9getPhases.<locals>.InRowPhase.clearStackToTableRowContextOs����)�(��,�1��G�G���&�&�'P�(.��	�0F�r�0J�0O�'P�R�R�R��	�&�*�*�,�,�,��)�(��,�1��G�G�G�G�G�Gr+c�<�|j�dd���S)Nr�r�r�rrts r*�ignoreEndTagTrz,getPhases.<locals>.InRowPhase.ignoreEndTagTrUs ���y�/�/��g�/�F�F�F�Fr+c�N�|jjd���dSr-rrts r*r�z(getPhases.<locals>.InRowPhase.processEOFYr7r+c�L�|jjd�|��Sr-r�r�s  r*r�z4getPhases.<locals>.InRowPhase.processSpaceCharacters\r9r+c�L�|jjd�|��Sr-rr�s  r*r�z/getPhases.<locals>.InRowPhase.processCharacters_r;r+c���|���|j�|��|jjd|j_|jj�t��dS)Nr�)	rSrKr�rXrTrnr�r�rr�s  r*r?z/getPhases.<locals>.InRowPhase.startTagTableCellbs]���,�,�.�.�.��I�#�#�E�*�*�*� $�� 2�8� <�D�K���I�.�5�5�f�=�=�=�=�=r+c�z�|���}|�td����|s|SdS�Nr��rU�endTagTrr<rs   r*rDz0getPhases.<locals>.InRowPhase.startTagTableOtherhsD���.�.�0�0�L��M�M�/�$�/�/�0�0�0��
���
�
r+c�L�|jjd�|��Sr-rSr�s  r*rYz+getPhases.<locals>.InRowPhase.startTagOtherorFr+c��|���sP|���|jj���|jjd|j_dS|jjsJ�|j�	��dSr�)
rUrSrKr�rrXrTrnr`r�r�s  r*r]z&getPhases.<locals>.InRowPhase.endTagTrrs����&�&�(�(�
)��0�0�2�2�2��	�&�*�*�,�,�,�$(�K�$6�}�$E���!�!�!��{�,�,�,�,���&�&�(�(�(�(�(r+c�z�|���}|�td����|s|SdSr[r\rs   r*r�z)getPhases.<locals>.InRowPhase.endTagTable|sF���.�.�0�0�L��M�M�/�$�/�/�0�0�0� �
���
�
r+c���|j�|dd���r$|�td����|S|j���dS)NrMr�r�r�)rKr�r]r<rXr�r�s  r*rCz1getPhases.<locals>.InRowPhase.endTagTableRowGroup�s\���y�'�'��f�
�w�'�G�G�
)��
�
�o�d�3�3�4�4�4�����&�&�(�(�(�(�(r+c�L�|j�dd|di��dS)Nzunexpected-end-tag-in-table-rowrMr	r�s  r*r�z*getPhases.<locals>.InRowPhase.endTagIgnore�s5���K�"�"�#D�$*�E�&�M�#:�
<�
<�
<�
<�
<r+c�L�|jjd�|��Sr-rr�s  r*r]z)getPhases.<locals>.InRowPhase.endTagOther�rMr+r�rN)r�r�r�r�r�r�r�r�r�r�)r�r�r�r�r�r�r�N)rBrCrDr6rrSrUr�r�r�r?rDrYr]r�rCr�r]r
r^rrr_rr�s�r*�
InRowPhaserQJs{��������E�G�G�	�	-�	-�	-�	G�	G�	G�	7�	7�	7�	O�	O�	O�	J�	J�	J�	>�	>�	>�	�	�	�	H�	H�	H�	)�	)�	)�	�	�	�	)�	)�	)�	<�	<�	<�	F�	F�	F�2�&�1�
�U�'�(�
�,�-��'�
)�3
����#0���/��/�
�8��
�k�"�
(�*=�>�
G�
�
�	1
���
�!,�
���r+rdc����eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ejd
�jfdefg��Ze	e_ejde
fd
efdefg��Ze
e_dS)�getPhases.<locals>.InCellPhasec��|j�dd���r$|�td����dS|j�dd���r$|�td����dSdS�Nr�r�r�r�)rKr��endTagTableCellr<rts r*�	closeCellz(getPhases.<locals>.InCellPhase.closeCell�s����y�'�'��g�'�>�>�
<��$�$�_�T�%:�%:�;�;�;�;�;���)�)�$��)�@�@�
<��$�$�_�T�%:�%:�;�;�;�;�;�
<�
<r+c�N�|jjd���dSrRrrts r*r�z)getPhases.<locals>.InCellPhase.processEOF�rr+c�L�|jjd�|��SrRrr�s  r*r�z0getPhases.<locals>.InCellPhase.processCharacters�rr+c���|j�dd���s|j�dd���r|���|S|jjsJ�|j���dSrh)rKr�rjrXr`r�r�s  r*rDz1getPhases.<locals>.InCellPhase.startTagTableOther�s~���	�(�(��w�(�?�?�
)��I�,�,�T�7�,�C�C�
)���� � � ����{�,�,�,�,���&�&�(�(�(�(�(r+c�L�|jjd�|��SrRrSr�s  r*rYz,getPhases.<locals>.InCellPhase.startTagOther�rTr+c�h�|j�|dd���r�|j�|d��|jjdj|dkrV|j�dd|di��	|jj���}|j|dkrn�1n|jj���|j���|jj	d|j_
dS|j�dd|di��dS)	NrMr�r�r�zunexpected-cell-end-tagTr�r�)rKr�rQr�rMrXr�rr�rTrnr�s   r*riz.getPhases.<locals>.InCellPhase.endTagTableCell�s,���y�'�'��f�
�w�'�G�G�
V��	�0�0��v��?�?�?��9�)�"�-�2�e�F�m�C�C��K�*�*�+D�,2�E�&�M�+B�D�D�D�"�#�y�5�9�9�;�;���9��f�
�5�5�!�"�"��I�*�.�.�0�0�0��	�7�7�9�9�9�$(�K�$6�w�$?���!�!�!���&�&�';�f�e�F�m�=T�U�U�U�U�Ur+c�L�|j�dd|di��dSr�r	r�s  r*r�z+getPhases.<locals>.InCellPhase.endTagIgnore�r�r+c��|j�|dd���r|���|S|j���dS)NrMr�r�)rKr�rjrXr�r�s  r*�endTagImplyz*getPhases.<locals>.InCellPhase.endTagImply�sT���y�'�'��f�
�w�'�G�G�
)���� � � �����&�&�(�(�(�(�(r+c�L�|jjd�|��SrRrr�s  r*r]z*getPhases.<locals>.InCellPhase.endTagOther�rr+r�rrN)r�r�r�r�r�rxN)rBrCrDr6rrjr�r�rDrYrir�rrr]r
r^rrr_rr�s�r*�InCellPhaserf�s*��������E�G�G�	�	<�	<�	<�	6�	6�	6�	I�	I�	I�	)�	)�	)�	G�	G�	G�	V�	V�	V�"	R�	R�	R�	)�	)�	)�	E�	E�	E�2�&�1�
�U�'�(��0�
2�3
����
#0���/��/�
�?�+�
;�\�J�
7��E�1
���
�
!,�
���r+rtc	���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zejd
�jfdefdefde	fde
fdefg��Zee_ejde
fdefdefg��Zee_dS)� getPhases.<locals>.InSelectPhasec��|jjdjdkr|j�d��dS|jjsJ�dS)Nr�r�z
eof-in-selectr�rts r*r�z+getPhases.<locals>.InSelectPhase.processEOF�sM���y�%�b�)�.�&�8�8���&�&��7�7�7�7�7��{�,�,�,�,�,�,r+c�b�|ddkrdS|j�|d��dSrrr�s  r*r�z2getPhases.<locals>.InSelectPhase.processCharacters�s6���V�}��(�(����I� � ��v��/�/�/�/�/r+c��|jjdjdkr|jj���|j�|��dSrI�rKr�rMrr�r�s  r*�startTagOptionz/getPhases.<locals>.InSelectPhase.startTagOption�sM���y�%�b�)�.�(�:�:��	�&�*�*�,�,�,��I�#�#�E�*�*�*�*�*r+c��|jjdjdkr|jj���|jjdjdkr|jj���|j�|��dS)Nr�rJr]rzr�s  r*�startTagOptgroupz1getPhases.<locals>.InSelectPhase.startTagOptgroup	s|���y�%�b�)�.�(�:�:��	�&�*�*�,�,�,��y�%�b�)�.�*�<�<��	�&�*�*�,�,�,��I�#�#�E�*�*�*�*�*r+c�~�|j�d��|�td����dS)Nzunexpected-select-in-selectr�)rXr��endTagSelectr<r�s  r*rNz/getPhases.<locals>.InSelectPhase.startTagSelect	s;���K�"�"�#@�A�A�A����o�h�7�7�8�8�8�8�8r+c���|j�d��|j�dd���r$|�td����|S|jjsJ�dS)Nzunexpected-input-in-selectr�r�)rXr�rKr�rr<r`r�s  r*r)z.getPhases.<locals>.InSelectPhase.startTagInput	sn���K�"�"�#?�@�@�@��y�'�'��(�'�C�C�
-��!�!�/�(�";�";�<�<�<����{�,�,�,�,�,�,r+c�L�|jjd�|��Sr�rSr�s  r*r�z/getPhases.<locals>.InSelectPhase.startTagScript	rTr+c�L�|j�dd|di��dS)Nzunexpected-start-tag-in-selectrMr	r�s  r*rYz.getPhases.<locals>.InSelectPhase.startTagOther	�5���K�"�"�#C�$*�E�&�M�#:�
<�
<�
<�
<�
<r+c��|jjdjdkr |jj���dS|j�dddi��dS)Nr�rJ�unexpected-end-tag-in-selectrM�rKr�rMrrXr�r�s  r*�endTagOptionz-getPhases.<locals>.InSelectPhase.endTagOption	sf���y�%�b�)�.�(�:�:��	�&�*�*�,�,�,�,�,���&�&�'E�(.��'9�;�;�;�;�;r+c�^�|jjdjdkr9|jjdjdkr|jj���|jjdjdkr |jj���dS|j�dddi��dS)Nr�rJ���r]r�rMr�r�s  r*�endTagOptgroupz/getPhases.<locals>.InSelectPhase.endTagOptgroup%	s����	�&�r�*�/�8�;�;��I�*�2�.�3�z�A�A��	�&�*�*�,�,�,��y�%�b�)�.�*�<�<��	�&�*�*�,�,�,�,�,���&�&�'E�(.�
�';�=�=�=�=�=r+c�f�|j�dd���rm|jj���}|jdkr)|jj���}|jdk�)|j���dS|jjsJ�|j���dS)Nr�r�)	rKr�r�rrMrXrpr`r�r�s   r*rz-getPhases.<locals>.InSelectPhase.endTagSelect2	s����y�'�'��(�'�C�C�
)��y�-�1�1�3�3���i�8�+�+��9�1�5�5�7�7�D��i�8�+�+���.�.�0�0�0�0�0��{�,�,�,�,���&�&�(�(�(�(�(r+c�L�|j�dd|di��dS)Nr�rMr	r�s  r*r]z,getPhases.<locals>.InSelectPhase.endTagOther=	�5���K�"�"�#A�$*�E�&�M�#:�
<�
<�
<�
<�
<r+r�rJr]r�)r=r�r�r�N)rBrCrDr6rr�r�r{r}rNr)r�rYr�r�rr]r
r^rrr_rr�s�r*�
InSelectPhaserv�sg��������E�G�G�	�	-�	-�	-�	0�	0�	0�
	+�	+�	+�	+�	+�	+�	9�	9�	9�	-�	-�	-�	G�	G�	G�	<�	<�	<�	;�	;�	;�	=�	=�	=�		)�		)�		)�	<�	<�	<�2�&�1�
�U�'�(�
�~�&�
�)�*�
�~�&�
,�m�<�
�~�&�
3
����#0���/��/�
�|�$�
��(�
�|�$�1
���
�
!,�
���r+r�c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
ejdefg��Z
ee
_ejde	fg��Ze
e_dS)	�'getPhases.<locals>.InSelectInTablePhasec�N�|jjd���dS�Nr�rrts r*r�z2getPhases.<locals>.InSelectInTablePhase.processEOFU	s$���K��z�*�5�5�7�7�7�7�7r+c�L�|jjd�|��Sr�rr�s  r*r�z9getPhases.<locals>.InSelectInTablePhase.processCharactersX	s ���;�%�j�1�C�C�E�J�J�Jr+c��|j�dd|di��|�td����|S)Nz5unexpected-table-element-start-tag-in-select-in-tablerMr�)rXr�r]r<r�s  r*r$z5getPhases.<locals>.InSelectInTablePhase.startTagTable[	sI���K�"�"�#Z�]c�ej�kq�er�\s�t�t�t����_�X�6�6�7�7�7��Lr+c�L�|jjd�|��Sr�rSr�s  r*rYz5getPhases.<locals>.InSelectInTablePhase.startTagOther`	s ���;�%�j�1�A�A�%�H�H�Hr+c���|j�dd|di��|j�|dd���r$|�td����|SdS)Nz3unexpected-table-element-end-tag-in-select-in-tablerMr�r�r�)rXr�rKr�r]r<r�s  r*r�z3getPhases.<locals>.InSelectInTablePhase.endTagTablec	st���K�"�"�#X�[a�ch�io�cp�Zq�r�r�r��y�'�'��f�
�w�'�G�G�
�� � ���!:�!:�;�;�;���
�
r+c�L�|jjd�|��Sr�rr�s  r*r]z3getPhases.<locals>.InSelectInTablePhase.endTagOtheri	s ���;�%�j�1�?�?��F�F�Fr+)r�r�r�r�r�r�r�r�N)rBrCrDr6rr�r�r$rYr�r]r
r^rr_rrJr+r*�InSelectInTablePhaser�R	s��������E�G�G�	�	8�	8�	8�	K�	K�	K�	�	�	�
	I�	I�	I�	�	�	�	G�	G�	G�2�&�1�
N�
�
�3
����#0���/��/�
N�
�
�1
���
�!,�
���r+r�c�Z��eZdZe��Zegd���Zd�Z�fd�Zd�Z	d�Z
dS)�(getPhases.<locals>.InForeignContentPhase),r�r�r�r�rFr�r�r�r,r�r�r�r��h1�h2�h3�h4�h5�h6r�r9r�r0r�r�r�r;rr�r)r�rPr�r��spanr�r��sub�supr�r�r�r��varc��idd�dd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�id#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|vr||dH|dH<dSdS)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�textpathrMrJ)rOr��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�#4�"&�y�##4�$&�y�%#4�&&�y�'#4�(-�.>�)#4�*&�y�+#4�,&�y�-#4�.*�=�/#4�0+�N�1#4�2'�
�3#4�4+�N�5#4�61�2F�7#4�8*�=�9#4�:%�h�;#4�<+�N�=#4�>,�_�?#4�@'�
�A#4�B-�.>�C#4�#4�D/?�(2�G#4�#4�#4�L�J�V�}��,�,� ,�U�6�]� ;��f�
�
�
�-�,r+c����|ddkrd|d<n7|jjr+td�|dD����rd|j_��||��dS)Nr�r�u�c3�(K�|]
}|tvV��dSr4r�r�s  r*�	<genexpr>zMgetPhases.<locals>.InForeignContentPhase.processCharacters.<locals>.<genexpr>�	s'����L�L�d�d�/�1�L�L�L�L�L�Lr+F)rXrsr�r�)rOr�rs  �r*r�z:getPhases.<locals>.InForeignContentPhase.processCharacters�	ss����V�}��(�(� (��f�
�
��+�(�
/��L�L�e�F�m�L�L�L�L�L�
/�).���&��#�#�D�%�0�0�0�0�0r+c���|jjd}|d|jvs:|ddk�rbt|d�����hd�z�r5|j�dd|di��|jjdj|jjkr�|j�	|jjd��s�|j�
|jjd��s�|jj���|jjdj|jjkrT|j�	|jjd��s*|j�
|jjd����|S|jtdkr|j�
|��nE|jtdkr/|�|��|j�|��|j�|��|j|d	<|j�|��|d
r%|jj���d|d<dSdS)
Nr�rMr�r�>�face�size�colorz*unexpected-html-element-in-foreign-contentr{r�r}r�Tr�)rKr��breakoutElements�set�keysrXr�r}r�r�r�rrrr�rrr�)rOr�r�s   r*r�z8getPhases.<locals>.InForeignContentPhase.processStartTag�	sc���)�0��4�K��f�
��!6�6�6��v��&�(�(��U�6�]�'�'�)�)�*�*�-F�-F�-F�F�)���&�&�'S�(.��f�
�'>�@�@�@��y�-�b�1�;��y�1�2�2��;�=�=�d�i�>T�UW�>X�Y�Y�2� �;�C�C�D�I�DZ�[]�D^�_�_�2��I�*�.�.�0�0�0�	�y�-�b�1�;��y�1�2�2��;�=�=�d�i�>T�UW�>X�Y�Y�2� �;�C�C�D�I�DZ�[]�D^�_�_�2�
���(�J�x�,@�@�@��K�6�6�u�=�=�=�=� �*�j��.?�?�?��*�*�5�1�1�1��K�3�3�E�:�:�:���3�3�E�:�:�:�%0�%:��k�"��	�'�'��.�.�.���'�<��I�*�.�.�0�0�0�7;�E�3�4�4�4�<�<r+c�F�t|jj��dz
}|jjd}|j�t
��|dkr#|j�dd|di��	|j�t
��|dkr�|jj|jj	dkr9|jj�
��|jjj|j_|jj���|kr0|jjsJ�|jj���|k�0d}nN|dz}|jj|}|j
|jjkr��|jj�|��}	|S)Nrr�rMr�Tr�)r�rKr�rMrrrXr�rnrTr�r�rr}r�r�)rOr��	nodeIndexr�r�s     r*r�z6getPhases.<locals>.InForeignContentPhase.processEndTag�	ss���D�I�2�3�3�a�7�I��9�)�"�-�D��y�"�"�#3�4�4��f�
�E�E���&�&�';�f�e�F�m�=T�U�U�U�
��9�&�&�'7�8�8�E�&�M�I�I��{�(�D�K�,>�}�,M�M�M���)�9�9�;�;�;�,0�K�,=�,K���)��)�0�4�4�6�6�$�>�>�#�y�5�5�5�5��)�0�4�4�6�6�$�>�>� $�I���Q��	��y�-�i�8���>�T�Y�%?�?�?�� $�� 1� ?� ?�� F� F�I���r+N)rBrCrDr6rr�r�r�r�r�r�r�s�r*�InForeignContentPhaser�x	s���������E�G�G�	�$�9�&G�&G�&G�H�H��'	<�'	<�'	<�R	1�	1�	1�	1�	1�	<�	<�	<�6	�	�	�	�	r+r�c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zej
defg��Ze	e_ej
de
fg��Zee_d	S)
�!getPhases.<locals>.AfterBodyPhasec��dSr4rJrts r*r�z,getPhases.<locals>.AfterBodyPhase.processEOF�	����Dr+c�\�|j�||jjd��dS)Nrrr�s  r*r�z0getPhases.<locals>.AfterBodyPhase.processComment�	s,��
�I�#�#�E�4�9�+A�!�+D�E�E�E�E�Er+c�r�|j�d��|jjd|j_|S)Nzunexpected-char-after-bodyr��rXr�rTrnr�s  r*r�z3getPhases.<locals>.AfterBodyPhase.processCharacters�	s2���K�"�"�#?�@�@�@� $�� 2�8� <�D�K���Lr+c�L�|jjd�|��SrRrSr�s  r*rz.getPhases.<locals>.AfterBodyPhase.startTagHtml�	rTr+c��|j�dd|di��|jjd|j_|S)Nzunexpected-start-tag-after-bodyrMr�rr�s  r*rYz/getPhases.<locals>.AfterBodyPhase.startTagOther�	sD���K�"�"�#D�$*�E�&�M�#:�
<�
<�
<� $�� 2�8� <�D�K���Lr+c��|jjr|j�d��dS|jjd|j_dS)Nz'unexpected-end-tag-after-body-innerhtml�afterAfterBody)rXr`r�rTrn)rOrMs  r*rgz,getPhases.<locals>.AfterBodyPhase.endTagHtml
sH���{�$�
I���&�&�'P�Q�Q�Q�Q�Q�$(�K�$6�7G�$H���!�!�!r+c��|j�dd|di��|jjd|j_|S)Nzunexpected-end-tag-after-bodyrMr�rr�s  r*r]z-getPhases.<locals>.AfterBodyPhase.endTagOther

sD���K�"�"�#B�$*�E�&�M�#:�
<�
<�
<� $�� 2�8� <�D�K���Lr+r�N)rBrCrDr6rr�r�r�rrYrgr]r
r^rr_rrJr+r*�AfterBodyPhaser��	s��������E�G�G�	�	�	�	�	F�	F�	F�
	�	�	�
	G�	G�	G�	�	�	�	I�	I�	I�	�	�	�2�&�1�
�\�"�3
����#0���/��/�&�*�1E�0F�G�G�
� +�
���r+r	c����eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
jd	�jfd
efdefde	fg��Ze
e_e
jd
efg��Zee_d
S)�"getPhases.<locals>.InFramesetPhasec��|jjdjdkr|j�d��dS|jjsJ�dS)Nr�r�zeof-in-framesetr�rts r*r�z-getPhases.<locals>.InFramesetPhase.processEOF
sN���y�%�b�)�.�&�8�8���&�&�'8�9�9�9�9�9��{�,�,�,�,�,�,r+c�:�|j�d��dS)Nzunexpected-char-in-framesetr	r�s  r*r�z4getPhases.<locals>.InFramesetPhase.processCharacters"
s���K�"�"�#@�A�A�A�A�Ar+c�:�|j�|��dSr4)rKr�r�s  r*r�z3getPhases.<locals>.InFramesetPhase.startTagFrameset%
s���I�#�#�E�*�*�*�*�*r+c�v�|j�|��|jj���dSr4rlr�s  r*�
startTagFramez0getPhases.<locals>.InFramesetPhase.startTagFrame(
s5���I�#�#�E�*�*�*��I�"�&�&�(�(�(�(�(r+c�L�|jjd�|��SrRrSr�s  r*�startTagNoframesz3getPhases.<locals>.InFramesetPhase.startTagNoframes,
rTr+c�L�|j�dd|di��dS)Nz unexpected-start-tag-in-framesetrMr	r�s  r*rYz0getPhases.<locals>.InFramesetPhase.startTagOther/
rKr+c�<�|jjdjdkr|j�d��n|jj���|jjs9|jjdjdkr |jjd|j_dSdSdS)Nr�r�z)unexpected-frameset-in-frameset-innerhtmlr��
afterFrameset)	rKr�rMrXr�rr`rTrnr�s  r*�endTagFramesetz1getPhases.<locals>.InFramesetPhase.endTagFrameset3
s����y�%�b�)�.�&�8�8���&�&�'R�S�S�S�S��	�&�*�*�,�,�,��K�)�
H��I�*�2�.�3�z�A�A�%)�K�$6��$G���!�!�!�	
H�
H�A�Ar+c�L�|j�dd|di��dS)Nzunexpected-end-tag-in-framesetrMr	r�s  r*r]z.getPhases.<locals>.InFramesetPhase.endTagOther?
r�r+r�r�r�r�N)rBrCrDr6rr�r�r�rrrYrr]r
r^rrr_rr�s�r*�InFramesetPhaser
s��������E�G�G�	�	-�	-�	-�	B�	B�	B�	+�	+�	+�	)�	)�	)�	G�	G�	G�	<�	<�	<�
	H�
	H�
	H�	<�	<�	<�2�&�1�
�U�'�(�
�)�*�
�m�$�
�)�*�	3
����#0���/��/�
��(�1
���
�!,�
���r+rc���eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
ejd�j
fdefg��Zee_ejde	fg��Ze
e_d	S)
�%getPhases.<locals>.AfterFramesetPhasec��dSr4rJrts r*r�z0getPhases.<locals>.AfterFramesetPhase.processEOFT
rr+c�:�|j�d��dS)Nzunexpected-char-after-framesetr	r�s  r*r�z7getPhases.<locals>.AfterFramesetPhase.processCharactersX
s���K�"�"�#C�D�D�D�D�Dr+c�L�|jjd�|��Sr�rSr�s  r*rz6getPhases.<locals>.AfterFramesetPhase.startTagNoframes[
rTr+c�L�|j�dd|di��dS)Nz#unexpected-start-tag-after-framesetrMr	r�s  r*rYz3getPhases.<locals>.AfterFramesetPhase.startTagOther^
s5���K�"�"�#H�$*�E�&�M�#:�
<�
<�
<�
<�
<r+c�>�|jjd|j_dS)N�afterAfterFrameset)rXrTrnr�s  r*rgz0getPhases.<locals>.AfterFramesetPhase.endTagHtmlb
s�� $�� 2�3G� H�D�K���r+c�L�|j�dd|di��dS)Nz!unexpected-end-tag-after-framesetrMr	r�s  r*r]z1getPhases.<locals>.AfterFramesetPhase.endTagOthere
s5���K�"�"�#F�$*�E�&�M�#:�
<�
<�
<�
<�
<r+r�r�N)rBrCrDr6rr�r�rrYrgr]r
r^rrr_rr�s�r*�AfterFramesetPhaserP
s���������E�G�G�	�	�	�	�	E�	E�	E�	G�	G�	G�	<�	<�	<�	I�	I�	I�	<�	<�	<�2�&�1�
�U�'�(�
�)�*�3
����#0���/��/�
�Z� �1
���
�!,�
���r+r"c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zej
de	fg��Ze
e_d	S)
�&getPhases.<locals>.AfterAfterBodyPhasec��dSr4rJrts r*r�z1getPhases.<locals>.AfterAfterBodyPhase.processEOFw
r#r+c�P�|j�||jj��dSr4r%r�s  r*r�z5getPhases.<locals>.AfterAfterBodyPhase.processCommentz
r'r+c�L�|jjd�|��SrRr�r�s  r*r�z=getPhases.<locals>.AfterAfterBodyPhase.processSpaceCharacters}
r�r+c�r�|j�d��|jjd|j_|S)N�expected-eof-but-got-charr�rr�s  r*r�z8getPhases.<locals>.AfterAfterBodyPhase.processCharacters�
s2���K�"�"�#>�?�?�?� $�� 2�8� <�D�K���Lr+c�L�|jjd�|��SrRrSr�s  r*rz3getPhases.<locals>.AfterAfterBodyPhase.startTagHtml�
rTr+c��|j�dd|di��|jjd|j_|S)N�expected-eof-but-got-start-tagrMr�rr�s  r*rYz4getPhases.<locals>.AfterAfterBodyPhase.startTagOther�
sD���K�"�"�#C�$*�E�&�M�#:�
<�
<�
<� $�� 2�8� <�D�K���Lr+c��|j�dd|di��|jjd|j_|S)N�expected-eof-but-got-end-tagrMr�rr�s  r*r�z4getPhases.<locals>.AfterAfterBodyPhase.processEndTag�
sD���K�"�"�#A�$*�E�&�M�#:�
<�
<�
<� $�� 2�8� <�D�K���Lr+r�N)rBrCrDr6rr�r�r�r�rrYr�r
r^rr_rJr+r*�AfterAfterBodyPhaser$t
s��������E�G�G�	�	�	�	�	?�	?�	?�	N�	N�	N�	�	�	�
	G�	G�	G�	�	�	�	�	�	�2�&�1�
�\�"�3
����#0����r+r/c��eZdZe��Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
jd	e	fd
e
fg��Zee_dS)�*getPhases.<locals>.AfterAfterFramesetPhasec��dSr4rJrts r*r�z5getPhases.<locals>.AfterAfterFramesetPhase.processEOF�
r#r+c�P�|j�||jj��dSr4r%r�s  r*r�z9getPhases.<locals>.AfterAfterFramesetPhase.processComment�
r'r+c�L�|jjd�|��SrRr�r�s  r*r�zAgetPhases.<locals>.AfterAfterFramesetPhase.processSpaceCharacters�
r�r+c�:�|j�d��dS)Nr)r	r�s  r*r�z<getPhases.<locals>.AfterAfterFramesetPhase.processCharacters�
s���K�"�"�#>�?�?�?�?�?r+c�L�|jjd�|��SrRrSr�s  r*rz7getPhases.<locals>.AfterAfterFramesetPhase.startTagHtml�
rTr+c�L�|jjd�|��Sr�rSr�s  r*�startTagNoFramesz;getPhases.<locals>.AfterAfterFramesetPhase.startTagNoFrames�
rTr+c�L�|j�dd|di��dS)Nr,rMr	r�s  r*rYz8getPhases.<locals>.AfterAfterFramesetPhase.startTagOther�
r�r+c�L�|j�dd|di��dS)Nr.rMr	r�s  r*r�z8getPhases.<locals>.AfterAfterFramesetPhase.processEndTag�
r�r+r�r�N)rBrCrDr6rr�r�r�r�rr8rYr�r
r^rr_rJr+r*�AfterAfterFramesetPhaser1�
s��������E�G�G�	�	�	�	�	?�	?�	?�	N�	N�	N�	@�	@�	@�	G�	G�	G�	G�	G�	G�	<�	<�	<�	<�	<�	<�2�&�1�
�\�"�
�)�*�3
����#0����r+r;rerdr�rVr�r�r�r�r�r�r�r�r�r�r�r�rM)r�rdr�rrr )r)rUrgr�r7rGr`r�r�r�r�r�rr1rOrdrtr�r�r�r	rr"r/r;r�r�rs                        @@@r*rSrS�s'��������*���F�F�F�F�F��|�|�E�3�7�7�8�8�F�F�F�P@�@�@�@�@�u�@�@�@�D#�#�#�#�#�%�#�#�#�J+,�+,�+,�+,�+,�%�+,�+,�+,�Zd,�d,�d,�d,�d,�e�d,�d,�d,�L=,�=,�=,�=,�=,�e�=,�=,�=,�~@,�@,�@,�@,�@,��@,�@,�@,�DR,�R,�R,�R,�R,�R,�R,�R,�e�R,�R,�R,�h,�,�,�,�,�E�,�,�,�BO,�O,�O,�O,�O,�O,�O,�u�O,�O,�O,�b-�-�-�-�-�-�-�5�-�-�-�^D,�D,�D,�D,�D,�D,�D,��D,�D,�D,�L>,�>,�>,�>,�>,�>,�>,�U�>,�>,�>,�@`,�`,�`,�`,�`,�`,�`,�5�`,�`,�`,�DW,�W,�W,�W,�W,�W,�W,�U�W,�W,�W,�rJ,�J,�J,�J,�J,�J,�J,�e�J,�J,�J,�Xa,�a,�a,�a,�a,�a,�a,��a,�a,�a,�F$,�$,�$,�$,�$,�u�$,�$,�$,�Lp�p�p�p�p�p�p��p�p�p�d,,�,,�,,�,,�,,��,,�,,�,,�\6,�6,�6,�6,�6,�6,�6,�%�6,�6,�6,�p",�",�",�",�",�",�",�U�",�",�",�H#0�#0�#0�#0�#0�e�#0�#0�#0�J!0�!0�!0�!0�!0�%�!0�!0�!0�J��<���o��	�o��	�+�	�
	�-��	�^�
�	�+��	�	��	�<��	�'��	�^��	�+��	�'��	���	�+�� 	�M�!�"	�/�#�$2�#�%�+�-�5�/���r+c����t|d��t���z}|rGt|d���fd�|d���D����|d<dSdS)Nr�c3�N�K�|]\}}��||��|fV�� dSr4)r�)rL�k�vr�s   �r*r�z$adjust_attributes.<locals>.<genexpr>�
sX�����,O�,O�04��1�.:�-=�-=�a��-C�-C�Q�,G�,O�,O�,O�,O�,O�,Or+)rr9r5)r�r��needs_adjustments ` r*r�r��
s������f�
�.�.��,�1G�1G�G���O�+��U�6�]�+�+�,O�,O�,O�,O�8=�f�
�8K�8K�8M�8M�,O�,O�,O�O�O��f�
�
�
�O�Or+r�Fc�.�|�i}t||||d�S)N)r9rMr�r�)r)rMr9r~r�s    r*r<r<�
s+�����
��t�$�d�J�&�(�(�(r+c��eZdZdZdS)r�zError in parsed documentN)rBrCrDr�rJr+r*r�r��
s������"�"��Dr+r�)rT)r,rT)r�NF),�
__future__rrr�sixrrr7r,r	r
r�treebuilders.baserr
�	constantsrrrrrrrrrrrrr�rrrrr$r/rFr�r#�memoizerSr�r<�	Exceptionr�rJr+r*�<module>rIs@��B�B�B�B�B�B�B�B�B�B�(�(�(�(�(�(�(�(�����������������������%�%�%�%�%�%�������
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�"�"�"�"�.?�?�?�?�2	�	�	�s)�s)�s)�s)�s)��s)�s)�s)�l	��J%�J%���J%�ZJO�O�O�59� %�(�(�(�(�	�	�	�	�	��	�	�	�	�	r+

Youez - 2016 - github.com/yon3zu
LinuXploit