Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /lib64/python3.6/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib64/python3.6/__pycache__/smtplib.cpython-36.pyc
3


 \���@sndZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZdddddd	d
ddd
ddgZdZdZdZdZdZejdej�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd	�d	e�Z Gdd
�d
e�Z!Gdd�de�Z"Gd d�de�Z#d!d
�Z$d"d#�Z%d$d�Z&d%d&�Z'd'd(�Z(yddl)Z)Wne*k
�r�d)Z+YnXd*Z+Gd+d�d�Z,e+�r�Gd,d-�d-e,�Z-ej.d-�d.Z/Gd/d0�d0e,�Z0e1d1k�rjd2d3�Z2e2d4�Z3e2d5�j4d6�Z5e6d7�d8Z7x ej8j9�Z:e:�s$Pe7e:Z7�qWe6d9e;e7��e,d:�Z<e<j=d;�e<j>e3e5e7�e<j?�dS)<aSMTP/ESMTP client class.

This should follow RFC 821 (SMTP), RFC 1869 (ESMTP), RFC 2554 (SMTP
Authentication) and RFC 2487 (Secure SMTP over TLS).

Notes:

Please remember, when doing ESMTP, that the names of the SMTP service
extensions are NOT the same thing as the option keywords for the RCPT
and MAIL commands!

Example:

  >>> import smtplib
  >>> s=smtplib.SMTP("localhost")
  >>> print(s.help())
  This is Sendmail version 8.8.4
  Topics:
      HELO    EHLO    MAIL    RCPT    DATA
      RSET    NOOP    QUIT    HELP    VRFY
      EXPN    VERB    ETRN    DSN
  For more info use "HELP <topic>".
  To report bugs in the implementation send email to
      sendmail-bugs@sendmail.org.
  For local information send email to Postmaster at your site.
  End of HELP info
  >>> s.putcmd("vrfy","someone@here")
  >>> s.getreply()
  (250, "Somebody OverHere <somebody@here.my.org>")
  >>> s.quit()
�N)�body_encode�
SMTPException�SMTPServerDisconnected�SMTPResponseException�SMTPSenderRefused�SMTPRecipientsRefused�
SMTPDataError�SMTPConnectError�
SMTPHeloError�SMTPAuthenticationError�	quoteaddr�	quotedata�SMTP�i�z
s
i z	auth=(.*)c@seZdZdZdS)rz4Base class for all exceptions raised by this module.N)�__name__�
__module__�__qualname__�__doc__�rr�/usr/lib64/python3.6/smtplib.pyrGsc@seZdZdZdS)�SMTPNotSupportedErrorz�The command or option is not supported by the SMTP server.

    This exception is raised when an attempt is made to run a command or a
    command with an option which is not supported by the server.
    N)rrrrrrrrrJsrc@seZdZdZdS)rz�Not connected to any SMTP server.

    This exception is raised when the server unexpectedly disconnects,
    or when an attempt is made to use the SMTP instance before
    connecting it to a server.
    N)rrrrrrrrrQsc@seZdZdZdd�ZdS)ra2Base class for all exceptions that include an SMTP error code.

    These exceptions are generated in some instances when the SMTP
    server returns an error code.  The error code is stored in the
    `smtp_code' attribute of the error, and the `smtp_error' attribute
    is set to the error message.
    cCs||_||_||f|_dS)N)�	smtp_code�
smtp_error�args)�self�code�msgrrr�__init__bszSMTPResponseException.__init__N)rrrrrrrrrrYsc@seZdZdZdd�ZdS)rz�Sender address refused.

    In addition to the attributes set by on all SMTPResponseException
    exceptions, this sets `sender' to the string that the SMTP refused.
    cCs"||_||_||_|||f|_dS)N)rr�senderr)rrrrrrrrnszSMTPSenderRefused.__init__N)rrrrrrrrrrgsc@seZdZdZdd�ZdS)rz�All recipient addresses refused.

    The errors for each recipient are accessible through the attribute
    'recipients', which is a dictionary of exactly the same sort as
    SMTP.sendmail() returns.
    cCs||_|f|_dS)N)�
recipientsr)rrrrrr|szSMTPRecipientsRefused.__init__N)rrrrrrrrrrtsc@seZdZdZdS)rz'The SMTP server didn't accept the data.N)rrrrrrrrr�sc@seZdZdZdS)r	z&Error during connection establishment.N)rrrrrrrrr	�sc@seZdZdZdS)r
z"The server refused our HELO reply.N)rrrrrrrrr
�sc@seZdZdZdS)rzvAuthentication error.

    Most probably the server didn't accept the username/password
    combination provided.
    N)rrrrrrrrr�scCs>tjj|�\}}||fdkr6|j�jd�r.|Sd|Sd|S)z�Quote a subset of the email addresses defined by RFC 821.

    Should be able to handle anything email.utils.parseaddr can handle.
    ��<z<%s>)r r )�email�utils�	parseaddr�strip�
startswith)�
addrstring�displayname�addrrrrr�scCs$tjj|�\}}||fdkr |S|S)Nr )r r )r"r#r$)r'r(r)rrr�
_addr_only�sr*cCstjddtjdt|��S)z�Quote data for email.

    Double leading '.', and change Unix newline '\n', or Mac '\r' into
    Internet CRLF end-of-line.
    z(?m)^\.z..z(?:\r\n|\n|\r(?!\n)))�re�sub�CRLF)�datarrrr
�scCstjdd|�S)Ns(?m)^\.s..)r+r,)Zbindatarrr�_quote_periods�sr/cCstjdt|�S)Nz(?:\r\n|\n|\r(?!\n)))r+r,r-)r.rrr�	_fix_eols�sr0FTc@s�eZdZdZdZdZdZdZdZdZ	e
Zdddej
dfdd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�ZdMdd�Zdd�ZdNdd�Zdd�ZdOdd�ZdPdd�ZdQdd �Zd!d"�ZdRd#d$�Zd%d&�Zd'd(�Zd)d*�Zffd+d,�Z ffd-d.�Z!d/d0�Z"d1d2�Z#e#Z$d3d4�Z%d5d6�Z&d7d8�d9d:�Z'dSd;d<�Z(dTd=d>�Z)dUd?d@�Z*d7d8�dAdB�Z+dVdCdD�Z,fffdEdF�Z-ddfffdGdH�Z.dIdJ�Z/dKdL�Z0dS)Wra�This class manages a connection to an SMTP or ESMTP server.
    SMTP Objects:
        SMTP objects have the following attributes:
            helo_resp
                This is the message given by the server in response to the
                most recent HELO command.

            ehlo_resp
                This is the message given by the server in response to the
                most recent EHLO command. This is usually multiline.

            does_esmtp
                This is a True value _after you do an EHLO command_, if the
                server supports ESMTP.

            esmtp_features
                This is a dictionary, which, if the server supports ESMTP,
                will _after you do an EHLO command_, contain the names of the
                SMTP service extensions this server supports, and their
                parameters (if any).

                Note, all extension names are mapped to lower case in the
                dictionary.

        See each method's docstrings for details.  In general, there is a
        method of the same name to perform each SMTP command.  There is also a
        method called 'sendmail' that will do an entire mail transaction.
        rN�ehlor c
Cs�||_||_i|_d|_||_|rL|j||�\}}|dkrL|j�t||��|dk	r\||_nPt	j
�}d|krt||_n8d}	yt	jt	j��}	Wnt	j
k
r�YnXd|	|_dS)aInitialize a new instance.

        If specified, `host' is the name of the remote host to which to
        connect.  If specified, `port' specifies the port to which to connect.
        By default, smtplib.SMTP_PORT is used.  If a host is specified the
        connect method is called, and if it returns anything other than a
        success code an SMTPConnectError is raised.  If specified,
        `local_hostname` is used as the FQDN of the local host in the HELO/EHLO
        command.  Otherwise, the local hostname is found using
        socket.getfqdn(). The `source_address` parameter takes a 2-tuple (host,
        port) for the socket to bind to as its source address before
        connecting. If the host is '' and port is 0, the OS default behavior
        will be used.

        �ascii��N�.z	127.0.0.1z[%s])�_host�timeout�esmtp_features�command_encoding�source_address�connect�closer	�local_hostname�socketZgetfqdnZ
gethostbynameZgethostnameZgaierror)
r�host�portr<r6r9rrZfqdnr)rrrr�s*
z
SMTP.__init__cCs|S)Nr)rrrr�	__enter__szSMTP.__enter__cGsNz>y$|jd�\}}|dkr$t||��Wntk
r:YnXWd|j�XdS)NZQUIT��)�docmdrrr;)rrr�messagerrr�__exit__s
z
SMTP.__exit__cCs
||_dS)z�Set the debug output level.

        A non-false value results in debug messages for connection and for all
        messages sent to and received from the server.

        N)�
debuglevel)rrErrr�set_debuglevelszSMTP.set_debuglevelcGs@|jdkr,ttjj�j�f|�dtji�nt|dtji�dS)N��file)rE�print�datetimeZnowZtime�sys�stderr)rrrrr�_print_debug's
"zSMTP._print_debugcCs2|jdkr|jd||f|j�tj||f||j�S)Nrzconnect: to)rErMr9r=�create_connection)rr>r?r6rrr�_get_socket-s
zSMTP._get_socket�	localhostcCs�|r
||_|r~|jd�|jd�kr~|jd�}|dkr~|d|�||dd�}}yt|�}Wntk
r|td��YnX|s�|j}|jdkr�|jd||f�|j	|||j
�|_d|_|j
�\}}|jdkr�|jdt|��||fS)apConnect to a host on a given port.

        If the hostname ends with a colon (`:') followed by a number, and
        there is no port specified, that suffix will be stripped off and the
        number interpreted as the port number to use.

        Note: This method is automatically invoked by __init__, if a host is
        specified during instantiation.

        �:rNrGznonnumeric portzconnect:)r9�find�rfind�int�
ValueError�OSError�default_portrErMrOr6�sockrH�getreply�repr)rr>r?r9�irrrrrr:5s(


zSMTP.connectcCs�|jdkr|jdt|��t|d�rx|jrxt|t�r@|j|j�}y|jj	|�Wq�t
k
rt|j�td��Yq�Xntd��dS)zSend `s' to the server.rzsend:rXzServer not connectedzplease run connect() firstN)
rErMrZ�hasattrrX�
isinstance�str�encoder8ZsendallrVr;r)r�srrr�sendWs

z	SMTP.sendcCs2|dkrd|tf}nd||tf}|j|�dS)zSend a command to the server.r z%s%sz%s %s%sN)r-ra)r�cmdrr^rrr�putcmdiszSMTP.putcmdcCsPg}|jdkr|jjd�|_�xy|jjtd�}Wn:tk
rn}z|j�tdt|���WYdd}~XnX|s�|j�td��|j	dkr�|j
dt|��t|�tkr�|j�t
dd	��|j|d
d�jd��|dd�}yt|�}Wntk
�rd}PYnX|dd
�d
kr Pq Wdj|�}|j	dk�rH|j
d||f�||fS)a�Get a reply from the server.

        Returns a tuple consisting of:

          - server response code (e.g. '250', or such, if all goes well)
            Note: returns -1 if it can't read response code.

          - server response string corresponding to response code (multiline
            responses are converted to a single, multiline string).

        Raises SMTPServerDisconnected if end-of-file is reached.
        N�rbrGz Connection unexpectedly closed: zConnection unexpectedly closedrzreply:i�zLine too long.�s 	
��-�
zreply: retcode (%s); Msg: %a���)rHrX�makefile�readline�_MAXLINErVr;rr^rErMrZ�lenr�appendr%rTrU�join)r�resp�line�erZerrcode�errmsgrrrrYqs>




z
SMTP.getreplycCs|j||�|j�S)z-Send a command, and return its response code.)rcrY)rrbrrrrrB�sz
SMTP.docmdcCs,|jd|p|j�|j�\}}||_||fS)zwSMTP 'helo' command.
        Hostname to send for this command defaults to the FQDN of the local
        host.
        �helo)rcr<rY�	helo_resp)r�namerrrrrrt�sz	SMTP.heloc
CsLi|_|j|j|p|j�|j�\}}|d
krJt|�dkrJ|j�td��||_|dkr`||fSd|_	t
|jt�s�tt
|j���|jjd�jd�}|d=x�|D]�}tj|�}|r�|jjdd�d	|jd�d|jd<q�tjd
|�}|r�|jd�j�}|j|jd�d�j�}	|dk�r6|jj|d�d	|	|j|<q�|	|j|<q�W||fS)zx SMTP 'ehlo' command.
        Hostname to send for this command defaults to the FQDN of the local
        host.
        rGrzServer not connected�zlatin-1�
�authr � z((?P<feature>[A-Za-z0-9][A-Za-z0-9\-]*) ?�featureNri)r7rc�ehlo_msgr<rYrmr;r�	ehlo_resp�
does_esmtpr]�bytes�AssertionErrorrZ�decode�split�
OLDSTYLE_AUTH�match�get�groupsr+�group�lower�string�endr%)
rrvrrrp�eachZ
auth_match�mr{Zparamsrrrr1�s4

&
z	SMTP.ehlocCs|j�|jkS)z7Does the server support a given SMTP service extension?)r�r7)r�optrrr�has_extn�sz
SMTP.has_extncCs|jd|�|j�dS)z;SMTP 'help' command.
        Returns help text from server.�helprG)rcrY)rrrrrr��sz	SMTP.helpcCsd|_|jd�S)z&SMTP 'rset' command -- resets session.r2�rset)r8rB)rrrrr��sz	SMTP.rsetcCs&y|j�Wntk
r YnXdS)aInternal 'rset' command which ignores any SMTPServerDisconnected error.

        Used internally in the library, since the server disconnected error
        should appear to the application when the *next* command is issued, if
        we are doing an internal "safety" reset.
        N)r�r)rrrr�_rset�sz
SMTP._rsetcCs
|jd�S)z-SMTP 'noop' command -- doesn't do anything :>�noop)rB)rrrrr�sz	SMTP.noopcCshd}|rH|jrHtdd�|D��r:|jd�r2d|_ntd��ddj|�}|jdd	t|�|f�|j�S)
a8SMTP 'mail' command -- begins mail xfer session.

        This method may raise the following exceptions:

         SMTPNotSupportedError  The options parameter includes 'SMTPUTF8'
                                but the SMTPUTF8 extension is not supported by
                                the server.
        r css|]}|j�dkVqdS)�smtputf8N)r�)�.0�xrrr�	<genexpr>szSMTP.mail.<locals>.<genexpr>r�zutf-8z SMTPUTF8 not supported by serverrz�mailz	FROM:%s%s)	r~�anyr�r8rrorcrrY)rr�options�
optionlistrrrr�s	

z	SMTP.mailcCs<d}|r|jrddj|�}|jddt|�|f�|j�S)z;SMTP 'rcpt' command -- indicates 1 recipient for this mail.r rz�rcptzTO:%s%s)r~rorcrrY)rZrecipr�r�rrrr�s

z	SMTP.rcptcCs�|jd�|j�\}}|jdkr0|jd||f�|dkrDt||��n|t|t�r\t|�jd�}t	|�}|d	d�t
kr||t
}|dt
}|j|�|j�\}}|jdkr�|jd||f�||fSdS)
a�SMTP 'DATA' command -- sends message data to server.

        Automatically quotes lines beginning with a period per rfc821.
        Raises SMTPDataError if there is an unexpected reply to the
        DATA command; the return value from this method is the final
        response code received when the all data is sent.  If msg
        is a string, lone '\r' and '\n' characters are converted to
        '\r\n' characters.  If msg is bytes, it is transmitted as is.
        r.rzdata:ibr2�N�.���)rcrYrErMrr]r^r0r_r/�bCRLFra)rrr�repl�qrrrr.!s"





z	SMTP.datacCs|jdt|��|j�S)z5SMTP 'verify' command -- checks for address validity.�vrfy)rcr*rY)r�addressrrr�verify>szSMTP.verifycCs|jdt|��|j�S)z.SMTP 'expn' command -- expands a mailing list.�expn)rcr*rY)rr�rrrr�Esz	SMTP.expncCsf|jdkrb|jdkrbd|j�dko.dknsb|j�\}}d|koRdknsbt||��dS)abCall self.ehlo() and/or self.helo() if needed.

        If there has been no previous EHLO or HELO command this session, this
        method tries ESMTP EHLO first.

        This method may raise the following exceptions:

         SMTPHeloError            The server didn't reply properly to
                                  the helo greeting.
        N��ri+)rur}r1rtr
)rrrprrr�ehlo_or_helo_if_neededLs
 zSMTP.ehlo_or_helo_if_neededT)�initial_response_okc	Cs�|j�}|r|�nd}|dk	rJt|jd�dd�}|jd|d|�\}}n|jd|�\}}|dkr�tj|�}t||�jd�dd�}|j|�\}}|d
kr�||fSt||��dS)a�Authentication command - requires response processing.

        'mechanism' specifies which authentication mechanism is to
        be used - the valid values are those listed in the 'auth'
        element of 'esmtp_features'.

        'authobject' must be a callable object taking a single argument:

                data = authobject(challenge)

        It will be called to process the server's challenge response; the
        challenge argument it is passed will be a bytes.  It should return
        an ASCII string that will be base64 encoded and sent to the server.

        Keyword arguments:
            - initial_response_ok: Allow sending the RFC 4954 initial-response
              to the AUTH command, if the authentication methods supports it.
        Nr2r )ZeolZAUTHrziN���)r�r�)�upper�
encode_base64r_rB�base64Zdecodebytesr)	rZ	mechanismZ
authobjectr�Zinitial_responseZresponserrp�	challengerrrry]s
z	SMTP.authcCs0|dkrdS|jdtj|jjd�|d�j�S)zh Authobject to use with CRAM-MD5 authentication. Requires self.user
        and self.password to be set.Nrzr2Zmd5)�user�hmacZHMAC�passwordr_Z	hexdigest)rr�rrr�
auth_cram_md5�szSMTP.auth_cram_md5cCsd|j|jfS)ze Authobject to use with PLAIN authentication. Requires self.user and
        self.password to be set.z%s%s)r�r�)rr�rrr�
auth_plain�szSMTP.auth_plaincCs|dkr|jS|jSdS)ze Authobject to use with LOGIN authentication. Requires self.user and
        self.password to be set.N)r�r�)rr�rrr�
auth_login�szSMTP.auth_logincs�|j�|jd�std��|jdj��dddg}�fdd�|D�}|sPtd��|||_|_xv|D]n}d	|j�j	d
d�}y.|j
|t||�|d�\}}	|dkr�||	fSWqdtk
r�}
z
|
}WYdd}
~
XqdXqdW|�dS)awLog in on an SMTP server that requires authentication.

        The arguments are:
            - user:         The user name to authenticate with.
            - password:     The password for the authentication.

        Keyword arguments:
            - initial_response_ok: Allow sending the RFC 4954 initial-response
              to the AUTH command, if the authentication methods supports it.

        If there has been no previous EHLO or HELO command this session, this
        method tries ESMTP EHLO first.

        This method will return normally if the authentication was successful.

        This method may raise the following exceptions:

         SMTPHeloError            The server didn't reply properly to
                                  the helo greeting.
         SMTPAuthenticationError  The server didn't accept the username/
                                  password combination.
         SMTPNotSupportedError    The AUTH command is not supported by the
                                  server.
         SMTPException            No suitable authentication method was
                                  found.
        ryz,SMTP AUTH extension not supported by server.zCRAM-MD5ZPLAINZLOGINcsg|]}|�kr|�qSrr)r�ry)�advertised_authlistrr�
<listcomp>�szSMTP.login.<locals>.<listcomp>z(No suitable authentication method found.Zauth_�-�_)r�r��N)r�r�)
r�r�rr7r�rr�r�r��replacery�getattrr)rr�r�r�Zpreferred_authsZauthlistZ
authmethodZmethod_namerrprrZlast_exceptionr)r�r�login�s*



z
SMTP.logincCs�|j�|jd�std��|jd�\}}|dkr�ts<td��|dk	rT|dk	rTtd��|dk	rl|dk	rltd��|dk	s||dk	r�d	dl}|jd
t	d�|dkr�t
j||d�}|j|j
|jd
�|_
d|_d|_d|_i|_d	|_n
t||��||fS)a�Puts the connection to the SMTP server into TLS mode.

        If there has been no previous EHLO or HELO command this session, this
        method tries ESMTP EHLO first.

        If the server supports TLS, this will encrypt the rest of the SMTP
        session. If you provide the keyfile and certfile parameters,
        the identity of the SMTP server and client can be checked. This,
        however, depends on whether the socket module really checks the
        certificates.

        This method may raise the following exceptions:

         SMTPHeloError            The server didn't reply properly to
                                  the helo greeting.
        �starttlsz+STARTTLS extension not supported by server.ZSTARTTLSr3z&No SSL support included in this PythonNz4context and keyfile arguments are mutually exclusivez5context and certfile arguments are mutually exclusiverzAkeyfile and certfile are deprecated, use a custom context insteadr�)�certfile�keyfile)�server_hostname)r�r�rrB�	_have_ssl�RuntimeErrorrU�warnings�warn�DeprecationWarning�ssl�_create_stdlib_context�wrap_socketrXr5rHrur}r7r~r)rr�r��contextrpZreplyr�rrrr��s8

z
SMTP.starttlscCsf|j�g}t|t�r$t|�jd�}|jr^|jd�rF|jdt|��x|D]}|j|�qLW|j	||�\}}	|dkr�|dkr�|j
�n|j�t||	|��i}
t|t�r�|g}xP|D]H}|j
||�\}}	|dkr�|dkr�||	f|
|<|dkr�|j
�t|
��q�Wt|
�t|�k�r$|j�t|
��|j|�\}}	|dk�rb|dk�rP|j
�n|j�t||	��|
S)a|This command performs an entire mail transaction.

        The arguments are:
            - from_addr    : The address sending this mail.
            - to_addrs     : A list of addresses to send this mail to.  A bare
                             string will be treated as a list with 1 address.
            - msg          : The message to send.
            - mail_options : List of ESMTP options (such as 8bitmime) for the
                             mail command.
            - rcpt_options : List of ESMTP options (such as DSN commands) for
                             all the rcpt commands.

        msg may be a string containing characters in the ASCII range, or a byte
        string.  A string is encoded to bytes using the ascii codec, and lone
        \r and \n characters are converted to \r\n characters.

        If there has been no previous EHLO or HELO command this session, this
        method tries ESMTP EHLO first.  If the server does ESMTP, message size
        and each of the specified options will be passed to it.  If EHLO
        fails, HELO will be tried and ESMTP options suppressed.

        This method will return normally if the mail is accepted for at least
        one recipient.  It returns a dictionary, with one entry for each
        recipient that was refused.  Each entry contains a tuple of the SMTP
        error code and the accompanying error message sent by the server.

        This method may raise the following exceptions:

         SMTPHeloError          The server didn't reply properly to
                                the helo greeting.
         SMTPRecipientsRefused  The server rejected ALL recipients
                                (no mail was sent).
         SMTPSenderRefused      The server didn't accept the from_addr.
         SMTPDataError          The server replied with an unexpected
                                error code (other than a refusal of
                                a recipient).
         SMTPNotSupportedError  The mail_options parameter includes 'SMTPUTF8'
                                but the SMTPUTF8 extension is not supported by
                                the server.

        Note: the connection will be open even after an exception is raised.

        Example:

         >>> import smtplib
         >>> s=smtplib.SMTP("localhost")
         >>> tolist=["one@one.org","two@two.org","three@three.org","four@four.org"]
         >>> msg = '''\
         ... From: Me@my.org
         ... Subject: testin'...
         ...
         ... This is a test '''
         >>> s.sendmail("me@my.org",tolist,msg)
         { "three@three.org" : ( 550 ,"User unknown" ) }
         >>> s.quit()

        In the above example, the message was accepted for delivery to three
        of the four addresses, and one was rejected, with the error code
        550.  If all addresses are accepted, then the method will return an
        empty dictionary.

        r2�sizezsize=%drwi��)r�r]r^r0r_r~r�rnrmr�r;r�rr�rr.r)r�	from_addr�to_addrsr�mail_options�rcpt_optionsZ
esmtp_optsZoptionrrpZsenderrsr�rrr�sendmailsF@









z
SMTP.sendmailcCs�|j�|jd�}|dkr d}nt|�dkr2d}ntd��|dkr||d|krZ||dn
||d}tjj|g�d	d}|dkr�d
d�||d||d
||dfD�}dd�tjj|�D�}tj|�}	|	d
=|	d=d}
ydj|f|��j	d�Wn.t
k
�r(|jd��s td��d}
YnXt
j��R}|
�r^tjj||jjdd�d�}|d�}ntjj|�}|j|	dd�|j�}
WdQRX|j|||
||�S)a~Converts message to a bytestring and passes it to sendmail.

        The arguments are as for sendmail, except that msg is an
        email.message.Message object.  If from_addr is None or to_addrs is
        None, these arguments are taken from the headers of the Message as
        described in RFC 2822 (a ValueError is raised if there is more than
        one set of 'Resent-' headers).  Regardless of the values of from_addr and
        to_addr, any Bcc field (or Resent-Bcc field, when the Message is a
        resent) of the Message object won't be transmitted.  The Message
        object is then serialized using email.generator.BytesGenerator and
        sendmail is called to transmit the message.  If the sender or any of
        the recipient addresses contain non-ASCII and the server advertises the
        SMTPUTF8 capability, the policy is cloned with utf8 set to True for the
        serialization, and SMTPUTF8 and BODY=8BITMIME are asserted on the send.
        If the server does not support SMTPUTF8, an SMTPNotSupported error is
        raised.  Otherwise the generator is called without modifying the
        policy.

        zResent-DateNr rGzResent-z0message has more than one 'Resent-' header blockZSender�FromrcSsg|]}|dk	r|�qS)Nr)r��frrrr��sz%SMTP.send_message.<locals>.<listcomp>�ToZBccZCccSsg|]}|d�qS)rGr)r��arrrr��sz
Resent-BccFr2r�z�One or more source or delivery addresses require internationalized email support, but the server does not advertise the required SMTPUTF8 capabilityT)�utf8)�policy�SMTPUTF8�
BODY=8BITMIMEz
)�linesep)r�r�)r�Zget_allrmrUr"r#Zgetaddresses�copyror_�UnicodeEncodeErrorr�r�io�BytesIO�	generatorZBytesGeneratorr�ZcloneZflatten�getvaluer�)rrr�r�r�r�ZresentZ
header_prefixZaddr_fieldsZmsg_copyZ
internationalZbytesmsg�gZflatmsgrrr�send_message|sJ





zSMTP.send_messagecCs<z|j}d|_|r|j�Wd|j}d|_|r6|j�XdS)z(Close the connection to the SMTP server.N)rHr;rX)rrHrXrrrr;�sz
SMTP.closecCs.|jd�}d|_|_i|_d|_|j�|S)zTerminate the SMTP session.�quitNF)rBr}rur7r~r;)r�resrrrr��s
z	SMTP.quit)rPrN)r )r )r )r )r )N)N)N)NNN)1rrrrrErHrur|r}r~�	SMTP_PORTrWr=�_GLOBAL_DEFAULT_TIMEOUTrr@rDrFrMrOr:rarcrYrBrtr1r�r�r�r�r�r�r�r.r�r�r�r�ryr�r�r�r�r�r�r�r;r�rrrrr�s^-
	
"
1



3
'
	

B
8gL
c@s8eZdZdZeZdddddejddfdd�Zdd�Z	dS)	�SMTP_SSLa� This is a subclass derived from SMTP that connects over an SSL
        encrypted socket (to use this class you need a socket module that was
        compiled with SSL support). If host is not specified, '' (the local
        host) is used. If port is omitted, the standard SMTP-over-SSL port
        (465) is used.  local_hostname and source_address have the same meaning
        as they do in the SMTP class.  keyfile and certfile are also optional -
        they can contain a PEM formatted private key and certificate chain file
        for the SSL connection. context also optional, can contain a
        SSLContext, and is an alternative to keyfile and certfile; If it is
        specified both keyfile and certfile must be None.

        r rNc	
Cs�|dk	r|dk	rtd��|dk	r0|dk	r0td��|dk	s@|dk	rVddl}	|	jdtd�||_||_|dkrxtj||d�}||_t	j
||||||�dS)Nz4context and keyfile arguments are mutually exclusivez5context and certfile arguments are mutually exclusiverzAkeyfile and certfile are deprecated, use a custom context insteadr�)r�r�)rUr�r�r�r�r�r�r�r�rr)
rr>r?r<r�r�r6r9r�r�rrrr�s zSMTP_SSL.__init__cCsD|jdkr|jd||f�tj||f||j�}|jj||jd�}|S)Nrzconnect:)r�)rErMr=rNr9r�r�r5)rr>r?r6Z
new_socketrrrrO	s

zSMTP_SSL._get_socket)
rrrr�
SMTP_SSL_PORTrWr=r�rrOrrrrr��sr�i�c@s0eZdZdZdZdeddfdd�Zdd	d
�ZdS)�LMTPa�LMTP - Local Mail Transfer Protocol

    The LMTP protocol, which is very similar to ESMTP, is heavily based
    on the standard SMTP client. It's common to use Unix sockets for
    LMTP, so our connect() method must support that as well as a regular
    host:port server.  local_hostname and source_address have the same
    meaning as they do in the SMTP class.  To specify a Unix socket,
    you must use an absolute path as the host, starting with a '/'.

    Authentication is supported, using the regular SMTP mechanism. When
    using a Unix socket, LMTP generally don't support or require any
    authentication, but your mileage might vary.Zlhlor NcCstj|||||d�dS)zInitialize a new instance.)r<r9N)rr)rr>r?r<r9rrrr)sz
LMTP.__init__rPrcCs�|ddkrtj||||d�Sy(tjtjtj�|_d|_|jj|�WnBtk
r�|jdkrl|j	d|�|jr||jj
�d|_�YnX|j�\}}|jdkr�|j	d|�||fS)z=Connect to the LMTP daemon, on either a Unix or a TCP socket.r�/)r9Nz
connect fail:zconnect:)rr:r=ZAF_UNIXZSOCK_STREAMrXrHrVrErMr;rY)rr>r?r9rrrrrr:/s"


zLMTP.connect)rPrN)rrrrr|�	LMTP_PORTrr:rrrrr�s
r��__main__cCs(tjj|d�tjj�tjj�j�S)Nz: )rK�stdout�write�flush�stdinrkr%)�promptrrrr�Is
r�r�r��,zEnter message, end with ^D:r zMessage length is %drPrG)@rr=r�r+Zemail.utilsr"Z
email.messageZemail.generatorr�r�r�rJrKZemail.base64mimerr��__all__r�r�r-r�rl�compile�Ir�rVrrrrrrrr	r
rrr*r
r/r0r��ImportErrorr�rr�rnr�r�rr�Zfromaddrr�ZtoaddrsrIrr�rkrqrmZserverrFr�r�rrrr�<module>!s�



	
)0
/



Name
Size
Permissions
Options
__future__.cpython-36.opt-1.pyc
4.071 KB
-rw-r--r--
__future__.cpython-36.opt-2.pyc
2.142 KB
-rw-r--r--
__future__.cpython-36.pyc
4.071 KB
-rw-r--r--
__phello__.foo.cpython-36.opt-1.pyc
0.118 KB
-rw-r--r--
__phello__.foo.cpython-36.opt-2.pyc
0.118 KB
-rw-r--r--
__phello__.foo.cpython-36.pyc
0.118 KB
-rw-r--r--
_bootlocale.cpython-36.opt-1.pyc
0.932 KB
-rw-r--r--
_bootlocale.cpython-36.opt-2.pyc
0.712 KB
-rw-r--r--
_bootlocale.cpython-36.pyc
0.959 KB
-rw-r--r--
_collections_abc.cpython-36.opt-1.pyc
28.124 KB
-rw-r--r--
_collections_abc.cpython-36.opt-2.pyc
23.093 KB
-rw-r--r--
_collections_abc.cpython-36.pyc
28.124 KB
-rw-r--r--
_compat_pickle.cpython-36.opt-1.pyc
6.357 KB
-rw-r--r--
_compat_pickle.cpython-36.opt-2.pyc
6.357 KB
-rw-r--r--
_compat_pickle.cpython-36.pyc
6.414 KB
-rw-r--r--
_compression.cpython-36.opt-1.pyc
4.01 KB
-rw-r--r--
_compression.cpython-36.opt-2.pyc
3.799 KB
-rw-r--r--
_compression.cpython-36.pyc
4.01 KB
-rw-r--r--
_dummy_thread.cpython-36.opt-1.pyc
4.739 KB
-rw-r--r--
_dummy_thread.cpython-36.opt-2.pyc
2.583 KB
-rw-r--r--
_dummy_thread.cpython-36.pyc
4.739 KB
-rw-r--r--
_markupbase.cpython-36.opt-1.pyc
7.641 KB
-rw-r--r--
_markupbase.cpython-36.opt-2.pyc
7.27 KB
-rw-r--r--
_markupbase.cpython-36.pyc
7.806 KB
-rw-r--r--
_osx_support.cpython-36.opt-1.pyc
9.48 KB
-rw-r--r--
_osx_support.cpython-36.opt-2.pyc
7.089 KB
-rw-r--r--
_osx_support.cpython-36.pyc
9.48 KB
-rw-r--r--
_pydecimal.cpython-36.opt-1.pyc
159.574 KB
-rw-r--r--
_pydecimal.cpython-36.opt-2.pyc
80.075 KB
-rw-r--r--
_pydecimal.cpython-36.pyc
159.574 KB
-rw-r--r--
_pyio.cpython-36.opt-1.pyc
69.697 KB
-rw-r--r--
_pyio.cpython-36.opt-2.pyc
47.827 KB
-rw-r--r--
_pyio.cpython-36.pyc
69.715 KB
-rw-r--r--
_sitebuiltins.cpython-36.opt-1.pyc
3.356 KB
-rw-r--r--
_sitebuiltins.cpython-36.opt-2.pyc
2.845 KB
-rw-r--r--
_sitebuiltins.cpython-36.pyc
3.356 KB
-rw-r--r--
_strptime.cpython-36.opt-1.pyc
15.591 KB
-rw-r--r--
_strptime.cpython-36.opt-2.pyc
11.948 KB
-rw-r--r--
_strptime.cpython-36.pyc
15.591 KB
-rw-r--r--
_sysconfigdata_dm_linux_x86_64-linux-gnu.cpython-36.opt-1.pyc
23.261 KB
-rw-r--r--
_sysconfigdata_dm_linux_x86_64-linux-gnu.cpython-36.opt-2.pyc
23.261 KB
-rw-r--r--
_sysconfigdata_dm_linux_x86_64-linux-gnu.cpython-36.pyc
23.261 KB
-rw-r--r--
_sysconfigdata_m_linux_x86_64-linux-gnu.cpython-36.opt-1.pyc
23.389 KB
-rw-r--r--
_sysconfigdata_m_linux_x86_64-linux-gnu.cpython-36.opt-2.pyc
23.389 KB
-rw-r--r--
_sysconfigdata_m_linux_x86_64-linux-gnu.cpython-36.pyc
23.389 KB
-rw-r--r--
_threading_local.cpython-36.opt-1.pyc
6.276 KB
-rw-r--r--
_threading_local.cpython-36.opt-2.pyc
3.039 KB
-rw-r--r--
_threading_local.cpython-36.pyc
6.276 KB
-rw-r--r--
_weakrefset.cpython-36.opt-1.pyc
7.646 KB
-rw-r--r--
_weakrefset.cpython-36.opt-2.pyc
7.646 KB
-rw-r--r--
_weakrefset.cpython-36.pyc
7.646 KB
-rw-r--r--
abc.cpython-36.opt-1.pyc
7.299 KB
-rw-r--r--
abc.cpython-36.opt-2.pyc
4.014 KB
-rw-r--r--
abc.cpython-36.pyc
7.341 KB
-rw-r--r--
aifc.cpython-36.opt-1.pyc
25.337 KB
-rw-r--r--
aifc.cpython-36.opt-2.pyc
20.254 KB
-rw-r--r--
aifc.cpython-36.pyc
25.337 KB
-rw-r--r--
antigravity.cpython-36.opt-1.pyc
0.763 KB
-rw-r--r--
antigravity.cpython-36.opt-2.pyc
0.622 KB
-rw-r--r--
antigravity.cpython-36.pyc
0.763 KB
-rw-r--r--
argparse.cpython-36.opt-1.pyc
58.65 KB
-rw-r--r--
argparse.cpython-36.opt-2.pyc
49.626 KB
-rw-r--r--
argparse.cpython-36.pyc
58.781 KB
-rw-r--r--
ast.cpython-36.opt-1.pyc
11.432 KB
-rw-r--r--
ast.cpython-36.opt-2.pyc
5.978 KB
-rw-r--r--
ast.cpython-36.pyc
11.432 KB
-rw-r--r--
asynchat.cpython-36.opt-1.pyc
6.657 KB
-rw-r--r--
asynchat.cpython-36.opt-2.pyc
5.313 KB
-rw-r--r--
asynchat.cpython-36.pyc
6.657 KB
-rw-r--r--
asyncore.cpython-36.opt-1.pyc
15.469 KB
-rw-r--r--
asyncore.cpython-36.opt-2.pyc
14.293 KB
-rw-r--r--
asyncore.cpython-36.pyc
15.469 KB
-rw-r--r--
base64.cpython-36.opt-1.pyc
16.507 KB
-rw-r--r--
base64.cpython-36.opt-2.pyc
11.04 KB
-rw-r--r--
base64.cpython-36.pyc
16.661 KB
-rw-r--r--
bdb.cpython-36.opt-1.pyc
16.636 KB
-rw-r--r--
bdb.cpython-36.opt-2.pyc
14.95 KB
-rw-r--r--
bdb.cpython-36.pyc
16.636 KB
-rw-r--r--
binhex.cpython-36.opt-1.pyc
11.805 KB
-rw-r--r--
binhex.cpython-36.opt-2.pyc
11.284 KB
-rw-r--r--
binhex.cpython-36.pyc
11.805 KB
-rw-r--r--
bisect.cpython-36.opt-1.pyc
2.615 KB
-rw-r--r--
bisect.cpython-36.opt-2.pyc
1.35 KB
-rw-r--r--
bisect.cpython-36.pyc
2.615 KB
-rw-r--r--
bz2.cpython-36.opt-1.pyc
11.02 KB
-rw-r--r--
bz2.cpython-36.opt-2.pyc
6.081 KB
-rw-r--r--
bz2.cpython-36.pyc
11.02 KB
-rw-r--r--
cProfile.cpython-36.opt-1.pyc
4.195 KB
-rw-r--r--
cProfile.cpython-36.opt-2.pyc
3.745 KB
-rw-r--r--
cProfile.cpython-36.pyc
4.195 KB
-rw-r--r--
calendar.cpython-36.opt-1.pyc
25.277 KB
-rw-r--r--
calendar.cpython-36.opt-2.pyc
20.856 KB
-rw-r--r--
calendar.cpython-36.pyc
25.277 KB
-rw-r--r--
cgi.cpython-36.opt-1.pyc
27.953 KB
-rw-r--r--
cgi.cpython-36.opt-2.pyc
19.055 KB
-rw-r--r--
cgi.cpython-36.pyc
27.953 KB
-rw-r--r--
cgitb.cpython-36.opt-1.pyc
9.846 KB
-rw-r--r--
cgitb.cpython-36.opt-2.pyc
8.284 KB
-rw-r--r--
cgitb.cpython-36.pyc
9.846 KB
-rw-r--r--
chunk.cpython-36.opt-1.pyc
4.787 KB
-rw-r--r--
chunk.cpython-36.opt-2.pyc
2.691 KB
-rw-r--r--
chunk.cpython-36.pyc
4.787 KB
-rw-r--r--
cmd.cpython-36.opt-1.pyc
12.282 KB
-rw-r--r--
cmd.cpython-36.opt-2.pyc
6.971 KB
-rw-r--r--
cmd.cpython-36.pyc
12.282 KB
-rw-r--r--
code.cpython-36.opt-1.pyc
9.607 KB
-rw-r--r--
code.cpython-36.opt-2.pyc
4.455 KB
-rw-r--r--
code.cpython-36.pyc
9.607 KB
-rw-r--r--
codecs.cpython-36.opt-1.pyc
33.107 KB
-rw-r--r--
codecs.cpython-36.opt-2.pyc
17.631 KB
-rw-r--r--
codecs.cpython-36.pyc
33.107 KB
-rw-r--r--
codeop.cpython-36.opt-1.pyc
6.125 KB
-rw-r--r--
codeop.cpython-36.opt-2.pyc
2.173 KB
-rw-r--r--
codeop.cpython-36.pyc
6.125 KB
-rw-r--r--
colorsys.cpython-36.opt-1.pyc
3.235 KB
-rw-r--r--
colorsys.cpython-36.opt-2.pyc
2.644 KB
-rw-r--r--
colorsys.cpython-36.pyc
3.235 KB
-rw-r--r--
compileall.cpython-36.opt-1.pyc
8.086 KB
-rw-r--r--
compileall.cpython-36.opt-2.pyc
5.998 KB
-rw-r--r--
compileall.cpython-36.pyc
8.086 KB
-rw-r--r--
configparser.cpython-36.opt-1.pyc
44.186 KB
-rw-r--r--
configparser.cpython-36.opt-2.pyc
29.842 KB
-rw-r--r--
configparser.cpython-36.pyc
44.186 KB
-rw-r--r--
contextlib.cpython-36.opt-1.pyc
10.898 KB
-rw-r--r--
contextlib.cpython-36.opt-2.pyc
7.631 KB
-rw-r--r--
contextlib.cpython-36.pyc
10.898 KB
-rw-r--r--
copy.cpython-36.opt-1.pyc
6.915 KB
-rw-r--r--
copy.cpython-36.opt-2.pyc
4.653 KB
-rw-r--r--
copy.cpython-36.pyc
6.915 KB
-rw-r--r--
copyreg.cpython-36.opt-1.pyc
4.112 KB
-rw-r--r--
copyreg.cpython-36.opt-2.pyc
3.327 KB
-rw-r--r--
copyreg.cpython-36.pyc
4.146 KB
-rw-r--r--
crypt.cpython-36.opt-1.pyc
2.191 KB
-rw-r--r--
crypt.cpython-36.opt-2.pyc
1.543 KB
-rw-r--r--
crypt.cpython-36.pyc
2.191 KB
-rw-r--r--
csv.cpython-36.opt-1.pyc
11.579 KB
-rw-r--r--
csv.cpython-36.opt-2.pyc
9.588 KB
-rw-r--r--
csv.cpython-36.pyc
11.579 KB
-rw-r--r--
datetime.cpython-36.opt-1.pyc
51.816 KB
-rw-r--r--
datetime.cpython-36.opt-2.pyc
43.174 KB
-rw-r--r--
datetime.cpython-36.pyc
53.235 KB
-rw-r--r--
decimal.cpython-36.opt-1.pyc
0.345 KB
-rw-r--r--
decimal.cpython-36.opt-2.pyc
0.345 KB
-rw-r--r--
decimal.cpython-36.pyc
0.345 KB
-rw-r--r--
difflib.cpython-36.opt-1.pyc
58.209 KB
-rw-r--r--
difflib.cpython-36.opt-2.pyc
24.449 KB
-rw-r--r--
difflib.cpython-36.pyc
58.246 KB
-rw-r--r--
dis.cpython-36.opt-1.pyc
13.851 KB
-rw-r--r--
dis.cpython-36.opt-2.pyc
10.401 KB
-rw-r--r--
dis.cpython-36.pyc
13.851 KB
-rw-r--r--
doctest.cpython-36.opt-1.pyc
73.58 KB
-rw-r--r--
doctest.cpython-36.opt-2.pyc
39.081 KB
-rw-r--r--
doctest.cpython-36.pyc
73.819 KB
-rw-r--r--
dummy_threading.cpython-36.opt-1.pyc
1.078 KB
-rw-r--r--
dummy_threading.cpython-36.opt-2.pyc
0.714 KB
-rw-r--r--
dummy_threading.cpython-36.pyc
1.078 KB
-rw-r--r--
enum.cpython-36.opt-1.pyc
22.905 KB
-rw-r--r--
enum.cpython-36.opt-2.pyc
18.713 KB
-rw-r--r--
enum.cpython-36.pyc
22.905 KB
-rw-r--r--
filecmp.cpython-36.opt-1.pyc
8.112 KB
-rw-r--r--
filecmp.cpython-36.opt-2.pyc
5.752 KB
-rw-r--r--
filecmp.cpython-36.pyc
8.112 KB
-rw-r--r--
fileinput.cpython-36.opt-1.pyc
12.846 KB
-rw-r--r--
fileinput.cpython-36.opt-2.pyc
7.437 KB
-rw-r--r--
fileinput.cpython-36.pyc
12.846 KB
-rw-r--r--
fnmatch.cpython-36.opt-1.pyc
2.809 KB
-rw-r--r--
fnmatch.cpython-36.opt-2.pyc
1.647 KB
-rw-r--r--
fnmatch.cpython-36.pyc
2.809 KB
-rw-r--r--
formatter.cpython-36.opt-1.pyc
17.169 KB
-rw-r--r--
formatter.cpython-36.opt-2.pyc
14.786 KB
-rw-r--r--
formatter.cpython-36.pyc
17.169 KB
-rw-r--r--
fractions.cpython-36.opt-1.pyc
17.996 KB
-rw-r--r--
fractions.cpython-36.opt-2.pyc
10.881 KB
-rw-r--r--
fractions.cpython-36.pyc
17.996 KB
-rw-r--r--
ftplib.cpython-36.opt-1.pyc
27.694 KB
-rw-r--r--
ftplib.cpython-36.opt-2.pyc
18.12 KB
-rw-r--r--
ftplib.cpython-36.pyc
27.694 KB
-rw-r--r--
functools.cpython-36.opt-1.pyc
23.5 KB
-rw-r--r--
functools.cpython-36.opt-2.pyc
17.669 KB
-rw-r--r--
functools.cpython-36.pyc
23.5 KB
-rw-r--r--
genericpath.cpython-36.opt-1.pyc
4.131 KB
-rw-r--r--
genericpath.cpython-36.opt-2.pyc
3.113 KB
-rw-r--r--
genericpath.cpython-36.pyc
4.131 KB
-rw-r--r--
getopt.cpython-36.opt-1.pyc
6.04 KB
-rw-r--r--
getopt.cpython-36.opt-2.pyc
3.546 KB
-rw-r--r--
getopt.cpython-36.pyc
6.073 KB
-rw-r--r--
getpass.cpython-36.opt-1.pyc
4.081 KB
-rw-r--r--
getpass.cpython-36.opt-2.pyc
2.924 KB
-rw-r--r--
getpass.cpython-36.pyc
4.081 KB
-rw-r--r--
gettext.cpython-36.opt-1.pyc
13.866 KB
-rw-r--r--
gettext.cpython-36.opt-2.pyc
13.191 KB
-rw-r--r--
gettext.cpython-36.pyc
13.866 KB
-rw-r--r--
glob.cpython-36.opt-1.pyc
4.094 KB
-rw-r--r--
glob.cpython-36.opt-2.pyc
3.254 KB
-rw-r--r--
glob.cpython-36.pyc
4.161 KB
-rw-r--r--
gzip.cpython-36.opt-1.pyc
15.848 KB
-rw-r--r--
gzip.cpython-36.opt-2.pyc
12.131 KB
-rw-r--r--
gzip.cpython-36.pyc
15.848 KB
-rw-r--r--
hashlib.cpython-36.opt-1.pyc
5.534 KB
-rw-r--r--
hashlib.cpython-36.opt-2.pyc
5.203 KB
-rw-r--r--
hashlib.cpython-36.pyc
5.534 KB
-rw-r--r--
heapq.cpython-36.opt-1.pyc
13.959 KB
-rw-r--r--
heapq.cpython-36.opt-2.pyc
11.039 KB
-rw-r--r--
heapq.cpython-36.pyc
13.959 KB
-rw-r--r--
hmac.cpython-36.opt-1.pyc
5.874 KB
-rw-r--r--
hmac.cpython-36.opt-2.pyc
4.105 KB
-rw-r--r--
hmac.cpython-36.pyc
5.874 KB
-rw-r--r--
imaplib.cpython-36.opt-1.pyc
38.985 KB
-rw-r--r--
imaplib.cpython-36.opt-2.pyc
27.181 KB
-rw-r--r--
imaplib.cpython-36.pyc
41.152 KB
-rw-r--r--
imghdr.cpython-36.opt-1.pyc
4.055 KB
-rw-r--r--
imghdr.cpython-36.opt-2.pyc
3.747 KB
-rw-r--r--
imghdr.cpython-36.pyc
4.055 KB
-rw-r--r--
imp.cpython-36.opt-1.pyc
9.471 KB
-rw-r--r--
imp.cpython-36.opt-2.pyc
7.124 KB
-rw-r--r--
imp.cpython-36.pyc
9.471 KB
-rw-r--r--
inspect.cpython-36.opt-1.pyc
77.579 KB
-rw-r--r--
inspect.cpython-36.opt-2.pyc
52.76 KB
-rw-r--r--
inspect.cpython-36.pyc
77.872 KB
-rw-r--r--
io.cpython-36.opt-1.pyc
3.31 KB
-rw-r--r--
io.cpython-36.opt-2.pyc
1.854 KB
-rw-r--r--
io.cpython-36.pyc
3.31 KB
-rw-r--r--
ipaddress.cpython-36.opt-1.pyc
63.539 KB
-rw-r--r--
ipaddress.cpython-36.opt-2.pyc
36.472 KB
-rw-r--r--
ipaddress.cpython-36.pyc
63.539 KB
-rw-r--r--
keyword.cpython-36.opt-1.pyc
1.726 KB
-rw-r--r--
keyword.cpython-36.opt-2.pyc
1.464 KB
-rw-r--r--
keyword.cpython-36.pyc
1.726 KB
-rw-r--r--
linecache.cpython-36.opt-1.pyc
3.691 KB
-rw-r--r--
linecache.cpython-36.opt-2.pyc
2.612 KB
-rw-r--r--
linecache.cpython-36.pyc
3.691 KB
-rw-r--r--
locale.cpython-36.opt-1.pyc
33.249 KB
-rw-r--r--
locale.cpython-36.opt-2.pyc
28.732 KB
-rw-r--r--
locale.cpython-36.pyc
33.249 KB
-rw-r--r--
lzma.cpython-36.opt-1.pyc
11.713 KB
-rw-r--r--
lzma.cpython-36.opt-2.pyc
5.667 KB
-rw-r--r--
lzma.cpython-36.pyc
11.713 KB
-rw-r--r--
macpath.cpython-36.opt-1.pyc
5.511 KB
-rw-r--r--
macpath.cpython-36.opt-2.pyc
4.274 KB
-rw-r--r--
macpath.cpython-36.pyc
5.511 KB
-rw-r--r--
macurl2path.cpython-36.opt-1.pyc
1.825 KB
-rw-r--r--
macurl2path.cpython-36.opt-2.pyc
1.454 KB
-rw-r--r--
macurl2path.cpython-36.pyc
1.825 KB
-rw-r--r--
mailbox.cpython-36.opt-1.pyc
62.18 KB
-rw-r--r--
mailbox.cpython-36.opt-2.pyc
53.247 KB
-rw-r--r--
mailbox.cpython-36.pyc
62.26 KB
-rw-r--r--
mailcap.cpython-36.opt-1.pyc
7.042 KB
-rw-r--r--
mailcap.cpython-36.opt-2.pyc
5.509 KB
-rw-r--r--
mailcap.cpython-36.pyc
7.042 KB
-rw-r--r--
mimetypes.cpython-36.opt-1.pyc
15.19 KB
-rw-r--r--
mimetypes.cpython-36.opt-2.pyc
9.333 KB
-rw-r--r--
mimetypes.cpython-36.pyc
15.19 KB
-rw-r--r--
modulefinder.cpython-36.opt-1.pyc
14.947 KB
-rw-r--r--
modulefinder.cpython-36.opt-2.pyc
14.126 KB
-rw-r--r--
modulefinder.cpython-36.pyc
15.008 KB
-rw-r--r--
netrc.cpython-36.opt-1.pyc
3.748 KB
-rw-r--r--
netrc.cpython-36.opt-2.pyc
3.516 KB
-rw-r--r--
netrc.cpython-36.pyc
3.748 KB
-rw-r--r--
nntplib.cpython-36.opt-1.pyc
32.99 KB
-rw-r--r--
nntplib.cpython-36.opt-2.pyc
20.743 KB
-rw-r--r--
nntplib.cpython-36.pyc
32.99 KB
-rw-r--r--
ntpath.cpython-36.opt-1.pyc
13.43 KB
-rw-r--r--
ntpath.cpython-36.opt-2.pyc
11.017 KB
-rw-r--r--
ntpath.cpython-36.pyc
13.43 KB
-rw-r--r--
nturl2path.cpython-36.opt-1.pyc
1.466 KB
-rw-r--r--
nturl2path.cpython-36.opt-2.pyc
1.155 KB
-rw-r--r--
nturl2path.cpython-36.pyc
1.466 KB
-rw-r--r--
numbers.cpython-36.opt-1.pyc
11.859 KB
-rw-r--r--
numbers.cpython-36.opt-2.pyc
7.991 KB
-rw-r--r--
numbers.cpython-36.pyc
11.859 KB
-rw-r--r--
opcode.cpython-36.opt-1.pyc
5.288 KB
-rw-r--r--
opcode.cpython-36.opt-2.pyc
5.151 KB
-rw-r--r--
opcode.cpython-36.pyc
5.288 KB
-rw-r--r--
operator.cpython-36.opt-1.pyc
13.589 KB
-rw-r--r--
operator.cpython-36.opt-2.pyc
11.188 KB
-rw-r--r--
operator.cpython-36.pyc
13.589 KB
-rw-r--r--
optparse.cpython-36.opt-1.pyc
46.863 KB
-rw-r--r--
optparse.cpython-36.opt-2.pyc
34.798 KB
-rw-r--r--
optparse.cpython-36.pyc
46.93 KB
-rw-r--r--
os.cpython-36.opt-1.pyc
28.936 KB
-rw-r--r--
os.cpython-36.opt-2.pyc
17.364 KB
-rw-r--r--
os.cpython-36.pyc
28.936 KB
-rw-r--r--
pathlib.cpython-36.opt-1.pyc
39.857 KB
-rw-r--r--
pathlib.cpython-36.opt-2.pyc
32.395 KB
-rw-r--r--
pathlib.cpython-36.pyc
39.857 KB
-rw-r--r--
pdb.cpython-36.opt-1.pyc
44.96 KB
-rw-r--r--
pdb.cpython-36.opt-2.pyc
31.223 KB
-rw-r--r--
pdb.cpython-36.pyc
45.016 KB
-rw-r--r--
pickle.cpython-36.opt-1.pyc
41.578 KB
-rw-r--r--
pickle.cpython-36.opt-2.pyc
36.902 KB
-rw-r--r--
pickle.cpython-36.pyc
41.692 KB
-rw-r--r--
pickletools.cpython-36.opt-1.pyc
63.644 KB
-rw-r--r--
pickletools.cpython-36.opt-2.pyc
55.107 KB
-rw-r--r--
pickletools.cpython-36.pyc
64.475 KB
-rw-r--r--
pipes.cpython-36.opt-1.pyc
7.627 KB
-rw-r--r--
pipes.cpython-36.opt-2.pyc
4.821 KB
-rw-r--r--
pipes.cpython-36.pyc
7.627 KB
-rw-r--r--
pkgutil.cpython-36.opt-1.pyc
15.882 KB
-rw-r--r--
pkgutil.cpython-36.opt-2.pyc
10.745 KB
-rw-r--r--
pkgutil.cpython-36.pyc
15.882 KB
-rw-r--r--
platform.cpython-36.opt-1.pyc
27.978 KB
-rw-r--r--
platform.cpython-36.opt-2.pyc
18.946 KB
-rw-r--r--
platform.cpython-36.pyc
27.978 KB
-rw-r--r--
plistlib.cpython-36.opt-1.pyc
27.017 KB
-rw-r--r--
plistlib.cpython-36.opt-2.pyc
23.839 KB
-rw-r--r--
plistlib.cpython-36.pyc
27.082 KB
-rw-r--r--
poplib.cpython-36.opt-1.pyc
13.019 KB
-rw-r--r--
poplib.cpython-36.opt-2.pyc
8.203 KB
-rw-r--r--
poplib.cpython-36.pyc
13.019 KB
-rw-r--r--
posixpath.cpython-36.opt-1.pyc
10.455 KB
-rw-r--r--
posixpath.cpython-36.opt-2.pyc
8.774 KB
-rw-r--r--
posixpath.cpython-36.pyc
10.455 KB
-rw-r--r--
pprint.cpython-36.opt-1.pyc
15.401 KB
-rw-r--r--
pprint.cpython-36.opt-2.pyc
13.386 KB
-rw-r--r--
pprint.cpython-36.pyc
15.455 KB
-rw-r--r--
profile.cpython-36.opt-1.pyc
13.376 KB
-rw-r--r--
profile.cpython-36.opt-2.pyc
10.464 KB
-rw-r--r--
profile.cpython-36.pyc
13.577 KB
-rw-r--r--
pstats.cpython-36.opt-1.pyc
21.347 KB
-rw-r--r--
pstats.cpython-36.opt-2.pyc
18.95 KB
-rw-r--r--
pstats.cpython-36.pyc
21.347 KB
-rw-r--r--
pty.cpython-36.opt-1.pyc
3.772 KB
-rw-r--r--
pty.cpython-36.opt-2.pyc
2.939 KB
-rw-r--r--
pty.cpython-36.pyc
3.772 KB
-rw-r--r--
py_compile.cpython-36.opt-1.pyc
6.393 KB
-rw-r--r--
py_compile.cpython-36.opt-2.pyc
2.873 KB
-rw-r--r--
py_compile.cpython-36.pyc
6.393 KB
-rw-r--r--
pyclbr.cpython-36.opt-1.pyc
8.171 KB
-rw-r--r--
pyclbr.cpython-36.opt-2.pyc
5.44 KB
-rw-r--r--
pyclbr.cpython-36.pyc
8.171 KB
-rw-r--r--
pydoc.cpython-36.opt-1.pyc
81.489 KB
-rw-r--r--
pydoc.cpython-36.opt-2.pyc
72.504 KB
-rw-r--r--
pydoc.cpython-36.pyc
81.541 KB
-rw-r--r--
queue.cpython-36.opt-1.pyc
8.552 KB
-rw-r--r--
queue.cpython-36.opt-2.pyc
4.851 KB
-rw-r--r--
queue.cpython-36.pyc
8.552 KB
-rw-r--r--
quopri.cpython-36.opt-1.pyc
5.469 KB
-rw-r--r--
quopri.cpython-36.opt-2.pyc
4.457 KB
-rw-r--r--
quopri.cpython-36.pyc
5.64 KB
-rw-r--r--
random.cpython-36.opt-1.pyc
18.879 KB
-rw-r--r--
random.cpython-36.opt-2.pyc
12.491 KB
-rw-r--r--
random.cpython-36.pyc
18.879 KB
-rw-r--r--
re.cpython-36.opt-1.pyc
13.73 KB
-rw-r--r--
re.cpython-36.opt-2.pyc
5.645 KB
-rw-r--r--
re.cpython-36.pyc
13.73 KB
-rw-r--r--
reprlib.cpython-36.opt-1.pyc
5.275 KB
-rw-r--r--
reprlib.cpython-36.opt-2.pyc
5.123 KB
-rw-r--r--
reprlib.cpython-36.pyc
5.275 KB
-rw-r--r--
rlcompleter.cpython-36.opt-1.pyc
5.646 KB
-rw-r--r--
rlcompleter.cpython-36.opt-2.pyc
3.046 KB
-rw-r--r--
rlcompleter.cpython-36.pyc
5.646 KB
-rw-r--r--
runpy.cpython-36.opt-1.pyc
7.797 KB
-rw-r--r--
runpy.cpython-36.opt-2.pyc
6.29 KB
-rw-r--r--
runpy.cpython-36.pyc
7.797 KB
-rw-r--r--
sched.cpython-36.opt-1.pyc
6.412 KB
-rw-r--r--
sched.cpython-36.opt-2.pyc
3.443 KB
-rw-r--r--
sched.cpython-36.pyc
6.412 KB
-rw-r--r--
secrets.cpython-36.opt-1.pyc
2.113 KB
-rw-r--r--
secrets.cpython-36.opt-2.pyc
1.08 KB
-rw-r--r--
secrets.cpython-36.pyc
2.113 KB
-rw-r--r--
selectors.cpython-36.opt-1.pyc
17.284 KB
-rw-r--r--
selectors.cpython-36.opt-2.pyc
13.401 KB
-rw-r--r--
selectors.cpython-36.pyc
17.284 KB
-rw-r--r--
shelve.cpython-36.opt-1.pyc
9.238 KB
-rw-r--r--
shelve.cpython-36.opt-2.pyc
5.183 KB
-rw-r--r--
shelve.cpython-36.pyc
9.238 KB
-rw-r--r--
shlex.cpython-36.opt-1.pyc
6.809 KB
-rw-r--r--
shlex.cpython-36.opt-2.pyc
6.309 KB
-rw-r--r--
shlex.cpython-36.pyc
6.809 KB
-rw-r--r--
shutil.cpython-36.opt-1.pyc
30.177 KB
-rw-r--r--
shutil.cpython-36.opt-2.pyc
19.575 KB
-rw-r--r--
shutil.cpython-36.pyc
30.177 KB
-rw-r--r--
signal.cpython-36.opt-1.pyc
2.458 KB
-rw-r--r--
signal.cpython-36.opt-2.pyc
2.235 KB
-rw-r--r--
signal.cpython-36.pyc
2.458 KB
-rw-r--r--
site.cpython-36.opt-1.pyc
15.978 KB
-rw-r--r--
site.cpython-36.opt-2.pyc
10.425 KB
-rw-r--r--
site.cpython-36.pyc
15.978 KB
-rw-r--r--
smtpd.cpython-36.opt-1.pyc
26.06 KB
-rw-r--r--
smtpd.cpython-36.opt-2.pyc
23.502 KB
-rw-r--r--
smtpd.cpython-36.pyc
26.06 KB
-rw-r--r--
smtplib.cpython-36.opt-1.pyc
34.454 KB
-rw-r--r--
smtplib.cpython-36.opt-2.pyc
18.427 KB
-rw-r--r--
smtplib.cpython-36.pyc
34.514 KB
-rw-r--r--
sndhdr.cpython-36.opt-1.pyc
6.753 KB
-rw-r--r--
sndhdr.cpython-36.opt-2.pyc
5.508 KB
-rw-r--r--
sndhdr.cpython-36.pyc
6.753 KB
-rw-r--r--
socket.cpython-36.opt-1.pyc
21.46 KB
-rw-r--r--
socket.cpython-36.opt-2.pyc
14.2 KB
-rw-r--r--
socket.cpython-36.pyc
21.499 KB
-rw-r--r--
socketserver.cpython-36.opt-1.pyc
23.684 KB
-rw-r--r--
socketserver.cpython-36.opt-2.pyc
13.015 KB
-rw-r--r--
socketserver.cpython-36.pyc
23.684 KB
-rw-r--r--
sre_compile.cpython-36.opt-1.pyc
9.902 KB
-rw-r--r--
sre_compile.cpython-36.opt-2.pyc
9.498 KB
-rw-r--r--
sre_compile.cpython-36.pyc
10.039 KB
-rw-r--r--
sre_constants.cpython-36.opt-1.pyc
5.834 KB
-rw-r--r--
sre_constants.cpython-36.opt-2.pyc
5.419 KB
-rw-r--r--
sre_constants.cpython-36.pyc
5.834 KB
-rw-r--r--
sre_parse.cpython-36.opt-1.pyc
19.837 KB
-rw-r--r--
sre_parse.cpython-36.opt-2.pyc
19.79 KB
-rw-r--r--
sre_parse.cpython-36.pyc
19.883 KB
-rw-r--r--
ssl.cpython-36.opt-1.pyc
35.578 KB
-rw-r--r--
ssl.cpython-36.opt-2.pyc
26.277 KB
-rw-r--r--
ssl.cpython-36.pyc
35.578 KB
-rw-r--r--
stat.cpython-36.opt-1.pyc
3.763 KB
-rw-r--r--
stat.cpython-36.opt-2.pyc
3.101 KB
-rw-r--r--
stat.cpython-36.pyc
3.763 KB
-rw-r--r--
statistics.cpython-36.opt-1.pyc
17.515 KB
-rw-r--r--
statistics.cpython-36.opt-2.pyc
7.078 KB
-rw-r--r--
statistics.cpython-36.pyc
17.75 KB
-rw-r--r--
string.cpython-36.opt-1.pyc
7.779 KB
-rw-r--r--
string.cpython-36.opt-2.pyc
6.699 KB
-rw-r--r--
string.cpython-36.pyc
7.779 KB
-rw-r--r--
stringprep.cpython-36.opt-1.pyc
9.74 KB
-rw-r--r--
stringprep.cpython-36.opt-2.pyc
9.525 KB
-rw-r--r--
stringprep.cpython-36.pyc
9.797 KB
-rw-r--r--
struct.cpython-36.opt-1.pyc
0.307 KB
-rw-r--r--
struct.cpython-36.opt-2.pyc
0.307 KB
-rw-r--r--
struct.cpython-36.pyc
0.307 KB
-rw-r--r--
subprocess.cpython-36.opt-1.pyc
34.557 KB
-rw-r--r--
subprocess.cpython-36.opt-2.pyc
24.094 KB
-rw-r--r--
subprocess.cpython-36.pyc
34.655 KB
-rw-r--r--
sunau.cpython-36.opt-1.pyc
16.543 KB
-rw-r--r--
sunau.cpython-36.opt-2.pyc
12.061 KB
-rw-r--r--
sunau.cpython-36.pyc
16.543 KB
-rw-r--r--
symbol.cpython-36.opt-1.pyc
2.46 KB
-rw-r--r--
symbol.cpython-36.opt-2.pyc
2.386 KB
-rw-r--r--
symbol.cpython-36.pyc
2.46 KB
-rw-r--r--
symtable.cpython-36.opt-1.pyc
10.081 KB
-rw-r--r--
symtable.cpython-36.opt-2.pyc
9.4 KB
-rw-r--r--
symtable.cpython-36.pyc
10.186 KB
-rw-r--r--
sysconfig.cpython-36.opt-1.pyc
15.528 KB
-rw-r--r--
sysconfig.cpython-36.opt-2.pyc
13.021 KB
-rw-r--r--
sysconfig.cpython-36.pyc
15.528 KB
-rw-r--r--
tabnanny.cpython-36.opt-1.pyc
6.813 KB
-rw-r--r--
tabnanny.cpython-36.opt-2.pyc
5.902 KB
-rw-r--r--
tabnanny.cpython-36.pyc
6.813 KB
-rw-r--r--
tarfile.cpython-36.opt-1.pyc
73.083 KB
-rw-r--r--
tarfile.cpython-36.opt-2.pyc
58.44 KB
-rw-r--r--
tarfile.cpython-36.pyc
73.083 KB
-rw-r--r--
telnetlib.cpython-36.opt-1.pyc
17.675 KB
-rw-r--r--
telnetlib.cpython-36.opt-2.pyc
10.341 KB
-rw-r--r--
telnetlib.cpython-36.pyc
17.675 KB
-rw-r--r--
tempfile.cpython-36.opt-1.pyc
22.72 KB
-rw-r--r--
tempfile.cpython-36.opt-2.pyc
16.399 KB
-rw-r--r--
tempfile.cpython-36.pyc
22.72 KB
-rw-r--r--
textwrap.cpython-36.opt-1.pyc
13.293 KB
-rw-r--r--
textwrap.cpython-36.opt-2.pyc
6.167 KB
-rw-r--r--
textwrap.cpython-36.pyc
13.365 KB
-rw-r--r--
this.cpython-36.opt-1.pyc
1.237 KB
-rw-r--r--
this.cpython-36.opt-2.pyc
1.237 KB
-rw-r--r--
this.cpython-36.pyc
1.237 KB
-rw-r--r--
threading.cpython-36.opt-1.pyc
35.9 KB
-rw-r--r--
threading.cpython-36.opt-2.pyc
20.235 KB
-rw-r--r--
threading.cpython-36.pyc
36.538 KB
-rw-r--r--
timeit.cpython-36.opt-1.pyc
11.333 KB
-rw-r--r--
timeit.cpython-36.opt-2.pyc
5.492 KB
-rw-r--r--
timeit.cpython-36.pyc
11.333 KB
-rw-r--r--
token.cpython-36.opt-1.pyc
3.244 KB
-rw-r--r--
token.cpython-36.opt-2.pyc
3.195 KB
-rw-r--r--
token.cpython-36.pyc
3.244 KB
-rw-r--r--
tokenize.cpython-36.opt-1.pyc
18.167 KB
-rw-r--r--
tokenize.cpython-36.opt-2.pyc
14.651 KB
-rw-r--r--
tokenize.cpython-36.pyc
18.212 KB
-rw-r--r--
trace.cpython-36.opt-1.pyc
19.04 KB
-rw-r--r--
trace.cpython-36.opt-2.pyc
16.107 KB
-rw-r--r--
trace.cpython-36.pyc
19.04 KB
-rw-r--r--
traceback.cpython-36.opt-1.pyc
19.188 KB
-rw-r--r--
traceback.cpython-36.opt-2.pyc
10.495 KB
-rw-r--r--
traceback.cpython-36.pyc
19.188 KB
-rw-r--r--
tracemalloc.cpython-36.opt-1.pyc
16.827 KB
-rw-r--r--
tracemalloc.cpython-36.opt-2.pyc
15.444 KB
-rw-r--r--
tracemalloc.cpython-36.pyc
16.827 KB
-rw-r--r--
tty.cpython-36.opt-1.pyc
1.049 KB
-rw-r--r--
tty.cpython-36.opt-2.pyc
0.95 KB
-rw-r--r--
tty.cpython-36.pyc
1.049 KB
-rw-r--r--
types.cpython-36.opt-1.pyc
8.011 KB
-rw-r--r--
types.cpython-36.opt-2.pyc
6.871 KB
-rw-r--r--
types.cpython-36.pyc
8.011 KB
-rw-r--r--
typing.cpython-36.opt-1.pyc
71.191 KB
-rw-r--r--
typing.cpython-36.opt-2.pyc
54.735 KB
-rw-r--r--
typing.cpython-36.pyc
71.59 KB
-rw-r--r--
uu.cpython-36.opt-1.pyc
3.418 KB
-rw-r--r--
uu.cpython-36.opt-2.pyc
3.205 KB
-rw-r--r--
uu.cpython-36.pyc
3.418 KB
-rw-r--r--
uuid.cpython-36.opt-1.pyc
20.324 KB
-rw-r--r--
uuid.cpython-36.opt-2.pyc
13.813 KB
-rw-r--r--
uuid.cpython-36.pyc
20.457 KB
-rw-r--r--
warnings.cpython-36.opt-1.pyc
12.371 KB
-rw-r--r--
warnings.cpython-36.opt-2.pyc
10.047 KB
-rw-r--r--
warnings.cpython-36.pyc
12.949 KB
-rw-r--r--
wave.cpython-36.opt-1.pyc
17.417 KB
-rw-r--r--
wave.cpython-36.opt-2.pyc
11.566 KB
-rw-r--r--
wave.cpython-36.pyc
17.468 KB
-rw-r--r--
weakref.cpython-36.opt-1.pyc
18.667 KB
-rw-r--r--
weakref.cpython-36.opt-2.pyc
15.444 KB
-rw-r--r--
weakref.cpython-36.pyc
18.696 KB
-rw-r--r--
webbrowser.cpython-36.opt-1.pyc
15.396 KB
-rw-r--r--
webbrowser.cpython-36.opt-2.pyc
13.571 KB
-rw-r--r--
webbrowser.cpython-36.pyc
15.429 KB
-rw-r--r--
xdrlib.cpython-36.opt-1.pyc
8.109 KB
-rw-r--r--
xdrlib.cpython-36.opt-2.pyc
7.636 KB
-rw-r--r--
xdrlib.cpython-36.pyc
8.109 KB
-rw-r--r--
zipapp.cpython-36.opt-1.pyc
5.406 KB
-rw-r--r--
zipapp.cpython-36.opt-2.pyc
4.258 KB
-rw-r--r--
zipapp.cpython-36.pyc
5.406 KB
-rw-r--r--
zipfile.cpython-36.opt-1.pyc
49.602 KB
-rw-r--r--
zipfile.cpython-36.opt-2.pyc
43.251 KB
-rw-r--r--
zipfile.cpython-36.pyc
49.668 KB
-rw-r--r--