� ��^i����6�ddlmZmZmZddlmZmZddlZddlm Z ddlm Z ddlm Z ddl 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('

This is a doc

') ��namespaceHTMLElements)r �getTreeBuilder� HTMLParser�parse)�doc� treebuilderr!�kwargs�tb�ps ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/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('this is a fragment') r � container)r r"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..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..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 �Z d �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*� z'HTMLParser.__init__..ys9���1�1�1�i�d�C�t�S�S��t�y�1�1�1�1�1r+)�strictr r"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|j j |j _ nH|j tvr|j j|j _ n#|j dkr|j j|j _ n |jd|_|j���|���nd|_ |jd|_d|_d|_d|_dS)NFz no quirks� plaintext� 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 | �d i����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�� ?����.�.�$)�$;�$;�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('

This is a doc

') 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('this is a fragment') 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���%�!;�<�<�<�<����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..log..�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..log..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..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..getMetaclass�s�� � �-�n�=�=� =��Kr+c�L�eZdZdZdZd�Zd�Zd�Zd�Zd�Z d�Z d �Z d �Z d �Z d S) �getPhases..PhasezNBase class for helper object that implements each phase of processing )rXrK�__startTagCache� __endTagCachec�>�||_||_i|_i|_dSr4)rXrK�_Phase__startTagCache�_Phase__endTagCache)rOrXrKs r*rVz!getPhases..Phase.__init__�s&�� �D�K��D�I�#%�D� �!#�D� � � r+c��t�r4)�NotImplementedErrorrts r*r�z#getPhases..Phase.processEOF�s��%� %r+c�\�|j�||jjd��dS)Nr��rK� insertCommentr�r�s r*r�z'getPhases..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..Phase.processDoctype�s�� �K� "� "�#7� 8� 8� 8� 8� 8r+c�F�|j�|d��dS�Nr��rK� insertTextr�s r*r�z*getPhases..Phase.processCharacters��"�� �I� � ��v�� /� /� /� /� /r+c�F�|j�|d��dSr r r�s r*r�z/getPhases..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..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..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..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�Z d�Z d S) �getPhases..InitialPhasec��dSr4rJr�s r*r�z6getPhases..InitialPhase.processSpaceCharacters���� �Dr+c�P�|j�||jj��dSr4�rKr�documentr�s r*r�z.getPhases..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..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..InitialPhase.anythingElseZs&��%-�D�K� "� $� � 2�<� @�D�K� � � r+c�b�|j�d��|���|S)Nzexpected-doctype-but-got-chars�rXr�r0r�s r*r�z1getPhases..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..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..InitialPhase.processEndTagisB�� �K� "� "�#E�$*�E�&�M�#:� <� <� <� � � � � � ��Lr+c�b�|j�d��|���dS)Nzexpected-doctype-but-got-eofTr2rts r*r�z*getPhases..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�Z dS) �"getPhases..BeforeHtmlPhasec��|j�tdd����|jjd|j_dS)Nr�r�r�)rK� insertRoot�impliedTagTokenrXrTrnrts r*roz4getPhases..BeforeHtmlPhase.insertHtmlElementxs<�� �I� � ����!D�!D� E� E� E� $� � 2�<� @�D�K� � � r+c�.�|���dS�NT�rorts r*r�z-getPhases..BeforeHtmlPhase.processEOF}s�� � "� "� $� $� $��4r+c�P�|j�||jj��dSr4r%r�s r*r�z1getPhases..BeforeHtmlPhase.processComment�r'r+c��dSr4rJr�s r*r�z9getPhases..BeforeHtmlPhase.processSpaceCharacters�r#r+c�.�|���|Sr4r?r�s r*r�z4getPhases..BeforeHtmlPhase.processCharacters�s�� � "� "� $� $� $��Lr+c�^�|ddkr d|j_|���|S)NrMr�T)rXrfror�s r*r�z2getPhases..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..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�Z d�Z e jd efd e fg��Ze e_e jd e fg��Ze e_d S) �"getPhases..BeforeHeadPhasec�L�|�tdd����dS)Nr�r�T�� startTagHeadr<rts r*r�z-getPhases..BeforeHeadPhase.processEOF�s%�� � � �o�f�j�A�A� B� B� B��4r+c��dSr4rJr�s r*r�z9getPhases..BeforeHeadPhase.processSpaceCharacters�r#r+c�L�|�tdd����|S�Nr�r�rKr�s r*r�z4getPhases..BeforeHeadPhase.processCharacters��%�� � � �o�f�j�A�A� B� B� B��Lr+c�L�|jjd�|��S�Nr��rXrTr�r�s r*rz/getPhases..BeforeHeadPhase.startTagHtml�� ���;�%�h�/�?�?��F�F� Fr+c��|j�|��|jjd|j_|jjd|j_dS)Nr��inHead)rKr�r�� headPointerrXrTrnr�s r*rLz/getPhases..BeforeHeadPhase.startTagHead�sF�� �I� #� #�E� *� *� *�$(�I�$:�2�$>�D�I� !� $� � 2�8� <�D�K� � � r+c�L�|�tdd����|SrOrKr�s r*� startTagOtherz0getPhases..BeforeHeadPhase.startTagOther�rPr+c�L�|�tdd����|SrOrKr�s r*�endTagImplyHeadz2getPhases..BeforeHeadPhase.endTagImplyHead�rPr+c�L�|j�dd|di��dS)Nzend-tag-after-implied-rootrMr r�s r*� endTagOtherz.getPhases..BeforeHeadPhase.endTagOther�s5�� �K� "� "�#?�$*�E�&�M�#:� <� <� <� <� .InHeadPhasec�.�|���dSr>�r0rts r*r�z)getPhases..InHeadPhase.processEOF���� � � � � � ��4r+c�.�|���|Sr4rdr�s r*r�z0getPhases..InHeadPhase.processCharacters���� � � � � � ��Lr+c�L�|jjd�|��SrRrSr�s r*rz+getPhases..InHeadPhase.startTagHtml�rTr+c�:�|j�d��dS)Nz!two-heads-are-not-better-than-oner r�s r*rLz+getPhases..InHeadPhase.startTagHead�s�� �K� "� "�#F� G� G� G� G� Gr+c��|j�|��|jj���d|d<dS�NTr��rKr�r�rr�s r*�startTagBaseLinkCommandz6getPhases..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..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..InHeadPhase.startTagTitle�s �� �K� *� *�5�(� ;� ;� ;� ;� ;r+c�<�|j�|d��dS)Nr�rzr�s r*�startTagNoFramesStylez4getPhases..InHeadPhase.startTagNoFramesStyle�� �� �K� *� *�5�)� <� <� <� <� .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..InHeadPhase.startTagScriptsV�� �I� #� #�E� *� *� *�*.�+�*?�*O�D�K� !� '�(,� �(9�D�K� %� $� � 2�6� :�D�K� � � r+c�.�|���|Sr4rdr�s r*rYz,getPhases..InHeadPhase.startTagOtherrgr+c��|jjj���}|jdksJd|jz���|jjd|j_dS)Nr�zExpected head got %s� afterHead�rXrKr�rrMrTrn�rOr�r�s r*� endTagHeadz)getPhases..InHeadPhase.endTagHead sX���;�#�0�4�4�6�6�D��9��&�&�&�(>���(J�&�&�&� $� � 2�;� ?�D�K� � � r+c�.�|���|Sr4rdr�s r*�endTagHtmlBodyBrz/getPhases..InHeadPhase.endTagHtmlBodyBrrgr+c�L�|j�dd|di��dS�N�unexpected-end-tagrMr r�s r*r]z*getPhases..InHeadPhase.endTagOther�*�� �K� "� "�#7�&�%��-�9P� Q� Q� Q� Q� Qr+c�J�|�td����dS)Nr�)r�r<rts r*r0z+getPhases..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�Z d�Z d �Z d �Zd �Zd �Zejd e fde fde fg��Ze e_ejde fdefg��Zee_dS)�&getPhases..InHeadNoscriptPhasec�b�|j�d��|���dS)Nzeof-in-head-noscriptTr2rts r*r�z1getPhases..InHeadNoscriptPhase.processEOF/s0�� �K� "� "�#9� :� :� :� � � � � � ��4r+c�L�|jjd�|��S�NrV)rXrTr�r�s r*r�z5getPhases..InHeadNoscriptPhase.processComment4s ���;�%�h�/�>�>�u�E�E� Er+c�b�|j�d��|���|S)Nzchar-in-head-noscriptr2r�s r*r�z8getPhases..InHeadNoscriptPhase.processCharacters7s0�� �K� "� "�#:� ;� ;� ;� � � � � � ��Lr+c�L�|jjd�|��Sr��rXrTr�r�s r*r�z=getPhases..InHeadNoscriptPhase.processSpaceCharacters<� ���;�%�h�/�F�F�u�M�M� Mr+c�L�|jjd�|��SrRrSr�s r*rz3getPhases..InHeadNoscriptPhase.startTagHtml?rTr+c�L�|jjd�|��Sr�rSr�s r*rmz>getPhases..InHeadNoscriptPhase.startTagBaseLinkCommandBrTr+c�L�|j�dd|di��dS�N�unexpected-start-tagrMr r�s r*�startTagHeadNoscriptz;getPhases..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..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..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..InHeadNoscriptPhase.endTagBrRr�r+c�L�|j�dd|di��dSr�r r�s r*r]z2getPhases..InHeadNoscriptPhase.endTagOtherWr�r+c�J�|�td����dS)Nr�)r�r<rts r*r0z3getPhases..InHeadNoscriptPhase.anythingElseZs$�� � � �� � ;� ;� <� <� <� <� .AfterHeadPhasec�.�|���dSr>rdrts r*r�z,getPhases..AfterHeadPhase.processEOFnrer+c�.�|���|Sr4rdr�s r*r�z3getPhases..AfterHeadPhase.processCharactersrrgr+c�L�|jjd�|��SrRrSr�s r*rz.getPhases..AfterHeadPhase.startTagHtmlvrTr+c��d|j_|j�|��|jjd|j_dS)NFr�)rXrsrKr�rTrnr�s r*� startTagBodyz.getPhases..AfterHeadPhase.startTagBodyys<��%*�D�K� "� �I� #� #�E� *� *� *� $� � 2�8� <�D�K� � � r+c�r�|j�|��|jjd|j_dS)Nr�)rKr�rXrTrnr�s r*�startTagFramesetz2getPhases..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..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..AfterHeadPhase.startTagHead�r�r+c�.�|���|Sr4rdr�s r*rYz/getPhases..AfterHeadPhase.startTagOther�rgr+c�.�|���|Sr4rdr�s r*r�z2getPhases..AfterHeadPhase.endTagHtmlBodyBr�rgr+c�L�|j�dd|di��dSr�r r�s r*r]z-getPhases..AfterHeadPhase.endTagOther�r�r+c��|j�tdd����|jjd|j_d|j_dS)Nr�r�r�T)rKr�r<rXrTrnrsrts r*r0z.getPhases..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 �Z d �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�d6e f�d7e f�d8e f�d9ef�e:ef�d:ef�d;ef�def�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..InBodyPhase)r�c�V��t�|��j|i|��|j|_dSr4)�superrV�processSpaceCharactersNonPrer�)rOr�r'� InBodyPhaser�s ��r*rVz'getPhases..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..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..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..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..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-t d�|dD����rd|j_dSdSdS)Nr��c� �g|] }|tv�� SrJ�r�rL�chars r*� zDgetPhases..InBodyPhase.processCharacters..�s-��0�0�0����0�0�0�0r+F)rKr�r rXrs�anyr�s r*r�z0getPhases..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..InBodyPhase.processSpaceCharactersNonPre�s6�� �I� 9� 9� ;� ;� ;� �I� � ��v�� /� /� /� /� /r+c�L�|jjd�|��Sr�rSr�s r*�startTagProcessInHeadz4getPhases..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..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..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..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..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..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..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..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..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���|�t d����||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..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..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..InBodyPhase.startTagNobr[s��� �I� 9� 9� ;� ;� ;��y�'�'��/�/� @�� �&�&�'M�5;��'O�'O�Q�Q�Q��"�"�?�6�#:�#:�;�;�;�� �=�=�?�?�?� � %� %�e� ,� ,� ,� ,� ,r+c�<�|j�d��rB|j�dddd���|�t d����|S|j���|j�|��d|j_dS)Nr�rrF) rKr�rXr�r�r<r�r�rsr�s r*�startTagButtonz-getPhases..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..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..InBodyPhase.startTagXmpvsu���y�'�'��X�'�>�>� 3�� � �_�S�1�1�2�2�2� �I� 9� 9� ;� ;� ;�%*�D�K� "� �K� *� *�5�)� <� <� <� <� |j�dd���r"|�t d����|j�|��d|j_|jjd|j_ dS)Nr-r)r�r�Fr�) rXrhrKr�r�r<r�rsrTrnr�s r*� startTagTablez,getPhases..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..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..InBodyPhase.startTagInput�sp����/�J� � '� '�� .� .� .��%��-�'�'��&�M�&�)�3�3�4D�E�E��Q�Q�)3�� �&�&�&�(�'�Q�Qr+c��|j�|��|jj���d|d<dSrkrlr�s r*�startTagParamSourcez2getPhases..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..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..InBodyPhase.startTagImage�s{�� �K� "� "�#D�4;��#N�#N� P� P� P� � � ��� �.InBodyPhase.startTagIsIndex�s��� �K� "� "�#3�f�i�5H� I� I� I��y�$� ����J��5��=�(�(�',�V�}�X�'>� �8�$� � � ����.InBodyPhase.startTagTextarea�sH�� �I� #� #�E� *� *� *�*.�+�*?�*K�D�K� !� '�*.�*P�D� '�%*�D�K� "� "� "r+c�H�d|j_|�|��dSr)rXrs�startTagRawtextr�s r*�startTagIFramez-getPhases..InBodyPhase.startTagIFrame�s&��%*�D�K� "� � � �� '� '� '� '� 'r+c�v�|jjr|�|��dS|�|��dSr4)rXrZrDrYr�s r*r�z/getPhases..InBodyPhase.startTagNoscript�sC���{�$� *��$�$�U�+�+�+�+�+��"�"�5�)�)�)�)�)r+c�<�|j�|d��dS)z8iframe, noembed noframes, noscript(if scripting enabled)r�Nrzr�s r*rDz.getPhases..InBodyPhase.startTagRawtext�r~r+c��|jjdjdkr,|jj�t d����|j���|jj�|��dS�Nr��option) rKr�rMrXrnr�r<r�r�r�s r*� startTagOptz*getPhases..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..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..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..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..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..InBodyPhase.startTagMisplaceds-�� �K� "� "�#A�F�E�RX�M�CZ� [� [� [� [� [r+c�l�|j���|j�|��dSr4)rKr�r�r�s r*rYz,getPhases..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..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..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..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..InBodyPhase.endTagBlockAs����V�}��%�%�.2�.O��+��i�.�.�u�V�}�=�=�G�� 3�� �0�0�2�2�2��y�%�b�)�.�%��-�?�?�� �&�&�':�V�U�6�]�.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..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..InBodyPhase.endTagHeadingms ��'� � ���9�+�+�D�1�1���I�4�4�6�6�6��E���y�%�b�)�.�%��-�?�?�� �&�&�':�V�U�6�]�.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..InBodyPhase.endTagAppletMarqueeObjects���y�'�'��f� �6�6� 3�� �0�0�2�2�2��y�%�b�)�.�%��-�?�?�� �&�&�':�V�U�6�]�.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..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 j g��Z ee _ e j defg��Ze e_ dS)�getPhases..TextPhasec�F�|j�|d��dSr r r�s r*r�z.getPhases..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..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..TextPhase.startTagOther�s�� `�P�SX�Y_�S`�`� `� `�5r+c��|jj���}|jdksJ�|jj|j_dS)Nr�)rKr�rrMrXr�rnr�s r*� endTagScriptz)getPhases..TextPhase.endTagScript�s@���9�)�-�-�/�/�D��9��(�(�(�(� $� � 9�D�K� � � r+c�n�|jj���|jj|j_dSr4)rKr�rrXr�rnr�s r*r]z(getPhases..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�Z d�Z d �Z d �Zd �Zd �Zd �Zd�Zd�Zd�Zd�Zd�Zejd�jfde fde fde fde fdefdefdefdefdefg ��Zee_ejdefdefg��Zee_dS)�getPhases..InTablePhasec��|jjdjdvr9|jj���|jjdjdv�7dSdS)Nr�)r�r�)rKr�rMrrts r*�clearStackToTableContextz8getPhases..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..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..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..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..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..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..InTablePhase.startTagColgroup�sD�� � )� )� +� +� +� �I� #� #�E� *� *� *� $� � 2�?� C�D�K� � � r+c�L�|�tdd����|S)Nr�r�)r�r<r�s r*� startTagColz+getPhases..InTablePhase.startTagCol�s%�� � !� !�/�*�j�"I�"I� J� J� J��Lr+c��|���|j�|��|jjd|j_dS�Nr�r�r�s r*�startTagRowGroupz0getPhases..InTablePhase.startTagRowGroup�sD�� � )� )� +� +� +� �I� #� #�E� *� *� *� $� � 2�=� A�D�K� � � r+c�L�|�tdd����|S)Nr�r�)r�r<r�s r*�startTagImplyTbodyz2getPhases..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..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..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..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..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..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..InTablePhase.endTagTables4���y�'�'���'�A�A� )�� �0�0�2�2�2��9�)�"�-�2�g�=�=��K�*�*�+D�7>�<@�I�.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..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..InTableTextPhase)r��characterTokensc�Z��t�|��j|i|��d|_g|_dSr4)r�rVr�r�)rOr�r'�InTableTextPhaser�s ��r*rVz,getPhases..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..InTableTextPhase.flushCharacters..<s��J�J�J�T�D��L�J�J�Jr+c� �g|] }|tv�� SrJr�r�s r*r�zGgetPhases..InTableTextPhase.flushCharacters..=s��A�A�A�D�D��/�A�A�Ar+r�r<r�)�joinr�r�rrXrTr rK)rOr�r�s r*�flushCharactersz3getPhases..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..InTableTextPhase.processCommentD�&�� � � � "� "� "� $� 2�D�K� ��Lr+c�P�|���|j|j_dSr>r�rts r*r�z.getPhases..InTableTextPhase.processEOFIs&�� � � � "� "� "� $� 2�D�K� ��4r+c�V�|ddkrdS|j�|��dS�Nr�r��r�r�r�s r*r�z5getPhases..InTableTextPhase.processCharactersNs3���V�}��(�(��� � � '� '�� .� .� .� .� .r+c�:�|j�|��dSr4rr�s r*r�z:getPhases..InTableTextPhase.processSpaceCharactersSs�� � � '� '�� .� .� .� .� .r+c�P�|���|j|j_|Sr4r�r�s r*r�z3getPhases..InTableTextPhase.processStartTagXr�r+c�P�|���|j|j_|Sr4r�r�s r*r�z1getPhases..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�Z d�Z d �Z ejd �jfd efg��Ze e_ejd e fd e fde fg��Ze e_dS)�!getPhases..InCaptionPhasec�<�|j�dd��� S)Nr�r�r��rKr�rts r*�ignoreEndTagCaptionz5getPhases..InCaptionPhase.ignoreEndTagCaptionfs ���y�/�/� �7�/�K�K�K� Kr+c�N�|jjd���dSrR�rXrTr�rts r*r�z,getPhases..InCaptionPhase.processEOFi�$�� �K� �x� (� 3� 3� 5� 5� 5� 5� 5r+c�L�|jjd�|��SrR�rXrTr�r�s r*r�z3getPhases..InCaptionPhase.processCharactersl� ���;�%�h�/�A�A�%�H�H� Hr+c���|j���|���}|jj�t d����|s|SdS�Nr��rXr�r rnr�r<�rOr�� ignoreEndTags r*�startTagTableElementz6getPhases..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..InCaptionPhase.startTagOtherwrTr+c��|����s|j���|jjdjdkr3|j�dd|jjdjd���|jjdjdkr9|jj���|jjdjdk�9|jj���|j���|jj d|j_ dS|jj sJ�|j���dS)Nr�r�r`rar�) r rKrQr�rMrXr�rr�rTrnr`r�s r*� endTagCaptionz/getPhases..InCaptionPhase.endTagCaptionzs?���+�+�-�-� )�� �0�0�2�2�2��9�)�"�-�2�i�?�?��K�*�*�+Q�7@�<@�I�.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..InCaptionPhase.endTagIgnore�r�r+c�L�|jjd�|��SrR�rXrTr�r�s r*r]z-getPhases..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�Z d�Z e jd �jfd efg��Ze e_e jd e fd e fg��Ze e_d S) �%getPhases..InColumnGroupPhasec�8�|jjdjdkS)Nr�r�)rKr�rMrts r*�ignoreEndTagColgroupz:getPhases..InColumnGroupPhase.ignoreEndTagColgroup�s���9�)�"�-�2�f�<� .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..InColumnGroupPhase.processCharacters��F���4�4�6�6�L� � � �� � ;� ;� <� <� <�� �� � � r+c��|j�|��|jj���d|d<dSrkrlr�s r*r�z1getPhases..InColumnGroupPhase.startTagCol�rnr+c�z�|���}|�td����|s|SdSr'r(rs r*rYz3getPhases..InColumnGroupPhase.startTagOther�r)r+c���|���r)|jjsJ�|j���dS|jj���|jjd|j_dS�Nr�) r#rXr`r�rKr�rrTrnr�s r*r%z4getPhases..InColumnGroupPhase.endTagColgroup�ss���(�(�*�*� B��{�,�,�,�,�� �&�&�(�(�(�(�(�� �&�*�*�,�,�,�$(�K�$6�y�$A�� �!�!�!r+c�@�|j�dddi��dS)Nz no-end-tagrMr�r r�s r*� endTagColz/getPhases..InColumnGroupPhase.endTagCol�s$�� �K� "� "�<�&�%�� A� A� A� A� Ar+c�z�|���}|�td����|s|SdSr'r(rs r*r]z1getPhases..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�Z d�Z d �Z d �Zd �Zd �Zejd �jfde fde fde fg��Ze e_ejde fdefdefg��Zee_dS)�#getPhases..InTableBodyPhasec���|jjdjdvr7|jj���|jjdjdv�7|jjdjdkr|jjsJ�dSdS)Nr�)r�r�r�r�r�)rKr�rMrrXr`rts r*�clearStackToTableBodyContextz@getPhases..InTableBodyPhase.clearStackToTableBodyContext�s����)�(��,�1�:K�K�K�� �&�*�*�,�,�,� �)�(��,�1�:K�K�K� �y�%�b�)�.�&�8�8��{�,�,�,�,�9�8�,�,r+c�N�|jjd���dSr-r rts r*r�z.getPhases..InTableBodyPhase.processEOF��$�� �K� �y� )� 4� 4� 6� 6� 6� 6� 6r+c�L�|jjd�|��Sr-r�r�s r*r�z:getPhases..InTableBodyPhase.processSpaceCharacters�� ���;�%�i�0�G�G��N�N� Nr+c�L�|jjd�|��Sr-rr�s r*r�z5getPhases..InTableBodyPhase.processCharacters�� ���;�%�i�0�B�B�5�I�I� Ir+c��|���|j�|��|jjd|j_dS)Nr�)r5rKr�rXrTrnr�s r*� startTagTrz.getPhases..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..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..InTableBodyPhase.startTagTableOther 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�|jjd�|��Sr-rSr�s r*rYz1getPhases..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..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..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..InTableBodyPhase.endTagIgnore2�5�� �K� "� "�#E�$*�E�&�M�#:� <� <� <� <� .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�Z d�Z d �Z d �Zd �Zd �Zd �Zejd�jfde fde fg��Ze e_ejde fdefdefdefg��Zee_dS)�getPhases..InRowPhasec��|jjdjdvrk|j�dd|jjdji��|jj���|jjdjdv�idSdS)Nr�)r�r�z'unexpected-implied-end-tag-in-table-rowrM)rKr�rMrXr�rrts r*�clearStackToTableRowContextz9getPhases..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..InRowPhase.ignoreEndTagTrUs ���y�/�/��g�/�F�F�F� Fr+c�N�|jjd���dSr-r rts r*r�z(getPhases..InRowPhase.processEOFYr7r+c�L�|jjd�|��Sr-r�r�s r*r�z4getPhases..InRowPhase.processSpaceCharacters\r9r+c�L�|jjd�|��Sr-rr�s r*r�z/getPhases..InRowPhase.processCharacters_r;r+c���|���|j�|��|jjd|j_|jj�t��dS)Nr�) rSrKr�rXrTrnr�r�r r�s r*r?z/getPhases..InRowPhase.startTagTableCellbs]�� � ,� ,� .� .� .� �I� #� #�E� *� *� *� $� � 2�8� <�D�K� � �I� .� 5� 5�f� =� =� =� =� =r+c�z�|���}|�td����|s|SdS�Nr��rU�endTagTrr<rs r*rDz0getPhases..InRowPhase.startTagTableOtherhsD���.�.�0�0�L� �M�M�/�$�/�/� 0� 0� 0�� �� � � r+c�L�|jjd�|��Sr-rSr�s r*rYz+getPhases..InRowPhase.startTagOtherorFr+c��|���sP|���|jj���|jjd|j_dS|jjsJ�|j� ��dSr�) rUrSrKr�rrXrTrnr`r�r�s r*r]z&getPhases..InRowPhase.endTagTrrs����&�&�(�(� )��0�0�2�2�2�� �&�*�*�,�,�,�$(�K�$6�}�$E�� �!�!�!��{�,�,�,�,�� �&�&�(�(�(�(�(r+c�z�|���}|�td����|s|SdSr[r\rs r*r�z)getPhases..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..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..InRowPhase.endTagIgnore�s5�� �K� "� "�#D�$*�E�&�M�#:� <� <� <� <� .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�Z d�Z d �Z ejd �jfd efg��Ze e_ejd e fd e fde fg��Ze e_dS)�getPhases..InCellPhasec��|j�dd���r$|�td����dS|j�dd���r$|�td����dSdS�Nr�r�r�r�)rKr��endTagTableCellr<rts r*� closeCellz(getPhases..InCellPhase.closeCell�s����y�'�'��g�'�>�>� <��$�$�_�T�%:�%:�;�;�;�;�;���)�)�$��)�@�@� <��$�$�_�T�%:�%:�;�;�;�;�;� <� .InCellPhase.processEOF�r r+c�L�|jjd�|��SrRrr�s r*r�z0getPhases..InCellPhase.processCharacters�rr+c���|j�dd���s|j�dd���r|���|S|jjsJ�|j���dSrh)rKr�rjrXr`r�r�s r*rDz1getPhases..InCellPhase.startTagTableOther�s~��� �(�(��w�(�?�?� )��I�,�,�T�7�,�C�C� )���� � � �� ��{�,�,�,�,�� �&�&�(�(�(�(�(r+c�L�|jjd�|��SrRrSr�s r*rYz,getPhases..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..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..InCellPhase.endTagIgnore�r�r+c��|j�|dd���r|���|S|j���dS)NrMr�r�)rKr�rjrXr�r�s r*� endTagImplyz*getPhases..InCellPhase.endTagImply�sT���y�'�'��f� �w�'�G�G� )���� � � �� �� �&�&�(�(�(�(�(r+c�L�|jjd�|��SrRrr�s r*r]z*getPhases..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�Z d�Z d �Z d �Zd �Zd �Zejd �jfdefdefde fde fde fg��Ze e_ejde fdefdefg��Zee_dS)� getPhases..InSelectPhasec��|jjdjdkr|j�d��dS|jjsJ�dS)Nr�r�z eof-in-selectr�rts r*r�z+getPhases..InSelectPhase.processEOF�sM���y�%�b�)�.�&�8�8�� �&�&��7�7�7�7�7��{�,�,�,�,�,�,r+c�b�|ddkrdS|j�|d��dSrr r�s r*r�z2getPhases..InSelectPhase.processCharacters�s6���V�}��(�(��� �I� � ��v�� /� /� /� /� /r+c��|jjdjdkr|jj���|j�|��dSrI�rKr�rMrr�r�s r*�startTagOptionz/getPhases..InSelectPhase.startTagOption�sM���y�%�b�)�.�(�:�:�� �&�*�*�,�,�,� �I� #� #�E� *� *� *� *� *r+c��|jjdjdkr|jj���|jjdjdkr|jj���|j�|��dS)Nr�rJr]rzr�s r*�startTagOptgroupz1getPhases..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..InSelectPhase.startTagSelect s;�� �K� "� "�#@� A� A� A� � � �o�h�7�7� 8� 8� 8� 8� 8r+c���|j�d��|j�dd���r$|�t d����|S|jjsJ�dS)Nzunexpected-input-in-selectr�r�)rXr�rKr�rr<r`r�s r*r)z.getPhases..InSelectPhase.startTagInput sn�� �K� "� "�#?� @� @� @��y�'�'��(�'�C�C� -��!�!�/�(�";�";�<�<�<�� ��{�,�,�,�,�,�,r+c�L�|jjd�|��Sr�rSr�s r*r�z/getPhases..InSelectPhase.startTagScript rTr+c�L�|j�dd|di��dS)Nzunexpected-start-tag-in-selectrMr r�s r*rYz.getPhases..InSelectPhase.startTagOther �5�� �K� "� "�#C�$*�E�&�M�#:� <� <� <� <� .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..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..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..InSelectPhase.endTagOther= �5�� �K� "� "�#A�$*�E�&�M�#:� <� <� <� <� .InSelectInTablePhasec�N�|jjd���dS�Nr�r rts r*r�z2getPhases..InSelectInTablePhase.processEOFU s$�� �K� �z� *� 5� 5� 7� 7� 7� 7� 7r+c�L�|jjd�|��Sr�rr�s r*r�z9getPhases..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..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..InSelectInTablePhase.startTagOther` s ���;�%�j�1�A�A�%�H�H� Hr+c���|j�dd|di��|j�|dd���r$|�t d����|SdS)Nz3unexpected-table-element-end-tag-in-select-in-tablerMr�r�r�)rXr�rKr�r]r<r�s r*r�z3getPhases..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..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..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 �d d �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..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*� zMgetPhases..InForeignContentPhase.processCharacters..� s'����L�L�d�d�/�1�L�L�L�L�L�Lr+F)rXrsr�r�)rOr�rs �r*r�z:getPhases..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..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�<�.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�Z e j defg��Ze e_e j de fg��Ze e_d S) �!getPhases..AfterBodyPhasec��dSr4rJrts r*r�z,getPhases..AfterBodyPhase.processEOF� ��� �Dr+c�\�|j�||jjd��dS)Nrrr�s r*r�z0getPhases..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..AfterBodyPhase.processCharacters� s2�� �K� "� "�#?� @� @� @� $� � 2�8� <�D�K� ��Lr+c�L�|jjd�|��SrRrSr�s r*rz.getPhases..AfterBodyPhase.startTagHtml� rTr+c��|j�dd|di��|jjd|j_|S)Nzunexpected-start-tag-after-bodyrMr�rr�s r*rYz/getPhases..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..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..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�Z d�Z e jd �jfd efd efd e fg��Ze e_e jd e fg��Ze e_d S)�"getPhases..InFramesetPhasec��|jjdjdkr|j�d��dS|jjsJ�dS)Nr�r�zeof-in-framesetr�rts r*r�z-getPhases..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..InFramesetPhase.processCharacters" s�� �K� "� "�#@� A� A� A� A� Ar+c�:�|j�|��dSr4)rKr�r�s r*r�z3getPhases..InFramesetPhase.startTagFrameset% s�� �I� #� #�E� *� *� *� *� *r+c�v�|j�|��|jj���dSr4rlr�s r*� startTagFramez0getPhases..InFramesetPhase.startTagFrame( s5�� �I� #� #�E� *� *� *� �I� "� &� &� (� (� (� (� (r+c�L�|jjd�|��SrRrSr�s r*�startTagNoframesz3getPhases..InFramesetPhase.startTagNoframes, rTr+c�L�|j�dd|di��dS)Nz unexpected-start-tag-in-framesetrMr r�s r*rYz0getPhases..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..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..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 e j d�j fdefg��Zee_e j de fg��Ze e_d S) �%getPhases..AfterFramesetPhasec��dSr4rJrts r*r�z0getPhases..AfterFramesetPhase.processEOFT rr+c�:�|j�d��dS)Nzunexpected-char-after-framesetr r�s r*r�z7getPhases..AfterFramesetPhase.processCharactersX s�� �K� "� "�#C� D� D� D� D� Dr+c�L�|jjd�|��Sr�rSr�s r*rz6getPhases..AfterFramesetPhase.startTagNoframes[ rTr+c�L�|j�dd|di��dS)Nz#unexpected-start-tag-after-framesetrMr r�s r*rYz3getPhases..AfterFramesetPhase.startTagOther^ s5�� �K� "� "�#H�$*�E�&�M�#:� <� <� <� <� �|jjd|j_dS)N�afterAfterFrameset)rXrTrnr�s r*rgz0getPhases..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..AfterFramesetPhase.endTagOthere s5�� �K� "� "�#F�$*�E�&�M�#:� <� <� <� <� .AfterAfterBodyPhasec��dSr4rJrts r*r�z1getPhases..AfterAfterBodyPhase.processEOFw r#r+c�P�|j�||jj��dSr4r%r�s r*r�z5getPhases..AfterAfterBodyPhase.processCommentz r'r+c�L�|jjd�|��SrRr�r�s r*r�z=getPhases..AfterAfterBodyPhase.processSpaceCharacters} r�r+c�r�|j�d��|jjd|j_|S)N�expected-eof-but-got-charr�rr�s r*r�z8getPhases..AfterAfterBodyPhase.processCharacters� s2�� �K� "� "�#>� ?� ?� ?� $� � 2�8� <�D�K� ��Lr+c�L�|jjd�|��SrRrSr�s r*rz3getPhases..AfterAfterBodyPhase.startTagHtml� rTr+c��|j�dd|di��|jjd|j_|S)N�expected-eof-but-got-start-tagrMr�rr�s r*rYz4getPhases..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..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�Z d�Z e jd e fd e fg��Ze e_d S) �*getPhases..AfterAfterFramesetPhasec��dSr4rJrts r*r�z5getPhases..AfterAfterFramesetPhase.processEOF� r#r+c�P�|j�||jj��dSr4r%r�s r*r�z9getPhases..AfterAfterFramesetPhase.processComment� r'r+c�L�|jjd�|��SrRr�r�s r*r�zAgetPhases..AfterAfterFramesetPhase.processSpaceCharacters� r�r+c�:�|j�d��dS)Nr)r r�s r*r�z.AfterAfterFramesetPhase.processCharacters� s�� �K� "� "�#>� ?� ?� ?� ?� ?r+c�L�|jjd�|��SrRrSr�s r*rz7getPhases..AfterAfterFramesetPhase.startTagHtml� rTr+c�L�|jjd�|��Sr�rSr�s r*�startTagNoFramesz;getPhases..AfterAfterFramesetPhase.startTagNoFrames� rTr+c�L�|j�dd|di��dS)Nr,rMr r�s r*rYz8getPhases..AfterAfterFramesetPhase.startTagOther� r�r+c�L�|j�dd|di��dS)Nr.rMr r�s r*r�z8getPhases..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..� 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�pip._vendor.sixrrr7r,r r r �treebuilders.baser r � constantsrrrrrrrrrrrrr�rrrrr$r/rFr�r#�memoizerSr�r<� Exceptionr�rJr+r*�rIs@��B�B�B�B�B�B�B�B�B�B�4�4�4�4�4�4�4�4� � � � �������������������%�%�%�%�%�%������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �"�"�"�"�.?�?�?�?�2 � � �s)�s)�s)�s)�s)��s)�s)�s)�l ��J%�J%���J%�ZJO�O�O�59� %�(�(�(�(� � � � � �� � � � � r+