<!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>

]x5                 @   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 j d  Z e j d  Z d d   Z d d   Z d  d! d  Z d" d   Z e j d# e j e j  B Z! d$ d%   Z" d d& d& d' d  Z# d& d( d  Z$ d d d) d  Z% d* d   Z& d+ d
   Z' d, d   Z( d- d   Z) d d d. d  Z* e j d/ e j+  Z, d0 d   Z- d1 d2 d3 d   Z. d d7 d5 d6  Z/ d S)8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/   y |  j    d SWn t k
 r* d SYn Xd  S)NFT)encodeUnicodeEncodeError)s r   */opt/alt/python35/lib64/python3.5/utils.py_has_surrogates3   s
    
r   c             C   s"   |  j  d d  } | j d d  S)Nzutf-8surrogateescapereplace)r   decode)stringZoriginal_bytesr   r   r   	_sanitize@   s    r!   zutf-8c             C   s   |  \ } } | j  d  | r y | j  d  WnJ t k
 r| t | t  r[ t |  } | j |  } d | | f SYnB Xd } t j |  r d } t j	 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nameaddressZencoded_nameZquotesr   r   r   r   L   s     c             C   s"   t  j |   } t |  } | j S)N)
COMMASPACEjoin_AddressListaddresslist)Zfieldvaluesallar   r   r   r   n   s    a_  
  =\?                   # literal =?
  (?P<charset>[^?]*?)   # non-greedy up to the next ? is the charset
  \?                    # literal ?
  (?P<encoding>[qb])    # either a "q" or a "b", case insensitive
  \?                    # literal ?
  (?P<atom>.*?)         # non-greedy up to the next ?= is the atom
  \?=                   # literal ?=
  c             C   s   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_zone   s     !r;   Fc             C   sy   |  d  k r t  j    }  | s$ | rB t j j |  t j j  } n t j j |   } | rl | j   } d } t | |  S)NF)timedatetimeZfromtimestamptimezoneutcZutcfromtimestamp
astimezoner   )timeval	localtimeusegmtdtr   r   r   r      s    c             C   s   |  j    } | rK |  j d  k s6 |  j t j j k rB t d   d } n' |  j d  k rc d } n |  j 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 j   d  } t j   } t j d  } |  d  k rF d }  n
 d |  }  | d  k rh t j   } d | | | |  | f } | S)Nd   @   r   .z<%d.%d.%d%s@%s>)intr<   osgetpidrandomgetrandbitssocketgetfqdn)ZidstringdomainrA   pidrandintZmsgidr   r   r   r	      s    
	
c             C   sg   t  |   ^ } } | d  k r5 t j | d  d    St j | d  d  d t j t j d |    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)Nr   r   )r   r   )r/   r0   )addrZaddrsr   r   r   r      s    c             C   s   t  |   d k r |  j d  rV |  j d  rV |  d d  j d d  j d d  S|  j d  r |  j d  r |  d d	  S|  S)
Nr5   r#   z\\\z\"<>r^   )len
startswithendswithr   )r%   r   r   r   r      s    &c             C   s5   |  j  t d  } t |  d k r1 d  d  |  f S| S)Nr4   )splitTICKr_   )r   partsr   r   r   r      s    c             C   sc   t  j j |  d d d | p d }  | d  k r@ | d  k r@ |  S| d  k rR d } d | | |  f S)NZsafer   encodingr"   z%s'%s'%s)urllibparser   )r   r*   languager   r   r   r      s    $z&^(?P<name>\w+)\*((?P<num>[0-9]+)\*?)?$c             C   s	  |  d  d   }  g  } i  } |  j  d  \ } } | j | | f  x |  r|  j  d  \ } } | j d  rz d } n d } t |  } t j |  } | r | j d d  \ } } | d  k	 r t |  } | j | g   j | | | f  qG | j | d t	 |  f  qG W| rx | j
   D] \ } } g  } d }	 | j   xH | D]@ \ } }
 } | rt j j |
 d d	 }
 d }	 | j |
  qSWt	 t j |   } |	 rt |  \ } } } | j | | | d | f f  q*| j | d | f  q*W| S)
Nr   *TFr+   numz"%s"re   zlatin-1)popappendra   r   rfc2231_continuationmatchgrouprL   
setdefaultr   itemssortrf   rg   EMPTYSTRINGr.   r   )paramsZ
new_paramsZrfc2231_paramsr+   valueencodedmorj   ZcontinuationsZextendedr   r*   rh   r   r   r   r     sD    		%!
#r   zus-asciic             C   s   t  |  t  s" t |   d k r, t |   S|  \ } } } | d  k rM | } t | d  } y t | | |  SWn t k
 r t |  SYn Xd  S)Nr6   zraw-unicode-escape)r$   tupler_   r   bytesr%   LookupError)ru   errorsZfallback_charsetr*   rh   textZrawbytesr   r   r   r   ?  s    "
r5   c       	      C   si  |  d  k r( t  j  j t  j j  j   S|  j d  k	 rA |  j   S|  j   d  d  | f } t j |  } t j	 |  } y. t  j
 d | j  } t  j | | j  } Wn t k
 rX|  t  j  t j |  d  d    } t j o | j d k } | rt j n t j } | t  j
 d |  k rEt  j | t j |  } n t  j |  } Yn X|  j d |  S)Nr5   rV   r3   r   rE   r^   )r=   rH   r>   r?   r@   rE   r9   r<   mktimerB   rW   	tm_gmtofftm_zoneAttributeErrorgmtimedaylighttm_isdstaltzonetznamer   )	rD   ZisdstZtmrV   ZlocaltmZdeltarY   dstZgmtoffr   r   r   rB   Y  s$    
&rB   r^   )0__all__rM   rer<   rO   rQ   r=   Zurllib.parserf   Zemail._parseaddrr   r   r/   r
   r   r   r   Zemail.charsetr   r-   rs   ZUEMPTYSTRINGZCRLFrc   compiler&   r(   r   r!   r   r   VERBOSE
IGNORECASEZecrer;   r   r   r	   r   r   r   r   r   ASCIIrm   r   r   rB   r   r   r   r   <module>   sl   	"		8