JFIF$        dd7 

Viewing File: /usr/lib64/python3.9/ctypes/__pycache__/util.cpython-39.pyc

a

�i76�@sBddlZddlZddlZddlZejdkrDdd�Zdd�Zdd�Zn�ejd	krnejd
krnddl	m
Zdd�Zn�ej�d
�r�ddl
mZn�ejd	k�r&ddlZddlZdd�Zdd�Zejdkr�dd�Zndd�Zej�d�r�dd�Zdd�Zn8ejdk�rdd�Zd'dd�Zndd �Zd!d"�Zd#d�Zd$d%�Zed&k�r>e�dS)(�N�ntcCs�d}tj�|�}|dkrdS|t|�}tj|d��dd�\}}t|dd��d}|dkrf|d7}t|d	d
��d}|dkr�d}|dkr�||SdS)
z�Return the version of MSVC that was used to build Python.

        For Python 2.3 and up, the version number is included in
        sys.version.  For earlier versions, assume the compiler is MSVC 6.
        zMSC v.����N� �����
��g$@r)�sys�version�find�len�split�int)�prefix�i�s�restZmajorVersionZminorVersion�r�#/usr/lib64/python3.9/ctypes/util.py�_get_build_version	srcCs^t�}|durdS|dkr d}n|dkr6d|d}ndSddl}d|jjvrV|d	7}|d
S)z%Return the name of the VC runtime dllNr�msvcrtrzmsvcr%d�
rz_d.pyd�d�.dll)r�importlib.machinery�	machinery�EXTENSION_SUFFIXES)rZclibname�	importlibrrr�find_msvcrt"sr cCsx|dvrt�Stjd�tj�D]R}tj�||�}tj�|�rF|S|���	d�rVq |d}tj�|�r |Sq dS)N)�c�m�PATHr)
r �os�environr�pathsep�path�join�isfile�lower�endswith)�nameZ	directory�fnamerrr�find_library7s
r.�posix�darwin)�	dyld_findc	CsNd|d|d||fg}|D]*}zt|�WStyFYqYq0qdS)Nzlib%s.dylibz%s.dylibz%s.framework/%s)�
_dyld_find�
ValueError)r,�possiblerrrr.Hs
��aix)r.cCs@d}t|d��}|�d�|kWd�S1s20YdS)z,Return True if the given file is an ELF filesELF�br�N)�open�read)�filenameZ
elf_header�thefilerrr�_is_elf`sr<c
Cstt�dt�|��}t�d�}|s,t�d�}|s4dSt��}z�|dd|jd|g}t	tj
�}d|d<d|d	<ztj|tj
tj|d
�}Wn6ty�YWz|��Wnty�Yn0dS0|�|j��}Wd�n1s�0YWz|��Wnt�yYn0n$z|��Wnt�y2Yn00t�||�}|�sLdS|D]}	t|	��sb�qPt�|	�SdS)N�[^\(\)\s]*lib%s\.[^\(\)\s]*ZgccZccz-Wl,-t�-oz-l�C�LC_ALL�LANG��stdout�stderr�env)r$�fsencode�re�escape�shutil�which�tempfile�NamedTemporaryFiler,�dictr%�
subprocess�Popen�PIPE�STDOUT�OSError�close�FileNotFoundErrorrCr9�findallr<�fsdecode)
r,�exprZ
c_compilerZtemp�argsrE�procZtrace�res�filerrr�_findLib_gccfsT


�
�*�
r\Zsunos5cCs�|sdSztjdd|ftjtjd�}Wnty:YdS0|�|j��}Wd�n1s`0Yt�d|�}|s~dSt	�
|�d��S)Nz/usr/ccs/bin/dumpz-Lpv�rCrDs\[.*\]\sSONAME\s+([^\s]+)r)rNrOrP�DEVNULLrRrCr9rG�searchr$rV�group)�frY�datarZrrr�_get_soname�s�
(rccCs�|sdSt�d�}|sdSz"tj|ddd|ftjtjd�}WntyPYdS0|�|j��}Wd�n1sv0Yt	�
d|�}|s�dSt�|�
d��S)N�objdump�-pz-jz.dynamicr]s\sSONAME\s+([^\s]+)r)rIrJrNrOrPr^rRrCr9rGr_r$rVr`)rardrY�dumprZrrrrc�s$
�
()ZfreebsdZopenbsdZ	dragonflycCsL|�d�}g}z|r*|�dt|����qWnty>Yn0|pJtjgS)N�.r)r�insertr�popr3r�maxsize)Zlibname�partsZnumsrrr�_num_version�s
rlcCs�t�|�}d||f}t�|�}ztjdtjtjd�}WntyNd}Yn00|�|j	�
�}Wd�n1st0Yt�||�}|s�tt
|��S|jtd�t�|d�S)Nz:-l%s\.\S+ => \S*/(lib%s\.\S+))�/sbin/ldconfigz-rr]�)�keyr)rGrHr$rFrNrOrPr^rRrCr9rUrcr\�sortrlrV)r,ZenamerWrYrbrZrrrr.�s"

�

(c	Cs�tj�d�sdSttj�}d|d<|r,d}nd}d}ztj|tjtj|d�}Wnt	ybYdS0|�@|j
D](}|��}|�d�rpt�
|���d}qpWd�n1s�0Y|s�dS|�d	�D]*}tj�|d
|�}tj�|�r�|Sq�dS)N�
/usr/bin/crler?r@)rq�-64)rqrBsDefault Library Path (ELF):r7�:zlib%s.so)r$r'�existsrMr%rNrOrPr^rRrC�strip�
startswithrVrr()	r,�is64rErX�pathsrY�line�dirZlibfilerrr�
_findLib_crle�s8
�


2
r{FcCstt||�pt|��S�N)rcr{r\)r,rwrrrr.	scCsddl}|�d�dkr&t��jd}nt��jd}dddddd	�}|�|d
�}d}t�|t�|�|f�}z~t	j
dd
gt	jt	jt	jddd�d��F}t�
||j���}|r�t�|�d��Wd�WSWd�n1s�0YWnty�Yn0dS)Nr�lr7z-32rrzlibc6,x86-64zlibc6,64bitzlibc6,IA-64)z	x86_64-64zppc64-64z
sparc64-64zs390x-64zia64-64Zlibc6z\s+(lib%s\.[^\s]+)\s+\(%srmrer?)r@rA)�stdinrDrCrEr)�struct�calcsizer$�uname�machine�getrFrGrHrNrOr^rPr_rCr9rVr`rR)r,rr�Zmach_mapZabi_typeZregex�prZrrr�_findSoname_ldconfigs4�
�Br�cCs�dt�|�}ddg}tj�d�}|rD|�d�D]}|�d|g�q0|�dtjd|g�d}zZtj	|tj
tj
d	d
�}|��\}}t�|t�
|��}	|	D]}
t|
�s�q�t�
|
�WSWnty�Yn0|S)Nr=Zldz-tZLD_LIBRARY_PATHrsz-Lr>z-l%sT)rCrD�universal_newlines)rGrHr$r%r�r�extend�devnullrNrOrP�communicaterUrVr<�	Exception)r,rW�cmdZlibpathr�resultr��out�_rZr[rrr�_findLib_ld,s,
�r�cCs t|�ptt|��ptt|��Sr|)r�rcr\r�)r,rrrr.Gs

�
�cCs�ddlm}tjdkr:t|j�t|�d��ttd��tjdk�r�ttd��ttd��ttd��tj	d	kr�t|�
d
��t|�
d��t|�
d��t|�
d
���ntj	�d��r�ddlm}tj
dk�rtd|dtj����td|�
d����ttd��t|�
d��n*td|dtj����td|�
d����tdtd����td|�
td�����tdtd����td|�
td�����n(t|�
d��t|�
d��ttd��dS)Nr)�cdllrrr/r"r!�bz2r0z
libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemr5)�CDLLlz"Using CDLL(name, os.RTLD_MEMBER): z
libc.a(shr.o)zUsing cdll.LoadLibrary(): Zrpmz	librpm.sozlibc.a(shr_64.o)z	crypt	:: Zcryptz
crypto	:: Zcryptozlibm.sozlibcrypt.so)Zctypesr�r$r,�printr�loadr.r�platformZLoadLibraryrvr�rjZRTLD_MEMBER)r�r�rrr�testOs<


r��__main__)F)r$rIrNrr,rr r.r�Zctypes.macholib.dyldr1r2rvZctypes._aixrGrKr<r\rcrlr{r�r�r��__name__rrrr�<module>s>


2


$(

Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg