403Webshell
Server IP : 74.208.236.16  /  Your IP : 216.73.216.220
Web Server : Apache
System : Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User : u102440577 ( 7172810)
PHP Version : 8.4.26
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /kunden/lib/python3/dist-packages/mercurial/hgweb/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /kunden/lib/python3/dist-packages/mercurial/hgweb/__pycache__/request.cpython-313.pyc
�

6�h?X����SSKJr SSKrSSKJr \R
(aSSKrSSKJrJrJ	r	 SSK
Jr "SS5r\R"S	S
9"SS55rSS
jr"SS5r"SS5rSrg)�)�annotationsN�)�attr)�error�pycompat�util)�urlutilc�^�\rSrSrSrSrSrSrSrSr	Sr
SS
jrSrSr
S
rSrSrg	)�	multidict� z�A dict like object that can store multiple values for a key.

Used to store parsed request parameters.

This is inspired by WebOb's class of the same name.
c��0Ulg�N��_items��selfs �9/usr/lib/python3/dist-packages/mercurial/hgweb/request.py�__init__�multidict.__init__(s	�����c�&�URUS$)z%Returns the last set value for a key.���r�r�keys  r�__getitem__�multidict.__getitem__+s���{�{�3���#�#rc�$�U/URU'g)z,Replace a values for a key with a new value.Nr�rr�values   r�__setitem__�multidict.__setitem__/s��!�7����C�rc��URU	g)zDelete all values for a key.Nrrs  r�__delitem__�multidict.__delitem__3s���K�K��rc��XR;$rrrs  r�__contains__�multidict.__contains__7s���k�k�!�!rc�,�[UR5$r)�lenrrs r�__len__�multidict.__len__:s���4�;�;��rNc�J�URU5$![a Us$f=fr)r�KeyError)rr�defaults   r�get�
multidict.get=s,��	��#�#�C�(�(���	��N�	�s��"�"c�Z�URRU/5RU5 g)z<Add a new value for a key. Does not replace existing values.N)r�
setdefault�appendrs   r�add�
multidict.addCs!�������s�B�'�.�.�u�5rc�:�URRU/5$)zObtains all values for a key.)rr/rs  r�getall�multidict.getallGs���{�{���s�B�'�'rc�d�URUn[U5S:�a[SU-5eUS$)zdObtain a single value for a key.

Raises KeyError if key not defined or it has multiple values set.
�smultiple values for %rr)rr)r-)rr�valss   r�getone�multidict.getoneKs7��
�{�{�3����t�9�q�=��4�s�:�;�;��A�w�rc��URR5VVs0sHupU[U5_M snn$s snnfr)r�items�list)r�k�vs   r�
asdictoflists�multidict.asdictoflistsWs3��'+�{�{�'8�'8�':�;�':�t�q��4��7�
�':�;�;��;s�:rr)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rrr r#r&r*r/r4r7r<rC�__static_attributes__�rrrr s>����$�#��"� ��6�(�
�<rrT)�frozenc�Z�\rSrSrSr\R"5r\R"5r\R"5r	\R"5r
\R"5r\R"5r\R"5r
\R"5r\R"5r\R"5r\R"5r\R"5r\R"5r\R"5r\R"5r\R"5r\R"5rSrg)�
parsedrequest�[zlRepresents a parsed WSGI request.

Contains both parsed parameters as well as a handle on the input stream.
rKN)rErFrGrHrIr�ib�method�url�baseurl�
advertisedurl�advertisedbaseurl�	urlscheme�
remoteuser�
remotehost�apppath�
dispatchparts�dispatchpath�reponame�querystring�qsparams�headers�bodyfh�rawenvrJrKrrrNrN[s�����W�W�Y�F�
�'�'�)�C��g�g�i�G��G�G�I�M����	�����	�I�����J�����J��g�g�i�G��G�G�I�M��7�7�9�L��w�w�y�H��'�'�)�K��w�w�y�H��g�g�i�G�
�W�W�Y�F�
�W�W�Y�FrrNc�P�SnUR5VVs0sHupVU"U5U"U5_M nnnU(dURS5nU(a[R"U5nUSS-nU(a!UR(aURS-nOUnSn	URS5(aXpS-
nOXpS-
nU	"XpS5nU(a�UR
(a�X�R
-
nUR(a
URn
OMURS	:XaUR(dS
n
O)URS:XaUR(dSn
OUSn
U	"X�5nOX�S-
nU	"X�S5nUnUnU[RRURS
S55-
nU[RRURSS55-
nU(aZUR=(d Sn
U
(aU
RS5(dSU
-n
U[RRU
5-
nO2U[RRURS
S55-
nU[RRURSS55-
nURS5(aUSUS--
nUSUS--
nU(a8UR=(d SnU(aURS5(dSU-nOURS
S5nU(Ga	SURS5-nURS5(d[R"S5eUSRU5(d[R"SUSU4-5eUS[U5SnU(a4URS5(d[R"SUSU4-5eUR!S5U-nURS5R#S5nSR%U5nO]SU;aSUSRS5(a5USRS5R#S5nSR%U5nO	/nSnO/nSnURSS5n['5n[RR)USS9HupVUR+XV5 M /nUR5HLupVURS5(dMUR-U[S5SR/SS5U45 MN SSKJn UR5U5nSU;aSU;aUSUS 'S!U;aS"U;aUS!US#'Uc7US$nS U;a,[R6"U[9US =(d S%55n[;S:0S&US'_S(U_S)U_S*U_S+U_S,US_S-URS.5_S/URS05_S1U_S2U_S3U_S4U_S5U_S6U_S7U_S8U_S9U_6$s snnf);a�Parse URL components from environment variables.

WSGI defines request attributes via environment variables. This function
parses the environment variables into a data structure.

If ``reponame`` is defined, the leading path components matching that
string are effectively shifted from ``PATH_INFO`` to ``SCRIPT_NAME``.
This simulates the world view of a WSGI application that processes
requests from the base URL of a repo.

If ``altbaseurl`` (typically comes from ``web.baseurl`` config option)
is defined, it is used - instead of the WSGI environment variables - for
constructing URL components up to and including the WSGI application path.
For example, if the current WSGI application is at ``/repo`` and a request
is made to ``/rev/@`` with this argument set to
``http://myserver:9000/prefix``, the URL and path components will resolve as
if the request were to ``http://myserver:9000/prefix/rev/@``. In other
words, ``wsgi.url_scheme``, ``SERVER_NAME``, ``SERVER_PORT``, and
``SCRIPT_NAME`` are all effectively replaced by components from this URL.

``bodyfh`` can be used to specify a file object to read the request body
from. If not defined, ``wsgi.input`` from the environment dict is used.
c�R�[U[5(dU$URS5$)Nz	iso8859-1)�
isinstance�str�encode)�ss r�tobytes�$parserequestfromenv.<locals>.tobytes�s#���!�S�!�!��H��x�x��$�$rs	REPO_NAMEswsgi.url_schemes://c�n�URS5(aUS:waUSU--
nU$US:waUSU--
nU$)Nshttps://�443�:�80)�
startswith)rg�ports  r�addport�$parserequestfromenv.<locals>.addport�sI���<�<��$�$��v�~��T�D�[� ��
���u�}��T�D�[� ���rs	HTTP_HOSTsSERVER_NAMEsSERVER_PORTshttprmshttpsrksSCRIPT_NAMErs	PATH_INFO�/sQUERY_STRING�?sreponame requires PATH_INFOs0PATH_INFO does not begin with repo name: %s (%s)NsDreponame prefix of PATH_INFO does not end at path delimiter: %s (%s)T)�keep_blank_valuessHTTP_�_�-r:��wsgiheaderssCONTENT_LENGTHsHTTP_CONTENT_LENGTH�Content-LengthsCONTENT_TYPEsHTTP_CONTENT_TYPEsContent-Types
wsgi.input�0rQsREQUEST_METHODrRrSrTrUrVrWsREMOTE_USERrXsREMOTE_HOSTrYrZr[r\r]r^r_r`rarK)r?r/r	rR�scheme�hostror�urlreq�quote�pathrn�stripr�ProgrammingErrorr)�rstrip�split�joinr�parseqslr4r3�replace�rx�Headers�cappedreader�intrN)�envr\�
altbaseurlr`rhrArB�fullurl�advertisedfullurlrprorSrUrrY�
repoprefixr[rZr]r^r_rxs                      r�parserequestfromenvr��s��F%�
/2�i�i�k�
:�k�d�a�7�1�:�w�q�z�!�k�C�
:�
��7�7�<�(����[�[��,�
��$�%��.�G��j�'�'�&�-�-��6��#����w�w�|����|�$�$���~�&�&���'�~�#6�7���j�o�o��_�_�,���?�?��?�?�D�
�
�
�'�
)�*�/�/��D�
�
�
�(�
*�:�?�?��D��~�&�D�#�$5�<����0�0��#�$5�>�7J�K���G�)���t�{�{� � ������!=�>�>�G��t�{�{� � �����s�!;�<�<�G�����%�#�������-�-��$�;�D��T�[�[�.�.�t�4�4���T�[�[�.�.�s�w�w�~�s�/K�L�L������*�*�3�7�7�<��+E�F�F��
�w�w�����4�#�o�.�.�.���T�C��$8�8�8����/�/�(�S���7�-�-�d�3�3��W�n�G���'�'�.�#�.����H�N�N�4�0�0�
��w�w�|�$�$��(�(�)G�H�H��<� �+�+�J�7�7��(�(�!�$'��$5�x�#@�A��
�
�<�(��Z��):�;���� 7� 7�� =� =��(�(�6��|�$�h�/�0��
��.�.��&��3��$�*�*�4�0�6�6�t�<�
��y�y��/��	��	��|��"�"�4�(�(���-�3�3�D�9�?�?��E�M��9�9�]�3�L��M��L��
����'�'�/�3�/�K��{�H����$�$�[�D�$�I������Q��J��G��	�	�����<�<��!�!��N�N�A�c�(�m�o�.�6�6�t�T�B�A�F�G����!�!�'�*�G��C��$:�#�$E�%(�):�%;��!�"��#��"6�c�"A�#&��#7��� �
�~��]�#����'��&�&���G�$5�6�>�$�?��F����$�%������(�	�
,���(�)�
��7�7�>�*���7�7�>�*����$��"���� ������ �!�"�#���;s�X"c�0�\rSrSrSrSrSrSrSrSr	g)	�offsettrackingwriteriha�A file object like object that is append only and tracks write count.

Instances are bound to a callable. This callable is called with data
whenever a ``write()`` is attempted.

Instances track the amount of written data so they can answer ``tell()``
requests.

The intent of this class is to wrap the ``write()`` function returned by
a WSGI ``start_response()`` function. Since ``write()`` is a callable and
not a file object, it doesn't implement other file object methods.
c��XlSUlg)Nr)�_write�_offset)r�writefns  rr�offsettrackingwriter.__init__vs������rc��URU5nUcU=R[U5-
slgU=RU-
slgr)r�r�r))rrg�ress   r�write�offsettrackingwriter.writezs4���k�k�!�n���;��L�L�C��F�"�L��L�L�C��Lrc��grrKrs r�flush�offsettrackingwriter.flush�s��rc��UR$r)r�rs r�tell�offsettrackingwriter.tell�s���|�|�r)r�r�N)
rErFrGrHrIrr�r�r�rJrKrrr�r�hs���� �
�rr�c�B�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rg)�wsgiresponsei�a(Represents a response to a WSGI request.

A response consists of a status line, headers, and a body.

Consumers must populate the ``status`` and ``headers`` fields and
make a call to a ``setbody*()`` method before the response can be
issued.

When it is time to start sending the response over the wire,
``sendresponse()`` is called. It handles emitting the header portion
of the response message. It then yields chunks of body data to be
written to the peer. Typically, the WSGI application itself calls
and returns the value from ``sendresponse()``.
c��XlX lSUlSSKJn UR/5UlSUlSUlSUl	SUl
SUlg)z�Create an empty response tied to a specific request.

``req`` is a ``parsedrequest``. ``startresponse`` is the
``start_response`` function passed to the WSGI application.
Nr:rwF)�_req�_startresponse�statusr�rxr�r_�
_bodybytes�_bodygen�_bodywillwrite�_started�_bodywritefn)r�req�
startresponserxs    rr�wsgiresponse.__init__�sP���	�+�����!�"�*�*�2�.��������
�#�����
� ��rc��URcURcUR(a[R"S5eg)Ns!cannot define body multiple times)r�r�r�rr�rs r�_verifybody�wsgiresponse._verifybody�s6���O�O�'��}�}�(��"�"��(�(�)M�N�N�#rc�f�UR5 XlS[U5-URS'g)zdDefine the response body as static bytes.

The empty string signals that there is no response body.
s%dryN)r�r�r)r_)r�bs  r�setbodybytes�wsgiresponse.setbodybytes�s,��
	
������*/�#�a�&�.����&�'rc�0�UR5 Xlg)z1Define the response body as a generator of bytes.N)r�r�)r�gens  r�
setbodygen�wsgiresponse.setbodygen�s�������
rc�2�UR5 SUlg)a�Signal an intent to use write() to emit the response body.

**This is the least preferred way to send a body.**

It is preferred for WSGI applications to emit a generator of chunks
constituting the response body. However, some consumers can't emit
data this way. So, WSGI provides a way to obtain a ``write(data)``
function that can be used to synchronously perform an unbuffered
write.

Calling this function signals an intent to produce the body in this
manner.
TN)r�r�rs r�setbodywillwrite�wsgiresponse.setbodywillwrite�s��	
����"��rc#�
# �UR(a[R"S5eSUlUR(d[R"S5eURcNUR
cAUR(d0URRS:wa[R"S5eURRS5(a�URRS5S	:Xa
URS	URR5Vs1sHnUR5S
;dMUiM nnU(a1[R"SSR[U55-5eUR
cUR(a[R"S
5eSnSnURRRSS5R5S:XaOSURRS;aO8[!URR"[$R&5(dSnOSnU(aSURS'U(ae[!URR"[$R&5(deURR"R)S5nU(dOM/URR+5VVs/sH1up[,R."U5[,R."U54PM3 nnnUR1[,R2"UR5U5nUR(aURv� gUR
(a8UR
H'n[!U[45(a[7U5nUv� M) gUR(aX�lgURRS:Xag[R"S5 gs snfs snnf7f)z�Send the generated response to the client.

Before this is called, ``status`` must be set and one of
``setbodybytes()`` or ``setbodygen()`` must be called.

Calling this method multiple times is not allowed.
s$sendresponse() called multiple timesTsstatus line not definedNsHEADsresponse body not defineds304 ryrz)sdatesetagsexpiress
cache-controlscontent-locationscontent-security-policysvarys"illegal header on 304 response: %ss, s,must use setbodybytes('') with 304 responsesFsExpectrs100-continue)sPOSTsPUTsCloses
Connectioni�sdo not know how to send body)r�rr�r�r�r�r�r�rQrnr_r/�keys�lowerr��sortedrdr`rr��readr?r�strurlr��sysstr�	bytearray�bytesr�)	rrA�
badheaders�drain�close�chunkrB�
strheadersr�s	         r�sendresponse�wsgiresponse.sendresponse�s,����=�=��(�(�7��
���
��{�{��(�(�)C�D�D�
�O�O�#��
�
�%��'�'��	�	� � �G�+��(�(�)E�F�F��;�;�!�!�'�*�*��|�|��� 1�2�d�:��L�L�!2�3����*�*�,�
�,�A��7�7�9��	��,�
�
���,�,�9��j�j��
�!3�4�5���
�}�}�(�D�,?�,?��,�,�C�������
�9�9��� � ��C�0�6�6�8�O�K���Y�Y�
�
�%6�
6���d�i�i�.�.��0A�0A�B�B������*2�D�L�L��'���d�i�i�.�.��0A�0A�B�B�B�B���	�	�(�(�-�-�e�4��������*�*�,�
�,����_�_�Q�
�����!3�4�,�	�
��#�#�H�O�O�D�K�K�$@�*�M���?�?��/�/�!�
�]�]������e�Y�/�/�!�%�L�E���'��
 �
 � %��
�Y�Y�
�
��
(���"�"�#B�C��}
��P
�s&�DP�O8�7O8�=FP�8O=�C1Pc���UR(d[R"S5eUR(d[R"S5eUR(de[UR5$)a�Obtain a file object like object representing the response body.

For this to work, you must call ``setbodywillwrite()`` and then
``sendresponse()`` first. ``sendresponse()`` is a generator and the
function won't run to completion unless the generator is advanced. The
generator yields not items. The easiest way to consume it is with
``list(res.sendresponse())``, which should resolve to an empty list -
``[]``.
s"must call setbodywillwrite() firstsWmust call sendresponse() first; did you remember to consume it since it is a generator?)r�rr�r�r�r�rs r�getbodyfile�wsgiresponse.getbodyfile]s`���"�"��(�(�)N�O�O��}�}��(�(�#��
�� � � � �#�D�$5�$5�6�6r)	r�r�r�r�r�r�r�r_r�N)
rErFrGrHrIrr�r�r�r�r�r�rJrKrrr�r��s.��
�!�(O�9��
#�"GD�R7rr�c�"^�U"5mU4SjnU$)zwFor compatibility with old CGI scripts. A plain hgweb() or hgwebdir()
can and should now be used as a WSGI application.c�>�T"X5$rrK)r��respond�applications  �r�run_wsgi�!wsgiapplication.<locals>.run_wsgizs����3�(�(rrK)�	app_makerr�r�s  @r�wsgiapplicationr�us����+�K�)��Or)NNN)�
__future__r�typing�
thirdpartyr�
TYPE_CHECKINGr�rrr�utilsr	rrgrNr�r�r�r�rKrr�<module>r�s���#���
������
�
8<�8<�v���t��-�-��-�`Y�x��Bi7�i7�Xr

Youez - 2016 - github.com/yon3zu
LinuXploit