Your IP : 3.144.89.197


Current Path : /opt/cloudlinux/venv/lib64/python3.11/site-packages/dill/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/dill/__pycache__/_dill.cpython-311.pyc

�

��bg�V���dZddlmZgd�ZdZddlZddlmZddlmZ	eZ
ddlZddlZda
d	aejd
kZejdkZejdkZejd
kZddlZddlmZmZddlmZmZddlmZddlmZ ddl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)e*Z+e,Z-e,e.��Z/e,e0��Z1e2Z3e,Z4e5Z6ddl!m7Z8m9Z9ddlm:Z:m;Z;m<Z<m=Z=m>Z>ddl?Z@ddlAZAddlBZBddlCZCddlDZDddlEmFZFmGZGmHZHddlImJZJddlKmLZLmMZMddlNmOZOddlPmQZQmRZRd	ZSddlTZUeVeUjWjX��ZX	ddlYZYdZZe[eYd��Z\n#e]$rd	ZZd	Z\YnwxYwda^da_da`	eUjW�a���bd��se]d���da^da_da`n#e]$rYnwxYwd�Zct�r
d�Zdd �Zed!�Zfn	d"�Zdd#�Zed$�Zfdd%l!mgZgmhZhmiZimjZjmkZkmlZle,d&�d��jmd��Zne,eOeod'�(����Zpe,eqeres������Zte,eQd����Zue,eRd)����Zv	dd*lNmwZxn
#e]$rdZxYnwxYweyexe,��sdZxd+�Zzezd,d�-��Z{ezd.d/�-��Z|ezd0d/�-��Z}ezd,d/�-��Z~ezd1d/�-��Z	dd2l�m�Z�ezd.d/e��3��Z�ezd0d/e��3��Z�ezd,d/e��3��Z�ezd1d/e��3��Z�n#e]$rdxZ�xZ�xZ�Z�YnwxYwdd4l�m�Z�dxZ�Z�dd5l�m�Z�dd6l�m�Z�	e�Z�dZ�d7Z�n(#e�$r d	Z�e,e���Z�n
#e�$rdZ�YnwxYwd8Z�YnwxYwddl�Z�ddl�Z�Gd9�d:e���Z�dd;l�m�Z�dd<l�m�Z�m�Z�dZ�dZ�d'Z�d=�Z�d�d>�Z�d�d?�Z�d�d@�Z�d�dA�Z�GdB�dCe���Z�GdD�dEe�e<��Z�GdF�dGe�e=��Z�GdH�dIe�e>��Z�GdJ�dKe��Z�GdL�dMe��Z	ej�����Z�dN�ZdO�Z�dP�Z�d�dQ�Z�dR�Z�e�e�����Z�e���epeteuevdS���ejdTkre���dUeni��eJ��Z�e{e}e~ee|e�e�e�e�dV�	Z�e���e,i������e,i������e,i������e,e�������e,e�������e,e�������dW���e�re�e�dX<e�r
e�e�dY<e�e�dZ<	ejd[kr)dd\l!m�Z�e,e�e�e�eof������e�d]<		ddl�Z�e�j�e�d^<n#e]$rYnwxYwe���e���e�e�������Z�[�e�d_�e�����D����Z�d`�Z�da�Z�db�Z�		d�dc�Z�Gdd�de��Z�gdf�Z�e�D]*\Z�Z�Z�e[e"eʦ�re�Z�eˠ���Z�n�+e�eΦ���gdg���Z�dh�Z�di�Z�dj�Z�dk�Z�dl�Z�dm�Z�dn�Z�do�Z�Gdp�dqe���Z�Gdr�dse���Z�Gdt�due���Z�eۦ�Z�iZ�	e�e8eݦ�e�zuZ�n
#er$rd	Z�YnwxYw[�dZ�e�dv��Z�d�dw�Z�dx�Z�d�dy�Z�dz�Z�d�d{�Z�d|�Z�d�d}�Z�d~�Z�d�Z�d��Z�d�d��Z�d��Z�d�d��Z�d��Z�de�j�dfd��Z�e�e"��d����Z�d��Z�e�e���d����Z�ese�rd��Z�nd��Z�e�eJfD]MZ�e���Z�e�e���D]5\Z�Z�e,e�e�e�������Z�e�e�j�vr
e�e�j�e�<�6�N[�[�[�[�[�e�e-��d����Z�e�e�j���d����Z�e�e��d����Z�e�e ��d����Z�d���Zd���Ze�e{��e�e}��e�e~��e�e��e�e|��d�������������Ze�rHe�e���e�e���e�e���e�e���d�����������Ze�r*e�e���d�����Ze�e���d�����Zex�dd�lN�m�Ze�ex��d�����Ze�et��d�����Ze\re�e$��d�����Zne�e$��d�����Ze\sZe�ek��e�eg��e�ej��e�ei��e�eh��d�������������Z	n&e�ek��e�eg��d�������Z	e�en��d�����Z
e�re�e8��d�����Zne�e8��d�����Ze�e3��d�����Ze�e6��e�e/��e�e1��d���������Z
d���Zd�d���Ze�eF��d�����Ze�eG��e�eH��d�������Zd���Zd���Ze�e(��d�����Zd���Zd���Ze�e4��d�d�����Ze��e��e�eC�j��d�������Ze��e��e��e��e�eC�j��e�eC�j��d�����������Ze�e#��d�����Z eZ�rQe[eYd���rDeY�j!�j"�Z#eY�j$eY�j%eY�j$f�e#�_&eY�j'�e#�_(eY�j!�j)�Z*eY�j'eY�j%f�e*�_&eY�j$�e*�_(eY�j!�j+�Z,eY�j'f�e,�_&eY�j$�e,�_(eY�j!�j-�Z.eY�j'f�e.�_&eY�j$�e.�_(eY�j!�j/�Z0eY�j'f�e0�_&eY�j%�e0�_(eY�j!�j1�Z2eY�j'eY�j%f�e2�_&eY�j3�e2�_(eY�j!�j4�Z5eY�j'eY�j$f�e5�_&eY�j!�j6�Z7eY�j'eY�j$f�e7�_&eY�j!�j8�Z9eY�j'eY�j%f�e9�_&eY�j!�j:�Z;eY�j'eY�j$f�e;�_&�e#eY�j<�e#eY�j$��eY�j=d���d���Z>e,�e>���Z?e��e?��d�����Z@�e?e�d�<�e?e�d�<e���A�e?��nd�Z>e[eDd���re�eD�jB��d�����ZCe[eDd���r$e�e,eD�jD����d�����ZEe[eDd���r$e�e,eD�jF����d�����ZGe[eDd���re�eD�jH��d�����ZId�d���ZJd���ZKd�d���ZLd���ZMb
b[�dS)�aK
dill: a utility for serialization of python objects

The primary functions in `dill` are :func:`dump` and
:func:`dumps` for serialization ("pickling") to a
file or to a string, respectively, and :func:`load`
and :func:`loads` for deserialization ("unpickling"),
similarly, from a file or from a string. Other notable
functions are :func:`~dill.dump_module` and
:func:`~dill.load_module`, which are used to save and
restore module objects, including an intepreter session.

Based on code written by Oren Tirosh and Armin Ronacher.
Extended to a (near) full set of the builtin types (in types module),
and coded to the pickle interface, by <mmckerns@caltech.edu>.
Initial port to python3 by Jonathan Dobson, continued by mmckerns.
Tested against "all" python types (Std. Lib. CH 1-15 @ 2.7) by mmckerns.
Tested against CH16+ Std. Lib. ... TBD.
�)�annotations)�dump�dumps�load�loads�copy�Pickler�	Unpickler�register�pickle�pickles�check�DEFAULT_PROTOCOL�HIGHEST_PROTOCOL�HANDLE_FMODE�CONTENTS_FMODE�
FILE_FMODE�PickleError�
PickleWarning�
PicklingError�PicklingWarning�UnpicklingError�UnpicklingWarning�dillN�)�adapter)�traceFii	i
i�)�_Picklerr
)�GLOBAL�POP)�LockType)�RLock)�CodeType�FunctionType�
MethodType�
GeneratorType�
TracebackType�	FrameType�
ModuleType�BuiltinMethodType)�MappingProxyType�	new_class)rrrrr)�
ReferenceType�	ProxyType�CallableProxyType)�OrderedDict)�Enum�EnumMeta)�partial)�
itemgetter�
attrgetterT�	pythonapi�numpyzNo module named 'numpy'c�*�ddlmaddlmaddlmadS)Nr)�ufunc)�ndarray)�dtypeT)r7r9�NumpyUfuncTyper:�NumpyArrayTyper;�
NumpyDType���[/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/dill/_dill.py�__hook__rBis=��-�-�-�-�-�-�/�/�/�/�/�/�)�)�)�)�)�)��4r@c��td�|jD����rdSt��|jtjus|jtjurdSdS)Nc3�:K�|]}|j|jfdkV��dS))r7r:N��
__module__�__name__��.0�cs  rA�	<genexpr>z*ndarraysubclassinstance.<locals>.<genexpr>qs1����\�\�a���a�j�)�-A�A�\�\�\�\�\�\r@FT)�all�__mro__rB�
__reduce_ex__r=�
__reduce__��obj_types rA�ndarraysubclassinstancerRps^���\�\�8�K[�\�\�\�\�\�	��5��
�
�
��!��)E�E�E��&�n�.G�G�G��5��tr@c�>�td�|jD����S)Nc3�:K�|]}|j|jfdkV��dS))r7r9NrErHs  rArKznumpyufunc.<locals>.<genexpr>{s1����^�^��A�L�!�*�-�1C�C�^�^�^�^�^�^r@)�anyrMrPs rA�
numpyufuncrVzs"���^�^�X�M]�^�^�^�^�^�^r@c��td�|jD����rdSt��|tt��uS)Nc3�:K�|]}|j|jfdkV��dS))r7r;NrErHs  rArKznumpydtype.<locals>.<genexpr>}s1����Z�Z�A���a�j�)�-?�?�Z�Z�Z�Z�Z�Zr@F)rLrMrB�typer>rPs rA�
numpydtyperZ|sE���Z�Z��IY�Z�Z�Z�Z�Z�	��5��
�
�
��4�
�+�+�+�+r@c��dS�NFr?��objs rArRrR�s��U�Ur@c��dSr\r?r]s rArVrV�����r@c��dSr\r?r]s rArZrZ�r`r@)�GetSetDescriptorType�ClassMethodDescriptorType�WrapperDescriptorType�MethodDescriptorType�MemberDescriptorType�MethodWrapperTypec����fd�S)Nc����S�Nr?)�y�xs �rA�<lambda>z<lambda>.<locals>.<lambda>�s���Q�r@r?�rls`rArmrm�s
���;�;�;�;�r@���base�__repr__)�_lru_cache_wrapperc��|�dtj��}|tjg|�Ri|��}t|��}|���|S)N�open)�pop�__builtin__ru�os�devnullrY�close)�args�kwargsru�f�ts     rA�
get_file_typer�sV���:�:�f�k�.�/�/�D���R�Z�)�$�)�)�)�&�)�)�A��Q���A��G�G�I�I�I��Hr@�rb)�	buffering�r���zr+b�wb)ru)r�ru)�BytesIO)�socket)�_reduce_socket)�exit�quit�get_ipythonr?c�8�eZdZdZd	d�Zd�Zd�Zd�Zd�Zd�Z	dS)
�SentinelzH
    Create a unique sentinel object that is pickled as a constant.
    Nc�z�||_|�*tj��jjd|_dS||_dS)NrG)�name�inspect�currentframe�f_back�	f_globalsrF)�selfr��module_names   rA�__init__zSentinel.__init__�s9����	���%�2�4�4�;�E�j�Q�D�O�O�O�)�D�O�O�Or@c�&�|jdz|jzS)N�.)rFr��r�s rArrzSentinel.__repr__�s�����$�t�y�0�0r@c��|Srjr?r�s rA�__copy__zSentinel.__copy__�����r@c��|Srjr?)r��memos  rA�__deepcopy__zSentinel.__deepcopy__�r�r@c��|jSrj�r�r�s rArOzSentinel.__reduce__��
���y�r@c��|jSrjr�)r��protocols  rArNzSentinel.__reduce_ex__�r�r@rj)
rGrF�__qualname__�__doc__r�rrr�r�rOrNr?r@rAr�r��s}��������*�*�*�*�1�1�1��������������r@r�)�_shims)�Reduce�Getattrc��|�dtjd��}tt	|g|�Ri|��|���S)z�
    Use pickling to 'copy' an object (i.e. `loads(dumps(obj))`).

    See :func:`dumps` and :func:`loads` for keyword arguments.
    �ignore)r�)rvr
�settingsrr)r^r{�kwdsr�s    rArr�sJ���X�X�h�	� 2�8� <�
=�
=�F���s�*�T�*�*�*�T�*�*�6�:�:�:�:r@c��ddlm}|�|dnt|��}|���}|�t	|||�����t||fi|���|��dS)zS
    Pickle an object to a file.

    See :func:`dumps` for keyword arguments.
    r�r�Nr�)�byref�fmode�recurse)r��intr�update�dictr	r)	r^�filer�r�r�r�r�r��_kwdss	         rArr�s���#�"�"�"�"�"�'/�'7�x�
�#�#�S��]�]�H��I�I�K�K�E�	�L�L��E���@�@�@�A�A�A��D�(�$�$�e�$�$�)�)�#�.�.�.�
�Fr@c�j�t��}t||||||fi|��|���S)a

    Pickle an object to a string.

    *protocol* is the pickler protocol, as defined for Python *pickle*.

    If *byref=True*, then dill behaves a lot more like pickle as certain
    objects (like modules) are pickled by reference as opposed to attempting
    to pickle the object itself.

    If *recurse=True*, then objects referred to in the global dictionary
    are recursively traced and pickled, instead of the default behavior
    of attempting to store the entire global dictionary. This is needed for
    functions defined via *exec()*.

    *fmode* (:const:`HANDLE_FMODE`, :const:`CONTENTS_FMODE`,
    or :const:`FILE_FMODE`) indicates how file handles will be pickled.
    For example, when pickling a data file handle for transfer to a remote
    compute service, *FILE_FMODE* will include the file contents in the
    pickle and cursor position so that a remote method can operate
    transparently on an object with an open file handle.

    Default values for keyword arguments can be set in :mod:`dill.settings`.
    )�StringIOr�getvalue)r^r�r�r�r�r�r�s       rArr�s;��0�:�:�D���d�H�e�U�G�<�<�t�<�<�<��=�=�?�?�r@c�D�t|fd|i|�����S)zW
    Unpickle an object from a file.

    See :func:`loads` for keyword arguments.
    r�)r
r)r�r�r�s   rArrs+���T�1�1�&�1�D�1�1�6�6�8�8�8r@c�<�t|��}t||fi|��S)ah
    Unpickle an object from a string.

    If *ignore=False* then objects whose class is defined in the module
    *__main__* are updated to reference the existing class in *__main__*,
    otherwise they are left to refer to the reconstructed type, which may
    be different.

    Default values for keyword arguments can be set in :mod:`dill.settings`.
    )r�r)�strr�r�r�s    rArr!s'���C�=�=�D���f�%�%��%�%�%r@c��eZdZdd�Zd�ZdS)�MetaCatchingDictNc�8�	||S#t$r|cYSwxYwrj)�KeyError)r��key�defaults   rA�getzMetaCatchingDict.get:s5��	���9����	�	�	��N�N�N�	���s�
��c�V�t|t��rtSt���rj)�
issubclassrY�	save_typer�)r�r�s  rA�__missing__zMetaCatchingDict.__missing__@s$���c�4� � �	����*�*�r@rj)rGrFr�r�r�r?r@rAr�r�9s7��������������r@r�c��eZdZdS)rN�rGrFr�r?r@rArrF��������Dr@rc��eZdZdS)rNr�r?r@rArrIr�r@rc��eZdZdS)rNr�r?r@rArrLr�r@rc���eZdZUdZeej�����Zded<	dZ	ddl
m
Z
d�Zdd	�Zejje_d
�Z
ej
je
_dS)
r	z1python's Pickler extended to interpreter sessionsz?typing.Dict[type, typing.Callable[[Pickler, typing.Any], None]]�dispatchFrr�c��tj}|�dd��}|�dd��}|�dd��}tj||g|�Ri|��t
|_i|_|�|dn||_d|_	|�|dn||_
|�|dn||_t��|_
||_dS)Nr�r�r�F)r	r�rv�StockPicklerr��_main_module�_main�_diff_cache�_byref�	_strictio�_fmode�_recurser0�	_postproc�_file)r�r�r{r�r�r�r�r�s        rAr�zPickler.__init__]s����#�����'�4�(�(�����'�4�(�(���8�8�I�t�,�,����d�D�8�4�8�8�8�4�8�8�8�!��
����+1�>�h�w�'�'�v������+1�>�h�w�'�'�v���/7�/?���+�+�X��
�$�������
�
�
r@Tc���t|��}tr�|tus�|tjvsut	|��rt|��d���}t
|��rt|��d���}t|��rt|��d���}tr"|turdtz}t|���tj|||��dS)Nc	���tj|d|��t|dt|dd����}tj|||���tj|d��dS)NzNu: %sr�rGr��# Nu)�loggerr�getattrr��save_global��picklerr^r�s   rA�save_numpy_ufuncz&Pickler.save.<locals>.save_numpy_ufunctsc���L��(�C�8�8�8�"�3����Z�QU�8V�8V�W�W�D� �,�W�c��E�E�E�E��L��&�1�1�1��Fr@c��tj|d|��|�t|jf|���tj|d��dS)NzDt: %sr]z# Dt)r�r�save_reduce�_create_dtypemetarY�r�r^s  rA�save_numpy_dtypez&Pickler.save.<locals>.save_numpy_dtype�sM���L��(�C�8�8�8��'�'�(9�C�H�;�C�'�P�P�P��L��&�1�1�1��Fr@c��tj|d|j|j��t	|dd��}|���\}}}|�t||||f|���tj|d��dS)NzNu: (%s, %s)�__dict__r]r�)r�r�shaper;r�rOr��
_create_array)r�r^�npdictr}r{�states      rA�save_numpy_arrayz&Pickler.save.<locals>.save_numpy_array�s~���L��.�#�)�S�Y�O�O�O�$�S�*�d�;�;�F�%(�^�^�%5�%5�N�A�t�U��'�'�
��$�u�V�7L�RU�'�V�V�V��L��&�1�1�1��Fr@z;Can't pickle %s: attribute lookup builtins.generator failed)
rYr=r	r�rVrrZrR�GENERATOR_FAILr&rr��save)r�r^�save_persistent_idrQr�r�r��msgs        rAr�zPickler.savems����9�9���&	�8�t�#3�#3�x�7�CS�7S�7S��(�#�#�
��(�#�#���$�#���(�#�#�
��(�#�#���$�#��'�x�0�0�
��(�#�#���$�#���	%�h�-�7�7�O�R_�_�C���$�$�$���$��%7�8�8�8�8�8r@c�X�tj|��tj||��dSrj)r��trace_setupr�r�r�r^s  rArzPickler.dump�s,����4� � � ���$��$�$�$�$�$r@N�T)rGrFr�r�r�r�r�r�__annotations__�_sessionr�r�r�rr?r@rAr	r	Ps��������;�;���|�4�9�9�;�;�<�<�
�=�=�=�=���H�"�"�"�"�"�"���� /9�/9�/9�/9�b �$�,�D�L�%�%�%� �$�,�D�L�L�Lr@r	c�V�eZdZdZddlmZdZd�Zd�Zd�Ze	jje_dS)	r
zBpython's Unpickler extended to interpreter sessions and more typesrr�Fc��||fdkr|jjS||fdkrtd��S|dkrd}tj|||��S)N)rw�__main__)rw�NoneTypez	dill.dill�
dill._dill)r�r�rY�StockUnpickler�
find_class)r��moduler�s   rAr�zUnpickler.find_class�s]���D�>�8�8�8��:�&�&��d�^�:�
:�
:���:�:���[� � �<�&��(��v�t�<�<�<r@c��tj}|�dd��}tj|g|�Ri|��t
|_|�|dn||_dS)Nr�)r	r�rvr�r�r�r��_ignore)r�r{r�r�rs     rAr�zUnpickler.__init__�s^���#���(�(�8�T�*�*�����4�t�4�4�4�t�4�4�4�!��
�-4�_�x��)�)�'����r@c��tj|��}t|��jt	t
dd��krK|jsDt	|jt|��j��|_	n#ttf$rYnwxYw|S)NrGr�)r�rrYrFr�r�rr�rG�	__class__�AttributeError�	TypeErrorr�s  rArzUnpickler.load�s{���!�$�'�'����9�9��7�<��Z�#P�#P�P�P��<�
8�%,�T�Z��c���9K�%L�%L�S�]�]��&�y�1�7�7�7�4�4�7�����
s�,A5�5B	�B	N)
rGrFr�r�r�r�r�r�rr�r?r@rAr
r
�sk������L�L�"�"�"�"�"�"��H�=�=�=�J�J�J����"�&�.�D�L��Dr@r
c�$�|tj|<dS)zBexpose :attr:`~Pickler.dispatch` table for user-created extensionsN�r	r��r~�funcs  rArr�s���G��Q��
�Fr@c����fd�}|S)zHdecorator to register types to Pickler's :attr:`~Pickler.dispatch` tablec�&��|tj�<|Srjr)r
r~s �rA�proxyzregister.<locals>.proxy�s���"������r@r?)r~r
s` rArr�s#���������Lr@c���ttj�����D]E\}}|jt
kr0tj|=|tvrt|tj|<�FdS)z7drop dill-registered types from pickle's dispatch tableN)�listr�r��itemsrFrG�pickle_dispatch_copy)rYr
s  rA�_revert_extensionr�sq���<�0�6�6�8�8�9�9�I�I�
��d��?�h�&�&��%�d�+��+�+�+�.B�4�.H��%�d�+��	I�Ir@c�j�|atr't�"	ddlm}n#t$rddl}YnwxYw|adSdSdS)a
    Reduces size of pickles by only including object which have changed.

    Decreases pickle size but increases CPU time needed.
    Also helps avoid some unpickleable objects.
    MUST be called at start of script, otherwise changes will not be recorded.
    Nr)�diffr)�	_use_diffr��ImportError)�on�ds  rA�use_diffr�ss���I���T�\�	�#�#�#�#�#�#�#���	�	�	�������	����������\�\s��*�*c#�fK�ddl}tttj�����t|j�����z�����}|D]6\}}t
|dd��dkrt|��tur||fV��7dS)NrrF�builtins)�typesr�rrwr�rr�rY)rrr��values    rA�_create_typemapr�s������L�L�L��T�+�&�,�,�.�.�
/�
/�
�%�.�&�&�(�(�
)�
)�*�	+�	+�+0�5�7�7�����
��U��5�,��-�-��;�;���K�K�4�'�'��u�*�����
�Fr@)�PartialType�	SuperType�ItemGetterType�AttrGetterTypei��CellType)	�FileType�BufferedRandomType�BufferedReaderType�BufferedWriterType�TextWrapperType�PyBufferedRandomType�PyBufferedReaderType�PyBufferedWriterType�PyTextWrapperType)�DictKeysType�DictValuesType�
DictItemsType�
OdictKeysType�OdictValuesType�OdictItemsType�ExitType�	InputType�
OutputTypei�)�GenericAlias�GenericAliasIteratorType�HKEYTypec#�$K�|]\}}||fV��dSrjr?)rI�k�vs   rArKrKFs*����<�<�4�1�a��A��<�<�<�<�<�<r@c�*�tj|��Srj)�marshalr)�strings rA�
_unmarshalr@Hs���=�� � � r@c��t|Srj)�_reverse_typemapr�s rA�
_load_typerCKs
���D�!�!r@c��||�Srjr?)�typeobjr{s  rA�_create_typerFNs���7�D�>�r@c���t||p
t��|||��}|�|j�|��|�||_d|jvrt
��d|jd<|S)N�__builtins__)r$r�r�r��__kwdefaults__�__globals__�globals)�fcode�fglobals�fname�	fdefaults�fclosure�fdict�fkwdefaultsr
s        rA�_create_functionrSQsw����x�1�4�6�6�5�)�X�N�N�D����
���U�#�#�#���)����T�-�-�-�+2�9�9�^�+D����(��Kr@c�F�eZdZdZd�Zd�Zd�Zd�Zed���Z	d�Z
dS)	�matchaI
    Make avaialable a limited structural pattern matching-like syntax for Python < 3.10

    Patterns can be only tuples (without types) currently.
    Inspired by the package pattern-matching-PEP634.

    Usage:
    >>> with match(args) as m:
    >>>     if   m.case(('x', 'y')):
    >>>         # use m.x and m.y
    >>>     elif m.case(('x', 'y', 'z')):
    >>>         # use m.x, m.y and m.z

    Equivalent native code for Python >= 3.10:
    >>> match args:
    >>>     case (x, y):
    >>>         # use x and y
    >>>     case (x, y, z):
    >>>         # use x, y and z
    c�"�||_d|_dSrj)r�_fields)r�rs  rAr�zmatch.__init__vs����
�����r@c��|Srjr?r�s rA�	__enter__zmatch.__enter__yr�r@c��dSr\r?)r��exc_infos  rA�__exit__zmatch.__exit__{s���ur@c�b�t|j��t|��krdS||_dS)zjust handles tuple patternsFT)�lenrr{)r�r{s  rA�casez
match.case}s.���t�z�?�?�c�$�i�i�'�'��5���	��tr@c�v�|j�,tt|j|j����|_|jSrj)rWr��zipr{rr�s rA�fieldszmatch.fields�s1���<����D�I�t�z� :� :�;�;�D�L��|�r@c��|j|Srj)rb�r��items  rA�__getattr__zmatch.__getattr__�s���{�4� � r@N)rGrFr�r�r�rYr\r_�propertyrbrfr?r@rArUrUas���������(����������������X��
!�!�!�!�!r@rU))����a�co_endlinetablez�argcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name qualname firstlineno linetable endlinetable columntable exceptiontable freevars cellvars)�rirj�co_exceptiontablez�argcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name qualname firstlineno linetable                          exceptiontable freevars cellvars)�ri�
�co_linetablez�argcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name          firstlineno linetable                                         freevars cellvars)�ri��co_posonlyargcountz�argcount posonlyargcount kwonlyargcount nlocals stacksize flags code consts names varnames filename name          firstlineno lnotab                                            freevars cellvars)�ri��co_kwonlyargcountz�argcount                 kwonlyargcount nlocals stacksize flags code consts names varnames filename name          firstlineno lnotab                                            freevars cellvars)�code�lnotab�	linetable�endlinetable�columntable�exceptiontablec�H	��t|dt��s|^}}nd}t|��5}|�d��r�tdkr�tg|dd��t
|dd��r|d���n|d�|dd��t
|dd��r|d���n|d�t
|d	d��r|d	���n|d	�|d
�|d�R�cddd��S|j��n�|�d��r�td
kstdkr�tg|dd��t
|dd��r|d���n|d�|dd��t
|dd��r|d���n|d�|d�|d	�R�cddd��S|j�td
kr|j	�d<�n�|r|n|j	�d<�n�|�d��r�tdkr�tg|dd��t
|dd��r|d���n|d�|dd��t
|dd��r|d���n|d�|d�|d�R�cddd��S|j�n�|�d��r�tdkr�tg|dd��t
|dd��r|d���n|d�|dd��d�|dd�D���|d�|d�R�cddd��S|j�ntd���ddd��n#1swxYwY��dd����d|����dd����d�d����dd����d d����d!d���fd"�tD��}t|�S)#Nrr@)�argcount�posonlyargcount�kwonlyargcount�nlocals�	stacksize�flagsrx�consts�names�varnames�filenamer��qualname�firstlinenorzr}�freevars�cellvarsrm��encoderv����)rr�r�r�r�r�rxr�r�r�r�r�r��LNOTAB_OR_LINETABLEr�r�rorr�
rzry)rr�r�r�r�rxr�r�r�r�r�r�ryr�r�ru��)rr�r�r�r�r�rxr�r�r�r�r�r�r�rzr{r|r}r�r�rhc3�bK�|]*}t|d��r|���n|V��+dS�r�N)�hasattrr�)rIrks  rArKz_create_code.<locals>.<genexpr>�s=����U�U�A�G�A�x�$8�$8�?�a�h�h�j�j�j�a�U�U�U�U�U�Ur@��z$pattern match for code object failedr�r�r�r}r{r|c3��K�|]E}|tvr0t�|d��r�|���n�|V��FdSr�)�
ENCODE_PARAMSr�r�)rIr;rbs  �rArKz_create_code.<locals>.<genexpr>�sp�����"�"��#$�}�"4�"4�����H�9U�9U�"4�F�1�I������[a�bc�[d�"�"�"�"�"�"r@)
�
isinstancer�rUr_�CODE_VERSIONr#r�r�rbr�r�
setdefault�CODE_PARAMS)r{�LNOTAB�mrbs   @rA�_create_coder��sx����d�1�g�s�#�#���
������	�t���GJ���6�6�
���E	J�
�v�%�%����"�1�"�X��(/��Q���(B�(B�O�D��G�N�N�$�$�$��Q����!�B�$�Z��*1��b��8�)D�)D�R�D��H�O�O�%�%�%�$�r�(�	�
*1��b��8�)D�)D�R�D��H�O�O�%�%�%�$�r�(����H�
���H����GJ�GJ�GJ�GJ�GJ�GJ�GJ�GJ�"�X�F�F�
�V�V�
���4	J�
�v�%�%���)>�)>����"�1�"�X��(/��Q���(B�(B�O�D��G�N�N�$�$�$��Q����!�B�$�Z��*1��b��8�)D�)D�R�D��H�O�O�%�%�%�$�r�(�	�
��H����H�
���3GJ�GJ�GJ�GJ�GJ�GJ�GJ�GJ�B�X�F��v�%�%�&'�&;��{�#�#�-3�#N�6�6��9N��x� � �
�V�V�
��� 	J�
�u�$�$����"�1�"�X��(/��Q���(B�(B�O�D��G�N�N�$�$�$��Q����!�B�$�Z��*1��b��8�)D�)D�R�D��H�O�O�%�%�%�$�r�(�	�
��H����H�
���[GJ�GJ�GJ�GJ�GJ�GJ�GJ�GJ�j�X�F�F�
�V�V�
���	J�
�z�)�)����"�1�"�X��(/��Q���(B�(B�O�D��G�N�N�$�$�$��Q����!�B�$�Z��V�U��b�QS�e��U�U�U�	�
��H����H�
���{GJ�GJ�GJ�GJ�GJ�GJ�GJ�GJ�J�X�F�F�!�"H�I�I�I�OGJ�GJ�GJ�GJ�GJ�GJ�GJ�GJ�GJ�GJ�GJ����GJ�GJ�GJ�GJ�T���'��+�+�+�
���h��'�'�'�
���k�3�'�'�'�
���j�&��.�1�1�1�
���&��,�,�,�
���n�d�+�+�+�
���m�T�*�*�*�"�"�"�"� �"�"�"�D��T�?�s-�C6O�6CO�C+O�B!O�:O�O!�$O!c�*�|�i}|�d}||g|�Ri|��S)Nr?r?)�ftypeobjr
r{r�s    rA�
_create_ftyper��s6���|����|����8�D�(�4�(�(�(�4�(�(�(r@c��|s%tjd�d��S|dkrtjdStj|S)Nr?�r?)�typing�Tuple�	copy_with)�argzr{s  rA�_create_typing_tupler�sH���.��|�B��)�)�"�-�-�-��u�}�}��|�B����<���r@c�r�ddlm}|��}|r$|�d��std���|S)Nr)�LockF�Cannot acquire lock)�	threadingr��acquirer)�lockedr{r��locks    rA�_create_lockr�sO���������4�6�6�D�
�9��|�|�E�"�"�	9�!�"7�8�8�8��Kr@c��t��}|�|�||f��|r#|���std���|S)Nr�)�	RLockType�_acquire_restore�	_is_ownedr)�count�ownerr{r�s    rA�
_create_rlockr�sV���;�;�D������u�e�n�-�-�-��5�T�^�^�%�%�5��3�4�4�4��Kr@c��tjtjtjd�}|t	|�����vr
||}	�n?|dkrt
j��}	�n$|dkrddl}
|
�	|��}	�n	tj
�|��}n#t$rd}YnwxYw|s(|rtd|z���d|vr
|tkrd}d}ntj
�|��}||kr|rt!d���|t"kr|}	|tkrL||d	|vr|nd	��}	|	�|��d	|vr |	���|||��}	n�|dkrddl}
|
�	|��}	n�|t"kr�d	|vsd
|vr�tj}
d|vr|
tjz}
n|
tjz}
t
jt
j||
��|��}	t3|	d|	��}t3|d
|��}||_|	j|ksJ�n|||��}	n=#t6tf$r)tj��d}t;|���wxYw|r|	���n&|dkr |t<kr|	�|��|	S)N)z<stdin>z<stdout>z<stderr>z	<tmpfile>z<fdopen>rFz)[Errno 2] No such file or directory: '%s'r�zinvalid buffer size�wrl�+�buffer�rawr) �sys�	__stdin__�
__stdout__�
__stderr__r�keysrx�tmpfile�tempfile�
TemporaryFile�path�exists�	Exception�FileNotFoundErrorr�getsize�
ValueErrorr�writerz�O_CREAT�O_RDWR�O_WRONLY�fdopenrur�r��IOErrorr[rr�seek)r��mode�position�closedru�strictior��fdatar�r}r�r��current_sizer�r��errs                rA�_create_filehandler�s
���}�����
(�
(�E��t�E�J�J�L�L�!�!�!�!��$�K���	
��	�	��J�L�L���	
��	�	������"�"�4�(�(���	��W�^�^�D�)�)�F�F���	�	�	��F�F�F�	�����	1��
"�'�(S�VZ�(Z�[�[�[������*�!4�!4�!���L�L��7�?�?�4�0�0�L��l�"�"��
(� �!6�7�7�7��.�(�(�'��	'��
�"�"��D��s�d�{�{�t�t��<�<����������d�?�?��G�G�I�I�I���T�4�(�(�A����#�#������*�*�4�0�0����.�(�(��4�K�K�3�$�;�;��
���$�;�;��R�Y�&�E�E��R�[�(�E��I�b�g�d�E�2�2�D�9�9���A�x��+�+���A�u�a�(�(������v��~�~�~�~�~��D��t�$�$�����*�+�	'�	'�	'��,�.�.��#�C�!�#�&�&�&�	'������	���	�	�	�	�	�Q���5�L�0�0�	���x�����Hs�B/�/B>�=B>�/D$I�:Jc�|�t|��}|r|���n|�|��|Srj)r�rzr��rr�r�r}s    rA�_create_stringir�`s:������A�
��q�w�w�y�y�y�y�
�&�&��
�
�
��Hr@c��t��}|r|���n*|�|��|�|��|Srj)r�rzr�r�r�s    rA�_create_stringor�fsG���
�
�A�
��q�w�w�y�y�y�y��w�w�u�~�~�~��v�v�h�����Hr@c��eZdZd�Zd�ZdS)�_itemgetter_helperc��g|_dSrj�rr�s rAr�z_itemgetter_helper.__init__os
����
�
�
r@c�:�|j�|��dSrj)r�appendrds  rA�__getitem__z_itemgetter_helper.__getitem__qs���
���$�����r@N)rGrFr�r�r�r?r@rAr�r�ns2�������������r@r�c��eZdZdd�Zd�ZdS)�_attrgetter_helperNc�"�||_||_dSrj)�attrs�index)r�r�r�s   rAr�z_attrgetter_helper.__init__vs����
���
�
�
r@c�.�t�|d��}t�|d��}|�%t|��}|�|��n d�|||g��||<t|��||��S)Nr�r�r�)�object�__getattribute__r^r��joinrY)r��attrr�r�s    rAr�z#_attrgetter_helper.__getattribute__ys����'�'��g�6�6���'�'��g�6�6���=���J�J�E��L�L�������8�8�U�5�\�4�$8�9�9�E�%�L��t�D�z�z�%��'�'�'r@rj)rGrFr�r�r�r?r@rAr�r�us7����������(�(�(�(�(r@r�c��eZdZd�ZdS)�_dictproxy_helperc��|Srjr?)r�rks  rA�__ror__z_dictproxy_helper.__ror__�s���r@N)rGrFr�r�r?r@rAr�r��s#����������r@r��_CELL_EMPTYc�:��|tur|��fd�jdS)Nc����Srjr?)rs�rArmz_create_cell.<locals>.<lambda>�s���E�r@r)r��__closure__)�contentsrs @rA�_create_cellr��s'����{�"�"����M�M�M�&�q�)�)r@c�R�ddlm}|�ddlm}||��g|�R�S||g|�R�S)Nr)�ref��UserDict)�weakrefr�collectionsr)r^r{rrs    rA�_create_weakrefr�s]��������
�{�(�(�(�(�(�(��s�8�8�:�:�%��%�%�%�%��3�s�?�T�?�?�?�r@c�j�ddlm}|�#|r
|d�g|�R�Sddlm}||��g|�R�S||g|�R�S)Nr)r
c��|Srjr?rns rArmz#_create_weakproxy.<locals>.<lambda>�s��1�r@r)rr
rr)r^�callabler{r
rs     rA�_create_weakproxyr
�s���������
�{��4�E�E�*�*�4�t�4�4�4�4�(�(�(�(�(�(��u�X�X�Z�Z�'�$�'�'�'�'��5���t����r@c� �t|��Srj)�eval)�repr_strs rA�
_eval_reprr�s����>�>�r@c�r�||�}|�|��|�|j�|��|Srj)�__setstate__r�r�)r}r{r�r��arrays     rAr�r��sB��
�A�t�H�E�	���u����
��
����f�%�%�%��Lr@c�z�tdurt��|�tStt|����S)NT)r>rBrY)�scalar_types rAr�r��s7���T���8�:�:�:������
�;�'�'�(�(�(r@c�v�t|dz|zd���}|�|Sddl}|�||||���}|S)Nr�T��safer)�defaultsr)�_import_moduler�
namedtuple)r��
fieldnames�
modulenamer�class_rr~s       rA�_create_namedtupler�sV��
�J��,�t�3�$�
?�
?�
?�F�
���
��������t�Z�(�:��V�V�A��Hr@c��d}	|�d��}td|�d��dz��D]b}|�d|��}	t	|d��}n#t
$rYnwxYw|}	|dd�D]}
t
|	|
��}	�|	}d}n#t$rYnwxYw|r4t||��r|Stt|���d|�d����t|||��}t||��|S)	NF�utf8rr�rTz object exists at z% but a PyCapsule object was expected.)
�decode�ranger��rsplit�
__import__rr�r��_PyCapsule_IsValidrrY�_PyCapsule_New�_PyCapsule_SetContext)�pointerr��context�
destructor�
attr_found�uname�ir�rr^r��capsules            rA�_create_capsuler.�s`���J�
����F�#�#���q�%�+�+�c�*�*�1�,�-�-�	�	�A��L�L��a�(�(�E�
�#�E�!�H�-�-�����
�
�
���
�����C��a�b�b�	�
)�
)���c�4�(�(����G��J�����
�
�
���
�������g�t�,�,�	��N��_c�dk�_l�_l�_l�_l�nr�nr�nr�s�t�t�t�!��$�
�;�;���g�w�/�/�/��s6�AB#�A.�-B#�.
A;�8B#�:A;�;'B#�#
B0�/B0c�L�	|�d��d}t|dz|zdz��S#t$rd	|j}t	|��t
ur	||}nt
||��}n'#ttf$rt
||��}YnwxYw|cYSwxYw)N�'riz.__dict__["z"])	�splitrr�r�rY�
DictProxyTyper�rr�)�objclassr�r
r�s    rA�_getattrr4�s�����~�~�c�"�"�1�%���D��&�t�+�D�0�1�1�1���	�	�	�	*��$�D��D�z�z�]�*�*��D�z����x��-�-������)�	*�	*�	*��8�D�)�)�D�D�D�	*��������	���s3�25�
B#�6A7�6B#�7!B�B#�B�B#�"B#c�N�t||d��ptt|��Srj)r�rw)r�r�s  rA�	_get_attrr6�s#���4��t�$�$�B���T�(B�(B�Br@c�r�	|�d��rtj|Sd|vr;|�d��}d�|dd���}|d}nt|��St
t|dd|g��|��S#tttf$r|rYdS�wxYw)Nz__runtime__.r�r�)
�
startswithr��modulesr1r�r#r�rrr�)�import_namerrrr^s     rArr�s���
��!�!�.�1�1�	+��;�{�+�+�
�K�
�
��%�%�c�*�*�E��X�X�e�C�R�C�j�)�)�F���)�C�C��k�*�*�*��z�&�$��s�e�<�<�c�B�B�B�����2�����	��4�4�
����s�&B�A
B�7 B�B6�4B6c��|�d��D]o}|dkr#td�||�����	|}t||��}�?#t$r$td�||�����wxYw||fS)Nr�z<locals>z&Can't get local attribute {!r} on {!r}z Can't get attribute {!r} on {!r})r1r�formatr�)r^r��subpath�parents    rA�
_getattributer?s����:�:�c�?�?�	5�	5���j� � � �!I�"(�&��s�"3�"3�5�5�
5�	5��F��#�w�'�'�C�C���	5�	5�	5� �!C�"(�&��s�"3�"3�5�5�
5�	5������;�s�A�.Bc�b�t|dd��}|dvs*|r*t|d���r|jr||jjkrdSt|d��r?t
|d���}	t||j��\}}||uS#t$rYdSwxYwt
|dz|jzd���}||uS)	NrF)r�NF��childr�Trr�)
r��is_dillr�r�rGr�rr?r�r)r^r�r�r�found�_s      rA�_locate_functionrFs����#�|�T�2�2�K��(�(�(��)���u�5�5�5�)�:A�:J�)�OZ�^e�^k�^t�Ot�Ot��u��s�N�#�#�	���$�7�7�7��	�$�V�S�-=�>�>�H�E�1��C�<����	�	�	��5�5�	�����{�S�0�3�<�?�d�K�K�K����|�s�$B�
B�
Bc�D�|���D]
\}}|||<�dSrjr�)�dest�sourcer;r<s    rA�	_setitemsrJ)s2�����������1���Q����r@c	��|tjurt|��}|�t|d���}|r�|�g}t	|��|jvrkt
|d��r!|j�dt|d|j	���d�nd}tjd|�d	|�d
�t��|�
|��dS||jt	|��<|j|d|i�|r�|j�t	|����}t!|��D]�}|dt"ur�|d
\}}|r{|�|�|jt	|��d����|�t-|�������n��|j|�|�t0����dSdS)NTrArFr�r�� r�Cannot pickle �: z<has recursive self-references that trigger a RecursionError.r^rr)r��
NO_DEFAULTr�rC�idr�r�rFr�rG�warnings�warnrr�r�rv�reversedrJr�r�r��_batch_setitems�iterrr )	r��	reduction�is_pickler_dillr^�
postproc_listr��postprocrHrIs	         rA�_save_with_postprocrZ.s��
�g� � � ��Y������!�'��6�6�6���3�
� ��M��c�7�7�g�'�'�'�^e�fi�kw�^x�^x�A�s�~�~�~�w�s�N�C�L�/Y�/Y�/Y�/Y�Z�Z�A�D��M�M�ps�ps�ps�uy�uy�uy�z�}L�
M�
M�
M�����$�$�$��F�%2���"�S�'�'�"��G���,��,�,�,����$�(�(��C���1�1��!�(�+�+�	�	�I���|�y�(�(� )��|���f����M�M�'�+�+�g�l�2�d�8�8�.D�Q�.G�"H�"H�I�I�I��+�+�D������,@�,@�A�A�A�A��#��#�Y�/�/��M�M�#�����'��
	�	r@c���tj|d|��t|d��r�|j|j|j|j|j|j|j	|j
|j|j|j
|j|j|j|j|j|j|j|j|j|jf}�nt|d��r�t1j��5t4st1jdt8���|j|j|j|j|j|j|j	|j
|j|j|j
|j|j|j|j|j|j|j|jf}ddd��n#1swxYwY�nHt|d��ri|j|j|j|j|j|j|j	|j
|j|j|j
|j|j|j|j|j|jf}n�t|d��rc|j|j|j|j|j|j	|j
|j|j|j
|j|j|j|j|j|jf}n\|j|j|j|j|j	|j
|j|j|j
|j|j|j|j|j|jf}|�t<||���tj|d	��dS)
NzCo: %srlrnr�)�categoryrqrtr]z# Co)r�rr��	co_lnotab�co_argcountrtrw�
co_nlocals�co_stacksize�co_flags�co_code�	co_consts�co_names�co_varnames�co_filename�co_name�co_qualname�co_firstlinenorqrl�co_columntablern�co_freevars�co_cellvarsrQ�catch_warnings�OLD312a7�filterwarnings�DeprecationWarningr�r��r�r^r{s   rA�	save_coderrgs���
�L��(�C�(�(�(��s�%�&�&�2
��M��O�S�3��!�3�>�3�3C��L�#�+�s�}�c�l��O�S�_�c�k�3�?���� 0�#�2E���� 5�s���O�	
���
��)�	*�	*�'
�
�
$�
&�
&�	�	��
O��'��;M�N�N�N�N��
����!7��%�s�~�s�7G���c�k�3�=�#�,�����#�+�s���"�C�$4�c�6K������D�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
��n�	%�	%�
��M��O�S�3��!�3�>�3�3C��L�#�+�s�}�c�l��O�S�_�c�k���� 0�#�/��O�
���
��*�	+�	+�
��O�S�3��!�3�>�3�3C��L�#�+�s�}�c�l��O�S�_�c�k����
�s���O�

���
�O�S�2�C�N���c�l�C�K����L�#�/�3�?��K��+�S�]��O�S�_�
������d���4�4�4�
�L��&�!�!�!�
�Fs�BE/�/E3�6E3c�N�dt|��jt|��fzS)z3Make a short string representation of a dictionary.z<%s object at %#012x>)rYrGrPr]s rA�
_repr_dictrt�s!��"�d�3�i�i�&8�"�S�'�'�%B�B�Br@c�j�t|d���r{||jjkrk|jr|js]tj|dt|����|�tdd����tj|d���n�t|d���sm|tjkr]tj|dt|����|�tdd����tj|d	���n(d
|vr�|tjkr�t|d
��tur�|tt|d
d��dd��uretj|d
t|����|�td|d
zd����tj|d��nltj|dt|����t|d���r|jrd|_tj||��tj|d��dS)NFrAzD1: %szc__builtin__
__main__
zUTF-8z# D1zD3: %szc__main__
__dict__
z# D3rGTr�zD4: %sz
c%s
__dict__
z# D4zD2: %sz# D2)rCr�r�r��_first_passr�rrtr��bytesr�rYr�r�rr��	save_dictr�s  rA�save_module_dictry�s
���w�e�$�$�$�&���
�0F�)F�)F��!�*G�&-�&9�*G���W�h�
�3���8�8�8��
�
�e�6��@�@�A�A�A���W�f�%�%�%�%��g�U�+�+�+�&�#��9N�2N�2N���W�h�
�3���8�8�8��
�
�e�3�W�=�=�>�>�>���W�f�%�%�%�%�	�s�	�	�s�l�&;�;�;��S��_�%�%��,�,��w�~�c�*�o�d�C�C�Z�QU�V�V�V�V���W�h�
�3���8�8�8��
�
�e�-��J��?��I�I�J�J�J���W�f�%�%�%�%���W�h�
�3���8�8�8��7�%�(�(�(�	(�W�-=�	(�"'�G����w��,�,�,���W�f�%�%�%�
�Fr@c�*���d����fd�dD��S)Nc����fd�}|S)Nc���tj|d|��|jtz}|��|f|���tj|d��dS)Nz
Dkvi: <%s>r]z# Dkvi)r�r�mapping�_dictproxy_helper_instancer�)r�r^r}r
s   �rA�_save_dict_viewzLsave_dict_view.<locals>.save_dict_view_for_function.<locals>._save_dict_view�sY�����W�l�C�8�8�8��+�(B�B���#�#�D�7�*�#�#�>�>�>���W�h�/�/�/�/�/r@r?)r
rs` rA�save_dict_view_for_functionz3save_dict_view.<locals>.save_dict_view_for_function�s$���
0�
0�
0�
0�
0�
#�"r@c	�F��g|]}|�t�|����f��Sr?)r�)rI�funcname�dicttyper�s  ��rA�
<listcomp>z"save_dict_view.<locals>.<listcomp>�sD���
�
�
���2�2�7�8�X�3N�3N�O�O�P�
�
�
r@)r��valuesrr?)r�r�s`@rA�save_dict_viewr��sC����	#�	#�	#�
�
�
�
�
�7�
�
�
�	
r@c�8���fd�}�fd�}�fd�}d|fd|fd|ffS)Nc����tj|d|��tj�jt|��f��}|��j|f|���tj|d��dS)NzDk: <%s>r]z# Dk)r�rr�r��fromkeysrr�r��r�r^�dict_constructorr�s   �rA�save_dict_keysz&save_dict_view.<locals>.save_dict_keys�sm����L��*�c�2�2�2�%�}�X�->��c����M�M������
�0@�/B���L�L�L��L��&�)�)�)�)�)r@c����tj|d|��tj�t	|��f��}|��j|f|���tj|d��dS)NzDv: <%s>r]z# Dv)r�rr�r��	enumerater�r�r�s   �rA�save_dict_valuesz(save_dict_view.<locals>.save_dict_values�sk����L��*�c�2�2�2�%�}�X�	�#���7H�I�I�������2B�1D�#��N�N�N��L��&�)�)�)�)�)r@c���tj|d|��|��j�|��f|���tj|d��dS)NzDi: <%s>r]z# Di)r�rr�r)r�r^r�s  �rA�save_dict_itemsz'save_dict_view.<locals>.save_dict_items�sW����L��*�c�2�2�2��������#���0@�c��J�J�J��L��&�)�)�)�)�)r@r�r�rr?)r�r�r�r�s`   rAr�r��ss���	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*��^�$�
�'�(�
�o�&�
�	
r@c	��t||��s[tj|d|��|�t|j|j|jf|���tj|d��nbtj|d|��t|dt|dd����}tj
|||���tj|d��dS)	NzC1: %sr]z# C1zC2: %sr�rGr�z# C2)rFr�rr��	ClassTyperG�	__bases__r�r�r�r�r�s   rA�
save_classobjr��s����C��)�)�
&���W�h��,�,�,����I���c�m�(+��(6�;>�	�	@�	@�	@�	��W�f�%�%�%�%���W�h��,�,�,��s�N�G�C��T�,J�,J�K�K��� ��#�D�9�9�9�9���W�f�%�%�%�
�Fr@c�r�|j}t|�����turUt	j|d|��t
j|||������t	j|d��n�|jturR|r|dkrJt	j|d|��|�
t|f|���t	j|d��nRt	j|d|��t
j
|g|����Rd	|i�t	j|d
��dS)NzGa0: %sr�z# Ga0r�zGa1: %sr]z# Ga1zGa2: %sr^z# Ga2)�__args__rYrOr�r�rr�r��
__origin__�tupler�r�rqs   rA�save_generic_aliasr�s(���<�D��C�N�N������$�$���W�i��-�-�-�� ��#�C�N�N�4D�4D�E�E�E�E���W�g�&�&�&�&�	��5�	 �	 �$�	 �$�%�-�-���W�i��-�-�-����0�4�'�s��C�C�C���W�g�&�&�&�&���W�i��-�-�-�� ��E�3�>�>�+;�+;�E�E�E��E�E�E���W�g�&�&�&�
�Fr@c��tj|d|��|�t|���f|���tj|d��dS)NzLo: %sr]z# Lo)r�rr�r�r�r�s  rA�	save_lockr�sR��
�L��(�C�(�(�(�����s�z�z�|�|�o�3��?�?�?�
�L��&�!�!�!�
�Fr@c���tj|d|��|���}t|�d��d���d�d����}t|�d��d���d��}|�t||f|���tj|d��dS)	NzRL: %szcount=rr�>zowner=r]z# RL)r�rrrr�r1�rstripr�r�)r�r^r�r�r�s     rA�
save_rlockr�s���
�L��(�C�(�(�(������A������!�!�!�$�*�*�,�,�Q�/�6�6�s�;�;�<�<�E������!�!�!�$�*�*�,�,�Q�/�0�0�E����
��e�~�3��?�?�?�
�L��&�!�!�!�
�Fr@c��tj|d|��|jt|���tj|d��dS)NzSo: %sz# So)r�rr��
reduce_socketr�s  rA�save_socketr�*sE��
�L��(�C�(�(�(��G���s�+�+�,�,�
�L��&�!�!�!�
�Fr@c�$�|jrd}nP|���|tjtjtjfvrd}n|���}t|d���rJ|jtkr:||j
d��}|���}|���nd}t|d���r|j
}|j}nd}d}|�t|j
|j||j||||f|���dS)	Nrr�TrAr�rFr])r��flushr�r�r�r��tellrCr�rr��readrzr�r�r�r�)r�r^�open_r�r}r�r�r�s        rA�
_save_filer�0s��
�z�"�����	�	�����3�>�3�>�3�=�A�A�A��H�H��x�x�z�z�H��w�d�#�#�#����*�(D�(D��E�#�(�C� � ��������	���	�	�	�	����w�d�#�#�#���$�������������*�S�X�s�x��-0�Z���-2�E�-;�@C��E�E�E��Fr@c��tj|d|��t||t��}tj|d��|S�NzFi: %sz# Fi)r�rr�ru�r�r^r}s   rA�	save_filer�Ks@���L��(�C�(�(�(��7�C��&�&�A�
�L��&�!�!�!��Hr@c��tj|d|��t||t��}tj|d��|Sr�)r�rr��_openr�s   rAr�r�Ws@��
	��W�h��,�,�,��w��U�+�+����W�f�%�%�%��r@c��tj|d|��|jrd}d}n(|���}|���}|�t|||jf|���tj|d��dS�NzIo: %srrr]z# Io)r�rr�r�r�r�r��r�r^rr�s    rA�save_stringir�f�����W�h��,�,�,��:�	:��E�1����L�L�N�N�E�s�x�x�z�z�H����O�e�X�.1�j�.:�?B�	�	D�	D�	D���W�f�%�%�%��r@c��tj|d|��|jrd}d}n(|���}|���}|�t|||jf|���tj|d��dSr�)r�rr�r�r�r�r�r�s    rA�save_stringor�rr�r@)�	lru_cachec��tj|d|��tr|���}|jf}n$|���}|d|df}|tjkrtt|d���}nt}|�	||j
f|���tj|d��dS)NzLRU: %s�maxsize�typedT)�is_callabler]z# LRU)r�r�OLD39�
cache_infor��cache_parametersr��__defaults__r�r��__wrapped__)r�r^r|r{�wrappers     rA�save_lru_cacher��s�����W�i��-�-�-��	8��^�^�%�%�F��N�$�D�D��)�)�+�+�F��9�%�v�g��7�D��9�)�)�)��Y��$�?�?�?�G�G��G����G�c�o�%7�S��A�A�A���W�g�&�&�&��r@c��tj|d|��|�t|j|jf|���tj|d��dS)NzSu: %sr]z# Su)r�rr��super�
__thisclass__�__self__r�s  rA�
save_superr��sR��
�L��(�C�(�(�(������ 1�3�<�@�c��J�J�J�
�L��&�!�!�!�
�Fr@c���t|jdd��}|��t|��turtt|j|j��|krVt
j|d|��|�t|j|jf|���t
j|d��dSt
j|d|��|�t|j|jf|���t
j|d��dS)N�__code__zMe2: %sr]z# Me2�Me1: %s�# Me1)
r��__func__rYr#r�rGr�rr�r%)r�r^rxs   rA�save_instancemethod0r��s����s�|�Z��6�6�����T�
�
�(� :� :��#�,���5�5��<�<��L��)�S�1�1�1�����#�,���)E�3��O�O�O��L��'�*�*�*��F���W�i��-�-�-����J���s�|�(D�#��N�N�N���W�g�&�&�&��r@c��tj|d|��|�t|j|jf|���tj|d��dS)Nr�r]r�)r�rr�r%r�r�r�s  rAr�r��sQ����W�i��-�-�-����J���s�|�(D�#��N�N�N���W�g�&�&�&��r@c���tj|d|��|�t|j|j|���f|���tj|d��dS�NzWr: %sr]z# Wr�r�rr�r4�__objclass__rGrrr�s  rA�save_wrapper_descriptorr��sm��	��W�h��,�,�,����H�s�'7���'*�|�|�~�~�'7�<?�	�	A�	A�	A���W�f�%�%�%��r@c���tj|d|��|�t|j|j|���f|���tj|d��dSr�r�r�s  rAr�r��sm��	��W�h��,�,�,����H�s�'7���'*�|�|�~�~�'7�<?�	�	A�	A�	A���W�f�%�%�%��r@c���	|j}n�#t$r�tj|d|��|�t
tjf|���|�tj|df��|�	t��tj|d��YdSwxYwt|d���r�t|��|j
vr|j
t|��}n4tt|j
�����d��}|�ttj|d|��|�t
t"f|���|�tj|d|ff��tj|d��dStj|d	|��|�t
|f|���tj|d
��dS)NzCe3: %sr]�
cell_contentsz# Ce3TrAzCe2: %sz# Ce2zCe1: %sz# Ce1)r�r�r�rr�r�r�r��_delattrr�r rCrPr��nextrUr��	_CELL_REFr��_setattr)r�r^r}rYs    rA�	save_cellr��s���������������W�i��-�-�-�	���L�6�+=�*?�S��I�I�I�	���F�O�c�?�-C�D�D�D��
�
�c������W�g�&�&�&����%����&�w�d�#�#�#��
�a�5�5�G�%�%�%��(��A���/�H�H��D��!2�!9�!9�!;�!;�<�<�d�C�C�H����L��)�S�1�1�1�
����y�l���D�D�D��O�O�V�_�s�O�Q�.G�H�I�I�I��L��'�*�*�*��F�
�L��)�S�)�)�)�����q�d���4�4�4�
�L��'�"�"�"�
�Fs�
�BB'�&B'c���tj|dt|����|tz}|�t
|f|���tj|d��dS�NzMp: %sr]z# Mp)r�rrtr~r�r2)r�r^r}s   rA�save_dictproxyr��s[����W�h�
�3���8�8�8��2�2�����M�G�:�3��?�?�?���W�f�%�%�%��r@c���tj|dt|����|�t|���f|���tj|d��dSr�)r�rrtr�r2rr�s  rAr�r��sX����W�h�
�3���8�8�8����M�C�H�H�J�J�=�c��B�B�B���W�f�%�%�%��r@c��tj|d|��|�t|j|j|jf|���tj|d��dS)NzSl: %sr]z# Sl)r�rr��slice�start�stop�stepr�s  rA�
save_slicer�sU��
�L��(�C�(�(�(������	�3�8�S�X�>�C��H�H�H�
�L��&�!�!�!�
�Fr@c��tj|d|��|�t|���f|���tj|d��dS)NzSi: %sr]z# Si)r�rr�rrrr�s  rA�save_singletonr�sU���L��(�C�(�(�(����
�S�\�\�^�^�$5�3��?�?�?�
�L��&�!�!�!�
�Fr@c��t|��}t|��}n#t$rtd��cYSwxYw||krt|��S	t	|�d���d��dd���}n�#t$r�ts>t	|�d���d��dd���}nlttj����}|D](}t|��|krt|��ccYS�)dt|��z}t|���YnwxYw|S)z.get memory address of proxy's reference objectNr�z at r�r�rpz)Cannot reference object for proxy at '%s')�reprr��ReferenceErrorrPr�r�r1r��IS_PYPYrU�gc�get_objects)r^�_repr�_str�address�objects�_objr�s       rA�
_proxy_helperr�s[����I�I�E��C�����������$�x�x���������u�}�}�R��W�W�n�&��d�k�k�#�&�&�,�,�V�4�4�R�8�r�B�B�B�����	&�	&�	&��	&��%�,�,�s�+�+�1�1�&�9�9�"�=�B�G�G�G�G�G��2�>�+�+�,�,�G��
7�
7����:�:��%�%�b��h�h������%�=��3���G�C� ��%�%�%�
�G�	&�����Ns%� �<�<�=B�BE�,"E�Ec��gd�}|D]}|t|��kr|cS�|r't|j�����}n tt	j����}|D]}|t|��kr|cS�t
|��}n-#t$r tdt|��z���wxYwtd|z���)zCget object located at the given memory address (inverse of id(obj)))NTFz"'%s' is not a valid memory addresszCannot reference object at '%s')
rPrUr�r�r�r��hexrr�r�)r�r�specialr^r�s     rA�_locate_objectr�)s���!�!�!�G��*�*���b��g�g���c�z�z�z��
�+��v��-�-�/�/�0�0������)�)�*�*�'��*�*���b��g�g���c�z�z�z���w�<�<�����M�M�M��<�s�7�|�|�K�L�L�L�M����
�:�W�D�
E�
E�Es�B�*Cc��|��}tj|d|��|�t|f|���tj|d��dS)NzR1: %sr]z# R1)r�rr�r�r�r^�refobjs   rA�save_weakrefr�9sU��
�S�U�U�F�
�L��(�C�(�(�(�����&����<�<�<�
�L��&�!�!�!�
�Fr@c���tj|d|z��tt|����}|�t
|t
|��f|���tj|d��dS)NzR2: %rr]z# R2)r�rr�r�r�r
r	r�s   rA�save_weakproxyr�Bsm���L��(�S�.�)�)�)�
�M�#�.�.�
/�
/�F����)�F�H�S�M�M�+B���L�L�L�
�L��&�!�!�!�
�Fr@c�����t�d��sdS�j�dSgd�}tjj�t��fd�|D����p'�j�t��pd�jvS)N�__file__TF)�base_prefix�base_exec_prefix�exec_prefix�prefix�real_prefixc	3��K�|]�}tt|����j�t	t|����p>��j����t	t|������V���dSrj)r�r�r�r8r�)rIr�r�rps  ��rArKz%_is_builtin_module.<locals>.<genexpr>Us������
�
���s�D�!�!�	
��O�&�&�w�s�D�'9�'9�:�:�
F��r�&�/�"�"�-�-�b�b���d�1C�1C�.D�.D�E�E�
�
�
�
�
�
r@z
site-packages)r�r�rxr��realpathrU�endswith�EXTENSION_SUFFIXES)rr�rs` @rA�_is_builtin_moduler
Ls������6�:�&�&�3�t�t�
���u�u�
X�W�W�E�	��	�B�	�
�
�
�
�
��
�
�
�	
�	
�	.��?�#�#�$6�7�7�
	.��f�o�-�	r@c�h�t|dd��dup|tj���vS)N�
__loader__)r�r�r9r�)rs rA�_is_imported_moduler
_s1���6�<��.�.�d�:�\�f���HZ�HZ�H\�H\�>\�\r@c�r�	t|��}t|d���o||ju}|jdvr|r|r�tj|d|��t|��r|jn	d|jz}|j���}dD]}|�|d���t&D]<}t)|�|��dd���d��r||=�=|�	t|f||�	��tj|d
��n�|jdkrCtj|d|��|�|d���tj|d
��nNtj|d|��|�	t|jf|���tj|d
��dS)NFr�rrr)�seenzM2: %s with diffzDiff: %s)r^r�z# M2zM1: %sr]z# M1TrA)rrr�z__runtime__.%s)rHrrFr�IPythonr�zM2: %s�_dillr�)rGr1r�
whats_changedr�r�r�infor�r�r�RuntimeErrorr
rCr�r
r�rrv�IPYTHON_SINGLETONSr�r�r8r�)r�r^�changed�builtin_mod�is_session_main�mod_name�	main_dictres        rA�save_modulerbs���)*�$)��-�-��!�'��6�6�6�O�3�'�-�;O���L� B�B�B�;�B�"�
C��L��(�C�0�0�0�':�3�'?�'?�d�s�|�|�EU�X[�Xd�Ed�H���)�)�+�+�I�6�
*�
*���
�
�d�D�)�)�)�)�*�
(�
(���9�=�=��.�.��b�A�A�L�L�Y�W�W�(�!�$����������I��V�V�V��L��&�)�)�)�)�
�\�\�
)�
)��L��(�C�0�0�0�����'��2�2�2��L��&�)�)�)�)��L��(�C�0�0�0��������S��I�I�I��L��&�)�)�)�
�Fr@c�J�t|j��dkr|jdj}n3i}t|j��D]}|�|j���g}t
�|��D]7\}}	||}	||	ur|�|���(#t$rY�4wxYw|D]}t
�	||���tt|��t��r,|�	dd��|�	dd��||fS)zDRetrieve a copy of the dict of a class without the inherited methodsrrr�N�__weakref__)r^r�r�rSr�r�rr�r�rvr�rY)
�cls�clsdictr�rX�inherited_dictrq�	to_remover�r�
base_values
          rA�_get_typedict_typer#�sB��
�3�=���Q�����q�)�2������S�]�+�+�	1�	1�D��!�!�$�-�0�0�0�0��I��z�z�'�*�*�����e�	�'��-�J��
�"�"�� � ��&�&�&����	�	�	��D�	����� � ������$������$�s�)�)�T�"�"�)����J��%�%�%����M�4�(�(�(��E�>�s�!B#�#
B0�/B0c���ttd��rBtj|��\}}}}|j�|��fd�|D����nPt|d��r0|j}|j�|��fd�|D����nt
d|���d|vrC|�dd��|�dd��|�dd��n|�dd��||fS)	N�	_get_dumpc3�2�K�|]}�|��ffV��dSrjr?�rI�regrs  �rArKz$_get_typedict_abc.<locals>.<genexpr>�s0�����F�F�c�h������1�F�F�F�F�F�Fr@�
_abc_registryc3�"�K�|]	}�|ffV��
dSrjr?r's  �rArKz$_get_typedict_abc.<locals>.<genexpr>�s*�����D�D�C�h���/�D�D�D�D�D�Dr@zCannot find registry of ABC %s�
_abc_cache�_abc_negative_cache�	_abc_impl)r��abcr%r�extendr)rrv)r^�_dictr�rX�registryrErs      @rA�_get_typedict_abcr2�s+����s�K� � �	C�!�m�C�0�0���1�a���<�����F�F�F�F�X�F�F�F�F�F�F�F�	��o�	&�	&�C��$���<�����D�D�D�D�8�D�D�D�D�D�D�D��<�c�B�B�B��%���
�	�	�/�4�(�(�(�
�	�	�,��%�%�%�
�	�	�'��.�.�.�.�	�	�	�+�t�$�$�$��%�<�r@c	�����tvrVtj|d���|�tt�f����tj|d���n��jtfk�r
t�fd�dD����r�tj|d���t�dt�dd����}�j	|kr#|�g}|�
t�d|ff���js-t|t�j	�j�jff�|�	��n@�fd
��jD��}t|t�j	�j�j|ff�|�	��tj|d��dS�t#d��urJtj|d���|�t&d
z��tj|d���n
�t(urPtj|d���|�t"t*f����tj|d���n��t,urPtj|d���|�t"t.f����tj|d���nX�t0urJtj|d���|�t&dz��tj|d���nt|dd��}t3���t|dd��v}t5�|��}|�s|�s|�r	|�g}tj|d���t7��j���d|��\}}	|�dd��}
t#|
��t>kr|
f}
|
D]}|� |d���tC�tDj#��r@tj|d���tI�||	|��\}}	tj|d��t�dd��}|	�9|	�%��D]$\}
}|�
t�|
|ff���%|�|�
t�d|ff��tM�d��s6t|tNt#����j	�j|ff�|�	��nTdt#���i}|rtQtR|���}nd}t|tT�j	�j+||ff�|�	��tj|d��n�t�dt�dd����}tj|d���|r tYj-d��d�t\d���|r+tYj-d ��d!�j�d|�d"�t\d���t_j0|�|�#��tj|d$��dS)%NzT1: %sr]z# T1c�0��g|]}t�|����Sr?)r�)rIr�r^s  �rAr�zsave_type.<locals>.<listcomp>�s#���+t�+t�+t�4�G�C��,>�,>�+t�+t�+tr@)rW�_asdict�_make�_replacezT6: %sr�rG�r^rXc�<��g|]}|�jv��j|��Sr?)�_field_defaults)rI�fieldr^s  �rAr�zsave_type.<locals>.<listcomp>�s/���l�l�l�u�u�X[�Xk�Ok�Ok��+�E�2�Ok�Ok�Okr@z# T6zT7: %ss__builtin__
NoneType
z# T7senum
EnumMeta
r�r�r?zT2: %s�	__slots__zABC: %sz# ABC�__orig_bases__�	metaclass)rIz# T2zT4: %szCannot locate reference to r�ri)�
stacklevelrMrNz= has recursive self-references that trigger a RecursionError.r�z# T4)1�_typemapr�rr�rCr�r�rLr�rGr��setattrr:rZrrWrFrYr�r�NotImplementedType�NotImplemented�EllipsisType�Ellipsisr2rPrFr#r�rr�r�rvr�r.�ABCMetar2rr�rFr rJr,r=rQrRrr�r�)r�r^rX�obj_namerr��
obj_recursive�incorrectly_namedr0r��slotsr�r�r;r<�	_metadict�_dict_updates `               rAr�r��sq���
�h�����W�h��,�,�,�	���J��#��(8�c��B�B�B���W�f�%�%�%�%�	��5�(�	"�	"�s�+t�+t�+t�+t�Ks�+t�+t�+t�'u�'u�	"���W�h��,�,�,��3����Z��0N�0N�O�O���<�8�#�#��$� "�
�� � �'�C���+J�!K�L�L�L��"�	\���*<�s�|�S�[�Z]�Zh�>i�)j�ps�DQ�
R�
R�
R�
R�
R�l�l�l�l���l�l�l�H���*<�s�|�S�[�Z]�Zh�jr�>s�)t�z}�N[�
\�
\�
\�
\���W�f�%�%�%���

��T�
�
�	�	���W�h��,�,�,��
�
�f�9�9�:�:�:���W�f�%�%�%�%�	�"�	"�	"���W�h��,�,�,����D�>�"3���=�=�=���W�f�%�%�%�%�	��	�	���W�h��,�,�,����D�8�+�3��7�7�7���W�f�%�%�%�%�	������W�h��,�,�,��
�
�f�2�2�3�3�3���W�f�%�%�%�%���(�D�1�1���3���7�7�K��#D�#D�D�
� 0��g� >� >�>���G	*�m�G	*�0A�G	*��$� "�
�
�L��(�C�0�0�0�-�c�3�<�3D�3D�3F�3F��m�\�\�L�E�5�
�I�I�k�2�.�.�E��E�{�{�c�!�!�����
&�
&���	�	�$��%�%�%�%��#�s�{�+�+�
/���W�i��5�5�5�0��e�U�M�R�R���u���W�g�.�.�.��s�N�D�9�9�H�� �!�K�K�M�M�A�A�D�A�q�!�(�(�'�C��A�;�)?�@�@�@�@��#��$�$�g��^�X�/N�%O�P�P�P��3� 0�1�1�
:�#�G�l���I�I�s�|�S�]�E�=�.��=�:�:�:�:�:� ��c����	��(�#.�y��#G�#G�#G�L�L�#'�L�#�G�i��L�#�"4�i��:�.��=�:�:�:�:�
�L��&�)�)�)�)��s�N�G�C��T�4R�4R�S�S�H��L��(�C�0�0�0� �
��
�
�8;���=�#� �����
�
��
�
�36�3�3��������R�#� �	����
�$�W�c��A�A�A�A��L��&�)�)�)�
�Fr@c���tj|d|��|�t|��|j|j|j|jf|���tj|d��dS)NzPr: %sr]z# Pr)r�rr�rY�fget�fset�fdelr�r�s  rA�
save_propertyrQ=sk���L��(�C�(�(�(�����S�	�	�C�H�c�h���#�+�#N���!�!�!�
�L��&�!�!�!�!�!r@c��tj|d|��|j}|�t	|��|f|���tj|d��dS)NzCm: %sr]z# Cm)r�rr�r�rY)r�r^�	orig_funcs   rA�save_classmethodrTEs\��
�L��(�C�(�(�(���I�����S�	�	�I�<�S��9�9�9�
�L��&�!�!�!�!�!r@c	��t||���s�t|j��tur�t	|dd��}|�t
j}t|d���}d}	t||j	��\}}t	|dd��|urd}n#t$rYnwxYw|rLtj|d|��|�
t|df|���tj|d��dStj|d	|��t	|d
d��}t	|dd��}t	|dd��}	t	|d
t
��}
g}|rddlm}||dd���}
d|ji}nf|j}
|	r"|
|
jurt	|d|
��j}
|
}n;|
�0|j�)t	t|jd��dd��|
ur|
}n	d|ji}|
�o||
urkd�|
���D��}|D],}||vr&||�t*||
ff��n�-|�t*||
ff��|j}i}dD]}t	||d��}|�|||<�|j	|jkr
|j	|d<d|vs|j|dkr
|j|d<|j}t|��t.ur||d<d}|r||f}t1|t2|j||j|j|f|f||���|r�t7t9|�����d��}|r^|r\|D]Y}t:|d|ff}	|�|��n#t>$rY�1wxYw|j
|�|� tB���Ztj|d��nbtj|d|��t	|dt	|dd����}tEj#|||���tj|d��dS)NrFTrFr�zF3: %sr]z# F3zF1: %sr�r��_main_modified�_original_mainr)�
globalvars)r��builtinrGr�r�c�,�h|]}t|����Sr?)rP)rI�gs  rA�	<setcomp>z save_function.<locals>.<setcomp>�s��;�;�;�!��1���;�;�;r@)r�rIr�r�r8r�z# F1zF2: %sr�z# F2)$rFrYr�r#r�rwrGrr?r�rr�rr��detectrXrFrJr�r�r�rJr�r�rZrSr�r�rUrA�remover�r�r r�r�)r�r^r�r�
_pypy_builtinrDrEr�r�rVrWrXrX�
globs_copy�globs�glob_ids�
stack_element�closure�
state_dict�	fattrname�fattrr��topmost_postproc�cell�possible_postprocr�s                          rA�
save_functionrkXs����C��)�)�m&������X�-�-�"�#�|�T�:�:�K��"�)�2��#�K�d�;�;�;�F�!�M�
�(���1A�B�B���q��5�*�d�3�3�s�:�:�$(�M���!�
�
�
���
�����
���W�h��4�4�4��#�#�G�e�Z�-@�c�#�J�J�J���W�f�-�-�-�����W�h��,�,�,��7�J��5�5���G�[�$�7�7�	� ��*:�D�A�A�� ��*:�K�H�H���
��	5�*�*�*�*�*�*�#��C��t�D�D�D�J� ���0�E�E���J��
5�*��0G�"G�"G�$�W�g�~�F�F�O�
�"����'�C�N�,F��N�3�>�4�@�@�*�d�S�S�Wa�a�a�"���#�S�^�4���!�e�:�&=�&=�<�;�z�'8�'8�':�':�;�;�;�H�!*�
G�
G�
� �H�,�,��m�,�3�3�Y��
�@S�4T�U�U�U��E�-��$�$�i�%��1D�%E�F�F�F��/���
�I�	.�	.�I��C��D�1�1�E�� �(-�
�9�%����s�|�+�+�),�)9�J�~�&��U�"�"�c�n��j�8I�&I�&I�'*�~�J�|�$������;�;�d�"�"�%*�J�z�"��E��	&��:�%�E��G�&6���e�S�\�3�3C��9
��&��-�	9�	9�	9�	9��
	'�#�D��)9�)9�);�);�$<�$<�d�C�C���
'�+�
'�#�
'�
'�D�)0�4��#�2N�(O�%�!�(�/�/�0A�B�B�B�B��%�!�!�!� ��!����(�G�'�):�;�;��M�M�#�&�&�&�&���W�f�%�%�%�%���W�h��,�,�,��s�N�G�C��T�,J�,J�K�K��� ��#�D�9�9�9�9���W�f�%�%�%�
�Fs$� -B�
B�B�M�
M%�$M%sdill._dill._testcapsulec��tj|d|��t|��}t||��}t	|��}t|��}|�t||||f|���tj|d��dS)NzCap: %sr]z# Cap)r�r�_PyCapsule_GetName�_PyCapsule_GetPointer�_PyCapsule_GetContext�_PyCapsule_GetDestructorr�r.)r�r^r�r'r(r)s      rA�save_capsulerq�s�����W�i��-�-�-�!�#�&�&��'��T�2�2��'��,�,��-�c�2�2�
����O�g�t�W�j�-Q�WZ��[�[�[���W�g�&�&�&�&�&r@�
PyCapsuleType�_HAS_DEFAULT_FACTORY_CLASSc��tj|d|��|�tdz��tj|d��dS)Nz	DcHDF: %ss!dataclasses
_HAS_DEFAULT_FACTORY
z# DcHDF�r�rr�rr�s  rA�*save_dataclasses_HAS_DEFAULT_FACTORY_CLASSrvsF����W�k�3�/�/�/��
�
�f�E�E�F�F�F���W�i�(�(�(�(�(r@�MISSINGc��tj|d|��|�tdz��tj|d��dS)NzDcM: %ssdataclasses
MISSING
z# DcMrur�s  rA�save_dataclasses_MISSING_TYPErysF����W�i��-�-�-��
�
�f�8�8�9�9�9���W�g�&�&�&�&�&r@�KW_ONLYc��tj|d|��|�tdz��tj|d��dS)Nz	DcKWO: %ssdataclasses
KW_ONLY
z# DcKWOrur�s  rA�save_dataclasses_KW_ONLY_TYPEr|sF����W�k�3�/�/�/��
�
�f�8�8�9�9�9���W�i�(�(�(�(�(r@�_FIELD_BASEc���tj|d|��|�tdz|j���zdz��tj|d��dS)NzDcFB: %ssdataclasses
�
z# DcFB)r�rr�rr�r�r�s  rA�save_dataclasses_FIELD_BASEr�s\����W�j�#�.�.�.��
�
�f�/�/�#�(�/�/�2C�2C�C�e�K�L�L�L���W�h�'�'�'�'�'r@c���|r	tf}n ttttt
f}	t
|fi|��}	t|���|���k��}nJ#ttf$r6tjd��||k}tjr
tjd=YnwxYwt|d��r&|������}|rdS|s^t|��t|��k}|r|St!t|����t!t|����kSdS#|$rYdSwxYw)a�
    Quick check if object pickles with dill.

    If *exact=True* then an equality test is done to check if the reconstructed
    object matches the original object.

    If *safe=True* then any exception will raised in copy signal that the
    object is not picklable, otherwise only pickling errors will be trapped.

    Additional keyword arguments are as :func:`dumps` and :func:`loads`.
    r�r�toarrayTF)r�r�AssertionError�NotImplementedErrorrrr�boolrLrrQro�filtersr�r�rYr�)r^�exactrr��
exceptions�pik�results       rAr
r
sd���f�9�,�Z�Z���1D�m�Ud�e�
���3���$����	9��#�'�'�)�)�s�w�w�y�y�0�1�1�F�F���	�*�	9�	9�	9��#�H�-�-�-��C�Z�F���8�X�%5�a�%8���	9�����6�9�%�%�	,��^�^�%�%�)�)�+�+�F���$�$��	6��#�Y�Y�$�s�)�)�+�F��$�f�}���S�	�	�?�?�d�4��9�9�o�o�5�5��u�������u�u����sA�
E�7A3�2E�3AB:�7E�9B:�:;E�7%E�9E�E"�!E"c���|�dd��}|�dd��}|�ddl}|j}t|t��ddl}d}	t
|g|�Ri|��}d}|r|rtd��n#|r|rtd��wwwxYw|�dt|���d	�}	|�	|	�
dd
����sdnd}	|rt|	��dS)
a$
    Check pickling of an object across another process.

    *python* is the path to the python interpreter (defaults to sys.executable)

    Set *verbose=True* to print the unpickled object in the other process.

    Additional keyword arguments are as :func:`dumps` and :func:`loads`.
    �verboseF�pythonNrTzDUMP FAILEDz" -c import dill; print(dill.loads(z))ro�SUCCESSzLOAD FAILED)rvr��
executabler�r��
subprocessr�printr��callr1)
r^r{r�r�r�r�r��failr�r�s
          rArrDs/���h�h�y�%�(�(�G�
�X�X�h��
%�
%�F�
�~��
�
�
�����v�s���������D�!��S�(�4�(�(�(�4�(�(�����	!�G�	!��-� � � ����	!�G�	!��-� � � � �	!�	!����9?����T�
�
�
�
�
K�C�%�?�?�3�9�9�T�!�+<�+<�=�=�
P�)�)�=�C���
�c�
�
�
�
�Fs�A<�<Bc��|dust|jd��s	d|jvSt|j���vS)z#check the dill-ness of your picklerF�mror)r�rrFr	r�)r�rBs  rArCrCnsD����~�~�W�W�%6��>�>�~���+�+�+��g�'�+�+�-�-�-�-r@c���tj���D]@\}}	|tj|<�#t$rtjtd|��Y�=wxYwdS)z1extend pickle with all of dill's registered typeszskip: %sN)r	r�rr�r�r�rr�r	s  rA�_extendr�tsu���"�(�(�*�*�1�1���$�	1�'+�L�!�!�$�$���	1�	1�	1��L��*�a�0�0�0�0�0�	1����
�Fs�5�%A�A)NNNNrjr�)NNNNN)F)FF(Nr��
__future__r�__all__rFrQr�rr�_trace�logrxr�rr�
hexversion�OLD38r��OLD310rnrrwrrr�r
r�rr �_threadr!r"r�rr#r$r%r&r'r(r)r*�
memoryview�
BufferTyperYr�rErDrCrBr��	SliceType�TypeTyper!�
XRangeTyper+r2r,rrrrrr�r�r>r�r.�dataclassesrr-r.r/rr0�enumr1r2�	functoolsr3�operatorr4r5r��importlib.machinery�	importlibr��	machineryr	�ctypes�
HAS_CTYPESr�r�rr<r>r=�
PathFinder�	find_specrBrRrVrZrbrcrdrerfrgr�r$r�r r�r�rr!r"r#rs�LRUCacheTyper�rr%r)r&r'r(�_pyiorur�r-r*r+r,�ior�r�r5r6r��
SocketType�multiprocessing.reductionr�r��__IPYTHON__�
IS_IPYTHONr4r�	NameErrorr�r�r�r�r�rr�r�r�rrrrrrrrr�r��Warningrrrr	r�rrrrrrBr�rl�_incedental_reverse_typemapr�r�rr7rUr�winregr9�set�_incedental_typesr@r@rCrFrSrU�ALL_CODE_PARAMS�version�new_attr�paramsr�r1r��intersectionr�r�r�r�r�r�r�r�r�r�r�r�r~�__d�MAPPING_PROXY_TRICKr�r�r�rr
rr�r�rr.r4r6rr?rFrJrOrZrrrtryr��
__dicttype�__obj�
__funcname�
__savefuncr��__tviewr��
_GenericAliasr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
rr#r2r�rg�abstractpropertyrQ�staticmethod�classmethod�abstractstaticmethod�abstractclassmethodrTrkr6�
PyCapsule_Newr%�c_void_p�c_char_p�argtypes�	py_object�restype�PyCapsule_GetPointerrn�PyCapsule_GetDestructorrp�PyCapsule_GetContextro�PyCapsule_GetNamerm�PyCapsule_IsValidr$�c_bool�PyCapsule_SetContextr&�PyCapsule_SetDestructor�_PyCapsule_SetDestructor�PyCapsule_SetName�_PyCapsule_SetName�PyCapsule_SetPointer�_PyCapsule_SetPointer�cast�create_string_buffer�_testcapsulerrrq�addrsrvrwryrzr|r}r�r
rrCr�r?r@rA�<module>r�s�����(#�"�"�"�"�"������
�����%�%�%�%�%�%�#�#�#�#�#�#���	�	�	�	�
�
�
�
����	�	��)�	#��	��)�	#��

�.�9�
$���N�Y�&������H�H�H�H�H�H�H�H���������������&�&�&�&�&�&�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�
�
��	��t�H�~�~���T�.�)�)���	���
�
�>�>�>�>�>�>�>�>�b�b�b�b�b�b�b�b�b�b�b�b�b�b���������	�	�	�	�
�
�
�
�����?�?�?�?�?�?�?�?�?�?�#�#�#�#�#�#���������������+�+�+�+�+�+�+�+��������U�9�.�A�B�B����M�M�M��J��'�&�+�.�.�.�G�G�������J��G�G�G�������
�
���	���)�)�+�+�5�5�g�>�>�5��k�3�4�4�4��N��J��N�N���	�	�	��D�	��������&�	�	�	�_�_�_�,�,�,�,�3�2�2�%�%�%�%�%�%�����������������
�4�&�&�&��*�*�6�q�9�:�:���d�7�7�3�Q�'�'�'�(�(���D���y�)�)�+�+�.�.�/�/�	���j�j��m�m�$�$����j�j��,�,�-�-���<�<�<�<�<�<�<�������L�L�L������z�,��%�%���L�
�
�
��=���+�+�+���-��r�2�2�2��"�]�5�B�7�7�7��"�]�4�2�6�6�6��"�]�4�2�6�6�6��b�#�#�#�#�#�#�%�
�c�R�e�D�D�D��(�=��"�5�I�I�I��(�=���%�H�H�H��(�=���%�H�H�H�����b�b�b�]a�a��a�,�a�/C�FZ�FZ�FZ�b����"�"�"�"�"�"���	�J�'�'�'�'�'�'�E�E�E�E�E�E���J��H�8���������J��D��J�J�����%�%�%��h�h�h�%��������	��������
�
�
�
������v����,������#�#�#�#�#�#�#�#�
����
�
�;�;�;���������89�9�9�9�&�&�&�&�0�����t����	�	�	�	�	�G�[�	�	�	�	�	�	�	�	�m�]�	�	�	�	�	�	�	�	�
��	�	�	�S-�S-�S-�S-�S-�l�S-�S-�S-�j	�	�	�	�	��	�	�	�@�$�,�1�1�3�3�����
���I�I�I�����"����4���)�)�*�*�������$�$�	������>�I�������H������+�-�-���,�,�,�&�0�0�0�*�
�
���"�"��D������O�O��d�2�9�9�;�;�'�'��T�"�(�(�*�*�%�%��T�!�&�&�(�(�^�^��t�A�H�H�J�J�'�'��d�1�7�7�9�9�o�o�$�$�����7�.6��
�+��;�/8���,�0:���-�	��>�Y���"�"�"�"�"�"�>B�d�4�4���UY�\_�[a�Hb�Hb�Cc�Cc�>d�>d�� :�;��	��M�M�M�.4�o��
�+�+���	�	�	��D�	�������3�4�4�4��C�3�:�:�<�<�=�=����4�<�<�#3�#9�#9�#;�#;�<�<�<�<�<��!�!�!�"�"�"����=A�<@����� +!�+!�+!�+!�+!�+!�+!�+!�Z����"1����G�X�v��w�x��"�"�����l�l�n�n��
�����K� � �-�-�X�X�X�Z�Z�
�Z�Z�Z�x)�)�)����������E
�E
�E
�N
�
�
�
�
�
����������(�(�(�(�(��(�(�(����������/�.�0�0���� �
�-�-��"4�"4�7Q�"Q�R����� � � ����� �����
�	��h�}�%�%��*�*�*�*�
��������������)�)�)�
�
�
�
����<��� C�C�C�����"�������"���
=A�g�FX�hl�,�,�,�,�r
��(���8�8���8�tC�C�C�
��$��������4�)
�%�)
�
�
�
�
�$
�
�
�2���3�3�J�
�J�L�L�E�"0�.��"<�"<�3�3��
�J��$�1�w�w�u�j�1�1�3�3�4�4���'�*�*�*�(2�G��W�%��3���z�7�J�
��)��������
��&�
����� ��� 
��(��������
��)��������������6
��(���	��
���	��
���	��
���	��/���
�
�����������

��	�
�X�"�#�#�
�X�"�#�#�
�X�"�#�#�
�X�� � ���!� �$�#�$�#�$�#��
��
�X�i���	�	���	��X�j���	�	���	���#�#�#�#�#�#�
�X�l�������� 
��)����������
�X�j��������� �X�j����������
�X�"�#�#�
�X�"�#�#�
�X�"�#�#�
�X�#�$�$�
�X�'�(�(���)�(�%�$�$�#�$�#�$�#�
���X�"�#�#�
�X�"�#�#���$�#�$�#��
��(���*�*���*�X��
�X�m����������X�m��������
��)��������
��*���	��,���	��
���������������*F�F�F�F� 
��-��������
��)���	��
�������������&]�]�]�
��*���+�+���+�b���2���*
��(���x�x�x���x�t
��(���	��#�
���"�"� ����"�
��,���	��+���	��#�
"�#�#�	��#�
!�"�"�
"�
"�#�"�$�#�����
"�
��,���o�o���o�b�/�'�'�&�+�.�.�/��%�3�N�%������Q�N��#�-�N��"�,�A��&,�&6���%H��"�$*�O��!�%�/�G��)/�)9�(;��%�'-���$�"�,�A��&,�&6�%8��"�$*�O��!��)�;��#)�#3�"5���!'�����)�;��#)�#3�V�_�"E���!'����"�,�A��&,�&6���%H��"�%�/�G��)/�)9�6�?�(K��%��)�;��#)�#3�V�_�"E���"�,�A��&,�&6���%H��"�!�>����N�F�O�4�4�#��#�$>�?�?����L�
�D��&�&�M�
�X�m���'�'���'�4A���0�(5��_�%����-�(�(�(�(��L��7�;�4�5�5�)�
�X�k�4�5�5�)�)�6�5�)�
�7�;�	�"�"�'�
�X�d�d�;�&�'�'�(�(�'�'�)�(�'�
�7�;�	�"�"�)�
�X�d�d�;�&�'�'�(�(�)�)�)�(�)�
�7�;�
�&�&�(�
�X�k�%�&�&�(�(�'�&�(�#�#�#�#�J'�'�'�T.�.�.�.����	�)�X�X�Xs��D-�-	D9�8D9�=F�F	�F	�5H<�<I�I�>K�
K+�*K+�L�L1�L�L1�L)�&L1�(L)�)L1�0L1�U-�-U5�4U5�Z�Z)�(Z)

?>