HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberPanel/lib64/python3.10/site-packages/h11/__pycache__/_readers.cpython-310.pyc
o

��h�!�@s\UddlZddlmZmZmZmZmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZddlmZmZmZmZmZddlmZddlmZmZmZmZmZmZmZm Z ddl!m"Z"m#Z#m$Z$m%Z%d	gZ&e�'e
�(d
��Z)e�'d�Z*dee+d
ee+fdd�Z,dee+d
eee+e+ffdd�Z-e�'e�(d
��Z.ded
eefdd�Z/e�'e�(d
��Z0ded
e
eedffdd�Z1Gdd�d�Z2e�'e�(d
��Z3Gdd�d�Z4Gdd�d�Z5ded
dfdd�Z6ee
e	e$ee	e$e	e$ffe
edefee7edeffffZ8eefe/e efe1e efe1eefe6eefe6eefe6e efe6e efe6e efe6ee4e2e5d �i
Z9e8e:d	<dS)!�N)	�Any�Callable�Dict�Iterable�NoReturn�Optional�Tuple�Type�Union�)�chunk_header�header_field�request_line�status_line)�Data�EndOfMessage�InformationalResponse�Request�Response)�
ReceiveBuffer)�CLIENT�CLOSED�DONE�IDLE�
MUST_CLOSE�	SEND_BODY�
SEND_RESPONSE�SERVER)�LocalProtocolError�RemoteProtocolError�Sentinel�validate�READERS�asciis[ \t]+�lines�returnccs��t|�}d}|D]2}t�|�}|r2|durtd��t|t�s#t|�}|d7}|||��d�7}q	|dur9|V|}q	|durE|VdSdS)Nz%continuation line at start of headers� )�iter�obs_fold_re�matchr�
isinstance�	bytearray�end)r$�it�last�liner)�r0�B/usr/local/CyberPanel/lib/python3.10/site-packages/h11/_readers.py�_obsolete_line_fold+s$�


�r2ccs4�t|�D]}tt|d|�}|d|dfVqdS)Nzillegal header line: {!r}�
field_name�field_value)r2r!�header_field_re)r$r/�matchesr0r0r1�_decode_header_lines@s
��r7�bufcCsj|��}|dur|��rtd��dS|std��tt|dd|d�}tdtt|dd���dd�|��S)	N�illegal request linezno request line receivedrzillegal request line: {!r}rT)�headers�_parsedr0)�maybe_extract_lines�+is_next_line_obviously_invalid_request_linerr!�request_line_rer�listr7)r8r$r6r0r0r1�maybe_read_from_IDLE_clientKs���r@cCs�|��}|dur|��rtd��dS|std��tt|dd|d�}|ddur+dn|d}|ddur7dn|d}t|d	�}|d
krGtnt}|tt	|dd���d|||d
�S)Nr9zno response line receivedrzillegal status line: {!r}�http_versions1.1�reason��status_code��rT)r:r;rDrBrA)
r<r=rr!�status_line_re�intrrr?r7)r8r$r6rArBrD�class_r0r0r1�$maybe_read_from_SEND_RESPONSE_server^s*���rIc@sHeZdZdeddfdd�Zdedeeedffdd�Z	de
fd	d
�ZdS)�ContentLengthReader�lengthr%NcCs||_||_dS�N)�_length�
_remaining)�selfrKr0r0r1�__init__{s
zContentLengthReader.__init__r8cCsD|jdkrt�S|�|j�}|durdS|jt|�8_t|d�S)Nr��data)rNr�maybe_extract_at_most�lenr�rOr8rRr0r0r1�__call__s

zContentLengthReader.__call__cCstd�|j|j|j���)Nz]peer closed connection without sending complete message body (received {} bytes, expected {}))r�formatrMrN�rOr0r0r1�read_eof�s��zContentLengthReader.read_eof)�__name__�
__module__�__qualname__rGrPrr
rrrVrrYr0r0r0r1rJzs	rJc@s@eZdZd
dd�Zdedeeedffdd�Zde	fdd	�Z
dS)�
ChunkedReaderr%NcCsd|_d|_d|_dS)NrrCF)�_bytes_in_chunk�_bytes_to_discard�_reading_trailerrXr0r0r1rP�s
zChunkedReader.__init__r8cCsh|jr|��}|dur
dSttt|��d�S|jrM|�t|j��}|dur'dS||jdt|��kr>td|�d|j�d���|jt|�d�|_|jrMdS|jdksTJ�|j	dkr�|�
�}|durcdStt|d|�}t
|dd	d
�|_	|j	dkrd|_||�Sd}nd}|j	dks�J�|�|j	�}|dur�dS|j	t|�8_	|j	dkr�d
|_d}nd}t|||d�S)N)r:zmalformed chunk footer: z (expected �)rCrzillegal chunk header: {!r}�
chunk_size�)�baseTFs
)rR�chunk_start�	chunk_end)r`r<rr?r7r_rSrTrr^�maybe_extract_next_liner!�chunk_header_rerGr)rOr8r$rRrr6rerfr0r0r1rV�sV�
�

zChunkedReader.__call__cCstd��)NzVpeer closed connection without sending complete message body (incomplete chunked read))rrXr0r0r1rY�s�zChunkedReader.read_eof)r%N)rZr[r\rPrr
rrrVrrYr0r0r0r1r]�s
2r]c@s0eZdZdedeefdd�Zdefdd�ZdS)�Http10Readerr8r%cCs |�d�}|durdSt|d�S)Ni�ɚ;rQ)rSrrUr0r0r1rV�s

zHttp10Reader.__call__cCst�SrL)rrXr0r0r1rY�szHttp10Reader.read_eofN)	rZr[r\rrrrVrrYr0r0r0r1ri�sricCs|rtd��dS)NzGot data when expecting EOF)r)r8r0r0r1�expect_nothing�srj.)�chunkedzcontent-lengthzhttp/1.0);�re�typingrrrrrrrr	r
�_abnfrr
rr�_eventsrrrrr�_receivebufferr�_staterrrrrrrr�_utilrrr r!�__all__�compile�encoder5r(�bytesr2r7r>r@rFrIrJrhr]rirj�str�ReadersTyper"�__annotations__r0r0r0r1�<module>sb
,(

�
��
�A"����