�
!`Nc@s}ddlZddlZyddlZWnek
rGddlZnXdefd��YZe�Zd�Z d�Z
dS(i����NtEntropyPoolcBsMeZdd�Zed�Zd�Zd�Zd�Zd�Z d�Z
RS(cCs�d|_d|_d|_tj�|_y(ddl}|j�|_ d|_
Wn]y(ddl}|j�|_ d|_
Wq�ddl
}|j�|_ d|_
q�XnXd|j
|_|dk r�|j|�t|_n t|_dS(Nii����iit(t
pool_indextNonetdigestt next_bytet
_threadingtLocktlockthashlibtsha1thashthash_lentshatnewtmd5tpooltstirtTruetseededtFalse(tselftseedR R
R((s1/usr/lib64/python2.7/site-packages/dns/entropy.pyt__init__s,
cCs�|s|jj�nz�g|jD]}t|�^q#}x^|D]V}|j|jkrfd|_nt|�d@}||jc|N<|jd7_qBWdjg|D]}t|�^q��|_Wd|s�|jj�nXdS(Nii�it( RtacquireRtordRRtjointchrtrelease(Rtentropytalready_lockedtctbytestb((s1/usr/lib64/python2.7/site-packages/dns/entropy.pyR1s"
/cCs�|js�ytjd�}WnZy7tddd�}z|jd�}Wd|j�XWqyttj��}qyXnXt|_|j |t�ndS(Nis/dev/urandomtri(
RtosturandomtfiletreadtclosetstrttimeRR(RRR#((s1/usr/lib64/python2.7/site-packages/dns/entropy.pyt_maybe_seedAs cCs�|jj�|j�z�|jdks;|j|jkr|jj|j �|jj�|_|j
|jt�d|_nt|j|j�}|jd7_Wd|jj
�X|S(Nii(RRR+RRRRRtupdateRRRRR(Rtvalue((s1/usr/lib64/python2.7/site-packages/dns/entropy.pytrandom_8Qs
!cCs|j�d|j�S(Ni(R.(R((s1/usr/lib64/python2.7/site-packages/dns/entropy.pyt random_16`scCs|j�d|j�S(Ni(R/(R((s1/usr/lib64/python2.7/site-packages/dns/entropy.pyt random_32cscCs�||d}|dkr)td��n|dkrG|j}d}n-|dkre|j}d}n|j}d}|||�|dS( Nilstoo bigil��ii��i�(t
ValueErrorR0R/R.(Rtfirsttlasttsizetrandtmax((s1/usr/lib64/python2.7/site-packages/dns/entropy.pytrandom_betweenfs N(t__name__t
__module__RRRRR+R.R/R0R7(((s1/usr/lib64/python2.7/site-packages/dns/entropy.pyRs cCs
tj�S(N(RR/(((s1/usr/lib64/python2.7/site-packages/dns/entropy.pyR/wscCstj||�S(N(RR7(R2R3((s1/usr/lib64/python2.7/site-packages/dns/entropy.pytbetweenzs(R$R*t threadingRtImportErrortdummy_threadingtobjectRRR/R:(((s1/usr/lib64/python2.7/site-packages/dns/entropy.pyt<module>s
^ |