AlkantarClanX12

Your IP : 3.144.93.34


Current Path : /proc/self/root/opt/alt/python311/lib64/python3.11/__pycache__/
Upload File :
Current File : //proc/self/root/opt/alt/python311/lib64/python3.11/__pycache__/weakref.cpython-311.opt-2.pyc

�

c��f	T��:�	ddlmZmZmZmZmZmZmZmZddl	m
Z
mZddlZddl
Z
ddlZeefZgd�Zej�e
��Gd�de��ZGd�dej��ZGd	�d
e��ZGd�dej��ZGd
�d��ZdS)�)�getweakrefcount�getweakrefs�ref�proxy�CallableProxyType�	ProxyType�
ReferenceType�_remove_dead_weakref)�WeakSet�_IterationGuardN)
rrrr�WeakKeyDictionaryr	rr�
ProxyTypes�WeakValueDictionaryr�
WeakMethod�finalizec�F��eZdZ	dZdd�Z�fd�Zd�Zd�Zej	Z	�xZ
S)r)�	_func_ref�
_meth_type�_alive�__weakref__Nc�\���	|j}|j}n>#t$r1td�t|������d�wxYw��fd�}t
j|||��}t
||��|_t|��|_	d|_
t
|���|S)Nz)argument should be a bound method, not {}c�Z�����}|jrd|_���|��dSdSdS�NF)r)�arg�self�callback�self_wrs  ���./opt/alt/python311/lib64/python3.11/weakref.py�_cbzWeakMethod.__new__.<locals>._cb5sH����7�9�9�D��{�
#�#����'��H�T�N�N�N�N�N�
#�
#�'�'�T)�__self__�__func__�AttributeError�	TypeError�format�typer�__new__rrr)�cls�methr�obj�funcrrrs  `    @rr'zWeakMethod.__new__.s�����	;��-�C��=�D�D���	;�	;�	;��G�#�V�D��J�J�/�/�1�1�6:�
;�	;����	#�	#�	#�	#�	#�	#��{�3��S�)�)���T�3������t�*�*�������d�)�)���s	��;Ac���t�����}|���}|�|�dS|�||��S�N)�super�__call__rr)rr*r+�	__class__s   �rr/zWeakMethod.__call__DsI����g�g��� � ���~�~�����;�$�,��4����t�S�)�)�)r c��t|t��r7|jr|js||uStj||��o|j|jkStSr-)�
isinstancerrr�__eq__r�NotImplemented�r�others  rr3zWeakMethod.__eq__KsX���e�Z�(�(�	Q��;�
%�e�l�
%��u�}�$��:�d�E�*�*�P�t�~���/P�P��r c��t|t��r7|jr|js||uStj||��p|j|jkStSr-)r2rrr�__ne__rr4r5s  rr8zWeakMethod.__ne__RsY���e�Z�(�(�	P��;�
)�e�l�
)��5�(�(��:�d�E�*�*�O�d�n���.O�O��r r-)�__name__�
__module__�__qualname__�	__slots__r'r/r3r8r�__hash__�
__classcell__�r0s@rrr&st��������
C�I�����,*�*�*�*�*��������|�H�H�H�H�Hr rc��eZdZ	dd�Zefd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZeZ
d�Zdd
�Zd�Zd�ZeZd�Zd�Zd�Zd�Zdd�Zdd�Zd�Zd�Zd�Zd�ZdS)r�c��t|��tfd�}||_g|_t	��|_i|_|j|fi|��dS)Nc��|��}|�@|jr!|j�|j��dS||j|j��dSdSr-)�
_iterating�_pending_removals�append�key�data)�wr�selfref�_atomic_removalrs    r�removez,WeakValueDictionary.__init__.<locals>.removeisb���7�9�9�D����?�7��*�1�1�"�&�9�9�9�9�9�$�O�D�I�r�v�6�6�6�6�6�
 �r )rr
�_removerE�setrDrH�update)rr6�kwrLs    r�__init__zWeakValueDictionary.__init__hse��"�4�y�y�:N�	7�	7�	7�	7����!#����%�%�����	����E� � �R� � � � � r c�~�|jj}|j}		|��}n#t$rYdSwxYw|||���*r-)rE�poprH�
IndexError)rrKrS�drGs     r�_commit_removalsz$WeakValueDictionary._commit_removalsysd���$�(���I��	$�
��c�e�e�����
�
�
����
�����O�A�s�#�#�#�	$s�
!�
/�/c��|jr|���|j|��}|�t|���|Sr-�rErVrH�KeyError�rrG�os   r�__getitem__zWeakValueDictionary.__getitem__�sH���!�	$��!�!�#�#�#��D�I�c�N�����9��3�-�-���Hr c�L�|jr|���|j|=dSr-)rErVrH�rrGs  r�__delitem__zWeakValueDictionary.__delitem__�s,���!�	$��!�!�#�#�#��I�c�N�N�Nr c�`�|jr|���t|j��Sr-)rErV�lenrH�rs r�__len__zWeakValueDictionary.__len__�s-���!�	$��!�!�#�#�#��4�9�~�~�r c��|jr|���	|j|��}n#t$rYdSwxYw|duSrrXrZs   r�__contains__z WeakValueDictionary.__contains__�se���!�	$��!�!�#�#�#�	���	�#�� � �A�A���	�	�	��5�5�	������}�s�3�
A�Ac�>�d|jjt|��fzS�Nz<%s at %#x>�r0r9�idrbs r�__repr__zWeakValueDictionary.__repr__������� 7��D���B�B�Br c�x�|jr|���t||j|��|j|<dSr-)rErV�KeyedRefrMrH�rrG�values   r�__setitem__zWeakValueDictionary.__setitem__�s<���!�	$��!�!�#�#�#�!�%���s�;�;��	�#���r c��|jr|���t��}t|��5|j���D]\}}|��}|�|||<�	ddd��n#1swxYwY|Sr-)rErVrrrH�items)r�newrGrIr[s     r�copyzWeakValueDictionary.copy�s����!�	$��!�!�#�#�#�!�#�#��
�T�
"�
"�	!�	!��9�?�?�,�,�
!�
!���R��B�D�D���=� �C��H��
!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�
�
s�1A7�7A;�>A;c�4�ddlm}|jr|���|���}t|��5|j���D] \}}|��}|�|||||��<�!	ddd��n#1swxYwY|S�Nr)�deepcopy)rtrwrErVr0rrHrr)r�memorwrsrGrIr[s       r�__deepcopy__z WeakValueDictionary.__deepcopy__�s���!�!�!�!�!�!��!�	$��!�!�#�#�#��n�n����
�T�
"�
"�	1�	1��9�?�?�,�,�
1�
1���R��B�D�D���=�/0�C����d�+�+�,��
1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�
�
s�;B
�
B�BNc��|jr|���	|j|}|��}|�|S|S#t$r|cYSwxYwr-rX)rrG�defaultrIr[s     r�getzWeakValueDictionary.get�sq���!�	$��!�!�#�#�#�
	���3��B�����A��y�������	�	�	��N�N�N�	���s�
:�A	�A	c#��K�|jr|���t|��5|j���D]\}}|��}|�||fV��	ddd��dS#1swxYwYdSr-�rErVrrHrr)r�krI�vs    rrrzWeakValueDictionary.items�s������!�	$��!�!�#�#�#�
�T�
"�
"�	�	�����*�*�
�
���2��B�D�D���=��Q�$�J�J�J��
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�2A-�-A1�4A1c#��K�|jr|���t|��5|j���D]\}}|���|V��	ddd��dS#1swxYwYdSr-r~)rrrIs   r�keyszWeakValueDictionary.keys�s������!�	$��!�!�#�#�#�
�T�
"�
"�	�	�����*�*�
�
���2��2�4�4�#��G�G�G��
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�.A)�)A-�0A-c#��K�	|jr|���t|��5|j���Ed{V��ddd��dS#1swxYwYdSr-�rErVrrH�valuesrbs r�
itervaluerefsz!WeakValueDictionary.itervaluerefs�s�����	��!�	$��!�!�#�#�#�
�T�
"�
"�	*�	*��y�'�'�)�)�)�)�)�)�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s� A�A�"Ac#��K�|jr|���t|��5|j���D]}|��}|�|V��	ddd��dS#1swxYwYdSr-r��rrIr*s   rr�zWeakValueDictionary.values�s������!�	$��!�!�#�#�#�
�T�
"�
"�	�	��i�&�&�(�(�
�
���b�d�d���?��I�I�I��
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�-A(�(A,�/A,c��|jr|���	|j���\}}|��}|�||fS�-r-)rErVrH�popitem)rrGrIr[s    rr�zWeakValueDictionary.popitem�sY���!�	$��!�!�#�#�#�	��i�'�'�)�)�G�C������A��}��A�v�
�		r c���|jr|���	|j�|����}n#t$rd}YnwxYw|�|r|dSt	|���|S)Nr)rErVrHrSrY)rrG�argsr[s    rrSzWeakValueDictionary.pops����!�	$��!�!�#�#�#�	�"��	�
�
�c�"�"�$�$�A�A���	�	�	��A�A�A�	�����9��
$��A�w���s�m�m�#��Hs�"A�A�Ac���	|j|��}n#t$rd}YnwxYw|�;|jr|���t	||j|��|j|<|S|Sr-)rHrYrErVrmrM)rrGr{r[s    r�
setdefaultzWeakValueDictionary.setdefaults���	���	�#�� � �A�A���	�	�	��A�A�A�	�����9��%�
(��%�%�'�'�'�%�g�t�|�S�A�A�D�I�c�N��N��Hs��'�'c�X�|jr|���|j}|�Rt|d��st	|��}|���D]\}}t
||j|��||<�|���D]\}}t
||j|��||<�dS�Nrr)rErVrH�hasattr�dictrrrmrM)rr6�kwargsrUrGr[s      rrOzWeakValueDictionary.update!s����!�	$��!�!�#�#�#��I�����5�'�*�*�
$��U�����+�+�-�-�
8�
8���Q�!�!�T�\�3�7�7��#����l�l�n�n�	4�	4�F�C���a���s�3�3�A�c�F�F�	4�	4r c��	|jr|���t|j�����Sr-)rErV�listrHr�rbs r�	valuerefszWeakValueDictionary.valuerefs-sB��	��!�	$��!�!�#�#�#��D�I�$�$�&�&�'�'�'r c�0�|�|��|Sr-�rOr5s  r�__ior__zWeakValueDictionary.__ior__;������E�����r c��t|tj��r+|���}|�|��|St
Sr-�r2�_collections_abc�MappingrtrOr4�rr6�cs   r�__or__zWeakValueDictionary.__or__?�?���e�-�5�6�6�	��	�	���A�
�H�H�U�O�O�O��H��r c���t|tj��r@|���}|�|��|�|��|St
Sr-�r2r�r�r0rOr4r�s   r�__ror__zWeakValueDictionary.__ror__F�P���e�-�5�6�6�	���� � �A�
�H�H�U�O�O�O�
�H�H�T�N�N�N��H��r )rAr-)r9r:r;rQr
rVr\r_rcrerjrprt�__copy__ryr|rrr��__iter__r�r�r�rSr�rOr�r�r�r�rAr rrr\s��������!�!�!�!�"0D�
$�
$�
$�
$�������
���
���C�C�C�<�<�<�
	�	�	��H�
�
�
�
�
�
�
��������H�
*�
*�
*�������
�
�
�����
4�
4�
4�
4�(�(�(�����������r rc�*��eZdZ	dZd�Z�fd�Z�xZS)rm�rGc�@�tj|||��}||_|Sr-)rr'rG)r&�obrrGrs     rr'zKeyedRef.__new__[s!���{�4��X�.�.������r c�L��t���||��dSr-)r.rQ)rr�rrGr0s    �rrQzKeyedRef.__init__`s#���
������X�&�&�&�&�&r )r9r:r;r<r'rQr>r?s@rrmrmOsS���������I����
'�'�'�'�'�'�'�'�'r rmc��eZdZ	dd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�ZeZd�Z
dd�Zd
�Zd�Zd�ZeZd�Zd�Zd�Zd�Zdd�Zdd�Zd�Zd�Zd�ZdS)r
Nc��i|_t|��fd�}||_g|_t	��|_d|_|�|�|��dSdS)Nc��|��}|�?|jr|j�|��dS	|j|=dS#t$rYdSwxYwdSr-)rDrErFrHrY)rrJrs   rrLz*WeakKeyDictionary.__init__.<locals>.removeqsv���7�9�9�D����?���*�1�1�!�4�4�4�4�4�� �I�a�L�L�L��#�����������
 �s�;�
A	�A	F)rHrrMrErNrD�
_dirty_lenrO)rr�rLs   rrQzWeakKeyDictionary.__init__oso����	�!�$�i�i�		�		�		�		����!#����%�%���������K�K��������r c��|jj}|j}		|��}n#t$rYdSwxYw	||=n#t$rYnwxYw�3r-)rErSrHrTrY)rrSrUrGs    rrVz"WeakKeyDictionary._commit_removals�s���
�$�(���I��		�
��c�e�e�����
�
�
����
����
��c�F�F���
�
�
���
����		s�
!�
/�/�7�
A�Ac�T��|j��fd�|jD��|_d|_dS)Nc���g|]}|�v�|��	SrArA)�.0rrUs  �r�
<listcomp>z5WeakKeyDictionary._scrub_removals.<locals>.<listcomp>�s���!N�!N�!N��q�A�v�v�!�v�v�vr F)rHrEr�)rrUs @r�_scrub_removalsz!WeakKeyDictionary._scrub_removals�s4����I��!N�!N�!N�!N�T�-C�!N�!N�!N�������r c�>�d|_|jt|��=dS�NT)r�rHrr^s  rr_zWeakKeyDictionary.__delitem__�s������I�c�#�h�h���r c�6�|jt|��Sr-)rHrr^s  rr\zWeakKeyDictionary.__getitem__�s���y��S���"�"r c��|jr|jr|���t|j��t|j��z
Sr-)r�rEr�rarHrbs rrczWeakKeyDictionary.__len__�sH���?�	#�t�5�	#�
� � �"�"�"��4�9�~�~��D�$:� ;� ;�;�;r c�>�d|jjt|��fzSrgrhrbs rrjzWeakKeyDictionary.__repr__�rkr c�@�||jt||j��<dSr-)rHrrMrns   rrpzWeakKeyDictionary.__setitem__�s ��,1��	�#�c�4�<�(�(�)�)�)r c���t��}t|��5|j���D]\}}|��}|�|||<�	ddd��n#1swxYwY|Sr-)r
rrHrr)rrsrGror[s     rrtzWeakKeyDictionary.copy�s����!�!��
�T�
"�
"�	#�	#�"�i�o�o�/�/�
#�
#�
��U��C�E�E���=�"�C��F��
#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
�
s�1A�A �#A c��ddlm}|���}t|��5|j���D] \}}|��}|�|||��||<�!	ddd��n#1swxYwY|Srv)rtrwr0rrHrr)rrxrwrsrGror[s       rryzWeakKeyDictionary.__deepcopy__�s���!�!�!�!�!�!��n�n����
�T�
"�
"�	3�	3�"�i�o�o�/�/�
3�
3�
��U��C�E�E���=�%�X�e�T�2�2�C��F��
3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�
�
s�;A2�2A6�9A6c�R�|j�t|��|��Sr-)rHr|r�rrGr{s   rr|zWeakKeyDictionary.get�s���y�}�}�S��X�X�g�.�.�.r c�X�	t|��}n#t$rYdSwxYw||jvSr)rr$rH)rrGrIs   rrezWeakKeyDictionary.__contains__�sB��	��S���B�B���	�	�	��5�5�	�����T�Y��s��
 � c#�K�t|��5|j���D]\}}|��}|�||fV��	ddd��dS#1swxYwYdSr-�rrHrr)rrIrorGs    rrrzWeakKeyDictionary.items�s�����
�T�
"�
"�	%�	%�!�Y�_�_�.�.�
%�
%�	��E��b�d�d���?��u�*�$�$�$��
%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	%�	%s�2A�A�Ac#�K�t|��5|jD]}|��}|�|V��	ddd��dS#1swxYwYdSr-)rrHr�s   rr�zWeakKeyDictionary.keys�s�����
�T�
"�
"�	�	��i�
�
���b�d�d���?��I�I�I��
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s
�;�?�?c#�K�t|��5|j���D]\}}|���|V��	ddd��dS#1swxYwYdSr-r�)rrIros   rr�zWeakKeyDictionary.values�s�����
�T�
"�
"�	 �	 �!�Y�_�_�.�.�
 �
 �	��E��2�4�4�#��K�K�K��
 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	 �	 s�.A�A�Ac�,�	t|j��Sr-)r�rHrbs r�keyrefszWeakKeyDictionary.keyrefs�s��	��D�I���r c�l�d|_	|j���\}}|��}|�||fS�-r�)r�rHr�)rrGror[s    rr�zWeakKeyDictionary.popitem�sC�����	 ���*�*�,�,�J�C������A��}��%�x��		 r c�P�d|_|jjt|��g|�R�Sr�)r�rHrSr)rrGr�s   rrSzWeakKeyDictionary.pop�s+������t�y�}�S��X�X�-��-�-�-�-r c�^�|j�t||j��|��Sr-)rHr�rrMr�s   rr�zWeakKeyDictionary.setdefault�s&���y�#�#�C��T�\�$:�$:�7�C�C�Cr c��|j}|�Zt|d��sti��|��}|���D]\}}||t	||j��<�t
|��r|�|��dSdSr�)rHr�r&rrrrMrarO)rr�r�rUrGros      rrOzWeakKeyDictionary.update�s����I�����4��)�)�
&��t�B�x�x��~�~��"�j�j�l�l�
2�
2�
��U�,1��#�c�4�<�(�(�)�)��v�;�;�	 ��K�K�������	 �	 r c�0�|�|��|Sr-r�r5s  rr�zWeakKeyDictionary.__ior__r�r c��t|tj��r+|���}|�|��|St
Sr-r�r�s   rr�zWeakKeyDictionary.__or__r�r c���t|tj��r@|���}|�|��|�|��|St
Sr-r�r�s   rr�zWeakKeyDictionary.__ror__r�r r-)r9r:r;rQrVr�r_r\rcrjrprtr�ryr|rerrr�r�r�r�r�rSr�rOr�r�r�rAr rr
r
ds������������(���$ � � �
 � � �#�#�#�<�<�<�C�C�C�2�2�2�����H����/�/�/�/����%�%�%�����H� � � �
�
�
� � � �.�.�.�D�D�D�D� � � � �����������r r
c���eZdZ	dZiZdZej��ZdZ	dZ
Gd�d��Zd�Zdd�Z
d�Zd	�Zed
���Zed���Zejd���Zd
�Zed���Zed���ZdS)rrAFc��eZdZdZdS)�finalize._Info)�weakrefr+r�r��atexit�indexN)r9r:r;r<rAr r�_Infor�5s������L�	�	�	r r�c�T�|js*ddl}|�|j��dt_|���}t
||��|_||_||_	|pd|_
d|_t|j��|_
||j|<dt_dS)NrT)�_registered_with_atexitr��register�	_exitfuncrr�rr�r+r�r��next�_index_iterr��	_registry�_dirty)rr*r+r�r�r��infos       rrQzfinalize.__init__8s����+�	4�
�M�M�M��O�O�D�N�+�+�+�/3�H�,��z�z�|�|���3��~�~�����	���	��n��������$�*�+�+��
�#���t������r Nc��	|j�|d��}|r |js|j|ji|jpi��SdSdSr-)r�rS�	_shutdownr+r�r�)r�_r�s   rr/zfinalize.__call__Isi��	!��~�!�!�$��-�-���	@���	@��4�9�d�i�?�D�K�,=�2�?�?�?�	@�	@�	@�	@r c���	|j�|��}|o|���}|�2|j�|d��r||j|j|jpifSdSdSr-)r�r|r�rSr+r�r��rr�r*s   r�detachzfinalize.detachPsn��	!��~�!�!�$�'�'���%�t�|�|�~�~���?�t�~�1�1�$��=�=�?����D�I�t�{�/@�b�A�A��?�?�?r c��	|j�|��}|o|���}|�||j|j|jpifSdSr-)r�r|r�r+r�r�r�s   r�peekz
finalize.peekXsT��	!��~�!�!�$�'�'���%�t�|�|�~�~���?����D�I�t�{�/@�b�A�A��?r c��	||jvSr-)r�rbs r�alivezfinalize.alive`s��(��t�~�%�%r c�d�	|j�|��}t|��o|jSr-�r�r|�boolr�)rr�s  rr�zfinalize.atexites-��8��~�!�!�$�'�'���D�z�z�)�d�k�)r c�j�|j�|��}|rt|��|_dSdSr-r�)rror�s   rr�zfinalize.atexitks:���~�!�!�$�'�'���	&��u�+�+�D�K�K�K�	&�	&r c�@�|j�|��}|o|���}|�&dt|��jt|��fzSdt|��jt|��t|��jt|��fzS)Nz<%s object at %#x; dead>z!<%s object at %#x; for %r at %#x>)r�r|r�r&r9rir�s   rrjzfinalize.__repr__qs����~�!�!�$�'�'���%�t�|�|�~�~���;�-��d���1D�b��h�h�0O�O�O�6��d���$�b��h�h��S�	�	�0B�B�s�G�G�L�M�
Mr c��d�|j���D��}|�d����d�|D��S)Nc�*�g|]\}}|j�||f��SrA)r��r��f�is   rr�z-finalize._select_for_exit.<locals>.<listcomp>}s'��B�B�B�u��!���B�a��U�B�B�Br c��|djS)N�)r�)�items r�<lambda>z+finalize._select_for_exit.<locals>.<lambda>~s��t�A�w�}�r r�c��g|]\}}|��SrArAr�s   rr�z-finalize._select_for_exit.<locals>.<listcomp>s��!�!�!�e�q���!�!�!r )r�rr�sort)r(�Ls  r�_select_for_exitzfinalize._select_for_exitzsR��
C�B��
� 3� 3� 5� 5�B�B�B��	���,�,��-�-�-�!�!�q�!�!�!�!r c��d}	|jr�ddl}|���rd}|���d}	|�tjr |���}dt_|snP|���}	|��n/#t$r"tj
tj���YnwxYw��dt_|r|�
��dSdS#dt_|r|�
��wwxYw)NFrT)r��gc�	isenabled�disablerr�r�rS�	Exception�sys�
excepthook�exc_infor��enable)r(�reenable_gcr��pendingr�s     rr�zfinalize._exitfunc�s,��
��	��}�
2��	�	�	��<�<�>�>�!�"&�K��J�J�L�L�L���2���(�/��"%�"6�"6�"8�"8��*/���"������
�
�A�8�
�������$�8�8�8�������7�7�7�7�8����2�$"&�H���
��	�	������
�
��"&�H���
��	�	�����
���s0�A=C#�
B
�C#�
)B9�6C#�8B9�9C#�#%Dr-)r9r:r;r<r�r��	itertools�countr�r�r�r�rQr/r�r��propertyr�r��setterrj�classmethodr�r�rAr rrrsZ�������"�I��I��I�!�)�/�#�#�K�
�F�#��M�M�M�M�M�M�M�M����"@�@�@�@�B�B�B�B�B�B��&�&��X�&��*�*��X�*�
�]�&�&��]�&�
M�M�M��"�"��[�"�� � ��[� � � r r)�_weakrefrrrrrrr	r
�_weakrefsetrrr�rrr�__all__�
MutableSetr�r�MutableMappingrrmr
rrAr r�<module>rs������������������������1�0�0�0�0�0�0�0�����
�
�
�
������*�
+�
�0�0�0����$�$�W�-�-�-�3�3�3�3�3��3�3�3�lp�p�p�p�p�*�9�p�p�p�f'�'�'�'�'�s�'�'�'�*u�u�u�u�u�(�7�u�u�u�pF�F�F�F�F�F�F�F�F�Fr