
    ;3h_}                    `   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZmZmZ d dlZd dlmZmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z, erd dl-m.Z.m/Z/  G d d      Z0 G d d      Z1 G d d      Z2 G d d      Zy)    )annotationsN)defaultdict)Queue)TYPE_CHECKINGLiteralcast)route_utilsroutes
wasm_utils)PredictBodyInternal)Error)TrackedIterable)	EstimationMessageEventMessage
LogMessageProcessCompletedMessageProcessGeneratingMessageProcessStartsMessageProgressMessageProgressUnitServerMessage)LRUCacheerror_payloadrun_coro_in_backgroundsafe_get_lockset_task_name)BlockFunctionBlocksc                  D    e Zd Z	 	 	 	 	 	 	 	 ddZed        Zed        Zy)Eventc                F   t        j                         j                  | _        |xs | j                  | _        || _        || _        || _        |j                  | _        d | _	        d | _
        d| _        d| _        d| _        d| _        t        j                          | _        y )NFTr   )uuiduuid4hex_idsession_hashfnrequestusernameconcurrency_iddataprogressprogress_pendingaliven_callsrun_timeasyncior    signal)selfr&   r'   r(   r)   s        O/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/gradio/queueing.py__init__zEvent.__init__.   s     ::<##!-!9  //04	04&+
 mmo    c                4    | j                   j                  dk(  S )Nstream)r'   
connectionr3   s    r4   	streamingzEvent.streamingC   s    ww!!X--r6   c                    | j                   st        d      | j                  j                  y| j                  | j                  j                  k\  S )Nz6Cannot access if_finished during a non-streaming eventF)r;   
ValueErrorr'   
time_limitr0   r:   s    r4   is_finishedzEvent.is_finishedG   sA    ~~UVV77%}} 2 222r6   N)r&   
str | Noner'   r   r(   fastapi.Requestr)   r@   )__name__
__module____qualname__r5   propertyr;   r?    r6   r4   r    r    -   sU    & & & !	&
 &* . . 3 3r6   r    c                      e Zd ZddZy)
EventQueuec                d    g | _         || _        || _        d| _        t	        t
              | _        y Nr   )queuer*   concurrency_limitcurrent_concurrencyr   setstart_times_per_fn)r3   r*   rL   s      r4   r5   zEventQueue.__init__Q   s2    "$
,!2#$ JUK
r6   N)r*   strrL   
int | None)rB   rC   rD   r5   rF   r6   r4   rH   rH   P   s    
r6   rH   c                      e Zd Zd ZddZy)ProcessTimec                .    d| _         d| _        d| _        y rJ   process_timecountavg_timer:   s    r4   r5   zProcessTime.__init__\   s    
r6   c                    | xj                   |z  c_         | xj                  dz  c_        | j                   | j                  z  | _        y )N   rU   )r3   times     r4   addzProcessTime.adda   s6    T!

a
))DJJ6r6   N)r[   float)rB   rC   rD   r5   r\   rF   r6   r4   rS   rS   [   s    
7r6   rS   c                     e Zd Z	 d	 	 	 	 	 	 	 	 	 	 	 ddZd ZddZd Z	 	 	 	 d dZ	 	 	 	 d!dZd Z		 	 	 	 	 	 	 	 d"dZ
d	 Zd#d
Zd$dZd%dZd&dZd&dZ	 	 	 	 d'dZ	 	 d(	 	 	 	 	 	 	 	 	 	 	 d)dZddd	 	 	 	 	 d*dZd&dZ	 d+	 	 	 	 	 d,dZd-dZed.d       Zed/d       Ze	 	 	 	 	 	 d0d       Ze	 	 	 	 	 	 d1d       Z	 	 	 	 	 	 	 	 d2dZd3dZy)4r   c                   t        d      | _        i | _        i | _        t	               | _        i | _        d| _        || _        || _	        g | _
        t	               | _        d | _        t        t              | _        || _        d| _        d| _        || _        || _        g | _        | j-                  |      | _        i | _        y )Ni  Fg?g?)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   rS   process_time_per_fnlive_updatessleep_when_freeprogress_update_sleep_when_freemax_sizeblocks_asyncio_tasks_resolve_concurrency_limitdefault_concurrency_limitevent_analytics)r3   rl   concurrency_countrg   ro   rp   rs   s          r4   r5   zQueue.__init__h   s     TN 	) ?A&57 $1O!EG+ 1 057(?LWM
  )#/2, 24)-)H)H%*
& JLr6   c                    d g| j                   z  | _        t        | j                         t        | j                         | j
                  st        | j                         y y N)rf   rh   r   start_processingstart_progress_updatesrl   notify_clientsr:   s    r4   startzQueue.start   sO     6D$9$99t445t::;  "4#6#67 !r6   c                &   |j                   }|j                  dk(  r| j                  }n|j                  }|| j                  vrt	        ||      | j                  |<   y |3| j                  |   }|j                  ||j                  k  r||_        y y y )Ndefault)r*   rL   rs   rd   rH   )r3   block_fnr*   rL   existing_event_queues        r4   create_event_queue_for_fnzQueue.create_event_queue_for_fn   s    !00%%2 $ > > ( : :!D!DDBL 1CD//? )#'#F#F~#V $66>$';'M'MM9J$6 N *r6   c                    d| _         y )NT)re   r:   s    r4   closezQueue.close   s	    r6   c                    |j                   sy |j                  |_        | j                  |j                     }|j                  |       y rw   )r.   r%   event_idr`   r&   
put_nowait)r3   eventevent_messagemessagess       r4   send_messagezQueue.send_message   s>    
 {{!&44U5G5GHM*r6   c                    |dk7  r|S t         j                  j                  d      x}r|j                         dk(  ryt	        |      S y)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.queu()`.
        not_set GRADIO_DEFAULT_CONCURRENCY_LIMITnoneNrZ   )osenvirongetlowerint)r3   rs   default_concurrency_limit_envs      r4   rr   z Queue._resolve_concurrency_limit   sW     %	1,,,.JJNN.-
 
( 
 -224>899r6   c                x    d}| j                   j                         D ]  }|t        |j                        z  } |S rJ   )rd   valueslenrK   )r3   	total_lenevent_queues      r4   __len__zQueue.__len__   s@    	>>EEG 	0K[..//I	0r6   c                  K   |j                   y| j                  6t        |       | j                  k\  rdd| j                   dt        |        dfS |j                  rG| j                  j
                  |j                     }|j                  j                  |j                      }n#| j                  j                  |j                      }t        j                  | j                  d |      }| j                  |       t        |j                  |||      }||_        |j                  |j                  |_        | j                  4 d {    |j                  | j                  vr!t               | j                  |j                  <   |j                  | j                   vr!t#               | j                   |j                  <   d d d       d {    | j                   |j                     j%                  |j&                         || j(                  |j&                  <   	 | j*                  |j,                     }|j0                  j3                  |       t5        j4                         dd |j6                  |j                  d| j8                  |j&                  <   | j;                  |j,                  t        |j0                        d	z
         d
|j&                  fS 7 7 # 1 d {  7  sw Y   xY w# t.        $ r}t/        d      |d }~ww xY ww)N)FzNo function index provided.FzQueue is full. Max size is z and size is .zEvent 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[   statusrV   functionr&   rZ   T)fn_indexro   r   r&   rp   state_holderblocks_configfnsr	   get_fnr   r    r+   rc   r`   ThreadQueuera   rN   r\   r%   rb   rd   r*   KeyErrorrK   appendr[   api_namert   broadcast_estimations)	r3   bodyr(   r)   session_stater'   r   r   es	            r4   pushz
Queue.push   s     == 7==$Tdmm)C-dmm_M#d)TUV 
  KK44T5F5FGM,,00?B/BT48&&r*	
 
$ % 2 2D,, 	J 	J  (I(IIGR}11$2C2CD  (F(FFDGE..t/@/@A		J 	J
 	&&t'8'89==eiiH.3  +	==e>R>RSK
 	  'IIK  --+
UYY' 	""5#7#7[=N=N9ORS9STUYY/	J 	J 	J 	J 	J  	 R	so   ELKL
A3K=LK	ALK. 2B!LLK+K!K+&L.	L7LLLc                T    | j                   D ]  }|j                           g | _         y rw   )rq   cancel)r3   tasks     r4   _cancel_asyncio_taskszQueue._cancel_asyncio_tasks  s(    '' 	DKKM	 r6   c                    || _         y rw   )rj   )r3   apps     r4   set_server_appzQueue.set_server_app  s	    r6   c                <    d}| j                   D ]
  }||dz  } |S Nr   rZ   )rh   )r3   rW   workers      r4   get_active_worker_countzQueue.get_active_worker_count  s2    && 	F!
	 r6   c                \   t        | j                  j                               }t        j                  |       |D ]  }| j                  |   }t        |j                        s(|j                  |j                  |j                  k  sN|j                  d   }|j                  }|g}|j                  }|rI||j                  dd  D cg c]  }|j                  |j                  k(  r| c}d |j                  dz
   z  }|D ]  }|j                  j                  |        |||fc S  y c c}w r   )listrd   keysrandomshuffler   rK   rL   rM   r'   batchmax_batch_sizeremove)	r3   concurrency_idsr*   r   first_eventr~   eventsr   r   s	            r4   
get_eventszQueue.get_events  s-   tBBGGIJ'- 	5N==nMK;$$%--522[5R5RR)//2&>>% %0%6%6qr%:! 88{~~5  4//!3	5 5F $ 4E%%,,U34 un44)	5s   "D)c                  K   	 | j                   st        |       dk(  r(t        j                  | j                         d {    Cd | j
                  vr(t        j                  | j                         d {    y| j                  4 d {    | j                         }d d d       d {    rE|\  }}}|| j
                  | j
                  j                  d       <   | j                  |   }|xj                  dz  c_
        t        j                         }|j                  |d   j                     j                  |       |D ]  }d| j                  |j                      d<     t#        | j$                  |||      }t'        ||d   j(                  |d   j                  j                   |d   j                   |       | j*                  j-                  |       | j.                  r9| j1                  |       n't        j                  | j                         d {    | j                   sd| _         | j3                          y 7 7 7 7 # 1 d {  7  sw Y   xY w7 L# d| _         | j3                          w xY ww)Nr   rZ   
processingr   T)re   r   r1   sleeprm   rh   ri   r   indexrd   rM   r[   rO   r'   r\   rt   r%   r   process_eventsr   r&   rq   r   rl   r   r   )	r3   event_batchr   r   r*   r   
start_timer   process_event_tasks	            r4   rx   zQueue.start_processing0  s0    )	)llt9>!--(<(<===t///!--(<(<===  ++ 4 4"&//"3K4 4 4?1FE>EKD$$T%5%5%;%;D%AB"&"E"En"UK33q83!%J226!9<<@DDZP!' QDP,,UYY7AQ)?++VUJ*& "*q	..q	((q	 ''../AB((22>B!--(<(<===K llN  DL&&(M > >4 4 4 4 46 >DL&&(s   J=I+ I5I+ 7I
8I+ II+ I"I+ -I.E.I+ I)I+ /JI+ 
I+ I+ I+ I&II&!	I+ +JJc                  K   | j                   s| j                  D cg c]  }||D ]  }|  }}}t        |      dk(  r(t        j                  | j
                         d{    g|D ]?  }|j                  s|j                  sd|_        | j                  ||j                         A t        j                  | j
                         d{    | j                   syyc c}}w 7 7 w)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)	re   rh   r   r1   r   rn   r-   r,   r   )r3   jobevtr   r   s        r4   ry   zQueue.start_progress_updates\  s      ,,%)%5%5XcTWXScXcXFX6{ammD$H$HIII =))enn-2E*%%eU^^<=
 -- D DEEE ,,X J FsE   C.C$C$3C.$C*%C.<C.	AC.C,C."	C.,C.c           
     H   |y | j                   D ]  }||D ]  }|j                  |k(  sg }|D ]U  }t        |j                  |j                  |j
                  |j                  |j                        }|j                  |       W t        |      |_        d|_
          y )N)r   lengthunitr,   desc)progress_dataT)rh   r%   r   r   r   r   r,   r   r   r   r-   )r3   r   	iterablesr   r   r   iterableprogress_units           r4   set_progresszQueue.set_progressp  s    
 ## 	0C{ 077h&8:M$- <(4"*..#+??!)%-%6%6!)) &,,];< $3#OCL+/C(0	0r6   c                    | j                   D cg c]  }||D ]  }|  }	}}|	D ]4  }
|
j                  |k(  st        |||||      }| j                  |
|       6 y c c}}w )N)logleveldurationvisibletitle)rh   r%   r   r   )r3   r   r   r   r   r   r   r   r   r   r   log_messages               r4   r   zQueue.log_message  sz     "&!1!1T#S_PST#T#TT 		6EyyH$(%# !!%5		6 Us
   A A N)r&   r   c               @  K   | j                   D ]2  }|s|D ](  }|j                  |k(  s|j                  |k(  s"d|_        * 4 | j                  4 d {    g }| j
                  j                         D ]C  }|j                  D ]2  }|j                  |k(  s|j                  |k(  s"|j                  |       4 E |D ]4  }| j
                  |j                     j                  j                  |       6 d d d       d {    y 7 7 # 1 d {  7  sw Y   y xY ww)NF)rh   r&   r%   r.   ri   rd   r   rK   r   r*   r   )r3   r&   r   job_setr   events_to_remover   r   s           r4   clean_eventszQueue.clean_events  s"     '' 	*G" *C''<7377h;N$)	*	* ## 
	 
	,.#BBIIK 7(.. 7E))\9UYY(=R(//677
 * 33E4H4HIOOVV
	 
	 
	 
	 
	 
	 
	sY   D#DDDDAD	&AD	4D?D DD	DDDDc                   K   | j                   set        j                  | j                         d{    t	        |       dkD  r"| j
                  D ]  }| j                  |        | j                   sdyy7 Cw)zQ
        Notify clients about events statuses in the queue periodically.
        Nr   )re   r1   r   rg   r   rd   r   )r3   r*   s     r4   rz   zQueue.notify_clients  sa      ,,-- 5 56664y1}&*&I&I ?N..~>? ,,6s   /A7A5A A73A7c                   d}| j                   |   }d}|j                  |j                  k(  rg }|j                  j	                         D ]f  \  }}|| j
                  vrd } nQ|j                  dk(  r|j                  xs d}	n| j
                  |   j                  }	||D 
cg c]  }
|
|	z   	 c}
z  }h |:t        |      dkD  r,t        |      }t        |t        j                         z
  d      }t        |j                        D ]  \  }}|j                  | j
                  v r#| j
                  |j                     j                  nd }||
|||z   |z   nd }|||k\  r1| j!                  |t#        ||t        |j                                     |j                  d}|6|4||j                  z  }|j$                  r|xs d|j                  z  }||z  }d } y c c}
w )Nr   r8   )rankrank_eta
queue_size)rd   rM   rL   rO   itemsrk   r9   r>   rX   r   minmaxr[   	enumeraterK   r'   r   r   r;   )r3   r*   afterwait_so_farr   time_till_available_workerexpected_end_timesr'   start_timesrV   r   time_of_first_completionr   r   process_time_for_fnr   deltas                    r4   r   zQueue.broadcast_estimations  s#    99.I12"**k.K.KK!##.#A#A#G#G#I 
KT55515.==H,#%==#5AL#'#;#;B#?#H#HL"@K'2<J-' "
 *5#>P:QTU:U+./A+B(-0,tyy{:A.* %[%6%67 &	#KD% 88t777 ((2;;   '2+.: $k14NN   }!!%!H[EVEVAW ,,4(-@-L+k.K.KK??27a#556E u$"M&	#'s   Gc                ,    t        t        |             S )N)r   )r   r   r:   s    r4   
get_statuszQueue.get_status  s     4y
 	
r6   c                T   K   | j                   j                          d {    y7 w)Nr2   )r2   wait)r   s    r4   wait_for_eventzQueue.wait_for_event  s$     ll!!! 	"s   (&(c                J   K   t        j                  |        d {    y7 w)Ntimeout)r1   r   )r   s    r4   r   zQueue.timeout	  s      mmG$$$ 	%s   #!#c                  K   t        j                  t        j                  |             }t        j                  t        j	                  |            }t        j
                  ||gt         j                         d {   \  }}|D cg c]  }|j                          }}| j                  j                          t        t        d   |d         S 7 Tc c}w w)Nreturn_when)r2   r   r   )r1   create_taskr   r   r   r   FIRST_COMPLETEDresultr2   clearr   r   )r   r   t1t2done_ds          r4   wait_for_event_or_timeoutzQueue.wait_for_event_or_timeout  s        !5!5e!<=  w!78H//
 
a %))q
))G/0$q'::
 *s$   A;C=C>C	C 3CCc           	       K   g }t        | |d      D ]=  \  }}|j                  t        j                  t        j                  ||                   ? t        j                  |t        j                         d {   \  }}|D cg c]  }|j                          }}g }g }	t        || d      D ]-  \  }
}|
dk(  r|j                  |       |	j                  |       / ||	fS 7 jc c}w w)NF)strictr   r2   )	zipr   r1   r   r   r  r   ALL_COMPLETEDr   )r   timeoutstasksr   r   r  r  r  awake_eventsclosed_eventsr   s              r4   wait_for_batchzQueue.wait_for_batch  s      !&(5A 	NE7LL##E$C$CE7$ST	  --
 
a %))q
)) ve< 	,MFE!##E*$$U+		,
 ]**
 *s%   A9C-;C&<C-C(A	C-(C-c                B  K   g }|d   j                   }d}	 |D ]c  }|j                  s| j                  |t        || j                  v r| j                  |   j
                  nd              |j                  |       e |s	 | j                  |d   j                     }|xj                  dz  c_	        |j                  |   }	||	v r|	j                  |       	 d | j                  | j                  j                  |      <   |D ]f  }| j                  |j                          d {    ||v r!|rdnd| j"                  |j                      d<   Kd| j"                  |j                      d<   h y |}|d   j$                  }
|
t        d	      |d   j&                  }|s|d   j                   nd |
_        	 |d   j*                  |
_        |rct-        t/        |D cg c]%  }|j$                  s|j$                  j$                  ' c}d
di      |
_        |d   j*                  |
_        d|
_        | j2                  }|t5        d      t7        j8                  |
||d       }|
j*                  J t7        j:                  |
j*                        }t7        j<                  |
j*                  ||j>                        }d}	 tA        jB                         }t7        jD                  ||
|||       d {   }tA        jB                         }||z
  }d }|D ]7  }|xjF                  ||z
  z  c_#        |jH                  s(|jJ                   |d<   9 	 |r|jc                  dd      r|}|}|rD|jc                  dd      r1tA        jB                         }|}|}|D ]  }| j                  |te        |jH                  stf        jh                  ntf        jj                  ||d u|jl                  sd n*|jH                  rto        tp        |jl                        |z
  nd               |D cg c]  }|j                  s| }}|s	 | j                  |d   j                     }|xj                  dz  c_	        |j                  |   }	||	v r|	j                  |       	 d | j                  | j                  j                  |      <   |D ]f  }| j                  |j                          d {    ||v r!|rdnd| j"                  |j                      d<   Kd| j"                  |j                      d<   h y 	 tA        jB                         }|d   jH                  rqtr        ju                  |to        tv        |jl                  xs d      |z
  gty        |      z         d {   \  }}|D ]  }| j                  |ta        |d             ! |snto        tz        |d   j$                        }
|rGt-        t/        |D cg c]$  }|j$                  r|j$                  j$                  & c}d
di      |
_        t7        jD                  ||
|||       d {   }tA        jB                         }|D ]7  }|xjF                  ||z
  z  c_#        |jH                  s(|jJ                   |d<   9 	 |r|jc                  dd      r1|rd}|}nAd}|xs |}tW        ||jY                         jZ                        }t]        j^                  |       |D ]  }| j                  |ta        ||             ! nz|rxt}        j~                  |      }t        |      D ]U  \  }}|r-d|v r)t-        t/        |jc                  d      d
di      |   |d<   |d u}| j                  |ta        ||             W tA        j@                         }|d|d   jH                  s||z
  n|}| j                  |d   j                      j                  |       |D ]  }|| j"                  |j                      d<     | j                  |d   j                     }|xj                  dz  c_	        |j                  |   }	||	v r|	j                  |       	 d | j                  | j                  j                  |      <   |D ]f  }| j                  |j                          d {    ||v r!|rdnd| j"                  |j                      d<   Kd| j"                  |j                      d<   h y # t        $ r Y  w xY w7 # t        $ r Y Mw xY wc c}w 7 1# t4        $ r}tM        |tN              r|jP                  rtS        jT                          d }|}|D ]i  }tW        ||jY                         jZ                        }t]        j^                  |       | j                  |ta        ||jc                  dd      d             k Y d }~d }~ww xY wc c}w # t        $ r Y 3w xY w7 7 ec c}w 7 # t4        $ r?}tM        |tN              r|jP                  rtS        jT                          d }|}Y d }~d }~ww xY w# t4        $ r;}tM        |tN              r|jP                  rtS        jT                          Y d }~{d }~ww xY w# t        $ r Y w xY w7 # | j                  |d   j                     }|xj                  dz  c_	        |j                  |   }	||	v r|	j                  |       	 d | j                  | j                  j                  |      <   n# t        $ r Y nw xY w|D ]g  }| j                  |j                          d {  7   ||v r!|rdnd| j"                  |j                      d<   Ld| j"                  |j                      d<   i w xY ww)Nr   F)etarZ   successfailedr   	cancelledzNo event datar	  TServer app has not been set.)r   r'   r)   r(   )r(   )r(   
route_path	root_path)r   r   
gr_requestr'   r  is_generatingr   r   )outputr   r  )msgr  r  r>      )r  r  r+   rV   )Br'   r.   r   r   rk   rX   r   rd   r*   rM   rO   r   rh   r   r=   reset_iteratorsr%   rt   r+   r)   r   r(   r   r
  batchedrj   	Exceptionr	   compile_gr_requestget_api_call_pathget_root_urlr  r[   	monotoniccall_process_apir0   r;   r?   
isinstancer   print_exception	traceback	print_excr   
get_blocks
show_errorr   
send_errorr   r   r   r   process_generatingprocess_streamingr>   r   r   r   r  r]   r   r   copydeepcopyr   r\   )r3   r   r   
begin_timer  r'   r  r   r   r   r   r)   r   r  api_route_pathr  first_iterationr{   responseenderrr   contentold_responseold_errr  closed_eventr  errorend_timer   s                                  r4   r   zQueue.process_events3  s     %'AY\\g	L 
/;;%%,!T%=%== !% 8 8 < E E!% !''.
/  B ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@   L
 **599555L(%,	( ((3H= ALD((3H=LY "F!9>>D| 11ay))H16F1IMMDDM%ay00  7=Le%**//L$	  &ay00#//C{ >??$77!	J <<+++(::4<<PN#00)--I
  O (!,!=!=)'"  nn&"%+) JENNcEk1N8=8I8I4I1J* HLL%@'8<<#G NN,E#+L!G!- ))!4', %2$D$D%2%D%D'3(4D(@')}} ,0 $)?? &*#r}}%=%O%)  8D#Seu{{E#SL#S'| ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@   L
 **599555L(%,	( ((3H= ALD((3H=LU1  $ 0'?44@E@T@T ,
 "&eR]]-@b!AO!S T"%l"3!4A ;7L- 1> " $ 1 1$0$;/7%&!""  ,!#$7a9M9MN (, # 6<&&,1+0:: ).

&&!" ,1!"	)DI *5)E)E #!%'1!&/* $ #nn.%1 RE!NNcEk9N$@E@Q@Q<Q 9RA 8<<#GT "G%F#GN7E*5#..2B2M2MNF))%0) E%%6fgV
 x0 ), 7 HAu6!1)-c8<<3G.VPU.V)W*v 'd2G%%/#)$+ yy{H# "!9.. z)( 
 ((6::8D# OEFND((3NCO ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@   L
 **599555L(%,	( ((3H= ALD((3H=L  
  6S   M6  !!U+q/@/@'')) 
E+C1A1L1LMG))#.%%/#*")++gw"?$)
N $TN  
  6Y;,&&$ %  )!U3q7H7H%//1#'	 X  	&a'1+<+<##%	&  
  6% ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@ 
    L
 **599555L(%,	( ((3H= ALD((3H=Ls  ni Ai An(c4  #n#d$An,Ai 2d i d(d B9i :1d +d,Ad 5d Ci g/g3i 8An(g 6#ng-An#A(g; g0-g; 9i :-g; ')g3-g; =g8>Ag;  g; i )E!i 
An (j #n+j,An4	d=n dn	di di d 	g(B"g
i gi 	g*&n)g**n0g; 3g; ;	i4h>8i >ii 	j
0j?j  j

j  	jnjn An7(l n 	l,)n+l,,&nm
A	nnc                (  K   | j                   }|t        d      ||j                  vry |j                  4 d {    |j                  |= |j                  j                  |       d d d       d {    y 7 =7 # 1 d {  7  sw Y   y xY ww)Nr  )rj   r   	iteratorslockiterators_to_resetr\   )r3   r   r   s      r4   r  zQueue.reset_iterators"  s     oo;:;;3==(88 	1 	1h'""&&x0	1 	1 		1 	1 	1 	1 	1 	sD   9BA9B)A=(B3A;4B;B=BBBB)r   )rl   boolru   r   rg   r]   ro   rQ   rp   r   rs   int | None | Literal['not_set'])r~   r   )r   r    r   r   )rs   rB  returnrQ   )r   r   r(   rA   r)   r@   rC  ztuple[bool, str])r   z
routes.App)rC  r   )rC  z$tuple[list[Event], bool, str] | None)rC  None)r   rP   r   zlist[TrackedIterable] | None)
   T)r   rP   r   rP   r   rP   r   z%Literal['info', 'warning', 'success']r   zfloat | Noner   rA  )r&   r@   r   r@   rC  rD  rw   )r*   rP   r   rQ   rC  rD  )rC  r   )r   r    rC  rP   )r   r]   rC  rP   )r   r    r   r]   rC  zLiteral['signal', 'timeout'])r   list[Event]r  zlist[float]rC  ztuple[list[Event], list[Event]])r   rF  r   rA  r1  r]   rC  rD  )r   rP   )rB   rC   rD   r5   r{   r   r   r   rr   r   r   r   r   r   r   rx   ry   r   r   r   rz   r   r   staticmethodr   r   r  r  r   r  rF   r6   r4   r   r   g   s@    FO"L"L "L  	"L
 "L "L $C"LH8K*	+	+ $	+)H	,3'32A3MW3	3j!
52*)XF(00 00> "$66 6 	6
 56 6 6, -1)<F	*? 8<@#!@#*4@#	@#D

     ;;$;	%; ; ++'2+	(+ +,mL!mL*.mL<AmL	mL^r6   r   )3
__future__r   r1   r/  r   r   r[   r(  r"   collectionsr   rK   r   r   typingr   r   r   fastapigradior	   r
   r   gradio.data_classesr   gradio.exceptionsr   gradio.helpersr   gradio.server_messagesr   r   r   r   r   r   r   r   r   gradio.utilsr   r   r   r   r   gradio.blocksr   r   r    rH   rS   rF   r6   r4   <module>rS     s    "   	     # & / /  2 2 $ *
 
 
  3 3  3F
 
	7 	7F Fr6   