MINI MINI MANI MO
3
  \                 @   sR  d dl Zd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 ddddddd	d
ddd
dddddddgZdZdZ
dZdZdZdZe jejj dd ejjj D ZdZdZdZejd jZejd!jZd"d#d$hZ d>d&d'Z!G d(d) d)ej"j#Z$e$fd*d+Z%G d,d dej&Z'G d-d dZ(yd dl)Z)W n e*k
rL   Y nX G d.d/ d/e(Z+ej,d/ G d0d de-Z.G d1d de.Z/G d2d de.Z0G d3d de.Z1G d4d de.Z2G d5d	 d	e.Z3G d6d
 d
e.Z4G d7d de.Z5G d8d
 d
e5Z6G d9d de5Z7G d:d de5Z8G d;d de.Z9G d<d de.Z:G d=d de;e9Z<e.Z=dS )?    N)urlsplitHTTPResponseHTTPConnection
HTTPExceptionNotConnectedUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteRead
InvalidURLImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReady
BadStatusLineLineTooLongRemoteDisconnectederror	responsesP   i  ZUNKNOWNZIdlezRequest-startedzRequest-sentc             C   s   i | ]}|j |qS  )phrase).0vr   r   #/usr/lib64/python3.6/http/client.py
<dictcomp>k   s    r   i   i   d   s   [^:\s][^:\r\n]*s   \n(?![ \t])|\r(?![ \t\n])ZPATCHZPOSTZPUTdatac             C   sf   y
| j dS  tk
r` } z:t|j|j|j|jd|j | |j|j |f d W Y d d }~X nX d S )Nzlatin-1z`%s (%.20r) is not valid Latin-1. Use %s.encode('utf-8') if you want to send it encoded in UTF-8.)encodeUnicodeEncodeErrorencodingobjectstartendtitle)r   nameerrr   r   r   _encode   s    
r'   c               @   s   e Zd Zdd ZdS )HTTPMessagec             C   sn   |j  d }t|}g }d}xL| j D ]@}|d | j  |krDd}n|d d j sXd}|r&|j| q&W |S )N:r      )lowerlenkeysisspaceappend)selfr%   nZlstZhitliner   r   r   getallmatchingheaders   s    
z!HTTPMessage.getallmatchingheadersN)__name__
__module____qualname__r3   r   r   r   r   r(      s   r(   c             C   s|   g }xR| j td }t|tkr(td|j| t|tkrJtdt |d	krP qW dj|jd}t	j
j|dj|S )
Nr*   zheader linezgot more than %d headers   
   
    z
iso-8859-1)_class)r7   r8   r9   )
readline_MAXLINEr,   r   r/   _MAXHEADERSr   joindecodeemailparserZParserZparsestr)fpr:   headersr2   Zhstringr   r   r   
parse_headers   s    
rD   c                   s  e Zd Zd@ddZdd Zdd Zd	d
 Zdd Z fd
dZ fddZ	dd Z
dd ZdAddZdd Z
dd Zdd Zdd Zdd  Zd!d"