Ë
    S¼Sf�F ã                   óŒ  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
mZmZmZmZmZmZmZmZmZ ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddl$Z ejJ                  e&«      Z'djQ                  ejR                  «      Z*dZ+ ejX                  d«      duZ-ej\                  j^                  ej\                  j`                  ej\                  jb                  ej\                  jd                  ej\                  jf                  ej\                  jh                  fZ5ej\                  j^                  ej\                  j`                  ej\                  jb                  ej\                  jd                  ej\                  jh                  fZ6ej\                  j^                  ej\                  jd                  ej\                  jf                  ej\                  jh                  fZ7ej\                  j^                  ej\                  jd                  ej\                  jh                  fZ8dZ9dZ:dZ;dee<   dee<   fd„Z=deej|                     dee?   de?fd„Z@ G d„ deA«      ZBdeBdej|                  de?ddfd „ZCd!ejˆ                  deBd"ee   dee    fd#„ZEdeBd"ee   de#fd$„ZFd%edeBd&eejŽ                  ej�                  f   d'e"d(ee#   ddfd)„ZId*e?d+eBde?fd,„ZJ G d-„ d.ej–                  ej˜                  ejš                  «      ZN G d/„ d0ej–                  ejž                  «      ZP G d1„ d2ePej˜                  ejš                  «      ZQ G d3„ d4ePej˜                  ejš                  «      ZRd5e
dee<   d'e"deee<   eeS   eej–                     f   fd6„ZTdeBd&ej�                  d7eUd8ee<   dee!ee!ej˜                  f   f   f
d9„ZVd:ee   d;eWdeeej°                        fd<„ZYd:ee   d;eWdeeeej°                     ee#   f      fd=„ZZd>ee<   dee<   fd?„Z[ G d@„ dAej¸                  «      Z] G dB„ dCej¼                  «      Z_ G dD„ dEej¼                  «      Z` G dF„ dGejÂ                  «      Zb G dH„ dIejÆ                  «      Zd G dJ„ dKeW«      Ze G dL„ dMeA«      ZfdefddfdN„ZgdeffdO„Zh G dP„ dQeA«      ZideideeejÔ                  gdf      fdR„ZkdeidSejÔ                  dTeeejÔ                  gdf      ddfdU„ZldeidVeeejÔ                  gdf      ddfdW„ZmdeidXejÜ                  dYeUddfdZ„Zodeid[eejÔ                  gdf   d\eUddfd]„Zpdeid[eejÔ                  gdf   ddfd^„Zqd_ee   d`eejä                     dee   fda„Zsdbee   deee   ee   f   fdc„Zt G dd„ deejÜ                  «      Zny)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)ÚUserTagzgrpc-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                 ó8   — | €d S t        j                   «       | z   S ©N)Útime©r   s    úLC:\Users\user\Documents\project_loop\venv\Lib\site-packages\grpc/_channel.pyÚ	_deadliner"   m   s   € Ø�?ˆ4Ð=¬¯	©	«°gÑ(=Ð=ó    Úunknown_cygrpc_codeÚdetailsc                 ó&   — dj                  | |«      S )Nz,Server sent unknown code {} and details "{}")Úformat)r$   r%   s     r!   Ú_unknown_code_detailsr(   q   s   € ð :×@Ñ@Ø˜Wóð r#   c                   ó�  — e Zd ZU ej                  ed<   eej                     ed<   e	e
   ed<   eed<   e	e
   ed<   e	ej                     ed<   e	e   ed<   e	e   ed<   eed	<   ee   ed
<   e	e   ed<   e	e   ed<   e	e   ed<   e	e   ed<   e	e   ed<   deej                     de	e
   de	e
   de	ej                     de	e   f
d„Zd„ Zy)Ú	_RPCStateÚ	conditionÚdueÚinitial_metadataÚresponseÚtrailing_metadataÚcoder%   Údebug_error_stringÚ	cancelledÚ	callbacksÚ
fork_epochÚrpc_start_timeÚrpc_end_timeÚmethodÚtargetc                 ó0  — t        j                  «       | _        t        |«      | _        || _        d | _        || _        || _        || _	        d | _
        d | _        d | _        d | _        d | _        d| _        g | _        t#        j$                  «       | _        y ©NF)Ú	threadingÚ	Conditionr+   Úsetr,   r-   r.   r/   r0   r%   r1   r5   r6   r7   r8   r2   r3   r   Úget_fork_epochr4   )Úselfr,   r-   r/   r0   r%   s         r!   Ú__init__z_RPCState.__init__Š   sŽ   € ô #×,Ñ,Ó.ˆŒô �s“8ˆŒØ 0ˆÔØˆŒØ!2ˆÔØˆŒ	ØˆŒØ"&ˆÔð #ˆÔØ ˆÔØˆŒØˆŒð ˆŒØˆŒÜ ×/Ñ/Ó1ˆ�r#   c                 ó6   — t        j                  «       | _        y r   )r;   r<   r+   ©r?   s    r!   Úreset_postfork_childz_RPCState.reset_postfork_child²   s   € Ü"×,Ñ,Ó.ˆ�r#   N)Ú__name__Ú
__module__Ú__qualname__r;   r<   Ú__annotations__r
   r   ÚOperationTyper   r   r   ÚgrpcÚ
StatusCodeÚstrÚboolr   r   ÚintÚfloatr	   r@   rC   © r#   r!   r*   r*   y   sý   … Ø×"Ñ"Ó"Ø	ˆV×!Ñ!Ñ	"Ó"Ø˜|Ñ,Ó,ØƒMØ Ñ-Ó-Ø
�4—?‘?Ñ
#Ó#Ø�c‰]ÓØ  ™Ó%ØƒOØÐ'Ñ(Ó(Ø˜‘ÓØ˜U‘OÓ#Ø˜5‘/Ó!Ø�S‰MÓØ�S‰MÓð&2à�f×*Ñ*Ñ+ð&2ð # <Ñ0ð&2ð $ LÑ1ð	&2ð
 �t—‘Ñ'ð&2ð ˜#‘ó&2óP/r#   r*   Ústater0   c                 ón   — | j                   €)|| _         || _        | j                  €d| _        d| _        y y ©NrO   )r0   r%   r-   r/   )rP   r0   r%   s      r!   Ú_abortrS   ¶   s;   € Ø‡z�zÐØˆŒ
ØˆŒØ×!Ñ!Ð)Ø%'ˆEÔ"Ø"$ˆÕð r#   ÚeventÚresponse_deserializerc                 ó8  — g }| j                   D �]  }|j                  «       }|j                  j                  |«       |t        j
                  j                  k(  r|j                  «       |_        Œb|t        j
                  j                  k(  r[|j                  «       }|€Œ’t        j                  ||«      }|€(d}t        |t        j                  j                  |«       ŒÒ||_        ŒÚ|t        j
                  j"                  k(  sŒø|j%                  «       |_        |j&                  €Ÿt        j(                  j+                  |j'                  «       «      }	|	€?t        j                  j,                  |_        t/        |	|j1                  «       «      |_        n1|	|_        |j1                  «       |_        |j3                  «       |_        t7        j8                  «       |_        t=        j>                  |«       |jA                  |jB                  «       d |_!        �Œ
 |S )Nz!Exception deserializing response!)"Úbatch_operationsÚtyper,   Úremover   rH   Úreceive_initial_metadatar-   Úreceive_messageÚmessager   ÚdeserializerS   rI   rJ   ÚINTERNALr.   Úreceive_status_on_clientr/   r0   Ú!CYGRPC_STATUS_CODE_TO_STATUS_CODEÚgetÚUNKNOWNr(   r%   Úerror_stringr1   r   Úperf_counterr6   r   Úmaybe_record_rpc_latencyÚextendr3   )
rT   rP   rU   r3   Úbatch_operationÚoperation_typeÚserialized_responser.   r%   r0   s
             r!   Ú_handle_eventrj   ¿   s»  € ð
 €IØ ×1Ñ1ó "#ˆØ(×-Ñ-Ó/ˆØ�	‰	×Ñ˜Ô(ØœV×1Ñ1×JÑJÒJØ%4×%EÑ%EÓ%GˆEÕ"Øœv×3Ñ3×CÑCÒCØ"1×"9Ñ"9Ó";ÐØ"Ñ.Ü"×.Ñ.Ø'Ð)>ó�ð Ð#ØA�GÜ˜5¤$§/¡/×":Ñ":¸GÕDà%-�E•NØœv×3Ñ3×LÑLÓLØ&5×&GÑ&GÓ&IˆEÔ#Ø�z‰zÐ!Ü×@Ñ@×DÑDØ#×(Ñ(Ó*ó�ð �<Ü!%§¡×!8Ñ!8�E”JÜ$9Ø˜o×5Ñ5Ó7ó%�E•Mð "&�E”JØ$3×$;Ñ$;Ó$=�E”MØ/>×/KÑ/KÓ/M�EÔ,Ü!%×!2Ñ!2Ó!4ˆEÔÜ×3Ñ3°EÔ:Ø×Ñ˜UŸ_™_Ô-Ø"ˆEŽOðE"#ðF Ðr#   c                 ó   ‡ ‡— ˆˆ fd„}|S )Nc           	      ó¨  •— ‰j                   5  t        | ‰‰«      }‰j                   j                  «        ‰j                   }d d d «       D ]
  }	  |«        Œ xr! ‰j                  t        j                  «       k\  S # 1 sw Y   Œ=xY w# t        $ r=}t        j                  dt        |j                  «      t        |«      «       Y d }~Œd }~ww xY w)NzException in callback %s: %s)r+   rj   Ú
notify_allr,   Ú	ExceptionÚloggingÚerrorÚreprÚfuncr4   r   r>   )rT   r3   ÚdoneÚcallbackÚerU   rP   s        €€r!   Úhandle_eventz$_event_handler.<locals>.handle_eventî   s½   ø€ Ø�_‰_ñ 	!Ü% e¨UÐ4IÓJˆIØ�O‰O×&Ñ&Ô(Ø—y‘y�=ˆD÷	!ð "ò 	ˆHðÙ•
ð	ð ÒC˜×(Ñ(¬F×,AÑ,AÓ,CÑCÐC÷	!ð 	!ûô ò ô —‘Ø2´D¸¿¹Ó4GÌÈaË÷ñ ûðús#   Ž5A?ÁBÁ?BÂ	CÂ3CÃCrO   )rP   rU   rv   s   `` r!   Ú_event_handlerrw   ë   s   ù€ õDð  Ðr#   Úrequest_iteratorÚcallÚrequest_serializerÚevent_handlerc                 óŽ   ‡ ‡‡‡‡— ˆˆˆ ˆˆfd„}t        j                  |¬«      }|j                  d«       |j                  «        y)z'Consume a request supplied by the user.c            	      ó,  •— 	 d} 	 t        j                  «        t        ‰
«      }	 | st        j                  «        	 t        j                  |‰«      }‰j                   5  ‰j"                  �€m‰j$                  �s`|€Vt        j                  j&                  }d}‰j                  t        j                  |   |«       t        ‰||«       	 d d d «       y ‰j(                  j+                  t         j,                  j.                  «       t        j0                  |t2        «      f}‰j5                  |‰	«      }|s=‰j(                  j7                  t         j,                  j.                  «       	 d d d «       y ˆfd„}t        j8                  ‰j                   j8                  |t;        j<                  t         j>                  ‰«      ¬«       ‰j"                  �	 d d d «       y 	 d d d «       y 	 d d d «       �Œì# t        $ r Y | sÙt        j                  «        nÄt
        $ r‘ t        j                  «        d} t        j                  j                  }d}t        j                  |«       ‰j                  t        j                  |   |«       t        ‰||«       Y | st        j                  «        y y w xY w# | st        j                  «        w w xY w# 1 sw Y   ŒäxY w‰j                   5  ‰j"                  €”‰j(                  j+                  t         j,                  j@                  «       t        jB                  t2        «      f}‰j5                  |‰	«      }|s3‰j(                  j7                  t         j,                  j@                  «       d d d «       y # 1 sw Y   y xY w)NTFzException iterating requests!úException serializing request!c                  óp   •— ‰ j                   d uxs& t        j                  j                  ‰ j                  vS r   )r0   r   rH   Úsend_messager,   )rP   s   €r!   Ú_donezJ_consume_request_iterator.<locals>.consume_request_iterator.<locals>._done=  s4   ø€ à %§
¡
°$Ð 6ò !1Ü#)×#7Ñ#7×#DÑ#DØ',§y¡yð$1ðr#   )Úspin_cb)"r   Úenter_user_request_generatorÚnextÚStopIterationÚ"return_from_user_request_generatorrn   rI   rJ   rb   Ú_LOGGERÚ	exceptionÚcancelr   Ú!STATUS_CODE_TO_CYGRPC_STATUS_CODErS   Ú	serializer+   r0   r2   r^   r,   ÚaddrH   r€   ÚSendMessageOperationÚ_EMPTY_FLAGSÚoperaterY   ÚwaitÚ	functoolsÚpartialÚblock_if_fork_in_progressÚsend_close_from_clientÚSendCloseFromClientOperation)Ú*return_from_user_request_generator_invokedÚrequestr0   r%   Úserialized_requestÚ
operationsÚ	operatingr�   ry   r{   rx   rz   rP   s           €€€€€r!   Úconsume_request_iteratorz;_consume_request_iterator.<locals>.consume_request_iterator  s	  ø€ ð Ø9>Ð6ð@ä×3Ñ3Ô5ÜÐ/Ó0‘ñ BÜ×=Ñ=Õ?Ü!(×!2Ñ!2°7Ð<NÓ!OÐØ—‘ñ (Ø—:‘:Ñ%¨e¯o«oØ)Ð1Ü#Ÿ™×7Ñ7˜Ø"B˜ØŸ™Ü#×EÑEÀdÑKØ#ôô ˜u d¨GÔ4Ø÷(ð (ð Ÿ	™	Ÿ™¤f×&:Ñ&:×&GÑ&GÔHä"×7Ñ7Ø 2´Lóð&˜
ð
 %)§L¡L°¸]Ó$K˜	Ù(Ø!ŸI™I×,Ñ,¬V×-AÑ-A×-NÑ-NÔOØ"÷+(ð (ô.ô  Ÿ™Ø!ŸO™O×0Ñ0Ø!Ü$-×$5Ñ$5Ü &× @Ñ @À%ó%õð !Ÿ:™:Ð1Ø"÷M(ð (ðP ÷Q(ð (ðJ 2÷K(ñ/ øô !ò Øñ BÜ×=Ñ=Õ?ô ò 
Ü×9Ñ9Ô;Ø=AÐ:Ü—‘×.Ñ.�Ø9�Ü×!Ñ! 'Ô*Ø—‘Ü×=Ñ=¸dÑCÀWôô �u˜d GÔ,ØáAÜ×=Ñ=Õ?ð Bð
ûñ BÜ×=Ñ=Õ?ð Bú÷(ð (úðR �_‰_ñ 
	Ø�z‰zÐ!Ø—	‘	—‘œf×2Ñ2×IÑIÔJä×7Ñ7¼ÓEð�
ð !ŸL™L¨°]ÓC�	Ù Ø—I‘I×$Ñ$Ü×,Ñ,×CÑCô÷
	÷ 
	ñ 
	ús^   †G/ ÁA*KÃBKÅ1A KÇKÇ/	J)Ç8J, ÈA?J)ÊJ, Ê(J)Ê)J, Ê,KËKË B!N
Î
N©r8   TN©r   ÚForkManagedThreadÚ	setDaemonÚstart)rx   rP   ry   rz   r{   r›   Úconsumption_threads   `````  r!   Ú_consume_request_iteratorr¢     sB   ü€ ÷Mð Mô^  ×1Ñ1Ø'ôÐð × Ñ  Ô&Ø×ÑÕr#   Ú
class_nameÚ	rpc_statec                 ó²  — |j                   5  |j                  €dj                  | «      cddd«       S |j                  t        j                  j
                  u r4t        j                  | |j                  |j                  «      cddd«       S t        j                  | |j                  |j                  |j                  «      cddd«       S # 1 sw Y   yxY w)z Calculates error string for RPC.Nz<{} object>)
r+   r0   r'   rI   rJ   ÚOKÚ_OK_RENDEZVOUS_REPR_FORMATr%   Ú_NON_OK_RENDEZVOUS_REPR_FORMATr1   )r£   r¤   s     r!   Ú_rpc_state_stringr©   b  s¯   € à	×	Ñ	ñ Ø�>‰>Ð!Ø ×'Ñ'¨
Ó3÷ñ ð �^‰^œtŸ™×1Ñ1Ñ1Ü-×4Ñ4Ø˜IŸN™N¨I×,=Ñ,=ó÷	ñ ô 2×8Ñ8ØØ—‘Ø×!Ñ!Ø×,Ñ,ó	÷÷ ò ús   �C´ACÂ5CÃCc                   ó–  — e Zd ZU dZeed<   defd„Zdee   fd„Z	dee   fd„Z
deej                     fd„Zdee   fd	„Zdee   fd
„Zdefd„Zdefd„Zdefd„Zdefd„Zdefd„Zdefd„Zdefd„Z	 ddee   defd„Z	 ddee   dee   fd„Z	 ddee   deej>                     fd„Z 	 dde!ejD                  gdf   dee   ddfd„Z#y)Ú_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.
    Ú_staterP   c           
      óè  — |j                   5  t        dt        j                  |j                  «      t        j                  |j
                  «      |j                  t        j                  |j                  «      «      | _        t        j                  |j                  «      | j                  _	        t        j                  |j                  «      | j                  _
        d d d «       y # 1 sw Y   y xY wrR   )r+   r*   ÚcopyÚdeepcopyr-   r/   r0   r%   r¬   r.   r1   ©r?   rP   s     r!   r@   z_InactiveRpcError.__init__€  s¢   € Ø�_‰_ñ 		QÜ#ØÜ—‘˜e×4Ñ4Ó5Ü—‘˜e×5Ñ5Ó6Ø—
‘
Ü—‘˜eŸm™mÓ,óˆDŒKô $(§9¡9¨U¯^©^Ó#<ˆD�K‰KÔ Ü-1¯Y©Y°u×7OÑ7OÓ-PˆD�K‰KÔ*÷		Q÷ 		Qñ 		Qús   �CC(Ã(C1r   c                 ó.   — | j                   j                  S r   ©r¬   r-   rB   s    r!   r-   z"_InactiveRpcError.initial_metadataŒ  s   € Ø�{‰{×+Ñ+Ð+r#   c                 ó.   — | j                   j                  S r   ©r¬   r/   rB   s    r!   r/   z#_InactiveRpcError.trailing_metadata�  s   € Ø�{‰{×,Ñ,Ð,r#   c                 ó.   — | j                   j                  S r   ©r¬   r0   rB   s    r!   r0   z_InactiveRpcError.code’  s   € Ø�{‰{×ÑÐr#   c                 óT   — t        j                  | j                  j                  «      S r   )r   Údecoder¬   r%   rB   s    r!   r%   z_InactiveRpcError.details•  s   € Ü�~‰~˜dŸk™k×1Ñ1Ó2Ð2r#   c                 óT   — t        j                  | j                  j                  «      S r   )r   r¸   r¬   r1   rB   s    r!   r1   z$_InactiveRpcError.debug_error_string˜  s   € Ü�~‰~˜dŸk™k×<Ñ<Ó=Ð=r#   c                 óV   — t        | j                  j                  | j                  «      S r   ©r©   Ú	__class__rD   r¬   rB   s    r!   Ú_reprz_InactiveRpcError._repr›  ó   € Ü  §¡×!8Ñ!8¸$¿+¹+ÓFÐFr#   c                 ó"   — | j                  «       S r   ©r½   rB   s    r!   Ú__repr__z_InactiveRpcError.__repr__ž  ó   € Ø�z‰z‹|Ðr#   c                 ó"   — | j                  «       S r   rÀ   rB   s    r!   Ú__str__z_InactiveRpcError.__str__¡  rÂ   r#   c                  ó   — y)zSee grpc.Future.cancel.FrO   rB   s    r!   r‰   z_InactiveRpcError.cancel¤  ó   € àr#   c                  ó   — y)zSee grpc.Future.cancelled.FrO   rB   s    r!   r2   z_InactiveRpcError.cancelled¨  rÆ   r#   c                  ó   — y)zSee grpc.Future.running.FrO   rB   s    r!   Úrunningz_InactiveRpcError.running¬  rÆ   r#   c                  ó   — y)zSee grpc.Future.done.TrO   rB   s    r!   rs   z_InactiveRpcError.done°  s   € àr#   Nr   c                 ó   — | ‚)zSee grpc.Future.result.rO   ©r?   r   s     r!   Úresultz_InactiveRpcError.result´  s	   € ð ˆ
r#   c                 ó   — | S )zSee grpc.Future.exception.rO   rÌ   s     r!   rˆ   z_InactiveRpcError.exceptionº  s	   € ð ˆr#   c                 óh   — 	 | ‚# t         j                  $ r t        j                  «       d   cY S w xY w)zSee grpc.Future.traceback.é   )rI   ÚRpcErrorÚsysÚexc_inforÌ   s     r!   Ú	tracebackz_InactiveRpcError.tracebackÀ  s0   € ð	%ØˆJøÜ�}‰}ò 	%Ü—<‘<“> !Ñ$Ò$ð	%ús   ‚ „*1°1Úfnc                 ó   —  || «       y)z"See grpc.Future.add_done_callback.NrO   )r?   rÕ   r   s      r!   Úadd_done_callbackz#_InactiveRpcError.add_done_callbackÉ  s   € ñ 	ˆ4�r#   r   )$rD   rE   rF   Ú__doc__r*   rG   r@   r   r   r-   r/   rI   rJ   r0   rK   r%   r1   r½   rÁ   rÄ   rL   r‰   r2   rÉ   rs   rN   r   rÍ   rn   rˆ   ÚtypesÚTracebackTyperÔ   r   ÚFuturer×   rO   r#   r!   r«   r«   t  sn  … ñð Óð
Q˜ió 
Qð, (¨<Ñ"8ó ,ð- 8¨LÑ#9ó -ð �h˜tŸ™Ñ/ó  ð3˜ #™ó 3ð> H¨S¡Mó >ðG�só Gð˜#ó ð˜ó ð˜ó ð˜4ó ð˜ó ð�dó ð
 *.ñØ ‘ðà	óð *.ñØ ‘ðà	�)Ñ	óð *.ñ%Ø ‘ð%à	�%×%Ñ%Ñ	&ó%ð $(ñà�d—k‘k�] DÐ(Ñ)ðð ˜%‘ðð 
ô	r#   r«   c            	       ój  ‡ — e Zd ZU dZeed<   eej                  ej                  f   ed<   e
e   ed<   e
e   ed<   dedeej                  ej                  f   de
e   d	e
e   fˆ fd
„Zdefd„Zde
e   fd„Zdefd„Zdedefd„Zd„ Zd„ Zd„ Zd„ Zde
e   fd„Zdefd„Zdefd„Zdefd„Zdd„Zˆ xZS )Ú_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"   rP   ry   rU   Údeadlinec                 ób   •— t         t        | �  «        || _        || _        || _        || _        y r   )ÚsuperrÝ   r@   r¬   rÞ   rß   r"   )r?   rP   ry   rU   rà   r¼   s        €r!   r@   z_Rendezvous.__init__å  s/   ø€ ô 	Œk˜4Ñ)Ô+ØˆŒØˆŒ
Ø&;ˆÔ#Ø!ˆ�r#   r   c                 óŠ   — | j                   j                  5  | j                   j                  du cddd«       S # 1 sw Y   yxY w)zSee grpc.RpcContext.is_activeN©r¬   r+   r0   rB   s    r!   Ú	is_activez_Rendezvous.is_activeò  s6   € à�[‰[×"Ñ"ñ 	,Ø—;‘;×#Ñ# tÐ+÷	,÷ 	,ò 	,úó	   —9¹Ac                 óÜ   — | j                   j                  5  | j                  €
	 ddd«       yt        | j                  t	        j                  «       z
  d«      cddd«       S # 1 sw Y   yxY w)z"See grpc.RpcContext.time_remainingNr   )r¬   r+   r"   Úmaxr   rB   s    r!   Útime_remainingz_Rendezvous.time_remaining÷  sV   € à�[‰[×"Ñ"ñ 	<Ø�~‰~Ð%Ø÷	<ð 	<ô ˜4Ÿ>™>¬D¯I©I«KÑ7¸Ó;÷		<÷ 	<ò 	<ús   —A"®*A"Á"A+c                 óÆ  — | j                   j                  5  | j                   j                  €Ÿt        j                  j
                  }d}| j                  j                  t        j                  |   |«       d| j                   _
        t        | j                   ||«       | j                   j                  j                  «        	 ddd«       y	 ddd«       y# 1 sw Y   yxY w)zSee grpc.RpcContext.cancelNz!Locally cancelled by application!TF)r¬   r+   r0   rI   rJ   Ú	CANCELLEDrÞ   r‰   r   rŠ   r2   rS   rm   )r?   r0   r%   s      r!   r‰   z_Rendezvous.cancelÿ  s°   € à�[‰[×"Ñ"ñ 	Ø�{‰{×ÑÐ'Ü—‘×0Ñ0�Ø=�Ø—
‘
×!Ñ!Ü×=Ñ=¸dÑCÀWôð )-�—‘Ô%Ü�t—{‘{ D¨'Ô2Ø—‘×%Ñ%×0Ñ0Ô2Ø÷	ð 	ð ÷	÷ 	ñ 	ús   —B-CÃCÃC rt   c                 óæ   — | j                   j                  5  | j                   j                  €
	 ddd«       y| j                   j                  j                  |«       	 ddd«       y# 1 sw Y   yxY w)z See grpc.RpcContext.add_callbackNFT)r¬   r+   r3   Úappend©r?   rt   s     r!   Úadd_callbackz_Rendezvous.add_callback  s^   € à�[‰[×"Ñ"ñ 	Ø�{‰{×$Ñ$Ð,Ø÷	ð 	ð —‘×%Ñ%×,Ñ,¨XÔ6Ø÷	÷ 	ñ 	ús   —A'¸&A'Á'A0c                 ó   — | S r   rO   rB   s    r!   Ú__iter__z_Rendezvous.__iter__  ó   € Øˆr#   c                 ó"   — | j                  «       S r   ©Ú_nextrB   s    r!   r„   z_Rendezvous.next  rÂ   r#   c                 ó"   — | j                  «       S r   rô   rB   s    r!   Ú__next__z_Rendezvous.__next__  rÂ   r#   c                 ó   — t        «       ‚r   ©ÚNotImplementedErrorrB   s    r!   rõ   z_Rendezvous._next!  ó   € Ü!Ó#Ð#r#   c                 ó   — t        «       ‚r   rù   rB   s    r!   r1   z_Rendezvous.debug_error_string$  rû   r#   c                 óV   — t        | j                  j                  | j                  «      S r   r»   rB   s    r!   r½   z_Rendezvous._repr'  r¾   r#   c                 ó"   — | j                  «       S r   rÀ   rB   s    r!   rÁ   z_Rendezvous.__repr__*  rÂ   r#   c                 ó"   — | j                  «       S r   rÀ   rB   s    r!   rÄ   z_Rendezvous.__str__-  rÂ   r#   c                 ó  — | j                   j                  5  | j                   j                  €Ät        j                  j
                  | j                   _        d| j                   _        d| j                   _        | j                  j                  t        j                  | j                   j                     | j                   j                  «       | j                   j                  j                  «        d d d «       y # 1 sw Y   y xY w)Nz"Cancelled upon garbage collection!T)r¬   r+   r0   rI   rJ   rë   r%   r2   rÞ   r‰   r   rŠ   rm   rB   s    r!   Ú__del__z_Rendezvous.__del__0  s±   € Ø�[‰[×"Ñ"ñ 		3Ø�{‰{×ÑÐ'Ü#'§?¡?×#<Ñ#<�—‘Ô Ø&J�—‘Ô#Ø(,�—‘Ô%Ø—
‘
×!Ñ!Ü×=Ñ=¸d¿k¹k×>NÑ>NÑOØ—K‘K×'Ñ'ôð —‘×%Ñ%×0Ñ0Ô2÷		3÷ 		3ñ 		3ús   —CC;Ã;D©r   N)rD   rE   rF   rØ   r*   rG   r   r   ÚSegregatedCallÚIntegratedCallr   r   rN   r@   rL   rå   ré   r‰   r   rï   rñ   r„   r÷   rõ   rK   r1   r½   rÁ   rÄ   r  Ú__classcell__©r¼   s   @r!   rÝ   rÝ   Ò  s  ø… ñð ÓØ�×&Ñ&¨×(=Ñ(=Ð=Ñ>Ó>Ø$Ð%:Ñ;Ó;Ø˜‰Óð"àð"ð �F×)Ñ)¨6×+@Ñ+@Ð@ÑAð"ð  (Ð(=Ñ>ð	"ð
 ˜5‘/õ"ð,˜4ó ,ð
< ¨¡ó <ð˜ó ð Ð%8ð ¸Tó òòòò$ð$ H¨S¡Mó $ðG�só Gð˜#ó ð˜ó ÷
3r#   rÝ   c                   ó’  — e Zd ZU dZeed<   defd„Zdefd„Zdefd„Z	defd„Z
dd	ee   defd
„Zdd	ee   dee   fd„Z	 dd	ee   deej$                     fd„Zdeej,                  gdf   ddfd„Zdee   fd„Zdee   fd„Zdeej6                     fd„Zdee   fd„Zdeej@                     fd„Z!defd„Z"defd„Z#dee   fd„Z$y)Ú_SingleThreadedRendezvousaN  An 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¬   r   c                 ó2   — | j                   j                  d uS r   r¶   rB   s    r!   Ú_is_completez&_SingleThreadedRendezvous._is_completeO  ó   € Ø�{‰{×Ñ tÐ+Ð+r#   c                 ó†   — | j                   j                  5  | j                   j                  cd d d «       S # 1 sw Y   y xY wr   ©r¬   r+   r2   rB   s    r!   r2   z#_SingleThreadedRendezvous.cancelledR  ó1   € Ø�[‰[×"Ñ"ñ 	)Ø—;‘;×(Ñ(÷	)÷ 	)ò 	)úó	   —7·A c                 óŠ   — | j                   j                  5  | j                   j                  d u cd d d «       S # 1 sw Y   y xY wr   rä   rB   s    r!   rÉ   z!_SingleThreadedRendezvous.runningV  ó6   € Ø�[‰[×"Ñ"ñ 	,Ø—;‘;×#Ñ# tÐ+÷	,÷ 	,ò 	,úræ   c                 óŠ   — | j                   j                  5  | j                   j                  d ucd d d «       S # 1 sw Y   y xY wr   rä   rB   s    r!   rs   z_SingleThreadedRendezvous.doneZ  ó6   € Ø�[‰[×"Ñ"ñ 	0Ø—;‘;×#Ñ#¨4Ð/÷	0÷ 	0ò 	0úræ   Nr   c                 óž  — ~| j                   j                  5  | j                  «       st        j                  j                  d«      ‚| j                   j                  t        j                  j                  u r| j                   j                  cddd«       S | j                   j                  rt        j                  «       ‚| ‚# 1 sw Y   yxY w)a9  Returns 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Ú
UsageErrorr0   rJ   r¦   r.   r2   ÚFutureCancelledErrorrÌ   s     r!   rÍ   z _SingleThreadedRendezvous.result^  s¦   € ð Ø�[‰[×"Ñ"ñ 	Ø×$Ñ$Ô&Ü×'Ñ'×2Ñ2ð(óð ð �{‰{×Ñ¤4§?¡?×#5Ñ#5Ñ5Ø—{‘{×+Ñ+÷	ñ 	ð —‘×&Ò&Ü×/Ñ/Ó1Ð1à�
÷	ð 	ús   ˜A5CÂ,CÃCc                 ó†  — ~| j                   j                  5  | j                  «       st        j                  j                  d«      ‚| j                   j                  t        j                  j                  u r
	 ddd«       y| j                   j                  rt        j                  «       ‚| cddd«       S # 1 sw Y   yxY w)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
  rI   r  r  r0   rJ   r¦   r2   r  rÌ   s     r!   rˆ   z#_SingleThreadedRendezvous.exceptionu  sŸ   € ð Ø�[‰[×"Ñ"ñ 	Ø×$Ñ$Ô&Ü×'Ñ'×2Ñ2ð,óð ð �{‰{×Ñ¤4§?¡?×#5Ñ#5Ñ5Ø÷	ð 	ð —‘×&Ò&Ü×/Ñ/Ó1Ð1à÷	÷ 	ò 	ús   ˜A!B7Â+B7Â7C c                 óè  — ~| j                   j                  5  | j                  «       st        j                  j                  d«      ‚| j                   j                  t        j                  j                  u r
	 ddd«       y| j                   j                  rt        j                  «       ‚	 | ‚# t        j                  $ r# t        j                  «       d   cY cddd«       S w xY w# 1 sw Y   yxY w)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
  rI   r  r  r0   rJ   r¦   r2   r  rÑ   rÒ   rÓ   rÌ   s     r!   rÔ   z#_SingleThreadedRendezvous.tracebackŒ  sÏ   € ð Ø�[‰[×"Ñ"ñ 	-Ø×$Ñ$Ô&Ü×'Ñ'×2Ñ2ð,óð ð �{‰{×Ñ¤4§?¡?×#5Ñ#5Ñ5Ø÷	-ð 	-ð —‘×&Ò&Ü×/Ñ/Ó1Ð1ð-Ø�JøÜ—}‘}ò -ÜŸ<™<›>¨!Ñ,Ñ,÷	-ñ 	-ð-ú÷	-ð 	-ús0   ˜A!C(Â*C(Â-B/Â/*C%ÃC(Ã$C%Ã%C(Ã(C1rÕ   c                 ó  — | j                   j                  5  | j                   j                  €C| j                   j                  j	                  t        j                  || «      «       	 d d d «       y 	 d d d «        || «       y # 1 sw Y   ŒxY wr   ©r¬   r+   r0   r3   rí   r‘   r’   ©r?   rÕ   s     r!   r×   z+_SingleThreadedRendezvous.add_done_callback¨  ór   € Ø�[‰[×"Ñ"ñ 	Ø�{‰{×ÑÐ'Ø—‘×%Ñ%×,Ñ,¬Y×->Ñ->¸rÀ4Ó-HÔIØ÷	ð 	Ø'÷	ñ
 	ˆ4�÷	ð 	úó   —ABÂBc                 ó   — | j                   j                  5  | j                   j                  €'| j                  «        | j                   j                  €Œ'| j                   j                  cddd«       S # 1 sw Y   yxY w)úSee grpc.Call.initial_metadataN)r¬   r+   r-   Ú_consume_next_eventrB   s    r!   r-   z*_SingleThreadedRendezvous.initial_metadata°  sa   € à�[‰[×"Ñ"ñ 	0ð —+‘+×.Ñ.Ð6Ø×(Ñ(Ô*ð —+‘+×.Ñ.Ñ6à—;‘;×/Ñ/÷	0÷ 	0ò 	0ús   —=A4ÁA4Á4A=c                 óð   — | j                   j                  5  | j                   j                  €t        j                  j                  d«      ‚| j                   j                  cddd«       S # 1 sw Y   yxY w)úSee grpc.Call.trailing_metadataNz4Cannot get trailing metadata until RPC is completed.)r¬   r+   r/   rI   r  r  rB   s    r!   r/   z+_SingleThreadedRendezvous.trailing_metadata¹  s_   € à�[‰[×"Ñ"ñ 	1Ø�{‰{×,Ñ,Ð4Ü×'Ñ'×2Ñ2ØJóð ð —;‘;×0Ñ0÷	1÷ 	1ò 	1úó   —AA,Á,A5c                 óð   — | j                   j                  5  | j                   j                  €t        j                  j                  d«      ‚| j                   j                  cddd«       S # 1 sw Y   yxY w)úSee grpc.Call.codeNz'Cannot get code until RPC is completed.)r¬   r+   r0   rI   r  r  rB   s    r!   r0   z_SingleThreadedRendezvous.codeÂ  s_   € à�[‰[×"Ñ"ñ 	$Ø�{‰{×ÑÐ'Ü×'Ñ'×2Ñ2Ø=óð ð —;‘;×#Ñ#÷	$÷ 	$ò 	$úr$  c                 ó  — | j                   j                  5  | j                   j                  €t        j                  j                  d«      ‚t        j                  | j                   j                  «      cddd«       S # 1 sw Y   yxY w)úSee grpc.Call.detailsNz*Cannot get details until RPC is completed.)r¬   r+   r%   rI   r  r  r   r¸   rB   s    r!   r%   z!_SingleThreadedRendezvous.detailsË  sh   € à�[‰[×"Ñ"ñ 	7Ø�{‰{×"Ñ"Ð*Ü×'Ñ'×2Ñ2Ø@óð ô —>‘> $§+¡+×"5Ñ"5Ó6÷	7÷ 	7ò 	7úó   —AA?Á?Bc                 óò   — | j                   j                  «       }| j                  j                  5  t	        || j                  | j
                  «      }|D ]	  } |«        Œ 	 d d d «       |S # 1 sw Y   |S xY wr   )rÞ   Ú
next_eventr¬   r+   rj   rß   )r?   rT   r3   rt   s       r!   r!  z-_SingleThreadedRendezvous._consume_next_eventÔ  sr   € Ø—
‘
×%Ñ%Ó'ˆØ�[‰[×"Ñ"ñ 	Ü%Ø�t—{‘{ D×$?Ñ$?óˆIð &ò �ñ •
ñ÷		ð ˆ÷	ð ˆús   ±0A,Á,A6c                 ó  — 	 | j                  «        | j                  j                  5  | j                  j                  �2| j                  j                  }d | j                  _        |cd d d «       S t        j
                  j                  | j                  j                  vrR| j                  j                  t        j                  j                  u r
t        «       ‚| j                  j                  �| ‚d d d «       Œú# 1 sw Y   Œ
xY wr   )r!  r¬   r+   r.   r   rH   r[   r,   r0   rI   rJ   r¦   r…   )r?   r.   s     r!   Ú_next_responsez(_SingleThreadedRendezvous._next_responseà  sÇ   € ØØ×$Ñ$Ô&Ø—‘×&Ñ&ñ #Ø—;‘;×'Ñ'Ð3Ø#Ÿ{™{×3Ñ3�HØ+/�D—K‘KÔ(Ø#÷	#ñ #ô ×(Ñ(×8Ñ8ÀÇÁÇÁÑOà—{‘{×'Ñ'¬4¯?©?×+=Ñ+=Ñ=Ü+›oÐ-ØŸ™×)Ñ)Ð5Ø"˜
÷#ð ÷#ð #ús   ¨?C<Á1BC<Ã<Dc                 óœ  — | j                   j                  5  | j                   j                  €±| j                   j                  j	                  t
        j                  j                  «       | j                  j                  t        j                  t        «      fd «      }|sz| j                   j                  j                  t
        j                  j                  «       n<| j                   j                  t        j                  j                  u r
t!        «       ‚| ‚d d d «       | j#                  «       S # 1 sw Y   | j#                  «       S xY wr   )r¬   r+   r0   r,   rŒ   r   rH   r[   rÞ   r�   ÚReceiveMessageOperationrŽ   rY   rI   rJ   r¦   r…   r-  )r?   rš   s     r!   rõ   z_SingleThreadedRendezvous._nextð  sì   € Ø�[‰[×"Ñ"ñ 	Ø�{‰{×ÑÐ'ð —‘—‘×#Ñ#¤F×$8Ñ$8×$HÑ$HÔIØ ŸJ™J×.Ñ.Ü×3Ñ3´LÓAÐCÀTó�	ñ !Ø—K‘K—O‘O×*Ñ*¬6×+?Ñ+?×+OÑ+OÕPØ—‘×!Ñ!¤T§_¡_×%7Ñ%7Ñ7Ü#“oÐ%à�
÷-	ð. ×"Ñ"Ó$Ð$÷/	ð. ×"Ñ"Ó$Ð$ús   —DD3Ä3Ec                 ó  — | j                   j                  5  | j                   j                  €t        j                  j                  d«      ‚t        j                  | j                   j                  «      cd d d «       S # 1 sw Y   y xY w)Nz5Cannot get debug error string until RPC is completed.)r¬   r+   r1   rI   r  r  r   r¸   rB   s    r!   r1   z,_SingleThreadedRendezvous.debug_error_string
  sl   € Ø�[‰[×"Ñ"ñ 	BØ�{‰{×-Ñ-Ð5Ü×'Ñ'×2Ñ2ØKóð ô —>‘> $§+¡+×"@Ñ"@ÓA÷	B÷ 	Bò 	Búr)  r   )%rD   rE   rF   rØ   r*   rG   rL   r
  r2   rÉ   rs   r   rN   r   rÍ   rn   rˆ   rÙ   rÚ   rÔ   r   rI   rÛ   r×   r   r-   r/   rJ   r0   rK   r%   r   Ú	BaseEventr!  r-  rõ   r1   rO   r#   r!   r  r  =  sF  … ñð Óð,˜dó ,ð)˜4ó )ð,˜ó ,ð0�dó 0ñ˜h u™oð ¸ó ñ. ¨%¡ð ¸HÀYÑ<Oó ð0 *.ñ-Ø ‘ð-à	�%×%Ñ%Ñ	&ó-ð8 H¨d¯k©k¨]¸DÐ-@Ñ$Að Àdó ð0 (¨<Ñ"8ó 0ð1 8¨LÑ#9ó 1ð$�h˜tŸ™Ñ/ó $ð7˜ #™ó 7ð
 X¨f×.>Ñ.>Ñ%?ó 
ð# ó #ð %�só %ð4B H¨S¡Mô Br#   r  c                   ó`  — e Zd ZU dZeed<   dee   fd„Zdee   fd„Z	dee
j                     fd„Zdee   fd„Zdee   fd„Zdefd	„Zdefd
„Zdefd„Zdefd„Zddee   defd„Zddee   dee   fd„Z	 ddee   deej6                     fd„Zdee
j<                  gdf   ddfd„Zdefd„Z y)Ú_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¬   r   c                 óú   ‡ — ‰ j                   j                  5  ˆ fd„}t        j                  ‰ j                   j                  j                  |«       ‰ j                   j                  cddd«       S # 1 sw Y   yxY w)r   c                  ó4   •— ‰ j                   j                  d uS r   r²   rB   s   €r!   r�   z8_MultiThreadedRendezvous.initial_metadata.<locals>._done&  s   ø€ Ø—{‘{×3Ñ3¸4Ð?Ð?r#   N)r¬   r+   r   r�   r-   ©r?   r�   s   ` r!   r-   z)_MultiThreadedRendezvous.initial_metadata"  sX   ø€ à�[‰[×"Ñ"ñ 	0ô@ô �L‰L˜Ÿ™×.Ñ.×3Ñ3°UÔ;Ø—;‘;×/Ñ/÷	0÷ 	0ò 	0úó   ˜AA1Á1A:c                 óú   ‡ — ‰ j                   j                  5  ˆ fd„}t        j                  ‰ j                   j                  j                  |«       ‰ j                   j                  cddd«       S # 1 sw Y   yxY w)r#  c                  ó4   •— ‰ j                   j                  d uS r   r´   rB   s   €r!   r�   z9_MultiThreadedRendezvous.trailing_metadata.<locals>._done0  s   ø€ Ø—{‘{×4Ñ4¸DÐ@Ð@r#   N)r¬   r+   r   r�   r/   r6  s   ` r!   r/   z*_MultiThreadedRendezvous.trailing_metadata,  sX   ø€ à�[‰[×"Ñ"ñ 	1ôAô �L‰L˜Ÿ™×.Ñ.×3Ñ3°UÔ;Ø—;‘;×0Ñ0÷	1÷ 	1ò 	1úr7  c                 óú   ‡ — ‰ j                   j                  5  ˆ fd„}t        j                  ‰ j                   j                  j                  |«       ‰ j                   j                  cddd«       S # 1 sw Y   yxY w)r&  c                  ó4   •— ‰ j                   j                  d uS r   r¶   rB   s   €r!   r�   z,_MultiThreadedRendezvous.code.<locals>._done:  s   ø€ Ø—{‘{×'Ñ'¨tÐ3Ð3r#   N)r¬   r+   r   r�   r0   r6  s   ` r!   r0   z_MultiThreadedRendezvous.code6  sW   ø€ à�[‰[×"Ñ"ñ 	$ô4ô �L‰L˜Ÿ™×.Ñ.×3Ñ3°UÔ;Ø—;‘;×#Ñ#÷	$÷ 	$ò 	$úr7  c                 ó   ‡ — ‰ j                   j                  5  ˆ fd„}t        j                  ‰ j                   j                  j                  |«       t        j                  ‰ j                   j
                  «      cddd«       S # 1 sw Y   yxY w)r(  c                  ó4   •— ‰ j                   j                  d uS r   )r¬   r%   rB   s   €r!   r�   z/_MultiThreadedRendezvous.details.<locals>._doneD  s   ø€ Ø—{‘{×*Ñ*°$Ð6Ð6r#   N)r¬   r+   r   r�   r¸   r%   r6  s   ` r!   r%   z _MultiThreadedRendezvous.details@  s`   ø€ à�[‰[×"Ñ"ñ 	7ô7ô �L‰L˜Ÿ™×.Ñ.×3Ñ3°UÔ;Ü—>‘> $§+¡+×"5Ñ"5Ó6÷	7÷ 	7ò 	7úó   ˜A"BÂBc                 ó   ‡ — ‰ j                   j                  5  ˆ fd„}t        j                  ‰ j                   j                  j                  |«       t        j                  ‰ j                   j
                  «      cd d d «       S # 1 sw Y   y xY w)Nc                  ó4   •— ‰ j                   j                  d uS r   )r¬   r1   rB   s   €r!   r�   z:_MultiThreadedRendezvous.debug_error_string.<locals>._doneM  s   ø€ Ø—{‘{×5Ñ5¸TÐAÐAr#   )r¬   r+   r   r�   r¸   r1   r6  s   ` r!   r1   z+_MultiThreadedRendezvous.debug_error_stringJ  se   ø€ Ø�[‰[×"Ñ"ñ 	BôBô �L‰L˜Ÿ™×.Ñ.×3Ñ3°UÔ;Ü—>‘> $§+¡+×"@Ñ"@ÓA÷	B÷ 	Bò 	Búr>  c                 ó†   — | j                   j                  5  | j                   j                  cd d d «       S # 1 sw Y   y xY wr   r  rB   s    r!   r2   z"_MultiThreadedRendezvous.cancelledS  r  r  c                 óŠ   — | j                   j                  5  | j                   j                  d u cd d d «       S # 1 sw Y   y xY wr   rä   rB   s    r!   rÉ   z _MultiThreadedRendezvous.runningW  r  ræ   c                 óŠ   — | j                   j                  5  | j                   j                  d ucd d d «       S # 1 sw Y   y xY wr   rä   rB   s    r!   rs   z_MultiThreadedRendezvous.done[  r  ræ   c                 ó2   — | j                   j                  d uS r   r¶   rB   s    r!   r
  z%_MultiThreadedRendezvous._is_complete_  r  r#   Nr   c                 óê  — | j                   j                  5  t        j                  | j                   j                  j                  | j                  |¬«      }|rt        j                  «       ‚| j                   j                  t
        j                  j                  u r| j                   j                  cddd«       S | j                   j                  rt        j                  «       ‚| ‚# 1 sw Y   yxY w)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   ÚFutureTimeoutErrorr0   rJ   r¦   r.   r2   r  ©r?   r   Ú	timed_outs      r!   rÍ   z_MultiThreadedRendezvous.resultb  s¶   € ð
 �[‰[×"Ñ"ñ 	ÜŸ™Ø—‘×%Ñ%×*Ñ*¨D×,=Ñ,=ÀwôˆIñ Ü×-Ñ-Ó/Ð/à—;‘;×#Ñ#¤t§¡×'9Ñ'9Ñ9ØŸ;™;×/Ñ/÷	ñ 	ð —[‘[×*Ò*Ü×3Ñ3Ó5Ð5à�J÷	ð 	ús   —BC)Â=,C)Ã)C2c                 óÒ  — | j                   j                  5  t        j                  | j                   j                  j                  | j                  |¬«      }|rt        j                  «       ‚| j                   j                  t
        j                  j                  u r
	 ddd«       y| j                   j                  rt        j                  «       ‚| cddd«       S # 1 sw Y   yxY w)zvReturn the exception raised by the computation.

        See grpc.Future.exception for the full API contract.
        r    N)r¬   r+   r   r�   r
  rI   rF  r0   rJ   r¦   r2   r  rG  s      r!   rˆ   z"_MultiThreadedRendezvous.exceptionu  s¯   € ð
 �[‰[×"Ñ"ñ 	 ÜŸ™Ø—‘×%Ñ%×*Ñ*¨D×,=Ñ,=ÀwôˆIñ Ü×-Ñ-Ó/Ð/à—;‘;×#Ñ#¤t§¡×'9Ñ'9Ñ9Ø÷	 ð 	 ð —[‘[×*Ò*Ü×3Ñ3Ó5Ð5à÷	 ÷ 	 ò 	 ús   —BCÂ(+CÃC&c                 ó4  — | j                   j                  5  t        j                  | j                   j                  j                  | j                  |¬«      }|rt        j                  «       ‚| j                   j                  t
        j                  j                  u r
	 ddd«       y| j                   j                  rt        j                  «       ‚	 | ‚# t
        j                  $ r# t        j                  «       d   cY cddd«       S w xY w# 1 sw Y   yxY w)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
  rI   rF  r0   rJ   r¦   r2   r  rÑ   rÒ   rÓ   rG  s      r!   rÔ   z"_MultiThreadedRendezvous.tracebackˆ  sß   € ð �[‰[×"Ñ"ñ 	1ÜŸ™Ø—‘×%Ñ%×*Ñ*¨D×,=Ñ,=ÀwôˆIñ Ü×-Ñ-Ó/Ð/à—;‘;×#Ñ#¤t§¡×'9Ñ'9Ñ9Ø÷	1ð 	1ð —[‘[×*Ò*Ü×3Ñ3Ó5Ð5ð1Ø"˜
øÜŸ=™=ò 1Ü"Ÿ|™|›~¨aÑ0Ñ0÷	1ñ 	1ð1ú÷	1ð 	1ús0   —BDÂ(*DÃCÃ*DÃ?DÄ
DÄDÄDrÕ   c                 ó  — | j                   j                  5  | j                   j                  €C| j                   j                  j	                  t        j                  || «      «       	 d d d «       y 	 d d d «        || «       y # 1 sw Y   ŒxY wr   r  r  s     r!   r×   z*_MultiThreadedRendezvous.add_done_callback   r  r  c                 ó¨  ‡ — ‰ j                   j                  5  ‰ j                   j                  €Ñt        ‰ j                   ‰ j                  «      }‰ j                   j
                  j                  t        j                  j                  «       ‰ j                  j                  t        j                  t        «      f|«      }|sz‰ j                   j
                  j                  t        j                  j                  «       n<‰ j                   j                  t        j                   j"                  u r
t%        «       ‚‰ ‚ˆ fd„}t'        j(                  ‰ j                   j                  j(                  |«       ‰ j                   j*                  �2‰ j                   j*                  }d ‰ j                   _        |cd d d «       S t        j                  j                  ‰ j                   j
                  vrR‰ j                   j                  t        j                   j"                  u r
t%        «       ‚‰ j                   j                  �‰ ‚d d d «       y # 1 sw Y   y xY w)Nc                  óÌ   •— ‰ j                   j                  d uxsJ t        j                  j                  ‰ j                   j
                  vxr ‰ j                   j                  d uS r   )r¬   r.   r   rH   r[   r,   r0   rB   s   €r!   Ú_response_readyz7_MultiThreadedRendezvous._next.<locals>._response_readyº  sR   ø€ Ø—{‘{×+Ñ+°4Ð7ò Ü×(Ñ(×8Ñ8ÀÇÁÇÁÐOò 5ØŸ™×(Ñ(°Ð4ðr#   )r¬   r+   r0   rw   rß   r,   rŒ   r   rH   r[   rÞ   r�   r/  rŽ   rY   rI   rJ   r¦   r…   r   r�   r.   )r?   r{   rš   rN  r.   s   `    r!   rõ   z_MultiThreadedRendezvous._next¨  sŸ  ø€ Ø�[‰[×"Ñ"ñ  	Ø�{‰{×ÑÐ'Ü .Ø—K‘K ×!<Ñ!<ó!�ð —‘—‘×#Ñ#¤F×$8Ñ$8×$HÑ$HÔIØ ŸJ™J×.Ñ.Ü×3Ñ3´LÓAÐCØ!ó�	ñ !Ø—K‘K—O‘O×*Ñ*¬6×+?Ñ+?×+OÑ+OÕPØ—‘×!Ñ!¤T§_¡_×%7Ñ%7Ñ7Ü#“oÐ%à�
ôô �L‰L˜Ÿ™×.Ñ.×3Ñ3°_ÔEØ�{‰{×#Ñ#Ð/ØŸ;™;×/Ñ/�Ø'+�—‘Ô$Ø÷7 	ñ  	ô8 ×%Ñ%×5Ñ5¸T¿[¹[¿_¹_ÑLØ—;‘;×#Ñ#¤t§¡×'9Ñ'9Ñ9Ü'›/Ð)Ø—[‘[×%Ñ%Ð1Ø�J÷A 	÷  	ñ  	ús   ˜FIÆ=BIÉIr   )!rD   rE   rF   rØ   r*   rG   r   r   r-   r/   rI   rJ   r0   rK   r%   r1   rL   r2   rÉ   rs   r
  rN   r   rÍ   rn   rˆ   rÙ   rÚ   rÔ   r   rÛ   r×   rõ   rO   r#   r!   r3  r3    s#  … ñð Óð0 (¨<Ñ"8ó 0ð1 8¨LÑ#9ó 1ð$�h˜tŸ™Ñ/ó $ð7˜ #™ó 7ðB H¨S¡Mó Bð)˜4ó )ð,˜ó ,ð0�dó 0ð,˜dó ,ñ˜h u™oð ¸ó ñ&  ¨%¡ð  ¸HÀYÑ<Oó  ð( *.ñ1Ø ‘ð1à	�%×%Ñ%Ñ	&ó1ð0 H¨d¯k©k¨]¸DÐ-@Ñ$Að Àdó ð!�sô !r#   r3  r—   c                 óÀ   — t        |«      }t        j                  | |«      }|€7t        dddt        j
                  j                  d«      }t        |«      }|d |fS ||d fS )NrO   r~   )r"   r   r‹   r*   rI   rJ   r^   r«   )r—   r   rz   rà   r˜   rP   rp   s          r!   Ú_start_unary_requestrP  Ì  sr   € ô
 ˜Ó!€HÜ ×*Ñ*¨7Ð4FÓGÐØÐ!ÜØØØÜ�O‰O×$Ñ$Ø,ó
ˆô " %Ó(ˆØ˜˜uÐ$Ð$àÐ+¨TÐ1Ð1r#   Ú	with_callrà   c                 ó¸   — | j                   t        j                  j                  u r*|rt	        | |d |«      }| j
                  |fS | j
                  S t        | «      ‚r   )r0   rI   rJ   r¦   r3  r.   r«   )rP   ry   rQ  rà   Ú
rendezvouss        r!   Ú_end_unary_response_blockingrT  á  sQ   € ð ‡z�z”T—_‘_×'Ñ'Ñ'ÙÜ1°%¸¸tÀXÓNˆJØ—>‘> :Ð-Ð-à—>‘>Ð!ä Ó&Ð&r#   ÚmetadataÚinitial_metadata_flagsc                 óÄ   — t        j                  | |«      t        j                  t        «      t        j                  t        «      ft        j
                  t        «      ffS r   )r   ÚSendInitialMetadataOperationr/  rŽ   ÚReceiveStatusOnClientOperationÚReceiveInitialMetadataOperation©rU  rV  s     r!   Ú#_stream_unary_invocation_operationsr\  ñ  sX   € ô
 ×/Ñ/ØÐ0óô ×*Ñ*¬<Ó8Ü×1Ñ1´,Ó?ð	
ô 
×	/Ñ	/´Ó	=Ð?ð	ð 	r#   c                 ó:   — t        d„ t        | |«      D «       «      S )Nc              3   ó$   K  — | ]  }|d f–— Œ
 y ­wr   rO   )Ú.0r™   s     r!   ú	<genexpr>z?_stream_unary_invocation_operations_and_tags.<locals>.<genexpr>  s"   è ø€ ò ð
 ð Øô	
ñùó   ‚)Útupler\  r[  s     r!   Ú,_stream_unary_invocation_operations_and_tagsrc     s+   € ô ñ ô
 >ØÐ,ó
ôó ð r#   Úuser_deadlinec                 ód   — t        j                  «       }|€| €y |�| €|S | �|€| S t        || «      S r   )r   Úget_deadline_from_contextÚmin)rd  Úparent_deadlines     r!   Ú_determine_deadlineri    sM   € Ü×6Ñ6Ó8€OØÐ =Ð#8ØØ	Ð	$¨Ð)>ØÐØ	Ð	" Ð'>ØÐä�? MÓ2Ð2r#   c                   óŠ  — e Zd ZU ej                  ed<   eed<   eed<   eed<   ee	   ed<   ee
   ed<   eed<   ee   ed<   g d	¢Zd
ej                  dedededee	   dee
   dee   fd„Zdedee   dee   dee   deej&                     deee   eeej.                        ee   eej0                     f   fd„Z	 	 	 	 	 ddedee   dee   deej4                     dee   deej&                     deeej6                  f   fd„Z	 	 	 	 	 ddedee   dee   deej4                     dee   deej&                     defd„Z	 	 	 	 	 ddedee   dee   deej4                     dee   deej&                     deeej<                  f   fd„Z	 	 	 	 	 ddedee   dee   deej4                     dee   deej&                     de fd„Z!y)Ú_UnaryUnaryMultiCallableÚ_channelÚ_managed_callÚ_methodÚ_targetÚ_request_serializerrß   Ú_contextÚ_registered_call_handle©rl  rm  rn  ro  rp  rß   rq  ÚchannelÚmanaged_callr7   r8   rz   rU   c                 ó˜   — || _         || _        || _        || _        || _        || _        t        j                  «       | _        || _	        y r   ©
rl  rm  rn  ro  rp  rß   r   Úbuild_census_contextrq  rr  ©r?   rt  ru  r7   r8   rz   rU   rr  s           r!   r@   z!_UnaryUnaryMultiCallable.__init__/  óI   € ð  ˆŒØ)ˆÔØˆŒØˆŒØ#5ˆÔ Ø&;ˆÔ#Ü×3Ñ3Ó5ˆŒØ'>ˆÕ$r#   r—   r   rU  Úwait_for_readyÚcompressionr   c                 óø  — t        ||| j                  «      \  }}}t        «       j                  |«      }	t	        j
                  ||«      }
|€d d d |fS t        t        d d d d «      }t        j                  |
|	«      t        j                  |t        «      t        j                  t        «      t        j                  t        «      t        j                  t        «      t        j                  t        «      f}|||d fS r   )rP  rp  Ú_InitialMetadataFlagsÚwith_wait_for_readyr   Úaugment_metadatar*   Ú_UNARY_UNARY_INITIAL_DUEr   rX  r�   rŽ   r•   rZ  r/  rY  )r?   r—   r   rU  r{  r|  rà   r˜   rS  rV  Úaugmented_metadatarP   r™   s                r!   Ú_preparez!_UnaryUnaryMultiCallable._prepareB  sö   € ô 4HØ�W˜d×6Ñ6ó4
Ñ0ˆÐ$ jô "7Ó!8×!LÑ!LØó"
Ðô *×:Ñ:Ø�kó
Ðð Ð%Ø˜˜t ZÐ/Ð/äÔ6¸¸dÀDÈ$ÓOˆEä×3Ñ3Ø&Ð(>óô ×+Ñ+Ð,>ÄÓMÜ×3Ñ3´LÓAÜ×6Ñ6´|ÓDÜ×.Ñ.¬|Ó<Ü×5Ñ5´lÓCð	ˆJð ˜* h°Ð4Ð4r#   NÚcredentialsc                 ó<  — | j                  |||||«      \  }}}	}
|€|
‚t        j                  «       |_        t	        j
                  | j                  «      |_        t	        j
                  | j                  «      |_	        | j                  j                  t        j                  j                  | j                  d t        |	«      ||€d n|j                   |d ff| j"                  | j$                  «	      }|j'                  «       }t)        ||| j*                  «       ||fS r   )rƒ  r   rd   r5   r   r¸   rn  r7   ro  r8   rl  Úsegregated_callr   ÚPropagationConstantsÚGRPC_PROPAGATE_DEFAULTSri  Ú_credentialsrq  rr  r+  rj   rß   )r?   r—   r   rU  r„  r{  r|  rP   r™   rà   rS  ry   rT   s                r!   Ú	_blockingz"_UnaryUnaryMultiCallable._blockingh  s  € ð 37·-±-Ø�W˜h¨¸ó3
Ñ/ˆˆz˜8 Zð ˆ=ØÐä#'×#4Ñ#4Ó#6ˆEÔ Ü"Ÿ>™>¨$¯,©,Ó7ˆEŒLÜ"Ÿ>™>¨$¯,©,Ó7ˆEŒLØ—=‘=×0Ñ0Ü×+Ñ+×CÑCØ—‘ØÜ# HÓ-ØØ#Ð+‘°×1IÑ1Ið #Øððð —‘Ø×,Ñ,óˆDð  —O‘OÓ%ˆEÜ˜% ¨×(CÑ(CÔDØ˜$�;Ðr#   c                 óP   — | j                  ||||||«      \  }}t        ||dd «      S r:   ©rŠ  rT  ©	r?   r—   r   rU  r„  r{  r|  rP   ry   s	            r!   Ú__call__z!_UnaryUnaryMultiCallable.__call__Ž  s;   € ð �N‰NØ�W˜h¨°^À[ó
ñ	
ØØô ,¨E°4¸ÀÓEÐEr#   c                 óP   — | j                  ||||||«      \  }}t        ||dd «      S ©NTrŒ  r�  s	            r!   rQ  z"_UnaryUnaryMultiCallable.with_callŸ  s;   € ð �N‰NØ�W˜h¨°^À[ó
ñ	
ØØô ,¨E°4¸¸tÓDÐDr#   c                 ó  — | j                  |||||«      \  }}}	}
|€|
‚t        || j                  «      }t        j                  «       |_        t        j                  | j                  «      |_	        t        j                  | j                  «      |_        | j                  t        j                  j                  | j                  d |	||€d n|j                   |f|| j"                  | j$                  «
      }t'        ||| j                  |	«      S r   )rƒ  rw   rß   r   rd   r5   r   r¸   rn  r7   ro  r8   rm  r   r‡  rˆ  r‰  rq  rr  r3  )r?   r—   r   rU  r„  r{  r|  rP   r™   rà   rS  r{   ry   s                r!   Úfuturez_UnaryUnaryMultiCallable.future°  só   € ð 37·-±-Ø�W˜h¨¸ó3
Ñ/ˆˆz˜8 Zð ˆ=ØÐä*¨5°$×2MÑ2MÓNˆMÜ#'×#4Ñ#4Ó#6ˆEÔ Ü"Ÿ>™>¨$¯,©,Ó7ˆEŒLÜ"Ÿ>™>¨$¯,©,Ó7ˆEŒLØ×%Ñ%Ü×+Ñ+×CÑCØ—‘ØØØØ#Ð+‘°×1IÑ1IØ�ØØ—‘Ø×,Ñ,óˆDô ,Ø�t˜T×8Ñ8¸(óð r#   ©NNNNN)"rD   rE   rF   r   ÚChannelrG   r   Úbytesr   r   r   r   rM   Ú	__slots__r@   rN   r   rL   rI   ÚCompressionr   r*   r	   Ú	OperationrÑ   rƒ  ÚCallCredentialsr  rŠ  rŽ  ÚCallrQ  r3  r’  rO   r#   r!   rk  rk    sY  … Ø�n‰nÓØ(Ó(ØƒNØƒNØ!Ð"5Ñ6Ó6Ø$Ð%:Ñ;Ó;ØƒMØ% c™]Ó*ò€Ið?à—‘ð?ð ,ð?ð ð	?ð
 ð?ð %Ð%8Ñ9ð?ð  (Ð(=Ñ>ð?ð "*¨#¡ó?ð&$5àð$5ð ˜%‘ð$5ð ˜<Ñ(ð	$5ð
 ! ™ð$5ð ˜d×.Ñ.Ñ/ð$5ð 
Ø�ÑØ�˜&×*Ñ*Ñ+Ñ,Ø�‰Ø�—‘Ñð	!ñ
ó$5ðR $(Ø+/Ø6:Ø)-Ø26ñ$àð$ð ˜%‘ð$ð ˜<Ñ(ð	$ð
 ˜d×2Ñ2Ñ3ð$ð ! ™ð$ð ˜d×.Ñ.Ñ/ð$ð 
ˆy˜&×/Ñ/Ð/Ñ	0ó$ðR $(Ø+/Ø6:Ø)-Ø26ñFàðFð ˜%‘ðFð ˜<Ñ(ð	Fð
 ˜d×2Ñ2Ñ3ðFð ! ™ðFð ˜d×.Ñ.Ñ/ðFð 
óFð( $(Ø+/Ø6:Ø)-Ø26ñEàðEð ˜%‘ðEð ˜<Ñ(ð	Eð
 ˜d×2Ñ2Ñ3ðEð ! ™ðEð ˜d×.Ñ.Ñ/ðEð 
ˆs�D—I‘Iˆ~Ñ	óEð( $(Ø+/Ø6:Ø)-Ø26ñ!àð!ð ˜%‘ð!ð ˜<Ñ(ð	!ð
 ˜d×2Ñ2Ñ3ð!ð ! ™ð!ð ˜d×.Ñ.Ñ/ð!ð 
"ô!r#   rk  c                   ó2  — e Zd ZU ej                  ed<   eed<   eed<   ee   ed<   ee	   ed<   e
ed<   ee   ed<   g d¢Zd	ej                  d
ededede	dee   fd„Z	 	 	 	 	 dde
dee   dee   deej"                     dee   deej&                     defd„Zy)Ú'_SingleThreadedUnaryStreamMultiCallablerl  rn  ro  rp  rß   rq  rr  )rl  rn  ro  rp  rß   rq  rt  r7   r8   rz   rU   c                 óŠ   — || _         || _        || _        || _        || _        t        j                  «       | _        || _        y r   )	rl  rn  ro  rp  rß   r   rx  rq  rr  )r?   rt  r7   r8   rz   rU   rr  s          r!   r@   z0_SingleThreadedUnaryStreamMultiCallable.__init__ç  sA   € ð  ˆŒØˆŒØˆŒØ#5ˆÔ Ø&;ˆÔ#Ü×3Ñ3Ó5ˆŒØ'>ˆÕ$r#   Nr—   r   rU  r„  r{  r|  r   c                 ó4  — t        |«      }t        j                  || j                  «      }|€2t	        dddt
        j                  j                  d«      }	t        |	«      ‚t	        t        d d d d «      }	|€d n|j                  }
t        «       j                  |«      }t        j                  ||«      }t        j                   ||«      t        j"                  |t$        «      t        j&                  t$        «      ft        j(                  t$        «      ft        j*                  t$        «      ff}t-        d„ |D «       «      }t/        j0                  «       |	_        t        j4                  | j6                  «      |	_        t        j4                  | j:                  «      |	_        | j>                  jA                  t        jB                  jD                  | j6                  d tG        |«      ||
|| jH                  | jJ                  «	      }tM        |	|| jN                  |«      S )NrO   r~   c              3   ó$   K  — | ]  }|d f–— Œ
 y ­wr   rO   )r_  Úopss     r!   r`  zC_SingleThreadedUnaryStreamMultiCallable.__call__.<locals>.<genexpr>$  s   è ø€ Ò#F°C S¨$¤KÑ#Fùra  )(r"   r   r‹   rp  r*   rI   rJ   r^   r«   Ú_UNARY_STREAM_INITIAL_DUEr‰  r~  r  r   r€  r   rX  r�   rŽ   r•   rY  rZ  rb  r   rd   r5   r¸   rn  r7   ro  r8   rl  r†  r‡  rˆ  ri  rq  rr  r  rß   )r?   r—   r   rU  r„  r{  r|  rà   r˜   rP   Úcall_credentialsrV  r‚  r™   Úoperations_and_tagsry   s                   r!   rŽ  z0_SingleThreadedUnaryStreamMultiCallable.__call__ø  sÚ  € ô ˜WÓ%ˆÜ$×.Ñ.Ø�T×-Ñ-ó
Ðð Ð%ÜØØØÜ—‘×(Ñ(Ø0óˆEô $ EÓ*Ð*äÔ3°T¸4ÀÀtÓLˆàÐ'‰D¨[×-EÑ-Eð 	ô "7Ó!8×!LÑ!LØó"
Ðô *×:Ñ:Ø�kó
Ðô
 ×3Ñ3Ø&Ð(>óô ×+Ñ+Ð,>ÄÓMÜ×3Ñ3´LÓAðô ×2Ñ2´<Ó@ÐBÜ×3Ñ3´LÓAÐCð

ˆ
ô $Ñ#F¸:Ô#FÓFÐÜ#×0Ñ0Ó2ˆÔÜ—~‘~ d§l¡lÓ3ˆŒÜ—~‘~ d§l¡lÓ3ˆŒØ�}‰}×,Ñ,Ü×'Ñ'×?Ñ?Ø�L‰LØÜ Ó)ØØØØ�M‰MØ×(Ñ(ó

ˆô )Ø�4˜×4Ñ4°hó
ð 	
r#   r“  )rD   rE   rF   r   r”  rG   r•  r   r   r   r   rM   r–  r@   rN   r   rI   r™  rL   r—  r  rŽ  rO   r#   r!   rœ  rœ  Ô  s  … Ø�n‰nÓØƒNØƒNØ!Ð"5Ñ6Ó6Ø$Ð%:Ñ;Ó;ØƒMØ% c™]Ó*ò€Ið?à—‘ð?ð ð?ð ð	?ð
 0ð?ð  5ð?ð "*¨#¡ó?ð( $(Ø+/Ø6:Ø)-Ø26ñ=
àð=
ð ˜%‘ð=
ð ˜<Ñ(ð	=
ð
 ˜d×2Ñ2Ñ3ð=
ð ! ™ð=
ð ˜d×.Ñ.Ñ/ð=
ð 
#ô=
r#   rœ  c                   ó@  — e Zd ZU ej                  ed<   eed<   eed<   eed<   ee	   ed<   ee
   ed<   eed<   ee   ed<   g d	¢Zd
ej                  dededede	de
dee   fd„Z	 	 	 	 	 ddedee   dee   deej$                     dee   deej(                     defd„Zy)Ú_UnaryStreamMultiCallablerl  rm  rn  ro  rp  rß   rq  rr  rs  rt  ru  r7   r8   rz   rU   c                 ó˜   — || _         || _        || _        || _        || _        || _        t        j                  «       | _        || _	        y r   rw  ry  s           r!   r@   z"_UnaryStreamMultiCallable.__init__M  rz  r#   Nr—   r   rU  r„  r{  r|  r   c                 ó   — t        ||| j                  «      \  }}}	t        «       j                  |«      }
|€|	‚t	        j
                  ||«      }t        t        d d d d «      }t        j                  ||
«      t        j                  |t        «      t        j                  t        «      t        j                  t        «      ft        j                  t        «      ff}t        j                   «       |_        t%        j&                  | j(                  «      |_        t%        j&                  | j,                  «      |_        | j1                  t        j2                  j4                  | j(                  d t7        |«      ||€d n|j8                  |t;        || j<                  «      | j>                  | j@                  «
      }tC        ||| j<                  |«      S r   )"rP  rp  r~  r  r   r€  r*   r¡  r   rX  r�   rŽ   r•   rY  rZ  r   rd   r5   r   r¸   rn  r7   ro  r8   rm  r‡  rˆ  ri  r‰  rw   rß   rq  rr  r3  )r?   r—   r   rU  r„  r{  r|  rà   r˜   rS  rV  r‚  rP   r™   ry   s                  r!   rŽ  z"_UnaryStreamMultiCallable.__call__`  sž  € ô 4HØ�W˜d×6Ñ6ó4
Ñ0ˆÐ$ jô "7Ó!8×!LÑ!LØó"
Ðð Ð%ØÐä!-×!>Ñ!>Ø˜+ó"Ðô Ô7¸¸tÀTÈ4ÓPˆEô ×7Ñ7Ø*Ð,Bóô ×/Ñ/Ø*¬Lóô ×7Ñ7¼ÓEÜ×9Ñ9¼,ÓGð	ô ×7Ñ7¼ÓEÐGðˆJô $(×#4Ñ#4Ó#6ˆEÔ Ü"Ÿ>™>¨$¯,©,Ó7ˆEŒLÜ"Ÿ>™>¨$¯,©,Ó7ˆEŒLØ×%Ñ%Ü×+Ñ+×CÑCØ—‘ØÜ# HÓ-ØØ#Ð+‘°×1IÑ1IØÜ˜u d×&AÑ&AÓBØ—‘Ø×,Ñ,óˆDô ,Ø�t˜T×8Ñ8¸(óð r#   r“  )rD   rE   rF   r   r”  rG   r   r•  r   r   r   r   rM   r–  r@   rN   r   rI   r™  rL   r—  r3  rŽ  rO   r#   r!   r¥  r¥  8  s  … Ø�n‰nÓØ(Ó(ØƒNØƒNØ!Ð"5Ñ6Ó6Ø$Ð%:Ñ;Ó;ØƒMØ% c™]Ó*ò€Ið?à—‘ð?ð ,ð?ð ð	?ð
 ð?ð 0ð?ð  5ð?ð "*¨#¡ó?ð, $(Ø+/Ø6:Ø)-Ø26ñ4àð4ð ˜%‘ð4ð ˜<Ñ(ð	4ð
 ˜d×2Ñ2Ñ3ð4ð ! ™ð4ð ˜d×.Ñ.Ñ/ð4ð 
"ô4r#   r¥  c                   óÞ  — e Zd ZU ej                  ed<   eed<   eed<   eed<   ee	   ed<   ee
   ed<   eed<   ee   ed<   g d	¢Zd
ej                  dedededee	   dee
   dee   fd„Zdedee   dee   deej&                     dee   deej*                     deeej0                  f   fd„Z	 	 	 	 	 ddedee   dee   deej&                     dee   deej*                     defd„Z	 	 	 	 	 ddedee   dee   deej&                     dee   deej*                     deeej6                  f   fd„Z	 	 	 	 	 ddedee   dee   deej&                     dee   deej*                     defd„Zy)Ú_StreamUnaryMultiCallablerl  rm  rn  ro  rp  rß   rq  rr  rs  rt  ru  r7   r8   rz   rU   c                 ó˜   — || _         || _        || _        || _        || _        || _        t        j                  «       | _        || _	        y r   rw  ry  s           r!   r@   z"_StreamUnaryMultiCallable.__init__¬  rz  r#   rx   r   rU  r„  r{  r|  r   c                 ó€  — t        |«      }t        t        d d d d «      }t        «       j	                  |«      }	t        j                  ||«      }
t        j                  «       |_	        t        j                  | j                  «      |_        t        j                  | j                  «      |_        | j                   j#                  t$        j&                  j(                  | j                  d t+        |«      |
|€d n|j,                  t/        |
|	«      | j0                  | j2                  «	      }t5        |||| j6                  d «       	 |j9                  «       }|j:                  5  t=        ||| j>                  «       |j:                  jA                  «        |jB                  s	 d d d «       ||fS 	 d d d «       Œq# 1 sw Y   Œ
xY wr   )"r"   r*   Ú_STREAM_UNARY_INITIAL_DUEr~  r  r   r€  r   rd   r5   r   r¸   rn  r7   ro  r8   rl  r†  r   r‡  rˆ  ri  r‰  rc  rq  rr  r¢   rp  r+  r+   rj   rß   rm   r,   )r?   rx   r   rU  r„  r{  r|  rà   rP   rV  r‚  ry   rT   s                r!   rŠ  z#_StreamUnaryMultiCallable._blocking¿  s‚  € ô ˜WÓ%ˆÜÔ3°T¸4ÀÀtÓLˆÜ!6Ó!8×!LÑ!LØó"
Ðô *×:Ñ:Ø�kó
Ðô  $×0Ñ0Ó2ˆÔÜ—~‘~ d§l¡lÓ3ˆŒÜ—~‘~ d§l¡lÓ3ˆŒØ�}‰}×,Ñ,Ü×'Ñ'×?Ñ?Ø�L‰LØÜ Ó)ØØÐ'‰D¨[×-EÑ-EÜ8Ø"Ð$:óð �M‰MØ×(Ñ(ó
ˆô 	"Ø˜e T¨4×+CÑ+CÀTô	
ð Ø—O‘OÓ%ˆEØ—‘ñ Ü˜e U¨D×,GÑ,GÔHØ—‘×*Ñ*Ô,Ø—y’yØ÷	ð
 �dˆ{Ðð !÷ð ÷ð ús   Å?F4Æ4F=Nc                 óP   — | j                  ||||||«      \  }}t        ||dd «      S r:   rŒ  ©	r?   rx   r   rU  r„  r{  r|  rP   ry   s	            r!   rŽ  z"_StreamUnaryMultiCallable.__call__ì  s@   € ð �N‰NØØØØØØó
ñ	
ØØô ,¨E°4¸ÀÓEÐEr#   c                 óP   — | j                  ||||||«      \  }}t        ||dd «      S r�  rŒ  r®  s	            r!   rQ  z#_StreamUnaryMultiCallable.with_call  s@   € ð �N‰NØØØØØØó
ñ	
ØØô ,¨E°4¸¸tÓDÐDr#   c                 ó¼  — t        |«      }t        t        d d d d «      }t        || j                  «      }	t        «       j                  |«      }
t        j                  ||«      }t        j                  «       |_        t        j                  | j                  «      |_        t        j                  | j                   «      |_        | j%                  t&        j(                  j*                  | j                  d |||€d n|j,                  t/        ||
«      |	| j0                  | j2                  «
      }t5        |||| j6                  |	«       t9        ||| j                  |«      S r   )r"   r*   r¬  rw   rß   r~  r  r   r€  r   rd   r5   r   r¸   rn  r7   ro  r8   rm  r   r‡  rˆ  r‰  r\  rq  rr  r¢   rp  r3  )r?   rx   r   rU  r„  r{  r|  rà   rP   r{   rV  r‚  ry   s                r!   r’  z _StreamUnaryMultiCallable.future  s<  € ô ˜WÓ%ˆÜÔ3°T¸4ÀÀtÓLˆÜ& u¨d×.IÑ.IÓJˆÜ!6Ó!8×!LÑ!LØó"
Ðô *×:Ñ:Ø�kó
Ðô  $×0Ñ0Ó2ˆÔÜ—~‘~ d§l¡lÓ3ˆŒÜ—~‘~ d§l¡lÓ3ˆŒØ×!Ñ!Ü×'Ñ'×?Ñ?Ø�L‰LØØØØÐ'‰D¨[×-EÑ-EÜ/ØÐ0óð Ø�M‰MØ×(Ñ(ó
ˆô 	"ØØØØ×$Ñ$Øô	
ô (Ø�4˜×4Ñ4°hó
ð 	
r#   r“  )rD   rE   rF   r   r”  rG   r   r•  r   r   r   r   rM   r–  r@   r   rN   r   rI   r™  rL   r—  r   r*   r  rŠ  rŽ  rš  rQ  r3  r’  rO   r#   r!   r©  r©  —  s¸  … Ø�n‰nÓØ(Ó(ØƒNØƒNØ!Ð"5Ñ6Ó6Ø$Ð%:Ñ;Ó;ØƒMØ% c™]Ó*ò€Ið?à—‘ð?ð ,ð?ð ð	?ð
 ð?ð %Ð%8Ñ9ð?ð  (Ð(=Ñ>ð?ð "*¨#¡ó?ð&+à"ð+ð ˜%‘ð+ð ˜<Ñ(ð	+ð
 ˜d×2Ñ2Ñ3ð+ð ! ™ð+ð ˜d×.Ñ.Ñ/ð+ð 
ˆy˜&×/Ñ/Ð/Ñ	0ó+ð` $(Ø+/Ø6:Ø)-Ø26ñFà"ðFð ˜%‘ðFð ˜<Ñ(ð	Fð
 ˜d×2Ñ2Ñ3ðFð ! ™ðFð ˜d×.Ñ.Ñ/ðFð 
óFð2 $(Ø+/Ø6:Ø)-Ø26ñEà"ðEð ˜%‘ðEð ˜<Ñ(ð	Eð
 ˜d×2Ñ2Ñ3ðEð ! ™ðEð ˜d×.Ñ.Ñ/ðEð 
ˆs�D—I‘Iˆ~Ñ	óEð2 $(Ø+/Ø6:Ø)-Ø26ñ,
à"ð,
ð ˜%‘ð,
ð ˜<Ñ(ð	,
ð
 ˜d×2Ñ2Ñ3ð,
ð ! ™ð,
ð ˜d×.Ñ.Ñ/ð,
ð 
"ô,
r#   r©  c                   óL  — e Zd ZU ej                  ed<   eed<   eed<   eed<   ee	   ed<   ee
   ed<   eed<   ee   ed<   g d	¢Zd
ej                  dedededee	   dee
   dee   fd„Z	 	 	 	 	 ddedee   dee   deej&                     dee   deej*                     defd„Zy)Ú_StreamStreamMultiCallablerl  rm  rn  ro  rp  rß   rq  rr  rs  rt  ru  r7   r8   rz   rU   c                 ó˜   — || _         || _        || _        || _        || _        || _        t        j                  «       | _        || _	        y r   rw  ry  s           r!   r@   z#_StreamStreamMultiCallable.__init__\  rz  r#   Nrx   r   rU  r„  r{  r|  r   c                 óL  — t        |«      }t        t        d d d d «      }t        «       j	                  |«      }	t        j                  ||«      }
t        j                  |
|	«      t        j                  t        «      ft        j                  t        «      ff}t        || j                  «      }t        j                  «       |_        t#        j$                  | j&                  «      |_        t#        j$                  | j*                  «      |_        | j/                  t        j0                  j2                  | j&                  d t5        |«      |
|€d n|j6                  ||| j8                  | j:                  «
      }t=        |||| j>                  |«       tA        ||| j                  |«      S r   )!r"   r*   Ú_STREAM_STREAM_INITIAL_DUEr~  r  r   r€  r   rX  rY  rŽ   rZ  rw   rß   r   rd   r5   r   r¸   rn  r7   ro  r8   rm  r‡  rˆ  ri  r‰  rq  rr  r¢   rp  r3  )r?   rx   r   rU  r„  r{  r|  rà   rP   rV  r‚  r™   r{   ry   s                 r!   rŽ  z#_StreamStreamMultiCallable.__call__o  sy  € ô ˜WÓ%ˆÜÔ4°d¸DÀ$ÈÓMˆÜ!6Ó!8×!LÑ!LØó"
Ðô *×:Ñ:Ø�kó
Ðô
 ×3Ñ3Ø&Ð(>óô ×5Ñ5´lÓCð	ô ×3Ñ3´LÓAÐCð
ˆ
ô ' u¨d×.IÑ.IÓJˆÜ#×0Ñ0Ó2ˆÔÜ—~‘~ d§l¡lÓ3ˆŒÜ—~‘~ d§l¡lÓ3ˆŒØ×!Ñ!Ü×'Ñ'×?Ñ?Ø�L‰LØÜ Ó)ØØÐ'‰D¨[×-EÑ-EØØØ�M‰MØ×(Ñ(ó
ˆô 	"ØØØØ×$Ñ$Øô	
ô (Ø�4˜×4Ñ4°hó
ð 	
r#   r“  )rD   rE   rF   r   r”  rG   r   r•  r   r   r   r   rM   r–  r@   r   rN   r   rI   r™  rL   r—  r3  rŽ  rO   r#   r!   r²  r²  G  s$  … Ø�n‰nÓØ(Ó(ØƒNØƒNØ!Ð"5Ñ6Ó6Ø$Ð%:Ñ;Ó;ØƒMØ% c™]Ó*ò€Ið?à—‘ð?ð ,ð?ð ð	?ð
 ð?ð %Ð%8Ñ9ð?ð  (Ð(=Ñ>ð?ð "*¨#¡ó?ð, $(Ø+/Ø6:Ø)-Ø26ñ3
à"ð3
ð ˜%‘ð3
ð ˜<Ñ(ð	3
ð
 ˜d×2Ñ2Ñ3ð3
ð ! ™ð3
ð ˜d×.Ñ.Ñ/ð3
ð 
"ô3
r#   r²  c                   óB   ‡ — e Zd ZdZefdefˆ fd„Zdee   defd„Z	ˆ xZ
S )r~  z'Stores immutable initial metadata flagsÚvaluec                 óf   •— |t         j                  j                  z  }t        t        | �  | |«      S r   )r   ÚInitialMetadataFlagsÚ	used_maskrâ   r~  Ú__new__)Úclsr·  r¼   s     €r!   r»  z_InitialMetadataFlags.__new__¨  s.   ø€ Ø”×,Ñ,×6Ñ6Ñ6ˆÜÔ*¨CÑ8¸¸eÓDÐDr#   r{  r   c                 ó0  — |�“|rG| j                  | t        j                  j                  z  t        j                  j                  z  «      S |sH| j                  | t        j                  j                   z  t        j                  j                  z  «      S | S r   )r¼   r   r¹  r{  Úwait_for_ready_explicitly_set)r?   r{  s     r!   r  z)_InitialMetadataFlags.with_wait_for_ready¬  s’   € ØÐ%ÙØ—~‘~ØÜ×1Ñ1×@Ñ@ñAä×1Ñ1×OÑOñPóð ñ
 $Ø—~‘~ØœF×7Ñ7×FÑFÐFÑFÜ×1Ñ1×OÑOñPóð ð ˆr#   )rD   rE   rF   rØ   rŽ   rM   r»  r   rL   r  r  r  s   @r!   r~  r~  ¥  s.   ø„ Ù1à".ñ E˜Cõ Eð°(¸4±.ð ÀS÷ r#   r~  c                   ón   — e Zd ZU ej                  ed<   eed<   eed<   dej                  fd„Zdd„Z	d„ Z
y)	Ú_ChannelCallStatert  Úmanaged_callsr;   c                 ó`   — t        j                  «       | _        || _        d| _        d| _         y )Nr   F)r;   ÚLockÚlockrt  rÁ  ©r?   rt  s     r!   r@   z_ChannelCallState.__init__Á  s&   € Ü—N‘NÓ$ˆŒ	ØˆŒØˆÔØˆ�r#   Nc                 ó   — d| _         y )Nr   )rÁ  rB   s    r!   rC   z&_ChannelCallState.reset_postfork_childÇ  s
   € ØˆÕr#   c                 ó˜   — 	 | j                   j                  t        j                  j                  d«       y # t
        t        f$ r Y y w xY w)NzChannel deallocated!)rt  Úcloser   rJ   r2   Ú	TypeErrorÚAttributeErrorrB   s    r!   r  z_ChannelCallState.__del__Ê  sD   € ð	Ø�L‰L×ÑÜ×!Ñ!×+Ñ+Ð-Cõøô œ>Ð*ò 	Ùð	ús   ‚47 ·A	ÁA	r  )rD   rE   rF   r   r”  rG   rM   rL   r@   rC   r  rO   r#   r!   rÀ  rÀ  ¼  s1   … Ø�^‰^ÓØÓØƒOð §¡ó óór#   rÀ  c                 ó~   ‡ — ˆ fd„}t        j                  |¬«      }|j                  d«       |j                  «        y )Nc                  ó|  •— 	 t        j                  ‰«       ‰j                  j                  «       } | j                  t         j
                  j                  k(  rŒX| j                  | «      }|rD‰j                  5  ‰xj                  dz  c_	        ‰j                  dk(  r
	 d d d «       y 	 d d d «       Œ¯# 1 sw Y   Œ
xY w)Né   r   )
r   r“   rt  Únext_call_eventÚcompletion_typeÚCompletionTypeÚqueue_timeoutÚtagrÄ  rÁ  )rT   Úcall_completedrP   s     €r!   Úchannel_spinz._run_channel_spin_thread.<locals>.channel_spinÔ  s¤   ø€ ØÜ×,Ñ,¨UÔ3Ø—M‘M×1Ñ1Ó3ˆEØ×$Ñ$¬×(=Ñ(=×(KÑ(KÒKØØ"ŸY™Y uÓ-ˆNÙØ—Z‘Zñ Ø×'Ò'¨1Ñ,Õ'Ø×*Ñ*¨aÒ/Ø÷ð à/÷ð ÷ð ús   Á9&B2Â2B;rœ   Tr�   )rP   rÔ  Úchannel_spin_threads   `  r!   Ú_run_channel_spin_threadrÖ  Ó  s5   ø€ ôô !×2Ñ2¸,ÔGÐØ×!Ñ! $Ô'Ø×ÑÕr#   c                 ó6  ‡ — dt         dt        dt        t           dt        t           dt        t
           dt        t        j                     dt        t        t        j                        dt        d	t        d
t        t            dt        j                  fˆ fd„}|S )NÚflagsr7   Úhostrà   rU  r„  r™   r{   Úcontextrr  r   c
                 ó*  •‡— t        ˆfd„|D «       «      }
‰j                  5  ‰j                  j                  | ||||||
||	«	      }‰j                  dk(  rd‰_        t        ‰«       n‰xj                  dz  c_        |cddd«       S # 1 sw Y   yxY w)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.
        c              3   ó&   •K  — | ]  }|‰f–— Œ
 y ­wr   rO   )r_  Ú	operationr{   s     €r!   r`  zC_channel_managed_call_management.<locals>.create.<locals>.<genexpr>  s#   øè ø€ ò $
ð
 ð Øôñ$
ùs   ƒr   rÍ  N)rb  rÄ  rt  Úintegrated_callrÁ  rÖ  )rØ  r7   rÙ  rà   rU  r„  r™   r{   rÚ  rr  r£  ry   rP   s          `    €r!   Úcreatez0_channel_managed_call_management.<locals>.createè  s¡   ù€ ô@ $ó $
ð
 (ô$
ó 
Ðð �Z‰Zñ 	Ø—=‘=×0Ñ0ØØØØØØØ#ØØ'ó
ˆDð ×"Ñ" aÒ'Ø&'�Ô#Ü(¨Õ/à×#Ò# qÑ(Õ#Ø÷#	÷ 	ò 	ús   £AB	Â	B)rM   r•  r   rK   rN   r   r   r™  r	   r˜  r   r   r  )rP   rß  s   ` r!   Ú _channel_managed_call_managementrà  æ  s¬   ø€ ð8Üð8äð8ô ”s‰mð8ô œ5‘/ð	8ô
 œ<Ñ(ð8ô œf×4Ñ4Ñ5ð8ô œX¤f×&6Ñ&6Ñ7Ñ8ð8ô ð8ô ð8ô "*¬#¡ð8ô 
×	Ñ	õ8ðt €Mr#   c                   ó  — e Zd ZU ej                  ed<   ej                  ed<   eed<   ej                  ed<   eed<   e
eeeej                  gdf   eej                     f         ed<   eed<   dej                  fd	„Zdd
„Zy)Ú_ChannelConnectivityStaterÄ  rt  ÚpollingÚconnectivityÚtry_to_connectNÚcallbacks_and_connectivitiesÚ
deliveringc                 óŠ   — t        j                  «       | _        || _        d| _        d | _        d| _        g | _        d| _        y r:   )	r;   ÚRLockrÄ  rt  rã  rä  rå  ræ  rç  rÅ  s     r!   r@   z"_ChannelConnectivityState.__init__6  s=   € Ü—O‘OÓ%ˆŒ	ØˆŒØˆŒØ ˆÔØ#ˆÔØ,.ˆÔ)Øˆ�r#   c                 óJ   — d| _         d | _        d| _        g | _        d| _        y r:   )rã  rä  rå  ræ  rç  rB   s    r!   rC   z._ChannelConnectivityState.reset_postfork_child?  s(   € ØˆŒØ ˆÔØ#ˆÔØ,.ˆÔ)Øˆ�r#   r  )rD   rE   rF   r;   ré  rG   rI   r”  rL   ÚChannelConnectivityr   r	   r   r   r   r@   rC   rO   r#   r!   râ  râ  %  s�   … Ø
�/‰/ÓØ�\‰\ÓØƒMØ×*Ñ*Ó*ØÓà"&ØØØ˜$×2Ñ2Ð3°TÐ9Ñ:Ø˜×1Ñ1Ñ2ð4ññ	
ñ#ó ð Óð  §¡ó  ô r#   râ  c                 ó”   — g }| j                   D ]6  }|\  }}|| j                  usŒ|j                  |«       | j                  |d<   Œ8 |S )NrÍ  )ræ  rä  rí   )rP   Úcallbacks_needing_updateÚcallback_and_connectivityrt   Úcallback_connectivitys        r!   Ú_deliveriesrð  G  se   € ð  "ÐØ%*×%GÑ%Gò >Ð!ð &ñ	
ØØ!à ¨×(:Ñ(:Ò:Ø$×+Ñ+¨HÔ5Ø+0×+=Ñ+=Ð% aÒ(ð>ð $Ð#r#   Úinitial_connectivityÚinitial_callbacksc                 óB  — |}|}	 |D ]   }t        j                  | «       	  ||«       Œ" | j                  5  t        | «      }|r| j                  }nd| _	        	 d d d «       y 	 d d d «       Œg# t        $ r t        j	                  t
        «       Y Œ‰w xY w# 1 sw Y   Œ2xY wr:   )
r   r“   rn   r‡   rˆ   Ú0_CHANNEL_SUBSCRIPTION_CALLBACK_ERROR_LOG_MESSAGErÄ  rð  rä  rç  )rP   rñ  rò  rä  r3   rt   s         r!   Ú_deliverrõ  V  s²   € ð
 (€LØ!€IØ
Ø!ò 	ˆHÜ×,Ñ,¨UÔ3ðÙ˜Õ&ð	ð �Z‰Zñ 	Ü# EÓ*ˆIÙØ$×1Ñ1‘à#(�Ô Ø÷	ð 	ð ÷	ð øô
 ò Ü×!Ñ!ÜDöðú÷	ð 	ús   ¡A-·#BÁ-"BÂBÂBr3   c                 ó¤   — t        j                  t        | | j                  |f¬«      }|j	                  d«       |j                  «        d| _        y ©N)r8   ÚargsT)r   rž   rõ  rä  rŸ   r    rç  )rP   r3   Údelivering_threads      r!   Ú_spawn_deliveryrú  o  sP   € ô ×0Ñ0ÜàØ×ÑØð
ôÐð ×Ñ Ô%Ø×ÑÔØ€EÕr#   rt  Úinitial_try_to_connectc                 óp  — |}|j                  |«      }| j                  5  t        j                  |   | _        t        d„ | j                  D «       «      }| j                  D ]  }| j                  |d<   Œ |rt        | |«       d d d «       	 |j                  |t        j                  «       dz   «      }t        j                  | «       | j                  5  | j                  s$| j                  sd| _        d | _        	 d d d «       y | j                  }d| _        d d d «       |j                  s|rc|j                  |«      }| j                  5  t        j                  |   | _        | j                  st!        | «      }|rt        | |«       d d d «       �Œ# 1 sw Y   �ŒxY w# 1 sw Y   Œ‰xY w# 1 sw Y   Œ$xY w)Nc              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   rO   )r_  rt   Ú_s      r!   r`  z%_poll_connectivity.<locals>.<genexpr>Ž  s   è ø€ ò 
Ù$˜ 1ŒHñ
ùs   ‚rÍ  gš™™™™™É?F)Úcheck_connectivity_staterÄ  r   Ú1CYGRPC_CONNECTIVITY_STATE_TO_CHANNEL_CONNECTIVITYrä  rb  ræ  rú  Úwatch_connectivity_stater   r   r“   rå  rã  Úsuccessrç  rð  )rP   rt  rû  rå  rä  r3   rî  rT   s           r!   Ú_poll_connectivityr  �  s®  € ð
 ,€NØ×3Ñ3°NÓC€LØ	�‰ñ .ä×EÑEØñð 	Ôô
 ñ 
Ø(-×(JÑ(Jô
ó 
ˆ	ð */×)KÑ)Kò 	>Ð%Ø+0×+=Ñ+=Ð% aÒ(ð	>áÜ˜E 9Ô-÷.ð Ø×0Ñ0Øœ$Ÿ)™)›+¨Ñ+ó
ˆô 	×(Ñ(¨Ô/Ø�Z‰Zñ 		)à×6Ò6Ø×,Ò,à %�”Ø%)�Ô"Ø÷		)ð 		)ð #×1Ñ1ˆNØ#(ˆEÔ ÷		)ð �=Š=™NØ"×;Ñ;¸NÓKˆLØ—‘ñ 	:ä×MÑMØ$ñð Ô"ð
 ×'Ò'Ü +¨EÓ 2�IÙ Ü'¨¨yÔ9÷	:ñ# ÷.ñ .ú÷$		)ð 		)ú÷	:ð 	:ús*    A#FÃ(F ÄF Å>F,ÆFÆ F)Æ,F5rt   rå  c           	      ó°  — | j                   5  | j                  sƒ| j                  swt        j                  t
        | | j                  t        |«      f¬«      }|j                  d«       |j                  «        d| _        | j                  j                  |d g«       n¦| j                  s_| j                  �St        | |f«       | xj                  t        |«      z  c_        | j                  j                  || j                  g«       n;| xj                  t        |«      z  c_        | j                  j                  |d g«       d d d «       y # 1 sw Y   y xY wr÷  )rÄ  ræ  rã  r   rž   r  rt  rL   rŸ   r    rí   rç  rä  rú  rå  )rP   rt   rå  Úpolling_threads       r!   Ú
_subscriber  ²  s  € ð
 
�‰ñ HØ×1Ò1¸%¿-º-Ü#×5Ñ5Ü)Ø˜UŸ]™]¬D°Ó,@ÐAôˆNð ×$Ñ$ TÔ*Ø× Ñ Ô"Ø ˆEŒMØ×.Ñ.×5Ñ5°xÀÐ6FÕGØ×!Ò! e×&8Ñ&8Ð&DÜ˜E H ;Ô/Ø× Ò ¤D¨Ó$8Ñ8Õ Ø×.Ñ.×5Ñ5Ø˜5×-Ñ-Ð.õð × Ò ¤D¨Ó$8Ñ8Õ Ø×.Ñ.×5Ñ5°xÀÐ6FÔG÷%H÷ Hñ Hús   �D6EÅEc                 óÊ   — | j                   5  t        | j                  «      D ]*  \  }\  }}||k(  sŒ| j                  j                  |«        n d d d «       y # 1 sw Y   y xY wr   )rÄ  Ú	enumerateræ  Úpop)rP   rt   ÚindexÚsubscribed_callbackÚunused_connectivitys        r!   Ú_unsubscriber  Ì  sl   € ð 
�‰ñ ÜAJØ×.Ñ.óB
ò 	Ñ=ˆEÑ=Ð'Ð)<ð Ð.Ó.Ø×2Ñ2×6Ñ6°uÔ=Ùð	÷÷ ñ ús   �$A²AÁA"Úbase_optionsr|  c                 óŒ   — t        j                  |«      }t        | «      |z   t        j                  j
                  t        ffz   S r   )r   Úcreate_channel_optionrb  r   ÚChannelArgKeyÚprimary_user_agent_stringÚ_USER_AGENT)r  r|  Úcompression_options      r!   Ú_augment_optionsr  Ù  sM   € ô &×;Ñ;¸KÓHÐäˆlÓØ
ñ	ô ×$Ñ$×>Ñ>Üðð
ñ	
ð	r#   Úoptionsc                 óº   — g }g }| D ]O  }|d   t         j                  j                  j                  k(  r|j	                  |«       Œ?|j	                  |«       ŒQ ||fS )z;Separates core channel options from Python channel options.r   )rI   r  ÚChannelOptionsÚSingleThreadedUnaryStreamrí   )r  Úcore_optionsÚpython_optionsÚpairs       r!   Ú_separate_channel_optionsr  ê  sj   € ð €LØ€NØò &ˆà�‰GÜ× Ñ ×/Ñ/×IÑIòJð ×!Ñ! $Õ'à×Ñ Õ%ð&ð ˜<Ð'Ð'r#   c                   ó¬  — e Zd ZU dZeed<   ej                  ed<   eed<   e	ed<   e
ed<   ee
ef   ed<   de
d	ee   d
eej"                     deej$                     fd„Zde
defd„Zdee   ddfd„Z	 d%deej.                  gdf   dee   ddfd„Zdeej.                  gdf   ddfd„Z	 	 	 d&de
dee   dee   dee   dej8                  f
d„Z	 	 	 d&de
dee   dee   dee   dej<                  f
d„Z	 	 	 d&de
dee   dee   dee   dej@                  f
d„Z!	 	 	 d&de
dee   dee   dee   dejD                  f
d„Z#d'd„Z$d'd„Z%d'd „Z&d!„ Z'd"„ Z(d'd#„Z)d$„ Z*y)(r”  z7A cygrpc.Channel-backed implementation of grpc.Channel.Ú_single_threaded_unary_streamrl  Ú_call_stateÚ_connectivity_statero  Ú_registered_call_handlesr8   r  r„  r|  c                 ó´  — t        |«      \  }}t        | _        | j                  |«       t	        j
                  t        j                  |«      t        ||«      |«      | _	        || _
        t        | j                  «      | _        t        | j                  «      | _        t	        j                  | «       t        j                   rt	        j"                  «        yy)aP  Constructor.

        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_optionsr   r”  r   Úencoder  rl  ro  rÀ  r   râ  r!  Úfork_register_channelÚg_gevent_activatedÚgevent_increment_channel_count)r?   r8   r  r„  r|  r  r  s          r!   r@   zChannel.__init__  s«   € ô  (AÀÓ'IÑ$ˆ˜ä1ð 	Ô*ð 	×$Ñ$ ^Ô4ÜŸ™Ü�N‰N˜6Ó"Ü˜\¨;Ó7Øó
ˆŒð
 ˆŒÜ,¨T¯]©]Ó;ˆÔÜ#<¸T¿]¹]Ó#KˆÔ Ü×$Ñ$ TÔ*Ü×$Ò$Ü×1Ñ1Õ3ð %r#   r7   r   c                 ó^   — | j                   j                  t        j                  |«      «      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.
        )rl  Úget_registered_call_handler   r&  )r?   r7   s     r!   Ú_get_registered_call_handlez#Channel._get_registered_call_handle&  s"   € ð �}‰}×7Ñ7¼¿¹ÀvÓ8NÓOÐOr#   r  Nc                 óv   — |D ]4  }|d   t         j                  j                  j                  k(  sŒ.d| _        Œ6 y)zASets channel attributes according to python-only channel options.r   TN)rI   r  r  r  r  )r?   r  r  s      r!   r%  zChannel._process_python_options6  s?   € ð #ò 	:ˆDà�Q‘Ü×$Ñ$×3Ñ3×MÑMóNð 6:�Õ2ñ	:r#   rt   rå  c                 ó2   — t        | j                  ||«       y r   )r  r!  )r?   rt   rå  s      r!   Ú	subscribezChannel.subscribeA  s   € ô
 	�4×+Ñ+¨X°~ÕFr#   c                 ó0   — t        | j                  |«       y r   )r  r!  rî   s     r!   ÚunsubscribezChannel.unsubscribeH  s   € ô 	�T×-Ñ-¨xÕ8r#   rz   rU   Ú_registered_methodc           	      óè   — d }|r| j                  |«      }t        | j                  t        | j                  «      t        j                  |«      t        j                  | j                  «      |||«      S r   )r,  rk  rl  rà  r   r   r&  ro  ©r?   r7   rz   rU   r2  rr  s         r!   Úunary_unaryzChannel.unary_unaryN  se   € ð #'ÐÙØ&*×&FÑ&FÀvÓ&NÐ#Ü'Ø�M‰MÜ,¨T×-=Ñ-=Ó>Ü�N‰N˜6Ó"Ü�N‰N˜4Ÿ<™<Ó(ØØ!Ø#ó
ð 	
r#   c           	      ó”  — d }|r| j                  |«      }| j                  rJt        | j                  t	        j
                  |«      t	        j
                  | j                  «      |||«      S t        | j                  t        | j                  «      t	        j
                  |«      t	        j
                  | j                  «      |||«      S r   )
r,  r  rœ  rl  r   r&  ro  r¥  rà  r   r4  s         r!   Úunary_streamzChannel.unary_streamc  s«   € ð #'ÐÙØ&*×&FÑ&FÀvÓ&NÐ#ð
 ×-Ò-Ü:Ø—‘Ü—‘˜vÓ&Ü—‘˜tŸ|™|Ó,Ø"Ø%Ø'óð ô -Ø—‘Ü0°×1AÑ1AÓBÜ—‘˜vÓ&Ü—‘˜tŸ|™|Ó,Ø"Ø%Ø'óð r#   c           	      óè   — d }|r| j                  |«      }t        | j                  t        | j                  «      t        j                  |«      t        j                  | j                  «      |||«      S r   )r,  r©  rl  rà  r   r   r&  ro  r4  s         r!   Ústream_unaryzChannel.stream_unary†  se   € ð #'ÐÙØ&*×&FÑ&FÀvÓ&NÐ#Ü(Ø�M‰MÜ,¨T×-=Ñ-=Ó>Ü�N‰N˜6Ó"Ü�N‰N˜4Ÿ<™<Ó(ØØ!Ø#ó
ð 	
r#   c           	      óè   — d }|r| j                  |«      }t        | j                  t        | j                  «      t        j                  |«      t        j                  | j                  «      |||«      S r   )r,  r²  rl  rà  r   r   r&  ro  r4  s         r!   Ústream_streamzChannel.stream_stream›  se   € ð #'ÐÙØ&*×&FÑ&FÀvÓ&NÐ#Ü)Ø�M‰MÜ,¨T×-=Ñ-=Ó>Ü�N‰N˜6Ó"Ü�N‰N˜4Ÿ<™<Ó(ØØ!Ø#ó
ð 	
r#   c                 ó‚   — | j                   }|r%|j                  5  |j                  d d …= d d d «       y y # 1 sw Y   y xY wr   )r!  rÄ  ræ  r°   s     r!   Ú_unsubscribe_allzChannel._unsubscribe_all¯  sD   € Ø×(Ñ(ˆÙØ—‘ñ :Ø×6Ñ6²qÐ9÷:ð :ð ÷:ð :ús   ›5µ>c                 ó   — | j                  «        | j                  j                  t        j                  j
                  d«       t        j                  | «       t        j                  rt        j                  «        y y )NzChannel closed!)	r=  rl  rÈ  r   rJ   r2   Úfork_unregister_channelr(  Úgevent_decrement_channel_countrB   s    r!   Ú_closezChannel._closeµ  sW   € Ø×ÑÔØ�‰×ÑœF×-Ñ-×7Ñ7Ð9JÔKÜ×&Ñ& tÔ,Ü×$Ò$Ü×1Ñ1Õ3ð %r#   c                 óŒ   — | j                  «        | j                  j                  t        j                  j
                  d«       y )NzChannel closed due to fork)r=  rl  Úclose_on_forkr   rJ   r2   rB   s    r!   Ú_close_on_forkzChannel._close_on_fork¼  s2   € Ø×ÑÔØ�‰×#Ñ#Ü×Ñ×'Ñ'Ð)Eõ	
r#   c                 ó   — | S r   rO   rB   s    r!   Ú	__enter__zChannel.__enter__Â  rò   r#   c                 ó$   — | j                  «        yr:   ©rA  )r?   Úexc_typeÚexc_valÚexc_tbs       r!   Ú__exit__zChannel.__exit__Å  s   € Ø�‰ŒØr#   c                 ó$   — | j                  «        y r   rH  rB   s    r!   rÈ  zChannel.closeÉ  s   € Ø�‰�r#   c                 ó4   — 	 | j                  «        y #  Y y xY wr   )r=  rB   s    r!   r  zChannel.__del__Ì  s   € ð	Ø×!Ñ!Õ#øð	ñ ús   ‚ “r   )NNFr  )+rD   rE   rF   rØ   rL   rG   r   r”  rÀ  râ  rK   r   rM   r	   r   r   rI   ÚChannelCredentialsr—  r@   r,  r%  r   rë  r/  r1  r   r   ÚUnaryUnaryMultiCallabler5  ÚUnaryStreamMultiCallabler7  ÚStreamUnaryMultiCallabler9  ÚStreamStreamMultiCallabler;  r=  rA  rD  rF  rL  rÈ  r  rO   r#   r!   r”  r”  û  s–  … ÙAà#'Ó'Ø�n‰nÓØ"Ó"Ø2Ó2ØƒLØ" 3¨ 8™nÓ,ð4àð4ð Ð-Ñ.ð4ð ˜d×5Ñ5Ñ6ð	4ð
 ˜d×.Ñ.Ñ/ó4ðBP°#ð P¸#ó Pð 	:Ø&Ð':Ñ;ð	:à	ó	:ð *.ñGà˜D×4Ñ4Ð5°tÐ;Ñ<ðGð ! ™ðGð 
ó	Gð9Ø  $×":Ñ":Ð!;¸TÐ!AÑBð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ó
òòóór#   r”  )urØ   r®   r‘   ro   ÚosrÒ   r;   r   rÙ   Útypingr   r   r   r   r   r   r	   r
   r   r   rI   r   r   r   r   Úgrpc._cythonr   Úgrpc._typingr   r   r   r   r   r   r   r   Úgrpc.experimentalÚ	getLoggerrD   r‡   r'   Ú__version__r  rŽ   Úgetenvr$  rH   Úsend_initial_metadatar€   r”   rZ   r[   r_   r�  r¡  r¬  rµ  rô  r§   r¨   rN   r"   rJ   rK   r(   Úobjectr*   rS   r1  rj   rw   r  r  r¢   r©   rÑ   rš  rÛ   r«   Ú
RpcContextrÝ   r  r3  r•  rP  rL   rT  rM   r˜  r\  rc  ri  rP  rk  rQ  rœ  r¥  rR  r©  rS  r²  r~  rÀ  rÖ  rà  râ  rë  rð  rõ  rú  r”  r  r  r  r—  r  r  rO   r#   r!   ú<module>r_     sb  ðñ 5ã Û Û Û 	Û 
Û Û Û ÷÷ ÷ ó Ý Ý Ý !Ý Ý Ý ,Ý .Ý .Ý %Ý ,Ý %Ý ,Ý  Û à
ˆ'×
Ñ
˜HÓ
%€à×%Ñ%Ð&6×&BÑ&BÓC€à€ð
 €B‡I�IÐ1Ó2¸$Ð>ð &ð
 ×Ñ×.Ñ.Ø
×Ñ×%Ñ%Ø
×Ñ×/Ñ/Ø
×Ñ×1Ñ1Ø
×Ñ×(Ñ(Ø
×Ñ×1Ñ1ðÐ ð ×Ñ×.Ñ.Ø
×Ñ×%Ñ%Ø
×Ñ×/Ñ/Ø
×Ñ×1Ñ1Ø
×Ñ×1Ñ1ðÐ ð ×Ñ×.Ñ.Ø
×Ñ×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¡y°$·+±+ô [ô|h3�$—-‘- §¡ô h3ôVSBØ�—‘˜DŸK™KôSBôlvØ�—‘˜DŸK™Kôvðr2Øð2à�e‰_ð2ð ,ð2ð ˆ8�E‰?˜H U™O¨X°d·m±mÑ-DÐDÑEó	2ð*'Øð'à
×
Ñ
ð'ð ð'ð �u‰oð	'ð
 ˆ<˜˜|¨T¯Y©YÐ6Ñ7Ð7Ñ8ó'ð Ø�|Ñ$ðØ>Aðàˆh�v×'Ñ'Ñ(Ñ)óðØ�|Ñ$ðØ>Aðàˆe�H˜V×-Ñ-Ñ.°¸Ñ0AÐAÑBÑCóð	3 x°¡ð 	3¸8ÀE¹?ó 	3ôw˜t×;Ñ;ô wôta
¨d×.KÑ.Kô a
ôH\ × =Ñ =ô \ô~m
 × =Ñ =ô m
ô`[
 ×!?Ñ!?ô [
ô|˜Cô ô.˜ô ð. Ð$5ð  ¸$ó  ð&<Ð,=ó <ô~  ô  ðD$Ø$ð$à	ˆ(�D×,Ñ,Ð-¨tÐ3Ñ
4Ñ5ó$ðØ$ðà×2Ñ2ðð   ¨$×*BÑ*BÐ)CÀTÐ)IÑ JÑKðð 
ó	ð2Ø$ðà˜ $×":Ñ":Ð!;¸TÐ!AÑBÑCðð 
óð$.:Ø$ð.:à�\‰\ð.:ð !ð.:ð 
ó	.:ðbHØ$ðHà˜×0Ñ0Ð1°4Ð7Ñ8ðHð ðHð 
ó	Hð4
Ø$ð
à˜×0Ñ0Ð1°4Ð7Ñ8ð
ð 
ó
ðØÐ.Ñ/ðà˜$×*Ñ*Ñ+ðð Ð!Ñ"óð"(ØÐ)Ñ*ð(à
ˆ8Ð'Ñ(¨(Ð3FÑ*GÐGÑHó(ô"`ˆd�l‰lõ `r#   