� c��j&[���� ddlZddlZddlZddlmZddlZejed��dgZ dZ dZ e dg�Z e dg�Ze d g�Ze d g�Ze d g�Ze dg�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�Z e 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�Z0e d)g�Z1e d*g�Z2e d+g�Z3e d,g�Z4e dg�Z5e d-g�Z6e d.g�Z7e d/g�Z8e d0g�Z9e d1g�Z:e d2g�Z;e d3g�Z<e d4g�Z=e d5g�Z>e d6g�Z?e d7g�Z@e d8g�ZAe d9g�ZBe d:g�ZCe d;g�ZDe dg�ZGe d?g�ZHe d@g�ZIe dAg�ZJe dBg�ZKe dCg�ZLe dDg�ZMe dEg�ZNe dFg�ZOe dGg�ZPe dHg�ZQe dIg�ZRe dg�ZSe dg�ZTeUedJ�r ej�ZWn ej�ZWGdK�d�ZYdL�ZZedMk(reZ�yy)N�N)� monotonic)�� )�remove�Telnet�����������������������������������r������ � � � r������������������ �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1���� PollSelectorc���eZdZ dZddej fd�Zdej fd�Zd�Zd�Z d�Z d�Z d �Z d �Z d �Zdd �Zd �Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zdd�Zd�Z d�Z!y) rNrc��� t|_||_||_||_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ |�|j|||�yy)N�r)� DEBUGLEVEL� debuglevel�host�port�timeout�sock�rawq�irawq�cookedq�eof�iacseq�sb�sbdataq�option_callback�open��selfrPrQrRs �"/usr/lib64/python3.12/telnetlib.py�__init__zTelnet.__init__�s��� � %����� ��� ��� ��� ��� ��� ��� ������ ������ �#��� � � �I�I�d�D�'� *� rMc�� d|_|st}||_||_||_t j d|||�tj||f|�|_ y)Nrztelnetlib.Telnet.open) rW� TELNET_PORTrPrQrR�sys�audit�socket�create_connectionrSr]s r_r\z Telnet.open�sX�� ������D��� ��� ��� � � � �)�4��t�<��,�,�d�D�\�7�C�� rMc�&� |j�y�N��close�r^s r_�__del__zTelnet.__del__�s��1� � � � rMc�� |jdkDrEtd|j�d|j�d�d��|rt||z�yt|�yy)NrzTelnet(�,z):� )�end)rO�printrPrQ)r^�msg�argss r_rrz Telnet.msg�sG�� � �?�?�Q� � �d�i�i����;�� E���c�D�j�!��c� � rMc�� ||_yrh)rO)r^rOs r_�set_debuglevelzTelnet.set_debuglevels�� � %��rMc�|� |j}d|_d|_d|_d|_|r|j �yy)NTrMr)rSrWrXrYrj)r^rSs r_rjz Telnet.close s;��#��y�y���� ������ ���� � �J�J�L� rMc�� |jSrh)rSrks r_� get_socketzTelnet.get_sockets��7��y�y�rMc�8� |jj�Srh)rS�filenorks r_rzz Telnet.filenos��G��y�y���!�!rMc��� t|vr!|jtttz�}tjd||�|j d|�|j j |�y)Nztelnetlib.Telnet.writezsend %r)�IAC�replacercrdrrrS�sendall)r^�buffers r_�writez Telnet.writesU�� � �&�=��^�^�C��S��1�F� � � �*�D�&�9� ����F�#� � � ���&�!rMc�R� t|�}|j�|jj|�}|dk\r*||z}|jd|}|j|d|_|S|� t �|z}t �5}|j |tj�|js�|j|�r�tdt|j�|z �}|j�|j�|jj||�}|dk\r3||z}|jd|}|j|d|_|cddd�S|�t �z }|dkrn |js��ddd�|j�S#1swY|j�SxYw�Nr)�len� process_rawqrV�find�_time�_TelnetSelector�register� selectors� EVENT_READrW�select�max� fill_rawq�read_very_lazy)r^�matchrR�n�i�buf�deadline�selectors r_� read_untilzTelnet.read_until*s��� � ��J�� ���� �L�L� � �e� $�� ��6��!��A��,�,�r��"�C��<�<���+�D�L��J� � ��w��(�H� � �(� � � �d�I�$8�$8� 9��h�h��?�?�7�+��A�s�4�<�<�0��2�3�A��N�N�$��%�%�'�� � �)�)�%��3�A��A�v��a�C��"�l�l�2�A�.��'+�|�|�A�B�'7�� �"�� ��&�&���0�G���{���h�h��"�"�"�$�$�#�"�"�"�$�$�s�C F�!F�F&c��� |j�|js-|j�|j�|js�-|j}d|_|S�NrM)r�rWr�rV�r^r�s r_�read_allzTelnet.read_allOsN��E� �����(�(� �N�N� � � � � ��(�(��l�l���� �� rMc��� |j�|jsE|js9|j�|j�|js |js�9|j}d|_|Sr�)r�rVrWr�r�s r_� read_somezTelnet.read_someYs^�� � �����,�,�t�x�x� �N�N� � � � � ��,�,�t�x�x��l�l���� �� rMc��� |j�|jsM|j�r=|j�|j�|js|j�r�=|j �Srh)r�rW� sock_availr�r�rks r_�read_very_eagerzTelnet.read_very_eagerhs^�� � �����(�(�t���0� �N�N� � � � � ��(�(�t���0��"�"�$�$rMc�&� |j�|jse|jsY|j�rI|j �|j�|js|js|j�r�I|j �Srh)r�rVrWr�r�r�rks r_� read_eagerzTelnet.read_eagervsj�� � �����,�,�t�x�x�D�O�O�4E� �N�N� � � � � ��,�,�t�x�x�D�O�O�4E��"�"�$�$rMc�D� |j�|j�Srh)r�r�rks r_� read_lazyzTelnet.read_lazy�s$�� � �����"�"�$�$rMc�x� |j}d|_|s#|jr|js td��|S)NrMztelnet connection closed)rVrWrT�EOFErrorr�s r_r�zTelnet.read_very_lazy�s9�� � �l�l���� ��t�x�x�� � ��5�6� 6�� rMc�.� |j}d|_|Sr�)rZr�s r_� read_sb_datazTelnet.read_sb_data�s�� ��l�l���� �� rMc�� ||_yrh)r[)r^�callbacks r_�set_option_negotiation_callbackz&Telnet.set_option_negotiation_callback�s ��W�'��rMc�Z� ddg} |j�r�|j�}|jsP|tk(r�3|dk(r�9|tk7r ||j |z||j <�b|xj|z c_�nSt |j�dk(r�|ttttfvr|xj|z c_��d|_|tk(r!||j |z||j <�n�|tk(rd|_d|_ n,|tk(r#d|_|j|dz|_ d|d<|jr#|j|j|t ��ni|j#dt%|�z��nJt |j�dk(�r1|jdd}d|_|}|ttfvr|j#d|tk(xrdxsd t%|��|jr|j|j||�n�|jj'ttz|z�n�|ttfvr~|j#d|tk(xrd xsd t%|��|jr|j|j||�n)|jj'ttz|z�|jr���|j*|dz|_|j|dz|_ y#t($rd|_d|_Y�HwxYw) NrM�rrzIAC %d not recognizedrz IAC %s %d�DO�DONT�WILL�WONT)rT� rawq_getcharrX�theNULLr|rYr�r�r�r�r��SBrZ�SEr[rS�NOOPTrr�ordr~r�rV)r^r��c�cmd�opts r_r�zTelnet.process_rawq�s��� � �C�j��; ��)�)��%�%�'���{�{��G�|� ��G�|� ��C�x�'*�4�7�7�|�a�'7��D�G�G� � �� � �q�(� �����%��*��R��t�T�2�2�� � �q�(� � �"%�D�K��C�x�'*�4�7�7�|�a�'7��D�G�G� ���7�&'�D�G�+.�D�L��"�W�&'�D�G�+/�<�<�#�a�&�+@�D�L�%(�C��F��/�/�!�0�0����A�u�E� !�H�H�%<�s�1�v�%E�F�����%��*��+�+�a��*�C�"%�D�K��C��r�4�j�(������2�I�.�$�8�&�#�c�(�D��/�/� �0�0����C��E� �I�I�-�-�c�D�j�3�.>�?���t� �,������4�K�2�F�<�f�c�#�h�H��/�/� �0�0����C��E� �I�I�-�-�c�D�j�3�.>�?�o�)�)�v�|�|�c�!�f�,�� ��|�|�c�!�f�,�� �� � ��D�K��D�G� �s�KL�L*�)L*c�8� |js"|j�|jrt�|j|j|jdz}|jdz|_|jt |j�k\rd|_d|_|S)NrrMr)rTr�rWr�rUr�)r^r�s r_r�zTelnet.rawq_getchar�sx�� � �y�y� �N�N� ��x�x��� �I�I�d�j�j����A�� .���Z�Z�!�^�� � �:�:��T�Y�Y�� '��D�I��D�J��rMc��� |jt|j�k\rd|_d|_|jj d�}|j d|�| |_|j|z|_y)NrMr�2zrecv %r)rUr�rTrS�recvrrrWr�s r_r�zTelnet.fill_rawqse�� � �:�:��T�Y�Y�� '��D�I��D�J��i�i�n�n�R� �� ����C� ��G����I�I��O�� rMc�� t�5}|j|tj�t |j d��cddd�S#1swYyxYwr�)r�r�r�r��boolr�)r^r�s r_r�zTelnet.sock_avails@��;� � �(� � � �d�I�$8�$8� 9������*�+�� � �s �:A�Ac�<� tjdk(r|j�yt�5}|j |t j �|j tjt j � |j�D]�\}}|j|ura |j�}|s�(tjj|jd��tjj!��u|jtjus��tjj#�j%d�}|s ddd�y|j|�����#t$rtd�Yddd�ywxYw#1swYyxYw)N�win32�(*** Connection closed by remote host ***�ascii)rc�platform� mt_interactr�r�r�r��stdinr��fileobjr�r�rq�stdoutr��decode�flush�readline�encode)r^r��key�events�text�lines r_�interactzTelnet.interacts9��G� �<�<�7� "� � � � � � � �(� � � �d�I�$8�$8� 9� � � �c�i�i��)=�)=� >��#+�?�?�#4�K�C���{�{�d�*�#�#'�?�?�#4�D� ��J�J�,�,�T�[�[��-A�B��J�J�,�,�.����� � �1�"�y�y�1�1�3�:�:�7�C��#�"�%� �&� � �4�(�$5��� (�#�!�"L�M�"�� �#��� �sC�A4F�%E/�5F�8A)F�"0F�F�/F�F�F�F�Fc��� ddl}|j|jd� tjj �}|sy|j |jd���B)Nr�r�)�_thread�start_new_thread�listenerrcr�r�r�r�)r^r�r�s r_r�zTelnet.mt_interact6sQ��2��� � �����3���9�9�%�%�'�D��� �J�J�t�{�{�7�+� ,� rMc��� |j�}|r/tjj |j d��ntjj��a#t$rtd�YywxYw)Nr�r�)r�r�rqrcr�r�r�r�)r^�datas r_r�zTelnet.listener@sk��L�� ����(���� � � � ����W�!5�6�� � � � �"���� ��@�A�� �s�A$�$A;�:A;c�(� d}|dd}tt|��}|D]/}t||d�r�|sddl}|j ||�||<�1|� t �|z}t �5}|j|tj�|js�|j�|D]e}||j|j�}|s�$|j�} |jd| } |j| d|_ ||| fccddd�S|�'|j|�} t �z }| s|dkrn��|j!�|js��ddd�|j#�} | s|jrt$�dd| fS#1swY�2xYw)N�searchr�����)�ranger��hasattr�re�compiler�r�r�r�r�rWr�r�rVrpr�r�r�r�) r^�listrRr��indicesr�r�r��m�er��readys r_�expectz Telnet.expectMs�� �*���A�w����D� �"���A��4��7�H�-��9��*�*�T�!�W�-��Q��� � ��w��(�H� � �(� � � �d�I�$8�$8� 9��h�h��!�!�#� �A��Q����t�|�|�4�A���E�E�G��#�|�|�B�Q�/��'+�|�|�A�B�'7�� � !�1�d�|�+�� �!��&�$�O�O�G�4�E�&���0�G� �"�Q�;�!�$���� �#�h�h��(�"�"�$�������N��D�$���/� �s�*A"F� 9F�AF�Fc��|Srhr�rks r_� __enter__zTelnet.__enter__�s��� rMc�$�|j�yrhri)r^�type�value� tracebacks r_�__exit__zTelnet.__exit__�s �� � � � rMrh)"�__name__� __module__� __qualname__rSre�_GLOBAL_DEFAULT_TIMEOUTr`r\rlrrrurjrxrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rMr_rr�s���3�h �D� �q��7�7�+�0 ��)G�)G�D�"� �%���"� "�#%�J� � %� %� %� � �(�E-�N�$$�",� )�4-� #�6 �p�rMc�� d}tjddrVtjddk(r@|dz}tjd=tjddrtjddk(r�@d}tjddrtjd}d}tjddrtjd} t|�}t �5}|j|�|j||d��|j�ddd�y#t$rt j |d�}Y�jwxYw#1swYyxYw) Nrrz-d� localhostr�tcpg�?)rR) rc�argv�int� ValueErrorre� getservbynamerrur\r�)rOrPrQ�portstr�tns r_�testr��s ����J� �(�(�1�2�,�3�8�8�A�;�$�.���\� � �H�H�Q�K� �(�(�1�2�,�3�8�8�A�;�$�.� �D� �x�x���|��x�x��{�� �D� �x�x���|��(�(�1�+�� 8��w�<�D� ��R� ���*�%� ����d�C��(� � � � � ���� 8��'�'���7�D� 8�� ��s�> D�6D7�D4�3D4�7E�__main__)[rcrer��timerr��warnings� _deprecatedr��__all__rNrb�bytesr|r�r�r�r�r�r��NOP�DM�BRK�IP�AO�AYT�EC�EL�GAr��BINARY�ECHO�RCP�SGA�NAMS�STATUS�TM�RCTE�NAOL�NAOP�NAOCRD�NAOHTS�NAOHTD�NAOFFD�NAOVTS�NAOVTD�NAOLFD�XASCII�LOGOUT�BM�DET�SUPDUP� SUPDUPOUTPUT�SNDLOC�TTYPE�EOR�TUID�OUTMRK�TTYLOC� VT3270REGIME�X3PAD�NAWS�TSPEED�LFLOW�LINEMODE�XDISPLOC� OLD_ENVIRON�AUTHENTICATION�ENCRYPT� NEW_ENVIRON�TN3270E�XAUTH�CHARSET�RSP�COM_PORT_OPTION�SUPPRESS_LOCAL_ECHO�TLS�KERMIT�SEND_URL� FORWARD_X� PRAGMA_LOGON� SSPI_LOGON�PRAGMA_HEARTBEAT�EXOPLr�r�rJr��SelectSelectorrr�r�rMr_�r@s����F � ��#������X�g�.� �*��� �� � �c�U�|�� �c�U�|�� �c�U�|�� �c�U�|�� �c�U�|�� ���*�� �S�E�l�� �S�E�l�� �S�E�l�� �S�E�l�� �S�E�l�� �S�E�l�� �S�E�l�� �S�E�l�� �S�E�l�� �S�E�l�� �S�E�l�� ��s��� �a�S�z�� �Q�C�j�� �Q�C�j�� �a�S�z�� ��s��� �A�3�Z�� �a�S�z�� �a�S�z�� �a�S�z�� ��t��� ��t��� ��t��� ��t��� ��t��� ��t��� ��t��� ��t��� ��t��� �B�4�[�� �R�D�k�� ��t����b�T�{� � ��t��� �r�d� �� �R�D�k�� �b�T�{�� ��t��� ��t����b�T�{� � �r�d� �� �b�T�{�� ��t��� �r�d� �� �"��;�� �"��;���R�D�k� ���t��� ���+���R�D�k� � ���+�� �r�d� �� ���+�� �R�D�k�����+���R�D�k�� �R�D�k�� ��t��� �"��;�� �2�$�K� ��c�U�|� � �C�5�\� ��#��<�� �s�e� �� �q�c� ��  �9�n�%��,�,�O��.�.�O�y�y�x�6 �z���F�rM