Edit File: connection.cpython-311.opt-1.pyc
� �����f�~���������������������������g�d��Z�ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddlmZ�ddlm Z mZ�ddlmZ�ej��������Z �ddlZddlmZmZmZmZ�n#�e$�r�ej��������dk����r��dZY�nw�xY�wd Zd Z�e j����������������������ZdZdgZ�e ed������������rdZedgz ��Zej��������dk����rd Zed gz ��Zefd�Z!d��Z"d��Z#d��Z$d��Z%�G�d��d������������Z&er�G�d��de&������������Z'�G�d��de&������������Z(�G�d��de)������������Z*d<d�Z+ej��������dk����rd=d�Z,nd=d�Z,�G�d��d e)������������Z-d!��Z.ej��������dk����r�G�d"��d#e)������������Z/d$��Z0d%Z1d&Z2d'Z3d(Z4d)��Z5d*��Z6�G�d+��d,e)������������Z7d-��Z8d.��Z9�G�d/��d0e*������������Z:d1��Z;ej��������dk����rd2��Z<ej=��������ej>��������hZ?d>d3�Z@n#ddlAZA�e eAd4������������reAjB��������ZCneAjD��������ZCd>d5�Z@ej��������dk����r0d6��ZEd7��ZF�ejG��������e(eE�������������d8��ZHd9��ZI�ejG��������e'eH�������������dS�d:��ZEd;��ZF�ejG��������e(eE�������������dS�)?)�Client�Listener�Pipe�wait�����N����)�util)�AuthenticationError�BufferTooShort)� reduction)� WAIT_OBJECT_0�WAIT_ABANDONED_0�WAIT_TIMEOUT�INFINITE�win32i� ��g������4@�AF_INET�AF_UNIX�AF_PIPEc������������������.�����t����������j����������������������|�z���S��N��time� monotonic)�timeouts��� �A/opt/alt/python311/lib64/python3.11/multiprocessing/connection.py� _init_timeoutr���<���s�������>���g�%�%�����c������������������0�����t����������j����������������������|�k����S�r���r���)�ts��� r����_check_timeoutr���?���s�������>���a��r���c����������������������|�dk����rdS�|�dk����r't����������j��������dt����������j�����������������������������������S�|�dk����r>t����������j��������dt ����������j����������������������t ����������t����������������������fz��d�������������S�t����������d �������������) z? Return an arbitrary free address for the given family r���)� localhostr���r���z listener-)�prefix�dirr���z\\.\pipe\pyc-%d-%d-��zunrecognized family) �tempfile�mktempr����get_temp_dir�os�getpid�next� _mmap_counter� ValueError��familys��� r����arbitrary_addressr/���F���s�������������� �9� � ���k�t�7H�7J�7J�K�K�K�K� �9� � ���&<� "� ���T�-�-@�-@�A�'B�GI�K��K��K�� K���.�/�/�/r���c������������������������t�����������j��������dk����r|�dk����rt����������d|�z���������������t�����������j��������dk����r-|�dk����r)t����������t����������|�������������st����������d|�z���������������dS�dS�dS�)zD Checks if the family is valid for the current environment. r���r���zFamily %s is not recognized.r���N)�sys�platformr,����hasattr�socketr-���s��� r����_validate_familyr5���T���s���������|�w���6�Y�#6�#6��7�&�@�A�A�A� �|�w���6�Y�#6�#6��v�v�&�&�� F��;�f�D�E�E�E����#6�#6� F�� Fr���c����������������������t����������|�������������t����������k����rdS�t����������|�������������t����������u�r|����������������������d������������rdS�t����������|�������������t����������u�st ����������j��������|�������������rdS�t ����������d|�z���������������)z] Return the types of the address This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE' r���z\\r���r���zaddress type of %r unrecognized)�type�tuple�str� startswithr����is_abstract_socket_namespacer,���)�addresss��� r����address_typer=���`���s}��������G�}�}�����y� �g���#� � �'�"4�"4�V�"<�"<� ��y� �g���#� � ��!B�7�!K�!K� ��y��:�W�D�E�E�Er���c�������������������������e�Zd�ZdZdd�Zd��Zd��Zd��Zd��Zd��Z e d ����������������Ze d ����������������Ze d����������������Z d��Zd ��Zdd�Zd��Zdd�Zdd�Zd��Zdd�Zd��Zd��ZdS�)�_ConnectionBaseNTc�����������������������|������������������������������������}|dk�����rt����������d�������������|s|st����������d�������������||�_��������||�_��������||�_��������d�S�)Nr���zinvalid handlez6at least one of `readable` and `writable` must be True)� __index__r,����_handle� _readable� _writable)�self�handle�readable�writables��� r����__init__z_ConnectionBase.__init__v���sm�������!�!�#�#���A�:�:��-�.�.�.��� J��� J��H�J��J�� J����!���!����r���c������������������@�����|�j����������|�������������������������������������d�S�d�S�r����rB����_close�rE���s��� r����__del__z_ConnectionBase.__del__����s#�������<�#��K�K�M�M�M�M�M��$�#r���c������������������2�����|�j����������t����������d�������������d�S�)N�handle is closed)rB����OSErrorrM���s��� r���� _check_closedz_ConnectionBase._check_closed����s!�������<���,�-�-�-�� �r���c������������������2�����|�j���������st����������d�������������d�S�)Nzconnection is write-only)rC���rQ���rM���s��� r����_check_readablez_ConnectionBase._check_readable����s%�������~�� 6��4�5�5�5� 6�� 6r���c������������������2�����|�j���������st����������d�������������d�S�)Nzconnection is read-only)rD���rQ���rM���s��� r����_check_writablez_ConnectionBase._check_writable����s%�������~�� 5��3�4�4�4� 5�� 5r���c������������������f�����|�j���������rd|�_��������n|�������������������������������������t����������d�������������)NFzbad message length)rD���rC����closerQ���rM���s��� r����_bad_message_lengthz#_ConnectionBase._bad_message_length����s1�������>�� �"�D�N�N��J�J�L�L�L��*�+�+�+r���c�����������������������|�j���������du�S�)z True if the connection is closedN�rB���rM���s��� r����closedz_ConnectionBase.closed����s��������|�t�#�#r���c�����������������������|�j���������S�)z"True if the connection is readable)rC���rM���s��� r���rG���z_ConnectionBase.readable�������������~�r���c�����������������������|�j���������S�)z"True if the connection is writable)rD���rM���s��� r���rH���z_ConnectionBase.writable����r^���r���c������������������8�����|��������������������������������������|�j��������S�)z+File descriptor or handle of the connection)rR���rB���rM���s��� r����filenoz_ConnectionBase.fileno����s�������������|�r���c������������������h�����|�j����������* �|�������������������������������������d|�_���������dS�#�d|�_���������w�xY�wdS�)zClose the connectionNrK���rM���s��� r���rX���z_ConnectionBase.close����sB�������<�#� $���� � � �#������t���#�#�#�#� �$�#s����&�� /r���c����������������������|��������������������������������������|�������������������������������������t����������|������������}|j��������dk����r|���������������������d������������}|j��������}|dk�����rt ����������d�������������||k�����rt ����������d�������������|�||z ��}n-|dk�����rt ����������d�������������||z���|k����rt ����������d�������������|����������������������||||z��������������������������dS�) z,Send the bytes data from a bytes-like objectr����Br���zoffset is negativezbuffer length < offsetNzsize is negativezbuffer length < offset + size)rR���rV���� memoryview�itemsize�cast�nbytesr,����_send_bytes)rE����buf�offset�size�m�ns��� r���� send_bytesz_ConnectionBase.send_bytes����s��������������������s�O�O���:��>�>����s���A� �H���A�:�:��1�2�2�2��v�:�:��5�6�6�6��<��v�:�D�D� �A�X�X��/�0�0�0� �d�]�Q� � ��<�=�=�=�����6�&�4�-�/�0�1�1�1�1�1r���c�����������������������|��������������������������������������|�������������������������������������|����������������������t�������������������������������|�������������������������dS�)zSend a (picklable) objectN)rR���rV���ri����_ForkingPickler�dumps�rE����objs��� r����sendz_ConnectionBase.send����sN����������������������.�.�s�3�3�4�4�4�4�4r���c�����������������������|��������������������������������������|�������������������������������������|�|dk�����rt����������d�������������|����������������������|������������}|�|�������������������������������������|�����������������������������������S�)z7 Receive bytes data as a bytes object. Nr���znegative maxlength)rR���rT���r,����_recv_bytesrY����getvalue)rE���� maxlengthrj���s��� r���� recv_bytesz_ConnectionBase.recv_bytes����s}������� ������������� �Y��]�]��1�2�2�2����y�)�)���;��$�$�&�&�&��|�|�~�~�r���c������������������H����|��������������������������������������|�������������������������������������t����������|������������5�}|j��������}|t ����������|������������z��}|dk�����rt����������d�������������||k����rt����������d�������������|������������������������������������}|�����������������������������������}|||z���k�����r!t����������|� �����������������������������������������������|� ��������������������d�������������|���������������������|||z��||z���|z�������������������������|cddd�������������S�#�1�swxY�w�Y���dS�)zq Receive bytes data into a writeable bytes-like object. Return the number of bytes read. r���znegative offsetzoffset too largeN)rR���rT���re���rf����lenr,���rw����tellr ���rx����seek�readinto)rE���rj���rk���rm���rf����bytesize�resultrl���s��� r����recv_bytes_intoz_ConnectionBase.recv_bytes_into����sj����� � ������������ ��_�_�� ���z�H��#�a�&�&�(�H���z�z� �!2�3�3�3��(�"�"� �!3�4�4�4��%�%�'�'�F��;�;�=�=�D��&�4�-�'�'�$�V�_�_�%6�%6�7�7�7��K�K��N�N�N��O�O�A�f��0�%��}��9�:��;�� <�� <�� <��! �� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �� �� s����CD�D�Dc������������������������|��������������������������������������|�������������������������������������|������������������������������������}t�������������������������������|�����������������������������������������������S�)zReceive a (picklable) object)rR���rT���rw���rq����loads� getbuffer)rE���rj���s��� r����recvz_ConnectionBase.recv����sS��������������������� � ���$�$�S�]�]�_�_�5�5�5r������������c������������������|�����|��������������������������������������|�������������������������������������|����������������������|������������S�)z/Whether there is any input available to be read)rR���rT����_poll�rE���r���s��� r����pollz_ConnectionBase.poll����s8�������������������z�z�'�"�"�"r���c�����������������������|�S�r�����rM���s��� r���� __enter__z_ConnectionBase.__enter__����������r���c������������������.�����|��������������������������������������d�S�r����rX����rE����exc_type� exc_value�exc_tbs��� r����__exit__z_ConnectionBase.__exit__���������� � �����r���)TT)r���Nr���)r���)r����)�__name__� __module__�__qualname__rB���rI���rN���rR���rT���rV���rY����propertyr\���rG���rH���ra���rX���ro���ru���rz���r����r����r����r����r����r����r���r���r?���r?���s���ss��������������G� "�� "�� "�� "������.��.��.�6��6��6�5��5��5�,��,��,���$��$���X�$��������X���������X������� $��$��$�2��2��2��2�(5��5��5���������������26��6��6�#��#��#��#��������������r���r?���c��������������������H�����e�Zd�ZdZdZdZej��������fd�Zd��Z d d�Z d��Zd��ZdS�) �PipeConnectionz� Connection class based on a Windows named pipe. Overlapped I/O is used, so the handles must have been created with FILE_FLAG_OVERLAPPED. FNc������������������`�����|�j���������}|�|�������������������������������������||�j���������������������d�S�r���)�_send_ov�cancelrB���)rE����_CloseHandle�ovs��� r���rL���zPipeConnection._close��s3��������B��~�� � �����L���&�&�&�&�&r���c�����������������������|�j����������t����������d�������������t����������j��������|�j��������|d�������������\��}}||�_��������� �|t����������j��������k����r!t����������j��������|j��������gdt����������������������}n#��|� �������������������������������������xY�wd�|�_���������|� ��������������������d������������\��}}n$#�d�|�_���������|� ��������������������d������������\��}}w�xY�w|t����������j��������k����rt����������t����������j��������d�������������d�S�)Nz/concurrent send_bytes() calls are not supportedT�� overlappedFrP���)r����r,����_winapi� WriteFilerB����ERROR_IO_PENDING�WaitForMultipleObjects�eventr���r�����GetOverlappedResult�ERROR_OPERATION_ABORTEDrQ����errno�EPIPE)rE���rj���r�����err�waitres�nwrittens��� r���ri���zPipeConnection._send_bytes��s������}�(� ��"5��6��6��6��'���c�d�K�K�K�G�B���D�M� =��'�2�2�2�%�<��� �E�8�5��5�G��� �� � �������� $�� � "� 6� 6�t� <� <� ��#�#���!%�� � "� 6� 6�t� <� <� ��#�<�<�<�<��g�5�5�5���e�k�+=�>�>�>� �6�5s����1A0��/B*��0B�B*��*!Cc�����������������������|�j���������rd|�_���������t����������j����������������������S�|�dnt����������|d������������} �t ����������j��������|�j��������|d�������������\��}} �|t����������j��������k����r!t ����������j��������|j ��������gdt����������������������}n#��|��������������������������������������xY�w|���������������������d������������\��}}|dk����r<t����������j����������������������}|� ��������������������|������������������������������������������������|S�|t����������j��������k����r|����������������������||������������S�n�#�|���������������������d������������\��}}|dk����r@t����������j����������������������}|� ��������������������|������������������������������������������������|c�cY�S�|t����������j��������k����r|����������������������||������������c�cY�S�w�xY�wn/#�t"����������$�r"}|j��������t����������j��������k����rt(�������������d�}~ww�xY�wt+����������d�������������)NF����Tr����r���z.shouldn't get here; expected KeyboardInterrupt)�_got_empty_message�io�BytesIO�minr�����ReadFilerB���r����r����r����r���r����r�����writer�����ERROR_MORE_DATA�_get_more_datarQ����winerror�ERROR_BROKEN_PIPE�EOFError�RuntimeError) rE����maxsize�bsizer����r����r�����nread�f�es ��� r���rw���zPipeConnection._recv_bytes6��s�������&�� �*/��'��z�|�|�#�&����C���4E�4E���%�.�t�|�U�;?�A��A��A�G�B��D��'�":�:�:�&-�&D�!#�� �E�8�'=��'=�G����� � ��������%'�%;�%;�D�%A�%A� ��s��!�8�8� "� ���A��G�G�B�L�L�N�N�3�3�3�#$�H� �G�$;�;�;�#'�#6�#6�r�7�#C�#C�C��<���&(�%;�%;�D�%A�%A� ��s��!�8�8� "� ���A��G�G�B�L�L�N�N�3�3�3�#$�H�H�H�H�H� �G�$;�;�;�#'�#6�#6�r�7�#C�#C�C�C�C�C�C�C�C�C�C��<����������z�W�%>�>�>�&������� ���� ��O�P�P�Psg����F2��1B ��D$�� B � D$��#AF2��=%F2��#F2��$AF.�F2��(F.�+F2��-F.�.F2��2 G�<G�Gc�����������������������|�j���������s#t����������j��������|�j��������������������d���������dk����rdS�t ����������t����������|�g|������������������������S�)Nr���T)r����r����� PeekNamedPiperB����boolr���r����s��� r���r����zPipeConnection._pollV��sI�������'�� ��-�d�l�;�;�A�>�!�C�C��t���d�V�W�-�-�.�.�.r���c�����������������������|������������������������������������}t����������j����������������������}|���������������������|�������������t ����������j��������|�j��������������������d���������}|�*t����������|������������|z���|k����r|�������������������������������������t ����������j ��������|�j��������|d�������������\��}}|� ��������������������d������������\��}}|���������������������|�������������������������������������������������|S�)Nr���Tr����)r����r����r����r����r����r����rB���r|���rY���r����r����)rE���r����r����rj���r�����leftr�����rbytess��� r���r����zPipeConnection._get_more_data\��s��������,�,�.�.�C�� ���A� �G�G�C�L�L�L��(���6�6�q�9�D��"�s�3�x�x�$���'@�'@��(�(�*�*�*��&�t�|�T�d�K�K�K�G�B���0�0��6�6�K�F�C�� �G�G�B�L�L�N�N�#�#�#��Hr���r���) r����r����r�����__doc__r����r����r�����CloseHandlerL���ri���rw���r����r����r����r���r���r����r������s��������������� �� � �#����&-�&9�� '�� '�� '�� '� (�� (�� (�4 Q�� Q�� Q�� Q�@ /�� /�� /� �� �� �� �� r���r����c�������������������������e�Zd�ZdZerej��������fd�Zej��������Z ej ��������Znej ��������fd�Zej��������Z ej��������Ze fd�Zefd�Zd��Zd d�Zd ��ZdS�)� Connectionzo Connection class based on an arbitrary file descriptor (Unix only), or a socket handle (Windows). c������������������&������||�j����������������������d�S�r���r[����rE���rL���s��� r���rL���zConnection._closes����������F�4�<� � � � � r���c������������������&������||�j����������������������d�S�r���r[���r����s��� r���rL���zConnection._closex��r����r���c������������������t�����t����������|������������} ��||�j��������|������������}||z��}|dk����rd�S�||d�����������}�))NTr���)r|���rB���)rE���rj���r����� remainingrn���s��� r����_sendzConnection._send}��sN��������H�H� � ���d�l�C�(�(�A���N�I��A�~�~����a�b�b�'�C� r���c����������������������t����������j����������������������}|�j��������}|}|dk����r]�|||������������}t����������|������������}|dk����r||k����rt�����������t����������d�������������|���������������������|�������������||z��}|dk�����]|S�)Nr���zgot end of file during message)r����r����rB���r|���r����rQ���r����)rE���rl����readrj���rF���r�����chunkrn���s��� r����_recvzConnection._recv���s��������j�l�l������ ��!�m�m��D���+�+�E��E� � �A��A�v�v���$�$�"�N�!�"B�C�C�C��I�I�e������N�I���!�m�m��� r���c�����������������������t����������|������������}|dk����rkt����������j��������dd������������}t����������j��������d|������������}|����������������������|�������������|����������������������|�������������|����������������������|�������������d�S�t����������j��������d|������������}|dk����r,|����������������������|�������������|����������������������|�������������d�S�|����������������������||z����������������d�S�)Ni����!i����!Qi�@��)r|����struct�packr����)rE���rj���rn���� pre_header�headers��� r���ri���zConnection._send_bytes���s���������H�H���z�>�>���T�2�.�.�J��[��q�)�)�F��J�J�z�"�"�"��J�J�v�����J�J�s�O�O�O�O�O���[��q�)�)�F��5�y�y��� � �6�"�"�"�� � �3�������� � �6�C�<�(�(�(�(�(r���Nc������������������D����|�����������������������d������������}t����������j��������d|�����������������������������������������������\��}|dk����r>|�����������������������d������������}t����������j��������d|�����������������������������������������������\��}|�||k����rd�S�|�����������������������|������������S�)N����r����r��������r����)r����r�����unpackrx���)rE���r����rj���rl���s��� r���rw���zConnection._recv_bytes���s��������j�j��m�m��� �d�C�L�L�N�N�3�3����2�:�:��*�*�Q�-�-�C��M�$������7�7�E�D���4�'�>�>��4��z�z�$���r���c������������������B�����t����������|�g|������������}t����������|������������S�r���)r���r����)rE���r����rs��� r���r����zConnection._poll���s�������$���!�!���A�w�w�r���r���)r����r����r����r����r�����_multiprocessing�closesocketrL���ru����_writer�����_readr(���rX���r����r����r����r����ri���rw���r����r����r���r���r����r����l��s������������������ ��� � 0� <�� !�� !�� !�� !�!�&�� �%��� "��� !�� !�� !�� !�������%���������� %��������� )��)��)�. �� �� �� ���������r���r����c��������������������^�����e�Zd�ZdZdd�Zd��Zd��Zed����������������Zed����������������Z d ��Z d ��ZdS�)r���z� Returns a listener object. This is a wrapper for a bound socket which is 'listening' for connections, or for a Windows named pipe. Nr���c������������������8����|p|rt����������|������������pt����������}|pt����������|������������}t����������|�������������|dk����rt ����������||������������|�_��������nt ����������|||������������|�_��������|�$t����������|t����������������������st����������d�������������||�_ ��������d�S�)Nr����authkey should be a byte string)r=����default_familyr/���r5����PipeListener� _listener�SocketListener� isinstance�bytes� TypeError�_authkey)rE���r<���r.����backlog�authkeys��� r���rI���zListener.__init__���s���������#�G�=��W�(=�(=��#�"�� ��6�.�v�6�6���� � � ��Y���)�'�7�;�;�D�N�N�+�G�V�W�E�E�D�N���z�'�5�'A�'A���=�>�>�>��� � � r���c������������������������|�j����������t����������d�������������|�j��������������������������������������������}|�j���������*t ����������||�j���������������������t����������||�j���������������������|S�)zz Accept a connection on the bound socket or named pipe of `self`. Returns a `Connection` object. Nzlistener is closed)r����rQ����acceptr�����deliver_challenge�answer_challenge)rE����cs��� r���r����zListener.accept���s_��������>�!��.�/�/�/��N�!�!�#�#���=�$��a���/�/�/��Q�� �.�.�.��r���c������������������R�����|�j���������}|�d|�_���������|������������������������������������dS�dS�)zA Close the bound socket or named pipe of `self`. N)r����rX���)rE����listeners��� r���rX���zListener.close���s6��������>����!�D�N��N�N������� �r���c�����������������������|�j���������j��������S�r���)r�����_addressrM���s��� r���r<���zListener.address���s �������~�&�&r���c�����������������������|�j���������j��������S�r���)r�����_last_acceptedrM���s��� r���� last_acceptedzListener.last_accepted���s �������~�,�,r���c�����������������������|�S�r���r����rM���s��� r���r����zListener.__enter__���r����r���c������������������.�����|��������������������������������������d�S�r���r����r����s��� r���r����zListener.__exit__���r����r���)NNr���N)r����r����r����r����rI���r����rX���r����r<���r��r����r����r����r���r���r���r������s������������������ �� �� �� � �� �� ��������'��'���X�'���-��-���X�-��������������r���r���c������������������ ����|pt����������|�������������}t����������|�������������|dk����rt����������|�������������}nt����������|�������������}|�$t ����������|t ����������������������st ����������d�������������|� t����������||�������������t����������||�������������|S�)z= Returns a connection to the address of a `Listener` r���Nr����) r=���r5���� PipeClient�SocketClientr����r����r����r����r����)r<���r.���r����r����s��� r���r���r������s��������� ,�|�G�,�,�F��V���� �����w�������!�!����:�g�u�#=�#=���9�:�:�:�����G�$�$�$��!�W�%�%�%��Hr���Tc����������������������|�r�t����������j����������������������\��}}|���������������������d�������������|���������������������d�������������t����������|�����������������������������������������������}t����������|�����������������������������������������������}n8t����������j����������������������\��}}t����������|d�������������}t����������|d�������������}||fS�)�L Returns pair of connection objects at either end of a pipe TF�rH����rG���)r4���� socketpair�setblockingr�����detachr(����pipe)�duplex�s1�s2�c1�c2�fd1�fd2s��� r���r���r�����s���������� 1��&�(�(�F�B���N�N�4� � � ��N�N�4� � � ��B�I�I�K�K�(�(�B��B�I�I�K�K�(�(�B�B��w�y�y�H�C���C�%�0�0�0�B��C�%�0�0�0�B��2�v� r���c����������� �����������t����������d������������}|�r4t����������j��������}t����������j��������t����������j��������z��}t ����������t ����������}}n!t����������j��������}t����������j��������}dt ����������}}t����������j��������||t����������j��������z��t����������j ��������z��t����������j ��������t����������j��������z��t����������j��������z��d||t����������j ��������t����������j��������������������}t����������j��������||dt����������j��������t����������j��������t����������j��������t����������j��������������������}t����������j��������|t����������j��������dd�������������t����������j��������|d�������������}|���������������������d������������\��} } t)����������||��������������}t)����������||��������������}||fS�) r��r���r���r���NTr����r��r ��)r/���r�����PIPE_ACCESS_DUPLEX�GENERIC_READ� GENERIC_WRITE�BUFSIZE�PIPE_ACCESS_INBOUND�CreateNamedPipe�FILE_FLAG_OVERLAPPED�FILE_FLAG_FIRST_PIPE_INSTANCE�PIPE_TYPE_MESSAGE�PIPE_READMODE_MESSAGE� PIPE_WAIT�NMPWAIT_WAIT_FOREVER�NULL� CreateFile� OPEN_EXISTING�SetNamedPipeHandleState�ConnectNamedPiper����r����) r��r<����openmode�access�obsize�ibsize�h1�h2r�����_r����r��r��s ��� r���r���r���(��sW������$�I�.�.���� (��1�H��)�G�,A�A�F�$�g�F�F�F��2�H��*�F���F�F� � $��X�� <�<��1�2��%��(E�E��� � �v�v�w�;��L������� ��V�Q���g�.C��(�'�,������ �'���-�t�T� �� �� ���-�b�T�B�B�B� ��/�/��5�5���3���B�� 0� 0� 0�� �B�� 0� 0� 0���2�v� r���c��������������������&�����e�Zd�ZdZdd�Zd��Zd��ZdS�)r����zO Representation of a socket which is bound to an address and listening r���c����������������������t����������j���������t����������t�����������|������������������������|�_�������� �t����������j��������dk����r0|�j�����������������������������t�����������j��������t�����������j��������d�������������|�j�����������������������������d�������������|�j��������� ��������������������|�������������|�j��������� ��������������������|�������������|�j�������������������������������������������|�_��������n(#�t����������$�r�|�j����������������������������������������������w�xY�w||�_��������d�|�_��������|dk����r>t#����������j��������|������������s*t#����������j��������|�t����������j��������|fd�������������|�_��������d�S�d�|�_��������d�S�)N�posixr���Tr���r�����args�exitpriority)r4����getattr�_socketr(����name� setsockopt� SOL_SOCKET�SO_REUSEADDRr���bind�listen�getsocknamer��rQ���rX����_familyr��r���r;����Finalize�unlink�_unlink)rE���r<���r.���r����s��� r���rI���zSocketListener.__init__X��sF������}�W�V�V�%<�%<�=�=��� ��w�'�!�!���'�'��(9�(.�(;�Q�@��@��@��L�$�$�T�*�*�*��L���g�&�&�&��L����(�(�(� �L�4�4�6�6�D�M�M���� �� �� ��L��� � � �� ��������"����Y���t�'H��'Q�'Q���=��b�i�w�j�q������D�L�L�L�� �D�L�L�Ls����B,C��%D�c�����������������������|�j��������������������������������������������\��}|�_��������|���������������������d�������������t ����������|�����������������������������������������������S�)NT)r9��r����r��r��r����r���rE����ss��� r���r����zSocketListener.acceptq��sE������!%��!4�!4�!6�!6���4�� � � �d�����!�(�(�*�*�%�%�%r���c����������������������� �|�j���������������������������������������������|�j��������}|�d�|�_���������|���������������d�S�d�S�#�|�j��������}|�d�|�_���������|���������������w�w�xY�wr���)r9��rX���rD��)rE���rC��s��� r���rX���zSocketListener.closev��sr������ ��L��� � � ��\�F��!�#�����������"�!����\�F��!�#����������"���s ����9��AN)r���)r����r����r����r����rI���r����rX���r����r���r���r����r����T��sP����������������� �� �� �� �2&��&��&� ��������r���r����c������������������8����t����������|�������������}t����������j��������t����������t����������|������������������������5�}|���������������������d�������������|���������������������|��������������t����������|�����������������������������������������������cddd�������������S�#�1�swxY�w�Y���dS�)zO Return a connection object connected to the socket given by `address` TN)r=���r4���r8��r���connectr����r��)r<���r.���rG��s��� r���r ��r �����s���������'� "� "�F� �����/�/� 1� 1��&�Q� � � �d���� � � �'�����!�(�(�*�*�%�%�&��&��&��&��&��&��&��&��&��&��&��&�����&��&��&��&��&��&s����AB�B�Bc��������������������>�����e�Zd�ZdZdd�Zd d�Zd��Zed����������������ZdS�) r����z0 Representation of a named pipe Nc������������������������||�_���������|����������������������d�������������g|�_��������d�|�_��������t ����������j��������d|�j����������������������t ����������j��������|�t����������j��������|�j��������|�j���������fd�������������|�_ ��������d�S�)NT)�firstz listener created with address=%rr���r5��) r���_new_handle� _handle_queuer��r���� sub_debugrB��r�����_finalize_pipe_listenerrX���)rE���r<���r����s��� r���rI���zPipeListener.__init__���su������#�D�M�"&�"2�"2��"2�">�">�!?�D��"&�D���N�=�t�}�M�M�M����l�:��(�$�-�8�q������D�J�J�Jr���Fc����������� �������.����t�����������j��������t�����������j��������z��}|r|t�����������j��������z��}t����������j��������|�j��������|t�����������j��������t�����������j��������z��t�����������j��������z��t�����������j ��������t����������t����������t�����������j��������t�����������j��������������������S�r���) r����r��r ��r!��r��r��r"��r#��r$���PIPE_UNLIMITED_INSTANCESr��r%��r&��)rE���rM���flagss��� r���rN��zPipeListener._new_handle���sp�������.��1M�M�E��� ?���>�>���*�� �u��)�G�,I�I��!�"��0�'�7��,�g�l����� r���c������������������D����|�j������������������������������|�������������������������������������������������|�j������������������������������d������������} �t ����������j��������|d�������������} �t ����������j��������|j��������gdt����������������������}n.#��|� �����������������������������������t ����������j ��������|���������������xY�w �|���������������������d������������\��}}nJ#�|���������������������d������������\��}}w�xY�w#�t����������$�r }|j ��������t����������j��������k����r��Y�d�}~nd�}~ww�xY�wt����������|������������S�)Nr���Tr����F)rO���appendrN���popr����r*��r����r����r���r����r����r����rQ���r����� ERROR_NO_DATAr����)rE���rF���r�����resr1��r����r����s��� r���r����zPipeListener.accept���s8�������%�%�d�&6�&6�&8�&8�9�9�9��'�+�+�A�.�.�F� $��-�f��F�F�F�� $�!�8��� �E�8�5��5�C�C����I�I�K�K�K��'��/�/�/�������� �3�3�D�9�9�F�A�s�s��R�3�3�D�9�9�F�A�s�#�O�O�O����� �� �� ��:��!6�6�6���7�6�6�6�6����� ���� �"�&�)�)�)s6����C&��!B���C ��+B,�,C �� C#�& D�0D�Dc������������������b�����t����������j��������d|�������������|�D�]}t����������j��������|��������������d�S�)Nz closing listener with address=%r)r���rP��r����r����)�queuer<���rF���s��� r���rQ��z$PipeListener._finalize_pipe_listener���sB�������N�=�w�G�G�G��� ,�� ,���#�F�+�+�+�+� ,�� ,r���r���)F) r����r����r����r����rI���rN��r�����staticmethodrQ��r����r���r���r����r�������sp�������������� �� � �� �� �� � �� �� �� � *�� *�� *�.� � ,�� ,�� �� ,�� ,�� ,r���r����c����������� ������������t������������������������} � �t����������j��������|�d�������������t����������j��������|�t����������j��������t����������j��������z��dt����������j��������t����������j��������t����������j��������t����������j��������������������}nG#�t����������$�r9}|j ��������t����������j��������t����������j��������fvst����������|������������r��Y�d}~nd}~ww�xY�w��t����������j��������|t����������j��������dd�������������t!����������|������������S�)zU Return a connection object connected to the pipe given by `address` r�������r���N)r���r����� WaitNamedPiper'��r��r��r&��r(��r ��rQ���r�����ERROR_SEM_TIMEOUT�ERROR_PIPE_BUSYr���r)��r#��r����)r<���r����hr����s��� r���r��r�����s������ �O�O�� � ��%�g�t�4�4�4��&��W�1�G�4I�I��w�|�W�%:��0�'�,����������� �� �� ��:�g�&?�&-�&=�&?��?��?�BP�QR�BS�BS�?��?��?��?��?��?����� ���� �"� �'� �w�,�d�D� �� �� ���a� � � s����A.B���� C� /B>�>C����s���#CHALLENGE#s ���#WELCOME#s ���#FAILURE#c����������������������dd�l�}t����������|t����������������������s/t����������d���������������������t����������|�������������������������������������t ����������j��������t����������������������}|�� ��������������������t����������|z����������������|���������������������||d�����������������������������������������������}|�� ��������������������d������������}||k����r|�� ��������������������t�����������������������d�S�|�� ��������������������t�����������������������t!����������d�������������)Nr���� Authkey must be bytes, not {0!s}�md5����zdigest received was wrong)�hmacr����r����r,����formatr7���r(����urandom�MESSAGE_LENGTHro���� CHALLENGE�new�digestrz����WELCOME�FAILUREr ����� connectionr����rh���messagern���responses��� r���r����r�������s��������K�K�K��g�u�%�%��F��.�5�5�d�7�m�m�D�D�F��F�� F��j��(�(�G����)�g�-�.�.�.� �X�X�g�w�� .� .� 5� 5� 7� 7�F��$�$�S�)�)�H��6������g�&�&�&�&�&����g�&�&�&�!�"=�>�>�>r���c�����������������������dd�l�}t����������|t����������������������s/t����������d���������������������t����������|�������������������������������������|����������������������d������������}|t����������t����������������������d�����������}|� ��������������������||d������������� ����������������������������������}|����������������������|�������������|����������������������d������������}|t����������k����rt����������d�������������d�S�)Nr���re��rg��rf��zdigest sent was rejected)rh��r����r����r,���ri��r7���rz���r|���rl��rm��rn��ro���ro��r ���rq��s��� r���r����r�������s��������K�K�K��g�u�%�%��F��.�5�5�d�7�m�m�D�D�F��F�� F��#�#�C�(�(�G��c�)�n�n�o�o�&�G� �X�X�g�w�� .� .� 5� 5� 7� 7�F����&�!�!�!��$�$�S�)�)�H��7���!�"<�=�=�=���r���c�������������������� �����e�Zd�Zd��Zd��Zd��ZdS�)�ConnectionWrapperc������������������|�����||�_���������||�_��������||�_��������dD�]#}t����������||������������}t ����������|�||��������������$d�S�)N)ra���rX���r����rz���ro���)�_conn�_dumps�_loadsr8���setattr)rE����connrr���r�����attrrt���s��� r���rI���zConnectionWrapper.__init__��sT�������� �������K�� %�� %�D��$��%�%�C��D�$��$�$�$�$� %�� %r���c������������������d�����|�����������������������|������������}|�j�����������������������������|�������������d�S�r���)rz��ry��ro���)rE���rt���rG��s��� r���ru���zConnectionWrapper.send��s/�������K�K������ ���a� � � � � r���c������������������^�����|�j��������������������������������������������}|����������������������|������������S�r���)ry��rz���r{��rF��s��� r���r����zConnectionWrapper.recv��s%�������J�!�!�#�#���{�{�1�~�~�r���N)r����r����r����rI���ru���r����r����r���r���rw��rw����sA��������������%��%��%�!��!��!���������r���rw��c������������������f�����t��������������������������������|�fd�d�d�d���������������������������������d������������S�)Nr����utf-8)� xmlrpclibrr����encode)rt���s��� r���� _xml_dumpsr�����s,�������?�?�C�6�4��t�Q�7�7�>�>�w�G�G�Gr���c������������������j�����t��������������������������������|����������������������d������������������������\��\��}}|S�)Nr���)r���r�����decode)rG��rt����methods��� r���� _xml_loadsr��� ��s*�������_�_�Q�X�X�g�%6�%6�7�7�N�F�S�F��Jr���c�������������������������e�Zd�Zd��ZdS�)�XmlListenerc������������������x�����dd�l�ma�t�������������������������������|�������������}t����������|t����������t����������������������S��Nr���)� xmlrpc.client�clientr���r���r����rw��r���r���rs���s��� r���r����zXmlListener.accept%��s7������)�)�)�)�)�)��o�o�d�#�#�� ��j�*�=�=�=r���N)r����r����r����r����r����r���r���r���r���$��s#��������������>��>��>��>��>r���r���c�������������������X�����dd�l�ma�t����������t ����������|�i�|��t ����������t����������������������S�r���)r���r���r���rw��r���r���r���)r6���kwdss��� r���� XmlClientr���+��s3������%�%�%�%�%�%��V�T�2�T�2�2�J� �K�K�Kr���c����������������������t����������|�������������}g�}|r�t����������j��������|d|������������}|t����������k����rn�t����������|cxk����rt����������t����������|������������z���k�����rn�n|t����������z��}nDt����������|cxk����rt����������t����������|������������z���k�����rn�n|t����������z��}nt����������d�������������|���������������������||����������������������||dz���d�����������}d}|��|S�)NFzShould not get herer���r���) �listr����r����r���r���r|���r ���r����rV��)�handlesr����L�readyrY��s��� r����_exhaustive_waitr���6��s�������� ��M�M������ ��0��E�7�C�C�C��l�"�"���#�>�>�>�>� ��A���(>�>�>�>�>�>��}�$���!�S�D�D�D�D�+;�c�!�f�f�+D�D�D�D�D�D��'�'���"�#8�9�9�9��L�L��3�� � � ��#�a�%�&�&� �A��G���� ���r���c��������������������� ���|�t�����������}n|dk�����rd}nt����������|dz��dz���������������}t����������|�������������}�i��g�}t������������������������� t������������������������} �|�D��]B} �t ����������|d������������} �t����������j���������|��������������dd������������\��}}n*#�t����������$�r}d|j��������}}|t����������vr��Y�d}~nd}~ww�xY�w|t ����������j ��������k����r |���������������������|�������������|�|j��������<�����|rpt����������j����������������������dd����������dk����rQ �|���������������������d ������������\��} }n#�t����������$�r}|j��������}Y�d}~nd}~ww�xY�w|st!����������|d ������������rd|_��������� ���������������������|�������������d}��#�t&����������$�r�|�|�����������������������������������<���Y���@w�xY�wt+����������������������������������������������|������������}|D�]}|�������������������������������������|D�]�} �|���������������������d������������\��} }n(#�t����������$�r}|j��������}|t����������vr��Y�d}~nd}~ww�xY�w|t ����������j��������k����r?�|j�����������������}� ���������������������|�������������|dk����rt!����������|d ������������rd|_����������n�#�|D�]}|�������������������������������������|D�]�} �|���������������������d������������\��} }n(#�t����������$�r}|j��������}|t����������vr��Y�d}~nd}~ww�xY�w|t ����������j��������k����r?�|j�����������������}� ���������������������|�������������|dk����rt!����������|d ������������rd|_����������w�xY�w� ����������������������fd�|D����������������������������� fd�|�D���������������S�) �� Wait till an object in object_list is ready/readable. Returns list of those objects in object_list which are ready/readable. Nr���r^��g�������?ra���T����)����r���Fr����c��������������3����(����K����|�]}�|���������V���� d�S�r���r����)�.0rb���waithandle_to_objs��� �r���� <genexpr>zwait.<locals>.<genexpr>���s)�����������I�I�a�.�q�1�I�I�I�I�I�Ir���c������������������������g�|�]}|�v��|�� S�r����r����)r����o� ready_objectss��� �r���� <listcomp>zwait.<locals>.<listcomp>���s#�������=�=�=�a�!�}�*<�*<��*<�*<�*<r���)r����intr����setr8��r����r����rQ���r����� _ready_errorsr����rV��r����r1����getwindowsversionr����r3���r�����add�AttributeErrorrA���r����keysr����r�����update)�object_listr����ov_list� ready_handlesr���ra���r����r����r����r1��r���r���s��� @@r���r���r���L��sX���������?��G�G� �q�[�[��G�G��'�D�.�3�.�/�/�G��;�'�'��������� ���� �6 8� �� $�� $��$�$�Q��1�1�F� "�")�"2�6�6�8�8�Q��"E�"E���C�C��"��"��"��"�"&�� �C���m�3�3�!��4�3�3�3�3�����"������g�6�6�6����r�*�*�*�67�)�"�(�3�3� ���<�#�"7�"9�"9�"�1�"�"=��"G�"G�1�)+�)?�)?��)F�)F���3�3��#*��1��1��1�&'�j�����������1����#&��<�7�1�6J�+K�+K��<�7;�� 4�%�)�)�!�,�,�,�"#����7�&��9��9��9�78�%�a�k�k�m�m�4�4�4�9����:�-�->�-C�-C�-E�-E�w�O�O�M���� �� ��� � �������� 8�� 8����3�3�D�9�9�F�A�s�s����������*�C��-�/�/���0�/�/�/�/�����������'�9�9�9�)�"�(�3�A�!�%�%�a�(�(�(��a�x�x��#�1�&:�;�;��8�37�A�0�� 8�� ��� �� ��� � �������� 8�� 8����3�3�D�9�9�F�A�s�s����������*�C��-�/�/���0�/�/�/�/�����������'�9�9�9�)�"�(�3�A�!�%�%�a�(�(�(��a�x�x��#�1�&:�;�;��8�37�A�0�� 8���� � ���I�I�I�I�=�I�I�I�I�I�I�=�=�=�=�;�=�=�=�=s�����I3��!E9�2!B�I3�� B;�B6�1I3��6B;�;AI3��D)�(I3��) E�3D?�:I3��?E�5I3��9!F�I3��F�%I3��!G:�: H�H�H�3L$�J+�*L$�+ K �5K �L$�K �AL$�PollSelectorc������������������n����t������������������������5�}|�D�]"}|���������������������|t����������j����������������������#|�t ����������j����������������������|z���} �|���������������������|������������}|rd��|D���������������cddd�������������S�|�*|t ����������j����������������������z ��}|dk�����r|cddd�������������S��\#�1�swxY�w�Y���dS�)r���NTc������������������"�����g�|�]\��}}|j����������� S�r����)�fileobj)r����key�eventss��� r���r���zwait.<locals>.<listcomp>���s������C�C�C�M�S�&�C�K�C�C�Cr���r���)� _WaitSelector�register� selectors� EVENT_READr���r����select)r���r����selectorrt����deadliner���s��� r���r���r������s4�������_�_�� )��"�� =�� =���!�!�#�y�';�<�<�<�<��"��>�+�+�g�5�� )� ����0�0����)�C�C�U�C�C�C� )�� )�� )�� )�� )�� )�� )�� )���*�"*�T�^�-=�-=�"=��"�Q�;�;�#(� )�� )�� )�� )�� )�� )�� )�� )� )� )�� )�� )�� )����� )�� )�� )�� )�� )�� )s����A!B*�=B*�)B*�*B.�1B.c����������������������|�������������������������������������}t����������j��������|t����������j��������t����������j��������������������5�}ddlm}�|���������������������|������������}t����������||�j ��������|�j ��������ffcd�d�d��������������S�#�1�swxY�w�Y���d�S�)Nr���)�resource_sharer)ra���r4����fromfdr����SOCK_STREAMr$���r���� DupSocket�rebuild_connectionrG���rH���)r}��rF���rG��r����dss��� r����reduce_connectionr������s������������� �]�6�6�>�6�3E� F� F�� J�!�)�)�)�)�)�)� �*�*�1�-�-�B�%��D�M�4�=�'I�I� J�� J�� J�� J�� J�� J�� J�� J�� J�� J�� J�� J����� J�� J�� J�� J�� J�� Js����1A=�=B�Bc������������������p�����|�������������������������������������}t����������|������������������������������������||������������S�r����r��r����)r���rG���rH����socks��� r���r���r������s)�������y�y�{�{���$�+�+�-�-��8�<�<�<r���c������������������������|�j���������rt����������j��������nd|�j��������rt����������j��������ndz��}t����������j��������|������������������������������������|������������}t����������||�j���������|�j��������ffS�r���) rG���r�����FILE_GENERIC_READrH����FILE_GENERIC_WRITEr���� DupHandlera����rebuild_pipe_connection)r}��r,���dhs��� r����reduce_pipe_connectionr������s^������04� �D�7�,�,�1�15��E�7�-�-�A�G�� � ������� 7� 7��&��T�]�D�M�(J�J�Jr���c������������������L�����|�������������������������������������}t����������|||������������S�r���)r��r����)r���rG���rH���rF���s��� r���r���r������s!�������������f�h��9�9�9r���c������������������z�����t����������j��������|������������������������������������������������}t����������||�j��������|�j��������ffS�r���)r����DupFdra���r���rG���rH���)r}���dfs��� r���r���r������s/������ �_�T�[�[�]�]� +� +��!�B�� �t�}�#E�E�Er���c������������������L�����|�������������������������������������}t����������|||������������S�r���r���)r���rG���rH����fds��� r���r���r������s!������ �Y�Y�[�[���"�h��1�1�1r���)NN)Tr���)J�__all__r����r����r(���r1���r4���r����r���r%���� itertoolsr����r$���r���r ���r ����contextr����ForkingPicklerrq���r����r���r ���r���r����ImportErrorr2���r���CONNECTION_TIMEOUT�countr+���r�����familiesr3���r���r���r/���r5���r=���r?���r����r�����objectr���r���r���r����r ��r����r��rk��rl��ro��rp��r����r����rw��r���r���r���r���r���r�����ERROR_NETNAME_DELETEDr���r���r���r���r����SelectSelectorr���r���r���r���r���r����r���r����<module>r������s������3� 2� 2�������� � � � �� � � � �� � � � �� � � � �� � � � ����������������������������������������1��1��1��1��1��1��1��1��������������*����N�N�N�O�O�O�O�O�O�O�O�O�O�O�O�O��������� �|�w��� ��G�G�G������������ ��!�!� ����;�� �7�6�9������N�����H��<�7����N�����H��-��&��&��&��&� �� �� �0��0��0� F�� F�� F� F�� F�� F�&T��T��T��T��T��T��T��T�n���_�]��]��]��]��]���]��]��]�@M��M��M��M��M���M��M��M�h;��;��;��;��;�v��;��;��;�| �� �� �� �*��<�7������������&&��&��&��&�X)��)��)��)��)�V��)��)��)�X&��&��&���<�7���6,��6,��6,��6,��6,�v��6,��6,��6,�p!��!��!�>���� � �� �� ?�� ?�� ?�>��>��>�$ �� �� �� �� ��� �� �� �H��H��H������>��>��>��>��>�(��>��>��>�L��L��L���<�7��������(��.��0M�N�M�L>��L>��L>��L>��L>�`����� ��w�y�.�)�)��1�!�.� � �!�0� �)��)��)��)�6��<�7���J��J��J�=��=��=���I��z�#4�5�5�5�K��K��K� :��:��:���I��~�'=�>�>�>�>�>�F��F��F�2��2��2���I��z�#4�5�5�5�5�5s���� A��A0�/A0