� B�g�=��" �dZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z m Z m Z m Z mZmZmZmZmZmZddlZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lm Z ddlm!Z!ddlm"Z"ddlm#Z#ddl$Zej%e&��Z'd�(ej)��Z*dZ+ej,d��duZ-ej.j/ej.j0ej.j1ej.j2ej.j3ej.j4fZ5ej.j/ej.j0ej.j1ej.j2ej.j4fZ6ej.j/ej.j2ej.j3ej.j4fZ7ej.j/ej.j2ej.j4fZ8dZ9dZ:dZ;dee<dee<fd�Z=deej>dee?de?fd�Z@Gd�deA��ZBdeBdej>de?ddfd �ZCd!ejDdeBd"eedee fd#�ZEdeBd"eede#fd$�ZFd%e deBd&eejGejHfd'e"d(ee#ddf d)�ZId*e?d+eBde?fd,�ZJGd-�d.ejKejLejM��ZNGd/�d0ejKejO��ZPGd1�d2ePejLejM��ZQGd3�d4ePejLejM��ZRd5e dee<d'e"deee<eeSeejKffd6�ZTdeBd&ejHd7eUd8ee<dee!ee!ejLfff d9�ZVd:eed;eWdeeejXfd<�ZYd:eed;eWdeeeejXee#ffd=�ZZd>ee<dee<fd?�Z[Gd@�dAej\��Z]GdB�dCej^��Z_GdD�dEej^��Z`GdF�dGeja��ZbGdH�dIejc��ZdGdJ�dKeW��ZeGdL�dMeA��ZfdefddfdN�ZgdeffdO�ZhGdP�dQeA��Zideidee ejjgdffdR�ZkdeidSejjdTee ejjgdfddfdU�ZldeidVee ejjgdfddfdW�ZmdeidXejndYeUddfdZ�Zodeid[e ejjgdfd\eUddfd]�Zpdeid[e ejjgdfddfd^�Zqd_eed`eejrdeefda�Zsdbeedeeeeeffdc�ZtGdd�deejn��ZndS)fz.Invocation-side implementation of gRPC Python.�N) �Any�Callable�Dict�Iterator�List�Optional�Sequence�Set�Tuple�Union)�_common)� _compression)�_grpcio_metadata)�_observability)�cygrpc)�ChannelArgumentType)�DeserializingFunction)�IntegratedCallFactory)� MetadataType)�NullaryCallbackType)� ResponseType)�SerializingFunction)�UserTagzgrpc-python/{}�!GRPC_SINGLE_THREADED_UNARY_STREAMz0Exception calling channel subscription callback!z?<{} of RPC that terminated with: status = {} details = "{}" >zZ<{} of RPC that terminated with: status = {} details = "{}" debug_error_string = "{}" >�timeout�returnc�6�|�dntj��|zS�N)�time�rs �]/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/grpc/_channel.py� _deadliner"ms���?�4�4�� � � �g�(=�=��unknown_cygrpc_code�detailsc�.�d�||��S)Nz,Server sent unknown code {} and details "{}")�format)r$r%s r!�_unknown_code_detailsr(qs!�� :� @� @��W� � �r#c ���eZdZUejed<eejed<e e ed<e ed<e e ed<e e j ed<e eed<e eed<eed <eeed <e eed <e eed <e eed <e eed<e eed<deejde e de e de e j de ef d�Zd�ZdS)� _RPCState� condition�due�initial_metadata�response�trailing_metadata�coder%�debug_error_string� cancelled� callbacks� fork_epoch�rpc_start_time� rpc_end_time�method�targetc�6�tj��|_t|��|_||_d|_||_||_||_ d|_ d|_ d|_ d|_ d|_d|_g|_t#j��|_dS�NF)� threading� Conditionr+�setr,r-r.r/r0r%r1r5r6r7r8r2r3r�get_fork_epochr4)�selfr,r-r/r0r%s r!�__init__z_RPCState.__init__�s���#�,�.�.����s�8�8��� 0����� �!2����� ��� �"&���#��� ����� ��� � ������ �/�1�1����r#c�6�tj��|_dSr)r;r<r+�r?s r!�reset_postfork_childz_RPCState.reset_postfork_child�s��"�,�.�.����r#N)�__name__� __module__� __qualname__r;r<�__annotations__r r� OperationTyperrr�grpc� StatusCode�str�boolrr�int�floatr r@rC�r#r!r*r*yss��������"�"�"�"� �V� !� "�"�"�"��|�,�,�,�,��M�M�M�� �-�-�-�-� �4�?� #�#�#�#� �c�]���� �� �%�%�%��O�O�O��'�(�(�(�(��� �����U�O�#�#�#��5�/�!�!�!� �S�M���� �S�M����&2� �f�*� +�&2�#�<�0�&2�$�L�1� &2� �t��'� &2� �#�� &2�&2�&2�&2�P/�/�/�/�/r#r*�stater0c�^�|j�%||_||_|j�d|_d|_dSdS�NrO)r0r%r-r/)rPr0r%s r!�_abortrS�s?�� �z���� ��� � � !� )�%'�E� "�"$����� �r#�event�response_deserializerc��g}|jD�]�}|���}|j�|��|tjjkr|���|_�`|tjjkrX|� ��}|�Atj ||��}|�#d}t|tjj|����||_��|tjjk�r|���|_|j��tj�|�����} | �>tjj|_t/| |�����|_n9| |_|���|_|���|_t7j��|_t=j|��|� |j!��d|_!���|S)Nz!Exception deserializing response!)"�batch_operations�typer,�removerrH�receive_initial_metadatar-�receive_message�messager � deserializerSrIrJ�INTERNALr.�receive_status_on_clientr/r0�!CYGRPC_STATUS_CODE_TO_STATUS_CODE�get�UNKNOWNr(r%� error_stringr1r� perf_counterr6r�maybe_record_rpc_latency�extendr3) rTrPrUr3�batch_operation�operation_type�serialized_responser.r%r0s r!� _handle_eventrj�s��� �I� �1�"#�"#��(�-�-�/�/�� � ����(�(�(� �V�1�J� J� J�%4�%E�%E�%G�%G�E� "� "� �v�3�C� C� C�"1�"9�"9�";�";� �"�.�"�.�'�)>�����#�A�G��5�$�/�":�G�D�D�D�D�%-�E�N�� �v�3�L� L� L�&5�&G�&G�&I�&I�E� #��z�!��@�D�D�#�(�(�*�*�����<�!%��!8�E�J�$9��o�5�5�7�7�%�%�E�M�M�"&�E�J�$3�$;�$;�$=�$=�E�M�/>�/K�/K�/M�/M�E�,�!%�!2�!4�!4�E� � � 3�E� :� :� :� � � �U�_� -� -� -�"�E�O�� �r#c������fd�}|S)Nc ����j5t|����}�j����j }ddd��n #1swxYwY|D]Y} |���#t$r?}t jdt|j��t|����Yd}~�Rd}~wwxYw|o�j tj ��kS)NzException in callback %s: %s) r+rj� notify_allr,� Exception�logging�error�repr�funcr4rr>)rTr3�done�callback�erUrPs ��r!� handle_eventz$_event_handler.<locals>.handle_event�s5��� �_� !� !�%�e�U�4I�J�J�I� �O� &� &� (� (� (��y�=�D� !� !� !� !� !� !� !� !� !� !� !���� !� !� !� !�"� � �H� ��� � � � ��� � � �� �2�D���4G�4G��a��������������� ���� �C��(�F�,A�,C�,C�C�Cs)�3A�A �A � A#�# B,�-5B'�'B,rO)rPrUrvs`` r!�_event_handlerrw�s0����D�D�D�D�D�D� �r#�request_iterator�call�request_serializer� event_handlerc������������fd�}tj|���}|�d��|���dS)z'Consume a request supplied by the user.c ���� d} tj��t� ��}n�#t$rY|stj���nmt $r�tj��d}t jj}d}t� |���� tj ||��t� ||��Y|stj��dSdSwxYw |stj��n#|stj��wwxYwtj|� ��}� j5� j��N� j�sF|�Xt jj}d}�� tj ||��t� ||�� ddd��dS� j�tjj��tj|t2��f}��|� ��}|s7� j�tjj�� ddd��dS� fd�}tj� jj|t;jtj� ������ j� ddd��dSn ddd��dS ddd��n #1swxYwY���� j5� j��� j�tjj ��tj!t2��f}��|� ��}|s)� j�tjj ��ddd��dS#1swxYwYdS)NTFzException iterating requests!�Exception serializing request!c�F���jduptjj�jvSr)r0rrH� send_messager,)rPs�r!�_donezJ_consume_request_iterator.<locals>.consume_request_iterator.<locals>._done=s*��� %� �$� 6�!1�#)�#7�#D�',�y�$1�r#)�spin_cb)"r�enter_user_request_generator�next� StopIteration�"return_from_user_request_generatorrnrIrJrb�_LOGGER� exception�cancelr �!STATUS_CODE_TO_CYGRPC_STATUS_CODErS� serializer+r0r2r^r,�addrHr��SendMessageOperation� _EMPTY_FLAGS�operaterY�wait� functools�partial�block_if_fork_in_progress�send_close_from_client�SendCloseFromClientOperation) �*return_from_user_request_generator_invoked�requestr0r%�serialized_request� operations� operatingr�ryr{rxrzrPs �����r!�consume_request_iteratorz;_consume_request_iterator.<locals>.consume_request_iterator s����? �9>� 6� @��3�5�5�5��/�0�0���� � � � ��B�@��=�?�?�?��� � � ��9�;�;�;�=A�:���.��9���!�!�'�*�*�*�� � ��=�d�C�W�����u�d�G�,�,�,��A�@��=�?�?�?�?�?�@�@� �����B�@��=�?�?�?���B�@��=�?�?�?�?�@����!(�!2�7�<N�!O�!O� ���( �( ��:�%�e�o�%�)�1�#��7��"B��� � �#�E�d�K�#�����u�d�G�4�4�4��( �( �( �( �( �( �( �( �� � � �f�&:�&G�H�H�H�"�7� 2�L���&� � %)�L�L��]�$K�$K� �(�#�!�I�,�,�V�-A�-N�O�O�O�"�+( �( �( �( �( �( �( �( �.����� � �!�O�0�!�$-�$5� &� @�%�%�%�����!�:�1�"�M( �( �( �( �( �( �( �( �J2��Q( �( �( �( �( �( �( �( �J2�K( �( �( �( �( �( �( �( �( �( �( ����( �( �( �( �/? �@�_� � ��z�!�� � � �f�2�I�J�J�J��7� �E�E�� �!�L�L��]�C�C� � ���I�$�$��,�C���� � � � � � � � � � � � ���� � � � � � sl�")�D� C(�D� BC(� D�'C(�(D�D�9AJ+�$BJ+�7A J+�J+�+J/�2J/�?B M�M�M�r8TN�r�ForkManagedThread� setDaemon�start)rxrPryrzr{r��consumption_threads````` r!�_consume_request_iteratorr�s��������M�M�M�M�M�M�M�M�M�^ �1�'������ � ��&�&�&��������r#� class_name� rpc_statec��|j5|j�!d�|��cddd��S|jtjjur2t �||j|j��cddd��St�||j|j|j ��cddd��S#1swxYwYdS)z Calculates error string for RPC.Nz <{} object>) r+r0r'rIrJ�OK�_OK_RENDEZVOUS_REPR_FORMATr%�_NON_OK_RENDEZVOUS_REPR_FORMATr1)r�r�s r!�_rpc_state_stringr�bs4�� � � � � �>� !� �'�'� �3�3� � � � � � � � ��^�t��1� 1� 1�-�4�4��I�N�I�,=��� � � � � � � � �2�8�8�����!��,� �� � � � � � � � � � � � ���� � � � � � s�B3�=B3�;+B3�3B7�:B7c���eZdZUdZeed<defd�Zdeefd�Z deefd�Z dee j fd�Z deefd �Zdeefd �Zdefd �Zdefd �Zdefd �Zdefd�Zdefd�Zdefd�Zdefd�Z ddeedefd�Z ddeedeefd�Z ddeedeejfd�Z dde!e j"gdfdeeddfd�Z#dS)�_InactiveRpcErrorz�An RPC error not tied to the execution of a particular RPC. The RPC represented by the state object must not be in-progress or cancelled. Attributes: _state: An instance of _RPCState. �_staterPc ��|j5tdtj|j��tj|j��|jtj|j����|_tj|j ��|j_ tj|j ��|j_ ddd��dS#1swxYwYdSrR) r+r*�copy�deepcopyr-r/r0r%r�r.r1�r?rPs r!r@z_InactiveRpcError.__init__�s��� �_� Q� Q�#��� �e�4�5�5�� �e�5�6�6�� �� �e�m�,�,� ��D�K�$(�9�U�^�#<�#<�D�K� �-1�Y�u�7O�-P�-P�D�K� *� Q� Q� Q� Q� Q� Q� Q� Q� Q� Q� Q� Q���� Q� Q� Q� Q� Q� Qs�B)B>�>C�Crc��|jjSr�r�r-rBs r!r-z"_InactiveRpcError.initial_metadata�s ���{�+�+r#c��|jjSr�r�r/rBs r!r/z#_InactiveRpcError.trailing_metadata�s ���{�,�,r#c��|jjSr�r�r0rBs r!r0z_InactiveRpcError.code�s ���{��r#c�>�tj|jj��Sr)r �decoder�r%rBs r!r%z_InactiveRpcError.details�s���~�d�k�1�2�2�2r#c�>�tj|jj��Sr)r r�r�r1rBs r!r1z$_InactiveRpcError.debug_error_string�s���~�d�k�<�=�=�=r#c�@�t|jj|j��Sr�r�� __class__rDr�rBs r!�_reprz_InactiveRpcError._repr���� ���!8�$�+�F�F�Fr#c�*�|���Sr�r�rBs r!�__repr__z_InactiveRpcError.__repr__�����z�z�|�|�r#c�*�|���Srr�rBs r!�__str__z_InactiveRpcError.__str__�r�r#c��dS)zSee grpc.Future.cancel.FrOrBs r!r�z_InactiveRpcError.cancel�����ur#c��dS)zSee grpc.Future.cancelled.FrOrBs r!r2z_InactiveRpcError.cancelled�r�r#c��dS)zSee grpc.Future.running.FrOrBs r!�runningz_InactiveRpcError.running�r�r#c��dS)zSee grpc.Future.done.TrOrBs r!rsz_InactiveRpcError.done�s���tr#Nrc��|�)zSee grpc.Future.result.rO�r?rs r!�resultz_InactiveRpcError.result�s ��� r#c��|S)zSee grpc.Future.exception.rOr�s r!r�z_InactiveRpcError.exception�s ��� r#c�d� |�#tj$rtj��dcYSwxYw)zSee grpc.Future.traceback.�)rI�RpcError�sys�exc_infor�s r!� tracebackz_InactiveRpcError.traceback�s@�� %��J���}� %� %� %��<�>�>�!�$� $� $� $� %���s ��(/�/�fnc��||��dS)z"See grpc.Future.add_done_callback.NrO)r?r�rs r!�add_done_callbackz#_InactiveRpcError.add_done_callback�s�� ��4�����r#r)$rDrErF�__doc__r*rGr@rrr-r/rIrJr0rKr%r1r�r�r�rLr�r2r�rsrNrr�rnr��types� TracebackTyper�r�Futurer�rOr#r!r�r�ts���������� ���� Q�i� Q� Q� Q� Q�,�(�<�"8�,�,�,�,�-�8�L�#9�-�-�-�-� �h�t��/� � � � �3��#��3�3�3�3�>�H�S�M�>�>�>�>�G�s�G�G�G�G��#������������������4������������d����� *.������� �����*.������� �)� �����*.�%�%����%� �%�%� &�%�%�%�%�$(��� �d�k�]�D�(� )���%��� � �����r#r�c �r��eZdZUdZeed<eejej fed<e e ed<e e ed<dedeejej fde e d e e f�fd � Z d efd �Zd e e fd �Zd efd�Zded efd�Zd�Zd�Zd�Zd�Zd e efd�Zd efd�Zd efd�Zd efd�Zdd�Z�xZS)� _Rendezvousa�An RPC iterator. Attributes: _state: An instance of _RPCState. _call: An instance of SegregatedCall or IntegratedCall. In either case, the _call object is expected to have operate, cancel, and next_event methods. _response_deserializer: A callable taking bytes and return a Python object. _deadline: A float representing the deadline of the RPC in seconds. Or possibly None, to represent an RPC with no deadline at all. r��_call�_response_deserializerr"rPryrU�deadlinec���tt|�����||_||_||_||_dSr)�superr�r@r�r�r�r")r?rPryrUr�r�s �r!r@z_Rendezvous.__init__�sB��� �k�4� � �)�)�+�+�+��� ��� �&;��#�!����r#rc�j�|jj5|jjducddd��S#1swxYwYdS)zSee grpc.RpcContext.is_activeN�r�r+r0rBs r!� is_activez_Rendezvous.is_active�s~�� �[� "� ,� ,��;�#�t�+� ,� ,� ,� ,� ,� ,� ,� ,� ,� ,� ,� ,���� ,� ,� ,� ,� ,� ,� �(�,�,c���|jj5|j� ddd��dSt|jt j��z d��cddd��S#1swxYwYdS)z"See grpc.RpcContext.time_remainingNr)r�r+r"�maxrrBs r!�time_remainingz_Rendezvous.time_remaining�s��� �[� "� <� <��~�%�� <� <� <� <� <� <� <� <��4�>�D�I�K�K�7��;�;�  <� <� <� <� <� <� <� <� <� <� <� <���� <� <� <� <� <� <s� A�(A�A�Ac��|jj5|jj��tjj}d}|j�tj ||��d|j_ t|j||��|jj� �� ddd��dS ddd��dS#1swxYwYdS)zSee grpc.RpcContext.cancelNz!Locally cancelled by application!TF) r�r+r0rIrJ� CANCELLEDr�r�r r�r2rSrm)r?r0r%s r!r�z_Rendezvous.cancel�s�� �[� "� � ��{��'���0��=��� �!�!��=�d�C�W����)-�� �%��t�{�D�'�2�2�2�� �%�0�0�2�2�2�� � � � � � � � �� � � � � � � � � � � � ���� � � � � � s�B B4�&B4�4B8�;B8rtc���|jj5|jj� ddd��dS|jj�|�� ddd��dS#1swxYwYdS)z See grpc.RpcContext.add_callbackNFT)r�r+r3�append�r?rts r!� add_callbackz_Rendezvous.add_callbacks��� �[� "� � ��{�$�,�� � � � � � � � �� �%�,�,�X�6�6�6��  � � � � � � � � � � � ���� � � � � � s�A� A�A�Ac��|SrrOrBs r!�__iter__z_Rendezvous.__iter__���� r#c�*�|���Sr��_nextrBs r!r�z_Rendezvous.nextr�r#c�*�|���Srr�rBs r!�__next__z_Rendezvous.__next__r�r#c��t���r��NotImplementedErrorrBs r!r�z_Rendezvous._next!���!�#�#�#r#c��t���rr�rBs r!r1z_Rendezvous.debug_error_string$r�r#c�@�t|jj|j��Srr�rBs r!r�z_Rendezvous._repr'r�r#c�*�|���Srr�rBs r!r�z_Rendezvous.__repr__*r�r#c�*�|���Srr�rBs r!r�z_Rendezvous.__str__-r�r#Nc��|jj5|jj��tjj|j_d|j_d|j_|j� tj |jj|jj��|jj� ��ddd��dS#1swxYwYdS)Nz"Cancelled upon garbage collection!T) r�r+r0rIrJr�r%r2r�r�r r�rmrBs r!�__del__z_Rendezvous.__del__0s��� �[� "� 3� 3��{��'�#'�?�#<�� � �&J�� �#�(,�� �%�� �!�!��=�d�k�>N�O��K�'����� �%�0�0�2�2�2� 3� 3� 3� 3� 3� 3� 3� 3� 3� 3� 3� 3���� 3� 3� 3� 3� 3� 3s�BB7�7B;�>B;�rN)rDrErFr�r*rGr r�SegregatedCall�IntegratedCallrrrNr@rLr�r�r�rr�r�r�r�r�rKr1r�r�r�r� __classcell__�r�s@r!r�r��s�������� � � ���� ��&��(=�=� >�>�>�>�$�%:�;�;�;�;������� "�� "��F�)�6�+@�@�A� "� (�(=�>� "� �5�/� "� "� "� "� "� "�,�4�,�,�,�,� <����<�<�<�<������� �%8��T��������������$�$�$�$�H�S�M�$�$�$�$�G�s�G�G�G�G��#����������� 3� 3� 3� 3� 3� 3� 3� 3r#r�c��eZdZUdZeed<defd�Zdefd�Zdefd�Z defd�Z dd e e de fd �Zdd e e de efd �Z dd e e de ejfd �Zd eejgdfddfd�Zde efd�Zde efd�Zde ejfd�Zde efd�Zde ej fd�Z!de fd�Z"de fd�Z#de efd�Z$dS)�_SingleThreadedRendezvousaNAn RPC iterator operating entirely on a single thread. The __next__ method of _SingleThreadedRendezvous does not depend on the existence of any other thread, including the "channel spin thread". However, this means that its interface is entirely synchronous. So this class cannot completely fulfill the grpc.Future interface. The result, exception, and traceback methods will never block and will instead raise an exception if calling the method would result in blocking. This means that these methods are safe to call from add_done_callback handlers. r�rc��|jjduSrr�rBs r!� _is_completez&_SingleThreadedRendezvous._is_completeO����{��t�+�+r#c�f�|jj5|jjcddd��S#1swxYwYdSr�r�r+r2rBs r!r2z#_SingleThreadedRendezvous.cancelledR�y�� �[� "� )� )��;�(� )� )� )� )� )� )� )� )� )� )� )� )���� )� )� )� )� )� )� � &�*�*c�j�|jj5|jjducddd��S#1swxYwYdSrr�rBs r!r�z!_SingleThreadedRendezvous.runningV�~�� �[� "� ,� ,��;�#�t�+� ,� ,� ,� ,� ,� ,� ,� ,� ,� ,� ,� ,���� ,� ,� ,� ,� ,� ,r�c�j�|jj5|jjducddd��S#1swxYwYdSrr�rBs r!rsz_SingleThreadedRendezvous.doneZ�~�� �[� "� 0� 0��;�#�4�/� 0� 0� 0� 0� 0� 0� 0� 0� 0� 0� 0� 0���� 0� 0� 0� 0� 0� 0r�Nrc�J�~|jj5|���stj�d���|jjtjjur|jj cddd��S|jj rtj ���|�#1swxYwYdS)a9Returns the result of the computation or raises its exception. This method will never block. Instead, it will raise an exception if calling this method would otherwise result in blocking. Since this method will never block, any `timeout` argument passed will be ignored. zJ_SingleThreadedRendezvous only supports result() when the RPC is complete.N) r�r+r rI� experimental� UsageErrorr0rJr�r.r2�FutureCancelledErrorr�s r!r�z _SingleThreadedRendezvous.result^s��� � �[� "� � ��$�$�&�&� ��'�2�2�(�����{��4�?�#5�5�5��{�+� � � � � � � � ���&� ��/�1�1�1�� � � � � ���� � � � � � s�AB�7!B�B�Bc�N�~|jj5|���stj�d���|jjtjjur ddd��dS|jj rtj ���|cddd��S#1swxYwYdS)a*Return the exception raised by the computation. This method will never block. Instead, it will raise an exception if calling this method would otherwise result in blocking. Since this method will never block, any `timeout` argument passed will be ignored. zM_SingleThreadedRendezvous only supports exception() when the RPC is complete.N) r�r+r rIrrr0rJr�r2rr�s r!r�z#_SingleThreadedRendezvous.exceptionus �� � �[� "� � ��$�$�&�&� ��'�2�2�,�����{��4�?�#5�5�5�� � � � � � � � ���&� ��/�1�1�1�� � � � � � � � � � � � ���� � � � � � s�AB�- B�B�!Bc��~|jj5|���stj�d���|jjtjjur ddd��dS|jj rtj ��� |�#tj $r(tj ��dcYcddd��SwxYw#1swxYwYdS)a;Access the traceback of the exception raised by the computation. This method will never block. Instead, it will raise an exception if calling this method would otherwise result in blocking. Since this method will never block, any `timeout` argument passed will be ignored. zM_SingleThreadedRendezvous only supports traceback() when the RPC is complete.Nr�)r�r+r rIrrr0rJr�r2rr�r�r�r�s r!r�z#_SingleThreadedRendezvous.traceback�sE�� � �[� "� -� -��$�$�&�&� ��'�2�2�,�����{��4�?�#5�5�5�� -� -� -� -� -� -� -� -���&� -��/�1�1�1�-��J���}�-�-�-��<�>�>�!�,�,�,� -� -� -� -� -� -� -� -�-���� -� -� -� -���� -� -� -� -� -� -s6�AC �-C � B�(C�7C �C�C � C �C r�c���|jj5|jj�@|jj�t j||���� ddd��dS ddd��n #1swxYwY||��dSr�r�r+r0r3r�r�r��r?r�s r!r�z+_SingleThreadedRendezvous.add_done_callback����� �[� "� � ��{��'�� �%�,�,�Y�->�r�4�-H�-H�I�I�I�� � � � � � � � �'� � � � � � � � � � � ���� � � � � ��4�������AA'�'A+�.A+c��|jj5|jj� |���|jj� |jjcddd��S#1swxYwYdS)�See grpc.Call.initial_metadataN)r�r+r-�_consume_next_eventrBs r!r-z*_SingleThreadedRendezvous.initial_metadata�s��� �[� "� 0� 0��+�.�6��(�(�*�*�*��+�.�6��;�/�  0� 0� 0� 0� 0� 0� 0� 0� 0� 0� 0� 0���� 0� 0� 0� 0� 0� 0s�8A�A�Ac��|jj5|jj�tj�d���|jjcddd��S#1swxYwYdS)�See grpc.Call.trailing_metadataNz4Cannot get trailing metadata until RPC is completed.)r�r+r/rIrrrBs r!r/z+_SingleThreadedRendezvous.trailing_metadata�s��� �[� "� 1� 1��{�,�4��'�2�2�J�����;�0�  1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1���� 1� 1� 1� 1� 1� 1��7A�A�Ac��|jj5|jj�tj�d���|jjcddd��S#1swxYwYdS)�See grpc.Call.codeNz'Cannot get code until RPC is completed.)r�r+r0rIrrrBs r!r0z_SingleThreadedRendezvous.code�s��� �[� "� $� $��{��'��'�2�2�=�����;�#�  $� $� $� $� $� $� $� $� $� $� $� $���� $� $� $� $� $� $r$c���|jj5|jj�tj�d���t j|jj��cddd��S#1swxYwYdS)�See grpc.Call.detailsNz*Cannot get details until RPC is completed.)r�r+r%rIrrr r�rBs r!r%z!_SingleThreadedRendezvous.details�s��� �[� "� 7� 7��{�"�*��'�2�2�@�����>�$�+�"5�6�6�  7� 7� 7� 7� 7� 7� 7� 7� 7� 7� 7� 7���� 7� 7� 7� 7� 7� 7��A A#�#A'�*A'c���|j���}|jj5t ||j|j��}|D] }|��� ddd��n #1swxYwY|Sr)r�� next_eventr�r+rjr�)r?rTr3rts r!r!z-_SingleThreadedRendezvous._consume_next_event�s���� �%�%�'�'�� �[� "� � �%��t�{�D�$?���I�&� � ���� � � � � �  � � � � � � � � � � ���� � � � �� s�+A�A"�%A"c�� |���|jj5|jj�&|jj}d|j_|cddd��Stjj|jjvr9|jjtj j urt���|jj�|�ddd��n #1swxYwY��r) r!r�r+r.rrHr[r,r0rIrJr�r�)r?r.s r!�_next_responsez(_SingleThreadedRendezvous._next_response�s�� #� � $� $� &� &� &���&� #� #��;�'�3�#�{�3�H�+/�D�K�(�#� #� #� #� #� #� #� #� #� �(�8�� ��O�O��{�'�4�?�+=�=�=�+�o�o�-���)�5�"� � #� #� #� #� #� #� #� #� #� #� #���� #� #� #� #� #s�&B7�AB7�7B;�>B;c��|jj5|jj��|jj�t jj��|j� t j t��fd��}|s.|jj� t jj��n-|jjtjjurt!���|�ddd��n #1swxYwY|���Sr)r�r+r0r,r�rrHr[r�r��ReceiveMessageOperationr�rYrIrJr�r�r-)r?r�s r!r�z_SingleThreadedRendezvous._next�s�� �[� "� � ��{��'�� ��#�#�F�$8�$H�I�I�I� �J�.�.��3�L�A�A�C�T��� �!�Q��K�O�*�*�6�+?�+O�P�P�P����!�T�_�%7�7�7�#�o�o�%�� �- � � � � � � � � � � ���� � � � �.�"�"�$�$�$s�C C%�%C)�,C)c���|jj5|jj�tj�d���t j|jj��cddd��S#1swxYwYdS)Nz5Cannot get debug error string until RPC is completed.)r�r+r1rIrrr r�rBs r!r1z,_SingleThreadedRendezvous.debug_error_string s��� �[� "� B� B��{�-�5��'�2�2�K�����>�$�+�"@�A�A�  B� B� B� B� B� B� B� B� B� B� B� B���� B� B� B� B� B� Br)r)%rDrErFr�r*rGrLr r2r�rsrrNrr�rnr�r�r�r�rrIr�r�rr-r/rJr0rKr%r� BaseEventr!r-r�r1rOr#r!rr=s_������� � � ����,�d�,�,�,�,�)�4�)�)�)�)�,��,�,�,�,�0�d�0�0�0�0���h�u�o�������.���%���H�Y�<O�����0*.�-�-����-� �%�%� &�-�-�-�-�8�H�d�k�]�D�-@�$A��d�����0�(�<�"8�0�0�0�0�1�8�L�#9�1�1�1�1�$�h�t��/�$�$�$�$�7��#��7�7�7�7� �X�f�.>�%?� � � � �#��#�#�#�#� %�s�%�%�%�%�4B�H�S�M�B�B�B�B�B�Br#rc��eZdZUdZeed<deefd�Zdeefd�Z dee j fd�Z dee fd�Zdee fd�Zdefd �Zdefd �Zdefd �Zdefd �Zddeedefd�Zddeedeefd�Z ddeedeejfd�Zdee jgd fdd fd�Zdefd�Z d S)�_MultiThreadedRendezvousa�An RPC iterator that depends on a channel spin thread. This iterator relies upon a per-channel thread running in the background, dequeueing events from the completion queue, and notifying threads waiting on the threading.Condition object in the _RPCState object. This extra thread allows _MultiThreadedRendezvous to fulfill the grpc.Future interface and to mediate a bidirection streaming RPC. r�rc����jj5�fd�}tj�jjj|���jjcddd��S#1swxYwYdS)r c� ���jjduSrr�rBs�r!r�z8_MultiThreadedRendezvous.initial_metadata.<locals>._done&s����{�3�4�?�?r#N)r�r+r r�r-�r?r�s` r!r-z)_MultiThreadedRendezvous.initial_metadata"s���� �[� "� 0� 0� @� @� @� @� @� �L���.�3�U� ;� ;� ;��;�/�  0� 0� 0� 0� 0� 0� 0� 0� 0� 0� 0� 0���� 0� 0� 0� 0� 0� 0��5A�A�Ac����jj5�fd�}tj�jjj|���jjcddd��S#1swxYwYdS)r#c� ���jjduSrr�rBs�r!r�z9_MultiThreadedRendezvous.trailing_metadata.<locals>._done0s����{�4�D�@�@r#N)r�r+r r�r/r6s` r!r/z*_MultiThreadedRendezvous.trailing_metadata,s���� �[� "� 1� 1� A� A� A� A� A� �L���.�3�U� ;� ;� ;��;�0�  1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1���� 1� 1� 1� 1� 1� 1r7c����jj5�fd�}tj�jjj|���jjcddd��S#1swxYwYdS)r&c� ���jjduSrr�rBs�r!r�z,_MultiThreadedRendezvous.code.<locals>._done:s����{�'�t�3�3r#N)r�r+r r�r0r6s` r!r0z_MultiThreadedRendezvous.code6s���� �[� "� $� $� 4� 4� 4� 4� 4� �L���.�3�U� ;� ;� ;��;�#�  $� $� $� $� $� $� $� $� $� $� $� $���� $� $� $� $� $� $r7c�����jj5�fd�}tj�jjj|��tj�jj��cddd��S#1swxYwYdS)r(c� ���jjduSr)r�r%rBs�r!r�z/_MultiThreadedRendezvous.details.<locals>._doneDs����{�*�$�6�6r#N)r�r+r r�r�r%r6s` r!r%z _MultiThreadedRendezvous.details@s���� �[� "� 7� 7� 7� 7� 7� 7� 7� �L���.�3�U� ;� ;� ;��>�$�+�"5�6�6�  7� 7� 7� 7� 7� 7� 7� 7� 7� 7� 7� 7���� 7� 7� 7� 7� 7� 7��AA"�"A&�)A&c�����jj5�fd�}tj�jjj|��tj�jj��cddd��S#1swxYwYdS)Nc� ���jjduSr)r�r1rBs�r!r�z:_MultiThreadedRendezvous.debug_error_string.<locals>._doneMs����{�5�T�A�Ar#)r�r+r r�r�r1r6s` r!r1z+_MultiThreadedRendezvous.debug_error_stringJs���� �[� "� B� B� B� B� B� B� B� �L���.�3�U� ;� ;� ;��>�$�+�"@�A�A�  B� B� B� B� B� B� B� B� B� B� B� B���� B� B� B� B� B� Br>c�f�|jj5|jjcddd��S#1swxYwYdSrr rBs r!r2z"_MultiThreadedRendezvous.cancelledSrrc�j�|jj5|jjducddd��S#1swxYwYdSrr�rBs r!r�z _MultiThreadedRendezvous.runningWrr�c�j�|jj5|jjducddd��S#1swxYwYdSrr�rBs r!rsz_MultiThreadedRendezvous.done[rr�c��|jjduSrr�rBs r!r z%_MultiThreadedRendezvous._is_complete_r r#Nrc�b�|jj5tj|jjj|j|���}|rt j���|jjt jj ur|jj cddd��S|jj rt j ���|�#1swxYwYdS)z�Returns the result of the computation or raises its exception. See grpc.Future.result for the full API contract. r N) r�r+r r�r rI�FutureTimeoutErrorr0rJr�r.r2r�r?r� timed_outs r!r�z_MultiThreadedRendezvous.resultbs��� �[� "� � �� �� �%�*�D�,=�w����I�� ��-�/�/�/��;�#�t��'9�9�9��;�/� � � � � � � � ��[�*���3�5�5�5��J� � � � ���� � � � � � s�A)B$�!B$�$B(�+B(c�f�|jj5tj|jjj|j|���}|rt j���|jjt jj ur ddd��dS|jj rt j ���|cddd��S#1swxYwYdS)zvReturn the exception raised by the computation. See grpc.Future.exception for the full API contract. r N) r�r+r r�r rIrFr0rJr�r2rrGs r!r�z"_MultiThreadedRendezvous.exceptionus�� �[� "� � �� �� �%�*�D�,=�w����I�� ��-�/�/�/��;�#�t��'9�9�9�� � � � � � � � ��[�*� ��3�5�5�5�� � � � � � � � � � � � ���� � � � � � s�AB&�9 B&�&B*�-B*c���|jj5tj|jjj|j|���}|rt j���|jjt jj ur ddd��dS|jj rt j ��� |�#t j $r(tj��dcYcddd��SwxYw#1swxYwYdS)z�Access the traceback of the exception raised by the computation. See grpc.future.traceback for the full API contract. r Nr�)r�r+r r�r rIrFr0rJr�r2rr�r�r�rGs r!r�z"_MultiThreadedRendezvous.traceback�sM���[� "� 1� 1�� �� �%�*�D�,=�w����I�� 1��-�/�/�/��;�#�t��'9�9�9�� 1� 1� 1� 1� 1� 1� 1� 1��[�*�1��3�5�5�5�1�"� ���=�1�1�1�"�|�~�~�a�0�0�0� 1� 1� 1� 1� 1� 1� 1� 1�1���� 1� 1� 1� 1���� 1� 1� 1� 1� 1� 1s6�AC�9C�B�(C�C�C�C�C�Cr�c���|jj5|jj�@|jj�t j||���� ddd��dS ddd��n #1swxYwY||��dSrrrs r!r�z*_MultiThreadedRendezvous.add_done_callback�rrc�~���jj5�jj��t�j�j��}�jj�tjj ���j � tj t��f|��}|s.�jj�tjj ��n-�jjtjjurt%������fd�}t'j�jjj|���jj�&�jj}d�j_|cddd��Stjj �jjvr9�jjtjjurt%����jj���ddd��dS#1swxYwYdS)Nc�v���jjdup*tjj�jjvo �jjduSr)r�r.rrHr[r,r0rBs�r!�_response_readyz7_MultiThreadedRendezvous._next.<locals>._response_ready�s>����{�+�4�7���(�8�� ��O�5�� �(��4�r#)r�r+r0rwr�r,r�rrHr[r�r�r/r�rYrIrJr�r�r r�r.)r?r{r�rNr.s` r!r�z_MultiThreadedRendezvous._next�s���� �[� "� � ��{��'� .��K��!<�!�!� �� ��#�#�F�$8�$H�I�I�I� �J�.�.��3�L�A�A�C�!��� �!�Q��K�O�*�*�6�+?�+O�P�P�P����!�T�_�%7�7�7�#�o�o�%�� � � � � � � �L���.�3�_� E� E� E��{�#�/��;�/��'+�� �$��7 � � � � � � � �8�%�5�T�[�_�L�L��;�#�t��'9�9�9�'�/�/�)��[�%�1��J�A � � � � � � � � � � � ���� � � � � � s�D4F2�AF2�2F6�9F6r)!rDrErFr�r*rGrrr-r/rIrJr0rKr%r1rLr2r�rsr rNrr�rnr�r�r�r�rr�r�r�rOr#r!r3r3s��������� ����0�(�<�"8�0�0�0�0�1�8�L�#9�1�1�1�1�$�h�t��/�$�$�$�$�7��#��7�7�7�7�B�H�S�M�B�B�B�B�)�4�)�)�)�)�,��,�,�,�,�0�d�0�0�0�0�,�d�,�,�,�,���h�u�o�������& � ��%�� �H�Y�<O� � � � �(*.�1�1����1� �%�%� &�1�1�1�1�0�H�d�k�]�D�-@�$A��d�����!�s�!�!�!�!�!�!r#r3r�c���t|��}tj||��}|�6tdddtjjd��}t|��}|d|fS||dfS)NrOr~)r"r r�r*rIrJr^r�)r�rrzr�r�rPrps r!�_start_unary_requestrP�sx�� ��!�!�H� �*�7�4F�G�G���!�� � � � �O� $� ,�  � ��"�%�(�(����u�$�$��+�T�1�1r#� with_callr�c��|jtjjur$|rt ||d|��}|j|fS|jSt |���r)r0rIrJr�r3r.r�)rPryrQr�� rendezvouss r!�_end_unary_response_blockingrT�sT��  �z�T�_�'�'�'� � "�1�%��t�X�N�N�J��>�:�-� -��>� !���&�&�&r#�metadata�initial_metadata_flagsc���tj||��tjt��tjt��ftjt��ffSr)r�SendInitialMetadataOperationr/r��ReceiveStatusOnClientOperation�ReceiveInitialMetadataOperation�rUrVs r!�#_stream_unary_invocation_operationsr\�sZ�� � /��0� � � � *�<� 8� 8� � 1�,� ?� ?�  � � /� � =� =�?� � r#c�P�td�t||��D����S)Nc3�K�|]}|dfV�� dSrrO)�.0r�s r!� <genexpr>z?_stream_unary_invocation_operations_and_tags.<locals>.<genexpr>s@������ � � � ������r#)�tupler\r[s r!�,_stream_unary_invocation_operations_and_tagsrbsD�� ��� >� �,� � � ��� � �r#� user_deadlinec�l�tj��}|�|�dS|�|�|S|�|�|St||��Sr)r�get_deadline_from_context�min)rc�parent_deadlines r!�_determine_deadlinerhsR���6�8�8�O���=�#8��t� � $��)>��� � "��'>����?�M�2�2�2r#c���eZdZUejed<eed<eed<eed<ee ed<ee ed<e ed<ee ed<gd �Z d ejd ed ed edee dee dee fd�Zde deedeedeedeejdeeeeeejeeeejff d�Z dde deedeedeejdeedeejdeeejffd�Z dde deedeedeejdeedeejde fd�Z dde deedeedeejdeedeejdee ejffd�Z dde deedeedeejdeedeejde fd�Z!dS)�_UnaryUnaryMultiCallable�_channel� _managed_call�_method�_target�_request_serializerr��_context�_registered_call_handle�rkrlrmrnror�rp�channel� managed_callr7r8rzrUc��||_||_||_||_||_||_t j��|_||_ dSr� rkrlrmrnror�r�build_census_contextrprq�r?rsrtr7r8rzrUrqs r!r@z!_UnaryUnaryMultiCallable.__init__/�O�� �� �)����� ��� �#5�� �&;��#��3�5�5�� �'>��$�$�$r#r�rrU�wait_for_ready� compressionrc� �t|||j��\}}}t���|��} t j||��} |�ddd|fSt tdddd��} tj | | ��tj |t��tj t��tj t��tjt��tjt��f} | | |dfSr)rPro�_InitialMetadataFlags�with_wait_for_readyr�augment_metadatar*�_UNARY_UNARY_INITIAL_DUErrXr�r�r�rZr/rY) r?r�rrUrzr{r�r�rSrV�augmented_metadatarPr�s r!�_preparez!_UnaryUnaryMultiCallable._prepareBs��4H� �W�d�6�4 �4 �0��$�j�"7�!8�!8�!L�!L� �" �" ��*�:� �k� � �� � %���t�Z�/� /��6��d�D�$�O�O�E��3�&�(>����+�,>� �M�M��3�L�A�A��6�|�D�D��.�|�<�<��5�l�C�C� �J��*�h��4� 4r#N� credentialsc ���|�|||||��\}}} } |�| �tj��|_t j|j��|_t j|j��|_ |j � tj j|jdt| ��||�dn|j|dff|j|j� � } | ���} t)| ||j��|| fSr)r�rrdr5r r�rmr7rnr8rk�segregated_callr�PropagationConstants�GRPC_PROPAGATE_DEFAULTSrh� _credentialsrprqr+rjr�) r?r�rrUr�rzr{rPr�r�rSryrTs r!� _blockingz"_UnaryUnaryMultiCallable._blockinghs��37�-�-� �W�h�� �3 �3 �/��z�8�Z� �=�� �#'�#4�#6�#6�E� �"�>�$�,�7�7�E�L�"�>�$�,�7�7�E�L��=�0�0��+�C�� ��#�H�-�-��#�+����1I�#���� � ��,���D� �O�O�%�%�E� �%���(C� D� D� D��$�;� r#c�`�|�||||||��\}}t||dd��Sr:�r�rT� r?r�rrUr�rzr{rPrys r!�__call__z!_UnaryUnaryMultiCallable.__call__�sC�� �N�N� �W�h� �^�[� � � � � �,�E�4���E�E�Er#c�`�|�||||||��\}}t||dd��S�NTr�r�s r!rQz"_UnaryUnaryMultiCallable.with_call�sC�� �N�N� �W�h� �^�[� � � � � �,�E�4��t�D�D�Dr#c ���|�|||||��\}}} } |�| �t||j��} tj��|_t j|j��|_ t j|j ��|_ |� tjj|jd| ||�dn|j|f| |j|j� � } t'|| |j| ��Sr)r�rwr�rrdr5r r�rmr7rnr8rlrr�r�r�rprqr3) r?r�rrUr�rzr{rPr�r�rSr{rys r!�futurez_UnaryUnaryMultiCallable.future�s���37�-�-� �W�h�� �3 �3 �/��z�8�Z� �=�� �*�5�$�2M�N�N�M�#'�#4�#6�#6�E� �"�>�$�,�7�7�E�L�"�>�$�,�7�7�E�L��%�%��+�C�� ����#�+����1I�� ��� ��,� � �D�,��t�T�8�(��� r#�NNNNN)"rDrErFr�ChannelrGr�bytesrrrrrM� __slots__r@rNrrLrI� Compressionr r*r � Operationr�r��CallCredentialsrr�r��CallrQr3r�rOr#r!rjrjs���������n����(�(�(�(� �N�N�N� �N�N�N�!�"5�6�6�6�6�$�%:�;�;�;�;��M�M�M�%�c�]�*�*�*����I�?���?�,�?�� ?� � ?� %�%8�9� ?� (�(=�>�?�"*�#��?�?�?�?�&$5��$5��%��$5��<�(� $5� !��� $5� �d�.�/� $5� ������&�*�+�,�������� !� �$5�$5�$5�$5�R$(�+/�6:�)-�26�$�$��$��%��$��<�(� $� �d�2�3� $� !��� $��d�.�/�$� �y�&�/�/� 0�$�$�$�$�R$(�+/�6:�)-�26�F�F��F��%��F��<�(� F� �d�2�3� F� !��� F��d�.�/�F� �F�F�F�F�($(�+/�6:�)-�26�E�E��E��%��E��<�(� E� �d�2�3� E� !��� E��d�.�/�E� �s�D�I�~� �E�E�E�E�($(�+/�6:�)-�26�!�!��!��%��!��<�(� !� �d�2�3� !� !��� !��d�.�/�!� "�!�!�!�!�!�!r#rjc�B�eZdZUejed<eed<eed<eeed<ee ed<e ed<ee ed<gd�Z d ejd ed ed ed e dee f d�Z dde deedeedeejdeedeejdefd�ZdS)�'_SingleThreadedUnaryStreamMultiCallablerkrmrnror�rprq)rkrmrnror�rprsr7r8rzrUc��||_||_||_||_||_t j��|_||_dSr) rkrmrnror�rrwrprq)r?rsr7r8rzrUrqs r!r@z0_SingleThreadedUnaryStreamMultiCallable.__init__�sG�� �� ��� ��� �#5�� �&;��#��3�5�5�� �'>��$�$�$r#Nr�rrUr�rzr{rc ��t|��}tj||j��}|�1t dddt jjd��} t| ���t tdddd��} |�dn|j } t��� |��} tj||��} tj| | ��tj|t$��tjt$��ftjt$��ftjt$��ff} t-d�| D����}t/j��| _tj|j��| _tj|j��| _|j� tj!j"|jdtG|��|| ||j$|j%� � }tM| ||j'|��S)NrOr~c3�K�|]}|dfV�� dSrrO)r_�opss r!r`zC_SingleThreadedUnaryStreamMultiCallable.__call__.<locals>.<genexpr>$s&����#F�#F�C�S�$�K�#F�#F�#F�#F�#F�#Fr#)(r"r r�ror*rIrJr^r��_UNARY_STREAM_INITIAL_DUEr�r}r~rrrrXr�r�r�rYrZrarrdr5r�rmr7rnr8rkr�r�r�rhrprqrr�)r?r�rrUr�rzr{r�r�rP�call_credentialsrVr�r��operations_and_tagsrys r!r�z0_SingleThreadedUnaryStreamMultiCallable.__call__�s����W�%�%��$�.� �T�-� � �� � %�������(�0� ��E�$�E�*�*� *��3�T�4��t�L�L���'�D�D�[�-E� �"7�!8�!8�!L�!L� �" �" ��*�:� �k� � �� �3�&�(>����+�,>� �M�M��3�L�A�A�  �� 2�<� @� @� B� � 3�L� A� A� C�  � �$�#F�#F�:�#F�#F�#F�F�F��#�0�2�2����~�d�l�3�3�� ��~�d�l�3�3�� ��}�,�,� � '� ?� �L� � �� )� )� � � � �M� � (�  �  ��)� �4��4�h� � � r#r�)rDrErFrr�rGr�rrrrrMr�r@rNrrIr�rLr�rr�rOr#r!r�r��sc��������n���� �N�N�N� �N�N�N�!�"5�6�6�6�6�$�%:�;�;�;�;��M�M�M�%�c�]�*�*�*����I�?���?��?�� ?� 0� ?� 5� ?�"*�#��?�?�?�?�($(�+/�6:�)-�26�= �= ��= ��%��= ��<�(� = � �d�2�3� = � !��� = ��d�.�/�= � #�= �= �= �= �= �= r#r�c�P�eZdZUejed<eed<eed<eed<ee ed<ee ed<e ed<ee ed<gd �Z d ejd ed ed ede de dee fd�Z dde deedeedeejdeedeejdefd�ZdS)�_UnaryStreamMultiCallablerkrlrmrnror�rprqrrrsrtr7r8rzrUc��||_||_||_||_||_||_t j��|_||_ dSrrvrxs r!r@z"_UnaryStreamMultiCallable.__init__Mryr#Nr�rrUr�rzr{rc �l�t|||j��\}}} t���|��} |�| �t j||��} t tdddd��} tj | | ��tj |t��tj t��tj t��ftjt��ff} tj��| _t%j|j��| _t%j|j��| _|�tjj|jdt7|��||�dn|j| t;| |j��|j|j � � }tC| ||j|��Sr)"rPror}r~rrr*r�rrXr�r�r�rYrZrrdr5r r�rmr7rnr8rlr�r�rhr�rwr�rprqr3)r?r�rrUr�rzr{r�r�rSrVr�rPr�rys r!r�z"_UnaryStreamMultiCallable.__call__`s���4H� �W�d�6�4 �4 �0��$�j�"7�!8�!8�!L�!L� �" �" �� � %�� �!-�!>��+�"�"� ��7��t�T�4�P�P�E��7�*�,B����/�*�L����7� �E�E��9�,�G�G� ��7� �E�E�G� �J�$(�#4�#6�#6�E� �"�>�$�,�7�7�E�L�"�>�$�,�7�7�E�L��%�%��+�C�� ��#�H�-�-��#�+����1I���u�d�&A�B�B�� ��,� � �D�,��t�T�8�(��� r#r�)rDrErFrr�rGrr�rrrrrMr�r@rNrrIr�rLr�r3r�rOr#r!r�r�8sy��������n����(�(�(�(� �N�N�N� �N�N�N�!�"5�6�6�6�6�$�%:�;�;�;�;��M�M�M�%�c�]�*�*�*����I�?���?�,�?�� ?� � ?� 0� ?� 5�?�"*�#��?�?�?�?�,$(�+/�6:�)-�26�4�4��4��%��4��<�(� 4� �d�2�3� 4� !��� 4��d�.�/�4� "�4�4�4�4�4�4r#r�c��eZdZUejed<eed<eed<eed<ee ed<ee ed<e ed<ee ed<gd �Z d ejd ed ed edee dee dee fd�Zdedeedeedeejdeedeejdeeejffd�Z ddedeedeedeejdeedeejde fd�Z ddedeedeedeejdeedeejdee ejffd�Z ddedeedeedeejdeedeejdefd�ZdS)�_StreamUnaryMultiCallablerkrlrmrnror�rprqrrrsrtr7r8rzrUc��||_||_||_||_||_||_t j��|_||_ dSrrvrxs r!r@z"_StreamUnaryMultiCallable.__init__�ryr#rxrrUr�rzr{rc �V�t|��}ttdddd��}t���|��} t j||��} tj��|_ tj |j ��|_ tj |j��|_|j�t$jj|j dt+|��| |�dn|jt/| | ��|j|j� � } t5||| |jd�� | ���} |j5t=| ||j��|j� ��|j!s ddd��n ddd��n #1swxYwY�x|| fSr)"r"r*�_STREAM_UNARY_INITIAL_DUEr}r~rrrrdr5r r�rmr7rnr8rkr�rr�r�rhr�rbrprqr�ror+r+rjr�rmr,) r?rxrrUr�rzr{r�rPrVr�ryrTs r!r�z#_StreamUnaryMultiCallable._blocking�s���W�%�%���3�T�4��t�L�L��!6�!8�!8�!L�!L� �" �" ��*�:� �k� � �� $�0�2�2����~�d�l�3�3�� ��~�d�l�3�3�� ��}�,�,� � '� ?� �L� � �� )� )� ��'�D�D�[�-E� 8�"�$:� � � �M� � (�  �  �� "� �e�T�4�+C�T� � � � ��O�O�%�%�E��� � ��e�U�D�,G�H�H�H���*�*�,�,�,��y���  � � � � � � �� � � � � � � � � � � ���� � � � � ��d�{�s� 8F�F�"FNc�`�|�||||||��\}}t||dd��Sr:r�� r?rxrrUr�rzr{rPrys r!r�z"_StreamUnaryMultiCallable.__call__�sH�� �N�N� � � � � � �  � � � � �,�E�4���E�E�Er#c�`�|�||||||��\}}t||dd��Sr�r�r�s r!rQz#_StreamUnaryMultiCallable.with_callsH�� �N�N� � � � � � �  � � � � �,�E�4��t�D�D�Dr#c ��t|��}ttdddd��}t||j��} t ���|��} tj||��} tj ��|_ tj |j��|_tj |j��|_|�t&jj|jd|| |�dn|jt/|| ��| |j|j� � } t5||| |j| ��t9|| |j|��Sr)r"r*r�rwr�r}r~rrrrdr5r r�rmr7rnr8rlrr�r�r�r\rprqr�ror3) r?rxrrUr�rzr{r�rPr{rVr�rys r!r�z _StreamUnaryMultiCallable.futuresO���W�%�%���3�T�4��t�L�L��&�u�d�.I�J�J� �!6�!8�!8�!L�!L� �" �" ��*�:� �k� � �� $�0�2�2����~�d�l�3�3�� ��~�d�l�3�3�� ��!�!� � '� ?� �L� � � ��'�D�D�[�-E� /��0� � � � �M� � (�  �  �� "� � � � � $� �  � � �(� �4��4�h� � � r#r�)rDrErFrr�rGrr�rrrrrMr�r@rrNrrIr�rLr�r r*rr�r�r�rQr3r�rOr#r!r�r��sA��������n����(�(�(�(� �N�N�N� �N�N�N�!�"5�6�6�6�6�$�%:�;�;�;�;��M�M�M�%�c�]�*�*�*����I�?���?�,�?�� ?� � ?� %�%8�9� ?� (�(=�>�?�"*�#��?�?�?�?�&+�"�+��%��+��<�(� +� �d�2�3� +� !��� +��d�.�/�+� �y�&�/�/� 0�+�+�+�+�`$(�+/�6:�)-�26�F�F�"�F��%��F��<�(� F� �d�2�3� F� !��� F��d�.�/�F� �F�F�F�F�2$(�+/�6:�)-�26�E�E�"�E��%��E��<�(� E� �d�2�3� E� !��� E��d�.�/�E� �s�D�I�~� �E�E�E�E�2$(�+/�6:�)-�26�, �, �"�, ��%��, ��<�(� , � �d�2�3� , � !��� , ��d�.�/�, � "�, �, �, �, �, �, r#r�c�h�eZdZUejed<eed<eed<eed<ee ed<ee ed<e ed<ee ed<gd �Z d ejd ed ed edee dee dee fd�Z ddedeedeedeejdeedeejdefd�ZdS)�_StreamStreamMultiCallablerkrlrmrnror�rprqrrrsrtr7r8rzrUc��||_||_||_||_||_||_t j��|_||_ dSrrvrxs r!r@z#_StreamStreamMultiCallable.__init__\ryr#NrxrrUr�rzr{rc � �t|��}ttdddd��}t���|��} t j||��} tj| | ��tj t��ftj t��ff} t||j ��} tj��|_t#j|j��|_t#j|j��|_|�tjj|jdt5|��| |�dn|j| | |j|j� � } t=||| |j| ��tA|| |j |��Sr)!r"r*�_STREAM_STREAM_INITIAL_DUEr}r~rrrrXrYr�rZrwr�rrdr5r r�rmr7rnr8rlr�r�rhr�rprqr�ror3)r?rxrrUr�rzr{r�rPrVr�r�r{rys r!r�z#_StreamStreamMultiCallable.__call__os����W�%�%���4�d�D�$��M�M��!6�!8�!8�!L�!L� �" �" ��*�:� �k� � �� �3�&�(>����5�l�C�C�  � � 3�L� A� A� C� � �'�u�d�.I�J�J� �#�0�2�2����~�d�l�3�3�� ��~�d�l�3�3�� ��!�!� � '� ?� �L� � �� )� )� ��'�D�D�[�-E� � � �M� � (�  �  �� "� � � � � $� �  � � �(� �4��4�h� � � r#r�)rDrErFrr�rGrr�rrrrrMr�r@rrNrrIr�rLr�r3r�rOr#r!r�r�Gs���������n����(�(�(�(� �N�N�N� �N�N�N�!�"5�6�6�6�6�$�%:�;�;�;�;��M�M�M�%�c�]�*�*�*����I�?���?�,�?�� ?� � ?� %�%8�9� ?� (�(=�>�?�"*�#��?�?�?�?�,$(�+/�6:�)-�26�3 �3 �"�3 ��%��3 ��<�(� 3 � �d�2�3� 3 � !��� 3 ��d�.�/�3 � "�3 �3 �3 �3 �3 �3 r#r�c�H��eZdZdZefdef�fd� Zdeedefd�Z �xZ S)r}z'Stores immutable initial metadata flags�valuec�~��|tjjz}tt|���||��Sr)r�InitialMetadataFlags� used_maskr�r}�__new__)�clsr�r�s �r!r�z_InitialMetadataFlags.__new__�s4��� ��,�6�6���*�C�0�0�8�8��e�D�D�Dr#rzrc���|�w|r9|�|tjjztjjz��S|s:|�|tjjztjjz��S|Sr)r�rr�rz�wait_for_ready_explicitly_set)r?rzs r!r~z)_InitialMetadataFlags.with_wait_for_ready�s��� � %�� ��~�~���1�@�A��1�O�P���� $� ��~�~��F�7�F�F�F��1�O�P����� r#) rDrErFr�r�rMr�rrLr~rrs@r!r}r}�s��������1�1�".�E�E�C�E�E�E�E�E�E� �(�4�.� �S� � � � � � � � r#r}c�\�eZdZUejed<eed<eed<dejfd�Zd d�Z d�Z dS) �_ChannelCallStaters� managed_callsr;c�`�tj��|_||_d|_d|_dS)NrF)r;�Lock�lockrsr��r?rss r!r@z_ChannelCallState.__init__�s+���N�$�$�� ��� ��������r#rNc��d|_dS)Nr)r�rBs r!rCz&_ChannelCallState.reset_postfork_child�s������r#c�� |j�tjjd��dS#t t f$rYdSwxYw)NzChannel deallocated!)rs�closerrJr2� TypeError�AttributeErrorrBs r!rz_ChannelCallState.__del__�s`�� � �L� � ��!�+�-C� � � � � ���>�*� � � � �D�D� ���s�*.�A�Ar) rDrErFrr�rGrMrLr@rCrrOr#r!r�r��sy������� �^���������O�O�O�������� ��������r#r�c����fd�}tj|���}|�d��|���dS)Nc�X�� tj����j���}|jtjjkr�I|�|��}|rI�j5�xj dzc_ �j dkr ddd��dS ddd��n #1swxYwY��)NT�r) rr�rs�next_call_event�completion_type�CompletionType� queue_timeout�tagr�r�)rT�call_completedrPs �r!� channel_spinz._run_channel_spin_thread.<locals>.channel_spin�s��� � � ,�U� 3� 3� 3��M�1�1�3�3�E��$��(=�(K�K�K��"�Y�Y�u�-�-�N�� ��Z����'�'�1�,�'�'��*�a�/�/����������/������������������� s�)B � B$�'B$r�Tr�)rPr��channel_spin_threads` r!�_run_channel_spin_threadr��s^��� � � � � �!�2�,�G�G�G���!�!�$�'�'�'��������r#c�f��dtdtdttdttdtt dtt jdttt j dtd td ttd t j f�fd � }|S) N�flagsr7�hostr�rUr�r�r{�contextrqrc �*���t�fd�|D����} � j5� j�||||||| || � � } � jdkrd� _t � ��n� xjdz c_| cddd��S#1swxYwYdS)a�Creates a cygrpc.IntegratedCall. Args: flags: An integer bitfield of call flags. method: The RPC method. host: A host string for the created call. deadline: A float to be the deadline of the created call or None if the call is to have an infinite deadline. metadata: The metadata for the call or None. credentials: A cygrpc.CallCredentials or None. operations: A sequence of sequences of cygrpc.Operations to be started on the call. event_handler: A behavior to call to handle the events resultant from the operations on the call. context: Context object for distributed tracing. _registered_call_handle: An int representing the call handle of the method, or None if the method is not registered. Returns: A cygrpc.IntegratedCall with which to conduct an RPC. c3� �K�|]}|�fV�� dSrrO)r_� operationr{s �r!r`zC_channel_managed_call_management.<locals>.create.<locals>.<genexpr>sA�����$ �$ � ��� �$ �$ �$ �$ �$ �$ r#rr�N)rar�rs�integrated_callr�r�) r�r7r�r�rUr�r�r{r�rqr�ryrPs ` �r!�createz0_channel_managed_call_management.<locals>.create�s����@$�$ �$ �$ �$ � (� $ �$ �$ � � ���Z� � ��=�0�0�������#��'� � �D��"�a�'�'�&'��#�(��/�/�/�/��#�#�q�(�#�#��# � � � � � � � � � � � ���� � � � � � s�AB�B �B ) rMr�rrKrNrrr�r r�rrr)rPr�s` r!� _channel_managed_call_managementr��s����8��8��8��s�m�8��5�/� 8� �<�(� 8� �f�4�5� 8��X�f�&6�7�8�8��8��8�"*�#��8� � �8�8�8�8�8�8�t �Mr#c���eZdZUejed<ejed<eed<ej ed<eed<e e e e ej gdfeej fed<eed<dejfd �Zd d �ZdS) �_ChannelConnectivityStater�rs�polling� connectivity�try_to_connectN�callbacks_and_connectivities� deliveringc��tj��|_||_d|_d|_d|_g|_d|_dSr:) r;�RLockr�rsr�r�r�r�r�r�s r!r@z"_ChannelConnectivityState.__init__6sB���O�%�%�� ��� ��� � ���#���,.��)�����r#rc�L�d|_d|_d|_g|_d|_dSr:)r�r�r�r�r�rBs r!rCz._ChannelConnectivityState.reset_postfork_child?s,���� � ���#���,.��)�����r#r)rDrErFr;r�rGrIr�rL�ChannelConnectivityrr r rrr@rCrOr#r!r�r�%s�������� �/���� �\���� �M�M�M��*�*�*�*�����"&�� ��$�2�3�T�9�:���1�2�4� � �#�������� �� � � � � � � � � � � r#r�c�x�g}|jD]/}|\}}||jur|�|��|j|d<�0|S)Nr�)r�r�r�)rP�callbacks_needing_update�callback_and_connectivityrt�callback_connectivitys r!� _deliveriesr�Gsd�� "��%*�%G�>�>�!� &� � � !� ��(:� :� :� $� +� +�H� 5� 5� 5�+0�+=� %�a� (�� #�#r#�initial_connectivity�initial_callbacksc�R�|}|} |D]Q}tj|�� ||���##t$r"t�t ��Y�NwxYw|j5t|��}|r|j}nd|_ ddd��dS ddd��n #1swxYwY��)NTF) rr�rnr�r��0_CHANNEL_SUBSCRIPTION_CALLBACK_ERROR_LOG_MESSAGEr�r�r�r�)rPr�r�r�r3rts r!�_deliverr�VsF�� (�L�!�I��!� � �H� � ,�U� 3� 3� 3� ����&�&�&�&��� � � ��!�!�D������ �����Z� � �#�E�*�*�I�� �$�1� � �#(�� ��  � � � � � � � �� � � � � � � � � � � ���� � � � �s!� +�)A�A�!"B�B!�$B!r3c��tjt||j|f���}|�d��|���d|_dS�N)r8�argsT)rr�r�r�r�r�r�)rPr3�delivering_threads r!�_spawn_deliveryr�osf���0�� � � � � ���������%�%�%��������E���r#rs�initial_try_to_connectc�L�|}|�|��}|j5tj||_t d�|jD����}|jD] }|j|d<� |rt||��ddd��n #1swxYwY |�|tj ��dz��}tj |��|j5|js#|j sd|_ d|_ ddd��dS|j }d|_ ddd��n #1swxYwY|js|rs|�|��}|j5tj||_|js!t!|��}|rt||��ddd��n #1swxYwY��)Nc3� K�|] \}}|V�� dSrrO)r_rt�_s r!r`z%_poll_connectivity.<locals>.<genexpr>�s7���� � �$��1�H� � � � � � r#r�Tg�������?F)�check_connectivity_stater�r �1CYGRPC_CONNECTIVITY_STATE_TO_CHANNEL_CONNECTIVITYr�rar�r��watch_connectivity_staterrr�r�r��successr�r�)rPrsr�r�r�r3r�rTs r!�_poll_connectivityr�s��� ,�N��3�3�N�C�C�L� �� .� .� � E�� � �� � � �(-�(J� � � � � � �*/�)K� >� >� %�+0�+=� %�a� (� (� � .� �E�9� -� -� -� .� .� .� .� .� .� .� .� .� .� .���� .� .� .� .�:��0�0� �$�)�+�+��+� � �� �(��/�/�/� �Z� )� )��6� ��,� �!&�� �%)��"�� )� )� )� )� )� )� )� )�#�1�N�#(�E� � )� )� )� )� )� )� )� )� )� )� )���� )� )� )� )� �=� :�N� :�"�;�;�N�K�K�L��� :� :��M�$���"� �'�:� +�E� 2� 2�I� �:�'��y�9�9�9� :� :� :� :� :� :� :� :� :� :� :���� :� :� :� :�#:s=�AB�B �B �D�D�D!�$D!� AF�F� Frtr�c ��|j5|js�|js}tjt ||jt|��f���}|�d��|� ��d|_|j� |dg��n�|j sW|j �Pt||f��|xjt|��zc_|j� ||j g��n9|xjt|��zc_|j� |dg��ddd��dS#1swxYwYdSr�)r�r�r�rr�rrsrLr�r�r�r�r�r�r�)rPrtr��polling_threads r!� _subscriber�s��� ��H�H��1� H�%�-� H�#�5�)��U�]�D��,@�,@�A����N� � $� $�T� *� *� *� � � � "� "� "� �E�M� � .� 5� 5�x��6F� G� G� G� G��!� H�e�&8�&D� �E�H�;� /� /� /� � � �D��$8�$8� 8� � � � .� 5� 5��5�-�.� � � � � � � �D��$8�$8� 8� � � � .� 5� 5�x��6F� G� G� G�%H�H�H�H�H�H�H�H�H�H�H�H����H�H�H�H�H�Hs�D#D8�8D<�?D<c���|j5t|j��D]*\}\}}||kr|j�|��n�+ddd��dS#1swxYwYdSr)r�� enumerater��pop)rPrt�index�subscribed_callback�unused_connectivitys r!� _unsubscriber �s��� ����AJ� � .�B �B � � � =�E�=�'�)<��.�.�.��2�6�6�u�=�=�=���/� ��������������������s�AA�A�A� base_optionsr{c��tj|��}t|��|ztjjt ffzSr)r�create_channel_optionrar� ChannelArgKey�primary_user_agent_string� _USER_AGENT)r r{�compression_options r!�_augment_optionsr�sJ��&�;�K�H�H�� �l��� � ��$�>�� � � � r#�optionsc��g}g}|D]M}|dtjjjkr|�|���8|�|���N||fS)z;Separates core channel options from Python channel options.r)rIr�ChannelOptions�SingleThreadedUnaryStreamr�)r� core_options�python_options�pairs r!�_separate_channel_optionsr�sw���L��N��&�&�� ��G�� �/�I� J� J� � !� !�$� '� '� '� '� � � �� %� %� %� %� �<� '�'r#c ���eZdZUdZeed<ejed<eed<e ed<e ed<e e e fed<de d e ed eejd eejfd �Zd e de fd�Zde eddfd�Z d&deejgdfdeeddfd�Zdeejgdfddfd�Z d'd e deedeedeedejf d�Z d'd e deedeedeedejf d�Z d'd e deedeedeedej f d�Z! d'd e deedeedeedej"f d�Z#d(d�Z$d(d �Z%d(d!�Z&d"�Z'd#�Z(d(d$�Z)d%�Z*dS))r�z7A cygrpc.Channel-backed implementation of grpc.Channel.�_single_threaded_unary_streamrk� _call_state�_connectivity_statern�_registered_call_handlesr8rr�r{c��t|��\}}t|_|�|��t jt j|��t||��|��|_ ||_ t|j ��|_ t|j ��|_t j|��tjrt j��dSdS)aPConstructor. Args: target: The target to which to connect. options: Configuration options for the channel. credentials: A cygrpc.ChannelCredentials or None. compression: An optional value indicating the compression method to be used over the lifetime of the channel. N)r�%_DEFAULT_SINGLE_THREADED_UNARY_STREAMr�_process_python_optionsrr�r �encoderrkrnr�rr�r �fork_register_channel�g_gevent_activated�gevent_increment_channel_count)r?r8rr�r{rrs r!r@zChannel.__init__s��� (A��'I�'I�$�� � 1� �*� �$�$�^�4�4�4��� �N�6� "� "� �\�;� 7� 7� � � �� � �� �,�T�]�;�;���#<�T�]�#K�#K�� ��$�T�*�*�*� � $� 4� � 1� 3� 3� 3� 3� 3� 4� 4r#r7rc�Z�|j�tj|����S)ah Get the registered call handle for a method. This is a semi-private method. It is intended for use only by gRPC generated code. This method is not thread-safe. Args: method: Required, the method name for the RPC. Returns: The registered call handle pointer in the form of a Python Long. )rk�get_registered_call_handler r%)r?r7s r!�_get_registered_call_handlez#Channel._get_registered_call_handle&s$���}�7�7���v�8N�8N�O�O�Or#rNc�^�|D])}|dtjjjkrd|_�*dS)zASets channel attributes according to python-only channel options.rTN)rIrrrr)r?rrs r!r$zChannel._process_python_options6sG��#� :� :�D��Q���$�3�M�N�N�6:��2��  :� :r#rtr�c�2�t|j||��dSr)rr )r?rtr�s r!� subscribezChannel.subscribeAs�� �4�+�X�~�F�F�F�F�Fr#c�0�t|j|��dSr)r r r�s r!� unsubscribezChannel.unsubscribeHs�� �T�-�x�8�8�8�8�8r#FrzrU�_registered_methodc ���d}|r|�|��}t|jt|j��t j|��t j|j��|||��Sr)r+rjrkr�rr r%rn�r?r7rzrUr1rqs r!� unary_unaryzChannel.unary_unaryNsq��#'�� � O�&*�&F�&F�v�&N�&N� #�'� �M� ,�T�-=� >� >� �N�6� "� "� �N�4�<� (� (� � !� #� � � r#c �p�d}|r|�|��}|jrBt|jt j|��t j|j��|||��St|jt|j ��t j|��t j|j��|||��Sr) r+rr�rkr r%rnr�r�rr3s r!� unary_streamzChannel.unary_streamcs���#'�� � O�&*�&F�&F�v�&N�&N� #� � -� �:�� ���v�&�&���t�|�,�,�"�%�'� �� �-�� �0��1A�B�B���v�&�&���t�|�,�,�"�%�'��� r#c ���d}|r|�|��}t|jt|j��t j|��t j|j��|||��Sr)r+r�rkr�rr r%rnr3s r!� stream_unaryzChannel.stream_unary�sq��#'�� � O�&*�&F�&F�v�&N�&N� #�(� �M� ,�T�-=� >� >� �N�6� "� "� �N�4�<� (� (� � !� #� � � r#c ���d}|r|�|��}t|jt|j��t j|��t j|j��|||��Sr)r+r�rkr�rr r%rnr3s r!� stream_streamzChannel.stream_stream�sq��#'�� � O�&*�&F�&F�v�&N�&N� #�)� �M� ,�T�-=� >� >� �N�6� "� "� �N�4�<� (� (� � !� #� � � r#c�p�|j}|r,|j5|jdd�=ddd��dS#1swxYwYdSdSr)r r�r�r�s r!�_unsubscribe_allzChannel._unsubscribe_all�s����(�� � :��� :� :��6�q�q�q�9� :� :� :� :� :� :� :� :� :� :� :� :���� :� :� :� :� :� :� :� :s � )�-�-c���|���|j�tjjd��tj|��tjrtj��dSdS)NzChannel closed!) r<rkr�rrJr2�fork_unregister_channelr'�gevent_decrement_channel_countrBs r!�_closezChannel._close�sn�� ������ � ���F�-�7�9J�K�K�K��&�t�,�,�,� � $� 4� � 1� 3� 3� 3� 3� 3� 4� 4r#c��|���|j�tjjd��dS)NzChannel closed due to fork)r<rk� close_on_forkrrJr2rBs r!�_close_on_forkzChannel._close_on_fork�sD�� ������ � �#�#� � � '�)E� � � � � r#c��|SrrOrBs r!� __enter__zChannel.__enter__�r�r#c�.�|���dSr:�r@)r?�exc_type�exc_val�exc_tbs r!�__exit__zChannel.__exit__�s�� � � � � � ��ur#c�.�|���dSrrGrBs r!r�z Channel.close�s�� � � � � � � � r#c�@� |���dS#YdSxYwr)r<rBs r!rzChannel.__del__�s1�� � � !� !� #� #� #� #� #�� � �D�D���s��r)NNFr)+rDrErFr�rLrGrr�r�r�rKrrMr rrrI�ChannelCredentialsr�r@r+r$rr�r.r0rr�UnaryUnaryMultiCallabler4�UnaryStreamMultiCallabler6�StreamUnaryMultiCallabler8�StreamStreamMultiCallabler:r<r@rCrErKr�rrOr#r!r�r��s��������A�A�#'�'�'�'��n����"�"�"�"�2�2�2�2� �L�L�L�"�3��8�n�,�,�,�4��4��-�.�4��d�5�6� 4� �d�.�/� 4�4�4�4�BP�#�P�#�P�P�P�P� :�&�':�;� :� � :� :� :� :�*.�G�G��D�4�5�t�;�<�G�!���G� � G�G�G�G�9� �$�":�!;�T�!A�B�9� �9�9�9�9�=A�AE�-2�  � �� �%�%8�9� � (�(=�>�  � %�T�N�  � � %�  � � � �0=A�AE�-2� � �� �%�%8�9� � (�(=�>� � %�T�N� � � &� � � � �L=A�AE�-2�  � �� �%�%8�9� � (�(=�>�  � %�T�N�  � � &�  � � � �0=A�AE�-2�  � �� �%�%8�9� � (�(=�>�  � %�T�N�  � � '�  � � � �(:�:�:�:� 4�4�4�4� � � � � ��������������r#r�)ur�r�r�ro�osr�r;rr��typingrrrrrrr r r r rIr rrr� grpc._cythonr� grpc._typingrrrrrrrr�grpc.experimental� getLoggerrDr�r'� __version__rr��getenvr#rH�send_initial_metadatar�r�rZr[r_r�r�r�r�r�r�r�rNr"rJrKr(�objectr*rSr1rjrwrrr�r�r�r�r�r�� RpcContextr�rr3r�rPrLrTrMr�r\rbrhrOrjrPr�r�rQr�rRr�r}r�r�r�r�r�r�r�r�r�rrr r�rrrOr#r!�<module>r^sY ��5�4� � � � ��������� � � � � � � � ����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �������������!�!�!�!�!�!�������������,�,�,�,�,�,�.�.�.�.�.�.�.�.�.�.�.�.�%�%�%�%�%�%�,�,�,�,�,�,�%�%�%�%�%�%�,�,�,�,�,�,� � � � � � ����� �'� �H� %� %���%�%�&6�&B�C�C� �� � �B�I�1�2�2�$�>�&�  ��.� ��%� ��/� ��1� ��(� ��1� �� ��.� ��%� ��/� ��1� ��1� �� ��.� ��1� ��(� ��1� �� ��.� ��1� ��1���7�1� K�� ��>�x���>�8�E�?�>�>�>�>��!�$�/�2��=E�c�]�������:/�:/�:/�:/�:/��:/�:/�:/�z%�)�%�4�?�%�S�%�T�%�%�%�%�)� � �)� �)�$�$9�:�)� � �� )�)�)�)�X� ��-5�6K�-L�� �����0\��\� �\� ��%�v�'<�<� =�\�,� \� �G�$� \�  � \�\�\�\�~�#��)�������$[�[�[�[�[�� �t�y�$�+�[�[�[�|h3�h3�h3�h3�h3�$�-���h3�h3�h3�VSB�SB�SB�SB�SB����D�K�SB�SB�SB�lv�v�v�v�v����D�K�v�v�v�r2� �2� �e�_�2�,�2� �8�E�?�H�U�O�X�d�m�-D� D�E� 2�2�2�2�* '� � '� � � '�� '��u�o� '�  �<��|�T�Y�6�7� 7�8� '� '� '� '� ��|�$� �>A� � �h�v�'�(�)� � � � � ��|�$� �>A� � �e�H�V�-�.���0A�A�B�C� � � � � 3�x��� 3�8�E�?� 3� 3� 3� 3�w�w�w�w�w�t�;�w�w�w�ta �a �a �a �a �d�.K�a �a �a �H\�\�\�\�\�� =�\�\�\�~m �m �m �m �m �� =�m �m �m �`[ �[ �[ �[ �[ ��!?�[ �[ �[ �|�����C����.���������. �$5� �$� � � � �&<�,=�<�<�<�<�~ � � � � �� � � �D $� $� $� �(�D�,�-�t�3� 4�5� $� $� $� $�� $���2�� ��$�*B�)C�T�)I� J�K�� � ����2� $����$�":�!;�T�!A�B�C�� �����$.:� $�.:� �\�.:�!�.:� � .:�.:�.:�.:�bH� $�H���0�1�4�7�8�H��H� � H�H�H�H�4 � $� ���0�1�4�7�8� � � � � � ���.�/���$�*�+���!�"�����"(� �)� *�(� �8�'� (�(�3F�*G� G�H�(�(�(�(�"`�`�`�`�`�d�l�`�`�`�`�`r#
Memory