3 \j@sddlZddlZddlZddlZddlZdddgZGdddeZdddZdd d Z dd d Z dddZ ddZ yddl Z e je jfWnBeefk ry ddlZWnek re ZYnXe ZYnXeZdS)NgetpassgetuserGetPassWarningc@s eZdZdS)rN)__name__ __module__ __qualname__rr/usr/lib64/python3.6/getpass.pyrs Password: c .Csd}tj}yJtjdtjtjB}tj|d}|j|tj |}|j||sX|}Wnpt k r}zT|j yt j j}Wn&ttfk rd}t||}YnXt j }|st j}WYdd}~XnX|dk rytj|}|dd} | dtjM<tj} ttdr| tjO} z tj|| | t|||d}Wdtj|| ||jXWn@tjk r|dk rz||k r|j t||}YnX|jd|SQRXdS)Nz/dev/ttyzw+TCSASOFT)input ) contextlib ExitStackosopenO_RDWRO_NOCTTYioFileIO enter_context TextIOWrapperOSErrorclosesysstdinfilenoAttributeError ValueErrorfallback_getpassstderrtermios tcgetattrZECHOZ TCSAFLUSHhasattrr tcsetattr _raw_inputflusherrorwrite) promptstreamZpasswdstackfdZttyr eoldnewZtcsetattr_flagsrrr unix_getpasssR             r1cCstjtjk rt||Sx|D]}tj|qWd}xHtj}|dksL|dkrNP|dkrZt|dkrp|dd}q4||}q4Wtjdtjd|S)N r)rr __stdin__r msvcrtZputwchZgetwchKeyboardInterrupt)r*r+cZpwrrr win_getpassas"      r<cCs0tjdtdd|stj}td|dt||S)Nz%Can not control echo on the terminal.) stacklevelz&Warning: Password input may be echoed.)file)warningswarnrrr!printr&)r*r+rrr r xs  r r2c Cs|s tj}|stj}t|}|rpy|j|Wn8tk rf|j|jd}|j|j}|j|YnX|j |j }|st |ddkr|dd}|S)Nreplacer6rr7r7) rr!rstrr)UnicodeEncodeErrorencodeencodingdecoder'readlineEOFError)r*r+r linerrr r&s&   r&cCs<x dD]}tjj|}|r|SqWddl}|jtjdS)NLOGNAMEUSERLNAMEUSERNAMEr)rLrMrNrO)renvirongetpwdgetpwuidgetuid)nameuserrRrrr rs   )r N)r N)r N)r2NN)rrrrr@__all__ UserWarningrr1r<r r&rr"r#r% ImportErrorrr9rrrrr s*  D