U e5dj� @s�ddlZddlZddlZddlZddlZdddgZGdd�de�Zddd�Zdd d �Z dd d �Z ddd�Z dd�Z zddl Z e je jfWnBeefk r�z ddlZWnek r�e ZYnXe ZYnXeZdS)�N�getpass�getuser�GetPassWarningc@s eZdZdS)rN)�__name__� __module__� __qualname__�rr�/usr/lib64/python3.8/getpass.pyrs� Password: c Cs�d}t�����}zJt�dtjtjB�}t�|d�}|�|�t� |�}|�|�|sX|}Wnpt k r�}zR|� �zt j ��}Wn&ttfk r�d}t||�}YnXt j }|s�t j}W5d}~XYnX|dk �r�z�t�|�}|dd�} | dtjM<tj} ttd��r| tjO} z t�|| | �t|||d�}W5t�|| |�|��XWn@tjk �r�|dk �rz�||k �r�|� �t||�}YnX|�d�|W5QR�SQRXdS)Nz/dev/ttyzw+��TCSASOFT)�input� )� contextlib� ExitStack�os�open�O_RDWR�O_NOCTTY�io�FileIO� enter_context� TextIOWrapper�OSError�close�sys�stdin�fileno�AttributeError� ValueError�fallback_getpass�stderr�termios� tcgetattrZECHOZ TCSAFLUSH�hasattrr � tcsetattr�flush� _raw_input�error�write) �prompt�streamZpasswd�stack�fdZttyr �e�old�newZtcsetattr_flagsrrr � unix_getpasssR             r1cCs�tjtjk rt||�S|D]}t�|�qd}t��}|dkst|dkrHqt|dkrTt�|dkrj|dd�}q.||}q.t�d�t�d�|S)N�� r�������)rr� __stdin__r �msvcrtZputwchZgetwch�KeyboardInterrupt)r*r+�cZpwrrr � win_getpassas       r;cCs0tjdtdd�|stj}td|d�t||�S)Nz%Can not control echo on the terminal.�)� stacklevelz&Warning: Password input may be echoed.)�file)�warnings�warnrrr!�printr')r*r+rrr r xs� r r2cCs�|s tj}|stj}t|�}|rpz|�|�Wn8tk rf|�|jd�}|�|j�}|�|�YnX|� �|� �}|s�t �|ddkr�|dd�}|S)N�replacer6r) rr!r�strr)�UnicodeEncodeError�encode�encoding�decoder&�readline�EOFError)r*r+r �linerrr r'�s&   r'cCs<dD]}tj�|�}|r|Sqddl}|�t���dS)N)ZLOGNAMEZUSERZLNAMEZUSERNAMEr)r�environ�get�pwd�getpwuid�getuid)�name�userrMrrr r�s   )r N)r N)r N)r2NN)rrrrr?�__all__� UserWarningrr1r;r r'rr"r#r%� ImportErrorrr8rrrrr �s*  D