
    =Og`                     j    	 d dl Z g dZ G d d          Zd Zd ZddZd	 Zd
 Zh dj        Z	d Z
dS )    N)FileWrapperguess_schemeapplication_urirequest_urishift_path_infosetup_testing_defaultsc                   $    e Zd Z	 ddZd Zd ZdS )r       c                 ^    || _         || _        t          |d          r|j        | _        d S d S )Nclose)filelikeblksizehasattrr   )selfr   r   s      %/usr/lib64/python3.11/wsgiref/util.py__init__zFileWrapper.__init__   s9     8G$$ 	(!DJJJ	( 	(    c                     | S N )r   s    r   __iter__zFileWrapper.__iter__   s    r   c                 V    | j                             | j                  }|r|S t          r   )r   readr   StopIteration)r   datas     r   __next__zFileWrapper.__next__   s,    }!!$,// 	Kr   N)r
   )__name__
__module____qualname__r   r   r   r   r   r   r   r      sI        ;( ( ( (      r   r   c                 :    	 |                      d          dv rdS dS )NHTTPS)yeson1httpshttp)get)environs    r   r   r      s)    {{7///wvr   c                 N   	 | d         dz   }ddl m} |                     d          r|| d         z  }nL|| d         z  }| d         dk    r| d         d	k    r|d
| d         z   z  }n| d         dk    r|d
| d         z   z  }| ||                     d          pdd          z  }|S )Nwsgi.url_schemez://r   quote	HTTP_HOSTSERVER_NAMEr%   SERVER_PORT443:80SCRIPT_NAME/latin1)encoding)urllib.parser,   r'   )r(   urlr,   s      r   r   r   %   s    J
#
$U
*C""""""{{; 
4w{##w}%%$%00}%..sW]333}%--sW]33355]++2sXFFFFCJr   Tc                    	 t          |           }ddlm}  ||                     dd          dd          }|                     d          s||d	d          z  }n||z  }|r#|                     d
          r|d| d
         z   z  }|S )Nr   r+   	PATH_INFO z/;=,r5   )safer6   r3      QUERY_STRING?)r   r7   r,   r'   )r(   include_queryr8   r,   	path_infos        r   r   r   9   s    L
'
"
"C""""""gkk+b11RRRI;;}%% y}y -^44 -sW^,,,Jr   c                    	 |                      dd          }|sd S |                    d          }d |dd         D             |dd<   |d         }|d= |                      dd          }t          j        |dz   |z             }|                    d          r
|d d         }|s|                    d          s|dz  }|| d<   d                    |          | d<   |dk    rd }|S )	Nr:   r;   r4   c                 "    g | ]}||d k    
|S ).r   ).0ps     r   
<listcomp>z#shift_path_info.<locals>.<listcomp>X   s"    FFFaqFQ#XXXXXr   r=   r3   rD   )r'   split	posixpathnormpathendswithjoin)r(   rA   
path_partsnamescript_names        r   r   r   F   s    K++I t%%JFF:ad#3FFFJqta=D1++mB//K$[_T%9::KC   '!#2#& ,,S11 s(GM XXj11GK SyyKr   c                 :   	 |                      dd           |                      dd           |                      d| d                    |                      dd           d| vr0d	| vr,|                      dd
           |                      d	d           |                      dd           |                      dd           |                      dd           |                      dd           ddlm}m} |                      d |                       |                      d |                       |                      dt	          |                      | d         dk    r|                      dd           d S | d         dk    r|                      dd           d S d S )Nr.   z	127.0.0.1SERVER_PROTOCOLzHTTP/1.0r-   REQUEST_METHODGETr3   r:   r;   r4   zwsgi.version)r=   r   zwsgi.run_oncer   zwsgi.multithreadzwsgi.multiprocess)StringIOBytesIOz
wsgi.inputzwsgi.errorsr*   r&   r/   r2   r%   r0   )
setdefaultiorU   rV   r   )r(   rU   rV   s      r   r   r   o   s   
 }[111(444{7=#9:::'...G##7(B(B=,,,;s+++~u---***)1---*A...$$$$$$$$|WWYY///}hhjj111(g)>)>??? !6))=$/////	"	#W	,	,=%00000 
-	,r   >   
keep-alivetransfer-encodingproxy-authenticateproxy-authorizationteupgradetrailers
connectionc                 F    	 t          |                                           S r   )_hoppishlower)header_names    r   is_hop_by_hopre      s    IK%%''(((r   )T)rJ   __all__r   r   r   r   r   r   __contains__rb   re   r   r   r   <module>rh      s    *             $    (   ' ' 'R$1 $1 $1P   	 	) ) ) ) )r   