<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]	R                 @   sj  d  d l  m Z m Z m Z d  d l m Z d d l Z d d l Z d d l Z d d d d d	 d
 g Z	 d d d d d d d g Z
 d d d d d d d d d d d d d g Z d d   Z d  d! d" d# d$ d% d& d' d( d) h
 j Z d* d+   Z d, d
   Z Gd- d   d  Z Gd. d   d e  Z Gd/ d   d e  Z Gd0 d   d e  Z Gd1 d	   d	 e  Z d S)2   )FileWrapperguess_schemeis_hop_by_hop)Headers    NBaseHandlerSimpleHandlerBaseCGIHandler
CGIHandlerIISCGIHandlerread_environZMonZTueZWedZThuZFriZSatZSunZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecc       
   	   C   sO   t  j |   \	 } } } } } } } } }	 d t | | t | | | | | f S)Nz#%s, %02d %3s %4d %02d:%02d:%02d GMT)timegmtime_weekdayname
_monthname)
Z	timestampZyearZmonthZdayZhhZmmssZwdyz r   -/opt/alt/python35/lib64/python3.5/handlers.pyformat_date_time   s    *r   SCRIPT_NAME	PATH_INFOZQUERY_STRINGZREQUEST_METHODZ	AUTH_TYPEZCONTENT_TYPEZCONTENT_LENGTHZHTTPSZREMOTE_USERZREMOTE_IDENTc             C   sM   t  |   pL |  j d  pL |  j d  pL |  j d  oL t |  d d    S)NZHTTP_ZSSL_Z	REDIRECT_	   )_is_request
startswith_needs_transcode)kr   r   r   r      s    *r   c              C   sV  t  j   }  d } y d j d |  Wn t k
 r@ d } Yn Xi  } xt j j   D] \ } } t |  rDt  j d k r)t j j	 d d  j
   } | j d  r | j d  j d  } qD| j d	  r qD| j d
  rd | k r| j d  j d  } qD| j |  d  j d  } n | j |  |  j d  } | | | <qW W| S)Nsurrogateescape zutf-8replacewin32SERVER_SOFTWAREzmicrosoft-iis/z
iso-8859-1zapache/zsimplehttp/zpython/3)sysgetfilesystemencodingencodeLookupErrorosenvironitemsr   platformgetlowerr   decode)encescr(   r   vZsoftwarer   r   r   r   "   s,    	c               @   s  e  Z d  Z d; Z d Z d Z d Z d Z d Z d Z	 e
   Z e Z e Z d Z d Z d< g Z d
 Z d Z Z d Z d Z d Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d d  Z d d   Z  d d   Z! d d   Z" d d    Z# d! d"   Z$ d# d$   Z% d% d&   Z& d' d(   Z' d) d*   Z( d+ d,   Z) d- d.   Z* d/ d0   Z+ d1 d2   Z, d3 d4   Z- d5 d6   Z. d7 d8   Z/ d9 d:   Z0 d S)=r   r   r   TFz1.0Nz500 Internal Server ErrorContent-Type
text/plains;   A server error occurred.  Please contact the administrator.c             C   se   y0 |  j    | |  j |  j  |  _ |  j   Wn. y |  j   Wn |  j     Yn XYn Xd  S)N)setup_environr(   start_responseresultfinish_responsehandle_errorclose)selfZapplicationr   r   r   run   s    

zBaseHandler.runc             C   s   |  j  j   } |  _ |  j   |  j   | d <|  j   | d <|  j | d <|  j | d <|  j   | d <|  j	 | d <|  j
 | d <|  j d  k	 r |  j | d <|  j r |  j r | j d	 |  j  d  S)
Nz
wsgi.inputzwsgi.errorszwsgi.versionzwsgi.run_oncezwsgi.url_schemezwsgi.multithreadzwsgi.multiprocesszwsgi.file_wrapperr"   )
os_environcopyr(   add_cgi_vars	get_stdin
get_stderrwsgi_versionwsgi_run_once
get_schemewsgi_multithreadwsgi_multiprocesswsgi_file_wrapperorigin_serverserver_software
setdefault)r9   envr   r   r   r3      s    
zBaseHandler.setup_environc          
   C   s[   zI |  j    s |  j   rH x |  j D] } |  j |  q' W|  j   Wd  |  j   Xd  S)N)result_is_filesendfiler5   writefinish_contentr8   )r9   datar   r   r   r6      s    zBaseHandler.finish_responsec             C   s   t  |  j  S)N)r   r(   )r9   r   r   r   rB      s    zBaseHandler.get_schemec             C   s[   y t  |  j  } Wn t t t f k
 r0 Yn' X| d k rW t |  j  |  j d <d  Sd  S)Nr   zContent-Length)lenr5   	TypeErrorAttributeErrorNotImplementedErrorstr
bytes_sentheaders)r9   Zblocksr   r   r   set_content_length   s    zBaseHandler.set_content_lengthc             C   s   d |  j  k r |  j   d  S)NzContent-Length)rU   rV   )r9   r   r   r   cleanup_headers   s    zBaseHandler.cleanup_headersc             C   s   | rA z. |  j  r3 | d | d  j | d   Wd  d  } Xn |  j d  k	 r\ t d   | |  _ |  j |  |  _ |  j | d  } |  j S)Nr   r      zHeaders already set!ZStatus)headers_sentwith_tracebackrU   AssertionErrorstatusheaders_class_convert_string_typerL   )r9   r\   rU   exc_infor   r   r   r4      s    	%
	zBaseHandler.start_responsec             C   s8   t  |  t k r | St d j | t |     d  S)Nz!{0} must be of type str (got {1}))typerS   r[   formatrepr)r9   valuetitler   r   r   r^      s    z BaseHandler._convert_string_typec             C   s   |  j  r |  j   r |  j d |  j |  j f j d   d |  j k rp |  j d t t j    j d   |  j	 r d |  j k r |  j d |  j	 j d   n |  j d |  j j d   d  S)NzHTTP/%s %s
z
iso-8859-1ZDatez
Date: %s
ZServerzServer: %s
zStatus: %s
)
rF   client_is_modern_writehttp_versionr\   r%   rU   r   r   rG   )r9   r   r   r   send_preamble   s    	&  zBaseHandler.send_preamblec             C   sm   |  j  s t d   n: |  j s= t |  |  _ |  j   n |  j t |  7_ |  j |  |  j   d  S)Nzwrite() before start_response())r\   r[   rY   rO   rT   send_headersrf   _flush)r9   rN   r   r   r   rL     s    		zBaseHandler.writec             C   s   d S)NFr   )r9   r   r   r   rK     s    zBaseHandler.sendfilec             C   s-   |  j  s) |  j j d d  |  j   n  d  S)NzContent-Length0)rY   rU   rH   ri   )r9   r   r   r   rM   0  s    	zBaseHandler.finish_contentc             C   s[   z# t  |  j d  r" |  j j   Wd  d  |  _ |  _ |  _ |  _ d |  _ d |  _ Xd  S)Nr8   r   F)hasattrr5   r8   rU   r\   r(   rT   rY   )r9   r   r   r   r8   :  s    	 zBaseHandler.closec             C   sM   |  j    d |  _ |  j s) |  j   rI |  j   |  j t |  j   d  S)NT)rW   rY   rF   re   rh   rf   bytesrU   )r9   r   r   r   ri   G  s
    
	
zBaseHandler.send_headersc             C   s%   |  j  } | d  k	 o$ t |  j |  S)N)rE   
isinstancer5   )r9   wrapperr   r   r   rJ   P  s    	zBaseHandler.result_is_filec             C   s   |  j  d j   d k S)NZSERVER_PROTOCOLzHTTP/0.9)r(   upper)r9   r   r   r   re   V  s    zBaseHandler.client_is_modernc             C   s]   zO d d l  m } |  j   } | | d | d | d |  j |  | j   Wd  d  } Xd  S)Nr   )print_exceptionr   rX   )	tracebackrq   r?   traceback_limitflush)r9   r_   rq   stderrr   r   r   log_exception[  s    zBaseHandler.log_exceptionc             C   sE   |  j  t j    |  j sA |  j |  j |  j  |  _ |  j   d  S)N)	rv   r#   r_   rY   error_outputr(   r4   r5   r6   )r9   r   r   r   r7   k  s    	zBaseHandler.handle_errorc             C   s0   | |  j  |  j d  d   t j    |  j g S)N)error_statuserror_headersr#   r_   
error_body)r9   r(   r4   r   r   r   rw   s  s    &zBaseHandler.error_outputc             C   s
   t   d  S)N)rR   )r9   rN   r   r   r   rf     s    zBaseHandler._writec             C   s
   t   d  S)N)rR   )r9   r   r   r   rj     s    zBaseHandler._flushc             C   s
   t   d  S)N)rR   )r9   r   r   r   r>     s    zBaseHandler.get_stdinc             C   s
   t   d  S)N)rR   )r9   r   r   r   r?     s    zBaseHandler.get_stderrc             C   s
   t   d  S)N)rR   )r9   r   r   r   r=     s    zBaseHandler.add_cgi_vars)r   r   )r1   r2   )1__name__
__module____qualname__r@   rC   rD   rA   rF   rg   rG   r   r;   r   rE   r   r]   rs   rx   ry   rz   r\   r5   rY   rU   rT   r:   r3   r6   rB   rV   rW   r4   r^   rh   rL   rK   rM   r8   ri   rJ   re   rv   r7   rw   rf   rj   r>   r?   r=   r   r   r   r   r   ^   sT   		

		c               @   s^   e  Z d  Z d d d d  Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z d S)r   TFc             C   s:   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ d  S)N)stdinstdoutru   base_envrC   rD   )r9   r~   r   ru   r(   multithreadmultiprocessr   r   r   __init__  s    					zSimpleHandler.__init__c             C   s   |  j  S)N)r~   )r9   r   r   r   r>     s    zSimpleHandler.get_stdinc             C   s   |  j  S)N)ru   )r9   r   r   r   r?     s    zSimpleHandler.get_stderrc             C   s   |  j  j |  j  d  S)N)r(   updater   )r9   r   r   r   r=     s    zSimpleHandler.add_cgi_varsc             C   s   |  j  j |  } | d  k s0 | t |  k r4 d  Sd d l m } | d t  x- | | d   } | sk P|  j  j |  } qT Wd  S)Nr   )warnz9SimpleHandler.stdout.write() should not do partial writes)r   rL   rO   warningsr   DeprecationWarning)r9   rN   r5   r   r   r   r   rf     s    zSimpleHandler._writec             C   s    |  j  j   |  j  j |  _ d  S)N)r   rt   rj   )r9   r   r   r   rj     s    zSimpleHandler._flushN)	r{   r|   r}   r   r>   r?   r=   rf   rj   r   r   r   r   r     s   	c               @   s   e  Z d  Z d Z d S)r	   FN)r{   r|   r}   rF   r   r   r   r   r	     s   c               @   s(   e  Z d  Z d Z i  Z d d   Z d S)r
   Tc          
   C   s;   t  j |  t j j t j j t j t   d d d d d  S)Nr   Fr   T)r	   r   r#   r~   bufferr   ru   r   )r9   r   r   r   r     s    zCGIHandler.__init__N)r{   r|   r}   rA   r;   r   r   r   r   r   r
     s   c               @   s(   e  Z d  Z d Z i  Z d d   Z d S)r   Tc          
   C   s   t    } | j d d  } | j d d  } | d j | d  r^ | t |  d   | d <t j |  t j j t j	 j t j
 | d d d d d  S)	Nr   r   r   /r   Fr   T)r   r+   r   rO   r	   r   r#   r~   r   r   ru   )r9   r(   pathZscriptr   r   r   r   $  s    	zIISCGIHandler.__init__N)r{   r|   r}   rA   r;   r   r   r   r   r   r     s   )utilr   r   r   rU   r   r#   r'   r   __all__r   r   r   __contains__r   r   r   r   r   r	   r
   r   r   r   r   r   <module>   s&   $< G2