Files
archy/core/target/debug/deps/libmio-ee5a302a272889ff.rmeta
T

1383 lines
439 KiB
Plaintext
Raw Normal View History

rust
#rustc 1.93.0 (254b59607 2026-01-19)Áõ…·fÊ ¦%g--c48c539199cbc88bÁ³VOÐêùÿ²?ÑL¼§Ì±-a7a40eb546f9e2b0Áá\ƒ¦è3$|]åŒ[IÚ tæ-14b12edc9f8cd90bÁë&Gf·Ã ¬ëñq:¤»b-bb76018b1173caf6Áà 9m Ù„«ÐÒþá•cB;-030c5b0bba47cc8fÁrustc_std_workspace_coreÁÛ¹þÓ7>H%¸ÚÉ­-4b81d37a5530864dÁüÃùs<Uß7VyóHr#QÏ-c66cc7807550ce25Á miniz_oxideÁõFÖˆÚ™ª‹"ÞXzLVª-62cbc7af83058505Áadler2Á—wÉD‘嵯|6¨%Œ
+-2f171dd2394b4b62Á hashbrownÁ,ïcV¼¨ø¢:Ê\'È߈-9571ba9e0f6c7a90Árustc_std_workspace_allocÁ%¥Èxµù·¼5Ä3Bœ-aac566ad65903fa4Á
std_detectÁMmáýZ^9õ Îà§e˜÷e-2edb296e590136d8Árustc_demangleÁ@¼§VÉNb˜æ¨fHÌ+V3-53b132e4a2fa6e26Ácfg_ifÁfÝv.Å"ÒÜuPp¹ˆ¶-f76b385d7d4d7f3eÁ addr2lineÁÕú-WiúQVÓ¬
µT§5-fe25100bd73e48e4ÁgimliÁ¹xLáÇí÷‘o±Ñ8£Å-265ba9e6e4f70b3fÁobjectÁÔ³ÝzÓÿ¶ò°öM›¼òü`-9ae0d1f8ea52a318ÁmemchrÁRÎ÷׎™te~QÓ¿ØC\Ò-0bff3c8e8f4e489eÁ  –©HtGNÏ·ˆ!á-d69228d077d46f36Áà *Aqu¯™§þI4?»R-ad9e219d1461fd28ÁWLISTEN_BACKLOG_SIZEÁœÌØÇ¬ÓØredoxÁ<úœîØL‡espidfÁD“¤‡ØhorizonÁL­¬¡üÍkWØL€hermitÁDŒ¤€W%
ØLý"ÇL‰#¬ý"ØL˜#§<¤#œ˜#ØL±#ÀD½#¤±#ØLË#ÚL×#¬Ë#ØLæ#linuxÁ<ò#œæ#ØLÿ#freebsdÁL$¬ÿ#ØLš$openbsdÁL¦$¬š$ØLµ$wasiÁ4Á$”µ$ØLÍ$„ DÙ$¤Í$Ûlç$appleÁ<÷$¼ç$ü÷"Šüó"„ 4áØ„ Dì¤àÇÇÓCountÁ,ÔØL¸netbsdÁDĤ¸ÓFilterÁ4üØ dragonflyÁ\º¼®Ø
¬Çد
¬Þü­GÓó ØÞ ¤ºÓFlagsÁ,õØ ¼§Ø
¬Àد
¬×ü¦GÓï
Ø
Þ
¤²
³RawFdÁ,Ø„ DÞ¤Ò˜AsRawFdÁ<ÚØ„ Dµ¤©˜ FromRawFdÁLãØ(&$ØL„ D¤‘°«Ø¾
SocketAddrExtÁl9ØLandroidÁL¬¾l}ØLNû <ZœN¾testsÁ,Á%à$¶%Áset_nonblockingÁ|ƒŒØL©‹aixÁ,µ‹Œ©‹ØL¼‹illumosÁLÈ‹¬¼‹ØLÓ‹solarisÁLß‹¬Ó‹ØLê‹vitaÁ4ö‹”ê‹ü¨‹UWshellÁ,§8ÿos-pollÁHÿŽ˜ÿ¨ÿƒ Ø „ Dø ¤ì  AsRawSocketÁ\Ï Ç ÅAsFdÁ$Ø
Ø
„ D³
¤§
Å
ØÅ
BorrowedFdÁTç
ØB@>«
Ø[YW IntoRawFdÁLþ
Ø}{yOwnedFdÁ<‰
Ø›Åá
,
Ø´²´ÅÔ
Ç< 
ÅAsSocketÁD×
Ç!BorrowedSocketÁtá
Ç@C
FromRawSocketÁlñ
Çad
IntoRawSocketÁl€
LJŠOwnedSocketÁ\
Ç¡¤¦Å RawSocketÁLœ
ǾÁÄõ Ø „ D‚ ¤ö  ر Ø8646„« ØQOMO„í Øjhfh„ ؃á
 Øœš˜š„Ô\™ Ç Þ Çú Ç*-/„œ Ç>AC„½ ÇRUW„Þ Çfik„ý Çz}äõ Ø „ Dµ ¤© ä Øä± Ø864« ØQOMíL€ Øjhf< ؃äá
,” Øœš˜šäÔ Ç äÞ Çäú Ç*-œ Ç>A½l ÇRUÞ\‘ Çfiý Çz}macrosÁ cfg_os_pollÁcfg_not_os_pollÁ
cfg_os_extÁcfg_netÁ
cfg_io_sourceÁcfg_any_os_extÁtraceÁºerrorÁlogÁinterestÁREADABLEÁWRITABLEÁAIOÁLIOÁPRIORITYÁôƒÒremoveÁ is_readableÁ is_writableÁis_aioÁis_lioÁ is_priorityÁ#Ø#í&î(ÍÄ ********** *
* * *
****ã<registryÁ*RegistryÁ>selectorÁ> has_wakerÁ*A¬AÄ *D as_raw_fdÁ*FÍ*HregisterÁIH
reregisterÁK­H
deregisterÁM­H try_cloneÁO Hregister_wakerÁHÊ*SÍ*UÿsysÁWîtokenÁYZïwakerÁ\\\\\\b c bwakeÁeventÁf!gggggl¼ lâlôlis_errorÁlis_read_closedÁlis_write_closedÁl lllfrom_sys_event_refÁgwÍx EventDetailsÁy
y'aÁyìx}ÍfeventsÁEventsÁƒinnerÁ
with_capacityÁcapacityÁis_emptyÁ£ clearÁ« ŒÓ"Œ½ŒIntoIterÁŒŠ Ó"½¥  size_hintÁÃÍfsourceÁSourceÁŸžŸµŸÍ££ž£µ£ÍfffffÙ´pipeÁµµµµ´featuresÁguideÁInterestÁ½
½ìÂÕĘ ÇÈ
ɤ  ËÐA Í W debug_detailÁWÙÐsyscallÁWÐÊÓÓÓÓÓÓÓÓÓÓ Ó
Ó Ó Ó
ÓÓÓÓÓÓÓÓNEXT_IDÁÓÉ Óó Óï ÓUDataÁÓkeventÁÓï ïåñ ïselectÁó ó ó ïž÷ ï setup_wakerÁù ï!û Ókevent_registerÁý ý ý Ó check_errorsÁÓÿÓÓÓšÓÓ‡#
ìÓŽšŽÓÓ¦#Ó Ó
Ó!¼ âôÉ!Ø!í! 
debug_detailsÁ§
check_flagÁ§ check_fflagÁÓÐÐÓ ¬¬¬¬° °!ÐsourcefdÁ³³³³³³³³»Ó"»ž»µ»ÍÐÐ&ÁÁÁnew_rawÁÄ Ä ÓSelectorÁÇidÁÇkqÁÓ ÊÍïµÌ ïÍÎ Ó Ð½.ÓEventÁÒ
ÒìÓ
Õȧ
FilterDetailsÁ×
×ì§Úͧ FlagsDetailsÁÜ
Üì§ßͧ
FflagsDetailsÁá
áì§äÍÓstateless_io_sourceÁæææææææ
IoSourceStateÁí
æï ïdo_ioÁñññïžïµïÍÓ¬¯ùÊù¼ ¬üͳSourceFdÁþ
þÓ"þì³Ó"ÍÐnetÁ
new_ip_socketÁ
new_socketÁSocketAddrCReprÁv4Áv6Á socket_addrÁ to_socket_addrÁÐtcpÁ˜˜˜˜˜˜˜˜˜˜ ˜
˜ ˜ ˜
˜ new_for_addrÁ˜bindÁ˜connectÁ˜listenÁ˜
set_reuseaddrÁ˜acceptÁ¬ ¬ ¬ ÐudpÁ°°°°°°°°°° °
°à4°only_v6ÁÐudsÁ¾¾¾¾¾¾¾¾datagramÁÆÆÆÆÆÆÆÆÆÆ bind_addrÁÆunboundÁÆpairÁ¾listenerÁÓÓÓÓÓÓÓÓÓÓ Ó
Ó Ó Ó
ÓÓÓÓÓÿ6Óž5ç ¾streamÁéééééééé connect_addrÁéŸ7¾UNNAMED_ADDRESSÁ¾ path_offsetÁ¾ unix_addrÁ¾Ÿ7öö ÁÁÁÁÁÁÁÁ Á
Á Á Á
ÁÁÁÁÁÁÁÁÁÁÁÁ Áêtry_ioÁ­1 ÁžµÍÁwriteÁœ write_vectoredÁž flushÁ  Á¢”;£ ¢¦;¥ ¢Á;§ Á©ïÁ« from_raw_fdÁÁ­ÿÁ¯ into_raw_fdÁÁ±ïÁ ³as_fdÁÁ
µïÁ ·ê·Ï:¹­1¹¹ Á ½ž½µ½ÍÁ
ÁreadÁÂ Á
read_vectoredÁÄ ÁÆÁ=Ç ÆÒ=É ÁËïÁÍïÁ϶<ÁÑÿÁÓ‘<ÁÕïÁ×Û<ÁÙïÁêÁSenderÁÜ•#ÁÞÍÁ÷à•#ÁâÍYTokenÁä
äìYYYéÈYëÍYYîÕYð˜Yò¤ Y ôÐY
ö¢÷µ\¯ù•#\ûÍg…/ý•#gÿÈIterÁÓ"•#posÁÓ"͈Ó"ˆÈ io_sourceÁ 
  
IoSourceÁœœœ•#œ selector_idÁ¡¡ ¡˜1¤­1¤¶1¡
into_innerÁ¨¨š¨¬¬¯¯ž¯µ¯Í´´Í· UNASSOCIATEDÁ· · associateÁ·check_associationÁ·remove_associationÁ½È
SelectorIdÁ¿½.ÁÍ»2Ãû3Ä«7ÅÅÅÅÅÅÅÅÅÅ Å
Å Å Å
ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ TcpListenerÁã•#Ååà4åfrom_stdÁåž5è é å
local_addrÁåset_ttlÁåttlÁå
take_errorÁÅïžïµïÍÅóÍÅõ¶<Å÷ÿÅù‘<ÅûïÅýÛ<ÅÿïÅ ïÄĪ8 
  
 TcpStreamÁ¡•#£ì4£ïF£ peer_addrÁ£G£shutdownÁ£ set_nodelayÁ£nodelayÁ££G£²G£½G£peekÁ® £Ï:°­1°° ´Á=µ ´Ò=· ¹Á=º ¹Ò=¼ ¾”;¿ ¾¦;Á ¾Á;à Ŕ;Æ Å¦;È ÅÁ;Ê ÌžÌµÌÍÐÍÒ¶<Ôÿ Ö‘<
Øï ÚÛ< Üï
ÞïÄÃÃÃû5ääääääääää ä
ä ä ä
ääääääääää UdpSocketÁü•#äþà4þïFþ‘GþJþsend_toÁƒ þ recv_fromÁ þ peek_fromÁ þsendÁ þrecvÁ þþJ þì4þ
set_broadcastÁþ broadcastÁþset_multicast_loop_v4Áþmulticast_loop_v4Áþset_multicast_ttl_v4Áþmulticast_ttl_v4Áþset_multicast_loop_v6Áþmulticast_loop_v6Áþ£Gþ²Gþjoin_multicast_v4Áþjoin_multicast_v6Áþleave_multicast_v4Áþleave_multicast_v6Áþ…6þ½GþÏ: ­1   䤞¤µ¤Íä¨Í䪶<ä¬ÿ䮑<ä°ïä²Û<ä´ïä ïÃÔ6¹Â6ºººººººººº º
º º º
ºººººººººº UnixDatagramÁÒ•#ºÔà4ÕÔÿ6ÔïFÔì4ÙªUÔ7ÔŸ7Ü Ô‘GÔ›JÔ¨Oà ÔåOâ Ô”OäªUä ÔÔOç Ô½GÔ´JÔÏ:ë­1ëë ºïžïµïͺóͺõ¶<º÷ÿºù‘<ºûïºýïºÿÛ<º ï¹¹«7 
  
 UnixListenerÁœ•#žà4ŸªUžÿ6žïFžž5ž‘Gž½G¦ž¦µ¦ÍªÍ¬¶<®ÿ°‘<²ï´ïÛ< ¸ï¹¹ª8»»»»»»»»»» »
» » »
»»»»»»»»»»»»»»
UnixStreamÁו#»Ùì4ÚªUÙÛ8ÙïFÙŸ7Þ Ù‘GÙ›JÙ½GÙ´JÙÏ:ä­1ää »èÁ=é èÒ=ë »íÁ=î íÒ=ð »ò”;ó ò¦;õ òÁ;÷ »ù”;ú ù¦;ü ùÁ;þ »žµÍ»Í»¶<»ˆ ÿ» Š <»
Œ ï» Ž ï»  Û<»
ï¹ÃÃÃÃ'
)
)
)
B
C
C
E
G
G
G
I
I
K
K
M
M
O
Q
R
T
T
T
V
c
e
m
n
o
p
q
r
s
t
u
v
x
x
x
}
~
~
~

ˆ

Š



˜
˜
˜
 
 
¡
¡
¢
¢
¥
¥
¦
¦
§
§
Ã
Ã
Å
È
Ê
Ê
Ì
Ì
ñ
ó
ó
÷
ù
û
ý
ý


ƒ
ˆ
Š


ž
Ÿ
 
¡
¢
£
¤
¥
¦
§
§
§
¨
¨
©
©
±
²
½
½
¾
¾
¿
¿
Ë
Ë
Ë
Ì
Î
Ñ
Ö
Û
Û
Û
à
à
à
å
å
å
ñ
ñ
ñ
õ
õ
ö
ö
÷
÷
ý
ý
ý





¨
©
ª
«
¬
½
Ð
æ
ç
ñ
ô
õ


˜
˜


š
š
œ
œ
ž
ž
ž
 
¢
£
£
¥
¥
¥
§
®
´
¸
¹
¾
¾
¿
¿
À
À
Â
Â
Ä
Ä
Ä
Æ
Ç
Ç
É
É
É
Ò
Ø
ß
ß
ß
ã
ã
ã
ê
ì
ì
ì
ï
ï
ñ
ó
ó
õ
õ
÷
÷
ü
ü
ü




Š
¤
¤
«
®
±
±
²
²
³
³



º
º
»
»
¼
¼
¾
Â
Â
Â
è
ë
ì
í
î
ð
ð
ñ
ñ
ò
ò
ô
ô
ô
ø
þ
¦
§
¨
©
ª
«
¬
­
®
®
°
µ
µ
·
·
·
¹
º
º
¼
¼
¼
¿
¿
Á
Á
Á
Ã
Å
Æ
Æ
È
È
È
Ê
Í
Í
Î
Î
Ï
Ï
Ñ
Ñ
Ñ
Õ
Û


ƒ
ƒ



















˜

š
š
š


œ
œ
œ


ž
Ÿ
 
¥
¥
¦
¦
§
§
©
©
©
­
³
×
Ù
Þ
ß
à
à
â
â
ä
ä
ç
ç
é
ê
ë
ð
ð
ñ
ñ
ò
ò
ô
ô
ô
ø

¡
£
¤
¥
§
§
¨
¨
©
©
«
«
«
¯
·
Ü
à
á
â
ã
ä
é
é
ë
ë
ë
í
î
î
ð
ð
ð
ó
ó
õ
õ
õ
÷
ù
ú
ú
ü
ü
ü
þ




ƒ
ƒ





Ÿþ½½¾Ì&¿ì S®ª¢R¬â˜qž˜q˜q£˜qá˜qÞ˜qɘq˜qØqãï˜q˜qâ˜q˜qà`˜q¿(<<ã=¬*}v«ÙKBHà`Ârà`>>»?Ê*@Ù*³w§Õ1 p¿(ürà`ÇÇ­.Ƚ.ÓÉÇ.ÓKy4ÞŸåJ¿(ÀsÞÒÒÓ…/ÔìÓ º½ŸÌ¦%g¨âŠtŠtìŠtùŠt쌇#ìÓ Dn
ÿŒZ€ùët¨âëtëtà`×ר¬/Ùì 9#¥· à`ÜÜÝÛ/Þì °Ãt•UUAà`ááâ‰0ãì UúŒæ¥ŽŽà`ùù¯úʬû¼ ¬¢sl§È6¨Àà`þþÿ2ì ßÙàónúÃ7Ó"Ÿªwà`ÜÜû>Ý•#Áë/ ja“öŸïwßïwß 8ïwúïwœ.œ.
ChildStdinÁ.•#ò-¬Y0IÁ(ïw¿(ïwÃ(ïwúŠ)Š)‹)fdÁø(ÚMöû‹/Xïw¡)ïwúïw¦yà`àà÷á•#Á°¢‘å¦êY¯Ÿöy öy  8öyúöy°.°. ChildStdoutÁ±.•#ò-J@(óŽòOÁúöyÀ.À. ChildStderrÁÁ.•#ò-ò7´+õĈBÃ(öy¿(öyÁ(öyú¦yöy¡)öyúöy¦yþääåº?æì »gURÜt­Çá”|Þ”|à`”|¬â”|ž”|”|£”|É”|”|Ô|»b”|ú”|à`ùù¯ú•#\é610%%´Þýý…/þ•#gü O9·à`ê}à`yyz¼"|ìg E1uüR‹Æ8à`ñ@ƒ•#A|C¤cPú¹AÓ"Þß~®J Ó"ƒƒ‡#•#TÜØÕëô3ÞKß~à`³ŸBoxÁ샚íƒlÕ°Ù[¢'õ•E•EEGlobalÁ Ï€ûkW¬ s윜 BžŸ•# ÈB)Ö¤ØÛÉ»€ùó€Ÿó€à`ó€à`¿¿øDÀ½.>–ê¦E®
cÞäŸããÇFä•#Å´%`ãNà`£‚Ã(£‚¿(£‚Á(£‚ú¦y£‚¡)£‚ú£‚¦yúÉ!É!Ê!ÇFË!ì³! ´Ó•›n½£‚ ¡¡íI¢•#}qñÏ
í  8æƒßæƒßš„Ÿæƒà`æƒÃ(惿(æƒÁ(æƒú¦y惡)æƒú惦yúÆ!Æ!Ç!íIÈ!ì³! ¤mRç±ß#ÕæƒŸüüÖNý•#ä¡ÄyÿÒ´UÖà`Û…Ã(Û…¿(Û…Á(Û…ú¦yÛ…¡)Û…úÛ…¦yú¯"¯"°"ÖN±"ìŸ" ¬¯p–Æáæ¼Û…ŸÒÒUÓ•#ºÌ^–´§+îAà`ž‡Ã(ž‡¿(ž‡Á(ž‡ú¥%¥%¦%U§%ì‹% £Ïâ°Úz•Zž‡ú¦yž‡¡)ž‡úž‡¦yŸœœæX•#Ò,ý·†­öà`áˆÃ(ሿ(áˆÁ(áˆúð%ð%ñ%æXò%ìØ% Ž÷DzÊáˆú¦yሡ)áˆúሦy ×ר[Ø•#»š-þÄ•¼Â$  8¤Šß¤ŠßØŠŸ¤Šà`¤ŠÃ(¤Š¿(¤ŠÁ(¤Šú¶&¶&·&Ø[¸&ìä$ Bê›yÃ[J㤊ú¦y¤Š¡)¤Šú¤Š¦yÀ½çäÁ½íä½îäĽð䯽èäǽÕÒéäÿýˆ½¿É½òä˽ôä#½&½(½F<SÇÚ×ßÜäáüùþÞÜâàëäûùwý}y…ƒ´œÁ¿óãС¨üóÒªœ×D<U>Ç­ÜÑà÷ãÔ¡¬ü÷Ò®œˆ ×ÒÒÒŽ¨œÒ¬œ»þ࣯ܽœïãÌ¡¤üïÒ¦œ×Ü¢
¾¡Å
ò×ù
©Ü±Š)µÜËàÍàÕŠ)ÙàZûŠ)ÿãÉ!ØŠ)Ü¡ÞÆ!°Š)´ü¯"û¥%ýŠ)Ò²ð%´Š)¸œŒ ¶&Ž Š)’ ׫ÜÓàùãÖ¡®üùÒ°œŠ ׯÜÏàõãÒ¡ªüõÒ¬œ×³Ü×àýãÚ¡²üÿÒœ ×ÁàÆ
´¡¹
è×í
öäŒ
þѬ➣áÞÉ*Ããïâà`¿( §¨âIìùŸ ßMú$Á(³Ã(8¡)8 8»b$®JÞKH·
£ £ ¤ Ϧ ì ™‘‹ÖqËîEY^
 ty
ÃHû

˜q™– «–Ê;î HRÓ•ôˆ
Å
™–%/(Š

È"'˜q3™–;DNH·
).
ËDIQ
ÊP
ø°ú°û°Ðü°ý°þ°ìHˈXêE>üÕýÕþÕLessÁÿÕ€ÖÖ‚ÖƒÖ„ÖGreaterÁ…ÖiÒ6’<˲™–º™–«–2«–;Ýî êôИfH·
).
Ä@EM 
Ì
Ô™™–™–«–«–8î EO›½0b0001Á0b0010Á0b0100Á0b1000Á0b10000Áü™-
ü¢"

Ä¢

ã 
 5ü7
½ Æ
üñW
˜qD…
ˆ,iü¸ -
üÁ "

ÄÁ
Ò
 0ü¯ 7
½ å
ü W
˜q
ƒ,iü (
ìË
 ÄË
Òä
 /ü¹ 2
½ ê
üŸ M
˜q
,iüïA
ä‘
d
4

'˜

æ 7,˜
 œ
l 
< 

'¨
ò¡2
 ¬
­
üø6

Äø
Òæ& ­
üæK
½ °
·
ü¨
˜q
˜q
˜q,¿
^]]^Gî KvÌ»



'Ã
ò¡2
 Ç
X 
 Ó
ô»
 Ø

ß
üŠU

˜q
ÊÉÉ!AŒÌå



'í
ò¡2
 ñ
X 
 ý
ôå



ü´U

˜q
ÊÉÉ!AŒ¤†!
d‡!
4‡!

'Ž!
ò¡2,Ž!
 !
X !
 ™!
̆!
 ž!

¥!
 üÚ K

˜q
ÊÉÉ!AŒ¤¢"
d£"
4£"

'ª"
ò¡2,ª"
 ®"
X ²"
 µ"
Ì¢"
 º"

Á"
!üö!K
$“"
˜q$Š"
ÊÉÉ!AŒÌÈ#
dÉ#
4É#

'Ð#
ò¡2,Ð#
 Ô#
X DØ#
 à#
ôÈ#
 å#

ì#
"ü—#U
$¹#
˜q$°#
ÊÉÉ!AŒ|è$
í$

$è$
,ñ$
Tí$
ý$
%üº$C
˜q$Ù$
˜q$Ã$
˜q,É$
î Bƒ¯Š,ô%
|ó%

æï˜q˜q,,ü%
+Η%
Ôê%
&
'ü¸%S
ß%
˜qLÈ%
˜q,Ó%
c˜q˜q°*î .[¦°Êüä´'Dë´
 ­4ä´$ô´,ú´Lµüë´ ‘µIü¶²Û¨+¢ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶  ¡Ñ
íÓ¶neò¢Ëft†³ ür,ɲ ˆ²4в”|,ಘqLî².ä$-¼ 0 interestsÁ< ‚²qüÜÉ)TãÉ
¡ˆ²4ÜÉ$îÉ,ôÉLûÉüãÉ"‹ÊKüªÇá¨-¢ä²tüÇé³,¿Çö³4ÆÇ”|,ÖǘqLäÇ+ä$-¼ 0³4µç¼ŽÜT•Ü
¢ˆ²4ŽÜ$ Ü„•Ü«ÜMüÛÚШ/¢ä²tŠÛé³,ðÚö³4÷Úä$Sô¶¦(8õ
  H8´ §¸ª}' à`X8à §¸
¦y' 
3 พ£
œa´¹§¬puÕ
Ëì ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ѼѼÒ¼ štÀ.m Àsx Á`Á`œÃ`è Á]Ä`bufÁÁ]Ê­\É:•¾§¸Ç§¸¹à¸Â ª}ͧ¸à¸ž  ¦y¬’¼µþ%0ó»à¸'¼à¸ð¾¹Oª}ª}ª}`I™VÄ+Ä+)Å+ÛÆ+filterÁÇ+ÂÈ+fflagsÁÉ+dataÁÊ+udataÁkÏ¥BEï
ß½½Ÿ(I€V
ÒI…VÖ*Št5 Št?½½ê ½½õ[e¶¾
 û
œ ­1 »€:Bñü æê³í³î³Òï³ìð³ñ³ò³ìäs{©¶¶1µ³ ííîñ0 5¾9“Êj`í¿ Äõ¿Êó¿(þ+ioÁ0àç¿B® §¸ÚÔ §¸Às(à¸ì §¸
”|( 
4 ผ¾¹©®œ¡mrÊÚ³ýâ ‰ºî êvø’»§¸ §¸ûง» §¸Üà¸ä  ”|ñÒÄùRþ`k‡»à¸bÐÄà¸3¾¹Š¿ §¸ß $à¸NS
¨adiWvÛÄŽ‰ºš þþÿ2ì ßÙàónúÃ7Ñ’»Ù§¸áà¸Ò  ×ÅàÇèþ!›ÇงÆ6ª}÷ó ª}4AN 
 ùüØ#óßȤȤȡ¦Èø¤È³H%
Úèó¤È¦Ècª}ª}ª}¯7 §¸¨üÏ7 §¸œœ BžŸ•# ÈB)Ö¤ØÛÉááâ•#ǬÒ&)£à¸ÍÒ
šaãèÖÛúü´7߉º ïw*’»3§¸<§¸.à¸7  œËFµÍOpþ~³Íุ̞TÌKœË<ÝK
­1 áËê³í³î³Òï³ìð³ñ³ò³ìäs{©¶³Îµ³­ÎÌÌK,×K
¤á˭γμΦϳÎàÑt×KëKüÜJÍÎl€K„Í,ðJ­Î ÷JµÍ3ÊÏ('þ*XÀÏ¿ áK­ÎáK
œ ­Î0%-äKµÍÎàKÊÏÌ áË ÞK­Îþ×­ÎùœÑþÚ_  §¸¨ýü_ §¸œË)5à¸_d¸Ìqvdiˆýß_ã ‰º¬ öy’»¾§¸Æ§¸·à¸¿³ÍǵÍÏïþü³Íà¸ý¸ÌTýsœË<Žt
¼­Î³Î¼Î¦ÏÌýs,ˆt
¤á˼­Î³Î¼Î¦Ï³Îtetˆtœt¹üsÍÎl±sàÓ,¡s­Î ¨sµÍǪջ%þ(V Õ½ ’t­Î’tœÑ'Õ&•t¼@ÍΑtªÕWïÑ t­Îzþ˭Μшþÿÿÿÿ-1Á(•&š&ê$)”|5ÒÄ=FP(œ& 
§¸HÛ&ª}!à¸KP‡Æ]bPo¡&쉺ÒÄ’»£§¸«à¸œ ó»§ó»¯ÏþÜæ«Úà¸܇ÆùÛ&ª}ª}$ƒ¬&ï£&ÒÄÒĪ}lª}s5î BL°&ñ®& ÒÄ&0H…Û&ª}ª}(-
˪}ª}AFN¼&óP…²&ÒÄÒÄ ó»Žó»9î FPŸÝÀH†Û&ª}ª}(-
Ī}>CKÁ&õ¾&Ô™ÒÄÒÄ ó»ó»9î FPêÞ½H‡Û&ª}
¼bª}µ3Ã&DÇ&÷$/ÒÄ7 ªàBó»S`j¡à¬ø §¸ˆˆ §¸êv(4à¸^c¸ÌpuchˆýüŸ‰º« ·}µ’»½§¸Å§¸à¸¾ ŠÄÉŠÄÑñþþãà¸ÿ¸Ìˆ‰£Št
ߊt-5(‰ï
ýô,ê}7 ê}AŠtˆ¿Yc€ä¦\ï,Štü×,$¼×,
¤- -sü«,V$È,Óä,¾,ˆ¿k4´ås¼  §¸ˆŠå §¸ ³+à¸ü  §¸
ª}( 
4 บŸ¾¹¬±Ÿ¤mrÍŠÁå ‰ºñ ñ@ƒ•#A|C¤cPú¹A1’»:§¸C§¸5à¸> ßæJ§¸à¸ «Ú)ó»2þ¨ýèฟ«Úà¸m¾¹Çˆ‹åßæP‹üª}(‹Ã
ÈŠ1šè=˜èEßæý蘪}}ó»mw
ßßæÊ
ߪ}³Dˆ! ¡¡UniqueÁ£à ¤_markerÁùwe5)#š»€Îà óîÁ üæ«é»€ »€œüˆ!-D!
 »€ÈDš!,¤!L«!ü‘!$»!¥üöÅä² ûL‹ é³”|˜q »€Cû1ìì9B¬E¼ I³N‘íìDÕ" ñë¼ììì'üÕ"/TÞ"
¡»€SDé",ó"Lú"üÞ"&Š#¦üÁ!Éä²t¼"êíLØ!é³Dë!”|,ˆ"˜qLž"’îÉû-ìì5>¬A¼ E³JŠ¿ïæDÚ# ñë¼ììì'ìÚ#Tã#
¢»€RDî#¤ã#ý#§ü#mä²tÁ#êíLž#é³D©#’î¦ûìì#,¬/\æñ¨ ŽÁ »€ü·  
ñ»€í¿üÀN È F¬Â Ý ¤üÆ ®À ó€ í¿ à ŒÁ«õ¿Ÿ%þ(YÄó³\‹ »€œ «üà< õ¿ ›ô  .|” »€© ®üÝL ’îŒø ó€  1„Ê äüÊ$  
º. œÛ ø Ê% 

¡"ä²K$( 4F
ŽÁ »€´¶  
À(»€ 1  Ž î iê³í³î³Òï³ìð³ñ³ò³ìäs{©¶äߌi•Î/Wfìµ³
¤"ä²·ø CüùT D 
õ
    ü‘< Ó ±ü—¼ üÊ%  
ä²t ’ö é³D¿ ”| ˜q â—å—æ—}ç—ìè—é—iê—ìºÀe?=c&·øK䲃 ä¥È·øÑ ŽÁ1õ¿-¬ż ɳÎÚ
- #²Iâö"‘÷ú‡øŠ¬ùÛùÅ„Ž äüŽ, ŒŸ 
». ÜŸ ø Ž- 
‘÷E" .@
ŽÁT„ »€´„ L ‡ø + \  º i·ø¯ ¬ù ,ÈüÅV  
ö
     üÝ> ¡ ²üÙÈ œüŽ-  
ä² ’ö é³ ”|,  ˜q úú|ä²´ÛûÓ·ø øûb?õ¿^m¬p¼ t³yÚ
d Î<ñÂýK‘÷#‡ø¹¬ù1¿ÿj„’ äü’- ”£ 
¼. ä£ ø‘ ’. 
‘÷E" .@ ŽÁ
»€´ê  ‡ø
+   ¿ i·ø¯ ¬ù,ÈüÊ7  
÷   üÕ, ³ü§à ˆŽü’.   ä² ’ö é³ úú\ä²Ûû³â·øêøû@õ¿<Y¬\Ú
'ŸˆÂË‚‘÷æ‡ø|¬ùôÈ„-T’0 »€Œ’0 0 
á`»€1 ¡0 40 ©0 üÏ/Z ‰º\ü/ ›ô,Ö/ ’» Ý/ õ¿þ M–‡(‹1  
§¸x«1  §¸®¸®¸b¯¸ÓZiVwƒ'Vbฌ¸Ìž£µ1 Â͉ºÙÛûᒻ駸ñ§¸âà¸ê  èˆø³Š!þ/:±Šà¸1¸ÌOª}üò3$ 
„ò3 
¸¸”ƒ4 ¸ª}
9üÕ3L
¿  4 §4 ¹ü®3y äTÀ3 èˆ n¸ª}TÚS œœ BžŸ•# ÈB)Ö¤ØÛÉŸ…<ëS 
³­Î³Î Ÿ…ÍΦÏÌÚS ,åS 
¤Ÿ…³­Î³Î´¦Ï³ÎÍytåS ùS °üêR ÍÎlŽS æƒ,þR ­Î …S  ÑŒ&îÖ)þ,]äÄ ïS ­ÎïS œÑ' &òS ³[ÍÎîS îr Ÿ… ìS ­Î}þҭΟœÑþTƯ œœ BžŸ•# ÈB)Ö¤ØÛÉâ†<ׯ 
£­Î³Î â†ÍΦÏÌÆ¯ ,ѯ 
¤â†£­Î³ÎÇ‘¦Ï³ÎÑ|tѯ å¯  üÖ® ÍÎlú® Û…,ê® ­Î ñ®  ã0ƒ’ß+þ-aù‘Ì Û¯ ­ÎÛ¯ œÑ)=!'Þ¯ £gÍÎÚ¯ ƒ’ ↠د ­ÎþحέœÑþü¦̦
‚%ªU)øŸ ¦ 

¡"ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ÏJÏJ
SocketAddrÁÐJaddrÁä$ÑJ¾ ä$)V/ØÎе³à¹½ ÉÛü¦ }†–ôмÐ
×'  Åi·øR!
¤"ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ž‡µ³·øÈôÕüФü›YºÀ# †˜ÄøŠ•†–â—å—æ—}ç—ìè—é—iê—ìºÀe?=c&·ø†–¸•¸Z·øc†– †–«ª ž£•¢Ú
œþ „•"²•úŗ퀘 
&œœ BžŸ•# ÈB)Ö¤ØÛÉþ‡ÄË 
î뛘" 
G 
±%Š•ß? é ü€ i è Ù3ä²  ž‡ Š•  þ‡ã ë›mŠ•Ñr:ª =œ'.Š•ªë›üÆ 
投 þ‡ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ª}µ³ßÈŠ•üµ2
¤þ‡æŠ•¡ŸŠ ª}ÚËüÀ'íäüÛ²ŸŒ™ûßÈŠ•$ž8µ -1³º5ª 8p« ÔÜßÈŠ•ÄÎ
½%Š•H;”ÔææÞ²ŸÍµ õ’žŠ•ßÈ•#³ºßȪ !Š•I¯¢½ _ref__bufÁª TŸ3ë›<°3
î­Î³Î¦ŸÍΦÏÌŸ3,ª3
¤þ‡î­Î³Î¦¤¦Ï³Îptª3¾3ëü¯2ÍÎlÓ2û,Ã2­Î Ê2žÒפÆ%þ(Vͤ½ ´3­Î´3œÑ'*&·3îKÍγ3פb’ž ±3­ÎzþË­ÎŒœÑˆþüÇÌÇ„•!ø¡ Ç 
²•=" .@üÇ }†–,‰ôñ¼ñ
¡'¢ æi·ø· 
¤"ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶áˆµ³·øˆ,Ÿüñ¤ü¼Y¹¿" ¡©Ä™Š•$†–Ï™¸•Ä ·ø†–qËšWª K£•OÚ
Hª„•*²•
ᨘ›©üïÌï„•$‰!ø£ ï 
²•=" .@üï }†–ü™Ä™
Ü( ¤ Ži·ø¸ 
¤"ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶¤Šµ³·øˆ-¾Úü˜¦üäZ¹¿# ﭴÊ•†–Ï™¸•Å ·ø†–rËšXª K£•OÚ
H«„•+²• ¯­é­T¶*œœ BžŸ•# ÈB)Ö¤ØÛɶ‹<Ç*
ç­Î³Î ¶‹ÍΦÏ̶*,Á*
¤¶‹ç­Î³Î¿±¦Ï³ÎÍytÁ*Õ*äüÆ)ÍÎlê) ¤Š,Ú)­Î á) ܰ&ù±Ö)þ,]ï±Ä Ë*­ÎË*œÑ'+1&Î*ç[ÍÎÊ*ù±r ¶‹ È*­Î}þҭΟœÑþœ£
½¾%˜q08?M
½c¾p˜q{ƒŠ„ˆV
ÒÓ%Št0½½8?M
ÒcÓpŠt{½½ƒŠŒÈX
Œ%ët0ßAßA­âA³º«<ãA¾ «<µ[<™éŠtÁ€u|Š
 Œ­ët¸Á·ÀÇÐJë
ר&Âu18?M
×cØpÂu{Ðë
ÜÝ'úu29@N
ÜdÝqúu|ƒŠÐìë
áâ'²v29@N
ádâq²v|ƒŠ¼Ç
þÿ'ÎÆ3×Å;BP
þhÿuÎÆ×Å„Ê&
äå%”|0ª}7>L
äbåo”|zª}ˆ¼À@
yz%yyz¼"|ìg E1uüR‹Æ[ˆ¿cjx
yzŠ¿§ˆ¿¯*WY\f´»¼Ã‡#4Þ ƒ­ªÌ&Dø ½®ã$‘
<°»D—
>±º?,±
䲺?岯
ù³ü¨M¡  ¯8à$•  ®8Î ž ­8þ £ ¬8warningsÁüŽ#ü³OL Mio is a fast, low-level I/O library for Rust focusing on non-blocking APIsÁüƒPM and event notification for building high performance I/O apps with as littleÁüÔ2/ overhead as possible over the OS abstractions.ÁË\ # UsageÁËü›OL Using Mio starts by creating a [`Poll`], which reads events from the OS andÁüëMJ puts them into [`Events`]. You can handle I/O events from the OS with it.Á¹Ëü½" For more detail, see [`Poll`].ÁàËüä%" [`Poll`]: ../mio/struct.Poll.htmlÁüŠ/, [`Events`]: ../mio/event/struct.Events.htmlÁºË ## ExamplesÁÎËüÒPM Examples can be found in the `examples` directory of the source code, or [onÁ GitHub].Á°Ëü´EB [on GitHub]: https://github.com/tokio-rs/mio/tree/master/examplesÁúË ## GuideÁËüA> A getting started guide is available in the [`guide`] module.ÁÑËÌÕ ## Available featuresÁïËüóDA The available features are described in the [`features`] module.Á*WY\f´»¼Ãu‡#vƒ­ªÌ&u½®ãt<°»s>±º?r䲺?ƒå²¯rù³þT‚ 4† Ķ Ï  Õ ä, Ö × â, Ø8¡ & Ý8¡ 
ã*æ é þ, ó ô ÷+  ƒ œ8¢  8<ˆ 7L’+ ª « Û8¤ ´ Ú8docsrsÁ$ »8¡½ À Ù8¢Á Ä Ø8 Í7, é8¡ 
øäª Ç ¾ Í Ü, Î Ï Ú, Ð8¡ & Õ8¡ 
Û*Þ á ¼, ë ì µ+ ú û 8¢ü ÿ ˜8Æ  ƒ 8<„ Œ7, §8¡ 
¼æ þ ­  ,   , 8¡ $ˆ& Œ8¡ $
* ˜ «, ¢ £ ¤+ ± ² Ê8¢³  É8 ¿7os-extÁ+ Ø Ù ˆ8¤ â 8ÇÍ$ é8¡ë î 8¢ï ò 8 û7Ò, 8¡ $—
¥¤Ò ç  í ü, î ï ú, ð8¡ & õ8¡ 
û*þ  Ž,  Œ + š  °8¢œ Ÿ ¯8<  ¨7»2+ ¾ ¿ ë8¤ È ê8ÇÍ$ Ï8¡Ñ Ô é8¢Õ Ø è8 á7»2, ù8¡ 
ˆÔþl‹   Š  Ÿ  ® ,    ¡  ¬ , ¢ 8¡ & § 8¡ 
­ *°  ³  ˆ , ½  ¾  + Ì  Í 
8¢Î  Ñ 
8÷Ò  Õ 
8 Þ 7»2$ å 8àç  ê  ƒ
8Ù$ ï 8 ù 7Ò+

 å
8¤D
 ž
 ä
8ÇÍ
$ ¥
8¡§
 ª
 ã
8¢«
 ®
 â
8÷¯
 ²
 á
8
 »
7»2
$ Â
8àÄ
 Ç
 à
8Ù
$ Ì
8
 Ö
7Ò
, ó
8¡

ÜÝ   ù  Ô
 ÿ  Ž ,   Œ , 8¡ & 8¡ $ˆ 
*   Ò
,  ž  Ë
+ ¬  ­  Û 8¢®  ±  Ú 8÷²  µ  Ù 8  ¾ 7Ò $ È 8  Ò 7»2 + é  ê  ¯
8¤  ó  ®
8ÇÍ $ ú 8¡ü  ÿ  ­
8¢
 ƒ
 ¬
8÷

 «
8<ˆ

7ÒD
$ š
8
 ¤
7»2
, ½
8¡

Ì
”×

 ê
 £ ð
 ú
, ñ
 ò
 ø
, ó
8 ô
& õ
8ö

ù
*ü
 ÿ
 ¡8Ë Œ  8¬$ ,   , 8¸ß ˜
šŒ¦ ¸ ð ¾ È, ¿ À Æ, Á8¸ß Â& Ã8Ä
Ç*Ê Í î8Ë× Ú Û è8º$ à, â ã æ, ä8¸ß å
ç”ó,€  ¿ Œ ,  Ž , 8¸ß & 8
*˜  ½8Ë¥ ¨ © ·8¿$ ¯, ± ² µ, ³8¸ß ´
„ÂÏ Ó À Ù ò, Ú8levelÁ& à8Û$ ç, é ê ð, ë8¸ß ì& í8î
ñ*ô ÷ ¾+   8¢ƒ  8<‡ 7Ë,‘ ¡ ¸8Ë£'¦, ¨8 ä ® ¯ , ° ± ´, ²8¸ß ³
µ+ ð ñ 8¢ò õ Š8Æ ö ù 8 7Ë,„  ¸88    8¢8 ¦ ¨ ª ³, ¬ ­ °, ®8¸ß ¯
±% ´d D“ ½¾ NonZeroU8ÁL
»Í#
ï+Þ (
Áœ
7|
)+”Ý

”ú
D€

Ò

ê
ӟ
D
l
˜q !"äñ
ü¯=
: Returns a `Interest` set representing readable interests.ÁDû
˜
üÎ=
: Returns a `Interest` set representing writable interests.ÁDš
˜q¼Ÿ
üí C
@ Returns a `Interest` set representing AIO completion interests.Á»·
 º
˜
8÷»
 ¾
8Ø
Ò
7
$ ß
8Ø
ó
7
$ þ
8ØLˆ
7iosÁ,”
$
8Ø
­
7macosÁ
$
8Ø
Ê
7tvosÁ
$ Ò
8Ø
æ
7visionosÁ
$ ò
8Ø
7watchosÁLˆ
$
üµ
å
©
˜qü¨3
ü•
 Add together two `Interest`.Áº
ËüÂD
A This does the same thing as the `BitOr` implementation, but is aÁ´‹
 constant function.Á¦
Ë
 ```Á´º
 use mio::Interest;ÁÕ
ËüÝK
H const INTERESTS: Interest = Interest::READABLE.add(Interest::WRITABLE);Áü­2
/ # fn silent_dead_code_warning(_: Interest) { }Áüä)
& # silent_dead_code_warning(INTERESTS)Á<
Ûð,üËX
Hthis returns the result of the operation, without modifying the originalÁµ
˜q˜q˜qƒ¯yQî ‚Qü±8
ü½+
( Removes `other` `Interest` from `self`.Áí
ËüõD
A Returns `None` if the set would be empty after removing `other`.Á¾
Ë
Ûð´Ò
êðí
ËüõN
K const RW_INTERESTS: Interest = Interest::READABLE.add(Interest::WRITABLE);ÁÈ
ËüÐ=
: // As long a one interest remain this will return `Some`.Áü’F
C let w_interest = RW_INTERESTS.remove(Interest::READABLE).unwrap();ÁüÝ'
$ assert!(!w_interest.is_readable());Áü‰&
# assert!(w_interest.is_writable());Á´
Ëü¼>
; // Removing all interests from the set will return `None`.Áüÿ<
9 assert_eq!(w_interest.remove(Interest::WRITABLE), None);ÁÀ
ËüÈ>
; // Its also possible to remove multiple interests at once.Áü‹8
5 assert_eq!(RW_INTERESTS.remove(RW_INTERESTS), None);Á
Ûð,üÔX
àò4¸
˜q˜qø°ú°û°Ðü°ý°þ°ìHˈXêE>˜q
$¿
î 
üŠ&
ü»:
7 Returns true if the value includes readable readiness.Á,\ú
\—
˜q
¥Rü´&
üå:
7 Returns true if the value includes writable readiness.Á,\¤

˜q
¨SüÚ !
ü 6
3 Returns true if `Interest` contains AIO readiness.Á,\Ê
˜q
«Tüö!!
ü«!6
3 Returns true if `Interest` contains LIO readiness.Á,\æ!
4ƒ"
˜q
!®Uü—#&
üÇ";
8 Returns true if `Interest` contains priority readiness.Á,\‡#
\¤#
˜q
"±Väð#
˜q$%åïæï%\“$
4˜$
##˜qüº$#
,½$
˜q˜q˜q##
%JWî SWü%"
˜q'ä'ü¸%'
d»%
 ˜q˜q& È%
&
'$Í%
î "Xä&
˜q)á`)ü²&:
µ&
š œ  š ˜q Á`Á`œÃ`è Á]Ä`³ºÁ]Ê­\É:•œ ‰º( ¹&
(
)$º&
ÍÀ&
D  <><¿(*,á
,¾(*-UTíâZ*/Õд*0IÊ“7*1ëÊ*2Íòï+*4ôÀ÷ç*5!,‰f*7« W*8‡#4•ƒ*9­ªÌ&D½*:®º?,§ä*;²º?å*;²ìÿ!üÙ)

ýÿt¿òœÓåtì×ÙÇÉü,½¿¯±¡£ŠŒwy|©Yü°85 Polls for readiness events on all registered values.ÁéËüíLI `Poll` allows a program to monitor a large number of [`event::Source`]s,ÁüºOL waiting until one or more become "ready" for some class of operations; e.g.ÁüŠNK reading and writing. An event source is considered ready if it is possibleÁüÙFC to immediately perform a corresponding operation; e.g. [`read`] orÁt  [`write`].Á¯Ëü³NK To use `Poll`, an `event::Source` must first be registered with the `Poll`Áü‚ HE instance using the [`register`] method on its associated `Register`,ÁüË KH supplying readiness interest. The readiness interest tells `Poll` whichÁü—
LI specific operations on the handle to monitor for readiness. A `Token` isÁüä
MJ also passed to the [`register`] function. When `Poll` returns a readinessÁü² JG event, it will include this token. This associates the event with theÁüý *' event source that generated the event.Á¨ Ëü¬ 0- [`event::Source`]: ./event/trait.Source.htmlÁüÝ 52 [`read`]: ./net/struct.TcpStream.html#method.readÁü“
74 [`write`]: ./net/struct.TcpStream.html#method.writeÁüË
63 [`register`]: struct.Registry.html#method.registerÁËt† # ExamplesÁËü™=: A basic example -- establishing a `TcpStream` connection.Á×Ë¡ ```Á‘’,—\äî # use std::error::Error;Áü‹/, # fn main() -> Result<(), Box<dyn Error>> {Áü»-* use mio::{Events, Poll, Interest, Token};Áäé use mio::net::TcpStream;ÁËüŠ%" use std::net::{self, SocketAddr};Á°Ëü´*' // Bind a server socket to connect to.Áüß2/ let addr: SocketAddr = "127.0.0.1:0".parse()?;Áü’/, let server = net::TcpListener::bind(addr)?;ÁÂËüÆMJ // Construct a new `Poll` handle as well as the `Events` we'll store intoÁü”  let mut poll = Poll::new()?;Áüµ1. let mut events = Events::with_capacity(1024);ÁçËÌë // Connect the streamÁü…?< let mut stream = TcpStream::connect(server.local_addr()?)?;ÁÅËüÉ&# // Register the stream with `Poll`Áüð^[ poll.registry().register(&mut stream, Token(0), Interest::READABLE | Interest::WRITABLE)?;ÁÏËüÓLI // Wait for the socket to become ready. This has to happens in a loop toÁü  // handle spurious wakeups.Á loop {ÁüË&# poll.poll(&mut events, None)?;ÁòËôö for event in &events {Áü•A> if event.token() == Token(0) && event.is_writable() {Áü×OL // The socket connected (probably, it could still be a spuriousÁÔ§ // wakeup)Áô return Ok(());Á
<ÿ # }Á<‡ÛðËŒ“ # PortabilityÁ¥Ëü©LI Using `Poll` provides a portable interface across supported platforms asÁüö>; long as the caller takes the following into consideration:ÁµË¼¹ ### Spurious eventsÁÑËüÕEB [`Poll::poll`] may return readiness events even if the associatedÁü›EB event source is not actually ready. Given the same code, this mayÁüáNK happen more on some platforms than others. It is important to never assumeÁü°JG that, just because a readiness event was received, that the associatedÁüû# operation will succeed as well.ÁŸËü£LI If operation fails with [`WouldBlock`], then the caller should not treatÁüðNK this as an error, but instead should wait until another readiness event isÁl¿
received.ÁÍËÔÑ ### Draining readinessÁìËüðKH Once a readiness event is received, the corresponding operation must beÁü¼NK performed repeatedly until it returns [`WouldBlock`]. Unless this is done,Áü‹ NK there is no guarantee that another readiness event will be delivered, evenÁüÚ 52 if further data is received for the event source.Á!Ëü”!2/ [`WouldBlock`]: std::io::ErrorKind::WouldBlockÁÇ!ËäË! ### Readiness operationsÁè!Ëüì!JG The only readiness operations that are guaranteed to be present on allÁü·"NK supported platforms are [`readable`] and [`writable`]. All other readinessÁü†#HE operations may have false negatives and as such should be consideredÁüÏ#JG **hints**. This means that if a socket is registered with [`readable`]Áüš$MJ interest and either an error or close is received, a readiness event willÁüè$GD be generated for the socket, but it **may** only include `readable`Áü°%GD readiness. Also note that, given the potential for spurious events,Áüø%NK receiving a readiness event with `read_closed`, `write_closed`, or `error`ÁüÇ&JG doesn't actually mean that a `read` on the socket will return a resultÁü’'! matching the readiness event.Á´'Ëü¸'PM In other words, portable programs that explicitly check for [`read_closed`],Áü‰(EB [`write_closed`], or [`error`] readiness should be doing so as anÁüÏ(MJ **optimization** and always be able to handle an error or close situationÁü).+ when performing the actual read operation.ÁÌ)ËüÐ)>; [`readable`]: ./event/struct.Event.html#method.is_readableÁü*>; [`writable`]: ./event/struct.Event.html#method.is_writableÁüÎ*85 [`error`]: ./event/struct.Event.html#method.is_errorÁü‡+DA [`read_closed`]: ./event/struct.Event.html#method.is_read_closedÁüÌ+FC [`write_closed`]: ./event/struct.Event.html#method.is_write_closedÁ“,ËÜ—, ### Registering handlesÁ³,Ëü·,HE Unless otherwise noted, it should be assumed that types implementingÁü€-MJ [`event::Source`] will never become ready unless they are registered withÁ\Î- `Poll`.ÁÚ-Ë„Þ-
For example:Áï-Ë¡©. ­.‘’‘’,¯.\©.ä†/¯’œ£/ # use std::net;Áü·//Ô’üç/%" use mio::{Poll, Interest, Token};Áä0Á“ìª0 use std::net::SocketAddr;ÁäÈ0 use std::time::Duration;Á¤å0 use std::thread;Áú0Ëüþ052 let address: SocketAddr = "127.0.0.1:0".parse()?;Áü´141 let listener = net::TcpListener::bind(address)?;Áüé1?< let mut sock = TcpStream::connect(listener.local_addr()?)?;Á©2Ëü­2*' thread::sleep(Duration::from_secs(1));ÁØ2ËäÜ2 let poll = Poll::new()?;Áù2Ëüý2NK // The connect is not guaranteed to have started until it is registered atÁŒÌ3 // this pointÁüÞ3\Y poll.registry().register(&mut sock, Token(0), Interest::READABLE | Interest::WRITABLE)?;Á„»4
# Ok(())Á<Ì4¿<Ô4ÛðÜ4˼à4 ### Dropping `Poll`Áø4Ëüü4NK When the `Poll` instance is dropped it may cancel in-flight operations forÁüË5OL the registered [event sources], meaning that no further events for them mayÁü›6PM be received. It also means operations on the registered event sources may noÁüì6MJ longer work. It is up to the user to keep the `Poll` instance alive whileÁüº7,) registered event sources are being used.Áç7Ëüë7.+ [event sources]: ./event/trait.Source.htmlÁš8Ëüž8&# ### Accessing raw fd/socket/handleÁÅ8ËüÉ8HE Mio makes it possible for many types to be converted into a raw fileÁü’9NK descriptor (fd, Unix), socket (Windows) or handle (Windows). This makes itÁüá9JG possible to support more operations on the type than Mio supports, forÁü¬:LI example it makes [mio-aio] possible. However accessing the raw fd is notÁÔù: without it's pitfalls.Á”;Ë
4—[üëZ6L¦[*>>“7“7I7÷ Ï6—7phantomÁÏ6˜7áÏ6Ç*ÅÇrpâZâZUãZý‡ÓZ/&†ìK 58Á€LÅ[ÂrÍBCüÕl#ü€l63 Returns a `Registry` which can be used to registerÁ¬»l `event::Source`s.ÁDÜl   Âr  ürA ålA
B$ælüüŒXìm Wait for readiness eventsÁ¿mËüÇmKH Blocks the current thread and waits for readiness events for any of theÁü—nKH [`event::Source`]s that have been registered with this `Poll` instance.ÁüçnIF The function will block until either at least one readiness event hasÁüµoLI been received or `timeout` has elapsed. A `timeout` of `None` means thatÁü†p@= `poll` will block until a readiness event has been received.ÁËpËüÓpMJ The supplied `events` will be cleared and newly received readiness eventsÁü¥qKH will be pushed onto the end. At most `events.capacity()` events will beÁüõqIF returned. If there are further pending readiness events, they will beÁüÃr(% returned on the next call to `poll`.ÁðrËüørIF A single call to `poll` may result in multiple readiness events beingÁüÆsLI returned for a single event source. For example, if a TCP socket becomesÁü—tIF both readable and writable, it may be possible for a single readinessÁüåtJG event to be returned with both [`readable`] and [`writable`] readinessÁü´uIF **OR** two separate events may be returned, one with [`readable`] setÁü‚v" and one with [`writable`] set.Á©vËü±vB? Note that the `timeout` will be rounded up to the system clockÁüøvEB granularity (usually 1ms), and kernel scheduling delays mean thatÁüÂw;8 the blocking interval may be overrun by a small amount.ÁxËüŠxIF See the [struct] level documentation for a higher level discussion ofÁdØx polling.ÁéxËüñx0ü¦yB? [`readable`]: struct.Interest.html#associatedconstant.READABLEÁüíyB? [`writable`]: struct.Interest.html#associatedconstant.WRITABLEÁô´z [struct]: struct.Poll.htmlÁü×z41 [`iter`]: ./event/struct.Events.html#method.iterÁ{Ë\˜{ # NotesÁ¨{Ëü°{JG This returns any errors without attempting to retry, previous versionsÁüÿ{HE of Mio would automatically retry the poll call if it was interruptedÁôÌ| (if `EINTR` was returned).Áï|Ëü÷|C@ Currently if the `timeout` elapses without any readiness eventsÁü¿}HE triggering this will return `Ok(())`. However we're not guaranteeingÁüŒ~-* this behaviour as this depends on the OS.Á¾~ËtÆ~—‘Ù~Ëüá~=¹‘£Ë¡á å‘’‘’䯀¯’üç€/Ô’ü›-Œ“äÍÁ“îËüö,) use std::net::{TcpListener, SocketAddr};Á¤§‚Ù·À‚ËüÈ‚*ª”ü÷‚2Ý”ü®ƒ*' let server = TcpListener::bind(addr)?;Áü݃,) let addr = server.local_addr()?.clone();ÁŽ„Ëü–„*' // Spawn a thread to accept the socketÁÜÅ„ thread::spawn(move || {Áüå„  let _ = server.accept();Á<Š… });Á–…Ëüž…MÛ•üð… ±–ü•†1Ú–ˆËÌÓ†ž—üñ†/, let mut stream = TcpStream::connect(addr)?;Á¥‡Ëü­‡&“˜ì؇ poll.registry().register(Á¤ú‡ &mut stream,ÁŒ“ˆ Token(0),Áü©ˆ2/ Interest::READABLE | Interest::WRITABLE)?;ÁàˆËüèˆL´™ü¹‰‰šT݉°šüì‰&Ú—ŠËôŸŠüšüŠA£›üˆ‹Oí›Ô܋Ĝôû‹æœlžŒŒL°Œ¡,¾Œ²<ÈŒ¿<ÔŒÛðàŒË|èŒ [struct]: #Á$ƒž Ÿ  ž Âr Ÿ ³ø°ú°û°Ðü°ý°þ°ìHˈXêE>ëÊëÊìÊsecsÁ»zíÊnanosÁ»zïJg¯l|fä²A ˆA
C$î"4“timeoutÁ<¨¬˜‘»ŸŽ ¢Ž •‘8࣎ ¦Ž ”‘8Ù
the poll.ÁÅÎËüÍÎLÒ³üžÏ5¨´ØÏËüàÏ?< A handle can be passed back to `register` after it has beenÁü¤ÐHE deregistered; however, it must be passed back to the **same** `Poll`ÁüñÐ41 instance, otherwise the behavior is unspecified.ÁªÑËt²Ñ—‘ÅÑË¡ƒÒ ‡Ò‘’‘’,‰Ò\ƒÒäèÒ¯’œ‰Ó®¶ü¡Ó/Ô’üÕÓ-Œ“ä‡ÔÁ“ì¨Ô·äÊÔµ·ëÔËüóÔ ±–˜ÕËü Õ5¸üÚÕ4¿¸ü“ÖA…¦ÙÖËüáÖ&ܦìŒ×悤®×˜§ŒÇשƒìÝׂ¹ÿ×Ëü‡Ø-* poll.registry().deregister(&mut socket)?;Á¹ØËüÁØ1Ú–÷ØËüÿØGD // Set a timeout because this poll should never receive any events.ÁüËÙ:7 poll.poll(&mut events, Some(Duration::from_secs(1)))?;ÁüŠÚ assert!(events.is_empty());Á„®Ú¼<ÃÚ¿<ÏÚÛðTâÚ¨ ©  ¨ ür © ˆ²ä²H­NN ðÚHá® íÚó®l®Û
Mˆ²$ñÚä$][%'üòÝ/ü±Ü1. Creates a new independently owned `Registry`.ÁçÜËüïÜIF Event sources registered with this `Registry` will be registered withÁü½Ý0- the original `Registry` and `Poll` instance.ÁLùݪ  ª ürê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ürµ³H ƒÞH
O$„ÞTÊÞO<closure_kind>ÁP<closure_signature>ÁP<upvars>ÁPPOPÀsüré³üžá#»åà èà —á8àéà ìà –á8ç„íà$ ýà8Æ ÿà ‚á •á8ØLƒá á7Ê
4áüãà6t¬á«  « ürH »áH
Q$¼áüÐã/»˜ã ›ã Éã8÷œã Ÿã Èã8Æ  ã £ã ¶ã8ØL¤ã ®ã7Ê
4°ã$ ·ã8<¹ã Áã7»2,Ããü–ã5DÞ㬠 ¬ ür ¬ ÀsH çãH
R$èãä¢äürTá`TüÅä:Èä­ ® ¯  ­ ür ® Á`Á`œÃ`è Á]Ä`³ºÁ]Ê­\É:•¯ ‰ºS ÌäS
T$ÍäÍÓäÌ´è»»å ¾å ±è8à¿å Âå °è8Ù$Èå$ Ìå8Æ Òå Õå õå8؈üÖå$ öå8Æ üå ÿå ­è8÷€æ ƒæ ¬è(8ØLæ —æ7,™æ$ žæ8ØL¨æ ²æ7ÀD´æ$ ¼æ8ØLÆæ Ðæ7ÙŠ<Òæ$ Ùæ8ØLãæ íæ7©ŠLïæ$ øæ8ØL‚ç Œç7DŽç$ –ç8ØL ç ªç7°‹4¬ç$ ²ç8ØL¼ç Æç7Ý‹,Èç$ Íç8ØL×ç áç7ÅLãç$ ìç8ØLöç €è7ã4‚è$ ˆè8ØL’è œè7ÛŒDžè$ ¦è$ ®èü¹åúürVÀ(VäÔèL×è°  ° ürU áèU
V$âè « &$ÁÒ2DÉþÒÀ2ÿÒÀû3ë˜Ò»5°Ò”6;҅/,ª_ÒÒ«‡#4ÓXÒ«!,û^Ò«¯,óßùÒ«ª­.DˆÇÒ«ñ0lÑàíÒ«øñ0îÒ«øü¥")»à ã ¢"8÷ä ç ¡"8Ø ± 7û $ º 8Ø þ 7
L€!$ ‰!8ØLÂ! Ì!7¯
LÎ!$ ×!8Ûlˆ" "7ö
<˜"$ Ÿ"üÞÆœ¶" ,´ äåÔè&ª}[ü[ä‰'$Œ'”|ª}ZZ
[' »½  À  Ø 8Æ Á  Ä  × 8Ø  Ï 7Ê
ü»  ù«  W\^»D>\_±º?,ä\`²º?å\`²ôÀ-ç\fhY[HJ<(!T­·}ceüÜB̾ Create a new `Waker`.Áã±  ± ür”|ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶·}µ³b ñb
c¬¼ ,ü<c€Ïd˜ÏdµÏddcdêv·}ü§$üÁ63 Wake up the [`Poll`] associated with this `Waker`.ÁüËô„ [`Poll`]: struct.Poll.htmlÁ$®²  ² ·}ä²b ³b
e$´ ü(% Readiness event types and utilities.Á g…/,†ý¨‡#4¤ƒªñ@$¬«‹%4ÉŸ¬LM,Q«  Wgiº?,ägj²º?ågj²Í#ï+gPRCEDê}mnopqrstuväíôÊ Returns the event's token.Á,ô³  ³ ê}”|l úl
müÿ!ü¾:7 Returns true if the event contains readable readiness.ÁýË\…êùËüB? Out-of-band (OOB) data also triggers readable events. But mostÁüäB? applications don't actually read OOB data, this could leave anÁü«=: application open to a Denial-of-Service (Dos) attack, seeÁüíŒ <https://github.com/sandstorm-io/sandstorm-website/blob/58f93346028c0576e8147627667328eaaf4be9fa/_posts/2015-04-08-osx-security-bug.md>.ÁüþLI However because Mio uses edge-triggers it will not result in an infiniteÁüÏ+( loop as described in the article above.Á\† ´  ´ ê}l l
n$“ üš
!üÛ :7 Returns true if the event contains writable readiness.Á\¡
µ  µ ê}l ­
l
o
ôüö
74 Returns true if the event contains error readiness.Á² Ëüº KH Error events occur when the socket enters an error state. In this case,ÁüŠ IF the socket will also receive a readable or writable event. Reading orÁüØ 2/ writing to the socket will result in an error.Á
Ë\—
êù§
Ëü¯
KH Method is available on all platforms, but not all platforms trigger theÁ„ÿ

error event.ÁËüœ<9 The table below shows what flags are checked on what OS.ÁÝËüå'$ | [OS selector] | Flag(s) checked |Áü‘'$ |---------------|-----------------|Áü½'$ | [epoll] | `EPOLLERR` |ÁüéIF | [kqueue] | `EV_ERROR` and `EV_EOF` with `fflags` set to `0`. |Á·Ëü¿;8 [OS selector]: ../struct.Poll.html#implementation-notesÁüÿ?éâüÃH±ãD— ¶ ê}l  l
püº$üæ=: Returns true if the event contains read closed readiness.Á¨ËêùÀËüÈIF Read closed readiness can be expected after any of the following haveÁl
occurred:Áü¨?< * The local stream has shutdown the read half of its socketÁüìIF * The local stream has shutdown both the read half and the write halfÁœº of its socketÁüÒJG * The peer stream has shutdown the write half its socket; this sends aÁü¡=: `FIN` packet that has been received by the local streamÁãËüëHE Method is a best effort implementation. While some platforms may notÁü¸DA return readiness when read half is closed, it is guaranteed thatÁü# false-positives will not occur.Á©Ëü±<ÝòòËüú'­óü¦'ÝóüÒ'$ | [epoll] | `EPOLLHUP`, or |Áüþ2/ | | `EPOLLIN` and `EPOLLRDHUP` |Áüµ'$ | [kqueue] | `EV_EOF` |ÁáËüé;šõü©?éâüíH±ã·  · ê}l Ðl
qü˜&%üœ>; Returns true if the event contains write closed readiness.ÁßËêù÷ËüÿEB On [epoll] this is essentially a check for `EPOLLHUP` flag as theÁüÉJG local stream shutting down its write half does not trigger this event.Á˜Ëü DA On [kqueue] the local stream shutting down the write half of itsÁüé# socket will trigger this event.Á Ëü™ Hîúüæ EB return readiness when write half is closed, it is guaranteed thatÁü°!#ŒüØ!Ëüà!<Ýò¡"Ëü©"'­óüÕ"'Ýóü#'õüü­#+( | | only `EPOLLERR`, or |ÁüÝ#1. | | `EPOLLOUT` and `EPOLLERR` |Áü“$'àý¿$ËüÇ$;šõü‡%?éâüË%H±ã|Ÿ&¸  ¸ ê}l ¯&l
r$°&ü«,!üü&:7 Returns true if the event contains priority readiness.Á»'Ë\Ã'êùÓ'ËüÛ'Kæñœ«( priority event.ÁÃ(ËüË(<ÝòŒ)Ëü”)'­óüÀ)'Ýóüì)'$ | [epoll] | `EPOLLPRI` |Áü˜*'$ | [kqueue] | *Not supported* |ÁÄ*ËüÌ*;šõüŒ+?éâüÐ+H±ã\²,¹  ¹ ê}l ¾,l
s$¿,äÜ2ü‡-52 Returns true if the event contains AIO readiness.ÁÁ-Ë\É-êùÙ-Ëüá-LI Method is available on all platforms, but not all platforms support AIO.Á².Ëüº.<Ýòû.Ëüƒ/'­óü¯/'ÝóüÛ/'$ | [epoll] | *Not supported* |Áü‡0+( | [kqueue]<sup>1</sup> | `EVFILT_AIO` |Á·0Ëü¿0?< 1: Only supported on DragonFly BSD, FreeBSD, iOS and macOS.Áƒ1Ëü‹1;šõüË1?éâü2H±ã4ã2º  º ê}l ê2l
t$ë2ä’5ü®352 Returns true if the event contains LIO readiness.Áè3Ë\ð3êù€4Ëüˆ4KH Method is available on all platforms, but only FreeBSD supports LIO. OnÁüØ452 FreeBSD this method checks the `EVFILT_LIO` flag.Á4™5»  » ê}l  5l
u$¡5ü­6B”»6¼  ¼ Št ¼ ê}l Ù6l
v sys_eventÁLÎ6̰;üë8JG When the [alternate] flag is enabled this will print platform specificÁü¶9OL details, for example the fields of the `kevent` structure on platforms thatÁü†:KH use `kqueue(2)`. Note however that the output of this implementation isÁüÒ:.+ **not** consider a part of the stable API.Á;Ëü…;*' [alternate]: fmt::Formatter::alternateÁê}xá`xüÐ;8Ó;½ ¾ ¿  ½ ê} ¾ Á`Á`œÃ`è Á]Ä`³ºÁ]Ê­\É:•¿ ‰ºw ×;w
x$Ø;þ Þ;ÝždÇ@gÓ"{{yyz¼"|ìg E1uüR‹ÆÓ"E1uüR‹Æz| Ó"Št—–Ýžvgá–—–yy
zÓ"Ô@tØ@gyyá–üö@$8À À §~~á`~ü­A8°AÁ  à  Á §~  Á`Á`œÃ`è Á]Ä`³ºÁ]Ê­\É:•à ‰º
Ëü²
=: [deregistered]: ../struct.Registry.html#method.deregisterÁð
Ë
—‘ƒ Ëü‡ :7 Implementing `Source` on a struct containing a socket:Á Ë¡ü  ‘’‘’,‚  üÙ )& use mio::{Interest, Registry, Token};Á܃
 use mio::event::Source;ÁäŸ
Á“¼
˄
use std::io;ÁÑ
ËÌÕ
 # #[allow(dead_code)]ÁÌï
 pub struct MySource {ÁÔ‰ socket: TcpStream,Á²ªËô® impl Source for MySource {ÁüÍVS fn register(&mut self, registry: &Registry, token: Token, interests: Interest)Áì¤ -> io::Result<()>ÁüÌ74 // Delegate the `register` call to `socket`Áü„<9 self.socket.register(registry, token, interests)Á¡ËËüÏXU fn reregister(&mut self, registry: &Registry, token: Token, interests: Interest)Á쨚˿ËüÐ96 // Delegate the `reregister` call to `socket`ÁüŠ>; self.socket.reregister(registry, token, interests)Á¡ÓËü×IF fn deregister(&mut self, registry: &Registry) -> io::Result<()> {Áü¡96 // Delegate the `deregister` call to `socket`ÁüÛ,) self.socket.deregister(registry)ÁLˆ¡,²Û🟪âü  Ÿ‡Ò‡Ò  ¡¢ ¡¢¢ ¡üˆü·74 Register `self` with the given `Registry` instance.ÁóËüûKH This function should not be called directly. Use [`Registry::register`]ÁüËKH instead. Implementors should handle registration by delegating the callÁì› to another `Source` type.Á½ËüÅC@ [`Registry::register`]: ../struct.Registry.html#method.registerÁDÎ Ï  Î Ò Ï ür”|˜q䲟 ¢Ÿ
 Ò¬¼ ,Ò³ü„Šü›:7 Re-register `self` with the given `Registry` instance.ÁÚËüâ41 This function should not be called directly. UseÁü›@= [`Registry::reregister`] instead. Implementors should handleÁüàKH re-registration by either delegating the call to another `Source` type.Á°Ëü¸GD [`Registry::reregister`]: ../struct.Registry.html#method.reregisterÁT‡Ð Ñ  Ð Ò Ñ ür”|˜q䲟 Ÿ
¡Ò¬¼ ,˳üô@ü”96 Deregister `self` from the given `Registry` instance.ÁÒËüÚ4§Öü“@= [`Registry::deregister`] instead. Implementors should handleÁüØC@ deregistration by delegating the call to another `Source` type.Á Ëü¨GD [`Registry::deregister`]: ../struct.Registry.html#method.deregisterÁT÷Ò Ó  Ò Ò Ó ür䲟 Ÿ
¢Ò$‡¬Dü¸7¤¤ªâ»€ ½Ÿ»€û¥¦§ ¡¢¦§¥8:üöÔ Õ  Ô û Õ ür”|˜qä²£ £
¥»€$ ¬zv¼ ƒv³ŒvüÁ!‰TÄ!Ö ×  Ö û × ür”|˜qä²£ Ø!£
¦»€$Ý!¬¦w¼ ¯w³¸wü#?T“#Ø Ù  Ø û Ù ürä²£ ž#£
§»€$£#¬½x”y{=ä•p=s=d=g=¤»\=l× ß”î ÙŸ´Š
ëŸëŸüŸüŸdª

 
1 »ñ
 ô
 8àõ
 ø
 8Ù
$ ý
8<ÿ
 7ÒD‰üï
%Ìå Unix only extensions.Áµ2ÑCþºÒÀ2êCÿºÒÀd„t Unix pipe.Á²Ëü¾/, See the [`new`] function for documentation.Á  ·÷D—à¸û>4¡Ü¹üÿ)8:*,¤½±D„ÿô– # Mio's optional features.Á¹ËüÁ:7 This document describes the available features in Mio.ÁË¡© ­## `os-poll` (enabled)ÁÎåįô©šËü¢JG Mio by default provides only a shell implementation that `panic!`s theÁüñEB moment it is actually run. To r
event_typeÁ& ó8õ$ ø, ú8à& ÿ8ª $$ ,   Æ ,   §+  ˜ ¦, 8È&  8«

¨, ª8Ã & ¯8Û'·, º8flagÁ& ¿8Û$ Ç È, Ê Ë Í$ Ì
Î*Ú Ý Ò
8, ò8! ÷ ƒ, ø8‡¼% 8$“8͘'8,8
£, §8! ­ È8 ¿8ÍÂ Å ç
 Æ8$ Ë8þ Í& Î Ð8Ñ8ÍÕ'Ø8œ ã:8ä æ(é8Íì'ï8ý ø º8Ž88 written_oneÁ\ ¢8 % ©, ¿ À , Ú Û æ+ Ü Ý å, Þ8È
ç+  ž 8è ˆ 8Æ4‰ ' 8 bad_bit_maskÁd  Û ì
8É
, Ì
8à
 Ñ
ê
  Ò
8
 ×
7ì Ø
$ Ù
 Û
, Ü
8Ã
'â
, å
8ù½
 ì
Ò
8Ž 8ÆÁ\’  ž Á  8”;  É  Ê å 8þ Ë $ Ì 7{}Á $ Ò 8µ  Ý  Þ ä , ß 8ù½ - æ % ç 8ÆÁ\ 8 $ % Ÿ 8  È ´
8”;  ó  ô
8þ õ $ ö 7|{}Á $ ý 8µLÿ  ˆ

, Š
8ù½$
-
%
ƒ8 œ8ÆÁ\ © ì8”; È É Ö8þ Ê$ Ë7(empty)Á8 ó ¨8Ò    % ÓD™»6„6‡6›886ˆ67H6Ø6‚$¬³Á˜°¾2D¨þÀ2ÿÀ…/ûvÒ«‡#öv«!ñv«¯ìvù«ª­.ævÇ«ñ0áví«øñ0øvî«ø¤Ÿ ´ ¹ º à, »8 ¼& ¾8Û Æ Þ, È É Ô, Ê8argÁË& Î8ï$ Õ
Ö, Ø Ù Û$ Ú
Ü*â å  æ µ+ ð ñ 8è ÷ 8
unused_unsafeÁ88resÁ ˜8" ¡ ¹8à '§, ©8 ª ¬ ·, ­ ® µ, ¯8è˰$ ³
% º8Ä8§ÍÇ Ë7ì Í Ï Š8Ý à 8á'ä8ôÀæ'è8'ï8
last_os_errorÁ þ ÿ8  ¯8ÒŸ ¡ ¥8§Í¢% ·d‰ »7„7‡7›887ˆ77H7Ø7‚/D ÐéêëìíýŒÇÒÓæmemÁ ÕÓÔ MaybeUninitÁ\ÒÓÕ,8ìÓ×DerefMutÁD?ùÓØ<\¿(ÓÚ«LeÁ(ÓÛ<pŠ)ÓÜá
,y¾(ÓÝî·1ÓÞb\®¸ÓàÕдÓáëÊÓâÐýÓäôÀçÓå÷ êÓæÌ&D˜½Ó箺?,­äÓ貺?åÓ貯ú{ùªñ0Ø{íøñ0ë{îøDЬ·Ü-¨«üN1ˆz}lo^aT…Tü®*HK8;œÞ,œ÷ 
þ|‘òd¦ßÜõ»Þ á ò8ç„âÄÜÓèˆC»ø û 8Æ ü ÿ 8ØL€ Š7Þ üö!,Ó»  ž8÷š  8Ø ­7Ëí$ ´8Ø Ä7óí$ Í8Ø Ý7î$ å8Ø õ7Æî$ 8ØL‡ 7óîL“ü”ŒÓ
»  
8÷ 
8Ø ¦ 7Ëí$ ­ 8Ø ½ 7óí<¿ $ Æ 8Ø Ö 7î$ Þ 8Ø î 7Æî$ ú 8ØL€
 Š
7óî
ü Œ
ÓT” ,™ Ó «2¬2­2
__variant1Á®2¯2
__variant2Áù©2£¯œµ   É  é
 Ï  ƒ , Ð 8½.Ñ & Ó 8ï $ Ù , Û 8Ù¼ & â 8ï $ è , ê 8Â & ð 8ï $ ö , ø 8€½ & ý 8ï$ÿ *  ˆ  æ
8Ã $ ' 8)4˜  Ÿ  à
8Û,­ & ² , ´ 8½.µ 8¸ 8Ã '¿ 8 uintptr_tÁ $ Ê 8Ù¼ & Þ , à 8Ù¼ 8è 8ó $ ñ 8Â,ÿ &
,
8Â,‡
$ Œ
8½
& Ÿ
, ¡
8€½
8§
8)
$ ¯
!½
8"4¿
 Æ
 Ö
8–ÑÈ
'Ë
8zeroedÁ
 Ó
 Ô
% ç
/Àsðñó÷ÌÎùûüç$îê³í³î³Òï³ìð³ñ³ò³ìäs{©¶Àsµ³ïï
ðüò/â  â Às±âï ƒï
ñ$„ñ€Ïò˜ÏòµÏòòñò¦yÀs‡»üöVã ä  ã Às ä ët¨‡ä²ï ï
ó$…î"4߇< ó€Ïô˜ÏôµÏôôóôì‡éétimespecÁêtv_secÁëtv_nsecÁoør56^“Óþó€Ïõ˜ÏõµÏõõóõ ªæ ªæó€Ïö˜ÏöµÏööóö ëtü¬Vå  å Às”|˜qä²ï ¼ï
÷¹xü ,γ ª}ü³=9»í; ð; ¬=8÷ñ; ô; «=8ØLþ; ˆ<7
LŠ<$ “<8ØL< §<7Ëí,©<$ ®<8ØL¸< Â<7óí<Ä<$ Ë<8ØLÕ< ß<7î4á<$ ç<8ØLñ< û<7ÆîTý<$ ‡=8ØL= =7óîL=üë;Ã\º=æ  æ Às”|ä²ï Æ=ï
ù$Ç=¼ ,Í=Ï@ù€Ïú˜ÏúµÏúúùúºè䲚¿ü•D2»ÏB ÒB ŽD8÷ÓB ÖB D8ØLàB êB7
LìB$ õB8ØLÿB ‰C7Ëí,C$ C8ØLšC ¤C7óí<¦C$ ­C8ØL·C ÁC7î4ÃC$ ÉC8ØLÓC ÝC7ÆîTßC$ éC8ØLóC ýC7óîLÿCüÍBÃ$œDç  ç Às”|ä²ï ¡Dï
û$¢D¼ ,¨DˆGû€Ïü˜ÏüµÏüüûüíœíü’It|•IÓè é  è
½½ é
ä² ÂI
ýÇ.ªIchangesÁ<¹Iignored_errorsÁtÛIÇKý€Ïþ˜ÏþµÏþþýþ·è,ÜKý€Ïÿ˜ÏÿµÏÿÿýÿµ³ä²$µNý€Ï˜ÏµÏýä²  ñ ®ñü°ORd³OÓê ë  ê  ñ ë ®ñä² ÈO
î"4ÀOâðtÙOÌþT/ÀsƒÀ(ƒäžUL¡Uì  ì Às «U
ƒ$¬UÔ©V/ŠtÔÇV/Št¤æV/Št‡ˆíîˆ\W4†W½½ü¢W ,¥Wí  í Št í Ští «W
ˆ$¬W¼ÞW/ŠtŠúŠüüW,LÿWî  î Št î ˜÷ ‰X
Š$ŽX
/ȑtDn
ÿŒZ€ŒÁ·ët
îÓÁ·ët
ŒTÚXÓÁ·¬èX/ëtíî\„Y4‰YŽŽÁ·ü£Y ,¦Yï  ï ët ï ëtíŽ ¬YŽ
$­YÄßY/ëtúüþY,LZð  ð ët ð ºú ‹Z
$Z\ÊZ/ët”üÜZ/lãZª}ët
»#DñZÜ´^/ëtÜÓ^/ëtló^/¼žŸ ¡¢£¤¥¦§Í_ï+˜…/ÒÒ«º?,À_äš²º?åš²ó 4Ø_ëœï ,à_ìD‹_ŽŒž_d¹_j´Ð_>@-/üí_$,ô_ñ  ñ Št”| `
ž!,ú_üÅ`)\Ì`ò  ò Št ß`
Ÿ!,Ø`üÿg)\†hó  ó Št ™h
 !,hüãh&Dêhô  ô Št úh
¡!,óhüŸk,t¦kõ  õ Št ¼k
¢!,µküªl-|±lö  ö Št Èl
£!,Álü·m%\¾m÷  ÷ Št Ím´å Êmüõn$4ünø  ø Št Šo
¥!,ƒoüôt$4ûtù  ù Št ‰u
¦!,uüàvNlçvú û ü  ú Á`Á`œÃ`è Á]Ä`³ºÁ]Ê­\É:•û  ü Št‰º øv
§þ õv!,‘wüdž0Tʆý þ  ý  þ  Ú†
¨gotÁÕ†wantÁ$â†ü‚“-\…“ÿ 
 ÿ  
 –“
©Є‘“Ü„$œ“ôÚߤ”tª »µ¸´²8°®7¬ª/,¬ÐùôÀ 笭­.DǬ®Ò«º?,3䬯²º?嬯²<Rd,;Tý/êv±²üŽIœ
 
Às”|ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶êvµ³° ª°
±Ê¼ ,µüß+
 
êvä²° ò°
²»ƒ8~|7zx»Â Å Ø8 Î7ÒÔÀ/DãÐþÿôÀ ç³´á
,@¾(³µ!,–f³·Ì&D½³¸®»>³¹±º?,±ä³º²º?峺²<Ÿ”3üŽ)ƒsu^`JLüð'/Ó"¼¼ªw½¾¿ ¡¢¾¿½õüžƒ

 ƒ
ªw 
ür”|˜qä²» ³»
½Ó"$¸¬¼ ,ã³üó

 
ªw 
ür”|˜qä²» Š»
¾Ó"$¬D¼ ,º³üÌ?
ˆ
 
ªw ˆ
ürä²» Ú»
¿Ó"¬Ęö"œ˜&»87»ß â ‘&8àã æ &8÷ð ó ½%58 Õ7ÒD×$ ß8 mio_unsupported_force_waker_pipeÁü¢ $ Â8àÐ Ó ü!8؈ü­$ Ì8÷Þ á í!8Ø 7
$ Œ 8Ø ¬ 7Ëí$ ³ 8Ø Ó 7óí$ Ü 8Ø ü 7î$ „!8ØLš! ¤!7ÆîT¦!$ °!8ØLÆ! Ð!7óîLÒ!$ Û!$ î!$ ý!8ØLÒ" Ü"7,Þ"$ ã"8ØLñ" û"7 \ý"$ ˆ#8ØL#  #7ÙŠ<¢#$ ©#8ØL·# Á#7°‹4Ã#$ É#8ØL×# á#7Þ Dã#$ ë#8ØLù# ƒ$7Ý‹,…$$ Š$8ØL˜$ ¢$7¯
L¤$$ ­$8ØL»$ Å$7§<Ç$$ Î$8ØLÜ$ æ$7ÅLè$$ ñ$8ØLÿ$ ‰%7ã4%$ %8ØLŸ% ©%7ÛŒD«%$ ³%$ ¾%8Æ ñ% ô% ‰&8ØLõ% ÿ%7D&$ Š&üÝ/$§&ÄÛÜàôÀMçÁÂá
,b¾(ÁÃáÁùIoSliceÁ<¼ÀIÁû
IoSliceMutÁTÅÁüReadÁ$Ñ ÁýWriteÁ,×ßÁþõ¡)Á¿(Á±T€ðJÁ«Á(ÁƒíL—Ã(ÁŠ)Áz\¿À.ÁÔwTÌœ.ÁˆÛy\ذ.Á BDýœÁŠ!,“fÁŒÌ&Dš½Á®»>Áޱº?,®äÁ²º?åÁ²<Hô”Uæüj1<xê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ª}µ³
Ä ˜ª} ·ª}œý
1" ÀsKy4ÞŸåJÈÉ» œ ­8çÄ—´ÓÇǪ}\ÃÃÓÇǦy•[•[HÀsËá`Ë•[•[
Š

 
Às Š
Á`Á`œÃ`è Á]Ä`³ºÁ]Ê­\É:•
‰ºÊ
Ê
Ë
þ•[üÖ+X»   8÷   88>¶  7Ò@>À $ 88>Ê  7»2(>Ô ø>¬ 0TÝ+Œ
 Œ
Às”|˜qä²ï è+ï
Ì$é+¹xï+¼ ,ú+³Lˆ, À/ª}üë55»
8÷þ8ûø7Òõ$ò8ïì7»2éæTò5
 
Àsä²ï ý5ï
Î$þ5¹x„6 ƒ7ª}l£T»H…
8÷H„
88HÖ 7»2(Hà $8à
8Ù$88Hñ 7Ò@Hû øHÌ ;»ˆT ‹T œT8焌TĆT=ÀsÑÌ»TÂTŽ
 Ž
Àsª}Ð ÅTÐ
Ñ$ÆT>,“VŠtº½ŸÌ¦%gÓÔ½½Št4Ó½½ŠtÒÒ
Ód™VÓÒÒ½½Ï^Ï^MŠtÖßÖÏ^Ï^
 
ŠtŠtÕI€VÕ
Ö,€Vâ›?lÔwÂu9#¥· ØÙÂuâ›5Âu××
ØXJø××ÈJ“?ÂuÛá`ÛøJ¿8


 
Âu 
Á`Á`œÃ`è Á]Ä`³ºÁ]Ê­\É:•
‰ºÚÚ
Ûþ@dŇúu°Ãt•UUAÝÞúu6úuÜÜ
ÝXøÜÜÈ@úuàá`àø¿8Â


 
úu 
Á`Á`œÃ`è Á]Ä`³ºÁ]Ê­\É:•
‰ºßÆß
à ÇþÍAlý“²vUúŒæ¥ŽŽâã²v6²váá
âøááÈìA²våá`åøì¿8ìÂ

˜