/opt/alt/python39/lib64/python3.9/__pycache__
NameSizeModeActions
abc.cpython-39.opt-1.pyc57880644editdlrm
abc.cpython-39.opt-2.pyc32290644editdlrm
abc.cpython-39.pyc57880644editdlrm
aifc.cpython-39.opt-1.pyc252790644editdlrm
aifc.cpython-39.opt-2.pyc200720644editdlrm
aifc.cpython-39.pyc252790644editdlrm
antigravity.cpython-39.opt-1.pyc8320644editdlrm
antigravity.cpython-39.opt-2.pyc6880644editdlrm
antigravity.cpython-39.pyc8320644editdlrm
argparse.cpython-39.opt-1.pyc635560644editdlrm
argparse.cpython-39.opt-2.pyc541920644editdlrm
argparse.cpython-39.pyc636670644editdlrm
ast.cpython-39.opt-1.pyc523450644editdlrm
ast.cpython-39.opt-2.pyc438000644editdlrm
ast.cpython-39.pyc523960644editdlrm
asynchat.cpython-39.opt-1.pyc68350644editdlrm
asynchat.cpython-39.opt-2.pyc54600644editdlrm
asynchat.cpython-39.pyc68350644editdlrm
asyncore.cpython-39.opt-1.pyc160490644editdlrm
asyncore.cpython-39.opt-2.pyc148450644editdlrm
asyncore.cpython-39.pyc160490644editdlrm
base64.cpython-39.opt-1.pyc163360644editdlrm
base64.cpython-39.opt-2.pyc108160644editdlrm
base64.cpython-39.pyc164680644editdlrm
bdb.cpython-39.opt-1.pyc245530644editdlrm
bdb.cpython-39.opt-2.pyc155160644editdlrm
bdb.cpython-39.pyc245530644editdlrm
binhex.cpython-39.opt-1.pyc129780644editdlrm
binhex.cpython-39.opt-2.pyc124440644editdlrm
binhex.cpython-39.pyc129780644editdlrm
bisect.cpython-39.opt-1.pyc23630644editdlrm
bisect.cpython-39.opt-2.pyc10510644editdlrm
bisect.cpython-39.pyc23630644editdlrm
bz2.cpython-39.opt-1.pyc115580644editdlrm
bz2.cpython-39.opt-2.pyc65420644editdlrm
bz2.cpython-39.pyc115580644editdlrm
calendar.cpython-39.opt-1.pyc270440644editdlrm
calendar.cpython-39.opt-2.pyc224520644editdlrm
calendar.cpython-39.pyc270440644editdlrm
cgi.cpython-39.opt-1.pyc264950644editdlrm
cgi.cpython-39.opt-2.pyc180690644editdlrm
cgi.cpython-39.pyc264950644editdlrm
cgitb.cpython-39.opt-1.pyc101990644editdlrm
cgitb.cpython-39.opt-2.pyc86000644editdlrm
cgitb.cpython-39.pyc101990644editdlrm
chunk.cpython-39.opt-1.pyc48540644editdlrm
chunk.cpython-39.opt-2.pyc27100644editdlrm
chunk.cpython-39.pyc48540644editdlrm
cmd.cpython-39.opt-1.pyc126890644editdlrm
cmd.cpython-39.opt-2.pyc72640644editdlrm
cmd.cpython-39.pyc126890644editdlrm
code.cpython-39.opt-1.pyc99290644editdlrm
code.cpython-39.opt-2.pyc46580644editdlrm
code.cpython-39.pyc99290644editdlrm
codecs.cpython-39.opt-1.pyc339010644editdlrm
codecs.cpython-39.opt-2.pyc183290644editdlrm
codecs.cpython-39.pyc339010644editdlrm
codeop.cpython-39.opt-1.pyc64710644editdlrm
codeop.cpython-39.opt-2.pyc24110644editdlrm
codeop.cpython-39.pyc64710644editdlrm
colorsys.cpython-39.opt-1.pyc32730644editdlrm
colorsys.cpython-39.opt-2.pyc26670644editdlrm
colorsys.cpython-39.pyc32730644editdlrm
compileall.cpython-39.opt-1.pyc126020644editdlrm
compileall.cpython-39.opt-2.pyc93430644editdlrm
compileall.cpython-39.pyc126020644editdlrm
configparser.cpython-39.opt-1.pyc458820644editdlrm
configparser.cpython-39.opt-2.pyc307420644editdlrm
configparser.cpython-39.pyc458820644editdlrm
contextlib.cpython-39.opt-1.pyc195410644editdlrm
contextlib.cpython-39.opt-2.pyc139560644editdlrm
contextlib.cpython-39.pyc195510644editdlrm
contextvars.cpython-39.opt-1.pyc2580644editdlrm
contextvars.cpython-39.opt-2.pyc2580644editdlrm
contextvars.cpython-39.pyc2580644editdlrm
copy.cpython-39.opt-1.pyc69760644editdlrm
copy.cpython-39.opt-2.pyc46730644editdlrm
copy.cpython-39.pyc69760644editdlrm
copyreg.cpython-39.opt-1.pyc44240644editdlrm
copyreg.cpython-39.opt-2.pyc36220644editdlrm
copyreg.cpython-39.pyc44430644editdlrm
cProfile.cpython-39.opt-1.pyc51290644editdlrm
cProfile.cpython-39.opt-2.pyc46680644editdlrm
cProfile.cpython-39.pyc51290644editdlrm
crypt.cpython-39.opt-1.pyc35260644editdlrm
crypt.cpython-39.opt-2.pyc28640644editdlrm
crypt.cpython-39.pyc35260644editdlrm
csv.cpython-39.opt-1.pyc118620644editdlrm
csv.cpython-39.opt-2.pyc98210644editdlrm
csv.cpython-39.pyc118620644editdlrm
dataclasses.cpython-39.opt-1.pyc232300644editdlrm
dataclasses.cpython-39.opt-2.pyc197910644editdlrm
dataclasses.cpython-39.pyc232300644editdlrm
datetime.cpython-39.opt-1.pyc569870644editdlrm
datetime.cpython-39.opt-2.pyc485430644editdlrm
datetime.cpython-39.pyc581280644editdlrm
decimal.cpython-39.opt-1.pyc3720644editdlrm
decimal.cpython-39.opt-2.pyc3720644editdlrm
decimal.cpython-39.pyc3720644editdlrm
difflib.cpython-39.opt-1.pyc585710644editdlrm
difflib.cpython-39.opt-2.pyc250370644editdlrm
difflib.cpython-39.pyc585930644editdlrm
dis.cpython-39.opt-1.pyc158330644editdlrm
dis.cpython-39.opt-2.pyc120260644editdlrm
dis.cpython-39.pyc158330644editdlrm
doctest.cpython-39.opt-1.pyc758450644editdlrm
doctest.cpython-39.opt-2.pyc405390644editdlrm
doctest.cpython-39.pyc760520644editdlrm
enum.cpython-39.opt-1.pyc260330644editdlrm
enum.cpython-39.opt-2.pyc211110644editdlrm
enum.cpython-39.pyc260330644editdlrm
filecmp.cpython-39.opt-1.pyc86350644editdlrm
filecmp.cpython-39.opt-2.pyc60970644editdlrm
filecmp.cpython-39.pyc86350644editdlrm
fileinput.cpython-39.opt-1.pyc138030644editdlrm
fileinput.cpython-39.opt-2.pyc81950644editdlrm
fileinput.cpython-39.pyc138030644editdlrm
fnmatch.cpython-39.opt-1.pyc38830644editdlrm
fnmatch.cpython-39.opt-2.pyc26750644editdlrm
fnmatch.cpython-39.pyc39550644editdlrm
formatter.cpython-39.opt-1.pyc175520644editdlrm
formatter.cpython-39.opt-2.pyc151120644editdlrm
formatter.cpython-39.pyc175520644editdlrm
fractions.cpython-39.opt-1.pyc180620644editdlrm
fractions.cpython-39.opt-2.pyc108620644editdlrm
fractions.cpython-39.pyc180620644editdlrm
ftplib.cpython-39.opt-1.pyc287070644editdlrm
ftplib.cpython-39.opt-2.pyc185630644editdlrm
ftplib.cpython-39.pyc287070644editdlrm
functools.cpython-39.opt-1.pyc287360644editdlrm
functools.cpython-39.opt-2.pyc220150644editdlrm
functools.cpython-39.pyc287360644editdlrm
genericpath.cpython-39.opt-1.pyc45540644editdlrm
genericpath.cpython-39.opt-2.pyc33710644editdlrm
genericpath.cpython-39.pyc45540644editdlrm
getopt.cpython-39.opt-1.pyc62550644editdlrm
getopt.cpython-39.opt-2.pyc37010644editdlrm
getopt.cpython-39.pyc62730644editdlrm
getpass.cpython-39.opt-1.pyc42130644editdlrm
getpass.cpython-39.opt-2.pyc30270644editdlrm
getpass.cpython-39.pyc42130644editdlrm
gettext.cpython-39.opt-1.pyc180860644editdlrm
gettext.cpython-39.opt-2.pyc173950644editdlrm
gettext.cpython-39.pyc180860644editdlrm
glob.cpython-39.opt-1.pyc45180644editdlrm
glob.cpython-39.opt-2.pyc36580644editdlrm
glob.cpython-39.pyc45570644editdlrm
graphlib.cpython-39.opt-1.pyc75350644editdlrm
graphlib.cpython-39.opt-2.pyc40990644editdlrm
graphlib.cpython-39.pyc75810644editdlrm
gzip.cpython-39.opt-1.pyc185070644editdlrm
gzip.cpython-39.opt-2.pyc146400644editdlrm
gzip.cpython-39.pyc185070644editdlrm
hashlib.cpython-39.opt-1.pyc67040644editdlrm
hashlib.cpython-39.opt-2.pyc61360644editdlrm
hashlib.cpython-39.pyc67040644editdlrm
heapq.cpython-39.opt-1.pyc140530644editdlrm
heapq.cpython-39.opt-2.pyc110370644editdlrm
heapq.cpython-39.pyc140530644editdlrm
hmac.cpython-39.opt-1.pyc68130644editdlrm
hmac.cpython-39.opt-2.pyc42960644editdlrm
hmac.cpython-39.pyc68130644editdlrm
imaplib.cpython-39.opt-1.pyc403980644editdlrm
imaplib.cpython-39.opt-2.pyc277150644editdlrm
imaplib.cpython-39.pyc425790644editdlrm
imghdr.cpython-39.opt-1.pyc41530644editdlrm
imghdr.cpython-39.opt-2.pyc38380644editdlrm
imghdr.cpython-39.pyc41530644editdlrm
imp.cpython-39.opt-1.pyc98640644editdlrm
imp.cpython-39.opt-2.pyc74990644editdlrm
imp.cpython-39.pyc98640644editdlrm
inspect.cpython-39.opt-1.pyc812430644editdlrm
inspect.cpython-39.opt-2.pyc561150644editdlrm
inspect.cpython-39.pyc814850644editdlrm
io.cpython-39.opt-1.pyc34210644editdlrm
io.cpython-39.opt-2.pyc19320644editdlrm
io.cpython-39.pyc34210644editdlrm
ipaddress.cpython-39.opt-1.pyc656950644editdlrm
ipaddress.cpython-39.opt-2.pyc397150644editdlrm
ipaddress.cpython-39.pyc656950644editdlrm
keyword.cpython-39.opt-1.pyc9290644editdlrm
keyword.cpython-39.opt-2.pyc5250644editdlrm
keyword.cpython-39.pyc9290644editdlrm
linecache.cpython-39.opt-1.pyc40410644editdlrm
linecache.cpython-39.opt-2.pyc28080644editdlrm
linecache.cpython-39.pyc40410644editdlrm
locale.cpython-39.opt-1.pyc347090644editdlrm
locale.cpython-39.opt-2.pyc300910644editdlrm
locale.cpython-39.pyc347090644editdlrm
lzma.cpython-39.opt-1.pyc121070644editdlrm
lzma.cpython-39.opt-2.pyc59090644editdlrm
lzma.cpython-39.pyc121070644editdlrm
mailbox.cpython-39.opt-1.pyc605590644editdlrm
mailbox.cpython-39.opt-2.pyc539550644editdlrm
mailbox.cpython-39.pyc606130644editdlrm
mailcap.cpython-39.opt-1.pyc72520644editdlrm
mailcap.cpython-39.opt-2.pyc56820644editdlrm
mailcap.cpython-39.pyc72520644editdlrm
mimetypes.cpython-39.opt-1.pyc160280644editdlrm
mimetypes.cpython-39.opt-2.pyc100130644editdlrm
mimetypes.cpython-39.pyc160280644editdlrm
modulefinder.cpython-39.opt-1.pyc160950644editdlrm
modulefinder.cpython-39.opt-2.pyc151860644editdlrm
modulefinder.cpython-39.pyc161410644editdlrm
netrc.cpython-39.opt-1.pyc37960644editdlrm
netrc.cpython-39.opt-2.pyc35580644editdlrm
netrc.cpython-39.pyc37960644editdlrm
nntplib.cpython-39.opt-1.pyc317760644editdlrm
nntplib.cpython-39.opt-2.pyc201760644editdlrm
nntplib.cpython-39.pyc317760644editdlrm
ntpath.cpython-39.opt-1.pyc148250644editdlrm
ntpath.cpython-39.opt-2.pyc127740644editdlrm
ntpath.cpython-39.pyc148250644editdlrm
nturl2path.cpython-39.opt-1.pyc17590644editdlrm
nturl2path.cpython-39.opt-2.pyc13400644editdlrm
nturl2path.cpython-39.pyc17590644editdlrm
numbers.cpython-39.opt-1.pyc123320644editdlrm
numbers.cpython-39.opt-2.pyc83750644editdlrm
numbers.cpython-39.pyc123320644editdlrm
opcode.cpython-39.opt-1.pyc52360644editdlrm
opcode.cpython-39.opt-2.pyc50950644editdlrm
opcode.cpython-39.pyc52360644editdlrm
operator.cpython-39.opt-1.pyc137970644editdlrm
operator.cpython-39.opt-2.pyc114080644editdlrm
operator.cpython-39.pyc137970644editdlrm
optparse.cpython-39.opt-1.pyc479010644editdlrm
optparse.cpython-39.opt-2.pyc355860644editdlrm
optparse.cpython-39.pyc479560644editdlrm
os.cpython-39.opt-1.pyc316430644editdlrm
os.cpython-39.opt-2.pyc194530644editdlrm
os.cpython-39.pyc316590644editdlrm
pathlib.cpython-39.opt-1.pyc435410644editdlrm
pathlib.cpython-39.opt-2.pyc346810644editdlrm
pathlib.cpython-39.pyc435410644editdlrm
pdb.cpython-39.opt-1.pyc475600644editdlrm
pdb.cpython-39.opt-2.pyc334890644editdlrm
pdb.cpython-39.pyc475990644editdlrm
pickle.cpython-39.opt-1.pyc470250644editdlrm
pickle.cpython-39.opt-2.pyc411550644editdlrm
pickle.cpython-39.pyc471110644editdlrm
pickletools.cpython-39.opt-1.pyc663060644editdlrm
pickletools.cpython-39.opt-2.pyc572130644editdlrm
pickletools.cpython-39.pyc671200644editdlrm
pipes.cpython-39.opt-1.pyc78080644editdlrm
pipes.cpython-39.opt-2.pyc49410644editdlrm
pipes.cpython-39.pyc78080644editdlrm
pkgutil.cpython-39.opt-1.pyc185790644editdlrm
pkgutil.cpython-39.opt-2.pyc118800644editdlrm
pkgutil.cpython-39.pyc185790644editdlrm
platform.cpython-39.opt-1.pyc264290644editdlrm
platform.cpython-39.opt-2.pyc183610644editdlrm
platform.cpython-39.pyc264290644editdlrm
plistlib.cpython-39.opt-1.pyc235090644editdlrm
plistlib.cpython-39.opt-2.pyc211500644editdlrm
plistlib.cpython-39.pyc235600644editdlrm
poplib.cpython-39.opt-1.pyc136700644editdlrm
poplib.cpython-39.opt-2.pyc87400644editdlrm
poplib.cpython-39.pyc136700644editdlrm
posixpath.cpython-39.opt-1.pyc106220644editdlrm
posixpath.cpython-39.opt-2.pyc89070644editdlrm
posixpath.cpython-39.pyc106220644editdlrm
pprint.cpython-39.opt-1.pyc168100644editdlrm
pprint.cpython-39.opt-2.pyc146530644editdlrm
pprint.cpython-39.pyc168430644editdlrm
profile.cpython-39.opt-1.pyc142360644editdlrm
profile.cpython-39.opt-2.pyc112580644editdlrm
profile.cpython-39.pyc144240644editdlrm
pstats.cpython-39.opt-1.pyc237650644editdlrm
pstats.cpython-39.opt-2.pyc208560644editdlrm
pstats.cpython-39.pyc237650644editdlrm
pty.cpython-39.opt-1.pyc39690644editdlrm
pty.cpython-39.opt-2.pyc31240644editdlrm
pty.cpython-39.pyc39690644editdlrm
pyclbr.cpython-39.opt-1.pyc104620644editdlrm
pyclbr.cpython-39.opt-2.pyc68610644editdlrm
pyclbr.cpython-39.pyc104620644editdlrm
pydoc.cpython-39.opt-1.pyc854410644editdlrm
pydoc.cpython-39.opt-2.pyc755590644editdlrm
pydoc.cpython-39.pyc854730644editdlrm
py_compile.cpython-39.opt-1.pyc74090644editdlrm
py_compile.cpython-39.opt-2.pyc36710644editdlrm
py_compile.cpython-39.pyc74090644editdlrm
queue.cpython-39.opt-1.pyc108890644editdlrm
queue.cpython-39.opt-2.pyc65390644editdlrm
queue.cpython-39.pyc108890644editdlrm
quopri.cpython-39.opt-1.pyc56160644editdlrm
quopri.cpython-39.opt-2.pyc45800644editdlrm
quopri.cpython-39.pyc57600644editdlrm
random.cpython-39.opt-1.pyc220560644editdlrm
random.cpython-39.opt-2.pyc146090644editdlrm
random.cpython-39.pyc220560644editdlrm
re.cpython-39.opt-1.pyc143750644editdlrm
re.cpython-39.opt-2.pyc60370644editdlrm
re.cpython-39.pyc143750644editdlrm
reprlib.cpython-39.opt-1.pyc53200644editdlrm
reprlib.cpython-39.opt-2.pyc51640644editdlrm
reprlib.cpython-39.pyc53200644editdlrm
rlcompleter.cpython-39.opt-1.pyc58190644editdlrm
rlcompleter.cpython-39.opt-2.pyc31560644editdlrm
rlcompleter.cpython-39.pyc58190644editdlrm
runpy.cpython-39.opt-1.pyc93980644editdlrm
runpy.cpython-39.opt-2.pyc69560644editdlrm
runpy.cpython-39.pyc93980644editdlrm
sched.cpython-39.opt-1.pyc66460644editdlrm
sched.cpython-39.opt-2.pyc36180644editdlrm
sched.cpython-39.pyc66460644editdlrm
secrets.cpython-39.opt-1.pyc21930644editdlrm
secrets.cpython-39.opt-2.pyc11350644editdlrm
secrets.cpython-39.pyc21930644editdlrm
selectors.cpython-39.opt-1.pyc172580644editdlrm
selectors.cpython-39.opt-2.pyc131490644editdlrm
selectors.cpython-39.pyc172580644editdlrm
shelve.cpython-39.opt-1.pyc95570644editdlrm
shelve.cpython-39.opt-2.pyc54060644editdlrm
shelve.cpython-39.pyc95570644editdlrm
shlex.cpython-39.opt-1.pyc77470644editdlrm
shlex.cpython-39.opt-2.pyc71890644editdlrm
shlex.cpython-39.pyc77470644editdlrm
shutil.cpython-39.opt-1.pyc385100644editdlrm
shutil.cpython-39.opt-2.pyc264420644editdlrm
shutil.cpython-39.pyc385100644editdlrm
signal.cpython-39.opt-1.pyc30190644editdlrm
signal.cpython-39.opt-2.pyc27950644editdlrm
signal.cpython-39.pyc30190644editdlrm
site.cpython-39.opt-1.pyc170230644editdlrm
site.cpython-39.opt-2.pyc114870644editdlrm
site.cpython-39.pyc170230644editdlrm
smtpd.cpython-39.opt-1.pyc265370644editdlrm
smtpd.cpython-39.opt-2.pyc239170644editdlrm
smtpd.cpython-39.pyc265370644editdlrm
smtplib.cpython-39.opt-1.pyc358980644editdlrm
smtplib.cpython-39.opt-2.pyc195360644editdlrm
smtplib.cpython-39.pyc359430644editdlrm
sndhdr.cpython-39.opt-1.pyc70060644editdlrm
sndhdr.cpython-39.opt-2.pyc57310644editdlrm
sndhdr.cpython-39.pyc70060644editdlrm
socket.cpython-39.opt-1.pyc289890644editdlrm
socket.cpython-39.opt-2.pyc204500644editdlrm
socket.cpython-39.pyc290130644editdlrm
socketserver.cpython-39.opt-1.pyc255280644editdlrm
socketserver.cpython-39.opt-2.pyc148120644editdlrm
socketserver.cpython-39.pyc255280644editdlrm
sre_compile.cpython-39.opt-1.pyc149720644editdlrm
sre_compile.cpython-39.opt-2.pyc145580644editdlrm
sre_compile.cpython-39.pyc151670644editdlrm
sre_constants.cpython-39.opt-1.pyc63490644editdlrm
sre_constants.cpython-39.opt-2.pyc59240644editdlrm
sre_constants.cpython-39.pyc63490644editdlrm
sre_parse.cpython-39.opt-1.pyc217850644editdlrm
sre_parse.cpython-39.opt-2.pyc217370644editdlrm
sre_parse.cpython-39.pyc218220644editdlrm
ssl.cpython-39.opt-1.pyc450700644editdlrm
ssl.cpython-39.opt-2.pyc340860644editdlrm
ssl.cpython-39.pyc450700644editdlrm
stat.cpython-39.opt-1.pyc43850644editdlrm
stat.cpython-39.opt-2.pyc36020644editdlrm
stat.cpython-39.pyc43850644editdlrm
statistics.cpython-39.opt-1.pyc317970644editdlrm
statistics.cpython-39.opt-2.pyc159240644editdlrm
statistics.cpython-39.pyc319910644editdlrm
string.cpython-39.opt-1.pyc71780644editdlrm
string.cpython-39.opt-2.pyc60720644editdlrm
string.cpython-39.pyc71780644editdlrm
stringprep.cpython-39.opt-1.pyc99590644editdlrm
stringprep.cpython-39.opt-2.pyc97410644editdlrm
stringprep.cpython-39.pyc99990644editdlrm
struct.cpython-39.opt-1.pyc3190644editdlrm
struct.cpython-39.opt-2.pyc3190644editdlrm
struct.cpython-39.pyc3190644editdlrm
subprocess.cpython-39.opt-1.pyc443230644editdlrm
subprocess.cpython-39.opt-2.pyc322850644editdlrm
subprocess.cpython-39.pyc443990644editdlrm
sunau.cpython-39.opt-1.pyc168300644editdlrm
sunau.cpython-39.opt-2.pyc122400644editdlrm
sunau.cpython-39.pyc168300644editdlrm
symbol.cpython-39.opt-1.pyc25920644editdlrm
symbol.cpython-39.opt-2.pyc25160644editdlrm
symbol.cpython-39.pyc25920644editdlrm
symtable.cpython-39.opt-1.pyc111010644editdlrm
symtable.cpython-39.opt-2.pyc103720644editdlrm
symtable.cpython-39.pyc111790644editdlrm
sysconfig.cpython-39.opt-1.pyc160800644editdlrm
sysconfig.cpython-39.opt-2.pyc137020644editdlrm
sysconfig.cpython-39.pyc160800644editdlrm
tabnanny.cpython-39.opt-1.pyc70780644editdlrm
tabnanny.cpython-39.opt-2.pyc61450644editdlrm
tabnanny.cpython-39.pyc70780644editdlrm
tarfile.cpython-39.opt-1.pyc728220644editdlrm
tarfile.cpython-39.opt-2.pyc575640644editdlrm
tarfile.cpython-39.pyc728370644editdlrm
telnetlib.cpython-39.opt-1.pyc183440644editdlrm
telnetlib.cpython-39.opt-2.pyc108420644editdlrm
telnetlib.cpython-39.pyc183440644editdlrm
tempfile.cpython-39.opt-1.pyc236690644editdlrm
tempfile.cpython-39.opt-2.pyc171430644editdlrm
tempfile.cpython-39.pyc236690644editdlrm
textwrap.cpython-39.opt-1.pyc134760644editdlrm
textwrap.cpython-39.opt-2.pyc62670644editdlrm
textwrap.cpython-39.pyc135340644editdlrm
this.cpython-39.opt-1.pyc12720644editdlrm
this.cpython-39.opt-2.pyc12720644editdlrm
this.cpython-39.pyc12720644editdlrm
threading.cpython-39.opt-1.pyc417290644editdlrm
threading.cpython-39.opt-2.pyc245420644editdlrm
threading.cpython-39.pyc421940644editdlrm
timeit.cpython-39.opt-1.pyc117690644editdlrm
timeit.cpython-39.opt-2.pyc59150644editdlrm
timeit.cpython-39.pyc117690644editdlrm
token.cpython-39.opt-1.pyc25090644editdlrm
token.cpython-39.opt-2.pyc24760644editdlrm
token.cpython-39.pyc25090644editdlrm
tokenize.cpython-39.opt-1.pyc171500644editdlrm
tokenize.cpython-39.opt-2.pyc133860644editdlrm
tokenize.cpython-39.pyc171780644editdlrm
trace.cpython-39.opt-1.pyc197720644editdlrm
trace.cpython-39.opt-2.pyc167570644editdlrm
trace.cpython-39.pyc197720644editdlrm
traceback.cpython-39.opt-1.pyc204530644editdlrm
traceback.cpython-39.opt-2.pyc115000644editdlrm
traceback.cpython-39.pyc204530644editdlrm
tracemalloc.cpython-39.opt-1.pyc179480644editdlrm
tracemalloc.cpython-39.opt-2.pyc165350644editdlrm
tracemalloc.cpython-39.pyc179480644editdlrm
tty.cpython-39.opt-1.pyc10910644editdlrm
tty.cpython-39.opt-2.pyc9820644editdlrm
tty.cpython-39.pyc10910644editdlrm
types.cpython-39.opt-1.pyc92490644editdlrm
types.cpython-39.opt-2.pyc80270644editdlrm
types.cpython-39.pyc92490644editdlrm
typing.cpython-39.opt-1.pyc718180644editdlrm
typing.cpython-39.opt-2.pyc505700644editdlrm
typing.cpython-39.pyc719480644editdlrm
uu.cpython-39.opt-1.pyc38600644editdlrm
uu.cpython-39.opt-2.pyc36160644editdlrm
uu.cpython-39.pyc38600644editdlrm
uuid.cpython-39.opt-1.pyc224100644editdlrm
uuid.cpython-39.opt-2.pyc146970644editdlrm
uuid.cpython-39.pyc225230644editdlrm
warnings.cpython-39.opt-1.pyc131790644editdlrm
warnings.cpython-39.opt-2.pyc109040644editdlrm
warnings.cpython-39.pyc136180644editdlrm
wave.cpython-39.opt-1.pyc178570644editdlrm
wave.cpython-39.opt-2.pyc118650644editdlrm
wave.cpython-39.pyc178860644editdlrm
weakref.cpython-39.opt-1.pyc202840644editdlrm
weakref.cpython-39.opt-2.pyc169990644editdlrm
weakref.cpython-39.pyc202980644editdlrm
webbrowser.cpython-39.opt-1.pyc171300644editdlrm
webbrowser.cpython-39.opt-2.pyc147200644editdlrm
webbrowser.cpython-39.pyc171470644editdlrm
xdrlib.cpython-39.opt-1.pyc82560644editdlrm
xdrlib.cpython-39.opt-2.pyc77710644editdlrm
xdrlib.cpython-39.pyc82560644editdlrm
zipapp.cpython-39.opt-1.pyc59980644editdlrm
zipapp.cpython-39.opt-2.pyc48220644editdlrm
zipapp.cpython-39.pyc59980644editdlrm
zipfile.cpython-39.opt-1.pyc595630644editdlrm
zipfile.cpython-39.opt-2.pyc505750644editdlrm
zipfile.cpython-39.pyc595840644editdlrm
zipimport.cpython-39.opt-1.pyc171720644editdlrm
zipimport.cpython-39.opt-2.pyc136540644editdlrm
zipimport.cpython-39.pyc172500644editdlrm
_aix_support.cpython-39.opt-1.pyc30590644editdlrm
_aix_support.cpython-39.opt-2.pyc17040644editdlrm
_aix_support.cpython-39.pyc30590644editdlrm
_bootlocale.cpython-39.opt-1.pyc12300644editdlrm
_bootlocale.cpython-39.opt-2.pyc10050644editdlrm
_bootlocale.cpython-39.pyc12400644editdlrm
_bootsubprocess.cpython-39.opt-1.pyc22580644editdlrm
_bootsubprocess.cpython-39.opt-2.pyc20290644editdlrm
_bootsubprocess.cpython-39.pyc22580644editdlrm
_collections_abc.cpython-39.opt-1.pyc317440644editdlrm
_collections_abc.cpython-39.opt-2.pyc262540644editdlrm
_collections_abc.cpython-39.pyc317440644editdlrm
_compat_pickle.cpython-39.opt-1.pyc54480644editdlrm
_compat_pickle.cpython-39.opt-2.pyc54480644editdlrm
_compat_pickle.cpython-39.pyc55010644editdlrm
_compression.cpython-39.opt-1.pyc42110644editdlrm
_compression.cpython-39.opt-2.pyc39970644editdlrm
_compression.cpython-39.pyc42110644editdlrm
_markupbase.cpython-39.opt-1.pyc76390644editdlrm
_markupbase.cpython-39.opt-2.pyc72610644editdlrm
_markupbase.cpython-39.pyc77900644editdlrm
_osx_support.cpython-39.opt-1.pyc115950644editdlrm
_osx_support.cpython-39.opt-2.pyc89050644editdlrm
_osx_support.cpython-39.pyc115950644editdlrm
_pydecimal.cpython-39.opt-1.pyc1606260644editdlrm
_pydecimal.cpython-39.opt-2.pyc790090644editdlrm
_pydecimal.cpython-39.pyc1606260644editdlrm
_pyio.cpython-39.opt-1.pyc743800644editdlrm
_pyio.cpython-39.opt-2.pyc515830644editdlrm
_pyio.cpython-39.pyc744000644editdlrm
_py_abc.cpython-39.opt-1.pyc46470644editdlrm
_py_abc.cpython-39.opt-2.pyc34340644editdlrm
_py_abc.cpython-39.pyc46690644editdlrm
_sitebuiltins.cpython-39.opt-1.pyc35140644editdlrm
_sitebuiltins.cpython-39.opt-2.pyc29900644editdlrm
_sitebuiltins.cpython-39.pyc35140644editdlrm
_strptime.cpython-39.opt-1.pyc160280644editdlrm
_strptime.cpython-39.opt-2.pyc123000644editdlrm
_strptime.cpython-39.pyc160280644editdlrm
_sysconfigdata_d_linux_x86_64-linux-gnu.cpython-39.opt-1.pyc269610644editdlrm
_sysconfigdata_d_linux_x86_64-linux-gnu.cpython-39.opt-2.pyc269610644editdlrm
_sysconfigdata_d_linux_x86_64-linux-gnu.cpython-39.pyc269610644editdlrm
_sysconfigdata__linux_x86_64-linux-gnu.cpython-39.opt-1.pyc270070644editdlrm
_sysconfigdata__linux_x86_64-linux-gnu.cpython-39.opt-2.pyc270070644editdlrm
_sysconfigdata__linux_x86_64-linux-gnu.cpython-39.pyc270070644editdlrm
_threading_local.cpython-39.opt-1.pyc65190644editdlrm
_threading_local.cpython-39.opt-2.pyc31990644editdlrm
_threading_local.cpython-39.pyc65190644editdlrm
_weakrefset.cpython-39.opt-1.pyc77370644editdlrm
_weakrefset.cpython-39.opt-2.pyc77370644editdlrm
_weakrefset.cpython-39.pyc77370644editdlrm
__future__.cpython-39.opt-1.pyc41390644editdlrm
__future__.cpython-39.opt-2.pyc21670644editdlrm
__future__.cpython-39.pyc41390644editdlrm
__phello__.foo.cpython-39.opt-1.pyc1420644editdlrm
__phello__.foo.cpython-39.opt-2.pyc1420644editdlrm
__phello__.foo.cpython-39.pyc1420644editdlrm
Edit: /opt/alt/python39/lib64/python3.9/__pycache__/imaplib.cpython-39.opt-1.pyc (40398B)
a XC?hØ×ã+@sœdZdZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z m Z m Z ddlmZzddlZdZWney–dZYn0gd¢Zd ZdZd Zd Zd Zd ZdZdddddddddddddddddddddddddddddddddddddddddddœ*Ze d¡Ze d¡Ze d¡Ze dej ¡Z!e d¡Z"e d¡Z#e d¡Z$e dej ¡Z%dZ&dZ'Gdd„dƒZ(er¤Gdd „d e(ƒZ)e *d ¡Gd!d"„d"e(ƒZ+Gd#d$„d$ƒZ,d% -d&¡Z.d'd(„e/e.d)d…ƒDƒZ0d*d+„Z1d,d-„Z2d.d/„Z3d0d1„Z4e5d2kr˜ddl6Z6ddl7Z7ze6 6ej8d)d…d3¡\Z9Z:Wn0e6j;ynZ<zd4\Z9Z:WYdZ<[Zd5kr”e?e<ƒZne>d6krxed?d@dAdBddeDffdCdDdEdFdGdHdIdJdKfZEdLdMdNdOdAdddeDffdJdPfZFdQdR„ZGze=r`e+e=ƒZHne(e@ƒZHeHjIdSkr€eEd)d…ZEeH JdTeHjK¡eH JdUeHjLf¡eED]\ZMZ:eGeMe:ƒq¦eGdVdWƒD].*))?s.*FLAGS \((?P[^\)]*)\)sÕ.*INTERNALDATE "(?P[ 0123][0-9])-(?P[A-Z][a-z][a-z])-(?P[0-9][0-9][0-9][0-9]) (?P[0-9][0-9]):(?P[0-9][0-9]):(?P[0-9][0-9]) (?P[-+])(?P[0-9][0-9])(?P[0-9][0-9])"s.*{(?P\d+)}$s \r\n|\r|\ns%\[(?P[A-Z-]+)( (?P.*))?\]s$\* (?P[A-Z-]+)( (?P.*))?s3\* (?P\d+) (?P[A-Z-]+)( (?P.*))?c@sšeZdZdZGdd„deƒZGdd„deƒZGdd„deƒZded fd d „Z d d „Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zded fdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Z d:d;„Z!dd?„Z#d@dA„Z$dBdC„Z%dDdE„Z&dFdG„Z'dHdI„Z(dždLdM„Z)dNdO„Z*dPdQ„Z+dRdS„Z,dTdU„Z-dŸdVdW„Z.dXdY„Z/dZd[„Z0d\d]„Z1d^d_„Z2d`da„Z3dbdc„Z4ddde„Z5d dhdi„Z6djdk„Z7dldm„Z8dndo„Z9dpdq„Z:d¡drds„Z;dtdu„Zdzd{„Z?d|d}„Z@d~d„ZAd€d„ZBd‚dƒ„ZCd„d…„ZDd†d‡„ZEdˆd‰„ZFdŠd‹„ZGdŒd„ZHdŽd„ZId¢dd‘„ZJd’d“„ZKd”d•„ZLd–d—„ZMd˜d™„ZNdšd›„ZOdœd„ZPd S)£raªIMAP4 client class. Instantiate with: IMAP4([host[, port[, timeout=None]]]) host - host's name (default: localhost); port - port number (default: standard IMAP4 port). timeout - socket timeout (default: None) If timeout is not given or is None, the global default socket timeout is used All IMAP4rev1 commands are supported by methods of the same name (in lower-case). All arguments to commands are converted to strings, except for AUTHENTICATE, and the last argument to APPEND which is passed as an IMAP4 literal. If necessary (the string contains any non-printing characters or white-space and isn't enclosed with either parentheses or double quotes) each string is quoted. However, the 'password' argument to the LOGIN command is always quoted. If you want to avoid having an argument string quoted (eg: the 'flags' argument to STORE) then enclose the string in parentheses (eg: "(\Deleted)"). Each command returns a tuple: (type, [data, ...]) where 'type' is usually 'OK' or 'NO', and 'data' is either the text from the tagged response, or untagged results from command. Each 'data' is either a string, or a tuple. If a tuple, then the first part is the header of the response, and the second part contains the data (ie: 'literal' value). Errors raise the exception class .error(""). IMAP4 server errors raise .abort(""), which is a sub-class of 'error'. Mailbox status changes from READ-WRITE to READ-ONLY raise the exception class .readonly(""), which is a sub-class of 'abort'. "error" exceptions imply a program error. "abort" exceptions imply the connection should be reset, and the command re-tried. "readonly" exceptions imply the command should be re-tried. Note: to use this module, you must read the RFCs pertaining to the IMAP4 protocol, as the semantics of the arguments to each IMAP4 command are left to the invoker, not to mention the results. Also, most IMAP servers implement a sub-set of the commands available here. c@s eZdZdS)z IMAP4.errorN©Ú__name__Ú __module__Ú __qualname__©r>r>ú,/opt/alt/python39/lib64/python3.9/imaplib.pyÚerror»ór@c@s eZdZdS)z IMAP4.abortNr:r>r>r>r?Úabort¼rArBc@s eZdZdS)zIMAP4.readonlyNr:r>r>r>r?Úreadonly½rArCÚNc Cs’t|_d|_d|_i|_i|_d|_d|_d|_d|_ |  ¡|  |||¡z |  ¡Wn4t yŒz | ¡Wnty„Yn0‚Yn0dS)NrrDFr)ÚDebugÚdebugÚstateÚliteralÚtagged_commandsÚuntagged_responsesÚcontinuation_responseÚ is_readonlyÚtagnumÚ_tls_establishedÚ _mode_asciiÚopenÚ_connectÚ ExceptionÚshutdownÚOSError©ÚselfÚhostÚportÚtimeoutr>r>r?Ú__init__¿s&    zIMAP4.__init__cCs0d|_d|_t ttj¡|_t ttj¡|_dS)NFÚascii) Ú utf8_enabledÚ _encodingÚreÚcompileÚ_LiteralÚASCIIÚLiteralÚ_Untagged_statusÚUntagged_status©rVr>r>r?rOØszIMAP4._mode_asciicCs(d|_d|_t t¡|_t t¡|_dS)NTúutf-8)r\r]r^r_r`rbrcrdrer>r>r?Ú _mode_utf8ßs zIMAP4._mode_utf8cCsœtt dd¡ƒ|_t d|jdtj¡|_|  ¡|_ d|j vrHd|_ nd|j vrZd|_ n |  |j ¡‚| ¡tD]}||jvr‚qr||_dS|  d ¡‚dS) Niiÿÿs(?Ps"\d+) (?P[A-Z]+) (?P.*)ZPREAUTHrÚOKrzserver not IMAP4 compliant)r ÚrandomZrandintÚtagprer^r_raÚtagreÚ __version__Ú _get_responseZwelcomerJrGr@Ú_get_capabilitiesÚAllowedVersionsÚ capabilitiesÚPROTOCOL_VERSION)rVÚversionr>r>r?rQæs*ÿþþ     zIMAP4._connectcCs&|tvrt|| ¡ƒStd|ƒ‚dS)NzUnknown IMAP4 command: '%s')ÚCommandsÚgetattrÚlowerÚAttributeError)rVÚattrr>r>r?Ú __getattr__szIMAP4.__getattr__cCs|S©Nr>rer>r>r?Ú __enter__szIMAP4.__enter__cGs2|jdkrdSz | ¡Wnty,Yn0dS)Nr)rGÚlogoutrT)rVÚargsr>r>r?Ú__exit__s    zIMAP4.__exit__cCs`|dur|stdƒ‚|jsdn|j}t d||j|j¡||jf}|durVt ||¡St |¡S)Nz0Non-blocking socket (timeout=0) is not supportedz imaplib.open)Ú ValueErrorrWÚsysÚauditrXÚsocketZcreate_connection)rVrYrWZaddressr>r>r?Ú_create_socket&s   zIMAP4._create_socketcCs*||_||_| |¡|_|j d¡|_dS)zÑSetup connection to remote server on "host:port" (default: localhost:standard IMAP4 port). This connection will be used by the routines: read, readline, send, shutdown. ÚrbN)rWrXr‚ÚsockÚmakefileÚfilerUr>r>r?rP3s z IMAP4.opencCsVt|tƒ}|j |¡}||krRt|ƒ|krRt|||ƒ}||j |¡7}||7}q|S©zRead 'size' bytes from remote.)ÚminÚ_SAFE_BUF_SIZEr†ÚreadÚlen)rVÚsizeZcursizeÚdataÚdeltar>r>r?rŠ?s   z IMAP4.readcCs.|j td¡}t|ƒtkr*| dt¡‚|S)úRead line from remote.ézgot more than %d bytes)r†ÚreadlineÚ_MAXLINEr‹r@©rVÚliner>r>r?r‘Js zIMAP4.readlinecCst d||¡|j |¡dS)úSend data to remote.z imaplib.sendN)rr€r„Zsendall©rVrr>r>r?ÚsendRsz IMAP4.sendc Cs€|j ¡zdz|j tj¡WnBty`}z*|jtjkrLt |ddƒdkrL‚WYd}~n d}~00W|j ¡n |j ¡0dS)ú Close I/O established in "open".Zwinerrorri&'N) r†Úcloser„rSrZ SHUT_RDWRrTÚerrnoZENOTCONNrt)rVÚexcr>r>r?rSXs  ÿzIMAP4.shutdowncCs|jS)zfReturn socket instance used to connect to IMAP4 server. socket = .socket() )r„rer>r>r?rhsz IMAP4.socketcCsBd}| ddg|¡\}}|dr(||fS| ¡\}}| |||¡S)aReturn most recent 'RECENT' responses if any exist, else prompt server for an update using the 'NOOP' command. (typ, [data]) = .recent() 'data' is None if no new messages, else list of RECENT responses, most recent last. ZRECENTrhNéÿÿÿÿ)Ú_untagged_responseÚnoop©rVÚnameÚtypÚdatr>r>r?Úrecentts  z IMAP4.recentcCs| |dg| ¡¡S)z¥Return data for response 'code' if received, or None. Old value for response 'code' is cleared. (code, [data]) = .response(code) N)rÚupper)rVÚcoder>r>r?Úresponse…szIMAP4.responsecCsxd}|s d}|r.|d|dfdkr2d|}nd}|r@t|ƒ}nd}t t|¡}|jrbd|d }||_| ||||¡S) z°Append message to named mailbox. (typ, [data]) = .append(mailbox, flags, date_time, message) All args except `message' can be None. rÚINBOXrrœ©ú(ú)ú(%s)NsUTF8 (ó))r ÚMapCRLFÚsubÚCRLFr\rHÚ_simple_command)rVÚmailboxÚflagsÚ date_timeÚmessager rHr>r>r?Úappend“s    z IMAP4.appendcCsP| ¡}t|ƒj|_| d|¡\}}|dkrB| |d dd¡¡‚d|_||fS)asAuthenticate command - requires response processing. 'mechanism' specifies which authentication mechanism is to be used - it must appear in .capabilities in the form AUTH=. 'authobject' must be a callable object: data = authobject(response) It will be called to process server continuation responses; the response argument it is passed will be a bytes. It should return bytes data that will be base64 encoded and sent to the server. It should return None if the client abort response '*' should be sent instead. rrhrœrfÚreplacer)r¤Ú_AuthenticatorÚprocessrHr°r@ÚdecoderG)rVZ mechanismZ authobjectÚmechr¡r¢r>r>r?Ú authenticate­s zIMAP4.authenticatecCs d}| |¡\}}| |||¡S)zT(typ, [data]) = .capability() Fetch capabilities list from server.r©r°rrŸr>r>r?Ú capabilityÊszIMAP4.capabilitycCs | d¡S)zRCheckpoint mailbox on server. (typ, [data]) = .check() r©r°rer>r>r?ÚcheckÓsz IMAP4.checkcCs*z| d¡\}}Wd|_nd|_0||fS)zÌClose currently selected mailbox. Deleted messages are removed from writable mailbox. This is the recommended command before 'LOGOUT'. (typ, [data]) = .close() rr©r°rG©rVr¡r¢r>r>r?r™Ûsz IMAP4.closecCs| d||¡S)z‚Copy 'message_set' messages onto end of 'new_mailbox'. (typ, [data]) = .copy(message_set, new_mailbox) rr¾)rVÚ message_setZ new_mailboxr>r>r?Úcopyêsz IMAP4.copycCs | d|¡S)zPCreate new mailbox. (typ, [data]) = .create(mailbox) rr¾©rVr±r>r>r?Úcreateòsz IMAP4.createcCs | d|¡S)zPDelete old mailbox. (typ, [data]) = .delete(mailbox) rr¾rÄr>r>r?Údeleteúsz IMAP4.deletecCs| d||¡S)z€Delete the ACLs (remove any rights) set for who on mailbox. (typ, [data]) = .deleteacl(mailbox, who) rr¾)rVr±Úwhor>r>r?Ú deleteaclszIMAP4.deleteaclcCsHd|jvrt d¡‚| d|¡\}}|dkr@d| ¡vr@| ¡||fS)zlSend an RFC5161 enable string to the server. (typ, [data]) = .enable(capability) rzServer does not support ENABLErhz UTF8=ACCEPT)rprr@r°r¤rg)rVr½r¡rr>r>r?Úenables   z IMAP4.enablecCs d}| |¡\}}| |||¡S)z÷Permanently remove deleted items from selected mailbox. Generates 'EXPUNGE' response for each deleted message. (typ, [data]) = .expunge() 'data' is list of 'EXPUNGE'd message numbers in order received. rr¼rŸr>r>r?Úexpunges z IMAP4.expungecCs$d}| |||¡\}}| |||¡S)a#Fetch (parts of) messages. (typ, [data, ...]) = .fetch(message_set, message_parts) 'message_parts' should be a string of selected parts enclosed in parentheses, eg: "(UID BODY[TEXT])". 'data' are tuples of message part envelope and data. rr¼)rVrÂZ message_partsr r¡r¢r>r>r?Úfetch"s z IMAP4.fetchcCs| d|¡\}}| ||d¡S)zXGet the ACLs for a mailbox. (typ, [data]) = .getacl(mailbox) rZACLr¼©rVr±r¡r¢r>r>r?Úgetacl1sz IMAP4.getaclcCs"| d|||¡\}}| ||d¡S)za(typ, [data]) = .getannotation(mailbox, entry, attribute) Retrieve ANNOTATIONs.r Ú ANNOTATIONr¼)rVr±ÚentryZ attributer¡r¢r>r>r?Ú getannotation:szIMAP4.getannotationcCs| d|¡\}}| ||d¡S)zªGet the quota root's resource usage and limits. Part of the IMAP4 QUOTA extension defined in rfc2087. (typ, [data]) = .getquota(root) r!ÚQUOTAr¼)rVÚrootr¡r¢r>r>r?ÚgetquotaBszIMAP4.getquotacCs@| d|¡\}}| ||d¡\}}| ||d¡\}}|||gfS)zœGet the list of quota roots for the named mailbox. (typ, [[QUOTAROOT responses...], [QUOTA responses]]) = .getquotaroot(mailbox) r"rÑZ QUOTAROOTr¼)rVr±r¡r¢ZquotaZ quotarootr>r>r?Ú getquotarootMszIMAP4.getquotarootú""Ú*cCs$d}| |||¡\}}| |||¡S)z«List mailbox names in directory matching pattern. (typ, [data]) = .list(directory='""', pattern='*') 'data' is list of LIST responses. r$r¼©rVZ directoryÚpatternr r¡r¢r>r>r?ÚlistXsz IMAP4.listcCs<| d|| |¡¡\}}|dkr.| |d¡‚d|_||fS)z”Identify client using plaintext password. (typ, [data]) = .login(user, password) NB: 'password' will be quoted. r%rhrœr)r°Ú_quoter@rG)rVÚuserÚpasswordr¡r¢r>r>r?Úloginds z IMAP4.logincCs|||_|_| d|j¡S)zr Force use of CRAM-MD5 authentication. (typ, [data]) = .login_cram_md5(user, password) zCRAM-MD5)rÛrÜr»Ú_CRAM_MD5_AUTH)rVrÛrÜr>r>r?Úlogin_cram_md5rszIMAP4.login_cram_md5cCsBddl}t|jtƒr |j d¡n|j}|jd| ||d¡ ¡S)z1 Authobject to use with CRAM-MD5 authentication. rNrfú Zmd5)ÚhmacÚ isinstancerÜÚstrÚencoderÛZHMACZ hexdigest)rVZ challengeráÚpwdr>r>r?rÞ{s ÿzIMAP4._CRAM_MD5_AUTHcCs$d|_| d¡\}}| ¡||fS)z|Shutdown connection to server. (typ, [data]) = .logout() Returns server 'BYE' response. r)rGr°rSrÁr>r>r?r{ƒsz IMAP4.logoutcCs$d}| |||¡\}}| |||¡S)zÐList 'subscribed' mailbox names in directory matching pattern. (typ, [data, ...]) = .lsub(directory='""', pattern='*') 'data' are tuples of message part envelope and data. r&r¼r×r>r>r?Úlsubsz IMAP4.lsubcCs| d|¡\}}| ||d¡S)zƒShow my ACLs for a mailbox (i.e. the rights that I have on mailbox). (typ, [data]) = .myrights(mailbox) r#r¼rÌr>r>r?Úmyrights›szIMAP4.myrightscCs d}| |¡\}}| |||¡S)zb Returns IMAP namespaces ala rfc2342 (typ, [data, ...]) = .namespace() r'r¼rŸr>r>r?Ú namespace£szIMAP4.namespacecCs | d¡S)zFSend NOOP command. (typ, [data]) = .noop() r(r¾rer>r>r?rž­sz IMAP4.noopcCs(d}| |||||¡\}}| ||d¡S)zÂFetch truncated part of a message. (typ, [data, ...]) = .partial(message_num, message_part, start, length) 'data' is tuple of message part envelope and data. r)rr¼)rVZ message_numZ message_partÚstartZlengthr r¡r¢r>r>r?Úpartial¸sz IMAP4.partialcCsd}| d|¡S)z³Assume authentication as "user". Allows an authorised administrator to proxy into any user's mailbox. (typ, [data]) = .proxyauth(user) r*r¾)rVrÛr r>r>r?Ú proxyauthÄs zIMAP4.proxyauthcCs| d||¡S)zkRename old mailbox name to new. (typ, [data]) = .rename(oldmailbox, newmailbox) r+r¾)rVZ oldmailboxZ newmailboxr>r>r?ÚrenameÑsz IMAP4.renamecGsXd}|r4|jrt d¡‚|j|d|g|¢RŽ\}}n|j|g|¢RŽ\}}| |||¡S)zéSearch mailbox for matching messages. (typ, [data]) = .search(charset, criterion, ...) 'data' is space separated list of matching message numbers. If UTF8 is enabled, charset MUST be None. r,z'Non-None charset not valid in UTF8 modeÚCHARSET)r\rr@r°r)rVÚcharsetZcriteriar r¡r¢r>r>r?ÚsearchÙs z IMAP4.searchr§FcCsvi|_||_|rd}nd}| ||¡\}}|dkr@d|_||fSd|_d|jvrb|sb| d|¡‚||j dd g¡fS) atSelect a mailbox. Flush all untagged responses. (typ, [data]) = .select(mailbox='INBOX', readonly=False) 'data' is count of messages in mailbox ('EXISTS' response). Mandated responses are ('FLAGS', 'EXISTS', 'RECENT', 'UIDVALIDITY'), so other responses should be obtained via .response('FLAGS') etc. rr-rhrrú READ-ONLYz%s is not writableÚEXISTSN)rJrLr°rGrCÚget)rVr±rCr r¡r¢r>r>r?Úselectës  ÿz IMAP4.selectcCs| d|||¡S)zZSet a mailbox acl. (typ, [data]) = .setacl(mailbox, who, what) r.r¾)rVr±rÇZwhatr>r>r?Úsetacl sz IMAP4.setaclcGs$|jdg|¢RŽ\}}| ||d¡S)z_(typ, [data]) = .setannotation(mailbox[, entry, attribute]+) Set ANNOTATIONs.r/rÎr¼)rVr|r¡r¢r>r>r?Ú setannotationszIMAP4.setannotationcCs | d||¡\}}| ||d¡S)ziSet the quota root's resource limits. (typ, [data]) = .setquota(root, limits) r0rÑr¼)rVrÒZlimitsr¡r¢r>r>r?ÚsetquotaszIMAP4.setquotacGsHd}|d|dfdkr d|}|j|||g|¢RŽ\}}| |||¡S)zIMAP4rev1 extension SORT command. (typ, [data]) = .sort(sort_criteria, charset, search_criteria, ...) r1rrœr¨r«r¼)rVZ sort_criteriarîÚsearch_criteriar r¡r¢r>r>r?Úsort$s z IMAP4.sortcCs¦d}ts| d¡‚|jr"| d¡‚||jvr6| d¡‚|durFt ¡}| |¡\}}|dkrŽ|j|j |j d|_ |j   d¡|_ d|_|  ¡n | d ¡‚| |||¡S) Nr2zSSL support missingzTLS session already establishedzTLS not supported by serverrh©Zserver_hostnamerƒTzCouldn't establish TLS session)ÚHAVE_SSLr@rNrBrpÚsslÚ_create_stdlib_contextr°Ú wrap_socketr„rWr…r†rnr)rVÚ ssl_contextr r¡r¢r>r>r?Ústarttls2s&    ÿ  zIMAP4.starttlscCs$d}| |||¡\}}| |||¡S)zpRequest named status conditions for mailbox. (typ, [data]) = .status(mailbox, names) r3r¼)rVr±Únamesr r¡r¢r>r>r?ÚstatusIsz IMAP4.statuscCs>|d|dfdkrd|}| d|||¡\}}| ||d¡S)zAlters flag dispositions for messages in mailbox. (typ, [data]) = .store(message_set, command, flags) rrœr¨r«r4rr¼)rVrÂÚcommandr²r¡r¢r>r>r?ÚstoreUsz IMAP4.storecCs | d|¡S)zYSubscribe to new mailbox. (typ, [data]) = .subscribe(mailbox) r5r¾rÄr>r>r?Ú subscribe`szIMAP4.subscribecGs,d}|j|||g|¢RŽ\}}| |||¡S)z‹IMAPrev1 extension THREAD command. (type, [data]) = .thread(threading_algorithm, charset, search_criteria, ...) r6r¼)rVZthreading_algorithmrîr÷r r¡r¢r>r>r?Úthreadhsz IMAP4.threadc Gsˆ| ¡}|tvr| d|¡‚|jt|vrL| d||jd t|¡f¡‚d}|j||g|¢RŽ\}}|dvrv|}nd}| |||¡S)zåExecute "command arg ..." with messages identified by UID, rather than message number. (typ, [data]) = .uid(command, arg1, arg2, ...) Returns response appropriate to 'command'. zUnknown IMAP4 UID command: %sú9command %s illegal in state %s, only allowed in states %sú, r7)r,r1r6r)r¤rsr@rGÚjoinr°r)rVrr|r r¡r¢r>r>r?Úuidrs ÿþz IMAP4.uidcCs | d|¡S)z_Unsubscribe from old mailbox. (typ, [data]) = .unsubscribe(mailbox) r8r¾rÄr>r>r?Ú unsubscribe‹szIMAP4.unsubscribecCs*z| d¡\}}Wd|_nd|_0||fS)aMFree server's resources associated with the selected mailbox and returns the server to the authenticated state. This command performs the same actions as CLOSE, except that no messages are permanently removed from the currently selected mailbox. (typ, [data]) = .unselect() r9rrÀ)rVr¡rr>r>r?Úunselect“s zIMAP4.unselectcGs.| ¡}|tvr|jft|<|j|g|¢RŽS)aAllow simple extension commands notified by server in CAPABILITY response. Assumes command is legal in current state. (typ, [data]) = .xatom(name, arg, ...) Returns response appropriate to extension command `name'. )r¤rsrGr°©rVr r|r>r>r?Úxatom£s  z IMAP4.xatomcCs8|dur d}|j}||vr*|| |¡n |g||<dS©NrA)rJr‹rµ)rVr¡r¢Zurr>r>r?Ú_append_untagged¹s zIMAP4._append_untaggedcCs,|j d¡}|r(| |d |jd¡¡‚dS)NÚBYErœr¶)rJròrBr¹r])rVÚbyer>r>r?Ú _check_byeÇs zIMAP4._check_byec Gsî|jt|vr4d|_| d||jd t|¡f¡‚dD]}||jvr8|j|=q8d|jvrj|jsj| d¡‚| ¡}t ||j ƒ}|d|}|D]0}|durœqŽt |t ƒr²t ||j ƒ}|d|}qŽ|j}|dur d|_t |ƒt |jƒurî|}nd}|t dt|ƒ|j ƒ}z| |t¡Wn4tyP} z| d| ¡‚WYd} ~ n d} ~ 00|dur`|S| ¡r~|j|r`|Sq`|rŽ||jƒ}z| |¡| t¡Wn4tyÚ} z| d| ¡‚WYd} ~ n d} ~ 00|s`qêq`|S) Nrr©rhÚNOÚBADrðz#mailbox status changed to READ-ONLYó z {%s}zsocket error: %s)rGrsrHr@rrJrLrCÚ_new_tagÚbytesr]rârãÚtypeÚ_commandr‹r—r¯rTrBrmrIrK) rVr r|r¡ÚtagrÚargrHZ literatorÚvalr>r>r?rÍs` ÿþ   ÿ       $     $zIMAP4._commandc CsÊ|dk}|s| ¡z|j||d\}}Wnn|jyb}z| d||f¡‚WYd}~n@d}~0|jy˜}z| d||f¡‚WYd}~n d}~00|s¦| ¡|dkrÂ| d|||f¡‚||fS)Nr)Ú expect_byezcommand: %s => %srz%s command error: %s %s)rÚ_get_tagged_responserBr@)rVr rr{r¡rrr>r>r?Ú_command_completes&(zIMAP4._command_completecCsJ| ¡\}}|dgkr | d¡‚t|d|jƒ}| ¡}t| ¡ƒ|_dS)Nz"no CAPABILITY response from serverrœ)r½r@rãr]r¤ÚtupleÚsplitrprÁr>r>r?rn,s    zIMAP4._get_capabilitiescCs®| ¡}| |j|¡rp|j d¡}||jvr:| d|¡‚|j d¡}t||jƒ}|j d¡}||gf|j|<nöd}| t |¡sš| |j |¡rš|j d¡}|jdurÐ| t |¡rÂ|j d¡|_ dS| d|¡‚|j d¡}t||jƒ}|j d¡}|durd}|r|d|}| |j |¡rZt|j d ¡ƒ}| |¡}| |||f¡| ¡}q| ||¡|d vrª| t|¡rª|j d¡}t||jƒ}| ||j d¡¡|S) Nrzunexpected tagged response: %rrrZdata2zunexpected response: %rrArrŒr)Ú _get_lineÚ_matchrkÚmoÚgrouprIrBrãr]ÚUntagged_responserdÚ ContinuationrKrbÚintrŠrÚ Response_code)rVÚresprr¡r¢Zdat2rŒrr>r>r?rm5sD                 zIMAP4._get_responsec Csˆ|j|}|dur|j|=|S|rDd}|j |d¡}|durD||fS| ¡z | ¡Wq|jy€}z‚WYd}~qd}~00qdS)Nr)rIrJÚpoprrmrB)rVrrÚresultr¡rrr>r>r?r…s  zIMAP4._get_tagged_responsecCs>| ¡}|s| d¡‚| d¡s.| d|¡‚|dd…}|S)Nzsocket error: EOFr z#socket error: unterminated line: %réþÿÿÿ)r‘rBÚendswithr“r>r>r?r#¦s   zIMAP4._get_linecCs| |¡|_|jduSry)Úmatchr%)rVZcreÚsr>r>r?r$¹s z IMAP4._matchcCs2|jtt|jƒ|jƒ}|jd|_d|j|<|S)Nr)rjrrãrMr]rI)rVrr>r>r?rÅs  zIMAP4._new_tagcCs$| dd¡}| dd¡}d|dS)Nú\z\\ú"z\")r¶)rVrr>r>r?rÚÍs  z IMAP4._quotecGs| ||j|g|¢RŽ¡Sry)r rr r>r>r?r°ÕszIMAP4._simple_commandcCs8|dkr||fS||jvr$|dgfS|j |¡}||fS)Nr)rJr,)rVr¡r¢r rr>r>r?rÚs    zIMAP4._untagged_response)rÕrÖ)rÕrÖ)r§F)N)F)Ur;r<r=Ú__doc__rRr@rBrCÚ IMAP4_PORTrZrOrgrQrxrzr}r‚rPrŠr‘r—rSrr£r¦rµr»r½r¿r™rÃrÅrÆrÈrÉrÊrËrÍrÐrÓrÔrÙrÝrßrÞr{rærçrèržrêrërìrïrórôrõrörørÿrrrrr r r r rrrr rnrmrr#r$rrÚr°rÚ_mesgZ_dump_urZ_logZ print_logr>r>r>r?rŠsš/*                      M P ! $rc@s>eZdZdZdeddddfdd„Zdd„Zdedfdd „ZdS) Ú IMAP4_SSLaäIMAP4 client class over SSL connection Instantiate with: IMAP4_SSL([host[, port[, keyfile[, certfile[, ssl_context[, timeout=None]]]]]]) host - host's name (default: localhost); port - port number (default: standard IMAP4 SSL port); keyfile - PEM formatted file that contains your private key (default: None); certfile - PEM formatted certificate chain file (default: None); ssl_context - a SSLContext object that contains your certificate chain and private key (default: None) Note: if ssl_context is provided, then parameters keyfile or certfile should not be set otherwise ValueError is raised. timeout - socket timeout (default: None) If timeout is not given or is None, the global default socket timeout is used for more documentation see the docstring of the parent class IMAP4. rDNcCs’|dur|durtdƒ‚|dur0|dur0tdƒ‚|dus@|durVddl}| dtd¡||_||_|durxtj||d}||_t   ||||¡dS)Nz8ssl_context and keyfile arguments are mutually exclusivez9ssl_context and certfile arguments are mutually exclusiverzEkeyfile and certfile are deprecated, use a custom ssl_context insteadé)ÚcertfileÚkeyfile) r~ÚwarningsÚwarnÚDeprecationWarningr:r9rûrürþrrZ)rVrWrXr:r9rþrYr;r>r>r?rZ#s"ÿÿzIMAP4_SSL.__init__cCst ||¡}|jj||jdS)Nrù)rr‚rþrýrW)rVrYr„r>r>r?r‚7s ÿzIMAP4_SSL._create_socketcCst ||||¡dS)zæSetup connection to remote server on "host:port". (default: localhost:standard IMAP4 SSL port). This connection will be used by the routines: read, readline, send, shutdown. N)rrPrUr>r>r?rP<szIMAP4_SSL.open)r;r<r=r4ÚIMAP4_SSL_PORTrZr‚rPr>r>r>r?r7s ÿ r7c@sBeZdZdZdd„Zddd„Zdd„Zd d „Zd d „Zd d„Z dS)rzæIMAP4 client class over a stream Instantiate with: IMAP4_stream(command) "command" - a string that can be passed to subprocess.Popen() for more documentation see the docstring of the parent class IMAP4. cCs||_t |¡dSry)rrrZ)rVrr>r>r?rZSszIMAP4_stream.__init__NcCsNd|_d|_d|_d|_tj|jttjtjddd|_ |j j |_ |j j |_ dS)z…Setup a stream connection. This connection will be used by the routines: read, readline, send, shutdown. NT)ÚbufsizeÚstdinÚstdoutÚshellZ close_fds)rWrXr„r†Ú subprocessÚPopenrrÚPIPEr¸r@Ú writefilerAÚreadfilerUr>r>r?rPXsý zIMAP4_stream.opencCs |j |¡Sr‡)rGrŠ)rVrŒr>r>r?rŠhszIMAP4_stream.readcCs |j ¡S)r)rGr‘rer>r>r?r‘mszIMAP4_stream.readlinecCs|j |¡|j ¡dS)r•N)rFÚwriteÚflushr–r>r>r?r—rs zIMAP4_stream.sendcCs"|j ¡|j ¡|j ¡dS)r˜N)rGr™rFr¸Úwaitrer>r>r?rSxs  zIMAP4_stream.shutdown)NNN) r;r<r=r4rZrPrŠr‘r—rSr>r>r>r?rGs  rc@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) r·zcPrivate class to provide en/decoding for base64-based authentication conversation. cCs ||_dSry)rº)rVZmechinstr>r>r?rZ†sz_Authenticator.__init__cCs&| | |¡¡}|durdS| |¡S)Nó*)rºr¹rä)rVrZretr>r>r?r¸‰sz_Authenticator.processcCsnd}t|tƒr| d¡}|rjt|ƒdkrB|dd…}|dd…}n|}d}t |¡}|r||dd…}q|S)NrArfé0rœ)rârãrär‹ÚbinasciiZ b2a_base64)rVÚinpZoupÚtÚer>r>r?räs      z_Authenticator.encodecCs|sdSt |¡Sr)rMZ a2b_base64)rVrNr>r>r?r¹§sz_Authenticator.decodeN)r;r<r=r4rZr¸rär¹r>r>r>r?r·€s r·z0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov DecràcCsi|]\}}| ¡|d“qS)r)rä)Ú.0Únr1r>r>r?Ú ­rArSrc CsØt |¡}|sdSt| d¡}| d¡}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ}t| d ¡ƒ} t| d ¡ƒ} | d | d } |d krª| } ||||||d d d f } t | ¡| } t | ¡S)z¨Parse an IMAP4 INTERNALDATE string. Return corresponding local time. The return value is a time.struct_time tuple or None if the string has wrong format. NÚmonÚzonenÚdayÚyearÚhourrˆÚsecÚzonehÚzonemé<ó-rœ) Ú InternalDater0ÚMon2numr&r)ÚcalendarZtimegmÚtimeÚ localtime)r+r%rTrUrVrWrXrˆrYrZr[ZzoneZttÚutcr>r>r?r¯s$  rcCs@d}d}tt|ƒƒ}|rr>r?r Òs  r cCs$t |¡}|sdSt| d¡ ¡ƒS)z-Convert IMAP4 flags response to python tuple.r>r²)ÚFlagsr0r!r&r")r+r%r>r>r?r ßs r cCst|ttfƒr"t |tj¡ ¡}nàt|tƒr¶z |j }WnXt yŽt j r‚|d}|dkrnt   t  |¡¡d}t jt jf| }nt j }Yn0t|d}t|dd…dt|ƒiŽ}nLt|tƒrØ|jdurÒtdƒ‚|}n*t|tƒrú|d|dfd krú|Std ƒ‚d  t|j¡}| |¡S) aèConvert date_time to IMAP4 INTERNALDATE representation. Return string in form: '"DD-Mmm-YYYY HH:MM:SS +HHMM"'. The date_time argument can be a number (int or float) representing seconds since epoch (as returned by time.time()), a 9-tuple representing local time, an instance of time.struct_time (as returned by time.localtime()), an aware datetime instance or a double-quoted string. In the last case, it is assumed to already be in the correct format. érœ)ZsecondsNéÚtzinfozdate_time must be awarer)r3r3zdate_time not of a known typez"%d-{}-%Y %H:%M:%S %z")râr)ÚfloatrZ fromtimestamprrcZ astimezoner!Ú tm_gmtoffrvraÚdaylightrbÚmktimeÚaltzonerrkr~rãÚformatÚMonthsZmonthÚstrftime)r³ZdtZgmtoffZdstrŽZfmtr>r>r?r ês2 ÿ       r Ú__main__zd:s:)r>r>z-dz-s)rDzIMAP password for %s on %s: Z localhostzJFrom: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)sdata...%(lf)sÚ )rÛZlfrÝ)rÅ)ú /tmp/xxx 1)rì)rvz/tmp/yyy)r©ú /tmp/yyz 2rµrx)rÙ)z/tmpzyy*)rórw)rï)NZSUBJECTÚtest)rË)Ú1z(FLAGS INTERNALDATE RFC822))r)rzÚFLAGSz (\Deleted))rèr>)rÊr>)r£r>)r™r>)rór>)r¦)Z UIDVALIDITY)r )r,ZALL)r¦)rñ)r{r>cCsLt d||f¡tt|ƒ|Ž\}}t d|||f¡|dkrH|d‚|S)Nz%s %sz %s => %s %srr)ÚMr6rt)Úcmdr|r¡r¢r>r>r?ÚrunKs r~rzPROTOCOL_VERSION = %szCAPABILITIES = %rrÙ)z/tmp/zyy%z .*"([^"]+)"$rœrÆr rz%sz:(FLAGS INTERNALDATE RFC822.SIZE RFC822.HEADER RFC822.TEXT)z All tests OK.z Tests failed.z8 If you would like to see debugging output, try: %s -d5 )Vr4rlrMršrir^rrCrrar`rrrÚiorrûrúÚ ImportErrorÚ__all__r¯rEr5r>ror’r‰rsr_r(rhr^rarbr­r*r'rdr`rcrr7rµrr·r"rrÚ enumerater_rr r r r;ZgetoptZgetpassÚargvZoptlistr|r@rZstream_commandÚoptr)rWZgetuserZUSERZPASSWDZ test_mesgZ test_seq1Z test_seq2r~r|rGr6rqrpr}Zmlr0r%r&Úpathr¢r Úprintr>r>r>r?ÚsNH    Õ0     ÿ 6 9, #  )       òù           ÿ  ý