+
    e/                         R t ^RIHt ^RIHt ^ RItR tR tR tR tR t	R	 t
R
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t ! R R]P                  4      t ! R R]4      tR# ) a  This implements an ANSI (VT100) terminal emulator as a subclass of screen.

PEXPECT LICENSE

    This license is approved by the OSI and FSF as GPL-compatible.
        http://opensource.org/licenses/isc-license.txt

    Copyright (c) 2012, Noah Spurrier <noah@noah.org>
    PERMISSION TO USE, COPY, MODIFY, AND/OR DISTRIBUTE THIS SOFTWARE FOR ANY
    PURPOSE WITH OR WITHOUT FEE IS HEREBY GRANTED, PROVIDED THAT THE ABOVE
    COPYRIGHT NOTICE AND THIS PERMISSION NOTICE APPEAR IN ALL COPIES.
    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

)screen)FSMNc                 d    V P                   ^ ,          pVP                  ! V P                  4       R#     N)memorywrite_chinput_symbolfsmr   s   & ./usr/lib/python3/dist-packages/pexpect/ANSI.pyDoEmitr   $   s!    ZZ]F
OOC$$%    c                 P    V P                   P                  V P                  4       R # N)r   appendr	   )r   s   &r   DoStartNumberr   )   s    JJs''(r   c                     V P                   P                  4       pWP                  ,           pV P                   P                  V4       R # r   )r   popr	   r   )r   nss   & r   DoBuildNumberr   -   s2    		B		BJJrr   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   cursor_backr
   s   & r   	DoBackOner   3       ZZ]F
r   c                     \        V P                  P                  4       4      pV P                  ^ ,          pVP                  ! V4       R# r   )intr   r   r   r   countr   s   &  r   DoBackr   8   2    

 !EZZ]F
r   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   cursor_downr
   s   & r   	DoDownOner#   >   r   r   c                     \        V P                  P                  4       4      pV P                  ^ ,          pVP                  ! V4       R# r   )r   r   r   r"   r   s   &  r   DoDownr%   C   r    r   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   cursor_forwardr
   s   & r   DoForwardOner(   I   s    ZZ]F
r   c                     \        V P                  P                  4       4      pV P                  ^ ,          pVP                  ! V4       R# r   )r   r   r   r'   r   s   &  r   	DoForwardr*   N   s2    

 !EZZ]F
5!r   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   cursor_up_reverser
   s   & r   DoUpReverser-   T       ZZ]F
r   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   	cursor_upr
   s   & r   DoUpOner1   Y   s    ZZ]F
r   c                     \        V P                  P                  4       4      pV P                  ^ ,          pVP                  ! V4       R# r   )r   r   r   r0   r   s   &  r   DoUpr3   ^   s2    

 !EZZ]F
er   c                     \        V P                  P                  4       4      p\        V P                  P                  4       4      pV P                  ^ ,          pVP                  ! W!4       R# r   )r   r   r   cursor_homer   crr   s   &   r   DoHomer9   d   sG    CJJNNACJJNNAZZ]F
r   c                 X    ^p^pV P                   ^ ,          pVP                  ! W!4       R# )   N)r   r5   r6   s   &   r   DoHomeOriginr<   k   s'    	A	AZZ]F
r   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   
erase_downr
   s   & r   DoEraseDownr?   r   s    ZZ]F
r   c                    \        V P                  P                  4       4      pV P                  ^ ,          pV^ 8X  d   VP                  ! 4        R# V^8X  d   VP                  ! 4        R# V^8X  d   VP
                  ! 4        R# R# r   )r   r   r   r>   erase_uperase_screenr   argr   s   &  r   DoEraserE   w   s`    
cjjnn
CZZ]F
ax		 
r   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   erase_end_of_liner
   s   & r   DoEraseEndOfLinerH      r.   r   c                    \        V P                  P                  4       4      pV P                  ^ ,          pV^ 8X  d   VP                  ! 4        R# V^8X  d   VP                  ! 4        R# V^8X  d   VP
                  ! 4        R# R# r   )r   r   r   rG   erase_start_of_line
erase_linerC   s   &  r   DoEraseLinerL      sb    
cjjnn
CZZ]F
ax  "	""$	 
r   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   scroll_screenr
   s   & r   DoEnableScrollrO      s    ZZ]F
r   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   cursor_save_attrsr
   s   & r   DoCursorSaverR      r.   r   c                 N    V P                   ^ ,          pVP                  ! 4        R# r   )r   cursor_restore_attrsr
   s   & r   DoCursorRestorerU      s    ZZ]F
!r   c                     V P                   ^ ,          p\        V P                   P                  4       4      p\        V P                   P                  4       4      pVP                  ! W24       R# r   )r   r   r   scroll_screen_rows)r   r   r2r1s   &   r   DoScrollRegionrZ      sG    ZZ]F	SZZ^^	B	SZZ^^	B
r%r   c                 `    V P                   ^ ,          pV P                   P                  4       pR# r   )r   r   )r   r   modes   &  r   DoModer]      s    ZZ]F::>>Dr   c                     V P                   ^ ,          pV.V n         \        RR4      pVP                  V P                  R,           V P                  ,           R,           4       VP                  4        R# )r   loga,
N)r   openwriter	   current_stateclose)r   r   fouts   &  r   DoLogrh      sT    ZZ]FCJDJJ  3&):)::TABJJLr   c                   .   a  ] tR t^t o RtRR ltRtV tR# )termzThis class is an abstract, generic terminal.
This does nothing. This is a placeholder that
provides a common base class for other terminals
such as an ANSI terminal. c                P    \         P                   P                  ! WV.VO5/ VB  R # r   )r   __init__selfr8   r7   argskwargss   &&&*,r   rl   term.__init__   s     tq8$88r    N   P   )__name__
__module____qualname____firstlineno____doc__rl   __static_attributes____classdictcell____classdict__s   @r   rj   rj      s     "
9 9r   rj   c                   ^   a  ] tR t^t o RtRR ltR tR tR tR t	R t
R tR	 tR
 tRtV tR# )ANSIzThis class implements an ANSI (VT100) terminal.
It is a stream filter that recognizes ANSI terminal
escape sequences and maintains the state of a screen object. c                8   \         P                  ! WV.VO5/ VB  \        P                  ! R V .4      V n        V P                  P	                  \
        R 4       V P                  P                  R \        R 4       V P                  P                  RR RR4       V P                  P                  R\
        R 4       V P                  P                  RRRR4       V P                  P                  RRRR4       V P                  P                  RRRR 4       V P                  P                  RRRR 4       V P                  P                  R	R\        R 4       V P                  P                  R
R\        R 4       V P                  P                  RR\        R 4       V P                  P                  RR\        R 4       V P                  P                  RR\        R 4       V P                  P                  RRRR 4       V P                  P                  RRRR4       V P                  P                  RRR 4       V P                  P                  RRRR4       V P                  P                  RR\        R 4       V P                  P                  RR\        R 4       V P                  P                  RR\        R 4       V P                  P                  RR\         R 4       V P                  P                  RR\"        R 4       V P                  P                  RR\$        R 4       V P                  P                  RR\&        R 4       V P                  P                  RR\(        R 4       V P                  P                  RRV P*                  R 4       V P                  P                  RRRR4       V P                  P                  \,        P.                  R\0        R4       V P                  P                  \,        P.                  R\2        R4       V P                  P                  RR\4        R 4       V P                  P                  RR\6        R 4       V P                  P                  RR\8        R 4       V P                  P                  RR\:        R 4       V P                  P                  RR\<        R 4       V P                  P                  RR\>        R 4       V P                  P                  RR\@        R 4       V P                  P                  RRV P*                  R 4       V P                  P                  R RV PB                  R 4       V P                  P                  \,        P.                  R\0        R!4       V P                  P                  \,        P.                  R!\2        R!4       V P                  P                  RR!V PD                  R 4       V P                  P                  R"R!V PD                  R 4       V P                  P                  R#RRR$4       V P                  P                  R$\
        R 4       V P                  P                  \,        P.                  R$\0        R%4       V P                  P                  \,        P.                  R%\2        R%4       V P                  P                  R%\
        R 4       V P                  P                  RR%\F        R 4       V P                  P                  R&R%\F        R 4       V P                  P                  RR%\H        R 4       V P                  P                  RR%V P*                  R 4       V P                  P                  R R%V PB                  R 4       V P                  P                  R#R%RR'4       V P                  P                  R'\
        R 4       V P                  P                  \,        P.                  R'\0        R(4       V P                  P                  \,        P.                  R(\2        R(4       V P                  P                  R(\
        R 4       V P                  P                  RR(V P*                  R 4       V P                  P                  R R(V PB                  R 4       V P                  P                  R#R(RR'4       R# ))INITNESC(G0SCS)G1SCSAB01278M><=#GRAPHICS_POUND[ELBHDBCAJKr8   m?MODECRAPNUMBER_1lqMODECRAP_NUMh;	SEMICOLONNUMBER_2fSEMICOLON_XNUMBER_X)%rj   rl   r   stateset_default_transitionrh   add_transition_anyr   add_transitionadd_transition_listrR   rU   r-   r<   r   r#   r(   r1   r?   rH   rO   do_sgrstringdigitsr   r   r   r%   r*   r3   rE   rL   r]   	do_decscado_modecrapr9   rZ   rm   s   &&&*,r   rl   ANSI.__init__   s   dQ..v. WWfdV,


))5&9

%%vvv>

!!664?

%%ueV<

!!3tW=

!!3tW=

&&$G

&&$G

!!3|VD

!!3G

!!3{FC

!!3{FC

!!3{FC

!!3tV<

!!3t5EF

%%'7vF

!!3tU;

!!3|VD

!!3y&A

!!3y&A

!!3|VD

!!3w?

!!3{FC

!!3/?H

!!3~vF

!!3t{{FC

!!3tZ@

&&umZX

&&z=R\]

!!3
FFC

!!3
FFC

!!3
IvF

!!3
D&A

!!3
GVD

!!3
KH

!!3
FFC 	

!!3
DKKH

!!3
DNNFK 	

&&z=R`a

&&~}Vde

!!38H8H&Q

!!38H8H&Q 	

!!3
D+F

%%{E6B

&&{MS]^

&&z=R\]

%%z5&A

!!3
FFC

!!3
FFC

!!3
NFK 	

!!3
DKKH

!!3
DNNFK

!!3
D-H 	

%%}eVD

&&}mU_`

&&z=R\]

%%z5&A

!!3
DKKH

!!3
DNNFK

!!3
D-Hr   c                    \        V\        4      '       d   V P                  V4      pV P                  P	                  V4       R# )z4Process a single character. Called by :meth:`write`.N)
isinstancebytes_decoder   process)rn   r7   s   &&r   r   ANSI.process  s.    aQA

1r   c                (    V P                  V4       R # r   )rd   )rn   r   s   &&r   process_listANSI.process_list  s    

1r   c                    \        V\        4      '       d   V P                  V4      pV F  pV P                  V4       K  	  R# )zQProcess text, writing it to the virtual screen while handling
ANSI escape codes.
N)r   r   r   r   )rn   sr7   s   && r   rd   
ANSI.write#  s3     aQAALLO r   c                    R # r   rr   )rn   s   &r   flush
ANSI.flush,  s    r   c                   \        V\        4      '       d   V P                  V4      pV^ ,          pVR8X  d   V P                  4        R# VR8X  d   V P	                  4        R# V\        \        P                  4      8X  d   V P                  4        R# V P                  V P                  V P                  V4       V P                  pV P                  pV P                  4        W0P                  8X  d}   V P                  4        W P                  8w  d   V P                  V P                  ^4       R# V P                  4        V P                  V P                  ^4       V P!                  4        R# R# )zThis puts a character at the current cursor position. The cursor
position is moved forward with wrap-around, but no scrolling is done if
the cursor hits the lower-right corner of the screen. Nrb   )r   r   r   crcrlfchrr   BSr   put_abscur_rcur_cr'   r"   r5   	scroll_uprK   )rn   chold_rold_cs   &&  r   r   ANSI.write_ch/  s   
 b%  b!B U;GGI;IIKVYYTZZR0



JJ

"  $**a0!  $**a0! r   c                <    VP                   ^ ,          pV.Vn         R# )z&Select Graphic Rendition, e.g. color. Nr   rn   r   r   s   && r   r   ANSI.do_sgrP      AX
r   c                <    VP                   ^ ,          pV.Vn         R# )z'Select character protection attribute. Nr   r   s   && r   r   ANSI.do_decscaU  r   r   c                <    VP                   ^ ,          pV.Vn         R# )zHandler for [?<number>h and [?<number>l. If anyone
wanted to actually use these, they'd need to add more states to the
FSM rather than just improve or override this method. Nr   r   s   && r   r   ANSI.do_modecrapZ  s     AX
r   )r   Nrs   )rv   rw   rx   ry   rz   rl   r   r   rd   r   r   r   r   r   r{   r|   r}   s   @r   r   r      sA     EQIf"B

 r   r   )rz    r   r   r   r   r   r   r   r   r#   r%   r(   r*   r-   r1   r3   r9   r<   r?   rE   rH   rL   rO   rR   rU   rZ   r]   rh   rj   r   rr   r   r   <module>r      s   8   
&
)


"


	
	

"
&	9FMM 	9^D ^r   