a �DOg�Z�@sFddlZddlZddlZddlmZdgZdZdZe dg�Z e dg�Z e dg�Z e dg�Z e d g�Ze dg�Ze d g�Ze d g�Ze d g�Ze d g�Ze dg�Ze dg�Ze dg�Ze dg�Ze dg�Ze dg�Ze dg�Ze dg�Ze dg�Ze dg�Ze dg�Ze dg�Ze dg�Z e dg�Z!e dg�Z"e dg�Z#e dg�Z$e dg�Z%e dg�Z&e d g�Z'e d!g�Z(e d"g�Z)e d#g�Z*e d$g�Z+e d%g�Z,e d&g�Z-e d'g�Z.e d(g�Z/e d)g�Z0e d*g�Z1e dg�Z2e d+g�Z3e d,g�Z4e d-g�Z5e d.g�Z6e d/g�Z7e d0g�Z8e d1g�Z9e d2g�Z:e d3g�Z;e d4g�Ze d7g�Z?e d8g�Z@e d9g�ZAe d:g�ZBe d;g�ZCe dg�ZFe d?g�ZGe d@g�ZHe dAg�ZIe dBg�ZJe dCg�ZKe dDg�ZLe dEg�ZMe dFg�ZNe dGg�ZOe dg�ZPe dg�ZQeRedH��rejSZTnejUZTGdId�d�ZVdJdK�ZWeXdLk�rBeW�dS)M�N)� monotonic�Telnet������������������������������������������ � � � � ������������������ �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1���� PollSelectorc@seZdZddejfdd�Zdejfdd�Zdd�Zd d �Zd d �Z d d�Z dd�Z dd�Z dd�Z d;dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zdddl}|�||�||<q |durdt�|}t���}|�|tj �|j �s(|� �|D]Z}||� |j �}|r�|��} |j d| �} |j | d�|_ ||| fWd�Sq�|du�r|�|�} |t�}| �s|dkrz�q(nqz|��qzWd�n1�s>0Y|��} | �sb|j �rbt�dd| fS)N�searchr�����)�rangerv�hasattr�re�compileryrzr{r|r}rSrwr�rRrir~r�r�r�) rZ�listrNr��indicesr�r�r��m�er��readyr[r[r\�expectJs@       *z Telnet.expectcCs|Srcr[rfr[r[r\� __enter__�szTelnet.__enter__cCs |��dSrcrd)rZ�type�value� tracebackr[r[r\�__exit__�szTelnet.__exit__)N)N)!�__name__� __module__� __qualname__ra�_GLOBAL_DEFAULT_TIMEOUTr]rXrgrkrmrernrortr�r�r�r�r�r�r�r�r�rwr�r�r�r�r�r�r�r�r�r[r[r[r\r�s<7�   %    H  8cCs�d}tjdd�r2tjddkr2|d}tjd=qd}tjdd�rNtjd}d}tjdd�r�tjd}z t|�}Wnty�t�|d�}Yn0t��2}|�|�|j||dd�|� �Wd�n1s�0YdS) Nrrz-d� localhostrZtcpg�?)rN) r_�argv�int� ValueErrorra� getservbynamerrmrXr�)rKrLrMZportstr�tnr[r[r\�test�s$      r��__main__)Yr_rar|�timerry�__all__rJr^�bytesrpr�r�r�r�r�r�ZNOPZDMZBRKZIPZAOZAYTZECZELZGAr�ZBINARYZECHOZRCPZSGAZNAMSZSTATUSZTMZRCTEZNAOLZNAOPZNAOCRDZNAOHTSZNAOHTDZNAOFFDZNAOVTSZNAOVTDZNAOLFDZXASCIIZLOGOUTZBMZDETZSUPDUPZ SUPDUPOUTPUTZSNDLOCZTTYPEZEORZTUIDZOUTMRKZTTYLOCZ VT3270REGIMEZX3PADZNAWSZTSPEEDZLFLOWZLINEMODEZXDISPLOCZ OLD_ENVIRONZAUTHENTICATIONZENCRYPTZ NEW_ENVIRONZTN3270EZXAUTH�CHARSETZRSPZCOM_PORT_OPTIONZSUPPRESS_LOCAL_ECHOZTLSZKERMITZSEND_URLZ FORWARD_XZ PRAGMA_LOGONZ SSPI_LOGONZPRAGMA_HEARTBEATZEXOPLr�r�rHrz�SelectSelectorrr�r�r[r[r[r\�$s�