ó
    ‚¤jr¶  ã                  óä  • S SK J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  S SKJr  S SKJrJrJrJr  S SKrS SKrS SKJr  S SKJrJr  S SKJrJr  S S	KJr  S S
K J!r!  S SK"J#r#  S SK$J%r%J&r&J'r'J(r(J)r)  S SK*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3  S SK4J5r5J6r6J7r7J8r8J9r9J:r:  SSK;J<r<  \(       a  S SK=J<r<  S SK>J?r?   " S S5      r@ " S S5      rA " S S5      rB " S S5      r
 S     SS jjrCg)é    )ÚannotationsN)ÚQueue)Údefaultdict)ÚTYPE_CHECKINGÚAnyÚLiteralÚcast)Úrun_sync)Úroute_utilsÚroutes)ÚCacheMissErrorÚ
ProbeCache)ÚPredictBodyInternal)ÚError)ÚTrackedIterable)ÚPROFILING_ENABLEDÚRequestTraceÚ	collectorÚget_current_traceÚset_current_trace)	ÚEstimationMessageÚEventMessageÚ
LogMessageÚProcessCompletedMessageÚProcessGeneratingMessageÚProcessStartsMessageÚProgressMessageÚProgressUnitÚServerMessage)ÚLRUCacheÚerror_payloadÚrun_coro_in_backgroundÚsafe_aclose_iteratorÚsafe_get_lockÚset_task_nameé   )ÚBlockFunction)ÚBlocksc                  óN   • \ rS rSr        SS jr\S 5       r\S 5       rSrg)ÚEventé<   c                ó�  • [         R                  " 5       R                  U l        U=(       d    U R                  U l        X l        X0l        X@l        UR                  U l        S U l	        S U l
        SU l        SU l        SU l        SU l        SU l        [         R"                  " 5       U l        [&        R(                  " 5       U l        g )NFTr   )ÚuuidÚuuid4ÚhexÚ_idÚsession_hashÚfnÚrequestÚusernameÚconcurrency_idÚdataÚprogressÚprogress_pendingÚaliveÚclosedÚn_callsÚrun_timeÚtimeÚ	monotonicÚenqueue_timeÚasyncior*   Úsignal)Úselfr1   r2   r3   r4   s        Ú�C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\gradio/queueing.pyÚ__init__ÚEvent.__init__=   s“   € ô —:’:“<×#Ñ#ˆŒØ!-×!9°·±ˆÔØŒØŒØ ŒØ ×/Ñ/ˆÔØ04ˆŒ	Ø04ˆŒØ&+ˆÔØˆŒ
ØˆŒØˆŒØ ˆŒÜ#'§>¢>Ó#3ˆÔÜ—m’m“oˆ�ó    c                ó4   • U R                   R                  S:H  $ )NÚstream)r2   Ú
connection©rB   s    rC   Ú	streamingÚEvent.streamingT   s   € à�w‰w×!Ñ! XÑ-Ð-rF   c                óÔ   • U R                   (       d  [        S5      eU R                  (       a  gU R                  R                  c  gU R
                  U R                  R                  :¬  $ )Nz6Cannot access if_finished during a non-streaming eventTF)rK   Ú
ValueErrorr:   r2   Ú
time_limitr<   rJ   s    rC   Úis_finishedÚEvent.is_finishedX   sK   € à�~�~ÜÐUÓVÐVØ�;�;ØØ�7‰7×ÑÑ%ØØ�}‰} §¡× 2Ñ 2Ñ2Ð2rF   )r0   r9   r:   r5   r6   r?   r2   r;   r7   r8   r3   r<   r1   rA   r4   N)r1   ú
str | Noner2   r'   r3   úfastapi.Requestr4   rR   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rD   ÚpropertyrK   rP   Ú__static_attributes__© rF   rC   r*   r*   <   sU   † ð&à ð&ð ð&ð !ð	&ð
 ô&ð. ñ.ó ð.ð ñ3ó ó3rF   r*   c                  ó   • \ rS rSrSS jrSrg)Ú
EventQueueéc   c                ó`   • / U l         Xl        X l        SU l        [	        [
        5      U l        g ©Nr   )Úqueuer5   Úconcurrency_limitÚcurrent_concurrencyr   ÚsetÚstart_times_per_fn)rB   r5   ra   s      rC   rD   ÚEventQueue.__init__d   s.   € Ø"$ˆŒ
Ø,ÔØ!2ÔØ#$ˆÔ ÜJUÜóK
ˆÕrF   )r5   ra   rb   r`   rd   N)r5   Ústrra   ú
int | None)rT   rU   rV   rW   rD   rY   rZ   rF   rC   r\   r\   c   s   † ÷
rF   r\   c                  ó$   • \ rS rSrS rSS jrSrg)ÚProcessTimeén   c                ó.   • SU l         SU l        SU l        g r_   ©Úprocess_timeÚcountÚavg_timerJ   s    rC   rD   ÚProcessTime.__init__o   s   € ØˆÔØˆŒ
Øˆ�rF   c                ó”   • U =R                   U-  sl         U =R                  S-  sl        U R                   U R                  -  U l        g )Nr&   rl   )rB   r=   s     rC   ÚaddÚProcessTime.addt   s6   € Ø×Ò˜TÑ!ÕØ�
Š
�a‰�
Ø×)Ñ)¨D¯J©JÑ6ˆ�rF   )ro   rn   rm   N)r=   Úfloat)rT   rU   rV   rW   rD   rr   rY   rZ   rF   rC   ri   ri   n   s   † ò÷
7rF   ri   c                  ó  • \ rS rSr S"           S#S jjr\S 5       rS rS rS$S jr	S r
    S%S jr    S&S	 jrS
 r        S'S jrS(S jrS rS)S jrS*S jrS+S jrS,S jrS,S jr    S-S jr  S.           S/S jjrSSS.     S0S jjrS,S jr S1     S2S jjrS3S jr\S4S j5       r\S5S j5       r\      S6S j5       r\      S7S j5       r          S8S jr S(S  jr!S!r"g)9r   éz   c           	     óö  • [        S5      U l        0 U l        0 U l        [	        5       U l        0 U l        SU l        X l        X0l	        / U l
        [	        5       U l        S U l        [        [        5      U l        Xl        ["        R$                  " 5       S:X  a  SOSU l        ["        R$                  " 5       S:X  a  SOSU l        X@l        XPl        [/        5       U l        U R3                  U5      U l        0 U l        [9        S[;        [<        R>                  " S	S
5      5      5      U l         [        [:        5      U l!        S0 0U l"        SU l#        SU l$        [;        [<        R>                  " SS5      5      U l%        g )NiÐ  FÚWindowsgš™™™™™©?gü©ñÒMbP?gš™™™™™¹?g{®Gáz„?r&   ÚGRADIO_ANALYTICS_MAX_EVENTSÚ10000Ú	functionsr   Ú GRADIO_ANALYTICS_CACHE_FREQUENCYÚ1)&r    Úpending_messages_per_sessionÚpending_event_ids_sessionÚevent_ids_to_eventsr$   Úpending_message_lockÚevent_queue_per_concurrency_idÚstoppedÚmax_thread_countÚupdate_intervalsÚactive_jobsÚdelete_lockÚ
server_appr   ri   Úprocess_time_per_fnÚlive_updatesÚplatformÚsystemÚsleep_when_freeÚprogress_update_sleep_when_freeÚmax_sizeÚblocksrc   Ú_asyncio_tasksÚ_resolve_concurrency_limitÚdefault_concurrency_limitÚevent_analyticsÚmaxÚintÚosÚgetenvÚANALYTICS_MAX_EVENTSÚevents_recorded_per_fnÚcached_event_analytics_summaryÚevents_recordedÚevent_count_at_last_cacheÚANAYLTICS_CACHE_FREQUENCY)rB   rŠ   Úconcurrency_countr…   r�   r�   r“   s          rC   rD   ÚQueue.__init__{   sV  € ô �T‹Nð 	Ô)ð ?AˆÔ&Ø57ˆÔ Ü$1£OˆÔ!ØEGˆÔ+ØˆŒØ 1ÔØ 0ÔØ57ˆÔÜ(›?ˆÔØˆŒÜLWÜóM
ˆÔ ð )ÔÜ'/§¢Ó'8¸IÓ'E™tÈ5ˆÔä—?’?Ó$¨	Ó1‰C°tð 	Ô,ð !ŒØŒÜ14³ˆÔØ)-×)HÑ)HØ%ó*
ˆÔ&ð JLˆÔÜ$'ØŒs”2—9’9Ð:¸GÓDÓEó%
ˆÔ!ô EPÔPSÓDTˆÔ#Ø/:¸BÐ.?ˆÔ+Ø ˆÔØ)*ˆÔ&Ü),Ü�IŠIÐ8¸#Ó>ó*
ˆÕ&rF   c                óœ  • SS K n UR                  SS5         UR                  U 5      R                  [        R
                  S9R                  SS9 sS S S 5        $ ! , (       d  f       g = f! [         aT  nS[        U5      ;   a>  UR                  U 5      R                  [        R
                  S9R                  SS9s S nA$ UeS nAff = f)Nr   zfuture.no_silent_downcastingT)ÚvalueF)ÚcopyzNo such keys(s))	ÚpandasÚoption_contextÚ	DataFrameÚfillnaÚnpÚnanÚinfer_objectsÚ	Exceptionrf   )ÚrecordsÚpdÚes      rC   Ú_get_dfÚQueue._get_df«   s°   € ãð
	Ø×"Ñ"Ð#AÀ4ÕHà—L‘L Ó)×0Ñ0´r·v±vÐ0Ð>×LÑLÐRWÐLÐXð÷ I×H×Hûô ó 	Ø ¤C¨£FÓ*à—L‘L Ó)×0Ñ0´r·v±vÐ0Ð>×LÑLÐRWÐLÐXõð ˆGûð	úsA   †A- ˜:AÁ	A- Á
A*Á&A- Á*A- Á-
CÁ7ACÂ>CÃCÃCc                óŠ  • U(       d  U R                   $ U R                  U R                  -
  U R                  :¼  aþ  U R	                  U5      nU R                  U l        UR                  S5      nS0 0nU H»  u  pVUS   R                  n[        R                  " US:H  5      n[        R                  " US:H  5      n	X‰-   n
U
S:”  a  XŠ-  OS n[        R                  " US   R                  / SQ5      nUUS   US	   US
   S.U R                  R                  XVR                  S   5      S.US   U'   M½     X@l         U R                   $ )NÚfunctionr{   ÚstatusÚsuccessÚfailedr   rm   )é2   éZ   r]   r&   é   )Ú50thÚ90thÚ99th)Úsuccess_rateÚprocess_time_percentilesÚtotal_requests)r›   rœ   r�   rž   r¯   ÚgroupbyÚvaluesr¨   ÚsumÚ
percentilerš   ÚgetÚshape)rB   r¬   ÚdfÚgroupedÚmetricsÚfn_nameÚfn_dfr³   r´   ÚfailureÚtotalr¼   Úpercentiless                rC   Úcompute_analytics_summaryÚQueue.compute_analytics_summary»   s?  € ÞØ×6Ñ6Ð6à× Ñ  4×#AÑ#AÑAØ×-Ñ-ó.ð —‘˜gÓ&ˆBØ-1×-AÑ-AˆDÔ*Ø—j‘j Ó,ˆGØ" BÐ'ˆGÛ")‘�Ø˜x™×/Ñ/�ÜŸ&š& ¨9Ñ!4Ó5�ÜŸ&š& ¨8Ñ!3Ó4�ØÑ)�Ø27¸!³)˜wšÀ�Ü Ÿmšm¨E°.Ñ,A×,HÑ,HÊ,ÓW�à$0à +¨A¡Ø +¨A¡Ø +¨A¡ñ1ð
 '+×&AÑ&A×&EÑ&EØ§¡¨Q¡ó'ñ
1�˜Ñ$ WÓ-ñ #*ð$ 3:Ô/Ø×2Ñ2Ð2rF   c                óÐ   • S /U R                   -  U l        [        U R                  5        [        U R                  5        U R
                  (       d  [        U R                  5        g g ©N)r„   r†   r"   Ústart_processingÚstart_progress_updatesrŠ   Únotify_clientsrJ   s    rC   ÚstartÚQueue.startÛ   sO   € Ø ˜6 D×$9Ñ$9Ñ9ˆÔä˜t×4Ñ4Ô5Ü˜t×:Ñ:Ô;Ø× × Ü" 4×#6Ñ#6Õ7ð !rF   c                ó*  • UR                   nUR                  S:X  a  U R                  nOUR                  nX R                  ;  a  [	        X#5      U R                  U'   g Ub3  U R                  U   nUR                  b  X4R                  :  a  X4l        g g g )NÚdefault)r5   ra   r“   r‚   r\   )rB   Úblock_fnr5   ra   Úexisting_event_queues        rC   Úcreate_event_queue_for_fnÚQueue.create_event_queue_for_fnã   sš   € Ø!×0Ñ0ˆà×%Ñ%¨Ó2Ø $× >Ñ >Ñà (× :Ñ :ÐØ×!DÑ!DÓDÜBLØóCˆD×/Ñ/°Ò?ð Ñ)à#'×#FÑ#FÀ~Ñ#VÐ à$×6Ñ6Ñ>Ø$×'MÑ'MÓMà9JÕ6ð Nð *rF   c                ó   • SU l         g )NT)rƒ   rJ   s    rC   ÚcloseÚQueue.closeø   s	   € Øˆ�rF   c                óž   • UR                   (       d  g UR                  Ul        U R                  UR                     nUR                  U5        g rÐ   )r9   r0   Úevent_idr~   r1   Ú
put_nowait)rB   ÚeventÚevent_messageÚmessagess       rC   Úsend_messageÚQueue.send_messageû   s>   € ð
 �{�{ØØ!&§¡ˆÔØ×4Ñ4°U×5GÑ5GÑHˆØ×Ñ˜MÕ*rF   c                ó    • US:w  a  U$ [         R                  R                  S5      =n(       a   UR                  5       S:X  a  g[	        U5      $ g)a¶  
Handles the logic of resolving the default_concurrency_limit as this can be specified via a combination
of the `default_concurrency_limit` parameter of the `Blocks.queue()` or the `GRADIO_DEFAULT_CONCURRENCY_LIMIT`
environment variable. The parameter in `Blocks.queue()` takes precedence over the environment variable.
Parameters:
    default_concurrency_limit: The default concurrency limit, as specified by a user in `Blocks.queue()`.
Únot_setÚ GRADIO_DEFAULT_CONCURRENCY_LIMITÚnoneNr&   )r—   ÚenvironrÃ   Úlowerr–   )rB   r“   Údefault_concurrency_limit_envs      rC   r’   Ú Queue._resolve_concurrency_limit  sW   € ð %¨	Ó1Ø,Ð,Ü,.¯J©J¯N©NØ.ó-
ð 
Ð(õ 
ð -×2Ñ2Ó4¸Ó>ØäÐ8Ó9Ð9àrF   c                ó|   • SnU R                   R                  5        H  nU[        UR                  5      -  nM     U$ r_   )r‚   rÀ   Úlenr`   )rB   Ú	total_lenÚevent_queues      rC   Ú__len__ÚQueue.__len__  s<   € Øˆ	Ø×>Ñ>×EÑEÖGˆKØœ˜[×.Ñ.Ó/Ñ/ŠIñ HàÐrF   c              ƒ  ó4  #   • UR                   c  gU R                  b8  [        U 5      U R                  :¼  a  SSU R                   S[        U 5       S3S4$ UR                  (       aG  U R                  R
                  UR                     nUR                  R                  UR                      nO#U R                  R                  UR                      n[        R                  " U R                  S U5      nU R                  U5        UR                  Gb­  [        R                  " UUUS S9nUR                  c   e[        R                  " UR                  S9n[        R                  " UR                  UU R                  R                   R"                  S	9n[%        S00 S
UR                  _SS _SS_SUR&                  _SS _SS _SUR(                  _SUR(                  _SUR*                  _SS_SUR,                  _S/ _SS_SUR.                  _SUR0                  _SS _SS_SUR2                  _SUR4                  _S UR6                  _6n	[9        UR                  U	UU5      n
 [        R:                  " U R                  R                   UUU	US!9I S h  v•N nUR=                  S"5      nUb  [?        XÅ5      u  pÞUSL a  SUS#4$ [9        UR                  UUU5      n
Xl#        UR                  c  U
R                  Ul        U RH                   IS h  v•N   UR                  U RJ                  ;  a!  [M        5       U RJ                  UR                  '   UR                  U RN                  ;  a!  [Q        5       U RN                  UR                  '   S S S 5      IS h  v•N   U RN                  UR                     RS                  U
RT                  5        X RV                  U
RT                  '   UR&                  (       d  U
RT                  OS Ul,        [[        UR\                  S%5      (       GaÙ   [^        R^                  " 5       n[        R                  " UUUS S9nUR                  c   e[        R                  " UR                  S9n[        R                  " UR                  UU R                  R                   R"                  S	9n[a        5          [        R:                  " U R                  R                   UUUUS!9I S h  v•N nU(       a…  UR=                  S&S5      (       an  U Rc                  U
[e        US'S(95        [        R:                  " U R                  R                   UUUUS!9I S h  v•N nU(       a  UR=                  S&S5      (       a  Mn  S S S 5        [^        R^                  " 5       U-
  nXPRf                  ;   a  U Rf                  U   Rh                  OS nU Rc                  U
[k        WS'S)UUS*95        S'U
RT                  S+4$  U Rn                  U
Rp                     nURt                  Rw                  U
5        [^        R^                  " 5       S-S URx                  UR                  S..U Rz                  U
RT                  '   U =R|                  S/-  sl>        U R~                  URx                  ==   S/-  ss'   [        U Rz                  5      U R€                  :”  a\  U Rz                  Rƒ                  […        [‡        U Rz                  5      5      5        [        U Rz                  5      U R€                  :”  a  M\  U R‰                  U
Rp                  [        URt                  5      S/-
  5        S'U
RT                  S+4$  GNÛ! [@         a,  n[C        [E        U5      5        S[E        U5      S$4s S nA$ S nAff = f GN› GN! , IS h  v•N  (       d  f       GN.= f GNÕ GNl! , (       d  f       GNQ= f! [l         a     GNó[@         a    e f = f! [r         a  n[s        S,5      UeS nAff = f7f)1N)FzNo function index provided.ÚerrorFzQueue is full. Max size is z and size is Ú.Ú
queue_full©Úbodyr2   r4   r3   ©r3   ©r3   Ú
route_pathÚ	root_pathr2   Úapi_nameÚapi_visibilityÚundocumentedÚbatchr5   ra   ÚinputsÚoutputsÚ
preprocessÚpostprocessÚinputs_as_dictÚtargetsr0   éÿÿÿÿÚmax_batch_sizeÚtracks_progressÚjsÚshow_progressÚhiddenÚshow_progress_onÚcancelsÚcollects_event_data©Úapprú   Ú
gr_requestr2   rþ   r6   Úvalidator_errorrö   ÚcacheÚis_generatingT©Úoutputr´   Úfull©r  r´   Ú
used_cacheÚcache_durationro   r´   z¿Event not found in queue. If you are deploying this Gradio app with multiple replicas, please enable stickiness to ensure that all requests from the same user are routed to the same instance.Úqueued)r=   r³   rm   r²   r1   r&   rZ   )EÚfn_indexr�   rð   r1   r�   Ústate_holderÚblocks_configÚfnsr   Úget_fnrÚ   Ú	validatorÚcompile_gr_requestr3   Úget_api_call_pathÚget_root_urlr  rþ   r'   r  r  r  r  r
  r  r  r  r  r*   Úcall_process_apirÃ   Úprocess_validation_responser«   Úprintrf   r6   r�   r~   Ú
AsyncQueuer   rc   rr   r0   r€   rà   Úhasattrr2   r=   r   rå   r   r‰   ro   r   r   r‚   r5   ÚKeyErrorr`   Úappendrÿ   r”   rœ   rš   r™   ÚpopÚnextÚiterÚbroadcast_estimations)rB   rú   r3   r4   Úsession_stater2   r  Úapi_route_pathrþ   Úvalidator_fnrâ   ÚresponseÚvalidation_responseÚis_validÚvalidation_datar®   Úcache_startr  ro   rò   s                       rC   ÚpushÚ
Queue.push"  sS  é € ð �=‰=Ñ Ø@Ø�=‰=Ñ$¬¨T«°d·m±mÓ)CàØ-¨d¯m©m¨_¸MÌ#ÈdË)ÈÐTUÐVØðð ð ××Ø ŸK™K×4Ñ4°T×5FÑ5FÑGˆMØ×,Ñ,×0Ñ0°·±Ñ?‰Bà—‘—‘ §¡Ñ/ˆBä×Ò §¡¨T°4Ó8ˆØ×&Ñ& rÔ*Ø�<‰<Ò#Ü$×7Ò7ØØØ!Øñ	ˆJð —<‘<Ñ+Ð+Ð+Ü(×:Ò:À4Ç<Á<ÑPˆNÜ#×0Ò0ØŸ™Ø)ØŸ+™+Ÿ/™/×3Ñ3ñˆIô
 )ò Ø—<’<ðáðñ  .ðð —h’hð	ñ
  $ðñ #'ðð —y’yðð Ÿ	š	ðð Ÿ=š=ðñ "ðð  "×0Ò0ðñ ðñ ðð  "×0Ò0ðð !#× 2Ò 2ðñ  ð!ñ" 'ð#ð$ "$×!4Ò!4ð%ð& Ÿ
š
ð'ð( %'×$:Ò$:ð)ˆLô. Ø×!Ñ!ØØØó	ˆEð.Ü!,×!=Ò!=ØŸ™Ÿ™ØØ)Ø#Ø'ñ"÷ �ð —L‘L Ó(ð $ð 'Ñ2Ü2MØ+ó3Ñ/�Xð   5Ò(à!Ø+Ø-ð ð ô Ø×ÑØØØó	
ˆð Œ
Ø×ÑÑ$Ø %× 2Ñ 2ˆDÔØ×,×,Ó,Ø× Ñ ¨×(IÑ(IÓIÜGQÃ|�×1Ñ1°$×2CÑ2CÑDØ× Ñ ¨×(FÑ(FÓFÜDGÃE�×.Ñ.¨t×/@Ñ/@ÑA÷	 -×,ð
 	×&Ñ& t×'8Ñ'8Ñ9×=Ñ=¸e¿i¹iÔHØ.3× Ñ  §¡Ñ+Ø)+¯¯˜Ÿ	š	°tˆŒä�2—5‘5˜'×"Ò"ð:Ü"Ÿiši›k�Ü(×;Ò;ØØØ%Ø ñ	�
ð —|‘|Ñ/Ð/Ð/Ü!,×!>Ò!>ÀtÇ|Á|Ñ!T�Ü'×4Ò4Ø ŸL™LØ-Ø"Ÿk™kŸo™o×7Ñ7ñ�	ô
  •\Ü%0×%AÒ%AØ ŸK™KŸO™OØ!Ø#-ØØ"+ñ&÷  �Hö # x§|¡|°OÀU×'KÑ'KØ×)Ñ)Ø!Ü4Ø'/Ø(,ñôô *5×)EÒ)EØ $§¡§¡Ø!%Ø'1Ø!Ø&/ñ*÷ $˜ö # x§|¡|°OÀU×'KÓ'K÷ "ô. "&§¢£¨{Ñ!:�ð ×5Ñ5Ó5ð ×,Ñ,¨RÑ0×9Ò9àð ð
 ×!Ñ!ØÜ+Ø'Ø $Ø#)Ø'5Ø!)ñô	ð ˜UŸY™Y¨	Ð1Ð1ð	Ø×=Ñ=¸e×>RÑ>RÑSˆKð
 	×Ñ× Ñ  Ô'ä—I’I“KØØ ØŸ™Ø ×-Ñ-ñ+
ˆ×Ñ˜UŸY™YÑ'ð 	×Ò Ñ!ÕØ×#Ñ# B§K¡KÓ0°AÑ5Ó0Ü�$×&Ñ&Ó'¨$×*CÑ*CÓCØ× Ñ ×$Ñ$¤T¬$¨t×/CÑ/CÓ*DÓ%EÔFô �$×&Ñ&Ó'¨$×*CÑ*CÕCð 	×"Ñ" 5×#7Ñ#7¼¸[×=NÑ=NÓ9OÐRSÑ9SÔTØ�U—Y‘Y 	Ð)Ð)ò{øô. ó .Ü”c˜!“f”Øœc !›f gÐ-Õ-ûð.ú÷ -×,×,Õ,úò4 ò$÷! "–\ûôP "ó ÚÜó Øðûô
 ó 	Üð Róàðûð	üs  ‚I`É /]- Ê]*Ê.]- Ê>A`Ì^&Ì`ÌA7^,Î`Î^)ÎB`Ð!B!_ Ó0_Ó2_Ó3A+_Õ_
Õ"_ÖA5_ ×8`×:_: ØD`Ü)A`Ý*]- Ý-
^#Ý7!^Þ^#Þ`Þ^#Þ#`Þ)`Þ,_Þ2^5Þ3_Þ?`ß_ß
_ß
_ß_ ß
_7ß)`ß,_7ß7`ß:
`à`à`à`c              ƒ  óš  #   • U R                   R                  U5      nU(       aw  U R                   IS h  v•N   U R                  UR                     n UR
                  R                  U5        U R                   R                  US 5        S S S 5      IS h  v•N   g g  Ng! [         a     N f = f N! , IS h  v•N  (       d  f       g = f7frÐ   )	r€   rÃ   r‡   r‚   r5   r`   Úremover/  rN   )rB   rà   râ   Úqs       rC   Úremove_from_queueÚQueue.remove_from_queueå  s    é € Ø×(Ñ(×,Ñ,¨XÓ6ˆÞØ×'×'Ó'Ø×7Ñ7¸×8LÑ8LÑM�ðØ—G‘G—N‘N 5Ô)Ø×,Ñ,×0Ñ0°¸4Ô@÷	 (×'Ð'ð Ù'øô
 "ó Ùðú÷ (×'×'Ð'üsb   ‚3CµB¶C¹B1Á7BÂCÂB/ÂCÂ
B,Â)B1Â+B,Â,B1Â/CÂ1CÂ7B:Â8CÃCc                ó�   • [        U R                  5       H  nUR                  5         M     U R                  R                  5         g rÐ   )Úlistr‘   ÚcancelÚclear)rB   Útasks     rC   Ú_cancel_asyncio_tasksÚQueue._cancel_asyncio_tasksð  s2   € Ü˜×,Ñ,Ö-ˆDØ�K‰KŽMñ .à×Ñ×!Ñ!Õ#rF   c                ó   • Xl         g rÐ   )rˆ   )rB   r  s     rC   Úset_server_appÚQueue.set_server_appõ  s   € Ø�rF   c                óD   • SnU R                    H  nUc  M  US-  nM     U$ ©Nr   r&   )r†   )rB   rn   Úworkers      rC   Úget_active_worker_countÚQueue.get_active_worker_countø  s-   € ØˆØ×&Ô&ˆFØÓ!Ø˜‘
’ñ 'ð ˆrF   c                óŠ  • [        U R                  R                  5       5      n[        R                  " U5        U Hÿ  nU R                  U   n[        UR                  5      (       d  M.  UR                  b  UR                  UR                  :  d  MW  UR                  S   nUR                  nU/nUR                  nU(       aO  UUR                  SS   Vs/ s H!  nUR                  UR                  :X  d  M  UPM#     snS UR                  S-
   -  nU H  nUR                  R                  U5        M      XgU4s  $    g s  snf rM  )rC  r‚   ÚkeysÚrandomÚshufflerð   r`   ra   rb   r2   r  r
  r>  )	rB   Úconcurrency_idsr5   rò   Úfirst_eventrØ   Úeventsr  râ   s	            rC   Ú
get_eventsÚQueue.get_eventsÿ  s)  € Ü˜t×BÑB×GÑGÓIÓJˆÜ�Š�Ô'Û-ˆNØ×=Ñ=¸nÑMˆKÜ�;×$Ñ$×%Ó%Ø×-Ñ-Ñ5Ø×2Ñ2°[×5RÑ5RÕRà)×/Ñ/°Ñ2�Ø&Ÿ>™>�Ø%˜�Ø Ÿ™�ÞØà%0×%6Ñ%6°q°rÑ%:óâ%:˜EØ Ÿ8™8 {§~¡~Ñ5÷ Ù%:ñð 4˜×/Ñ/°!Ñ3ð	5ñ 5�Fó $�EØ×%Ñ%×,Ñ,¨UÖ3ñ $ð  nÐ4Ò4ò) .ùòs   ÃE Ã8E c              ƒ  ó°  #   •  U R                   (       Gdc  [        U 5      S:X  a*  [        R                  " U R                  5      I S h  v•N   MK  S U R
                  ;  a*  [        R                  " U R                  5      I S h  v•N   M…  U R                   IS h  v•N   U R                  5       nS S S 5      IS h  v•N   W(       Gaw  Uu  p#nX R
                  U R
                  R                  S 5      '   U R                  U   nU=R                  S-  sl
        [        R                  " 5       nUS   R                  nUR                  U   R                  U5        U H2  nU R                  R!                  UR"                  5      =n	c  M-  SU	S'   M4     [%        U R&                  X#Xg5      n
[)        U
US   R*                  UR"                  US   R"                  U5        U R,                  R                  U
5        U
R/                  U R,                  R0                  5        U R2                  (       a  U R5                  U5        O([        R                  " U R                  5      I S h  v•N   U R                   (       d  GMc  SU l         U R7                  5         g  GNI GN GNþ GNá! , IS h  v•N  (       d  f       GN÷= f NW! SU l         U R7                  5         f = f7f)Nr   r&   Ú
processingr³   T)rƒ   rð   r@   Úsleepr�   r†   r‡   rX  Úindexr‚   rb   r=   r2   rd   rr   r”   rÃ   r0   r"   Úprocess_eventsr%   r1   r‘   Úadd_done_callbackÚdiscardrŠ   r2  rG  )rB   Úevent_batchrW  r  r5   rò   Ú
start_timer2   râ   ÚaÚprocess_event_tasks              rC   rÑ   ÚQueue.start_processing  s7  é € ð,	)Ø—l—l�lÜ�t“9 “>Ü!Ÿ-š-¨×(<Ñ(<Ó=×=Ð=Ùà˜t×/Ñ/Ó/Ü!Ÿ-š-¨×(<Ñ(<Ó=×=Ð=Ùð  ×+×+Ó+Ø"&§/¡/Ó"3�K÷ ,×+÷ Ø4?Ñ1�F >ØEK×$Ñ$ T×%5Ñ%5×%;Ñ%;¸DÓ%AÑBØ"&×"EÑ"EÀnÑ"U�KØ×3Ò3°qÑ8Õ3Ü!%§¢£�JØ ™Ÿ™�BØ×2Ñ2°2Ñ6×:Ñ:¸:ÔFÛ!'˜Ø!%×!5Ñ!5×!9Ñ!9¸%¿)¹)Ó!DÐD˜AÓQØ*6˜A˜h›Kñ "(ô *@Ø×+Ñ+¨V¸Jó*Ð&ô "Ø*Ø˜q™	×.Ñ.ØŸ™Ø˜q™	Ÿ™Øôð ×'Ñ'×+Ñ+Ð,>Ô?Ø&×8Ñ8¸×9LÑ9L×9TÑ9TÔUØ×(×(Ø×2Ñ2°>ÔBøä!Ÿ-š-¨×(<Ñ(<Ó=×=Ð=ðQ —l—l’lðT  ˆDŒLØ×&Ñ&Õ(òS >ò >÷ ,×+×+Õ+úñ< >øàˆDŒLØ×&Ñ&Õ(üs�   ‚K„AJ: ÁJÁ	9J: ÂJÂJ: ÂJÂJ: ÂJÂ.J: Â9JÂ:C	J: ÆCJ: É J8É!J: É9KÊJ: ÊJ: ÊJ: ÊJ: ÊJ5Ê#J&Ê$J5Ê0	J: Ê:KËKc              ƒ  ó$  #   • U R                   (       dñ  U R                   VVs/ s H  oc  M  U  H  o"PM     M     nnn[        U5      S:X  a*  [        R                  " U R
                  5      I Sh  v•N   Mu  U HK  nUR                  (       d  M  UR                  (       d  M)  SUl        U R                  XDR                  5        MM     [        R                  " U R
                  5      I Sh  v•N   U R                   (       d  Mð  ggs  snnf  Nš N!7f)aH  
Because progress updates can be very frequent, we do not necessarily want to send a message per update.
Rather, we check for progress updates at regular intervals, and send a message if there is a pending update.
Consecutive progress updates between sends will overwrite each other so only the most recent update will be sent.
Nr   F)	rƒ   r†   rð   r@   r\  rŽ   r8   r7   rå   )rB   ÚjobÚevtrW  râ   s        rC   rÒ   ÚQueue.start_progress_updatesG  sÉ   é € ð —,—,Ø%)×%5Ò%5ÔXÒ%5˜c“cÔTWÈS’cÑTW‘cÑ%5ˆFÑXä�6‹{˜aÓÜ—m’m D×$HÑ$HÓI×IÐIÙã�Ø×)×)Ñ)¨e¯n¯n©nØ-2�EÔ*Ø×%Ñ% e¯^©^Ö<ñ  ô
 —-’- × DÑ DÓE×EÐEð —,—,“,ùÛXñ Jñ FùsE   ‚!D£D­D¼5DÁ1DÁ2DÂDÂ#A	DÃ,DÃ-DÄ	DÄDc                óR  • Uc  g U R                    H“  nUc  M  U H…  nUR                  U:X  d  M  / nU HS  n[        UR                  UR                  UR
                  UR                  UR                  S9nUR                  U5        MU     [        US9Ul        SUl
        M‡     M•     g )N)r]  ÚlengthÚunitr7   Údesc)Úprogress_dataT)r†   r0   r   r]  rk  rl  r7   rm  r.  r   r8   )rB   rà   Ú	iterablesrg  rh  rn  ÚiterableÚprogress_units           rC   Úset_progressÚQueue.set_progress[  sŸ   € ð
 ÑØØ×#Ô#ˆCØ‰{ÙÛ�Ø—7‘7˜hÕ&Ø8:�MÛ$-˜Ü(4Ø"*§.¡.Ø#+§?¡?Ø!)§¡Ø%-×%6Ñ%6Ø!)§¡ñ)˜ð &×,Ñ,¨]Ö;ñ %.ô $3ÀÑ#O�C”LØ+/�CÖ(ó ò $rF   c           	     óØ   • U R                    VVs/ s H  owc  M  U  H  oˆPM     M     n	nnU	 H3  n
U
R                  U:X  d  M  [        UUUUUS9nU R                  X«5        M5     g s  snnf )N)ÚlogÚlevelÚdurationÚvisibleÚtitle)r†   r0   r   rå   )rB   rà   ru  ry  rv  rw  rx  rg  rh  rW  râ   Úlog_messages               rC   rz  ÚQueue.log_messaget  sq   € ð "&×!1Ò!1ÔTÒ!1˜#“#ÔPSÈ’#ÑPS‘#Ñ!1ˆÑTÛˆEØ�y‰y˜HÕ$Ü(ØØØ%Ø#Øñ�ð ×!Ñ! %Ö5ò ùó Us
   �A&šA&N)r1   rà   c             ƒ  ó¾  #   • U R                    H>  nU(       d  M  U H,  nUR                  U:X  d  UR                  U:X  d  M%  SUl        M.     M@     U R                   IS h  v•N   / nU R
                  R                  5        HI  nUR                   H6  nUR                  U:X  d  UR                  U:X  d  M%  UR                  U5        M8     MK     U H[  nU R
                  UR                     R                  R                  U5        U R                  R                  UR                  S 5        M]     U(       aq  XR                  ;   ab  U Vs1 s H  oˆR                  iM     n	nU R                  U==   U	-  ss'   U R                  U   (       d  U R                  R                  US 5        S S S 5      IS h  v•N   g  GNXs  snf  N! , IS h  v•N  (       d  f       g = f7f)NF)r†   r1   r0   r9   r‡   r‚   rÀ   r`   r.  r5   r>  r€   r/  r   )
rB   r1   rà   Újob_setrg  Úevents_to_removerò   râ   r®   Úremoved_idss
             rC   Úclean_eventsÚQueue.clean_events‰  s|  é € ð ×'Ô'ˆGßˆwÛ"�CØ×'Ñ'¨<Ó7¸3¿7¹7ÀhÕ;NØ$)˜ž	ó #ñ (ð ×#×#Ó#Ø,.ÐØ#×BÑB×IÑIÖK�Ø(×.Ô.�EØ×)Ñ)¨\Ó9¸U¿Y¹YÈ(Õ=RØ(×/Ñ/°Ö6ó /ñ  Ló
 *�Ø×3Ñ3°E×4HÑ4HÑI×OÑO×VÑVØôð ×(Ñ(×,Ñ,¨U¯Y©Y¸Ö=ñ	 *ö  ×0NÑ0NÓ NÙ.>Ó?Ò.>¨ŸuœuÑ.>�Ð?Ø×.Ñ.¨|Ó<ÀÑKÓ<Ø×5Ñ5°l×CØ×2Ñ2×6Ñ6°|ÀTÔJ÷# $×#Ó#ùò @÷ $×#×#Ð#üsm   ‚G›#GÁGÁ!F9Á"GÁ%AGÂ6BGÅ
F<ÅA	GÆ(GÆ3GÆ4GÆ<GÇGÇGÇ	GÇ
GÇGc              ƒ  ó  #   • U R                   (       do  [        R                  " U R                  5      I Sh  v•N   [	        U 5      S:”  a$  U R
                   H  nU R                  U5        M     U R                   (       d  Mn  gg NL7f)zA
Notify clients about events statuses in the queue periodically.
Nr   )rƒ   r@   r\  r…   rð   r‚   r2  )rB   r5   s     rC   rÓ   ÚQueue.notify_clients¥  s^   é € ð —,—,Ü—-’- × 5Ñ 5Ó6×6Ð6Ü�4‹y˜1‹}Ø&*×&IÔ&I�NØ×.Ñ.¨~Ö>ñ 'Jð —,—,“,Ù6ùs   ‚5B·B¸ABÂBc                óú  • SnU R                   U   nSnUR                  UR                  :X  aÎ  / nUR                  R	                  5        Ho  u  pxXpR
                  ;  a  S n  O[UR                  S:X  a  UR                  =(       d    Sn	OU R
                  U   R                  n	UU V
s/ s H  oªU	-   PM	     sn
-  nMq     Ub<  [        U5      S:”  a-  [        U5      n[        U[        R                  " 5       -
  S5      n[        UR                  5       Hâ  u  pÍUR                  U R
                  ;   a#  U R
                  UR                     R                  OS nUb  Ub
  Ub  Xã-   U-   OS nUb  XÂ:¼  a-  U R!                  U[#        XÏ[        UR                  5      S95        UR                  c  SnMœ  UbA  Ub>  XäR                  -  nUR$                  (       a  U=(       d    SUR                  -  nUU-  nMà  S nMä     g s  sn
f )Nr   rH   )ÚrankÚrank_etaÚ
queue_size)r‚   rb   ra   rd   Úitemsr‰   rI   rO   ro   rð   Úminr•   r=   Ú	enumerater`   r2   rå   r   rK   )rB   r5   ÚafterÚwait_so_farrò   Útime_till_available_workerÚexpected_end_timesr2   Ústart_timesrm   rb  Útime_of_first_completionr…  râ   Úprocess_time_for_fnr†  Údeltas                    rC   r2  ÚQueue.broadcast_estimations¯  s  € ð ˆØ×9Ñ9¸.ÑIˆØ12Ð"à×*Ñ*¨k×.KÑ.KÓKØ!#ÐØ#.×#AÑ#A×#GÑ#GÖ#I‘�Ø×5Ñ5Ó5Ø15Ð.ÙØ—=‘= HÓ,Ø#%§=¡=×#5°A‘Là#'×#;Ñ#;¸BÑ#?×#HÑ#H�LØ"Ù@Kó'Ú@K°* Ô-Áñ'ñ Ò"ñ $Jð *Ñ5¼#Ð>PÓ:QÐTUÓ:UÜ+.Ð/AÓ+BÐ(Ü-0Ø,¬t¯yªy«{Ñ:¸Aó.Ð*ô % [×%6Ñ%6Ö7‰KˆDð —8‘8˜t×7Ñ7Ó7ð ×(Ñ(¨¯©Ñ2×;Ò;àð  ð 'Ñ2ØÑ+Ø.Ñ:ð $Ñ1Ð4NÒNð ð ð ‰} £Ø×!Ñ!ØÜ%Ø!ÄÀ[×EVÑEVÓAWñôð ×,Ñ,Ñ4Ø’ØÑ(Ð-@Ñ-LØ+×.KÑ.KÑK�Ø—?—?à2×7°aØ#×5Ñ5ñ6�Eð ˜uÑ$’à"’òM 8ùò's   Â&G8c                ó&   • [        [        U 5      S9$ )N)r‡  )r   rð   rJ   s    rC   Ú
get_statusÚQueue.get_statusñ  s   € Ü Ü˜4“yñ
ð 	
rF   c              ƒ  óT   #   • U R                   R                  5       I S h  v•N   g N7f)NrA   )rA   Úwait)râ   s    rC   Úwait_for_eventÚQueue.wait_for_eventö  s#   é € à�l‰l×ÑÓ!×!Ð!Øñ 	"ùs   ‚( &¡(c              ƒ  óL   #   • [         R                  " U 5      I S h  v•N   g N7f)NÚtimeout)r@   r\  )rœ  s    rC   rœ  ÚQueue.timeoutû  s   é € ä�mŠm˜GÓ$×$Ð$Øñ 	%ùs   ‚$œ"�$c              ƒ  ó¶  #   • [         R                  " [        R                  U 5      5      n[         R                  " [        R	                  U5      5      n[         R
                  " X#/[         R                  S9I S h  v•N u  pEU Vs/ s H  ofR                  5       PM     nnU R                  R                  5         [        [        S   US   5      $  NUs  snf 7f)N©Úreturn_when)rA   rœ  r   )r@   Úcreate_taskr   r™  rœ  r˜  ÚFIRST_COMPLETEDÚresultrA   rE  r	   r   )râ   rœ  Út1Út2ÚdoneÚ_Úds          rC   Úwait_for_event_or_timeoutÚQueue.wait_for_event_or_timeout   s©   é € ô × Ò ¤×!5Ñ!5°eÓ!<Ó=ˆÜ× Ò ¤§¡¨wÓ!7Ó8ˆÜŸšØˆHÜ×/Ñ/ñ
÷ 
‰ˆñ %)Ó)¢D˜q—‘–
¡DˆÐ)Ø�‰×ÑÔÜ”GÐ/Ñ0°$°q±'Ó:Ð:ñ
ùò *ùs$   ‚A:CÁ<CÁ=
CÂCÂ 3CÃCc           	   ƒ  óÒ  #   • / n[        XSS9 H=  u  p4UR                  [        R                  " [        R                  X45      5      5        M?     [        R                  " U[        R                  S9I S h  v•N u  pVU Vs/ s H  owR                  5       PM     nn/ n/ n	[        XPSS9 H/  u  p£U
S:X  a  UR                  U5        M  U	R                  U5        M1     X‰4$  Nis  snf 7f)NF)ÚstrictrŸ  rA   )	Úzipr.  r@   r¡  r   r©  r˜  ÚALL_COMPLETEDr£  )rW  ÚtimeoutsÚtasksrâ   rœ  r¦  r§  r¨  Úawake_eventsÚclosed_eventsr£  s              rC   Úwait_for_batchÚQueue.wait_for_batch  sØ   é € ð ˆÜ! &¸5ÔA‰NˆEØ�L‰LÜ×#Ò#¤E×$CÑ$CÀEÓ$SÓTöñ Bô  ŸšØÜ×-Ñ-ñ
÷ 
‰ˆñ %)Ó)¢D˜q—‘–
¡DˆÐ)ØˆØˆÜ  °eÔ<‰MˆFØ˜Ó!Ø×#Ñ# EÖ*à×$Ñ$ UÖ+ñ	 =ð
 Ð*Ð*ñ
ùò *ùs%   ‚A4C'Á6C Á7
C'ÂC"ÂAC'Ã"C'c              ƒ  ó%  #   • / nSn U Hh  nUR                   (       d  M  U R                  U[        X@R                  ;   a  U R                  U   R                  OS S95        UR                  U5        Mj     U(       Gd   [        (       a#  [        5       nUb  [        R                  " U5        U R                  US   R                     n	U	=R                  S-  sl        U	R                  R                  U5      n
U
b%  U
R                  U5        U
(       d  U	R                  U	  S U R                   U R                   R#                  U5      '   U R&                  nUbX  UR)                  5       nU HB  nUR+                  UR,                  UR.                  R                  UR0                  5      5        MD     U HÈ  nU R3                  UR0                  5      I S h  v•N   U R4                  R                  UR0                  5      =nb  Xu;   a  U(       a  SOSOSUS'   [7        U R8                  [;        U R4                  R=                  5       5      5      I S h  v•N   U R>                  RA                  UR0                  S 5        MÊ     g UnUS   RB                  nUc  [%        S	5      eUS   RD                  nU(       d  US   R0                  OS Ul#         US   RH                  Ul$        U(       ak  [;        [K        U Vs/ s H+  owRB                  (       d  M  URB                  RB                  PM-     snS
S065      Ul!        US   RH                  Ul$        SUl&        U R&                  nUc  [O        S5      e[P        RR                  " UUUS S9nURH                  c   e[P        RT                  " URH                  S9n[P        RV                  " URH                  UURX                  S9nSn[        (       a„  [[        US   R0                  UR\                  =(       d    [_        UR`                  5      US   R,                  S9n[b        Rd                  " 5       US   Rf                  -
  S-  Ul4        [k        U5        OS n [b        Rd                  " 5       n[P        Rl                  " UUUUUS9I S h  v•N n[b        Rd                  " 5       nUU-
  nS nU HB  nU=Rn                  UU-
  -  sl7        URp                  (       d  M.  URr                  (       + US'   MD     U(       GaÙ  UR                  SS5      (       GaÁ  UnUnU(       GaÀ  UR                  SS5      (       Ga¨  [b        Rd                  " 5       nUnUnU H‘  nU R                  U[…        URp                  (       d  [†        Rˆ                  O[†        RŠ                  UUS LURŒ                  (       d  S O/URp                  (       a  [�        [�        URŒ                  5      U-
  OS S95        M“     U Vs/ s H  owR                   (       d  M  UPM     nnU(       Gd   [        (       a#  [        5       nUb  [        R                  " U5        U R                  US   R                     n	U	=R                  S-  sl        U	R                  R                  U5      n
U
b%  U
R                  U5        U
(       d  U	R                  U	  S U R                   U R                   R#                  U5      '   U R&                  nUbX  UR)                  5       nU HB  nUR+                  UR,                  UR.                  R                  UR0                  5      5        MD     U HÈ  nU R3                  UR0                  5      I S h  v•N   U R4                  R                  UR0                  5      =nb  Xu;   a  U(       a  SOSOSUS'   [7        U R8                  [;        U R4                  R=                  5       5      5      I S h  v•N   U R>                  RA                  UR0                  S 5        MÊ     g  [b        Rd                  " 5       nUS   Rp                  (       au  [’        R•                  U[�        [–        URŒ                  =(       d    S5      U-
  /[™        U5      -  5      I S h  v•N u  nnU H  nU R                  U[ƒ        USS95        M     U(       d  GO"US   R`                  n[�        [š        US   RB                  5      nU(       aQ  [;        [K        U Vs/ s H,  nURB                  (       d  M  URB                  RB                  PM.     snS
S065      Ul!        [P        Rl                  " UUUUUS9I S h  v•N n[b        Rd                  " 5       nU HB  nU=Rn                  UU-
  -  sl7        URp                  (       d  M.  URr                  (       + US'   MD     U(       a  UR                  SS5      (       a  GM¨  U(       a  SnUnO1SnU=(       d    Un[        UUR)                  5       R€                  5      nUn U(       a5  UR                  S5      (       d  U(       a  UR                  S5      (       a  Un U(       a  U R                  S5      OS n!U!S;   a  [�        [œ        S   U!5      OS n!U H>  nU R                  U[ƒ        UUU!U R                  S5      U R                  S5      S95        M@     OÑU(       aÊ  [Ÿ        U5       H»  u  nn[¡        U5      nU(       a/  SU;   a)  [;        [K        UR                  S5      S
S065      U   US'   US LnU(       a  UR                  S5      OS n!U!S;   a  [�        [œ        S   U!5      OS n!U R                  U[ƒ        UUU!UR                  S5      UR                  S5      S95        M½     [b        Rb                  " 5       n"Ub”  US   Rp                  (       d  U"U-
  OUn#UR                  S5      (       d+  U R                  US   R`                     R                  U#5        U H2  nU R4                  R                  UR0                  5      =nc  M-  U#US '   M4     [        (       a#  [        5       nUb  [        R                  " U5        U R                  US   R                     n	U	=R                  S-  sl        U	R                  R                  U5      n
U
b%  U
R                  U5        U
(       d  U	R                  U	  S U R                   U R                   R#                  U5      '   U R&                  nUbX  UR)                  5       nU HB  nUR+                  UR,                  UR.                  R                  UR0                  5      5        MD     U HÈ  nU R3                  UR0                  5      I S h  v•N   U R4                  R                  UR0                  5      =nb  Xu;   a  U(       a  SOSOSUS'   [7        U R8                  [;        U R4                  R=                  5       5      5      I S h  v•N   U R>                  RA                  UR0                  S 5        MÊ     g ! [$         a     GN)f = f GN£ GN*! [$         a     GNªf = fs  snf  G	Nõ! [N         aâ  n[u        U[v        5      (       a  URx                  (       a  [z        R|                  " 5         S nUnU H’  n[        UUR)                  5       R€                  5      nU R                  U[ƒ        UUR                  SS5      SS95        [7        U R8                  [;        U R4                  R=                  5       5      5      I S h  v•N    M”      S nAG
NvS nAff = fs  snf ! [$         a     GN¤f = f GN GN¥ GNs  snf  GN9! [N         aJ  n[u        U[v        5      (       a  URx                  (       a  [z        R|                  " 5         S nUn S nAGN)S nAff = f! [N         aF  n[u        U[v        5      (       a  URx                  (       a  [z        R|                  " 5          S nAGNéS nAff = f! [$         a     GN3f = f GN­ GN4! [        (       a#  [        5       nUb  [        R                  " U5        U R                  US   R                     n	U	=R                  S-  sl        U	R                  R                  U5      n
U
b%  U
R                  U5        U
(       d  U	R                  U	  S U R                   U R                   R#                  U5      '   O! [$         a     Of = fU R&                  nUbX  UR)                  5       nU HB  nUR+                  UR,                  UR.                  R                  UR0                  5      5        MD     U HÊ  nU R3                  UR0                  5      I S h  v•N    U R4                  R                  UR0                  5      =nb  Xu;   a  U(       a  SOSOSUS'   [7        U R8                  [;        U R4                  R=                  5       5      5      I S h  v•N    U R>                  RA                  UR0                  S 5        MÌ     f = f7f)!NF)Úetar   r&   r´   rµ   Ú	cancelledr³   zNo event datar¬  TúServer app has not been set.rù   rû   rü   )rà   rÈ   r1   iè  r  r  ry  r   )r  ry  r´   )Úmsgr  r´   rO   é   r  r  )r  Úpartialrw  Úaverage_durationr  r6   rm   )Qr9   rå   r   r‰   ro   r.  r   r   r   rr   r‚   r5   rb   rd   rÃ   r`  r†   r]  rN   rˆ   Ú
get_blocksÚ_drop_run_streamsr1   Ú	iteratorsr0   Úreset_iteratorsr”   r
   rÍ   rC  rÀ   r€   r/  r6   r4   rà   r3   r­  Úbatchedr«   r   r%  r&  r'  rþ   r   rÿ   rf   r2   r=   r>   r?   Úqueue_wait_msr   r(  r<   rK   rP   Ú
isinstancer   Úprint_exceptionÚ	tracebackÚ	print_excr!   Ú
show_errorr   r   r   Úprocess_generatingÚprocess_streamingrO   r	   r–   r   r³  rt   rð   r   r   rŠ  Údict)$rB   rW  r  Ú
begin_timer2   r±  r´   râ   Útracerò   r�  r  r�   rc  rú   r4   r  r4  rþ   Úfirst_iterationrÔ   r6  ÚendÚerrr®   ÚcontentÚold_responseÚold_errr²  Úclosed_eventr  rö   Úcache_sourcer  Úend_timerw  s$                                       rC   r^  ÚQueue.process_events%  s5  é € ð %'ˆØˆðs	>Û�Ø—;—;‘;Ø×%Ñ%ØÜ,à!×%=Ñ%=Ó=ð !%× 8Ñ 8¸Ñ <× EÒ Eà!%ñôð !×'Ñ'¨Ö.ñ  ÷  Ø÷h !Ò Ü)Ó+�ØÑ$Ü—M’M %Ô(à×=Ñ=¸fÀQ¹i×>VÑ>VÑWˆKØ×+Ò+¨qÑ0Õ+Ø%×8Ñ8×<Ñ<¸RÓ@ˆKØÑ&Ø×#Ñ# JÔ/Þ"Ø#×6Ñ6°rÐ:ðØCG�× Ñ  ×!1Ñ!1×!7Ñ!7¸Ó!?Ñ@ð —/‘/ˆCØ‰ØŸ™Ó)�Û#�Eð ×,Ñ,Ø×*Ñ*¨C¯M©M×,=Ñ,=¸e¿i¹iÓ,Höñ $ó  �ð
 ×*Ñ*¨5¯9©9Ó5×5Ð5à×-Ñ-×1Ñ1°%·)±)Ó<Ð<�AÑIð !Ó0ö '.™±8à(ð �h‘Kô
 Ø×2Ñ2Ü˜×-Ñ-×4Ñ4Ó6Ó7ó÷ ð ð
 ×(Ñ(×,Ñ,¨U¯Y©Y¸Ö=ò%  ðe "ˆFØ˜!‘9—>‘>ˆDØ‰|Ü  Ó1Ð1Ø˜a‘y×)Ñ)ˆHÞ16˜F 1™IŸMšM¸DˆDŒMðØ% a™y×0Ñ0�”ö Ü ÜÙ7=ÓL²v¨eÇÅ›/˜%Ÿ*™*Ÿ/œ/±vÑLðà$ñó�”	ð  & a™y×0Ñ0�”Ø#�”à—/‘/ˆCØ‰{ÜÐ >Ó?Ð?ä$×7Ò7ØØØ!Øñ	ˆJð —<‘<Ñ+Ð+Ð+Ü(×:Ò:À4Ç<Á<ÑPˆNÜ#×0Ò0ØŸ™Ø)ØŸ-™-ñˆIð
  ˆOç Ò Ü$Ø# A™YŸ]™]ØŸK™K×5¬3¨r¯u©u«:Ø!'¨¡×!7Ñ!7ñ�ô
 (,§~¢~Ó'7¸&À¹)×:PÑ:PÑ'PÐTXÑ&X�Ô#Ü! %Õ(à�ð#ÜŸšÓ(�Ü!,×!=Ò!=ØØØ)ØØ'ñ"÷ �ô —n’nÓ&�Ø"%¨¡+�Ø�Û)�EØ—N’N c¨E¡kÑ1•NØ——‘Ø8=×8IÑ8IÔ4I˜ Ó1ñ *÷0 ˜HŸL™L¨¸%×@Ò@Ø'�Ø�ß 8§<¡<°À×#GÒ#GÜ ŸNšNÓ,�EØ#+�LØ!�GÛ!-˜Ø×)Ñ)Ø!Ü4à',§§ô %2×$DÒ$Dä%2×%DÑ%DØ'3Ø(4¸DÐ(@à')§}§}ñ ,0ð $)§?§?ô &*¬#¨r¯}©}Ó%=ÀÒ%Oà%)ñöñ ".ñ  8DÓ#S²|¨eÇ{Å{§E±|�LÐ#Sß'Ø÷D !Ò Ü)Ó+�ØÑ$Ü—M’M %Ô(à×=Ñ=¸fÀQ¹i×>VÑ>VÑWˆKØ×+Ò+¨qÑ0Õ+Ø%×8Ñ8×<Ñ<¸RÓ@ˆKØÑ&Ø×#Ñ# JÔ/Þ"Ø#×6Ñ6°rÐ:ðØCG�× Ñ  ×!1Ñ!1×!7Ñ!7¸Ó!?Ñ@ð —/‘/ˆCØ‰ØŸ™Ó)�Û#�Eð ×,Ñ,Ø×*Ñ*¨C¯M©M×,=Ñ,=¸e¿i¹iÓ,Höñ $ó  �ð
 ×*Ñ*¨5¯9©9Ó5×5Ð5à×-Ñ-×1Ñ1°%·)±)Ó<Ð<�AÑIð !Ó0ö '.™±8à(ð �h‘Kô
 Ø×2Ñ2Ü˜×-Ñ-×4Ñ4Ó6Ó7ó÷ ð ð
 ×(Ñ(×,Ñ,¨U¯Y©Y¸Ö=ò%  ðC4 Ü $§¢Ó 0˜Ø'¨™?×4×4Ü@E×@TÑ@TØ ,ô
 "&¤e¨R¯]©]×-@¸bÓ!AÀOÑ!SÐ TÜ"% lÓ"3ñ!4óA÷ ;Ñ7˜L¨-ó 1> Ø $× 1Ñ 1Ø$0Ü$;Ø/7Àñ%&ö!"ñ 1>ö  ,Ù!ð *¨!™_×/Ñ/˜Ü#Ô$7¸Àa¹×9MÑ9MÓN˜Þ Ü(,Ü #ñ 6<ó&&â5;¨EØ+0¯:­:ó )8¨¯
©
¯¬Ù5;ñ&&ð!"ð ,1ñ!"ó	)˜DœIô *5×)EÒ)EØ #Ø!%Ø'1Ø!Ø&/ñ*÷ $˜ô #ŸnšnÓ.˜Û%1˜EØ!ŸNšN¨c°E©kÑ9�NØ$ŸŸ™Ø@E×@QÑ@QÔ<Q ¨Ó 9ñ &2öG  8§<¡<°À×#GÔ#GöZ Ø"�GØ%‘Fà#�GØŸN 7�EÜ*¨5°#·.±.Ó2B×2MÑ2MÓN�FØ%�æØ"ŸJ™J |×4Ñ4Þ$Ø$×(Ñ(¨×6Ñ6à#/�LÞ?F˜\×-Ñ-¨lÔ;ÈD�
ð "Ð%8Ó8ô œÐ!2Ñ3°ZÔ@àð ó
 *�EØ×%Ñ%ØÜ/Ø#)Ø$+Ø'1Ø+7×+;Ñ+;¸JÓ+GØ%1×%5Ñ%5Ð6HÓ%Iñö	ò *ö Ü )¨,Ö 7‘H�A�uô " (›^�FÞ ¨6Ó!1Ü)-¬c°8·<±<ÀÓ3GÐ.VÐPUÑ.VÓ)WØñ*˜˜v™ð '¨dÐ2�GÞ=D §¡¨LÔ!9È$�Jð &Ð)<Ó<ô œWÐ%6Ñ7¸ÔDà!ð ð
 ×%Ñ%ØÜ/Ø#)Ø$+Ø'1Ø+1¯:©:°jÓ+AØ%+§Z¡ZÐ0BÓ%Cñö	ñ !8ô2 —y’y“{ˆHØÑ#ð " !™9×.×.ð ˜zÒ)à(ð ð
  —|‘| L×1Ñ1Ø×,Ñ,¨V°A©Y¯\©\Ñ:×>Ñ>¸xÔHÛ#�EØ!×1Ñ1×5Ñ5°e·i±iÓ@Ð@˜ÓMØ,4˜˜.Ó)ñ $÷ !Ò Ü)Ó+�ØÑ$Ü—M’M %Ô(à×=Ñ=¸fÀQ¹i×>VÑ>VÑWˆKØ×+Ò+¨qÑ0Õ+Ø%×8Ñ8×<Ñ<¸RÓ@ˆKØÑ&Ø×#Ñ# JÔ/Þ"Ø#×6Ñ6°rÐ:ðØCG�× Ñ  ×!1Ñ!1×!7Ñ!7¸Ó!?Ñ@ð —/‘/ˆCØ‰ØŸ™Ó)�Û#�Eð ×,Ñ,Ø×*Ñ*¨C¯M©M×,=Ñ,=¸e¿i¹iÓ,Höñ $ó  �ð
 ×*Ñ*¨5¯9©9Ó5×5Ð5à×-Ñ-×1Ñ1°%·)±)Ó<Ð<�AÑIð !Ó0ö '.™±8à(ð �h‘Kô
 Ø×2Ñ2Ü˜×-Ñ-×4Ñ4Ó6Ó7ó÷ ð ð
 ×(Ñ(×,Ñ,¨U¯Y©Y¸Ö=ò%  øô% ó ò
 ðúò. 6òøôo ó Úðüò MòNøô ó Ü! !¤U×+Ñ+¨q×/@×/@Ü×'Ò'Ô)Ø�Ø�Û)�EÜ+¨C°·±Ó1A×1LÑ1LÓM�GØ×%Ñ%ØÜ/Ø#*Ø")§+¡+¨g°wÓ"?Ø$)ñôô #Ø×6Ñ6Ü˜T×1Ñ1×8Ñ8Ó:Ó;ó÷ ó ÷ *ûðüòT $Tøôd ó ò
 ðúò. 6òòW;ùò2&&ò$øô %ó  Ü)¨!¬U×3Ñ3°q×7H×7HÜ%×/Ò/Ô1Ø#'˜Øžûð	 ûôZ ó 	&Ü˜a¤×'Ñ'¨1×+<×+<Ü×#Ò#Ô%ÿùð	&ûô$ ó ò
 ðúò. 6òø÷[ !Ò Ü)Ó+�ØÑ$Ü—M’M %Ô(à×=Ñ=¸fÀQ¹i×>VÑ>VÑWˆKØ×+Ò+¨qÑ0Õ+Ø%×8Ñ8×<Ñ<¸RÓ@ˆKØÑ&Ø×#Ñ# JÔ/Þ"Ø#×6Ñ6°rÐ:ðØCG�× Ñ  ×!1Ñ!1×!7Ñ!7¸Ó!?Ò@øÜó ñ
 ðúð —/‘/ˆCØ‰ØŸ™Ó)�Û#�Eð ×,Ñ,Ø×*Ñ*¨C¯M©M×,=Ñ,=¸e¿i¹iÓ,Höñ $ó  �ð
 ×*Ñ*¨5¯9©9Ó5×5Ñ5à×-Ñ-×1Ñ1°%·)±)Ó<Ð<�AÑIð !Ó0ö '.™±8à(ð �h‘Kô
 Ø×2Ñ2Ü˜×-Ñ-×4Ñ4Ó6Ó7ó÷ ñ ð
 ×(Ñ(×,Ñ,¨U¯Y©Y¸Ö=ò%  üsÓ  ‚AJˆA@  AA@ Á?B"AJÄ"(y& Å
B
AJÇy7ÇA;AJÉy:É/AJÊ AA@ Ëy= Ë A@ Ë5zÌzÌ'EA@ Ñ.0z ÒzÒAz Ó/z ÔC8A@ ×?~Ø~Ø
A@ Ø(B"AJÛ(~
 Û3B
AJÝ=~Ý>A;AJß9~ß:/AJà*A3~, â~!â1~, ãA@ ãA~, ä~$ä+~$å+~, å0~)å1A~, æ:~, çA@ ç3I%A@ ñ	A@ ñ%B"AJô(AA ô0B
AJö:AA'ö;A;AJø6AA*ø7/AJù&
y4ù0AJù3y4ù4AJù:AJù=
zúA@ ú
zúA@ úz ú
~ú C}=ý-}0ý.	}=ý7A@ ý=~þA@ þ

~þAJþ~þAJþAJþ!~, þ$~, þ,
A@ þ6?;ÿ5A@ ÿ;A@ Á@ A@ Á@
AAÁ@;AAÁAAA- ÁAAAÁAAA- ÁA
AA$ÁA AJÁA#AA$ÁA$AJÁA*AJÁA-B#AJÁD(AD:ÁD9AJÁD:
AEÁEAJÁEAEÁEBAJÁGAG
ÁGA<AJÁIAI
ÁI0AJÁJAJc              ƒ  óf  #   • U R                   nUc  [        S5      eXR                  ;  a  g UR                   IS h  v•N    [	        UR                  U   5      I S h  v•N   UR                  U	 S S S 5      IS h  v•N   g  NC N$! [         a     N.f = f N! , IS h  v•N  (       d  f       g = f7f)Nr¸  )rˆ   r«   r¿  Úlockr#   )rB   rà   r  s      rC   rÀ  ÚQueue.reset_iteratorsc  s“   é € à�o‰oˆØ‰;ÜÐ:Ó;Ð;ØŸ=™=Ó(àØ—8—8“8ðÜ*¨3¯=©=¸Ñ+BÓC×CÐCð —‘˜hÐ'÷ —8ð 	ñ áCøÜó Ùðú÷ —8—8ð 	üs{   ‚;B1½B¾B1ÁBÁBÁBÁBÁ#BÁ0B1Á;BÁ<B1ÂBÂ
BÂBÂBÂBÂB1ÂB.ÂB ÂB.Â*B1)r™   rž   r‘   r†   r�   r›   r“   r‡   r”   r�   r€   r‚   rœ   rš   rŠ   r�   r„   r   r�   r~   r‰   rŽ   rˆ   r�   rƒ   r…   )rè   )rŠ   ÚboolrŸ   r–   r…   rt   r�   rg   r�   r(   r“   úint | None | Literal['not_set'])rØ   r'   )râ   r*   rã   r   )r“   rÛ  Úreturnrg   )rú   r   r3   rS   r4   rR   rÜ  zetuple[bool, str | list[dict[str, Any]], Literal['success', 'error', 'queue_full', 'validator_error']])rà   rf   )r  z
routes.App)rÜ  r–   )rÜ  z$tuple[list[Event], bool, str] | None)rÜ  ÚNone)rà   rf   ro  zlist[TrackedIterable] | None)é
   T)rà   rf   ru  rf   ry  rf   rv  z%Literal['info', 'warning', 'success']rw  zfloat | Nonerx  rÚ  )r1   rR   rà   rR   rÜ  rÝ  rÐ   )r5   rf   r‹  rg   rÜ  rÝ  )rÜ  r   )râ   r*   rÜ  rf   )rœ  rt   rÜ  rf   )râ   r*   rœ  rt   rÜ  zLiteral['signal', 'timeout'])rW  úlist[Event]r¯  zlist[float]rÜ  ztuple[list[Event], list[Event]])
rW  rß  r  rÚ  rË  rt   r2   r'   rÜ  rÝ  )#rT   rU   rV   rW   rD   Ústaticmethodr¯   rÍ   rÔ   rÚ   rÝ   rå   r’   ró   r;  r@  rG  rJ  rO  rX  rÑ   rÒ   rr  rz  r€  rÓ   r2  r•  r™  rœ  r©  r³  r^  rÀ  rY   rZ   rF   rC   r   r   z   so  † ð FOð.
àð.
ð ð.
ð  ð	.
ð
 ð.
ð ð.
ð $Cõ.
ð` ñó ðò3ò@8ôKò*ð	+àð	+ð $ô	+ðØ)Hðà	ôò,ðA*Ø'ðA*Ø2AðA*ØMWðA*ð
ôA*ôF	ò$ô
ôô5ô2-)ô^Fð(0àð0ð 0ô0ð> "$Øð6àð6ð ð6ð ð	6ð
 5ð6ð ð6ð õ6ð, -1ÈñKØ)ðKØ<FðKà	õKô8?ð 8<ð@#Ø!ð@#Ø*4ð@#à	õ@#ôD
ð
 óó ðð óó ðð ð;Øð;Ø$ð;à	%ó;ó ð;ð ð+Øð+Ø'2ð+à	(ó+ó ð+ð,|>àð|>ð ð|>ð ð	|>ð
 ð|>ð 
ô|>÷|	rF   r   c                óÀ  • / n/ nU(       aT  UR                   (       aC  [        R                  " UR                   5      n[        UR                  R                  5       5      n[        U [        5      (       a‡  [        U 5       Hw  u  pV[        U[        5      (       aI  UR                  SS 5      S:X  a3  U[        U5      :  a  X5   OSU 3n0 UESU0EnUR                  U5        Mc  UR                  SSS.5        My     OP[        U [        5      (       a'  U R                  SS 5      S	L a  UR                  U 5        OUR                  SSS.5        [        S
 U 5       5      U4$ )NÚ__type__ÚvalidateÚ
parameter_Úparameter_nameTÚ )r8  Úmessager8  Fc              3  óH   #   • U  H  oR                  S S5      SL v •  M     g7f)r8  NT)rÃ   )Ú.0Úxs     rC   Ú	<genexpr>Ú.process_validation_response.<locals>.<genexpr>”  s!   é € ð Ú1@¨A�‰ˆj˜$Ó 4Õ'²ùs   ‚ ")r2   ÚinspectÚ	signaturerC  Ú
parametersrR  rÃ  rŠ  rÊ  rÃ   rð   r.  Úall)	r7  r2   r9  Úparam_namesÚsigÚir6   Ú
param_nameÚdata_with_names	            rC   r)  r)  t  sC  € ð -/€Oà€KÞ	ˆb�e�eÜ×Ò §¡Ó&ˆÜ˜3Ÿ>™>×.Ñ.Ó0Ó1ˆäÐ%¤t×,Ñ,Ü Ð!4Ö5‰GˆAÜ˜$¤×%Ñ%¨$¯(©(°:¸tÓ*DÈ
Ó*Rà&'¬#¨kÓ*:Ó&:�K’NÀ*ÈQÈCÐ@Pð ð "H DÐ!GÐ*:¸JÑ!G�Ø×&Ñ& ~Ö6à×&Ñ&°DÀRÑ'HÖIò 6ô 	Ð&¬×-Ñ-Ø×#Ñ# J°Ó5¸Ò>à×ÑØõ	
ð 	×Ñ¨D¸RÑ@ÔAäñ Ù1@óó àðð rF   rÐ   )r7  z%list[dict[str, Any]] | dict[str, Any]r2   zBlockFunction | NonerÜ  z!tuple[bool, list[dict[str, Any]]])DÚ
__future__r   r@   rí  r—   r‹   rS  r=   rÅ  r-   r   r+  Úcollectionsr   Útypingr   r   r   r	   ÚfastapiÚnumpyr¨   Úanyio.to_threadr
   Úgradior   r   Úgradio.cachingr   r   Úgradio.data_classesr   Úgradio.exceptionsr   Úgradio.helpersr   Úgradio.profilingr   r   r   r   r   Úgradio.server_messagesr   r   r   r   r   r   r   r   r   Úgradio.utilsr    r!   r"   r#   r$   r%   Úblock_functionr'   Úgradio.block_functionÚgradio.blocksr(   r*   r\   ri   r)  rZ   rF   rC   Ú<module>r     sÉ   ðÝ "ã Û Û 	Û Û Û Û Û Ý 'Ý #ß 4Ó 4ã Û Ý $ç &ß 5õõ $Ý *÷õ ÷
÷ 
õ 
÷÷ õ *æÝ3Ý$÷$3ñ $3÷N
ñ 
÷	7ñ 	7÷wñ wðx  $ð"Ø>ð"àð"ð 'ö"rF   