JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-39.pyc

a

[��f�,�@s�ddlmZmZmZddlmZddlmZm	Z	ddl
mZddlm
Z
ddlmZddlmZmZdd	lmZmZmZdd
lmZmZddlmZddlmZdd
lmZee�Zedkr�eZne	ZGdd�de�ZdS)�)�absolute_import�division�unicode_literals)�unichr)�deque�OrderedDict)�version_info�)�spaceCharacters)�entities)�asciiLetters�asciiUpper2Lower)�digits�	hexDigits�EOF)�
tokenTypes�
tagTokenTypes)�replacementCharacters)�HTMLInputStream)�Trie)��csdeZdZdZd��fdd�	Zdd�Zdd�Zd�d
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!d@dA�Z"dBdC�Z#dDdE�Z$dFdG�Z%dHdI�Z&dJdK�Z'dLdM�Z(dNdO�Z)dPdQ�Z*dRdS�Z+dTdU�Z,dVdW�Z-dXdY�Z.dZd[�Z/d\d]�Z0d^d_�Z1d`da�Z2dbdc�Z3ddde�Z4dfdg�Z5dhdi�Z6djdk�Z7dldm�Z8dndo�Z9dpdq�Z:drds�Z;dtdu�Z<dvdw�Z=dxdy�Z>dzd{�Z?d|d}�Z@d~d�ZAd�d��ZBd�d��ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZL�ZMS)��
HTMLTokenizera	 This class takes care of tokenizing HTML.

    * self.currentToken
      Holds the token that is currently being processed.

    * self.state
      Holds a reference to the method to be invoked... XXX

    * self.stream
      Points to HTMLInputStream object.
    NcsJt|fi|��|_||_d|_g|_|j|_d|_d|_t	t
|���dS)NF)r�stream�parserZ
escapeFlagZ
lastFourChars�	dataState�state�escape�currentToken�superr�__init__)�selfrr�kwargs��	__class__��C/usr/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.pyr (szHTMLTokenizer.__init__ccsPtg�|_|��rL|jjr6td|jj�d�d�Vq|jr
|j��Vq6q
dS)z� This is where the magic happens.

        We do our usually processing through the states and when we have a token
        to return we yield the token which pauses processing until the next token
        is requested.
        �
ParseErrorr��type�dataN)r�
tokenQueuerr�errorsr�pop�popleft�r!r%r%r&�__iter__7s
zHTMLTokenizer.__iter__c	Cs�t}d}|rt}d}g}|j��}||vrH|turH|�|�|j��}q"td�|�|�}|tvr�t|}|j	�t
ddd|id���nd|kr�d	ks�n|d
kr�d}|j	�t
ddd|id��n�d|kr�d
k�s>nd|kr�dk�s>nd|k�rdk�s>nd|k�r*dk�s>n|tgd��v�rZ|j	�t
ddd|id��zt|�}Wn<t
�y�|d}td|d?B�td|d@B�}Yn0|dk�r�|j	�t
ddd��|j�|�|S)z�This function returns either U+FFFD or the character based on the
        decimal or hexadecimal representation. It also discards ";" if present.
        If not present self.tokenQueue.append({"type": tokenTypes["ParseError"]}) is invoked.
        �
��r'z$illegal-codepoint-for-numeric-entity�	charAsInt�r)r*Zdatavarsi�i�����r	�����i�i�)#�i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��	i��	i��
i��
i��i��i��i��i��
i��
i��i��i��i��i��r6ii�i��;z numeric-entity-without-semicolonr()rrr�charr�append�int�joinrr+r�	frozenset�chr�
ValueError�unget)	r!ZisHex�allowed�radix�	charStack�cr4r?�vr%r%r&�consumeNumberEntityGsn

���
��
�
�
�
�
�
�&
�z!HTMLTokenizer.consumeNumberEntityFc	Cs�d}|j��g}|dtvsB|dtddfvsB|durV||dkrV|j�|d��n|ddk�rd}|�|j���|ddvr�d}|�|j���|r�|dtvs�|s�|dtvr�|j�|d�|�|�}n4|j	�t
d	d
d��|j�|���dd�|�}�nf|dtu�rDt
�d�|���s0�qD|�|j����qz$t
�d�|dd���}t|�}Wnt�y�d}Yn0|du�r>|dd
k�r�|j	�t
d	dd��|dd
k�r|�r||tv�s�||tv�s�||dk�r|j�|���dd�|�}n.t|}|j�|���|d�||d��7}n4|j	�t
d	dd��|j�|���dd�|�}|�r�|jddd|7<n*|tv�r�d}nd}|j	�t
||d��dS)N�&r�<�#F���)�x�XTr'zexpected-numeric-entityr(r3r>znamed-entity-without-semicolon�=zexpected-named-entityr*r	�SpaceCharacters�
Characters)rr?r
rrFr@rrrLr+rr-rB�entitiesTrieZhas_keys_with_prefixZlongest_prefix�len�KeyErrorrrr)	r!�allowedChar�
fromAttribute�outputrI�hexZ
entityNameZentityLengthZ	tokenTyper%r%r&�
consumeEntity�s~�
��
��

�
�
�
��
zHTMLTokenizer.consumeEntitycCs|j|dd�dS)zIThis method replaces the need for "entityInAttributeValueState".
        T)rYrZN)r])r!rYr%r%r&�processEntityInAttribute�sz&HTMLTokenizer.processEntityInAttributecCs�|j}|dtvr�|d�t�|d<|dtdkrp|d}t|�}t|�t|�krh|�|ddd��||d<|dtdkr�|dr�|j�	tdd	d
��|dr�|j�	tddd
��|j�	|�|j
|_dS)
z�This method is a generic handler for emitting the tags. It also sets
        the state to "data" because that's what's needed after a token has been
        emitted.
        r)�name�StartTagr*NrP�EndTagr'zattributes-in-end-tagr(�selfClosingzself-closing-flag-on-end-tag)rr�	translater
r�attributeMaprW�updater+r@rr)r!�token�rawr*r%r%r&�emitCurrentToken�s(��zHTMLTokenizer.emitCurrentTokencCs�|j��}|dkr|j|_n�|dkr.|j|_n�|dkrd|j�tddd��|j�tddd��n`|turpdS|t	vr�|j�td	||j�
t	d
�d��n&|j�
d�}|j�td||d��d
S)NrMrN�r'�invalid-codepointr(rUFrTT�rMrNri)rr?�entityDataStater�tagOpenStater+r@rrr
�
charsUntil�r!r*�charsr%r%r&rs.


��
�
�zHTMLTokenizer.dataStatecCs|��|j|_dS�NT)r]rrr/r%r%r&rlszHTMLTokenizer.entityDataStatecCs�|j��}|dkr|j|_n�|dkr.|j|_n�|tkr:dS|dkrp|j�tddd��|j�tdd	d��nT|t	vr�|j�td
||j�
t	d�d��n&|j�
d�}|j�td||d��dS)
NrMrNFrir'rjr(rUr7rTTrk)rr?�characterReferenceInRcdatar�rcdataLessThanSignStaterr+r@rr
rnror%r%r&�rcdataState"s.


��
�
�zHTMLTokenizer.rcdataStatecCs|��|j|_dSrq)r]rtrr/r%r%r&rr?sz(HTMLTokenizer.characterReferenceInRcdatacCs�|j��}|dkr|j|_nh|dkrR|j�tddd��|j�tddd��n2|tkr^dS|j�d	�}|j�td||d��d
S�NrNrir'rjr(rUr7F)rNriT)	rr?�rawtextLessThanSignStaterr+r@rrrnror%r%r&�rawtextStateDs"

��
�zHTMLTokenizer.rawtextStatecCs�|j��}|dkr|j|_nh|dkrR|j�tddd��|j�tddd��n2|tkr^dS|j�d	�}|j�td||d��d
Sru)	rr?�scriptDataLessThanSignStaterr+r@rrrnror%r%r&�scriptDataStateVs"

��
�zHTMLTokenizer.scriptDataStatecCsr|j��}|tkrdS|dkrL|j�tddd��|j�tddd��n"|j�td||j�d�d��dS)	NFrir'rjr(rUr7T)rr?rr+r@rrn�r!r*r%r%r&�plaintextStatehs
��
�zHTMLTokenizer.plaintextStatecCs|j��}|dkr|j|_n�|dkr.|j|_n�|tvrVtd|gddd�|_|j|_n�|dkr�|j	�
tddd	��|j	�
td
dd	��|j|_nt|dkr�|j	�
tdd
d	��|j�|�|j
|_n@|j	�
tddd	��|j	�
td
dd	��|j�|�|j|_dS)N�!�/r`F)r)r_r*rbZselfClosingAcknowledged�>r'z'expected-tag-name-but-got-right-bracketr(rUz<>�?z'expected-tag-name-but-got-question-markzexpected-tag-namerNT)rr?�markupDeclarationOpenStater�closeTagOpenStaterrr�tagNameStater+r@rrF�bogusCommentStaterzr%r%r&rmws>


�
�
�
�zHTMLTokenizer.tagOpenStatecCs�|j��}|tvr0td|gdd�|_|j|_n�|dkrX|j�tddd��|j	|_nn|t
ur�|j�tddd��|j�td	d
d��|j	|_n0|j�tddd|id
��|j�|�|j|_dS)NraF�r)r_r*rbr~r'z*expected-closing-tag-but-got-right-bracketr(z expected-closing-tag-but-got-eofrU�</z!expected-closing-tag-but-got-charr*r5T)
rr?rrrr�rr+r@rrrFr�rzr%r%r&r��s0
�
�
�
�zHTMLTokenizer.closeTagOpenStatecCs�|j��}|tvr|j|_n�|dkr.|��n~|turV|j�t	ddd��|j
|_nV|dkrh|j|_nD|dkr�|j�t	ddd��|jdd	7<n|jd|7<d
S)Nr~r'zeof-in-tag-namer(r}rirjr_r7T)
rr?r
�beforeAttributeNameStaterrhrr+r@rr�selfClosingStartTagStaterrzr%r%r&r��s&


�

�zHTMLTokenizer.tagNameStatecCsP|j��}|dkr"d|_|j|_n*|j�tddd��|j�|�|j	|_dS�Nr}r3rUrNr(T)
rr?�temporaryBuffer�rcdataEndTagOpenStaterr+r@rrFrtrzr%r%r&rs�s

z%HTMLTokenizer.rcdataLessThanSignStatecCsX|j��}|tvr*|j|7_|j|_n*|j�tddd��|j�	|�|j
|_dS�NrUr�r(T)rr?rr��rcdataEndTagNameStaterr+r@rrFrtrzr%r%r&r��s

z#HTMLTokenizer.rcdataEndTagOpenStatecCs|jo|jd��|j��k}|j��}|tvrT|rTtd|jgdd�|_|j|_n�|dkr�|r�td|jgdd�|_|j	|_n||dkr�|r�td|jgdd�|_|�
�|j|_nH|tvr�|j|7_n0|j
�tdd|jd	��|j�|�|j|_d
S�Nr_raFr�r}r~rUr�r(T)r�lowerr�rr?r
rr�rr�rhrrr+r@rFrt�r!Zappropriater*r%r%r&r��s:
�
�
�
�z#HTMLTokenizer.rcdataEndTagNameStatecCsP|j��}|dkr"d|_|j|_n*|j�tddd��|j�|�|j	|_dSr�)
rr?r��rawtextEndTagOpenStaterr+r@rrFrwrzr%r%r&rv�s

z&HTMLTokenizer.rawtextLessThanSignStatecCsX|j��}|tvr*|j|7_|j|_n*|j�tddd��|j�	|�|j
|_dSr�)rr?rr��rawtextEndTagNameStaterr+r@rrFrwrzr%r%r&r�s

z$HTMLTokenizer.rawtextEndTagOpenStatecCs|jo|jd��|j��k}|j��}|tvrT|rTtd|jgdd�|_|j|_n�|dkr�|r�td|jgdd�|_|j	|_n||dkr�|r�td|jgdd�|_|�
�|j|_nH|tvr�|j|7_n0|j
�tdd|jd	��|j�|�|j|_d
Sr�)rr�r�rr?r
rr�rr�rhrrr+r@rFrwr�r%r%r&r�s:
�
�
�
�z$HTMLTokenizer.rawtextEndTagNameStatecCsx|j��}|dkr"d|_|j|_nR|dkrJ|j�tddd��|j|_n*|j�tddd��|j�	|�|j
|_dS)	Nr}r3r|rUz<!r(rNT)rr?r��scriptDataEndTagOpenStaterr+r@r�scriptDataEscapeStartStaterFryrzr%r%r&rx,s


z)HTMLTokenizer.scriptDataLessThanSignStatecCsX|j��}|tvr*|j|7_|j|_n*|j�tddd��|j�	|�|j
|_dSr�)rr?rr��scriptDataEndTagNameStaterr+r@rrFryrzr%r%r&r�:s

z'HTMLTokenizer.scriptDataEndTagOpenStatecCs|jo|jd��|j��k}|j��}|tvrT|rTtd|jgdd�|_|j|_n�|dkr�|r�td|jgdd�|_|j	|_n||dkr�|r�td|jgdd�|_|�
�|j|_nH|tvr�|j|7_n0|j
�tdd|jd	��|j�|�|j|_d
Sr�)rr�r�rr?r
rr�rr�rhrrr+r@rFryr�r%r%r&r�Es:
�
�
�
�z'HTMLTokenizer.scriptDataEndTagNameStatecCsJ|j��}|dkr2|j�tddd��|j|_n|j�|�|j|_dS�N�-rUr(T)	rr?r+r@r�scriptDataEscapeStartDashStaterrFryrzr%r%r&r�as

z(HTMLTokenizer.scriptDataEscapeStartStatecCsJ|j��}|dkr2|j�tddd��|j|_n|j�|�|j|_dSr�)	rr?r+r@r�scriptDataEscapedDashDashStaterrFryrzr%r%r&r�ks

z,HTMLTokenizer.scriptDataEscapeStartDashStatecCs�|j��}|dkr2|j�tddd��|j|_n�|dkrD|j|_nn|dkrz|j�tddd��|j�tddd��n8|tkr�|j	|_n&|j�
d	�}|j�td||d��d
S)Nr�rUr(rNrir'rjr7)rNr�riT)rr?r+r@r�scriptDataEscapedDashStater�"scriptDataEscapedLessThanSignStaterrrnror%r%r&�scriptDataEscapedStateus(


��

�z$HTMLTokenizer.scriptDataEscapedStatecCs�|j��}|dkr2|j�tddd��|j|_n�|dkrD|j|_nn|dkr�|j�tddd��|j�tddd��|j|_n0|t	kr�|j
|_n|j�td|d��|j|_d	S)
Nr�rUr(rNrir'rjr7T)rr?r+r@rr�rr�r�rrrzr%r%r&r��s&


��

z(HTMLTokenizer.scriptDataEscapedDashStatecCs�|j��}|dkr*|j�tddd��n�|dkr<|j|_n�|dkrd|j�tddd��|j|_nn|dkr�|j�tddd��|j�tdd	d��|j|_n0|t	kr�|j
|_n|j�td|d��|j|_d
S)Nr�rUr(rNr~rir'rjr7T)rr?r+r@rr�rryr�rrrzr%r%r&r��s*


��

z,HTMLTokenizer.scriptDataEscapedDashDashStatecCs�|j��}|dkr"d|_|j|_n\|tvrT|j�tdd|d��||_|j	|_n*|j�tddd��|j�
|�|j|_dSr�)rr?r�� scriptDataEscapedEndTagOpenStaterrr+r@r� scriptDataDoubleEscapeStartStaterFr�rzr%r%r&r��s


z0HTMLTokenizer.scriptDataEscapedLessThanSignStatecCsP|j��}|tvr"||_|j|_n*|j�tddd��|j�	|�|j
|_dSr�)rr?rr�� scriptDataEscapedEndTagNameStaterr+r@rrFr�rzr%r%r&r��s

z.HTMLTokenizer.scriptDataEscapedEndTagOpenStatecCs|jo|jd��|j��k}|j��}|tvrT|rTtd|jgdd�|_|j|_n�|dkr�|r�td|jgdd�|_|j	|_n||dkr�|r�td|jgdd�|_|�
�|j|_nH|tvr�|j|7_n0|j
�tdd|jd	��|j�|�|j|_d
Sr�)rr�r�rr?r
rr�rr�rhrrr+r@rFr�r�r%r%r&r��s:
�
�
�
�z.HTMLTokenizer.scriptDataEscapedEndTagNameStatecCs�|j��}|ttd�BvrR|j�td|d��|j��dkrH|j	|_
q�|j|_
nB|tvr�|j�td|d��|j|7_n|j�
|�|j|_
dS�N)r}r~rUr(ZscriptT)rr?r
rCr+r@rr�r��scriptDataDoubleEscapedStaterr�rrFrzr%r%r&r��s


z.HTMLTokenizer.scriptDataDoubleEscapeStartStatecCs�|j��}|dkr2|j�tddd��|j|_n�|dkrZ|j�tddd��|j|_nt|dkr�|j�tddd��|j�tddd��n>|tkr�|j�tdd	d��|j	|_n|j�td|d��d
S�Nr�rUr(rNrir'rjr7�eof-in-script-in-scriptT)
rr?r+r@r� scriptDataDoubleEscapedDashStater�(scriptDataDoubleEscapedLessThanSignStaterrrzr%r%r&r��s*


��
�
z*HTMLTokenizer.scriptDataDoubleEscapedStatecCs�|j��}|dkr2|j�tddd��|j|_n�|dkrZ|j�tddd��|j|_n�|dkr�|j�tddd��|j�tddd��|j|_nF|t	kr�|j�tdd	d��|j
|_n|j�td|d��|j|_d
Sr�)rr?r+r@r�$scriptDataDoubleEscapedDashDashStaterr�r�rrrzr%r%r&r�s.


��
�
z.HTMLTokenizer.scriptDataDoubleEscapedDashStatecCs|j��}|dkr*|j�tddd��n�|dkrR|j�tddd��|j|_n�|dkrz|j�tddd��|j|_n�|dkr�|j�tddd��|j�tdd	d��|j|_nF|t	kr�|j�tdd
d��|j
|_n|j�td|d��|j|_dS)Nr�rUr(rNr~rir'rjr7r�T)rr?r+r@rr�rryr�rrrzr%r%r&r�%s2


��
�
z2HTMLTokenizer.scriptDataDoubleEscapedDashDashStatecCsP|j��}|dkr8|j�tddd��d|_|j|_n|j�|�|j	|_dS)Nr}rUr(r3T)
rr?r+r@rr��scriptDataDoubleEscapeEndStaterrFr�rzr%r%r&r�>s

z6HTMLTokenizer.scriptDataDoubleEscapedLessThanSignStatecCs�|j��}|ttd�BvrR|j�td|d��|j��dkrH|j	|_
q�|j|_
nB|tvr�|j�td|d��|j|7_n|j�
|�|j|_
dSr�)rr?r
rCr+r@rr�r�r�rr�rrFrzr%r%r&r�Is


z,HTMLTokenizer.scriptDataDoubleEscapeEndStatecCs0|j��}|tvr$|j�td��n|tvrJ|jd�|dg�|j|_n�|dkr\|�	�n�|dkrn|j
|_n�|dvr�|j�tddd	��|jd�|dg�|j|_n�|d
kr�|j�tddd	��|jd�ddg�|j|_nF|t
u�r|j�tdd
d	��|j|_n|jd�|dg�|j|_dS)NTr*r3r~r})�'�"rSrNr'�#invalid-character-in-attribute-namer(rirjr7z#expected-attribute-name-but-got-eof)rr?r
rnrrr@�attributeNameStaterrhr�r+rrrrzr%r%r&r�Ys<



�
�

�
z&HTMLTokenizer.beforeAttributeNameStatecCs�|j��}d}d}|dkr&|j|_�n.|tvr\|jddd||j�td�7<d}n�|dkrjd}n�|tvr||j|_n�|dkr�|j	|_n�|d	kr�|j
�td
dd��|jdddd
7<d}n�|dv�r|j
�td
dd��|jddd|7<d}nH|t
u�r6|j
�td
dd��|j|_n|jddd|7<d}|�r�|jddd�t�|jddd<|jddd�D]>\}}|jddd|k�r�|j
�td
dd���qҐq�|�r�|��dS)NTFrSr*rPrr~r}rir'rjr(r7�r�r�rNr�zeof-in-attribute-namezduplicate-attribute)rr?�beforeAttributeValueStaterrrrnr
�afterAttributeNameStater�r+r@rrrrcr
rh)r!r*ZleavingThisStateZ	emitTokenr_�_r%r%r&r�ws^
�

�
�
�
��
z HTMLTokenizer.attributeNameStatecCsD|j��}|tvr$|j�td��n|dkr8|j|_�n|dkrJ|��n�|tvrp|jd�	|dg�|j
|_n�|dkr�|j|_n�|dkr�|j�	t
dd	d
��|jd�	ddg�|j
|_n�|dvr�|j�	t
dd
d
��|jd�	|dg�|j
|_nF|tu�r$|j�	t
ddd
��|j|_n|jd�	|dg�|j
|_dS)NTrSr~r*r3r}rir'rjr(r7r�z&invalid-character-after-attribute-namezexpected-end-of-tag-but-got-eof)rr?r
rnr�rrhrrr@r�r�r+rrrrzr%r%r&r��s@



�
�

�
z%HTMLTokenizer.afterAttributeNameStatecCsh|j��}|tvr$|j�td��n@|dkr8|j|_�n,|dkrX|j|_|j�|��n|dkrj|j|_n�|dkr�|j	�
tddd��|��n�|d	kr�|j	�
tdd
d��|j
ddd
d7<|j|_n�|dv�r|j	�
tddd��|j
ddd
|7<|j|_nL|tu�rB|j	�
tddd��|j|_n"|j
ddd
|7<|j|_dS)NTr�rMr�r~r'z.expected-attribute-value-but-got-right-bracketr(rirjr*rPr	r7)rSrN�`z"equals-in-unquoted-attribute-valuez$expected-attribute-value-but-got-eof)rr?r
rn�attributeValueDoubleQuotedStater�attributeValueUnQuotedStaterF�attributeValueSingleQuotedStater+r@rrhrrrrzr%r%r&r��sF

�
�

�

�
z'HTMLTokenizer.beforeAttributeValueStatecCs�|j��}|dkr|j|_n�|dkr0|�d�n�|dkrj|j�tddd��|jddd	d
7<nN|t	ur�|j�tddd��|j
|_n&|jddd	||j�d�7<d
S)Nr�rMrir'rjr(r*rPr	r7z#eof-in-attribute-value-double-quote)r�rMriT�rr?�afterAttributeValueStaterr^r+r@rrrrrnrzr%r%r&r��s&

��

�z-HTMLTokenizer.attributeValueDoubleQuotedStatecCs�|j��}|dkr|j|_n�|dkr0|�d�n�|dkrj|j�tddd��|jddd	d
7<nN|t	ur�|j�tddd��|j
|_n&|jddd	||j�d�7<d
S)Nr�rMrir'rjr(r*rPr	r7z#eof-in-attribute-value-single-quote)r�rMriTr�rzr%r%r&r�s&

��

�z-HTMLTokenizer.attributeValueSingleQuotedStatecCs|j��}|tvr|j|_n�|dkr0|�d�n�|dkrB|��n�|dvr||j�t	ddd��|j
ddd	|7<n�|d
kr�|j�t	ddd��|j
ddd	d7<nV|tur�|j�t	dd
d��|j|_n.|j
ddd	||j�
td�tB�7<dS)NrMr~)r�r�rSrNr�r'z0unexpected-character-in-unquoted-attribute-valuer(r*rPr	rirjr7z eof-in-attribute-value-no-quotes)rMr~r�r�rSrNr�riT)rr?r
r�rr^rhr+r@rrrrrnrCrzr%r%r&r�s4


���

�
z)HTMLTokenizer.attributeValueUnQuotedStatecCs�|j��}|tvr|j|_n�|dkr.|��np|dkr@|j|_n^|turt|j�	t
ddd��|j�|�|j|_n*|j�	t
ddd��|j�|�|j|_dS)Nr~r}r'z$unexpected-EOF-after-attribute-valuer(z*unexpected-character-after-attribute-valueT)
rr?r
r�rrhr�rr+r@rrFrrzr%r%r&r�.s&



�
�z&HTMLTokenizer.afterAttributeValueStatecCs�|j��}|dkr&d|jd<|��n^|turZ|j�tddd��|j�|�|j	|_
n*|j�tddd��|j�|�|j|_
dS)Nr~Trbr'z#unexpected-EOF-after-solidus-in-tagr(z)unexpected-character-after-solidus-in-tag)rr?rrhrr+r@rrFrrr�rzr%r%r&r�Bs 


�
�z&HTMLTokenizer.selfClosingStartTagStatecCsD|j�d�}|�dd�}|j�td|d��|j��|j|_dS)Nr~rir7�Commentr(T)	rrn�replacer+r@rr?rrrzr%r%r&r�Ts�
zHTMLTokenizer.bogusCommentStatecCs�|j��g}|ddkrR|�|j���|ddkrPtddd�|_|j|_dSn�|ddvr�d}dD](}|�|j���|d|vrfd	}q�qf|r�td
ddddd�|_|j|_dSn�|ddk�rD|jdu�rD|jj	j
�rD|jj	j
dj|jj	jk�rDd}d
D].}|�|j���|d|k�rd	}�q2�q|�rD|j
|_dS|j�tddd��|�rt|j�|����qZ|j|_dS)NrPr�r�r3r(T)�d�D))�o�O�rJ�C��t�T��y�Y��p�P��e�EFZDoctype)r)r_�publicId�systemId�correct�[)r�r��Ar�r�r�r'zexpected-dashes-or-doctype)rr?r@rr�commentStartStater�doctypeStaterZtreeZopenElements�	namespaceZdefaultNamespace�cdataSectionStater+rFr-r�)r!rI�matched�expectedr%r%r&r�csZ����
�z(HTMLTokenizer.markupDeclarationOpenStatecCs�|j��}|dkr|j|_n�|dkrN|j�tddd��|jdd7<n�|dkr�|j�tdd	d��|j�|j�|j|_nP|t	ur�|j�tdd
d��|j�|j�|j|_n|jd|7<|j
|_dS)Nr�rir'rjr(r*r7r~�incorrect-comment�eof-in-commentT)rr?�commentStartDashStaterr+r@rrrr�commentStaterzr%r%r&r��s.

��
�
zHTMLTokenizer.commentStartStatecCs�|j��}|dkr|j|_n�|dkrN|j�tddd��|jdd7<n�|dkr�|j�tdd	d��|j�|j�|j|_nT|t	ur�|j�tdd
d��|j�|j�|j|_n|jdd|7<|j
|_dS)Nr�rir'rjr(r*�-�r~r�r�T)rr?�commentEndStaterr+r@rrrrr�rzr%r%r&r��s.

��
�
z#HTMLTokenizer.commentStartDashStatecCs�|j��}|dkr|j|_n�|dkrN|j�tddd��|jdd7<nT|tur�|j�tddd��|j�|j�|j	|_n|jd||j�
d	�7<d
S)Nr�rir'rjr(r*r7r�)r�riT)rr?�commentEndDashStaterr+r@rrrrrnrzr%r%r&r��s$

��

�zHTMLTokenizer.commentStatecCs�|j��}|dkr|j|_n�|dkrV|j�tddd��|jdd7<|j|_nT|t	ur�|j�tddd��|j�|j�|j
|_n|jdd|7<|j|_d	S)
Nr�rir'rjr(r*r�zeof-in-comment-end-dashT)rr?r�rr+r@rrr�rrrzr%r%r&r��s$

�
�
z!HTMLTokenizer.commentEndDashStatecCs,|j��}|dkr*|j�|j�|j|_n�|dkrd|j�tddd��|jdd7<|j|_n�|dkr�|j�tdd	d��|j	|_n�|d
kr�|j�tddd��|jd|7<nj|t
ur�|j�tddd��|j�|j�|j|_n4|j�tdd
d��|jdd|7<|j|_dS)Nr~rir'rjr(r*u--�r|z,unexpected-bang-after-double-dash-in-commentr�z,unexpected-dash-after-double-dash-in-commentzeof-in-comment-double-dashzunexpected-char-in-commentz--T)rr?r+r@rrrrr��commentEndBangStaterrzr%r%r&r��s@

�
�
��
�zHTMLTokenizer.commentEndStatecCs�|j��}|dkr*|j�|j�|j|_n�|dkrN|jdd7<|j|_n�|dkr�|j�tddd��|jdd	7<|j	|_nT|t
ur�|j�tdd
d��|j�|j�|j|_n|jdd|7<|j	|_dS)Nr~r�r*z--!rir'rjr(u--!�zeof-in-comment-end-bang-stateT)rr?r+r@rrrr�rr�rrzr%r%r&r�s,


�
�
z!HTMLTokenizer.commentEndBangStatecCs�|j��}|tvr|j|_nj|tur\|j�tddd��d|j	d<|j�|j	�|j
|_n*|j�tddd��|j�|�|j|_dS)Nr'�!expected-doctype-name-but-got-eofr(Fr�zneed-space-after-doctypeT)rr?r
�beforeDoctypeNameStaterrr+r@rrrrFrzr%r%r&r�s 

�

�zHTMLTokenizer.doctypeStatecCs�|j��}|tvrn�|dkrT|j�tddd��d|jd<|j�|j�|j|_n�|dkr�|j�tddd��d	|jd
<|j	|_nR|t
ur�|j�tddd��d|jd<|j�|j�|j|_n||jd
<|j	|_dS)
Nr~r'z+expected-doctype-name-but-got-right-bracketr(Fr�rirjr7r_r�T)rr?r
r+r@rrrr�doctypeNameStaterrzr%r%r&r�*s4
�

�

�


z$HTMLTokenizer.beforeDoctypeNameStatecCs|j��}|tvr2|jd�t�|jd<|j|_n�|dkrh|jd�t�|jd<|j�	|j�|j
|_n�|dkr�|j�	tddd��|jdd7<|j|_nh|t
ur�|j�	tddd��d	|jd
<|jd�t�|jd<|j�	|j�|j
|_n|jd|7<dS)Nr_r~rir'rjr(r7zeof-in-doctype-nameFr�T)rr?r
rrcr
�afterDoctypeNameStaterr+r@rrr�rrzr%r%r&r�Ds0


�
�

zHTMLTokenizer.doctypeNameStatecCsH|j��}|tvr�n.|dkr8|j�|j�|j|_�n|tur�d|jd<|j�	|�|j�t
ddd��|j�|j�|j|_n�|dvr�d}d	D]}|j��}||vr�d}q�q�|r�|j|_dSnD|d
v�r
d}dD]}|j��}||vr�d}q�q�|�r
|j|_dS|j�	|�|j�t
ddd
|id��d|jd<|j
|_dS)Nr~Fr�r'�eof-in-doctyper(r�T))�u�U)�b�B)�l�L)�i�Ir���s�S)r�r�r�r�)�m�Mz*expected-space-or-right-bracket-in-doctyper*r5)rr?r
r+r@rrrrrFr�afterDoctypePublicKeywordState�afterDoctypeSystemKeywordState�bogusDoctypeState)r!r*r�r�r%r%r&r�]sT

�



�
z#HTMLTokenizer.afterDoctypeNameStatecCs�|j��}|tvr|j|_n�|dvrP|j�tddd��|j�|�|j|_nT|t	ur�|j�tddd��d|j
d<|j�|j
�|j|_n|j�|�|j|_dS�	N)r�r�r'�unexpected-char-in-doctyper(r�Fr�T)rr?r
�"beforeDoctypePublicIdentifierStaterr+r@rrFrrrrzr%r%r&r��s&

�
�

z,HTMLTokenizer.afterDoctypePublicKeywordStatecCs�|j��}|tvrn�|dkr0d|jd<|j|_n�|dkrLd|jd<|j|_n�|dkr�|j�t	ddd��d	|jd
<|j�|j�|j
|_nh|tur�|j�t	ddd��d	|jd
<|j�|j�|j
|_n(|j�t	ddd��d	|jd
<|j|_d
S)Nr�r3r�r�r~r'�unexpected-end-of-doctyper(Fr�r�r�T)
rr?r
r�(doctypePublicIdentifierDoubleQuotedStater�(doctypePublicIdentifierSingleQuotedStater+r@rrrr�rzr%r%r&r��s:




�

�

�
z0HTMLTokenizer.beforeDoctypePublicIdentifierStatecCs�|j��}|dkr|j|_n�|dkrN|j�tddd��|jdd7<n�|dkr�|j�tdd	d��d
|jd<|j�|j�|j|_nR|t	ur�|j�tddd��d
|jd<|j�|j�|j|_n|jd|7<d
S)Nr�rir'rjr(r�r7r~r�Fr�r�T�
rr?�!afterDoctypePublicIdentifierStaterr+r@rrrrrzr%r%r&r��s0

��

�

z6HTMLTokenizer.doctypePublicIdentifierDoubleQuotedStatecCs�|j��}|dkr|j|_n�|dkrN|j�tddd��|jdd7<n�|dkr�|j�tdd	d��d
|jd<|j�|j�|j|_nR|t	ur�|j�tddd��d
|jd<|j�|j�|j|_n|jd|7<d
S)Nr�rir'rjr(r�r7r~r�Fr�r�Tr�rzr%r%r&r��s0

��

�

z6HTMLTokenizer.doctypePublicIdentifierSingleQuotedStatecCs|j��}|tvr|j|_n�|dkr<|j�|j�|j|_n�|dkrn|j�t	ddd��d|jd<|j
|_n�|dkr�|j�t	ddd��d|jd<|j|_nh|tur�|j�t	dd	d��d
|jd<|j�|j�|j|_n(|j�t	ddd��d
|jd<|j
|_dS)
Nr~r�r'r�r(r3r�r�r�Fr�T)rr?r
�-betweenDoctypePublicAndSystemIdentifiersStaterr+r@rrr�(doctypeSystemIdentifierDoubleQuotedState�(doctypeSystemIdentifierSingleQuotedStaterr�rzr%r%r&r��s>


�

�

�

�
z/HTMLTokenizer.afterDoctypePublicIdentifierStatecCs�|j��}|tvrn�|dkr4|j�|j�|j|_n�|dkrPd|jd<|j|_n�|dkrld|jd<|j	|_nh|t
kr�|j�tddd��d	|jd
<|j�|j�|j|_n(|j�tddd��d	|jd
<|j|_dS)
Nr~r�r3r�r�r'r�r(Fr�r�T)
rr?r
r+r@rrrr�r�rrr�rzr%r%r&r�s2





�

�
z;HTMLTokenizer.betweenDoctypePublicAndSystemIdentifiersStatecCs�|j��}|tvr|j|_n�|dvrP|j�tddd��|j�|�|j|_nT|t	ur�|j�tddd��d|j
d<|j�|j
�|j|_n|j�|�|j|_dSr�)rr?r
�"beforeDoctypeSystemIdentifierStaterr+r@rrFrrrrzr%r%r&r�)s&

�
�

z,HTMLTokenizer.afterDoctypeSystemKeywordStatecCs�|j��}|tvrn�|dkr0d|jd<|j|_n�|dkrLd|jd<|j|_n�|dkr�|j�t	ddd��d	|jd
<|j�|j�|j
|_nh|tur�|j�t	ddd��d	|jd
<|j�|j�|j
|_n(|j�t	ddd��d	|jd
<|j|_dS)
Nr�r3r�r�r~r'r�r(Fr�r�T)
rr?r
rr�rr�r+r@rrrr�rzr%r%r&r�=s:




�

�

�
z0HTMLTokenizer.beforeDoctypeSystemIdentifierStatecCs�|j��}|dkr|j|_n�|dkrN|j�tddd��|jdd7<n�|dkr�|j�tdd	d��d
|jd<|j�|j�|j|_nR|t	ur�|j�tddd��d
|jd<|j�|j�|j|_n|jd|7<d
S)Nr�rir'rjr(r�r7r~r�Fr�r�T�
rr?�!afterDoctypeSystemIdentifierStaterr+r@rrrrrzr%r%r&r�Zs0

��

�

z6HTMLTokenizer.doctypeSystemIdentifierDoubleQuotedStatecCs�|j��}|dkr|j|_n�|dkrN|j�tddd��|jdd7<n�|dkr�|j�tdd	d��d
|jd<|j�|j�|j|_nR|t	ur�|j�tddd��d
|jd<|j�|j�|j|_n|jd|7<d
S)Nr�rir'rjr(r�r7r~r�Fr�r�Tr�rzr%r%r&r�rs0

��

�

z6HTMLTokenizer.doctypeSystemIdentifierSingleQuotedStatecCs�|j��}|tvrn~|dkr4|j�|j�|j|_n^|turt|j�t	ddd��d|jd<|j�|j�|j|_n|j�t	ddd��|j
|_dS)	Nr~r'r�r(Fr�r�T)rr?r
r+r@rrrrrr�rzr%r%r&r��s$

�

�z/HTMLTokenizer.afterDoctypeSystemIdentifierStatecCsZ|j��}|dkr*|j�|j�|j|_n,|turV|j�|�|j�|j�|j|_ndS)Nr~T)	rr?r+r@rrrrrFrzr%r%r&r��s


zHTMLTokenizer.bogusDoctypeStatecCs�g}|�|j�d��|�|j�d��|j��}|tkr>q�q|dksJJ�|ddd�dkrv|ddd�|d<q�q|�|�qd�|�}|�d�}|dkr�t|�D]}|j�t	d	d
d��q�|�
dd�}|r�|j�t	d
|d��|j|_dS)N�]r~rP���z]]r3rirr'rjr(r7rUT)
r@rrnr?rrB�count�ranger+rr�rr)r!r*r?Z	nullCountr�r%r%r&r��s2


�
�zHTMLTokenizer.cdataSectionState)N)NF)N�__name__�
__module__�__qualname__�__doc__r r0rLr]r^rhrrlrtrrrwryr{rmr�r�rsr�r�rvr�r�rxr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__r%r%r#r&rs�H
P#

6 "-3rN) Z
__future__rrrZpip._vendor.sixrrD�collectionsrr�sysrZ	constantsr
rrr
rrrrrrZ_inputstreamrZ_trierrV�dictrd�objectrr%r%r%r&�<module>s 
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg