
    (ph=                       S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
JrJrJrJrJrJrJrJrJr  SSKrSSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJ r   SSKJ!r!  SSKJ"r"  SSKJ#r#  SSK$r\RJ                  " \&5      r'SRQ                  \RR                  5      r*Sr+\RX                  " S5      SLr-\R\                  R^                  \R\                  R`                  \R\                  Rb                  \R\                  Rd                  \R\                  Rf                  \R\                  Rh                  4r5\R\                  R^                  \R\                  R`                  \R\                  Rb                  \R\                  Rd                  \R\                  Rh                  4r6\R\                  R^                  \R\                  Rd                  \R\                  Rf                  \R\                  Rh                  4r7\R\                  R^                  \R\                  Rd                  \R\                  Rh                  4r8Sr9Sr:Sr;S\\<   S\\<   4S jr=S\\R|                     S\\?   S\?4S jr@ " S S\A5      rBS\BS\R|                  S\?SS4S  jrCS!\R                  S\BS"\\   S\\    4S# jrES\BS"\\   S\#4S$ jrFS%\S\BS&\\R                  \R                  4   S'\"S(\\#   SS4S) jrIS*\?S+\BS\?4S, jrJ " S- S.\R                  \R                  \R                  5      rN " S/ S0\R                  \R                  5      rP " S1 S2\P\R                  \R                  5      rQ " S3 S4\P\R                  \R                  5      rRS5\
S\\<   S'\"S\\\<   \\S   \\R                     4   4S6 jrTS\BS&\R                  S7\US8\\<   S\\!\\!\R                  4   4   4
S9 jrVS:\\   S;\WS\\\R                        4S< jrYS:\\   S;\WS\\\\R                     \\#   4      4S= jrZS>\\<   S\\<   4S? jr[ " S@ SA\R                  5      r] " SB SC\R                  5      r_ " SD SE\R                  5      r` " SF SG\R                  5      rb " SH SI\R                  5      rd " SJ SK\W5      re " SL SM\A5      rfS\fSS4SN jrgS\f4SO jrh " SP SQ\A5      riS\iS\\\R                  /S4      4SR jrkS\iSS\R                  ST\\\R                  /S4      SS4SU jrlS\iSV\\\R                  /S4      SS4SW jrmS\iSX\R                  SY\USS4SZ jroS\iS[\\R                  /S4   S\\USS4S] jrpS\iS[\\R                  /S4   SS4S^ jrqS_\\   S`\\R                     S\\   4Sa jrsSb\\   S\\\   \\   4   4Sc jrt " Sd Se\R                  5      rng)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                 <    U c  S $ [         R                   " 5       U -   $ N)timer   s    @/var/www/html/venv/lib/python3.13/site-packages/grpc/_channel.py	_deadliner"   m   s    ?4=		g(==    unknown_cygrpc_codedetailsc                 $    SR                  X5      $ )Nz,Server sent unknown code {} and details "{}")format)r$   r%   s     r!   _unknown_code_detailsr(   q   s     :@@ r#   c                      \ rS rSr% \R
                  \S'   \\R                     \S'   \
\   \S'   \\S'   \
\   \S'   \
\R                     \S'   \
\   \S'   \
\   \S	'   \\S
'   \\   \S'   \
\   \S'   \
\   \S'   \
\   \S'   \
\   \S'   \
\   \S'   S\\R                     S\
\   S\
\   S\
\R                     S\
\   4
S jrS rSrg)	_RPCStatey   	conditiondueinitial_metadataresponsetrailing_metadatacoder%   debug_error_string	cancelled	callbacks
fork_epochrpc_start_timerpc_end_timemethodtargetc                 ,   [         R                  " 5       U l        [        U5      U l        X l        S U l        X0l        X@l        XPl	        S U l
        S U l        S U l        S U l        S U l        SU l        / U l        ["        R$                  " 5       U l        g NF)	threading	Conditionr,   setr-   r.   r/   r0   r1   r%   r2   r6   r7   r8   r9   r3   r4   r   get_fork_epochr5   )selfr-   r.   r0   r1   r%   s         r!   __init___RPCState.__init__   s     #,,. s8 0!2	"& #   //1r#   c                 8    [         R                  " 5       U l        g r   )r<   r=   r,   r@   s    r!   reset_postfork_child_RPCState.reset_postfork_child   s    ",,.r#   )r4   r3   r1   r,   r2   r%   r-   r5   r.   r8   r/   r7   r6   r9   r0   N)__name__
__module____qualname____firstlineno__r<   r=   __annotations__r
   r   OperationTyper   r   r   grpc
StatusCodestrboolr   r   intfloatr	   rA   rE   __static_attributes__ r#   r!   r*   r*   y   s    """	V!!	""|,,M--
4??
##c] %O'((UO#5/!SMSM&2f**+&2 #<0&2 $L1	&2
 t'&2 #&2P/r#   r*   stater1   c                 n    U R                   c(  Xl         X l        U R                  c  SU l        SU l        g g NrT   )r1   r%   r.   r0   )rU   r1   r%   s      r!   _abortrX      s7    zz
!!)%'E""$ r#   eventresponse_deserializerc                 T   / nU R                    GH  nUR                  5       nUR                  R                  U5        U[        R
                  R                  :X  a  UR                  5       Ul        Md  U[        R
                  R                  :X  a_  UR                  5       nUbJ  [        R                  " Xb5      nUc)  Sn[        U[        R                  R                  U5        M  Xql        M  M  U[        R
                  R"                  :X  d  GM  UR%                  5       Ul        UR&                  c  [        R(                  R+                  UR'                  5       5      n	U	c>  [        R                  R,                  Ul        [/        XR1                  5       5      Ul        O0Xl        UR1                  5       Ul        UR3                  5       Ul        [6        R8                  " 5       Ul        [<        R>                  " U5        URA                  URB                  5        S Ul!        GM     U$ )Nz!Exception deserializing response!)"batch_operationstyper-   remover   rL   receive_initial_metadatar.   receive_messagemessager   deserializerX   rM   rN   INTERNALr/   receive_status_on_clientr0   r1   !CYGRPC_STATUS_CODE_TO_STATUS_CODEgetUNKNOWNr(   r%   error_stringr2   r   perf_counterr7   r   maybe_record_rpc_latencyextendr4   )
rY   rU   rZ   r4   batch_operationoperation_typeserialized_responser/   r%   r1   s
             r!   _handle_eventro      s   
 I 11(--/		(V11JJJ%4%E%E%GE"v33CCC"1"9"9";"."..' #AG5$//":":GD%-N / v33LLL&5&G&G&IE#zz!@@DD#((* <!%!8!8EJ$9557%EM "&J$3$;$;$=EM/>/K/K/ME,!%!2!2!4E33E:U__-"EOE 2F r#   c                    ^ ^ UU 4S jnU$ )Nc           	        > TR                      [        U TT5      nTR                   R                  5         TR                  (       + nS S S 5        W H  n U" 5         M     W=(       a"    TR                  [        R                  " 5       :  $ ! , (       d  f       NJ= f! [         a?  n[
        R                  " S[        UR                  5      [        U5      5         S nAM  S nAff = f)NzException in callback %s: %s)r,   ro   
notify_allr-   	Exceptionloggingerrorreprfuncr5   r   r?   )rY   r4   donecallbackerZ   rU   s        r!   handle_event$_event_handler.<locals>.handle_event   s    __%eU4IJIOO&&(yy=D  "H
 " C((F,A,A,CCC _   2D4Ga s#   9BB
B
C%&4C  C%rT   )rU   rZ   r{   s   `` r!   _event_handlerr}      s    D  r#   request_iteratorcallrequest_serializerevent_handlerc                    ^ ^^^^ UUU UU4S jn[         R                  " US9nUR                  S5        UR                  5         g)z'Consume a request supplied by the user.c            	        >  Sn  [         R                  " 5         [        T
5      n U (       d  [         R                  " 5         [        R                  " UT5      nTR                      TR"                  Gcz  TR$                  (       Gdh  UcU  [        R                  R&                  nSnTR                  [        R                  U   U5        [        TX#5         S S S 5        g TR(                  R+                  [         R,                  R.                  5        [         R0                  " U[2        5      4nTR5                  UT	5      nU(       d=  TR(                  R7                  [         R,                  R.                  5         S S S 5        g U4S jn[        R8                  " TR                   R8                  U[:        R<                  " [         R>                  T5      S9  TR"                  b
   S S S 5        g O
 S S S 5        g  S S S 5        GM  ! [         a     U (       d  [         R                  " 5         O[
         a    [         R                  " 5         Sn [        R                  R                  nSn[        R                  U5        TR                  [        R                  U   U5        [        TX#5         U (       d  [         R                  " 5         g g f = f! U (       d  [         R                  " 5         f f = f! , (       d  f       N= fTR                      TR"                  c  TR(                  R+                  [         R,                  R@                  5        [         RB                  " [2        5      4nTR5                  UT	5      nU(       d3  TR(                  R7                  [         R,                  R@                  5        S S S 5        g ! , (       d  f       g = f)NTFzException iterating requests!Exception serializing request!c                  |   > T R                   S L=(       d'    [        R                  R                  T R                  ;  $ r   )r1   r   rL   send_messager-   )rU   s   r!   _doneJ_consume_request_iterator.<locals>.consume_request_iterator.<locals>._done=  s4     %

$ 6 !1#)#7#7#D#D',yy$1r#   )spin_cb)"r   enter_user_request_generatornextStopIteration"return_from_user_request_generatorrs   rM   rN   rg   _LOGGER	exceptioncancelr   !STATUS_CODE_TO_CYGRPC_STATUS_CODErX   	serializer,   r1   r3   rc   r-   addrL   r   SendMessageOperation_EMPTY_FLAGSoperater^   wait	functoolspartialblock_if_fork_in_progresssend_close_from_clientSendCloseFromClientOperation)*return_from_user_request_generator_invokedrequestr1   r%   serialized_request
operations	operatingr   r   r   r~   r   rU   s           r!   consume_request_iterator;_consume_request_iterator.<locals>.consume_request_iterator  s    9>6@335/0 B==?!(!2!27<N!O::%eooo)1#77"B#EEdK# ud4 ! 		f&:&:&G&GH"77 2L&

 %)LL]$K	(!II,,V-A-A-N-NO"+ !.  !OO00!$-$5$5 & @ @%% !::1"M !J 2 Q !J 2K !/  !  B==?  
99;=A:..9!!'*==dCW ud,A==? B
 B==? B !R __zz!		f22IIJ77E
 !LL]C	 II$$,,CC __s^    H &A0K2BK2A!K2.K2
KK -B K-K KK K/2
L B(O  
Or9   TNr   ForkManagedThread	setDaemonstart)r~   rU   r   r   r   r   consumption_threads   `````  r!   _consume_request_iteratorr     sB    M M^  11'   &r#   
class_name	rpc_statec                    UR                      UR                  c  SR                  U 5      sSSS5        $ UR                  [        R                  R
                  L a3  [        R                  XR                  UR                  5      sSSS5        $ [        R                  U UR                  UR                  UR                  5      sSSS5        $ ! , (       d  f       g= f)z Calculates error string for RPC.Nz<{} object>)
r,   r1   r'   rM   rN   OK_OK_RENDEZVOUS_REPR_FORMATr%   _NON_OK_RENDEZVOUS_REPR_FORMATr2   )r   r   s     r!   _rpc_state_stringr   b  s    			>>! ''
3 
	 ^^t111-44NNI,=,=	 
	 288!!,,	 
		s   CAC5C
Cc                      \ rS rSr% Sr\\S'   S\4S jrS\\	   4S jr
S\\	   4S jrS\\R                     4S	 jrS\\   4S
 jrS\\   4S jrS\4S jrS\4S jrS\4S jrS\4S jrS\4S jrS\4S jrS\4S jr SS\\   S\4S jjr SS\\   S\\   4S jjr SS\\   S\\R@                     4S jjr! SS\"\RF                  /S4   S\\   SS4S jjr$Sr%g)_InactiveRpcErrorit  zAn 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.
_staterU   c           
         UR                      [        S[        R                  " UR                  5      [        R                  " UR
                  5      UR                  [        R                  " UR                  5      5      U l        [        R                  " UR                  5      U R                  l	        [        R                  " UR                  5      U R                  l
        S S S 5        g ! , (       d  f       g = frW   )r,   r*   copydeepcopyr.   r0   r1   r%   r   r/   r2   r@   rU   s     r!   rA   _InactiveRpcError.__init__  s    __#e445e556

emm,DK $(99U^^#<DKK -1YYu7O7O-PDKK* __s   CC--
C;r   c                 .    U R                   R                  $ r   r   r.   rD   s    r!   r.   "_InactiveRpcError.initial_metadata  s    {{+++r#   c                 .    U R                   R                  $ r   r   r0   rD   s    r!   r0   #_InactiveRpcError.trailing_metadata  s    {{,,,r#   c                 .    U R                   R                  $ r   r   r1   rD   s    r!   r1   _InactiveRpcError.code  s    {{r#   c                 V    [         R                  " U R                  R                  5      $ r   )r   decoder   r%   rD   s    r!   r%   _InactiveRpcError.details  s    ~~dkk1122r#   c                 V    [         R                  " U R                  R                  5      $ r   )r   r   r   r2   rD   s    r!   r2   $_InactiveRpcError.debug_error_string  s    ~~dkk<<==r#   c                 V    [        U R                  R                  U R                  5      $ r   r   	__class__rG   r   rD   s    r!   _repr_InactiveRpcError._repr       !8!8$++FFr#   c                 "    U R                  5       $ r   r   rD   s    r!   __repr___InactiveRpcError.__repr__      zz|r#   c                 "    U R                  5       $ r   r   rD   s    r!   __str___InactiveRpcError.__str__  r   r#   c                     g)zSee grpc.Future.cancel.FrT   rD   s    r!   r   _InactiveRpcError.cancel      r#   c                     g)zSee grpc.Future.cancelled.FrT   rD   s    r!   r3   _InactiveRpcError.cancelled  r   r#   c                     g)zSee grpc.Future.running.FrT   rD   s    r!   running_InactiveRpcError.running  r   r#   c                     g)zSee grpc.Future.done.TrT   rD   s    r!   rx   _InactiveRpcError.done  s    r#   Nr   c                     U e)zSee grpc.Future.result.rT   r@   r   s     r!   result_InactiveRpcError.result  s	     
r#   c                     U $ )zSee grpc.Future.exception.rT   r   s     r!   r   _InactiveRpcError.exception  s	     r#   c                 l     U e! [         R                   a    [        R                  " 5       S   s $ f = f)zSee grpc.Future.traceback.   )rM   RpcErrorsysexc_infor   s     r!   	traceback_InactiveRpcError.traceback  s0    	%J}} 	%<<>!$$	%s    ,33fnc                     U" U 5        g)z"See grpc.Future.add_done_callback.NrT   )r@   r   r   s      r!   add_done_callback#_InactiveRpcError.add_done_callback  s     	4r#   )r   r   )&rG   rH   rI   rJ   __doc__r*   rK   rA   r   r   r.   r0   rM   rN   r1   rO   r%   r2   r   r   r   rP   r   r3   r   rx   rR   r   r   rs   r   typesTracebackTyper   r   Futurer   rS   rT   r#   r!   r   r   t  ss    
Qi 
Q,(<"8 ,-8L#9 - ht/  3# 3>HSM >Gs G#   4  d 
 *.	 *.	)	 *.%%	%%%	&% $(dkk]D() % 
	 r#   r   c            	         ^  \ rS rSr% Sr\\S'   \\R                  \R                  4   \S'   \\   \S'   \\   \S'   S\S\\R                  \R                  4   S	\\   S
\\   4U 4S jjrS\4S jrS\\   4S jrS\4S jrS\S\4S jrS rS rS rS rS\\   4S jrS\4S jrS\4S jrS\4S jrSS jrSrU =r $ )_Rendezvousi  a  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"   rU   r   rZ   deadlinec                 Z   > [         [        U ]  5         Xl        X l        X0l        X@l        g r   )superr   rA   r   r   r   r"   )r@   rU   r   rZ   r   r   s        r!   rA   _Rendezvous.__init__  s'     	k4)+
&;#!r#   r   c                     U R                   R                     U R                   R                  SL sSSS5        $ ! , (       d  f       g= f)zSee grpc.RpcContext.is_activeNr   r,   r1   rD   s    r!   	is_active_Rendezvous.is_active  s-    [["";;##t+ #""	   9
Ac                     U R                   R                     U R                  c
   SSS5        g[        U R                  [        R                  " 5       -
  S5      sSSS5        $ ! , (       d  f       g= f)z"See grpc.RpcContext.time_remainingNr   )r   r,   r"   maxr   rD   s    r!   time_remaining_Rendezvous.time_remaining  sK    [[""~~% #" 4>>DIIK7;	 #""s   A$+A$$
A2c                    U R                   R                     U R                   R                  c  [        R                  R
                  nSnU R                  R                  [        R                  U   U5        SU R                   l
        [        U R                   X5        U R                   R                  R                  5          SSS5        g SSS5        g! , (       d  f       g= f)zSee grpc.RpcContext.cancelNz!Locally cancelled by application!TF)r   r,   r1   rM   rN   	CANCELLEDr   r   r   r   r3   rX   rr   )r@   r1   r%   s      r!   r   _Rendezvous.cancel  s    [[""{{'00=

!!==dCW )-%t{{D2%%002 #"  #""s   B-CC
C%ry   c                     U R                   R                     U R                   R                  c
   SSS5        gU R                   R                  R                  U5         SSS5        g! , (       d  f       g= f)z See grpc.RpcContext.add_callbackNFT)r   r,   r4   appendr@   ry   s     r!   add_callback_Rendezvous.add_callback  sS    [[""{{$$, #" %%,,X6 #""s   A(&A((
A6c                     U $ r   rT   rD   s    r!   __iter___Rendezvous.__iter__      r#   c                 "    U R                  5       $ r   _nextrD   s    r!   r   _Rendezvous.next  r   r#   c                 "    U R                  5       $ r   r  rD   s    r!   __next___Rendezvous.__next__  r   r#   c                     [        5       er   NotImplementedErrorrD   s    r!   r  _Rendezvous._next!      !##r#   c                     [        5       er   r  rD   s    r!   r2   _Rendezvous.debug_error_string$  r  r#   c                 V    [        U R                  R                  U R                  5      $ r   r   rD   s    r!   r   _Rendezvous._repr'  r   r#   c                 "    U R                  5       $ r   r   rD   s    r!   r   _Rendezvous.__repr__*  r   r#   c                 "    U R                  5       $ r   r   rD   s    r!   r   _Rendezvous.__str__-  r   r#   c                    U R                   R                     U R                   R                  c  [        R                  R
                  U R                   l        SU R                   l        SU R                   l        U R                  R                  [        R                  U R                   R                     U R                   R                  5        U R                   R                  R                  5         S S S 5        g ! , (       d  f       g = f)Nz"Cancelled upon garbage collection!T)r   r,   r1   rM   rN   r  r%   r3   r   r   r   r   rr   rD   s    r!   __del___Rendezvous.__del__0  s    [[""{{'#'??#<#< &J#(,%

!!==dkk>N>NOKK'' %%002 #""s   CC<<
D
)r   r"   r   r   r   N)!rG   rH   rI   rJ   r   r*   rK   r   r   SegregatedCallIntegratedCallr   r   rR   rA   rP   r   r  r   r   r  r  r   r  r  rO   r2   r   r   r   r'  rS   __classcell__r   s   @r!   r   r     s    &&(=(==>>$%:;;"" F))6+@+@@A"  ((=>	"
 5/",4 ,
< <  %8 T $$HSM $Gs G#  
3 
3r#   r   c                      \ rS rSr% Sr\\S'   S\4S jrS\4S jr	S\4S jr
S\4S jrSS
\\   S\4S jjrSS
\\   S\\   4S jjr SS
\\   S\\R&                     4S jjrS\\R.                  /S	4   SS	4S jrS\\   4S jrS\\   4S jrS\\R8                     4S jrS\\   4S jrS\\ RB                     4S jr"S\4S jr#S\4S jr$S\\   4S jr%Sr&g	)_SingleThreadedRendezvousi=  a*  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    U R                   R                  S L$ r   r   rD   s    r!   _is_complete&_SingleThreadedRendezvous._is_completeO      {{t++r#   c                     U R                   R                     U R                   R                  sS S S 5        $ ! , (       d  f       g = fr   r   r,   r3   rD   s    r!   r3   #_SingleThreadedRendezvous.cancelledR  (    [["";;(( #""	   7
Ac                     U R                   R                     U R                   R                  S L sS S S 5        $ ! , (       d  f       g = fr   r   rD   s    r!   r   !_SingleThreadedRendezvous.runningV  -    [["";;##t+ #""r  c                     U R                   R                     U R                   R                  S LsS S S 5        $ ! , (       d  f       g = fr   r   rD   s    r!   rx   _SingleThreadedRendezvous.doneZ  -    [["";;##4/ #""r  Nr   c                    AU R                   R                     U R                  5       (       d  [        R                  R                  S5      eU R                   R                  [        R                  R                  L a  U R                   R                  sSSS5        $ U R                   R                  (       a  [        R                  " 5       eU e! , (       d  f       g= f)a  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,   r1  rM   experimental
UsageErrorr1   rN   r   r/   r3   FutureCancelledErrorr   s     r!   r    _SingleThreadedRendezvous.result^  s     [[""$$&&''22(  {{4??#5#55{{++ #" &&//11
 #"s   A;C2C
Cc                    AU R                   R                     U R                  5       (       d  [        R                  R                  S5      eU R                   R                  [        R                  R                  L a
   SSS5        gU R                   R                  (       a  [        R                  " 5       eU sSSS5        $ ! , (       d  f       g= f)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,   r1  rM   r@  rA  r1   rN   r   r3   rB  r   s     r!   r   #_SingleThreadedRendezvous.exceptionu  s     [[""$$&&''22,  {{4??#5#55 #" &&//11 #""s   A'C1C
Cc                    AU R                   R                     U R                  5       (       d  [        R                  R                  S5      eU R                   R                  [        R                  R                  L a
   SSS5        gU R                   R                  (       a  [        R                  " 5       e U e! [        R                   a$    [        R                  " 5       S   s sSSS5        $ f = f! , (       d  f       g= f)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,   r1  rM   r@  rA  r1   rN   r   r3   rB  r   r   r   r   s     r!   r   #_SingleThreadedRendezvous.traceback  s     [[""$$&&''22,  {{4??#5#55 #" &&//11-J}} -<<>!,, #"- #"s0   A'C60C69B;;,C3'C62C33C66
Dr   c                 *   U R                   R                     U R                   R                  cC  U R                   R                  R	                  [
        R                  " X5      5         S S S 5        g  S S S 5        U" U 5        g ! , (       d  f       N= fr   r   r,   r1   r4   r
  r   r   r@   r   s     r!   r   +_SingleThreadedRendezvous.add_done_callback  g    [[""{{'%%,,Y->->r-HI #"' #
 	4 #"   AB
Bc                    U R                   R                     U R                   R                  c)  U R                  5         U R                   R                  c  M)  U R                   R                  sSSS5        $ ! , (       d  f       g= f)See grpc.Call.initial_metadataN)r   r,   r.   _consume_next_eventrD   s    r!   r.   *_SingleThreadedRendezvous.initial_metadata  sX    [["" ++..6((* ++..6;;// #""s   ?A7A77
Bc                     U R                   R                     U R                   R                  c  [        R                  R                  S5      eU R                   R                  sSSS5        $ ! , (       d  f       g= f)See grpc.Call.trailing_metadataNz4Cannot get trailing metadata until RPC is completed.)r   r,   r0   rM   r@  rA  rD   s    r!   r0   +_SingleThreadedRendezvous.trailing_metadata  sV    [[""{{,,4''22J  ;;00 #""   AA--
A;c                     U R                   R                     U R                   R                  c  [        R                  R                  S5      eU R                   R                  sSSS5        $ ! , (       d  f       g= f)See grpc.Call.codeNz'Cannot get code until RPC is completed.)r   r,   r1   rM   r@  rA  rD   s    r!   r1   _SingleThreadedRendezvous.code  sV    [[""{{'''22=  ;;## #""rU  c                 $   U R                   R                     U R                   R                  c  [        R                  R                  S5      e[        R                  " U R                   R                  5      sSSS5        $ ! , (       d  f       g= f)See grpc.Call.detailsNz*Cannot get details until RPC is completed.)r   r,   r%   rM   r@  rA  r   r   rD   s    r!   r%   !_SingleThreadedRendezvous.details  s_    [[""{{""*''22@  >>$++"5"56 #""   A B
Bc                     U R                   R                  5       nU R                  R                     [	        XR                  U R
                  5      nU H
  nU" 5         M     S S S 5        U$ ! , (       d  f       U$ = fr   )r   
next_eventr   r,   ro   r   )r@   rY   r4   ry   s       r!   rP  -_SingleThreadedRendezvous._consume_next_event  si    

%%'[[""%{{D$?$?I & 
 &	 #  #" s   1A,,
A;c                 (    U R                  5         U R                  R                     U R                  R                  b2  U R                  R                  nS U R                  l        UsS S S 5        $ [        R
                  R                  U R                  R                  ;  aT  U R                  R                  [        R                  R                  L a
  [        5       eU R                  R                  b  U eS S S 5        GM  ! , (       d  f       N= fr   )rP  r   r,   r/   r   rL   r`   r-   r1   rM   rN   r   r   )r@   r/   s     r!   _next_response(_SingleThreadedRendezvous._next_response  s    $$&&&;;''3#{{33H+/DKK(#	 '& ((88O{{''4??+=+==+o-))5"
 ' &&s   A D2BD
Dc                    U R                   R                     U R                   R                  c  U R                   R                  R	                  [
        R                  R                  5        U R                  R                  [
        R                  " [        5      4S 5      nU(       d=  U R                   R                  R                  [
        R                  R                  5        O=U R                   R                  [        R                  R                  L a
  [!        5       eU eS S S 5        U R#                  5       $ ! , (       d  f       U R#                  5       $ = fr   )r   r,   r1   r-   r   r   rL   r`   r   r   ReceiveMessageOperationr   r^   rM   rN   r   r   ra  )r@   r   s     r!   r  _SingleThreadedRendezvous._next  s    [[""{{' ##F$8$8$H$HI JJ..33LACT	 !KKOO**6+?+?+O+OP!!T__%7%77#o%
- #. ""$$/ #". ""$$s   DD;;
Ec                 $   U R                   R                     U R                   R                  c  [        R                  R                  S5      e[        R                  " U R                   R                  5      sS S S 5        $ ! , (       d  f       g = f)Nz5Cannot get debug error string until RPC is completed.)r   r,   r2   rM   r@  rA  r   r   rD   s    r!   r2   ,_SingleThreadedRendezvous.debug_error_string
  s_    [[""{{--5''22K  >>$++"@"@A #""r\  rT   r   )'rG   rH   rI   rJ   r   r*   rK   rP   r1  r3   r   rx   r   rR   r   r   rs   r   r   r   r   r   rM   r   r   r   r.   r0   rN   r1   rO   r%   r   	BaseEventrP  ra  r  r2   rS   rT   r#   r!   r/  r/  =  sF    ,d ,)4 ), ,0d 0huo  .% HY<O 0 *.--	%%%	&-8Hdkk]D-@$A d 0(<"8 018L#9 1$ht/ $7# 7
Xf.>.>%? 
# # %s %4BHSM Br#   r/  c                      \ rS rSr% Sr\\S'   S\\   4S jr	S\\   4S jr
S\\R                     4S jrS\\   4S jrS\\   4S	 jrS\4S
 jrS\4S jrS\4S jrS\4S jrSS\\   S\4S jjrSS\\   S\\   4S jjr SS\\   S\\R8                     4S jjrS\\R>                  /S4   SS4S jr S\4S jr!Sr"g)_MultiThreadedRendezvousi  a  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                   ^  T R                   R                     U 4S jn[        R                  " T R                   R                  R                  U5        T R                   R                  sSSS5        $ ! , (       d  f       g= f)rO  c                  4   > T R                   R                  S L$ r   r   rD   s   r!   r   8_MultiThreadedRendezvous.initial_metadata.<locals>._done&  s    {{334??r#   N)r   r,   r   r   r.   r@   r   s   ` r!   r.   )_MultiThreadedRendezvous.initial_metadata"  sO    [[""@ LL..33U;;;// #""   AA33
Bc                   ^  T R                   R                     U 4S jn[        R                  " T R                   R                  R                  U5        T R                   R                  sSSS5        $ ! , (       d  f       g= f)rS  c                  4   > T R                   R                  S L$ r   r   rD   s   r!   r   9_MultiThreadedRendezvous.trailing_metadata.<locals>._done0  s    {{44D@@r#   N)r   r,   r   r   r0   rn  s   ` r!   r0   *_MultiThreadedRendezvous.trailing_metadata,  sO    [[""A LL..33U;;;00 #""rp  c                   ^  T R                   R                     U 4S jn[        R                  " T R                   R                  R                  U5        T R                   R                  sSSS5        $ ! , (       d  f       g= f)rW  c                  4   > T R                   R                  S L$ r   r   rD   s   r!   r   ,_MultiThreadedRendezvous.code.<locals>._done:  s    {{''t33r#   N)r   r,   r   r   r1   rn  s   ` r!   r1   _MultiThreadedRendezvous.code6  sN    [[""4 LL..33U;;;## #""rp  c                 0  ^  T R                   R                     U 4S jn[        R                  " T R                   R                  R                  U5        [        R                  " T R                   R
                  5      sSSS5        $ ! , (       d  f       g= f)rZ  c                  4   > T R                   R                  S L$ r   )r   r%   rD   s   r!   r   /_MultiThreadedRendezvous.details.<locals>._doneD  s    {{**$66r#   N)r   r,   r   r   r   r%   rn  s   ` r!   r%    _MultiThreadedRendezvous.details@  sW    [[""7 LL..33U;>>$++"5"56 #""   A%B
Bc                 0  ^  T R                   R                     U 4S jn[        R                  " T R                   R                  R                  U5        [        R                  " T R                   R
                  5      sS S S 5        $ ! , (       d  f       g = f)Nc                  4   > T R                   R                  S L$ r   )r   r2   rD   s   r!   r   :_MultiThreadedRendezvous.debug_error_string.<locals>._doneM  s    {{55TAAr#   )r   r,   r   r   r   r2   rn  s   ` r!   r2   +_MultiThreadedRendezvous.debug_error_stringJ  sX    [[""B LL..33U;>>$++"@"@A #""r}  c                     U R                   R                     U R                   R                  sS S S 5        $ ! , (       d  f       g = fr   r5  rD   s    r!   r3   "_MultiThreadedRendezvous.cancelledS  r7  r8  c                     U R                   R                     U R                   R                  S L sS S S 5        $ ! , (       d  f       g = fr   r   rD   s    r!   r    _MultiThreadedRendezvous.runningW  r;  r  c                     U R                   R                     U R                   R                  S LsS S S 5        $ ! , (       d  f       g = fr   r   rD   s    r!   rx   _MultiThreadedRendezvous.done[  r>  r  c                 2    U R                   R                  S L$ r   r   rD   s    r!   r1  %_MultiThreadedRendezvous._is_complete_  r3  r#   Nr   c                 
   U R                   R                     [        R                  " U R                   R                  R                  U R                  US9nU(       a  [
        R                  " 5       eU R                   R                  [
        R                  R                  L a  U R                   R                  sSSS5        $ U R                   R                  (       a  [
        R                  " 5       eU e! , (       d  f       g= f)zrReturns the result of the computation or raises its exception.

See grpc.Future.result for the full API contract.
r    N)r   r,   r   r   r1  rM   FutureTimeoutErrorr1   rN   r   r/   r3   rB  r@   r   	timed_outs      r!   r   _MultiThreadedRendezvous.resultb  s    
 [[""%%**D,=,=wI --//;;##t'9'99;;// #" [[**3355J #"s   B!C42C44
Dc                    U R                   R                     [        R                  " U R                   R                  R                  U R                  US9nU(       a  [
        R                  " 5       eU R                   R                  [
        R                  R                  L a
   SSS5        gU R                   R                  (       a  [
        R                  " 5       eU sSSS5        $ ! , (       d  f       g= f)zfReturn the exception raised by the computation.

See grpc.Future.exception for the full API contract.
r    N)r   r,   r   r   r1  rM   r  r1   rN   r   r3   rB  r  s      r!   r   "_MultiThreadedRendezvous.exceptionu  s    
 [[""%%**D,=,=wI --//;;##t'9'99 #" [[**3355 #""s   BC(-1C((
C6c                 X   U R                   R                     [        R                  " U R                   R                  R                  U R                  US9nU(       a  [
        R                  " 5       eU R                   R                  [
        R                  R                  L a
   SSS5        gU R                   R                  (       a  [
        R                  " 5       e U e! [
        R                   a$    [        R                  " 5       S   s sSSS5        $ f = f! , (       d  f       g= f)zwAccess the traceback of the exception raised by the computation.

See grpc.future.traceback for the full API contract.
r    Nr   )r   r,   r   r   r1  rM   r  r1   rN   r   r3   rB  r   r   r   r  s      r!   r   "_MultiThreadedRendezvous.traceback  s     [[""%%**D,=,=wI --//;;##t'9'99 #" [[**33551"
== 1"||~a00 #"1 #"s0   BD-0DC  ,DDDD
D)r   c                 *   U R                   R                     U R                   R                  cC  U R                   R                  R	                  [
        R                  " X5      5         S S S 5        g  S S S 5        U" U 5        g ! , (       d  f       N= fr   rI  rJ  s     r!   r   *_MultiThreadedRendezvous.add_done_callback  rL  rM  c                   ^  T R                   R                     T R                   R                  c  [        T R                   T R                  5      nT R                   R
                  R                  [        R                  R                  5        T R                  R                  [        R                  " [        5      4U5      nU(       d=  T R                   R
                  R                  [        R                  R                  5        O=T R                   R                  [        R                   R"                  L a
  [%        5       eT eU 4S jn[&        R(                  " T R                   R                  R(                  U5        T R                   R*                  b2  T R                   R*                  nS T R                   l        UsS S S 5        $ [        R                  R                  T R                   R
                  ;  aT  T R                   R                  [        R                   R"                  L a
  [%        5       eT R                   R                  b  T eS S S 5        g ! , (       d  f       g = f)Nc                     > T R                   R                  S L=(       dP    [        R                  R                  T R                   R
                  ;  =(       a    T R                   R                  S L$ r   )r   r/   r   rL   r`   r-   r1   rD   s   r!   _response_ready7_MultiThreadedRendezvous._next.<locals>._response_ready  sR    {{++47 ((88O 5((4r#   )r   r,   r1   r}   r   r-   r   r   rL   r`   r   r   rd  r   r^   rM   rN   r   r   r   r   r/   )r@   r   r   r  r/   s   `    r!   r  _MultiThreadedRendezvous._next  s   [[""{{' .KK!<!<! ##F$8$8$H$HI JJ..33LAC!	 !KKOO**6+?+?+O+OP!!T__%7%77#o%
 LL..33_E{{##/;;//'+$7 #"8 %%55T[[__L;;##t'9'99'/)[[%%1JA #""s   F&IBI
I%rT   r   )#rG   rH   rI   rJ   r   r*   rK   r   r   r.   r0   rM   rN   r1   rO   r%   r2   rP   r3   r   rx   r1  rR   r   r   rs   r   r   r   r   r   r   r   r  rS   rT   r#   r!   rj  rj    s#    0(<"8 018L#9 1$ht/ $7# 7BHSM B)4 ), ,0d 0,d ,huo  & %  HY<O  ( *.11	%%%	&10Hdkk]D-@$A d !s !r#   rj  r   c                     [        U5      n[        R                  " X5      nUc7  [        SSS[        R
                  R                  S5      n[        U5      nUS U4$ X4S 4$ )NrT   r   )r"   r   r   r*   rM   rN   rc   r   )r   r   r   r   r   rU   ru   s          r!   _start_unary_requestr    sl    
 !H **7G!OO$$,
 "%(u$$T11r#   	with_callr   c                     U R                   [        R                  R                  L a.  U(       a  [	        XS U5      nU R
                  U4$ U R
                  $ [        U 5      er   )r1   rM   rN   r   rj  r/   r   )rU   r   r  r   
rendezvouss        r!   _end_unary_response_blockingr    sO     zzT__'''1%tXNJ>>:-->>!&&r#   metadatainitial_metadata_flagsc                     [         R                  " X5      [         R                  " [        5      [         R                  " [        5      4[         R
                  " [        5      44$ r   )r   SendInitialMetadataOperationrd  r   ReceiveStatusOnClientOperationReceiveInitialMetadataOperationr  r  s     r!   #_stream_unary_invocation_operationsr    sU    
 // **<811,?	
 
	/	/	=?	 	r#   c                 8    [        S [        X5       5       5      $ )Nc              3   *   #    U  H	  nUS 4v   M     g 7fr   rT   ).0r   s     r!   	<genexpr>?_stream_unary_invocation_operations_and_tags.<locals>.<genexpr>  s#      

J 	

   )tupler  r  s     r!   ,_stream_unary_invocation_operations_and_tagsr     s(      
 >
  r#   user_deadlinec                 p    [         R                  " 5       nUc  U c  g Ub  U c  U$ U b  Uc  U $ [        X5      $ r   )r   get_deadline_from_contextmin)r  parent_deadlines     r!   _determine_deadliner    sK    668O=#8		$)>		"'>?22r#   c                      \ rS rSr% \R
                  \S'   \\S'   \\S'   \\S'   \	\
   \S'   \	\   \S'   \\S'   \	\   \S	'   / S
QrS\R
                  S\S\S\S\	\
   S\	\   S	\	\   4S jrS\S\	\   S\	\   S\	\   S\	\R(                     S\\	\   \	\\R0                        \	\   \	\R2                     4   4S jr     S S\S\	\   S\	\   S\	\R6                     S\	\   S\	\R(                     S\\\R8                  4   4S jjr     S S\S\	\   S\	\   S\	\R6                     S\	\   S\	\R(                     S\4S jjr     S S\S\	\   S\	\   S\	\R6                     S\	\   S\	\R(                     S\\\R>                  4   4S jjr      S S\S\	\   S\	\   S\	\R6                     S\	\   S\	\R(                     S\!4S jjr"Sr#g)!_UnaryUnaryMultiCallablei  _channel_managed_call_method_target_request_serializerr   _context_registered_call_handler  r  r  r  r  r   r  channelmanaged_callr8   r9   r   rZ   c                     Xl         X l        X0l        X@l        XPl        X`l        [        R                  " 5       U l        Xpl	        g r   
r  r  r  r  r  r   r   build_census_contextr  r  r@   r  r  r8   r9   r   rZ   r  s           r!   rA   !_UnaryUnaryMultiCallable.__init__/  ;      )#5 &;#335'>$r#   r   r   r  wait_for_readycompressionr   c                    [        XU R                  5      u  pgn[        5       R                  U5      n	[        R
                  " X55      n
Uc  S S S U4$ [        [        S S S S 5      n[        R                  " X5      [        R                  " U[        5      [        R                  " [        5      [        R                  " [        5      [        R                  " [        5      [        R                  " [        5      4nXUS 4$ r   )r  r  _InitialMetadataFlagswith_wait_for_readyr   augment_metadatar*   _UNARY_UNARY_INITIAL_DUEr   r  r   r   r   r  rd  r  )r@   r   r   r  r  r  r   r   r  r  augmented_metadatarU   r   s                r!   _prepare!_UnaryUnaryMultiCallable._prepareB  s     4Hd664
0j "7!8!L!L"
 *::
 %tZ//6dD$OE33& ++,>M33LA66|D..|<55lC	J h44r#   Ncredentialsc                 :   U R                  XX5U5      u  pxpUc  U
e[        R                  " 5       Ul        [        R
                  " U R                  5      Ul        [        R
                  " U R                  5      Ul	        U R                  R                  [        R                  R                  U R                  S [        U	5      UUc  S OUR                   US 44U R"                  U R$                  5	      nUR'                  5       n[)        XU R*                  5        X{4$ r   )r  r   ri   r6   r   r   r  r8   r  r9   r  segregated_callr   PropagationConstantsGRPC_PROPAGATE_DEFAULTSr  _credentialsr  r  r^  ro   r   )r@   r   r   r  r  r  r  rU   r   r   r  r   rY   s                r!   	_blocking"_UnaryUnaryMultiCallable._blockingh  s     37--h3
/8 =#'#4#4#6E ">>$,,7EL">>$,,7EL==00++CC#H-#+1I1I # ,,D  OO%E%(C(CD;r#   c                 H    U R                  XX4XV5      u  nn[        XxSS 5      $ r;   r  r  	r@   r   r   r  r  r  r  rU   r   s	            r!   __call__!_UnaryUnaryMultiCallable.__call__  s3     NNh^
	
 ,EEEr#   c                 H    U R                  XX4XV5      u  nn[        XxSS 5      $ NTr  r  s	            r!   r  "_UnaryUnaryMultiCallable.with_call  s3     NNh^
	
 ,EtDDr#   c                    U R                  XX5U5      u  pxpUc  U
e[        XpR                  5      n[        R                  " 5       Ul        [        R                  " U R                  5      Ul	        [        R                  " U R                  5      Ul        U R                  [        R                  R                  U R                  S U	UUc  S OUR                   U4UU R"                  U R$                  5
      n['        X|U R                  U	5      $ r   )r  r}   r   r   ri   r6   r   r   r  r8   r  r9   r  r   r  r  r  r  r  rj  )r@   r   r   r  r  r  r  rU   r   r   r  r   r   s                r!   future_UnaryUnaryMultiCallable.future  s     37--h3
/8 =*52M2MNM#'#4#4#6E ">>$,,7EL">>$,,7EL%%++CC#+1I1I,,D ,T88( r#   r  r  r  r  r  r  r   r  NNNNN)$rG   rH   rI   rJ   r   ChannelrK   r   bytesr   r   r   r   rQ   	__slots__rA   rR   r   rP   rM   Compressionr   r*   r	   	Operationr   r  CallCredentialsr*  r  r  Callr  rj  r  rS   rT   r#   r!   r  r    s^   nn((NN!"566$%:;;M%c]*I?? ,? 	?
 ? %%89?  ((=>? "*#?&$5$5 %$5 <(	$5
 !$5 d../$5 
&**+,	!
$5R $(+/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 
sDII~	E( $(+/6:)-26!! %! <(	!
 d223! !! d../! 
"! !r#   r  c                   @   \ rS rSr% \R
                  \S'   \\S'   \\S'   \\	   \S'   \\
   \S'   \\S'   \\   \S'   / S	QrS
\R
                  S\S\S\	S\
S\\   4S jr     SS\S\\   S\\   S\\R$                     S\\   S\\R(                     S\4S jjrSrg)'_SingleThreadedUnaryStreamMultiCallablei  r  r  r  r  r   r  r  )r  r  r  r  r   r  r  r8   r9   r   rZ   c                     Xl         X l        X0l        X@l        XPl        [
        R                  " 5       U l        X`l        g r   )	r  r  r  r  r   r   r  r  r  )r@   r  r8   r9   r   rZ   r  s          r!   rA   0_SingleThreadedUnaryStreamMultiCallable.__init__  s5      #5 &;#335'>$r#   Nr   r   r  r  r  r  r   c                 D   [        U5      n[        R                  " XR                  5      nUc2  [	        SSS[
        R                  R                  S5      n	[        U	5      e[	        [        S S S S 5      n	Uc  S OUR                  n
[        5       R                  U5      n[        R                  " X65      n[        R                   " X5      [        R"                  " U[$        5      [        R&                  " [$        5      4[        R(                  " [$        5      4[        R*                  " [$        5      44n[-        S U 5       5      n[.        R0                  " 5       U	l        [        R4                  " U R6                  5      U	l        [        R4                  " U R:                  5      U	l        U R>                  RA                  [        RB                  RD                  U R6                  S [G        U5      UU
UU RH                  U RJ                  5	      n[M        XU RN                  U5      $ )NrT   r   c              3   (   #    U  H  oS 4v   M
     g 7fr   rT   )r  opss     r!   r  C_SingleThreadedUnaryStreamMultiCallable.__call__.<locals>.<genexpr>$  s     #F:C$K:s   )(r"   r   r   r  r*   rM   rN   rc   r   _UNARY_STREAM_INITIAL_DUEr  r  r  r   r  r   r  r   r   r   r  r  r  r   ri   r6   r   r  r8   r  r9   r  r  r  r  r  r  r  r/  r   )r@   r   r   r  r  r  r  r   r   rU   call_credentialsr  r  r   operations_and_tagsr   s                   r!   r  0_SingleThreadedUnaryStreamMultiCallable.__call__  s    W%$..--
 %((0E $E**3T4tL'D[-E-E 	 "7!8!L!L"
 *::

 33& ++,>M33LA 22<@B33LAC


 $#F:#FF#002~~dll3~~dll3}},,''??LL)MM((

 )44h
 	
r#   )r  r  r  r  r  r   r  r  )rG   rH   rI   rJ   r   r  rK   r  r   r   r   r   rQ   r  rA   rR   r   rM   r  rP   r  r/  r  rS   rT   r#   r!   r  r    s   nnNN!"566$%:;;M%c]*I?? ? 	?
 0?  5? "*#?( $(+/6:)-26=
=
 %=
 <(	=

 d223=
 !=
 d../=
 
#=
 =
r#   r  c                   N   \ rS rSr% \R
                  \S'   \\S'   \\S'   \\S'   \	\
   \S'   \	\   \S'   \\S'   \	\   \S	'   / S
QrS\R
                  S\S\S\S\
S\S	\	\   4S jr     SS\S\	\   S\	\   S\	\R&                     S\	\   S\	\R*                     S\4S jjrSrg)_UnaryStreamMultiCallablei8  r  r  r  r  r  r   r  r  r  r  r  r8   r9   r   rZ   c                     Xl         X l        X0l        X@l        XPl        X`l        [        R                  " 5       U l        Xpl	        g r   r  r  s           r!   rA   "_UnaryStreamMultiCallable.__init__M  r  r#   Nr   r   r  r  r  r  r   c                    [        XU R                  5      u  pxn	[        5       R                  U5      n
Uc  U	e[        R
                  " X65      n[        [        S S S S 5      n[        R                  " X5      [        R                  " U[        5      [        R                  " [        5      [        R                  " [        5      4[        R                  " [        5      44n[        R                   " 5       Ul        [$        R&                  " U R(                  5      Ul        [$        R&                  " U R,                  5      Ul        U R1                  [        R2                  R4                  U R(                  S [7        U5      UUc  S OUR8                  U[;        XR<                  5      U R>                  U R@                  5
      n[C        XU R<                  U5      $ r   )"r  r  r  r  r   r  r*   r  r   r  r   r   r   r  r  r   ri   r6   r   r   r  r8   r  r9   r  r  r  r  r  r}   r   r  r  rj  )r@   r   r   r  r  r  r  r   r   r  r  r  rU   r   r   s                  r!   r  "_UnaryStreamMultiCallable.__call__`  s    4Hd664
0j "7!8!L!L"
 %!-!>!>" 7tT4PE 77* //*L 77E99,G	 77EGJ $(#4#4#6E ">>$,,7EL">>$,,7EL%%++CC#H-#+1I1Iu&A&AB,,D ,T88( r#   r  r  )rG   rH   rI   rJ   r   r  rK   r   r  r   r   r   r   rQ   r  rA   rR   r   rM   r  rP   r  rj  r  rS   rT   r#   r!   r  r  8  s   nn((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 4r#   r  c                      \ rS rSr% \R
                  \S'   \\S'   \\S'   \\S'   \	\
   \S'   \	\   \S'   \\S'   \	\   \S	'   / S
QrS\R
                  S\S\S\S\	\
   S\	\   S	\	\   4S jrS\S\	\   S\	\   S\	\R(                     S\	\   S\	\R,                     S\\\R2                  4   4S jr     SS\S\	\   S\	\   S\	\R(                     S\	\   S\	\R,                     S\4S jjr     SS\S\	\   S\	\   S\	\R(                     S\	\   S\	\R,                     S\\\R8                  4   4S jjr     SS\S\	\   S\	\   S\	\R(                     S\	\   S\	\R,                     S\4S jjrSr g) _StreamUnaryMultiCallablei  r  r  r  r  r  r   r  r  r  r  r  r8   r9   r   rZ   c                     Xl         X l        X0l        X@l        XPl        X`l        [        R                  " 5       U l        Xpl	        g r   r  r  s           r!   rA   "_StreamUnaryMultiCallable.__init__  r  r#   r~   r   r  r  r  r  r   c                    [        U5      n[        [        S S S S 5      n[        5       R	                  U5      n	[
        R                  " X65      n
[        R                  " 5       Ul	        [        R                  " U R                  5      Ul        [        R                  " U R                  5      Ul        U R                   R#                  [$        R&                  R(                  U R                  S [+        U5      U
Uc  S OUR,                  [/        X5      U R0                  U R2                  5	      n[5        XXR6                  S 5         UR9                  5       nUR:                     [=        XU R>                  5        UR:                  RA                  5         URB                  (       d   S S S 5        X4$  S S S 5        Mu  ! , (       d  f       N= fr   )"r"   r*   _STREAM_UNARY_INITIAL_DUEr  r  r   r  r   ri   r6   r   r   r  r8   r  r9   r  r  r   r  r  r  r  r  r  r  r   r  r^  r,   ro   r   rr   r-   )r@   r~   r   r  r  r  r  r   rU   r  r  r   rY   s                r!   r  #_StreamUnaryMultiCallable._blocking  sk    W%3T4tL!6!8!L!L"
 *::
  $002~~dll3~~dll3}},,''??LL)'D[-E-E8" MM((
 	"T+C+CT	
 OO%EeD,G,GH**,yy	 !
 { ! !  s    AF99
GNc                 N    U R                  UUUUUU5      u  nn[        XxSS 5      $ r;   r  	r@   r~   r   r  r  r  r  rU   r   s	            r!   r  "_StreamUnaryMultiCallable.__call__  s>     NN
	
 ,EEEr#   c                 N    U R                  UUUUUU5      u  nn[        XxSS 5      $ r  r  r  s	            r!   r  #_StreamUnaryMultiCallable.with_call  s>     NN
	
 ,EtDDr#   c                    [        U5      n[        [        S S S S 5      n[        XR                  5      n	[        5       R                  U5      n
[        R                  " X65      n[        R                  " 5       Ul        [        R                  " U R                  5      Ul        [        R                  " U R                   5      Ul        U R%                  [&        R(                  R*                  U R                  S UUUc  S OUR,                  [/        X:5      U	U R0                  U R2                  5
      n[5        UUUU R6                  U	5        [9        XU R                  U5      $ r   )r"   r*   r  r}   r   r  r  r   r  r   ri   r6   r   r   r  r8   r  r9   r  r   r  r  r  r  r  r  r   r  rj  )r@   r~   r   r  r  r  r  r   rU   r   r  r  r   s                r!   r   _StreamUnaryMultiCallable.future  s3    W%3T4tL&u.I.IJ!6!8!L!L"
 *::
  $002~~dll3~~dll3!!''??LL'D[-E-E/ MM((
 	"$$	
 (44h
 	
r#   r  r  )!rG   rH   rI   rJ   r   r  rK   r   r  r   r   r   r   rQ   r  rA   r   rR   r   rM   r  rP   r  r   r*   r*  r  r  r  r  rj  r  rS   rT   r#   r!   r  r    s   nn((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 
sDII~	E2 $(+/6:)-26,
",
 %,
 <(	,

 d223,
 !,
 d../,
 
",
 ,
r#   r  c                   Z   \ rS rSr% \R
                  \S'   \\S'   \\S'   \\S'   \	\
   \S'   \	\   \S'   \\S'   \	\   \S	'   / S
QrS\R
                  S\S\S\S\	\
   S\	\   S	\	\   4S jr     SS\S\	\   S\	\   S\	\R(                     S\	\   S\	\R,                     S\4S jjrSrg)_StreamStreamMultiCallableiG  r  r  r  r  r  r   r  r  r  r  r  r8   r9   r   rZ   c                     Xl         X l        X0l        X@l        XPl        X`l        [        R                  " 5       U l        Xpl	        g r   r  r  s           r!   rA   #_StreamStreamMultiCallable.__init__\  r  r#   Nr~   r   r  r  r  r  r   c                 T   [        U5      n[        [        S S S S 5      n[        5       R	                  U5      n	[
        R                  " X65      n
[        R                  " X5      [        R                  " [        5      4[        R                  " [        5      44n[        XR                  5      n[        R                  " 5       Ul        ["        R$                  " U R&                  5      Ul        ["        R$                  " U R*                  5      Ul        U R/                  [        R0                  R2                  U R&                  S [5        U5      U
Uc  S OUR6                  UUU R8                  U R:                  5
      n[=        UUUU R>                  U5        [A        XU R                  U5      $ r   )!r"   r*   _STREAM_STREAM_INITIAL_DUEr  r  r   r  r   r  r  r   r  r}   r   r   ri   r6   r   r   r  r8   r  r9   r  r  r  r  r  r  r  r   r  rj  )r@   r~   r   r  r  r  r  r   rU   r  r  r   r   r   s                 r!   r  #_StreamStreamMultiCallable.__call__o  sp    W%4dD$M!6!8!L!L"
 *::

 33& 55lC	 33LAC

 'u.I.IJ#002~~dll3~~dll3!!''??LL)'D[-E-EMM((
 	"$$	
 (44h
 	
r#   r  r  )rG   rH   rI   rJ   r   r  rK   r   r  r   r   r   r   rQ   r  rA   r   rR   r   rM   r  rP   r  rj  r  rS   rT   r#   r!   r  r  G  s)   nn((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
 3
r#   r  c                   R   ^  \ rS rSrSr\4S\4U 4S jjjrS\\	   S\4S jr
SrU =r$ )	r  i  z'Stores immutable initial metadata flagsvaluec                 d   > U[         R                  R                  -  n[        [        U ]  X5      $ r   )r   InitialMetadataFlags	used_maskr   r  __new__)clsr  r   s     r!   r  _InitialMetadataFlags.__new__  s,    ,,666*C8DDr#   r  r   c                 F   Ub  U(       aG  U R                  U [        R                  R                  -  [        R                  R                  -  5      $ U(       dH  U R                  U [        R                  R                  ) -  [        R                  R                  -  5      $ U $ r   )r   r   r  r  wait_for_ready_explicitly_set)r@   r  s     r!   r  )_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#   rT   )rG   rH   rI   rJ   r   r   rQ   r  r   rP   r  rS   r,  r-  s   @r!   r  r    s9    1". EC E E(4. S  r#   r  c                   z    \ rS rSr% \R
                  \S'   \\S'   \\S'   S\R
                  4S jr	S
S jr
S rS	rg)_ChannelCallStatei  r  managed_callsr<   c                 `    [         R                  " 5       U l        Xl        SU l        SU l         g )Nr   F)r<   Locklockr  r"  r@   r  s     r!   rA   _ChannelCallState.__init__  s$    NN$	r#   Nc                     SU l         g )Nr   )r"  rD   s    r!   rE   &_ChannelCallState.reset_postfork_child  s
    r#   c                      U R                   R                  [        R                  R                  S5        g ! [
        [        4 a     g f = f)NzChannel deallocated!)r  closer   rN   r3   	TypeErrorAttributeErrorrD   s    r!   r'  _ChannelCallState.__del__  sD    	LL!!++-C >* 		s   47 A
	A
)r  r%  r"  r<   r)  )rG   rH   rI   rJ   r   r  rK   rQ   rP   rA   rE   r'  rS   rT   r#   r!   r!  r!    s1    ^^O r#   r!  c                 |   ^  U 4S jn[         R                  " US9nUR                  S5        UR                  5         g )Nc                    >  [         R                  " T5        TR                  R                  5       n U R                  [         R
                  R                  :X  a  M[  U R                  U 5      nU(       aE  TR                     T=R                  S-  sl	        TR                  S:X  a
   S S S 5        g  S S S 5        M  ! , (       d  f       N= f)N   r   )
r   r   r  next_call_eventcompletion_typeCompletionTypequeue_timeouttagr%  r"  )rY   call_completedrU   s     r!   channel_spin._run_channel_spin_thread.<locals>.channel_spin  s    ,,U3MM113E$$(=(=(K(KK"YYu-NZZ''1,'**a/  Z/     Zs   'B<<
C
r   Tr   )rU   r8  channel_spin_threads   `  r!   _run_channel_spin_threadr;    s5     !22,G!!$'r#   c                 :  ^  S[         S[        S[        [           S[        [           S[        [
           S[        [        R                     S[        [        [        R                        S[        S	[        S
[        [            S[        R                  4U 4S jjnU$ )Nflagsr8   hostr   r  r  r   r   contextr  r   c
                 8  >^ [        U4S jU 5       5      n
TR                     TR                  R                  U UUUUUU
UU	5	      nTR                  S:X  a  STl        [        T5        OT=R                  S-  sl        UsSSS5        $ ! , (       d  f       g= f)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   ,   >#    U  H	  nUT4v   M     g 7fr   rT   )r  	operationr   s     r!   r  C_channel_managed_call_management.<locals>.create.<locals>.<genexpr>  s$      $

 (	  (s   r   r1  N)r  r%  r  integrated_callr"  r;  )r=  r8   r>  r   r  r  r   r   r?  r  r  r   rU   s          `    r!   create0_channel_managed_call_management.<locals>.create  s    @ $ $

 ($
 
 ZZ==00#'
D ""a'&'#(/##q(## ZZs   AB
B)rQ   r  r   rO   rR   r   r   r  r	   r  r   r   r+  )rU   rE  s   ` r!    _channel_managed_call_managementrG    s    888 sm8 5/	8
 <(8 f4458 Xf&6&6788 8 8 "*#8 
		8t Mr#   c                      \ rS rSr% \R
                  \S'   \R                  \S'   \	\S'   \R                  \S'   \	\S'   \\\\\R                  /S4   \\R                     4         \S'   \	\S	'   S\R                  4S
 jrSS jrSrg)_ChannelConnectivityStatei%  r%  r  pollingconnectivitytry_to_connectNcallbacks_and_connectivities
deliveringc                     [         R                  " 5       U l        Xl        SU l        S U l        SU l        / U l        SU l        g r;   )	r<   RLockr%  r  rJ  rK  rL  rM  rN  r&  s     r!   rA   "_ChannelConnectivityState.__init__6  s;    OO%	 #,.)r#   c                 J    SU l         S U l        SU l        / U l        SU l        g r;   )rJ  rK  rL  rM  rN  rD   s    r!   rE   ._ChannelConnectivityState.reset_postfork_child?  s(     #,.)r#   )rM  r  rK  rN  r%  rJ  rL  r)  )rG   rH   rI   rJ   r<   rP  rK   rM   r  rP   ChannelConnectivityr   r	   r   r   r   rA   rE   rS   rT   r#   r!   rI  rI  %  s    
//\\M***"&$223T9:1124	
#      r#   rI  c                     / nU R                    H8  nUu  nnX@R                  Ld  M  UR                  U5        U R                  US'   M:     U$ )Nr1  )rM  rK  r
  )rU   callbacks_needing_updatecallback_and_connectivityry   callback_connectivitys        r!   _deliveriesrY  G  s_      "%*%G%G! &	
! (:(::$++H5+0+=+=%a( &H $#r#   initial_connectivityinitial_callbacksc                 b   UnUn U H"  n[         R                  " U 5         U" U5        M$     U R                     [        U 5      nU(       a  U R                  nOSU l	         S S S 5        g  S S S 5        Mp  ! [         a    [        R	                  [
        5         M  f = f! , (       d  f       N:= fr;   )
r   r   rs   r   r   0_CHANNEL_SUBSCRIPTION_CALLBACK_ERROR_LOG_MESSAGEr%  rY  rK  rN  )rU   rZ  r[  rK  r4   ry   s         r!   _deliverr^  V  s    
 (L!I
!H,,U3& " ZZ#E*I$11#(  Z   
  !!D Zs   A6(B 6#BB 
B.r4   c                     [         R                  " [        U U R                  U4S9nUR	                  S5        UR                  5         SU l        g N)r9   argsT)r   r   r^  rK  r   r   rN  )rU   r4   delivering_threads      r!   _spawn_deliveryrc  o  sP     00
 %Er#   r  initial_try_to_connectc                    UnUR                  U5      nU R                     [        R                  U   U l        [        S U R                   5       5      nU R                   H  nU R                  US'   M     U(       a  [        X5        S S S 5         UR                  U[        R                  " 5       S-   5      n[        R                  " U 5        U R                     U R                  (       d)  U R                  (       d  SU l        S U l         S S S 5        g U R                  nSU l        S S S 5        UR                  (       d  U(       al  UR                  U5      nU R                     [        R                  U   U l        U R                  (       d  [!        U 5      nU(       a  [        X5        S S S 5        GM'  ! , (       d  f       GN7= f! , (       d  f       N= f! , (       d  f       N4= f)Nc              3   *   #    U  H	  u  pUv   M     g 7fr   rT   )r  ry   _s      r!   r  %_poll_connectivity.<locals>.<genexpr>  s      
(JH(Jr  r1  g?F)check_connectivity_stater%  r   1CYGRPC_CONNECTIVITY_STATE_TO_CHANNEL_CONNECTIVITYrK  r  rM  rc  watch_connectivity_stater   r   r   rL  rJ  successrN  rY  )rU   r  rd  rL  rK  r4   rW  rY   s           r!   _poll_connectivityrm    s   
 ,N33NCL	EE 	
  
(-(J(J
 
	 */)K)K%+0+=+=%a( *LE- 
 00$))++
 	((/ZZ66,, %%)" Z #11N#(E   ==N";;NKLMM$ "
 '' +E 2I '9 #  
$ Z s+   A)F92GG'AG9
G
G
G*ry   rL  c           	         U R                      U R                  (       d  U R                  (       dt  [        R                  " [
        X R                  [        U5      4S9nUR                  S5        UR                  5         SU l        U R                  R                  US /5        OU R                  (       d^  U R                  bQ  [        X45        U =R                  [        U5      -  sl        U R                  R                  XR                  /5        O;U =R                  [        U5      -  sl        U R                  R                  US /5        S S S 5        g ! , (       d  f       g = fr`  )r%  rM  rJ  r   r   rm  r  rP   r   r   r
  rN  rK  rc  rL  )rU   ry   rL  polling_threads       r!   
_subscriberp    s	   
 
11%--#55)]]D,@AN $$T*  " EM..55x6FG!!e&8&8&DE;/  D$88 ..55--.   D$88 ..55x6FG% 
s   EE
E%c                     U R                      [        U R                  5       H*  u  nu  p4X:X  d  M  U R                  R                  U5          O   S S S 5        g ! , (       d  f       g = fr   )r%  	enumeraterM  pop)rU   ry   indexsubscribed_callbackunused_connectivitys        r!   _unsubscriberw    sW     
AJ..B
=E=' .2266u=B
 
s   !AA
A(base_optionsr  c                     [         R                  " U5      n[        U 5      U-   [        R                  R
                  [        44-   $ r   )r   create_channel_optionr  r   ChannelArgKeyprimary_user_agent_string_USER_AGENT)rx  r  compression_options      r!   _augment_optionsr    sM     &;;KHl
	 $$>>
	
	r#   optionsc                     / n/ nU  HR  nUS   [         R                  R                  R                  :X  a  UR	                  U5        MA  UR	                  U5        MT     X!4$ )z;Separates core channel options from Python channel options.r   )rM   r@  ChannelOptionsSingleThreadedUnaryStreamr
  )r  core_optionspython_optionspairs       r!   _separate_channel_optionsr    sc     LNG  //IIJ !!$'%  ''r#   c                      \ rS rSr% Sr\\S'   \R                  \S'   \	\S'   \
\S'   \\S'   \\\4   \S'   S	\S
\\   S\\R$                     S\\R&                     4S jrS\S\4S jrS\\   SS4S jr S'S\\R0                  /S4   S\\   SS4S jjrS\\R0                  /S4   SS4S jr   S(S\S\\   S\\   S\\   S\R:                  4
S jjr   S(S\S\\   S\\   S\\   S\R>                  4
S jjr    S(S\S\\   S\\   S\\   S\RB                  4
S jjr"   S(S\S\\   S\\   S\\   S\RF                  4
S jjr$S)S jr%S)S  jr&S)S! jr'S" r(S# r)S)S$ jr*S% r+S&r,g)*r  i  z7A cygrpc.Channel-backed implementation of grpc.Channel._single_threaded_unary_streamr  _call_state_connectivity_stater  _registered_call_handlesr9   r  r  r  c                    [        U5      u  pV[        U l        U R                  U5        [        R
                  " [        R                  " U5      [        Xd5      U5      U l	        Xl
        [        U R                  5      U l        [        U R                  5      U l        [        R                  " U 5        [        R                   (       a  [        R"                  " 5         gg)a  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  r  r  r!  r  rI  r  fork_register_channelg_gevent_activatedgevent_increment_channel_count)r@   r9   r  r  r  r  r  s          r!   rA   Channel.__init__  s      (A'I$1 	* 	$$^4NN6"\7

 ,T]];#<T]]#K $$T*$$113 %r#   r8   r   c                 `    U R                   R                  [        R                  " U5      5      $ )a(  
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.
)r  get_registered_call_handler   r  )r@   r8   s     r!   _get_registered_call_handle#Channel._get_registered_call_handle&  s"     }}77v8NOOr#   r  Nc                 ~    U H7  nUS   [         R                  R                  R                  :X  d  M0  SU l        M9     g)zASets channel attributes according to python-only channel options.r   TN)rM   r@  r  r  r  )r@   r  r  s      r!   r  Channel._process_python_options6  s:     #DQ$$33MMN 6:2 #r#   ry   rL  c                 0    [        U R                  X5        g r   )rp  r  )r@   ry   rL  s      r!   	subscribeChannel.subscribeA  s    
 	4++XFr#   c                 0    [        U R                  U5        g r   )rw  r  r  s     r!   unsubscribeChannel.unsubscribeH  s     	T--x8r#   r   rZ   _registered_methodc           	          S nU(       a  U R                  U5      n[        U R                  [        U R                  5      [
        R                  " U5      [
        R                  " U R                  5      UUU5      $ r   )r  r  r  rG  r  r   r  r  r@   r8   r   rZ   r  r  s         r!   unary_unaryChannel.unary_unaryN  se     #'&*&F&Fv&N#'MM,T-=-=>NN6"NN4<<(!#
 	
r#   c           	         S nU(       a  U R                  U5      nU R                  (       aL  [        U R                  [        R
                  " U5      [        R
                  " U R                  5      UUU5      $ [        U R                  [        U R                  5      [        R
                  " U5      [        R
                  " U R                  5      UUU5      $ r   )
r  r  r  r  r   r  r  r  rG  r  r  s         r!   unary_streamChannel.unary_streamc  s     #'&*&F&Fv&N#
 --:v&t||,"%'  -01A1ABv&t||,"%' r#   c           	          S nU(       a  U R                  U5      n[        U R                  [        U R                  5      [
        R                  " U5      [
        R                  " U R                  5      UUU5      $ r   )r  r  r  rG  r  r   r  r  r  s         r!   stream_unaryChannel.stream_unary  se     #'&*&F&Fv&N#(MM,T-=-=>NN6"NN4<<(!#
 	
r#   c           	          S nU(       a  U R                  U5      n[        U R                  [        U R                  5      [
        R                  " U5      [
        R                  " U R                  5      UUU5      $ r   )r  r  r  rG  r  r   r  r  r  s         r!   stream_streamChannel.stream_stream  se     #'&*&F&Fv&N#)MM,T-=-=>NN6"NN4<<(!#
 	
r#   c                     U R                   nU(       a%  UR                     UR                  S S 2	 S S S 5        g g ! , (       d  f       g = fr   )r  r%  rM  r   s     r!   _unsubscribe_allChannel._unsubscribe_all  s7    ((66q9  s	   :
Ac                    U R                  5         U R                  R                  [        R                  R
                  S5        [        R                  " U 5        [        R                  (       a  [        R                  " 5         g g )NzChannel closed!)	r  r  r+  r   rN   r3   fork_unregister_channelr  gevent_decrement_channel_countrD   s    r!   _closeChannel._close  sW    F--779JK&&t,$$113 %r#   c                     U R                  5         U R                  R                  [        R                  R
                  S5        g )NzChannel closed due to fork)r  r  close_on_forkr   rN   r3   rD   s    r!   _close_on_forkChannel._close_on_fork  s2    ##'')E	
r#   c                     U $ r   rT   rD   s    r!   	__enter__Channel.__enter__  r  r#   c                 $    U R                  5         gr;   r  )r@   exc_typeexc_valexc_tbs       r!   __exit__Channel.__exit__  s    r#   c                 $    U R                  5         g r   r  rD   s    r!   r+  Channel.close  s    r#   c                 4     U R                  5         g !    g = fr   )r  rD   s    r!   r'  Channel.__del__  s    	!!#	 s    )r  r  r  r  r  r   )NNFr)  )-rG   rH   rI   rJ   r   rP   rK   r   r  r!  rI  rO   r   rQ   r	   r   r   rM   ChannelCredentialsr  rA   r  r  r   rT  r  r  r   r   UnaryUnaryMultiCallabler  UnaryStreamMultiCallabler  StreamUnaryMultiCallabler  StreamStreamMultiCallabler  r  r  r  r  r  r+  r'  rS   rT   r#   r!   r  r    s   A#''nn""22L"38n,44 -.4 d556	4
 d../4BP# P# P 	:&':;	:		: *.GD445t;<G !G 
	G9 $":":!;T!AB9	9 =AAE-2

 %%89
  ((=>	

 %TN
 
	%	%
0 =AAE-2   %%89   ((=>	 
 %TN  
	&	& L =AAE-2

 %%89
  ((=>	

 %TN
 
	&	&
0 =AAE-2

 %%89
  ((=>	

 %TN
 
	'	'
(:4
r#   r  )ur   r   r   rt   osr   r<   r   r   typingr   r   r   r   r   r   r	   r
   r   r   rM   r   r   r   r   grpc._cythonr   grpc._typingr   r   r   r   r   r   r   r   grpc.experimental	getLoggerrG   r   r'   __version__r}  r   getenvr  rL   send_initial_metadatar   r   r_   r`   rd   r  r  r  r  r]  r   r   rR   r"   rN   rO   r(   objectr*   rX   rh  ro   r}   r+  r*  r   r   r   r  r   r   
RpcContextr   r/  rj  r  r  rP   r  rQ   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r;  rG  rI  rT  rY  r^  rc  r  rm  rp  rw  r  r  r  rT   r#   r!   <module>r     s^   5    	 
         !   , . . % , % ,   


H
%%%&6&B&BC
 II12$> &
 ..
%%
//
11
((
11  ..
%%
//
11
11  ..
11
((
11	  ..
11
11  7 1
 K 
 >x >8E? >!$//2=Ec]:/ :/z%) %4?? %S %T %))) $$9:) 

	)X-56K-L0\\\ %%v'<'<<
=\ ,	\
 G$\ 
\~# )  $[tyy$++ [|h3$-- h3VSBDKKSBlvDKKvr22e_2 ,2 8E?HUOXdmm-DDE	2*''


' ' uo	'
 <|TYY6778' |$>Ahv''()|$>AeHV--.0AABC	3x 	38E? 	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)CT)I JK 
	2$$":":!;T!ABC 
$.:$.:\\.: !.: 
	.:bH$H001478H H 
	H4
$
001478
 

./$**+ !""()*(
8'((3F*GGH("`dll `r#   