+
    œ°³jUE  ã                   óÎ  € ^ RI t ^ RIHt ^ RIHtHt ^ RIHt ^ RIt^RI	H
t
Ht ^RIHt ]
! 4       '       d   ^ RItRt]P                   ! R4      t]P$                  '       dK   ]P&                  ! 4       t]P+                  ]P,                  ! R4      4       ]P/                  ]4       R	]n        R
 R lt ! R R]4      t] ! R R4      4       t] ! R R4      4       t ! R R4      tR# )é    N)Údeepcopy)Ú	dataclassÚfield)ÚIntEnum)Úis_psutil_availableÚis_torch_xpu_available)ÚloggingÚContinuousBatchingLoggerz4%(asctime)s - %(name)s - %(levelname)s - %(message)sFc                ón   € V ^8„  d   QhR\         \        P                  \        \        \        3,          /# ©é   Úreturn)ÚtupleÚtorchÚdeviceÚint)Úformats   "Úu/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/generation/continuous_batching/requests.pyÚ__annotate__r   +   s(   € ÷ %Cñ %C¬¬u¯|©|¼SÄ#ÄsÐ/JÕ)Kñ %Có    c                  óÚ  € \         P                  P                  4       '       d�   \         P                  ! R 4      p \         P                  P	                  4        \         P                  P                  4        \         P                  P                  V 4      w  r\         P                  P                  V 4      pW!,
          pEM(\        4       '       d¼   \         P                  ! R4      p \         P                  P	                  4        \         P                  P                  4        \         P                  P                  V 4      P                  p\         P                  P                  V 4      p\         P                  P                  V 4      pEM]\         P                  P                  P                  4       '       d    \         P                  P                  P                  4       '       dr   \         P                  ! R4      p \         P                  P!                  4       p\         P                  P#                  4       p\         P                  P%                  4       pM�\         P                  ! R4      p \'        4       '       dP   \(        P*                  ! 4       P,                  p\(        P.                  ! 4       P1                  4       P2                  pTpM\4        P7                  R4       ^ p^ p^ pWW43# )ÚcudaÚxpuÚmpsÚcpuzŽCannot get memory breakdown on CPU without psutil: returning 0 for all memory values. Please install psutil to get an actual memory breakdown.)r   r   Úis_availabler   Úempty_cacheÚsynchronizeÚmem_get_infoÚmemory_reservedr   r   Úget_device_propertiesÚtotal_memoryÚmemory_allocatedÚbackendsr   Úis_builtÚrecommended_max_memoryÚcurrent_allocated_memoryÚdriver_allocated_memoryr   ÚpsutilÚvirtual_memoryÚtotalÚProcessÚmemory_infoÚrssÚloggerÚerror)r   Úfree_memoryr"   Úreserved_memoryÚallocated_memorys        r   Úget_device_and_memory_breakdownr4   +   sã  € Ü‡z�z×Ñ× Ò Ü—’˜fÓ%ˆÜ�
‰
×ÑÔ Ü�
‰
×ÑÔ ô %*§J¡J×$;Ñ$;¸FÓ$CÑ!ˆÜŸ*™*×4Ñ4°VÓ<ˆØ'Õ5ÒÜ	×	!Ò	!Ü—’˜eÓ$ˆÜ�	‰	×ÑÔÜ�	‰	×ÑÔÜ—y‘y×6Ñ6°vÓ>×KÑKˆÜŸ)™)×3Ñ3°FÓ;ˆÜ Ÿ9™9×5Ñ5°fÓ=ÒÜ	�‰×	Ñ	×	(Ñ	(×	*Ò	*¬u¯~©~×/AÑ/A×/JÑ/J×/LÒ/LÜ—’˜eÓ$ˆÜ—y‘y×7Ñ7Ó9ˆÜ Ÿ9™9×=Ñ=Ó?ÐÜŸ)™)×;Ñ;Ó=‰ä—’˜eÓ$ˆÜ× Ò Ü!×0Ò0Ó2×8Ñ8ˆLÜ%Ÿ~š~Ó/×;Ñ;Ó=×AÑAÐØ.‰Oä�L‰Lð<ôð ˆLØˆOØ Ðà ÐBÐBr   c                   ó.   € ] tR t^StRt^ t^t^t^t^t	Rt
R# )ÚRequestStatusz5Status of a generation request through its lifecycle.© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚPENDINGÚ
PREFILLINGÚDECODINGÚFINISHEDÚFAILEDÚ__static_attributes__r7   r   r   r6   r6   S   s   † Ù?à€GØ€JØ€HØ€HØ„Fr   r6   c                   óÂ   a € ] tR t^]t o Rt]! ]R7      t]! ]R7      t]! ]R7      t	Rt
]P                  t]! ]P                  R7      tRtRtV 3R lR ltV 3R ltRtV tR# )	ÚGenerationOutputaƒ  Tracks the output of a generation request.

Attributes:
    request_id (str): The ID of the generation request.
    prompt_ids (list[int]): The IDs of the prompt tokens.
    generated_tokens (list[int]): The generated tokens.
    logprobs (list[float]): The log probabilities of the generated tokens.
    error (Optional[str]): Any error message associated with the request. When None, the request was successful.
    status (RequestStatus): The status of the request.
    created_time (float): The time the request was created.
    lifespan (tuple[float, float]): The time the request was no longer pending and the time the request finished.
©Údefault_factoryNc                ó    <€ V ^8„  d   QhRS[ /# r   )Úbool)r   Ú__classdict__s   "€r   r   ÚGenerationOutput.__annotate__v   s   ø€ ÷ 5ñ 5™Tñ 5r   c                ó<   € V P                   \        P                  8¬  # )ziWhether the request reached a terminal state, either because it finished generating or because it failed.)Ústatusr6   r@   ©Úselfs   &r   Úis_finishedÚGenerationOutput.is_finishedv   s   € à�{‰{œm×4Ñ4Ñ4Ð4r   c                óø   <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[ R,          ;R&   S[;R&   S[;R&   S[S[S[3,          ;R	&   S[S[,          R,          ;R
&   # )r   Ú
request_idÚ
prompt_idsÚgenerated_tokensÚlogprobsNr0   rL   Úcreated_timeÚlifespanÚ
timestamps)ÚstrÚlistr   Úfloatr6   r   )r   rI   s   "€r   r   rJ   ]   s›   ø‡ ‚ ñ �Oñ ñ  ‘S•	Ñ7ñ! ñ" ™3•iÑ=ñ# ñ$ ‘5�kÑ7ñ% ñ& ��:Ññ' ñ( Ñ1ñ) ñ* ÑBñ+ ñ, ‘E™5�LÕ!Ñ,ñ- ñ. ‘U•˜dÕ"Ñ)ò/ r   r7   ©éÿÿÿÿr]   )r8   r9   r:   r;   r<   r   rZ   rS   rT   rU   r0   r6   r=   rL   ÚtimeÚperf_counterrV   rW   rX   rO   Ú__annotate_func__rB   Ú__classdictcell__©rI   s   @r   rD   rD   ]   sf   ø‡ € ññ "°$Ô7€JÙ"'¸Ô"=ÐÙ!°$Ô7€HØ€EØ)×1Ñ1€FÙ°×0AÑ0AÔB€LØ$,€HØ%)€J÷5ð 5÷3 ƒ r   rD   c                   ó  a € ] tR t^{t o RtRtRt^tRt^ t	]
! ]R7      t]
! ]R7      t]
! ]R7      t]
! ]R7      t^ t^ t]P(                  t]
! ]R7      t]
! ]P2                  R7      tRtRt]
! ]R7      t^ tRt]
! ]R7      t Rt!R t"]#V 3R lR l4       t$]$PJ                  V 3R	 lR
 l4       t$]#V 3R lR l4       t&R t'V 3R lR lt(V 3R lR lt)V 3R lR lt*R t+R t,V 3R lR lt-V 3R lR lt.V 3R lR lt/V 3R lt0Rt1V t2R# )ÚRequestStateaw  Tracks the state of a generation request through its lifecycle.

Attributes:
    request_id (str): The ID of the generation request.
    initial_tokens (list[int]): The initial prompt tokens.
    num_children (int): The number of children requests
    full_prompt_ids (list[int] | None): The tokens IDs of the full prompt.
    prompt_ids (list[int] | None): The tokens IDs currently being processed.
    remaining_prompt_ids (list[int]): The initial tokens IDs remaining to be processed.
    static_outputs (list[int]): The generated tokens.
    allocated_blocks (int): The number of blocks allocated to the request.
    position_offset (int): The current position in the sequence for position_ids.
    status (RequestStatus): The status of the request: can be one of PENDING, PREFILLING, PREFILLING_SPLIT,
                            SPLIT_PENDING_REMAINDER, DECODING, FINISHED, FAILED
    max_new_tokens (int | None): The maximum number of new tokens to generate.
    eos_token_id (None | int | list[int]): The ID(s) of the end-of-sequence tokens. Only used in post-init.
    _eos_token_ids (set[int]): The IDs of the end-of-sequence tokens, formatted as a set.
    streaming (bool): Whether to stream tokens as they're generated
    created_time (float): The time the request was created.
    error (Optional[str]): Any error message associated with the request. When None, has had no error yet.
FNrE   éÿÿÿc                óº  € V P                   f   RMV P                   V n        V P                  R,          V n        V P                  f   R # \        V P                  \        4      '       d;   V P                  ^ 8¼  d(   V P                  P                  V P                  4       R # R # V P                   F'  pV^ 8¼  g   K  V P                  P                  V4       K)  	  R # )Nre   ºNNN)	Úmax_new_tokensÚ_new_tokens_limitÚinitial_tokensÚremaining_prefill_tokensÚeos_token_idÚ
isinstancer   Ú_eos_token_idsÚadd)rN   Útoken_ids   & r   Ú__post_init__ÚRequestState.__post_init__¸   s­   € à/3×/BÑ/BÒ/J¡ÐPT×PcÑPcˆÔà(,×(;Ñ(;¸AÕ(>ˆÔ%à×ÑÒ$Ùä˜×)Ñ)¬3×/Ò/Ø× Ñ  AÔ%Ø×#Ñ#×'Ñ'¨×(9Ñ(9Ö:ñ &ð !×-Ô-�Ø˜q–=Ø×'Ñ'×+Ñ+¨HÖ5ó .r   c                ó    <€ V ^8„  d   QhRS[ /# r   ©r6   )r   rI   s   "€r   r   ÚRequestState.__annotate__Ë   s   ø€ ÷ ñ ™ñ r   c                ó   € V P                   # ©N)Ú_statusrM   s   &r   rL   ÚRequestState.statusÊ   s   € à�|‰|Ðr   c                ó    <€ V ^8„  d   QhRS[ /# )r   Úvaluert   )r   rI   s   "€r   r   ru   Ï   s   ø€ ÷ 	ñ 	™Mñ 	r   c                ó~  € V P                   \        P                  8X  d   \        P                  ! 4       R3V n        V\        P                  8¼  dg   V P
                  ^ ,          \        P                  ! 4       3V n        \        P                  \        P                  4      '       d   V P                  4        Wn         R# )é   Nr]   )rx   r6   r=   r^   r_   rW   r@   r/   ÚisEnabledForr	   ÚDEBUGÚlog_end_of_request)rN   r{   s   &&r   rL   ry   Î   s}   € ð �<‰<œ=×0Ñ0Ô0Ü!×.Ò.Ó0°"Ð5ˆDŒMà”M×*Ñ*Ô*Ø!Ÿ]™]¨1Õ-¬t×/@Ò/@Ó/BÐCˆDŒMÜ×"Ñ"¤7§=¡=×1Ò1Ø×'Ñ'Ô)ØŽr   c                ó>   <€ V ^8„  d   QhRS[ S[,          R,          /# )r   r   N)rZ   r[   )r   rI   s   "€r   r   ru   Û   s    ø€ ÷ Dñ D™D¡�K¨$Õ.ñ Dr   c                óB   € V P                   '       d   V P                  # R # rw   )Úrecord_timestampsÚ_timestampsrM   s   &r   rX   ÚRequestState.timestampsÚ   s   € à#'×#9×#9Ð#9ˆt×ÑÐC¸tÐCr   c                óD  € \        V P                  4      pV P                  4       pV P                  ^ ,          V P                  ,
          pV P                  ^,          V P                  ,
          p\
        P                  RV P                   RV: RV: RV: RV: 2
4       R# )r   úRequest z finished: prefill_len = z decode_len = z start_time = z end_time = N)Úlenrj   Úgenerated_lenrW   rV   r/   ÚdebugrR   )rN   Úprefill_lenÚ
decode_lenÚ
start_timeÚend_times   &    r   r€   ÚRequestState.log_end_of_requestÞ   s�   € Ü˜$×-Ñ-Ó.ˆØ×'Ñ'Ó)ˆ
Ø—]‘] 1Õ%¨×(9Ñ(9Õ9ˆ
Ø—=‘= Õ# d×&7Ñ&7Õ7ˆÜ�‰Ø�t—‘Ð'Ð'A°;Ñ2BÀ/ÀJÁ?ÐRaÐT^ÑSbÐboÐdlÑcpÐqö	
r   c                ó    <€ V ^8„  d   QhRS[ /# r   ©r   )r   rI   s   "€r   r   ru   ç   s   ø€ ÷ $ñ $™Sñ $r   c                ó   € V P                   # )zCGet the current length of the sequence (prompt + generated tokens).)Úposition_offsetrM   s   &r   Úcurrent_lenÚRequestState.current_lenç   s   € à×#Ñ#Ð#r   c                ó    <€ V ^8„  d   QhRS[ /# r   r‘   )r   rI   s   "€r   r   ru   ë   s   ø€ ÷ *ñ *™sñ *r   c                ó,   € \        V P                  4      # )z*Get the number of tokens generated so far.)rˆ   rT   rM   s   &r   r‰   ÚRequestState.generated_lenë   s   € ä�4×(Ñ(Ó)Ð)r   c                ó:   <€ V ^8„  d   QhRS[ RS[R,          RS[/# )r   rp   ÚlogprobNr   )r   r[   rH   )r   rI   s   "€r   r   ru   ð   s'   ø€ ÷ ñ ±Cð Á%È$Å,ð ÑSWñ r   c                ót  € V P                   \        P                  8w  d   R# V P                  '       d/   V P                  P                  \        P                  ! 4       4       WP                  9   pV P                  4       pV'       g   W@P                  8  dM   V P                  P                  V4       V.V n        V^,          pVe   V P                  P                  V4       M%\        P                  RV P                    RV 24       V'       g   W@P                  8¼  d   \        P"                  V n         R# R# )z³Update the request with a newly generated token (and optional log probability of the token) and check for
completion. Returns True if the request is now complete, False otherwise.Fr‡   z generated a useless token: T)rL   r6   r?   rƒ   r„   Úappendr^   r_   rn   r‰   ri   rT   Útokens_to_processrU   r/   ÚwarningrR   r@   )rN   rp   rš   Úis_eosr”   s   &&&  r   Úupdate_and_check_completionÚ(RequestState.update_and_check_completionð   sõ   € ð �;‰;œ-×0Ñ0Ô0Ùð ×!×!Ð!Ø×Ñ×#Ñ#¤D×$5Ò$5Ó$7Ô8ð ×0Ñ0Ñ0ˆØ×(Ñ(Ó*ˆ÷ �k×$:Ñ$:Ô:Ø×!Ñ!×(Ñ(¨Ô2Ø&. ZˆDÔ"Ø˜1ÕˆKØÒ"Ø—‘×$Ñ$ WÔ-øä�N‰N˜X d§o¡oÐ%6Ð6RÐS[ÐR\Ð]Ô^ç�[×$:Ñ$:Ô:Ü'×0Ñ0ˆDŒKÙÙr   c                óš  € R V P                    2RV P                   2RV P                  4        2R\        V P                  4       2R\        V P
                  4       2RV P                   2R\        V P                  4       2RV P                   2RV P                   2R	V P                   2.
pR
RP                  V4      ,           R,           # )zrequest_id=zstatus=zout_tokens=zquery_length=zremaining_tokens=z
kv_length=zfull_prompt_length=zallocated_blocks=zgenerated_tokens=zlogit_processor_kwargs=zRequestState(
	z,
	z
))rR   rx   r‰   rˆ   r�   rk   r“   rj   Úallocated_blocksrT   Úlogit_processor_kwargsÚjoin)rN   Úmsgs   & r   Ú__repr__ÚRequestState.__repr__  sÛ   € à˜$Ÿ/™/Ð*Ð+Ø�d—l‘l�^Ð$Ø˜$×,Ñ,Ó.Ð/Ð0ØœC × 6Ñ 6Ó7Ð8Ð9Ø¤ D×$AÑ$AÓ BÐCÐDØ˜×-Ñ-Ð.Ð/Ø!¤# d×&9Ñ&9Ó":Ð!;Ð<Ø × 5Ñ 5Ð6Ð7Ø × 5Ñ 5Ð6Ð7Ø% d×&AÑ&AÐ%BÐCð
ˆð # W§\¡\°#Ó%6Õ6¸Õ>Ð>r   c                óæ  € V P                   '       dE   V P                  V P                   R V P                  ,           pV P                  RV P                    pMV P                  R,          pV P                  p\        V P                  TTV P
                  R,          V P                  V P                  V P                  V P                  V P                  e   V P                  R,          R7	      # RR7	      # )z7Convert the request state to a GenerationOutput object.Nrg   )	rR   rS   rT   rU   r0   rL   rV   rW   rX   )Ú_true_initial_tokensrj   rT   rD   rR   rU   r0   rL   rV   rW   rX   )rN   rT   rS   s   &  r   Úto_generation_outputÚ!RequestState.to_generation_output  sÓ   € à×$×$Ð$Ø#×2Ñ2°4×3LÑ3LÐ3NÐOÐRV×RgÑRgÕgÐØ×,Ñ,Ð-H¨t×/HÑ/HÐI‰Jà#×4Ñ4°QÕ7ÐØ×,Ñ,ˆJÜØ—‘Ø!Ø-Ø—]‘] 1Õ%Ø—*‘*Ø—;‘;Ø×*Ñ*Ø—]‘]Ø-1¯_©_Ò-H�t—‘ qÕ)ô

ð 
	
ð OSô

ð 
	
r   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Únew_request_idr   rd   )rY   )r   rI   s   "€r   r   ru   2  s   ø€ ÷ 
ñ 
¡3ð 
¨>ñ 
r   c                óÀ   € \        V 4      pWn        \        P                  ! 4       Vn        VP                  R3Vn        . Vn        V P                  R,          Vn        V# )ziFork the request into a new request with the same state except for request_id, created_time and lifespan.rg   r]   )r   rR   r^   r_   rV   rW   r„   rk   )rN   r®   Únew_requests   && r   ÚforkÚRequestState.fork2  sV   € ä˜t“nˆà!/ÔÜ#'×#4Ò#4Ó#6ˆÔ Ø +× 8Ñ 8¸"Ð=ˆÔØ"$ˆÔà/3×/LÑ/LÈQÕ/OˆÔ,ØÐr   c                ó    <€ V ^8„  d   QhRS[ /# r   )Údict)r   rI   s   "€r   r   ru   >  s   ø€ ÷ 	
ñ 	
¡Dñ 	
r   c                ó¨   € RV P                   RV P                  RV P                  RV P                  RV P                  R\        V P                  4      /# )zXGet all the fields necessary to create a request that would have the same configuration.Ú	streamingrƒ   rh   rl   Únum_childrenr¤   )r¶   rƒ   rh   rl   r·   r   r¤   rM   s   &r   Úget_request_configÚRequestState.get_request_config>  sS   € ð ˜Ÿ™Ø ×!7Ñ!7Ø˜d×1Ñ1Ø˜D×-Ñ-Ø˜D×-Ñ-Ø$¤h¨t×/JÑ/JÓ&Kð
ð 	
r   c                ó   <€ V ^8„  d   QhRR/# )r   r   rd   r7   )r   rI   s   "€r   r   ru   I  s   ø€ ÷ ñ °>ñ r   c                óì  € V P                  4       pV P                  e*   V P                  \        V P                  4      ,
          VR&   \	        RRV P
                  RV P                  V P                  ,           RV P                  R,          RV P                  \        V P                  4      ,           /VB pV P                  '       d   V P                  Vn        V# \        V P                  4      Vn        V# )aD  Creates an equivalent new request by removing the generated tokens and adding them to the initial prompt. The
created request has THE SAME request_id. Notably, we can retrieve the original request from the created one with
the _true_initial_tokens attribute. The logprobs of the generated tokens are kept in the new request.rh   rR   rj   rU   rg   rª   r7   )	r¸   rh   rˆ   rT   rd   rR   rj   rU   rª   )rN   Úrequest_configÚ	new_states   &  r   Ú!create_equivalent_initial_requestÚ.RequestState.create_equivalent_initial_requestI  sê   € ð
 ×0Ñ0Ó2ˆà×ÑÒ*Ø/3×/BÑ/BÄSÈ×I^ÑI^ÓE_Õ/_ˆNÐ+Ñ,ä ñ 
Ø—‘ð
à×.Ñ.°×1FÑ1FÕFð
ð —]‘] 1Õ%ð
ð "&×!:Ñ!:¼SÀ×ATÑATÓ=UÕ!Uð	
ð
 ñ
ˆ	ð ×$×$Ð$Ø-1×-FÑ-FˆIÔ*ð Ðô .1°×1DÑ1DÓ-EˆIÔ*ØÐr   c                óþ  <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   S[;R&   S[;R&   S[R,          ;R&   S[S[S[,          ,          R,          ;R&   S[;R&   S[;R	&   S[S[,          ;R
&   S[S[,          ;R&   S[S[,          ;R&   S[;R&   S[;R&   S[;R&   S[S[,          ;R&   S[;R&   S[ R,          ;R&   S[S[S[3,          ;R&   S[S[,          ;R&   S[;R&   S[;R&   S[S[,          ;R&   S[;R&   # )r   rR   rj   r¶   rƒ   Nrh   rl   r·   r¤   r�   rT   rU   r“   r£   rx   rn   rV   r0   rW   r„   rª   ri   rk   Úis_cpu_offloaded)	rY   rZ   r   rH   r´   r[   r6   Úsetr   )r   rI   s   "€r   r   ru   {   s�  ø‡ ‚ ñ2 �Oñ3 ñ4 ™•IÑñ5 ñ: Ññ; ñ< Ñ#ñ= ñB ˜$•JÑ#ñC ñD ™™S�	•/ DÕ(Ñ/ñE ñF ÑñG ñH !Ñ>ñI ñN ™C•yÑ>ñO ñP ™3•iÑ=ñQ ñR ‘5�kÑ7ñS ñT ÑñU ñV ÑñW ñZ Ñ2ñ[ ñ\ ™•HÑ9ñ] ñb ÑBñc ñd ��:Ññe ñf ‘E™5�LÕ!Ñ,ñg ñh ‘e•Ñ:ñi ñj Ñ!ñk ñr Ñ'ñs ñt #¡3�iÑEñu ñv Ñ"òw r   )ri   rx   rW   rk   rL   r�   r\   )3r8   r9   r:   r;   r<   r¶   rƒ   rh   rl   r·   r   r´   r¤   rZ   r�   rT   rU   r“   r£   r6   r=   rx   rÂ   rn   r^   r_   rV   r0   rW   r„   rª   ri   rk   rÁ   rq   ÚpropertyrL   ÚsetterrX   r€   r”   r‰   r    r§   r«   r±   r¸   r¾   r`   rB   ra   rb   s   @r   rd   rd   {   sT  ø‡ € ñð6 €IØ#Ðð "$€NØ+/€LØ€LÙ#(¸Ô#>Ðñ $)¸Ô#>ÐÙ"'¸Ô"=ÐÙ!°$Ô7€HØ€OØÐà*×2Ñ2€GÙ$°SÔ9€Nñ  °×0AÑ0AÔB€LØ€EØ$,€HÙ$°TÔ:€KØ !Ðð (ÐÙ*/ÀÔ*EÐØ"Ðò6ð$ ÷ó ðð ‡]�]÷	ó ð	ð ÷Dó ðDò
÷$ð $÷*ð *÷
ð ò>?ò
÷(
ð 
÷	
ð 	
÷ð ÷] ƒ r   rd   c                   ó:   a € ] tR tRt o RtRtV 3R lR ltRtV tR# )ÚFutureRequestStateic  zPTracks the current state of a request and the relevant information to update it.c          
      ó6   <€ V ^8„  d   QhRS[ RS[RS[RS[RR/# )r   ÚstateÚhas_new_tokenÚcomplete_blocksÚquery_lengthr   N)rd   rH   r   )r   rI   s   "€r   r   ÚFutureRequestState.__annotate__i  s3   ø€ ÷ )ñ )™lð )¹4ð )ÑRUð )Ñehð )Ðmqñ )r   c                ó6   € Wn         W n        W0n        W@n        R # rw   ©rÈ   rÉ   rÊ   rË   )rN   rÈ   rÉ   rÊ   rË   s   &&&&&r   Ú__init__ÚFutureRequestState.__init__i  s   € ØŒ
Ø*ÔØ.ÔØ(Ör   )rÊ   rÉ   rË   rÈ   NrÎ   )	r8   r9   r:   r;   r<   Ú	__slots__rÏ   rB   ra   rb   s   @r   rÆ   rÆ   c  s   ø‡ € ÙZð N€I÷)ö )r   rÆ   r]   )r^   Úcopyr   Údataclassesr   r   Úenumr   r   Úutilsr   r   Úutils.loggingr	   r)   ÚTMP_TOKEN_IDÚ	getLoggerr/   Ú	propagateÚStreamHandlerÚhandlerÚsetFormatterÚ	FormatterÚ
addHandlerr4   r6   rD   rd   rÆ   r7   r   r   Ú<module>rß      sá   ðó Ý ß (Ý ã ç @Ý $ñ ×ÒÛð €ð 
×	Ò	Ð5Ó	6€à	××ÐØ×#Ò#Ó%€GØ×Ñ˜×*Ò*Ð+aÓbÔcØ
×Ñ�gÔØ€FÔõ%CôP�Gô ð ÷5ð 5ó ð5ð: ÷dð dó ðd÷N
)ó 
)r   