CasperSecurity

Current Path : /lib/python3/dist-packages/packaging/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/packaging/__pycache__/_manylinux.cpython-310.pyc

o

�5�`�,�@s�UddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZm
Z
Gdd�d�Zdeefdd�Zdefdd	�Zdefd
d�Zdedefd
d�Ze�dd��Ze	eefed<Gdd�de�Zdeefdd�Zdeefdd�Zdeefdd�Zdede
eeffdd�Ze��de
eeffdd��Zdeded edefd!d"�Z d#d$d%d&�Z!d'edede
efd(d)�Z"dS)*�N)�IO�Dict�Iterator�
NamedTuple�Optional�Tuplec@sbeZdZGdd�de�ZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
eeddfdd�ZdS)�_ELFFileHeaderc@seZdZdZdS)z$_ELFFileHeader._InvalidELFFileHeaderz7
        An invalid ELF file header was found.
        N)�__name__�
__module__�__qualname__�__doc__�r
r
�6/usr/lib/python3/dist-packages/packaging/_manylinux.py�_InvalidELFFileHeadersriFLE�����(�>l~ii�file�returnNcs|dtdtf�fdd�}|d�|_|j|jkrt���|d�|_|j|j|jhvr,t���|d�|_	|j	|j
|jhvr>t���|d�|_|d�|_
|d�|_��d�|_|j	|j
kr[dnd	}|j	|j
kred
nd}|j	|j
krodnd}|j|jkry|n|}||�|_||�|_||�|_||�|_||�|_||�|_||�|_||�|_||�|_||�|_||�|_||�|_||�|_dS)
N�fmtrcs@z��t�|��}t�||�}W|dStjyt���w)Nr)�read�struct�calcsize�unpack�errorrr)r�data�result�rr
rr$s��z'_ELFFileHeader.__init__.<locals>.unpackz>I�B�z<Hz>Hz<Iz<Qz>Q)�str�int�
e_ident_magic�ELF_MAGIC_NUMBERrr�
e_ident_class�
ELFCLASS32�
ELFCLASS64�e_ident_data�ELFDATA2LSB�ELFDATA2MSB�e_ident_version�
e_ident_osabi�e_ident_abiversionr�e_ident_pad�e_type�	e_machine�	e_version�e_entry�e_phoff�e_shoff�e_flags�e_ehsize�e_phentsize�e_phnum�e_shentsize�e_shnum�
e_shstrndx)�selfrr�format_h�format_i�format_q�format_pr
r r�__init__#s>

















z_ELFFileHeader.__init__)r	r
r�
ValueErrorrr&r(r)r+r,�EM_386�EM_S390�EM_ARM�	EM_X86_64�EF_ARM_ABIMASK�EF_ARM_ABI_VER5�EF_ARM_ABI_FLOAT_HARDr�bytesrCr
r
r
rrsrrc
Cs\zttjd��}t|�}Wd�W|S1swYW|Stttjfy-YdSw)N�rb)�open�sys�
executabler�OSError�	TypeErrorr)�f�
elf_headerr
r
r�_get_elf_headerLs
����rUcCsnt�}|dur	dS|j|jk}||j|jkM}||j|jkM}||j|j@|j	kM}||j|j
@|j
kM}|S�NF)rUr'r(r*r+r2rGr7rIrJrK�rTrr
r
r�_is_linux_armhfUs
�
�rXcCsBt�}|dur	dS|j|jk}||j|jkM}||j|jkM}|SrV)rUr'r(r*r+r2rErWr
r
r�_is_linux_i686hsrY�archcCs$|dkrt�S|dkrt�S|dvS)N�armv7l�i686>�ppc64�s390x�x86_64�aarch64�ppc64le)rXrY)rZr
r
r�_have_compatible_abirs
rbcCsdS)N�2r
r
r
r
r�<lambda>srd�_LAST_GLIBC_MINORc@seZdZUeed<eed<dS)�
_GLibCVersion�major�minorN)r	r
rr$�__annotations__r
r
r
rrf�s
rfcCsFzt�d�}|dusJ�|��\}}W|Sttttfy"YdSw)zJ
    Primary implementation of glibc_version_string using os.confstr.
    �CS_GNU_LIBC_VERSIONN)�os�confstr�split�AssertionError�AttributeErrorrQrD)�version_string�_�versionr
r
r�_glibc_version_string_confstr�s
��rscCs�zddl}Wn
tyYdSwz|�d�}Wn
ty"YdSwz|j}Wn
ty2YdSw|j|_|�}t|t	�sD|�
d�}|S)zG
    Fallback implementation of glibc_version_string using ctypes.
    rN�ascii)�ctypes�ImportError�CDLLrQ�gnu_get_libc_versionro�c_char_p�restype�
isinstancer#�decode)ru�process_namespacerx�version_strr
r
r�_glibc_version_string_ctypes�s(��
�

rcCst�pt�S)z9Returns glibc version string, or None if not using glibc.)rsrr
r
r
r�_glibc_version_string�sr�r~cCs@t�d|�}|st�d|t�dSt|�d��t|�d��fS)a3Parse glibc version.

    We use a regexp instead of str.split because we want to discard any
    random junk that might come after the minor version -- this might happen
    in patched/forked versions of glibc (e.g. Linaro's version of glibc
    uses version strings like "2.20-2014.11"). See gh-3588.
    z$(?P<major>[0-9]+)\.(?P<minor>[0-9]+)z=Expected glibc version with 2 components major.minor, got: %s����r�rgrh)�re�match�warnings�warn�RuntimeWarningr$�group)r~�mr
r
r�_parse_glibc_version�s��r�cCst�}|dur	dSt|�S)Nr�)r�r�)r~r
r
r�_get_glibc_version�sr��namerrcCs�t�}||kr	dSzddl}Wn
tyYdSwt|d�r4|�|d|d|�}|dur2t|�SdS|tdd�krEt|d�rEt|j�S|tdd	�krVt|d
�rVt|j�S|tdd�krgt|d�rgt|j	�SdS)
NFrT�manylinux_compatiblerr��manylinux1_compatible��manylinux2010_compatible��manylinux2014_compatible)
r��
_manylinuxrv�hasattrr��boolrfr�r�r�)r�rZrr�	sys_glibcr�rr
r
r�_is_compatible�s.�






r��
manylinux2014�
manylinux2010�
manylinux1))rr�)rr�)rr��linuxccs��t|�sdStdd�}|dvrtdd�}tt��}|g}t|jddd�D]}t|}|�t||��q&|D]E}|j|jkrC|j}nd}t|j|d�D]/}t|j|�}	dj|	�}
t	|
||	�rf|�
d|
�V|	tvr{t|	}t	|||	�r{|�
d|�VqLq7dS)	Nr�>r\r_�rr�zmanylinux_{}_{}r�)rbrfr��rangergre�appendrh�formatr��replace�_LEGACY_MANYLINUX_MAP)r�rZ�too_old_glibc2�
current_glibc�glibc_max_list�glibc_major�glibc_minor�	glibc_max�	min_minor�
glibc_version�tag�
legacy_tagr
r
r�
platform_tagss6�



���r�)#�collections�	functoolsrkr�rrOr��typingrrrrrrrrUr�rXrYr#rb�defaultdictrer$rirfrsrr�r��	lru_cacher�r�r�r�r
r
r
r�<module>s6
 =	

,�
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY