<!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>
a
    XC?h                     @   sJ  d dl Zd dlZd dlZd dlZd dlZd dlZd dlZd dlZ	d dl
mZ g dZdZdZdZdZdZd	Ze ejj d
d ejj D ZdZdZdZedjZedjZ edZ!edZ"h dZ#d?ddZ$G dd dej%j&Z'dd Z(e'fddZ)G dd dej*Z+G dd  d Z,zd dl-Z-W n e.yD   Y n0 G d!d" d"e,Z/e0d" G d#d$ d$e1Z2G d%d& d&e2Z3G d'd( d(e2Z4G d)d* d*e2Z5G d+d, d,e2Z6G d-d. d.e2Z7G d/d0 d0e2Z8G d1d2 d2e2Z9G d3d4 d4e9Z:G d5d6 d6e9Z;G d7d8 d8e9Z<G d9d: d:e2Z=G d;d< d<e2Z>G d=d> d>e?e=Z@e2ZAdS )@    N)urlsplit)HTTPResponseHTTPConnectionHTTPExceptionNotConnectedUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteRead
InvalidURLImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReadyBadStatusLineLineTooLongRemoteDisconnectederror	responsesP   i  ZUNKNOWNZIdlezRequest-startedzRequest-sentc                 C   s   i | ]}||j qS  )phrase).0vr   r   0/opt/alt/python39/lib64/python3.9/http/client.py
<dictcomp>k       r   i   i   d   s   [^:\s][^:\r\n]*s   \n(?![ \t])|\r(?![ \t\n])z[ - ]z[ -]>   ZPATCHZPUTZPOSTdatac                 C   sj   z|  dW S  tyd } z@t|j|j|j|jd| | |j|j |f d W Y d }~n
d }~0 0 d S )Nlatin-1z`%s (%.20r) is not valid Latin-1. Use %s.encode('utf-8') if you want to send it encoded in UTF-8.)encodeUnicodeEncodeErrorencodingobjectstartendtitle)r   nameerrr   r   r   _encode   s    r)   c                   @   s   e Zd Zdd ZdS )HTTPMessagec                 C   sj   |  d }t|}g }d}|  D ]@}|d |   |krBd}n|d d  sVd}|r$|| q$|S )N:r      )lowerlenkeysisspaceappend)selfr'   nZlstZhitliner   r   r   getallmatchingheaders   s    
z!HTTPMessage.getallmatchingheadersN)__name__
__module____qualname__r5   r   r   r   r   r*      s   r*   c                 C   sX   g }|  td }t|tkr&td|| t|tkrHtdt |dv rqTq|S )Nr,   header linezgot more than %d headers   
   
r   )readline_MAXLINEr.   r   r1   _MAXHEADERSr   )fpheadersr4   r   r   r   _read_headers   s    
rB   c                 C   s,   t | }d|d}tjj|d|S )Nr   
iso-8859-1)_class)rB   joindecodeemailparserZParserZparsestr)r@   rD   rA   Zhstringr   r   r   parse_headers   s    
rI   c                       s  e Zd Zd@ddZdd Zdd Zd	d
 Zdd Z fddZ fddZ	dd Z
dd ZdAd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dBd(d)ZdCd*d+ZdD fd,d-	Zd.d/ Zd0d1 Zd2d3 ZdEd4d5Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Z   Z!S )Fr   r   Nc                 C   sR   | d| _|| _|| _d  | _| _t| _t| _t| _	t| _
t| _t| _t| _d S )Nrb)Zmakefiler@   
debuglevel_methodrA   msg_UNKNOWNversionstatusreasonchunked
chunk_leftlength
will_close)r2   sockrK   methodurlr   r   r   __init__   s    zHTTPResponse.__init__c                 C   s  t | jtd d}t|tkr*td| jdkrBtdt| |sNt	dz|
d d\}}}W nB ty   z|
d d\}}d}W n ty   d}Y n0 Y n0 |d	s|   t|z$t|}|d
k s|dkrt|W n ty   t|Y n0 |||fS )Nr,   rC   zstatus liner   zreply:z-Remote end closed connection without response    zHTTP/r   i  )strr@   r=   r>   r.   r   rK   printreprr   split
ValueError
startswith_close_connr   int)r2   r4   rO   rP   rQ   r   r   r   _read_status  s2    

zHTTPResponse._read_statusc           	      C   s  | j d urd S |  \}}}|tkr&qHt| j}| jdkrDtd| ~q| | _| _|	 | _
|dv rnd| _n|drd| _nt|t| j | _ | _| jdkr| j  D ]\}}td|d | q| j d	}|r| d
krd| _d | _nd| _|  | _d | _| j d}|r`| js`zt|| _W n tyJ   d | _Y n0 | jdk rfd | _nd | _|tks|tksd|  krdk sn | jdkrd| _| js| js| jd u rd| _d S )Nr   zheaders:)zHTTP/1.0zHTTP/0.9
   zHTTP/1.   header:r+   transfer-encodingrR   TFcontent-lengthr      HEAD)rA   rd   ZCONTINUErB   r@   rK   r]   coderP   striprQ   rO   ra   r   rI   rM   itemsgetr-   rR   rS   _check_closerU   rT   rc   r`   Z
NO_CONTENTZNOT_MODIFIEDrL   )	r2   rO   rP   rQ   Zskipped_headershdrvalZtr_encrT   r   r   r   begin9  sd    









zHTTPResponse.beginc                 C   sv   | j d}| jdkr.|r*d| v r*dS dS | j dr>dS |rRd| v rRdS | j d}|rrd| v rrdS dS )NZ
connectionrf   closeTFz
keep-alivezproxy-connection)rA   ro   rO   r-   )r2   ZconnZpconnr   r   r   rp     s    
zHTTPResponse._check_closec                 C   s   | j }d | _ |  d S N)r@   rt   )r2   r@   r   r   r   rb     s    zHTTPResponse._close_connc                    s2   zt    W | jr.|   n| jr,|   0 d S ru   )superrt   r@   rb   r2   	__class__r   r   rt     s    
zHTTPResponse.closec                    s   t    | jr| j  d S ru   )rv   flushr@   rw   rx   r   r   rz     s    
zHTTPResponse.flushc                 C   s   dS )NTr   rw   r   r   r   readable  s    zHTTPResponse.readablec                 C   s
   | j d u S ru   )r@   rw   r   r   r   isclosed  s    zHTTPResponse.isclosedc                 C   s   | j d u rdS | jdkr$|   dS |d urRt|}| |}t|d |  S | jr`|  S | j	d u rv| j 
 }n4z| | j	}W n ty   |    Y n0 d| _	|   |S d S )Nr   rk   r   )r@   rL   rb   	bytearrayreadinto
memoryviewtobytesrR   _readall_chunkedrT   read
_safe_readr
   )r2   amtbr3   sr   r   r   r     s*    



zHTTPResponse.readc                 C   s   | j d u rdS | jdkr$|   dS | jr4| |S | jd ur^t|| jkr^t|d| j }| j |}|s||r||   n&| jd ur|  j|8  _| js|   |S )Nr   rk   )	r@   rL   rb   rR   _readinto_chunkedrT   r.   r   r~   )r2   r   r3   r   r   r   r~     s$    





zHTTPResponse.readintoc                 C   sp   | j td }t|tkr$td|d}|dkrB|d | }zt|dW S  tyj   |    Y n0 d S )Nr,   z
chunk size   ;r      )	r@   r=   r>   r.   r   findrc   r`   rb   )r2   r4   ir   r   r   _read_next_chunk_size  s    
z"HTTPResponse._read_next_chunk_sizec                 C   s:   | j td }t|tkr$td|s*q6|dv r q6q d S )Nr,   ztrailer liner:   )r@   r=   r>   r.   r   r2   r4   r   r   r   _read_and_discard_trailer  s    z&HTTPResponse._read_and_discard_trailerc                 C   sj   | j }|sf|d ur| d z|  }W n tyB   tdY n0 |dkr`|   |   d }|| _ |S )NrZ   r   r   )rS   r   r   r`   r
   r   rb   )r2   rS   r   r   r   _get_chunk_left$  s    
zHTTPResponse._get_chunk_leftc                 C   s`   g }z6|   }|d u rq0|| | d| _qd|W S  tyZ   td|Y n0 d S Nr   r   )r   r1   r   rS   rE   r
   )r2   valuerS   r   r   r   r   <  s    zHTTPResponse._readall_chunkedc                 C   s   d}t |}zv|  }|d u r$|W S t||krN| |}|| | _|| W S |d | }| |}||d  }||7 }d| _qW n& ty   tt|d| Y n0 d S Nr   )r   r   r.   _safe_readintorS   r
   bytes)r2   r   total_bytesmvbrS   r3   temp_mvbr   r   r   r   J  s"    



zHTTPResponse._readinto_chunkedc                 C   sT   g }|dkrJ| j t|t}|s2td|||| |t|8 }qd|S r   )r@   r   min	MAXAMOUNTr
   rE   r1   r.   )r2   r   r   chunkr   r   r   r   b  s    
zHTTPResponse._safe_readc                 C   s   d}t |}|t|k r~tt|k r>|dt }| j|}n| j|}|shtt|d| t|||d  }||7 }q|S r   )r   r.   r   r@   r~   r
   r   )r2   r   r   r   r   r3   r   r   r   r   y  s    
zHTTPResponse._safe_readintoc                 C   s   | j d u s| jdkrdS | jr(| |S | jd urJ|dk sD|| jkrJ| j}| j |}|sh|rh|   n| jd ur|  jt|8  _|S Nrk   r   r   )r@   rL   rR   _read1_chunkedrT   read1rb   r.   )r2   r3   resultr   r   r   r     s    


zHTTPResponse.read1c                 C   s4   | j d u s| jdkrdS | jr(| |S | j |S )Nrk   r   )r@   rL   rR   _peek_chunkedpeek)r2   r3   r   r   r   r     s
    
zHTTPResponse.peekc                    s   | j d u s| jdkrdS | jr*t |S | jd urL|dk sF|| jkrL| j}| j |}|sj|rj|   n| jd ur|  jt|8  _|S r   )r@   rL   rR   rv   r=   rT   rb   r.   )r2   limitr   rx   r   r   r=     s    

zHTTPResponse.readlinec                 C   sd   |   }|d u s|dkrdS d|  kr0|ks6n |}| j|}|  jt|8  _|s`td|S r   )r   r@   r   rS   r.   r
   )r2   r3   rS   r   r   r   r   r     s    zHTTPResponse._read1_chunkedc                 C   sB   z|   }W n ty    Y dS 0 |d u r.dS | j|d | S )Nr   )r   r
   r@   r   )r2   r3   rS   r   r   r   r     s    zHTTPResponse._peek_chunkedc                 C   s
   | j  S ru   )r@   filenorw   r   r   r   r     s    zHTTPResponse.filenoc                 C   sF   | j d u rt | j |p|}t|ts4t|ds8|S d|S d S )N__iter__z, )rA   r   Zget_all
isinstancer\   hasattrrE   )r2   r'   defaultrA   r   r   r   	getheader  s    
zHTTPResponse.getheaderc                 C   s   | j d u rt t| j  S ru   )rA   r   listrn   rw   r   r   r   
getheaders  s    
zHTTPResponse.getheadersc                 C   s   | S ru   r   rw   r   r   r   r     s    zHTTPResponse.__iter__c                 C   s   | j S ru   )rA   rw   r   r   r   info  s    zHTTPResponse.infoc                 C   s   | j S ru   )rX   rw   r   r   r   geturl  s    
zHTTPResponse.geturlc                 C   s   | j S ru   )rP   rw   r   r   r   getcode  s    zHTTPResponse.getcode)r   NN)N)r   )r   )r   )N)"r6   r7   r8   rY   rd   rs   rp   rb   rt   rz   r{   r|   r   r~   r   r   r   r   r   r   r   r   r   r=   r   r   r   r   r   r   r   r   r   __classcell__r   r   rx   r   r      s<   	
!H

 "

	
r   c                   @   s
  e Zd ZdZdZeZeZdZ	dZ
edd Zedd Zd	ejd	d
fddZd7d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d8d d!Zd9d"d#Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Z d:dd.d/d0Z!d	i fdd.d1d2Z"d3d4 Z#d5d6 Z$d	S );r   rf   zHTTP/1.1r,   r   c                 C   s   t | tjS ru   )r   io
TextIOBase)streamr   r   r   
_is_textIO%  s    zHTTPConnection._is_textIOc                 C   sd   | d u r|  tv rdS d S t| dr*d S zt| }|jW S  tyL   Y n0 t| tr`t| S d S )Nr   r   )	upper_METHODS_EXPECTING_BODYr   r   nbytes	TypeErrorr   r\   r.   )bodyrW   Zmvr   r   r   _get_content_length+  s    

z"HTTPConnection._get_content_lengthN    c                 C   sn   || _ || _|| _d | _g | _d | _t| _d | _d | _	d | _
i | _| ||\| _| _| | j tj| _d S ru   )timeoutsource_address	blocksizerV   _buffer_HTTPConnection__response_CS_IDLE_HTTPConnection__staterL   _tunnel_host_tunnel_port_tunnel_headers_get_hostporthostport_validate_hostsocketZcreate_connection_create_connection)r2   r   r   r   r   r   r   r   r   rY   K  s    zHTTPConnection.__init__c                 C   s<   | j rtd| ||\| _| _|r.|| _n
| j  d S )Nz.Can't set up tunnel for established connection)rV   RuntimeErrorr   r   r   r   clear)r2   r   r   rA   r   r   r   
set_tunnela  s    zHTTPConnection.set_tunnelc                 C   s   |d u r| d}| d}||krzt||d d  }W nF ty   ||d d  dkrf| j}ntd||d d   Y n0 |d | }n| j}|r|d dkr|d dkr|dd }||fS )	Nr+   ]r,   r[   znonnumeric port: '%s'r   [r   )rfindrc   r`   default_portr   )r2   r   r   r   jr   r   r   r   y  s    

zHTTPConnection._get_hostportc                 C   s
   || _ d S ru   )rK   )r2   levelr   r   r   set_debuglevel  s    zHTTPConnection.set_debuglevelc           
      C   s
  d| j d| jf }|g}| j D ]$\}}|| d| dd q&|d | d| ~| j| j	| j
d}| \}}}|tjjkr|   td	| d
|  |jtd }	t|	tkrtd|	sq|	dv rq| jdkrtd|	  qd S )Ns   CONNECT %s:%d HTTP/1.0
asciiz: 
r   r;   r   rW   zTunnel connection failed:  r,   r9   r:   r   rg   )r   r    r   r   rn   r1   sendrE   response_classrV   rL   rd   http
HTTPStatusZOKrt   OSErrorrm   r@   r=   r>   r.   r   rK   r]   rF   )
r2   connectrA   headerr   responserO   rl   messager4   r   r   r   _tunnel  s.    

zHTTPConnection._tunnelc              
   C   sz   |  | j| jf| j| j| _z| jtjtj	d W n2 t
yf } z|jtjkrR W Y d }~n
d }~0 0 | jrv|   d S )Nr,   )r   r   r   r   r   rV   Z
setsockoptr   ZIPPROTO_TCPZTCP_NODELAYr   errnoZENOPROTOOPTr   r   r2   er   r   r   r     s    zHTTPConnection.connectc                 C   sZ   t | _z4| j}|r d | _|  W | j}|rVd | _|  n| j}|rTd | _|  0 d S ru   )r   r   rV   rt   r   )r2   rV   r   r   r   r   rt     s    

zHTTPConnection.closec                 C   s  | j d u r | jr|   nt | jdkr8tdt| t|dr| jdkrTtd | |}|rt| jdkrttd |	| j
}|sq|r|d}| j | qtd S z| j | W nH ty   t|tjjr|D ]}| j | qntdt| Y n0 d S )Nr   zsend:r   sendIng a read()ableencoding file using iso-8859-1rC   z9data should be a bytes-like object or an iterable, got %r)rV   	auto_openr   r   rK   r]   r^   r   r   r   r   r    Zsendallr   r   collectionsabcIterabletype)r2   r   r    	datablockdr   r   r   r     s8    






zHTTPConnection.sendc                 C   s   | j | d S ru   )r   r1   )r2   r   r   r   r   _output  s    zHTTPConnection._outputc                 c   s^   | j dkrtd | |}|r2| j dkr2td || j}|sDqZ|rR|d}|V  q2d S )Nr   r   r   rC   )rK   r]   r   r   r   r    )r2   r{   r    r   r   r   r   _read_readable  s    


zHTTPConnection._read_readableFc                 C   s  | j d d| j }| j d d = | | |d urt|drN| |}nVzt| W nB ty   zt|}W n" ty   tdt	| Y n0 Y n0 |f}|D ]R}|s| j
dkrtd q|r| jdkrt|dd	d
| d }| | q|r| jdkr| d d S )N)r   r   r;   r   zAmessage_body should be a bytes-like object or an iterable, got %rr   zZero length chunk ignoredrf   Xr   r   s   0

)r   extendrE   r   r   r   r   r   iterr   rK   r]   	_http_vsnr.   r    )r2   message_bodyencode_chunkedrM   Zchunksr   r   r   r   _send_output  s:    



zHTTPConnection._send_outputc                 C   s  | j r| j  rd | _ | jtkr(t| _n
t| j| | || _|pHd}| | d||| j	f }| 
| | | jdkr|sd}|drt|\}}}}}|rz|d}W n ty   |d}Y n0 | d| n| jr| j}	| j}
n| j}	| j}
z|	d}W n ty0   |	d}Y n0 |	d	d
krNd| d }|
| jkrh| d| n|d}| dd||
f  |s| dd n d S )N/z%s %s %srf   r[   r   r   ZidnaZHostr+   r      [   ]z%s:%szAccept-EncodingZidentity)r   r|   r   r   _CS_REQ_STARTEDr   _validate_methodrL   _validate_path_http_vsn_strr   _encode_requestr   ra   r   r    r!   	putheaderr   r   r   r   r   r   rF   )r2   rW   rX   	skip_hostskip_accept_encodingrequestZnetlocZnilZ
netloc_encr   r   Zhost_encr   r   r   
putrequest=  sP    






zHTTPConnection.putrequestc                 C   s
   | dS )Nr   )r    )r2   r  r   r   r   r     s    zHTTPConnection._encode_requestc                 C   s,   t |}|r(td|d| dd S )Nz)method can't contain control characters.  (found at least ))$_contains_disallowed_method_pchar_researchr`   group)r2   rW   matchr   r   r   r     s    
zHTTPConnection._validate_methodc                 C   s,   t |}|r(td|d| dd S Nz&URL can't contain control characters. r  r  !_contains_disallowed_url_pchar_rer  r   r  )r2   rX   r	  r   r   r   r     s
    

zHTTPConnection._validate_pathc                 C   s,   t |}|r(td|d| dd S r
  r  )r2   r   r	  r   r   r   r     s
    

zHTTPConnection._validate_hostc                 G   s   | j tkrt t|dr$|d}t|s:td|f t|}t|D ]\\}}t|drl|d||< nt	|t
rt|d||< t|| rJtd|| f qJd|}|d | }| | d S )Nr    r   zInvalid header name %rr   zInvalid header value %rs   
	s   : )r   r   r   r   r    _is_legal_header_namer`   r   	enumerater   rc   r\   _is_illegal_header_valuerE   r   )r2   r   valuesr   Z	one_valuer   r   r   r   r     s"    





zHTTPConnection.putheaderr   c                C   s*   | j tkrt| _ nt | j||d d S )Nr  )r   r   _CS_REQ_SENTr   r   )r2   r   r   r   r   r   
endheaders  s    
zHTTPConnection.endheadersc                C   s   |  ||||| d S ru   )_send_request)r2   rW   rX   r   rA   r   r   r   r   r    s    zHTTPConnection.requestc                 C   s   t dd |D }i }d|v r&d|d< d|v r6d|d< | j||fi | d|vrd	|vrd
}| ||}|d u r|d ur| jdkrtd|  d}| dd q| dt| nd
}| D ]\}	}
| |	|
 qt|trt	|d}| j
||d d S )Nc                 s   s   | ]}|  V  qd S ru   )r-   )r   kr   r   r   	<genexpr>	  r   z/HTTPConnection._send_request.<locals>.<genexpr>r   r,   r   zaccept-encodingr  ri   rh   Fr   zUnable to determine size of %rTzTransfer-EncodingrR   zContent-Lengthr   r  )	frozensetr  r   rK   r]   r   r\   rn   r   r)   r  )r2   rW   rX   r   rA   r   Zheader_namesZskipsZcontent_lengthrq   r   r   r   r   r    s0    	


zHTTPConnection._send_requestc                 C   s   | j r| j  rd | _ | jtks&| j r0t| j| jdkrR| j| j| j| jd}n| j| j| jd}zLz|	  W n t
y   |    Y n0 t| _|jr|   n|| _ |W S    |   Y n0 d S )Nr   r   )r   r|   r   r  r   rK   r   rV   rL   rs   ConnectionErrorrt   r   rU   )r2   r   r   r   r   getresponse5  s.    


zHTTPConnection.getresponse)NN)NF)FF)N)%r6   r7   r8   r   r   r   r   	HTTP_PORTr   r   rK   staticmethodr   r   r   _GLOBAL_DEFAULT_TIMEOUTrY   r   r   r   r   r   rt   r   r   r   r   r  r   r   r   r   r   r  r  r  r  r   r   r   r   r     sJ   



 &
6  
	.r   c                       sD   e Zd ZeZdddejdfdddd fddZ fddZ  Z	S )HTTPSConnectionNr   )contextcheck_hostnamer   c                   s   t t| j|||||	d |d us2|d us2|d urHdd l}
|
dtd || _|| _|d u rtt	 }|j
d urtd|_
|jtjk}|d u r|j}|r|std|s|r||| |j
d urd|_
|| _|d ur|| j_d S )N)r   r   zTkey_file, cert_file and check_hostname are deprecated, use a custom context instead.rZ   TzMcheck_hostname needs a SSL context with either CERT_OPTIONAL or CERT_REQUIRED)rv   r  rY   warningswarnDeprecationWarningkey_file	cert_filesslZ_create_default_https_contextZpost_handshake_authZverify_modeZ	CERT_NONEr  r`   Zload_cert_chain_context)r2   r   r   r#  r$  r   r   r  r  r   r   Zwill_verifyrx   r   r   rY     s:    

zHTTPSConnection.__init__c                    s6   t    | jr| j}n| j}| jj| j|d| _d S )N)server_hostname)rv   r   r   r   r&  Zwrap_socketrV   )r2   r'  rx   r   r   r     s    

zHTTPSConnection.connect)
r6   r7   r8   
HTTPS_PORTr   r   r  rY   r   r   r   r   rx   r   r  y  s   $r  c                   @   s   e Zd ZdS )r   Nr6   r7   r8   r   r   r   r   r     s   r   c                   @   s   e Zd ZdS )r   Nr)  r   r   r   r   r     s   r   c                   @   s   e Zd ZdS )r   Nr)  r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )r   c                 C   s   |f| _ || _d S ru   )argsrO   )r2   rO   r   r   r   rY     s    zUnknownProtocol.__init__Nr6   r7   r8   rY   r   r   r   r   r     s   r   c                   @   s   e Zd ZdS )r   Nr)  r   r   r   r   r     s   r   c                   @   s   e Zd ZdS )r	   Nr)  r   r   r   r   r	     s   r	   c                   @   s$   e Zd ZdddZdd ZejZdS )r
   Nc                 C   s   |f| _ || _|| _d S ru   )r*  partialexpected)r2   r,  r-  r   r   r   rY     s    zIncompleteRead.__init__c                 C   s2   | j d urd| j  }nd}d| jjt| j|f S )Nz, %i more expectedr[   z%s(%i bytes read%s))r-  ry   r6   r.   r,  r   r   r   r   __repr__  s    

zIncompleteRead.__repr__)N)r6   r7   r8   rY   r.  r#   __str__r   r   r   r   r
     s   
r
   c                   @   s   e Zd ZdS )r   Nr)  r   r   r   r   r     s   r   c                   @   s   e Zd ZdS )r   Nr)  r   r   r   r   r     s   r   c                   @   s   e Zd ZdS )r   Nr)  r   r   r   r   r     s   r   c                   @   s   e Zd ZdS )r   Nr)  r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )r   c                 C   s   |st |}|f| _|| _d S ru   )r^   r*  r4   r   r   r   r   rY     s    zBadStatusLine.__init__Nr+  r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )r   c                 C   s   t | dt|f  d S )Nz&got more than %d bytes when reading %s)r   rY   r>   )r2   Z	line_typer   r   r   rY     s    zLineTooLong.__init__Nr+  r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )r   c                 O   s(   t | d tj| g|R i | d S )Nr[   )r   rY   ConnectionResetError)r2   poskwr   r   r   rY     s    zRemoteDisconnected.__init__Nr+  r   r   r   r   r     s   r   )r   )BZemail.parserrG   Zemail.messager   r   r   rer   collections.abcr   Zurllib.parser   __all__r  r(  rN   r   r   r  globalsupdater   __members__r  r   r   r>   r?   compile	fullmatchr  r  r  r  r  r   r)   r   ZMessager*   rB   rI   BufferedIOBaser   r   r%  ImportErrorr  r1   	Exceptionr   r   r   r   r   r	   r
   r   r   r   r   r   r   r0  r   r   r   r   r   r   <module>G   sx   


    .    ]8
