R
    ¢¤Òj$  ã                   óð   €   Q s , QNs- sQQ ksQ sQ s\ \\\2       Q s\ \ \	\
*          2      \2       Q s\ \\2       Q sQs\ \	O                  2      sQ sQ sQ	 sQ
 s- s- s- sQ sQ sQ sP! )z¤Helper to provide extensibility for pickle.

This is only useful to add pickle support for extension types defined in
C, not for instances of user-defined classes.
c                 ót   €   [        U2      %       f   [        Q 2      gU[        U $   Ud   [        U2       P! P! )z$reduction functions must be callable)ÚcallableÚ	TypeErrorÚdispatch_tableÚconstructor)Úob_typeÚpickle_functionÚconstructor_obs   &&&Ú$/usr/local/lib/python3.15/copyreg.pyÚpickler      s8   � Ü�O×$Ò$ÜÐ>Ó?Ð?Ø-„N�7Ñð Ò!Ü�NÖ#ñ "ó    c                 ó@   €   [        U 2      %       f   [        Q 2      gP! )zconstructors must be callable)r   r   )Úobjects   &r
   r   r      s   � Ü�F×ÒÜÐ7Ó8Ð8ñ r   c                 ó@   €   [         U O                  U O                  11! ©N)ÚcomplexÚrealÚimag)Úcs   &r
   Úpickle_complexr      s   � Ü�Q—V‘V˜QŸV™VÐ$Ð$Ð$r   c                 ó\   €   ] PHo] PHoUO                  UO                  U O                  11! )é    )ÚtypingÚoperatorÚgetitemÚUnionÚ__args__)Úobjr   r   s   &  r
   Úpickle_unionr   !   s#   � ßØ×Ñ˜fŸl™l¨C¯L©LÐ9Ð9Ð9r   c                 ó@   €   [         U O                  U O                  11! r   )ÚsuperÚ__thisclass__Ú__self__)r   s   &r
   Úpickle_superr#   '   s   � Ü�3×$Ñ$ c§l¡lÐ3Ð3Ð3r   c                 óÌ   €   U[         I c   [         O                  U 2      oU! UO                  V2      oUO                  [         O                  6w  c   UO                  V22       U! r   )r   Ú__new__Ú__init__)ÚclsÚbaseÚstater   s   &&& r
   Ú_reconstructorr*   .   sO   � ØŒvƒ~Ü�n‰n˜SÓ!ˆð
 €Jð �l‰l˜3Ó&ˆØ�=‰=œFŸO™OÔ+Ø�M‰M˜#Ô%Ø€Jr   c                 óJ  €   U]6  f   P gU O                   oUO                  F   Dl  o[        UQ2      %       c!   UO                  [        *          %       f     LAUO
                  o[        U[        2      %       f   JY  UO                  UI f   Jk    L	  [        oU[        I c   PoL'V2I c   [        QUO                  8 Q02      gU U 2      oV#U1o U O                  o[        U 2      O                  [        O                  I c   [        U QP2      %       c   [        Q2      gU 2       oU%       c	   ["        Vh1! ["        U1!  [         cU    [        S QP2      %       c   [        QSO                  8 QS 02      Pg S O                   o Kb [         c    Po  Krh 9 hh 9 h)é   Ú	__flags__zcannot pickle z objectÚ	__slots__zNa class that defines __slots__ without defining __getstate__ cannot be pickledzf object: a class that defines __slots__ without defining __getstate__ cannot be pickled with protocol )Ú	__class__Ú__mro__Úhasattrr-   Ú	_HEAPTYPEr%   Ú
isinstanceÚ	_new_typer"   r   r   Ú__name__Ú__getstate__ÚtypeÚgetattrÚAttributeErrorÚ__dict__r*   )	ÚselfÚprotor'   r(   Únewr)   ÚargsÚgetstateÚdicts	   &&       r
   Ú
_reduce_exrA   <   s‹  � Ø�1Œ9Ðˆ9Ø
�.‰.€CØ—•ˆÜ�4˜×%Ò%¨d¯n©n¼y×.HÔ.HÚØ�l‰lˆÜ�cœ9×%Ô%¨#¯,©,¸$Õ*>Úñ ô ˆØŒvƒ~Ø‰à‹;Ü˜n¨S¯\©\Ñ,<¸GÐDÓEÐEÙ�T“
ˆØ�uÐ€DðØ×$Ñ$ˆô �‹J×#Ñ#¤v×':Ñ':Ó:Ü�D˜+ t×,Ò,Üð Fó Gð Gá‹zˆßÜ˜tÐ)Ð)ä˜tÐ#Ð#øô' ô 	Ü�4˜ d×+Ò+Ü˜n¨S¯\©\Ñ,<ð =-ð .3¨Gð5ó 6ð <@ð@ð	Ø—=‘=ŠDøÜô 	Ø‹Dð	úð	ús<   ÃE Å	F"ÅF"Å!F"Å?FÆ	FÆFÆF"ÆFÆF"c                 ó.   €   U O                    U ,UN3    ! r   ©r%   )r'   r>   s   &*r
   Ú
__newobj__rD   g   s   � Ø�;Š;�sÐ"˜TÔ"Ð"r   c                ó2   €   U O                    U ,UN3- U@   ! )zwUsed by pickle protocol 4, instead of __newobj__ to allow classes with
keyword-only arguments to be pickled correctly.
rC   )r'   r>   Úkwargss   &&&r
   Ú__newobj_ex__rG   j   s   � ð �;Š;�sÐ,˜TÒ, VÒ,Ð,r   c           	     ó|  €   U O                   O                  Q2      oUd   U! , o[        U Q2      %       f   LõU O                  F   Dä  oQUO                   7   f   J  UO                   Q*          o[	        U[
        2      %       c   U1oSF   D›  oUQ7   c   J  UO                  Q2      %       ch   UO                  Q2      %       fQ   UO                  O                  Q2      oU%       c   UO                  QU8 U8 02       Jw  UO                  U2       JŠ  UO                  U2       J�  	  Jæ  	   Vm        U!    S! 9 h)a  Return a list of slot names for a given class.

This needs to find slots defined by the class and its bases, so we
can't simply return the __slots__ attribute.  We must walk down
the Method Resolution Order and concatenate the __slots__ of each
class found there.  (This assumes classes don't modify their
__slots__ attribute to misrepresent their slots after the class is
defined.)
Ú__slotnames__r.   Ú__Ú_)r:   Ú__weakref__)r:   Úgetr1   r0   r3   ÚstrÚ
startswithÚendswithr5   ÚlstripÚappendrI   )r'   Únamesr   ÚslotsÚnameÚstrippeds   &     r
   Ú
_slotnamesrW   p   s  � ð �L‰L×Ñ˜_Ó-€EØÒØˆð €EÜ�3˜×$Ò$àð —•ˆAØ˜aŸj™jÖ(ØŸ
™
 ;Õ/�ä˜e¤S×)Ò)Ø"˜H�EÜ!�DàÐ:Ô:Ù àŸ™¨×.Ò.°t·}±}ÀT×7JÒ7JØ#$§:¡:×#4Ñ#4°SÓ#9˜ß#Ø!ŸLšL²HºdÐ)CÖDà!ŸL™L¨Ö.àŸ™ TÖ*ó "ñ ð*Ø!Ôð €LøðØà€Lús   Ä.D6 Ä6D;c                ó�  €   [        U2      o]St96:  c   Q6:  f   L [        Q2      gV1o[        O                  U2      U6X  c   [        O                  U2      U6X  c   P! U[        7   c   [        QU8 Q[        U*          8 02      gU[        7   c   [        QU8 Q[        U*          8 02      gU[        U$   U[        U$   P! )zRegister an extension code.iÿÿÿzcode out of rangeúkey z! is already registered with code zcode z is already in use for key )ÚintÚ
ValueErrorÚ_extension_registryrM   Ú_inverted_registry©ÚmodulerU   ÚcodeÚkeys   &&& r
   Úadd_extensionrb   ²   s¶   � äˆt‹9€DØ�Ö"˜
Ö"ÜÐ,Ó-Ð-Øˆ.€CÜ×Ñ Ó$¨Ô,Ü×Ñ˜tÓ$¨Ô+ÙØ
Ô!Ô!ÝÛÔ2°3×7ð9ó :ð 	:àÔ!Ô!ÝÛÔ 2°4× 8ð:ó ;ð 	;à#Ô˜ÑØ"Ô�tÓr   c                óà   €   V1o[         O                  U2      U6w  f   [        O                  U2      U6w  c   [        QU8 QU8 02      g[         U [        U U[        7   c
   [        U P! P! )z0Unregister an extension code.  For testing only.rY   z is not registered with code )r\   rM   r]   r[   Ú_extension_cacher^   s   &&& r
   Úremove_extensionre   Ä   sl   � àˆ.€CÜ×Ñ Ó$¨Ô,Ü×Ñ˜tÓ$¨Ô+ÝÛštð%ó &ð 	&ä˜CÐ Ü˜4Ð ØÔÔÜ˜TÒ"ñ  r   c                  ó0   €   [         O                  2        P! r   )rd   Úclear© r   r
   Úclear_extension_cacheri   Ð   s   � Ü×ÑÖr   )r   r   rb   re   ri   r   é   )Ú__doc__Ú__all__r   r   r   r   r   r   r7   rZ   rN   r#   r    r*   r2   r%   r4   rA   rD   rG   rW   r\   r]   rd   rb   re   ri   rh   r   r
   Ú<module>rm      s³   ññòI€ð €ô$ò9ò%ñ €w� Ô (ò:ñ �tˆC�#�Iƒ˜Ô %ò4ñ €uˆlÔ òð €	Ù�—‘Ó€	ò'$òV#ò-ò1ðx Ð ØÐ ØÐ ò#ò$
#ôr   