£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~d              	   @   st   d dl Z ddddddgZG dd dZd	d Zd
d ZdddZdd Zdd ZdddddddddjZ	dd Z
dS )    NFileWrapperguess_schemeapplication_urirequest_urishift_path_infosetup_testing_defaultsc               @   s.   e Zd ZdddZdd Zdd Zdd	 Zd
S )r       c             C   s"   || _ || _t|dr|j| _d S )Nclose)filelikeblksizehasattrr	   )selfr
   r    r   1/opt/alt/python37/lib64/python3.7/wsgiref/util.py__init__   s    
zFileWrapper.__init__c             C   s   | j | j}|r|S td S )N)r
   readr   
IndexError)r   keydatar   r   r   __getitem__   s    zFileWrapper.__getitem__c             C   s   | S )Nr   )r   r   r   r   __iter__   s    zFileWrapper.__iter__c             C   s   | j | j}|r|S td S )N)r
   r   r   StopIteration)r   r   r   r   r   __next__   s    zFileWrapper.__next__N)r   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r      s   
c             C   s   |  ddkrdS dS d S )NZHTTPS)ZyesZon1httpshttp)get)environr   r   r   r   #   s    c             C   s   | d d }ddl m} | dr0|| d 7 }nR|| d 7 }| d dkrf| d d	kr|d
| d  7 }n| d dkr|d
| d  7 }||| dpddd7 }|S )Nzwsgi.url_schemez://r   )quote	HTTP_HOSTSERVER_NAMEr   SERVER_PORT443:80SCRIPT_NAME/latin1)encoding)urllib.parser!   r   )r    urlr!   r   r   r   r   +   s    
Tc             C   sp   t | }ddlm} || ddddd}| dsF||d	d  7 }n||7 }|rl| d
rl|d| d
  7 }|S )Nr   )r!   	PATH_INFO z/;=,r*   )Zsafer+   r(      ZQUERY_STRING?)r   r,   r!   r   )r    Zinclude_queryr-   r!   	path_infor   r   r   r   ?   s    
c             C   s   |  dd}|sd S |d}dd |dd D |dd< |d }|d= |  dd}t|d | }|dr~|d d }|s|ds|d7 }|| d< d|| d< |d	krd }|S )
Nr.   r/   r)   c             S   s   g | ]}|r|d kr|qS ).r   ).0pr   r   r   
<listcomp>^   s    z#shift_path_info.<locals>.<listcomp>r0   r(   r3   )r   split	posixpathnormpathendswithjoin)r    r2   
path_partsnameZscript_namer   r   r   r   L   s$    

c             C   s   |  dd |  dd |  d| d  |  dd d| kr\d	| k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 n| d dkr|  dd d S )Nr#   z	127.0.0.1ZSERVER_PROTOCOLzHTTP/1.0r"   ZREQUEST_METHODZGETr(   r.   r/   r)   zwsgi.version)r0   r   zwsgi.run_oncer   zwsgi.multithreadzwsgi.multiprocess)StringIOBytesIOz
wsgi.inputzwsgi.errorszwsgi.url_schemer   r$   r'   r   r%   )
setdefaultior?   r@   r   )r    r?   r@   r   r   r   r   u   s&    r0   )Z
connectionz
keep-alivezproxy-authenticatezproxy-authorizationteZtrailersztransfer-encodingZupgradec             C   s   t |  S )N)_hoppishlower)Zheader_namer   r   r   is_hop_by_hop   s    rF   )T)r9   __all__r   r   r   r   r   r   __contains__rD   rF   r   r   r   r   <module>   s   
))
