grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026ó þÆt£]ÿ*Hãó„ •SrSrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK r SSK J r J r J r SSKJr SSKrSr/SQrS rSrS rS rS rS rSr0SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S_S!S_S"S_S#S_S$S_0S%S_S&S_S'S_S(S_S)S_S*S_S+S_S,S_S-S_S.S_S/S_S0S_S1S_S2S_S3S_S4S_S5S_ESSSSSSSSS6.Er\R8"S75r\R8"S85r\R8"S95r\R8"S:\R@5r!\R8"S;5r"\R8"S<5r#\R8"S=5r$\R8"S>\R@5r%S:r&S>r'\R8"S?5r(\R8"S@5r)\R8"SA5r*\R8"SB5r+SƒSCjr,"SDSE5r-\(a"SFSG\-5r.\R_SG5 "SHSI\-5r0"SJSK5r1SLReSM5r3\4"\3SNS5VVs0sHupURk5USN-_M snnr6SOr7SPr8SQr9SRr:\;SS:XGaSSK.*))?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.*))?s[ ]s[(){ \x00-\x1f\x7f-\xff%*\\"]s[(){ \x00-\x1f\x7f-\xff\\"]s"(?:[^"\\]|\\.)*+"cóx•[RSU5nXRS5-URS5- $)Nóó(ó))Ú_quotedÚsubÚcount)ÚdataÚdepths Ú./opt/alt/python313/lib64/python3.13/imaplib.pyÚ _paren_depthrG�s2€ä �;‰;�s˜DÓ !€DØ —:‘:˜dÓ#Ñ # d§j¡j°Ó&6Ñ 6Ð6r>cóz•\rSrSrSr"SS\5r"SS\5r"SS\5rS \ S 4S jr S r S r Sr SrSrSrSrS \ S 4SjrSrSrSrSrSrSrSrSrSrSrSrSrS rS!r S"r!S#r"S$r#S%r$S&r%S'r&S(r'S)r(S*r)S_S+jr*S,r+S-r,S.r-S/r.S_S0jr/S1r0S2r1S3r2S4r3S5r4S6r5S7r6S`S8jr7S9r8S:r9S;r:S<r;SaS=jrr=S?r>S@r?SAr@SBrASCrBSDrCSErDSFrESGrFSHrGSIrHSJrISKrJSLrKSbSMjrLSNrMSOrNSPrOSQrPSRrQSSrRSTrSSUrTSVrUSWrVSXrWSYrXSaSZjrYS[rZS\r[S]r\S^r]g )cré•aIMAP4 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 lowercase). 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ó•\rSrSrSrg)Ú IMAP4.error鯩N©Ú__name__Ú __module__Ú __qualname__Ú__firstlineno__Ú__static_attributes__rMr>rFÚerrorrKÆs†šDr>rTcó•\rSrSrSrg)Ú IMAP4.abortéÇrMNrNrMr>rFÚabortrVÇs†šr>rXcó•\rSrSrSrg)ÚIMAP4.readonlyéÈrMNrNrMr>rFÚreadonlyrZÈs†š4r>r\ÚNcóP•[UlSUlSUl0Ul0UlSUlSUlSUlSUl UR5 URXU5 UR5 g![a# UR5 e![a ef=ff=f)Nrr]Fr)Ú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Útimeouts rFÚ__init__ÚIMAP4.__init__Ês©€ÜˆŒ ؈Œ ؈Œ Ø!ˆÔØ"$ˆÔØ%'ˆÔ"Ø ˆÔ؈Œ Ø %ˆÔØ ×ÑÔð � ‰ �$˜gÔ&ð Ø �M‰M�OøÜó ð Ø— ‘ ”ð øôó ØØ ð úð ús0Á'A8Á8 B%ÂBÂB% B!ÂB% B!Â!B%cóØ•SUlSUl[R"[[R 5Ul[R"[[R 5Ulg)NFÚascii) Ú utf8_enabledÚ _encodingÚreÚcompileÚ_LiteralÚASCIIÚLiteralÚ_Untagged_statusÚUntagged_status©rps rFriÚIMAP4._mode_asciiãs?€Ø!ˆÔØ ˆŒÜ—z’z¤(¬B¯H©HÓ5ˆŒ Ü!ŸzšzÔ*:¼B¿H¹HÓEˆÕr>cóœ•SUlSUl[R"[5Ul[R"[ 5Ulg)NTúutf-8)rxryrzr{r|r~rr€r�s rFÚ _mode_utf8ÚIMAP4._mode_utf8ês3€Ø ˆÔØ ˆŒÜ—z’z¤(Ó+ˆŒ Ü!ŸzšzÔ*:Ó;ˆÕr>cóš•[[R"SS55Ul[R "SUR-S-[R 5UlSUlSUl 0Ul URS:¼a6URS[-5 URS UR-5 UR5UlS UR ;aS UlOoS UR ;aS UlOWUR=(d UR$R&R)UR*S5nUR-SU-5eUR/5 URS:¼aURSUR0<35 [2HnX R0;aMX l g UR-S5e)Niiÿÿs(?Ps"\d+) (?P[A-Z]+) (?P.*)é rézimaplib version %sznew IMAP4 connection, tag=%sÚPREAUTHrÚOKrÚreplacezinvalid greeting: ézCAPABILITIES: zserver not IMAP4 compliant)r ÚrandomÚrandintÚtagprerzr{r}ÚtagreÚ _cmd_log_lenÚ _cmd_log_idxÚ_cmd_logr`Ú_mesgÚ __version__Ú _get_responseÚwelcomerdraÚmoÚstringÚdecoderyrTÚ_refresh_capabilitiesÚ capabilitiesÚAllowedVersionsÚPROTOCOL_VERSION)rpÚgreetingÚversions rFrkÚIMAP4._connectñsw€ôœVŸ^š^¨D°%Ó8Ó9ˆŒ Ü—Z’Z  ØŸ+™+ñ!&à@ñ!AäBDÇ(Á(óLˆŒ ð Ø "ˆDÔ Ø !ˆDÔ ØˆDŒMØ�z‰z˜Q‹Ø— ‘ Ð/´+Ñ=Ô>Ø— ‘ Ð9¸D¿K¹KÑGÔHà×)Ñ)Ó+ˆŒ Ø ˜×/Ñ/Ó /؈D�JØ �T×,Ñ,Ó ,Ø"ˆD�J🠙 ×6¨¯©¯©×>Ñ>Ø—‘  ó+ˆHà—*‘*Ð1°HÑ<Ó=Ð =à ×"Ñ"Ô$Ø Ø�z‰z˜Q‹Ø— ’ °×1BÓ1BÐDÔEç&ˆGØ×/Ñ/Ó/ÙØ$+Ô !Ù ñ 'ð �j‰jÐ5Ó6Ð6r>cód•U[;a[XR55$[SU-5e)NzUnknown IMAP4 command: '%s')ÚCommandsÚgetattrÚlowerÚAttributeError)rpÚattrs rFÚ __getattr__ÚIMAP4.__getattr__s,€à ”8Ó Ü˜4§¡£Ó.Ð .ÜÐ:¸TÑAÓBÐBr>có•U$©NrMr�s rFÚ __enter__ÚIMAP4.__enter__%s€Øˆ r>cóh•URS:XagUR5 g![a gf=f)Nr)raÚlogoutrn)rpÚargss rFÚ__exit__ÚIMAP4.__exit__(s1€Ø �:‰:˜Ó !Ø ð Ø �K‰K�MøÜó Ù ð ús “$¤ 1°1có:•UbU(d [S5eUR(dSO URn[R"SXRUR5 X R4nUb[ R "X15$[ R "U5$)Nz0Non-blocking socket (timeout=0) is not supportedz imaplib.open)Ú ValueErrorrqÚsysÚauditrrÚsocketÚcreate_connection)rprsrqÚaddresss rFÚ_create_socketÚIMAP4._create_socket5su€ð Ñ ¦wÜÐOÓPÐ PØŸ9Ÿ9‰t¨$¯)©)ˆÜ � Š �. $¯ © °4·9±9Ô=ØŸ™Ð#ˆØ Ñ Ü×+Ò+¨GÓ=Ð =Ü×'Ò'¨Ó0Ð0r>cóˆ•XlX lURU5UlURR S5Ulg)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)rqrrr»ÚsockÚmakefileÚfileros rFrjÚ IMAP4.openBs6€ð Œ ØŒ Ø×'Ñ'¨Ó0ˆŒ Ø—I‘I×&Ñ& tÓ,ˆ� r>có•[U[5nURRU5nX!:aT[ U5U:XaE[X!U- 5nX0RRU5- nX$- nX!:a[ U5U:XaMEU$©zRead 'size' bytes from remote.)ÚminÚ_SAFE_BUF_SIZErÁÚreadÚlen)rpÚsizeÚcursizerDÚdeltas rFrÇÚ IMAP4.readNst€ä�dœNÓ+ˆØ�y‰y�~‰~˜gÓ&ˆØ‹n¤ T£¨gÓ!5ܘ¨¡Ó0ˆEØ —I‘I—N‘N 5Ó)Ñ )ˆDØ Ñ ˆGð‹n¤ T£¨gÕ!5ðˆ r>có •URR[S-5n[U5[:”aUR S[-5eU$)úRead line from remote.r‰zgot more than %d bytes)rÁÚreadlineÚ_MAXLINErÈrT©rpÚlines rFrÏÚIMAP4.readlineYs@€à�y‰y×!Ñ!¤(¨Q¡,Ó/ˆÜ ˆt‹9”xÓ Ø—*‘*Ð5¼Ñ@ÓAÐ A؈ r>cóh•[R"SX5 URRU5 g)úSend data to remote.z imaplib.sendN)r¶r·r¿Úsendall©rprDs rFÚsendÚ IMAP4.sendas"€ä � Š �. $Ô-Ø � ‰ ×ј$Õr>cóŒ•URR5 URR[R 5 URR5 g![ a:nUR[R:wa[USS5S:waeSnANZSnAff=f!URR5 f=f)ú Close I/O established in "open".Úwinerrorri&'N) rÁÚcloser¿rmr¸Ú SHUT_RDWRrnÚerrnoÚENOTCONNr¥)rpÚexcs rFrmÚIMAP4.shutdowngs‡€à � ‰ �‰Ôð Ø �I‰I× Ñ œv×/Ñ/Ô 0ð �I‰I�O‰OÕ øôó ð— ‘ œUŸ^™^Ó+ܘ3  ¨AÓ.°%Ó7Øÿøð  ûð �I‰I�O‰OÕ ús)œ)A Á B$Á*0BÂB'ÂB$Â$B'Â'Ccó•UR$)zVReturn socket instance used to connect to IMAP4 server. socket = .socket() )r¿r�s rFr¸Ú IMAP4.socketws€ð �y‰yÐr>có”•SnURSS/U5up#US(aX#4$UR5up#URX#U5$)zéReturn 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. ÚRECENTr‹Néÿÿÿÿ)Ú_untagged_responseÚnoop©rpÚnameÚtypÚdats rFÚrecentÚ IMAP4.recentƒsO€ðˆØ×*Ñ*¨4°$°¸Ó>‰ˆØ ˆr�7Ø�8ˆOØ—9‘9“;‰ˆØ×&Ñ& s°Ó6Ð6r>cóF•URUS/UR55$)z�Return data for response 'code' if received, or None. Old value for response 'code' is cleared. (code, [data]) = .response(code) N)rèÚupper)rpÚcodes rFÚresponseÚIMAP4.response”s!€ð×&Ñ& t¨d¨V°T·Z±Z³\ÓBÐBr>cóú•SnU(dSnU(aURU5nOSnU(a [U5nOSn[R[U5nX`lUR XPRU5X#5$)z˜Append message to named mailbox. (typ, [data]) = .append(mailbox, flags, date_time, message) All args except `message' can be None. rÚINBOXN)Ú _set_quoter ÚMapCRLFrBÚCRLFrbÚ_simple_commandÚ_astring)rpÚmailboxÚflagsÚ date_timeÚmessagerërbs rFÚappendÚ IMAP4.append¢sj€ðˆÞ؈GÞ Ø—O‘O EÓ*‰EàˆEÞ Ü)¨)Ó4‰IàˆIÜ—+‘+œd GÓ,ˆØŒ Ø×#Ñ# D¯-©-¸Ó*@À%ÓSÐSr>có$•UR5n[U5RUlUR SUR U55upEUS:wa$UR USRSS55eSUlUR5 XE4$)a#Authenticate 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. rr‹rçr„rŒr) rñÚ_AuthenticatorÚprocessrbrúÚ_atomrTr›rarœ)rpÚ mechanismÚ authobjectÚmechrìrís rFÚ authenticateÚIMAP4.authenticate¹s€€ð �‰Ó ˆô & jÓ1×9Ñ9ˆŒ Ø×'Ñ'¨¸¿ ¹ À4Ó8HÓI‰ˆØ �$‹;Ø—*‘*˜S ™WŸ^™^¨G°YÓ?Ó@Ð @؈Œ Ø ×"Ñ"Ô$؈xˆr>cóP•SnURU5up#URX#U5$)zL(typ, [data]) = .capability() Fetch capabilities list from server.r©rúrèrês rFÚ capabilityÚIMAP4.capability×s.€ðˆØ×'Ñ'¨Ó-‰ˆØ×&Ñ& s°Ó6Ð6r>có$•URS5$)zBCheckpoint mailbox on server. (typ, [data]) = .check() r)rúr�s rFÚcheckÚ IMAP4.checkàs€ð ×#Ñ# GÓ,Ð,r>cóV•URS5upSUlX4$!SUlf=f)z¬Close currently selected mailbox. Deleted messages are removed from writable mailbox. This is the recommended command before 'LOGOUT'. (typ, [data]) = .close() rr©rúra©rprìrís rFrÝÚ IMAP4.closeès2€ð Ø×+Ñ+¨GÓ4‰HˆCàˆDŒJ؈xˆøð ˆD�Júó‚Ÿ (cód•URSURU5URU55$)zrCopy 'message_set' messages onto end of 'new_mailbox'. (typ, [data]) = .copy(message_set, new_mailbox) r)rúÚ _sequence_setrû)rpÚ message_setÚ new_mailboxs rFÚcopyÚ IMAP4.copy÷s4€ð ×#Ñ# F¨D×,>Ñ,>¸{Ó,KØ$(§M¡M°+Ó$>ó@ð @r>cóD•URSURU55$)z@Create new mailbox. (typ, [data]) = .create(mailbox) r©rúrû©rprüs rFÚcreateÚ IMAP4.createó €ð ×#Ñ# H¨d¯m©m¸GÓ.DÓEÐEr>cóD•URSURU55$)z@Delete old mailbox. (typ, [data]) = .delete(mailbox) rrrs rFÚdeleteÚ IMAP4.deleter"r>cód•URSURU5URU55$)zpDelete the ACLs (remove any rights) set for who on mailbox. (typ, [data]) = .deleteacl(mailbox, who) rr)rprüÚwhos rFÚ deleteaclÚIMAP4.deleteacls0€ð ×#Ñ# K°·±¸wÓ1GØ$(§M¡M°#Ó$6ó8ð 8r>cóΕSUR;a[RS5eURSU5up#US:Xa$SUR 5;aUR 5 X#4$)z\Send an RFC5161 enable string to the server. (typ, [data]) = .enable(capability) rzServer does not support ENABLEr‹z UTF8=ACCEPT)r�rrTrúrñr…)rpr rìrDs rFÚenableÚ IMAP4.enables_€ð ˜4×,Ñ,Ó ,Ü—+‘+Ð>Ó?Ð ?Ø×(Ñ(¨°:Ó>‰ ˆØ �$‹;˜=¨J×,<Ñ,<Ó,>Ó>Ø �O‰OÔ ØˆyÐr>cóP•SnURU5up#URX#U5$)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ês rFÚexpungeÚ IMAP4.expunge#s.€ðˆØ×'Ñ'¨Ó-‰ˆØ×&Ñ& s°Ó6Ð6r>cóŽ•SnURX0RU5URU55upEURXEU5$)zû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. r )rúrÚ _fetch_partsrè)rprÚ message_partsrërìrís rFÚfetchÚ IMAP4.fetch1sJ€ðˆØ×'Ñ'¨×.@Ñ.@ÀÓ.MØ(,×(9Ñ(9¸-Ó(HóJ‰ˆà×&Ñ& s°Ó6Ð6r>cól•URSURU55up#URX#S5$)zHGet the ACLs for a mailbox. (typ, [data]) = .getacl(mailbox) r!ÚACL©rúrûrè©rprürìrís rFÚgetaclÚ IMAP4.getaclAs4€ð ×'Ñ'¨°$·-±-ÀÓ2HÓI‰ˆØ×&Ñ& s°Ó7Ð7r>cón•URSURU5X#5upEURXES5$)zY(typ, [data]) = .getannotation(mailbox, entry, attribute) Retrieve ANNOTATIONs.r"Ú ANNOTATIONr7)rprüÚentryÚ attributerìrís rFÚ getannotationÚIMAP4.getannotationJs9€ð×'Ñ'¨¸¿¹ÀwÓ9OØ(-ó:‰ˆà×&Ñ& s°Ó>Ð>r>cól•URSURU55up#URX#S5$)z’Get the quota root's resource usage and limits. Part of the IMAP4 QUOTA extension defined in rfc2087. (typ, [data]) = .getquota(root) r#ÚQUOTAr7)rpÚrootrìrís rFÚgetquotaÚIMAP4.getquotaSs4€ð×'Ñ'¨ °D·M±MÀ$Ó4GÓH‰ˆØ×&Ñ& s°Ó9Ð9r>có¢•URSURU55up#URX#S5up$URX#S5up%X%U/4$)zŒGet the list of quota roots for the named mailbox. (typ, [[QUOTAROOT responses...], [QUOTA responses]]) = .getquotaroot(mailbox) r$rBÚ QUOTAROOTr7)rprürìríÚquotaÚ quotaroots rFÚ getquotarootÚIMAP4.getquotaroot^sW€ð ×'Ñ'¨¸¿ ¹ ÀgÓ8NÓO‰ˆØ×,Ñ,¨S°wÓ?‰ ˆØ×0Ñ0°¸;ÓG‰ˆØ Ð&Ð&Ð&r>cóŽ•SnURX0RU5URU55upEURXEU5$)z‘List mailbox names in directory matching pattern. (typ, [data]) = .list(directory='', pattern='*') 'data' is list of LIST responses. r&©rúrûÚ _list_mailboxrè©rpÚ directoryÚpatternrërìrís rFÚlistÚ IMAP4.listióH€ðˆØ×'Ñ'¨¯m©m¸IÓ.FØ(,×(:Ñ(:¸7Ó(CóE‰ˆà×&Ñ& s°Ó6Ð6r>cóð•URSURU5URU55up4US:wa$URUSR SS55eSUlUR 5 X44$)z|Identify client using plaintext password. (typ, [data]) = .login(user, password) NB: 'password' will be quoted. r'r‹rçzUTF-8rŒr)rúrûÚ_quoterTr›rarœ)rpÚuserÚpasswordrìrís rFÚloginÚ IMAP4.loginvsn€ð×'Ñ'¨°·±¸tÓ1DØ(,¯ © °HÓ(=ó?‰ˆà �$‹;Ø—*‘*˜S ™WŸ^™^¨G°YÓ?Ó@Ð @؈Œ Ø ×"Ñ"Ô$؈xˆr>cóV•XsUlUlURSUR5$)zaForce use of CRAM-MD5 authentication. (typ, [data]) = .login_cram_md5(user, password) zCRAM-MD5)rWrXr Ú_CRAM_MD5_AUTH)rprWrXs rFÚlogin_cram_md5ÚIMAP4.login_cram_md5†s+€ð $(Ð ˆŒ �4”=Ø× Ñ  ¨T×-@Ñ-@ÓAÐAr>có:•SSKn[UR[5(aURR S5nO URnUR X1S5nURSUR53$![ a URS5ef=f)z0Authobject to use with CRAM-MD5 authentication. rNr„Úmd5z(CRAM-MD5 authentication is not supportedÚ ) ÚhmacÚ isinstancerXÚstrÚencodeÚHMACrµrTrWÚ hexdigest)rpÚ challengerbrXÚauthcodes rFr\ÚIMAP4._CRAM_MD5_AUTH�s�€ãä �d—m‘m¤S× )Ñ )Ø—}‘}×+Ñ+¨GÓ4‰Hà—}‘}ˆHð IØ—y‘y °eÓ<ˆHð—)‘)�˜A˜h×0Ñ0Ó2Ð3Ð4Ð4øôó IØ—*‘*ÐGÓHÐ Hð Iús Á A>Á>Bcó\•SUlURS5upUR5 X4$)zdShutdown connection to server. (typ, [data]) = .logout() Returns server 'BYE' response. r)rarúrmrs rFr°Ú IMAP4.logoutŸs-€ðˆŒ Ø×'Ñ'¨Ó1‰ˆØ � ‰ ŒØˆxˆr>cóŽ•SnURX0RU5URU55upEURXEU5$)z¶List 'subscribed' mailbox names in directory matching pattern. (typ, [data, ...]) = .lsub(directory='', pattern='*') 'data' are tuples of message part envelope and data. r(rMrOs rFÚlsubÚ IMAP4.lsub¬rTr>cól•URSURU55up#URX#S5$)zsShow my ACLs for a mailbox (i.e. the rights that I have on mailbox). (typ, [data]) = .myrights(mailbox) r%r7r8s rFÚmyrightsÚIMAP4.myrights¸s4€ð ×&Ñ& z°4·=±=ÀÓ3IÓJ‰ˆØ×&Ñ& s°Ó<ÐcóP•SnURU5up#URX#U5$)zQReturns IMAP namespaces ala rfc2342 (typ, [data, ...]) = .namespace() r*r rês rFÚ namespaceÚIMAP4.namespaceÀs.€ð ˆØ×'Ñ'¨Ó-‰ˆØ×&Ñ& s°Ó6Ð6r>có|•URS:¼aURUR5 URS5$)z6Send NOOP command. (typ, [data]) = .noop() r�r+)r`Ú_dump_urrdrúr�s rFréÚ IMAP4.noopÊs5€ð Ø�z‰z˜Q‹Ø— ‘ ˜d×5Ñ5Ô6Ø×#Ñ# FÓ+Ð+r>cóT•SnURXQX#U5upgURXgS5$)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,r r )rpÚ message_numÚ message_partÚstartÚlengthrërìrís rFÚpartialÚ IMAP4.partialÕs3€ðˆØ×'Ñ'¨¸<ÐPVÓW‰ˆØ×&Ñ& s°Ó9Ð9r>cóF•SnURX RU55$)z“Assume authentication as "user". Allows an authorised administrator to proxy into any user's mailbox. (typ, [data]) = .proxyauth(user) r-r)rprWrës rFÚ proxyauthÚIMAP4.proxyauthás#€ðˆØ×#Ñ# D¯-©-¸Ó*=Ó>Ð>r>cód•URSURU5URU55$)z[Rename old mailbox name to new. (typ, [data]) = .rename(oldmailbox, newmailbox) r.r)rpÚ oldmailboxÚ newmailboxs rFÚrenameÚ IMAP4.renameîs0€ð ×#Ñ# H¨d¯m©m¸JÓ.GØ$(§M¡M°*Ó$=ó?ð ?r>cóô•SnUbMUR(a[RS5eUR"USUR U5/UQ76upEOUR"U/UQ76upEUR XEU5$)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)rxrrTrúrûrè)rpÚcharsetÚcriteriarërìrís rFÚsearchÚ IMAP4.search÷s‚€ðˆØ Ñ Ø× × Ü—k‘kÐ"KÓLÐLØ×+Ò+¨DؘtŸ}™}¨WÓ5ðBØ8@òB‰HˆC�ð×+Ò+¨DÐ<°8Ò<‰HˆCØ×&Ñ& s°Ó6Ð6r>có’•0UlX lU(aSnOSnURX0RU55upEUS:wa SUlXE4$SUlSUR;aHU(dAUR S:¼aUR UR5 URU<S35eX@RRS S /54$) aDSelect 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. rr0r‹rrú READ-ONLYr‰z is not writableÚEXISTSN) rdrfrúrûrar`rwr\Úget)rprür\rërìrís rFÚselectÚ IMAP4.select s·€ð#%ˆÔØ#ÔÞ Ø‰DàˆDØ×'Ñ'¨¯m©m¸GÓ.DÓE‰ˆØ �$‹;؈DŒJØ�8ˆO؈Œ Ø ˜$×1Ñ1Ó 1Þ ØØ—:‘: “?Ø—M‘M $×"9Ñ"9Ô:Ø—-‘-»Ð AÓBÐ BØ×+Ñ+×/Ñ/°¸4¸&ÓAÐAÐAr>có„•URSURU5URU5URU55$)zJSet a mailbox acl. (typ, [data]) = .setacl(mailbox, who, what) r1r)rprür'Úwhats rFÚsetaclÚ IMAP4.setacl*s=€ð ×#Ñ# H¨d¯m©m¸GÓ.DØ$(§M¡M°#Ó$6¸¿ ¹ ÀdÓ8KóMð Mr>cóp•UR"SURU5/UQ76up4URX4S5$)zW(typ, [data]) = .setannotation(mailbox[, entry, attribute]+) Set ANNOTATIONs.r2r<r7)rprür±rìrís rFÚ setannotationÚIMAP4.setannotation3s:€ð×'Ò'¨¸¿¹ÀwÓ9OÐWÐRVÒW‰ˆØ×&Ñ& s°Ó>Ð>r>cóŒ•URSURU5URU55up4URX4S5$)zYSet the quota root's resource limits. (typ, [data]) = .setquota(root, limits) r3rB©rúrûr÷rè)rprCÚlimitsrìrís rFÚsetquotaÚIMAP4.setquota;sC€ð ×'Ñ'¨ °D·M±MÀ$Ó4GØ(,¯©¸Ó(?óA‰ˆà×&Ñ& s°Ó9Ð9r>có •SnURU5nUbURU5nUR"XAU/UQ76upVURXVU5$)zqIMAP4rev1 extension SORT command. (typ, [data]) = .sort(sort_criteria, charset, search_criteria, ...) r4)r÷rûrúrè)rpÚ sort_criteriarŠÚsearch_criteriarërìrís rFÚsortÚ IMAP4.sortEsY€ð ˆðŸ™¨ Ó6ˆ Ø Ñ Ø—m‘m GÓ,ˆGØ×'Ò'¨¸WÐWÀÒW‰ˆØ×&Ñ& s°Ó6Ð6r>có,•Sn[(dURS5eUR(aURS5eX R;aURS5eUc[ R "5nURU5up4US:XaaURURURS9Ul URRS5Ul SUlUR5 OURS 5eURX4U5$) Nr5zSSL support missingzTLS session already establishedzTLS not supported by serverr‹©Úserver_hostnamer¾TzCouldn't establish TLS session)ÚHAVE_SSLrTrhrXr�ÚsslÚ_create_stdlib_contextrúÚ wrap_socketr¿rqrÀrÁÚ_get_capabilitiesrè)rpÚ ssl_contextrërìrís rFÚstarttlsÚIMAP4.starttlsTsð€ØˆßŠxØ—*‘*Ð2Ó3Ð 3Ø × × Ø—*‘*Ð>Ó?Ð ?Ø ×(Ñ(Ó (Ø—*‘*Ð:Ó;Ð ;à Ñ Ü×4Ò4Ó6ˆKØ×'Ñ'¨Ó-‰ˆØ �$‹;Ø#×/Ñ/°· ± Ø@DÇ Á ð0ðKˆDŒIàŸ ™ ×*Ñ*¨4Ó0ˆDŒIØ$(ˆDÔ !Ø × "Ñ "Õ $à—*‘*Ð=Ó>Ð >Ø×&Ñ& s°Ó6Ð6r>cóŽ•SnURX0RU5URU55upEURXEU5$)z`Request named status conditions for mailbox. (typ, [data]) = .status(mailbox, names) r6rœ)rprüÚnamesrërìrís rFÚstatusÚ IMAP4.statusksH€ð ˆð×'Ñ'¨¯m©m¸GÓ.DØ(,¯©¸Ó(>ó@‰ˆà×&Ñ& s°Ó6Ð6r>có�•URU5nURSURU5X#5upEURXES5$)zqAlters flag dispositions for messages in mailbox. (typ, [data]) = .store(message_set, command, flags) r7r )r÷rúrrè)rprÚcommandrýrìrís rFÚstoreÚ IMAP4.storexsI€ð —‘ Ó&ˆØ×'Ñ'¨°×1CÑ1CÀKÓ1PØ(/ó8‰ˆà×&Ñ& s°Ó9Ð9r>cóD•URSURU55$)zISubscribe to new mailbox. (typ, [data]) = .subscribe(mailbox) r8rrs rFÚ subscribeÚIMAP4.subscribeƒs €ð ×#Ñ# K°·±¸wÓ1GÓHÐHr>cóœ•SnUbURU5nUR"X@RU5U/UQ76upVURXVU5$)z{IMAPrev1 extension THREAD command. (type, [data]) = .thread(threading_algorithm, charset, search_criteria, ...) r9)rûrúrrè)rpÚthreading_algorithmrŠr¢rërìrís rFÚthreadÚ IMAP4.thread‹s[€ð ˆØ Ñ Ø—m‘m GÓ,ˆGØ×'Ò'¨¯j©jÐ9LÓ.MØ(/ðCØ2AòC‰ˆà×&Ñ& s°Ó6Ð6r>c ór•UR5nU[;aURSU<35eUR[U;a=URSU<SUR<SSR [U5<35eSnUS:Xa'UupEUR U5UR U54nOÅUS:Xa'UupFUR U5URU54nO˜US :Xa)UupGnUR U5UURU54nOiUS :Xa/Utpšn U bUR U 5n URU 5U /U Q7nO4US :Xa.UtpÊn U bUR U 5n URU 5U /U Q7nUR"X0RU5/UQ76upÞUS ;aUnOSnURXÞU5$) 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: úcommand ú illegal in state ú, only allowed in states ú, r:rr r7r4r9)r/r4r9) rñr¤rTraÚjoinrrûr1r÷rrúrè)rprµr±rërrr2Úoprýr¡rŠr¢r¼rìrís rFÚuidÚ IMAP4.uid˜sØ€ð—-‘-“/ˆØœ(Ó"Ø—*’*ÂÐIÓJÐ JØ �:‰:œX gÑ.Ó .Ø—*’*ã% t§z¤zØ"Ÿi™i¬°Ñ(9Õ:ð<ó=ð =ðˆØ �fÓ Ø'+Ñ $ˆKØ×&Ñ& {Ó3Ø—M‘M +Ó.ð0‰Dà ˜Ó Ø)-Ñ &ˆKØ×&Ñ& {Ó3Ø×%Ñ% mÓ4ð6‰Dà ˜Ó Ø%)Ñ "ˆK˜UØ×&Ñ& {Ó3°RØ—O‘O EÓ*ð,‰Dà ˜Ó Ø7;Ð 4ˆM _ØÑ"ØŸ-™-¨Ó0�Ø—O‘O MÓ2°Gð&Ø$ñ&‰Dà ˜Ó Ø=AÐ :Ð ¨?ØÑ"ØŸ-™-¨Ó0�Ø—J‘JÐ2Ó3°Wð&Ø$ñ&ˆDà×'Ò'¨¯j©j¸Ó.AÐIÀDÒI‰ˆØ Ð2Ó 2؉DàˆDØ×&Ñ& s°Ó6Ð6r>cóD•URSURU55$)zOUnsubscribe from old mailbox. (typ, [data]) = .unsubscribe(mailbox) r;rrs rFÚ unsubscribeÚIMAP4.unsubscribeÉs €ð ×#Ñ# M°4·=±=ÀÓ3IÓJÐJr>cóV•URS5upSUlX4$!SUlf=f)aFree 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() r<rr)rprìrDs rFÚunselectÚIMAP4.unselectÑs3€ð Ø×,Ñ,¨ZÓ8‰IˆCàˆDŒJ؈yÐøð ˆD�Júrcó„•UR5nU[;aUR4[U'UR"U/UQ76$)zìAllow 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ñr¤rarú©rprër±s rFÚxatomÚ IMAP4.xatomás>€ð�z‰z‹|ˆð”xÓØ"Ÿj™j˜]ŒH�T‰NØ×#Ò# DÐ0¨4Ò0Ð0r>c óò•UcSnURnURS:¼a7URSU<S[UR US55<SU<S35 X;aX1R U5 gU/X1'g)Nr>éúuntagged_responses[z] r]z += ["z"])rdr`r•rÈr‘r)rprìríÚurs rFÚ_append_untaggedÚIMAP4._append_untagged÷sh€Ø ‰;؈CØ × $Ñ $ˆØ Ø�z‰z˜Q‹Ø— ’ Ûœc "§&¡&¨¨R£.Ö1³3ð8ô9à ‹9Ø ‰G�N‰N˜3Õ à�eˆBŠGr>có¤•URRS5nU(a.URUSRURS55eg)NÚBYErçrŒ)rdr‘rXr›ry)rpÚbyes rFÚ _check_byeÚIMAP4._check_byesB€Ø×%Ñ%×)Ñ)¨%Ó0ˆÞ Ø—*‘*˜S ™WŸ^™^¨D¯N©N¸IÓFÓGÐ Gð r>c óŠ•UR[U;aDSUlURSU<SUR<SSR [U5<35eSH!nX0R ;dMUR U M# SUR ;a"UR (dURS5eUR5n[XR5nUS-U-nUH_nUcM[U[5(a[X`R5n[RU5(a [S 5eUS-U-nMa URnUbŽSUl[!U5[!UR"5LaUnOcSnUR$(a+U[S ['U5-UR5-nUS -nO%U[S ['U5-UR5-nUR(S :¼aUR+SU-5 OUR-SU-5 UR/U[0-5 UcU$UR75(a-UR8U(aU$UR75(aM-W(aU"UR:5nUR(S :¼aUR+S['U5-5 UR/U5 UR/[05 U(dU$M¼![2an UR5SU -5eSn A ff=f![2an UR5SU -5eSn A ff=f)NrÀrÁrÂrér‹ÚNOÚBADr�z#mailbox status changed to READ-ONLYó z&NUL, CR and LF not allowed in commandsz UTF8 (~{%s}r@z {%s}éz> %rzsocket error: %szwrite literal size %s)rar¤rbrTrÄrdrfr\Ú_new_tagÚbytesryrcrdÚ_control_charsrŒrµÚtypeÚ_commandrxrÈr`r•Ú_logrØrùrnrXr—rcre) rprër±rìÚtagrDÚargrbÚ literatorÚvals rFrçÚIMAP4._command sÕ€à �:‰:œX d™^Ó +؈DŒLØ—*’*ã" D§J¤JØ"Ÿi™i¬°©Õ7ð9ó:ð :ó 'ˆCØ×-Ñ-Õ-Ø×+Ñ+¨CÒ0ñ'ð ˜$×1Ñ1Ó 1Ø× × Ø—-‘-Ð EÓFÐ Fà�m‰m‹oˆÜ�TŸ>™>Ó*ˆØ�T‰z˜DÑ ˆÛˆC؉{™Hܘ#œs×#Ñ#ܘC§¡Ó0�Ü×$Ñ$ S×)Ñ)Ü Ð!IÓJÐJؘ$‘; Ñ$ŠDñ ð—,‘,ˆØ Ñ ØˆDŒLÜ�G‹}¤ T§]¡]Ó 3Ò3Ø#‘ à � Ø×$×$ؤ%¨¼¸W»Ñ(EÀtÇ~Á~Ó"VÑV�DØ%¨™n‘Gà¤%¨´#°g³,Ñ(>ÀÇÁÓ"OÑO�Dà Ø�z‰z˜Q‹Ø— ‘ ˜6 D™=Õ)à— ‘ ˜& 4™-Ô(ð 7Ø �I‰I�dœT‘kÔ "ð ‰?؈Jàð×$Ñ$×&Ñ&Ø×'Ñ'¨×,Ø�Jð×$Ñ$×&Ó&ö Ù# D×$>Ñ$>Ó?�àØ—:‘: “?Ø—J‘JÐ6¼¸W»ÑEÔFð ;Ø— ‘ ˜'Ô"Ø— ‘ œ$”öØàˆ ñ3øô ó 7Ø—*‘*Ð/°#Ñ5Ó6Ð 6ûð 7ûô2ó ;Ø—j‘jÐ!3°cÑ!9Ó:Ð:ûð ;ús0ÈK9Ë&LË9 LÌLÌLÌ MÌ)L=Ì=Mcó�•US:HnU(dUR5 URX#S9upEU(dUR5 US:XaURU<SU<SU<35eXE4$!URanURSU<SU<35eSnAfURanURSU<SU<35eSnAff=f)Nr)Ú expect_byez command: ú => ràz command error: ra)rÛÚ_get_tagged_responserXrT)rprërér°rìrDrìs rFÚ_command_completeÚIMAP4._command_complete^s¶€Ø˜(Ñ"ˆæØ �O‰OÔ ð @Ø×1Ñ1°#Ð1ÐI‰IˆCö Ø �O‰OÔ Ø �%‹<Ø—*‘*»$ÃÂTÐJÓKÐ K؈yÐøð�z‰zó @Ø—*’*³Dº#Ð>Ó?Ð ?ûØ�z‰zó @Ø—*’*³Dº#Ð>Ó?Ð ?ûð @ús#žA+Á+CÁ;BÂCÂ'CÃCcóæ•UR5upUS/:XaURS5e[USUR5nUR 5n[ UR 55Ulg)Nz"no CAPABILITY response from serverrç)r rTrdryrñÚtupleÚsplitr�rs rFr¬ÚIMAP4._get_capabilitiesps[€Ø—?‘?Ó$‰ˆØ �4�&‹=Ø—*‘*ÐAÓBÐ BÜ�#�b‘'˜4Ÿ>™>Ó*ˆØ�i‰i‹kˆÜ! #§)¡)£+Ó.ˆÕr>có•SUR;a^URRS5Sn[[XR5R 5R 55UlgUR5 g)Nrrç) rdÚpoprõrdryrñrör�r¬)rprís rFrœÚIMAP4._refresh_capabilitiesys_€à ˜4×2Ñ2Ó 2Ø×)Ñ)×-Ñ-¨lÓ;¸BÑ?ˆCÜ %¤c¨#¯~©~Ó&>×&DÑ&DÓ&F×&LÑ&LÓ&NÓ OˆDÕ à × "Ñ "Õ $r>cól•UR5nUS:XaUR5nUS:XaMURURU5(aœURR S5nX R ;aUR SU-5eURR S5n[X0R5nURR S5nX4/4UR U'GOSnUR[U5(d<URURU5(aURR S5nURcPUR[U5(a!URR S5Ul gUR SU-5eURR S5n[X0R5nURR S5nUcSnU(aUS-U-nS nURURU5(aÕ[URR S 55nURS :¼aUR!S U-5 UR#U5nUR%X4U45 ['XF5nUR5nUS:Xa$US :”aUR5nUS:XaUS :”aMURURU5(aMÕUR%X45 US ;auUR[(U5(aZURR S5n[X0R5nUR%X0RR S55 URS:¼aUS;aUR!U<SU<35 U$)Nr>rézunexpected tagged response: %rrærDÚdata2zunexpected response: %rrárrÉrâzread literal size %srÞr‰)rßràrÙz response: )Ú _get_lineÚ_matchr‘r™ÚgrouprcrXrdryÚUntagged_responser€Ú Continuationrer~Úintr`r•rÇrÖrGÚ Response_code) rpÚresprérìríÚdat2rErÉrDs rFr—ÚIMAP4._get_response‚sõ€ð�~‰~Óˆð�c‹kØ—>‘>Ó#ˆDð�c�kð �;‰;�t—z‘z 4× (Ñ (Ø—'‘'—-‘- Ó&ˆCØ×.Ñ.Ó.Ø—j‘jÐ!AÀDÑ!HÓIÐIà—'‘'—-‘- Ó'ˆCÜ�cŸ>™>Ó*ˆCØ—'‘'—-‘- Ó'ˆCØ),¨e¨ ˆD× Ñ  Ó %àˆDð—;‘;Ô0°$×7Ñ7Ø—;‘;˜t×3Ñ3°T×:Ñ:ØŸ7™7Ÿ=™=¨Ó1�Dà�w‰w‰ð—;‘;œ|¨T×2Ñ2Ø15·±·±¸vÓ1F�DÔ.Øà—j‘jÐ!:¸TÑ!AÓBÐBà—'‘'—-‘- Ó'ˆCÜ�cŸ>™>Ó*ˆCØ—'‘'—-‘- Ó'ˆC؉{ #˜CÞ˜3 ™:¨Ñ,�SðˆEØ—+‘+˜dŸl™l¨C×0Ñ0ô˜4Ÿ7™7Ÿ=™=¨Ó0Ó1�ØØ—z‘z Q“ØŸ ™ Ð#9¸DÑ#@ÔAØ—y‘y “�ð×%Ñ% c°¨;Ô7Ü$ SÓ0�ð—n‘nÓ&�ð˜S“j U¨Q£YØŸ.™.Ó*�Cð˜S“j U¨Q¥Yð+—+‘+˜dŸl™l¨C×0Ó0ð0 × !Ñ ! #Ô +ð Ð%Ó %¨$¯+©+´mÀS×*IÑ*IØ—'‘'—-‘- Ó'ˆCÜ�cŸ>™>Ó*ˆCØ × !Ñ ! #§w¡w§}¡}°VÓ'<Ô =à Ø�z‰z˜Q‹ 3Ð*>Ó#>Ø— ‘ ³²SÐ9Ô:àˆ r>cóV•URUnUbURU U$U(a$SnURRUS5nUbXE4$UR5 UR 5 Mo!UR a'nUR S:¼aUR5 eSnAff=f)Nr‰rÙ)rcrdrùrÛr—rXr`Ú print_log)rprérïÚresultrìrÚrìs rFrñÚIMAP4._get_tagged_responseÞs®€àØ×)Ñ)¨#Ñ.ˆFØÑ!Ø×(Ñ(¨Ð-Ø� æØ�Ø×-Ñ-×1Ñ1°#°tÓ<�Ø‘?à˜:Ð%ð �O‰OÔ ð Ø×"Ñ"Ô$ñ/øð0—:‘:ó ØØ—z‘z Q“ØŸ™Ô(Øûð  úsÁA1Á1B(Â"B#Â#B(có*•UR5nU(dURS5eURS5(dURSU-5eUSSnURS:¼aUR SU-5 U$UR SU-5 U$)Nzsocket error: EOFr z#socket error: unterminated line: %réþÿÿÿrâz< %r)rÏrXÚendswithr`r•rèrÑs rFrýÚIMAP4._get_lineÿs�€à�}‰}‹ˆÞØ—*‘*Ð0Ó1Ð 1ð�}‰}˜W×%Ñ%Ø—*‘*ÐBÀTÑIÓJÐ Jà�C�RˆyˆØ Ø�z‰z˜Q‹Ø— ‘ ˜6 D™=Ô)ðˆ ð— ‘ ˜& 4™-Ô(؈ r>cóü•URU5UlURbKURS:¼a;URSUR<SURR 5<35 URSL$)NrÓz matched rð)Úmatchr™r`r•rQÚgroups)rpÚcreÚss rFrþÚ IMAP4._matchsY€ð —)‘)˜A“,ˆŒØ Ø�w‰wÑ" t§z¡z°Q£Ø— ’ °3·;´;ÀÇÁÇÁÕ@PÐQÔRØ�w‰w˜dÐ"Ð"r>có¸•UR[[UR5UR5-nURS-UlSUR U'U$)Nr‰)r�rärdrgryrc)rprés rFrãÚIMAP4._new_tagsH€à�k‰kœE¤# d§k¡kÓ"2°D·N±NÓCÑCˆØ—k‘k A‘oˆŒ Ø$(ˆ×јSÑ!؈ r>có•U$r¬rM©rprês rFrÚ IMAP4._atom&ó€Øˆ r>có•U$r¬rMrs rFrÚIMAP4._sequence_set)rr>cóH•U(aUSS:Xa USS:XaU$SU-S-$)NrÚ(rçÚ)rMrs rFr÷ÚIMAP4._set_quote,s,€Þ �3�q‘6˜S“= S¨¡W°£^؈JØ�S‰y˜3‰Ðr>cóP•UR5S;aU$URU5$)N)ÚALLÚFULLÚFAST)rñr÷rs rFr1ÚIMAP4._fetch_parts1s'€ð �9‰9‹;Ð1Ó 1؈JØ�‰˜sÓ#Ð#r>có®•[U[5(a[XR5nUR SS5nUR SS5nSU-S-$)Nó\s\\ó"s\")rcrdräryrŒrs rFrVÚ IMAP4._quote8sL€Ü �cœ3× Ñ Ü˜Ÿ^™^Ó,ˆCØ�k‰k˜% Ó(ˆØ�k‰k˜$ Ó'ˆØ�c‰z˜DÑ Ð r>cóî•[U[5(a[XR5n[R U5(aU$U(a[ RU5cU$URU5$r¬) rcrdräryrAÚ fullmatchÚ_non_astring_charrŒrVrs rFrûÚIMAP4._astringDs[€Ü �cœ3× Ñ Ü˜Ÿ^™^Ó,ˆCÜ × Ñ ˜S× !Ñ !؈JÞ Ô$×+Ñ+¨CÓ0Ñ8؈JØ�{‰{˜3ÓÐr>cóî•[U[5(a[XR5n[R U5(aU$U(a[ RU5cU$URU5$r¬) rcrdräryrAr+Ú_non_list_charrŒrVrs rFrNÚIMAP4._list_mailboxMsZ€Ü �cœ3× Ñ Ü˜Ÿ^™^Ó,ˆCÜ × Ñ ˜S× !Ñ !؈JÞ ”>×(Ñ(¨Ó-Ñ5؈JØ�{‰{˜3ÓÐr>cóF•URXR"U/UQ765$r¬)ròrçrÏs rFrúÚIMAP4._simple_commandVs!€à×%Ñ% d¯MªM¸$Ð,FÀÒ,FÓGÐGr>cóÌ•US:XaX4$X0R;aUS/4$URRU5nURS:¼aURSU<SU<35 X4$)NrßrÓrÔz] => )rdrùr`r•)rprìrírërDs rFrèÚIMAP4._untagged_response[se€Ø �$‹;Ø�8ˆOØ×.Ñ.Ó.ؘ˜�;Ð Ø×&Ñ&×*Ñ*¨4Ó0ˆØ Ø�z‰z˜Q‹Ø— ’ »TÂ4ÐHÔI؈yÐr>có•Uc[R"5n[R"S[R"U55n[RR SX2S-S-U4-5 [RR 5 g)Nz%M:%Sz %s.%02d %s éd)ÚtimeÚstrftimeÚ localtimer¶ÚstderrÚwriteÚflush)rprÚsecsÚtms rFr•Ú IMAP4._mesgis`€Ø‰|Ü—y’y“{�Ü—’˜w¬¯ª°tÓ(<Ó=ˆBÜ �J‰J× Ñ Ð-°¸3±hÀ±^ÀQÐ0GÑGÔ HÜ �J‰J× Ñ Õ r>cóˆ•U(dgSUR55nURSSRU5-5 g)Nc3ó6# •UHupUSU<3v• M g7f)ú: NrM)Ú.0ÚkeyÚvalues rFÚ Ú!IMAP4._dump_ur..ss%é€ðBÚ&@™ ˜ð�u˜B˜u™iÕ(Ú&@ùs‚zuntagged responses dump:z )Úitemsr•rÄ)rpÚuntagged_resp_dictrHs rFrwÚIMAP4._dump_urps=€Þ%ØñBØ&8×&>Ñ&>Ô&@óBˆEà �J‰JÐ1°H·M±MÀ%Ó4HÑHÕ Ir>cóΕU[R"54URUR'U=RS- slURUR:¼aSUlgg)Nr‰r)r7r”r“r’rÑs rFrèÚ IMAP4._logwsS€à04´d·i²i³kÐ/BˆD�M‰M˜$×+Ñ+Ñ ,Ø × Ò  Ñ "Õ Ø× Ñ  D×$5Ñ$5Ó5Ø$%�Õ!ð6r>có •URS[UR5-5 URURp!U(aBUR"URU6 US- nXR:¼aSnUS-nU(aMAgg! N*=f)Nzlast %d IMAP4 interactions:r‰r)r•rÈr”r“r’)rpÚiÚns rFrÚIMAP4.print_log~sƒ€Ø �J‰JÐ4´s¸4¿=¹=Ó7IÑIÔ JØ×$Ñ$ d×&7Ñ&7ˆqÞðØ—J’J § ¡ ¨aÑ 0Ñ1ð�Q‘�Ø×)Ñ)Ó)Ø�AØ�Q‘�÷’!øðÙús ÁB  B )r~rŸr€r”r“r’ryrhr�rer`rÁrqrfrbr™rXrrr¿rarcrgr�r‘rdrWrxr˜)r]Ú*)röFr¬)F)^rOrPrQrRÚ__doc__rlrTrXr\Ú IMAP4_PORTrtrir…rkr©r­r²r»rjrÇrÏrØrmr¸rîrórr r rrÝrr r$r(r+r.r3r9r?rDrJrRrYr]r\r°rnrqrtré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ãrrr÷r1rVrûrNrúrèr•rwrèrrSrMr>rFrr•sí†ñ-ô^!� Ô Ü�ÔÜ�5Ôà Z¸ôò2Fò<ò+7ò\Cò òò 1ð °Tô -òòò ò ò ò7ò"CòTò.ò<7ò-ò ò@òFòFò8ò ò 7ò 7ò 8ò?ò:ò'ô 7ò ò Bò 5ò ô 7ò=ò7ò,ò :ò ?ò?ò7ô&Bò@Mò?ò:ò 7ô7ò. 7ò:òIò 7ò.7òbKò ò 1ò, òHò Pòfò$/ò%òYôxòBò& #òòòòò $ò!ò ò òHò ðô ò Jò &õ r>rcóF•\rSrSrSrS\4SSS.SjjrSrS\S4SjrS r g) Ú IMAP4_SSLiŽa?IMAP4 client class over SSL connection Instantiate with: IMAP4_SSL([host[, port[, ssl_context[, timeout=None]]]]) host - host's name (default: localhost); port - port number (default: standard IMAP4 SSL port); ssl_context - a SSLContext object that contains your certificate chain and private key (default: None) 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. r]N)r­rscól•Uc[R"5nX0l[R XX$5 gr¬)r©rªr­rrt)rprqrrr­rss rFrtÚIMAP4_SSL.__init__Ÿs*€àÑ"Ü!×8Ò8Ó:� Ø*Ô Ü �N‰N˜4 tÕ 5r>cót•[RX5nURRUURS9$)Nr¦)rr»r­r«rq)rprsr¿s rFr»ÚIMAP4_SSL._create_socket¦s;€Ü×'Ñ'¨Ó6ˆDØ×#Ñ#×/Ñ/°Ø@DÇ Á ð0ðKð Kr>có0•[RXX#5 g)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)rrjros rFrjÚIMAP4_SSL.open«s€ô �J‰J�t 4Õ 1r>)r­) rOrPrQrRrRÚIMAP4_SSL_PORTrtr»rjrSrMr>rFrUrUŽs1†ñ ð!#¨ð 6Ø$(°$ö 6ò Kð  ^¸T÷ 2r>rUcó@•\rSrSrSrSrS SjrSrSrSr S r S r g) ri¶zÖ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. có:•Xl[RU5 gr¬)rµrrt)rprµs rFrtÚIMAP4_stream.__init__Âs€ØŒ Ü �‰�tÕr>Nc ó8•SUlSUlSUlSUl[R "UR [[R[RSSS9Ul URRUl URRUl g)zmSetup a stream connection. This connection will be used by the routines: read, readline, send, shutdown. NT)ÚbufsizeÚstdinÚstdoutÚshellÚ close_fds)rqrrr¿rÁÚ subprocessÚPopenrµrÚPIPErrbÚ writefilercÚreadfileros rFrjÚIMAP4_stream.openÇsq€ð ˆŒ ؈Œ ؈Œ ؈Œ Ü!×'Ò'¨¯ © Ü'Ü—/‘/¬*¯/©/Ø $ñ(ˆŒ ðŸ™×+Ñ+ˆŒØŸ ™ ×+Ñ+ˆ� r>có8•URRU5$rÄ)rjrÇ)rprÉs rFrÇÚIMAP4_stream.read×s€à�}‰}×!Ñ! $Ó'Ð'r>có6•URR5$)rÎ)rjrÏr�s rFrÏÚIMAP4_stream.readlineÜs€à�}‰}×%Ñ%Ó'Ð'r>cón•URRU5 URR5 g)rÕN)rir;r<r×s rFrØÚIMAP4_stream.sendás$€à �‰×јTÔ"Ø �‰×ÑÕr>có •URR5 URR5 URR 5 g)rÛN)rjrÝrirÚwaitr�s rFrmÚIMAP4_stream.shutdownçs2€à � ‰ ×ÑÔØ �‰×ÑÔØ � ‰ ×ÑÕr>)rµrÁrqrrrrjr¿ri)NNN) rOrPrQrRrRrtrjrÇrÏrØrmrSrMr>rFrr¶s%†ñòô ,ò (ò (ò õ r>rcó0•\rSrSrSrSrSrSrSrSr g) riïzSPrivate class to provide en/decoding for base64-based authentication conversation. có•Xlgr¬©r)rpÚmechinsts rFrtÚ_Authenticator.__init__õs€Ø� r>cól•URURU55nUcgURU5$)Nó*)rr›re)rprDÚrets rFrÚ_Authenticator.processøs0€Ø�i‰i˜Ÿ ™  DÓ)Ó*ˆØ ‰;ØØ�{‰{˜3ÓÐr>cóú•Sn[U[5(aURS5nU(aK[U5S:”a USSnUSSnOUnSn[R "U5nU(aX$SS-nU(aMKU$)Nr>r„é0rç)rcrdrerÈÚbinasciiÚ b2a_base64)rpÚinpÚoupÚtÚes rFreÚ_Authenticator.encodeþs€€ðˆÜ �cœ3× Ñ Ø—*‘*˜WÓ%ˆCÞÜ�3‹x˜"‹}ؘ˜�H�ؘ"˜#�h‘à�Ø�Ü×#Ò# AÓ&ˆAÞØ˜c˜r˜F‘l�÷ˆcðˆ r>có>•U(dg[R"U5$)Nr>)r€Ú a2b_base64)rpr‚s rFr›Ú_Authenticator.decodes€ÞØÜ×"Ò" 3Ó'Ð'r>rwN) rOrPrQrRrRrtrrer›rSrMr>rFrrïs†ñòò ò õ0(r>rz0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Decrar‰c ó�•[RU5nU(dg[URS5nURS5n[ URS55n[ URS55n[ URS55n[ URS55n[ URS55n[ URS 55n [ URS 55n U S -U -S -n US :XaU *n XRXFXxS S S 4 n [ R "U 5U - n [R"U 5$)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ç) Ú InternalDaterÚMon2numrÿrÚcalendarÚtimegmr7r9)rr™r‹rŒr�rŽr�rÅr�r‘r’ÚzoneÚttÚutcs rFr r s€ô × Ñ ˜DÓ !€BÞ Øä �"—(‘(˜5“/Ñ "€CØ �H‰H�WÓ €Eä ˆb�h‰h�u‹oÓ €CÜ ˆr�x‰x˜ÓÓ €DÜ ˆr�x‰x˜ÓÓ €DÜ ˆb�h‰h�u‹oÓ €CÜ ˆb�h‰h�u‹oÓ €CÜ �—‘˜Ó!Ó "€EÜ �—‘˜Ó!Ó "€Eð �"‰H�uÑ ˜bÑ €DØ �ƒ}؈uˆà �S ¨"¨b°"Ð 5€BÜ �/Š/˜"Ó  Ñ $€Cä �>Š>˜#Ó Ðr>có†•SnSn[[U55nU(a![US5upX#US-U-nU(aM!U$)z-Convert integer to A-P string representation.r>sABCDEFGHIJKLMNOPér‰)rÚabsÚdivmod)ÚnumrìÚAPÚmods rFr r AsK€ð €CÐ'ˆrÜ Œc�#‹h‹-€CÞ Ü˜#˜r“?‰ˆØ�S˜‘Uˆm˜cÑ!ˆ÷ ˆ#ð €Jr>cóŒ•[RU5nU(dg[URS5R 55$)z-Convert IMAP4 flags response to python tuple.rMrý)ÚFlagsrrõrÿrö)rr™s rFr r Ns5€ô �‰�TÓ €BÞ Øä �—‘˜'Ó"×(Ñ(Ó*Ó +Ð+r>cóZ•[U[[45(a5[R"U[ R 5R5nGO)[U[5(a´[USS5nUcƒ[R(a]USnUS:Xa-[R"[R"U55Sn[R [R4U*nO[R *n[US9n[USSS[ U506nO`[U[5(aUR c [#S5eUnO0[U[$5(aUS US4S :XaU$[#S 5eS R'[(UR*5nUR-U5$) 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. Ú tm_gmtoffNérç)ÚsecondséÚtzinfozdate_time must be awarer)Ú"r«zdate_time not of a known typez"%d-{}-%Y %H:%M:%S %z")rcrÚfloatrÚ fromtimestamprr›Ú astimezonerõr¥r7Údaylightr9ÚmktimeÚaltzonerrªrµrdÚformatÚMonthsÚmonthr8)rþÚdtÚgmtoffÚdstrËÚfmts rFr r YsX€ô�)œc¤5˜\×*Ñ*Ü × #Ò # IÜ$,§L¡Ló2ß2<±*³,ò ä �Iœu× %Ñ %ܘ K°Ó6ˆØ ‰>Ü�}�}Ø ‘l�ؘ"“9ÜŸ.š.¬¯ª°YÓ)?Ó@ÀÑC�CÜŸ=™=¬$¯,©,Ð7¸Ñ<Ð<‘äŸ-™-˜�Ü &Ñ)ˆÜ �y  !�}Ð =¬X°e«_Ñ =‰Ü �Iœx× (Ñ (Ø × Ñ Ñ #ÜÐ6Ó7Ð 7Ø ‰Ü �Iœs× #Ñ #¨°1©°iÀ±mÐ(DÈ Ó(QØÐäÐ8Ó9Ð9Ø "× )Ñ )¬&°·±Ñ*:Ó ;€CØ �;‰;�sÓ Ðr>Ú__main__zd:s:)rMrMz-dz-s)r]zIMAP password for z on Ú localhostrBzJFrom: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)sdata...%(lf)sÚ )rWÚlfrY)r )ú /tmp/xxx 1)r†)r½z/tmp/yyy)r©ú /tmp/yyz 2rr¿)rR)z/tmpzyy*)r’r¾)rŒ)NÚSUBJECTÚtest)r3)Ú1z(FLAGS INTERNALDATE RFC822))r¶)rÂÚFLAGSz (\Deleted))rtrM)r.rM)rîrM)rÝrM)r’rM)ró)Ú UIDVALIDITY)rÆ)r/r")ró)r�)r°rMcó¾•[RU<SU<35 [[U5"U6up#[RU<SU<SU<35 US:XaUSeU$)Nrarðrßr)ÚMr•r¥)Úcmdr±rìrís rFÚrunrȹsL€Ü �‰›3¢Ð%Ô&Üœ1˜c”? DÐ)‰ˆÜ �‰££cª3Ð/Ô0Ø �$‹;˜c !™f˜ ؈ r>rzPROTOCOL_VERSION = %szCAPABILITIES = rR)z/tmp/zyy%z .*"([^"]+)"$rçr$rÆz%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 )r)\rRr–r€rßrŽrzr¸rfr¶r7r—rrrÚiorr©r¨Ú ImportErrorÚ__all__rùr_rSr\ržrÐrÆr¤r{rr¤r•r}r~rørrr€r|rrår,r/rArGrrUrrrrör³Ú enumeraterer–r r r r rOÚgetoptÚgetpassÚargvÚoptlistr±rTrìÚstream_commandÚoptrrqÚgetuserÚUSERÚPASSWDÚ test_mesgÚ test_seq1Ú test_seq2rÈrÆrar•rŸr�rÇÚmlrr™rÿÚpathrírÆÚprint)rOrs00rFÚrÜs˜ðñ ð,€ çK×K×K×KÓKß2Ñ2Ý"ðÛØ€Hò 8€ð €Ø €Ø € Ø€Ø(€ð €ð€ð, àÐ,ð, ð ˜ ð, ð ÐAð , ð ˜ ð , ð ˜ ð , ð ˜ ð, ð Ð,ð, ð Ð,ð, ð Ð,ð, ð ˜ ð, ð Ð,ð, ð ˜ ð, ð ˜ ð, ð Ð,ð, ð Ð,ð!, ð" Ð,ð#, ð$ Ð,ñ%, ð& Ð,ð', ð( Ð,ð), ð* ˜ ð+, ð, ÐAð-, ð. Ð,ð/, ð0 ˜ ð1, ð2 Ð,ð3, ð4 ÐAð5, ð6 ˜ ð7, ð8 ˜ ð9, ð: Ð,ð;, ð< ˜ ð=, ð> Ð,ð?, ð@ Ð,ðA, ðB Ð,ðC, ðD Ð,ðE, ðF ˜ ñG, ðH%Ø,Ø%Ø,Ø%Ø%Ø,Ø%òW, €ð`�zŠzÐ0Ó1€ Ø � Š Ð4Ó5€Ø�zŠzðó€ ð �*Š*Ð+¨R¯X©XÓ 6€Ø �*Š*�^Ó $€ð— ’ ÐDÓE€ Ø—J’JÐGÓHÐà—*’*Ø;¸R¿X¹XóG€ð "€ØJÐð—’˜MÓ*€Ø—J’JÐ@ÓAÐØ—’Ð;Ó<€Ø �*Š*Ð+Ó ,€ô7÷ tñtön' ô#2�Eô#2ðJ ‡N�N�;Ôô5�5ô5÷r*(ñ*(ðX <× AÑ AÀ#Ó F€Ù&/°°q°r° Ô&;Ô <Ò&;™d˜aˆ1�8‰8‹:�a˜‘cŠ>Ñ&;Ò <€òòF ò,ò$ðP ˆzÔ÷ ðØŸ š  c§h¡h¨q¨r l°FÓ;‰ ˆ�ð€NÛ‰ˆˆCØ �$‹;Ù˜“HŠEØ �D�[Ø ˆNß�4 Ð 1šñ ö ˜�à �‰7€Dà �?Š?Ó €DØ �_‹_»tÀT×EXÈ[ÒEXÐYÓ Z€Fà\ÐgkÐrvÑ_wÑw€Ià ˆt�VˆnÐØØ*ØØ � ˜d D¨)Ð4Ð5ØØØ)Ø3Ø,ØØØØð€Ið$Ø!ØØØ ��d˜D )Ð,Ð-ØØð€Iòð)Þ Ù˜^Ó,‰Aá�d“ ˆAØ �7‰7�fÓ Ø! ! "˜ ˆIØ �‰Ð'¨!×*<Ñ*<Ñ<Ô=Ø �Š q§~£~Ð7Ô8ã!‰HˆC�Ù ��TŽNñ"ñ�fÐ.Ö/ˆBØ—’˜/¨2Ó.ˆBÞ˜"Ÿ(™( 1›+‘4ØŸ™› B™�$Ù �˜4˜'Ö "ñ 0ó "‰HˆC�Ù�c˜4“.ˆCà�DˆzÐ7Ó7Ùà�b‘'—-‘-“/ˆCÞ™Ù �˜ ¨¨B©¡ØPðRö Sñ"ñ ÐÕ ð{øðC3ó؃Hðüóx/ =øð^ �<‰<óØ‰ ˆ–ûðûðj Ù ÐÔ æÙ ðð ‡h�hˆq�kñô ð ús<ºQÈ Q,É#Q2Ì.D-RÑQ)Ñ(Q)Ñ2RÒR Ò RÒ*R?