+
    ý¸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!   € à�Z‰Z˜�]€FØ
‡O‚O�C×$Ñ$Ö%ó    c                 óP   € V P                   P                  V P                  4       R # ©N)r   Úappendr	   )r   s   &r   ÚDoStartNumberr   )   s   € à‡J�J×Ñ�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Ø‡J�J×Ñ�rÖr   c                 óN   € V P                   ^ ,          pVP                  ! 4        R# r   )r   Úcursor_backr
   s   & r   Ú	DoBackOner   3   ó   € à�Z‰Z˜�]€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Ø�Z‰Z˜�]€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   € à�Z‰Z˜�]€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Ø�Z‰Z˜�]€FØ
×Ò˜5Ö!r   c                 óN   € V P                   ^ ,          pVP                  ! 4        R# r   )r   Úcursor_up_reverser
   s   & r   ÚDoUpReverser-   T   ó   € à�Z‰Z˜�]€FØ
×ÒÖr   c                 óN   € V P                   ^ ,          pVP                  ! 4        R# r   )r   Ú	cursor_upr
   s   & r   ÚDoUpOner1   Y   s   € à�Z‰Z˜�]€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Ø�Z‰Z˜�]€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   € äˆC�J‰J�N‰NÓÓ€AÜˆC�J‰J�N‰NÓÓ€AØ�Z‰Z˜�]€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Ø�Z‰Z˜�]€FØ
×Ò˜Ör   c                 óN   € V P                   ^ ,          pVP                  ! 4        R# r   )r   Ú
erase_downr
   s   & r   ÚDoEraseDownr?   r   s   € à�Z‰Z˜�]€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`   € ä
ˆc�j‰j�n‰nÓÓ
€CØ�Z‰Z˜�]€FØ
ˆa„xØ×ÒÖØ	�ŒØ�ŠÖØ	�ŒØ×ÒÖñ 
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   € ä
ˆc�j‰j�n‰nÓÓ
€CØ�Z‰Z˜�]€FØ
ˆa„xØ× Ò Ö"Ø	�ŒØ×"Ò"Ö$Ø	�ŒØ×ÒÖñ 
r   c                 óN   € V P                   ^ ,          pVP                  ! 4        R# r   )r   Úscroll_screenr
   s   & r   ÚDoEnableScrollrO   ’   s   € à�Z‰Z˜�]€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   € à�Z‰Z˜�]€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   € à�Z‰Z˜�]€FÜ	ˆS�Z‰Z�^‰^ÓÓ	€BÜ	ˆS�Z‰Z�^‰^ÓÓ	€BØ
×Ò˜rÖ%r   c                 ó`   € V P                   ^ ,          pV P                   P                  4       pR# r   )r   r   )r   r   Úmodes   &  r   ÚDoModer]   ¨   s   € à�Z‰Z˜�]€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   € à�Z‰Z˜�]€FØ�€C„JÜ�˜Ó€DØ‡J�J�× Ñ  3Õ&¨×):Ñ):Õ:¸TÕAÔBØ‡J�J†Lr   c                   ó.   a € ] tR t^¶t o RtRR ltRtV tR# )Útermz¦This 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    € ä�‰×Ò˜t qÐ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# )ÚANSIz¡This 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  € ä�Š�d˜QÐ. Ò. vÒ.ô —W’W˜f d VÓ,ˆŒ
Ø�
‰
×)Ñ)¬5°&Ô9Ø�
‰
×%Ñ% v¬v°vÔ>Ø�
‰
×!Ñ! 6¨6°4¸Ô?Ø�
‰
×%Ñ% u¬e°VÔ<Ø�
‰
×!Ñ! 3¨¨t°WÔ=Ø�
‰
×!Ñ! 3¨¨t°WÔ=Ø�
‰
×&Ñ&¨°¸$ÀÔGØ�
‰
×&Ñ&¨°¸$ÀÔGØ�
‰
×!Ñ! 3¨¬|¸VÔDØ�
‰
×!Ñ! 3¨¬ÀÔGØ�
‰
×!Ñ! 3¨¬{¸FÔCØ�
‰
×!Ñ! 3¨¬{¸FÔCØ�
‰
×!Ñ! 3¨¬{¸FÔCØ�
‰
×!Ñ! 3¨¨t°VÔ<Ø�
‰
×!Ñ! 3¨¨tÐ5EÔFØ�
‰
×%Ñ%Ð'7¸¸vÔFØ�
‰
×!Ñ! 3¨¨t°UÔ;à�
‰
×!Ñ! 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¨¨t°ZÔ@Ø�
‰
×&Ñ&¬¯©°u¼mÈZÔXØ�
‰
×&Ñ&¬¯©°zÄ=ÐR\Ô]Ø�
‰
×!Ñ! 3¨
´F¸FÔCØ�
‰
×!Ñ! 3¨
´F¸FÔCØ�
‰
×!Ñ! 3¨
´I¸vÔFØ�
‰
×!Ñ! 3¨
´D¸&ÔAØ�
‰
×!Ñ! 3¨
´G¸VÔDØ�
‰
×!Ñ! 3¨
´KÀÔHØ�
‰
×!Ñ! 3¨
´F¸FÔCð 	�
‰
×!Ñ! 3¨
°D·K±KÀÔHà�
‰
×!Ñ! 3¨
°D·N±NÀFÔKð 	�
‰
×&Ñ&¬¯©°zÄ=ÐR`ÔaØ�
‰
×&Ñ&¬¯©°~Ä}ÐVdÔeØ�
‰
×!Ñ! 3¨¸×8HÑ8HÈ&ÔQØ�
‰
×!Ñ! 3¨¸×8HÑ8HÈ&ÔQð 	�
‰
×!Ñ! 3¨
°D¸+ÔFØ�
‰
×%Ñ% {´E¸6ÔBØ�
‰
×&Ñ&¬¯©°{ÄMÐS]Ô^Ø�
‰
×&Ñ&¬¯©°zÄ=ÐR\Ô]Ø�
‰
×%Ñ% z´5¸&ÔAØ�
‰
×!Ñ! 3¨
´F¸FÔCØ�
‰
×!Ñ! 3¨
´F¸FÔCØ�
‰
×!Ñ! 3¨
´NÀFÔKð 	�
‰
×!Ñ! 3¨
°D·K±KÀÔHà�
‰
×!Ñ! 3¨
°D·N±NÀFÔKØ�
‰
×!Ñ! 3¨
°D¸-ÔHð 	�
‰
×%Ñ% }´e¸VÔDØ�
‰
×&Ñ&¬¯©°}ÄmÐU_Ô`Ø�
‰
×&Ñ&¬¯©°zÄ=ÐR\Ô]Ø�
‰
×%Ñ% z´5¸&ÔAØ�
‰
×!Ñ! 3¨
°D·K±KÀÔHØ�
‰
×!Ñ! 3¨
°D·N±NÀFÔ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Ø�L‰L˜Ž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# )z¿This 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ˆà�Œ;Ø�G‰GŒIÙØ�Œ;Ø�I‰IŒKÙØ””V—Y‘Y“ÔØ×ÑÔÙØ�‰�T—Z‘Z §¡¨RÔ0Ø—
‘
ˆØ—
‘
ˆØ×ÑÔØ—J‘JÔØ×ÑÔØŸ
™
Ô"Ø× Ñ  $§*¡*¨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# )z¯Handler 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 Ý Û ò
&ò
)òòò
òò
òò
"òò
ò
òòòò
	òò
	òò
ò
"ò
&òòô	9ˆF�M‰Mô 	9ô^ˆDö ^r   