Files
boc/aamos-ledger-rust/target/debug/deps/libcrossbeam_epoch-da57223d6dee93bf.rlib
T

1476 lines
856 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 20826 `
ßP^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^_ZN101_$LT$crossbeam_epoch..atomic..Owned$LT$T$GT$$u20$as$u20$crossbeam_epoch..atomic..Pointer$LT$T$GT$$GT$10from_usize17h223132c05a1899aeE_ZN101_$LT$crossbeam_epoch..atomic..Owned$LT$T$GT$$u20$as$u20$crossbeam_epoch..atomic..Pointer$LT$T$GT$$GT$10from_usize17h64f06157a4b0000cE_ZN101_$LT$crossbeam_epoch..atomic..Owned$LT$T$GT$$u20$as$u20$crossbeam_epoch..atomic..Pointer$LT$T$GT$$GT$10into_usize17h564b51f3ae12eb20E_ZN4core3mem6forget17hd9e2b0a2a7709ad2E_ZN101_$LT$crossbeam_epoch..atomic..Owned$LT$T$GT$$u20$as$u20$crossbeam_epoch..atomic..Pointer$LT$T$GT$$GT$10into_usize17hf99b7873b014e3baE_ZN4core3mem6forget17hcaf0c23fc5ea51d8E_ZN102_$LT$crossbeam_epoch..atomic..Shared$LT$T$GT$$u20$as$u20$crossbeam_epoch..atomic..Pointer$LT$T$GT$$GT$10from_usize17h69815d52cafeecbeE_ZN102_$LT$crossbeam_epoch..atomic..Shared$LT$T$GT$$u20$as$u20$crossbeam_epoch..atomic..Pointer$LT$T$GT$$GT$10from_usize17hb6ee0c2fe78ed83bE_ZN102_$LT$crossbeam_epoch..atomic..Shared$LT$T$GT$$u20$as$u20$crossbeam_epoch..atomic..Pointer$LT$T$GT$$GT$10from_usize17hd84f6755ded33091E_ZN102_$LT$crossbeam_epoch..atomic..Shared$LT$T$GT$$u20$as$u20$crossbeam_epoch..atomic..Pointer$LT$T$GT$$GT$10into_usize17h434dbf2f2428c24dE_ZN102_$LT$crossbeam_epoch..atomic..Shared$LT$T$GT$$u20$as$u20$crossbeam_epoch..atomic..Pointer$LT$T$GT$$GT$10into_usize17h5965d3f00cfe0ba8E_ZN103_$LT$crossbeam_epoch..atomic..Shared$LT$T$GT$$u20$as$u20$core..convert..From$LT$$BP$const$u20$T$GT$$GT$4from17h75697c9849a915eaE_ZN15crossbeam_epoch6atomic14ensure_aligned17hc18997a71ef41678E_ZN103_$LT$crossbeam_epoch..atomic..Shared$LT$T$GT$$u20$as$u20$core..convert..From$LT$$BP$const$u20$T$GT$$GT$4from17h7b186cf61012d4c0E_ZN15crossbeam_epoch6atomic14ensure_aligned17hd566a8730be1c989E_ZN105_$LT$crossbeam_epoch..sync..list..Iter$LT$T$C$C$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5a281e34bd0794c4E_ZN15crossbeam_epoch6atomic15Shared$LT$T$GT$6as_ref17hd1b79da23a1ef693E_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$4load17hde00405224642a1fE_ZN15crossbeam_epoch6atomic15Shared$LT$T$GT$3tag17h2296cb51b9d61b64E_ZN131_$LT$crossbeam_epoch..internal..Local$u20$as$u20$crossbeam_epoch..sync..list..IsElement$LT$crossbeam_epoch..internal..Local$GT$$GT$10element_of17h83e610b47d0beb98E_ZN15crossbeam_epoch6atomic15Shared$LT$T$GT$8with_tag17h88f709397c522f81E_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17hdd8a1b56e0836a23E_ZN15crossbeam_epoch6atomic15Shared$LT$T$GT$5deref17h70c9020dfcacd399E_ZN131_$LT$crossbeam_epoch..internal..Local$u20$as$u20$crossbeam_epoch..sync..list..IsElement$LT$crossbeam_epoch..internal..Local$GT$$GT$8finalize17h0cc5dd4dedf70268E_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0153451a9648a9c0E_ZN108_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h02244ea5d77ae293E_ZN131_$LT$crossbeam_epoch..internal..Local$u20$as$u20$crossbeam_epoch..sync..list..IsElement$LT$crossbeam_epoch..internal..Local$GT$$GT$8entry_of17h43abeeb924f5962dE_ZN15crossbeam_epoch5guard5Guard13defer_destroy17h66b591577a0eef7aE_ZN15crossbeam_epoch
crossbeam_epoch-da57223d6dee93bf.crossbeam_epoch.2ff5f78627896e74-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 327160 `
ELF·@@GNUÀrust
½ù#rustc 1.96.0 (ac68faa20 2026-05-25)ÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0Ácrossbeam_utilsÁI^`Ýþh3 ²Þâò]áó-e51418303cdc2645ÁloomÁ$ðcrossbeam_loomÁ primitiveÁL¶testsÁ,ê¤$ɤ¸¾Ù¾,›® MAX_OBJECTSÁ\crossbeam_sanitizeÁ”ëµ $ÿÔꮾ,žŸ$ýž¾,¸P$—PÖ$þ=$Ý=޾
À¢cellÁ¥æ withÁ£impl FnOnce(*const T) -> RÁwith_mutÁ £ impl FnOnce(*mut T) -> RÁçatomicÁ¤µ  
  
strongest_failure_orderingÁ/CompareAndSetErrorÁ1'gÁ1¥1¡CompareExchangeErrorÁ5
5¥5¡5currentÁ5æ ;¥;¡;×CompareAndSetOrderingÁ?successÁ?failureÁBB¡EE¡low_bitsÁH¥ensure_alignedÁJ¥ compose_tagÁL¥
decompose_tagÁN¥ PointableÁPALIGNÁPInitÁPinitÁP´T'aÁPVòPãY¥YÉYÕYàY´^òY`òYãMc¥ccelementsÁf h¥hlayoutÁk¥kÉkÕkàk´pòkròkãVu¥udataÁu_markerÁy¥{¥}¥}æ  ¥à
¬
 load_consumeÁ
È¡swapÁ
¡ Ž
Ž¡Ž Ž ¡
¡  ¾˜
˜compare_and_setÁ
 ¡compare_and_set_weakÁŸ
Ÿ Ÿ¡ fetch_andÁ£
fetch_orÁ¥
 fetch_xorÁ§

into_ownedÁtry_into_ownedÁ
«¥«× ®¥®× ±¥±ƒ
´¥´>·¥·÷º¥º÷½¥½÷À
À¥À÷Ä¥Ä÷Ç¥Ç
into_usizeÁÇOwnedÁË¥ËâËíÏ¥ÏÏÓ¥Ófrom_rawÁÓinto_boxÁÓæ Ø¥ØàØ into_sharedÁÛ
ØtagÁØwith_tagÁߥßãâ¥â×å¥åƒè¥èåè´ì¥ìï¥ï÷ò¥ò÷õ¥õborrowÁø¥ø
borrow_mutÁû¥ûÉ þ¥þas_mutÁSharedÁ
¥âí!¥ƒ"¥#¥$
¥as_rawÁ%
¥
is_nullÁ´É©»Øã&Ÿ¥Ÿ÷'¢
¢¥¢(¦¥)¨
¨¥¨ï
*¬¥¬+¯¥¯×,²¥²×-µ¥µ> collectorÁ¸¸¸¸¸¸¸ CollectorÁ¿globalÁ¸¸¸Ã>¸Åæ ÅregisterÁ¸Èƒ¸Ê׸̸¸ LocalHandleÁÏ®¸Ñÿ
Ñ is_pinnedÁѸ Õã¸
××deferredÁÙÙÙÙÙÙÙÙ
DATA_WORDSÁÙDataÁâ ÙDeferredÁäÑäâäíÙè×ÙêNO_OPÁë
no_op_callÁêæ ííÑïíÑñêÑepochÁôôôôøstartingÁøëøÖøpinnedÁøunpinnedÁø successorÁôÿæ ÿ¬ÿÈÿ £GuardÁ®deferÁŽŽ£defer_uncheckedÁ£ 
defer_destroyÁ¥ flushÁrepinÁ repin_afterÁšš£š
ScopeGuardÁ
ˆš ã¢ ¤ã¦× unprotectedÁ¨ GuardWrapperÁ©
©ˆ¨¨ UNPROTECTEDÁå®®®®®®®®®® ®
® ® ®
®®®®®®®®®®®®®®®®®®® ®BagÁÐ deferredsÁÑ Ð®®Õæ Õis_emptyÁÕtry_pushÁÕsealÁ®Ú>Û ®Ýã®ß×®®â
is_expiredÁ®GlobalÁälocalsÁäqueueÁäî!®è
COLLECT_STEPSÁèæ èpush_bagÁècollectÁì è try_advanceÁ®LocalÁïentryÁïïbagÁï guard_countÁï handle_countÁï pin_countÁïî!®÷PINNINGS_BETWEEN_COLLECTÁ÷ò÷Á÷û ÷Ö÷Â#þ ÷­$ ÷ÿ
÷þ÷º$÷acquire_handleÁ÷release_handleÁ÷finalizeÁ  ® Šentry_ofÁŠ
element_ofÁŠ…,çŽlistÁ  IsElementÁš¥š¤,š´,š…,IterÁŸ
Ÿ¥ŸŸ£ŸpredÁŸcurrÁŸheadÁŸí¨>ªdeleteÁ¬¥¬¬æ ¬insertÁ°
¬ù²
´¥´´ã¸
¸¥¸¸¸ó Ž once_lockÁ¾¾¾¾OnceLockÁÂ¥ÂonceÁ»¾Æ¥¾È¥¾Ê¥Êæ Ê get_or_initÁÍÊ
initializeÁÏÏ Ê
get_uncheckedÁ¾Ó¥Ó㎂)ÖÖÖÖÖÖÖÖÖÖ Ö
Ö ÖNodeÁã¥ãâãó Öç¥Öé¥Öë¥ëæ ë
push_internalÁëpushÁë pop_internalÁð ð ëpop_if_internalÁóó ó ëtry_popÁë
try_pop_ifÁøÖú¥úã 
  
>ŽŽŽŽŽŽŽ COLLECTORÁŽÿ
 ŽÖ Ždefault_collectorÁŽ with_handleÁœœ£œ œ 
UnsafeCellÁ¥
¥¥¥ˆ©¥©×ôEpochÁ¬âôôô°ƒô²>ô´×ôÖôô ¹ô AtomicEpochÁ»âô
½>ô ¿×® SealedBagÁÁî!Á_bagÁ®
Ä>® Æ×EntryÁÈó Ê×ListÁÌ¥Ì̈.ÌíÑ¥ÑÑ× IterErrorÁÕStalledÁÖ
Ù Û×ÖQueueÁݥ݈.ÝtailÁÖá¥á׎HANDLEÁä__rust_std_internal_init_fnÁä æ ç__RUST_STD_INTERNAL_VALÁæ é:

;
>
>
>
@
A
C
D
F
G




Ž
Ž


˜


Ÿ
Ÿ
£
¥
§
­
­
­
°
°
°
³
Ý
á
ä
ä
ä
ç
ë
î
÷
ú
ý


ˆ




˜

š

ž
Ÿ
¥
¥
¦
«
«
¬
®
®
¯
±
±
±
²
´
´
´
µ
Ç
É
Ë
Ë
Ë
Í
Í
Ò
Ó
Ô
Ö
Ø
Ø
Ø
é
é
é


ƒ
Ž



˜

š
¡
¢
¥
§
§
§
×
Ø
Þ
à
à
à
ã
ë
ë
ë
ì
ì
ì
î
î
ù
ú
û
ý
þ
þ



ƒ





Œ


œ

ž
ž
«
«
·
½
Í
Ï
Ò
Õ
î
î
î
î
ï
ï
ð
ð
ó
ó
ó
÷
÷
ø
ø
ø
ü
œ
«
«
«
±
µ
µ
µ
·
º
º
À
À
À
Ç
Ç
Ç
Ë
Ë
Ë
Ô
Ô
Ô
Ú
Ú
Ü
Ü
Ü
ã
ã
ã
?PÇš¿c¥¥¦Ô5¨ˆ Û>q —Ö@A¥¿c55
9É
:æ IY
ü³…¬8¥¡?¼À½À¾ÀË¿ÀÀÀÌÁÀÂÀGÃÀÄÀFÅÀÆÀ×`šÁ¬S øB?ªDªDPÖCP
ÑÛÑÛ MaybeUninitÁÓÛuninitÁÝÔÛ»ÝÍõƒ«%9ÖCÌìuuVwâxíjí’E ”vpÖC F¿cFÎcFØF³FéFËË´ÍâÎíµÆÛ <ä ÖCéFžBoxÁ¡ˆˆ¢ˆl }.xÏÖCçEçEèEæ( ¿±‡§í#éFÖCéuuVwâxíjí’E ”vp˜Dìâí­8§ß¤‰cW
˜DéF ÖCÇGÖCŒ"G¿cGØ‚Gé!‚Gö!‚Gé‚GÖCé‚GÇG ‚GÖC£‚GÖCà‚GÖCã‚GÖCØìâí­8§ß¤‰cW8˜DŠ ßJÇßJ˜DéßJ ˜DµßûHûHßJíßûHûHºßJ¿cßJÎcßJ³ßJÌì¿¿°ÀÁÿr„§È@ ›L³›LØ›L¿c›Lµß›L›L›LŒ"ÏϮЮl:9x“9¿cM¿cääÞ åÑÙæâÙçíÙlø[D Ü3ÓŠ ¬¬6­âôéQ:q ¢ÛšNØšN³šN¿cšNšNÐìšNµßšNšN³»»ó6¼âô«ŸQHXÅk9¿cšOŒ"žê$Ÿˆ ÿéß S[Œ"¨#Œ®Ê@c'@"¿cP ©©ªÐ%«ˆ ×ýqòZw³?ÌìÐи'ÑÃ'®Ó®'ÅW7a¡Ÿ³ŠQŒ"ŠQ¿cŠQ³ÁÁ§7Âî!®ÃÀ7®V@BNÌ.¿céQ éQšïïð)ðý)®ñ®ò’*ó*®ô°*®õÄ*®öî!®ª^;ùNŠÞ;¾R¿cÈÈå7Éó çgt‰ˆÐŸ¿cÌ̇8ψ.Ðí:@&âÄ­'…ÖCÐìÕÖ×á8#NMӵ߽T½T¿c½T³½SŒ"òSùMŸŸÄ-££¤ð-¥ü-¦ˆ.§íÁ‹/a¯ñ
˜D ÂÂè/Ä€0¾Å»¾iØ’ÕJÉÖCÌìŠVŒ"ŠV¿cÝÝ”9߈.Öà±9Ö·Ø÷úè–ðŒÖC ãVÌìãVŒ"ãV©¥;˯ʿ×Ïèä´¬¿»¦ßÐÆÁÊÈÑÌÛÕáÝB¼ÀE
Yk y¿ÔÐÈÂéÝ{¿¬©áÁÆÂçÝ®±ËÈ¿°¬´Ã¿²¬½»ÚÐÄÁ¨È·ËòËŸÏËßËÕÏ ¤ÝдÌÓÂúÝèËìËõËøËûËþË®¬¢Ì¿¹¬Ùզﬨ¬¯¬¸¬ØÕŠï¸Ÿ¿cÆ?tP Ìì !Îc(Ø
³"é7Ç3Œ"é!8ö! £à㊠µßíߺÛÐìšùM(È 
Øî0î0Ô5ð0»Ì-·}—KEüC£ÖCBN ¿c
‡dœŠ©Í«ÀÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ ÈErrorÁ O˜éBLG ¥CR  c cˆ¢cµ
 `£cbufÁ `àB¤GS
 ]¡€^  ¶] ¾`¨É±×â¼`€^ך^ôüˆ%#$¦%
#ìˆ%
õ0ÖC3E ª%üý$/ ¥ÖC «%º%ü¹$¥ClÝ$ÖC$Ñ$¶]­ÖC«âI ±&
&4³&¶]d³&º&
û0ÖC/,º&)ÆI|±& #¥
™"Ø
ÆI¾FO ¿&
Î&üÞ%p+;0 £ &Ú_,ô%“d û%“dI™dÔÆI ÖC¾`9¡C±G¡·cTd#“dÖö ¼À ¼À<™ ¼Àãü–Í/ªDªD´<„ordÁG´À 
 ]ü± & 
÷c ± 7ü³ $0 
 ] 
ìâí­8§ß¤‰cW˜DM 
€^ü± S 
Ù`Ì üå   
 ] 
žD 
€^ü± x,’ Èiƒ S D¼’ ü± Ž 
à`L Å >üî
×Ö^\  55
9É
:æ IY
ü³…¬˜DžD
å_ ü
 Í`Í` DebugStructÁÐ`×µ`Ñ` µ`Ò`
has_fieldsÁµ`ã¹q·Ù›ß¨,ñk¢ñkZókb ] ]5€^) êh4 ]¨€^œ žD§Ñ±Õ8˜hˈm€^Èi)£m€^èÈiÉæj ÀCü3ªD ªD /,—üü!Ôü
/'£DüÔOªDµnªDd3þnpªD¸Fü„4ªDD™ ŸE, /ªDGüÌ4ªD¡p ,Ì©
œÕQÖC„²ü£ @  ¤ÏqD#Ïqü£$ ÆÏq% 'ÏqKÏqÉHüïZÏq,—ÏqäùqòÏqš6%QÖCÏq¹qO
HÖC ¬Ð 1Û 9ã  JÖC ÏqÚ  Aû âtI âtIª 
Q·  É©  
  ùä!  ǽñå ñ\å 
¶cœê ] /ùÈ<  Û¼äÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]Tdùˆ} ùˆ 
òWÏqÏq !© Q¯ Y» «
EJüŠwùú¬ ùÙ¿ ¤_¾Ïq³âtâtÌâtÏqÏqDât
âtàâtÕ©ÏqÑÏqÉǽȽɽ}ʽ˽NeÁ̽ͽMatchÁBÙe±æµé!Ý 5Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÏvïÏv*@left_valÁÖ right_valÁØ  ƒ—t}›vƒ¼wé ç
Ïqo~JßâtÏqN¨|†l†—t„…Ìý l —t¼™ üý3
²Lü¯ƒÏqÏqÏqâÏqÏq¢ÏqÅÏqsÏqâ8Ø<g—tý—tÅ—t„Ø¼Ñ —t´ê üÐ1 ƒ NüƒÏqÏqÏqÏqÏqžÏqÁÏqoÏqâ/U—tì—t´¤Ó3
 ”Ó3
ÊÖC%ü¾3*[Ïq,Ë3$tÄ4DÄ4
ªÖC$Í4%ì¶4l¶4
÷ÖCF#ü¶4&Ïqâ4]ü‚4`Ïq,¦4ÖC$4ÀeiÇGà;¹«Œ 5ÆIœž5 ¤_ Ïq )ÖCÏq8ÏqJ YeÏqy ƒÖCÏq˜Ø‚§  Ïqµ
 ÁÏqÓ 
ßé  ÷  ·5^üè4O
 ÖCD5Ïqü4ÆIVØ‚OÏqWÏq_ÏqgnØ‚wÏqµ b|6Àe¬û5Ø‚ Ïq(ÖCÏq7ÏqI XdÏqx ÖCÏqØ‚¦  Ïq´
 ÀÏqÒ 
Þè  ö  6`ü½5Y
 ÖCdä5ÏqÕ5ÀeVØ‚OÏqWÏq_ÏqgnØ‚wÏqµ blÔ6ÀeäÆ6lÆ6
õÖC-#üÁ6"$Á6
ÝÇGD#ê6büœ6N¤_¶6Ïq«6¤_XÇGˆÀe¡µ !B쉭•ŠŠÏq¬Ì<œÌ<
Ë‚ccMefç‚ÈTu˜ÊIÖCRVüö<$üö<
Û‚¶E–=(üö<-4=
ó[èØèØ éØ²‚êØŸ²‚ªë¥CHÈûØûØüØ LayoutErrorÁ :ð¨?¢©ºD=üÌ<X4ï<
Ø‚G»üï<5üÌ<n4²=
ó[ØŒÏq˜TD²=üÌ<}ØŒüÌ<™d×=
Ö‚0t×=ë=jü¢<É ØŒ4»<Ïq¬< ØŒu¤Ž¯Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¤Ž˜9¯pØŒyØŒðÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ØŒ˜yðÀ‹ý¦Œ ÒŒyî䞎»çŽzܱ>
 ̱>
ÊÇ‹&üœ>1mÏq,©>$¼«?”«?
jÖC¾?$ÜÖ?œÖ?
4ê?!üÖ?.$ò?
ÂÇ‹G”ò?l@<•@
ÁÇ‹‘@L•@-ü­@(ü­@ 
œ4Î@"yó¤NÏqüé@(,‡A
ùÏq2AT‡AdAÏq­Aoüë>Âüž?üÌ?á Ïq,Ž?Ïqú>ØŒ4¢? Ç‹Ð? oé¤_³ ÏqÓILµ KÒ’ëû’Ȥ“¨Ò“‘”IÍ”Ä÷A Ç‹ÔõAØ‚  Ïq
(Ç‹Ïq8ÏqJ 
Y  eÏqy ƒÇ‹Ïq LÔBÏqü™BE¬™B
ër¶Eü¯B#9-äBè
Ø‚÷
ÏqÏq% 2=L  Zt¯B¶EÏq! µE¼¯B4¾B
„t¶EPD¾Bpü³A±üéA{†šDÖAÏqÇA Ç‹,íAê– ¶Er†š° è™»ÏqØ‚3Ïq;ÏqCÏqKRØ‚[Ïqcjqxµ ÇËœš¬˜ü´¶C˕ĴC Ø‚
 Ïq (Ç‹Ïq8ÏqJ 
Y
 eÏqy
ƒÇ‹Ïq
üðC! ¶EL“DÏqüÖCGÌÖC
îr¶ED6*£DøØ‚ Ïq#Ïq6 CN]  ktðC虆š¼ðC4ÿCœš<DÿCrüêB¹ü¨C{ µEd‘CÏq‚Cåš,¬CË•Ýrûšt†š£Œ›«ÏqØ‚4Ïq<ÏqDÏqLSØ‚\Ïqdkryµ ÇÏœš…žê´ÚDË•ìØDØ‚ Ïq (Ç‹Ïq8ÏqJ
  Y 
eÏqy ƒÇ‹ÏqtÃEוü­E-¬­E
+4ÓE'áEá Ø‚ð
 ÏqþÇ‹ÏqÏq+
8ÏqK [j  xÏq¼ŒE”ŒEÒ’ŸE tü©D¸üÎD“üÿDb¤_ÃDÏq¸DÏqÒD˕،4ƒE¤_ZוvØ‚Ïq Ïq(Ïq07Ø‚@ÏqHOV]dµ ŽŠÙÒ’¸£ô„´NT´N
ÖC$¿N%ÊNü‰NAFL NÖC$”Nà -º§qŒÚQ\ÚQ
ÚÖC$æQ%ìÏQTÏQ
ëFGI&òQüQUFL»QÖCR$©QGà:¸¨«ã¨´ŠS„ŠS
ŒÄ$S"üñR\ uÖC PhantomDataÁFu\»ŸÀeÓSƒüÄRF$âRÏq$ÒR¤]¤]V¦]Á‚]üß3ø¤”&ÏqØâ@bõ©öœ÷U„÷Uõ© ˆVÏq.üÞUY uÖC«ª½Vü³UŠFLÊU« õ©œ¢
©§õ©¥ÏqÑ\¡V Àe¿ uÖC ¶VÃÁF½«<«ªpäLù\«œù\$ƒ]
–Ä.ˆ]Lƒ]üæ\'”æ\
Êìâí­8§ß¤‰cWÖCÖCˆa•]üŽ\‡ž¯lÅ\ F,ž\ªD¥\ P ´\Ïqà «3Õf7f箘¯îLže«Äžed¨e
«1t¨eü‹e,”‹e˜¯B¿eüºd…ž¯lêd•°,Òdª° ÙdÏq½°«$H¥±²˜¯L‚k«„’kT–k
É¡ÖC’kdkü‚k&,Œk
—ÄaP¤käŒk¯kü¾jq¤_÷j•°,Új„³ájªDéj¤_y½°ÉÏqº4æ 7Õf;pþ²ñ±³ÅLˆq«„—qT›qþ²—qd›qüˆq%$q
˜ÄVE©qÜ’qüõp9”õp˜¯L¶qü†p°ž¯lÔp•°,¥p„³¬pªD´pª° ÃpÏqª½°ïÏqà>æ AÕfE|þ²¾µ÷˜¯È„•T™þ²d™
«¤×
Éž¯ÖC ü¯T„Æ
šÄ
f Tí üÆ=ü•‚&
 ÖC„³Ïqž¯ât
ü¯‘‚
Ú[ÏqÏqž¯ÖC„³œ¹ª¹ Å ü‘‚+üÒ‚À ÖC„³Ÿ¹55
9É
:æ IY
ü³…¬ÖC„³ª¹ü¯ä<Ê‚
ç[ž¯ÏqµºÖC„³¯ºª¹¸üʂə„Žüò~§ü‹ŽÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ž¯µºü¦€5•°ž¯„³ÉªDªDª° ÏqÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ž¯Ïq=Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ÏqÏq½°rÏqc×¹ðâtøž»oâtw,É
0æ 49¡>æ 8ôþ²)‰¸ð¾¸ÃǹB»ƒµ‚ât¼¢‚”¢‚˜¯8 »‚잯˜‚×¹Ïq –‚Ïqâtæ ât6˜¯Œ _ref__newÁÜ©ƒ”©ƒ˜¯<¼ƒ#íƒât”߃l߃
Ê„³ÖCA)üõ‚ 5ÖC„³’„sµºÛ‚ž»Ïq<Ó‚ž¯Ö„³Ïq¾ât´É
,æ =âtÚ˜¯§ÂÝ¿ÀšT‘šþ²šd‘šL§š
«¤ÔšTÜš‰¸<Ôš dÜšü§šY¬¾š
݀
] Kêš<ïš<øš ü¾šBü’›&
 ÖC„³œ¹ª¹
ü§šŽ›
Ú[ÏqÏqž¯ÖC„³œ¹ª¹ º wüŽ›+üÏ›À ÖC„³¯ºª¹ü§šé<Ç›
ç[ž¯ÏqµºÖC„³¯ºª¹ÆyüÇ›Éüå—±üƒšú»üž™5•°,’˜ž¯<¡˜„³Á˜ªD<јªD<옪° ‡™Ïq‡š½a÷½ç½°2Ïq#ŽÆ¹âtÁ—ÇCâtKÉ
æ ¡šæ þ²ã‰¸ª€ÅþņDz›ât¼Ÿ›”Ÿ›˜¯8 ¸›¯ž¯•›ŽÆÇÏq “›Ïqâtàæ `âtù˜¯Œ¿Àܦœ”¦œ˜¯<¹œ#êœât”ÜœlÜœ§Â8 üò› 5ÖC„³0µºØ›—ÇHÏq<Лž¯Í„³ŽÏqµâtqÉ
,æ ât˜¯§ÂÔ¿À
䘮$®
ÖC$˜®T¢®,®® 
¼®$Õ®$Ú®
TÕ® 
5
•"ž¯O 6
?C TÈ® $Í® Ûž¯$¯üô®D¬ù®
ÖCž¯$ô®9 $•¯L›¯T¦¯,²¯

üù®?Z
üî®J|L€°
55
9É
:æ IY
ü³…¬ÖCž¯Œ•°ž¯Äްü¾®4ί
«ž¯T௠ֿž¯ž¯ Ö° $̰LȰ Ö¿ž¯ž¯@ ×°Z üô«ã˜˜ü‰®Îüà®ßü˯üü¯*Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ž¯ž¯ü’­$•°,˜¬ªDL§¬ªDTĬª°,â¬÷ÎDü¬ž¯D®Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙž¯d ÷ÎŽýÎyž¯Èg;ž¯1Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ž¯öÐcž¯|ÈgT˯ž¯öО¯Âž¯Q P set_orderÁ]
fail_orderÁk£nfuncÁuprevÁ|ó : sharedÁ% next_prevÁžˆÎ4ñÎÞñÏZ÷Î(÷Î/÷Î6 $ÑÀ  ðÀ  õÀlõÀ<ùÀ
@ /LùÀ„Á
l„Á<ˆÁ
A¶Ù
- LˆÁüÑÀH  „ÖÀ
ŽÖCžDå<çÀݱ w,“ÁüÖÀC ˜Á   žÁŸÁü¸¾çQa 3 Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ž¯55
9É
:æ IY
ü³…¬ÖCžDüÌ¿3•°,⾞¯<ñ¾žD‘¿¶Ù¡¿ª°,±¿žDJªD! ¶Ù>ªDöÇÝvkÉ
mæ pÕfr£tz±Ù˜ðÙ`±Ú;¶ÙǶÙΞDë $¿×  ã×  è×lè×<ì×±Ù(Lì×÷×
l÷×<û×ðÙ
( Lû×ü¿×M  ¬Ä×
ÖCžDÙ<Ú×Ñ¥ r,†ØüÄ×H ‹Ø   ‘Ø’Øü¡ÕñQa Ÿ3 ïÛüºÖ3•°,ÐÕž¯<ßÕžDÿÕ¶ÙÖª°,ŸÖžD¸ªDÇÝ©ªDhÇÝígÉ
iæ lÕfn£pð±ÙðÙбశÙ<¶ÙCžD`LèÞ«|ƒßlƒß—t „‚ß ´üÞ
üèÞ0LòÞ
žÄs4”ßüòÞ&üÕÞD”ÕÞ˜¯S!¡ß£üìݵ
ž¯l´Þ•°,ÞÏqˆÞªD”Þª° £ÞÏq·½°ÏqÛÏqñÏqQ¹TÕfW—tMÅ䘯àLóå«|ŒælŒæ—t¬†æ üóå.Dýå
 Äd4æüýå$üàåB”à嘯S!ªæ¥üøä² ž¯l¿å•°,ŒåÏq“åªDŸåª° ®åÏq·½°ÏqÛÏqJ¹MÕfPŠ—t7³ç ˜¯ÙL€í«|šílší—t¬”í ü€í/LŠí
¡Äd4«íüŠí%üíìC”í옯S!¸í§ü„ì´ ž¯lÌì•°,™ìÏq ìªD¬ìª° »ìÏq·½°ÏqÛÏqJ¹MÕfPŠ—t7šê ˜¯ÙLÞö«´ÞöTèö
•Ä/dèöüÌö)ŒÌö
ÊGÖCL)ûö©ü—öd‚GD¹öF$°öÏqŽ««>Ìì³ùìŽL‚«´‚Ìì,Ä¥”¥
NÖC$¸'Ô¥Ïqü¥ ÃÏq' Û¼‚Gü¢z¼úŒúùì$Œ‚#ìõ Û¼‚GQ¢‚ªü¶€ìü÷€«Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ‚G„Ü€F$Ó€Ïq$û€«³@ÏqZªGü=â@¼ÌìåÎîÄùì2L¯ƒ«„¾ƒ ¼Àü¯ƒ $¹ƒç®D4´¹ƒÄꃔêƒÎî$ýƒ#ÞƒÏqãƒÏqDœ„
  ]Äd˜h 
5 ´-  ,¹„  ]$À„€^ü8,³„Èi RB
”³„,Ù„  ]$à„€^üX,Ó„Èi
}RB ”Ó„ün4ó„æj IDó„­üá‚ ü¤ƒÝüÙƒ¨Ö^\Žƒ•°,è‚å_ ï‚Ïq$¨ƒ½°MªD@ÏqÜÏqÒªñkãñkPñkÈókР]ï ]¦€^ât¡ ]X€^KâtS ±£â¦@qØk
ç®æÎhcât€^Èiât€^ÄÈi©æj}L«„Ÿ† ¼Àü $š†ç®D4´š†ÄɆ”ɆÎî$܆#¿†Ïqlˆ‡Dˆ‡
TÖC‘‡ )-
 ̈‡
üý†' üë†=Œë†
ÏcÆI/ ¦‡-®‡°üÂ…ìü…†©üº†t Ö^\ï…•°,É…å_ Ð…Ïq$‰†½°ªDtÏqª? ÆIÈÆIüþ†&ÆIèù„)f±iâl@kÃç®ÓÎúxàú&Lĉ«ŒÓ‰ ¼Àüĉ!$Ήç®D4¼Î‰Äï‰
ƒÖC$‚Š(гü—‰vü¹‰TF$ª‰•°, ‰Ïq$½‰½°ÒªDÄ%â(^ç®Õìý­tèŠdèŠ
ÖC üŠüÉŠ3F$ÙŠ¦ÿZTŽÏq”¤Ž\¤Ž
¼‚G,°Ž'´ÀŽ„ÀŽìý$ÑŽ#ÜŽ¹üÚü…ŽWFGÏq$‰Ž¤_ŸownedÁ#â&\ž€Íìý¦
ë‚GÇG Å+Ô®ã¨I μü‰EFÇG ‚G­7ÿ©ã¨~d–L
ÖC  '¨¿üö2F$‡ÖC þ¿
0»ƒxD™“ÏqÔˆ“„ˆ“
ƒ˜D1%¨“ÃüÚ’NÅH$ù’êhâ’Ïqsµ 7Ò„}d€–Ïqôï•„ï•ìý+ “–ÆüÆ•MF$à•ÆIΕÏqm@6ìýwÏqŒìž€"‘žÑü§jüÎCÏqG¤_fâNž€LÿŸ ‡ Ïq&ùž"#ù_ž"#vôŠ  ] -ù@#á#
ÜWO#ü³ E ËÖC’/¹©Fu\»ŸÇGþ Òü½ŸÁ‚G$âŸÏq$ÒŸ¯Ïvéâ!E›vЉÚd»§ÏqÄѧœÑ§
JÖCå§'¬ó§„ó§ù섨#ލÕü÷¦ü±§]‚GDž§ÀeާÏqµ§¤_Ÿ@@U€‹ÆùìŸìͪ LàªÏq;”ͪÎî)YêÏq$€« Œôª\ôªž€9 l¦«Àe䘫l˜«ì‰+!¼«ü”ª¨ »«Ö6ü¾ª~ ÇG4­ª‚G$¤ªÏqüª`ÏqA¤_ßGÀeÊ~?@=©Îî­ž€#ì‰ó‚G¹„Ë­TË­¸¨$Ö­#á­×ü¡­@‚GD¸­ÖC$¬­à
0¸¨tl°<°
SÖC$ʰ'ü±°„±°ùìF!ذÚü÷¯a‚GD•°¤©$ƒ°Ïqà8¥‘§ù쌻´TÀ´
É‚GÖC$»´dÀ´ü¨´%”¨´˜¯L!Õ´ÛüÙ³|ž¯l‡´‚G$𳪰 ö³ÏqšBÞ’·˜¯ŠLë¶ÏqìØ¶”ضÎî- ѶÏqˆ·Ýü¤¶düɶ?Ïq,¹¶ ‚G,¯¶ªyÏqØrUÎúTȺÞ’$údȺÜøº„øº
LÖC$‰»»/üçº-„çºùìN!œ»Þü€ºœü¸ºd‚GD¥º‚G$ºÏq–ºÏq$¼ºÏq¯'Ø*â-mÞ’œ–ëùì¼L“¼Ïq쀼”€¼Îî- ö»Ïqd¼¼<¼¼
XÖCļ'Ù¼áüÔ»üñ»h¤_æ» ‚GLÜ»Ïqƒª®Ïqʤ_(@­cÎîã嘱Lþ½Ïqìë½”ë½Îî
¬•¾- 
,¾¾   ]$ž
€^ü“¾7,¸¾Èi  R
B”¸¾,Þ¾  ]$å¾€^ü“¾W,ؾÈi}RB”ؾü“¾m4ø¾æjIDø¾†¿äü—½ïüÚ½¬Ö^\Ľ”•,ž½å_ ¥½ÏqÏq¬ªêÏqñkÅñk2ñkªók² ]Ñ ]ˆ€^{âtƒ ]:€^-ât5±@HØBáÎî˜h2ât€^ëÈiÐât€^ÈixæjL äÔ¿ Dß¿
ë!‚G,á¿$„ß¿,è¿
ÙÖCF<è¿nTÔ¿
×ÖCG ï¿ Tú¿ÿ¿
ÝÖC$ú¿,ÿ¿üÔ¿1 Dñ¿
ÞÖC f¤ñ¿ „À ‹Àü²¿Y.>ç2‚G$Å¿”•,»¿‚GÖC\ù„Ïq3ˆ »µ ˜à àŸ¡<ã¡‚GÓLœÁÏqì‰Á”‰ÁÎî- ÿÀÏql¹ÁD¹Á‡úÂÁ#ÎÁëüÚÀtüúÀTù„íÀ”•,ãÀÏq}ª¨ÏqÄ!@ ZÎîÖ‡ú¤LØÂÏqìÅ”ÅÂÎî- »ÂÏqŒõÂdõÂ
VÖC‚Ã)ŽÃîüŠÂü¶ÂXÁˆ4¥Â³™L—ÂÏqª¯ÏqË!@§[Îîݽ¦«lÕÃTÕÃà  àÃ#èÃñüµÃ3‚G$ÆÃÖC ½Ã¿
0à t„œÇlœÇ« ªÇ#üÇ tÇ
ÕÖCG&µÇôü߯V‚G$õÆÇG çÆÀe­7«§ ©d“È,˜Èˆ $“È<˜È¥È÷üòÇ3ù„†È”•,üÇ 1ˆ w„’ÉL—É
÷!‚G$’É\—ɨÉúüåÈCÁˆ4ɳ™LóÈ 1³«|d…Ê,ŠÊˆ $…Ê<ŠÊ—ÊýüäÉ3ù„øÉ”•,îÉ 1ˆ w„üÊL˳«$üÊ\Ë’ËüÓÊ?Áˆ4ëʳ™LÝÊ 1³«w,ôÎÿΈüÒÎ-êh$åΈm,ÛÎ /L®ÐÏq½Ðü‡Ð6Ïq,žÐêh$•Ð /ü…ÑF ˜DëB¹©Fu\»Ÿ ¤_ÀKÑÑŽüÑÐêh$öÐÏq$æÐâ
1LÊÖÏqì·Ö”·Ö
N˜D1$­ÖÏq|ÞÖÀKóÖüýÕvü¨ÖKÀKD•Öˆm,‹ÖÏqcªÏq®!@X±Àü¥ÙI ˜D ÀÙÏq„D˜°ôÙüüØxêhlÙL°ÞÏqìÞÞ±- “ÞÏqDÄÞ ËÞÏqÒÞüæÝlüŽÞD$ÿ݈m,õÝÏquª Ïq¼!@˜W±ÎLïèÏqìÜè”Üè±- ÒèÏqlƒéDƒé
T˜DŒé)–é˜üŸèwüÍèI ˜D,½èˆm,³èÏqª¯ÏqË!@§[±ݼ¶«L«óÏqì˜ó”˜ó±- ŽóÏqŒ¿ód¿ó
V˜DÌó)ÖóüÏòü‰óM ˜DLõò êhLçòÏqˆª³ÏqÏ!@«_±Ὸ¯LŸþÏqìŒþ”Œþ±- ‚þÏqD¶þ ½þÏq&$Íþ Û¼·ü³þYlôþDôþ¼¶ýþ#œïþ
' ]
.ù!@#á!#ЉN!LÂ…Ïqä°…Œ°…
ÊËË´ÍâÎíµÆÛ <ä ˜D˜Dl`Ò…ü¨„ª’¿DÊ„êh$Á„Gˆm`ãÏvÏqÍ0Uß½›vIЉŒ¿ê$¯‹t¯‹<´‹ß½(L´‹($Ì‹ Û¼’¿ü¬‹nL…ŒÏqäó‹Œó‹Œ¿, üî‹" Û¼’¿b Œœü늵ۼݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ’¿„‘‹êh$ˆ‹6ˆmO’¿×Ïqò*ß½kŒ¿Ïq줔¤±- ÏqÔüðdü•?Ïq,…ˆmªvÏqØoR±¥L·–Ïqü¦– „¦–
L˜D2–-ü•–2„•–
Êêh˜DT)Ï–žüΕêhlô•ˆm,Þ•Ïqå•Ïq¡Ïq½$Ø'UëÅҞƥdÁšÏqÄךœ×š
J˜Dëš'¬‚›„‚›žÆ“›#Ÿ›¡üŽšü·šhêh$¨šÀK–šÏq»š¤_Ÿ@@UàÇÆžÆŸL¡œÏqT®œÏq¼¡œ¾œ¥üô›J$’œˆm,ú›ˆm,œÏqwÏqk$¹
'SLžÏq\¦žÏqüž"\šž
ïßÏqÏqK<Äšž¸ž«üÉoÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¿ßÀßÁßLessÁÂßÃßÄß~Å߯ßÇßGreaterÁÈßåºÝÈnûê7¬ðˆmˆmâtDât8&¹
)ûŽËML«ŸÏq\¹ŸÏqÔ«ŸµŸ
»ÏqF7„µŸËŸ®üôžW–Ìl“Ÿˆm,ûžˆm,‚ŸâtâtŽ$¹
'U΢Lõ Ïqì⠔⠱- Ö ÏqÛ ÏqD™¡    ]ÄŠ¡dŒ¡˜h Š¡ 5
´Œ¡- 
,¶¡   ]$½¡
€^üŠ¡8,°¡Èi  R
B”°¡,Ö¡  ]$Ý¡€^üŠ¡X,СÈi}RB”СüŠ¡n4ð¡æjIDð¡þ¡±üŽ ðüÑ ­Ö^\» ˆm,• å_ œ ÏqµÏq«ªéÏqñkÄñk1ñk©ók± ]Р]€^zât ]9€^,ât4±@GØAొ˜h1ât€^êÈiÏât€^ÈiwæjKd££,¨£
˜˜D$££<¨£0Ä££ü˜£&ü†£<Œ†£
ÏcÀK/ À£-È£´üâÖ^\ð¢ˆm,Ê¢å_ Ñ¢ ÀKÀKü™£%ÀK§·ë:±=k’ÕïÕÀt§¤d§¤
˜D"»¤·üˆ¤3êh$˜¤¼×\
 ¾RØ‚# Ïq1:¾RÏqIÏq[ jvÏqŠ ¾RÏqÓ
³ Ø‚Â
 ÏqÐ 
ÜÏqî  ú
 
 !œ¸
Æ

H
ÒüŠ
IP
 M,•
 ¾R¡ØØ‚ÏqžÏq¦Ïq®µØ‚¾ÏqÆÍÔÛlÑÚÈ¡ØØ‚" Ïq09¾RÏqHÏqZ iuÏq ¾RÏqë² Ø‚Á
 ÏqÏ 
ÛÏqí  ù
 
  ÌÊ
ýGÓü—T…Û‘Û¡ØØ‚Ïq˜Ïq Ïq¨¯Ø‚¸ÏqÀÇÎÕjÔÞÃ¡ØØ‚" Ïq09¾RÏqHÏqZ iuÏq ¾RÏq² Ø‚Á
 ÏqÏ 
ÛÏqí  ù
 
  Ìõ
ûGÔü¼Z ›L…Û‘Ûƒ¡ØØ‚ÏqœÏq¤Ïq¬³Ø‚¼ÏqÄËÒÙjÒâÇd¡ØØ‚" Ïq09¾RÏqHÏqZ i uÏq ¾RÏq®²
Ø‚Á 
ÏqÏ  ÛÏqí
 ù
   üú#¬ú
H!ÖüÈf¤_Ú M¤_P‘Ûˆ¡ØØ‚Ïq¡Ïq©Ïq±¸Ø‚ÁÏqÉÐ×ÞqÕæÌÏqÏq
DATA_WORDSÁ
ìו¤_¬Ó
œÓ
òÏqÏq9\ÿ  ¤_üœy ä üËÑëÍMìèßÑÛÑÛÂDÓÛ×DÝÔÛ»ÝÍõƒ«%9šéû¹©Fu\»ŸËéí£$”

&.œ›
Œ›

À"¤Ä
Ӏ

ÊŒì ´ƒ ¤ƒ 
Àšé ôû
 ¼¦ ¬¦ 
Êšé ü  ìß Üß ”é$™  Œ™  
öšé ,  ì™  
šéŒì L
   ¸ 

üŽ , 
áŒì
l
B 
*L•
ïŒììèüð
 ä§T÷êüø
´  ´

ªŒì= % µ
ì×Ü×
ӎ
$‘Œ‘T‘î&dü‘" 
šéžÕF¡ˆˆ¢ˆl }.xÏŒì‹Hˆ„£ µ
ü†1T†
áÜñ®B* 
ñŒììèü™ ä§T÷ê «
é¼üÙ ã
6F »íTü
¬
ü¸
üÐ ³ü›üÈäÍM$
Œì ø ÏqæÏq
JÏqvÏq>±ê ¤_] Œì¸ šéï ±ê Œì©ìèc±êKÜñ ŸŒì±ê¤_ê Üñìõ÷õÐÜñ1ìèë±êÓ¨Y±õߟýâà­œâÒ†ìå®ìÄÔ쥛íe”é$‘îü¾î׎ïŽÁïg½ðí”鵑îÒñnãòã–ó¼ÜñpŒì!


ÂŒì¢

/ ŒìÔ˜
L˜

ÝŒì]#È
 È

™"Œì¤_§T¤_)1Þ
ïüÍ ü
Q¤_ö וé Œì
”ùèáõð¤_Œ@,±/céøªùäÓùÁ ¤Ã
ÂÜñÄÇ/ Üñü¹
ÝÜñ^$  UniqueÁ ží8Åá™-ÝñŒì§ ïíe¼îËè¿*Œì”ù  Ø‚˜
 Ïq¦¯ŒìÏq¿ÏqÑ
àìÏq  ŒìÏq
 
"Üñ§T1üʽK Z_ºþ §T
u Ø‚« ÏqºÄŒìÏqÕÏqèõÏq '  5 KÓùX§T¤_ )ñ ü©^¤_óוæÜñ ­ÍûÃö¤_yŒìÅ Üñ¯¤_·ÇÀ¤_È”ùQØ‚ûÏqÏq ÏqØ‚#Ïq+29@G@¹­¼
¢ûÛäû Óù;ºþdºþk($š±"'šN3 šN=FPX%¸
´Ïq8%¡ ¬³*šN5Ïq\C„„m(&ª   ]X&¸ 
 ]Ïq&2€^Y^
ùcotdiµÖ^¨Íƒ°å_· ]¾ ]°€^· âtÁâtÈæ±óý¿†€^ôÓ…·¤_̓%/X(¸ÏqÏq#ºH(µ
̓̓ÏqiÏqp4¹
AK
´šNÝùü@šNЉTÏq
 ýÏqü×2 ¬üü©fšNšNÏqkÏqƒ:ˆ
´«8)Œ »)“¾*šO5«^Do(*•   ]ˆ 
 ]«'3€^Z_Ó…lqafƒÀšÖ^¥ šO¯å_ ]½ ]¯€^ ½°Á½°Éç±ôþË€^õÓ…«œ¶ç®+Åüœ8 ¬ÚüàzšN¥ªDúÏq}½°#Õf'R箯«ÏqüÞ ±³=.ú´èüœi¤_Ó¥šNªDŤ_u½°¤Ïq3î!7Õf;o±³»´¤#«dÙ#ÏqDç# Ïqü¤#^„È#¾¸N? 3<ñ#<ú#üÈ#:=
üž#d
^$É$
ÏqtÖ$ ¬
œÒ$ Ö¿šNšN ä$$œ$ «Ïqt¨$ ¬ ”¥$ Ö¿šNšN  ¶$ö$ƒüå!‘ô™$üÅ$ Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
šNšN¤ÿ"¥,"šN<œ"šN´"ªD<È"ªD<ã"÷½È½° ÏqýÏqôÈgD™$Ïq:šN+ÏqžšNzÉ
~æ ¡Šâ âý
K¾¸u¼Ï  
Œì‹e  ä ”Ô ÷ Žüͪ ¤_ì ª° Œì ç ¤_s±Lž—
œÈ9 


TÈ9 ¡Ø;4Ó9 
è¾R/ DÓ9 d\º9 
,¿9 Û‘ÛŒ„: 

 Œì‹e¤_¤_Œìüö9 lö9 
íŒì‹eý™ˆš s :üê93 ,ð9 
þ,ê9 _$˜:   üð9-  Á:

 Á: (Óù 4§T¤_  'L¼: $¼: 
Ýe G
  #Ö: üÐ8†  Õ: 
.írNüÜ9L ¤_€9 ª°,ô8 Œì û8 Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ‘Û˜¡Ø{Èg9‘Û0¤_žÍM檚1¤_3‹ehŒì ±¹®Eÿ˜#¤šNãšÓùÅæ›ŸŒìg ‘: Œì‘: Óù'§T¤_&LŒ: $Œ: æ›A•: +¤_: ªšA‹e}Œì±¬ŒìiÓù¨æ›±ÄôU  ÖC¤_‚GýÎüßU. |äU 
ÖCï ý΂G$ßU `üäU) ”V ü›Uy ¤_ÔU ª°,ºU ž¯ÁU ¤_™¡´$µ 'S“¡´üU ž¯„üU T€V 
ÖC0d€V ŒV 9‚GûU ™¡Ož¯oµ ¿ž¯oå¢}µ
ü³tò   TÑt ¡ØœÑt 4Üt ÿ˜*
DÜt ôÈt \ºt  ,¿t Û‘Û´éu tïu 
,éu 
„ïu lv ,“v 
ƒ,v  
<“v TÇv
¡Ø´¼v 
Ýv  
 Ýv (Óù 4§T¤_' åv  
æv 
üÙp 8H  ,ÿšCüçt¾ ü¯v7 
e †q PLòp Œì ýp °¡ØòÈg³‘Ûª¤_˜¤_vÙO4³v ¡Ø`Œì@ùi±l®ÿ_guardÁO 
ÿ˜h‹¥µ¥îÓùƒÙO\ÙObŒìiTä| ¡Øœä| 4ï| ÿ˜*Dï| ôÛ| \Í| ,Ò| Û‘Ûlˆ} ,Ž} µ¥,ˆ} <Ž} ¦} ü©|} ¥üú|& ¤_»| Ù§L±| ¤¡ØäÈg¥‘Û¤_ˆ1®¸uÿ˜
µ¥·\©˜   ÐPt¨˜ ’P¸˜ ¨üþ”º ª°t …¬_#@Ïq64Á@Ïq MAX_OBJECTSÁ@Ïq MAX_OBJECTSÁ`+¥%ЉH+·%
´ŠQ8+ý$ Á+„%Å-éQ8šN|ŠQfMЉá­}(,†%   ]`,¥%  ]šN&€^H,·%  ]
ŠQ& 
2 €^
ûc¥ªšŸnsÆ,‹%ÇÝ Ö^è éQòå_ù ] ]ó€^ú̓ ]Ô€^Û  ŠQ舱ðD±R]̓€^U†±€^(ö¯zÏqÏq128Á„Û^Là^Òâ$Û^\à^ÄÚ^†J†JK‰Jµ 7ŠJphantomÁ7J¤7·0ØQdèääæ(åô(®æ‚)®çî!ËÖµ”ÀÞäá‹H¦«
ë!ò½Åø^úü©^O ³<È^‘Û,¾^ òýâ2 FÒâPã³2t‘`¥¥¦Ô5¨ˆ Û>q —Ö@AÃÛÃÛ ManuallyDropÁÅÛ»¬µÜÀ,%*Lü‘`($ `
²µýâü ²µýâ¤_¿§Tœ¥`Ì `¿`ûüÚ_eýâTü_‘Û,ò_ µ:ƒ¶®´`Ø‚ Ïq(²µÏq8ÏqJ YeÏqy ƒ²µÏq¸`£ Ø‚²
 ÏqÀ 
ÌÏqÞ  êô
 
 ³`
ë!²µ9"ü¿ýâ¨`Öž¶ ¦` ²µ{Ø‚ÏqŒÏqÏqœ£Ø‚¬Ïq´»ÂÉ®fOٹɄÁaá.á.aã.»Ì-IÜžB2®Ïq´ÁaÒa
/Ïq\,ÒaÔÁa ÚaÏqáaýüaQ$²a‘Û,¨aÏq| ±»É>ñ»¤$øg¬ég „›h±»´›h¬hñ»+,¬h„»h±»ÔÐh\Üh
´Õ\Ðh èhÏq tÜhüÐh#4ëh
±TÏq \Dëhü»h9Ìh
ƒ/ÏqžLüÌh(„‚i
 ‘iÏq$
l´i4¹i
ú$´iD¹iœ´i
 CachePaddedÁ»ë="(3ºšOü´i+
ë!À
i #ŒÍi ¼À=$Èi
 ¡0 ¼Èi¬ýi4Šj
ü dýi DŠjTÌyÀüÌy.ÛÀ*
Œèy ¼À7,×y
bLÝy7 ü×y#„šz ¼ÀüŒzlŒz
_. !tþzá.á.aã.»Ì-IÜžB2®´­´­µ­WrappingÁ·­ˆ »-ˆ
óQ]Ïq¤þz{
/ÔØ
,{t {§Ã\»{ ´­Ïq Ä{Ïqœ³{
Ç ÔÃÔÃ,³{Q-ü {'¯{
ƒ/ÔÃTį{<Ó|!ÏqüÓ|("ôÝ|øÏqÏq. "!? 
!?øÏqüÓ|-  ÿ|Ïq%l“}4˜}å¿$“}$D˜}4©}%ì“}<¡}
ì$M%,#|¡},Ó}Þ} Ý}ü±g­büÝgü‰hÕü¡i¨üíiÜü¸tüüétËüòz×&P,Íg‘Û,Ãg’P,ág¡ØÏq\hã¼ð¤_;ã¼ÇÏqxÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÏqpšNd¥i¥× À2™´cªDÍšNLñišN<¼tÉ”ít¤_r¥{ªÊšªDk¤_ªD4ÔÃ,öz §Ã¤_üŸËyÔÃAÔÃwÏqåÏqþô¤_:™´yª°\Š£* global_epochÁ" new_epochÁÉ
 resÁüàvøÏqøÏqñ»Ø”¾¥Ö¾k‚¿Få¿éÛÀy—ÁÄÁ
ùŒÆtÛÀüót¶
ƒ
Ð[šNšN\Évvù4ž"#Љù3@#
›_üýx(ÛÀ4·Â;ÃÄ¢Ä)‹ÅÅÁÅå¿ÓÃǤ’Pf „Å~±»´Å~Ö~ñ»+,Ö~„å~±»|ú~ ˆÏq$ 'ÏqJÏqüå~%ö~‚¿v¤ö~„˜ §Ïq$
 Àü·6ÛÀ *
ŒÈÙÍ ŒÛ
¼ÀT·Â
} J
3 üÂ+Œÿ±»¼ÿ‘€ñ»,,‘€äÿ š€Ïq%
|®€D³€
$®€
T³€Ü€ƒüŽ~Îü³~©¤_¨~‘Û,¢~Ïq\·~ã¼}¤_Ýã¼UÏqIÕsQÔ¤_¥ªÊ¼šNŒªDxÏq/ã¼N¤_æŽ*Æñ»‚¿vÛÀ ÙÍñ·Âñ»„Ó8ŒŠ±»¼Š¡Šñ».,¡ŠŒ¾Š ΊÏq&É7ÔS  
àW§T# ]§T'ŒÚб»„ðŠ  ÿŠÏq&  (ÏqL ÏqüÚŠ'슂¿Šz¬ìŠˆ‹üΉºüü‰Œ
¤_ñ‰‘Û,ë‰Ïqd€Šã¼ŠT%¤_ã¼
ÏqýÕsL°*Oñ»É¹Öt‚¿Þ
Œ±»´Œ’Œñ».,’ŒŒ´Œ±»¼´ŒÆŒñ».,ÆŒŒãŒ óŒÏq&É;ÔS  ¹Ö§T# ]§T%ŒÿŒ ±»„•  ¤Ïq&  (ÏqL
 ÏqüÿŒ'‚¿ Š
z¬‘„´  ÃÏq&  ŒÈ
 ØÏq&
 „Ó ˆŽüÁ‹Çüï‹ü¡Œç¤_ä‹‘Û,Þ‹Ïq\ó‹ã¼cÏqd¥Œã¼9Ô¤_Aã¼¼Ïq¯Õs·5¤_Úv*y°*qÇñ»×ñ»¡¹ÖL‚¿¸„Ó)(C©  ]˜C´  ]uuVwâxíjí’E ”vp½SYe€^ŒÓ…ž£˜µËÌÖ^× ½Sáå_è ]ï ]á€^è  ÿßöÊáþ±*5Èá€^-Ó…I(D  ]˜  ]ÿß'€^àD·  ]
¹©Fu\»ŸÖC¯TQ 
] €^»Àö¯ÍÒÂÇšîDÔ Ö^ òSå_$ ], ]€^'Êá0 ]€^   ‹ãøä!w±Êá€^ˆöä€^Zö¯­HEÆ Ú(2 ½T<‹æDM¹
Zd(FÑ  ]
êc-2:ÜQÖ^\‹ædå_k ]r{±ˆêæœ
lÍ:\Í:
¨L÷:ÿß<†; ¼Àô÷:$;
½SD5,;¤;$·;l·;4¼;
š½S,D¼;*<­;  ²; Û¢á4â;  ÿß<î; ¼ÀÜâ;$é;Çè ? 0,÷;
¤é;$ç<
Tç<ì<
½S,,ì<1Gß
9Gç
 ·ÖC¯Tât‰GÞ

AGÿ

âtIG‰ 
âtIG® QG» ÉG­ $”=d”=,™=
˜½S, <™=ùGè !  ǽáGÌ  Û¼ÏvùGŒ] ùGŒ ¼w!G­ QG³ YG¿ P<üˆ= \ˆ=
ž¯TÖC½,¢=
.\º=
ü£;±ä=ü·üÁ:üè:öüÅ;ü×;ýùGþ
Œ ùGÝ Ÿ ¤_¡: òSL—:ª°,Å:ìâí­8§ß¤‰cW½SDì:ÊáÓªDÇÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡z٢Ỡ›ï×Èg¢á›ï$Û;ÊáªD­xÙâtÏqB½ð[âtâtîâtã·ÏqßÏq×€y!Gá Jâym¤_¢á¿½ðØs£wü-@®_ succÁÖ
ÈyŒÜy=ÿçyÇè8‹éûÇèxÔê@ºìa¼w ÚíÐ ó<
ÏqBQ·ŠâtmÏqO|ü‰?ÁL¦?›ï”¦?4°?‹é+D°?ì?<“?  ˜?Û¢á4Ô?ÿß<à? ¼ÀTé?'ª°üÔ? $Û?ÇèSD'5ÌÛ?$†@ T†@@Ôê %
,@|†@ 
 ”@Ïq$ $þ@
„þ@DƒA
ž½S
, ŒAÏq \ƒALÐB›ï|ÐBÚBÔê+,ÚB¤ÐB ãBÏq$
ÉJÔS  ¹Ö§T& ]§T%ôæC(ÊáL«D›ï<¼D ¼À<ÅD ¼ÀTÎD)ª°üæCs„šD
޽S›ï(t $¶Dm^)O üšD?IüàCy
j ˆI55
9É
:æ IY
ü³…¬½S›ïLôI›ï ’JL¿G›ïŒ¿G,ÉGºì+<ÉGTÒG*ª°ü³G*\³G
žýU˜DW*9,$ÕH $·KT·K¼KÔê%,¼K|·K ÅKÏq$LéKÊá¬ÝKÊáL”L+Êá<£L! ¼ÀT¬L,ª°ü”L#$žLÇè+R!D,5 ÌžLüˆL/›ï ¼ÚL" Ö¿·½T§T½TìÕL Û¼Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
·½T"§T$òM#„æM›ï#§T<ßN$ÿßœÓNÊá$„ôN›ï„«Ol«O
ýU˜D ¹O&(üŸO% Ö¿·½T&üšO% Û¼Ëþ%§T$ÿO Û¼Ëþ‰P ½üÖ>³ü»?üÉ?üó@¬
üÕCÊ
ü„I-Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙËþ”ì> ŸŸÄ-££¤ð-¥ü-¦ˆ.§íÁ‹/a¯ñ˜DýULÞ>ïïk½ð­Ègn¢áe›ï$Í?Êá`ªDTÑÏqü½ð›ï$÷@½ðÃAÏql½ð%›ï$ÙCÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
›ï£úþ›ïWªDLªD@Èg,€E¤_¢áB½ða£úÓªÏqÕ½ðîÊá›ï9ªDjËþ›ïwÊáVËþ÷·,ª°Êᤪ°­ª°ÊῪ°ÈÒ®! ®ñÀ®ñš ®ñu°³ ‹é« Çè ÔêãõöÔê6¹Öæ¯ùaºìy×ûHÔêùÇèI¥€



þ8'üÓ&
‹

ϋ

òÖC+8
?

õ0¶EO` ø
üšj
ÂÖC ƒ
Š
Ìüîœ
ŠV$
ï8ï8OnceÁð8innerÁé8ãTPàVça!î0î0Ô5ð0»Ì-·}—KEüC£¶E,¶E+
šŠij


†9-
'
ÖŠ„¡
¬

û0¶E0
œŸ
Ø‚  Ïq
(¶EÏq7ÏqI 
X  dÏqx ¶EÏq Ø
¡
Ø‚°
Ïq¾ÊÏqÜ èò  üŸ&
„³

ùÖC:”³
͟ҁ
¤_¥
ŠVL
ç šŠ ¤_i ¶EÝÃ ÖŠåØ‚°Ïq¸ÏqÀÏqÈÏØ‚ØÏqàçîõ¸È‹“ŒBÛŽ(P‰  ]øP²"  ]™¿»ë="(3ºuuVwâxíjí’E ”vpããë1åâÖæó Ö­ºóh”—ÖCÄ€^øPÚ"  ]
“‘( 
4 €^/5ö¯CI:@rwhã Ö^Œ ãVå_Ÿ ]§ ]š€^¢ “‘® ]â€^é –”ô–”üî±ü–”€^ÿ°”€^4ö¯$
L±"“‘ô±"
ë!“‘/!<À" ¼À;$»"
ö‘j4,É"¤»"$ê"dê",ï"
˜ö‘-<ï"4#
Ñ<™# ¼ÀÜ#$”#ç•
? 0,¢# ¤”#$Á#
 lÁ#4Æ#
šö‘
- DÆ#ĸ# ô²#"$Õ) Û¼ÖCDÒ) Ö¿Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÖC¤_ Ù)  ä# Û ö‘Lƒ$“‘üƒ$T¬•* <¿$ ¼À<È$ ¼ÀJ„¢$
Žö‘ìâí­8§ß¤‰cWö‘·$³$ $¹$,Ñ$
ü¢$5üñ$—  ñÖCšš­˜ë“ª° ššÏ›üƒ$†í$
Ú[šš55
9É
:æ IY
ü³…¬ö‘šš­˜ñÖC¸›Ç›£Ú üí$œüƒ$«<Ÿ)
ç[­˜ˆœ¤_òÖCˆœ¤_¤_ȧT4§) |Ÿ)ë)ðüÝ!Žü¦"ÅüÙ"ü‚#éüß#ÝÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
­˜¤_¬†"ë“,í!ª°,ô!šš$ª" Ñø–”ªDä Ý"Ï›®šš$†#‘ŸªDzÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙHÏ›ŒÈg<ß#·Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
­˜ˆœ­Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ššˆœ<‘ŸE–”dªD6ªD*Æœ˜Ï›¡Ï›ª­˜7Ï£Óˆ.׳¼ó µ ¹ý« ¬•ú畬–Šç•<À—¬•š
þ›Ý] Lš%ë““‘ôš%¬•9<©% ¼À,²%ª°G$¤%ç•@1¤¤%$¸&Ï›$À&d¸&
·ßšššš@3+1üë&*ë“ “‘üë& ¬• <
$Î'Ï› <Ô'
¼À<Ý' ¼À,æ'ª°{„·'š
µ$È' y
`QB ü·'5, (ª°$´(ϛ̠(l¦(
ö‘M@œ¦(4Ø(¶EÌØ(„ß(
øÖC?”ß(üÓ( Û¼ÖCˆ)ñüüã&¤­˜ô$Æœ2šš ò$šš$“%‘ŸÔ–”ªDÆXÏ›q ¡‘Ÿ
–”=ššþªDèªDܤ_MššvÖC  ¶E;ë“Ѫ°ÚÏ›ãë“ìÏ›õª°þª°Ï›$î!ë“£>ª°ˆ.FÏ›ó Ï›¹l ±99¬•畤¥¬•2š9ö§Vɨ

_ref__selfÁ _ref__guardÁ
_ref__headÁ
_ref__nextÁ_ref__nÁ­)òà¤_ª)öˆœ ¨)ü’6tÄ·6d¼6
ðÖC$·6,É6œ¼61D¬6$¯6«­˜Œ7üÏ5½÷üÐ6,­˜Lþ5ë“,å5ª°,ì5˜ž¸Èg$£'ˆ.wö­ô
lä;\ä;ÿç$†<œ†<<<
÷ÖC+,“<t</ì†<<š<
£TÖCW Lš<+ ¢<L÷< “‘ô÷<¬• )<†=
¼À5$=ç•^
.,=¤=¬¨=T±=
ö‘D¨=  d±=Ü£=$£=
ÝËË´ÍâÎíµÆÛ <ä ö‘  
[Ï=2 ü¦;©üüØ;ñüè<a
¤_¸; ãVL®;ª°,Ü;Ì ­˜­˜ë“8ššDì<‘ŸŽ–”­ªD¤_é²Lo£rsentinelÁVÓ
ÿ獰Ÿá°i­˜5­˜<¬•ç•´²¹ã²­˜_ùW·e

éW·e
¾MùWÕúeæÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙM M®¶²àùVfaä®®£°±‰¨it§ÅLS¶MáV¢faYæ®¶®¶
´· 
Ç7W˜eåùWÔDeMýâs!í¸¹jùWðe
éWðe
ÐM/5ùW¦®e  ç³¶Æ·¤_1®¶ W¿eùWíÔeùW‚!­e  éÓº¤_$®¶ W!eO WÀ$eùWÛôeæ®¶ çÓº¤_ìéÓº¤_¤V¹WäeèùWäZeYWüe
ÇiM¤_
å9ÁWˆ eÙW¢ e‚½ ùWüBeWÔ eçÆ·e “¼­Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ þ¶ÁW§e ¾i¾iStorageÁÁi»¬iÂiº¬i7·O|5‡M¤_5__rust_std_internal_initÁu}ö¼\ü•
"\•

œ˜ M’P¤_’P§T⿬¡
N¹
üù @’P,‰
Ü¿
±

Ò


˜’P©
 ⿟…Û
handleÁÃíÀüš ( 
œšð¿¤_§T€Âܦ DÄ üù
K$ úÁz”¯  
Ó  Á š®  €Â…Û ÂÀ
¼€Ãy4‘

œŒì‹e û·
 ŸŒì‹eð¿‹e Œìü‘
"

ÂMŸŒì‹e¾ÄÌÄ‹e~”¡
ôÌ
  Œì‹eåHåHæH AccessErrorÁ –úrì$šÙ0‹eÌÄü‘
Z

„\‹eÐÅ Œì‹eËÅÌÄì§ü½
. ì
í
üÀ ­œ‹e â Œì Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
‹eÐŰ‘ÄóÄÎĬƊÎıÄ[äû·êÄ ŸÆ[ŒìŒì˜äû·¦µœ2‘ÄÒû·Ûãèäû· ®
ÎÄ
 (
•"Œì…Û@3;²
Ÿ>e­
óÄT…Û «
ªÊzÎÄo³± Ù ÎĠʵ_ref__fÁ Ð
ÎÄ

í¸´Ó

¹3
¼Ò
ÔÐ
 y Ê'0 é
ê
î ý‹eÏ
¬ÆÐÅ Í
ªÊ…Û¯MÙýâÿÎÄE±VÎÄ_í¸,¹ ÊëMºM¿ÃÊüõ ¥ÖC¦)¥C4¶];BŒÿq ž%ÙO0¡Ø8?œù– ©ª&ÐP1P8?¸Ùô®ŽŽÀ¤, +é ”ý/1þ÷
¬‘0?ÿV41u
¤‰15ƒ´,Ÿ1˹L¦1P<±1Çì4º1°LÓ1¿®\Þ1ÏŠ½%\ø1 ¨Œ¨#,…2ÿ4Œç2 ¢ÖLú2 £ÿ
…3 ¤üŠ3ü# Epoch-based memory reclamation.Á$úü(\Y An interesting problem concurrent collections deal with comes from the remove operation.Áü…b_ Suppose that a thread removes an element from a lock-free map, while another thread is readingÁüè`] that same element at the same time. The first thread must wait until the second thread stopsÁüÉ=: reading the element. Only then it is safe to destruct it.Áúü‹]Z Programming languages that come with garbage collectors solve this problem trivially. TheÁüéa^ garbage collector will destruct the removed element when no thread can hold a reference to itÁ anymore.ÁØúüÜa^ This crate implements a basic memory reclamation mechanism, which is based on epochs. When anÁü¾`] element gets removed from a concurrent collection, it is inserted into a pile of garbage andÁüŸc` marked with the current epoch. Every time a thread accesses a collection, it checks the currentÁüƒa^ epoch, attempts to increment it, and destructs some garbage that became so old that no threadÁüå" can be referencing it anymore.ÁˆúüŒb_ That is the general mechanism behind epoch-based memory reclamation, but the details are a bitÁüï`] more complicated. Anyhow, memory reclamation is designed to be fully automatic and somethingÁüÐ C@ users of concurrent collections don't have to worry much about.Á
út˜
# PointersÁ§
úü«
b_ Concurrent collections are built using atomic pointers. This module provides [`Atomic`], whichÁüŽ ^[ is just a shared atomic pointer to a heap-allocated object. Loading an [`Atomic`] yields aÁüí a^ [`Shared`], which is an epoch-protected pointer through which the loaded object can be safelyÁ  read.ÁÙ ú
# PinningÁë úüï b_ Before an [`Atomic`] can be loaded, a participant must be [`pin`]ned. By pinning a participantÁüÒ
XU we declare that any object that gets removed from now on must not be destructed justÁü«\Y yet. Garbage collection of newly removed objects is suspended until the participant getsÁlˆ
unpinned.Áú
# GarbageÁ¨úü¬a^ Objects that get removed from concurrent collections must be stashed away until all currentlyÁüŽ^[ pinned participants get unpinned. Such objects can be stored into a thread-local or globalÁüíRO storage, where they are kept until the right time for their destruction comes.ÁÀúüÄkh There is a global shared instance of garbage queue. You can [`defer`](Guard::defer) the execution of anÁü°_\ arbitrary function until the global epoch is advanced enough. Most notably, concurrent dataÁü74 structures may defer the deallocation of an object.ÁÈú # APIsÁ×úüÛa^ For majority of use cases, just use the default garbage collector by invoking [`pin`]. If youÁü½IF want to create your own garbage collector, use the [`Collector`] API.Áü¼ üæ6|™¸Ùô®ŽŽÀ
¤
é 
1þ÷

?ÿV
u

5ƒ´Ž
˹
PŒ
Çì
°Š
¿®
ÏŠ½%ˆ
¨Œ¨#
ÿ4
¢Ö
£ÿ

¤ª­°lóµ ̱ü«!„ÖÜÍL‘dÈ*µœ¡¥¦¬ÿ#¥ÍìÖC „$¥C 
ü¹$1Í$ÖC¥C
ÖCâ²0üÞ%@$ì%ë ë¥C“d‹e£ Ø
 
 ô%Íì‹e ñ%Íì“dÔþ%"“d™d¬ƒ&“d™d˜"e —&
ÖCe“d$õ%±#2UWRTüò&BD€'ì ì¥C ‹e£ 

  Œ'§ð ‰'ÍìÕñÄ–'"ÕñÀeœ›'Õñ®ò˜"e ­'
ÖCeÕñ$'± “']_Y[œù'$ˆ(Kˆ*†J¬—(4¦(¦tð( _¼,€) _ AtomicPtrÁL‡)¯] AtomicUsizeÁ\)„Ä®DŸ)¼À”Ê(vxgiOQ57%'„û)­ŒÃ*+”“+ Tâ+»¤Œ²+óµ ÌÅ+ü±+.ü¨+94æ+/15?HJLNPcuÇËÕF 4(èØY4C ZLK£a×p ` ¹©\‡!¹©!íë#ÂD\ªÑÛ$r,Èé!&DerefMutÁDÏö!'µ ä(ž‰f)¨#,*òò„Ä,®¼À-
AtomicConsumeÁlîoœcd4WZLOL[CLj7Ìy*L˜
žþôöÝßLÞÒ\íÅœÿ¸ô˜ª¬™üÕ&|ü–8Ô™ªDªDþnÕfB3tÙü‡%üå;8 The error returned on failed compare-and-set operation.Á"Use `CompareExchangeError` insteadÁüà$üÌ:üø
2¥3¡4423Íì˜D §ÍìžD ª55
9É
:æ IY
ü³…¬
˜DžD£UWRTüIüÐ<9 The error returned on failed compare-and-swap operation.Á¤˜
6¥7¡8867Îì˜D ±÷ú ÈP˜DÇžD˜D˜D
»Í†ûIY
ü³…¬9:­[]`bÔª üÝHE The value in the atomic pointer at the time of the failed operation.Á<® 55ûHT‡
üË 74 The new value, which the operation failed to store.Á
55žDü–
Q8í¥<¡=í=<çú
÷ú ž
Šý
¿cžD
ãC>Àc>/146üî
8ñ
îïð îãC ï c cˆ¢cµ
 `£c†_ `àB¤GS
ðÖ^; õ
;
>8˜DžD
±k5üÛüÉ 41 Memory orderings for compare-and-set operations.Áþ úü‚
[X A compare-and-set operation can have different memory orderings depending on whether itÁüÞ
\Y succeeds or fails. This trait generalizes different ways of specifying memory orderings.Á»úü¿A> The two ways of specifying orderings for compare-and-set are:Áúü…^[ 1. Just one `Ordering` for the success case. In case of failure, the strongest appropriateÁÔä ordering is chosen.Áüÿ\Y 2. A pair of `Ordering`s. The first one is for the success case, while the second one isÁäÜ for the failure case.ÁŠ`compare_and_set` and `compare_and_set_weak` that use this trait are deprecated, use `compare_exchange` or `compare_exchange_weak instead`Áü½šü¤¬åú…??ÎìüÛß?¹ˆ¹ˆ@A@AA@ô¹ü30 The ordering of the operation when it succeeds.Á<¼ú…Ìñ ñÁˆªD? Ä?
@ÁˆôšüÝ0- The ordering of the operation when it fails.Áúüš]Z The failure ordering can't be `Release` or `AcqRel` and must be equivalent or weaker thanÁÌü the success ordering.Á<ú…ùò òÁˆªD? ¥?
AÁˆüÑ'ªDCD@ADCì<ó óªDªDB ˜B
C$™ìÔ<×ô ôªDªDB ßB
Dü¼3ŸEFG@AFGì„<‡õ õŸEªDE E
F$ìÌö öŸEªDE ×E
Güï-Ïq¥IIÎìÖC ûPÖCL‡—tüŠ4tÏq¤_¥KKù œ€‹@§;ü¯GÏqÏqÏq¥MMù ¾œ–â&>Ø/>üƒFl†Ïqª¥OOù Îîâ:?œÈ'ü… /, Types that are pointed to by a single word.Áµ úü¹ b_ In concurrent programming, it is necessary to represent an object within a word because atomicÁüœ!_\ operations (e.g., reads, writes, read-modify-writes) support only single words. This traitÁüü!>; qualifies such types that are pointed to by a single word.Á»"úü¿"\Y The trait generalizes `Box<T>` for a sized type `T`. In a box, an object of type `T` isÁüœ#c` allocated in heap and it is owned by a single-word pointer. This trait is also implemented forÁü€$da `[MaybeUninit<T>]` by storing its size along with its elements and pointing to the pair of arrayÁ´å$ size and elements.Áü$úü€%]Z Pointers to `Pointable` types can be stored in [`Atomic`], [`Owned`], and [`Shared`]. InÁüÞ%GD particular, Crossbeam supports dynamically sized slices as follows.Á¦&ú<ª& ```Áô²& use std::mem::MaybeUninit;ÁüÑ& use crossbeam_epoch::Owned;Áñ&úüõ&JG let o = Owned::<[MaybeUninit<i32>]>::init(10); // allocating [i32; 10]Á<À'…™LÒ'PP¹ˆüÈ'Ö P¹ˆ¹ˆQRSTVXQRSTVXÍìÁˆRTÀ(—œXVTS”„(ìâ' The alignment of pointer.Á,Š(PPÏqLÀ(ô( The type for initializers.Á$Å(PPü×)*üÐ(-* Initializes a with the given initializer.Á)údŠ) # SafetyÁ)úü£)/, The result should be a multiple of `ALIGN`.Á$á)ŸœÏqPP
SÁˆà$æ)üÇ,,ü‡*# Dereferences the given pointer.Á¯*úd·*È*úüÐ*LI - The given `ptr` should have been initialized with [`Pointable::init`].Áü¡+DA - `ptr` should not have yet been dropped by [`Pointable::drop`].Áüê+XU - `ptr` should not be mutably dereferenced by [`Poi
 ü¢<4¥<ÏqØŒhhÒ’)Güï=&¥llØî ô=µEmnoprtQRSTVXtpro13”œ>,¢>kkÏqLÓ>$Ø>kkÏqüë>($õ>µERÏqkk
oÖC;Jü³A+,½AÏq òµEkòqqk
pÖCòµ ßLÃAüêB3LôBÏq òµEkòssk
rÖCòµ ¤OþBÔ©D$³DÏq¤_kk
tÖCµ ^RüàI(üåE@= An atomic pointer that can be safely shared between threads.Á¦FúüªFb_ The pointer must be properly aligned. Since it is aligned, a tag can be stored into the unusedÁüGa^ least significant bits of the address. For example, the tag for a pointer to a sized type `T`ÁüïGGD should be less than `(1 << mem::align_of::<T>().trailing_zeros())`.Á·Húü»HPM Any method that loads the pointer must be passed a reference to a [`Guard`].ÁŒIúüIOL Crossbeam supports dynamically sized types. See [`Pointable`] for details.Á4ëI¥vvù òILþIFjí’E ”vpwx%'ŒJ$Juu«ä¦J<¦Juu«ªüÇJC¥zzù ÓJLßJÌìÖC$ëJ ÖC$òJF.0üŽKC¥||ù šKL¦Kµ¶$²KŶ$¹KF!ŒÖK¥~~Øî ÛKF  ü‰N üîKRO Allocates `value` on the heap and returns a new atomic pointer pointing to it.ÁÅLútÍL # ExamplesÁàLú<èL…™üôL  use crossbeam_epoch::Atomic;Á™Múô¡M let a = Atomic::new(1234);ÁüÄM41 # unsafe { drop(a.into_owned()); } // avoid leakÁ<ýM…™NÖCF}}»ƒà|SüÎN%¥ù ÓNLßNF‚ƒŽ˜Ÿ£¥§©ªBDüQ'üúNRô¶ÑOútÙOÛ·ìOú<ôO…™ü€P Œ¸¥Púü­P&# let a = Atomic::<i32>::init(1234);ÁüØP4é¸<Q…™$¤Q¤©Fº§à-TüÄR"TÇRÏqFìýâ Uü³U üÙS&# Returns a new null atomic pointer.Á„TútŒTÛ·ŸTú<§T…™ü³T Œ¸ØTúüàT" let a = Atomic::<i32>::null();Á<‡U…™tU„œUÜ“U$ÀUF¦ÿüŽ\Dü’X-* Loads a `Shared` from the atomic pointer.ÁÄXúüÌXZW This method takes an [`Ordering`] argument which describes the memory ordering of thisÁt«Y operation.Á¾YútÆYÛ·ÙYú<áY…™üíY1. use crossbeam_epoch::{self as epoch, Atomic};Áü£Z,) use std::sync::atomic::Ordering::SeqCst;ÁÔZúôÜZÁ¸ôÿZ let guard = &epoch::pin();Áü¢[" let p = a.load(SeqCst, guard);ÁüÉ[4é¸<\…™$•\÷ ÷FªD ’Pìâí­8§ß¤‰cWÖCš\ˆÎ$Ÿ\Õf¤W°W "üºd=ü›]OL Loads a `Shared` from the atomic pointer using a "consume" memory ordering.Áï]úü÷]IF This is similar to the "acquire" ordering, except that an ordering isÁüÅ^LI only guaranteed with operations that "depend on" the result of the load.Áü–_GD However consume loads are usually much faster than acquire loads onÁüâ_JG architectures with a weak memory model since they don't require memoryÁ¼±` fence instructions.ÁÍ`úüÕ`KH The exact definition of "depend on" is a bit vague, but it works as youÁü¥aJG would expect in practice since a lot of software, especially the LinuxÁüôa" kernel, rely on this behavior.Ábút£bÛ·¶bú<¾b…™üÊb1ùÀ€cúôˆcÁ¸ô«c‚ÂüÎc" let p = a.load_consume(guard);Áüõc4é¸<®d…™dÁd
`Shared`.Á¤lúü¬lZÌ¿t‹m¯Àžmút¦mÛ·¹mú<Ám…™üÍm96 use crossbeam_epoch::{self as epoch, Atomic, Shared};Áü‹n,´Á¼núôÄnÁ¸ôçn‚ÂüŠo2/ let p = a.swap(Shared::null(), SeqCst, guard);ÁüÁo41 # unsafe { drop(p.into_owned()); } // avoid leakÁ<úo…™$pŒú úF„³ªD Œ’Pìâí­8§ß¤‰cWŒÖC¡’píÑ –pþÑT™p
ÖC„³$¦pæ ½ZÕfÆZÐZ@B79üò~Šü¼q`] Stores the pointer `new` (either `Shared` or `Owned`) into the atomic pointer if the currentÁü¡r^[ value is the same as `current`. The tag is also taken into account, so two pointers to theÁü„sGD same object, but with different tags, will not be considered equal.ÁÐsúüØs_\ The return value is a result indicating whether the new pointer was written. On success theÁü¼t[X pointer that was written is returned. On failure the actual current value and `new` areÁlœu
returned.Á®uúü¶uEB This method takes two `Ordering` arguments to describe the memoryÁü€vQN ordering of this operation. `success` describes the required ordering for theÁüÖv[X read-modify-write operation that takes place if the comparison with `current` succeeds.Áü¶wZW `failure` describes the required ordering for the load operation that takes place whenÁü•xRO the comparison fails. Using `Acquire` as success ordering makes the store partÁüìxNK of this operation `Relaxed`, and using `Release` makes the successful loadÁü¿yPM `Relaxed`. The failure ordering can only be `SeqCst`, `Acquire` or `Relaxed`Áü”zB? and must be equivalent to or weaker than the success ordering.ÁÛzútãzÛ·özú<þz…™üŠ{@= use crossbeam_epoch::{self as epoch, Atomic, Owned, Shared};ÁüÏ{,´Á€|úôˆ|Á¸«|úô³|‚ÂüÖ|%" let curr = a.load(SeqCst, guard);Áü€}OL let res1 = a.compare_exchange(curr, Shared::null(), SeqCst, SeqCst, guard);ÁüÔ}QN let res2 = a.compare_exchange(curr, Owned::new(5678), SeqCst, SeqCst, guard);Áüª~74 # unsafe { drop(curr.into_owned()); } // avoid leakÁ<æ~…™„ù~ûü ûFìâí­8§ß¤‰cWüÖC„³ªDªD ’PÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ìâí­8§ß¤‰cWÖC55
9É
:æ IY
ü³…¬ÖC„³¡ŠíÑ ŽþÑTñ€
ŽÖC„³$›É
æ]æ ð]ù]¡^ ^OQFH•‚Ž<closure_kind>Á<closure_signature>Á<upvars>ÁŽ×¹LÒ‚ŽÛèôè’鎞»üå—üŸ„`•×ü„…^ÿ×üç…GçØ³†úü»†_\ Unlike [`compare_exchange`], this method is allowed to spuriously fail even when comparisonÁüŸ‡_\ succeeds, which can result in more efficient code on some platforms. The return value is aÁüƒˆZW result indicating whether the new pointer was written. On success the pointer that wasÁüâˆTQ written is returned. On failure the actual current value and `new` are returned.Á»‰úüÉE´ÛüŠQƒÜüãŠ[ÞÜüËZÃÝü¢ŒR§ÞüùŒNƒßüÌPÛßü¡ŽBµàèŽúüðŽ2/ [`compare_exchange`]: Atomic::compare_exchangeÁ§úÛ·Âú…™üÖ@³áü›,´ÁÌúôÔÁ¸ô÷‚š‘úü¢‘# let mut new = Owned::new(5678);ÁüÊ‘(% let mut ptr = a.load(SeqCst, guard);Áü÷‘HE # unsafe { drop(a.load(SeqCst, guard).into_owned()); } // avoid leakÁTÄ’ loop {ÁüÓ’HE match a.compare_exchange_weak(ptr, new, SeqCst, SeqCst, guard) {Á´ “ Ok(p) => {ÁÄ»“ ptr = p;Á´Ø“ break;Áló“
Ì…” Err(err) => {Áü£”" ptr = err.current;ÁôÊ” new = err.new;Ál픾óLÿ”,—•úüŸ•)& let mut curr = a.load(SeqCst, guard);ÁTÍ•õñüÜ•TQ match a.compare_exchange_weak(curr, Shared::null(), SeqCst, SeqCst, guard) {Áܵ– Ok(_) => break,ÁüÕ–+( Err(err) => curr = err.current,ÁL…—Ûô,“—îôü7 ä<Ù—…™¬ì—ýþ ýFìâí­8§ß¤‰cWþÖC„³ªDªD ’PÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ìâí­8§ß¤‰cWÖC55
9É
:æ IY
ü³…¬ÖC„³¡‚˜íÑ †˜þÑTé™
ÖC„³$“˜É
Žcæ ™c£c¡­c¸cRTHJ’›Ûèôè’éŽÆLÏ›Ûèôè’é—Çüô«üœTQ Fetches the pointer, and then applies a function to it that returns a new value.Áüõ^[ Returns a `Result` of `Ok(previous_value)` if the function returned `Some`, else `Err(_)`.ÁØžúüàž^[ Note that the given function may be called multiple times if the value has been changed byÁüß^[ other threads in the meantime, as long as the function returns `Some(_)`, but the functionÁü¦ 96 will have been applied only once to the stored value.Áä úüì JG `fetch_update` takes two [`Ordering`] arguments to describe the memoryÁü»¡MJ ordering of this operation. The first describes the required ordering forÁü¢FC when the operation finally succeeds while the second describes theÁüØ¢LI required ordering for loads. These correspond to the success and failureÁü©£;8 orderings of [`Atomic::compare_exchange`] respectively.Áé£úüñ£FC Using [`Acquire`] as success ordering makes the store part of thisÁü¼¤KH operation [`Relaxed`], and using [`Release`] makes the final successfulÁüŒ¥HE load [`Relaxed`]. The (failed) load ordering can only be [`SeqCst`],ÁüÙ¥KH [`Acquire`] or [`Relaxed`] and must be equivalent to or weaker than theÁ¬©¦ success ordering.Áæúü˦" [`Relaxed`]: Ordering::RelaxedÁüò¦" [`Acquire`]: Ordering::AcquireÁü™§" [`Release`]: Ordering::ReleaseÁüÀ§  [`SeqCst`]: Ordering::SeqCstÁå§útí§Û·€¨ú<ˆ¨…™ü”¨1ùÀüʨ,´Áû¨úôƒ©Á¸ô¦©‚ÂÉ©úüÑ©NK let res1 = a.fetch_update(SeqCst, SeqCst, guard, |x| Some(x.with_tag(1)));ÁÔ¤ª assert!(res1.is_ok());Áêúü˪?< let res2 = a.fetch_update(SeqCst, SeqCst, guard, |x| None);ÁÜ« assert!(res2.is_err());Áü¯«4é¸<è«…™dû«ÿ ÿFªDªD 
’P÷ÎÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ìâí­8§ß¤‰cW
ÖCµ
šš ˜¬Íì÷Î Œ¬“"÷εüÌ­-÷ÎÉŽ˜"Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙµ¬ä­
˜ÖC
÷Î$™¬Ö¾i§ÖÈi£ÓiÍÖ$€­ˆ¬¼¾ü¸¾Šüݰ`•×ü±^ÿ×ü¥²GçØñ²úüù²_ÄÙüݳ[­Úl½´‘ÛÏ´úü×´UR This method takes a [`CompareAndSetOrdering`] argument which describes the memoryÁü±µ ordering of this operation.ÁÕµúüݵ%" # Migrating to `compare_exchange`Á‡¶úüXU `compare_and_set` is equivalent to `compare_exchange` with the following mapping forÁ¬ì¶ memory orderings:Á†·úüŽ·  Original | Success | FailureÁü³·  -------- | ------- | -------ÁüØ·
 `£c†_ `àB¤GS
Ö^« è‚«
­ÖC$邱Ìzü……6¥¯¯ù Š…L–…Ïc°üÂ…8Å…ŠŒ ŠF  c cˆ¢cµ
 `£c†_ `àB¤GS
ŒÖ^® É…®
°ÖC$Ê…±M}ü²‡/¥²²ù ·‡LÇÙ³¼—‰üè‡'$ Returns a copy of the atomic value.Á”ˆúüœˆ[X Note that a `Relaxed` load is used here. If you need synchronization, use it with otherÁ´üˆ atomics or fences.Á,š‰ FF±  ‰±
³ÖC$¡‰ü‘Š1¥µµù –ŠL¢Š´¤ÉŠ<ÌŠF´´
ÖCü€‹8¥¸¸ù …‹L‘‹ë¹üÚ ü¿‹52 Returns a new atomic pointer pointing to `owned`.Áù‹útŒÛ·”Œú<œŒ…™ü¨Œ)& use crossbeam_epoch::{Atomic, Owned};ÁÖŒúüÞŒ2/ let a = Atomic::<i32>::from(Owned::new(1234));Áü•4鸅™‚GF··
¹ÖCµ€€üàŽ"¥»»Øî åŽë¼Ô‰ÇGFºº
¼ÖC­ï€ìÒ¥¾¾Øî ×F¿ë¿¬öÖCF½½
¿ÖC¿ü¬A
Á¥ÂÂÁäü µüüÅHÃëñ#%üÚ’#üô30 Returns a new atomic pointer pointing to `ptr`.Á¬‘út´‘Û·Ç‘ú<Ï‘…™üÛ‘*' use crossbeam_epoch::{Atomic, Shared};ÁŠ’úü’’74 let a = Atomic::<i32>::from(Shared::<i32>::null());Á<Î’…™$Ý’ûHÅHÀÀ
Ã
˜Dµ ‚ü¬“$¥ÅÅØî ±“ëÆôÆ•üד30 Returns a new atomic pointer pointing to `raw`.Áút—”Û·ª”ú<²”…™Œ¾” use std::ptr;ÁüÔ” Œ¸ù”úü41 let a = Atomic::<i32>::from(ptr::null::<i32>());Á<º•…™$É•ÆIFÄÄ
ÆÖC@¬‚üÌ–(ü—–41 A trait for either `Owned` or `Shared` pointers.Á<Ö–Ç¥ÈÇȹˆüÌ–Ìäü Þ–üüLê–ǹˆ-¹ˆÊÉÊÊÉ=?ì¶—üû–63 Returns the machine representation of the pointer.ÁT¹—ÁˆÏqÇÇ
ÉÁˆ˜D$Ä—üì™*üÙ—@= Returns a new pointer pointing to the tagged pointer `data`.Áž˜úd¦˜·˜úü¿˜_\ The given `data` should have been created by `Pointer::into_usize()`, and one `data` shouldÁü£™DA not be converted back by `Pointer::from_usize()` multiple times.ÁTö™ÏqÁˆÇÇ
ÊÁˆ˜Dâ$šüÿ›'üšš# An owned heap-allocated object.Á¾šúüš*' This type is very similar to `Box<T>`.Áíšúüñšb›°üÔ›*' least significant bits of the address.Á,Šœ¥ÌÌù œLœœ‚GµÆÛ <ä ÍÎá,.\­œ$­œËËÏq侜<¾œËË¿‰üßœ3¥ÐÐù äœLðœ‚GÑÒÉÊÑÒ')ä§‚GÏqÏÏ
ÑÖCNƒü½Ÿ)ü—ž@§äÜžúd䞌¿õžúüýž-* Panics if the data is zero in debug mode.ÁTÇŸÏq‚GÏÏ
ÒÖCâ–„„‚¡¥ÔÔØî ‡¡‚GÕÖ×ü÷¦/ü™¡2/ Returns a new owned pointer pointing to `raw`.ÁСúüØ¡\Y This function is unsafe because improper use may lead to memory problems. Argument `raw`Áü¹¢]Z must be a valid pointer. Also, a double-free may occur if the function is called twice onÁÌ›£ the same raw pointer.Á¹£údÁ£Œ¿Ò£úüÚ£,) Panics if `raw` is not properly aligned.Á‹¤úd“¤¤¤úü¬¤`] The given `raw` should have been derived from `Owned
 `£c†_ `àB¤GS
Ö^â ž½â
äÖC$Ÿ½±uŽüŠ¿!¥ææØî ¿ØÖC,’¿‚GçÙç#%¼²¿,µ¿ ‚G‚Gå »¿å
çÖC$¼¿üÀ.¥ééù ”ÀL À‚Gêëê!ë!ë#%\ÄÀ4ÉÀèèÖC¬ÚÀ,ÝÀ ‚G ÖCè ãÀè
ëÖC$äÀüÒÁ1¥ííù ×ÁLãÁ‚Gî÷!îüŠÂ!L ‚G ÖCì —Âì
îÖC$œÂä’Ã¥ððØî —ÂGñëñ¬µÃ$¸ÃÖC‚Gïï
ñÖC¿·“üìÃ!¥óóØî ñÂGôëôÔ߯ü”Ä0- Returns a new owned pointer pointing to `b`.ÁÉÄúdÑÄŒ¿âÄúüêÄ>; Panics if the pointer (the `Box`) is not properly aligned.Á­ÅútµÅÛ·ÈÅú<ÐÅ…™üÜŽ™€ÆúüˆÆFÈò<ÓÆ…™$âÆÇG‚Gòò
ôÖC­d”ü¹Ç2¥ööù ¾ÇLÊÇ‚G÷¢÷´òÇ4õÇ ‚G ÖCõ üÇõ
÷ÖC$ýÇü©È5¥ùùù ®ÈLºÈ‚Gú¥úüåÈ"TèÈ ‚G ÖCø óÈø
úÖC$øÈü¬É1¥üüù ±ÉL½É‚Gýâý´äÉ4çɘ ˜‚G ˜ÖCû îÉû
ýÖC$ïÉü›Ê1¥ÿÿù  ÊL¬Ê‚G€åôÓÊ4ÖÊ ‚G ÖCþ ÝÊþ
ÖC$âÊü¢Í1ü–Ë52 A pointer to an object protected by the epoch GC.ÁÌËúüÐË?< The pointer is valid for use only during the lifetime `'g`.ÁÌúü”Ìb›°ü÷Ì*­è4­Í
¥ƒƒäü ¸ÍœýÁüüLÉÍûH­8§ß¤‰cW´Í79\ÚÍ$ÚÍÏqüëÍ(<ë͹©Fu\»Ÿ 
¤_ÀKü˜Î38š¥šäü ÎüüL©ÎßJˆÙˆ¼ÒÎ,ÕÎ ßJßJ ÛÎ
ˆ8˜D$ÜÎüƒÏ28œ¥ŠœŠäü ˆÏüüL”ÏßJüºÏ88¥ŒŒäü ¿ÏüüLËÏßJŽÉÊŽ')ä‡ÐTŠÐßJÏq
8˜DP—üÑÐ)TÛÐÏqßJ
Ž8˜Dâö—ÌÕÑ
¥çú ÞÑûH’ÚÑüýÕ üõÑ<9 Converts the pointer to a raw pointer (without the tag).Á¶Òút¾ÒÛ·ÑÒú<ÙÒ…™üåÒ85 use crossbeam_epoch::{self as epoch, Atomic, Owned};Áü¢Ó,´ÁÓÓúìÛÓïôôýÓ let raw = &*o as *const _;Áä Ô let a = Atomic::from(o);ÁÁÔúôÉÔ‚ÂüìÔ"ªÂü“Õ  assert_eq!(p.as_raw(), raw);Áü¸Õ4é¸<ñÕ…™4„Öž žûHÀK ‹Ö

˜D$ŒÖü÷Ö-
¥äü €×üüLŒ×ûH–˜šœžüÖ35ôüØü«× Returns a new null pointer.ÁÏ×út××Û·ê×ú<ò×…™üþ×  use crossbeam_epoch::Shared;Á£Øúü«Ø" let p = Shared::<i32>::null();ÁÌÒØ assert!(p.is_null());Á<ðØ…™$ƒÙûH

˜DìæÝüúÙ*' Returns `true` if the pointer is null.Á©Úút±ÚÛ·ÄÚú<ÌÚ…™üØÚ8êžü•Û,´ÁÆÛúÜÎÛ let a = Atomic::null();ÁôîÛ‚Âü‘Ü-
“¤üœ08¨¥§¨§äü ÇœüüLÓœßJü÷œK
©¥ª©ªäü üüûH«ïß«üœ$&üÉ<©ª ©ûH ªûHÑ˨ ب
«
˜D¹

¦ü¼ž18«¥­­«äü ÁžüüLÍžßJ®»®üôž,÷ž¬­ ¬ßJ ­ßJ–̬ ûž¬
®8˜D$üž¹
ç¦üÏŸ88®¥°°®äü ÔŸüüLàŸßJ±Àc±üŽ 8‘ ¯°± ¯ßJ ° c cˆ¢cµ
 `£c†_ `àB¤GS
±Ö^¯ • ¯
±8˜D$– ±©ü‚¢:8²¥³²³äü ‡¢üüL“¢ßJ´Ïc´üâ8Æ¢³´µ ³ßJ ´ c cˆ¢cµ
 `£c†_ `àB¤GS
µÖ^² Ê¢²
´8˜D$Ë¢±ƪüÌ£58¥äü Ñ£üüLÝ£ßJ·´·¤ˆ¤<‹¤ßJµµ
·8˜Dl¨,»¤Œø+óµ Ì‹,ü÷+.üî+9L¬,¿Ï׳ `¸¹¨#,˸ºæ(4è丼ð),ð︽K†J¸¾L­lœ½]|ÖNP=?Üü1¤Àüš%" An epoch-based garbage collector.ÁLÿr„§È@ÀôÛ¿¿òôþ›Lô ›LÔÛLĴĤä›LÃÃ
Ä›LÆÇ¤€äß Creates a new collector.Á›LÅÅ
Æüì%üº-* Registers a new handle for the collector.ÁDó· ·›LMÅ üŹĻ›LÉÙɼ›üÚ<9 Creates another reference to the same garbage collector.Á,ž¸ ¸›L›LÈ ¤È
Éì… ›LËÀcËü© 8¬ ¹º» ¹›L º c cˆ¢cµ
 `£c†_ `àB¤GS
»Ö^Ê ° Ê
˱ · ä
›LÍ·ßÍüî
%ü²
74 Checks if both handles point to the same collector.Áñ
¼½ ¼›L ½›LÌ ô
Ì
Í
rhsÁû
¬Í ›L´Œ üç $! A handle to a garbage collector.Á\— Ml:9x“9‘ÐÖô©  ÏÏ¡Ø„Ì ÓÔÔŠ
¤ã  Pins the handle.Á
¾ ¾M’PÑ
ÑíÀ$
ü—üÙ
+( Returns `true` if the handle is pinned.ÁLž¿ ¿MÑ ¨Ñ€Ãü¼%üñ85 Returns the `Collector` associated with this handle.ÁLÃÀ ÀM À›LÑ ÍÑ
ÔÌš"Ö”ÈÁ ÁM¤_Õ ÐÕ
Öü²ÀcØüØ8ÛÂÃÄ ÂM àc cˆ¢cµ
 `£c†_ `àB¤GS
ÄÖ^× ß×
ر ædñ,»¤ŒÁ,óµ ÌÔ,üÀ,.ü·,9Dõ,áâäÕFÙÚ×! `ÙÛ¹©\8Ùܹ©ÙÜí$UëÙÞÂD\[ÑÛÙßµ sÙàŒLÌ*qLILO=?Lm/¼ôÙÏqLËÙÏqãÏqÔ•ÍMlø[D Ü3ÓåæçĶÙääìè¼ÔÙääÑÛÑÛÂDÓÛ×DÝÔÛ»ÝÍõƒ«%9ìôìñÙää÷êä¤ÍMéÀcéüÇCÊÅÆÇ ÅÍM Æ c cˆ¢cµ
 `£c†_ `àB¤GS
ÇÖ^è Îè
é± ÕÍMëíóäËêêÍMäôÙו¤_çè_rawÁ$üÙ ,ç ŒìÍMêîîêÍìŒì ë –"Œì¤_Œì¤_˜"¤_
íŒì±º:<üÍ )$× Ùו¤_ððÌù Ü Ýù ðùÁï@®¼üÊ)Ùו¤_òòÌù ÙÝùðù–ó@ÀäìÍM¤_êê
óL¹-»¤Œ‰-óµ Ìœ-üˆ-.üÿ,9,½-»¬òò\“„Äôö®¼Àô÷ôò35šNùúûüýþü šNøøÙÍüÔ
4
šNšNÈgøø
ú
ãêõ
ü•%šNøø
ûü©#šNšNøøÄÁÎÄüÛ%šNšNøø
ýüß&šNšNøø
þ„ÙšO€ƒü¢'°šNšOÿÿ
î!,´üà1È ÈšOªDšNÿ óÿ—ÁÕf"Çüœ7É ÉšOšNªD¤_ÿ °ÿ·Âî!òÇÕfûÇüå!®„ó!Ê ÊšOšNšNªDªDÉ”ÿ "ÿíÍ$Ž"É
æ ¡KÊLþ-»¤ŒÎ-óµ Ìá-üÍ-.üÄ-9,‚.¨×
 `í ëì42 °LP ¿ˆÞ Dp äð), ïŠL yL j¬# [Ü> LÌ_ =´~ .„õ ü—1 . A guard that keeps the current thread pinned.ÁÉ ú ³àÛ úüßO L The current thread is pinned by calling [`pin`], which returns a new guard:Á¯ ú …™ü»!  use crossbeam_epoch as epoch;ÁÝ úüáb _ // It is often convenient to prefix a call to `pin` with a `&` in order to create a reference.ÁüÄ\ Y // This is not really necessary, but makes passing references to the guard a bit easier.Áô¡ ‚ …™È úüÌL I When a guard gets dropped, the current thread is automatically unpinned.Á úÜ  # Pointers on the stackÁ¹ úü½W T Having a guard allows us to create pointers on the stack to heap-allocated objects.Á„•
For example:Á¦ ú …™ü²1 ùÀüä, ´Á úü•& # // Create a heap-allocated number.Áì¼  let a = Atomic::new(777);ÁÚ úôÞ  // Pin the current thread.Áôý ‚œ úü J G // Load the heap-allocated object and create pointer `p` on the stack.Áüë" ªÂŽ úü’ 3 0 // Dereference the pointer and print the value:ÁüÆ . + if let Some(num) = unsafe { p.as_ref() } {Áüõ + ( println!("The number is {}.", num);Á
îôü§
4 é¸
…™ä
ú¬è
 # Multiple guardsÁþ
úü‚ _ \ Pinning is reentrant and it is perfectly legal to create multiple guards. In that case, theÁüâ b _ thread will actually be pinned only when the first guard is created and unpinned when the lastÁœÅ  one is dropped:ÁÙ ú …™üå ! ™†
úô‹
 let guard1 = epoch::pin();Áôª
 let guard2 = epoch::pin();矃
 assert!(epoch::is_pinned());ÁŒê
 drop(guard1);Áüü
Ÿ’Œ  drop(guard2);Áü¯!  assert!(!epoch::is_pinned());Á …™Ù ú¼Ý  [`pin`]: super::pinÁ,€ PÊ@c'@"Œ¥ôŒ ,— ¡Ø ’PŽ˜š¢üÍ^ üÀY V Stores a function so that it can be executed at some point after all currently pinnedÁÌž  threads get unpinned.Á¼ úüÄ] Z This method first stores `f` into the thread-local (or handle-local) cache. If this cacheÁü¦X U becomes full, some functions are moved into the global cache. At the same time, someÁüƒZ W functions from both local and global caches may get executed in order to incrementallyÁüâ( % clean up the caches as they fill up.Á úü—Z W There is no guarantee when exactly `f` will be executed. The only guarantee is that itÁüö[ X won't be executed until all currently pinned threads get unpinned. In theory, `f` mightÁüÖW T never run, but the epoch-based garbage collection will make an effort to execute itÁ¤²  reasonably soon.ÁË úüÓW T If this method is called from an [`unprotected`] guard, the function will simply beÁ̯  executed immediately.Á,Ô Ë Ë’PŒì¤_£ à Ìù Ú §ð Ý Ýùl‚ Œì¤_˜"‹e Ž ÌìŒì Œì
ŽŒì‹e ±_adfüÐ8T üýY ß”ÌÛ Á•ù úü] ð•üãX ×–üÀZ ¹—üŸ( ˜Ì úüÔZ Û˜ü³[ ¿™ü“W ¤š¤ï „›ˆ úüW ®›Ìì ŽœŠ úd’ £ úü«\ Y The given function must not hold reference onto the stack. It is highly recommended thatÁüŒ W T the passed function is **always** marked with `move` in order to prevent accidentalÁ borrows.Áù ú<! …™ü!! ™†³! úô»! ‚ÂÜÞ!  let message = "Hello!";Ádþ! û°ü"K H // ALWAYS use `move` when sending a closure into `defer_unchecked`.Áüß"' $ guard.defer_unchecked(move || {Áü‹#$ ! println!("{}", message);Á\´#  });Á,Ä# îô<Î# …™Ú# úüâ#^ [ Apart from that, keep in mind that another thread may execute `f`, so anything accessed byÁüÅ$  the closure must be `Send`.Áé$ úüñ$_ \ We intentionally didn't require `F: Send`, because Rust's type systems usually cannot proveÁüÕ%\ Y `F: Send` for typical use cases. For example, consider the following code snippet, whichÁü¶&Y V exemplifies the typical use case of deferring the deallocation of a shared reference:Á”' úlœ'
```ignoreÁü®'5 2 let shared = Owned::new(7i32).into_shared(guard);Áüè'R O guard.defer_unchecked(move || shared.into_owned()); // `Shared` is not `Send`!Á<¿( …™Ë( úüÓ(] Z While `Shared` is not `Send`, it's safe for another thread to call the deferred function,Áüµ)_ \ because it's called only after the grace period and `shared` is no longer shared with otherÁü™*< 9 threads. But we don't expect type systems to prove this.ÁÚ* útâ* Û·õ* úüý*V S When a heap-allocated object in a data structure becomes unreachable, it has to beÁüØ+^ [ deallocated. However, the current thread and other threads may be still holding referencesÁü»,` ] on the stack to that same object. Therefore it cannot be deallocated before those referencesÁü -\ Y get dropped. This method can defer deallocation until all those threads get unpinned andÁü.8 5 consequently drop all their references on the stack.Á¾. ú<Æ. …™üÒ.8 êžü/, ´ÁÀ/ úüÈ/  let a = Atomic::new("foo");Áì/ úüô/M J // Now suppose that `a` is shared among multiple threads and concurrentlyÁüÆ0  // accessed and modified...Áê0 úôò0 ö‹ô•1 ‚¸1 úüÀ1M J // Steal the object currently stored in `a` and swap it with another one.Áü’2H E let p = a.swap(Owned::new("bar").into_shared(guard), SeqCst, guard);Áß2 ú¬ç2  if !p.is_null() {Áü3< 9 // The object `p` is pointing to is now unreachable.ÁüÂ3R O // Defer its deallocation until all currently pinned threads get unpinned.Á„™4
unsafe {Áü®4O L // ALWAYS use `move` when sending a closure into `defer_unchecked`.Áü‚5+ ( guard.defer_unchecked(move || {Áü²5D A println!("{} is now being deallocated.", p.deref());Áüû5\ Y // Now we have unique access to the object pointed to by `p` and can turn itÁüÜ6T Q // into an `Owned`. Dropping the `Owned` will deallocate the object.Áüµ7% " drop(p.into_owned());Á|ß7 });ÁLó7 Ûô,8 îôü‹84 é¸<Ä8 …™|Þ8 Ì Ì’PŒì¤_£ ô8 Ìù î8 §ð ñ8 Ýùl–9 ¤ž ¢9 ž—$õ8 ±Î-/24<„: Ûèôè’骚ü›U9 üÜ:] Z Stores a destructor for an object so that it can be deallocated and dropped at some pointÁü¾;4 1 after all currently pinned threads get unpinned.Á÷; úüÿ;] Z This method first stores the destructor into the thread-local (or handle-local) cache. IfÁüá<Z W this cache becomes full, some destructors are moved into the global cache. At the sameÁüÀ=Y V time, some destructors from both local and global caches may get executed in order toÁüž>6 3 incrementally clean up the caches as they fill up.ÁÙ> úüá>] Z There is no guarantee when exactly the destructor will be executed. The only guarantee isÁüÃ?] Z that it won't be executed until all currently pinned threads get unpinned. In theory, theÁü¥@] Z destructor might never run, but the epoch-based garbage collection will make an effort toÁü‡A  execute it reasonably soon.Á«A úü³AY V If this method is called from an [`unprotected`] guard, the destructor will simply beÁÌ‘B Žœ¯B úd·B ÈB úüÐB] Z The object must not be reachable by other threads anymore, otherwise it might be still inÁü²C!  use when the destructor runs.ÁØC úüàC_ \ Apart from that, keep in mind that another thread may execute the destructor, so the objectÁüÄD& # must be sendable to other threads.ÁïD úü÷D_ \ We intentionally didn't require `T: Send`, because Rust's type systems usually cannot proveÁüÛE\ Y `T: Send` for typical use cases. For example, consider the following code snippet, whichÁü¼FY ­§šG 
 `£c†_ `àB¤GS
×Ö^¦ Ñ} ¦
§$Ò} ± Ø} üþ”- ü¬~W T Returns a reference to a dummy guard that allows unprotected access to [`Atomic`]s.Á úüˆ_ \ This guard should be used in special occasions only. Note that it doesn't actually keep anyÁüèY V thread pinned - it's just a fake guard that allows loading from [`Atomic`]s unsafely.Á€ úüÆ€] Z Note that calling [`defer`] with a dummy guard will not defer the function - it will justÁü¤% " execute the function immediately.ÁÊ úüÎ` ] If necessary, it's possible to create more dummy guards by cloning: `unprotected().clone()`.Á¯‚ úd³‚ À‚ úüÄ‚Z W Loading and dereferencing data from an [`Atomic`] using this guard is safe only if theÁüŸƒC @ [`Atomic`] is not being concurrently modified by other threads.Áムútçƒ Û·öƒ ú<úƒ …™ü‚„1 ùÀü´„- * use std::sync::atomic::Ordering::Relaxed;Áâ„ úÜæ„  let a = Atomic::new(7);Á‚… úd†… û°ü“…7 4 // Load `a` without pinning the current thread.ÁüË…. + a.load(Relaxed, epoch::unprotected());Áú… úüþ…5 2 // It's possible to create more dummy guards.Áü´†) & let dummy = epoch::unprotected();ÁÞ† úì↠ dummy.defer(move || {Áü€‡8 5 println!("This gets executed immediately.");Á\¹‡ †¤Ň úüɇQ N // Dropping `dummy` doesn't affect the current thread - it's just a noop.Á,›ˆ îôü¡ˆ4 é¸<Öˆ …™Þˆ úüâˆ^ [ The most common use of this function is when constructing or destructing a data structure.ÁÁ‰ úüʼn^ [ For example, we can use a dummy guard in the destructor of a Treiber stack because at thatÁü¤ŠU R point no other thread could concurrently modify the [`Atomic`]s we are accessing.ÁúŠ úüþŠc ` If we were to actually pin the current thread during destruction, that would just unnecessarilyÁüâ‹b _ delay garbage collection and incur some performance cost, so in cases like these `unprotected`Á¤ÅŒ  is very helpful.ÁÚŒ ú<ÞŒ …™üæŒ1 ùÀü˜  use std::mem::ManuallyDrop;Áü¸- Èúæ ú¬ê  struct Stack<T> {Áô€Ž  head: Atomic<Node<T>>,Á,ŸŽ îô¥Ž ú¤©Ž  struct Node<T> {Áô¾Ž  data: ManuallyDrop<T>,ÁôÝŽ  next: Atomic<Node<T>>,Á,üŽ îô úü†  impl<T> Drop for Stack<T> {Áä¦ Âäà ‹ÅüØ$ ! // Unprotected load.ÁüýM J let mut node = self.head.load(Relaxed, epoch::unprotected());ÁË úüÏ3 0 while let Some(n) = node.as_ref() {Áüƒ‘( % // Unprotected load.Áü¬‘J G let next = n.next.load(Relaxed, epoch::unprotected());Á÷‘ úüû‘X U // Take ownership of the node, then drop its data and deallocate it.ÁüÔ’2 / let mut o = node.into_owned();Áü‡“4 1 ManuallyDrop::drop(&mut o.data);Á伓  drop(o);ÁÙ“ úüÝ“  node = next;ÁŒþ“ ÕÌl ¾óLž” Ûô,¨” îô<®” …™¶” ú캔  [`Atomic`]: super::AtomicÁÜØ”  [`defer`]: Guard::deferÁ\Œ•  ’Pÿççd€— ÐP×ýqòZw³?ª«PÐP! 8’PÐP©©
ª, ©©’Pü™—! ÐPü— \É— ÐPƒdÃ.»¤Œ“.óµ ̦.ü’..ü‰.9DÇ.ÏÐäïÁÔ5Tº¥®¯µ ®±®¼À®²a$Œá.®³í뮵¾´Ãۮ崭®·åµ­®·×Û `®¹µ ஺™¿®»´Ë®½ì®¾°
ý„€ïL–áœÒÕœ»ÅŸ¢äëvygj„²\_MPÌâBd47%( ŒÑñóàâÏÑÌÂÄ…”èµ ÔçüãüÚ*\‹®Ïq¬ÇÙŠQ'ÅW7a¡ŸÑÓÞüü"®ÐÐÍMÒ\’Ïq¤®ÐÐÏqÄ•ŠQŠQÖרÙÜãñŠQÕÕ
ÖüÐ%Ø ØŠQÕ çÕ
×ü¼TÙ ÙŠQÍMÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¤_ÍMÕ ÚÕ
؈ Dåü‚($…®ŠQšNéQÕÕ
Ùî!,¤ÞŠQÛ´Û¤ùŠQÚÚ
ÛÛÛÏqŒüŠQÞ"Þ”” $— Ú ÚŠQ¤_Ý œ Ý
Þ¼þ"ŠQàÀcàüœ#8Ÿ#ÛÜÝ ÛŠQ Ü c cˆ¢cµ
 `£c†_ `àB¤GS
ÝÖ^ß £#ß
à$¤#± ª#ô—&éQtº&éQãü›'1Tž'®Þ ÞéQšNâ ©'â
ã$ª'¯Ëd°'Äæ)4ø)³ËÖµ”ÀÞäáåæçœ´*4´*®ääÌ̇8ψ.Ðí:@&âÄ­'…¾R¾R¼†+,†+®ääÝÝ”9߈.Öà±9Ö·Ø÷úè–ðŒéQü¾+*,É+ääÀ\í+³éêëìîÔ¢,l¨,®èèÏqÜ--³èè
êüµ/;DÃ/ßàá ß³ àŠQ á’P¤_è Ì/è
ë$Í/*Ó/£,â/üæ4+<ô4ãä ã³ ä’P¤_è ü4èÃÇ$ý4£,ƒ5Ä­7ìÛèíôèí’éííìíâ âéQ̓üÐ;8\Þ;åæ å³ æ’PšNè ê;è
î$ë;£,ñ;¼ÜK,îK¾Rª^;ùNŠÞ;ðñòóôõöd³L,³L®ïï½SüÄM.LÄM®ïïµü¦N±Nï便¦Ô5¨ˆ Û>q —Ö@AŠQÄŠO\ŠO®ïï±»ÌÏOdÏO®ïï±»üòP LòP®ïï§Ãü²Q,²Q®ïïÀT›U¾Røùúûýþƒü¥V%Ä«V®÷÷Ïqü‘W<DŸWç ç›LM÷ ³W÷
ùL¨Wü©^&4·^è è¾R è³÷ ¾^÷å¿$¿^üÚ_,Lè_é é¾R é›L÷ ò_÷Òâ$ó_¥`ûÛèüôèü’éüüûüa&Lžaê ê¾R÷ ¨a÷ÔÞ$©aü…cH,šcëì ë¾RÍM ì’P¤_÷  c÷ãš$¡cˆ D«c£,¿côcþÛèÿôèÿ’éÿÿþÿ ŠQ ŠQ¤_ü–e),¤eíî í¾R î’P¤_÷ ªe÷
$«e£,±eæeÛèôè’éã® ¤_ü±g!¿gï ï¾R’P÷ Ãg÷ÑÚ$ÄgÔŽ~,œ~ð ð¾R¤_÷ ¢~÷µ¥$£~Ôšñ ñ¾R¤_÷ ®÷
üΉ#t܉ò ò¾R¤_÷ ë‰÷‹¥$ì‰üÁ‹#tÏ‹ó ó¾R¤_÷ Þ‹÷Õæ$ß‹”ÓŽDÖŽ®ô ô¾R¤_÷ ߎ÷„Ó$àŽÛèˆô舒鈈ˆã® ¤_ΖÛèôè’é™¶¤_ôð™¾R‹ŒœžŒü•š#D˜šõ õ¾R õ½SŠ ¨šŠ
®,¡šü‹œ,T•œö ö½S ö¾RŠ §œŠ
Œý), œüç0÷ø ÷½S ø’P¤_Š žŠ
ý),ú£,‰žD‹/»¤ŒÛ.óµ Ìî.üÚ..üÑ.9$/¾Öœ! $0 šŸÈÕ̹©¹© G<ŒÁÀGÂÀË<•½À˾ÀÌ¿ÀÌÀÀ½%\µ ¨ŒV4Âu¨#,ʘìÌÎäííïÆÈž ,­z|fhRT=?ìÞš¥š¹ˆüÞîçú ùš¹ˆ"¹ˆžœžžœ<>ì¹ù ù˜D ù½Sš Èš
œÁˆ˜D Åü…&Tú ú½S ú˜Dš š
Áˆ˜D šü¡)
î0¾¿ÂD\Ö
ÑÛ¾À¤‰
ï8¾Á´¯
B´Ë
3|ç
"ìù
D
¥ÃÃØî 
ŠViØ’ÕJÉÄÅÕ"$T
$
¾ÂšŠü­!
,­
¾ÂÂÖŠüÀ0
¥ÇÇØî Ì
Ŷ
µ¶
ŠVüô)
¥ÉÉØî 
µ¶
ŠVœ¢
¥ËËØî §
ŠVÌÍÏÒüî!
.\Þ

ŠVÊÊ
ÌÖCü‚ S
\
 ŠV ÖCÊÎÎ Ÿ
ÊÍìÞÒ œ
"ÞÒ ¤_
ÞÒ ¤_˜"ÖC Ó
ÍÖCÞÒ $ 
± ¦
GIü«A

¾ ŠVÞÒ ¤_ÊÐÐ ¼
Ê”Ó ¹
¥Ó lÞ
¸Ó ê
ÏÖCÞÒ 
± Ã
/1µ
ÏÛèÑôèÑ’éÑÑÏÑÖCÞÒ ý™ÞÒ Ýüè$

¾ƒ ƒŠV ƒÖCÊ 
Ê
ÒÖC$
äð
¥ÔÔØî õ
ŠVÕ"Õ”“
$
 ŠV¤_Ó 
Ó
ÕÖC$ 
¤„ ,“ ãÝÂD\ØÑÛÖ×G<ˆÁÀÖÙGÂÀÖÙË<‘½ÀÖÚ˾ÀÖÚÌ¿ÀÖÛÌÀÀÖÛ™¿Öܽ%\Ô ¨ÖÞŒV4áuÖߨ#,éÖà´ËÖáìÖâ´Í*äé÷ùÏÑ䩪,Ìsu^`IKt$ˆÖ¥ääØî ö‘­ºóh”—åæ "¤Ù  Öãã¶E¬ô  ÖããÑüâ &¥èèØî î µ¶ ãVüŒ
&¥êêØî ˜
µ¶$
ãV„·
¥ììØî ¼
ãVíîïðó÷øüñ
ÿ
ãVëë
íÖCü¿ŠÖˆ ãVìâí­8§ß¤‰cWö‘ìâí­8§ß¤‰cWö‘ ˆ’Pë Ùë
îÖContoÁ$èæ £üš.Š ãVÖC Š’P¤_ë ­ë
ïÖC¿ ´£üÝ!>dà!ÖŒ ãV Œ’P˜žë í!ëö­,£ñ$ðÛèñôèñ’éññðÆœ§)ðÛèòôèò’éòòðüÇ+ˆ|Ê+ÖŽ ŽãVÞÒ ’P˜žëôô Ý+ë”Ó Ú+Ŷ$¯,"ÞÒ  ÖCtÀ,ÞÒ §ä ˜"$Ê,
óÖCÞÒ $Þ+ conditionÁLä+£,ò+vxÔ/óÛèõôèõ’éõõóõÖCÞÒ ¸›Ç›Š4óÛèöôèö’éööóöÖCÞÒ ¢¤_üÏ58<Ý5 ãV ’P­˜ë å5뤰$æ5£üè8‚Tö8 ãVÞÒ ’P­˜ëùù „9ë”Ó 9Ŷ$Ê9"ÞÒ  ÖCtÛ9ÞÒ Ñè ˜"$å9
øÖCÞÒ $…9éã L9£,™9np̆;¥ûûØî ‹;ãVü"ü”¦;$©; ãV¤_ú ®;ú
üÖC$³;lí/Ó'Ó'ä'ä',ë0œë0ô'ô'((((((((9(9(K(K(üë0e](](o(o(üë0Š((“(“(\©2»À|—2¼‘2<­2œä°¿Ž®Ïލ#,ñ޵Žè/DÔÂŽ„³np]_œãPôüAü¼ /üß$Ž ›Lí¸üó%ŽÂÂè/Ä€0¾Å»¾iØ’ÕJÉ›LCÿÿÿÿÿÿ¬ù äÒ  Pins the current thread.Á
P

Ûè˜ô蘒阘â¿Ôù
ü»
30 Returns `true` if the current thread is pinned.ÁL€ 
 Ûèšôèš’éšš€Âüð 0üÆ )& Returns the default global collector.ÁŒ÷ ”í 
üÀ J ŽŒì‹e£žžÌù Ï §ð Ò “"Œì MÄñ Œìàò ˜"e ˆ

œŒì‹e±%_adfª
œÛèŸô蟒韟œóÄÌ
œÛè ôè ’é  œ¬ÆtÖ2¥(¥(·(·(É(É(¶&T‡ ¥§§Øî ¥CÛ>q —Ö@A¦¨¶]¥C¶&O¶]¥C¥¥
¦ÖCfhÜ• ¥¥¶]..¥ªªØî°¿cÖC¥C«Àc«ÐÒ..˜ ¥C ˜ c cˆ¢cµ
 `£c†_ `àB¤GS
Ö^©È©
«ÖC.±.¼ÁšNéQ:q ¢­ô¬¬Ïq #”$šNÁÁÁ%šNÁÁ%šN±Ù±ÁÁš ššNšN°°
±Á—Á—Á&šN³´³—Á—ÁšN²²
³ïÁïÁ'šNµÀcµïÁïÁœ šN œ c cˆ¢cµ
 `£c†_ `àB¤GS
Ö^´´
µïÁ±ïÁÃÃ(šN··ÃÃÞ žšN¤_
·Ã Ã Ã)šN Ã Ã)šNº·ßº Ã ÃŸ  ŸšN  šN¹¹
º Ã¹
 ÃìšO«ŸQHXÅk9¼ŒÃô»»«*šO¾´¾šO½½
¾+šOÀÀcÀ¡¢£ ¡šO ¢ c cˆ¢cµ
 `£c†_ `àB¤GS
£Ö^¿*•¿
À±|Å„Ž% L•%®éQV@BNÌ.ÂÃd¥%,¥%®ÁÁšNL·%$·%®ÁÁŠQ,éQÅ´ÅéQÄÄ
ÅÜÖÜÖ-éQÇÀcÇÜÖÜÖ¤¥¦ ¤éQ ¥ c cˆ¢cµ
 `£c†_ `àB¤GS
¦Ö^Æ,†%Æ
ÇÜÖ±ÜÖ¼±½Sçgt‰ˆÐŸÉœ´ÈÈÿß:½SËÀc˧¨© §½S ¨ c cˆ¢cµ
 `£c†_ `àB¤GS
©Ö^ÊÊ
˱Gïü“.¥ÍÎÎÍØî ªôÄ œ­„Å d°òS:@&âÄ­'…Ïз247 ­ÖCœíÌÌÿßä·ÌÌ‹ãœðœð;¥ÒÓÒÓØî¼ôÄ Óö ¿c¯T„Å ÑòSÔÀcÔñ󽿜ðœðª«¬ ªòS « c cˆ¢cµ
 `£c†_ `àB¤GS
¬Ö^ÑD‹Ñ
ÔÖC¯Tœð±œðÌÙ½T#NMÓÖ××ÕÕ½TÕÕ½T<½T<½TÚ·ßÚ­® ­½T ®½TÙÙ
Ú¹
ÈòÈò=½TÜÀcÜÈòÈò¯°± ¯½T ° c cˆ¢cµ
 `£c†_ `àB¤GS
±Ö^ÛÛ
ÜÈò±ÈòÔ‘¥ÞÞØî ©ãV·Ø÷úè–ðŒßàü"$ü²"ÖÝÝ“‘üÚ"ÖÝÝ“‘ÚÚB¥ââØîÓö ãVãÀcã©«ÚÚ²³´ ²ãV ³ c cˆ¢cµ
 `£c†_ `àB¤GS
´Ö^áP‰á
ãÖCÚ±ÚùVf.aŽû·ùWÔ&eÙW×eŽM‚½häÚææäÚÑW¦eäÛèçôèç’éçç䓼ùW®Oe¹Wµe Ž¿¾ÃÿÿÿÿÿÿÑW‚!eäÛèéôèé’éééä§¼ùWŠ"Ne¹W"e ޾i¾iɽÁi»¬iÂiº¬i7·O|5‡MÃÿÿÿÿÿÿž7§T8§TÞ
§T=@§T ÿ
§T §TxD§T·D§TID§TD§T—C§TOC§T ž\§T Òd§T+"§T ¥p§T š§T¹§T ’˜§T±˜§T§T â¾§T¿§T ÐÕ§TïÕ§T Þ§T Œå§T ™ì§T§T ò‚§T†ƒ§T§T Ó…§Tç…§Tïà§TöʧT‡È§TǧT ¨½§T¼½§TòƧT§T§T§Â§TüÁ§T§T¨À§TÅΧT§T¯Ï§TìϧTκ§T§T§T ­§T‘ª§Tù¤§T袧Tõ–§T§T ˆœ§T윧T Ÿ§T æ§Tçž§T§T ‰Ÿ§T §Tc§T Ÿ §T³ §T¶¢§T§T Ô¢§T袧Tû£§T9™§T˜§TΗ§T º §TÎ §T§T §T
§T‹•§Tô”§TŒ”§TÌ“§T é§Tý§T)‘§T اTì§T§Tç‹§Tƒ‹§TB~§T¬o§Tþd§TÍU §T0a§T,]§TÅX§TƒW§TìT§TT§T^S§T Û} §Tï} §T©@§T@§Tå>§T&>§T ­#§TÁ#§T·=§TÏ;§T Ø/§T é/§T º7§Tt;§T Š5§TŸ:§T ø;§TÎ8§Tt8§T8§Tƒ7§T$7§T Æc§TT6§T ¸e§T©5§T^5§T5§T¿4§To4§T4§TØ2§T{2§T2§T ž§Tª/§TI/§Tá.§T §T^,§T ˆ%§T@)§T¡'§T%§TV$§T\#§TÌ"§T×§Tõ§T§T ´§Tk§T Á§Tý§T û!§T Ã,§Tï§T ù+§TS§T ó5§T Þ9§Tæ§T  9§Tí§T ÷ §T§T§T.§T$§T§T§TïÁ§T§T§T§T¤§Tª§T§T0
§T6
§TÜÖ§T- §T3 §T§TL
§TR
§Tœð§TG §TM §T§TŒ§TÈò§T
§T§TÚ§Th}€ÓØÅÑêøÿÕâè÷ª¬Êëÿ
 °VuÂ# Guard::deferÁ¨#ì°¿ÿ
VÂ#£Ÿ
¨#ÿ
ì°Â#V£Ÿ
¨#ìE Ordering::RelaxedÁOrdering::SeqCstÁÅÀ÷
VuPointable::dropÁ´ËPointable::deref_mutÁVPointable::derefÁüËÌG¨#Ordering::AcquireÁ™ 
Ordering::ReleaseÁ¿ÀPointable::initÁ÷
× 
Xõ 
üAtomic::compare_and_setÁËÌ×Atomic::compare_exchangeÁÄ¡
G™ 
½Àü¡
S× 
÷
?üª¢
Ëì×Õ¢
®Ä¡
ÁÀü¡
ª¢
¹ì×Õ¢
® ¯ 
V´’¡
¹ì®¼À¨#à¡
 ¯ 
V´¹Põ 
’¡
T̨#Gà¡

super::AtomicÁÿ
£Ÿ
¨#V½%Â#£Ÿ
super::pinÁ ù¤
u¨#ÿ
V½% ¨Â#£Ÿ
¯¥
ÿ
ù¤
¨#Â#¯¥
½%V?PÇØŠ ³ºµßíßÃLðì ãàéæŒ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“í²—6 £é!ö!?PÇØŠ ³ºµßíßÃLðì ãàéæŒ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“í²—6ØŠ ³ºµßíßÃLðì ãàéæŒ""“""Û Þ ã ŒMÃMÐLÇLùMÌìÍì“í²—6
UnsafeCell
CompareExchangeErrorcurrentnewunaligned pointerAtomicrawtagconverting zero into `Owned`Owned'converting a null `Shared` into `Owned`'SharedEpochdata AtomicEpoch ­ SealedBag epoch_bag#assertion failed: handle_count >= 1#EntrynextListhead_markerStalled&assertion failed: self.curr.tag() == 0&Queuetailú¨
‹©
¦©
´©
¾©
Ö©
ã©
í©
֩
šª
¦ª
Ôª
áª
íª
øª
Š«
Ž«
ž«
ª«
µ«
ß«
ë«
ö«
¬
Œ¬
š¬
¨¬
Õ¬
á¬
tn‰'†÷õ/Èç{ÙP1ã W}DS¿h¬8 ;ñb©°ê–i@€PT†¡†FÐÙͯeìèáqeà"p‹É´Æ‘ü*G&§AíòH’êšÐ7Fú'ÜtKßC„ ?óüM÷K
ßy¨ƒw ŠBٳɿßÌ£®íO"ó^•´1ME@b/õŸÈc¤dùìªwËÍÞ»ˆ¢€€¦Ç¾Uæ6Æ€£sKc˜N9R“ÕˆÃXÆî‡ýE„‚ÍÅiT¿
(I
%
%<?+-ÔÅÅ)k¢²5”ƒgkê}ˆ§aœ1šIÌD½PÍóŸô¹ZøI?^ßÝüTó<é5£étbC&öeúª4cKß],ï “Y­‡eIVdPÂÍ]Ó¨à!&ÆXÎZLÊÿЬh†`/Ä*·ôZ^>[@+sj´Ôžl<äeëQûLZdì“ÿH Ìà>Ú|…¨KCÎŽ7ã˜nÉ€&>›«·i½Ô2PUt2ú”ÑWÄÀ^¬†ÏU1ÏîžJ
WµQe/å>ÃÄ„²!êÇí
q…!1£.ÈÌ«Ë`·±øz4ãÊ8^¿´øx€-fKºÀë<ô™{ÿÙgy2ŽÇÌÍV<h¦ÏbˆE2w¯?öîÑ2ŠÝ·¬`ÍRFú+üˆ×päêE×#’ȲÍá¶…ÕxȰ÷Å,7~°(*ˆØÏ⫌~á€.ýú£qcçÙ°©rq¼‰/¶Ÿ?ìëÈ9«º:FÓG˜Â¤Ä"½ ÒÂ4Õe¡ã¬P’ €•V¹É!íüM~dÕí­‹wä JÌ)æØ×}½BxX¦®87çŬ(W&D0§•…›( à 5Ÿp;Ð9é¦ô,zwx„ nW¤5Q¿¶GeRà•žA11Ã7é¢FÎÉázÐüŸH*У.'[B>”‚¹G½o4¸A 8V\Äojé¼þu}b §€dC¯Œ3Nñú¯N¶-¤…ÚH°Òú­f©XÚº9³e$DÍyÁEQ±ƒðcnðo¿6,Þâ±è¹ o_pÐ4óŒ³?e5™«²¶p8cÈÞšdÒëRÖ…£:„ò.ÅOë]ÎÌŒB°% !›ì¼*••Ľˆ6X|ïWÚ¨7 nÞŽãmØ<•{óRtǵѱVf) w}i­êÒ=‡Ã¼þ_AÕÿ=íIpîáç¢ïm(jÈ=¬÷Tc=ÖFÔ¢öÎy­”௉RòáöÌÃ(Û!Þþ“Êõ¦ìù™5¾Nsäã’&ÿÄÂ×Ü6M¼x½æIéH vu¤Î”2·ÜÆ@Î¥©)ñnŠqû-ÈElÛÕ`¥áýºuÆwÐÇÖU#?Œ…`V'ÇŠ6°$TSà@ °Mõu‡‰P÷ö4Soɘ£®R__U%xŒÍ»ÚM¬C<~|dÙì§ÆF5Ò½^Ëh³8Ü4OÜ\Ÿ°Û6(ö™•eÑïåÏÆÐ&eȹY%—4É×á”Ñ–Š _§·ÃÿÏÍÃ4ÛHöЬ!q3y'Ý Ú÷:Ðçß_tÀ0P²Á¡c½
 ´Àó‹©²»9ÅI£óFL¡e… rÛSYyhðÆÐØxÞçuì– tà½éDÇ<f©iüY]µ¢Ú[`û4sóÐÛÌ>Dx¾HZšó¬éK°XÚ?ô!‰¯ÑF€öÌ”kÈ5”5f§Øªv
×B©$ÂèÅǬRÁ"J´Ê_É
—IkLߪÕu=lèÂ…<†Üa´Ö×ë8Áè³pƒcÔi|NjÛ
bbÓá¬údz(KˆˆöÁ™6§—ÒEGÁ§ô-`_%¶@òÏÍеcÔ™|V™!j#J?]Þ¨¼xU™’ðf²´ßŒ@¢o©\†a¹ó¦¨ï¾]b:IÒ
S5L¡·{M¶ÖjLЃ_6ïqÕª"“«úy©4R:€#ö¤¢Iž7ú=.Õ £ÜXŠú
}CögRØØsjÝ™Ÿ€ØRÛËwËp”çNl¡Ì…3Ǽi¶ÔtèÈæ¡ÛE‹°PégùHl°šÖâŸÄE¥ÓbmÄk»™ùÂú~
 ‹8›¿‹¼{6=W­·
Ÿ„7·AQå¿\Y{?“©ý!y ÿ/më7¡J8[2•ÖÓÈ3´yž¨à·ÃÇL‚³f'Ù¥LrlÑÞ)Y ê«‚æÙÆ<TâF‚°\½m’älÙÕ_¬½¦îÿ²‚IhÓÖ¶Rú{Ïõ(‡Ç¿ûÇÔn.aðê>ZN€3CдÐv¡µpIÖ¼NRĹŸÏN71FÎç-ꪀïb³¥¸ÎVÜÍø'‚œNbN9*¾<ò³(O´$²VOK1»í8 Ü.С3Ï÷•ÄÒ†½¦Üh£kt¿//vóÏTÝ{Ë,¢HŽþ#9½f½ºhÙ¸e]©_"²Šáq{|*9z`jycé ÁQ«qŽe cBBê¬ Z OõLZà1šsÏ”{ó<ß)<Ř( …é¸ÐÙ4M°Õ"ºKÉ”
Ù†/[JX=9ùAÃMÔèèi¬Ù®¾÷AÝQ´~xò‹ ¤’)
V?uú¬ßåžûÆ=Û6­;s£Ãn¶þÓ¸ße¿?<î«)Î_ )8äk3y&C™I
åù×-÷Õ}`
²~Qí
i£Ç­¡£Hv Ûq¬ZWÄ$Rdnj®„$›ë¢Ëìšnt<E¨±Ùá6
G޲Q¸¾R@X×Í‚z°Á*wà•ÙòÛÑsèb&ÜÙ®–ë’ÖµÜ^ÃÜå™°_n>
Š 2¹ê¼úóÈ R
–ó©BÛ‘ÿ 8.ˆð'†¶2$cÁ!”e&÷¸Z9àcŒÞrñå‡Î?SP ÍE4Š'뢓Qà°Ë£&J†Þ@m%Ê¿Þ7I,ûµQn2 ³
­ñ‰Õ·š,^òL¯bqTù é9aÖ‡ØïÇ$m¹¤GXÊЂUu/¥¥ß±¦sÒ¡”—ô­Ã³aÔAî6áÏËõ-orÐ}9ÓÜeÿã¿YÆ*yï µŸ»Þ§jOKvÀC£Jsë)jã¼m€
*•w ¬žmb
|·¾TÙ{{óã-VþËÌÞ@nQŒwÞhÏ•ŽÔ´€Ý–%2Lv>×
¤0ô†pgW˜™ýý¬vZ‡n“©¹òeÉ"‰²z`/ÄÞÌžWû§LM"Íù01}ï¦+@n¡,]Ê pÍF
Hdÿnåmhë°Sîåµì¨bÓ?Ÿ÷óÂôedŦ :ÊH kG§@j8ù¨ÒŠO£¸Õ
8æ°ÜWB‹ÐfŠ[+MÒŠŽœ²’/K3LÑ^Èì£IuWêÎi÷²n´(Îß[ii»†|jHfUÊBê£eðéâÝ'z©“VgßÍ)óØÅÃ$„:¹ÜჶA<Ú-©Î¾ÇÀò÷Ò1€MÍÉ@ã*ïœå¬WÕ¥õiÜ¢ú¯ˆÆ_OþâlÀ‰d´Rpì]BÅ9á¹F ’»úoá(5ôÃ[+ýrŸ+Ærr<~‹£Ho¦ƒYb?·L;à=çqúX|kç˜7ˆI€z‡\}™>‚Ói¡•LdÄQÌ|ôÄ_KÆï‹Ä)æ–}çŒ,Z×Þ{ cײIJÑúhuÊUÓ­Ýpðø~¸©È¦l®ì ­¿ÍxõQC4€%jônnc¯CˆÓeŽwZI ŒN ý_ÒÍÍ݆ÌäN¯.Ò?paë6ÆM‚1«…öÅ
¶n½ßµRê©$«ÏBÄå© ,‚o·Ó.P‚ ñ£‚RÖ¢îËÒDíy}Ó~Ù%ËêEgÙí/ên5áèž›-»žÀ‘,«0:˜fàÚœ·‘ cª?ROd¯
´›{á½ÃƒÐɰ伭Å0W·°ÊH_‰RE~%Á?âÝO3¶á¥ÕÕµRÊŠr¢?éÕ{`øAÐà ŽÒë@ê³ &™b=*|qæ)„óÜHLc]$:§â’jþÊâÇh–És)4£2d7Û€ócœïUÛæ©H?ÜEL4Dtt«[Œ?œ"u+Ùz•ÙÉ·~¤ì”Y’,’Õ‡¢=ŽÇ‚¦öÏ@Ô‘ÂNìgëÍÉf¼QP„itIQ†S«¼8zÉ>¸Ù Q#à2FF-‚ŸŠÀîñßgñíGm(>VCÏY£ØµWPÀ$eqL‹°Ù^«<ˆˆ8É'Ôª²ØÎ¤QìÝ-ø´”I¹5Õ¾¨g™ú=ࣞC“À6yÜfñ{ÊíIÃŽý€Ä]ÍH)X˜FvMEP×P¤±öÝÝ^DÌ˹«çOSØ&9è[¨¯ßU"ç.„6l·h¼ä¬ÑÔ¶ Û}š£•"¢9íLЧ’óó{²Õ{Èѯòo~Ü%•ê]MuDº™Ò9Mñ3¯™z—+ò1}"&·Ðxý¼Ÿœ[ü=ßk
dg,™Yûíyl~=[+ˆ’œõ|ã]œb‰MF?ª™¯|(še`F&«Íß'ÑÃÆ;œ¾÷’€« Fòc&­íã7'«w—â.þc¯äü”œq¯¸4-·Ñ—Œšík(¡Ä¬qìâ‘Õ!öµª•?ˆoèØ4ãÁ\$^ÊÛIò‰gf¹•WèUêX-Ü®dc\Ÿ·žjý˜íœ;R ù#å"úvIu&&ÜOΦ’Žª4Bj.IHç )W-ÛÞJ–íúÚø.RŪº\Ä· hÎ&gMA>5]k áÉÍ“fWÏ ÿF‘ÀÓ ¿G¡H)’aZu©pÆzËy»ÀÎ8¿#‡ð6r?…½S^'ü á<K¤E=–¯ä
[­b]µ×ù…òP©ÑcZ÷é)FSøÏû¯ãîkð–vµ@´E¬à/E‡¸v™‰ö61´
„¼µö©tعQZ8'º¢ÂA¤$¶D,#ð³lB¢×C.è,[õ¾hÇ5ªæãžU–m/ˆã;f ñ(oRƺ/~Û”&oGrâ¾`¡SÜ[ ¢¿ÃQbø°ÿ/’K-ÌÌ|¹þ±fBƒF`-ˆTqÅòôÏÙ&ÀH‘~]ÓÚN6Ÿð¬oÃCNŸ‚¼£ü«ú±ËÇAåç±RÿŠVohðg[ª¹
ž¢ Öùøíz)‘ËÿÌì¡
DÎè?"‘ÿjhª¨«U
#쨖ž×Þ)éÖ¹FÿBç`BAé†-]´êÊQΫ2Ù“ ³úÆd[ W£3#ÖÊÂ8Þà‘C£åÚÝÅ**† ¡ósXÖF0òï•»UN,³tãf²G¢a±;&cmÏÌj5>S‹¤Áî¾gÙæPšÕј1*NèÞLú^+W{úŽvR:ýyFæ·U§Gô;òetì>êxF—^rƒps©}\zø¢!
6מ•˜ž_GÕI+¥‚ÈJÿNYòY¥Ë=Gc·èaž%6Û÷è#mc Â £ÐÜû
DkÒ©£M±;?÷„É…&_ÆápëÙAUq1kçlc°ËšŸ£6tp]í¬:‰T…ÐôÞÃC¸ã¯Y;s|9æ.…dQ$ì·½©q%e@v¸ÎÈ#…)ŠWtx¨«…nq(Nvjþïê-…(Yw¿TÕ£wÀ®¡(¹‡léÑe9^b3Þé;Hq¦on–ƒdší©I½%ð¼ž,>]‰CWŸ=Ò/D?âƒ(¡ßc+ñ\Z„ËÏTÆ¢Må}Vç—~},4Åj˜"ïA›ŒCE>í]4ôH_©Mçè1 Ûu͉Çž¤ßY<6^ž
¢îH« =¹ó.lšñåÉ^ßBlx{“
ti×µØüþ^JG,‹ e½L˜õ³ãù`ï?6Á
&3P;ï~Å´p¹©{ƒÉ–ÚwÞS,çä^–m*AêþjÂDá¶€
ö—tîh9™¤^¸äpcR1ÆÿúŠBà”!Úè»5‚^˜4l´ÿ\Ž×–VDÃåα‚ÂèÊo5YhÄgµjkþ64\áªQ‚ËN¾:¨
Lì–ûÿˆWü òd—mŸ ‰»J@‚°’T ¦ð9°PEwy
j¯¹Àú›¹pºÞU‹h}Ú¥ÍûSG}@¨!j;jwÀ1‘äno?œàÇÒU÷¤Ø%%†‹O$•ÖíOìÝ÷ö‰ŸÁ™)^…°” ò –$g
I43RØ*Át>ù·¬¯ÎïðPÌ£vq,ôTì=××·6™í‰àœÎ<¤WƒýˆÑ¤UìQoWò…­µÛŒÀÇÉ+Òò½µI#a‹ÿÛ{¤¾ç:˜êâ©7jwäø"u.ïÚà!Ùc³Ò.µê1½%QD~hŽd¾JÇ…ä¨Ó¤`±´» 9©€Ïê¶ÏnÕ)Ûì­32^íä ~Ÿäž‹I‰u¨–ŸØ0kAÍbÌ ø*}[Ô¤Ös3]O/ËR+j¶XLüF:t¨¡QÜÔ
jfo¿‰0G^âjœ“”ÆJ¼ˆ´¦ è"ù"‡|‘ŸÂ[–̽l]¢{={Ñm©X MºLrü­'Û»-™ò¬ò¹H^·\F"†Å´`3±Š"w;ƒÉ.;?³ôJçE·qqfB¨þüªµ´ß¹ PÈ]N^y7ðªXƒ®kgFeð]†¼µÐ)Ø’¨ÿ
ŽÁƒ·5#F”4v™9À¨«ªj-…¾sG£¨ê÷tA[o"oMÖ^s¿è—Úd­Í¾ÎQ+”Ô5LÌ<`_Ü3ëÙz”b•;îx£³Ýß`UïÌ¿üžr
T‡m<ô(ò̧¸E(O„>à@åŒáNñîf1KÜ:ˆËñ“„ÇÞbïÛÌÿ¾kèïÀÜ™ˆÍþVéè¹çÕzŸ¯Q{~§å©–$×
YD6È6 ·êwi çø7XS_£(ß”!£å¶Ã É1qÜZΧ>¸û,MM\çDFóÔ)ð^±¿àŸñ0ºU¥»Ä+Ú:vj¹ÍCÒZ0÷~¨Ø¨”…¥¦ä¥"d8‘Š Õº´ÃsŠ)MÅ*‡%©›÷ z¡Y£ÉÒ-iÁ¬Î– ¸[z²¯Ø`lQ0Wi•½£¬E3¼ôXtª<;¤'ûÙ—)x-E‚²½ü ¡}glõ«ÇË4“š
ö$¥®ÃA2±­Üw1§vLGÛ5ð·0wš}†yOTµÑÅÞ‰©˜«‰LdâÍJ <ó´—Ú¨¼¶ì7oå—êÏ©öÔ^šéXNhz®Ÿ—©
yɯgêž«÷)h†«3/ò¢Håz†Aòð²'í€À0ŠçñvN1jÄzîÈo°b/hÏ9»_Øöéà$šWÉw§Xi]Bïr˜„<§ÝŒÊ‘Þô‰k2ÇEõ ;c&öäz4r­Ø%ߺQùgêýìða¹4A½óFÕô¦YaÒXMо¤ú z½S7QÃgû­Ç’s¬»f,C
=5œpZOe¡ôæË^ åÊ`³i²C­Qï_$eò3
u› F÷ùä~¸P–¡í[[„V°ýîíýPx.Óæ»¡—ÒÀâ….LG¥hÈ`håÓÃm€[·Ëß…a˜}âíïòƒsóÁŸþzˆ)íH®qÉb¹Nnþ
2rJÐù㊠Áª‰ š7Y#âJœüÅã刡áíÍo½œý¬6ûTøÙ—Sw¦Ý çm2|žj· á…ëŤfªpÂ÷àKÉ6óÌ=¶¨Lzßã|úêœ@Ѥ¾ªn
”í¿±( ®˜”nÝÛþ’Pò C,¸äNù?¤ˆm³86t%§º® fðÒ ÇÒ*‰Xj8¤®GDn ~Xv8«,—™ã®´pÑ8·rãpÐhmnÛ’\s¹wü,Ÿ Ô bç–zöÓïä¡– u{]½§çÛæþëÊ2´uµNr ÓJë(»rkû/Þøî'Ž´ûmiÌaÙ… /K‰ #Ü´Ø“ÆùÓ—Ê»
±dQQãæ&»ëí|ånóv®Zˆ«'·¬Ú¾bîo2¡óê¬Q3šSœ×õT¢½amñÿôè,‰‡6WfãEJ3ÆwŽäS¿Ú.fŽŽðÄ™Ñ/ ñ)2·mÛh©@•Äpxãl$žÀ'™ƒösOQ= Û#ÞÀ³ñ žc1óB”÷ù+Ù,†&Q,JÙk±aűE^Î9žùn”XTÀ–,Ö9¹<J`&ô$œ Z‘²óÇc$A˜b¢®1z¥¾n¼K‡Œ
Î`Ù[Žì­ 
DYp‡…Y2ÊÉ¡çñkÞ¶ Y‘ó½àg¢Éœ»q–=|Fý ì7Eè,¸[£t÷¦Hß©%c,ç=àF½˜ßpøØ‘Å‹vIQ
“ÿu=§¡©OI}¸õêþ„†üƒ¸˜žEÉ…‚¤­ó‰ï”RÈ;õ~{ÂÜâ´E.xŠ#”¶Iܨ†6–¬¹Â²¬VŽ/œÛeº­$vp &orxC·ôܽ{bÈ Ì™Œ*DÏ vö5·0¹­]Yö±>>†ò#«ÊF¾lO:îtóäÝ`p¶²< é3Öê@E¤NÒSöXÀby ž/¢GùJ<P+¢°)Ž!íˆ(z×^²2Æx—bSÅlUvÏ•¬Õƒÿ(…ó°x[Yô=“îK(0
y`³¿ùsÉK¼±ëûPúHöÚœ˜‰(X a
»ua'D¢ˆºéÿÚ‘)Ý0Ôbj+ާWß•XÁk]„Ó
@ökU
nM€èè)"*šëË2芕}¸ ?zTN2™žùègPÇ.E7U?}ú®¤”¾žniÁgLKˆ™áieÒC˜2n%ƒ•¡!¢}´VõÚ[(K³’õI믨¤UÄ,/¼Ö"Ð+uæW‘Œ¨l£ñ+À®ã|YÒ7ц
á41géá<–³Z‘m0çS¡¦šz¹ü…»Q»e§oò¦z×ö×_dÝÃöñiïçJl5Rñ¥Îx„ÌÕÙ¡ú~^±0RÉ‘n.l×hÛ/óWüvPB{ÃT3É:Ãnl}v¦ôó3„}ûÛZêtÑUW÷Ú{†¨ÃW†¥z§öeìýذ^Uß)n?f¯˜ãæ}W4>³£½@O?†Z‘“ñ¤ˆLù9ß±¬úàªÛ¿NX· h‹•§ X™êJgÜéì_)H¯û`ÉUž²¢‘JÔDL€Ö2úŒ 0$ŽwûR?‘8øâ`µ½Ê®§Y+÷´Õ€‘^/Mê°*#%ÏËU¬!³­»òWZ@±#×ô‰Ûî;)iÔñ…CÄ! !’{
=ÕŠFPÄËKt}¬8š¼%èª
×Ùr¦Ðå$#ìâh7Þ»17>w¢nQeôUhyš‚tÙÒØ¼ÆÏݪSéCô,
ÑO=.–ìc¯è”f¡‚¢(ŒHÿ¤ÈOÓ/XÍÁíqDµ¨CŒ³Äà¼vç¥&s>”üFˆ”*I_eMªbÃ0`„«íÜåȽ÷õÜçXáÆ¨úë7¬Sß…Ìè–Boá2È?—¤Ù'BŽU ã¼7©y´£Κa¡Ü`tbT AW-Ø"xéŸaAÚðhIGkNxþdh–šð˜êE°Êa°²üIÇQrdËð·åÁnSÙìï]® gÆyÜíýúm[b¨°þð~z,[œÉKGNFbþýeµ£1ÿ±Ô߯®ßUx[
z?B”Œv9ö…½wÿâ'©ßB“ìŽ-JHŠ]³1Ó•ÝØnªLÆZ‡M­M>¡_ÛC|M
[æ\W
]<^|
^~_b1fÃhŠkAt¸t 6u}ç}:(~ˆ(‡k?ŽºØ˜¿F"žu!£ã¦/§ç§3¨ë¨6©Vª¡ªÞª*
«¬Ĭ ­K­­ñ ­D¯
¯Ã°±²³¸´Ô´ò´HµµAÛ ¹/ »:¼‡ ¼h ½, ¿P
À$ÂoÂÊÂÃÎà Ä{ÄÍÄèÄMÅÅýÅ?ÆÆÇ
Æ(ÈsÈØÈ$ÉÉÔÉ9ÊÊéÊ)ÌFÌÌìÌMÍšÍüÍGÎÎáÎíÐ\
ÑÒ\ ÔJ%Ù- ÞBáAãfåàæþèLéçêHëÁëìoìêìBí¼íîÒî*ïèï?ðð@ñšñµñÆñ×ñóñ)ò@òœò#ó?ó×óôó¤ôÂôpõõÝõøõöö÷£÷¿÷ø/øßøÈùÝùú7úSú­úÉúæúû°ûÊû
ü¤üý}ý½ý3þWþþÙþÿWÿ˜ÿØÿöÿ8øn<<
-
T

YvÇE
(Z(Æ+Ñ/4ý45355"88¥8÷89ÆV9>G³GÎGáGHKPKK²KÍKÞKûK3LL5MMœMçMNUNrN"O3OHO¦O×O/PP PÁPÜPQœQR~RëR#S?S\S§SÃSàSýSTRTnTÃT U{UÌUVVüVhWÅWXhXÀXYkYÁYZ{Z¯Z[u[æ[\n]ö]]^Ä^9_ï_`4``¨`ï` aAaVaÃa?bbGc%ddìd}eéefglgg¦gìg)hkh°hyijjäj$kzkêl@m[mxmmóm>n{no
pzpÊpqrurÙrGs3tst@uøu,v¬vwQw½wxsx@yyüyz®z{²{Þ{ú{|=|]|­|Í|}!}Î}î}X~m~Ž~ö~"=]±_Ž©Ãã7å,LûƒƒŸƒºƒ=ó$f{œ#Ñ)Fb¯gˆˆÚˆ-h»0 56¸69/9:çCˆMh±¯ðùìý?H
9
¯4#589iGÚGvKÙKêKŒMóMaN.O?OÍO­PS%
TZÏ]Á_û`MabgdCeTgÙghLhk+m£mámnVt>zäzØ{
|9|N|¾|}ß}i~~~N¢Ô( =Zƒ wŒ        
 
   
                             
                           ' '     
                 '    *     /5”6¶67]7=89-9:
<¯<²=¾>?Ã?šCLDyEúEIFºF GYGÁG$HHNMòM0NöNPëQèRtSS¶SøSXT·TæT5UMU¿UHV_VŠVÑV1WW Z^ZwZÀ\^S^]_}a•e+h©jzrÌ{À…½“µ¦ª¹ªܬ¯–° ±æ±½´Ù´³¹»¼Ÿ¾ÀóÁ‡ÂÒÄűÅúÇ‹ÈìɜʲËÍΣÐÔùØÜݲà ã–æ«è´ê‡ì­ðžñ
òêòœó ôõµõáõÌöÖ÷ ùÌùáù
ú±úýú´ûáû»ü”ýêý¤þðþ0ÿnÿ¯ÿ
Oªê 
=ÙX'+•/ß34×4ÿ4J5˜7¼8+9$GEGGµGùG=H?KVK†K¶KLJLLLM³MN‰N_O¬OÛO3P‰PÅPóP,Q³Q•RñR'SCS`S«SÇSäSTVT…TÚT7UãU4VWÜW-X€XØX.YƒYÇZ*[[\#\t]
^t^Û^?_ó_`8``¬`"amaVbb^c¨defºfgpgg‰hÇhi™j;k€kðlDm_mUnn©o$p3qðr^sŠtYuvCvèv¥wXxŠxzbz™z{¸{â{s|ã|7}~¤~ü~&sÇe€’€­€ù€Mëb‚ƒ‡ƒ£ƒS„ù„(…Q…²…9†׆-‡J‡Ƈ™ˆF‰Ô‰Ø([6a6d6¬6¼6ð6ý6A788!8ê8÷89#9¤9¨9¬9°9´9¸9¼9Â9É9Ð9ƒ;‰;;;˜;ž;¤;ª;°;´;»;À;Ä;È;Ì;Ò;Ø;Þ;â;æ;ê;ñ;)<-<A=G=T=a=D>J>W>d>Í>%??š?§?b@ôCD½EßE.F}FŸFîF=G˜G¥GûGHhHuHÌHÙHÄMN=NOÓPÙP,R2RS_SlSƒSšSÜS6T<TTœTÜT U-UEU^UmUU£UâU3V@VWVnVµVWWoWuWµWIZVZoZˆZÖZãZ"[/[W[d[á\E]R]7^w^y_bb(f,f±h¾hskwk„k+t/t<t³tu€}„}}â}3~m‡t‡–•š•§•´•ΘÒ˜µ›¹›ݦ§á§ ¨å¨ªœªت«²¬¿¬­‹­×­Þ­ë­¯½°ˆ±²³¦´³´Ï´ì´‡µÕ¹¼#¿'¿ÂÄÂÃÃÈÃÄÄ»ÄÈÄãĆœŸůµÆÂÆÒÈÉɃÉÂÉÏÉÊãÊ
ÌÌÌÚÌç͔̇ÍêÍ÷ÍÎÇÎÎÎÛÎçÐÒÚæøèáê»ëûëìäì¶íîîÌîïâïñ–ñ±ñÂñÓñïñ—òóÓóïó ô½ôÙõôõö÷Ÿ÷»÷
øÛø¤ù©ù®ù³ù¶ù»ù¿ùÄùÙùôùú©úÅúáú’û¬ûÆûü’üŸüÿü ý¹ýˆþÔþÿRÿ“ÿÔÿñÿ3Žòj$).38
)
O
îûXerÂù'(V(Â+Ì/g4t44¾4ù45/558…8¡8ó89À9:GtG®GÈGÛG H_JgJkJrJxJJƒJŠJJ—JJ¡J§J®J²J¸J¾JÂJÈJÎJÕJÙJßJåJéJïJõJùJÿJKK KKLK}KŸK®KÉKÚK÷K.LL0M|M˜MÎMãMÿMQNmNO/OCO¢OÓO+P€PœP½PØPQ—QRyRçRS:SWS£S¿SÛSøSTMTiT¾TUwUÇUVV÷VdWÀWXcXºXYfY¼YZvZ©Z [o[â[\?]F]J]N]R]V]Z]^]b]f]j]å]ò]X^¿^4_Ë_Ñ_Þ_ë_
`0`‰`¥`ë`a=aQa¾a!b.b;bzb>cBcd dsd€ddçdVe\eleyeäefÿfg gg[ghg„g¡gÚgçgh%hYhfh«hgitijj}jàjk kvk¯l¶lºlÀlÄlÈlÎlÒlÖlÚlÞlâlæl/m<mWmsm¤m±mâmïm,n9nunopvpÆpqr
rqrÔrAs"t/tbtotÅtÉtÑtÙtÝtátétñtùtu uuuu&u,u4u<uÔuØuÜuàuæuìuóu'v¨vývMw¹w xnx"y/y<yŒyÜyàyèyðyøyIz†z“z«zðzýz®{Ú{õ{ |:|Z|ª|Ê|þ|}Ë}ë}U~j~~ò~:ZŽ®[€Š€¥€À€à€4á
)‚I‚ö‚ƒ›ƒ·ƒ-„:„ï„:…c…x…™…͆$‡A‡^‡ž‡«‡®ˆÔˆ&‰b‰´‰€Š‡ŠŽŠ•ŠœŠ£ŠªŠ²ŠºŠÁŠÉŠÑŠÙŠáŠéŠñŠùŠÿŠ%‹+‹1‹7‹=‹E‹M‹S‹Y‹_‹e‹k‹q‹w‹…‹•‹›‹¡‹§‹­‹³‹¹‹¿‹Ç‹Í‹Õ‹Ý‹ã‹ë‹ó‹ù‹Œ ŒŒŒŒ„ŒŠŒŒ—ŒžŒ¤Œ«Œ²Œ¸Œ¾ŒÄŒÊŒÐŒÖŒÝŒãŒéŒïŒõŒûŒ!'-4;AGNU\biov|ˆŽ¡¨®´ºÀÆÌÒØÞæìòøÿŽ ŽŽŽŽŽ†ŽŽ“ŽšŽ Ž§Ž­Ž³Ž¹Ž¿ŽÅŽËŽÑŽ׎ÝŽãŽéŽïŽõŽûŽ
%+17=CIOU^66²6ò67F7 88&8ì8ù8
9)9ª9®9²9¶9º9À9Æ9Í9ý9†;Œ;•;;¡;§;­;·;½;Æ;Ê;Ð;Ö;Ü;ä;è;ï;ö;«<E=I=V=®=H>L>Y>º>??œ?¬?C5DbEãE2F£FòFBGšGªGýG
HjHzHÎHJMîM,NßN{P×PÔQ0RÑRaSpS‡SŸSáS:TATšT TâT"U1UIU˜U¨U5VDV[VsVºVWWsWyWZKZZZsZØZ$[Y[©\G]ü]<^F_fab~e*fh³hjukykcr-t1t´{}†}¨…r‡v‡¥“˜•œ•©•˜Иöš·›}¦§û©‘ª¡ª«´¬ĬÜ­à­÷®±α¨´¸´Ô´üµ›¹êºù»‡¾%¿ú¿ÛÁÃÃÄ Ä½ÄÍÄèĈřŷÆâÇÉÄÉÔɄʭËÌÌÜÌì̉ÍìÍüÍÌÎÐ΋ÐûÓáØÄÝšàôâå“èœêýëîîï©ðšñóñÓò…óôóõ±õÝõµö¿÷ù§ù¬ù±ù¸ù½ùÂùÈùÝù ú­úæú°ûÊû
ü”ü¤üýýæýþÙþÿWÿ˜ÿöÿ8ø"',16æ 
&ðýÂZgA'û't+~/È3i4v4‡4Â4ý4357¥89 G@GxG³GáG9HdJnJuJ|J†JJ”JžJ¤J«JµJ»JÅJËJÒJÜJâJìJòJüJKK KK;KRKK²KûK3L†L5MœMNrNHO¨O×O/P…PÁPÜPQœQ~RíR#S?S\S§SÃSàSýSRTnTÃT UÌUVüVÅWXhXÀXYkY¯Z[u[\ \C]L]P]T]\]`]d]h]p]ç]ö]]^Ä^;_Ï_Ó_à_ï_`4``¨` aVa#b0b?bb@cGcdudddZe^ene}eée·fg ggg]glg‰gÜgh[hrh°hiiyijjk$k|k³l½lÂlÆlÌlÔlØlÜlàlälìl1m@m[m¦mäm.n>n{no
pqrÙrGs$tdtstÍtÕtåtítõtýtu
uu"u0u8uUuÚuÞuäuêuñuøu,vÑvŽwAxsx$y1yäyìyôyþyMzˆz—zòz{´{Þ{]|Í|!}~Ž~ø~"]±a€Ž€©€ã€7çL‚ý‚ƒƒŸƒ"„/„=„õ„&…<…œ…#†Ó†)‡F‡ ‡¯‡€ˆ-‰»‰„Š‹Š’Š™Š Š§Š¯Š·Š¾ŠÆŠΊÖŠÞŠæŠîŠöŠüŠ "‹(‹.4:BJP‹V‹\‹b‹h‹n‹t‹|‹‚‹Š‹’‹˜‹ž‹¤‹ª‹°‹¶‹¼‹Ä‹Ê‹Ò‹Ú‹à‹è‹ð‹ö‹þ‹Œ ŒŒŒŒ‡ŒŒ”Œ›Œ¡Œ¨Œ¯ŒµŒ»ŒÁŒÇŒÍŒÓŒÚŒàŒæŒìŒòŒøŒþŒ $*18>DKRY_flsy˜ž¥«±·½ÃÉÏÕÛãéïõüŽ ŽŽŽŽƒŽŠŽŽ—ŽŽ¤ŽªŽ°Ž¶Ž¼ŽÂŽÈŽÎŽÔŽÚŽàŽæŽìŽòŽøŽþŽ
"(.4:@FLRY°<CMDzE¾“Õ6ú6-7¢788…8ô89<ä<Q=^=á=T>a>Ç>?X?—?¤?A@¶C|DªEÊEFnFŠFßF.GvG¢GàGHEHrH°HÖHaMûM9N
O¹PRûR(SiS}S”SÊST~TÊTüT*U?UWUhU†U UÔUüU=VQVhV£V÷VWW£WZSZhZZ¢ZàZýZ,[H[a[Ó\ý\O](^h^o_øafgh»h7kkàs9t«tüt3}Ž}Ú}+~¦†~‡Ð:•¤•±•¥˜Œ›žʦú¦ŧþ§ɨ©™ª˪õª™¬¼¬ð¬ ­µ­è­ª°…±ü±°´È´ä´ µǹ»
¿ ¯ÂáÂ
ìÃåÃÄ’ÄÅÄÜÄÅãÅÆœÆ¿ÆÈ½ÈïÈÉ ÉÌÉÊÎÊ×Ë̸Ìä̑ͽÍôÍ¶ÎØÎÌÐÑ Þ¿æÖèÉê ë™ëäëìÂì
í•íßí î«îõîÁï ð©ñ½ñÎñßñòòóÂóßó‡ô¬ô¼õìõöñöŽ÷«÷ü÷øÂøÕùêùþùú½úÑúžû¿ûôûœüÞü ý¨ý€þºþÿDÿ‚ÿÃÿàÿ!xÕ?ñ !
5
ø"boºÖ'(N(±+»/(4q4~4”4í4 55p5
8f88â8ÿ8§95GNG¢GÁGÖGHHK^KK©KÂKÕKæK$LpLMcMˆMÄMÛMïM@N]NO*O;OˆO´OçO?P”P¨PÑPQvQìQKRÎRùR3SOSkS·SÓSðS
T!TbT¬T UhU¿U VnVÕVKW¬WXTX¨XYVY¬YZbZƒZùZ\[Æ[™]ï]@^§^_u_Û_è_ÿ_!`D``¸`÷`3aIa¥aéa+b8bjbcýcKd}dŠdÐdefeveeuf3geg|g™g½gägh"h@hchœhiqiÌijYjÌjûjkbk m9mPmkmm®mÍmìm
n6nhn]oäo_p¾pqq
rUr¹r*s«s,tJtlt±t"vLvövEw²wxgx½x,y9y„yÔyzwzz¤zÊzúz”{À{î{|5|J|š|º|ô|}´}Û}E~e~z~Û~2JžD€n€ž€¹€Ѐ
$Êó!‚9‚ß‚“ƒ¯ƒåƒ*„7„Ò„3…\…s…ˆ…é…¶†ï†!‡9‡V‡¨‡©ˆʈO‰¬‰݉Â6ô6%7|7 88_8î8û8<¹<K=X=¶=N>[>¿>?,??ž?5@¤CpDžEÄEFbF„FÓF"GcGœGÍGÿG2HlHHÐHOMóM1NO¦PÿQóRScSuSŒSÂS TkTÂTéT$U7UOUbUsUšUÌUéU7VIV`VVäVDWW ZMZ`ZyZZÚZêZ&[5[[[Ë\è\I]^_^f_ëafKhµhk{kÄs3tTtËt}ˆ}©}ú}|†x‡¤ž•«•—˜~›žÁ¦å¦ §·§é§»¨í¨“ªªàª«„¬¶¬ç¬ ­“­â­¯¡°
±±ó±ª´¿´Û´ô´¾¹
»¼ü¾Â¡ÂÌÂÞÃÐÃÄ¿ÄÓÄŠÅÕÅÿŇƹÆÈ¯ÈÚÈɋɯÉÊÀʵËÌ—ÌÞÌ͋͜ÍîÍ Î”ÎÒξÐïÐÙþÝáã±æÈèéÀêéê‹ëÃëÿëì´ììì‡í¾íîîÔîï³ïêï ñ·ñÈñÙñò„òóµóÙó¦ô¶õãõúõäö÷¥÷ï÷øµøÏùäùøùú´úËú˜û¶ûîû–üÉüýŸý±þúþ;ÿyÿºÿÚÿkÈ2ë 
/
[òÿ÷\iº'ý'(¤+®/ý3k4x4Ž4ä455c58588Õ8ù8š9/GHG™G¸GÐGüGBKXK‰K£K¹KÏKàKLcL
MZMM»MÒMéM3NWNøN$O5O{O®OÞO6PP¢PÈPýPiQßQRÁRóR*SFSbS®SÊSçSTTYTŸTÿT[UŽUüUaV¤V>W{WöWGXšXòXHYžYÔY1Z}ZëZN[¸[v]é]3^š^_D_Õ_â_ö_`;`”`¯`ñ`*aCa˜aÅa%b2babcðc'dwd„dÃdîd`epeehfg_gsgg¨gÞgîgh+h]h“hòhki°ij(j¿jæjkUkôl3mGmbmzm¨m¸mæmõm0n_nPo×oRppÝpeqr$rˆrss&t5tft¤tvFvðvw¬wÐwax™x&y3ySy£yznzŠzzµzôz†{º{å{|/|D|Œ|´|ë|}¦}Õ}7~_~t~Í~þ~)D{˜6€h€•€°€Ê€¼í3‚Ñ‚ƒŠƒ¦ƒÁƒ$„1„Ä„û„*…S…m…‚…Û…
¨†Ú†0‡M‡j‡¢‡£ˆ²ˆíˆI‰{‰׉ç637ì7Í8 <=*>Ë>#??E@€D®EÌE#FrFŒFãF2GGòGWHÂHÿMO½PRÿR2SS˜SÎS"TTÎTUCU[UjUUØUVUVlV§VûV[W§W0ZlZ…ZÓZ[R[×\]-^m^v_ýafhLkös°tuJ}ß}0~2‡Žc•ª˜‘›žϦ§ʧ¨Ψ©ªЪ «¤¬õ¬É­¯°²ˆ´Í´é´µ̹»¿Â´Âõ±ÃĦÄáÄèÅÆ§ÆÈÂÈÉ´ÉÓÊòËÌÌ„ÍÑÍÁÎÑЂÒÞÄæÛèÎêëžëøëÇìšíóí°î ïÆïð®ñ¿ñÐñáñ ò’òóÇóáóŒô®ô¾õñõööö“÷­÷øøÇø×ùìùúúÂúÓú ûÄûöû‚üöü­ý…þ¿þÿIÿ‡ÿÈÿâÿ&}ÚDó &
7
ÔG¿ã'S(¶+À/M44ô45!5u58k8“8ç89¬97GPG©GÆGØGHJK`K—K«KÇK×KèK)LuLMhMŠMÉMàMñMEN_N
O,O=OO¶OìODP™PªPÖP Q{QñQPRÓRûR8STSpS¼SØSõST#TgT±TUmUÄUVsVÚVPW±WXYX­XY[Y±Y
ZgZ…ZþZa[Ë[E^¬^_ª_`&`I`¢`½`ù`8aKaªabobcdedÕdAeezf=ggžg×ghJh£hLiéi^jÑjkgkmUmpm¡mßmnmnboéodpÃpqÔqZr¾r/sþsTt¶t$vNvøvJw´wxixy‰yÙy$z~z©zâz™{Â{ó{|7|L|Ÿ|¼|ù|}¹}Ý}J~g~|~à~7L I€p€£€¾€Ò€&Ïõ&;‚䂘ƒ´ƒׄ8…a…u…Š…î…»†ù†>‡[‡«ˆψ#‰Q‰±‰߉7_7?8<³=Ä?VDEûEJF»F
G[GÃG&HH÷NPìQéR·SùSYT¸TèTÁUVÒV2WW
ZÁ\^U^^_~ae,hªj{rÍ{Á]ŒÇ(˜I£¦H§L¨ªºªT¬Ý¬d­¯°ç±`³^´aµ´¹»¼?½ ¾ÀôÁˆÂ/Ã9ÄŲÅXÆûÇŒÈ=ÉíÉʳËÍÎ`ΤÐkÒÔúØÝݳà
ã3忬èµêaëˆì[í-îCïXðvñ ò}òëòó ôõõGöÍö_÷×÷Gøúþúäû#ü¾ü+ýýpþ¦þòþ2ÿpÿ±ÿQ¬ë >ÚY'Œ+/à3Ž4Ú4K57½8,9%GHGGXKLLLŸLOM´MNŠNbO®OõP.QµQRóRTÜT9UåU6VWÞW/XXÚX0YYÉZ,[[^v^Ý^A_#aoaXb˜b`c©dfghÉhiœj<kólWnn«o'p6qòr`stvév¦wYxxzdz{º{t|ä|8}~¥~þ~tÈhúNícƒTûS³:ÙÇœˆ7b7B8<Ç?WD…EûEJF»F
G\GÄG'H”HøN•PîQêR¸SûS[T¹TÂUŒVÔV4WWÂ\^V^__a—e.h¬j}rÏ{Ä…Ê“·¦ª»ªÞ¬¯˜°é±µ¹»¼¡¾ÀõÁ‰ÂųÅüÇÈîÉžÊÍΦÐÔüØßݵàã™æ®è·êŠì òëòó ôõÍö×÷þúäû¿ü–ý¦þòþ2ÿpÿ±ÿQ¬@ÜZ'Œ+/â3±4Ú4K5™7½8,9%GkGGLLLŸLOM´MNŠNbOõP.QµQ—R‡TÜT9UåU6VWÞW/XXÚX0Y†YÉZ,[[^x^ß^#aoaZbšbbc«dfŒhËh•ij=kXnn¬o(p8qórbsŒtvév¦wYxx@zez{t|ä|8}~¥~tÈú€Nc‚V„³…:†ȇœˆ7J7*8ú;°?9DfEçE6F§FöFFG®GH~HãNPØQÕR£SåSET¤T¬UwV¾VW}W­\^@^J_jaehjgrAt¸t¹{}ç}­…ª“˜ûš¢¦ª¦ªɬü®ƒ°Ó± ¹ïºþ»Œ¾ÿ¿àÁÃíÄžÅçÇÙɉÊñÌÎÐÔæØÉÝŸàùâåƒæ˜è¡êî÷ñ×ò‰óøóõ¹öÃ÷êúÎûü¨üýý‘þÝþÿ[ÿœÿúÿ<ü*ÆvE'
(x+/Ì3Ä475…7"8©89GzGæGÿK7LŠL9M MNvNLOàPQ QRRrTÇT$U{UÐU!VVWhWÉWXmXÅXYpYÁYZ´Z[z[ú]a^È^aZaCbƒbKc•díevh´h}ij†j(kBnnopzpÊp qrurÝrKswtüu0vÕvww½wExwx@yyOz{`|Ð|$} ~~`´æ€:O‚@„>…Ÿ…&†³‡†ˆÚˆ3‰h‰Á‰^!¦!"("1"Š"È"Ò"Ü"æ"ð"ú"?#³#À#>$M$Z$d$n$x$$Œ$™$¦$³$À$Í$Ú$!%+%8%G%U%_%m%w%%%•%Ê%Ô%Þ%è%ò%&
&>&H&T''Á'Ë'(F(P(Z(¯(¹(ý)**…*É*Ô*"+,+7+ !•&Ê&Ô&Þ&è&ò&ü&''J'd(¥(8)m)·)å)ó)Þ*ü68 8ö89S=`=V>c>™?¦?¤GHtHØHkS,U¢U?VUZâZ.[c[Q]½hƒk;t}€‡¦•³•›ª¾¬ê­€¯‡±²´€¼ÃÄÇÄ’ÅÁÆÉÎÉ ÌæÌ“ÍöÍÚÎì
îžü ýúdq(s4€4ñ]Ý_ê_-b:bdŒdhexeggæg$hehsijk;m°mîm8n r.tnt.y;y’züz,„9„#‡ª‡á0’2q3€6Ý6h7É7'8„9}=Œ>í?¹@BID-E¿HÛJ£MjP'S¥ScTfUÁVÿWØXðY5[ˆ_K`€adHetfÙkånZq×r>t¥u~vxß{ÿ}xj€&«G‚Ü‚ŒƒÚ„Ä…ˆÊˆ”‰…‹ŽŒba]’`“á“›”¨•,–°–s—˜ú˜n™_›îŸÑ¤þ©«”­’¯”±
\XeIÛg î t!q$M% .ÁíÁÃþÄÚÖšðÆòØÛÐ 0Š?[HV̳'Q'®´&wrE›³¯³âÕ÷ÕÖ2o3~6Û6f7Ç7%89=Š>ˆ?·@BGDEYHÙJ¡MhP%S£SaTdUVýWÖXîY3[†_=`zadBenf×kãnXqÕr<t
Ë´ËÏÓÏ¿ÐàÕíÙÝÞçæ¬ÖZÍVcuÙe ì r!$A%®&
0ëÁÃöÃ”ÆØÖ˜ðÄò
pGà0‘2p36Ü6g7È7&8ƒ9=>‰?ì?¸@€BHDEZH¾HÚJ¢MiP&S¤SbTeUÀVþW×XïY4[‡_J`aŒdGesfØkänYqÖr=t¤u}vxÞ{þ}wi€%ªF‚Û‚‹ƒÙ„Ã…Ž‡ˆÉˆ“‰„‹Œa`‘\’_“à“š”§•+–¯–r—˜ù˜m™^›íŸÐ¤ý©«“­‘¯“±š³Õ»½ÁýÄ ËµËÏ×ÏÀÐP'áÕ'îÙÝÞèæ­!×[
WdvÚf í s!$L%³&' 0ìÁÃ÷ÕÆÙÖ™ðÅò
ÚqÏH17t_ò4§G¡h|zå?&E·H¨³¼³ïÕÖØ
t¾t'výv¹wnxy¡{¤|þ|¾}O~å~ŽNÔéâóÀQˆ®ˆ£´Öõ
»4zKXgHŠvT‰ŠÌCmM
…45‰8÷8>GÎG7HPKÍKÞK€MçMUN"O3O¦O PëRT{Z
\\n]9_ï`AaÃa%dìdµfg¦gìg)häjzkêlxm¶móm3tSuüy³z²{þ{-|B|²|}Ó}]~r~ö~B_€È€å1‚û‚¿ƒó„$…k…€…цh‡:>U?Z—´ÌñÍõ
¥4_GoKÆO