f_x dZgdZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlmZdZdZGddejZGd d ejeZGd d ejZGd deZdZ da!dZ"dZ#GddeZ$dZ%eedddfdZ&e'dkrddl(Z(ddl)Z)e(j*Z+e+,ddde+,dddd !e+,d"d#e j-d$%e+,d&d'd(dd)*e+,d+de.d,d-.e+/Z0e0j1re$Z2neZ2Gd/d0eZ3e&e2e3e0j4e0j5e0j61dSdS)2z0.6) HTTPServerThreadingHTTPServerBaseHTTPRequestHandlerSimpleHTTPRequestHandlerCGIHTTPRequestHandlerN) HTTPStatusaD Error response

Error response

Error code: %(code)d

Message: %(message)s.

Error code explanation: %(code)s - %(explain)s.

ztext/html;charset=utf-8ceZdZdZdZdS)rc tj||jdd\}}t j||_||_dS)N) socketserver TCPServer server_bindserver_addresssocketgetfqdn server_name server_port)selfhostports 2/opt/alt/python311/lib64/python3.11/http/server.pyrzHTTPServer.server_bindsQ<**4000(!, d!>$//N)__name__ __module__ __qualname__allow_reuse_addressrrrrrs)     rrceZdZdZdS)rTN)rrrdaemon_threadsrrrrrsNNNrrc eZdZ dejdzZdezZe Z e Z dZ dZdZdZdZd"d Zd#d Zd#d Zd ZdZdZd$dZdZedejededdDZdee d<dZ!dZ"d#dZ#dZ$gdZ%gdZ&dZ'd Z(e)j*j+Z,d!e-j./DZ0d S)%rzPython/rz BaseHTTP/HTTP/0.9c d|_|jx|_}d|_t |jd}|d}||_|}t|dkrdSt|dkrp|d} | dst|d d d }|d }t|d krttd |Drtdtd|Drtdt|dt|d f}n;#ttf$r'|t jd|zYdSwxYw|dkr|jdkrd|_|dkr%|t jd|zdS||_d t|cxkrdks'n|t jd|zdS|dd \}}t|d kr2d|_|dkr%|t jd|zdS||c|_|_|j dr"d |jd z|_ t,j|j|j|_n#t,jj$r9}|t jdt |Yd}~dSd}~wt,jj$r9}|t jdt |Yd}~dSd}~wwxYw|jdd} | dkrd|_n*| d kr|jdkrd|_|jd!d} | d"kr,|jdkr!|jdkr|!sdSdS)#NTz iso-8859-1 rFzHTTP//r .r c3@K|]}| VdSN)isdigit.0 components r z7BaseHTTPRequestHandler.parse_request../s1OO99,,...OOOOOOrznon digit in http versionc3<K|]}t|dkVdS) N)lenr,s rr/z7BaseHTTPRequestHandler.parse_request..1s-KKys9~~*KKKKKKrz unreasonable length http versionzBad request version (%r))r r zHTTP/1.1)r rzInvalid HTTP version (%s)zBad request syntax (%r)GETzBad HTTP/0.9 request type (%r)z//)_classz Line too longzToo many headers Connectionclose keep-aliveExpectz 100-continue)"commanddefault_request_versionrequest_versionclose_connectionstrraw_requestlinerstrip requestlinesplitr2 startswith ValueErroranyint IndexError send_errorr BAD_REQUESTprotocol_versionHTTP_VERSION_NOT_SUPPORTEDpathlstriphttpclient parse_headersrfile MessageClassheaders LineTooLongREQUEST_HEADER_FIELDS_TOO_LARGE HTTPExceptiongetlowerhandle_expect_100) rversionrAwordsbase_version_numberversion_numberr:rLerrconntypeexpects r parse_requestz$BaseHTTPRequestHandler.parse_request s  )-)EEw $$. == !((00 &!!## u::??5 u::??BiG ))'22%$$&-mmC&;&;A&>#!4!:!:3!?!?~&&!++$$OOOOOOOB$%@AAAKKNKKKKKI$%GHHH!$^A%6!7!7^A=N9O9O!O +   *.8:::uu   ''D,AZ,O,O(-%''9/2EEGGGu#*D CJJ####!#### OO&)K7 9 9 95bqb  u::??$(D !%*4w>@@@u")4 di 9   % % 4di..s333DI ;44TZ<@>  w & &$(D ! !nn,..#z11$)D !!!(B// LLNNn , ,%33$ 22))++ uts7C!E774F/.F/0L N$ .MN$+.NN$cn |tj|dSNT)send_response_onlyrCONTINUE end_headersrs rrYz(BaseHTTPRequestHandler.handle_expect_100ys7   3444 trc |jd|_t|jdkr6d|_d|_d|_|tj dS|js d|_ dS| sdSd|jz}t||s*|tj d|jzdSt||}||jdS#t"$r(}|d|d|_ Yd}~dSd}~wwxYw)Niir6Tdo_zUnsupported method (%r)zRequest timed out: %r)rQreadliner?r2rAr<r:rHrREQUEST_URI_TOO_LONGr=rahasattrNOT_IMPLEMENTEDgetattrwfileflush TimeoutError log_error)rmnamemethodes rhandle_one_requestz)BaseHTTPRequestHandler.handle_one_requestsd  #':#6#6u#=#=D 4'((500#% ')$!  ?@@@' (,%%%'' DL(E4'' .- <>>>T5))F FHHH J           NN2A 6 6 6$(D ! FFFFF  s1A+D0DDAD3D ED<<Ec d|_||js||jdSdSrc)r=rvrgs rhandlezBaseHTTPRequestHandler.handles]4 $ !!!' &  # # % % %' & & & & &rNc |j|\}}n#t$rd\}}YnwxYw||}||}|d||||||ddd}|dkr|t jt jt jfvr|j |tj |dtj |ddz}| d d }|d |j |d tt|||jd kr|r|j|dSdSdS)N)???rzzcode %d, message %sr5r7Fquote)codemessageexplainzUTF-8replacez Content-TypeContent-LengthHEAD) responsesKeyErrorrr send_response send_headerr NO_CONTENT RESET_CONTENT NOT_MODIFIEDerror_message_formathtmlescapeencodeerror_content_typer>r2rfr:rowrite)rr~rrshortmsglongmsgbodycontents rrHz!BaseHTTPRequestHandler.send_errors " - $t 4 Hgg - - - , Hggg - ?G ?G ,dG<<< 4))) w///  CKK .#1#02 2 2 0;we<<<;we<<<44G >>'955D   ^T-D E E E   -s3t99~~ > > >  <6 ! !d ! J  T " " " " " " ! ! !s &&c ||||||d||d|dS)NServerDate) log_requestrdrversion_stringdate_time_stringrr~rs rrz$BaseHTTPRequestHandler.send_responses}   g... 4#6#6#8#8999 !6!6!8!899999rc |jdkrs|||jvr|j|d}nd}t|dsg|_|jd|j||fzdddSdS)Nr"rr6_headers_bufferz %s %d %s latin-1strict)r<rrlrappendrJrrs rrdz)BaseHTTPRequestHandler.send_response_onlys,  : - -4>))"nT215GG G4!233 *')$  ' '*D':*;)rr~sizes rrz"BaseHTTPRequestHandler.log_request!sa dJ ' ' :D )3t99c$ii A A A A Arc$ |j|g|RdSr*)r)rformatargss rrrz BaseHTTPRequestHandler.log_error,s*  '$''''''rci|] }|d|d S)z\x02xr)r-cs r z!BaseHTTPRequestHandler.<s" V V V!Q a V V Vr z\\\c  ||z}tj|d|d||jddS)Nz - - [z]  )sysstderrraddress_stringlog_date_time_string translate_control_char_table)rrrrs rrz"BaseHTTPRequestHandler.log_message?s &4- --////335555!++D,DEEEEG H H H H Hrc( |jdz|jzS)N )server_version sys_versionrgs rrz%BaseHTTPRequestHandler.version_stringYs8"S(4+;;;rcp |tj}tj|dS)NT)usegmt)timeemailutils formatdate)r timestamps rrz'BaseHTTPRequestHandler.date_time_string]s1N   I{%%i%===rc  tj}tj|\ }}}}}}}} } d||j|||||fz} | S)Nz%02d/%3s/%04d %02d:%02d:%02d)r localtime monthname) rnowyearmonthdayhhmmssxyzss rrz+BaseHTTPRequestHandler.log_date_time_stringcsZ<ikk04s0C0C-eS"b"aA *T^E*D"b".> >r)MonTueWedThuFriSatSun) NJanFebMarAprMayJunJulAugSepOctNovDecc |jdSNr)client_addressrgs rrz%BaseHTTPRequestHandler.address_stringqs("1%%rHTTP/1.0c,i|]}||j|jfSr)phrase description)r-vs rrz!BaseHTTPRequestHandler.s3  AHam $r)NNr*)rr)1rrrrrZrBr __version__rDEFAULT_ERROR_MESSAGErDEFAULT_ERROR_CONTENT_TYPErr;rarYrvrxrHrrdrrfrrrrr> maketrans itertoolschainrangerordrrrr weekdaynamerrrJrNrO HTTPMessagerRr __members__valuesrrrrrrs7dNck//11!44K !;.N03 )lll\$###J&&&3#3#3#3#j : : : : . . . . . . .!!! &&& A A A A ( ( (-- V VyuuT{{EE$tDTDT'U'U V V VXX%*D "HHH4<<<>>>> DCCK;;;I&&&";*L'..00IIIrrcleZdZ dezZdddddxZZddfd Zd Zd Z d Z d Z dZ dZ dZxZS)rz SimpleHTTP/zapplication/gzipapplication/octet-streamzapplication/x-bzip2zapplication/x-xz)z.gzz.Zz.bz2z.xzN directoryc|tj}tj||_t j|i|dSr*)osgetcwdfspathrsuper__init__)rrrkwargs __class__s rr z!SimpleHTTPRequestHandler.__init__sG   I9--$)&)))))rc |}|rK |||j|dS#|wxYwdSr*) send_headcopyfileror7rfs rdo_GETzSimpleHTTPRequestHandler.do_GETsd" NN      a,,,    s A A c` |}|r|dSdSr*)rr7rs rdo_HEADz SimpleHTTPRequestHandler.do_HEADs7# NN     GGIIIII  rcf ||j}d}tj|rCtj|j}|jds|tj |d|d|ddz|d|df}tj |}| d|| dd | dSd D]E}tj||}tj|r|}nF||S||}|dr"|tjd dS t)|d }n1#t*$r$|tjd YdSwxYw tj|}d |jvr6d|jvr, t2j|jd } | j%| t<jj } | jt<jj urt<j!|j"t<jj } | d} | | krI|tj#| |$dSn##tJtLtNtPf$rYnwxYw|tj)| d|| dtU|d| d|+|j"| |S#|$xYw)Nr'rr r r%Locationr0)z index.htmlz index.htmzFile not foundrbzIf-Modified-Sincez If-None-Match)tzinfo) microsecond Content-typez Last-Modified),translate_pathrLrisdirurllibparseurlsplitendswithrrMOVED_PERMANENTLY urlunsplitrrfrisfilelist_directory guess_typerH NOT_FOUNDopenOSErrorfstatfilenorSrrparsedate_to_datetimerrdatetimetimezoneutc fromtimestampst_mtimerr7 TypeErrorrG OverflowErrorrDOKr>r) rrLrparts new_partsnew_urlindexctypefsims last_modifs rrz"SimpleHTTPRequestHandler.send_heads ""49--  7==   1L))$)44E:&&s++ "":#?@@@"1XuQxqC"1XuQx1  ,11)<<  W555  !13777  """t2 1 1 T5117>>%(( DE**4000%% ==    OOJ02B C C C4 T4  AA    OOJ02B C C C44 ' !((**%%B#t|33't|;;(+;; %89;;C z)"kk1B1FkGGzX%6%:::%-%6%D%DK):)>&@&@ &0%7%7A%7%F%F %,, ..z/FGGG ,,...GGIII#'4'":}jID*   z} - - -   ^U 3 3 3   -s2a5zz : : :   _%%bk22 4 4 4      H  GGIII sJG*H  H :P *M6CPPM41P3M44B$PP0c  tj|}n1#t$r$|tjdYdSwxYw|dg} tj |j d}n4#t$r'tj |j }YnwxYwtj |d}tj}d|}|d |d |d |d |d |d|d|d|d|d|D]}tj ||}|x} } tj |r |dz} |dz} tj |r|dz} |dtj| dd tj | dd|dd||d} t-j} | | | d|tj|dd|z|dt;t=| || S)NzNo permission to list directoryc*|Sr*)rX)as rz9SimpleHTTPRequestHandler.list_directory..s r)key surrogatepasserrorsFr|zDirectory listing for zzzzzz z

z

z