HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //proc/self/root/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyc
�
1�3\c@@s�ddlmZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
Z
mZmZddlmZmZmZejZejZejZdZdZd	Zd
Ze
jZe
jZd�Zeje
j�de fd
��Y�Z!d�Z"d�Z#d�Z$d�Z%iid$d6ej&d6ej'd6ej(6Z)d�Z*d�Z+d�Z,d�Z-d�Z.d�Z/eje
j�de fd��Y�Z0de0fd ��YZ1d!�Z2d"e fd#��YZ3dS(%i(tabsolute_importNi(t_(tencodingterrortpycompattutiltwireprototypestwireprotov1servertwireprotov2server(tcborutilt
interfaceutiltprocutili�sapplication/mercurial-0.1sapplication/mercurial-0.2sapplication/hg-errorcC@srg}d}xVtrd|jjd||f�}|dkrAPn|jtj|��|d7}qWdj|�S(sjDecode a long value from multiple HTTP request headers.

    Returns the value as a bytes, not a str.
    is%s-%dtN(tTruetheaderstgettNonetappendRtbytesurltjoin(treqtheaderprefixtchunkstitv((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytdecodevaluefromheaders,s	thttpv1protocolhandlercB@sqeZd�Zed��Zd�Zd�Zd�Zd�Ze	j
d��Zd�Zd�Z
d	�ZRS(
cC@s(||_||_||_d|_dS(N(t_reqt_uit
_checkpermRt
_protocaps(tselfRtuit	checkperm((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt__init__>s			cC@sdS(Nshttp-v1((R((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytnameDscC@s�|j�}i}|j�}x�|D]{}|dkr�i}xA|j�D]3}|dkrJ||krJ||d||<qJqJW||d<q%||d||<q%Wg|D]}||^q�S(Nt*tcmdi(t_argstsplittkeys(Rtargst	knownargstdataR(tktstartkey((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytgetargsHs

cC@s�|jjj�}t|jjjdd��}|re|jtj|jj	j
|�dt��|St|jd�}|jtj|dt��|S(Ns
X-HgArgs-Postitkeep_blank_valuessX-HgArg(
Rtqsparamst
asdictofliststintRRtupdateturlreqtparseqstbodyfhtreadR
R(RR)tpostlentargvalue((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR&WscC@sC|jdkr<t|jd�}t|jd��|_n|jS(Ns	X-HgProtot (RRRRtsetR'(Rtvalue((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytgetprotocapscscC@sQt|jjd�}|t|jjjdd��8}tj|jjd|�S(NsContent-Lengths
X-HgArgs-Postitlimit(R3RRRRt
filechunkiterR7(Rtlength((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt
getpayloadis"cc@se|jj}|jj}tj�}z!||j_||j_|VWd||j_||j_XdS(N(RtfouttferrRtstringio(Rtoldouttolderrtout((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytmayberedirectstdiors	cC@sAd|jjtj|jjp!d�tj|jjp9d�fS(Nsremote:%s:%s:%sR(Rt	urlschemeR5tquotet
remotehostt
remoteuser(R((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytclient�s	cC@s�|jd�|jd|jjdd��|jjdd�rR|jd�n|jd�tj|jtj�}|r�djd	�|D��}|jd
|�n|S(Ntbatchs
httpheader=%dtservertmaxhttpheaderlentexperimentalthttppostargsshttpmediatype=0.1rx,0.1tx,0.2txt,cs@s'|]}tj|j�j�VqdS(N(R5RKtwireprotosupportR#(t.0te((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pys	<genexpr>�sscompression=%s(	RR t	configintt
configboolRtsupportedcompenginesRt
SERVERROLER(Rtrepotcapstcompenginest	comptypes((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytaddcapabilities�s
	

cC@s
|j|�S(N(R(Rtperm((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR!�s(t__name__t
__module__R"tpropertyR#R/R&R>RBt
contextlibtcontextmanagerRIRNR`R!(((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR<s								cC@s
|tjkS(N(Rtcommands(R%((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytiscmd�sc@s?ddlm}�j}d�jkr,tS�jd}t|�sItS�jr�|jd�|_t	|j
d<|jd	�tSt
�|j���fd��}yt|�|||�Wnx|jk
r:}x$|j
D]\}	}
|
|j
|	<q�W|j|jtj|��|_|jdtj|��nXtS(
s�Possibly process a wire protocol request.

    If the current request is a wire protocol request, the request is
    processed by this function.

    ``req`` is a ``parsedrequest`` instance.
    ``res`` is a ``wsgiresponse`` instance.

    Returns a bool indicating if the request was serviced. If set, the caller
    should stop processing the request, as a response has already been issued.
    i(tcommonR%i�sContent-Types0
%s
s	Not Foundc@s���|�S(N((Ra(R!trctxR(s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt<lambda>�Rs0
Not Found
(thgwebRiR\R1tFalseRhtdispatchpatht
statusmessagetstatustHGTYPERtsetbodybytesR
RR t	_callhttpt
ErrorResponsetcodeRtbytestr(RjRtresR!thgwebcommonR\R%tprotoRWR,R((R!RjRs?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pythandlewsgirequest�s,
	
		

!cC@s_t�}xOtj�D]A\}}|d\}}|jj||�r|j|�qqW|S(Ntconfig(R<tAPI_HANDLERStitemsR RYtadd(R\tapisR,Rtsectiontoption((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt_availableapis�s	cC@s�|jddkst�|j}|jjdd�sdd|_d|jd<|jtd��d	St	|�}|jdgkr�d
|_d|jd<td�g}|r�|j
t|��n|jtd��|jd
j
|��d	S|jd}|tkrOd|_d|jd<|jtd�|dj
t|��f�d	S||kr�d|_d|jd<|jtd�|�d	St|d|||||jd�d	S(sHandle requests to /api/*.itapiRRs
web.apiservers
404 Not Founds
text/plainsContent-Types,Experimental API server endpoint not enabledNs200 OKsOAPIs can be accessed at /api/<name>, where <name> can be one of the following:
s(no available APIs)
s
isUnknown API: %s
Known APIs: %ss, sAPI %s not enabled
thandleri(t
dispatchpartstAssertionErrorR\R RYRpRRrRR�textendtsortedRRR|(RjRRwR!R\t
availableapistlinesRy((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pythandlewsgiapirequest�s>		
	

	
	
RRsweb.api.http-v2R{R�t
apidescriptorcC@s�d|j�kr�|r+ttj�ifStj|�}x}tj|tj�D]c}|j	�j
|krPi}|jdd|j
��}|dk	r�||d<nt||fSqPWni|jdd�d6}t
tjd|fS(s�Determine the appropriate response type and compression settings.

    Returns a tuple of (mediatype, compengine, engineopts).
    s0.2RPs%sleveltlevelt	zlibleveltzlibN(R>tHGTYPE2Rt_noopengineRtclientcompressionsupportRRZR[RUR#RXRRqR^(R Rytprefer_uncompressedtcompformatstenginetoptsR�((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt_httpresponsetype9s
cC@s]|jjdd�stSt|d�}t|d�}|sE|rItSt|jd��}d|krntSi}xbtt|j��t|�@�D]>}t|}|j	d�}	|	s�q�n|	||�||<q�Wt
j||d�}
t|
t
j�st�id	d
6|d6|
jd6}d
|_d|jd<|jdjtj|���tS(sCalled during a ?cmd=capabilities request.

    If the client is advertising support for a newer protocol, we send
    a CBOR response with information about available services. If no
    advertised services are available, we don't handle the request.
    RRs
web.apiserversX-HgUpgrades	X-HgProtoR;tcborR�tcapabilitiessapi/tapibaseRtv1capabilitiess200 OKsapplication/mercurial-cborsContent-TypeR(R RYRmRR<R'R�R�R|RRtdispatcht
isinstanceRt
bytesresponseR�R+RpRRrRR	tstreamencodeR
(R\RRwRyt
clientapist	protocapstdescriptorsR�R�tdescriptorfntv1capstm((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytprocesscapabilitieshandshakeZs4)

	
c@snddlm�d�}dd��fd�}tjj||�s`|tttd��dS|j	tj|j
�|dkr�t||�|�r�dStj|||�}t
|t�r�|ttd|�n�t
|tj�r|ttd|j�nit
|tj�r,|ttd|j�n>t
|tj�r�|j}t|j||j�\}	}
}|
j||�}|	tkr�|||
|�}n|t|	d|�n�t
|tj�r�d	|j|jf}|ttd|�n{t
|tj�r-d
|j}t�_ |ttd|�n=t
|tj!�rX|ttd|j"�nt#j$d|��dS(Ni(Rics@sm|j�j}dt|�ko,dkns7t�tjdt|��V|Vx|D]}|VqZWdS(NiitB(RUR#tlenR�tstructtpack(tgenR�t
engineoptsR#tchunk((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytgenversion2�s(
c@ss|tkrd�_n�j|��_|�jd<|dk	rS�j|�n|dk	ro�j|�ndS(Ns200 Script output followssContent-Type(tHTTP_OKRpRoRRRrt
setbodygen(Rutcontenttypet	bodybytestbodygen(RxRw(s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pytsetresponse�s
s:requested wire protocol command is not available over HTTPR�R�R�s%d
%ss0
%s
shgweb.protocol internal failure(%RlRiRRRgtcommandavailableR�t	HGERRTYPERR!t
permissionR�R�R�tbytesRqRR�R+tstreamreslegacyR�t	streamresR�R R�tcompressstreamR�tpushresRwtoutputtpusherrR
tdraintooberrortmessageRtProgrammingError(R\RRwRyR%R�R�trspR�t	mediatypeR�R�((RxRws?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyRs�sH	
	
	
	cC@s2|jdt|��|j|�|j�dS(s-Send a bytes response for protocol version 1.s%d
N(twriteR�tflush(RCR=((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt_sshv1respondbytes�s
cC@s5|j}x|jD]}||�qW|j�dS(N(R�R�R�(RCtsourceR�R�((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt_sshv1respondstream�s	cC@s6|jd|�|j�|jd�|j�dS(Ns%s
-
s
(R�R�(RCRDR�((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt_sshv1respondooberror�s

tsshv1protocolhandlercB@sneZdZd�Zed��Zd�Zd�Zd�Ze	j
d��Zd�Zd�Z
d	�ZRS(
s<Handler for requests services via version 1 of SSH protocol.cC@s+||_||_||_t�|_dS(N(Rt_fint_foutR<R(RR tfinRC((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR"�s			cC@stjS(N(RtSSHV1(R((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR#�scC@sBi}|j�}xtjt|��D]�}|jj�d }|j�\}}||kr{tjtd�|��n|dkri}xdtjt	|��D]M}	|jj�d }|j�\}}|jj
t	|��}
|
||<q�W||d<q(|jj
t	|��}
|
||<q(Wg|D]}	||	^q.S(Ni����sunexpected parameter %rR$(R'RtxrangeR�R�treadlineRtAbortRR3R8(RR)R+R(tntarglinetargtlR-R,tval((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR/�s$
cC@s|jS(N(R(R((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR>	scc@s\t|jd�t|jj��}x0|rW|jj|�Vt|jj��}q(WdS(NR(R�R�R3R�R�R8(Rtcount((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyRBs
	cc@s	dVdS(N(R(R((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyRIscC@s-tjjdd�jdd�d}d|S(Nt
SSH_CLIENTRR;iisremote:ssh:(RtenvironRR'(RRN((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyRN s%cC@s3|jtjkr"|jd�n|jd�|S(NR�RO(R#RR�R(RR\R]((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR`$s
cC@sdS(N((RRa((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR!*s(RbRct__doc__R"RdR#R/R>RBReRfRIRNR`R!(((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR��s						tsshv2protocolhandlercB@s&eZdZed��Zd�ZRS(s3Protocol handler for version 2 of the SSH protocol.cC@stjS(N(RtSSHV2(R((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR#0scC@s|S(N((RR\R]((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR`4s(RbRcR�RdR#R`(((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR�-scC@s�d}t|||�}t}x�|j�s�|dkr|j�d }|s[d}q!n|jd�r�|r�t||jd�d}q!nd}q!ntjj	||�}	|	s�t
|d�q!ntj|||�}
t|
t
�r�t
||
�q�t|
tj�r"t
||
j�q�t|
tj�rDt||
�q�t|
tj�rft||
�q�t|
tj�r�t
|d�t
|d|
j�q�t|
tj�r�t
||
j�q�t|
tj�r�t||j|
j�q�tjd	|
��q!|d
krd}q!q!|dkrD|s3t�|jtjksKt�y|jd�d\}}Wn'tk
r�t
|d�d}q!nX|j d
d�s�t
|d�d}q!nyt!j"|�}Wn'tk
r�t
|d�d}q!nX|j#ddg�d}
t$|
kr8t
|d�d}q!nd}q!q!|dkrt%}xQd D]I}|j�d }||kr]t||jd|�t}d}Pq]q]W|s�q!n|j&d�}|dddddfkrt||jd�d}q!nd}q!q!|dkr�|j'd|t$f�tj(||�}d|j}
|j'dt)|
�|
f�|j*�t+|||�}t%}d
}q!q!|dkr�Pq!tjd|��q!WdS(!Nsprotov1-servingi����tshutdownsupgrade s'cannot upgrade protocols multiple timessupgrade-initialRs%ds6unhandled response type from wire protocol command: %ssprotov2-servingR;iRRssshserver.support-v2Ryis"upgrade-v2-filter-legacy-handshakethellotbetweenspairs 81s(malformed handshake protocol: missing %siQs%s-%st0i(s<malformed handshake protocol: missing between argument valuesupgrade-v2-finishsupgraded %s %s
scapabilities: %ss%d
%s
sunhandled ssh server state: %s(R�R�spairs 81(,R�Rmtis_setR�t
startswithR�RDRRgR�R�R�R�R�RR�R+R�R�R�R�RwR�R�R�RR�R�R#R�R't
ValueErrorRYR5R6RR�R
R8R�R�R�R�R�(R R\R�RCtevtstateRyt
protoswitchedtrequestt	availableR�ttokenR]twantedprotostoktlinet
servercaps((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt
_runsshserver7s�5	

	







	


	t	sshservercB@s&eZdd�Zd�Zd�ZRS(cC@s�||_||_tj|j|j�\|_|_|j|jf|j|jfk|_|r�t	j
||jddt�|_t	j
||jddt�|_ndS(NtotlogdataRW(
Rt_repoRtprotectstdioR�RCR�R�t_finoutredirectedRtmakeloggingfileobjectR
RD(RR R\tlogfh((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR"s		$'cC@sL|jtj��tj|jj|jj|j|j	�t
jd�dS(Ni(t
serveuntilt	threadingtEventRtrestorestdioRR�RCR�R�tsystexit(R((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt
serve_foreverscC@s&t|j|j|j|j|�dS(s%Serve until a threading.Event is set.N(R�RR�R�R�(RR�((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR�"sN(RbRcRR"R�R�(((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyR�
s	(RRsweb.api.http-v2(4t
__future__RReR�R�R�ti18nRRRRRRRRRtutilsR	R
RREturlerrR5R�RqR�R�R�R�RtimplementertbaseprotocolhandlertobjectRRhRzR�R�thandlehttpv2requestthttpv2apidescriptortHTTP_WIREPROTO_V2R|R�R�RsR�R�R�R�R�R�R�(((s?/usr/lib64/python2.7/site-packages/mercurial/wireprotoserver.pyt<module>sN4							f		B		=
	!	0	K			E
	�