
    /j"                       % S SK Jr  S SKrS SKJr  S SKJr  / SQr " S S5      r " S S	\5      r	 " S
 S\5      r
\R                  /rS\S'   SS jrSS jrSS jrSS jrS\S'   S\S'   S\S'   \R$                  R'                  S5      (       a  \	r\r\rg\R$                  S;   a  \
r\r\rg\" S\R$                   S35      e)    )annotationsN)Callable)ClassVar)readcharreadkeykeyc                     \ rS rSr% SrS\S'   SrS\S'   SrS\S'   S	rS\S
'   Sr	S\S'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   \	rS\S'   \rS\S'   SrS\S '   S!rS\S"'   \rS\S#'   S$rS\S%'   S&rS\S''   S(rS\S)'   S*rS\S+'   S,rS\S-'   S.rS\S/'   S0rS\S1'   S2rS\S3'   S4rS\S5'   S6r S\S7'   S8r!S\S9'   S:r"S\S;'   S<r#S\S='   S>r$g?)@_BaseKey
   
ClassVar[str]LFCR SPACEESC	TABCTRL_ACTRL_BCTRL_CCTRL_DCTRL_ECTRL_FCTRL_GCTRL_HCTRL_ICTRL_JCTRL_KCTRL_LCTRL_MCTRL_NCTRL_OCTRL_PCTRL_QCTRL_RCTRL_SCTRL_TCTRL_UCTRL_VCTRL_WCTRL_XCTRL_YCTRL_Z N)%__name__
__module____qualname____firstlineno__r   __annotations__r   r   r   r   r   r   r   r   r    r"   r$   r&   r'   r(   r*   r,   r-   r/   r1   r3   r5   r7   r9   r;   r=   r?   rA   rC   rE   rG   __static_attributes__rH       L/app/agent/.venv/lib/python3.13/site-packages/livekit/agents/cli/readchar.pyr
   r
   
   s:   BB!E=!CC #FM""FM""FM""FM""FM""FM""FM""FM"FMFM"FM""FM"FM"FM""FM""FM""FM""FM""FM""FM""FM""FM""FM""FM""FM""FM"rO   r
   c                     \ rS rSr% SrSrS\S'   SrS\S'   SrS\S	'   S
r	S\S'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   S rS\S!'   S"rS\S#'   S$rS\S%'   S&rS\S''   S(rS\S)'   S*rS\S+'   S,rS\S-'   S.rS\S/'   S0rS\S1'   S2rS\S3'   S4rS\S5'   S6rS\S7'   S8r S\S9'   \!RD                  r#S\S:'   \r$S\S;'   S<r%g=)>	_PosixKey/   zNamespace of key codes specific to POSIX platforms (Linux, macOS, BSD).

These values mirror those defined in the upstream ``_posix_key.py``
module.  All attributes from :class:`_BaseKey` are inherited.
r   	BACKSPACEz[AUPz[BDOWNz[DLEFTz[CRIGHTz[2~INSERTz[3~SUPRz[HHOMEz[FENDz[5~PAGE_UPz[6~	PAGE_DOWNzOPF1zOQF2zORF3zOSF4z[15~F5z[17~F6z[18~F7z[19~F8z[20~F9z[21~F10z[23~F11z[24~F12z[Z	SHIFT_TABz[3^CTRL_ALT_SUPRzaALT_Az
CTRL_ALT_AENTERDELETErH   N)&rI   rJ   rK   rL   __doc__rU   rM   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   r
   r   rp   rq   rN   rH   rO   rP   rR   rR   /   s=     &I}% 'B&(D-((D-()E=) /FM.,D-,(D-('C'/G]/1I}1 'B&&B&&B&&B&.B..B..B..B..B./C//C//C/  .I}-#5M=5 &E=% !+J* $;;E=& FM rO   rR   c                     \ rS rSr% SrSrS\S'   SrS\S'   SrS\S	'   S
r	S\S'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   S rS\S!'   S"rS\S#'   S$rS\S%'   S&rS\S''   S(rS\S)'   S*rS\S+'   S,rS\S-'   S.rS\S/'   S0rS\S1'   S2rS\S3'   S4rS\S5'   \R@                  r!S\S6'   \r"S\S7'   S8r#g9):_WinKeyd   zNamespace of key codes specific to Windows platforms.

These values mirror those defined in the upstream ``_win_key.py``
module.  All attributes from :class:`_BaseKey` are inherited.
r%   r   rU   z HrV   z PrW   z KrX   z MrY   z RrZ   z Sr[   z Gr\   z Or]   z Ir^   z Qr_   z ;r`   z <ra   z =rb   z >rc   z ?rd   z @re   z Arf   z Brg   z Crh   z Dri   u    rj   u    rk   z ESC_2z ENTER_2rp   rq   rH   N)$rI   rJ   rK   rL   rr   rU   rM   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rv   rw   r
   r   rp   rq   rN   rH   rO   rP   rt   rt   d   s%     &I}% #B"$D-$$D-$%E=% 'FM&$D-$$D-$#C#'G]')I}) #B""B""B""B""B""B""B""B""B"#C##C##C# &E=%'G]' $;;E=& FM rO   rt   z	list[str]INTERRUPT_KEYSc                 L   SSK n SSKn[        R                  R	                  5       nU R                  U5      nU R                  U5      n US==   U R                  U R                  -  ) -  ss'   US==   U R                  -  ss'   U R                  X R                  U5        [        R                  R                  S5      n U R                  X R                  U5        U$ ! [         a     UR                  U5        U R                  U5      nUS==   U R                  U R                  -  U R                  -  -  ss'   U R                  X R                  U5         U$ ! [         a      U$ f = ff = f!  U R                  X R                  U5        f ! [         a     UR                  U5        U R                  U5      nUS==   U R                  U R                  -  U R                  -  -  ss'   U R                  X R                  U5         f ! [         a      f f = ff = f= f)a]  Read a single character from standard input on POSIX systems.

This function blocks until a character is available.  It uses
``termios`` to disable canonical input processing and echo so
characters are returned immediately and without being echoed to
the terminal.  The implementation closely follows the upstream
``_posix_read.readchar`` function.
r   N      )termiosttysysstdinfileno	tcgetattrICANONECHOISIG	tcsetattr	TCSAFLUSHread	TCSADRAIN	Exception	setcbreak)r|   r}   fdold_settingstermchcurs          rP   _posix_readcharr      s    				B$$R(LR DQW^^gll233Q7<<"//6YY^^A		b"3"3\B I  	b!''+A'..7<<7',,FF!!"&7&7= I  I			b"3"3\B 	b!''+A'..7<<7',,FF!!"&7&7= 	s{   
A7E3 C   
E0+A/E
E,'E0+E,,E03H#5FH#
H A/HH#
H	H H#H	H  H#c                     [        5       n U [        ;   a  [        eU S:w  a  U $ [        5       nUS;  a  X-   $ [        5       nUS;  a  X-   U-   $ [        5       nUS;  a
  X-   U-   U-   $ [        5       nX-   U-   U-   U-   $ )u  Read the next keypress on POSIX systems.

If a multi‑byte escape sequence is encountered (for example, an arrow
key or function key), the entire sequence is read and returned.
``KeyboardInterrupt`` is raised when a key listed in
:data:`config.INTERRUPT_KEYS` is pressed.
r   zO[1235601345789)r   rx   KeyboardInterrupt)c1c2c3c4c5s        rP   _posix_readkeyr      s     
	B	^ 
V|	 
	B	w 
	B	''w| 
	B	33w|b   
	B7R<"r!!rO   c                 *    SSK n U R                  5       $ )uG  Read a single UTF‑16 code unit from standard input on Windows systems.

This function blocks until a character is available.  It wraps
``msvcrt.getwch()`` from the standard library, which returns a
single wide character (as a Python string).  The implementation is
equivalent to the upstream ``_win_read.readchar`` function.
r   N)msvcrtgetwch)r   s    rP   _win_readcharr      s     ==?rO   c                     [        5       n U [        ;   a  [        eU S;   a  S[        5       -   n SU s=::  a  S::  a0  O  U $ U [        5       -  n U R                  SSS9R	                  S5      n U $ )a(  Read the next keypress on Windows systems.

This function interprets Windows scan codes and surrogate pairs to
return a key sequence that is compatible with the constants defined
in :class:`_WinKey`.  ``KeyboardInterrupt`` is raised when a key
listed in :data:`config.INTERRUPT_KEYS` is pressed.
u    à u   u   zutf-16surrogatepass)errors)r   rx   r   encodedecode)r   s    rP   _win_readkeyr      ss     
B	^	Zmo% 2!!
 I	 	moYYxY8??IIrO   ztype[_PosixKey | _WinKey]r   zCallable[[], str]r   r   )linuxdarwinfreebsdopenbsd)win32cygwinzThe platform z is not supported yet)returnstr)
__future__r   r~   collections.abcr   typingr   __all__r
   rR   rt   r   rx   rM   r   r   r   r   platform
startswithr   r   r   NotImplementedErrorrH   rO   rP   <module>r      s    " 
 $ 
("# "#J2! 2!j-!h -!h &__-	 - F""J
4  
 	 <<DEE
CHG\\((
CHG
cll^;PQ
RRrO   