Ë
    7bîhùT  ã                   óÌ  — d dl mZmZmZmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ 	 d dlZdZ  G d„ deejD                  «      Z# G d„ deejD                  «      Z$ G d„ deejD                  «      Z% G d„ deejD                  «      Z& G d„ deeeejD                  «      Z' G d„ de(«      Z) G d„ dee)ejD                  «      Z* G d „ d!ee)ejD                  «      Z+ G d"„ d#eejD                  «      Z, G d$„ d%eejD                  «      Z- G d&„ d'eejD                  «      Z. G d(„ d)eejD                  «      Z/e r G d*„ d+eejD                  «      Z0 G d,„ d-e$«      Z1 G d.„ d/e%«      Z2 G d0„ d1e&«      Z3 G d2„ d3e*«      Z4 G d4„ d5e+«      Z5 G d6„ d7e&«      Z6 G d8„ d9e&«      Z7 G d:„ d;eejD                  «      Z8 G d<„ d=eejD                  «      Z9 G d>„ d?eejD                  «      Z: G d@„ dAeejD                  «      Z;ejx                   G dB„ dCejD                  «      «       Z=ejx                   G dD„ dEejD                  «      «       Z>h dF£Z?h dG£Z@dH„ ZAdI„ ZBdJ„ ZCdK„ ZDdL„ ZE G dM„ dNejD                  «      ZFdO„ ZGeHdPk(  r ej’                  «        yy# e!$ r dZ Y ŒXw xY w)Qé    )ÚIMPORT_MAPPINGÚREVERSE_IMPORT_MAPPINGÚNAME_MAPPINGÚREVERSE_NAME_MAPPINGN)Úsupport)Úimport_helper)ÚAbstractHookTests)ÚAbstractUnpickleTests)ÚAbstractPicklingErrorTests)ÚAbstractPickleTests)ÚAbstractPickleModuleTests)ÚAbstractPersistentPicklerTests)Ú&AbstractIdentityPersistentPicklerTests)Ú#AbstractPicklerUnpicklerObjectTests)ÚAbstractDispatchTableTests)ÚAbstractCustomPicklerClass)ÚBigmemPickleTestsTFc                   óÌ   — e Zd Z eej
                  «      Z eej                  «      Z eej                  «      Z
 eej                  «      Zej                  Zej                  Zy)ÚPyPickleTestsN)Ú__name__Ú
__module__Ú__qualname__ÚstaticmethodÚpickleÚ_dumpÚdumpÚ_dumpsÚdumpsÚ_loadÚloadÚ_loadsÚloadsÚ_PicklerÚPicklerÚ
_UnpicklerÚ	Unpickler© ó    ú:/opt/python-3.12.12/usr/lib/python3.12/test/test_pickle.pyr   r   $   sN   „ Ù˜Ÿ™Ó%€DÙ˜Ÿ™Ó'€EÙ˜Ÿ™Ó%€DÙ˜Ÿ™Ó'€EØo‰o€GØ×!Ñ!Ir(   r   c                   ój   — e Zd Zej                  ZefZej                  e	e
eej                  eefZd„ Zy)ÚPyUnpicklerTestsc                 ór   — t        j                  |«      } | j                  |fi |¤Ž}|j                  «       S ©N©ÚioÚBytesIOÚ	unpicklerr    ©ÚselfÚbufÚkwdsÚfÚus        r)   r"   zPyUnpicklerTests.loads5   ó/   € ÜJ‰Js‹OˆØˆDN‰N˜1Ñ% Ñ%ˆØv‰v‹xˆr(   N)r   r   r   r   r%   r1   Ú
IndexErrorÚbad_stack_errorsÚUnpicklingErrorÚEOFErrorÚAttributeErrorÚ
ValueErrorÚstructÚerrorÚImportErrorÚtruncated_errorsr"   r'   r(   r)   r+   r+   -   s=   „ à×!Ñ!€IØ"}ÐØ×.Ñ.°Ø&¨
ØŸ™ j°+ð?Ðór(   r+   c                   ó,   — e Zd Zej                  Zdd„Zy)ÚPyPicklingErrorTestsNc                 óÈ   — t        j                  «       } | j                  ||fi |¤Ž}|j                  |«       |j	                  d«       t        |j                  «       «      S ©Nr   ©r/   r0   Úpicklerr   ÚseekÚbytesÚread©r3   ÚargÚprotoÚkwargsr6   Úps         r)   r   zPyPicklingErrorTests.dumps?   óJ   € ÜJ‰J‹LˆØˆDL‰L˜˜EÑ, VÑ,ˆØ	‰ˆsŒØ	‰ˆqŒ	ÜQ—V‘V“X‹Ðr(   r-   )r   r   r   r   r#   rH   r   r'   r(   r)   rD   rD   ;   s   „ ào‰o€Gôr(   rD   c                   óJ   — e Zd Zej                  Zej                  Zdd„Zd„ Z	y)ÚPyPicklerTestsNc                 óÈ   — t        j                  «       } | j                  ||fi |¤Ž}|j                  |«       |j	                  d«       t        |j                  «       «      S rF   rG   rL   s         r)   r   zPyPicklerTests.dumpsL   rQ   r(   c                 ór   — t        j                  |«      } | j                  |fi |¤Ž}|j                  «       S r-   r.   r2   s        r)   r"   zPyPicklerTests.loadsS   r8   r(   r-   )
r   r   r   r   r#   rH   r%   r1   r   r"   r'   r(   r)   rS   rS   G   s    „ ào‰o€GØ×!Ñ!€Ióór(   rS   c                   ó|   — e Zd Zej                  efZej                  eee	e
j                  eefZdd„Zd„ ZdZdZdZy)ÚInMemoryPickleTestsNc                 ó0   — t        j                  ||fi |¤ŽS r-   )r   r   )r3   rM   ÚprotocolrO   s       r)   r   zInMemoryPickleTests.dumpsa   s   € Ü|‰|˜C Ñ4¨VÑ4Ð4r(   c                 ó.   — t        j                  |fi |¤ŽS r-   )r   r"   )r3   r4   r5   s      r)   r"   zInMemoryPickleTests.loadsd   s   € Ü|‰|˜CÑ( 4Ñ(Ð(r(   r-   )r   r   r   r   r;   r9   r:   r<   r=   r>   r?   r@   rA   rB   r   r"   Ú+test_framed_write_sizes_with_delayed_writerÚtest_find_classÚtest_custom_find_classr'   r(   r)   rW   rW   Y   sU   „ ð ×.Ñ.°
Ð;ÐØ×.Ñ.°Ø&¨
ØŸ™ j°+ð?Ðó5ò)ð 37Ð/Ø€OØ!Ñr(   rW   c                   ó   — e Zd Zdd„Zd„ Zy)ÚPersistentPicklerUnpicklerMixinNc                 ó®   ‡ —  G ˆ fd„d‰ j                   «      }t        j                  «       } |||«      }|j                  |«       |j	                  «       S )Nc                   ó   •— e Zd Zˆ fd„Zy)ú:PersistentPicklerUnpicklerMixin.dumps.<locals>.PersPicklerc                 ó&   •— ‰j                  |«      S r-   )Úpersistent_id©ÚsubselfÚobjr3   s     €r)   rd   zHPersistentPicklerUnpicklerMixin.dumps.<locals>.PersPickler.persistent_idp   s   ø€ Ø×)Ñ)¨#Ó.Ð.r(   N©r   r   r   rd   ©r3   s   €r)   ÚPersPicklerrb   o   s   ø„ õ/r(   rj   )rH   r/   r0   r   Úgetvalue)r3   rM   rN   rj   r6   rP   s   `     r)   r   z%PersistentPicklerUnpicklerMixin.dumpsn   sC   ø€ ö	/˜$Ÿ,™,ô 	/ô J‰J‹LˆÙ˜˜5Ó!ˆØ	‰ˆsŒØz‰z‹|Ðr(   c                 óŽ   ‡ —  G ˆ fd„d‰ j                   «      }t        j                  |«      } ||fi |¤Ž}|j                  «       S )Nc                   ó   •— e Zd Zˆ fd„Zy)ú<PersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpicklerc                 ó&   •— ‰j                  |«      S r-   )Úpersistent_loadre   s     €r)   rp   zLPersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpickler.persistent_loady   s   ø€ Ø×+Ñ+¨CÓ0Ð0r(   N©r   r   r   rp   ri   s   €r)   ÚPersUnpicklerrn   x   s   ø„ õ1r(   rr   )r1   r/   r0   r    )r3   r4   r5   rr   r6   r7   s   `     r)   r"   z%PersistentPicklerUnpicklerMixin.loadsw   s<   ø€ ö	1˜DŸN™Nô 	1ô J‰Js‹OˆÙ˜!Ñ$˜tÑ$ˆØv‰v‹xˆr(   r-   )r   r   r   r   r"   r'   r(   r)   r_   r_   l   s   „ óór(   r_   c                   ó<   — e Zd Zej                  Zej                  Zy)ÚPyPersPicklerTestsN)r   r   r   r   r#   rH   r%   r1   r'   r(   r)   rt   rt   €   s   „ ð o‰o€GØ×!Ñ!Ir(   rt   c                   ó¨   — e Zd Zej                  Zej                  Zej                  d„ «       Z
ej                  d„ «       Zej                  d„ «       Zy)ÚPyIdPersPicklerTestsc                 ó¾   ‡ — ˆ fd„} G d„ d‰ j                   «      } ||«        G d„ d‰ j                   «      } ||«        G d„ d‰ j                   «      } ||«       y )Nc                 óÐ  •— t        t        j                  dz   «      D ]_  }t        j                  «       } | ||«      }|j                  d«       ‰j                  ‰j                  |j                  «       «      d«       Œa  | t        j                  «       «      }‰j                  |j                  d«      d«       t        j                  |«      }~‰j                   |«       «       y ©Né   ÚabcÚdef)Úranger   ÚHIGHEST_PROTOCOLr/   r0   r   ÚassertEqualr"   rk   rd   ÚweakrefÚrefÚassertIsNone)r$   rN   r6   rH   Úrr3   s        €r)   Úcheckz@PyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.check   s­   ø€ Üœv×6Ñ6¸Ñ:Ö;Ü—J‘J“LÙ! ! UÓ+Ø—‘˜UÔ#Ø× Ñ  §¡¨A¯J©J«LÓ!9¸5ÕAð	 <ñ
 œbŸj™j›lÓ+ˆGØ×Ñ˜W×2Ñ2°5Ó9¸5ÔAÜ—‘˜GÓ$ˆAØØ×Ñ™a›cÕ"r(   c                   ó   — e Zd Zd„ Zy)úFPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPicklerc                 ó   — |S r-   r'   )rf   rg   s     r)   rd   zTPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_idœ   ó   € Ø
r(   Nrh   r'   r(   r)   rj   r†   ›   ó   „ ór(   rj   c                   ó   — e Zd Zed„ «       Zy)r†   c                 ó   — |S r-   r'   )Úclsrg   s     r)   rd   zTPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_id¡   ó   € à
r(   N)r   r   r   Úclassmethodrd   r'   r(   r)   rj   zFPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler    ó   „ Øñó ñr(   c                   ó   — e Zd Zed„ «       Zy)r†   c                 ó   — | S r-   r'   )rg   s    r)   rd   zTPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_id§   r   r(   N)r   r   r   r   rd   r'   r(   r)   rj   zFPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler¦   ó   „ Øñó ñr(   )rH   )r3   r„   rj   s   `  r)   Útest_pickler_reference_cyclez1PyIdPersPicklerTests.test_pickler_reference_cycle   sV   ø€ ô
	#ô	˜$Ÿ,™,ô 	ñ 	ˆkÔô	˜$Ÿ,™,ô 	ñ 	ˆkÔô	˜$Ÿ,™,ô 	ñ 	ˆkÕr(   c                 óp  ‡—  G ˆfd„d| j                   «      } G d„ d«      } |«       Š |t        j                  «       «      }| j                  |j                  ‰«       t        j                  ‰«      }| j                   |«       «       ~‹t        j                  «        | j                   |«       «       y )Nc                   ó"   •‡ — e Zd Zˆ ˆfd„Zˆ xZS )úPPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.Picklerc                 ó2   •— ‰| _         t        ‰|   |i |¤Ž y r-   )Údispatch_tableÚsuperÚ__init__)r3   ÚargsrO   Ú	__class__Útables      €€r)   rš   zYPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.Pickler.__init__±   s   ø€ Ø&+Ô#Ü‘Ñ  $Ð1¨&Ó1r(   )r   r   r   rš   Ú__classcell__)rœ   r   s   @€r)   r$   r–   °   s   ù„ ÷2ñ 2r(   r$   c                   ó   — e Zd Zy)úVPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.DispatchTableN©r   r   r   r'   r(   r)   ÚDispatchTabler    µ   ó   „ Ør(   r¢   )rH   r/   r0   ÚassertIsr˜   r€   r   ÚassertIsNotNoner   Ú
gc_collectr‚   )r3   r$   r¢   rH   Ú	table_refr   s        @r)   Ú*test_custom_pickler_dispatch_table_memleakz?PyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak¬   sŠ   ø€ ö	2d—l‘lô 	2÷
	ñ 	ñ “ˆÙœ"Ÿ*™*›,Ó'ˆØ‰g×,Ñ,¨eÔ4Ü—K‘K Ó&ˆ	Ø×Ñ™Y›[Ô)ØØÜ×ÑÔØ×Ñ™)›+Õ&r(   c                 ó¾   ‡ — ˆ fd„} G d„ d‰ j                   «      } ||«        G d„ d‰ j                   «      } ||«        G d„ d‰ j                   «      } ||«       y )Nc           	      ó¬  •— t        t        j                  dz   «      D ]M  } | t        j                  ‰j                  d|«      «      «      }‰j                  |j                  «       d«       ŒO  | t        j                  «       «      }‰j                  |j                  d«      d«       t        j                  |«      }~‰j                   |«       «       y ry   )r}   r   r~   r/   r0   r   r   r    rp   r€   r   r‚   )r&   rN   r1   rƒ   r3   s       €r)   r„   zBPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.checkÅ   s    ø€ Üœv×6Ñ6¸Ñ:Ö;Ù%¤b§j¡j°·±¸EÀ5Ó1IÓ&JÓK	Ø× Ñ  §¡Ó!1°5Õ9ð <ñ "¤"§*¡*£,Ó/ˆIØ×Ñ˜Y×6Ñ6°uÓ=¸uÔEÜ—‘˜IÓ&ˆAØØ×Ñ™a›cÕ"r(   c                   ó   — e Zd Zd„ Zy)úJPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklerc                 ó   — |S r-   r'   )rf   Úpids     r)   rp   zZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadÐ   rˆ   r(   Nrq   r'   r(   r)   rr   r¬   Ï   r‰   r(   rr   c                   ó   — e Zd Zed„ «       Zy)r¬   c                 ó   — |S r-   r'   )rŒ   r®   s     r)   rp   zZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadÕ   r   r(   N)r   r   r   rŽ   rp   r'   r(   r)   rr   zJPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklerÔ   r   r(   c                   ó   — e Zd Zed„ «       Zy)r¬   c                 ó   — | S r-   r'   )r®   s    r)   rp   zZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadÛ   r   r(   N)r   r   r   r   rp   r'   r(   r)   rr   zJPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklerÚ   r’   r(   )r1   )r3   r„   rr   s   `  r)   Útest_unpickler_reference_cyclez3PyIdPersPicklerTests.test_unpickler_reference_cycleÃ   sV   ø€ ô	#ô	˜DŸN™Nô 	ñ 	ˆmÔô	˜DŸN™Nô 	ñ 	ˆmÔô	˜DŸN™Nô 	ñ 	ˆmÕr(   N)r   r   r   r   r#   rH   r%   r1   r   Úcpython_onlyr“   r¨   r³   r'   r(   r)   rv   rv   ‡   sd   „ ð o‰o€GØ×!Ñ!€Ià×Ññó ðð< ×Ññ'ó ð'ð, ×Ññó ñr(   rv   c                   ó<   — e Zd Zej                  Zej                  Zy)ÚPyPicklerUnpicklerObjectTestsN)r   r   r   r   r#   Úpickler_classr%   Úunpickler_classr'   r(   r)   r¶   r¶   á   s   „ à—O‘O€MØ×'Ñ'Or(   r¶   c                   ó*   — e Zd Zej                  Zd„ Zy)ÚPyDispatchTableTestsc                 ó>   — t         j                  j                  «       S r-   ©r   r˜   Úcopyri   s    r)   Úget_dispatch_tablez'PyDispatchTableTests.get_dispatch_tableë   s   € Ü×$Ñ$×)Ñ)Ó+Ð+r(   N©r   r   r   r   r#   r·   r¾   r'   r(   r)   rº   rº   ç   s   „ à—O‘O€Mó,r(   rº   c                   ó*   — e Zd Zej                  Zd„ Zy)ÚPyChainDispatchTableTestsc                 óJ   — t        j                  i t        j                  «      S r-   ©ÚcollectionsÚChainMapr   r˜   ri   s    r)   r¾   z,PyChainDispatchTableTests.get_dispatch_tableó   s   € Ü×#Ñ# B¬×(=Ñ(=Ó>Ð>r(   Nr¿   r'   r(   r)   rÁ   rÁ   ï   s   „ à—O‘O€Mó?r(   rÁ   c                   ó<   — e Zd Z G d„ dej                  e«      ZeZy)ÚPyPicklerHookTestsc                   ó   — e Zd Zy)ú'PyPicklerHookTests.CustomPyPicklerClassNr¡   r'   r(   r)   ÚCustomPyPicklerClassrÉ   ø   s   „ àr(   rÊ   N)r   r   r   r   r#   r   rÊ   r·   r'   r(   r)   rÇ   rÇ   ÷   s   „ ô˜vŸ™Ø9ôð )Mr(   rÇ   c                   ó,   — e Zd ZddlmZmZmZmZmZm	Z	 y)ÚCPickleTestsr   )r   r   r    r"   r$   r&   N)
r   r   r   Ú_pickler   r   r    r"   r$   r&   r'   r(   r)   rÌ   rÌ   ÿ   s   „ ßH×HÐHr(   rÌ   c                   óX   — e Zd Zej                  Zej                  fZej                  fZ	y)ÚCUnpicklerTestsN)
r   r   r   rÍ   r&   r1   r   r;   r:   rB   r'   r(   r)   rÏ   rÏ     s+   „ Ø×%Ñ%ˆ	Ø"×2Ñ2Ð4ÐØ"×2Ñ2Ð4Ñr(   rÏ   c                   ó$   — e Zd Zej                  Zy)ÚCPicklingErrorTestsN)r   r   r   rÍ   r$   rH   r'   r(   r)   rÑ   rÑ     s   „ Ø—/‘/‰r(   rÑ   c                   ó<   — e Zd Zej                  Zej                  Zy)ÚCPicklerTestsN©r   r   r   rÍ   r$   rH   r&   r1   r'   r(   r)   rÓ   rÓ   
  ó   „ Ø—/‘/ˆØ×%Ñ%‰	r(   rÓ   c                   ó<   — e Zd Zej                  Zej                  Zy)ÚCPersPicklerTestsNrÔ   r'   r(   r)   r×   r×     rÕ   r(   r×   c                   ó<   — e Zd Zej                  Zej                  Zy)ÚCIdPersPicklerTestsNrÔ   r'   r(   r)   rÙ   rÙ     rÕ   r(   rÙ   c                   ó<   — e Zd Zej                  Zej                  Zy)ÚCDumpPickle_LoadPickleN)	r   r   r   rÍ   r$   rH   r   r%   r1   r'   r(   r)   rÛ   rÛ     s   „ Ø—/‘/ˆØ×%Ñ%‰	r(   rÛ   c                   ó<   — e Zd Zej                  Zej                  Zy)ÚDumpPickle_CLoadPickleN)	r   r   r   r   r#   rH   rÍ   r&   r1   r'   r(   r)   rÝ   rÝ     s   „ Ø—/‘/ˆØ×%Ñ%‰	r(   rÝ   c                   óB   — e Zd Zej                  Zej                  Zd„ Zy)ÚCPicklerUnpicklerObjectTestsc                 ó,  — | j                  t        j                  «       «      }| j                  t        «      5  t
        |_        d d d «       | j                  t        «      5  dd i|_        d d d «       dd i|_        y # 1 sw Y   Œ:xY w# 1 sw Y   ŒxY w)Néÿÿÿÿrz   )r¸   r/   r0   ÚassertRaisesÚ	TypeErrorÚobjectÚmemor>   )r3   r1   s     r)   Útest_issue18339z,CPicklerUnpicklerObjectTests.test_issue18339"  so   € Ø×,Ñ,¬R¯Z©Z«\Ó:ˆIØ×"Ñ"¤9Õ-Ü!'	”÷ .ð ×"Ñ"¤:Õ.Ø"$ d 	”÷ /à ˜YˆIN÷ .Ð-ú÷ /Ð.ús   ¹A>Á"
B
Á>BÂ
BN)	r   r   r   rÍ   r$   r·   r&   r¸   ræ   r'   r(   r)   rß   rß     s   „ ØŸ™ˆØ!×+Ñ+ˆó	'r(   rß   c                   ó*   — e Zd Zej                  Zd„ Zy)ÚCDispatchTableTestsc                 ó>   — t         j                  j                  «       S r-   r¼   ri   s    r)   r¾   z&CDispatchTableTests.get_dispatch_table-  s   € Ü×(Ñ(×-Ñ-Ó/Ð/r(   N©r   r   r   r   r$   r·   r¾   r'   r(   r)   rè   rè   +  s   „ ØŸ™ˆó	0r(   rè   c                   ó*   — e Zd Zej                  Zd„ Zy)ÚCChainDispatchTableTestsc                 óJ   — t        j                  i t        j                  «      S r-   rÃ   ri   s    r)   r¾   z+CChainDispatchTableTests.get_dispatch_table2  s   € Ü×'Ñ'¨¬F×,AÑ,AÓBÐBr(   Nrê   r'   r(   r)   rì   rì   0  s   „ ØŸ™ˆó	Cr(   rì   c                   ó<   — e Zd Z G d„ dej                  e«      ZeZy)ÚCPicklerHookTestsc                   ó   — e Zd Zy)ú%CPicklerHookTests.CustomCPicklerClassNr¡   r'   r(   r)   ÚCustomCPicklerClassrñ   6  r£   r(   rò   N)r   r   r   rÍ   r$   r   rò   r·   r'   r(   r)   rï   rï   5  s   „ ô	 '§/¡/Ð3Mô 	à+‰r(   rï   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚHeapTypesTestsc                 ó:  — t        j                  t        j                  «       «      }t        j                  t        j                  «       «      }t         j                  t         j                  t        |j                  «      t        |j                  «      f| _        y r-   )rÍ   r$   r/   r0   r&   Útyperå   Ú_types)r3   rH   r1   s      r)   ÚsetUpzHeapTypesTests.setUp<  s_   € Ü—o‘o¤b§j¡j£lÓ3ˆGÜ×)Ñ)¬"¯*©*«,Ó7ˆIô —‘Ü×!Ñ!ÜW—\‘\Ó"ÜY—^‘^Ó$ð	ˆDKr(   c                 ó¼   — dd l }| j                  D ]=  }| j                  |¬«      5  | j                  |j	                  |«      «       d d d «       Œ? y # 1 sw Y   ŒJxY w)Nr   ©Útp)Úgcr÷   ÚsubTestÚ
assertTrueÚ
is_tracked)r3   rü   rû   s      r)   Útest_have_gczHeapTypesTests.test_have_gcJ  sE   € ÛØ—k”kØ—\‘\ R\Õ(Ø—O‘O B§M¡M°"Ó$5Ô6÷ )Ð(ñ "ß(Ð(ús   ¦!AÁA	c                 óØ   — | j                   D ]C  }| j                  |¬«      5  | j                  t        d«      5  d|_        d d d «       d d d «       ŒE y # 1 sw Y   ŒxY w# 1 sw Y   Œ\xY w)Nrú   Ú	immutableÚbar)r÷   rý   ÚassertRaisesRegexrã   Úfoo)r3   rû   s     r)   Útest_immutablezHeapTypesTests.test_immutableP  sS   € Ø—k”kØ—\‘\ R\Õ(Ø×/Ñ/´	¸;ÕGØ!&˜œ÷ H÷ )Ð(ñ "çGÐGú÷ )Ð(ús"   ¢A ¹AÁA ÁAÁA Á A)	N)r   r   r   rø   r   r  r'   r(   r)   rô   rô   :  s   „ ò	ò	7ó	'r(   rô   c                   ó0   — e Zd Zej                  Zd„ Zd„ Zy)ÚSizeofTestsc                 ó   — t        j                  d«      }t        j                  t	        j
                  «       «      }| j                  t        j                  |«      |«       t        j                  d«      }t        j                  d«      }| j                  } ||||z   d|z  z   t        j                  d«      z   «       t        d«      D ]  }|j                  t!        |«      «       Œ  ||||z   d|z  z   dz   «       y )	NÚ7P2n3i2n3i2PÚ3nP0nÚPn0Pé   s   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxé   é    r   )r   ÚcalcobjsizerÍ   r$   r/   r0   r   rä   Ú
__sizeof__r?   ÚcalcsizeÚcheck_sizeofÚsysÚ	getsizeofr}   r   Úchr)r3   ÚbasesizerP   ÚMT_sizeÚME_sizer„   Úis          r)   Útest_picklerzSizeofTests.test_picklerZ  sâ   € Ü×*Ñ*¨>Ó:ˆHÜ—‘¤§
¡
£Ó-ˆAØ×ÑœV×.Ñ.¨qÓ1°8Ô<Ü—o‘o gÓ.ˆGÜ—o‘o fÓ-ˆGØ×%Ñ%ˆEÙ!XØñØ˜g™+ñ&ä—‘˜iÓ(ñ)ô *ô ˜1–XØ—‘”s˜1“v•ð á!XØñØ˜w™,ñ'ð ñõ r(   c           	      óò  ‡‡	‡
‡‡— t        j                  d«      }t        j                  Št	        j
                  d«      Št	        j
                  d«      Š
| j                  Š	dD ]x  }dD ]q  } ‰t        j                  «       ||¬«      }| j                  t        j                  |«      |«        ‰	||d‰z  z   t        |«      z   dz   t        |«      z   dz   «       Œs Œz |t        d	«      z   dz   t        d
«      z   dz   Šˆˆ	ˆ
ˆˆfd„} |ddd«        |dgdz  dd«        |t        d«      D cg c]  }t        |«      ‘Œ c}dd«       d„ } | |d«      dd«        | |d«      dd«        | |d«      dd«        | |d«      dd«        | |d«      dd«        ‰t        j                  t        j                   dd«      «      d	d
¬«      }|j#                  «         ‰	|‰d‰z  z   dz   dz   «       y c c}w )Nz2P2n2P 2P2n2i5P 2P3n8P2n2iÚPÚn)ÚASCIIzUTF-16zlatin-1)ÚstrictÚreplace©ÚencodingÚerrorsr  rz   r  r   c                 ó¶   •— t        j                  | «      } ‰	t        j                  |«      dd¬«      }|j	                  «         ‰|‰|‰z  z   |‰z  z   «       y )Nr  r   r"  )r   r   r/   r0   r    )
ÚdataÚ	memo_sizeÚ
marks_sizer   r7   r  r„   r  Ústdsizer1   s
        €€€€€r)   Úcheck_unpicklerz3SizeofTests.test_unpickler.<locals>.check_unpickler{  sQ   ø€ Ü—|‘| DÓ)ÙœbŸj™j¨Ó.Ø'.°xôAà—‘”Ùa˜ 9¨q¡=Ñ0°:À±>ÑAÕBr(   r   éd   é   é€   c                 ó2   — d}t        | «      D ]  }||g}Œ |S rF   )r}   )Údeepr&  r  s      r)   Úrecursez+SizeofTests.test_unpickler.<locals>.recurse‡  s#   € ØÜ˜tžAØ  $˜<‘Dð %àr(   é2   é@   é<   éŒ   Úaé   )r   r  rÍ   r&   r?   r  r  r/   r0   r   rä   r  Úlenr}   r  r   r   r    )r3   r  r#  r$  r7   r*  r  r0  r  r„   r  r)  r1   s           @@@@@r)   Útest_unpicklerzSizeofTests.test_unpicklerk  sè  ü€ Ü×*Ñ*Ð+GÓHˆHÜ×)Ñ)ˆIÜ—‘ Ó$ˆAÜ—‘ Ó$ˆAØ×%Ñ%ˆEÛ8Û1FÙ!¤"§*¡*£,Ø+3¸FôDAà×$Ñ$¤V×%6Ñ%6°qÓ%9¸8ÔDÙ˜!˜XØ !™Vñ$ä  ›]ñ+à-.ñ/ä14°V³ñ=à?@ñAõ Bñ	 2ð 9ð ¤ W£Ñ-°Ñ1´C¸³MÑAÀAÑEˆG÷Cð Cñ ˜A˜r 1Ô%á˜Q˜C #™I r¨2Ô.á¬U°3¬ZÓ8©Z¨œS V¨ZÑ8¸#¸rÔBòñ
 ™G A›J¨¨AÔ.Ù™G A›J¨¨BÔ/Ù™G B›K¨¨RÔ0Ù™G B›K¨¨RÔ0Ù™G C›L¨#¨sÔ3áœ"Ÿ*™*¤V§\¡\°#°qÓ%9Ó:Ø#*°8ô=ˆAàF‰FŒHÙ!W˜r A™vÑ%¨Ñ)¨AÑ-Õ.ùò 9s   Ä.G4N)r   r   r   r   r  r  r8  r'   r(   r)   r  r  V  s   „ à×+Ñ+ˆò	ó"*	/r(   r  >   ©ÚcPickler   ©ÚStringIOr/   ©Ú	cStringIOr/   ©Ú_elementtreezxml.etree.ElementTree>   ©ÚsocketÚ_socketobjectrB  Ú
SocketType©ÚUserDictrF  rÄ   rF  ©Ú
exceptionsÚStandardErrorÚbuiltinsÚ	Exception©Ú__builtin__Ú
basestringrJ  Ústrc                 ód   — | |ft         v rt         | |f   \  } }| |fS | t        v r	t        |    } | |fS r-   )r   r   ©ÚmoduleÚnames     r)   ÚmappingrT  ¦  sJ   € Ø€~œÑ%Ü# V¨T NÑ3‰ˆð 4ˆ<Ðð 
”>Ñ	!Ü Ñ'ˆØ4ˆ<Ðr(   c                 ód   — | |ft         v rt         | |f   \  } }| |fS | t        v r	t        |    } | |fS r-   )r   r   rQ  s     r)   Úreverse_mappingrV  ­  sL   € Ø€~Ô-Ñ-Ü+¨V°T¨NÑ;‰ˆð 4ˆ<Ðð 
Ô)Ñ	)Ü'¨Ñ/ˆØ4ˆ<Ðr(   c                 óø  — 	 t         j                  |    S # t        $ rÛ 	 t        j                  «       5  t
        j                  rdnd}t        j                  |t        «       t        | «       d d d «       n# 1 sw Y   nxY wn`# t        $ r,}t
        j                  rt        d| ›d|›«       t        ‚d }~wt        $ r!}t
        j                  rt        |«       ‚ d }~ww xY wt         j                  |    cY S w xY w)NÚalwaysÚignorezCan't import module z: )r  ÚmodulesÚKeyErrorÚwarningsÚcatch_warningsr   ÚverboseÚsimplefilterÚDeprecationWarningÚ
__import__r=   ÚprintrA   )rR  ÚactionÚexcs      r)   Ú	getmodulere  ´  s¾   € ð#Ü{‰{˜6Ñ"Ð"øÜò #ð	Ü×(Ñ(Õ*Ü%,§_¢_™¸(Ü×%Ñ% fÔ.@ÔAÜ˜6Ô"÷ +×*Ñ*üô ò 	ÜŠÝ²f¹cÐBÔCÜÐûÜò 	ÜŠÜc”
Øûð	úô {‰{˜6Ñ"Ò"ð#úsU   ‚ •	C9ŸB³:A6Á-	BÁ6A?	Á;BÂC9Â	C Â'B3Â3C Â?CÃC Ã C9Ã8C9c                 ó`   — t        | «      }|j                  d«      D ]  }t        ||«      }Œ |S )NÚ.)re  ÚsplitÚgetattr)rR  rS  rg   r  s       r)   Úgetattributerj  Ç  s.   € Ü
FÓ
€CØZ‰Z˜Ž_ˆÜc˜1‹o‰ð à€Jr(   c              #   ó”   K  — t        | «      D ]6  }t        | |«      }t        |t        «      sŒ t	        |t
        «      sŒ1||f–— Œ8 y ­wr-   )Údirri  Ú
isinstancerö   Ú
issubclassÚBaseException)ÚmodrS  Úattrs      r)   Úget_exceptionsrr  Í  s=   è ø€ ÜC–ˆÜs˜DÓ!ˆÜdœDÕ!¤j°´}Õ&EØ˜*Óñ ùs   ‚+A®A¿	Ac                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚCompatPickleTestsc                 óJ  — t        t        j                  «       «      }|t        t        «      z  }|t        D ch c]  \  }}|’Œ	 c}}z  }|t        j                  «       D ch c]  \  }}|’Œ	 c}}z  }|D ]  }	 t        |«       Œ y c c}}w c c}}w # t        $ r Y Œ)w xY wr-   )Úsetr   Úvaluesr   r   r   re  rA   )r3   rZ  rR  rS  s       r)   Útest_importzCompatPickleTests.test_importÔ  s¡   € Ü”n×+Ñ+Ó-Ó.ˆØ”3Ô-Ó.Ñ.ˆØÕ/CÔDÑ/C™|˜v t’FÐ/CÒDÑDˆØ¬|×/BÑ/BÔ/DÔEÑ/D™|˜v t’FÐ/DÒEÑEˆÛˆFðÜ˜&Õ!ñ ùó EùÛEøô ò Ùðús   ºB
Á$BÁ<BÂ	B"Â!B"c                 ó0  — t        j                  «       D ]d  \  }}| j                  ||f«      5  	 t        |«       |d d dk7  r/| j                  |t        «       | j                  t        |   |«       d d d «       Œf y # t        $ r Y ŒMw xY w# 1 sw Y   Œ€xY w)Nrz   Ú_)r   Úitemsrý   re  rA   ÚassertInr   r   )r3   Úmodule3Úmodule2s      r)   Útest_import_mappingz%CompatPickleTests.test_import_mappingß  s   € Ü 6× <Ñ <Ö >ÑˆGWØ—‘˜w¨Ð0Õ1ðÜ˜gÔ&ð ˜2˜A; #Ò%Ø—M‘M '¬>Ô:Ø×$Ñ$¤^°GÑ%<¸gÔF÷ 2Ð1ñ !?øô #ò Ùðú÷ 2Ð1ús-   ®B°A=»7BÁ=	B	ÂBÂB	Â	BÂB	c                 ó8  — t        j                  «       D ]ç  \  \  }}\  }}| j                  ||f||ff«      5  ||fdk(  r,t        ||«      }| j	                  t        |t        «      «       n‰||fdk(  r,t        ||«      }| j	                  t        |t        «      «       nVt        ||«      \  }}|d d dk7  r| j                  ||f||f«       	 t        ||«      }| j                  t        ||«      |«       d d d «       Œé y # t        $ r Y Œw xY w# 1 sw Y   ŒxY w)N©rH  ÚOSError©rH  rA   rz   rz  )
r   r{  rý   rj  rþ   rn  r‚  rA   rT  r   )r3   r}  Úname3r~  Úname2rq  rR  rS  s           r)   Útest_name_mappingz#CompatPickleTests.test_name_mappingê  s#  € Ü2F×2LÑ2LÖ2NÑ.ÑˆWeÑ.˜w¨Ø—‘ ¨Ð/°'¸5Ð1AÐBÕCØ˜UÐ#Ð'@Ò@Ü'¨°Ó7DØ—O‘O¤J¨t´WÓ$=Õ>Ø˜uÐ%Ð)FÒFÜ'¨°Ó7DØ—O‘O¤J¨t´[Ó$AÕBä#*¨7°EÓ#:‘LF˜DØ˜r { cÒ)Ø×(Ñ(¨&°$¨¸'À5Ð9IÔJðKÜ+¨G°UÓ;˜ð ×(Ñ(¬°f¸dÓ)CÀTÔJ÷! DÐCñ 3Oøô 'ò Ùðú÷ DÑCús0   ¸BDÃD ÃDÄ 	DÄ	DÄDÄDÄD	c                 óR  — t        j                  «       D ]Ò  \  }}| j                  ||f«      5  	 t        |«       ||ft        vr]t        j                  |d «      |k7  rDt        j                  «       D ]  \  \  }}\  }}||f||fk(  sŒ n | j                  d|›d|›«       t        j                  ||«      }t        j                  ||«      }| j                  ||«       d d d «       ŒÔ y # t        $ r%}t
        j                  rt        |«       Y d }~ŒÙd }~ww xY w# 1 sw Y   ŒxY w)NzNo reverse mapping from z to )r   r{  rý   re  rA   r   r^  rb  ÚALT_IMPORT_MAPPINGr   Úgetr   Úfailr   )	r3   r~  r}  rd  Úm3Ún3Úm2Ún2rR  s	            r)   Útest_reverse_import_mappingz-CompatPickleTests.test_reverse_import_mappingþ  s  € Ü .× 4Ñ 4Ö 6ÑˆGWØ—‘˜w¨Ð0Õ1ð#Ü˜gÔ&ð ˜gÐ&Ô.@Ñ@Ü*×.Ñ.¨w¸Ó=ÀÒHÜ.B×.HÑ.HÖ.JÑ*™˜˜R¡( 2 rØ# WÐ-°"°b°Ó9Ù!ð /Kð Ÿ	š	Ú#*©Gð#5ô 6ä/×3Ñ3°G¸WÓEÜ'×+Ñ+¨F°FÓ;Ø× Ñ  ¨Ô1÷! 2Ð1ñ !7øô #ò #Ü—’Ü˜cœ
ÿøð#ú÷ 2Ñ1ús;   ®D°C+»ADÂADÃ+	DÃ4DÄDÄDÄDÄD&	c                 ó„  — t        j                  «       D ]Ž  \  \  }}\  }}| j                  ||f||ff«      5  	 t        ||«      }t        ||«      \  }}||||ft        vr| j                  ||f||f«       t        ||«      \  }}| j                  ||f||f«       d d d «       Œ y # t        $ r Y Œlw xY w# 1 sw Y   ŒªxY wr-   )	r   r{  rý   rj  rA   rV  ÚALT_NAME_MAPPINGr   rT  )r3   r~  r…  r}  r„  rq  rR  rS  s           r)   Útest_reverse_name_mappingz+CompatPickleTests.test_reverse_name_mapping  sÞ   € Ü2>×2DÑ2DÖ2FÑ.ÑˆWeÑ.˜w¨Ø—‘ ¨Ð/°'¸5Ð1AÐBÕCðÜ'¨°Ó7Dô  /¨w¸Ó>‘˜Ø˜U G¨UÐ3Ô;KÑKØ×$Ñ$ f¨d ^°g¸uÐ5EÔFÜ& v¨tÓ4‘˜Ø× Ñ  &¨$ °'¸5Ð1AÔB÷ DÐCñ 3Gøô #ò Ùðú÷ DÐCús/   ¸B6ºB'ÁAB6Â'	B3Â0B6Â2B3Â3B6Â6B?	c           
      ó†  — | j                  t        dd«      d«       | j                  t        dd«      d«       | j                  t        dd«      d«       | j                  t        dd«      d«       | j                  t        dd«      d	«       t        t        «      D ]  \  }}| j                  |«      5  |t        t        t        t        t        t        t        fv r
	 d d d «       ŒJ|t        ur-t        |t        «      r| j                  t        d|«      d	«       n|t        urKt        |t        «      r;| j                  t        d|«      d
«       | j                  t        d|«      d|f«       n<| j                  t        d|«      d|f«       | j                  t        d|«      d|f«       d d d «       Œ y # 1 sw Y   Œ$xY w)NrH  rI  )rJ  rK  rK  rJ  )rH  rK  r‚  )rJ  r‚  r  rƒ  )r   rT  rV  rr  rJ  rý   ÚBlockingIOErrorÚResourceWarningÚStopAsyncIterationÚRecursionErrorÚEncodingWarningÚBaseExceptionGroupÚExceptionGroupr‚  rn  rA   )r3   rS  rd  s      r)   Útest_exceptionsz!CompatPickleTests.test_exceptions  s›  € Ø×Ñœ ¨Ó?Ø2ô	4à×Ñœ ¨{Ó;Ø2ô	4à×Ñœ¨°[ÓAØ4ô	6à×Ñœ ¨yÓ9Ø0ô	2à×Ñœ¨°YÓ?Ø2ô	4ô (¬×1‰IˆD#Ø—‘˜dÕ#Øœ?Ü*Ü-Ü)Ü*Ü-Ü)ð+ñ +ð ÷ $Ð#ð œgÑ%¬*°S¼'Ô*BØ×$Ñ$¤_°ZÀÓ%FØ%>õ@à¤Ñ+´
¸3ÄÔ0LØ×$Ñ$¤_°ZÀÓ%FØ%BôDà×$Ñ$¤W¨\¸4Ó%@Ø&2°DÐ%9õ;ð ×$Ñ$¤_°ZÀÓ%FØ&2°DÐ%9ô;à×$Ñ$¤W¨\¸4Ó%@Ø&0°$Ð%7ô9÷) $Ñ#ñ 2ß#Ñ#ús   Â4)F6Ã&CF6Æ6G 	c                 ó:  — t        j                  d«      }t        |«      D ]l  \  }}t        |t        «      rŒ| j                  |«      5  | j                  t        d|«      d|f«       | j                  t        d|«      d|f«       d d d «       Œn y # 1 sw Y   ŒyxY w)Nzmultiprocessing.contextÚmultiprocessing)	r   Úimport_modulerr  rn  ÚWarningrý   r   rV  rT  )r3   rR  rS  rd  s       r)   Útest_multiprocessing_exceptionsz1CompatPickleTests.test_multiprocessing_exceptionsC  s‘   € Ü×,Ñ,Ð-FÓGˆÜ'¨Ö/‰IˆD#Ü˜#œwÔ'ØØ—‘˜dÕ#Ø× Ñ ¤Ð1JÈDÓ!QØ"3°TÐ!:ô<à× Ñ ¤Ð):¸DÓ!AØ";¸TÐ!BôD÷ $Ð#ñ 0÷ $Ð#ús   Á	=BÂB	N)
r   r   r   rx  r  r†  r  r’  r›  r   r'   r(   r)   rt  rt  Ó  s*   „ ò	ò	GòKò(2ò(Cò"9óH	Dr(   rt  c                 óV   — |j                  t        j                  t        «      «       |S r-   )ÚaddTestÚdoctestÚDocTestSuiter   )ÚloaderÚtestsÚpatterns      r)   Ú
load_testsr¨  O  s   € Ø	‡MM”'×&Ñ&¤vÓ.Ô/Ø€Lr(   Ú__main__)JÚ_compat_pickler   r   r   r   rJ  r   r/   rÄ   r?   r  r\  r€   r£  ÚunittestÚtestr   Útest.supportr   Útest.pickletesterr	   r
   r   r   r   r   r   r   r   r   r   rÍ   Úhas_c_implementationrA   ÚTestCaser   r+   rD   rS   rW   rä   r_   rt   rv   r¶   rº   rÁ   rÇ   rÌ   rÏ   rÑ   rÓ   r×   rÙ   rÛ   rÝ   rß   rè   rì   rï   r´   rô   r  rˆ  r‘  rT  rV  re  rj  rr  rt  r¨  r   Úmainr'   r(   r)   Ú<module>r²     sö  ð÷@ó @ã Û Û 	Û Û Û 
Û Û ã Û Ý Ý &å /Ý 3Ý 8Ý 1Ý 7Ý <Ý DÝ AÝ 8Ý 8Ý /ð!ÛØÐô
"Ð-¨x×/@Ñ/@ô "ôÐ,¨h×.?Ñ.?ô ô	Ð5°x×7HÑ7Hô 	ôÐ(¨(×*;Ñ*;ô ô$"Ð-Ð/DØ+¨X×->Ñ->ô"ô& fô ô("Ð7Ø8¸(×:KÑ:Kô"ôWÐAØ:¸H×<MÑ<MôWôt(Ð$GÈ×IZÑIZô (ô,Ð5°x×7HÑ7Hô ,ô?Ð :¸H×<MÑ<Mô ?ô)Ð*¨H×,=Ñ,=ô )ò ôIÐ0°(×2CÑ2Cô Iô5Ð*ô 5ô
"Ð2ô "ô&˜ô &ô&Ð.ô &ô&Ð2ô &ô& ô &ô& ô &ô'Ð'JÈH×L]ÑL]ô 'ô0Ð8¸(×:KÑ:Kô 0ô
CÐ#=¸x×?PÑ?Pô Cô
,Ð-¨x×/@Ñ/@ô ,ð
 ×Ñô'˜×*Ñ*ó 'ó ð'ð6 ×Ñô>/h×'Ñ'ó >/ó ð>/òBÐ òÐ òòò#ò&òôyD˜×)Ñ)ô yDòxð
 ˆzÒØ€H‡MM…Oð øði ò !Ø Óð!ús   ÂK ËK#Ë"K#