???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5d4                     @   sf  d ddddddddd	d
ddddg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
 ddl	mZ ddl	mZ ddl	mZmZmZ ddlmZ dZdZdZdZdZedZedZdd Zdd Zd6d!dZd"d Zd#d$ Zd7d&dZ d8d'dZ!d9d(dZ"d)d Z#d*d
 Z$d+d Z%d,d Z&d:d-dZ'ed.ej(Z)d/d Z*d;d2d Z+d<d4d5Z,dS )=collapse_rfc2231_valuedecode_paramsdecode_rfc2231encode_rfc2231
formataddr
formatdateformat_datetimegetaddresses
make_msgid	mktime_tz	parseaddr	parsedateparsedate_tzparsedate_to_datetimeunquote    N)quote)AddressList)r
   )r   r   _parsedate_tz)Charsetz,  z
'z[][\\()<>@,:;".]z[\\"]c                 C   s*   z|    W dS  tk
r$   Y dS X d S )NFT)encodeUnicodeEncodeError)s r   #/usr/lib64/python3.8/email/utils.py_has_surrogates3   s
    r   c                 C   s   |  dd}|ddS )Nutf-8surrogateescapereplace)r   decode)stringZoriginal_bytesr   r   r   	_sanitize@   s    r"   r   c                 C   s   | \}}| d |rz| d W n< tk
r`   t|trFt|}||}d||f  Y S X d}t|rtd}t	d|}d||||f S |S )Nasciiz%s <%s>r   "z\\\g<0>z%s%s%s <%s>)
r   r   
isinstancestrr   Zheader_encode
specialsresearch	escapesresub)ZpaircharsetnameZaddressZencoded_nameZquotesr   r   r   r   L   s     



c                 C   s   t | }t|}|jS )N)
COMMASPACEjoin_AddressListaddresslist)Zfieldvaluesallar   r   r   r   n   s    
c                 C   sf   ddddddddg| d	  | d
 ddddddddddddg| d d  | d | d | d | d |f S )Nz"%s, %02d %s %04d %02d:%02d:%02d %sZMonZTueZWedZThuZFriZSatZSun      ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDec   r            r   )	timetuplezoner   r   r   _format_timetuple_and_zoneu   s&         
   r;   Fc                 C   sR   | d krt   } |s|r,tj| tjj}ntj| }|rH| }d}t||S )NF)timedatetimeZfromtimestamptimezoneutcZutcfromtimestamp
astimezoner   )timeval	localtimeusegmtdtr   r   r   r   ~   s    c                 C   sV   |   }|r2| jd ks$| jtjjkr,tdd}n| jd krBd}n
| d}t||S )Nz%usegmt option requires a UTC datetimeZGMTz-0000z%z)r9   tzinfor=   r>   r?   
ValueErrorstrftimer;   )rD   rC   nowr:   r   r   r   r      s    

c                 C   s^   t t d }t }td}| d kr0d} nd|  } |d krHt }d|||| |f }|S )Nd   @   r   .z<%d.%d.%d%s@%s>)intr<   osgetpidrandomZgetrandbitssocketZgetfqdn)ZidstringZdomainrA   pidZrandintZmsgidr   r   r   r	      s    

c                 C   sN   t | ^ }}|d kr(tj|d d  S tj|d d dttj|diS )Nr3   rE   seconds)r   r=   r>   	timedelta)dataZdtupletzr   r   r   r      s    c                 C   s   t | j}|sdS |d S )N)r   r   r   )r/   r0   )ZaddrZaddrsr   r   r   r      s    
c                 C   s`   t | dkr\| dr<| dr<| dd ddddS | dr\| dr\| dd S | S )	Nr5   r$   z\\\z\"<>)len
startswithendswithr   )r&   r   r   r   r      s    c                 C   s&   |  td}t|dkr"d d | fS |S )Nr4   )splitTICKr[   )r   partsr   r   r   r      s    
c                 C   sD   t jj| d|pdd} |d kr*|d kr*| S |d kr6d}d||| f S )Nr   r#   )Zsafeencodingz%s'%s'%s)urllibparser   )r   r+   languager   r   r   r      s    z&^(?P<name>\w+)\*((?P<num>[0-9]+)\*?)?$c                 C   sl  | d d  } g }i }|  d\}}|||f | r|  d\}}|drRd}nd}t|}t|}|r|dd\}}|d k	rt|}||g |||f q0||dt	| f q0|rh|
 D ]\}}g }d}	|  |D ].\}}
}|rtjj|
dd	}
d}	||
 qt	t|}|	rTt|\}}}||||d| ff q||d| f q|S )
Nr   *TFr,   numz"%s"zlatin-1)ra   )popappendr]   r   rfc2231_continuationmatchgrouprL   
setdefaultr   itemssortrb   rc   EMPTYSTRINGr.   r   )ZparamsZ
new_paramsZrfc2231_paramsr,   valueZencodedZmorf   ZcontinuationsZextendedr   r+   rd   r   r   r   r     sD    

r   us-asciic                 C   sn   t | trt| dkrt| S | \}}}|d kr4|}t|d}zt|||W S  tk
rh   t| Y S X d S )Nr6   zraw-unicode-escape)r%   tupler[   r   bytesr&   LookupError)rp   errorsZfallback_charsetr+   rd   textZrawbytesr   r   r   r   9  s    

rW   c           	      C   s  | d krt j t jj S | jd k	r.|  S |  d d |f }t|}t	|}z t j
|jd}t ||j}W n tk
r   | t j t|d d   }tjo|jdk}|rtjntj }|t j
|dkrt |tj| }n
t |}Y nX | j|dS )NrW   rR   r3   r   )rE   )r=   rH   r>   r?   r@   rE   r9   r<   mktimerB   rT   	tm_gmtofftm_zoneAttributeErrorgmtimedaylighttm_isdstaltzonetznamer   )	rD   ZisdstZtmrS   ZlocaltmZdeltarV   ZdstZgmtoffr   r   r   rB   S  s$    


rB   )r   )NFF)F)NN)NN)r   rq   )NrW   )-__all__rM   rer<   rO   rP   r=   Zurllib.parserb   Zemail._parseaddrr   r   r/   r
   r   r   r   Zemail.charsetr   r-   ro   ZUEMPTYSTRINGZCRLFr_   compiler'   r)   r   r"   r   r   r;   r   r   r	   r   r   r   r   r   ASCIIri   r   r   rB   r   r   r   r   <module>   sn   


"	



8  
