
    6h                    >    S SK Jr  SSKJrJr  SSKJr  SSKJr  S rg)	    )annotations   )encodingpycompat)procutil   )commonc                  ^	^
^^ [         R                  " [         R                  5        [         R                  " [         R                  5        [        R
                  R                  5        VVs0 s H&  u  pUR                  S5      UR                  S5      _M(     nnnUR                  SS5        UR                  SS5      R                  S5      (       a2  US   nUS   R                  U5      (       a  US   [        U5      S  US'   [         R                  nUR                  SS5      R                  5       S:X  a/  [        R                  " U[         R                  R                  5      nXSS	'   [         R                   US
'   SUS'   SUS'   SUS'   SUS'   UR                  SS5      R                  5       S;   a  SUS'   OSUS'   / m
/ m	[         R                  mU	U
U4S jmSU	U
U4S jjnU " X65      n U H  nT" U5        M     T	(       d  T" S5        [#        USS 5      " 5         g s  snnf ! [#        USS 5      " 5         f = f)Nz	iso8859-1	PATH_INFO SERVER_SOFTWAREzMicrosoft-IISSCRIPT_NAMEHTTP_EXPECTz100-continuez
wsgi.inputzwsgi.errors)r   r   zwsgi.versionFzwsgi.multithreadTzwsgi.multiprocesszwsgi.run_onceHTTPSoff)on1yeshttpszwsgi.url_schemehttpc                  > T(       d  [        S5      eT(       d  T=u  pTS S & TR                  S[        R                  " U5      -  5        U HC  u  p4TR                  S[        R                  " U5      [        R                  " U5      4-  5        ME     TR                  S5        TR                  U 5        TR	                  5         g )Ns   write() before start_response()s   Status: %s
s   %s: %s
s   
)AssertionErrorwriter   bytesurlflush)datastatusresponse_headershkhvheaders_sentheaders_setouts        9/usr/lib/python3/dist-packages/mercurial/hgweb/wsgicgi.pyr   launch.<locals>.write7   s     !CDD9DD$F|AII'(*;*;F*CCD*		!((,h.?.?.CDE +
 IIg		$		    c                   > U(       a   T(       a  US   " US   US   5      e AOT(       a  [        S5      eX/TS S & T$ ! Af = f)Nr   r   r   s   Headers already set!)r   )r   r   exc_infor!   r"   r   s      r$   start_responselaunch.<locals>.start_responseI   sX    "1+hqk8A;??    !899 3A s   A   Ar&   closec                     g N r.   r&   r$   <lambda>launch.<locals>.<lambda>^   s    $r&   r-   )r   	setbinarystdinstdoutr   environitemsdecode
setdefaultget
startswithlenlowerr	   continuereaderr   stderrgetattr)applicationkvr4   
scriptnamer2   r)   contentchunkr!   r"   r#   r   s            @@@@r$   launchrE      s   x~~&x' $$**,,DA 	
qxx44,   {B'{{$b)44_EE]+
;**:66#*;#7J8I#JGK NNE{{="%++-?%%eX__-B-BC!L%__GM$GN"'G#'G #GO{{7E"((*.@@%,!"%+!"KL
//C$  '2G2E%L #J,/1ML 	,/1s   .-H(4 H. .IN)	
__future__r   r   r   r   utilsr   r	   rE   r.   r&   r$   <module>rH      s    # !  J2r&   