<!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>
U
    if~C                     @   s  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dBd!dZd"d# Zd$d% Zd&Z d&d'd(dZ!d)d* Z"d+d, Z#d-d. Z$d/d0 Z%dCd2dZ&dDd3dZ'dEd4dZ(d5d Z)d&d'd6d
Z*d7d Z+d8d Z,dFd9dZ-ed:ej.Z/d;d Z0dGd>d Z1dHd@dAZ2dS )I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   0/opt/alt/python38/lib64/python3.8/email/utils.py_has_surrogates4   s
    r   c                 C   s   |  dd}|ddS )Nutf-8surrogateescapereplace)r   decode)stringZoriginal_bytesr   r   r   	_sanitizeA   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   M   s     



c                 c   s\   d}d}t | D ]8\}}|r0|d| fV  d}q|dkr>d}q||fV  q|rX|dfV  d S )Nr   F\T)	enumerate)addrposescapechr   r   r   _iter_escaped_charsn   s    r3   c                 C   s   d| kr| S d}d }g }t | D ]D\}}|dkr |d kr>|}q ||krX|| ||  |d }d }q |t| k r|| |d   d|S )Nr$   r      r   )r3   appendlenjoin)r/   startZopen_posresultr0   r2   r   r   r   _strip_quoted_realnames}   s     r:   T)strictc                C   s   |s&t dd | D }t|}|jS dd | D } t| } t | }t|}t|j}d}| D ]}t|}|d|d 7 }q`t||krdgS |S )	Nc                 s   s   | ]}t |V  qd S )Nr&   .0vr   r   r   	<genexpr>   s     zgetaddresses.<locals>.<genexpr>c                 S   s   g | ]}t |qS r   r<   r=   r   r   r   
<listcomp>   s     z getaddresses.<locals>.<listcomp>r   r4   ,r   r   )	
COMMASPACEr7   _AddressListaddresslist_pre_parse_validation_post_parse_validationr:   countr6   )Zfieldvaluesr;   allar/   r9   nr?   r   r   r   r      s     

c                 C   sV   t | } d}t| D ]8\}}|dkr.|d7 }q|dkr|d8 }|dk r dS q|dkS )Nr   (r4   )F)r:   r3   )r/   Zopensr0   r2   r   r   r   _check_parenthesis   s    
rO   c                 C   s(   g }| D ]}t |sd}|| q|S )Nz('', ''))rO   r5   )Zemail_header_fieldsaccepted_valuesr?   r   r   r   rG      s    rG   c                 C   s,   g }| D ]}d|d krd}| | q|S )N[r4   rC   )r5   )Zparsed_email_header_tuplesrP   r?   r   r   r   rH      s    rH   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Decr4   r            r   )	timetuplezoner   r   r   _format_timetuple_and_zone   s&         
   rY   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)rW   tzinfor[   r\   r]   
ValueErrorstrftimerY   )rb   ra   nowrX   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>)intrZ   osgetpidrandomZgetrandbitssocketZgetfqdn)ZidstringZdomainr_   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 )NrR   rc   seconds)r   r[   r\   	timedelta)dataZdtupletzr   r   r   r   9  s    c                C   sv   |st | j}|sdS |d S t| tr0| d } t| ts>dS t| gd } tt | j}|rjt|dkrndS |d S )NrC   r   r4   )rE   rF   r%   listr&   rG   rH   r6   )r/   r;   Zaddrsr   r   r   r   A  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 )	Nr4   r$   z\\r-   z\"<>)r6   
startswithendswithr   r<   r   r   r   r   `  s    c                 C   s&   |  td}t|dkr"d d | fS |S )NrS   )splitTICKr6   )r   partsr   r   r   r   l  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   t  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)r~   )popr5   rz   r   rfc2231_continuationmatchgrouprj   
setdefaultr   itemssortr   r   EMPTYSTRINGr7   r   )ZparamsZ
new_paramsZrfc2231_paramsr,   valueZencodedZmor   ZcontinuationsZextendedr   r+   r   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 )NrT   zraw-unicode-escape)r%   tupler6   r   bytesr&   LookupError)r   errorsZfallback_charsetr+   r   textZrawbytesr   r   r   r     s    

rv   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 )Nrv   rp   rR   r   )rc   )r[   rf   r\   r]   r^   rc   rW   rZ   mktimer`   rr   	tm_gmtofftm_zoneAttributeErrorgmtimedaylighttm_isdstaltzonetznamer   )	rb   ZisdstZtmrq   ZlocaltmZdeltart   ZdstZgmtoffr   r   r   r`     s$    


r`   )r   )NFF)F)NN)NN)r   r   )Nrv   )3__all__rk   rerZ   rm   rn   r[   Zurllib.parser   Zemail._parseaddrr   r   rE   r
   r   r   r   Zemail.charsetr   rD   r   ZUEMPTYSTRINGZCRLFr|   compiler'   r)   r   r"   r   r3   r:   Zsupports_strict_parsingr   rO   rG   rH   rY   r   r   r	   r   r   r   r   r   ASCIIr   r   r   r`   r   r   r   r   <module>   sz   


!,
	



8  
